Let’s Learn DRBD

一、What's the DRBD:

image

DRBD refers to block devices designed as a building block to form high availability (HA) clusters. This is done by mirroring a whole block device via an assigned network. DRBD can be understood as network based raid-1.

In the illustration above, the two orange boxes represent two servers that form an HA cluster. The boxes contain the usual components of a Linux? kernel: file system, buffer cache, disk scheduler, disk drivers, TCP/IP stack and network interface card (NIC) driver. The black arrows illustrate the flow of data between these components.

The orange arrows show the flow of data, as DRBD mirrors the data of a highly available service from the active node of the HA cluster to the standby node of the HA cluster.

二、DRBD的安裝配置:

1、環境介紹:

兩臺虛擬機,centos01和centos02,對應的IP是192.168.219.7和192.168.219.8。各有兩個虛擬磁盤sda和sdb,sda是系統盤而sdb供drbd使用。這裏注意了,DRBD不能應用到共享設備上,昨天我在做 測試的時候使用的是共享磁盤,結果導致在另外一個節點掛載時報錯,提示只讀文件系統。

image

image

1、安裝:

這裏使用的是centos,所以直接使用yum安裝drbd82以及kmod-drbd82:

image

image

DRBD的默認配置是/etc/drbd.conf:

image

它的啓動腳本是/etc/init.d/drbd:

image

2、配置:

複製/usr/share/doc/drbd82/drbd.conf爲/etc/drbd.conf。完了之後稍作編輯即可使用,下面是編輯後的drbd.conf內容:

image

image

這裏的repdata是資源名稱,7788和7799是drbd默認使用的TCP端口。還有就是net選項中指定了加密方式爲sha1以及共享密碼爲abc123。完成之後,將drbd.conf傳到另外一臺centos01上面。

3、啓用剛纔配置的資源repdata:

(1)、create  device metadata:

這步必須在兩個節點都要執行:

image

image

image

image

(2)、兩個節點啓動drbd服務:

image

image

啓動之後,可以通過查看/proc/drbd文件,或許相關信息:

image

image

從以上信息可以得知,當前兩個節點的角色是secondary,接着就要確定那個節點爲主角色了。

(3)、確定主角色並且執行設備初始化同步:

這裏將centos01設置爲主角色並且執行設備初始化同步,在一個節點執行即可。

image

接着查看/proc/drbd文件:

image

在centos02節點上也可以看到設備正在執行初始化同步操作:

image

4、在drbd設備上創建文件系統:

這裏使用的設備文件是/dev/drbd0,也就是在drbd.conf文件中設置的,在一個節點上操作即可:

image

在centos01上創建幾個文件,測試下同步效果:

image

image

在centos01上卸載/u02目錄並設置將centos01的角色設置爲secondary,在centos02上掛載並將centos02設置爲primary角色:

image

image

到此,數據已完全同步過來了。

查看/proc/drbd文件,注意觀察角色的變化:

image

image

接着在centos02節點上添加刪除文件,測試下同步效果:

image

切換到centos01上查看同步效果:

image

image

OK,到此DRBD已經正常工作了。

三、DRBD的日常管理:

管理DRBD常用的一個管理命令是drbdadm,它又包含了好多子命令,如下圖所示:

image

1、檢查DRBD狀態:

image

以上的state是查看角色狀態,cstate查看連接狀態,dstate查看磁盤狀態。drbd的狀態信息存放於/proc/drbd中:

image

以上各個字段的含義請參考drbd users guide

2、啓用與禁用資源:

當前兩個節點已經啓用了資源repdata,現在在任意節點禁用資源:

image

啓用repdata:

image

image

還有好多管理方面的內容,請參考官方文檔。

四、DRBD與LVM、Heartbeat的結合:

1、整合DRBD與LVM:

當前系統中存在以下兩個卷組vg和vg1,vg1用於與drbd整合。

image

image

兩個節點分別創建一個邏輯卷vg1-1:

image

image

完了之後,編輯drbd.conf文件,加入以下內容,如圖所示:

image

完了之後,創建r0資源:

image

在這裏,由於drbd服務已經處於啓動狀態,所以使用service drbd reload重新載入配置文件即可。

image

image

然後設置primary角色:

image

image

完了之後,就可以在/dev/drbd1上面創建文件系統、讀寫數據了。

2、DRBD與Heartbeat的結合:

首先要安裝heartbeat軟件,在centos上直接使用yum在線安裝heartbeat軟件即可,兩個節點都要安裝的。安裝完成之後,需創建ha.cf和authkeys文件,內容如下:

image

image

創建完成之後,複製ha.cf和authkeys之另外一個節點,注意authkeys的屬性必須是600!兩臺節點啓動heartbeat服務。啓動之後,可以使用crm_mon檢驗兩節點的狀態:

image

接着創建一個包含IP爲192.168.219.3、drbd設備和文件系統掛載點的資源組,這裏使用圖形界面hb_gui進行設置。此圖形界面默認只能通過127.0.0.1訪問,並且必須對hacluster用戶設置密碼,初次是如下界面:

image

點擊+號添加資源操作,最後結果如圖所示:

image

image 

後續增加更多DRBD、Heartbeat和第三方應用的博文,敬請期待!!!

參考文獻:

1、DRBD用戶指南

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