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

Обновлено: 07.07.2024

Вот несколько вопросов, я бы хотел, чтобы вы меня просветили.

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

Это не значит, что вы не можете объединить вычислительную мощность:

Если вы хотите каким-либо образом использовать дополнительный компьютер, крайне важно иметь возможность удаленного управления. Два способа сделать это через некоторый вид удаленного доступа (RDP, VNC) или альтернативно что-то вроде синергии +.

Одна из моих наиболее часто используемых строк - Да и Нет!

Да, это возможно - для определенных приложений, которые предназначены для работы таким образом. (Обычно известный как кластер - Дальнейшее чтение здесь)

Нет, невозможно (по крайней мере, насколько я знаю) взять два готовых компьютера, "связать" их вместе и получить объединенную память, вычислительную мощность и все остальное.

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

Необходимо понимать, что при запуске программы она поддерживает свое состояние, провоцируя ЦП перемещать память между регистрами жесткого диска, ОЗУ и ЦП, а также адреса различных компонентов (таких как видеокарты или сетевые карты). Проблема с использованием процессора с другого компьютера, чтобы помочь вам, что ему нужен доступ к той же памяти. А поддержание зеркального отображения памяти вашего компьютера на другом компьютере требует таких больших накладных расходов, что это легко побеждает цель добавления другого компьютера для повышения производительности :)

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

Если вам нужен способ объединения вычислительной мощности двух ПК в один, самый простой способ сделать это - настроить их оба в качестве хостов виртуальных машин с использованием программного обеспечения, такого как VMWare ESXi (предупреждаем, что для этого потребуется устройство с совместимым оборудованием) и создание группы ресурсов или кластера и создание виртуальной машины, которая использует ресурсы обоих компьютеров. Это НЕ даст вам полной скорости в 2 раза (вы потеряете ресурсы из-за виртуализации) и является ограниченным решением из-за вероятных требований совместимости, но это самый "правильный" ответ на ваш вопрос. Виртуальная машина будет работать как один ПК с вычислительной мощностью обоих хостов за вычетом накладных расходов, необходимых для поддержки виртуализации.

Я согласен с другими ответами:

Если вы говорите о разработке программного обеспечения для работы в распределенной (с несколькими компьютерами) среде, вот несколько советов:

В офисе валяется куча ненужных, рабочих системных блоков. Вот я и решил объединить их в единую вычислительную сеть, а по сути в обычный компьютер управляемый единой ОС, но представляющий собой 3+ системных блока.

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


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

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

[useless link: has been removed].

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


1,941 1 1 золотой знак 8 8 серебряных знаков 29 29 бронзовых знаков Эта статья про "кластер убунту" лишь говорит о написании парралельной программы на языке Fortran (господи прости) с использованием нескольких серверов, а никак не про объединение ресурсов разных серверов в одну linux систему. Да, коллеги. Что то вы слишом много плюсов поставили безполезному ответу (

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

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


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

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

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

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

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

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

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

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

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

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

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

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

нагуглил по этому вопросу Kerrighed
при помощи него это реализуемо? и есть ещё какие либо варианты?


Я русский, и ты меня оскорбляешь. Что у тебя есть в оправдание?

Продай один комп и проапгрейди другой.
Кластеры это вообще другое.




Goury
на поставленный вопрос это никак не отвечает, в моём понимании кластер это

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


По-моему тебе нужен тонкий клиент в виде vnc (если эти сотрудники там кинцо не смотрят то им хватит) - сотрудник ушел с объекта A на Б, подрубился к своей сессии и работает. Вернулся на А - опять же подключился к своей сессии на этом ПК и вперед. Либо x11vnc и рулить ПК а с ПК Б и наоборот.

alozovskoy ★★★★★ ( 16.03.15 11:48:37 )
Последнее исправление: alozovskoy 16.03.15 11:50:42 (всего исправлений: 1)


Как вариант nfs+x2go, т.е объединяется жетский диск в единое пространство и x2go для открытия сессии на другом пк.




и alozovskoy а если сель сойдёт? Причём она может сойти и в пункте А и в пункте Б. Но А постоянное место работы, а Б в частном случае как резерв.
Вариант общей тревоги для А и Б не рассматриваем. потому что это форс мажор. Руководству тут нечего сказать.
Суть в том, что нужно реалтайм, как в рейде синхронизация жёстких дисков обоих компьютеров. И как похоже выясняется из манов, Kerrighed полностью это реализует.
всем спасибо, анонимус иди в жопу. Если у кого есть варианты, рад буду услышать.


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

Kerrighed уже давно протух и разработка остановилась, так как ему так и не нашли полезное применение. Было какое-то решение для Xen (синхронизация двух работающих виртуалок), но по гигабиту оно тоже будет неюзабельно. Тут десяти то вряд ли хватит.

ИМХО наиболее реалистичное решение - синхронизация дисков (drbd?), а сервисы запускать только на одном из компьютеров, с другого удалённый доступ. Если компьютер с сервисами внепланово отключается - запускать те же сервисы на другом (данные везде идентичны).

Deleted ( 16.03.15 12:38:49 )
Последнее исправление: Deleted 16.03.15 12:39:11 (всего исправлений: 1)

И кстати kerrighed не обеспечивал отказоустойчивость, насколько я помню.

Deleted ( 16.03.15 12:40:22 )
Последнее исправление: Deleted 16.03.15 12:40:43 (всего исправлений: 1)


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

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

Можно попробовать хомяк засунуть в glusterfs, но ей наверное 2х машин будет маловато.


откуда всё это? мощности современных персоналок выше серверов 10 летней давности, получается тогда тоже нельзя было назвать связки серверов кластером?

alozovskoy mironov_ivan да просто во время тревоги юзер может быть не перед компом, и его сразу выведут. Но суть ясна, я просто хотел максимально прозрачно для пользователя, но оказывается эт что то совсем геморно. Ваши варианты куда более реальны. Спасибо.


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


Два это не группа, это пара.
Гигабит это не высокоскоростной канал; высокоскоростной это такой, который имеет большую пропускную способность и меньшую латентность чем хотя бы узкие места. Гигабит имеет лаг в единицы миллисекунд и работает даже медленнее современных НЖМД, не говоря уже о твёрдотелах.
Потому я и говорю: толку с такого кластера не будет, проще комп купить более мощный.

А если денег на решение задачи нет, то стоит задуматься в целесообразности изобретения решения вообще.

Goury ★★★★★ ( 16.03.15 15:12:53 )
Последнее исправление: Goury 16.03.15 15:13:59 (всего исправлений: 3)

гугли - ha cluster
тонкие клиенты в помощь
странно, что гуру не понабежали и не натыкали еще

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


имел ввиду, да.
избалован я мыслями о том, что бизнес для зарабатывания денег должен тратить деньги.

Mosix так умел, но давно помер. Помянем.

мощности современных персоналок выше серверов 10 летней давности

А при чем тут мощность? Вопрос в том какие задачи решает кластер, а какие десктоп.

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


ну. присобачь туда люстру. в чём проблема?


а причём тут тогда пользователь? Что есть кластер в твоём определении?


вот это было прикольно почитать, спасибо)


Goury

Наиболее распространенный размер для кластера HA является двухузловый кластер

это я погуглив ha cluster

Гигабит это не высокоскоростной канал

в своё время был высокосроростным, да и всё зависит от задач

А если денег на решение задачи нет, то стоит задуматься в целесообразности изобретения решения вообще.

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


sergej давайте без наркомании, я пытался из пк сделать кластер. Помойму задача из персоналки сделать персональный сервер не должна удивлять. Тут везде админы локалхостов.


darkenshvein просто читай сначала, <>while(I_got_it)

Такой подход не столько доводит до решения любых проблем деньгами, сколько доводит до отброса разработки заведомо бесполезных решений.

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

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


У меня такое подозрение, что ты хочешь такого

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

Скажи, например, при форс-мажоре на одном из объектов комп на этом объекте будет физически уничтожен или у него будет временный даунтайм, или у него гарантированные 100% фуллтайм работоспособность и сетевая доступность?




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


нет я просто пытаюсь улучшить производительность и так работающей схемы. Думать о людях плохо?

Почему плохо? Нормально всё. Хочешь думать — думай. Просто это не кластер будет, а какое-то другое тех. решение. Может, и свой собственноручно написанный велосипед, который в твоих условиях будет лучше промышленных решений.

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

Ну, например, по предоставленным тобой данным через монитор я вижу, что тебе идеально подходит teamviewer. Да не будет автоматики. Но люди не отягащённые it-знаниями легко понимают концепцию переносной флешки и также легко понимают концепцию работы teamviewer.

Организуем домашнюю сеть за полчаса: ничего сложного

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


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

Что для этого нужно

  1. Несколько компьютеров, которые будем соединять.
  2. Несколько метров кабеля. Если вы планируете создать локальную сеть с помощью Wi-Fi, то потребуются соответствующие адаптеры для каждого стационарного компьютера. Для ноутбуков такие адаптеры не нужны.
  3. Инструмент для обжимки, который позволяет устанавливать коннекторы на концы проводов.
  4. Сами коннекторы, которые называются RJ45. Потребуется 2 штуки для каждого соединительного провода. То есть если планируется объединить 3 компьютера, то соответственно необходимо 6 коннекторов. Если интернет-кабель голый, то еще один коннектор и для него. Итого в конкретном случае — 7 коннекторов.
  5. Маршрутизатор или Wi-Fi роутер, которые будет выполнять функцию соединительной точки для каждого устройства.

Как создать локальную сеть

Для начала займитесь кабель менеджментом: продумайте как будут проложены провода, отрежьте необходимую длину и обожмите каждый провод с двух сторон. Затем подсоедините все компьютеры к маршрутизатору. Убедитесь, что в маршрутизаторе достаточно слотов расширения, чтобы подключить все устройства. Обязательно обратите внимание, что при подключении кабеля в материнскую плату, загорелся соответствующий индикатор рядом с разъемом. Это сигнализирует о том, что подключение произведено правильно. На роутере индикаторы находятся спереди, поэтому рядом с подключенным коннектором никакая лампочка не загорается. После этого можно переходить к программной настройке.

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

После подключения оборудования, первым делом необходимо проверить рабочую группу. Она должна быть одинаковая на всех компьютерах. Для этого нажмите комбинацию клавиш Win + R и в появившемся окне введите команду sysdm.cpl.

Организуем домашнюю сеть за полчаса: ничего сложного

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

Организуем домашнюю сеть за полчаса: ничего сложного

Организуем домашнюю сеть за полчаса: ничего сложного

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

Настройка сети

Зайдите в центр управления сетями и общественным доступом с помощью вышеуказанной команды. В левой части окна выберите «Изменение параметров адаптера«.

Организуем домашнюю сеть за полчаса: ничего сложного

В новом окне выбираем подключение по локальной сети, нажимаем по нему правой кнопкой мыши и заходим в свойства. Далее выбираем пункт «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 на третьем устройстве и так далее.

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

Настройка общих папок

Для этого нажмите правой кнопкой мыши на любой папке и выберите свойства. В появившемся окне во вкладке «Доступ» перейдите в меню «Общий доступ».

Организуем домашнюю сеть за полчаса: ничего сложного

Организуем домашнюю сеть за полчаса: ничего сложного

Возвращаемся в свойства папки и переходим во вкладку «Безопасность». Нажимаем на пункт «Изменить».

Читайте также: