含义及理解:
RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,,它将集群系统中三大集群架构(高可用性集群、负载均衡集群、存储集群)融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。
主要功能:
1 . 高可用集群是RHCS的核心功能。当正使用的节点出现故障时,RHCS提供的高可用管理组件自动、快速的将应用使用的当前服务节点切换到另一个节点,保证应用的正常进行,而且节点转移功能对客户来说是透明的,所以也能实现应用持续、不间断的对外提供服务!
2 . 负载均衡集群是RHCS通过使用LVS(Linux Virtual Server)实现的。LVS是 一个开源的且功能强大的基于IP的负载均衡技术,LVS 由调度器和服务器节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各服务器节点上,当然,还可以自定义多种负载均衡策略,当客户请求进来时,调度器根据负载均衡策略来判断应该将请求分配到哪个服务器节点上,然后由分配的服务器节点去响应客户请求。不仅如此,LVS 还提供了服务节点故障转移功能,简单来说就是当某个服务节点出故障后,LVS 会自动屏蔽这个节点,并将它从集群踢除,同时将新来此节点的请求平滑的转移到其它正常节点上,当故障节点恢复正常后,LVS 又会自动将此节点加入集群中。这所有操作对客户而言都是透明的,从而保证了服务的不间断,稳定运行!
3 . 储存集群功能是由GFS文件系统实现的。GFS(Global File System)是一个分布式文件系统,通过锁管理机制,来协调和管理多个服务节点对同一文件系统的读写操作,允许多个服务同时去读写一个单一的共享文件系统;储存集群通过将共享数据放到一个共享文件系统中,从而消除了在应用程序间同步的麻烦。
集群套件的作用:
1 . 集群中luci的作用:luci是用来配置和管理集群,监听在8084上。
2 . 集群中ricci的作用:ricci是安装在每个后端的每个节点上的,luci管理集群上的各个节点就是通过和节点上的ricci进行通信,ricci监听在11111上。
3 . 集群中fence的作用:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。
实验搭建:
准备三台虚拟机6.5版本的,关火墙,selinux状态为disabled
server1 :管理节点和HA节点 :172.25.11.1
server2 :HA节点 :172.25.11.2
server3 :作为iscsi共享磁盘 :172.25.11.3
给三台虚拟机配置高可用yum源,
[rhel6.5]
name=rhel6.5
baseurl=http://172.25.11.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.11.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.11.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.11.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.11.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
配好之后yum repolist 查看一下
scp 拷给server2和server3
在server1上安装ricci、luci:
yum install ricci luci -y 下载软件
id ricci 会生成这个用户
passwd ricci 给个密码/etc/init.d/ricci start 开启服务
/etc/init.d/luci start
chkconfig ricci on 开机自启
chkconfig luci on
在server2上安装ricci:
yum install ricci -y
id ricci
passwd ricci/etc/init.d/ricci start
chkconfig ricci on
测试:
真机打开浏览器输入https://172.25.11.1:8084
注意要添加安全证书
再将server1, server2添加到集群
查看是否添加成功和集群状态
cat /etc/cluster/cluster.conf
clustat
为RHCS高可用添加fence(栅)
首先配置好fence
yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
Interface [virbr0]: br0 ##设备选择br0,其他用默认
mkdir /etc/cluster
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
scp fence_xvm.key root@server1:/etc/cluster/
scp fence_xvm.key root@server2:/etc/cluster/
systemctl start fence_virtd.service
在web里添加fence
Fence Devices---->Add---->submit
分别为server1和server2添加fence,Domain为虚拟机的MAC地址,可在虚拟机管理器查看
测试:
在server1上使用fence关掉server2
发现server2被重启
fence_node server2
netstat -antulp | grep 1229 ##udp 1229端口
添加httpd资源
添加失败回切和优先级:
Failover --> Add --> webfail --> Prioritized --> Restricted --> No Failback(此选项选中,failover的主机在再次正常时会按优先级大小回切,否则不会)
server2优先级为1,server5优先级为10,数字越小,优先级越高。
添加vip资源:
Resources --> Add --> IP Address
172.25.11.100
24
Monitor Link(选中)
Number of … 5
再添加服务
Resources --> Add --> Script
Name : httpd
Full Path to Script File : /etc/init.d/httpd
两个节点都安装并启动httpd,写默认发布页面
添加服务组到集群:
Service Groups --> Add
Service Name : apache
Automatically Start This Service : 选中
Run Exclusive : 运行独占(先选中)
Failover Domain : webfail
然后添加资源
Add Resource --> 172.25.0.100/24 --> Script —>submit ##添加IP和启动脚本
添加好以后
测试:
勾选apache并点击上方start
在真机crul 172.25.11.100
发现默认访问到server2
使server2脑裂,测试fence:
echo c > /proc/sysrq-trigger
ip link set dowm eth0 (使网络挂掉)
发现服务器由于server被重启暂时回到server1上
在web页面点击左边第一个按钮即start
添加iscsi网络共享磁盘
给server3在添加一块虚拟磁盘
fdisk -l
fdisk /dev/vda
p 1 回车 回车 wqyum install -y scsi-*
配置server3的存储:
vim /etc/tgt/targets.conf
38 <target iqn.2019-06.com.example:server.target1>
39 backing-store /dev/vda1 initiator-address 172.25.11.1initiator-address 172.25.11.2
40 </target>/etc/init.d/tgtd starttgt-admin -s ##查看存储信息
ps ax ##看到有2个tgtd进程(如果有4个,就是错误的)
在server1和server2两个ha节点上:
安装客户端
yum install iscsi-* -y
在HA节点上发现并登陆共享存储:
iscsiadm -m discovery -t st -p 172.25.11.3
iscsiadm -m node -l
fdisk -l
fdisk -cu /dev/sdb ##只分一个区,方便在分区表被破坏的时候恢复
pratprobe
fdisk /dev/sdb
同步过后在server2查看进程
partprobe
cat /proc/partitions
该文件格式在把分区改一下
mkfs.ext4 /dev/sdb1
fdisk /dev/sdb
t 8e wq
partprobe
在server1创建逻辑卷
pvcreate /dev/sdb1
vgcreate vg /dev/sdb1
lvcreate -L 4G -n lv vg
partprobe
在server2同步并查看
partprobe
lvs
pvs
vgs
mkfs.ext4 /dev/vg/lv
在web添加webdata(文件系统)
现在server1server2关闭apache
clusvcadm -d apache
点击Service Groups,删除原来的添加,重新配置,这次的添加顺序是IP
Address —-> Filesystem —-> Script(因为服务开启的顺序就是先分配VIP,然后开启存储,然后再是服务)
测试:
启动集群服务,发现server2自动挂载