CentOS 集群实验
原文:http://blog.csdn.net/gh57897053/archive/2009/08/15/4448496.aspx
截图下载地址http://download.csdn.net/source/2432822
搭建环境:
1.CentOS 5.3 ,自带的集群软件。
2.vmware workstation 6.0 版本。
3. 三个CentOS 主机,其中一个提供iscsi 协议的共享磁盘,其他二个作为集群节点。
4. 使用system-config-cluster 组件配置集群。
主机ShareDisk.RHCS IP=192.168.1.50/24 ,2 块硬盘;
主机ClusterA.RHCS IP=192.168.1.101/24 ,2 块网卡;
主机ClusterB.RHCS IP=192.168.1.201/24 , 2 块网卡;
实验过程的截图太多了,就不发上来了,需要的请留email。
步骤一:共享存储的模拟。
1.配置主机ShareDisk.RHCS,修改主机名为ShareDisk.RHCS 。
2.安装scsi-target 的rpm 包,作为iscsi 共享存储服务器。Perl-Config-General 包是依赖包。
#rpm -ivh scsi-target-utils-0.0-5.20080917snap.el5.i386.rpm
3.fdisk -l 查看磁盘信息。实验环境是:
Sda 磁盘是根目录、boot 分区、swap 分区共8G 。Sdb 用来作共享存储共4G 。
4.在sdb 上划分3 个500M 的分区:
#fdisk /dev/sdb
5.重新读取分区表,并开启tgtd 服务:
#partprobe
#service tgtd start
6.新增target device :
#tgtadm --lld iscsi --op new --mode target --tid 1 --targetname rhcs_storage_1
#tgtadm --lld iscsi --op new --mode target --tid 2 --targetname rhcs_storage_2
#tgtadm --lld iscsi --op new --mode target --tid 3 --targetname rhcs_storage_3
7.把新建的target device 加入分区:
#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
#tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/sdb2
#tgtadm --lld iscsi --op new --mode logicalunit --tid 3 --lun 1 -b /dev/sdb3
8.查看target device 的内容:
#tgtadm --lld iscsi --op show --mode target
9.允许客户端访问三个目标逻辑卷:
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
tgtadm --lld iscsi --op bind --mode target --tid 2 -I ALL
tgtadm --lld iscsi --op bind --mode target --tid 3 -I ALL
注:以上设置在系统重启后消失,所以设置开机自动执行,编辑/etc/rc.local,添加一下内容:
tgtadm --lld iscsi --op new --mode target --tid 1 --targetname rhcs_storage_1
tgtadm --lld iscsi --op new --mode target --tid 2 --targetname rhcs_storage_2
tgtadm --lld iscsi --op new --mode target --tid 3 --targetname rhcs_storage_3
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/sdb2
tgtadm --lld iscsi --op new --mode logicalunit --tid 3 --lun 1 -b /dev/sdb3
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
tgtadm --lld iscsi --op bind --mode target --tid 2 -I ALL
tgtadm --lld iscsi --op bind --mode target --tid 3 -I ALL
10.设置服务开机启动状态,到此共享存储配置完毕。
#service iptables stop
#chkconfig --level 35 iptables off
#chkconfig --level 35 sendmail off
#chkconfig --level 35 tgtd on
步骤二:配置iscsi 客户端
1.配置2个集群节点,以下以节点A为例(B节点配置相同),修改主机名为ClusterA.RHCS 。
2.配置网卡:
eth0=192.168.1.101/24
eth1=10.10.10.1/24
3.修改hosts 文件,注释掉127.0.0.1的那行,并添加以下内容:
192.168.1.101 ClusterA.RHCS
192.168.1.201 ClusterB.RHCS
10.10.10.1 HeartA
10.10.10.2 HeartB
4.安装iscsi 客户端:
#rpm -ivh iscsi-initiator-utils-6.2.0868-0.18.el5.i386.rpm
5.启动iscsi 服务,设置服务开机自动启动:
#service iscsi start
#chkconfig --level 35 iscsi on
6.搜索目标对象上的共享存储:
iscsiadm -m discovery -t sendtargets -p 192.168.1.50
7.登录目标对象使用共享存储:
#iscsiadm -m node -T rhcs_storage_1 -p 192.168.1.50 -l
#iscsiadm -m node -T rhcs_storage_2 -p 192.168.1.50 -l
#iscsiadm -m node -T rhcs_storage_3 -p 192.168.1.50 -l
8.查看磁盘列表发现多了3 个500M 的磁盘,sdb 、sdc 、sdd 分别对应主机ShareDisk 上的sdb1 、sdb2 、sdb3 :
#fdisk -l
9.添加开机自动配置,添加内容到rc.local:
iscsiadm -m discovery -t sendtargets -p 192.168.1.50
iscsiadm -m node -T rhcs_storage_1 -p 192.168.1.50 -l
iscsiadm -m node -T rhcs_storage_2 -p 192.168.1.50 -l
iscsiadm -m node -T rhcs_storage_3 -p 192.168.1.50 -l
10.在sdb 、sdc 、sdd 上创建新分区,sdb1、sdc1、sdd1:
#fdisk /dev/sdb
#fdisk /dev/sdc
#fdisk /dev/sdd
11.重读分区表:
#partprobe
12.格式化sdb1 、sdc1 、sdd1 。
#mkfs.ext2 /sdb1
#mkfs.ext2 /sdc1
#mkfs.ext2 /sdd1
13.在节点ClusterB.RHCS 上执行相同步骤(对于磁盘,只要挂上即可,无需其他操作)。
步骤三:使用system-config-cluster 组件配置集群
1.设置DISPLAY(在任意节点上配置,之后将集群配置文件推到所有集群节点,这里在节点A上配置) :
# export DISPLAY=192.168.1.100 :0.0 //我的 物理主机,安装Xmanager。
# system-config-cluster
2.配置集群的步骤
2.1选择创建新配置文件,并设置集群名,其他一般选择默认;
2.2 添加fence 设备(这里无所谓了,物理主机为win 的无法使用fence_vmware 脚本模拟这个设备);
2.3 添加一个集群节点,填写添加的节点名,其他默认:
2.4 添加fence 到集群节点(manage fenceing for this node) ;
2.5同样添加节点B ,然后为节点B 添加fence 设备;
2.6新建failure domain ,添加集群节点到failure domain ,选择节点优先级别;
2.7创建资源IP 、文件系统、script 脚本( 用于启动httpd 服务) ;
2.8 新建一个集群服务,把上面三个资源添加进来,选择failure domain,以及节点失效后操作(relocate):
2.9保存配置,退出,使用命令把集群配置文件复制到所有集群节点:
#scp /etc/cluster/cluster.conf root@ClusterB.RHCS:/etc/cluster/
2.10配置/etc/httpd/conf/httpd.conf
DocumentRoot " /web "
2.11所有节点启动集群服务:
service cman start
service clvmd start
service rgmanager start
步骤四:验证集群
1.查看集群状态(在所有节点中打如下命令,看看有什么不同):
#clustat
#df
#ip addr list
#service httpd status
2.将资源切换到B :
#clusvcadm -r webServices -m ClusterB.RHCS
再查看:
#clustat
#df
#ip addr list
#service httpd status
资源所在的节点上可以找到文件系统web、虚拟IP192.168.1.111 ,以及httpd 处于running 。
相反,其他节点上就没有这些资源。
3.资源切换过程stoping>>stoped>>starting>>started :
备注 :
1.如果节点reboot 或者shutdown ,资源可以正常切换。但是如果网卡down 或者节点断电,资源无法切换。这是由于缺少fence 设备引起的。由于目前实验环境无法模拟fence 设备,所以掉电故障和网卡down 测试就略过。
2.conga方式建立集群的步骤和system-config-cluster一样,但是有如下需要注意的:
A:如果使用conga方式配置集群,碰到如下问题的解决办法:
starting luci :[失败]
请检查/etc/hosts文件是否有“127.0.0.1 localhost.domain localhost ”这行。
B:在验证节点ssl时,如果出现“ Unable to connect to node2.ha.lab: Unable to establish an SSL connection to 节点名:11111:ClientSocket(hostname, port, timeout): connect() failed “的错误,请检查ricci客户端是否running ,确认防火墙是配置(干脆关闭了) ,确认selinux=disabled ;
C:在验证完节点的ssl信息后,再创建集群时,如果出现”An error occurred when trying to contact any of the nodes in the new_Cluster cluster. “可能是因为luci和ricci的版本太低,请升级你的版本 。以CentOS 5.3为例,默认的luci、ricci的版本:
luci-0.12.1-7.el5.centos.1.i386(1).rpm
ricci-0.12.1-7.el5.centos.1.i386(1).rpm
升级完版本:
luci-0.12.1-7.3 .el5.centos.1.i386(1).rpm
ricci-0.12.1-7.3 .el5.centos.1.i386(1).rpm
使用conga的方式建立cluster,问题多多,而且相应速度慢,推荐使用system-config-cluster。