Как объединить несколько компьютеров в один
Перейти к содержимому

Как объединить несколько компьютеров в один

  • автор:

Как объединить мощность нескольких компьютеров под управлением одной Linux системы?

В офисе валяется куча ненужных, рабочих системных блоков. Вот я и решил объединить их в единую вычислительную сеть, а по сути в обычный компьютер управляемый единой ОС, но представляющий собой 3+ системных блока. Итог: Мне нужно что бы 5+ коробок работала как одна, при этом я не хочу управлять каждым серваком отдельно, моя цель единая машина состоящая физически из нескольких под управлением одной системы. Что она будет делать? Да что угодно, хоть пусть будет web сервером с ip в интернете или просто рабочей станцией Ubuntu или fedora

Отслеживать
задан 24 окт 2018 в 21:53
577 1 1 золотой знак 4 4 серебряных знака 21 21 бронзовый знак

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Ответ сводится к тому, что Вам необходимо создать кластер компьютеров под управлением какой-либо Linux-like OS.

Вот несколько готовых решений:

  • [useless link: has been removed].
  • Кластер в домашних условиях.

Описывать весь процесс в ответе особого смысла нет. Думаю, мой ответ вам полезен.

Отслеживать
ответ дан 24 окт 2018 в 22:19
69 420 1970 69 420 1970
1,951 1 1 золотой знак 14 14 серебряных знаков 33 33 бронзовых знака

Эта статья про «кластер убунту» лишь говорит о написании парралельной программы на языке Fortran (господи прости) с использованием нескольких серверов, а никак не про объединение ресурсов разных серверов в одну linux систему.

25 окт 2018 в 0:57
Да я тоже это заметил!
25 окт 2018 в 8:04
Да, коллеги. Что то вы слишом много плюсов поставили безполезному ответу (
25 окт 2018 в 12:05

@Dillinger è morto , не, но вторая статья то полезна — MOSIX действительно позволяет сделать кластер: в простом виде — перекидывать некоторые процессы на другую машину, и выполнять их там. Конечно до «объединения» мощности далековато — то есть это не совсем эффективно, но работает, факт. Первая конечно не по теме)

26 окт 2018 в 9:08
@ГончаровАлександр, ага, пофиксил. Спасибо
26 окт 2018 в 9:10

В таком виде — в котором вы спрашиваете: решения будут неэффективными. Системы из множества компьютеров(серверов) делаются отдельно, под каждую задачу свои, мало того программы — для работы которых и создаётся такая система — тоже пишутся именно под определённые системы серверов.

Называются они «высоконагруженные системы», и их создание/использование — это очень дорогой процесс, который называется «масштабирование». Крупнейшие примеры таких систем — социальные сети: например работу VK обеспечивает 10к машин, но сравнимых по мощности с домашним компьютером(как утверждают владельцы). Да и сам StackOverflow конечно работает не на одном сервере.

Если вам действительно интересно масштабирование: то стоит на крутом уровне освоить системное администрирование, docker, а также почитать лирику на тему хайлода https://ruhighload.com/scale

Отслеживать
ответ дан 25 окт 2018 в 1:15
Гончаров Александр Гончаров Александр
5,249 15 15 серебряных знаков 39 39 бронзовых знаков

Мне нужно что бы 5 коробок работала как одна, при этом я не хочу управлять каждым серваком отдельно, моя цель единая машина состоящая физически из нескольких под управлением одной системы

25 окт 2018 в 8:10

@Gybernaty тогда попробуйте mosix — из другого ответа. Или это классическая задача сисадмина — сделать систему серверов: например один сервер выделяется под БД, один под кеш, один под файловое хранилище — а на центральном сервере делаются правильное проксирование портов, алиасы, редиректы.

26 окт 2018 в 9:11

обычно решения строятся от задачи, а не от платформы

что конкретно вы хотите делать?

из личного опыта — анализ логов на биллинге, и ретарификация: делал ручным шардингом на уровне приложения (скрипты на Python), на пачке списанных десктопов, аккаунте на конторском IBM eServer, и паре десктопов под windows.

если у вас межсоединения на древнем 100mbit ethernet, а не как минимум 1G (не говоря уж о спецжелезе типа Infiniband) — дешевле будет пойти в магазин, купить самую поганую материнку и набить ее памятью под завязку, съэкономите на дорогом быстром 1G свитче и энергопотреблении

ваш вариант конфигурации может быть эффективен только в одном случае: все параллельные потоки полностью независиммы, и каждый блок задачи польностью влазит в ОЗУ и ресурсы одного узла, неплохо решаются вычислительные задачи с полным отсутствием зависимостей в архитектуре «одна нода — один расчетный блок»

