DRBD在生產環境中的安裝接配置


1.準備兩臺服務器及兩塊磁盤

2.分別配置兩塊硬盤(/dev/sdb)

2.1使用fdisk command分區格式化硬盤(/dev/sdb):

通過fdisk、mkfs.ext3、tune2fs命令處理一下分區

注:具體命令詳見我單獨文檔《fdisk和mkfs命令詳細實踐總結》一文

DRBD在生產環境中的安裝接配置

注:1。meta data 分區必須存在,並且不能格式化建立文件系統

2.分好的分區一定不要掛載。

2.2檢查meta data 分區正常可用的辦法:

[root@drbd1~]#mount/dev/sdb7/ryan

mount:you must specify the filesystem type//出現這個結果meta data分區就是對的。

3.安裝drbd

[root@drbd1~]#yum install kmod-drbd83 drbd83-y

注:(1)通過yum安裝簡單方便-y為不需要安裝確認。

(2)關於yum的使用請看我的《YUM/RPM倉庫創建和維護詳細文檔》一文

4.配置DRBD

4.1執行下面命令加載drbd模塊到內核

[root@drbd1~]#modprobe drbd

注:1。要如果不執行可能會出錯。見附錄問題3

2.關於modprobe請閱讀我的文檔《modprobe&&lsmod作用於用法小結》一文

4.2檢查drbd是否被正確加載到內核

[root@drbd1~]# ismod|grep drbd

DRBD在生產環境中的安裝接配置

4.3編輯配置drbd的配置文件drbd.conf

默認的配置路徑/etc/drbd.conf,詳細配置內容見後文附錄三

5.enabling drbd 資源

注:下面的每一步在兩臺機器都要執行。

5.1初始化drbd的metadata(create device metadata。)

創建供drbd記錄信息的metadata分區數據塊

Drbdadm create-md all

[root@drbd1 etc]#drbdadm create-md all

md offset 0

al offset 4096

bm_offset 36846

省略若干行 全部內容見後文!附錄四

Writing meta data。。。

Initializing activity log

Not initialized bitmap

New drbd meta data block successfully created。

技巧:1。可以單獨創建resource資源名稱,而不用直接用all。遇到錯位見附錄二。如:drbdadm create-md data "data"是我們在drbd.conf裡定義的資源名稱。

查看此時的drbd狀態信息

DRBD在生產環境中的安裝接配置

注:drbd-overview 為一個perl腳本,drbd-overview.pl

5.2啟動drbd

[root@drbd2 etc]#drbdadm up all

技巧:命令drbdadm up all 相當於如下命令的組合:

DRBD在生產環境中的安裝接配置

查看此時的drbd狀態(和前一個狀態對比下)

[root@drbd1 etc]#cat /proc/drbd

DRBD在生產環境中的安裝接配置

注:以上提示詳細解釋說明件附錄五

6.同步DRBD數據到對端SERVER,使數據保持一致

6.1指定一個要同步的資源,同步數據到對端

注:(1)如果為空硬盤,可以隨意執行操作不需要考慮數據。

(2)如果兩邊數據不一樣(要特別注意同步數據的方向,否則可能會丟失數據)

6.2同步數據到對端的命令一個資源只能在一端執行

[root@drbd1 etc]# drbdadm-- --overwrite-data-of-peerprimary data

查看此時的drbd狀態(請自行和前一個狀態對比下)

DRBD在生產環境中的安裝接配置

6.3在另一臺機器執行data1資源同步

[root@drbd2 etc]#drbdadm-- --overwrite-data-of-peer primary data1

注:因本文配置的是高級雙主同步,所以另一臺機器需要執行上面命令

6.4用cat/proc/drbd命令看drbd狀態:

[root@drbd1 etc]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

6.5禁止drbd開機自動啟動(將來由heartbeat來控制)

[root@drbd1 etc]#chkconfig drbd off

注:如果開機啟動了,此時在執行drbdadm up all會遇到錯誤,件附錄二。

技巧:(1)禁止drbd開機自動啟動的真實目的是將來要部署heartbeat+drbd的高可用配置

(2)詳情請讀《Mysql+drbd雙主模式+heartbeat高可用自動切換部署詳細文檔》和《Mysql+heartbeat+drbd mysql雙主多從集群及兩端node同時提供服務的高可用互相監測並自動切換部署詳細文檔》。

7.檢查drbd同步數據額情況

7.1 10.0.0.14(data primary)mount drbd0寫數據測試

[root@drbd1 etc]#mount/dev/drbd0/data

注:(1)注意提供正式服務的drbd設備的名稱為/dev/drbd0,而不是實際物理設備/dev/sdb5.

(2)做mysql雙主多從集群及高可用時不能mount(交給heartbeat來控制)

(3)從的drbd默認情況不能mount提供讀服務。

(4)本例實現的是雙主drbd同時提供服務的高級模式,因此10.0.0.14/data可以提供正式服務,而再10.0.0.15上/data1作為drbd主提供正式服務。對端的資源再drbd啟動的時候不可見。

7.2在data裡寫數據看對端(data secondry)有沒有。

10.0.0.15(data secondry)上查看方法

[root@drbd2 etc]#drbdadm down data

[root@drbd2 etc]#mount/dev/sdb5/mnt

[root@drbd2 etc]1s /mnt

檢查完畢恢復方法

[root@drbd2 etc]#umount/mnt

[root@drbd2 etc]#drbdadm up data

7.3 10.0.0.15(data1 primary)mount drbd1寫數據測試

10.0.0.15(data1 primary)

[root@drbd2 etc]#mount/dev/drbd1/data1

注:(1)注意提供正式服務的drbd設備的名稱為/dev/drbd1,而不是實際物理設備/dev/sdb6。

(2)做mysql雙主多從集群及高可用時不能mount(交給heartbeat來控制)

(3)從的drbd默認情況不能mount提供讀的服務。

(4)本例實現的是雙主drbd同時提供服務的高級模式,因此10.0.0.14/data可以提供正式服務,而再10.0.0.15上/data1作為drbd主提供正式服務。對端的資源再drbd啟動的時候不可見。

7.4在data1裡寫數據看對端(data1 secondry)有沒有。

在data寫數據看對端有沒有(注意過程)

[root@drbd1 etc]#drbdadm down data1

[root@drbd1 etc]#mount/dev/sdb6/mnt

[root@drbd1 etc]#1s /mnt

檢查完畢恢復方法

[root@drbd1 etc]#umount/mnt

[root@drbd1 etc]#drbdadm up data1

8.本文內容看考文獻:

http//www.drbd.org/docs/install/

附錄一:和本文相關的問道及應用有:

1.《fdisk和mkfs命令詳細實踐總結》

2.《YUM/RPM倉庫創建和維護詳細文檔》

3.《modprobe&&ismod作用與用法小結》

4.《heartbeat在生產環境中的安裝及配置》

5.《mysql+drbd雙主模式+heartbeat高可用自動切換部署詳細文檔》

6.《mysql+heartbeat+drbd mysql雙主多從集群及兩端node同時提供服務的高可用互相監測並自動切換部署詳細文檔》

7.《a/a nfs+drbd+heartbeat數據存儲高可用配置》

8.《drbd性能調優8項總結》

附錄二:常見問題

問題1:drbd依賴於其內核模塊,需手工加載:modprobe drbd

問題2:命令drbdadm up all相當於如下命令的組合:

DRBD在生產環境中的安裝接配置

問題3:處理大腦垂直分割問題

可選擇一個機器作為secondary,在該機器上執行

drbdadm secondary all

drbdadm-- --discard-my-data connect all

在另一臺機器執行

Drbdadm connect all

問題4:如果開機drbd自啟動未關掉:啟動drbd時會報如下錯誤

[root@drbd1 ~]#drbdadm up all

DRBD在生產環境中的安裝接配置

出現上面錯誤,就是drbd進程已經起了,可以先宕drbd服務在啟動看看。

[root@drbd2 ~]#drbdadm down all

[root@drbd2 ~]#drbdadm up all

關掉方法:chkconfig drbd off

問題5:單機啟動正常狀態:

[root@drbd1~]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

問題6:沒有執行modprobe drbd引發的報錯提示

[root@drbd2 ~]#drbdadm up all

DRBD在生產環境中的安裝接配置

問題7:針對根分區fdisk時,如果不重啟系統?

[root@drbd2 ~]#drbdadm up all

DRBD在生產環境中的安裝接配置

問題8:主從drbd啟動其狀態的改變

當從drbd啟動後

主的狀態自動由

[root@drbd1 ~]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

變為:

[root@drbd1 ~]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

[root@drbd1 /]#drbdadm primary data指定data為主模式

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

