如何搭建Heartbeat+DRBD+MySQL

分类:编程技术 时间:2024-02-20 16:05 浏览:0 评论:0
0
本文介绍《如何搭建Heartbeat+DRBD+MySQL》的相关知识。在实际案例操作过程中,很多人都会遇到这样的困境。接下来就让小编带领大家学习一下如何处理这些情况。酒吧!我希望你能仔细阅读并学到一些东西!

DRBD 是一种软件实现的无共享存储复制解决方案,可在服务器之间镜像块设备内容。
DRBD的核心功能是通过Linux内核实现的,最接近系统的IO堆栈,但它无法神奇地添加检测EXT3文件系统崩溃等上层功能。
DRBD位于文件系统下方,比文件系统更靠近操作系统内核和IO堆栈。
DRBD相当于给磁盘做了一个网络raid1。
心跳的工作原理(Linux-HA):心跳的核心包括两部分,心跳监控部分和资源接管部分。心豆可以通过网络链路和串口进行监控,并且支持冗余链路。他们互相发送消息,告诉对方当前的状态。如果在规定时间内没有收到对方发送的消息,则认为对方无效。这时就需要启动资源接管模块来接管对方主机上运行的资源。资源或服务。
DRBD协议
参数:

协议A @数据一旦写入磁盘并发送至网络写操作

协议B @收到回执确认后,认为写操作完成。

协议C @当收到写确认时,认为写操作完成。

############################################# ####

深紫色文字为日志或命令输出,红色部分为文件内容。

############################################ ### ##

vm1 10.0.0.11 Master
vm2 10.0.0.12 Slave
VIP:10.0.0.20

以下操作vm1 vm2全部要做:
1软件安装:
wget http://elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
ls
rpm - ivh elrepo -release-6-6.el6.elrepo.noarch.rpm
yum search drbd
yum install drbd84 kmod-drbd84
yum install heartbeat

2 创建分区< br/>[root@vm1 ~]# fdisk -l

磁盘 /dev/sda: 21.5 GB, 21474836480 字节
255 个磁头,63 个扇区/磁道,2610 个柱面
单位 = 16065 * 512 = 8225280 字节的柱面
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节
磁盘标识符:0x00076c33

设备启动开始结束块ID系统
/dev/sda1 * 1 1 26 204800 83 Linux
分区1不在柱面边界上结束。
/dev/sda226 157 1048576 82 Linux 交换/Solaris
分区 2 未在 cylin 上结束
/dev/sda3 157 2611 19717120 83 Linux

磁盘 /dev/sdb: 1073 MB , 1073741824 字节
255 个磁头,63 个扇区/磁道,130 个柱面< br/>单位 = 16065 * 512 = 8225280 字节的柱面
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节< br/>磁盘标识符:0x9aa21f28

设备引导启动开始结束块ID系统

[root @vm1 ~]# fdisk /dev/sdb

警告:DOS 兼容模式已被弃用。强烈建议
关闭模式(命令“c”)并将显示单位更改为
扇区(命令“u”)。

命令(m寻求帮助): n
命令操作
e 扩展
p 主分区 (1-4)
p
分区号 (1-4): 1
第一个柱面 ( 1-130,默认 1 ):
使用默认值 1
最后一个柱面,+柱面或 +size{K,M,G} (1-130,默认 130):
使用默认值value 130

命令(m寻求帮助):w
分区表已被更改d!

调用ioctl()重新读取分区表。
正在同步磁盘。
[root@vm1 ~]#partprobe
警告:警告:内核无法重新读取 /dev/sda 上的分区表(设备或资源繁忙)。因此,直到重新启动后,它可能才会反映您的所有更改。
[root@vm1 ~]#

3 创建 DRBD 配置文件
[root@vm1 ~] # cat /etc/drbd.conf

global { 用法计数 yes; }
通用{同步器{速率10M; } }
资源数据库 {
                                                                                                使用 using db using using                使用 using 的 s 到 使用 using ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ---------------------------------------------------------------- 磁盘/DEV/SDB1;
地址10.0.0.11:7789;
元磁盘实习生;
}
在 vm2 上 {
设备/DEV /drbd1;
;地址 10.0.0.12:7789;
元磁盘内部;
}
}


以上操作必须针对 vm1 和 vm2 进行。

4 创建DBRD资源
[root@vm1 ~]# drbdadm create-md db ##db是DRBD配置文件中的资源名称
你要我创建 v08 风格的灵活大小内部元数据块。
似乎有一个 v08 灵活大小内部元数据块
已经位于 /dev/sdb1 的字节偏移量 1069248512

您确实要覆盖现有元数据吗?
[需要输入“是”来确认]是

md_offset 1069248512
al_offset 1069215744
bm_offset 1069182976

发现ext3文件系统
1044124 kB数据区域显然已使用
1044124 kB当前配置可用

即使看起来像这样将新的元数据放入
未使用的空间,您仍然需要确认,因为这只是一个猜测。

您想继续吗?
[需要输入“是”来确认]是