с другой стороны, в качестве кластерной рабочей станции подобная утилизация вполне интересная и имеет право на жизнь, и может оказаться выигрышным вариантом: на рабочей станции активно не более 2-3 тяжелых задач, остальные ресурсы тратятся на хранение гигабайтных вкладок в браузере, текстовые редакторы и редкие пробежки утилит по файловой системе

  • https://en.wikipedia.org/wiki/Single_system_image
  • https://en.wikipedia.org/wiki/Distributed_operating_system
  • https://en.wikipedia.org/wiki/Multikernel

Linux реализаций похоже нет:

  • https://en.wikipedia.org/wiki/OpenMosix (R.I.P 2008, kernel 2.4)

так что решение задачи в оригинальной постановке сводится по факту к освоению системного программирования в полном объеме: написать аналог ядра Linux обеспечивающий весь необходимый функционал DOS, адаптировать базовые библиотеки в т.ч. из поставки копиляторов GNU (libc, libatomic, gomp. ) и пересобрать всю систему до состояния, когда сможет работать весь компплект ПО который вы используете

возможно более простым решением может оказаться написание слоя виртуализации: переписать только слой всех системных библиотек, который использует ваше прикладное ПО, с реализацией функционала distributed POSIX поверх обычных дистрибутивов, поставленных на каждый узел, или гипервизоров (желаю много весеслья с исходниками Xen и libgcc/libstdc++ 😎

с практической точки зрения:

  • ищите задачи с минимальным объемом обмена данными между потоками, и
  • пишите свое ПО: смотрите в сторону готовых распределенных платформ для веб/микросервисов, требующие для работы минимальных ресурсов
  • перетаскивайте бизнес-процессы в вашей конторе на веб-технологии, чтобы можно было раздать хилое железо юзерам в качестве терминалов/запускалок браузеров

к сожалению, насколько знаю бесплатных реализаций распределенного Smalltalk не существует, а то бы в первую очередь посоветовал его — как вариант, искать библиотеки для программирования на распределенном обмене сообщениями между объектами для mainstream языков

Как соединяются компьютеры — Введение в интернет

Когда вы объединили с другом два компьютера для совместной игры, создалась компьютерная сеть — система, внутри которой компьютеры обмениваются информацией.

Информация — это то, что можно передать на другой компьютер: от сообщений в чате до результатов вычислений сложных математических формул.

В этом курсе мы не будем подробно разбираться, как формируются компьютерные сети. Эта обширная тема, которая изучается в колледжах и институтах на отдельном предмете. Нам достаточно разобраться в концепции построения сетей.

Из этого урока мы поймем, как подключить два компьютера в сеть и какая разница в подключении сотни устройств. Еще затронем тему оборудования, которое помогает объединять тысячи компьютеров в одну сеть.

Как соединяются компьютеры

Есть три способа, с помощью которых можно соединить компьютеры:

  • Проводной тип соединения — используются провода, которые физически соединяют компьютеры друг с другом
  • Спутниковые сети — компьютеры соединяются с помощью спутникового сигнала
  • Беспроводной тип соединения — используется специальное устройство, которое подключается к интернету и «раздает» его с помощью радиоволн

В этом уроке рассмотрим только проводное и беспроводное соединения. Спутниковое соединение — это дорогой тип подключения, так как не получится построить такую сеть самостоятельно, если не запустить собственные спутники в космос.

Спутниковое соединение покрывает большую площадь — 100% поверхности Земли, но на качество связи влияет даже плохая погода. Такой тип сети используется в основном военными.

Теперь рассмотрим подробнее две другие сети — начнем с проводной.

Проводной тип соединения

Для создания простой проводной сети используется два компьютера и провод, который подключается между ними. Проводное соединение используется с момента создания первой сети и считается самым надежным способом подключения, так как отсутствуют препятствия в виде плохой погоды, кирпичных стен и других факторов, которые нарушают стабильную работу при использовании беспроводных соединений.

Рассмотрим подробнее проводное подключение: какое оборудование нужно, какие провода используются.

Чтобы соединить два компьютера в единую сеть с помощью провода, используется кабель с разъемом 8P8C и две сетевые карты. В компьютерных магазинах и в сообществе такие разъемы называют RJ-45, но это не совсем верно.

RJ-45 — стандарт, который описывает, как устройства подключаются, какие разъемы используются и какая область применения у такого подключения. Не беспокойтесь, если назовете разъем RJ-45 — в магазине вас поймут.

Провод с разъемом 8P8C называют патч-корд из-за английского названия patching cord — соединительный шнур. Еще его называют коммутационным шнуром, коммутационным кабелем и соединительным кабелем.

Вот так выглядит провод с разъемом 8P8C:

Такой провод подключается к обоим компьютерам. Для этого нужны сетевые карты. У них есть специальные разъемы для подключения. Карты бывают разных видов:

  • Встроенные в материнскую плату
  • Отдельные модули, которые подключаются к материнской плате
  • Устройства с USB кабелем, которые подключаются к телефону, планшету, компьютеру

Чтобы подключить два компьютера через патч-корд, дополнительное оборудование не требуется. Нужно только подключить провод и настроить сами компьютеры. Это отдельная тема, которая не входит в рамки этого курса, поэтому научиться настраивать компьютеры предстоит отдельно.

Сеть из двух компьютеров выглядит так:

Представим ситуацию, к нам решил подключиться еще один игрок. Теперь нам нужно соединить три компьютера. Но на двух первых устройствах сетевые карты уже заняты. В этом случае каждому компьютеру можно докупить сетевую карту и соединить патч-кордами.

Это дорогой подход, так как придется докупить три сетевые карты. Если в сети появится четвертый компьютер, то на каждом компьютере должно быть по три сетевые карты. Чем больше компьютеров, тем больше сетевых карт и проводов нужно.

Чтобы подключить больше двух компьютеров, используют дополнительные устройства — коммутатор или свитч.

Коммутатор — это устройство с десятком сетевых карт, а компьютеры подключаются к нему. Так можно не покупать новые сетевые карты и большое количество проводов. Коммутаторы соединяют компьютеры с помощью патч-кордов и хранят данные о компьютерах в сети, чтобы перенаправлять информацию нужному устройству.

Наша компьютерная сеть теперь выглядит так:

Компьютеры подключаются к одному коммутатору и обмениваются информацией. Количество устройств ограничено только тем, сколько выходов у коммутатора.

В большой сети с сотнями компьютеров одного коммутатора недостаточно. Чтобы объединить много компьютеров, соединяют несколько коммутаторов друг с другом:

Так строятся сети внутри компаний и предприятий.

Проводной тип соединения — это самый надежный способ передачи информации, так как на него почти не влияют наводки и плохая погода. У такого соединения есть альтернатива, для которой провода не нужны. Рассмотрим этот тип подробнее.

Беспроводной тип соединения

Беспроводное соединение отличается от проводного тем, что для него не нужны провода. Компьютеры соединяются с помощью радиосигналов, которые принимают и передают специальные приемники в компьютерах.

Распространенный вид беспроводного соединения — Wi-Fi. Сегодня под этим названием используется несколько стандартов, которые обеспечивают связь на разных скоростях.

Wi-Fi не единственный способ беспроводного соединения. Чтобы связать оборудование друг с другом, используют Bluetooth-соединения и инфракрасное соединение. Например, по Bluetooth можно подключить к ноутбуку наушники, клавиатуру и мышь. Тип соединения определяет только способ подключения, но не то, для чего это используется. Поэтому Wi-Fi — это не интернет, а только способ соединения устройств друг с другом.

Чтобы создать беспроводную сеть, используется точка доступа. Это устройство похоже на коммутатор, но данные передаются через радиочастоты:

С помощью точки доступа в сеть объединяют компьютеры, ноутбуки, смартфоны, принтеры, телевизоры.

Преимущество беспроводного соединения — удобство, так как между компьютерами не нужно прокладывать провода. Но такой способ связи накладывает ограничения:

  • Покрытие. Беспроводные технологии используются в небольших помещениях, так как не передают данные на большие расстояния. Создатели стандартов любят говорить о большом покрытии, но это возможно только в чистом поле
  • Помехи. Радиосигнал не изолирован и подвержен помехам. Даже бетонная стена может стать преградой. Поэтому точки доступа располагают так, чтобы сигнал не проходил через одну или две стены

Беспроводное соединение набрало популярность в последние десятилетия из-за удобства. При этом оно может использоваться одновременно с проводным типом.

Совместное использование проводного и беспроводного соединения

Разные виды соединений могут использоваться внутри одной сети. Например, в квартиру проведен интернет по проводному соединению. Кабель подключается в точку доступа Wi-Fi, который создает беспроводное соединение в квартире.

Допустим, стационарный компьютер могут подключить к сети с помощью провода, а ноутбук — с помощью Wi-Fi:

В этом случае в квартире одновременно используется проводное и беспроводное соединения.

Мы рассмотрели, как объединяются компьютеры, а также разобрали типы соединения и их принципы работы. Проводное и беспроводное соединения подходят как для личного пользования компьютером, так и для работы крупной компании. Выбор зависит от возможностей и желания пользователей.

Еще стоит разобраться, какие сети называют локальными, а какие — глобальными. Так вы сможете понять, какой тип сети подойдет для компании, в которой работаете, а что лучше выбрать для игры с друзьями.

Выводы

  • Чтобы соединить компьютеры, используется один из трех типов соединения: проводной, беспроводной или спутниковый
  • Два компьютера соединяются патч-кордом, но такая схема дорогая при подключении трех и более компьютеров, поэтому нужно искать другой подход
  • Чтобы создавать сети из нескольких компьютеров, используются коммутаторы, которые можно подключать друг к другу. Так создаются сети из сотен компьютеров
  • Беспроводное соединение удобно пользователю, но у него есть ограничения на расстояние передачи, а еще оно подвержено наводкам
  • Проводной и беспроводной типы сетей можно объединять в одном помещении и устройстве

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

  • Статья «Как учиться и справляться с негативными мыслями»
  • Статья «Ловушки обучения»
  • Статья «Сложные простые задачи по программированию»
  • Вебинар «Как самостоятельно учиться»

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Как объединить мощность двух компьютеров в одну (ПК и ноутбук)?

Можно-ли объединить мощность двух компьютеров в одну. В частности ПК (Windows 7) и ноутбук (Ubuntu 14.04). По гуглил но никакого практического примера не нашел. Говорят про то что каким то образом надо сделать кластер (главную) и добавить второй кластер, но как это сделать не написано, не смог найти.

1. Можно-ли объединить мощность двух компьютеров в одну?
2. Как это сделать (есть ли руководство, статья, туториал)?

UPD: например работаю в Photoshop’е с большими фотографиями или рендерю видео и тут у ПК не хватает сил осилить эту нагрузку, он начинает сильно тормозит. И вот здесь хотелось бы подключит ноут чтобы объединить мощность, .

  • Вопрос задан более трёх лет назад
  • 48526 просмотров

Как из двух пк сделать один мощный?

Здравствуйте!
Посоветуйте как из двух мощных компов сделать один суперкомпьютер.
Конфиги компов:
1)
CPU Type HexaCore Intel Core i7-4960X Extreme Edition, 3600 MHz (36 x 100)
Motherboard Name Asus Rampage IV Black Edition (2 PCI-E x1, 4 PCI-E x16, 8 DDR3 DIMM, Audio, Gigabit LAN, WiFi)
Motherboard Chipset Intel Patsburg X79, Intel Ivy Bridge-E
System Memory 65475 MB (DDR3-1600 DDR3 SDRAM)
Video Adapter NVIDIA GeForce GTX 650 (2 GB)

