LinuxForum.Fans
Тема

Состав вычислительного кластера

Автор: NordWest 9 сообщений 3256 просмотров
#192805

Здравствуйте!
Посоветуйте пожалуйста набор программных и аппаратных средств для создания вычислительного кластера. Есть видимо какое-то специализированное оборудование. Но если делать на "бюджетных" компонентах для использования как GPGPU? С чего начать, чтобы сделать кластер на одной машине, а затем можно было отмасштабировать на подобных компьютерах. Тут нашел сообщение о дистрибутиве Rocks. Но так как сам только с Дебианом знаком, то нуждаюсь в пояснении.
И вообще, как это делается? Ставится тот же Rocks для управления всем хозяйством, а в нем запускаются виртуальные машины хоть с Дебианом, хоть с виндой?

#192912

Во первых, кластер на одной машине не делается. Надо иметь как минимум две машины (можно виртуальные). Вот тебе и ответ про аппаратные средства. Ну и потребуется обеспечить скоростной канал связи между нодами кластера. Гигабитный канал, минимум. Хотя бы 2 гигабитные сетевые платы в серверах, соединенные кроссовером.
Второе - что ты понимаешь под кластером?
Простейший вариант - обеспечение отказоустойчивости (высокой доступности, HA). Для организации HA файловой системы можно посмотреть на drbd или glusterfs. И там и там есть и несомненные плюсы и отдельные минусы. Но и там и там - при выходе из строя одного узла кластера данные будут доступны на втором. То есть - не умрут. А по возвращении к жизни умершего узла - восстановятся и на нем.
Далее - отказоустойчивые сервисы. Для них - самое простое решение, но кластер только на двух нодах, heartbeat. Если один сервер кластера помирает, то HA-сервисы, запущенные на нем, поднимаются на выжившем. Если есть нужда поднять кластер на 3 нодах, то надо смотреть, например, на pecemaker. Но я с ним не работал, ничего не скажу.
Есть еще более далее, не отказоустойчивые решения (примитивные), а распределенные вычисления. Когда ноды кластера выделяют ему свои вычислительные мощности и они решают одну (или нескольно) задач совместно. На этот уровень я еще не поднимался.
Так скажи, что тебе надо?

#193021

Мне как раз нужен последний вариант, распределенные вычисления. Собственно поэтому и тема про вычислительный кластер. Т.е. система, первоначально на базе одной машины, ресурсы которой (процессоры CPU и GPU, память, дисковое пространство) распределяются между несколькими пользователями и их задачами. Т.е. про распределения дисков я ещё слышал, lvm например. Но пока не использовал. А вот деление остальных ресурсов, да ещё и на нескольких, в перспективе, машинах...

#193039
NordWest написал:
Мне как раз нужен последний вариант, распределенные вычисления. Собственно поэтому и тема про вычислительный кластер. Т.е. система, первоначально на базе одной машины, ресурсы которой (процессоры CPU и GPU, память, дисковое пространство) распределяются между несколькими пользователями и их задачами. Т.е. про распределения дисков я ещё слышал, lvm например. Но пока не использовал. А вот деление остальных ресурсов, да ещё и на нескольких, в перспективе, машинах...

LVM это не кластер. LVM это некая прослойка между сырыми дисками одного компьютера и логическими томами этого же компьютера, на которых развернута та или иная файловая система. LVM позволяет объединять несколько физических дисков одного компьютера в один большой том и работать с этим томом как с одной сущностью. LVM, насколько я помню, не объединяет диски нескольких компьютеров (хотя, могу и ошибаться). Объединение дисков нескольких компьютеров в один единый большой том позволяет сделать glusterfs в режиме strip. В любом случае я не являюсь сторонником стрипования дисков (особенно распределенного). Если накроется медным тазом один из дисков (серверов его отдающих), находящихся в таком массиве, то накрывется медным тазом весь стрипованый том. Только зеркалирование... Это первое.

Второе - а у тебя есть задача, которая может распределиться между ресурсами нескольких компьютеров? То есть имеет возможности такого распараллеливания вычислений. Ведь это, во первых, специальные технологии (подходы) программирования, а во вторых, далеко не всякая задача имеет возможности для распараллеливания (1С, например, тупо работает только на одном процессоре, а когда тот нагреется - перебрасывается тушкой на более холодный, свободный, хоть 100 процессоров поставь, но быстрее от этого 1С работать не станет).

Ты, вроде, хочешь построить нечто вроде "суперкомпьютера", то есть вычислителя, который объединяет ресурсы нескольких тысяч компьютеров и управляет их загрузкой... По моему это не в OpenSource делается. А так - покопай в сторону облачных технологий. Может там найдешь ответ на свою задачу.

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

#193069
NordWest написал:
Мне как раз нужен последний вариант, распределенные вычисления. Собственно поэтому и тема про вычислительный кластер.

о моему это не в OpenSource делается

http://www.physorg.com/news92674403.html

#193118
Cruiser78 написал:
LVM это не кластер. LVM это некая прослойка между сырыми дисками одного компьютера и логическими томами этого же компьютера, на которых развернута та или иная файловая система. LVM позволяет объединять несколько физических дисков одного компьютера в один большой том и работать с этим томом как с одной сущностью. LVM, насколько я помню, не объединяет диски нескольких компьютеров (хотя, могу и ошибаться).

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


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

Ну да, Вы понимаете кластер как отказоустойчивую систему хранения данных. Мне же действительно нужно что-то вроде суперкомпьютера. А тут без распределенных распаралеливанмых вычислений не обойтись. Иначе нет смысла объединять ядра для выполнения меньшего числа одновременных задач. Сейчас вот фактически сделан такой комп на Debian, 4 ядра. Системы управления ресурсами нет и просто стараемся не запускать больше 3-4 одновременных вычислений, чтобы системе не пришлось лишний раз заморачиваться по поводу переброски нагрузки между ядрами. Как то Вы скептически настроены относительно применения OpenSource на который я как раз возлагаю большие надежды.

http://www.physorg.com/news92674403.html

Вот человек привел заметку. Там примерно то, что надо, но на PS3. И говориться про Linux. Или вы имеете в виду, что готовых opensource-решений даже под Линукс не найти? Может кто-то знает. Всё равно надо ещё поискать, сложно конечно рассчитывать от данного форума получить ответ на такой узкий вопрос.

#193400

mogul82, спасибо, но чувствую глубоко копать придется.

А с ComputeMode кто-нибудь сталкивался, на практике? Или с Debian Cluster Components? Мне это как-то ближе.

Войдите или зарегистрируйтесь, чтобы ответить.