天天看點

Centos 6.1 DRBD配置與使用

DRBD(Distributed Replicated Block Device),分布式複制塊裝置,是一種通過TCP/IP網絡實作塊裝置資料實時鏡像的方案。利用這種方案,單一主節點模式(single primary mode)雙機系統能夠實時地将業務資料儲存在主備節點的磁盤中,正常情況下兩個節點的資料是一模一樣的。

drbd的結構示意圖及工作原理

   從上圖我們可以 清晰的看出drbd是以主從(Primary/Secondary)方式工作的,這點原理與mysql的主從複制的架構有些相似。主節點上的drbd提升為Primary并負責接收寫入資料,當資料到達drbd子產品時,一份繼續往下走寫入到本地磁盤實作資料的持久化,同時并将接收到的要寫入的資料發送一分到本地的drbd裝置上通過tcp傳到另外一台主機的drbd裝置上(Secondary node),另一台主機上的對應的drbd裝置再将接收到的資料存入到自己的磁盤當中。這裡與mysql的基于通過二進制日志完成資料的複制的确很相似,但是也有一些不同之處。比如:mysql的從節點不能寫但是可以讀,但是drbd的從節點是不能讀、不能挂載。

   是以,drbd對同一裝置塊每次隻允許對主節點進行讀、寫操作,從節點不能寫也不能讀。這樣感覺是不是對主機有資源浪費,的确HA架構中為了提供備援能力是有資源浪費,但是你可以對上圖的兩台主機建立兩個drbd資源并互為主從,這樣兩台機器都能利用起來,但是配置起來就複雜了。但是話又說回來,用drbd作為廉價的共享儲存設備,要節約很多成本,因為價格要比專用的存儲網絡便宜很多,其性能與穩定性方面也還不錯。

drbd的複制模式(協定)

   A協定:

       異步複制協定。一旦本地磁盤寫入已經完成,資料包已在發送隊列中,則寫被認為是完成的。在一個節點發生故障時,可能發生資料丢失,因為被寫入到遠端節點上的資料可能仍在發送隊列。盡管,在故障轉移節點上的資料是一緻的,但沒有及時更新。是以,這種模式效率最高,但是資料不安全,存在資料丢失。

   B協定:

       記憶體同步(半同步)複制協定。一旦本地磁盤寫入已完成且複制資料包達到了對等節點則認為寫在主節點上被認為是完成的。資料丢失可能發生在參加的兩個節點同時故障的情況下,因為在傳輸中的資料可能不會被送出到磁盤

   C協定:

       同步複制協定。隻有在本地和遠端節點的磁盤已經确認了寫操作完成,寫才被認為完成。沒有資料丢失,是以這是一個群集節點的流行模式,但I/O吞吐量依賴于網絡帶寬。是以,這種模式資料相對安全,但是效率比較低。

一.環境

系統:Centos6.1 x86

Ip: 192.168.0.11

Ip : 192.168.0.22

二.編譯安裝drbd     (兩台機器做同樣的操作)

安裝依賴軟體包 yum install kernel-devel -y

cd drbd-8.3.9

./configure --prefix=/ --with-km

make  && make install

chkconfig  --add drbd

Chkconfig drbd on

檢查是否安裝成功: drbdadm

是否可以看到版本資訊: cat /proc/drbd

重新開機後再次檢查 : cat /proc/drbd

三.配置伺服器中的hostname hosts

[root@www /]#  vim /etc/hosts

三.在兩個伺服器上單獨分區一個分區或者添加一個空的硬碟  (兩台機器做同樣的操作)

/dev/sdb5          

四.配置drbd

注意,新版本的DRBD的配置檔案已拆分成多個,全部放在/etc/drbd.d/目錄,具體可參考/etc/drbd.conf中的配置.

如果開了iptables防火牆,需要打開對應的7789端口。

在主節點配置

[root@www /]#  vim  /etc/drbd.d/dbdata.res

resource dbdata {

 on www.cheng.com{

   device    /dev/drbd1;

   disk      /dev/sdb5;

   address   192.168.0.11:7789;

   meta-disk internal;

 }

 on www.bao.com{

   address   192.168.0.22:7789;

}

建立drbd裝置

[root@www /]#  drbdadm create-md all

[root@www /]#  /etc/init.d/drbd restart

檢視是否有相應的塊裝置:

[root@www /]# ls -l /dev/drbd1

[root@www /]#  cat /proc/drbd

現在可以檢視DRBD的狀态,然後在www.cheng.com主機上執行:

Centos 6.1 DRBD配置與使用

五.使用drdb

資料同步完成後在主機上

[root@www /]#  drbdadm -- --overwrite-data-of-peer primary dbdata

[root@www /]#  mkfs.ext3  /dev/drbd1   #格式化

[root@www /]#  mount  /dev/drbd1 /mnt/

現在可以把主機上的DRBD裝置挂載到一個目錄上進行使用.備機的DRBD裝置無法被挂載,因為它是,用來接收主機資料的,由DRBD負責操作.

六.Drbd主備機切換

有時,你需要将DRBD的主備機互換一下.可以執行下面的操作: 

在主機上,先要解除安裝掉DRBD裝置.

對192.168.0.11 進行降級操作

[root@www /]#  umount  /mnt     #必須先解除安裝

[root@www /]#  drbdadm  secondary dbdata    #切換成備機

Centos 6.1 DRBD配置與使用

在備機器上進行更新操作

[root@www /]#  drbdadm   primary  dbdata #切換成主機

Centos 6.1 DRBD配置與使用

成為了”主機”.你可以把它的/dev/drbd1進行挂載和使用了.同樣,資料會被同步到

192.168.0.22上進行使用了

本文轉自大角牛部落格51CTO部落格,原文連結http://blog.51cto.com/jingshengsun888/1331891如需轉載請自行聯系原作者

運維的戲子