wzy责编
屠敏出品
CSDN博客大普遍MySQL高可用处分计划都是基于MySQL自带的各式复制技巧。实质上是将一个实例上的数据革新或事件,在另外实例长举办重放,进而完结数据复制。当临盆实例涌现题目没法供给效劳时,运用毗连切换到另外实例,完结数据库效劳陆续可用。从这个角度看,利用DRBD完结MySQL高可用的方法则全面不同,它与MySQL复制毫无相干,能够说是另辟蹊径。DRBD简介DRBD的全称是DistributedReplicatedBlockDevice,即散布式复制块摆设,是一个用软件完结的、无同享的、效劳器之间镜像块摆设体例的保存复制处分计划。DRBD是镜像块摆设,是按数据位镜像成同样的数据块。简朴说DRBD是完结行动节点保存数据改动后主动复制到备用节点响应保存场所的软件,是一种数据块级另外物理复制。1.做事道理图1是官方文档里给出的DRBD做事栈模子,能够看到DRBD需求运转在各个节点上,且是运转在节点主机的内核中,于是DRBD是内核模块,在Linux2.6.33版本起发端调整进内核。图1DRBD架构图1中假定左节点为行动节点(primary),右节点为备用节点(secondary)。左节点领受到数据发往内核的数据通路,DRBD在数据通路中挂号钩子检验数据,当觉察领受到的数据是发往到自身治理的保存场所,就复制另一份,一份保存到本机的DRBD保存摆设,另一份就发给TCP/IP协定栈,经过网卡网络传输到另一节点主机的网上TCP/IP协定栈。而另一节点运转的DRBD模块同样在数据通路上检验数据,当觉察传输过来的数据时,就保存到DRBD保存摆设对应的场所。倘使左节点宕机,右节点能够在高可用集群中成为行动节点,把领受到的数据先保存到当地,当左节点复原上线时,再把宕机后右节点变化的数据镜像到左节点。镜像历程完结后还需求返回胜利/失利的回应动静,这个回应动静能够在传输历程中的不同场所返回,如图上的A/B/C标记场所,能够分为三种复制形式:
A:Async,异步:当地写胜利后登时返回,数据放在发送buffer中,大概丧失,但传输功用好。
B:Semisync,半同步:对方领受到数据后,但还没有落盘前返回。
C:Sync,同步:当地和对方写胜利落盘确认后返回,数据靠得住性高,临盆系统通常都采纳这类方法。
2.DRBD援助的底层摆设DRBD需求在底层摆设上建设出一个块摆设。关于用户来讲,一个DRBD摆设,就像是一路物理的磁盘,能够在DRBD摆设内建立文献系统。DRBD所援助的底层摆设典范包罗:磁盘大概是磁盘的一个分区;softraid摆设;LVM的逻辑卷;EVMS(EnterpriseVolumeManagementSystem,企业卷治理系统)卷;或另外任何块摆设。3.DRBD资本DRBD资本界说DRBD治理的保存空间及联系消息,要紧摆设如下四个选项:资本称呼:可于是除了空白字符外的随意ACSII码字符。
DRBD摆设:在两边节点上,此DRBD摆设的摆设文献,通常为/dev/drbdN,其主摆设号。
磁盘:在两边节点上,各自供给的保存摆设。
网络摆设:两边数据同步时所利用的网络属性。
4.DRBD摆设用具DRBD要紧有如下三个摆设用具:drbdadm:高等治理用具,治理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令。
drbdsetup:摆设承载进kernel的DRBD模块,通常很少直接用。
drbdmeta:治理META数据布局,通常很少直接用。
5.DRBD与RAID1差别RAID1也是完结不同保存摆设间的数据镜像备份,不同的是RAID1各保存摆设是毗连一个RAID掌握器接入到一台主机上的,而DRBD是经过网络完结不同节点主机保存摆设数据的镜像备份。6.DRBD与同享保存倘使各节点拜访统一个数据文献都是在统一个保存空间内的,便是说数据同享的就一份,则这个保存空间就同享保存。而DRBD界说上就指出了“无同享”——不同节点保存摆设空间是镜像,DRBD能够直接运用在主备模子的集群中,也可通太高可用软件如corosycn运用在双主模子集群中,不过这就需求DML/OCFS2/GFS2平散布式集群文献系统为双主读写的时辰分派锁。再有便是DRBD为NFS同享保存供给高可用镜像备份。DRBD安装摆设1.实践处境IP与主机名:.16.1.node1.16.1.node2软件处境:CentOSLinuxrelease7.2.(Core)DRBD9.0.20MySQL5.6.14DRBD:磁盘分区:/dev/sdb5GDRBD摆设:/dev/drbd0DRBD资本:mysqlmount点:/mnt2.摆设前预备在安装摆设DRBD前,需求做一些预备做事,如下环节需求在两个节点都施行。(1)摆设静态IP编纂网卡摆设文献,将BOOTPROTO摆设为static,如node1的体例如下:[root
node1~]#cat/etc/sysconfig/network-scripts/ifcfg-ens32#GeneratedbydracutinitrdNAME="ens32"DEVICE="ens32"ONBOOT=yesNETBOOT=yesUUID="adb--e-ada9-b48fe7c"IPV6INIT=yesBOOTPROTO=staticTYPE=EthernetIPADDR=.16.1.NETMASK=...0GATEWAY=.16.1.DNS1=.16.1.10重启网络效劳:servicenetworkrestart(2)摆设域名分化编纂/etc/hosts文献摆设域名分化,如node1的体例如下:
[root
node1~]#cat/etc/hosts.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6.16.1.node1.16.1.node2(3)禁用SELINUX与防火墙编纂/etc/selinux/config文献,摆设SELINUX=disabled。
施行上面的指示禁用防火墙:
(4)摆设双向ssh免密node1上施行:ssh-keygen-trsassh-copy-id.16.1.node2上施行:
ssh-keygen-trsassh-copy-id.16.1.(5)摆设NTP时钟同步
yuminstallntpsystemctlenablentpd.serviceservicentpdstart3.下载安装DRBD在两个节点施行如下指示:
#导入GPG-KEY,用于考证签字rpm--import