xCAT裸机部署 ( by quqi99 )
因为想搞清楚上篇博客 http://blog.csdn.net/quqi99/article/details/9396413 提到的能否用xCAT来自动配置RAID的问题,所以花了一个小时看了一下xCAT如何使用。但是因为我们伟大的长城防火墙的缘故,在今天的学习过程中,突然就一直上不了sourceforge.net网站了,所以本文提到的步骤既没有做实验验证,也没有继续看xCAT和RAID结合的那部分内容。只是根据之前缓存下来的网页和手上已有的资料整理了一下xCAT基本的使用步骤。
xCAT是一个集群管理工具,能用于裸机部署,Dell的crowbar具有类似的功能,crowbar能做BIOS配置,RAID配置,网络搜寻,状态监控,性能数据收集,和报警。Crowbar是开源了但它并没有将RAID等高级功能开源,所以我研究了xCAT。在裸机上通过xCAT部署了操作系统之后,可以继续用puppet或chef之类的工具进行软件的安装和配置。希望使用chef的同学可参见它的红宝书:http://docs.opscode.com/essentials_cookbook_directory.html。XCAT一些诱人的特性如下:
自动发现硬件
firmware, BIOS/UEFI配置
在x86_64平台上基于IPMI进行远程硬件控制,如开关机,如收集CPU的温度等状态信息,也支持Power和systemz架构(zVM/zLinux)
安装裸机,支持的OS有:RHEL,CentOS, Fedora, Ubuntu, AIX, windows, SLES, Debian等
IaaS云功能,可通过copycds定义操作系统镜像,支持通过KVM,PowerVM, zVM, Vmware等创建创机
提供中心化的GUI界面,也能将一个CLI命令同时发向所管理的多个节点
性能和状态监控
和HPC的一些产品集成,如GPFS等,crowbar是和hadoop集成
其架构如下图所示,一个单一xCAT管理节点能管理500个节点左右的Linux:
1, 关闭selinux和iptables
echo 0 >/selinux/enforce
sed -i's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
service iptables stop
chkconfig iptables off
2,配置网卡,如果BOOTPROTO=dhcp的话,不想dhclient/dhcpc去更新/etc/resolv.conf也需要添加:PEERDNS=no,也需要设置hostname及时区。
vi/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.20.0.1
NETMASK=255.240.0.0
3,xCAT可从物理交换机获得MAC地址从而自动发现其他节点,这需给交换机的管理端口设置IP及打开SNMP特性。例:
[root@node1 ~]# telnetxcat3750
xcat3750-1>enable
xcat3750-1#configureterminal
Switch(config)#access-list 10 permit <IP of MN>
Switch(config)#snmp-server group xcatadmin v3 auth write v1default
Switch(config)#snmp-server community public RO 10
Switch(config)#snmp-server community private RW 10
Switch(config)#snmp-server enable traps license?
Switch(config)#snmp-server user xcat xcatadmin v3 auth SHA passw0rd access 10
检查是否配置成功:
sudo yum installnet-snmp net-snmp-utils
snmpwalk -v 3 -u xcat-a SHA -A passw0rd -X cluster -l authnoPriv <ip-of-switch>.1.3.6.1.2.1.2.2.1.2
4,下载xcat-core和xcat-dep,http://sourceforge.net/projects/xcat/files/xcat-dep/2.x_Linux/
或将这两个工程的yum源下载放到/etc/yum.repos.d/目录下,然后
sudo yum clean all&& sudo yum update
5, 安装NM,sudo yum install xCAT
6, NM中两个重要的表site和networks(可用tabdump命令查看表,用tabedit命令修改表)
7, Nm节点上配置DNS,Nm中的/etc/hosts文件可以手动配置,也可以通过上面说的配置交换机自动发现。xCAT会根据这里的定义给裸机分配hostname和ip。配置好这个文件后执行:
makedns -n && make dns all && sudoservice named restart
且如要是手工配置方式的话,每次添加新裸机节点都需重复执行这几个命令。切记,hostname不能用大写,这似乎是xCAT的一个bug。
8,NM节点上配置dhcp,先安装dhcp的软件包,然后执行:
makedhcp -n && makedhcp all &&sudo service named restart
这样会生成dhcp的一些配置文件,如/etc/dhcpd/dhcpd.conf,和/var/lib/dhcpd/*.lease文件。lease文件记录哪台客户机使用了dhcp服务器,里面有裸机的MAC和IP信息。所以,很显然,如果是手工配置方式的话,这步在新增裸机后也要重复执行。
/etc/dhcpd/dhcpd.conf文件如何配置,略。
9, Nm节点上配置conserver软件,在安装裸机过程中可通过rconsnode1命令查看安装过程。
makeconservercf && sudo service conserverrestart
10, 对tftp的设置,如果报”bootfilename, tftp:open timout”的话,得查看/etc/xinet.d/tfpy中的disable=yes属性
查看裸机节点定义:lsdefnode1
添加一个裸机定义:nodeaddnode1 key=value
修改裸机定义属性:chdefnode1 mac=...
配置一个裸机节点成功之后通过rpowerall stat命令应该可以看到如:
node1:on
重要属性说明:
arch=x86_64
bmc=<bmc-ip>, #bmc是IBMX系统服务器的带外管理端口
bmcpassword=PASSWORD
bmcusername=USERID
cons=ipmi #使用IPMI接口管理
groups=mygroup #裸机所在的组
installnic=mac
mac=34:40:B5:AB:7C:50
mgt=ipmi #通过ipmi进行电源管理
monserver=<monserver-ip> #监控服务器
netboot=xnba #可能xnba是PXE的一种改进的网络启动模式
nodetypes=osi #osi是osimage的缩写,这个和copycds重成的镜像文件一致
postbootscripts=syslog, remoteshell, synfiles #裸机安装完后要执行的脚本
先把镜像拷到NM机上面,然后执行“Copycdsrhel.iso”命令就可以将它上伟到MN的/install/文件下面,其中/install目录就是site表中的installdir字段定义的。
网络启动安装:nodesetnode1 install
安装过程中可通过rconsnode1命令查看安装过程。
重新安装:rinstall(-o rhels6.2) node1 #其中-o参数可以父盖nodeadd节点添加时的OS参数。
重新安装一个裸机的话,可用一个脚本:
#! /bin/bash
makedhcp -a
makedhcp -n
makeconservercf
service xcatd restart
service dhcpd restart
service named restart
nodeset node1 install
rsetboot node1 net #如果不设置这步,启动时就不会从网络安装
rinstall -o rhels6.2 node1
参考:http://sourceforge.net/apps/mediawiki/xcat/index.php?title=XCAT_iDataPlex_Cluster_Quick_Start