DRBD在生產環境中的安裝接配置

問題9:drbd主從數據不同步時,要設定主資源然後再進行同步數據到另一端

DRBD在生產環境中的安裝接配置

[root@drbd1 ~]#drbdadm primary data

DRBD在生產環境中的安裝接配置

原因:drbd主從不同步要設定主資源然後進行同步。

DRBD在生產環境中的安裝接配置

[root@drbd1 ~]#drbdadm -- --overwrite-data-of-peer primary data

DRBD在生產環境中的安裝接配置

問題10:關於mount分區

使用時一定要mount drbd的設備,否則搞不定。

DRBD在生產環境中的安裝接配置

這樣子錯誤

問題11:如何檢查drbd是否工作正常。(此問題正文裡寫過,本問題裡為以前的文檔保留)

下面通過實驗來測試:

1.首先確定14(x)drbd狀態正常:15(y)狀態正常:

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

DRBD在生產環境中的安裝接配置

15狀態正常:

[root@drbd2 ~]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

2、製造數據到主resource裡。

14ryan主15pic主

再14上執行如下命令:

[root@drbd1 /]# mount/dev/drbd0/ryan

[root@drbd1 /]# cp-R/etc/ryan/

然後再15上檢查數據:

[root@drbd2 ~]#drbdadm down ryan

[root@drbd2 ~]#mount/dev/sda4/ryan

[root@drbd2 ~]#11/ryan/

[root@drbd2 ~]#umount/ryan

[root@drbd2 ~]#drbdadm up ryan

[root@drbd2 ~]#cat/proc/drbd

DRBD在生產環境中的安裝接配置

注意:mount狀態下啟動drbd有問題。無論主從。

從庫:

[root@drbd2 ~]#mount/dev/sda4/ryan

[root@drbd2 ~]#drbdadm up ryan//提示出錯

DRBD在生產環境中的安裝接配置

[root@drbd2 ~]# umount/ryan/

[root@drbd2 ~]# drbddam up ryan

附錄三:/etc/drbd.conf配置文件

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

注:有關此配置中參數的詳細講解,請閱讀我的另外篇章《drbd.conf配置文件參數詳解》

附錄四:初始化drbd的metadata詳細提示

[root@drbd1 etc]#drbdadm create-md all

DRBD在生產環境中的安裝接配置

附錄五:drbd狀態信息釋疑:

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

DRBD在生產環境中的安裝接配置

生產庫實際狀態:

[rhy@fdata-1-1 ~]$ cat/proc/drbd

DRBD在生產環境中的安裝接配置

連接狀態

[root@fdata-1-1 ~]#drbdadm cstate all

Connected

Connected

第一行為:drbd的版本信息

第二行為:編譯的信息

第三、五行為:開頭"0"表示 設備/dev/drbd0。開頭"1"表示 設備/dev/drbd1

DRBD在生產環境中的安裝接配置

狀態有如下這些:

DRBD在生產環境中的安裝接配置

節點角色

[root@fdata-1-1 ~]#drbddadm role all

Secondary/primary

Primary/secondary

硬盤狀態

[root@fdata-1-1 ~]#drbdadm dstate all

Up to date/up to date

Up to date/up to date

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

附錄六:drbd的日常維護

1、修改drbd.conf配置文件

調整後使生效方法:drbdadm adjust all

2、切換角色

Drbdadm primary resource

Drbdadm secondary resource

3、enabling dual-primary mode(雙主模式)

DRBD在生產環境中的安裝接配置

附錄七:drbd介紹及同步原理

Drbd是一種塊設備,可以被用於高可用(HA)之中。它類似於一個網絡RAID-1功能。當你將數據寫入本地文件系統時,數據還將會被髮送到網絡中另一臺主機上。以相同的形式記錄在一個文件系統中。本地(主節點)與遠程主機(備節點)的數據可以保證實時同步。當本地系統出現故障時,遠程主機上還會保留有一份相同的數據,可以繼續使用。

在高可用(HA)中使用drbd功能,可以代替使用一個共享盤陣。因為數據同時存在於本地主機和遠程主機上,切換時,遠程主機只要使用它上面的那份備份數據,就可以繼續進行服務了。

Drbd的工作原理如下圖:

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置

附錄八:drbdadm命令介紹:

DRBD在生產環境中的安裝接配置

DRBD在生產環境中的安裝接配置


分享到:


相關文章: