drdb 安裝

業務需求描述

假設有兩臺服務器A、B 其實際ip 10.0.0.22 和10.0.0.23

配置目標:

兩臺服務器分別配置好drdb,實現在A服務器上/dev/sdb分區上寫入數據,數據實時同步到B 機器上,一旦服務器A宕機或硬盤損壞導致數據不可用,B服務器上的數據此事是A的一個完整備份,且可以瞬間接替服務器A,實現數據異機的實時數據同步。

部署結構  圖

主備模式

               新存儲服務器 I                          新存儲服務器ii

                                       ------》

                                           drdb/md1

               drdb分區1主 《------》 drdb分區1從

                                           heartbeat


主主模式:

                 新存儲服務器 I                          新存儲服務器ii

                                        ------》

                                           drdb/md1

                 drdb分區1主 《------》drdb分區1從

                                             heartbeat

                   

                 drdb分區2從 《------    drdb分區2主

wKioL1WgvkWxVhyGAANJixrJflw585.jpg





環境準備

 參照:http://linuxboys.blog.51cto.com/9150052/1671201

 此處兩臺服務器各添加一塊硬盤, 且分區

wKioL1WgxNvxPuZpAAB0MyntaWs545.jpg

 使用  parted  分區(mkfs無法格式化大於16 T分區,可使用XFS或e2fsprogs)

http://blog.ronnyegner-consulting.de/2011/08/18/ext4-and-the-16-tb-limit-now-solved/
http://rritw.com/a/JAVAbiancheng/ANT/20101003/43604.html

分區命令

parted /dev/sdb  mklabel gpt yes
parted /dev/sdb  mkpart primary ext4 0 1000  ignore
parted /dev/sdb  mkpart primary ext4 1001 2000  Yes ignore
parted /dev/sdb  p

 提示:這裏的meta data分區一定不能格式化建立文件系統,交給drdb管理

            格式化好的分區不要進行掛載(mount)

            生產環境drdb meta data分區一般可設爲1-2G ,數據分區可以格式化

          (mkfs.ext4 /dev/sdb1;tune2fs -c -1 /dev/sdb1 )

             

             

檢查格式化的方法:
            
      [root@B ~]# mount /dev/sdb2 /tools
       mount: you must specify the filesystem type
      #此處說明meda data分區是正確的


軟件安裝

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm  #注意此處的elrepo源

yum install -y kmod-drbd84

[root@B tools]# rpm -qa drbd84-utils kmod-drbd84

kmod-drbd84-8.4.6-1.el6.elrepo.x86_64

drbd84-utils-8.9.2-1.el6.elrepo.x86_64

[root@B tools]# modprobe drbd           #手動加載內核模塊

[root@B tools]# lsmod | grep drbd

drbd                  365931  0 

libcrc32c               1246  1 drbd

[root@B tools]# echo "modprobe drbd" >>/etc/rc.local  #此處不是必須

[root@B tools]# echo "modprobe drbd" >/etc/sysconfig/modules/drbd.modules

[root@B tools]# chmod 755 /etc/sysconfig/modules/drbd.modules 

#問題,加載模塊是遇到找不見,可重啓服務器。


配置文件默認的配置路徑:/etc/drbd.conf 

[root@B tools]# cat /etc/drbd.conf 

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example #樣例


include "drbd.d/global_common.conf";       #相當於公共文件

include "drbd.d/*.res";                    #相當於nginx 的虛擬主機




/etc/drbd.conf 

範例詳細註釋

global {

    usage-count no; #是否參加DRBD使用者統計,默認爲yes

}

#全局配置選項(global)

common {

  syncer { 

  rate 10M;            #設置主備節點同步時的網絡速率最大值,單位時字節

verify-alg crc32c;  #數據校驗方法

 }

}

#公共配置項(common)這裏的common,指的是drbd所管理的多個資源之間的common。配置項裏主要是配置drbd所有resource可以設置爲相同的參數項,比如protocol、syncer等等

# primary for drbd1

resource data {                #resource資源 data名稱

  protocol C;                    #協議

  disk {                             #磁盤控制

    on-io-error   detach;   #磁盤io錯誤,分離

  }

  on A {                             #節點1, drbd1 主機名(host解析)

    device    /dev/drbd0;   #指定設備

    disk      /dev/sdb1;       #節點對應磁盤

    address   10.0.0.22:7788;  #監聽地址,端口

    meta-disk /dev/sdb2[0];   #存放meta信息

  }

  on drbd2 {              #節點2

    device     /dev/drbd0;

    disk       /dev/sdb1;

    address    10.0.0.23:7788;

    meta-disk  /dev/sdb2[0];

  }

}

#可以添加多個資源,但需要作用於不同的設備

#注意兩邊的配置相同

 Enabling DRBD資源(兩臺操作相同):

創建drbd紀錄信息的metadata

[root@B ~]# drbdadm  create-md data

initializing activity log

NOT initializing bitmap

Writing meta data...

New drbd meta data block successfully created.

# 如果此處格式化就無法創建

啓動服務

drbdadm  create-md data

  或

drbdadm up all

狀態查看

cat /proc/drbd

  或

/etc/init.d/drbd status


version: 8.4.6 (api:1/proto:86-101)

GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R6, 2015-04-09 14:35:00

 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:976548

Connected表示連接通信正常

Secondary/Secondary表示角色未確定

:Inconsistent/Inconsistent表示磁盤狀態數據不一致






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章