2)
CPU Type HexaCore Intel Core i7-4960X Extreme Edition, 4000 MHz (40 x 100)
Motherboard Name Asus Rampage IV Black Edition (2 PCI-E x1, 4 PCI-E x16, 8 DDR3 DIMM, Audio, Gigabit LAN, WiFi)
Motherboard Chipset Intel Patsburg X79, Intel Ivy Bridge-E
System Memory 65475 MB (DDR3-1600 DDR3 SDRAM)
Video Adapter NVIDIA GeForce GTX 650 (2 GB)

Есть еще старенький сервер(шумит сильно), можно его задействовать.
Тип ЦП 2x QuadCore Intel Xeon E5405, 2000 MHz (6 x 333)
Системная плата Intel Alcolu S5000PAL (1 Adaptive Slot, 1 PCI-E Riser Slot, 8 FB-DIMM, Video, Dual Gigabit LAN)
Чипсет системной платы Intel Blackford 5000P
Системная память 8185 МБ

Оба используются для расчетов в ANSYS HFSS, последнее время стало не хватать ресурсов компов (из последнего симуляция не запустилась т.к. требовала больше чем 64 гб памяти).

1) Хотелось бы получить конфигурацию в которой в диспетчере задач отображалось 12 ядер и 128гб оперативки для приложений. Приложения использовали эти ресурсы как один пк такое возможно?
Имею начальные навыки работы с Линукс и Вин сервер.
2) Погуглил про Open Mosix. Можно ли развернуть кластер с помощью Mosix, а поверх например установить Proxmox + Windows.

Хотелось бы загрузить все ядра одной задачей. В будущем планирую на нем рендерить 3д.
Кто сталкивался с подобным, какие варианты посоветуете?

  • Вопрос задан более трёх лет назад
  • 26844 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *