Как настроить «настольный» кластер Linux для «бедняков»?

12

На рынке есть несколько небольших устройств Linux / Android с процессором ARM 1 ГГц, 512 МБ ОЗУ и cca. 4 Гбайт хранилища за 35-40 долларов. Если я куплю 5 штук, это будет всего около 200 долларов.

Скажем, у нас их 5-10 штук, и мы решили основные вещи, например, они запускают не слишком редкий вид дистрибутива Linux (скажем, Debian), у нас есть root-доступ, и они подключены к локальной сети, с IP. Итак, все готово для создания кластера (я думаю).

У нас есть настольный компьютер или ноутбук (процессор x86 с частотой 2 ГГц, 1-2 ГБ ОЗУ, несколько ГБ на жестком диске / SSD), который также работает под управлением стандартного дистрибутива Linux. Он имеет клавиатуру, мышь, монитор, мы хотим использовать его в качестве «внешнего интерфейса» кластера.

Итак, вопрос: как проще всего использовать мощность пары небольших компьютеров с настольным компьютером?

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

Скажем, я должен запустить браузер на маленьком компьютере, используя X11, он не съест память моего настольного компьютера. Если у меня открыто много страниц, я могу запустить еще одну на другом маленьком компьютере.

Я также могу запустить свой текстовый редактор на небольшом компьютере, мне нужно просто поделиться папкой, с которой я работаю. У него небольшая проблема: я использую Geany, и я запускаю компилятор нажатием клавиши F8, поэтому небольшая машина должна запустить компилятор на настольном компьютере. Я не против, если мне придется написать небольшой сценарий для этого.

Что бы вы посоветовали?

ern0
источник

Ответы:

5

Подход, который работает довольно хорошо для меня ...

  • Подключите один из тех устаревших мониторов, которые у вас лежат «на всякий случай», к каждому из небольших компьютеров ( RaspberryPi и т. Д.).

  • Запустите крошечную, быструю операционную систему на основе оперативной памяти, такую ​​как Puppy Linux (посмотрите, как она работает) на каждом компьютере.

  • Настройка SSH без пароля (предварительное распределение паролей) между всеми компьютерами.

  • Установите программное обеспечение KVM, например Synergy, на каждый компьютер, запустив «сервер» на компьютере с помощью клавиатуры и мыши. Остальные будут «клиентами». Синергия также может быть дополнительно запущена через SSH для лучшей безопасности.

  • Используйте предохранитель SSHFS (предпочтительно) или NFS для подключения устройств хранения при загрузке.

  • Вы также можете настроить загрузку по сети (PXE и ​​т. Д.).

Теперь у вас есть собственная консоль с несколькими мониторами!

При значительном увеличении размера видимого рабочего стола, 2,5-7 ГБ ОЗУ и 6-11 "ядер" вы можете запускать несколько браузеров (я считаю, что Chromium - самый простой в использовании ресурс) и, таким образом, иметь возможность просматривать множество страниц. сразу же, когда вы посмотрите на синтаксис команд и проведете другие исследования во время программирования или написания.

DocSalvager
источник
3

Я немного запутался, что именно вы хотите, чтобы ваш кластер делал. Звучит так, будто все, что вам нужно, это запускать программы и запускать их на разных компьютерах. Если это так, то SSH / X-forwarding / NFS должны помочь вам.

ИМХО, на самом деле это не имеет ничего общего с кластеризацией, это просто удаленное управление различными машинами. Я действительно должен спросить одну вещь, хотя. Зачем все это, приятель? В наши дни за 400 долларов вы можете собрать чудовище из ПК с большим количеством памяти для запуска настольных приложений :)

JustDanyul
источник
1

Кажется, вы ищете что-то вроде кластера Беовульфа .

Это кластер, разработанный для параллельных вычислений на нескольких «блоках».

Nils
источник
1
попробуйте прочитать часть ссылки "что не может сделать кластер Беовульф", которую вы разместили. после прочтения его поста мне не кажется, что Беовульф - это то, что он ищет :)
JustDanyul