Skip to content
August 29, 2011 / ahriman hpc mode

Windows HPC Server 2008, знакомство и первый кластер.

Привет.

Первым пробным камнем в сфере High Performance Computing корпорации Microsoft была разработка Windows Compute Cluster Server (Windows Server 2003). Прошло какое-то время, которое показало, что Microsoft может буквально без всякой предварительной подготовки войти на рынок кластерных систем и занять на нем какое-то место.

Однако функциональности WCCS было мало, мало также и тех, кто интересовался этим, и в Microsoft сделали ОС для кластерных систем на базе последней своей разработки – Server 2008. Так появился HPC (High Performance Computing) Server 2008.

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

“Кластер — это разновидность параллельной или распределённой системы, которая:
1. состоит из нескольких связанных между собой компьютеров;
2. используется как единый, унифицированный компьютерный ресурс».

Необходимо добавить, что суперкомпьютерный кластер предназначен для вычислений, а не для NLB или failover.

Немного теории о Windows HPC Server 2008

Минимальные требования для Windows HPC Server 2008, как рекомендуют Microsoft, следующие:

Processor (x64-based):

Minimum: 1.4 GHz

Recommended: 2 GHz or faster

RAM:

Minimum: 512 MB

Recommended: 2 GB or more

Available disk space:

Minimum: 50 GB

Recommended: 80 GB or more

Network adapters: >1 в большинстве случаев. Количество сетевых адаптеров зависит от топологии сети, которую вы выберите на этапе установки HPC Pack.

Различия между Windows Server 2008 и HPC Server 2008

HPC Server = Windows Server Standard, за исключением:

– HPC Server поставляется только в 64-битной версии;

– На HPC Server необходимо установить HPC Pack, пакет, содержащий в себе утилиты для обеспечения работы кластера: Cluster Manager, HPC Runtime etc.

(HPC Server)-related products

1) HPC Server – содержит в себе ОС + HPC Pack;

2) HPC Server OS – содержит в себе ОС;

3) HPC Pack – пакет, содержащий в себе утилиты для обеспечения работы кластера. Необходимо, чтобы HPC Pack был установлен на всех узлах, включая управляющий и клиентские компьютеры, с которых планируется использовать кластер;

4) HPC SDK – хидеры и библиотеки для HPC-разработки, распространяется свободно. Необходим для компиляции программ с MS-MPI.

Ограничения HPC Server 2008

– отключены IIS, Sharepoint, Exchange, MSSQL (за счёт особенностей лицензирования данных продуктов под HPC),

– основные ограничения накладываются на софт, который так или иначе использует вышеперечисленные сервисы. Так, если вы захотите запустить сервисы IIS, MSSQL или Exchange, вы получите ошибку. Например, TS Gateway и FTP не заработают в связи с зависимостью от IIS.

Однако, если необходим доступ к полной функциональности Windows Server Standard/Enterprise, можно приобрести лицензию и доставить HPC Pack.

C чего начать?

Первым делом необходимо определиться с компьютером, который будет иметь роль управляющего узла. Из своего опыта: если у вас гомогенная аппаратная среда, берите любой из узлов. Если же нет – исходите из того, что еще будет установлено на данном сервере (в идеале он должен быть управляющим и только им).

Забрать дистрибутив можно по ссылке. Установка HPC Server 2008 ничем не отличается от установки Windows Server 2008.

Следующим шагом определяем, как мы будем формировать наш кластер. Существует три метода добавления узлов в кластер:

– bare metal, в этом случае всё необходимое, включая ОС, устанавливается на узел в момент добавления в кластер;

– настроенные узлы с установленной вручную ОС;

– узлы из XML-файла. В XML-файле содержатся записи об узлах, при этом неважно, как планируется их вводить в кластер – bare metal или preconfigured.

Мы будем использовать настроенные узлы.

Развертывание кластера

Будем придерживаться следующего плана:

1) Планирование инфраструктуры;

2) Настройка "железа";

3) Настройка управляющего узла;

