RHCS: Red Hat Cluster Suite
红帽子集群套件,
三位一体,完备的集群应用解决方案
1.负载均衡
2.高可用
3.共享存储文件系统
组成:
1.集群管理器:CMAN
配置文件管理:CCS ---/sbin/ccsd
/etc/cluster/cluster.conf
cman ---/usr/sbin/cman_tool
表决磁盘:集群投票超过半数才能正常工作,gfs文件系统才能使用
Quorum
:法定节点数:节点数*vote+qdisk
Quorate
:达到法定节点数
<
/sbin/service qdiskd start
后台daemons:
/sbin/groupd
/sbin/fenced
锁管理 DLM/sbin/dlm_controld
/sbin/gfs_controld
栅设备:在节点异常宕机时屏蔽,关闭该节点,此时gfs2不能读写
Fence--/sbin/fence_tool
fence_xvmd---/sbin/fence_xvmd
2.服务资源管理器:rgmannager
---
/usr/sbin/clurgmgrd
/usr/sbin/clustat
/usr/sbin/clusvcadm
/usr/sbin/clubufflush
/usr/sbin/clufindhostname
/usr/sbin/clulog
/usr/sbin/clunfslock
/usr/sbin/clurmtabd
/usr/sbin/rg_test
/usr/sbin/rhev-check.sh
3.配置管理工具:
图形化web配置:Conga:Luci和Ricci
工具配置:
clustat
cman_tool
ccs_tool
fence_tool
clusvcadm
4.GFS:RedHat公司集群文件系统,安装使用需要RHCH支持。通过锁机制实现了一个文件系统可以供多台主机挂载,并可同时读写。
5:其他:ClVM集群逻辑卷管理,iSCSI
------------集群安装部署----------
共享磁盘端:
1.安装iscsi target
service tgtd start
2.安装luci:
luci-0.12.2-51.el5.centos.x86_64.rpm
luci_admin init
service luci start
3.修改/etc/hosts
192.168.12.132 web1
192.168.12.133
web2
192.168.12.231 Mysql1
192.168.12.232 Mysql2
节点:
1.安装RHCS套件:
rpm -ivh
perl-XML-NamespaceSupport-1.09-1.2.1.noarch.rpm
rpm -ivh
perl-XML-SAX-0.14-11.noarch.rpm
rpm -ivh
perl-XML-LibXML-Common-0.13-8.2.2.x86_64.rpm
rpm -ivh
perl-XML-LibXML-1.58-6.x86_64.rpm
rpm -ivh perl-Net-Telnet-3.03-5.noarch.rpm
rpm -ivh pexpect-2.3-3.el5.noarch.rpm
rpm -ivh
openais-0.80.6-36.el5.x86_64.rpm
rpm -ivh
python-pycurl-5.5.1-8.el5.x86_64.rpm
rpm -ivh
python-suds-0.4.1-2.el5.noarch.rpm
rpm -ivh cman-2.0.115-96.el5.x86_64.rpm
rpm -ivh modcluster-0.12.1-7.el5.centos.x86_64.rpm
rpm -ivh
ricci-0.12.2-51.el5.centos.x86_64.rpm
rpm -ivh
gfs2-utils-0.1.62-34.el5.x86_64.rpm
rpm -ivh
rgmanager-2.0.52-28.el5.centos.x86_64.rpm
2.安装iSCSI initiator
iscsiadm -m discovery -t sendtargets -p
192.168.12.246
service iscsi start
3.配置/etc/cluster/cluster.conf
可通过luci配置:
1.创建一个集群,添加节点
2.创建Failover
Domain
3.创建Resources
IP address
httpScript ---
/etc/init.d/httpd
ext-fs --- /webdata
/dev/sdb6
4.创建Service,添加资源,选择失败转移域
5.配置存储集群GFS
fdisk /dev/sdb
mkfs.gfs2 -p lock_dlm -t mucluster:my-gfs2 -j 4 /dev/sdb5
mount.gfs2
/dev/sdb5 /gfs2 -v
6.配置表决磁盘:
mkqdisk -c /dev/sdb7 -l myqdisk 创建共享磁盘(不需要进行格式化)
mkqdisk -L
显示共享磁盘信息
在web界面添加Quarum Partition
service qdiskd start 启动qdiskd服务
7.配置Fence栅设备
配置完成后:/etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster
alias="mycluster" config_version="8"
name="mycluster">
<fence_daemon clean_start="0" post_fail_delay="0"
post_join_delay="3"/>
<clusternodes>
<clusternode name="web2" nodeid="1"
votes="1">
<fence/>
</clusternode>
<clusternode name="web1" nodeid="2"
votes="1">
<fence/>
</clusternode>
</clusternodes>
<cman
expected_votes="1"
two_node="1"/>
<fencedevices/>
<rm>
<failoverdomains>
<failoverdomain name="webserver-Failover" nofailback="0" ordered="1"
restricted="1">
<failoverdomainnode name="web2"
priority="10"/>
<failoverdomainnode name="web1"
priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<ip address="192.168.12.233"
monitor_link="1"/>
<script file="/etc/init.d/httpd"
name="httpScript"/>
<fs device="/dev/sdb6" force_fsck="1" force_unmount="1" fsid="7108"
fstype="ext3" mountpoint="/webdata" name="ext3-fs"
self_fence="1"/>
</resources>
<service autostart="1" domain="webserver-Failover" exclusive="0"
name="webserver"
recovery="relocate">
<ip
ref="192.168.12.233"/>
<script
ref="httpScript"/>
</service>
</rm>
<quorumd
device="/dev/sdb7" interval="2" min_score="1" tko="10"
votes="2">
<heuristic interval="3" program="ping -c 3 -t 2 192.168.12.1"
score="2"/>
</quorumd>
</cluster>
----------集群管理------------
启动集群:
service cman
start
service rgmanager start
关闭集群:
service rgmanager stop
service cman stop
管理服务:
clusvcadm -e webserver -m web1启动节点的服务
clusvcadm -s webserver -m
web1关闭节点的服务
clusvcadm -R webserver -m web1重启节点的服务
clusvcadm -r webserver -m web2切换节点服务
监控集群状态
cman_tool nodes -a
cman_tool status
clustat -i 3 每个3秒刷新集群状态
css_tool update
/etc/cluster/cluster.conf修改完配置后更新配置
(根据config_version判定是否更新)
配置集群
css_tool create Mycluster
css_tool addfence apc fence_apc
ipaddr=apc.domain.net user=apc password =apc
ccc_tool addnode node1 -n 1-f
apc prot=1
csstool addnode node2 -n 2 -f apc port=2
ccs_tool addnode node3
-n 3 -f apc port=3
ccs_tool addnode node4 -n 4 -f apc port=4
管理gfs2文件系统
gfs2_fsck -y /dev/sdb5检测修复gfs文件系统错误
gfs_tool df /gfs2
查看gfs2文件系统挂载详细信息
gfs_tool freeze /gfs2 锁定gfs2文件系统
gfs_tool unfreeze
/gfs2解锁gfs2文件系统
gfs2_tool journals /gfs2查询gfs2可挂载节点数
gfs2_tool version查询gfs2版本信息
gfs2_jadd -J 64M journals大小改为64M
gfs2_jadd -j 5 /gfs2 可挂载节点改为5个
------------工作过程---------------
节点正常关机:
1.qdiskd检测到节点shut
down
2.openais处理
3.dlm关闭连接该节点
4.clurgmgrd资源转移
正常开机:
重新加入集群
获得服务资源
节点异常宕机:
echo c>/proc/sysrq-trigger 是内核崩溃
1.qdiskd检测到节点evicted
openais处理
dlm 关闭连接该节点
fence进程隔离节点,gfs2无法使用。
fence
进程隔离成功后,gfs2恢复。
clrgmgrd接管服务