一、環境介紹與說明
1. 操作系統及網絡環境準備
兩臺IBM X3650M3, 一臺DS3400光纖存儲。
操作系統: CentOS 5.9 x64,安裝有圖形界面,開發包,開發庫,老的軟件開發工具。
爲了避免環境干擾,關閉selinux, 關閉防火牆,本文出自:http://koumm.blog.51cto.com
1) 節點1規劃及網絡情況如下:
說明:IBM服務器採用ipmi lan方式實現內部fence設備,需要將專用IMM2口或標註有SYSTEM MGMT網口接入交換機, 與本地IP地址同段。
主機名: node1
ipmi地址: 10.10.10.85/24
eth1: 192.168.233.83/24
eth1:0 10.10.10.87/24
2) 節點1規劃及網絡情況如下:
IBM服務器需要將專用IMM2口或標註有SYSTEM MGMT網口接入交換機。
主機名: node2
ipmi地址: 10.10.10.86/24
eth1: 192.168.233.84/24
eth1:0 10.10.10.88/24
3)node1, node2 hosts文件配置
# cat /etc/hosts
192.168.233.83 node1
192.168.233.84 node2
192.168.233.90 vip
10.10.10.85 node1_ipmi
10.10.10.86 node2_ipmi
2. 配置YUM安裝源
(1) node1, node2 掛載光盤或ISO, 兩節點上都需要配置。
# mount /dev/cdrom /mnt # mount -o loop centos59.iso /mnt
(2) 配置YUM客戶端
說明: 通過本地光盤做爲yum安裝源。
# vi /etc/yum.repos.d/centos59.repo
[centos59]
name=Centos59
baseurl=file:///mnt/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
3. Ipmi口的配置安裝ipmi工具, IP地址也可以通過BIOS中進行配置
(1) 檢查主機是否有相關IPMI硬件支持
[root@node1 ~]# dmidecode |grep -C 6 IPMI |tail -n 7
IPMI Device Information
Interface Type: KCS (Keyboard Control Style)
Specification Version: 2.0
I2C Slave Address: 0x10
NV Storage Device: Not Present
Base Address: 0x0000000000000CA2 (I/O)
Register Spacing: Successive Byte Boundaries
(2) 安裝ipmi管理工具
# yum install OpenIPMI OpenIPMI-devel OpenIPMI-tools OpenIPMI-libs
# service ipmi start
# chkconfig ipmi on
(3) 進行IPMI的基本網絡配置:以下指令分別配置了IP地址、掩碼、網關、允許進入開關。
node1,node2 IPMI接口IP配置
原始IPMI地址配置如下:
node1 IPMI接口IP配置
node2 IPMI接口IP配置
ipmitool lan set 1 ipaddr 10.10.10.86
ipmitool lan set 1 netmask 255.255.255.0
#ipmitool lan set 1 defgw ipaddr 10.10.10.254
ipmitool lan set 1 access on
ipmitool lan print 1
(3)開啓默認用戶、設置默認密碼:
# 顯示當前用戶列表
ipmitool user list 1
ipmitool user set password 2 passwd
說明:2爲用戶UID,這裏使用IBM默認用戶名與密碼USERID/PASSW0RD
(4) 測試IMPI,在服務器上配置好IPMI後,測試ipmi地址。
查看本機狀態
[root@node1 ~]# ipmitool -H 10.10.10.85 -U USERID -P PASSW0RD power status
Chassis Power is on
查看節點2狀態
[root@node1 ~]# ipmitool -H 10.10.10.86 -U USERID -P PASSW0RD power status
Chassis Power is on
遠程重啓節點2服務器
[root@node1 ~]# ipmitool -H 10.10.10.86 -U USERID -P PASSW0RD power reset
Chassis Power is on
正常返回結果會是:Chassis Power is on
其它測試命令如開機,關機,重啓,如下命令可以用於遠程管理。
ipmitool -H 10.10.10.86 -U USERID -P PASSW0RD power on
ipmitool -H 10.10.10.86 -U USERID -P PASSW0RD power off
ipmitool -H 10.10.10.86 -U USERID -P PASSW0RD power reset
二、掛載IBM DS3412光纖存儲
1. 查看HBA的WWN號碼,查看有多少塊HBA
node1, node2 掛載了一個1TB的磁盤, 集羣文件系統,100M仲裁盤
node1上WWN號查看,HBA卡安裝卡槽位置隨各機而異。
cat /sys/class/fc_host/host5/port_name 0x10000000c9a55a09
node2上WWN號查看
cat /sys/class/fc_host/host5/port_name 0x10000000c9a56308
2. 劃分存儲並掛載
1)解壓IBM存儲管理軟件
本文采用IBM DS3400存儲帶內管理方式連接IBM存儲,全程遠程配置。
# tar zxvf SM10.70_Linux_Single-10.70.x5.25.tgz
# cd Linux10p70_single
# cd Linux/
# ls
SMagent-LINUX-10.02.A5.08-1.i386.rpm SMesm-LINUX-10.70.G5.07-1.noarch.rpm SMutil-LINUX-10.00.A5.16-1.i386.rpm
SMclient-LINUX-10.70.G5.25-1.noarch.rpm SMruntime-LINUX-10.70.A5.00-1.i586.rpm
#
2)安裝管理軟件包,客戶端會自動安裝在/opt/IBM_DS目錄下面。
# rpm -ivh SMclient-LINUX-10.70.G5.25-1.noarch.rpm SMruntime-LINUX-10.70.A5.00-1.i586.rpm SMesm-LINUX-10.70.G5.07-1.noarch.rpm Preparing... ########################################### [100%] 1:SMesm ########################################### [ 33%] 2:SMruntime ########################################### [ 67%] 3:SMclient ########################################### [100%] SMmonitor started. #
3)直接啓動帶內管理監控程序
# cd /opt/IBM_DS/agent
#
4)啓動存儲客戶端連接存儲進行配置管理(圖形界面,可開啓VNC進行配置),終端窗口中操作如下。
# cd /opt/IBM_DS/client # ./SMclient
3. node1,node2分別安裝rdac多路徑軟件包
(1) 編譯安裝rdac軟件包
# rdac-LINUX-09.03.0C05.0652-source.tar # tar zxvf rdac-LINUX-09.03.0C05.0331-source.tar.gz # chmod -R +x /tmp/linuxrdac-09.03.0C05.0331# cd linuxrdac-09.03.0C05.0652 # make clean # make # make install
(2) 更改啓動文件
(3)重啓服務器
# reboot
三、RHCS軟件包的安裝
192.168.233.83 node1 (管理機) 192.168.233.84 node2
1. 在node1上安裝luci及RHCS軟件包
安裝 ricci、rgmanager、gfs、cman
(1) node1(管理節點)安裝RHCS軟件包,luci是管理端軟件包,只在管理端安裝。
yum install luci ricci cman cman-devel gfs2-utils rgmanager system-config-cluster -y
(2) 配置RHCS服務開機啓動
chkconfig luci on chkconfig ricci on chkconfig rgmanager on chkconfig cman on service rgmanager start service ricci start service cman start
[root@node1 cluster]# service cman start
Starting cluster:
Loading modules... done
Mounting configfs... done
Starting ccsd... done
Starting cman... failed
/usr/sbin/cman_tool: ccsd is not running
[FAILED]
2. 在node2 上安裝RHCS軟件包
(1) node2安裝RHCS軟件包
yum install ricci cman cman-devel gfs2-utils rgmanager system-config-cluster -y
(2) 配置RHCS服務開機啓動
chkconfig ricci on chkconfig rgmanager on chkconfig cman on service rgmanager start service ricci start service cman start
[root@node2 cluster]# service cman start
Starting cluster:
Loading modules... done
Mounting configfs... done
Starting ccsd... done
Starting cman... failed
/usr/sbin/cman_tool: ccsd is not running
[FAILED]
***************************************
Starting cluster:
Loading modules... failed
FATAL: Module lock_dlm not found. [FAILED]
這是因爲還沒有加入集羣沒有產生配置文件/etc/cluster/cluster.conf
***************************************
配置故障一例:因手動指定多播地址,造成集羣節點之後無法通迅。
Aug 20 14:55:17 node1 ccsd[9977]: Cluster is not quorate. Refusing connection.
Aug 20 14:55:17 node1 ccsd[9977]: Error while processing connect: Connection refused
Aug 20 14:55:17 node1 ccsd[9977]: Cluster is not quorate. Refusing connection.
Aug 20 14:55:17 node1 ccsd[9977]: Error while processing connect: Connection refused
***************************************
四、RHCS集羣管理端配置
1. 在node1管理節點上安裝啓動luci服務
說明:在管理節點上進行操作。
(1) luci初始化
# luci_admin init
Initializing the luci server
Creating the 'admin' user
Enter password:
Confirm password:
Please wait...
The admin password has been successfully set.
Generating SSL certificates...
The luci server has been successfully initialized
(2) 啓動luci服務
# service luci start
(3) 配置管理地址
admin/111111
五、RHCS集羣配置
1. 添加集羣
登錄進管理界面,點擊cluster->Create a New Cluster->填入如下內容:
Cluster Name: rhcs
選中如下選項,然後提交,集羣會經過install,reboot,config,join兩步過程才能成功。
Use locally installed packages.
Enable shared storage support
check if node passwords are identical
說明:
(1) 這步會生成集羣配置文件/etc/cluster/cluster.conf
(2) 也可以直接創建該配置文件。
2. 兩節點分別啓動集羣服務
分別ssh到 node1,node2上,再次啓動cman服務。
3. 添加fence設備
說明:
RHCS要實現完整的集羣功能,必須要實現fence功能。
正是由於有了fence設備可以使用,才得以完整測試RHCS HA功能。
(1)登錄進管理界面,點擊cluster-> Cluster List->
(2)分別選擇node1,node2進行如下操作:
(3)選擇"Add a fence device to this level",選擇IPMI LAN。
4. 添加Failover Domains 故障轉移域
Failover Domains -> Add
名字:rhcs_failover
勾選Prioritized,
No Failback具體情況自己設定;
勾選兩臺節點,
設定其優先級。
點擊提交。
5. 配置GFS服務
(1) GFS服務配置
(2) 在任意一節點對磁盤進行分區,劃分出sdb1。然後格式化成gfs2.
node1節點上:
node2節點上:直接在節點2上就看到了LVM配置信息
(3) 格式化GFS文件系統
node1節點上,只用在一個節點上操作就可以了。
說明:
rhcs:gfs2這個rhcs就是集羣的名字,gfs2是定義的名字,相當於標籤吧。
-j是指定掛載這個文件系統的主機個數。
6. 掛載GFS文件系統
node1,node2 上創建GFS掛載點
# mkdir /cluster
(1)node1,node2手動掛載測試,掛載成功後,創建文件測試集羣文件系統情況。
# mount.gfs2 /dev/vg/cluster /cluster
(2)node1,node2配置開機自動掛載
# vi /etc/fstab /dev/mapper/vg-cluster /cluster gfs2 defaults 0 0
(3) node1查看掛載情況
[root@node1 ~]# mkdir /cluster [root@node1 ~]# mount.gfs2 /dev/vg/cluster /cluster [root@node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 107G 9.2G 93G 10% / /dev/sda1 99M 17M 77M 18% /boot tmpfs 12G 0 12G 0% /dev/shm /dev/mapper/vg-cluster 1.0T 389M 1.0T 1% /cluster [root@node1 ~]#
(4) node2查看掛載情況:
[root@node2 ~]# mount.gfs2 /dev/vg/cluster /cluster [root@node2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 107G 9.2G 93G 10% / /dev/sda1 99M 17M 77M 18% /boot tmpfs 12G 0 12G 0% /dev/shm /dev/mapper/vg-cluster 1.0T 389M 1.0T 1% /cluster [root@node2 ~]#
7. 配置表決磁盤
說明: #表決磁盤是共享磁盤,無需要太大,本例採用/dev/sdc1 100M來進行創建。
[root@node1 ~]# fdisk -l Disk /dev/sda: 145.9 GB, 145999527936 bytes 255 heads, 63 sectors/track, 17750 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 17750 142472452+ 8e Linux LVM Disk /dev/sdb: 1099.5 GB, 1099511627776 bytes 255 heads, 63 sectors/track, 133674 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 133674 1073736373+ 8e Linux LVM Disk /dev/sdc: 104 MB, 104857600 bytes 4 heads, 50 sectors/track, 1024 cylinders Units = cylinders of 200 * 512 = 102400 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 1024 102375 83 Linux [root@node1 ~]#
(1) 創建表決磁盤, 只在節點1上進行操作。
(2) 查看錶決磁盤信息
1) node1節點1上查看錶決磁盤信息
[root@node1 ~]# mkqdisk -L
mkqdisk v0.6.0
/dev/disk/by-id/scsi-3600a0b80007573a5000006f153e7e43c-part1:
/dev/sdc1:
Magic: eb7a62c2
Label: qdisk
Created: Tue Aug 19 22:09:48 2014
Host: node1
Kernel Sector Size: 512
Recorded Sector Size: 512
[root@node1 ~]#
2) node2節點1上查看錶決磁盤信息
[root@node2 cluster]# mkqdisk -L
mkqdisk v0.6.0
/dev/disk/by-id/scsi-3600a0b80007573a5000006f153e7e43c-part1:
/dev/sdc1:
Magic: eb7a62c2
Label: qdisk
Created: Tue Aug 19 22:09:48 2014
Host: node1
Kernel Sector Size: 512
Recorded Sector Size: 512
[root@node2 cluster]#
(3) 配置表決磁盤qdisk,IP通常採用網關地址,要能夠ping通,一定要注意網關是否禁ping。
# 進入管理界面 cluster-> cluster list -> 點擊Cluster Name: rhcs;
# 選擇"Quorum Partition",選擇"use a Quorum Partition"
interval : 2
votes : 2
TKO : 10
Minimum Score: 1
Device : /dev/sdc1
Path to program : ping -c3 -t2 192.168.233.254
Interval : 3
Score : 2
# 點擊apply
(4) node1, node2上啓動qdisk服務
chkconfig qdiskd on service qdiskd start
1) node1節點1上查看集羣
2) node2節點1上查看集羣
8. 集羣配置文件如下:
<?xml version="1.0"?> <cluster alias="rhcs" config_version="12" name="rhcs"> <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/> <clusternodes> <clusternode name="node2" nodeid="1" votes="1"> <fence> <method name="1"> <device name="node2_ipmi"/> </method> </fence> </clusternode> <clusternode name="node1" nodeid="2" votes="1"> <fence> <method name="1"> <device name="node1_ipmi"/> </method> </fence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_ipmilan" auth="PASSWORD" ipaddr="10.10.10.85" login="USERID" name="node1_ipmi" passwd="PASSW0RD"/> <fencedevice agent="fence_ipmilan" auth="PASSWORD" ipaddr="10.10.10.86" login="USERID" name="node2_ipmi" passwd="PASSW0RD"/> </fencedevices> <rm> <failoverdomains> <failoverdomain name="rhcs_failover" nofailback="0" ordered="1" restricted="0"> <failoverdomainnode name="node2" priority="2"/> <failoverdomainnode name="node1" priority="1"/> </failoverdomain> </failoverdomains> <resources/> </rm> <quorumd device="/dev/sdc1" interval="2" min_score="1" tko="10" votes="2"> <heuristic interval="3" program="ping -c3 -t2 192.168.233.254" score="2"/> </quorumd> <cman expected_votes="4"/> </cluster>