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 

 到此配置完成!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM