XCAT
Материал из ALT Linux Wiki
Stanv (обсуждение | вклад) |
Stanv (обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
== Базовая настройка == | == Базовая настройка == | ||
- | + | === Имя managment node === | |
+ | Необходимо убедится, что во время установки xCAT правильно определил имя сервера на котором он будет работать: | ||
# openssl x509 -text -in /etc/xcat/cert/server-cert.pem -noout | grep Sub | # openssl x509 -text -in /etc/xcat/cert/server-cert.pem -noout | grep Sub | ||
Subject: CN=mn.cluster | Subject: CN=mn.cluster | ||
- | Если имя определено не правильно тогда: | + | Если имя managment node определено не правильно тогда: |
* настроить /etc/sysconfig/network, перезагрузить компьютер. | * настроить /etc/sysconfig/network, перезагрузить компьютер. | ||
- | * | + | * добавить имя в managment node /etc/hosts: |
+ | # cat /etc/hosts | ||
+ | 127.0.0.1 localhost.localdomain localhost | ||
+ | 172.16.2.2 mn.cluster mn | ||
+ | * проверить правильно идет ли распознавание имени: | ||
# gethostip mn.cluster | # gethostip mn.cluster | ||
mn.cluster 172.16.2.2 AC100202 | mn.cluster 172.16.2.2 AC100202 | ||
- | * | + | * перегенерить все сертификаты для новго имени (все настройки будут сброшены): |
# xcatconfig -f | # xcatconfig -f | ||
# lsdef -t site -l -i domain | # lsdef -t site -l -i domain | ||
Строка 21: | Строка 26: | ||
Object name: clustersite | Object name: clustersite | ||
domain=cluster | domain=cluster | ||
+ | |||
+ | === IP сети === | ||
Добавляем сети с которыми будет работать xCAT: | Добавляем сети с которыми будет работать xCAT: | ||
Строка 42: | Строка 49: | ||
* <tt>dynamicrange</tt> - задает диапазон IP адресов, которые будут выделятся для неопознанных узлов. Используется при discovery | * <tt>dynamicrange</tt> - задает диапазон IP адресов, которые будут выделятся для неопознанных узлов. Используется при discovery | ||
* <tt>mgtifname</tt> - имя интерфейса, ведущий в данную сеть | * <tt>mgtifname</tt> - имя интерфейса, ведущий в данную сеть | ||
+ | |||
+ | === Вычислительные узлы === | ||
Добавим узел: | Добавим узел: | ||
Строка 60: | Строка 69: | ||
172.16.2.2 mn.cluster mn | 172.16.2.2 mn.cluster mn | ||
172.16.2.11 node1 node1.cluster | 172.16.2.11 node1 node1.cluster | ||
+ | |||
+ | === BIND === | ||
Необходимо задать IP где работает bind который будет обслуживать имена в рамках xCAT. Обычно такой bind работает на managment node: | Необходимо задать IP где работает bind который будет обслуживать имена в рамках xCAT. Обычно такой bind работает на managment node: | ||
Строка 78: | Строка 89: | ||
Смотрим /var/lib/bind/zone/db.* | Смотрим /var/lib/bind/zone/db.* | ||
# service bind restart | # service bind restart | ||
+ | |||
+ | === DHCP сервер === | ||
Для DHCP сервера скажем, что все неопознанные узлы должны пройти discovery: | Для DHCP сервера скажем, что все неопознанные узлы должны пройти discovery: | ||
Строка 86: | Строка 99: | ||
XXX: discovery не работает | XXX: discovery не работает | ||
# chtab node=compute chain.chain="runcmd=bmcsetup,standby" chain.ondiscover=nodediscover | # chtab node=compute chain.chain="runcmd=bmcsetup,standby" chain.ondiscover=nodediscover | ||
- | |||
- | |||
- | |||
- | |||
- | |||
Конфигурацией ISC DHCP сервера можно управлять без перезагрузки, что и делает xCAT. | Конфигурацией ISC DHCP сервера можно управлять без перезагрузки, что и делает xCAT. | ||
Строка 96: | Строка 104: | ||
# makedhcp node1 | # makedhcp node1 | ||
# cat /var/lib/dhcp/dhcpd/state/dhcpd.leases | # cat /var/lib/dhcp/dhcpd/state/dhcpd.leases | ||
+ | |||
+ | === TFTP сервер === | ||
+ | |||
+ | XXX: пока /tftpboot находится в корне необходимо изменить настройки для atftpd: | ||
+ | edit /etc/sysconfig/atftpd : ATFTPD_EXTRA_ARGS="/tftpboot" | ||
+ | # service atftpd restart | ||
+ | # chkconfig atftpd on | ||
== Stateless == | == Stateless == |
Версия 10:53, 12 января 2010
Содержание |
Установка
После того как завершена установка xCAT первый раз, до настройки xCAT, необходимо перелогинится рутом, так как выставляется переменная окружения XCATROOT.
Базовая настройка
Имя managment node
Необходимо убедится, что во время установки xCAT правильно определил имя сервера на котором он будет работать:
# openssl x509 -text -in /etc/xcat/cert/server-cert.pem -noout | grep Sub Subject: CN=mn.cluster
Если имя managment node определено не правильно тогда:
- настроить /etc/sysconfig/network, перезагрузить компьютер.
- добавить имя в managment node /etc/hosts:
# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 172.16.2.2 mn.cluster mn
- проверить правильно идет ли распознавание имени:
# gethostip mn.cluster mn.cluster 172.16.2.2 AC100202
- перегенерить все сертификаты для новго имени (все настройки будут сброшены):
# xcatconfig -f # lsdef -t site -l -i domain Setting the name of the site definition to 'clustersite'. Object name: clustersite domain=cluster
IP сети
Добавляем сети с которыми будет работать xCAT:
# chtab net="172.16.2.0" networks.netname="clusterNet" networks.gateway="172.16.2.1" networks.dhcpserver="172.16.2.2" networks.tftpserver="172.16.2.2" networks.nameservers="172.16.2.2" networks.dynamicrange="172.16.2.200-172.16.2.250"
Посмотрим все сети о которых знает xCAT:
# lsdef -t network -l Object name: clusterNet dhcpserver=172.16.2.2 dynamicrange=172.16.2.200-172.16.2.250 gateway=172.16.2.1 mask=255.255.255.0 mgtifname=eth0 nameservers=172.16.2.2 net=172.16.2.0 tftpserver=172.16.2.2
Данная запись содержится в таблице networks:
# tabdump networks #netname,net,mask,mgtifname,gateway,dhcpserver,tftpserver,nameservers,ntpservers,logservers,dynamicrange,nodehostname,comments,disable "clusterNet","172.16.2.0","255.255.255.0","eth0","172.16.2.1","172.16.2.2","172.16.2.2","172.16.2.2",,,"172.16.2.200-172.16.2.250",,,
Параметры:
- dynamicrange - задает диапазон IP адресов, которые будут выделятся для неопознанных узлов. Используется при discovery
- mgtifname - имя интерфейса, ведущий в данную сеть
Вычислительные узлы
Добавим узел:
# nodeadd node1 groups=real,all # chtab node=node1 hosts.ip="172.16.2.11"
Часть параметров для узла хранятся в таблице `hosts':
# tabdump hosts #node,ip,hostnames,otherinterfaces,comments,disable "node1","172.16.2.11",,,,
Без механизма Discovery необходимо знать MAC:
# chtab node="node1" mac.mac="2a:2a:2a:2a:2a:2a"
Необходимо выполнить следующую команду:
# makehosts
Эта команда пропишет соответствия `имя - IP' в файл для всех узлов заданных в xCAT:
# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 172.16.2.2 mn.cluster mn 172.16.2.11 node1 node1.cluster
BIND
Необходимо задать IP где работает bind который будет обслуживать имена в рамках xCAT. Обычно такой bind работает на managment node:
# chtab key=nameservers site.value="172.16.2.2"
Все другие запросы по разрешению имя-IP будут перенаправляться внешнему nameserver-у:
# chtab key=forwarders site.value="10.2.0.1"
Проверим:
# tabdump site | grep -E 'name|forw' "nameservers","172.16.2.2",, "forwarders","10.2.0.1",,
В ALT Linux bind работает в chroot окружении, поэтому:
# chtab key=binddir site.value="/var/lib/bind/zone/" # chtab key=bindzones site.value="/zone/"
Обновим настройки BIND:
# makedns
Смотрим /etc/named.conf Смотрим /var/lib/bind/zone/db.*
# service bind restart
DHCP сервер
Для DHCP сервера скажем, что все неопознанные узлы должны пройти discovery:
# makedhcp -n # grep dynamic /etc/dhcp/dhcpd.conf
range dynamic-bootp 172.16.2.200 172.16.2.250;
# service dhcpd restart
XXX: discovery не работает
# chtab node=compute chain.chain="runcmd=bmcsetup,standby" chain.ondiscover=nodediscover
Конфигурацией ISC DHCP сервера можно управлять без перезагрузки, что и делает xCAT. Обновим конфигурацию DHCP сервера информацией о узеле:
# makedhcp node1 # cat /var/lib/dhcp/dhcpd/state/dhcpd.leases
TFTP сервер
XXX: пока /tftpboot находится в корне необходимо изменить настройки для atftpd: edit /etc/sysconfig/atftpd : ATFTPD_EXTRA_ARGS="/tftpboot"
# service atftpd restart # chkconfig atftpd on
Stateless
Укажем какая ОС должна выполняться на узле:
# chtab node=node1 nodetype.os=alt nodetype.arch=x86_64 nodetype.profile=compute nodetype.nodetype=osi # chtab node=node1 noderes.netboot=pxe noderes.tftpserver=172.16.2.2 noderes.nfsserver=172.16.2.2 noderes.installnic=eth1 noderes.primarynic=eth1
Скопируем установочный CD. На основе этого CD будет создаваться statefull или stateless система:
# copycds -n alt -a x86_64 /build/lioka/skif/altlinux-skif-x86_64-20091204.iso
XXX: отредактируем /usr/share/xcat/netboot/alt/mkimage/sources.list Создадим stateless rootfs:
# genimage -i eth1 -n e1000e -o alt -p compute
Упакуем этот rootfs:
# packimage -p compute -o alt -a x86_64 -m nfs
Скажем чтобы узел загрузился по сети в stateless режим:
# nodeset node1 netboot
После чего:
# cat /tftpboot/pxelinux.cfg/node1 #netboot alt-x86_64-compute DEFAULT xCAT LABEL xCAT KERNEL xcat/netboot/alt/x86_64/compute/kernel APPEND initrd=xcat/netboot/alt/x86_64/compute/initrd.gz fastboot imgurl=nfs://172.16.2.2/install/netboot/alt/x86_64/compute/rootimg
Можно включит node1 через консоль управления BMC (Server Control Baseboard Management Controller) или вручную.
Проверим в каком режиме работает наш узел после того как загрузится по сети:
# nodestat node1 node1: sshd
Управление BMC
Write me.
Statefull
На каждом узле заводится локальный аккаунт администратора (root). Пароль можно задать до установки системы:
# chtab key=system passwd.username=root passwd.password=cluster
Возможные значения ключа: blade (management module), ipmi (BMC), system (nodes), omapi (DHCP), hmc, ivm, fsp. Значение ключа system ассоциируется с вычислительными узлами.
Пакеты ALT Linux
Клонируем официальный SVN репозиторий себе на локальную машину
# rsync -av 'xcat.svn.sourceforge.net::svn/xcat/*' .
Исходники для RPM пакетов xCAT ведутся в git репозитории. Импортируем всю историю разработки xCAT в git репозиторий:
# cat .git/config [svn-remote "svn"] url = file:///home/stanv/xcat.svn fetch = xcat-core/trunk:refs/remotes/trunk # git svn fetch
Ветка remotes/trunk будет указывать на последний коммит в trunk SVN репозитории.
Ветка master соответствует исходному коду разработчиков, без каких либо изменений.
# git checkout master # git merge remotes/trunk
Ветка patches содержит все наработки по адаптированию xCAT для ALT Linux.
# git checkout pathces # git merge -s subtree master
При наличии конфликтов, исправляем их:
# git add конфликтыный_файл # git commit
Втягиваем ветку patches в каждую ветку, отвечающую за отдельный RPM пакет. Например:
# git checkout perl-xCAT.rpm # git merge patches # должно проходить гладко
Обновляем SPEC файл.