4) Настройка узлов-вычислителей;

5) Ввод узлов в кластер;

Планирование инфраструктуры

Первая задача – необходимо поднять домен для нашего кластера. Воспользуемся dcpromo со всеми настройками по умолчанию. Без Active Directory кластер работать не будет – HPC-утилиты используют доменные credentials для аутентификации и всё довольно органично завязано друг на друге. После этого устанавливаем и настраиваем DHCP-сервер. В данном посте DHCP мы использовать не будем, но он пригодится для дальнейших изысканий.

Конфигурация: 192.168.0.1 для домен-контроллера, 192.168.0.2 и 3 для узлов.

Настройка железа

В случае наличия лишнего NIC на управляющем узле пользуемся следующим сценарием:

1) Подключаем один NIC к Enterprise Network. Второй NIC, нужный для Private Network, пока не трогаем;

2) Открываем Network and Sharing Center;

3) Переименовываем подключенный NIC в Enterprise;

4) Переименовываем второй NIC в Private;

В случае отсутствия лишнего NIC нам необходимо создать loopback-заглушку для "обмана" HPC Pack.

1) Открываем Device Manager;

2) Нажимаем Add legacy hardware;

3) Next. Нажимаем Install the hardware that i manually select from a list;

4) Выбираем Network adapters. Next;

5) Выбираем Microsoft, в правом окошке выбираем Microsoft Loopback Adapter;

6) Выполняем шаги 3-4 из первой последовательности действий.

Настройка управляющего узла

1) Монтируем HPC Pack Express ISO и запускаем установщик. На управляющем узле необходимо выбрать вариант установки HPC Pack 2008 R2 Express.

<img src="http://habrastorage.org/storage1/ce6b58df/c2bf6da1/db1df576/d809120f.png"/&gt;

2) Выбираем Create a new HPC cluster by creating a Head Node.

<img src="http://habrastorage.org/storage1/ced2c74f/922754a2/12adea89/fbbe2b2d.png"/&gt;

3) Next.

4) Install.

В зависимости от ресурсов установка может занимать до 10 минут и более. В процессе кроме собственного instance SQL Server будут установлены роли DHCP, WDS, File Services и Network Policy and Access Services.

HPC Manager предлагает удобно структурированный To-Do список действий для настройки кластера.

<img src="http://habrastorage.org/storage1/af97d21a/76611e9f/368e11bf/80067b73.png"/&gt;

1) Configure your network.

<img src="http://habrastorage.org/storage1/561b344f/3c64bd95/c93b64e5/37198846.png"/&gt;

<i>На этом этапе необходим краткий ликбез.

Enterprise network – публичная сеть организации, в которой происходит основная работа пользователей

Private network – выделенная внутренняя сеть, по которой между узлами ходят пакеты (management, deployment, application traffic), связанные с кластерными коммуникациями.

Application network – выделенная сеть с высокой пропускной способностью и низкими задержками. Обычно используется для Message Passing Interface-коммуникаций между узлами. Ключевые слова для поиска: InfiniBand, Infinihost, ConnectX, NetworkDirect.

HPC Pack предлагает нам пять сетевых топологий, отличающихся методом соединения узлов между собой и соединения узлов и Enterprise-сети:

Topology 1: Compute Nodes Isolated on a Private Network

На мой взгляд, самая адекватно отвечающая всем требованиям безопасности и эффективности топологии. Именно её мы и будем использовать и именно для неё мы подключали/создавали второй NIC. В данной топологии только управляющий узел "смотрит" в Enterprise-сеть, узлы изолированы в Private-сеть.

Topology 2: All Nodes on Enterprise and Private Networks

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

Topology 3: Compute Nodes Isolated on Private and Application Networks

Узлы изолированы в приватной и application-сети. В таком случае необходимо иметь три NIC на управляющем узле, один из которых должен (но не обязан) быть от Mellanox и иже с ними.

Topology 4: All Nodes on Enterprise, Private, and Application Networks

Все узлы доступны во всех сетях.

Topology 5: All Nodes on an Enterprise Network

Все узлы находятся в Enterprise.

Мой опыт сообщает, что публиковать узлы в Enterprise есть только одна причина – если у нас есть что-то типа менеджера Matlab, который в случае своей работы должен иметь connectivity со всеми узлами.

Можно привести следующие рекомендации:

– не позволяйте APIPA адресам внедриться в конфигурацию вашего Enterprise адаптера на управляющем узле – в обязательном порядке должен быть динамический/статический IP-адрес;

– если вы выбрали топологию, в которой имеет место быть приватная сеть и собираетесь развертывать узлы из состояния bare metal, то убедитесь, что в сети нет PXE-серверов;

– отключите все DHCP-сервера в приватной и application сетях за исключением сервиса на управляющем узле

– если так получилось, что в вашем домене развернута политика IPSec Enforcement, вы можете столкнуться с определенными проблемами во время развертывания. Рекомендации приводятся разные, но самой адекватной считаю сделать управляющий узел IPsec boundary-сервером, чтобы узлы могли соединяться с ним во время загрузки PXE.

2) Как Enterprise Network Adapter выбираем тот NIC, который мы переименовывали в "Enterprise";

3) Как Private Network Adapter Selection выбираем оставшийся NIC;

4) В Private Network Configuration ничего не меняем, next;

5) В настройке Firewall Setup можем поменять конфигурацию Firewall, но я бы порекомендовал оставить все настройки на этой вкладке по умолчанию;

6) Configure.

Если после непродолжительной настройки в отчете нет ненужных покраснений, переходим к следующему пункту в To-Do.

7) Provide installation credentials. В данной настройке вам необходимо указать учетные данные аккаунта, имеющего права на ввод машин в домен. Естественно, строка должна быть вида DOMAIN\User. Данная настройка также необходима для развертывания узлов из состояния Bare Metal.

8) В следующем пункте To-Do, Configure the naming of new nodes, с помощью нехитрого синтаксиса указываем политику наименования узлов кластера. Поменяем %1000% на %1%. Необходимо помнить, что данная настройка имеет место только для развертываний узлов из состояния Bare Metal.

9) Create a node template;

10) На вкладке Node Template Type из четырех вариантов выбираем первый, Compute node template, то есть шаблон узла, который будет использоваться для узлов-вычислителей;

11) Оставим имя шаблона по умолчанию;

12) На вкладке Select Deployment Type выберем Without operating system. Поскольку мы используем в данном посте уже сконфигурированные узлы, нам нет нужды создавать шаблон с ОС внутри;

13) Указываем, необходимо ли включать в шаблон какие-либо апдейты.

Итак, с управляющим узлом мы пока закончили.

Настройка узлов-вычислителей и ввод узлов в кластер

1) Включаем узел в домен; именуем его согласно нашим конвенциям, например, winnode1;

2) Логинимся на узел под доменным аккаунтом и монтируем ISO Microsoft HPC Pack 2008 R2 Express;

3) В Select Installation Edition выбираем HPC Pack 2008 R2 Express. В Enterprise-версии есть дополнительные функции;

4) Все остальные настройки те же самые, за исключением Join an existing HPC Cluster by creating a new compute node. В Join Cluster в выпадающем меню должно быть имя управляющего узла.

Вот и всё. Давайте переключимся в HPC Manager на управляющем узле и увидим, что во вкладке Nodes Management появился наш узел.

Узел имеет Node State указанным в Unknown и Node Health как Unapproved.

Чтобы решить эту проблему, выделим узел и нажмем Assign node template, выбрав наш шаблон, который мы создали ранее. Для наблюдения за процессом так называемого provisioning выберем узел и нажмем Provisioning Log.

После окончания узел должен стать Offline и его Node Health OK. Выделим его и нажмем Bring Online. По поводу данного состояния – в случае Online узел может принимать участие в вычислениях, в Offline – нет. Можно использовать в вычислениях и управляющий узел, но не рекомендую.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: