Назад | Перейти на главную страницу

Как объединить несколько машин в один кластер, чтобы они работали как одна, чтобы запускать несколько виртуальных машин на этой единственной машине?

Как взять несколько компьютеров и заставить их работать как один, так что все их процессоры и память теперь объединены, и вы запускаете любое приложение, так что вы запускаете их на одном очень быстром компьютере. Таким образом, его можно использовать для запуска виртуальных машин (в программном обеспечении, таком как vmware).

С какой операционной системой (-ами) это можно сделать? Или какой софт нужен?

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

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

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

Если взять универсальную одноузловую операционную систему, такую ​​как Linux, и преобразовать ее в кластер в стиле SSI, потребуется много переработать внутреннее устройство ядра. Такие понятия, как локальность памяти (см. Также: ) чрезвычайно важны в такой системе, и стоимость переключения процесса на другой процессор может быть намного выше. Во-вторых, очень важна концепция, которой в действительности нет в Linux, расположение процессора; если у вас многопоточный процесс, то наличие двух процессов, работающих на одном узле, и двух на другом, может работать намного медленнее, чем все четыре, запущенные на одном узле. Операционная система должна выбрать локальный или удаленный выбор для процессов, которые, вероятно, не заметят таких различий.

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

Примечание: я не специалист в этой теме.

Насколько я понимаю, вы заинтересованы в высокопроизводительных компьютерных кластерах (в отличие от других кластерных подходов, таких как Высокая доступность или Балансировки нагрузки). Вы, вероятно, хотите Супер-, Сетка- или Распространено-вычисления.

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

Без специализированного оборудования (см. Например Межсоединение тора или InfiniBand) вы ограничены подключением компьютеров через Ethernet (что означает, что вы можете выполнять распределенные или сетевые вычисления). Но не стоит забывать или недооценивать разницу в скорости локальной высокоскоростной компьютерной шины в отличие от Ethernet!

Теперь вопрос, следует ли вам стремиться к грид- или распределенным вычислениям, во многом зависит от задач, которые вы хотите выполнить. С таким узким местом, как Ethernet, сетевые или распределенные вычисления имеют значение только для тактов / приложений, которые не должны быть очень отзывчивыми и должны выполнять очень ресурсоемкие задачи. Что (в широком смысле дисквалифицирует любое приложение, не имеющее научного характера. Кроме того, приложение, вероятно, должно быть запрограммировано таким образом, чтобы оно могло в полной мере использовать преимущества распределенной природы своего хоста.

Если вам все еще интересно, вот список совместимых операционных систем: Единый образ системы

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

Например, есть кластеры базы данных (скажем, кластеры Oracle RAC или MSSQL), которые только для загрузки базы данных могут быть настроены для работы как единое целое - обычно для повышения производительности и / или устойчивости.

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

Поэтому, когда мы говорим о «кластере», на самом деле мы имеем в виду «кластер, выполняющий xxxxx».

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