您的位置:首页 > 博客中心 > 数据库 >

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设备上。

    系统主机名ip地址Centos6.5 x86_64essun.node1.com192.168.1.109Centos6.5 x86_64essun.node2.com192.168.1.108

    注:

    内核模块程序包一定要跟你的系统内核保持一致,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

热门排行

今日推荐

热门手游