MySQL高可用介绍2-heartbeat测试

上一章已经把heartbeat安装完成,接下来配置MySQL高可用配置。
在配置MySQL高可用前,先演示一个web小例子帮助理解:
在node1,node2启动httpd

[root@node2 ~]# service httpd start
[root@node1 ~]# service httpd start
[root@node2 ~]#echo node2 >>/var/www/html/index.html
[root@node1 ~]#echo node1 >>/var/www/html/index.html

客户端使用vip连接node1,node2服务器
http://10.37.2.240
这里写图片描述

http://10.37.2.241
这里写图片描述
停掉node1的heartbeat,在访问

[root@node1 mnt]# /etc/init.d/heartbeat stop
Stopping High-Availability services: Done.

http://10.37.2.241
这里写图片描述
http://10.37.2.240
这里写图片描述
实现高可用。
看到这里是不是对MySQL高可用有了大致的理解,其实也类似于web高可用,通过vip对外提供服务。
heartbeat 命令小节:
完全释放 :

heartbeat 2.8   /usr/lib64/heartbeat/hb_standby   
heartbeat 3.0    /usr/share/heartbeat/hb_standby   

接管:

heartbeat 2.8  /usr/lib64/heartbeat/hb_takeover
heartbeat 3.0  /usr/share/heartbeat/hb_takeover

以上heartbeat负责vip接管,并没有负责资源管理;另外一种模式是由heartbeat来控制节点资源启动或关闭。让heartbeat负责web资源管理,必须要获取到web的启动脚本资源及权限即可。
拷贝web启动脚本到heartbeat默认路径下:
cp /etc/init.d/httpd /etc/ha.d/resource.d/
修改resources配置文件,把web启动脚本命令添加进去
vi /etc/ha.d/haresources 添加

 node2 IPaddr::10.37.2.241/24/eth0 httpd
 node1 IPaddr::10.37.2.240/24/eth0 httpd
 ```
 注意事项:
1.heartbeat控制脚本服务支持stop|start|restart传参格式
2.heartbeat控制脚本在heartbeat默认路径下
3.heartbeat具备可执行权限
4.资源启动脚本名字跟heartbeat配置一致
主备机停掉httpd服务

[root@node2 html] /etc/init.d/httpd stop

主备机停掉heartbeat服务

[root@node2 html] /etc/init.d/heartbeat stop

查看服务装填

[root@node2 html] ps -ef|grep httpd
[root@node2 html] ip addr|grep 10.37.2.

 单一节点启动heartbeat服务,查看节点资源状态
 ```
[root@node2 html] /etc/init.d/heartbeat  satrt 
[root@node2 html]  ip addr|grep 10.37.2. 
[root@node2 html]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:d1:09:2b brd ff:ff:ff:ff:ff:ff
    inet 10.37.2.111/24 brd 10.37.2.255 scope global eth0
    inet 10.37.2.240/24 brd 10.37.2.255 scope global secondary eth0
    inet 10.37.2.241/24 brd 10.37.2.255 scope global secondary eth0
    inet6 fe80::20c:29ff:fed1:92b/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:d1:09:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.52.103/24 brd 192.168.52.255 scope global eth1
    inet6 fe80::20c:29ff:fed1:935/64 scope link 
       valid_lft forever preferred_lft forever

[root@node2 html]# ps -ef|grep httpd
root     10405     1  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10408 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10409 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10411 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10412 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10413 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10414 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10416 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd
apache   10417 10405  0 18:41 ?        00:00:00 /usr/sbin/httpd

以上可以看到,在单一节点启动heartbeat服务,httpd资源自动被接管并启动。
登录http://10.37.2.241
http://10.37.2.240 查看是否正常输出。
大家也可以测试下,把node1启动起来是什么效果,把node2的 heartbeat停掉是什么效果。
这里要注意一点如果heartbeat停止之后,httpd一直停止不掉,这个时候备机就尝试停止系统,这个有点狠。
当然heartbeat也可以控制其他资源,如Tomcat,Apache,MySQL,LVS,Nginx等等。需要注意的是如果是控制数据库就需要一个共享存储或者数据同步,例如nfs,multipath,udev都可以实现共享存储;双节点数据实时同步使用drbd比较好。
heartbeat控制vip适用于web服务;
heartbeat控制节点vip及资源适用于数据库,存储等场景。
heartbeat和keeplive应用场景区别:
1.对于web,db,负载均衡(nginx,haproxy),使用heartbeat和keeplive都可以;
2.lvs负载均衡跟keeplive更友好;如果想使用heartheart跟lvs结合,建议使用heartbeat+lvs+ldirectord结合使用。
3.数据同步业务(配合drbd)使用heartbeat更好。
heartbeat重要配置文件:

/etc/init.d/heartbeat
/etc/init.d/resource.d/IPaddr
/etc/init.d/resource.d/drbd
/etc/init.d/resource.d/drbddisk
/etc/init.d/resource.d/Filesystem
/etc/init.d/rc.d/hb_tabkeover
/etc/init.d/rc.d/ip-request-resp
/etc/init.d/re.c/ip-request
/usr/lib64/heartbeat/hb_standby
/usr/lib64/heartbeat/hb_takeover
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值