说明:实验接上
(1)server2作为提供存储的服务器,LVM的形式
(2)server1和server4作为主和备用节点
核心:安装客户端的软件,然后修改配置认证key,重启服务!
清除资源:pcs resource delete 资源的名字
pacemaker + corosync + pcs -->思考:资源可以放到其它的服务器上不能,耦合度太高!
思考:mariadb服务为什么无法开启?
原因:挂载后目录的权限和属性会被覆盖,目录里面的内容也会被覆盖,导致用户身份不匹配,所以无法启动!
解决策略
(3)Unit session-2.scope could not be found
pcs resource cleanup 清除指定资源的状态与错误计数(一定)
(4)server测试
修复:xfs_repair -L /dev/sdb1
注意:一定是server1关闭服务后卸载再在server3上做测试!
负责出现问题:ls: cannot open directory .: Input/output error
#####################
前提:关闭mysql服务,并且卸载
systemctl stop mariadb.service
umount /var/lib/mysql/
# 注意:两边都检查!
pcs resource delete apache_group #清除原来的资源(保证实验环境的干净)
思路:将mysql服务由集群资源代理来管理!
pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=172.25.2.100 cidr_netmask=32 op monitor interval=30s
pcs resource create mysql_data ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mysql fstype=xfs op monitor interval=30s
pcs resource create mariadb systemd:mariadb op monitor interval=1min
# 说明:感觉有bug(一会mariadb能开启,一会开启不了)
# 把资源删除重新做了一遍!
了解:相关参数的含义,等价形式!
crm_mon查看
查看
server4查看mariadb的服务状态!
备注:mariadb的开启极其不稳定,原因后续探究!
说明:通过上面我们直到,资源不在一台服务器上,将资源固定到一个服务器上,划分成组!
pcs resource group add mysql_group mysql_data vip1 mariadb
# 注意是按照先后顺序的!
测试1:mysql登陆测试
测试2:模拟节点故障,将内核写崩溃
现象:原来是1的资源,重启之后又切换到1的资源,并且fence不是相互拥有的!
资源粘性:控制在更喜欢在它所在的位置运行
解决:fence的问题
pcs resource delete vmfence
pcs property set stonith-enabled=false
crm_verify -L -V #检查一下
pcs resource delete mysql_group
pcs resource create vip1 ocf:heartbeat:IPaddr2 ip=172.25.2.100 cidr_netmask=32 op monitor interval=30s
pcs resource create mysql_data ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mysql fstype=xfs op monitor interval=30s
pcs resource create mariadb systemd:mariadb op monitor interval=1min
pcs resource group add mysql_group mysql_data vip1 mariadb
# 资源粘性
pcs resource defaults resource-stickiness=100
pcs resource defaults
pcs stonith create vmfence fence_xvm pcmk_host_map="server1:wzj1;server4:wzj4" op monitor interval=1min
crm_mon
pcs resource defaults resource-stickiness=0
pcs resource defaults
pcs property set stonith-enabled=true #很重要!
实验现象
说明:server4中fence从server4变成server1,但是server1中fence并不是server4!