一文详解 MySQL 高可用之 DRBD( 二 )


IP与主机名:
172.16.1.125 node1
172.16.1.126 node2
软件环境:
centos Linux release 7.2.1511 (Core)
DRBD 9.0.20
MySQL 5.6.14
DRBD:
磁盘分区:/dev/sdb 5G
DRBD设备:/dev/drbd0
DRBD资源:mysql
mount点:/mnt
2. 配置前准备
在安装配置DRBD前,需要做一些准备工作,以下步骤需要在两个节点都执行 。
(1)设置静态IP
编辑网卡配置文件,将BOOTPROTO设置为static,如node1的内容如下:
[root@node1~]#cat /etc/sysconfig/network-scripts/ifcfg-ens32 # Generated by dracut initrdNAME="ens32"DEVICE="ens32"ONBOOT=yesNETBOOT=yesUUID="adb62466-2361-405e-ada9-b48fe7c09546"IPV6INIT=yesBOOTPROTO=staticTYPE=EthernetIPADDR=172.16.1.125NETMASK=255.255.255.0GATEWAY=172.16.1.254DNS1=172.16.1.10重启网络服务:
service network restart(2)配置域名解析
编辑/etc/hosts文件配置域名解析,如node1的内容如下:
[root@node1~]#cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.1.125 node1172.16.1.126 node2(3)禁用SELINUX与防火墙

  • 编辑/etc/selinux/config文件,设置SELINUX=disabled 。
  • 执行下面的命令禁用防火墙:
(4)设置双向ssh免密
node1上执行:
ssh-keygen -t rsassh-copy-id 172.16.1.126node2上执行:
ssh-keygen -t rsassh-copy-id 172.16.1.125(5)设置NTP时钟同步
yum install ntpsystemctl enable ntpd.serviceservice ntpd start3. 下载安装DRBD
在两个节点执行以下命令:
# 导入GPG-KEY,用于验证签名rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 安装yum源yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm# 安装drbd和内核相关软件包yum install -y drbd90-utils kmod-drbd90 kernel*# 因为升级了内核,需要重启系统reboot重启向内核加载drbd模块并确认:
[root@node2~]#modprobe drbd[root@node2~]#lsmod | grep drbddrbd_transport_tcp 22144 1drbd 568697 3 drbd_transport_tcplibcrc32c 12644 4 xfs,drbd,ip_vs,nf_conntrack[root@node2~]#4. 配置DRBD
DRBD的主配置文件为/etc/drbd.conf,为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d目录中,主配置文件中仅使用”include”指令将这些配置文件片断整合起来 。通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件 。其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源 。
在配置文件中,global段仅能出现一次,且如果所有的配置信息都保存至同一个配置文件中而不分开为多个文件的话,global段必须位于配置文件的最开始处 。common段则用于定义被每一个资源默认继承的参数,可以在资源定义中使用的参数都可以在common段中定义 。实际应用中,common段并非必须,但建议将多个资源共享的参数定义为common段中的参数以降低配置文件的复杂度 。
resource段则用于定义drbd资源,每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中 。资源在定义时必须为其命名,名字可以由非空白的ASCII字符组成 。每一个资源段的定义中至少要包含两个host子段,以定义此资源关联至的节点,其它参数均可以从common段或drbd的默认中进行继承而无须定义 。
下面的操作在node1上完成 。(1)查看主配置文件/etc/drbd.conf,内容如下:
[root@node1~]#cat /etc/drbd.conf# You can find an example in /usr/share/doc/drbd.../drbd.conf.exampleinclude "drbd.d/global_common.conf";include "drbd.d/*.res";[root@node1~]#/etc/drbd.conf主配置文件里面配置了包含关系,不需要做任何修改,直接使用即可 。(2)配置global_common.conf文件内容如下 。
[root@node1~]#cat /etc/drbd.d/global_common.confglobal {usage-count no; # 不让官方统计drbd的使用情况}common {protocol C; # 使用DRBD的同步协议,数据可靠性高disk {on-io-error detach; # 配置I/O错误处理策略为分离}}on-io-error策略可能为以下选项之一: