天天看點

Centos6.5 配置  DRBD8.4.3

  廢話不多說,現在開始:

 1.2台虛拟機,Centos6.5系統,系統配置啥的都一樣,能互相ping 通。把它們稱為A和B。

 2. A: server iptables stop

                    setenforce 1                 //先把這2台伺服器的防火牆和SELINUX關閉。

            -------------------------------------------

            B: server iptables stop

   3.  vim /etc/hosts

    192.168.1.170    drbd1.com

    192.168.1.171    drbd2.com        //這一步挺重要,統一主機名字,後面就看出來了。

   4.把2台虛拟機分别添加一塊硬碟:

     fdisk -l /dev/sdb --->n-----> p---->1----->回車----->  w  儲存。到現在為止,就可以了,不要急着格式化。

   5.  A  和 B 時間要同步一下

        # ntpdate -u asia.pool.ntp.org

目前為止,準備工作都準備好了,現在接下來迎接客人------DRBD。

       a.  安裝依賴包(A和B都安裝)

                 #yum install gcc gcc-c++ make glibc flex kernel-devel  kernel-headers

       b.   安裝drbd包

                # tar -zxvf drbd-8.4.3.tar.gz

                 # cd  drbd-8.4.3

                #./configure  --prefix=/usr/local/drbd --with-km  這步是安裝路徑

                #  make KDIR=/usr/src/kernels/`uname -r`      把你系統的核心安裝好

                # make install

                # mkdir -p /usr/local/drbd/var/run/drbd

                #  cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d/     把指令cp過去

                加載DRBD子產品是否加載到核心

                    #modprobe   drbd

                檢視DRB子產品是否加載到核心:

                     #  lsmod|grep drbd       看一下是否有類似圖檔中的東西出現

                到現在為止,完成一半了,接下來把配置檔案配置一下就好了。

              #vim  /usr/local/drbd/etc/drbd.conf     打開這個檔案以後,預設有紅色的2行文字,不用管它,全部删除即可。我們重新配置它。這個檔案裡的内容,可以分成2個檔案配置,也可以在一個檔案裡配置,我這裡在一個檔案裡配置,功能相同,沒有任何影響,完全可以。

               resource r0{         #資源名字為r0

                protocol C;            #使用DRBD第3種協定,表示遠端主機的寫入确認後,認為寫入完成。

        startup { wfc-timeout 0; degr-wfc-timeout 120;}

        disk { on-io-error detach;}      #保證資料在不同步時不進行切換

        net{

          timeout 60;

          connect-int 10;

          ping-int 10;

          max-buffers 2048;

          max-epoch-size 2048;

        }

        syncer { rate 200M;}       #主用節點和備用節點同步時的網絡速率最大值

        on drbd1.com{                #  drbd1.com是主機名,前面改過了,on 這個字母必須加

          device /dev/drbd0;       

          disk   /dev/sdb1;            #  /dev/drbd0  使用的磁盤分區是/dev/sdb1.

          address 192.168.1.170:7798;    #設定DRBD的監聽端口

          meta-disk internal;                    #DRBD的中繼資料存放方式。

        on drbd2.com{

          device /dev/drbd0;

          disk   /dev/sdb1;

          address 192.168.1.171:7798;

          meta-disk internal;

     現在配置完畢。

    1) 把drbd.conf 放到A 和B  的/usr/local/drbd/etc/底下,2台伺服器的配置一模一樣。

      啟動DRBD:

       A:#   drbdadm create-md r0     (我寫的這個指令絕對可以,還有一些其他指令和這個指令作用一樣,别管别的指令了)

           #   drbdadm create-md r0     你沒看錯,執行2遍這個指令,第一遍是建立DRBD記錄資訊的資料塊,第2遍是激活r0.

        B:#   drbdadm create-md r0     

           #   drbdadm create-md r0 

     2)  A:service drbd start

           B:service drbd start   在2台伺服器上分别執行這個指令,最好同時進行,我覺的同時進行非常重要!

      3)  cat   /proc/drbd     分别在A和B上執行這個指令,看是否和下面的一樣,如果2台都是Secondary 就對了。紅色代表是都是備用狀态,紫色是資料不一緻。

     drbd driver loaded OK; device status:

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

GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by [email protected], 2016-01-12 22:16:34

m:res  cs         ro                 ds                 p  mounted  fstype

0:r0   Connected  Secondary/Secondary  Inconsistent/Inconsistent  C  

      4) 将A主機配置為主節點:

          A:  #  drbdsetup   /dev/drbd0  primary -- force  

         目前為止,分别在A和B上看一下狀态。

       A伺服器::   #  service drbd status

  drbd driver loaded OK; device status:

0:r0   Connected  Primary/Secondary  Inconsistent/Inconsistent  C 

       B伺服器:   #  service drbd status

drbd driver loaded OK; device status:

0:r0   Connected  Secondary/Primary Inconsistent/Inconsistent  C

ro在主從伺服器上分别顯示 Primary/Secondary和Secondary/Primary

ds顯示UpToDate/UpToDate

A伺服器上挂載DRBD

#  mkfs.ext4  /dev/drbd0

#  mount /dev/drbd0 /mnt

現在為止,全部OK

注意:Secondary節點上不允許對DRBD裝置進行任何操作,包括隻讀。

      隻有當Primary節點挂掉時,Secondary節點才能提升為Primary.

      DRBD(Distributed Replicated Block Device),相當于一個RAID1.2台伺服器一台用于寫,讀資料,另一台負責複制。

          ro:   表示角色資訊,第一次啟動,兩個drbd節點預設都是Secondary狀态。

          ds:   表示磁盤資訊 , “Inconsistent/Inconsistent”表示 “不一緻/不一緻”狀态。

          ns:   表示網絡發送的資料包資訊。

          dw:   表示磁盤寫資訊

          dr:   表示磁盤讀資訊

模拟故障:

     A伺服器故障,手動切換到B伺服器

            A 伺服器:  #  cd  /mnt

                       #  touch 111111

                       #  cd ..

                       # umount /mnt

                      # drbdsetup  /dev/drbd0 secondary   這裡把drbd轉換為secondary狀态

           在實際生産環境中,若A伺服器當機了,B伺服器的狀态是  Secondary/Unknown,此時,直接對

           drbd進行提權操作即可。

            B伺服器:    #  drbdsetup /dev/drbd0  primary

                        #  mount /dev/drbd0  /mnt

                        #  cd /mnt

                        #  touch 222222

                        #ls

                        111111    222222

                        #  service drbd status

             drbd driver loaded OK; device status:

0:r0   Connected  Primary/Secondary UpToDate/UpToDate  C  /mnt   ext4

這個時候手動切換就完成了。

如果想主從智能切換,實作高可用,就需要用到Heartbeat。

會在主端當機的情況下,自動切換到從端,并把從端變為主端,并實作自動挂載。

本文轉自 曾國藩_6868 51CTO部落格,原文連結:http://blog.51cto.com/8184069/1734684

繼續閱讀