正在初始化活动日志
不初始化位图< br/>正在写入元数据...
新的 drbd 元数据块已成功创建。
[root@vm1 ~] # cat /proc/drbd
version: 8.4.7-1 (api :1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27:11
[root@vm1 ~]#
< br/>[root@vm2 ~]# drbdadm create-md db
您希望我创建一个 v08 风格的灵活大小内部元数据块。
似乎有一个 v08 灵活大小内部元数据块数据块
已位于 /dev/sdb1 字节偏移 1069248512 处

您真的要覆盖现有元数据吗?
[需要输入“yes”才能确认]是

md_offset 1069248512
al_offset 1069215744
bm_offset 1069182976

发现ext3文件系统
1044124 kB数据区域显然已使用
当前配置剩余 1044124 kB 可用

即使虽然看起来这会将新的元数据放入
未使用的空间,但您仍然需要确认,因为这只是猜测。

您想继续吗?
[需要输入“yes”来确认]是

正在初始化活动日志
/>不初始化位图
正在写入元数据...
新的drbd元数据块创建成功。
[root@vm2 ~]# cat /proc/drbd
版本:8.4 .7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49由mockbuild@Build64R6构建,2016-01-12 13:27:11
[root@vm2 ~] #

5 启动DRBD
[root@vm1 ~]# /etc /init.d/drbd start
启动 DRBD 资源: [
create res: db
准备磁盘: db
调整磁盘: db
调整 net: db
/>]
......
******************************* ************************** ********
DRBD 的启动脚本等待对等节点
- 如果该节点在
重新启动之前已经是降级集群,则超时为 0 秒。 [degr-wfc-超时]
- 如果对等点在重新启动之前可用,则超时
为 0 秒。 [wfc-timeout]
(这些值适用于资源“db”;0 秒 -> 永远等待)
要中止等待,请输入“yes”[12]:yes

.
[root@vm1 ~]# ls /dev/drbd*
/dev/drbd1

/dev/drbd:
按磁盘按- res
[root@vm1 ~]# cat /proc/drbd
版本:8.4.7-1 (api:1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 构建mockbuild@Build64R6, 2016-01-12 13:27:11


1: cs:WFConnection ro:Secondary/Unknown ds:不一致/DUnknown C r----s
ns: 0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1044124

[root@vm2 ~ ]# /etc/init.d/drbd start
启动 DRBD 资源: [
create res: db
准备磁盘: db
调整磁盘: db
调整 net: db
]
.
[ root@vm2 ~]# ls /dev/drbd*
/dev/drbd1

/dev/drbd:< br/>按磁盘按-res







[root@vm1 ~]# cat /proc/drbd
版本: 8.4.7-1 (api:1/proto:86-101 )
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6构建,2016-01-12 13:27:11

1:cs:SyncSource ro:主/辅助ds:UpToDate/不一致的C r-----
ns:105528 nr:0 dw:0 dr:106200 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:foos:938596
                                                                                                        ...... ] 同步:10.2% (938596/1044124) k
完成:0:00:44 速度:21,104 (21,104) k/秒

< p>6 将 vm1 设置为主< br/>[root@vm1 ~]# drbdsetup /dev/drbd1 Primary --force=yes
[root@vm1 ~]# cat /proc/drbd
版本 : 8.4.7-1 (api :1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6构建,2016-01-12 13:27:11

1: cs:SyncSource ro:Primary /辅助 ds:UpToDate/不一致 C r---- -
ns:105528 nr:0 dw:0 dr:106200 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep: 1 wo:f oos:938596
 [= >........................] 同步: 10.2% (938596/1044124)K /sec
[root@vm1 ~]# cat /proc/drbd
版本:8.4.7-1 (api:1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27:11

1: cs:已连接 ro:主要/次要 ds:UpToDate/UpToDate C r-----
ns :1044124 nr:0 dw:0 dr:1044796 al:8 bm:0 lo:0 pe:0 ua: 0 ap:0 ep:1 wo:f oos:0

7 创建文件系统,并挂载。 .r/>块大小=4096 (log=2)
片段大小=4096 (log=2)
Stride=0块,条带宽度=0块
65280个inode,261031个块< br/> />为超级用户保留13051个块(5.00%)
第一个数据块=0
最大文件系统块=268435456
8个块组
每组32768个块,每组 32768 个碎片
每组 8160 个 inode
存储在块上的超级块备份:
32768、98304、163840、229376

写入 inode表:完成
创建日志(4096个块):完成
写入超级块和文件系统记帐信息:完成

此文件系统将每 31 次安装或每 180 次自动检查一次天,以先到者为准。使用tune2fs -c或-i覆盖。
[root@vm1 ~]#
[root@vm1 ~]# mount /dev/drbd1 /drbd/
[root@vm1 ~] # df -h
使用的文件系统大小 Avail Use% 安装在
/dev/sda3 19G 9.7G  7.9G 56% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 190M 53M 128M 30% /boot
/dev/drbd1 988M 1.3M 936M 1% /drbd

8 挂载测试;
在 vm1 上:
[root@vm1 ~]# cd /drbd/
[root@vm1 drbd]# touch aa
[root@vm1 drbd]# umount /drbd/
umount: /drbd: 设备是忙碌的。通过 lsof(8) 或 fusionr(1))
[root@vm1 drbd]# cd
[root@vm1 ~]# cd
[root@vm1 ~]# umount /drbd/
[root@vm1 ~]# drbdadm 辅助数据库
[root@vm1 ~]# cat /proc/drbd
版本:8.4.7-1 (api:1/proto:86- 101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由 moc 构建kbuild@Build64R6, 2016-01-12 13:27:11

1: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
ns: 1077352 nr:0 dw:33228 dr:1045509 al:10 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[root@vm1 ~]#

切换到vm2进行验证:
[root@vm2 dev] # drbdadm Primary db
[root@vm2 dev]# cat /proc/drbd
版本:8.4。 7-1 (api:1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27:11

1: cs :已连接 ro:主要/次要 ds:UpToDate/UpToDate C r-----
ns:0 nr:1077352 dw:1077352 dr:672 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[root@vm2 dev]# mkdir /drbd
[root@vm2 dev]# mount /dev/drbd1 /drbd/
[ root@vm2 dev]# cd /drbd/
[root@vm2 drbd]# ls
aalost+found
[root@vm2 drbd]#

9 切换返回vm1:
切换并设置vm1为master:





[root@vm2 ~]# umount /drbd/
[root@vm2 ~]# drbdadm secondary db< br/>[root@vm2 ~]# cat /proc/drbd
ve版本:8.4。 7-1 (api:1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27:11

1: cs :已连接 ro:次要/次要 ds:UpToDate/UpToDate C r-----
ns:36 nr:1077352 dw:1077388 dr:1025 al:10 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

[root @vm1 ~]# drbdadm 主数据库
[root@vm1 ~]# mount /dev/drbd1 /drbd/< br/>[root@vm1 ~]# cat /proc/drbd
版本:8.4 .7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@构建Build64R6, 2016-01-12 13:27:11

1: cs:Connected ro:主要/次要 ds:UpToDate/UpToDate C r-----
ns:1077356 nr :36 dw:33268 dr:1046530 al:10 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:foos:0



10 配置心跳。
[root@vm1 ~]# cp /usr /share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
[root@vm1 ~ ]# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ ha.d/
[root@vm1 ~]# cp /usr/share/doc/heartbeat-2.1.3 /authkeys /etc/ha.d/
[root@vm1 ~]# chmod 600 /etc/ha.d/authkeys

VIP 10.0.0.20

设置通讯密钥
[root@vm1 ~]# cat /etc/ha.d/authkeys | egrep -v "^#"
auth 3
3 md5 您好!

创建心跳配置文件
[root@vm1 ~]# grep -v "^# " /etc/ha.d/ha.cf
调试文件 /var/log/ha-debug
日志文件 /var/log/ha-log
logfacility local0
keepalive 2< br/>死区时间5
警告时间5
initdead 120
ucast eth0 10.0.0.12
auto_failback关闭
节点vm1
节点vm2
ping 10.0 .0.1

创建mysql管理脚本,只是简单说明一下问题
[root@vm1 ~]# cat /etc/ha.d/resource.d/manage_mysql
# !/bin/bash

case $1 in

'start')

/usr/local/mysql/bin/mysqld_safe --defaults- file=/drbd/mysql3307/my.cnf &
;;

'停止')
if [[ `ps -ef | mysqld | grep mysqld | wc -l` < 2 ]] ;然后
退出
其他
mysqladmin -S /tmp/mysql3307.sock shutdown
fi
;;

*)
;;
esac

[root@vm1 ~]# chmod +x /etc/ha.d/resource.d/manage_mysql
定义心跳管理资源
[root@vm1 ~]# grep -v "^#" /etc/ha. d/haresources
vm1 IPaddr::10.0.0.20 drbddisk::db Filesystem::/dev/drbd1: :/drbd::ext4 manage_mysql

[root@vm1 ~]# scp - r /etc/ha.d/ vm2:/etc

修改vm2的/etc/ha.d/ha.cf内容如下
[root@vm2 ha.d] # grep -v "^#" /etc/ha.d/ha.cf
调试文件 /var/log/ha -debug
日志文件 /var/log/ha-log
logfacility local0
保持活动2
死区时间5
警告时间5
initdead 120
ucast eth0 10.0.0.11
auto_failback关闭
节点vm1
节点vm2
ping 10.0.0.1

11 开始验证
先启动DRBD
[root@vm1 ~]# /etc/init.d/drbd start
[root@vm1 ~]# cat /proc/drbd
版本:8.4.7-1 (api:1/proto :86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6构建,2016 -01-12 13:27:11

1: cs:已连接 ro:次要/次要 ds:UpToDate/UpToDate C r-----
ns:1452 nr:1148 dw:2600 dr:26342 al:9 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo: foos:0

[root@ vm2资源.d]# /etc/init.d/drbd start
[root@vm2资源.d]# cat /proc/drbd
版本: 8.4.7-1 (api:1/proto :86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6构建,2016-01-12 13:27:11

1: cs:Connected ro:Secondary/Secondary ds: UpToDate/UpToDate C r-----
ns:1412 nr:6112 dw:7524 dr:24838 al:9 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

启动心跳:
[root@vm1 ~]# /etc/init.d/heartbeat start
启动高可用性服务:信息:资源已停止< br/>完成。
[root@vm2 ~]# /etc/init.d/heartbeat start
启动高可用性服务:信息:资源已停止
完成。

检查日志
[root@vm1 ~]# tail -20f /var/log/ha-log
Apr 11 17 :19:58 vm1 heartbeat: [7734]: info: Pacemaker 支持: false
4 月 11 日 17:19:58 vm1 心跳: [7734]: 警告: 日志守护进程已禁用 --启用日志守护进程推荐
4 月 11 日 17:19:58 vm1 心跳: [7734]: 信息: ********** ****************
4 月 11 日 17:19:58 vm1 心跳:[7734]:信息:配置已验证。启动心跳 3.0.4
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:心跳:版本 3.0.4
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:心跳生成:1460298765
4月11日17:19:58 vm1心跳:[7735]:信息:glib:ucast:在eth0上将套接字优先级设置为IPTOS_LOWDELAY
4月11日17:19:58 vm1心跳: [7735]: 信息: glib: ucast: 绑定发送套接字到设备: eth0
4 月 11 日 17:19:58 vm1 心跳: [7735]: 信息: glib: ucast: 设置 SO_REUSEPORT(w)
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:glib:ucast:将接收套接字绑定到设备:eth0
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:glib: ucast:设置 SO_REUSEPORT(w)
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:glib:ucast:在端口 694 接口 eth0 上启动到 10.0.0.12
4 月 11 日 17:19 :58 vm1 心跳:[7735]:信息:glib:ping 心跳开始。
4月11日17:19:58 vm1心跳:[7735]:信息:G_main_add_TriggerHandler:添加信号手动处理程序
4月11日17:19:58 vm1心跳:[7735]:信息:G_main_add_TriggerHandler:添加了信号手动处理程序
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:G_main_add_SignalHandler:为信号 17 添加了信号处理程序
4 月 11 日 17:19:58 vm1 心跳:[7735]:信息:本地状态现在设置为:'up'
4月11日17:19:58 vm1心跳:[7735]:信息:链接10.0.0.1:10.0.0.1 up。
4月11日17:19 :58 vm1 心跳: [7735]: 信息: 节点 10.0.0.1 的状态更新: 状态 ping
4 月 11 日 17:20:36 vm1 心跳: [7735]: 信息: 链接 vm2:eth0 up。
4 月 11 日 17:20:36 vm1 心跳:[7735]:信息:节点 vm2 的状态更新:状态已启动
harc(默认)[7747]:2016/04/11_17:20:36 信息:正在运行 / etc/ha.d//rc.d/status 状态
4 月 11 日 17:20: 37 vm1 心跳: [7735]: 信息: Comm_now_up(): 将状态更新为活动
4 月 11 日 17:20 :37 vm1 心跳:[7735]:信息:本地状态现在设置为:“活动”
4 月 11 日 17:20:37 vm1 心跳:[7735]:信息:节点 vm2 的状态更新:状态活动
harc(默认)[7768]:2016/04/11_17:20:37 信息:正在运行 / etc/ha.d//rc.d/status状态
4月11日17:20:48 vm1心跳:[7735]:信息:远程资源转换完成。
4月11日17:20:48 vm1 heartbeat: [7735]: info: 远程资源过渡完成。
4月11日17:20:48 vm1 heartbeat: [7735]: info: 初始资源获取完成(T_RESOURCES(us))
/usr/ lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0 .20)[7821]: 2016/04/11_17:20:48 INFO: 资源已停止
4 月 11 日 17:20:48 vm1 心跳: [7785]: info: 本地资源获取完成。
harc(default)[7887]: 2016/04/11_17:20:49 info: 运行 /etc/ha.d//rc.d/ip- request-resp ip-request-resp
ip-request-resp(default)[7887]: 2016/04/11_17:20:49收到ip-request-resp IPaddr::10.0.0.20 OK yes
ResourceManager(默认)[7910]: 2016/04/11_17:20:49 信息: 获取资源组: vm1 IPaddr::10.0.0.20 drbddisk::db 文件系统::/dev/drbd1::/drbd::ext4 manage_mysql
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[7938]: 2016/04/ 11_17: 20:49 INFO: 资源已停止
ResourceManager(默认)[7910]: 2016/04/11_17:20:49 info: 运行 /etc/ha.d/resource.d/IPaddr 10.0.0.20 start
IPaddr(IPaddr_10.0.0.20)[8034]: 2016/04/11_17:20:49 INFO: 将广播地址 10.0.0.255 的 inet 地址 10.0.0.20/24 添加到设备 eth0
IPaddr( IPaddr_10.0.0.20)[8034]: 2016/04/11_17:20:49 信息: 启动设备 eth0
IPaddr(IPaddr_10.0.0.20)[8034]: 2016/04/11_17:20:49信息:/usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-10.0.0.20 eth0 10.0.0.20 auto not_used not_used
/usr/lib/ocf/资源。 d//heartbeat/IPaddr(IPaddr_10.0.0.20)[8020]: 2016/04/11_17:20:49 INFO: 成功
ResourceManager(默认)[7910]: 2016/04/11_17:20:49信息:运行 /etc/ha.d/resource.d/drbddisk db start
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev/drbd1)[8162]:2016/04/11_17:20:49信息:资源已停止
ResourceManager(默认)[7910]:2016/04/11_17:20:49信息:正在运行/etc/ha.d/resource.d /Filesystem /dev/drbd1 /drbd ext4 start
文件系统(Filesystem_/dev/drbd1)[8249]: 2016/04/11_17:20:49 INFO: 在 /drbd 上运行 /dev/drbd1 的启动
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev/drbd1)[8241]: 2016/04/11_17:20:49 INFO: 成功
ResourceManager(默认)[7910] :2016/04/11_17:20:49信息:运行/etc/ha.d/resource.d/manage_mysql start


[root@vm2 ~]# tail -20f /var /log/ha-log
4月11日17:20:36 vm2心跳:[16250]:信息:起搏器支持:假
4月11日17:20:36 vm2心跳:[16250]:警告:日志守护进程已禁用 -- 建议启用日志守护进程
4 月 11 日 17:20:36 vm2 heartbeat: [16250]: info: ******** ************ ******
4 月 11 日 17:20:36 vm2 心跳:[16250]:信息:配置已验证。启动心跳 3.0.4
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息:heartbeat:版本 3.0.4
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息:心跳生成:1460351868
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息: glib: ucast: 在 eth0 上将套接字优先级设置为 IPTOS_LOWDELAY
4 月 11 日 17:20:36 vm2 心跳: [16251]: 信息: glib: ucast: 绑定发送套接字到设备: eth0
4 月 11 日 17 :20:36 vm2 心跳: [16251]: 信息: glib: ucast: 设置 SO_REUSEPORT(w)
4 月 11 日 17:20:36 vm2 心跳: [16251]: 信息: glib: ucast: 将接收套接字绑定到设备:eth0
4月11日17:20:36 vm2心跳:[16251]:信息:glib:ucast:设置SO_REUSEPORT(w)
4月11日17:20:36 vm2心跳:[16251]:信息:glib:ucast:在接口 eth0 到 10.0.0.11 的端口 694 上启动
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息:glib:ping 心跳开始。
4 月 11 日 17: 20:36 vm2 心跳: [16251]: 信息: G_main_add_TriggerHandler: 添加信号手动处理程序
4 月 11 日 17:20:36 vm2 心跳: [16251]: 信息: G_main_add_TriggerHandler: 添加信号手动处理程序
4 月 11 日17:20:36 vm2 心跳: [16251] ]: 信息: G_main_add_SignalHandler: 为信号 17 添加了信号处理程序
4 月 11 日 17:20:36 vm2 心跳: [16251]: 信息: 本地状态现在设置为: 'up'
4 月 11 日 17:20 :36 vm2 心跳:[16251]:信息:链接 10.0.0.1:10.0.0.1 向上。
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息:状态更新对于节点 10.0.0.1:状态 ping
4 月 11 日 17:20:36 vm2 心跳:[16251]:信息:链接 vm1:eth0 up。
4 月 11 日 17:20:37 vm2 心跳:[16251 ]: 信息: 节点 vm1 的状态更新: 状态为活动
4 月 11 日 17:20:37 vm2 心跳: [16251]: 信息: Comm_now_up(): 将状态更新为活动
4 月 11 日 17:20: 37 vm2 心跳: [16251] : 信息: 本地状态现在设置为: '活动'
harc(默认)[16261]: 2016/04/11_17:20:37 信息: 正在运行 /etc/ha.d// rc.d/status状态
4月11日17:20:48 vm2心跳:[16251]:信息:本地资源转换完成。
4月11日17:20:48 vm2心跳:[16251]:信息: 初始获取资源完成 (T_RESOURCES(us))
Apr 11 17:20:48 vm2 heartbeat: [16280]: info: 没有要获取的本地资源 [/usr/share/heartbeat/ResourceManager listkeys vm2]。
4 月 11 日 17:20:48 vm2 heartbeat: [16251]: info: 远程资源转换已完成

检查drbd、磁盘挂载、mysql进程信息:
在vm1上:
[root@vm1 ~]# cat /proc/drbd
版本:8.4。 7-1 (api:1/proto:86-101)
GIT 哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27 :11

1: cs :已连接 ro:主要/次要 ds:UpToDate/UpToDate C r-----
ns:2004 nr:1148 dw:3152 dr:38227 al:10 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[root@vm1 ~]# df -h
文件系统大小已使用可用使用%安装在
/dev/sda3 19G 11G 7.5G 58 % /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 190M 5 3M 128M 30% / boot
/dev/drbd1 988M 178M 760M 19% /drbd

[root@vm1 ~]# ps -ef | grep mysql
root 8337 1 0 17:20 ? 00 :00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/drbd/mysql3307/my.cnf
mysql 8599 83370 17:20 ? 00:00:00 / usr/local/mysql/bin/mysqld --defaults-file=/drbd/mysql3307/my.cnf --basedir=/usr/local/mysql --datadir=/drbd/mysql3307 --plugin -dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/drbd/mysql3307/vm1.err --pid-file=/drbd/mysql3307/vm1.pid --socket= /tmp/mysql3307.sock --port=3307
root 8633 1874 0 17:24 pts/3 00:00:00 grep mysql

[root@vm1 ~]# mysql -uroot - pmysql -h20.0.0.20 -P3307
警告:在命令行界面上使用密码可能不安全。
欢迎使用 MySQL 监视器。命令以 ; 结尾或 \g.
您的 MySQL 连接 ID 为 1
服务器版本:5.6.27-log 源代码分发

版权所有 (c) 2000、2015、Oracle 和/或其附属公司。保留所有权利。

Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

输入“帮助;”或“\h”寻求帮助。输入 '\c' 清除当前输入语句。

mysql> Ctrl-C -- 退出!
已中止

vm2 Up:
[root@vm2 resource.d]# cat /proc/drbd
版本:8.4.7-1 (api :1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6构建,2016-01-12 13:27:11

1: cs:Connected ro:Secondary /Primary ds:UpToDate/UpToDate C r-----
ns:1412 nr:6664 dw:8076 dr :24838 al:9 bm:0 lo:0 pe:0 ua:0 ap:0 ep: 1 wo:f oos:0
[root@vm2 ~]# df -h
使用的文件系统大小 Avail Use% Mounted on
/dev/sda3 19G 11G 7.5G 58% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 190M 53M 12 8M 30% /boot
[root@vm2 ~]# ps -ef | grep mysql
root 16304 11810 0 17:24 pts/2 00:00:00 grep mysql
[root@vm2 resource.d]#

[root@vm2 资源。 d]# mysql -uroot -pmysql -h20.0.0.20 -P3307
警告:在命令行界面上使用密码可能不安全。
欢迎使用 MySQL 监视器。命令以 ; 结尾或 \g.
您的 MySQL 连接 ID 为 2
服务器版本:5.6.27-log 源码分布

版权所有t (c) 2000、2015,Oracle 和/或其附属公司。保留所有权利。

Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

键入“帮助;”或“\h”寻求帮助。输入 '\c' 清除当前输入语句。

mysql> Ctrl-C -- 退出!
已中止
[root@vm2 resource.d]#

关闭vm1并模拟故障:
[root@vm1 ~]# init 0

[root@vm2 ~]# tail -20f /var/log/ha -log
4 月 11 日 17:27:00 vm2 心跳:[16251]:信息:收到来自“vm1”的关闭通知。
4 月 11 日 17:27:00 vm2 心跳:[16251]:信息:正在从 vm1 获取资源。
4 月 1117:27:00 vm2 心跳:[16310]:信息:获取本地 HA 资源(备用)。
4 月 11 日 17:27:00 vm2 心跳:[16310] : info: 本地 HA 资源获取完成(备用)。
4 月 11 日 17:27:00 vm2 heartbeat: [16251]: info: 备用资源获取完成[全部]。
4 月 11 日 17:27: 00 vm2 心跳:[16311]:信息:没有要获取的本地资源 [/usr/share/heartbeat/ResourceManager listkeys vm2]。
harc(默认)[16336]:2016/04/11_17:27:00 信息:正在运行 /etc/ha.d //rc .d/status status
mach_down(default)[16353]: 2016/04/11_17:27:00 info: 接管资源组 IPaddr::10.0.0.20
ResourceManager(default)[ 16380]: 2016/04/11_17:27:00 info: 获取资源组: vm1 IPaddr::10.0.0.20 drbddisk::db Filesystem::/dev/drbd1::/drbd::ext4 manage_mysql
/usr /lib/ ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[16408]: 2016/04/11_17:27:00 INFO: 资源已停止
ResourceManager(默认)[16380]: 2016/04/11_17:27:00 信息:运行 /etc/ha.d/resource.d/IPaddr 10.0.0.20 start
IPaddr(IPaddr_10.0.0.20)[16504 ]: 2016/04/11_17: 27:00 INFO: 将广播地址 10.0.0.255 的 inet 地址 10.0.0.20/24 添加到设备 eth0
IPaddr(IPaddr_10.0.0.20)[16504]: 2016/04/ 11_17:27:00 INFO: 带来设备 eth0 up r 5 -p /var/run/resource-agents/send_arp-10.0.0.20 eth0 10.0.0.20 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[16490]: 2016/04/11_17:27:00 信息: 成功
ResourceManager(默认)[16380]:2016/04/11_17:27:00 信息:运行 /etc/ha.d/resource。 d/drbddisk db start
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev/drbd1)[16632]: 2016/04/11_17:27:01 INFO: 资源已停止< br/>ResourceManager(默认)[16380]: 2016/04/11_17:27:01 info : 运行 /etc/ha.d/resource.d/Filesystem /dev/drbd1 /drbd ext4 start
Filesystem(Filesystem_ /dev/drbd1)[16719]: 2016/04/11_17:27:01 INFO: 在 /drbd
/usr/lib/ocf/resource.d//heartbeat/Filesystem( 上运行 /dev/drbd1 的启动Filesystem_/dev/drbd1)[16711]: 2016/04/11_17:27:01 信息: 成功
ResourceManager(默认)[16380]: 2016/04/11_17:27:01 信息: 运行 /etc/ha .d/resource.d/manage_mysql start
mach_down(默认)[16353]:2016/04/11_17:27:01 info:/usr/share/heartbeat/mach_down:nice_failback:获取外部资源
mach_down(默认)[16353]: 2016/04/11_17:27:01 信息:节点 vm1 的 mach_down 接管完成。
4 月 11 日 17:27:01 vm2 心跳:[16251]:信息:mach_down 接管完成。
4 月 11 日 17:27:07 vm2 心跳: [16251]: 警告: 节点 vm1: 已死亡
4 月 11 日 17:27:07 vm2 心跳: [16251]: 信息: 死亡节点 vm1 放弃了资源。
4 月 11 日 17:27:07 vm2 心跳: [16251]: 信息: 链接 vm1 :eth0 已死。

[root@vm2 ~]# ps -ef | grep mysql
root 16808 1 0 17:27 ? 00:00:00 /bin/sh /usr/local /mysql/bin/mysqld_safe --defaults-file=/drbd/mysql3307/my.cnf
mysql 17085 16808 0 17:27 ? 00:00:00 /usr/local/mysql/bin/mysqld --defaults -file=/drbd/mysql3307/my.cnf --basedir=/usr/local/mysql --datadir=/drbd/mysql3307 --plugin -dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/drbd/mysql3307/vm2.err --pid-file=/drbd/mysql3307/vm2.pid --socket= /tmp/mysql3307.sock --port=3307
root 17112 11810  0 17:28 pts/2 00:00:00 grep mysql

[root@vm2 ~]# cat /proc /drbd
版本:8.4.7-1(api:1/proto:86-101)
GIT哈希:3a6a769340ef93b1ba2792c6461250790795db49 由mockbuild@Build64R6 构建,2016-01-12 13:27:11

1: cs:WFConnection ro:Primary/ 未知 ds:UpToDate/DUnknown C r-----
ns:1820 nr:6856 dw:8760 dr:36747 al:10 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:84
[root@vm2 ~] # df -h
使用的文件系统大小 Avail Use% Mounted on
/dev/sda3 19G 11G 7.5G 58% /
tmpfs 246M 0 246M 0% /dev/shm
/ dev/sda1 190M 53M 128M 30% /boot
/dev/drbd1 988M 178M 760M 19% / drbd
 
