Как объединить мощность нескольких компьютеров под управлением одной 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 золотой знак 13 13 серебряных знаков 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,219 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 языков
Как объединить 2 мощности компьютеров в одну, как это сделать в MT5
В метатрейдере есть локальные агенты, которые можно добавить, если имеется еще 1 компьютер. Можно ли узнать, если я пишу свой софт, реально ли объединить мощности двух компьютеров локально, но для моей программы? Кто-нибудь думал о подобном?
- Собираю команду для развития МО (Дерева решения/леса) применительно к трендовым стратегиям
- Мы запускаем облачный сервис MQL5 Cloud Network!
- Вопросы от «чайника»
Alexey Volchanskiy 2018.02.21 15:19 #1
Fresto :
В метатрейдере есть локальные агенты, которые можно добавить, если имеется еще 1 компьютер. Можно ли узнать, если я пишу свой софт, реально ли объединить мощности двух компьютеров локально, но для моей программы? Кто-нибудь думал о подобном?
Стандартными средствами нельзя.
Как соединить два компьютера друг с другом кабелем?
Если нет возможности подключить один компьютер к другому посредством беспроводной сети Wi-Fi или Bluetooth, остается последний вариант – кабельное сопряжение. Для этого понадобится всего один кабель и немного времени, а также простая инструкция, которая подробно описана далее.
Подключение через Ethernet
- Откройте панель управления в операционной системе.
- Зайдите в пункт «Центр управления сетями и общим доступом».
- Выберите «Изменение параметров адаптера».
- В окне сетевых подключений укажите локальную сеть.
- В открывшемся окне кликните на «Свойства».
- Дважды кликните на «Протокол Интернета версии 4 (TPC/IP4V).
Эти действия одинаковы для обоих сопрягаемых компьютеров. Далее на первом ПК введите IP-адрес 192.168.1.1, а на втором 192.168.1.2. В обоих случаях указывается маска 255.255.255.0. После корректного ввода указанных IP-адресов сохраните настройки и перезагрузите оба устройства. Если все сделано правильно, они будут доступны в сетевом окружении по зарегистрированным адресам.
Обратите внимание: для соединения двух персональных компьютеров подходит далеко не любой Ethernet-провод. Задача может быть выполнена только в случае использования кабеля с обратным обжатием с обеих сторон. Дело в том, что существует два способа обжима – прямой и обратный. Первый используется для сопряжения с маршрутизатором, а вот второй – для присоединения к ПК.
Описанный способ работает как с полноразмерными ПК, так и с ноутбуками, которые оснащены Ethernet-разъемами. В то же время для большинства моделей этот вариант необязателен, так как многие ноутбуки по умолчанию комплектуются модулем Wi-Fi для беспроводной коммутации.
Сопряжение посредством USB
Это достаточно экзотический и не самый удобный способ для сопряжения двух ПК, однако о нем тоже стоит рассказать, как об альтернативе рассмотренному выше методу. Сразу стоит отметить, что обыкновенный двухсторонний USB-провод для таких целей не подойдет. Нужно приобрести специальный кабель с чипом, который дает возможность построить LAN на базе USB-подключения.
Порядок организации локальной сети в рамках рассматриваемого способа выглядит вот так:
- Подключите специальный кабель к USB-портам обоих системных блоков.
- Установите драйвера, которые обычно идут на диске вместе с проводом.
- Дождитесь, пока в списке устройств не появятся виртуальные адаптеры.
- Кликните на одном из адаптеров и в окне свойств выберите протокол TCP/IPv4.
- Укажите IP-адрес 192.168.1.1 с маской 255.255.255.0 и сохраните настройки.
- Аналогичные действия проделайте на втором ПК, но с адресом 192.168.1.2.
После выполнения перечисленных манипуляций оба сетевых устройства должны появиться в LAN.
Качество и устойчивость соединения во многом зависит от используемого кабеля. Именно поэтому не стоит для коммутации компьютерного оборудования использовать откровенно дешевую продукцию в целях экономии. В противном случае потратитесь в два раза больше на замену кабеля. Заказывайте провода только от известных брендов в проверенном интернет-магазине.
Организуем домашнюю сеть за полчаса: ничего сложного
Объединить несколько компьютеров между собой можно проще, чем вы думаете. Немного времени, и можно будет легко передавать файлы напрямую и пользоваться общей периферией.
Когда в одном доме находится несколько компьютеров, возникает потребность объединить их все в одну сеть для быстрого доступа к общим файлам и обмена информации. На первый взгляд, кажется, что для организации домашней сети потребуется специальное дорогостоящее оборудование, однако это не так. Стоимость такой системы очень низкая и доступна для кошелька каждого пользователя. В сегодняшней статье мы расскажем, как подключить и настроить локальную сеть.
Что для этого нужно
- Несколько компьютеров, которые будем соединять.
- Несколько метров кабеля. Если вы планируете создать локальную сеть с помощью Wi-Fi, то потребуются соответствующие адаптеры для каждого стационарного компьютера. Для ноутбуков такие адаптеры не нужны.
- Инструмент для обжимки, который позволяет устанавливать коннекторы на концы проводов.
- Сами коннекторы, которые называются RJ45. Потребуется 2 штуки для каждого соединительного провода. То есть если планируется объединить 3 компьютера, то соответственно необходимо 6 коннекторов. Если интернет-кабель голый, то еще один коннектор и для него. Итого в конкретном случае — 7 коннекторов.
- Маршрутизатор или Wi-Fi роутер, которые будет выполнять функцию соединительной точки для каждого устройства.
Как создать локальную сеть
Для начала займитесь кабель менеджментом: продумайте как будут проложены провода, отрежьте необходимую длину и обожмите каждый провод с двух сторон. Затем подсоедините все компьютеры к маршрутизатору. Убедитесь, что в маршрутизаторе достаточно слотов расширения, чтобы подключить все устройства. Обязательно обратите внимание, что при подключении кабеля в материнскую плату, загорелся соответствующий индикатор рядом с разъемом. Это сигнализирует о том, что подключение произведено правильно. На роутере индикаторы находятся спереди, поэтому рядом с подключенным коннектором никакая лампочка не загорается. После этого можно переходить к программной настройке.
Принцип создания самой простой сети одинаковый для любых версий операционных систем, в том числи и для устаревших версий. Исключения могут составлять корпоративные сети с большим количеством подсетей.
После подключения оборудования, первым делом необходимо проверить рабочую группу. Она должна быть одинаковая на всех компьютерах. Для этого нажмите комбинацию клавиш Win + R и в появившемся окне введите команду sysdm.cpl.
Для изменения рабочей группы достаточно просто нажать «изменить» в категории «Имя компьютера» в свойствах системы.
Затем нужно зайти в центр управления сетями и общественным доступом. Для этого нажмите уже знакомую комбинацию клавиш Win + R и введите команду control.exe /name Microsoft.NetworkandSharingCenter. В левой части окна выберите пункт «Изменить дополнительные параметры общего доступа»
В новом окне включите следующие функции: сетевое обнаружение, общий доступ к файлам и принтерам. В самом низу можно включить или отключить защиту паролем. Также вы можете настроить доступ, чтобы пользователи могли читать и записывать файлы в общедоступных папках. На этом первый этап настройки заканчивается если роутер в автоматическом режиме назначает динамические адреса. Если вы используете маршрутизатор или устройства подключены напрямую, то могут потребоваться дополнительные настройки.
Настройка сети
Зайдите в центр управления сетями и общественным доступом с помощью вышеуказанной команды. В левой части окна выберите «Изменение параметров адаптера«.
В новом окне выбираем подключение по локальной сети, нажимаем по нему правой кнопкой мыши и заходим в свойства. Далее выбираем пункт «IP версии 4 (TCP/IPv4)» и снова заходим в свойства.
Задаем следующие настройки:
- IP-адрес: 192.168.0.100
- Маска подсети: 255.255.255.0
- Основной шлюз: 192.168.0.10
На каждом последующем компьютере делаем всё тоже самое, только в последнем значении указываем другое число: 192.168.0.101 на втором устройстве, 192.168.0.102 на третьем устройстве и так далее.
После данных настроек сеть должна заработать. Если этого не произошло, а вы уверены, что всё сделали правильно, то проверьте настройки брандмауэра и антивируса. Они могут ограничивать доступ к сети. Для проверки, попробуйте их на время отключить и если после этого сеть заработает как надо, то вы нашли причину.
Настройка общих папок
Для этого нажмите правой кнопкой мыши на любой папке и выберите свойства. В появившемся окне во вкладке «Доступ» перейдите в меню «Общий доступ».
Затем добавьте группу в список. Установите уровень разрешений (сможет ли выбранная группу добавлять файлы в папку или нет) и нажмите «Поделиться». После этого запустится непродолжительный процесс предоставления разрешений.
Возвращаемся в свойства папки и переходим во вкладку «Безопасность». Нажимаем на пункт «Изменить».
Введите имя группу и нажмите «Ок».
После этого вернитесь к предыдущему окну и настройте разрешения.
Читайте также:
- Что такое Wi-Fi? Просто о сложном
- Удваиваем скорость домашней сети: практические испытания технологии агрегирования каналов