Linux学习之使用RHCS套件搭建HA高可用集群

来源:互联网 发布:淘宝试衣主播招聘 编辑:程序博客网 时间:2024/04/28 09:50

参考文档网站https://access.redhat.com/site/documentation/zh-CN/Red_Hat_Enterprise_Linux/index.html

相关阅读

RHCS+GFS(红帽HA+GFS) http://www.linuxidc.com/Linux/2014-04/99574.htm

基于RHCS+iSCSI+CLVM实现Web服务的共享存储集群架构 http://www.linuxidc.com/Linux/2013-05/84888.htm

RHCS多节点部署应用企业环境 http://www.linuxidc.com/Linux/2013-05/84456.htm

RedHat 5.8 x64 RHCSOracle 10gR2 HA实践配置 http://www.linuxidc.com/Linux/2013-03/81589.htm

RHCS基于Java的HA双机热备 http://www.linuxidc.com/Linux/2012-12/76587.htm

图解RHCS的安装配置与应用 http://www.linuxidc.com/Linux/2012-11/75111.htm
 

这里使用rhel6.5操作系统
 
真机:192.168.2.42 ankse.example.com
结点1:192.168.2.109 server109.example.com
结点2:192.168.2.205 server205.example.com
过程中注意各个结点解析,时间同步

1、两个结点配置yum
 [root@server205 ~]# vim /etc/yum.repos.d/rhel-source.repo
                              # repos on instructor for classroom use
 # Main rhel6.5 server
 [base]
 name=Instructor Server Repository
 baseurl=http://192.168.2.251/pub/rhel6.5
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
# HighAvailability rhel6.5
 [HighAvailability]
 name=Instructor HighAvailability Repository
 baseurl=http://192.168.2.251/pub/rhel6.5/HighAvailability
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
# LoadBalancer packages
 [LoadBalancer]
 name=Instructor LoadBalancer Repository
 baseurl=http://192.168.2.251/pub/rhel6.5/LoadBalancer
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
# ResilientStorage
 [ResilientStorage]
 name=Instructor ResilientStorage Repository
 baseurl=http://192.168.2.251/pub/rhel6.5/ResilientStorage
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
# ScalableFileSystem
 [ScalableFileSystem]
 name=Instructor ScalableFileSystem Repository
 baseurl=http://192.168.2.251/pub/rhel6.5/ScalableFileSystem
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 [root@server205 ~]# yum clearn all
                              真机yum添加
 # HighAvailability rhel6.5
 [HighAvailability]
 name=Instructor HighAvailability Repository
 baseurl=http://192.168.2.251/pub/rhel6.5/HighAvailability
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

2、安装管理软件luci和ricci
 真机安装luci
 [root@ankse ~]# yum install luci -y
 [root@ankse ~]# /etc/init.d/luci start
 
虚拟机结点分别
 [root@server205 ~]# yum install -y ricci
 [root@server205 ~]# passwd ricci
 Changing password for user ricci.
 New password: 修改密码为root
 passwd: all authentication tokens updated successfully.
 [root@server205 ~]# /etc/init.d/ricci start
 [root@server205 ~]# chkconfig ricci on3、配置集群
 真机浏览器访问https://ankse.example.com:8084
 首先使用真机root登入,之后在admin授权给一普通用户权限,避免使用root
 使用ankse登录,creat,创建集群名称,加入主机,密码是ricci的密码,选择下载包,加入集群重启,支持分享存储,创建;
 在结点上clustat命令查看集群状态。
 安装fence,当一台设备故障时,直接断掉它的电源,避免瞬间故障导致脑裂;
 [root@ankse ~]# yum install fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast -y
 [root@ankse ~]# fence_virtd -c 生成配置文件
 Module search path [/usr/lib64/fence-virt]:
 Listener module [multicast]:
 Multicast IP Address [225.0.0.12]:
 Multicast IP Port [1229]:
 Interface [none]: br0
 Key File [/etc/cluster/fence_xvm.key]:
 Backend module [checkpoint]: libvirt
 Libvirt URI [qemu:///system]:
 Replace /etc/fence_virt.conf with the above [y/N]? y
 [root@ankse ~]# mkdir /etc/cluster
 [root@ankse ~]# cd /etc/cluster/
 [root@ankse cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
 [root@ankse cluster]# scp fence_xvm.key 192.168.2.109:/etc/cluster/
 [root@ankse cluster]# scp fence_xvm.key 192.168.2.205:/etc/cluster/
 [root@ankse cluster]# /etc/init.d/fence_virtd start
 [root@ankse ~]# chkconfig fence_virtd on
 [root@ankse cluster]# netstat -anulp | grep fence
 udp        0      0 0.0.0.0:1229                0.0.0.0:*                              17405/fence_virtd 
 之后在网页上的集群中添加fence设备,选择设备为fence virt多波模式,name为vmfence,然后在每个结点上添加fence method,name为vmfence-1,再添加fence instance,domain写入从虚拟机管理器中得到的UUID。
 在cluster2:192.168.2.205上测试fence功能
 [root@server205 ~]# fence_xvm -H cluster1,之后cluster1就会重启
 
添加failover domains
 输入name为web,prioritized优先级,restricted服务独占,no failback恢复不再接管。
 添加resource资源,IP地址192.168.2.208,向外部展示的虚拟ip,监控主机,不更新静态路由,时间间隔。
 script脚本,name为apache,Full Path to Script File /etc/init.d/httpd
 两个结点安装httpd,echo `hostname` > index.html。
 
添加服务组,name为www,自动开启服务,恢复选择重新定位,再添加上边的两个资源。测试,访问192.168.2.208,关闭优先级高的httpd,会跳转到另一各结点;关闭运行httpd的结点eth0,该结点会被fence重启,httpd将运行到另一个结点上。内核崩溃测试echo c > /proc/sysrq-trigger.
 如果www为红色获取状态失败,在一个结点上查看状态clustat,如果一直recover,则关闭再激活clusvcamd -d www关闭  clusvcadm -e www激活

 

3添加设备资源
 在42真机上创建设备
 [root@ankse ~]# lvcreate -L 2G -n iscsi VolGroup
 [root@ankse ~]# yum install scsi-*
 [root@ankse ~]# vim /etc/tgt/targets.conf
 <target iqn.2014-05.com.example:server.target1>
    backing-store /dev/VolGroup/iscsi
    initiator-address 192.168.2.109
    initiator-address 192.168.2.205
 </target>
 [root@ankse ~]# /etc/init.d/tgtd start
 [root@ankse ~]# chkconfig tgtd on
 [root@ankse ~]# tgt-admin -s 查看
 
结点安装iscsi-initiator-utils
 [root@server109 ~]# iscsiadm -m discovery -t st -p 192.168.2.42
 [root@server109 ~]# iscsiadm -m node -l 登录到设备
 [root@server109 ~]# fdisk -cu /dev/sda 分区
 [root@server109 ~]# mkfs.ext4 /dev/sda1 格式化
 
在网页中recources为集群添加设备,资源通过集群管理
 选择文件系统设备,name为wwwdata,挂载点选择/var/www/html,设备/dev/sda1,选择force unmount,快速状态检测,卸载设备失败重启结点,提交。服务组www里重新添加ip,设备,apache,提交。之后会自动挂在在某一结点上。
 
selinux
 [root@server109 html]# ll -Z
 -rw-r--r--. root root unconfined_u:object_r:file_t:s0  index.html
 drwx------. root root system_u:object_r:file_t:s0      lost+found
 [root@server109 html]# restorecon -Rv .
 [root@server109 html]# ll -Z
 -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
 drwx------. root root system_u:object_r:httpd_sys_content_t:s0 lost+found
 之后正常访问,一边httpd停止,则服务和磁盘转至另一结点

4、添加GFS2资源
 [root@server109 ~]# clusvcadm -d www
 网页上先删除服务组的磁盘。再在资源删除wwwdata,在某结点修改sda1为8e,常常使用LVM。
 [root@server109 ~]# fdisk -cu /dev/sda
 Command (m for help): t
 Hex code (type L to list codes): 8e
 Command (m for help): w
 [root@server109 ~]# pvcreate /dev/sda1
 [root@server109 ~]# lvmconf --enable-cluster 使lvm支持集群
 [root@server109 ~]# /etc/init.d/clvmd restart
 [root@server109 ~]# vgcreate -cy clustervg /dev/sda1
 [root@server109 ~]# lvcreate -L 1G -n gfs2demo clustervg 在另一个结点上使用pvs、vgs、lvs可以查看到
 [root@server109 ~]# mkfs.gfs2 -p lock_dlm -t ankse:mygfs2 -j 3 /dev/clustervg/gfs2demo 格式化为gfs2文件系统,使用分布式锁,指定集群标签,日志记录结点个数,以后还可以添加。
 [root@server109 ~]# mount /dev/clustervg/gfs2demo /var/www/html/
 [root@server109 ~]# cd /var/www/html/ 建立index文件
 [root@server109 html]# restorecon -Rv . 刷新selinux上下文,如果没开就不用做了
 然后在另一个结点上挂载,查看selinux上下文以及index文件同步情况。
 
设置开机自动挂载,所有结点都做同样操作。
 [root@server109 html]# blkid 找出设备的UUID
 [root@server109 ~]# vim /etc/fstab
 UUID="71d573d1-fead-36b2-ab50-1e62286525b7"    /var/www/html  gfs2    _netdev,defaults        0 0
 [root@server109 ~]# umount /var/www/html/ 结点上卸载
 [root@server109 ~]# mount -a 然后df查看
 [root@server109 ~]# clusvcadm -e www 打开集群服务,访问网站测试
 [root@server109 ~]# clusvcadm -r www -m server205.example.com
 重定位服务结点,访问测试。
 
使用集群管理网页添加gfs2文件系统
 [root@server109 ~]# clusvcadm -d www 停止服务
 [root@server109 ~]# vim /etc/fstab 去掉自动挂载
 [root@server109 ~]# umount /var/www/html/ 卸载文件系统
 网页管理上添加资源,选择GFS2,使用设备名、标签、UUID均可作为挂载标识,强制卸载,卸不了重启,提交。
 服务组里边添加GFS2设备,apache服务。开启www,访问测试。测试结果只有添加设备名/dev/mapper/clustervg-gfs2demo可以,UUID,标签都不能成功。
 [root@server109 ~]# clusvcadm -d www
 Local machine disabling service:www...Success
 [root@server109 ~]# clusvcadm -e www
 Local machine trying to enable service:www...Success
 
添加日志记录结点数
 [root@server109 ~]# gfs2_tool journals /dev/clustervg/gfs2demo 查看结点日志数
 [root@server109 ~]# lvextend -l +255 /dev/clustervg/gfs2demo
 [root@server109 ~]# gfs2_grow /dev/clustervg/gfs2demo 扩大文件系统容量,每个日志占用128M
 [root@server109 ~]# gfs2_jadd -j 2 /dev/clustervg/gfs2demo 添加两个结点日志
 [root@server109 ~]# gfs2_tool journals /dev/clustervg/gfs2demo 再次查看
 
挂载分布式锁文件系统
 当集群出现问题,由于锁机制的存在,不允许挂载,所以使用
 [root@server109 ~]# gfs2_tool sb /dev/clustervg/gfs2demo all 查看设备所属集群信息
 lftp i:/pub> get gfs2.img 下载hacluster集群的文件系统测试,可由dd命令得到
 [root@server109 ~]# gfs2_tool sb gfs2.img all
  sb_lockproto = lock_dlm
  sb_locktable = hacluster:mygfs
 [root@server109 ~]# mount -t gfs2 -o lockproto=lock_nolock,loop gfs2.img /mnt/ 挂载文件,使用loop参数
 [root@server109 ~]# ls /mnt/good\ luck
 就可以查看该文件系统的文件了


0 0
原创粉丝点击