当一个集群节点(类似于调度器)坏了,如何将服务安全的迁移到另一个集群上面,对于客户访问资源来说,访问毫无感觉
在集群的图形化管理工具里面进行设置(类似于一个总的负责人,它管理所有的集群节点)
先设置迁移服务的规则
再设置客户访问资源的规则(入口地址,脚本方式启动web服务)
最后资源组:所有的资源都要放在一个组里面,迁移的时候也是也是一整套的删除
实验步骤如下
先将上一个实验测试断开的连接连接上(server1和server2),我已经连接过
高可用服务配置(以httpd为例)
设置失败回切(故障转移域)
命名为webfail,当一个节点出现故障时切换到正常的哪一个上
将server1和server2添加在域中,设置两个节点的优先级,数字越小优先级越高
(1)在浏览器里面:设置服务迁移failover Domains
名字:webfail,打对勾,返回优先级高的,设置server1和server2的优先级看实验现象---》create
数字小的优先级高,数字大的优先级低
不打对勾就会自动返回优先级高的集群,打对勾不会自动
设置回切资源(以httpd的高可用为例)
点击add --> 添加ip address(集群外的VIP)—>设置切换主机的时间5秒—>submit提交
再次点击add–>添加script(因为httpd时脚本启动的)—>添加/etc/init.d/httpd文件
- (2)在浏览器里面:设置资源
设置IP:入口地址 172.25.12.100 24 等待时间为5s
设置脚本方式启动web服务:script httpd /etc/init.d/httpd
server1和server2安装httpd,开启服务,编辑测试页
在server1上面:
yum install -y httpd
vim /var/www/html/index.html
server1
不用启动httpd服务,集群会自己开启
clustat
/etc/init.d/httpd status
在server2上面:
yum install -y httpd
vim /var/www/html/index.html
server2
不用启动httpd服务,集群会自己开启
clustat
/etc/init.d/status
设置资源组
点击add设置资源组的名字为apache -->添加资源(上一步中添加的vip)—>添加资源(httpd脚本)
- (3)在浏览器上面:设置资源组,将入口地址和web资源绑定在一块
名字:apache 选择自动开启服务 选择此台主机只运行这一个服务 选择服务迁移名字webfail
然后添加资源选择iip,再添加资源选择httpd create
刷新页面,显示httpd服务运行在server1上(server1优先级高)
- (4)测试,看服务迁移的现象
在两个节点上分别查看cluster的状态
在server1上面:
/etc/init.d/httpd status发现httpd服务自动开启
clustat发现这个正是server1集群在工作(因为apache运行在server1的优先级高于server2)
ip a 发现入口地址自动到server1上面了
在真机上面测试
curl 172.25.12.100
curl 172.25.12.100
发现是server1资源
在server2上面:
watch clustat 监控正在使用的集群资源,发现使server1
测试高可用
在server1中输入echo c> /proc/sysrq-tigger,破坏server1的内核
在真机上面:
打开server1,登录,输入:echo c > /proc/sysrq-trigger 破坏server1使重启
发现server1重启,资源变为server2,入口ip也迁移到了server2上面
当server1重启以后,入口ip又迁移到了server1上面,监控显示又是server1工作,因为server1优先级高
这个在前面可以设置,服务往优先级高迁移
没有手动开启httpd服务时在web集群管理界面,刷新界面只会开启一个节点的httpd
所以当服务落在某一个节点时只能访问到虚拟ip和当前节点,其他节点是访问不到的
当server1坏了之后apache服务会自动迁移到server2上面,这就不会影响客户的正常访问
一般企业当中不设置优先级
因为客户可能正在使用server2上面的资源
如果现在由于优先级把客户访问的服务迁移到server1上面,会影响客户的访问质量,企业一般不会再自动迁移到优先级高
因此前面设置的时候应该打一个勾,这里只是为了实验效果明显起见
当server1(优先级高)坏了,服务自动迁移到server2上面(优先级低),当server1好了之后,服务不会自动再迁移到server1上面