• CentOS7 yum安装配置 drbd-84-utils (外部模式)


    1 安装环境介绍

    1.1 系统环境

      内核:3.10.0-862.el7.x86_64 
      版本:CentOS Linux release 7.5.1804 (Core)

      主服务器:hostname = mysql-master-01  心跳通信 IP = 172.16.1.50
      从服务器:hostname = mysql-master-02  心跳通信 IP = 172.16.1.51

    注意:以下操作主从同时执行

    1.2 前期准备

      关闭防火墙和selinux。

      主从服务器的/etc/hosts一样,如下:

        172.16.1.50   mysql-master-01
        172.16.1.51   mysql-master-02

    2 开始安装drbd-84-utils 

      2.1 yum源安装:

        rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

      2.2 drbd 安装:    

        yum -y install drbd84-utils kmod-drbd84 

       2.3 让内核加载 drbd 模块

      [root@mysql-master-01 ~/]# modprobe drbd
      [root@mysql-master-01 ~/]# lsmod |grep drbd
      drbd                  397041  3
      libcrc32c              12644  2 xfs,drbd
    
      [root@mysql-master-01 ~/]# echo "modprobe drbd">>/etc/rc.local    # 加入开机自启动
      [root@mysql-master-01 ~/]# chmod +x /etc/rc.d/rc.local 

    3 创建配置文件   注意:主从配置完全一样

      3.1 创建全局配置

    [root@mysql-master-01 ~/]# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.bak
    [root@mysql-master-01 ~/]# cat  > /etc/drbd.d/global_common.conf <<-EOF
    global {
      usage-count no;
    }
    common {
      net {
        protocol C;
      }
    }
    EOF 

       3.2 创建资源配置文件

    [root@mysql-master-01 ~/]# cat  > /etc/drbd.d/mysql_data.res <<-EOF
    resource mysql_data {
      disk /dev/sda4;
      device /dev/drbd0;
      meta-disk /dev/sda3[0];
    # meta-disk internal; # 内部模式 on mysql
    -master-01 { address 172.16.1.50:7788; } on mysql-master-02 { address 172.16.1.51:7788; } } EOF

    3.3 主从服务器都需要添加如下分区、如下操作:
      /dev/sda3 为 500M # 作为 create-md  这个分区一定不能用 mkfs 来格式化
      /dev/sda4 为 2G  # 数据
      刚分完区要通知内核:partprobe /dev/sda

      3.3.1 格式化:/dev/sda4

      [root@mysql-master-01~/]# drbdadm up all && drbdadm -- --overwrite-data-of-peer primary all &&mkfs.xfs /dev/drbd0 或者 mkfs.xfs /dev/sda4
    
      meta-data=/dev/sda4              isize=512    agcount=4, agsize=125120 blks
               =                       sectsz=512   attr=2, projid32bit=1
               =                       crc=1        finobt=0, sparse=0
      data     =                       bsize=4096   blocks=500480, imaxpct=25
               =                       sunit=0      swidth=0 blks
      naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
      log      =internal log           bsize=4096   blocks=2560, version=2
               =                       sectsz=512   sunit=0 blks, lazy-count=1
      realtime =none                   extsz=4096   blocks=0, rtextents=0 

      3.3.2 初始化设备元文件3.4 启动系统服务

      drbdadm create-md mysql_data 或者 drbdadm create-md all 

    3.5 启动系统服务

     [root@mysql-master-01~/]#drbdadm up all     
     [root@mysql-master-01~/]#systemctl start drbd 

    4 主节点操作

      4.1 首次,数据不一致,主覆盖从令数据一致(自动设为主盘)

       [root@mysql-master-01 ~/]# drbdadm -- --overwrite-data-of-peer primary mysql_data 或者 drbdadm -- --overwrite-data-of-peer primary all 

      或者强制设置为主:

      [root@mysql-master-01 ~/]# drbdadm primary all --force 或者 drbdadm primary mysql_data --force 

      4.2 查看同步进程

      4.2.1 刚开始同步

    [root@mysql-master-01/etc/drbd.d/]# cat /proc/drbd
    version: 8.4.11-1 (api:1/proto:86-101)
    GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by mockbuild@, 2018-04-26 12:10:42
     0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
        ns:0 nr:328664 dw:328664 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1673256
            [==>.................] sync'ed: 16.6% (1673256/2001920)K
            finish: 0:01:47 speed: 15,516 (11,736) want: 22,840 K/sec 

      4.2.1 同步完成

    [root@mysql-master-01~/]# cat /proc/drbd     
    version: 8.4.11-1 (api:1/proto:86-101)
    GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by mockbuild@, 2018-04-26 12:10:42
     0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
        ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2001664 

    提示:如果是 drbd90-utils 版本,显示结果是不一样的。

    [root@store-nfs-01~/]#cat /proc/drbd 
    version: 9.0.14-1 (api:2/proto:86-113)
    GIT-hash: 62f906cf44ef02a30ce0c148fec223b40c51c533 build by mockbuild@, 2018-05-04 03:32:42
    Transports (api:16): tcp (9.0.14-1)

       4.3 同步完成就可以挂在,往里面写数据了

      [root@mysql-master-01~/]# mount /dev/drbd0 /mnt/ 

      4.4 创建测试文件

    touch /mnt/file{1..3}
    ls -l /mnt
    total 0
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file1
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file2
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file3 

      4.5 卸载文件系统并切换为备节点  

    umount /mnt
    drbdadm secondary mysql_data 

    5 从节点操作

      5.1 确认文件主节点的数据是否同步到从节点

    drbdadm primary mysql_data
    mount /dev/drbd0 /mnt
    ls -l  /mnt
    total 0
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file1
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file2
    -rw-r--r--. 1 root root 0 Jun 10 09:43 file3

      注意:从节点不能提供访问

    6 如果启用了防火墙需打开7788端口

    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="ip_address" port port="7788" protocol="tcp" accept'
    firewall-cmd --reload 

     到此配置完成!!!

  • 相关阅读:
    自定义cell
    微信界面
    设置字体阴影
    Xcode 7新特性Lightweight Generics 轻量级泛型与__kindof修饰符
    @synchronized 是递归锁,类似NSRecursiveLock,递归调用不会引起死锁,而NSLock是非递归锁。
    Your build settings specify a provisioning profile with the UUID, no provisioning profile was
    NSOperationQueue与GCD
    Objective-C中继承和类别的比较:category&Inherit
    iOS 事件处理机制与图像渲染过程
    [iOS]用instancetype代替id作返回类型有什么好处?(转)
  • 原文地址:https://www.cnblogs.com/jeson-lbb/p/9887090.html
Copyright © 2020-2023  润新知