构建MySQL+DRBD+heartbeat高可用

xiaoxiao2021-02-28  108

http://www.linuxidc.com/Linux/2012-09/71471.htm

DRDB:分布式复制磁盘块设备,是一个软件级别的,不提供任何共享实现的分布式的磁盘镜像解决方案。 实现方式:在数据写入磁盘前通过TCP/IP网络发送给另外一个服务器,在另外一个服务器上存储一份,从节点drdb设备不能读写也不能挂载。   复制模型:     Protocol A:异步: 数据被送到本地的发送缓冲区即返回成功     Protocol B:半异步:数据发送到对方的缓冲区返回成功     Protocol C:同步:数据存储到对方磁盘后才返回成功   一、环境介绍   master: 192.168.56.101 slave: 192.168.56.102 mysql版本:5.5.24 系统版本:RedHat 5.8 x86_32   注意:1、同步两个节点的时间       2、通过修改hosts文件可以使两个节点间能够互相通过主机名访问       3、确保uname -n得到的结果和主机名保持一致       4、禁止mysqld服务开机自动启动   二、DRDB部署   1、创建DRBD使用的磁盘分区 最好使用相同大小的单独分区,也可以使用LVM,创建分区过程这里不再给出,可参考其他文档,假设使用的分区情况如下: master: /dev/sda5   5G slave: /dev/sda5    5G 创建完成后不要格式化   2、安装软件包 kmod-drbd83 drbd83 可以使用yum安装,在系统安装光盘就附带的有,需要在两个节点都安装。   3、配置DRBD 复制配置文件样例 [root@master ~]# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc cp:是否覆盖“/etc/drbd.conf”? y   打开该配置文件后发现只有两行内容: include "drbd.d/global_common.conf";  include "drbd.d/*.res"; 就是读取drbd.d下的global_common.conf和drbd.d下所有以res结尾的文件,所以不用做任何修改   配置global_common.conf [root@master ~]# cp /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.bak    //先备份该配置文件 [root@master ~]# vim /etc/drbd.d/global_common.conf //编辑该配置文件 ... global {     usage-count no;    //是否对使用信息作统计,默认为yes } startup {     wfc-timeout 120;    //等待连接的超时时间     degr-wfc-timeout 120;   } disk {     on-io-error detach;  //当IO出现错误时执行的动作     fencing resource-only; //隔离级别 } net {     cram-hmac-alg "sha1"; //同步时使用的验证方式     shared-secret "drdb-test";    //使用的密码 } syncer {     rate 100M;    //同步时占用网络速率的最大值 } ...     创建资源文件,从drbd.conf配置文件中可以看到读取的是以res结尾的文件,所以创建的资源文件必须为res结尾 [root@master ~]# vim /etc/drbd.d/mysql.res   resource mysql {    //定义资源名称为mysql,名字不能包含空格         on master {    //定义mastre节点的配置   device /dev/drbd0; //设置drbd设备                 disk /dev/sda5;  //定义使用的哪个磁盘分区                 address 192.168.56.101:7788; //设置本节点的IP和对应端口,用来和另外一个节点通信         }           on slave {   device /dev/drbd0                 disk /dev/sda5;                 address 192.168.56.102:7788;                 meta-disk internal;         } }   复制配置文件至slave节点 [root@master ~]# cd /etc/drbd.d/ [root@master drbd.d]# scp -p global_common.conf mysql.res root@192.168.56.102:/etc/drbd.d/ [root@master drbd.d]# scp -p /etc/drbd.conf root@192.168.56.102:/etc/   4、初始化两个节点   初始化主节点: [root@master drbd.d]# drbdadm create-md mysql Writing meta data... initializing activity log NOT initialized bitmap New drbd meta data block successfully created.   初始化备用节点: [root@slave ~]# drbdadm create-md mysql Writing meta data... initializing activity log NOT initialized bitmap New drbd meta data block successfully created.   5、启动服务并同步磁盘   分别在两个节点上执行: [root@master ~]# service drbd start [root@slave ~]# service drbd start 单独启动一个节点时,会一直处在等待另一个节点上线状态。   查看drbd磁盘状态 [root@master ~]# cat /proc/drbd  version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.CentOS.org, 2010-06-04 08:04:16  0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----     ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:4891572 可以看到两个节点并未同步而且都处于Secondary状态   设置master节点成为主节点 [root@master ~]# drbdadm -- --overwrite-data-of-peer primary mysql [root@master ~]# cat /proc/drbd  //查看状态 version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16  0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----     ns:139176 nr:0 dw:0 dr:147072 al:0 bm:8 lo:1 pe:10 ua:247 ap:0 ep:1 wo:b oos:1820920  [>...................] sync'ed:  7.4% (1820920/1959800)K delay_probe: 13  finish: 0:01:44 speed: 17,360 (17,360) K/sec 可以看到已经开始同步7.4%   6、同步完成后格式化并挂载测试 等待同步完成后磁盘状态将转变为UpToDate/UpToDate [root@master ~]# mke2fs -j /dev/drbd0   挂载测试 [root@master ~]# mount /dev/drbd0 /mnt/ [root@master ~]# ls /mnt/ lost+found [root@master ~]# cp /etc/fstab /mnt/ [root@master ~]# umount /mnt/ [root@master ~]# drbdadm secondary mysql    //使当前节点的mysql资源转为备用   在备用节点测试 [root@slave ~]# drbdadm primary mysql [root@slave ~]# mount /dev/drbd0 /mnt/ [root@slave ~]# ls /mnt/ fstab  lost+found 可以看到在备用节点成功测试。

转载请注明原文地址: https://www.6miu.com/read-79409.html

最新回复(0)