Практическое руководство по параллельным вычислениям
ПРОЕКТ ThinCluster
Рассмотрим еще один вариант быстрого развертывания кластера. Прежде чем перейти к технологическим
вопросам, определим требования, которые мы предъявляем нашему будущему кластеру.
Установка кластера должна быть максимально простой
Установка должна быть выполнена только на одной машине - сервере кластера
Узлы кластера не должны требовать какой-либо конфигурации
Кластер должен позволять использовать в качестве узлов бездисковые станции или
машины, умеющие выполнять удаленную загрузку по сети (например, в случае использования для
кластера сети рабочих станций)
Кластер не должен требовать синхронизации файловой системы, вместо этого должна использоваться
сетевая файловая система
Сеть кластера у нас будет 192.168.1.0/24.
Опишем простую процедуру установки подобного кластера. Действия, которые необходимо выполнить следующие:
Устанавливаем на будущий сервер кластера операционную систему Linux. Например
используем для этого дистрибутив ALT Linux.
Система может быть установлена как основная, так и как дополнительная (если используется мультизагрузка).
Конфигурируем сетевой интерфейс. В качестве ip-адреса сервера выбираем 192.168.1.33. В качестве имени сервера указываем node33.cluster.org.
Устанавливаем в систему необходимые компиляторы, SSH-клиент, SSH-сервер, NFS-сервер, TFTP-сервер, DHCP-сервер.
Прописываем в файле /etc/exports каталоги в кторые будет осуществляться доступ по сети.
Создаем в системе пользователя mpiuser с uid=500, gid=500 и домашней директорией /home/mpiuser
Создаем каталог /home/mpiuser/.ssh, содержимое которого берем из архива mpiuser-ssh.tar.gz
Устанавливаем в каталог /usr/local/mpich систему MPICH. Как это делать читаем здесь.
Создаем конфигурационный файл DHCP /etc/dhcpd.conf, в котором описываем загружаемые узлы кластера. Пример такого
конфигурационного файла можно взять в архиве dhcpd.conf.tar.gz.
В этом файле описан только один узел, тот, которому присваивается адрес 192.168.1.199. Этот узел является главным и он должен
загружаться первым. Вы должны будете поправить файл dhcpd.conf, прописав реальный MAC-адрес сетевой карточки главного узла.
Создаем каталог /usr/local/linux/ws, в который помещаем корневую файловую систему для узлов кластера.
Образ файловой системы берем из файла nfsroot.tar.bz2.
Извлечение из архива производим командой tar jxvfp nfsroot.tar.bz2.
В корневую директорию TFTP-сервера (/var/lib/tftpboot) кладем ядро Linux, которое будет загружаться на узлах сервера.
Ядро можем найти в файле bzImage.tar.gz.
Туда же кладем начальный загрузчик PXE, который находим в архиве pxelinux.tar.gz.
В каталог /var/lib/tftpboot/pxelinux.cfg кладем конфигурационные файлы, описывающие параметры загрузки для каждого
узла кластера. Файлы можно взять в архиве pxelinux.cfg.tar.gz.
Узел, которому DHCP присваивает адрес 192.168.1.199, является главным и должен загружаться первым.
Кластер готов. Теперь мы можем последовательно загрузить узлы кластера, начиная со 192.168.1.199
и выполнить на нем параллельную программу. Для этого после загрузки всех узлов логинимся к серверу
как пользователь mpiuser и запускаем параллельную программу, как это описано ранее.
Базовая операционная система сервера кластера может быть как основной и единственной ОС компьютера,
который выступает в роли сервера кластера, так и дополнительной ОС при использовании мультизагрузки.
В качестве узлов кластера могут выступать как бездисковые станции, поддерживающие режим удаленной
загрузки (PXE или с дискет),
так и обычные рабочие станции. В последнем случае файловые системы рабочих станций не используются
(хотя и могут).
Загрузка кластера должна выполняться строго последовательно, во избежание возможных глюков:
Загружаем операционную систему сервера кластера
Выполняем загрузку главного узла - станции, MAC-адресу которой присваивается ip 192.168.1.199
Последовательно загружаем все остальные узлы кластера.
В текущей версии проекта кластер жестко привязан к ip-адресам. Сеть кластера должна быть 192.168.1.0/24.
Адрес сервера кластера должен быть 192.168.1.33.
Адрес главного узла кластера должен быть 192.168.1.199.
Перенастройка диапазона адресов потребует внесения
изменений в некоторые файлы и скрипты сервера и корневой файловой системы узлов кластера.
В следующих версиях это ограничение будет снято. Если вас не устраивает выбранный диапазон,
вы можете получить консультации по замене сетевых адресов, обратившись лично ко мне.