rhcs集群
##集群:资源交给集群去管理(资源 存储 不能自己手动开启和挂载)
集群的优点(高可用 高性能 伸缩性 可管理性)
—web —>xml —>cluster.conf
rhcs:集群的基本功能
分布式集群管理器(CMAN):运行在各个结点上,用于管理:集群成员 消息的通知
锁管理器(DLM)—GFS ext4/ext3
配置文件管理器(CCS):用于集群配置文件和配置文件在节点之间的同步(luci–解析)
栅设备(fence):可以避免因出现不可预知的情况而造成的"脑裂"现象
高可用服务管理器(rgmanager)
pacemaker:资源管理器 —>corosync(底层的心跳)
keepalived
选举模式:
如果一台主机下线,其他主机会自动选举一台主机作为服务器
corosync 是HA集群组件的一部分,专门负责消息的传递,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。
pacemaker 是一个集群资源管理器,干的就是我们常说的CRM的活,它可以定义资源的组和次序。
corosync + pacemaker是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。
Pacemaker是一个集群资源管理者,他用资源级别的监测和恢复来保证集群服务(aka。资源)的较大可能性。它可以用你所擅长的基础组件(Corosync或者是Heartbeat)来实现通信和关系管理
测试:
在虚拟机1和虚拟机2上配置好yum源,下载pacemaker服务
从官网上下载pssh-2.3.1-2.1.x86_64.rpm
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm
下载这两个软件
下载并配置好httpd服务
vim /etc/corosync/corosync.conf
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.20.0
mcastaddr: 226.94.1.1
mcastport: 5420
ttl: 1
}
}
service {
name:pacemaker
ver:0
}
/etc/init.d/corosync start
crm
crm(live)# configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# primitive vip ocf????IPaddr2 params ip=172.25.20.100 nic=eth1 cidr_netmask=24 ##给服务器配置好ip
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# primitive apache lsb:httpd op monitor interval=10s ##配置一个apache服务
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# group website vip apache ##将apache和vip设置到一个组内
crm(live)configure# verify
crm(live)configure# commit
在真机上curl 172.25.20.100
能够查看到server1
关闭server1的corosync服务就查看不到
crm(live)configure# property no-quorum-policy=ignore ##设置忽略投票,即一台服务器down掉的同时另外一台自动启动作为服务器
crm(live)configure# verify
crm(live)configure# commit
开启服务,查看到server1
关闭server1的corosync服务,查看到server2
测试:
集群fence服务
在真机上:
开启fence服务,生成**,将**发送至server1和server2的/etc/cluster
重启服务
在server1上:
yum provides */fenc_xvm
下载
yum install fence-virt-0.2.3-15.el6.x86_64
crm
crm(live)configure# property stonith-enabled=true
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map=“server1:server1;server2:server2” op monitor interval=1min
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# exit
bye
在server2同理操作
开启corosync服务
在server2上监控,在真机上查看curl 172.25.20.100
关闭server1的httpd服务,发现再次被打开
将server1的内核写崩
发现fence把服务移动到了server2上
在真机上查看curl 172.25.20.100
关闭server2的corosync服务
fence将服务再次移动至server1
##nfs文件系统:
新建一个虚拟机3:
在上面配置nfs文件系统
yum install nfs-utils rpcbind -y
/etc/init.d/rpcbind start
/etc/init.d/nfs start
mkdir -p /web/htdocs
chmod o+w /web/htdocs/
vim /etc/exports
/web/htdocs 172.25.20.0/24(rw)
exportfs -r
showmount -e
cd /web/htdocs/
vim index.html
kkkkkkkkk
在server1上:
mount -t nfs 172.25.20.3:/web/htdocs /mnt
[[email protected] ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root 19134332 1054492 17107860 6% /
tmpfs 510200 21936 488264 5% /dev/shm
/dev/sda1 495844 33477 436767 8% /boot
172.25.20.3:/web/htdocs 19134336 931200 17231104 6% /mnt
##查看已经挂载上/mnt
[[email protected] ~]# crm
crm(live)# configure
crm(live)configure# primitive webdata ocf????Filesystem params device=“172.25.20.3:/web/htdocs” directory="/var/www/html" fstype=“nfs” op monitor interval=20s ##设置自动挂载至httpd服务的目录
crm(live)configure# verify
WARNING: webdata: default timeout 20s for start is smaller than the advised 60
WARNING: webdata: default timeout 20s for stop is smaller than the advised 60
WARNING: webdata: default timeout 20s for monitor is smaller than the advised 40
crm(live)configure# commit
WARNING: webdata: default timeout 20s for start is smaller than the advised 60
WARNING: webdata: default timeout 20s for stop is smaller than the advised 60
WARNING: webdata: default timeout 20s for monitor is smaller than the advised 40
crm(live)configure# cd
crm(live)# resource
crm(live)resource# show
Resource Group: website
vip (ocf:????IPaddr2): Started
apache (lsb:httpd): Started
vmfence (stonith:fence_xvm): Started
webdata (ocf:????Filesystem): Started
crm(live)resource# stop website ##停止组
crm(live)resource# cd
crm(live)# configure
crm(live)configure# delete website ##删除原有组
crm(live)configure# group webgroup vip apache webdata ##新建组添加webdata
crm(live)configure# verify
WARNING: webdata: default timeout 20s for start is smaller than the advised 60
WARNING: webdata: default timeout 20s for stop is smaller than the advised 60
WARNING: webdata: default timeout 20s for monitor is smaller than the advised 40
crm(live)configure# commit
crm(live)node# standby server1
crm(live)node# online server1
##设置权重
关闭webgroup
删除webgroup
设置新的group
设置权重
crm(live)configure# group website vip apache
crm(live)configure# location website_on_server1 website 50: server1
[[email protected] ~]# /etc/init.d/corosync stop
Signaling Corosync Cluster Engine (corosync) to terminate: [ OK ]
Waiting for corosync services to unload:. [ OK ]
[[email protected] ~]# /etc/init.d/corosync start
Starting Corosync Cluster Engine (corosync): [ OK ]
关闭1的corosync服务,看到服务被转移到2上
开启1的corosync服务,看到服务被重新转移到1上