[ root@vm2 ~]# ip a
1: lo: mtu 65536 qdisc noqueue 状态未知
链接/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0 。 0.1/8 范围主机 lo
inet6 ::1/128 范围主机
valid_lft 永远 Preferred_lft 永远
2: eth0: mtu 1500 qdisc pfifo_fast 状态 UP qlen 1000
link/ether 08:00:27:9b:2c:f6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.12/24 brd 10.0.0.255 范围全局 eth0
inet 10.0.0.20/24 brd 10.0.0.255 范围 global secondary eth0
inet6 fe80::a00:27ff:fe9b:2cf6/64 范围链接
valid_lft 永远 Preferred_lft 永远

[root@vm2 ~]# mysql -uroot -pmysql -h20.0.0.20 -P3307
警告:在命令行界面上使用密码可能不安全。
欢迎使用 MySQL 监视器。命令以 ; 结尾或 \g.
您的 MySQL 连接 ID 为 1
服务器版本:5.6.27-log 源代码分发

版权所有 (c) 2000、2015、Oracle 和/或其附属公司。保留所有权利。

Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

输入“帮助;”或“\h”寻求帮助。输入“\c”清除当前输入语句。

mysql>

VIP、磁盘资源、mysql进程都在vm2上。

结束!

##########################################

后记

