首页 > 代码库 > linux集群架设——RHCS

linux集群架设——RHCS

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接管服务