drbd实现mysql地热备_redhat6.5 heartheartbeat+drbd+mysql主库热备

本文详细介绍了如何使用DRBD进行数据复制,Heartbeat实现故障转移,以及配置MySQL主从同步,构建高可用性的MySQL集群。通过DRBD的块设备复制和Heartbeat的故障检测,确保在主服务器故障时能快速切换到备用服务器,保持服务连续性。
摘要由CSDN通过智能技术生成

一 环境准备

1 环境

主机名

网卡

磁盘

master

eth0 桥接模式 eth0(192.168.1.10) 自定义模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210

系统盘+20G外接磁盘

slave

eth0 桥接模式(192.168.1.20) eth1 自定义模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210

系统盘+20G外接磁盘

server3

eth0 桥接模式 (192.168.1.30)

系统盘

master

5b98b02c877793fced195e2e55794124.png

slave

e928d5bdbcfd8892e0fefe89f8489402.png

server3

ba731664d396ef071ef3696b59f862e9.png

2 域名DNS

17a50a83fec67b2def2d0724e91db7e4.png

3 时间同步

c8b0fa80861c2602371b042c197e713c.png

bdb9637f9df61327aa340eefe6a51d16.png

4 网卡配置

949a4ae2e659ec1186e61440e7ae03d8.png

990a5478ce15d963eef1ad2c238655c2.png

5 磁盘情况

53eab70042b68553c04c6d540281d03d.png

d0eef04d97f170ae80ab421d88529235.png

6 软件包位置

二 软件安装

1 drbd 简介

1 drbd 原理

drbd 是工作在文件系统之下,是基于块的迁移

drbd的迁移

文件系统------buffer-cache--------网卡传递到另一端------裸设备-----drbd写入磁盘

drbd 数据分为两部分,数据存储部分和元数据部分。

2 drbd 复制模式

协议A:本地写成功后就返回给客户端。

协议B:半同步的协议,本地写成功,发送到对端后立即返回,

协议C:发送到对端,并成功写入并进行缓存。

3 DRBD 的应用模式

1 单主模式,及主备模式,为典型的高可用性几圈方案

2 复主模式,需要采用共享cluster文件系统,如GFS和OCFS2

4 缺点

当一端在运行时另一端是不可见的

2 drbd 安装

两端配置基本相同

1 磁盘分区

/dev/sdb1 为数据区域

/dev/sdb2 为元数据区域

c17788a06298b99f60624456a0f0f13c.png

9d93b4f29083e72d1cdfe209f62b6daa.png

2 格式化

元数据区域不能格式化

85fd46a854b69693372205477dbbe615.png

47484a1036c731e2de3959ca3cba8c55.png

3 下载并解压安装drbd

A 解决依赖

1323db665c3ef176b652a34146b8d649.png

204461fe6e701a34a392c2a75227a34f.png

yum -y install gcc kernel-devel kernel-headers flex

B 编译并安装

afb1f6462e5b399308aa8acfdc027e9e.png

./configure --prefix=/usr/local/drbd.8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

90e1e750488b60c4dc3af1a4cc592ffc.png

make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/

此处必须是自己uname -r 得到的内核,不一定是上面的内核

8084d93d3ec3b696d8595c6e7bcad1b8.png

make install

检验

51033bd8c1b8f619be68d7684d38b027.png

4 加载模块到内核

ba3590735f64a77c2edc531e6f1dd859.png

slave 端加载

a369adc92b4249bf4fa4a7518f2ae98f.png

5 配置

c9eca92dbbe08289d8cb7bd3ee99a9a7.png

9fac7cd3f0a91ce8b273d1f8961f6d07.png

slave 端相同

0dc861f918ffd14c1f778b62212f5348.png

7bfcf822ffaf77f20a74715dde5b1bd8.png

相关解释

global {

usage-count no;

}

common{

syncer {

rate 100M; #同步占用的带宽

verify-alg crc32c; # 验证使用的算法

}

}

#Primary for drbd1

resource data{

protocol C; # drbd使用的协议

disk {

on-io-error detach; #出现IO错误的处理方式

}

on master {

device /dev/drbd0; #drbd的设备

disk /dev/sdb1; #对应的数据分区

address 192.168.1.10:7788; #地址是监听自己心跳的IP地址

meta-disk /dev/sdb2[0]; #元数据位置

}

on slave {

device /dev/drbd0;

disk /dev/sdb1;

address 192.168.1.20:7788;

meta-disk /dev/sdb2[0];

}

}

6 初始化数据

920252a2220775e1d0e930f69320bce3.png

5119580d5a16558b5a7badd98736e976.png

其中data是上述资源的名称。

7 创建文件夹

300b4b045987f7937f04b3fb25ffc7e2.png

c17bd88f9f19e34acc42f2bb457b9af4.png

8 启动服务

b1dd02fa1bbe8e8dffb9ac32b0104e34.png

6de84b984e83642f5856aefe8618db64.png

查看启动参数

162b7b7ba976f6b500c54025ed89f49a.png

c287b9a69fdcbc809c9848f390b0f18d.png

相关参数解释:

注意:只有主备两边的DRBD都启动起来才会生效

cs:链接状态

ro:角色信息,此时的状态为Secondary/Secondary,表示两台主机的状态都是备机状态

ds:磁盘状态,Inconsistent/Inconsistent显示的状态内容“不一致”,这是因为DRBD无法判断哪一方为主机,应以哪一方的磁盘数据作为标准

dw:磁盘写操作

dr: 磁盘读操作

ns: 网络发送

nr: 网络接受

如果主动端的NS和slave端的NR相同表示发送与接受同步 。

9 主动端宣告自己是primary

0b71087f008a3b4e290806f6cc02bfdd.png

查看同步情况

f067319553e9ec9ef5fb04acacce7c16.png

f9ff9fcb8ff95b7698bcc1c596376045.png

10 创建挂载文件并测试

ceae0fc60e78a1b6d229d23e0ebb9800.png

5e925eef252f7012408c9bdf8e0e9c79.png

挂载同步测试

471673dae71c6ead4970cc1906cdabc9.png

fbd21c5e2593c4be653bbb19a842030c.png

从端测试

5b2a30db8dcc808b6765b606766d3a54.png

恢复

ff8310ebff6fc7d89b9583affc8c9a26.png

3 heartbeat 简介

1 作用

通过heartbeat 可以进行故障转移并提供相关的服务

在故障转移期间也需要切换时间,常见的时间是5-20秒左右。但是能够确保业务一致性

heartbeat的高可用是服务器级别的,不是服务级别的。,服务的down机不会导致服务的切换。

2 Heartbeat 切换的常见条件

1 服务器down机

2 heartbeat 服务本身down机

3 心跳链接线down机

3 Heartbeat 消息类型

Heartbeat 高可用软件在工作过程中,一般来说,有三种消息类型,具体为:

1 心跳消息

越150字节,可能为单播,广播或组播,控制心跳频率及出现故障要等待多久进行故障转换

2 集群转换消息

Ip-request 和 ip-request-resp

当主服务器恢复在线状态后,通过ip-request消息请求备机释放主服务器失败时被服务器取得的资源,然后备份服务器关闭释放主服务器失败时取得的资源及服务。

被服务器释放主服务器失败时取得的资源服务后,就会通过ip-request-resp消息通知主服务器他不再拥有该服务器的资源及服务,主服务器收到来自被节点的ip-request-resp消息通知后,启动失败时释放的资源及服务,并开始提供正常的访问服务。

3 重传请求

rexmit-request 控制重传心跳请求。

以上心跳控制消息都使用功能的是UDP协议发送到/etc/ha.d/ha.cf 文件制定的任意接口,或指定的多播地址。

4 Ip地址接管和故障转移

Heartbeat 是通过IP地址接管和ARP广播进行故障转移

ARP 广播在主服务器故障时,备用节点接管资后,会立即强制更新所有客户端本地的ARP(及清除客户端本地缓存的失败服务器的VIP和MAC地址的解析记录),确保客户端和新的主服务器之间的对话

4 heartbeat 安装

1 安装heartbeat

0fce1ace80c853fee6671086329996cc.png

6d0a72cc186a5c6b631dedf82ad4d314.png

2 复制配置文件

4f0d5fff999d41793563c846c572cc10.png

82ea65aa03e62009ca0088062c9af13d.png

3 配置

配置密钥并配置其权限为600,必须为600

46167a67a717873afa9357a8163bb0f6.png

61c821d6e7ac9ce13e970ba02cab05d4.png

配置文件解析

Debugfile 调试日志存放位置

Logfile 日志存放位置

Logfacility local 在syslog 服务中配置通过locally 设备接受日志

Keepalive2 指定心跳间隔时间为2秒

Deadtime 30 指定若备用节点在30秒内没有接受达到主节点的心跳信号,则立即接管主节点的服务资源

Warntime 10 指定心跳延迟为10秒。当10秒内备份节点不能接受到主节点的心跳信号时,会向日志中写入一个警告日志,但此时不会切换服务

Initdead 120 指定在heartbeat 首次运行后,需要等待120秒才启动主服务器的资源,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍,单机启动时会遇到VIP绑定很慢,为正常现象

Bcast eth1 指明心跳使用以太网广播方式在eth1接口上进行广播,如使用两个实际网络来传递心跳则 bcast eth0 eth1

Mcast eht2 225.0.0.1 694 1 0 设置广播通信使用的端口,694为默认使用的端口,一个是 TTL

Auto_failback on 用来定义当主节点恢复后,是否将服务自动切回

