DRDB实现mariadb高可用
时间:2022-03-10 17:00
------本文大纲
简介
DRBD资源属性
原理
安装DRDB
DRDB实现高可用
============
一、简介
DRBD是一种块设备,可以被用于高可用(HA)之中。它类似于一个网络RAID-1功能。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上。以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。
二、DRBD资源属性
resource name
可以使用除空白字符外的任意ACSII表中的字符;
drbd设备
drbd的设备的访问路径,设备文件/dev/drbd#;
disk
各节点为组成此drbd设备所提供的块设备,通常是一个磁盘分区;
网络属性
节点间为了实现跨主机磁盘镜像而使用的网络配置;
注意:用户空间工具与drdb与内核中使用的模块版本要保持一致,只有在使用drbdadm工具时才会读取配置文件,对多个资源的公共配置,可以提取出来只配置一次,通常保存在Common中,此外还有global配置,这种配置跟资源本身没有关系的;
三、原理
需要知道,DRBD是工作在系统内核空间,而不是用户空间,它直接复制的是二进制数据,这是它速度快的根本原因。
其次,DRBD至少需要两个节点来工作,一主一次。
DRBD的文件同步过程和普通复制过程的不同:
DRBD在数据进入Buffer Cache时,先经过DRBD这一层,复制一份数据经过TCP/IP协议封装,发送到另一个节点上,另一个节点通过TCP/IP协议来接受复制过来的数据,同步到次节点的DRBD设备上。
注:
内核模块程序包一定要跟你的系统内核保持一致,uname -r查看你的内核版本,内核模块的版本必须要严格对应,而用户空间的模块就不那么严格要求了,两个节点的时间也需要保持一致性;
第一步、下载与内核版本相应的内核模块与用户空间工具(地址:http://packages.atrpms.net/dist/el6/drbd/)
[root@essun download]# uname -r 2.6.32-431.el6.x86_64 [root@essun download]# ls drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm [root@essun download]# yum isntall drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm drbd-8.4.3-33.el6.x86_64.rpm -y
drbd需要同时运行在两个节点上,但只能有一个节点(primary/secondary模型)是Master,而另一个节点为Slave;因此,它是一种比较特殊的集群资源,其资源类型为多态(Multi-state)clone类型,即主机节点有Master和Slave之分,且要求服务刚启动时两个节点都处于slave状态,一般来说,只要是定义克隆资源,首先其本身必须是主资源
crm(live)configure# ms ms_dbdrdb dbdrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true crm(live)configure# verify crm(live)configure# commit crm(live)configure# show ms_dbdrdb ms ms_dbdrdb dbdrbd meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
crm(live)node# standby essun.node1.com [root@essun ~]# crm status Last updated: Thu May 1 16:28:59 2014 Last change: Thu May 1 16:27:34 2014 via crmd on essun.node2.com Stack: classic openais (with plugin) Current DC: essun.node1.com - partition with quorum Version: 1.1.10-14.el6_5.3-368c726 2 Nodes configured, 2 expected votes 5 Resources configured Node essun.node1.com: standby Online: [ essun.node2.com ] vip (ocf::heartbeat:IPaddr): Started essun.node2.com myserver (lsb:mari): Started essun.node2.com Master/Slave Set: ms_dbdrdb [dbdrbd] Masters: [ essun.node2.com ] Stopped: [ essun.node1.com ] dbstore (ocf::heartbeat:Filesystem): Started essun.node2.com
再次使用vip登录测试
[root@essun mariadb]# hostname essun.node1.com [root@essun mariadb]# /usr/local/mysql/bin/mysql -uroot -p -h192.168.1.150 Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.0.10-MariaDB-log MariaDB Server Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others. Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (1.28 sec)
===================================完====================================================
本文出自 “” 博客,请务必保留此出处
DRDB实现mariadb高可用,布布扣,bubuko.com