RHCS红帽高可用套件
RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件。
红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。
主要功能:
1 . 高可用集群是RHCS的核心功能
当正使用的节点出现故障时,RHCS提供的高可用管理组件自动、快速的将应用使用的当前服务节点切换到另一个节点,保证应用的正常进行,而且节点转移功能对客户来说是透明的,所以也能实现应用持续、不间断的对外提供服务!
2 . 负载均衡集群是RHCS通过使用LVS(Linux Virtual Server)实现的
LVS是 一个开源的且功能强大的基于IP的负载均衡技术,LVS 由调度器和服务器节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各服务器节点上,当然,还可以自定义多种负载均衡策略,当客户请求进来时,调度器根据负载均衡策略来判断应该将请求分配到哪个服务器节点上,然后由分配的服务器节点去响应客户请求。不仅如此,LVS 还提供了服务节点故障转移功能,简单来说就是当某个服务节点出故障后,LVS 会自动屏蔽这个节点,并将它从集群踢除,同时将新来此节点的请求平滑的转移到其它正常节点上,当故障节点恢复正常后,LVS 又会自动将此节点加入集群中。这所有操作对客户而言都是透明的,从而保证了服务的不间断,稳定运行!
3 . 储存集群功能是由GFS文件系统实现的
GFS(Global File System)是一个分布式文件系统,通过锁管理机制,来协调和管理多个服务节点对同一文件系统的读写操作,允许多个服务同时去读写一个单一的共享文件系统;储存集群通过将共享数据放到一个共享文件系统中,从而消除了在应用程序间同步的麻烦。
以上关于RHCS的主要功能引自https://blog.csdn.net/z228059/article/details/94136058
环境的部署配置:
在正式地环境部署之前,要先封装一个rhel6.5的母盘,使用rhel6.5版本的虚拟机进行操作
1.为主机添加提供必要的依赖的软件库
cd /etc/yum.repo.d/
vim rhel.repo
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.60.250/rhel6.5/x86_64/dvd/HighAvailability
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.60.250/rhel6.5/x86_64/dvd/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.60.250/rhel6.5/x86_64/dvd/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.60.250/rhel6.5/x86_64/dvd/ScalableFileSystem
gpgcheck=0
2.在所有HA节点上安装ricci,这里用server2同时做管理节点和HA节点
#luci是web界面的管理工具,只需要在其中一台机器上安装即可
1)server1:
yum install -y ricci luci
2)server2:
yum install -y ricci
3)安装完会产生ricci用户,给ricci用户设置密码:
passwd ricci
4)两节点开启ricci,luci并设置开机自启动
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on
chkconfig luci on
5)登陆
https://172.25.0.2:8084
root
redhat
添加server2,server5到集群 ##注意解析问题
6)查看是否添加成功
cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="1" name="westos_ha">
<clusternodes>
<clusternode name="server2" nodeid="1"/>
<clusternode name="server5" nodeid="2"/>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices/>
<rm/>
</cluster>
#查看集群状态
clustat
其中的一些指标如下含义:
cman分布式集群管理器
rgmanager资源代理,负责资源接管
modclusterd集群状态监控
clvmd集群化逻辑卷,共享存储
7)添加fence
使用真机软件模拟硬件fence,用于重启检测不到联系的服务器
Fence Device --> Add --> Fence virt(Multicast Mode) --> vmfence
8)安装fence软件包(在物理机上)
yum search fence
fence-virtd.x86_64
fence-virtd-libvirt.x86_64
fence-virtd-multicast.x86_64
9)配置fence
fence_virtd -c # vim /etc/fence_virt.conf 可查看配置文件
Interface [virbr0]: br0 ##设备选择br0,其他用默认
#生成fence_xvm.key
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
10)把fence_xvm.key分发到HA节点,通过这个key来管理节点
scp fence_xvm.key root@server2:/etc/cluster/
scp fence_xvm.key root@server5:/etc/cluster/
11)在web界面为节点配置fence
Node --> server2 --> Add Fence Method --> vmfence-1 --> Add Fence Instance -->vmfence(xvm Virtual Machine Fencing) --> Domain(填写server2的UUID)
server1同上
12)启动fence并测试 #注意服务的启动和真机的防火墙
systemctl start fence_virtd.service
fence_node server1 ##server1被重启
fence server5 success
netstat -antulp | grep 1229 ##udp 1229端口
13)添加失败回切和优先级
Failover --> Add --> webfail --> Prioritized(对服务故障转移到的节点进行排序) --> Restricted(服务只能在指定的节点上运行) --> No Failback(当服务再次可用时,不要将其发送回优先级为1的节点)(此选项选中,failover的主机在再次正常时会按优先级大小回切,否则不会)
#server1优先级为1,server2优先级为10,数字越小,优先级越高
14)添加vip资源
#Resources --> Add --> IP Address
172.25.60.100
24
Monitor Link(选中) 监控链接
Number of ... 5 删除IP地址后休眠的秒数
#再添加服务
#Resources --> Add --> Script
Name : httpd
Full Path to Script File : /etc/init.d/httpd
两个节点都安装并启动httpd,写默认发布页面
15)添加服务组到集群
Service Groups --> Add
Service Name : apache
Automatically Start This Service : 选中 自动启动此服务
Run Exclusive : 运行独占(先选中)
Failover Domain : webfail
Recovery Policy 恢复策略 回复政策 修复原则
relocate
n. 浮动vt. 重新安置;迁移vi. 重新安置;迁移新址
#然后添加资源
Add Resource --> 172.25.60.100/24 --> Script ##添加IP和启动脚本
3.测试访问
172.25.60.100 #默认访问到server2
4.使server2脑裂,测试fence
echo c > /proc/sysrq-trigger
fence成功,脑裂之后server2自动重启,启动之后httpd又恢复到server2提供服务,因为没有选择 No Failback
集群套件的作用:
1 . 集群中luci的作用:
luci是用来配置和管理集群,监听在8084上。
2 . 集群中ricci的作用:
ricci是安装在每个后端的每个节点上的,luci管理集群上的各个节点就是通过和节点上的ricci进行通信,ricci监听在11111上。
3 . 集群中fence的作用:
当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。
以上关于各套件的作用引自https://blog.csdn.net/z228059/article/details/94136058
配置共享存储:
1.给集群附加存储设备
#1.再开一台虚拟机用来作iscsi共享存储,server3
server3上安装服务端:
yum install -y scsi-*
HA节点上安装客户端:
yum install -y iscsi-*
2.配置存储并启动
vim /etc/tgt/targets.conf
<target iqn.2018-11.com.example:server.target1>
backing-store /dev/vda ##fdisk -l 查看
</target>
/etc/init.d/tgtd start
tgt-admin -s
ps ax
3.在HA节点上发现共享存储
iscsiadm -m discovery -t st -p 172.25.0.3
iscsiadm -m node -l ##挂载存储
fdisk -cu /dev/sdb ##只分一个区,方便在分区表被破坏的时候恢复