Node master 主节点主机名,

Node slave 备用节点主机名

Crm no 是否开启cluster resource manager (集群资源管理器)

9604b4c7c219da5f25fa157c3532f99b.png

复制到被动端

c112ba307df94ef9ac71eaa84cc01edf.png

4 启动并查看

0d648e39f4582ccbcdfe2afdb9fdb87d.png

fd8c8a0e09cd38ff383a3a82654be6b1.png

4db29a026899d07beb1010f9d183d327.png

1ab20b73d109250866aadb7430b2f387.png

5 结合DRBD

efb3f23fc193ae93980627ae6a8e0f7e.png

27ef0c753f2d940cdc3dcb5830683b46.png

70c05372ea76fb5307e9908be68b0539.png

fa493864230b239e3b1b1f9747fcb4ee.png

cb318af419dd8453e362fe5137c48f71.png

fb00c32d21aaac0a7305aa623a64fde3.png

f401fc4501144a15b3639649375c445d.png

10b829052815ff6915b44fb8f36333e2.png

5 mysql安装

1 配置yum源

0a9c591b57397e4548efd84df886d4fe.png

b86c481e0b990f3b58041e2ff5700fe8.png

2 安装mysql

2f5a75b53f2c3d35e66d840afdee5b54.png

8e852a97a0282b0898d980ab0e5693ff.png

3 配置/data 权限

3ebe42ee202999c63985a794141265c0.png

e3e8f27ade82c8a983a23b423ef371e7.png

4 配置mysql配置文件

a6e308dbfcc5eee3c9b6314913074457.png

73f894633bbd3be8e43886b41dfeffa9.png

857be1553ae69da69a0c10730deaee3e.png

75b6dd5dbf8086e9647cb400fc2f1be4.png

5 启动mysql

0a6e7fc9b1bcdc5510d25231220f3f10.png

bf66841455c0003480d86e5b55017754.png

eb81e9a145b6262eb7afd43b55047d49.png

6 删除slave端mysql

93840b68b207b0caaa3727fe67fbf5a2.png

7 配置切换

9658be344c4001a077cf0fdaa556c023.png

9246af2e82c9bd5e26a6c559865d1e22.png

7d423eb74583a9868925b90c20f3b46a.png

5daf1098d028ff938058d01e090feeb4.png

6d9ca14d72a9dd338258f5dcb65b9973.png

三 配置mysql热备和从库

1 配置mysql热备

1 复制相关配置

902a8ea047359038145dc403cfbf6d9f.png

2e872c9009f2705c25868e5a69dfd658.png

2 关闭mysql并重启服务heartbeat

82739fb50265169a4c7b49665aef9390.png

7c7b618af9c791768d6989a15454d09b.png

8c876aee777c00748c0e93dc16a97921.png

6fb53770e51163575b53e393cad06ff5.png

3 关闭mater

81c6220d2ea3c0f129e06ed0903a3a6e.png

5bf1b91e70e4bf8bafcbb973adfc1c6d.png

4 恢复

ba263655027e9a797975e5faf852c3aa.png

2 配置主从同步

1 配置server-id和二进制日志开启

b9ce0587fca8f69307229e44149b0ac1.png

b0ca73f472e6b2a978d68cde0a3901fc.png

2797b1082465004fead444f693c246d9.png

64f5024283afe2882480839e42814350.png

453b658efad06914cace0926543f6c9b.png

7709044827f00257e60a2f339542288f.png

15a7bd97c7a53c324fef2205a149648c.png

a31384ad4976ea07e7837de1361c615e.png

738a36bc980bf58499f36cf9f153c92a.png

635bdc04298d7bf12fd54ec7475cc5a6.png

550d3c25a41f7c7f1854dd3842a9bc0b.png

重启服务器

9e4e44ec0c04348ee2669649b5dfe592.png

2 配置数据库的导出和导入,保证同步之间的主从相同

fb4fd2519ecfac24ed4421f4fe3f91bb.png

2fd253f72009c47ab4aa39c8fd1a688e.png

4f0aca7e87aa84a6245d64f303201fb0.png

d2e2363d2c07b3dce20e87e9ed7482e5.png

3 配置主从同步

b5e72306226c7cb7c8e7212210ce8484.png

grant replication slave on . to admin@'%' identified by 'root123';

5a82ee683935400401fa4715afe9f29c.png

change master to master_host='192.168.1.200',master_user='root',master_password='root123',master_log_file='mysql-bin.000001',master_log_pos=319;

此 192.168.1.200为heartbeat 的VIP,专用于数据链接

测试

476cbbd90b0d929c19b4143fc27f4b3d.png

8d6a34c91cda2384db81c42088683a03.png

37a7313480bca7910f81a028d33d9e6e.png

d6820848ad6888dd884d3aeb04466608.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值