高可用--redhat自带套件
高可用集群--redhat
一、集群结点与集群管理
<1>选用两台虚拟机作为集群结点n1,n2
要求:两台虚拟机须时间同步、互有解析,方便实验,虚拟机内存大小为为1024MB
1.先查看时间是否同步,使用date命令
2.看解析文件
3.配置yum源:企业六中自带集群组件
(1)镜像挂载目录下,查看集群组件
cd /var/www/html/rehl6.5
ls ##显示内容如下:
(2)配置集群结点的yum与源
vim /etc/yum.repos.d/rhel-source.repo
编辑后内容显示如下:
[rhel-source]
name=RedHat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.13.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability] ##高可用
name=HighAvailability
baseurl=http://172.25.13.250/rhel6.5/HighAvailability
gpgcheck=0
[ResilientStorage] ##存储
name=ResilientStorage
baseurl=http://172.25.13.250/rhel6.5/ResilientStorage
gpgcheck=0
[LoadBalancer] ##负载均衡
name=LoadBalancer
baseurl=http://172.25.13.250/rhel6.5/LoadBalancer
gpgcheck=0
[ScalableFileSystem] ##大文件系统
name=ScalableFileSystem
baseurl=http://172.25.13.250/rhel6.5/ScalableFileSystem
gpgcheck=0
:wq
4.集群结点下载集群管理工具。所谓集群管理工具不同与管理端,该工具须下载至每个集群结点,而管理端可以不是集群结点。
在两台配置相同的虚拟主机做如下相同操作:
(1)yum install ricci -y ##安装集群管理工具
(2)passwd ricci ##给集群结点加密(一定在启动管理工具前设置密码)
(3)/etc/init.d/ricci -y ##启动ricci
(4)chkconfig ricci on ##使开机自启,监听11111端口
<2>管理端配置
管理端一般不在集群结点上,因为在创建本身所在主机为集群结点时,可能会造成服响应过慢,还需注意在创建本机为集群结点时,一定要设置luci服务为开机自启
1.yum install luci -y
2/etc/init.d/luci start ##启动服务
[[email protected] ~]# /etc/init.d/luci start
Start luci... [ OK ]
Point your web browser tohttps://server1:8084 (or equivalent) to access luci
##显示内容中提示:luci监听8084端口,访问https://server1:8084可进行管理集群结点
3.chkconfig luci on ##使开机自启(若是管理端在某集群结点上)
<3>测试,打开浏览器访问https://server1:8084--luci管理端监听端口
1.选择超户登录
2.管理页面显示:add表示添加集群结点至某个集群,该集群已经存在
Create表创建集群
3.创建集群
Usethe Same Password for All Nodes:表示使用对所有结点同一密码,注意此处的密码非用户密码,根据表格信息,因为之前设置的ricci密码,ricc监听11111端口。
Download Packages:调用本地的yum源下载安装包或更新
UseLocally Installed Packages:使用本地已有的安装包
Reboot Nodes Before Joining Cluster:结点加入集群前应先重启
Enable Shared Storage Support:支持共享存储
注意:在创建前一定要设置与ricci在同一主机的luci开机启动。
4.创建过程需要等待,创建成功时,集群结点的个组建工作状态为Running
二、集群命令方式
<一>高可用集群原理<High Availabilty>
实际应用过程中,并不是所有的集群结点都在工作,一般为某台工作,其余作为“热备”:
1.Corosync(心跳检测):检测集群结点是否正常,若停止“心跳”,rg组工作;
2.直连线通信(交换机):连接集群结点的网卡接口;
3.Fence(电源交换机):对某集群结点先断电,再重启,使得内存数据不会刷新至存储系统。
4.rg组:(1)vip--可迁移地址,一定时未被占用的ip地址,与lip无关;
(2)filesystem--共享的、集群的或是clvm的文件系统;
(3)service--服务
5.rg组工作方式:假设当前rg组工作在集群结点1上,当node1挂掉时,rg组中的vip将filesystem迁移至另一集群结点(“热备”),因此rg组对外显示的地址为vip,而非lip。
6.Fence(电源交换机)作用:
首先了解“脑裂”:当结点间的通信断开,但集群结点或服务本身正常时,此时集群结点会竞争rg组, 若集群结点同时对文件系统进行操作,则会造成文件系统毁坏,这种现象即为“脑裂”。
上述现象,当结点间的通信断开,但集群结点或服务本身正常时,交换机与fence电源交换机通信,检查另一结点是否还在运行,若还在运行,fence则对另一结点先进行断电处理,然后集群结点再重启。
<二>fence配置
<1>安装fence服务--物理主机
yum install fence-virtd-libvirt-0.3.2-2.el7.x86_64 ##后端连接组件
fence-virtd-multicast-0.3.2-2.el7.x86_64 ##多播服务
fence-virtd-0.3.2-2.el7.x86_64 ##virtd服务
<2>fence配置
1.fence_virtd -c ##创建fence
显示内容解释如下:
Modulesearch path [/usr/lib64/fence-virt]:[enter] ##选择默认路径
Listenermodule [multicast]:[enter] ##多播监听方式,也可以安装其他方式,本机仅安装了multicast
MulticastIP Address [225.0.0.12]:[enter] ##组播ip,选择默认(可更改,但同时需要更改集群结点端)
MulticastIP Port [1229]:[enter] ##监听端口,选择默认1229
Interface[virbr0]: br0 ##连接br0
KeyFile [/etc/cluster/fence_xvm.key]:[enter] ##该文件用来检验集群结点身份,选择默认
Backendmodule [libvirt]:[enter] ##后端连接libvirtd
Replace/etc/fence_virt.conf with the above [y/N]? y ##配置内容会保存至/etc/fence_virt.conf
2.mkdir /etc/cluster ##创建key文件目录
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
##从随即数urandom中截取128字节来生成key,一般先从urandom截取,不够时选择random
3.systemctl restart fence_virtd ##生成key文件后,一定重启服务使key生效
4.scp /etc/cluster/fence_xvm.key 集群结点ip:/etc/cluster
##集群结点不需手动创建/etc/cluster,ricci服务会自动生成该目录
5.systemctl stop firewalld
systemctl disabled firewalld ##关闭火墙
<3>管理端添加fence设备
1.选择Fence virt(Multicase Mode)多播模式。
2.添加fence设备的过程:提交添加请求后,管理端会自动连接每个集群结点:1111,将更改保存至集群结点的cd/etc/cluster/cluster.conf;
该文件的修改需要调用root权限,所以若要删除某集群结点,不能仅从管理端remove,且需要修改集群结点的配置文件。
3.集群结点的cman组件:基础架构,实现物理机操作与集群结点的映射。如图所示物理机test1对应集群结点server1,但fence设备并不能识别test1即为server1的物理主机,所以需要对集群结点作映射,使对内部集群结点即为对物理机的操作。
##添加设备,命名为vmfence
4.给每个结点添加fence method:
添加fece设备,实现fence对结点的管理:
其中,Domain:结点的物理主机名或者是UUID
5.查看/etc/cluster/cluster.conf看生成结果:
<4>测试
1.如在server1端,执行:fence_node server3 ##命令fence对server3立即断电,然后重启
2.ip link set eth0 down ##关闭自身网卡,fence将会作用:先断电,再重启
<三>rg组的部署
<1>Failover Domains--创建域
1.Prioritized ##优先级设置,数字越小级别越高,默认级别高的为数据接收方
2.Restricted ##指定结点
3.No Failback
##选中该项表示:不回切
##回切解释:如当n1挂掉,n2接管;当n1恢复后,资源回切至n1,使n1成为master,该机制下n2为“热备”。一般在n1性能很好时可选择回切,但回切可能发生资源损失:如丢包
4.自动更新设置至主配置文件
<2>Resources
1.添加IP address,设置vip,注意一定是未被占用的ip
2.添加服务,选择script脚本类型:资源切换所执行的脚本。需要保证上述域中设置的每个结点主机均有该服务。(server1、server3),如下选择httpd服务:
<3>Service Group:服务组/资源组
##Run Exclusive 表示运行独占,此处不选择
<4>测试,访问172.25.13.113或使用clustat查看acpache服务工作于哪个结点