资源文件配置说明:

[root@vm1 ~]# grep -v "^#" /etc/ha .d/haresources
vm1 IPaddr::10.0.0.20 drbddisk::db Filesystem::/dev/drbd1::/drbd::ext4 manage_mysql

vm1 主服务器的主机名,其次是心跳管理的资源。

IPaddr::10.0.0.20 VIP

drbddisk::db DRBD资源,db是drbd.conf中资源的名称

Filesystem::/ dev/ drbd1::/drbd::ext4 需要挂载的文件系统、挂载点、文件类型

manage_mysql 系统或者自定义的资源管理文件需要能够配合启动\停止参数。一般位于/etc/init.d或/etc/ha.d/resource.d目录下,

这个manage_mysql是我自己写的。

执行/etc/init.d/heartbeat start命令后,master节点上/var/log/ha-log内容如下:

< p>ResourceManager(default)[2006]: 2016/04/11_18:05:35 info: 获取资源组: vm1 IPaddr::10.0.0.20 drbddisk::db Filesystem::/dev/drbd1: :/drbd::ext4 manage_mysql
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[2052]: 2016/04/11_18:05:35 信息:资源已停止
/usr/lib/ocf/resource。 d//heartbeat/IPaddr(IPaddr_10.0.0.20)[2061]: 2016/04/11_18:05:35 INFO: 资源已停止
4 月 11 日 18:05:35 vm1 heartbeat: [1980]: 信息:本地资源获取完成。
ResourceManager(default)[2006]: 2016/04/11_18:05:35 info: Running /etc/ha.d/resource.d/IPaddr 10.0.0.20start
IPaddr(IPaddr_10.0.0.20)[2218]: 2016/04/11_18:05:35 INFO: 将广播地址 10.0.0.255 的 inet 地址 10.0.0.20/24 添加到设备 eth0
IPaddr (IPaddr_10.0.0. 20)[2218]: 2016/04/11_18:05:35 INFO: 启动设备 eth0
IPaddr(IPaddr_10.0.0.20)[2218]: 2016/04/11_18:05: 35 INFO: /usr /libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-10.0.0.20 eth0 10.0.0.20 auto not_used not_used
/usr/lib/ocf /resource.d/ /heartbeat/IPaddr(IPaddr_10.0.0.20)[2204]: 2016/04/11_18:05:35 信息: 成功
ResourceManager(默认)[2006]: 2016/04/11_18: 05:35 信息:运行 /etc/ha.d/resource.d/drbddisk db start
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev/drbd1)[2348 ]:2016/04/11_18:05:35信息:资源已停止
ResourceManager(默认)[2006]:2016/04/11_18:05:35信息:运行/etc/ha.d/resource.d /Filesystem /dev/drbd1 /drbd ext4 start
文件系统(Filesystem_/dev/drbd1)[2434]: 2016/04/11_18:05:35 INFO: 在 /drbd 上运行 /dev/drbd1 的启动
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev /drbd1)[2426]: 2016/04/11_18:05:35 INFO: 成功
ResourceManager(默认)[2006] : 2016/04/11_18:05:35 info: 运行 /etc/ha.d/resource.d/manage_mysql start
Apr 11 18:05:35 vm1 heartbeat: [1979]: info: 所有 HA 资源获取已完成(备用)。
4月11日18:05:35 vm1心跳:[1590]:信息:备用资源获取完成[全部]。
harc(默认)[2523]:2016/04/11_18 :05:35 信息:运行 /etc/ha.d//rc.d/status status
mach_down(默认)[2560]:2016/04/11_18:05:35 信息:/usr/share/heartbeat/mach_down:nice_failback:已获取外部资源
mach_down(默认)[2560]:2016/04/11_18:05:36信息:节点vm2的mach_down接管完成。
4月11日18:05:36 vm1 心跳:[1590]:信息:mach_down 接管完成。
harc(默认)[2626]:2016/04/11_18:05:36 信息:运行 /etc/ha.d//rc.d/ip -request-resp ip-request-resp
ip-request-resp(默认)[2626]: 2016/04/11_18:05:36 收到 ip-request-resp IPaddr::10.0.0.20 OK yes
ResourceManager(默认)[2680] : 2016/04/11_18:05:36 info: 获取资源组: vm1 IPaddr::10.0.0.20 drbddisk::db Filesystem::/dev/drbd1::/drbd::ext4 manage_mysql
/usr/lib /ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[2741]: 2016/04/11_18:05:36 信息: 运行正常
/usr /lib/ocf/resource.d/ /heartbeat/Filesystem(Filesystem_/dev/drbd1)[2929]: 2016/04/11_18:05:36 INFO: 运行正常
ResourceManager(默认)[2680]: 2016 /04/11_18:05:36 信息:运行 /etc/ha.d/resource.d/manage_mysql start
4 月 11 日 18:05:41 vm1 心跳:[1590]:警告:节点 vm2:已死亡
4 月 11 日 18:05:41 vm1 心跳:[1590]:信息:死亡节点 vm2 放弃了资源。
4 月 11 日 18:05:41 vm1 心跳:[1590]:信息:链接 vm2:eth0 已死。

######################

主节点执行/etc/init.d/heartbeat stop命令后,/var/log/ha-log内容如下:

ResourceManager(默认)[17275]:2016/04/11_18:05:31信息:运行/etc/ha.d/resource.d/manage_mysql stop
ResourceManager(默认)[17275]:2016/04/11_18 :05:33 信息:运行 /etc/ha.d/resource.d/Filesystem /dev/drbd1 /drbd ext4 stop
文件系统(Filesystem_/dev/drbd1)[17343]:2016/04 /11_18:05 :33 信息: 在 /drbd 上运行 /dev/drbd1 的停止
文件系统(Filesystem_/dev/drbd1)[17343]: 2016/04/11_18:05:33 信息: 尝试卸载 /drbd
文件系统(Filesystem_/dev/drbd1)[17343]:2016/04/11_18:05:33信息:成功卸载/drbd
/usr/lib/ocf/resource.d//heartbeat/Filesystem(Filesystem_/dev /drbd1)[17335]: 2016/04/11_18:05:33 信息:成功
ResourceManager(默认)[17275]:2016/04/11_18:05:33 信息:运行 /etc/ha.d/resource.d/drbddisk db stop
ResourceManager(默认)[17275]:2016/04/11_18:05:34信息:运行/etc/ha.d/resource.d/IPaddr 10.0.0.20 stop
IPaddr(IPaddr_10.0.0.20)[17492 ]: 2016/ 04/11_18:05:34 信息: IP 状态 = 正常, IP_CIP=
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_10.0.0.20)[17473]: 2016/04/ 11_18:05:34 INFO:成功
4月11日18:05:34 vm2心跳:[17262]:信息:放弃所有HA资源。
4月11日18:05:35 vm2心跳: [16251] : 警告: [vm1] [64:66] 有 1 个数据包丢失
4 月 11 日 18:05:35 vm2 心跳: [16251]: 信息: vm1 中没有丢失数据包!
4月11日18:05:36 vm2心跳:[16251]:信息:用信号15杀死HBFIFO进程16254
4月11日18:05:36 vm2心跳:[16251]:信息:用信号杀死HBWRITE进程16255 15
4 月 11 日 18:05:36 vm2 心跳:[16251]:信息:使用信号杀死 HBREAD 进程 16256 15
4 月 11 日 18:05:36 vm2 heartb吃:[16251]:信息:用信号15杀死HBWRITE进程16257
4月11日18:05:36 vm2心跳:[16251]:信息:用信号15杀死HBREAD进程16258
4月11日18: 05:36 vm2 心跳:[16251]:信息:核心进程 16254 已退出。剩余 5 个
4 月 11 日 18:05:36 vm2 心跳:[16251]:信息:核心进程 16256 已退出。剩余 4 个
4 月 11 日 18:05:36 vm2 心跳:[16251]:信息:核心进程 16255 已退出。剩余 3 个
4 月 11 日 18:05:36 vm2 心跳:[16251]:信息:核心进程 16258 已退出。剩余 2 个
4 月 11 日 18:05:36 vm2 心跳:[16251]:信息:核心进程 16257 已退出。剩余1个
Apr 11 18:05:36 vm2 heartbeat: [16251]: info: vm2 Heartbeat shutdowncomplete.

可以看到启动时,资源是从前面执行的按照 haresources 文件中定义的顺序返回。
关闭时,按照haresources文件中定义的顺序从后到前依次释放资源。

“如何构建《D Heartbeat+DRBD+MySQL》就介绍到这里,感谢您的阅读。如果您想了解更多行业相关知识,可以关注网站,小编将为您输出更多优质实用的信息。文章!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何搭建Heartbeat+DRBD+MySQL

用户评论