九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
DRBD安裝配置、工作原理及故障恢復

一、DRBD簡介

DRBD的全稱為:Distributed ReplicatedBlock Device(DRBD)分布式塊設備復制,DRBD是由內核模塊和相關腳本而構成,用以構建高可用性的集群。其實現(xiàn)方式是通過網(wǎng)絡來鏡像整個設備。你可以把它看作是一種網(wǎng)絡RAID。它允許用戶在遠程機器上建立一個本地塊設備的實時鏡像。

二、DRBD是如何工作的呢?

(DRBD Primary)負責接收數(shù)據(jù),把數(shù)據(jù)寫到本地磁盤并發(fā)送給另一臺主機(DRBD Secondary)。另一個主機再將數(shù)據(jù)存到自己的磁盤中。目前,DRBD每次只允許對一個節(jié)點進行讀寫訪問,但這對于通常的故障切換高可用集群來說已經(jīng)足夠用了。有可能以后的版本支持兩個節(jié)點進行讀寫存取。

三、DRBD與HA的關系

一個DRBD系統(tǒng)由兩個節(jié)點構成,與HA集群類似,也有主節(jié)點和備用節(jié)點之分,在帶有主要設備的節(jié)點上,應用程序和操作系統(tǒng)可以運行和訪問DRBD設備(/dev/drbd*)。在主節(jié)點寫入的數(shù)據(jù)通過DRBD設備存儲到主節(jié)點的磁盤設備中,同時,這個數(shù)據(jù)也會自動發(fā)送到備用節(jié)點對應的DRBD設備,最終寫入備用節(jié)點的磁盤設備上,在備用節(jié)點上,DRBD只是將數(shù)據(jù)從DRBD設備寫入到備用節(jié)點的磁盤中?,F(xiàn)在大部分的高可用性集群都會使用共享存儲,而DRBD也可以作為一個共享存儲設備,使用DRBD不需要太多的硬件的投資。因為它在TCP/IP網(wǎng)絡中運行,所以,利用DRBD作為共享存儲設備,要節(jié)約很多成本,因為價格要比專用的存儲網(wǎng)絡便宜很多;其性能與穩(wěn)定性方面也不錯

四、DRBD復制模式

協(xié)議A

異步復制協(xié)議。一旦本地磁盤寫入已經(jīng)完成,數(shù)據(jù)包已在發(fā)送隊列中,則寫被認為是完成的。在一個節(jié)點發(fā)生故障時,可能發(fā)生數(shù)據(jù)丟失,因為被寫入到遠程節(jié)點上的數(shù)據(jù)可能仍在發(fā)送隊列。盡管,在故障轉移節(jié)點上的數(shù)據(jù)是一致的,但沒有及時更新。這通常是用于地理上分開的節(jié)點

協(xié)議B

內存同步(半同步)復制協(xié)議。一旦本地磁盤寫入已完成且復制數(shù)據(jù)包達到了對等節(jié)點則認為寫在主節(jié)點上被認為是完成的。數(shù)據(jù)丟失可能發(fā)生在參加的兩個節(jié)點同時故障的情況下,因為在傳輸中的數(shù)據(jù)可能不會被提交到磁盤

協(xié)議C

同步復制協(xié)議。只有在本地和遠程節(jié)點的磁盤已經(jīng)確認了寫操作完成,寫才被認為完成。沒有任何數(shù)據(jù)丟失,所以這是一個群集節(jié)點的流行模式,但I / O吞吐量依賴于網(wǎng)絡帶寬


一般使用協(xié)議C,但選擇C協(xié)議將影響流量,從而影響網(wǎng)絡時延。為了數(shù)據(jù)可靠性,我們在生產(chǎn)環(huán)境使用時須慎重選項使用哪一種協(xié)議

四、 DRBD工作原理圖

DRBD是linux的內核的存儲層中的一個分布式存儲系統(tǒng),可用使用DRBD在兩臺Linux服務器之間共享塊設備,共享文件系統(tǒng)和數(shù)據(jù)。類似于一個網(wǎng)絡RAID-1的功能,如圖所示:


五、環(huán)境介紹及安裝前準備

環(huán)境介紹:

系統(tǒng)版本:CentOS 6.4_x86_64

DRBD軟件:drbd-8.4.3-33.el6.x86_64 drbd-kmdl-2.6.32-358.el6-8.4.3-33.el6.x86_64 下載地址:http://rpmfind.net

注意:這里兩個軟件的版本必須使用一致,而drbd-kmdl的版本要與當前系統(tǒng)的版本相對應,當然在實際應用中需要根據(jù)自己的系統(tǒng)平臺下載符合需要的軟件版本;查看系統(tǒng)版本 "uname -r"

安裝前準備:

1、每個節(jié)點的主機名稱須跟"uname -n"命令的執(zhí)行結果一樣

1
2
3
4
5
6
7
######NOD1節(jié)點執(zhí)行
sed -i 's@\(HOSTNAME=\).*@\1nod1.allen.com@g' /etc/sysconfig/network
hostname nod1.allen.com
######NOD2節(jié)點執(zhí)行
sed -i 's@\(HOSTNAME=\).*@\1nod2.allen.com@g' /etc/sysconfig/network
hostname nod2.allen.com
注釋:修改文件須重啟系統(tǒng)生效,這里先修改文件然后執(zhí)行命令修改主機名稱可以不用重啟

2、兩個節(jié)點的主機名稱和對應的IP地址可以正常解析

1
2
3
4
5
######在NOD1與NOD2節(jié)點執(zhí)行
cat > /etc/hosts << EOF
192.168.137.225 nod1.allen.com nod1
192.168.137.222 nod2.allen.com nod2
EOF

3、配置epel的yum源 點此下載并安裝

1
2
######在NOD1與NOD2節(jié)點安裝
rpm -ivh epel-release-6-8.noarch.rpm

4、需要為兩個節(jié)點分別提供大小相同的分區(qū)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
######在NOD1節(jié)點上創(chuàng)建分區(qū),分區(qū)大小必須與NOD2節(jié)點保持一樣
[root@nod1 ~]# fdisk /dev/sda
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (7859-15665, default 7859):
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +2G
Command (m for help): w
[root@nod1 ~]# partx /dev/sda  #讓內核重新讀取分區(qū)
######查看內核有沒有識別分區(qū),如果沒有需要重新啟動,這里沒有識別需要重啟系統(tǒng)
[root@nod1 ~]# cat /proc/partitions
major minor  #blocks  name
   8        0  125829120 sda
   8        1     204800 sda1
   8        2   62914560 sda2
 253        0   20971520 dm-0
 253        1    2097152 dm-1
 253        2   10485760 dm-2
 253        3   20971520 dm-3
[root@nod1 ~]# reboot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
######在NOD2節(jié)點上創(chuàng)建分區(qū),分區(qū)大小必須與NOD1節(jié)點保持一樣
[root@nod2 ~]# fdisk /dev/sda
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (7859-15665, default 7859):
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +2G
Command (m for help): w
[root@nod2 ~]# partx /dev/sda  #讓內核重新讀取分區(qū)
######查看內核有沒有識別分區(qū),如果沒有需要重新啟動,這里沒有識別需要重啟系統(tǒng)
[root@nod2 ~]# cat /proc/partitions
major minor  #blocks  name
   8        0  125829120 sda
   8        1     204800 sda1
   8        2   62914560 sda2
 253        0   20971520 dm-0
 253        1    2097152 dm-1
 253        2   10485760 dm-2
 253        3   20971520 dm-3
[root@nod2 ~]# reboot



六、安裝并配置DRBD

1、在NOD1與NOD2節(jié)點上安裝DRBD軟件包

1
2
3
4
5
6
7
8
######NOD1
[root@nod1 ~]# ls drbd-*
drbd-8.4.3-33.el6.x86_64.rpm  drbd-kmdl-2.6.32-358.el6-8.4.3-33.el6.x86_64.rpm
[root@nod1 ~]# yum -y install drbd-*.rpm
######NOD2
[root@nod2 ~]# ls drbd-*
drbd-8.4.3-33.el6.x86_64.rpm  drbd-kmdl-2.6.32-358.el6-8.4.3-33.el6.x86_64.rpm
[root@nod2 ~]# yum -y install drbd-*.rpm

2、查看DRBD配置文件

1
2
3
4
5
6
7
8
9
10
ll /etc/drbd.conf;ll /etc/drbd.d/
-rw-r--r-- 1 root root 133 May 14 21:12 /etc/drbd.conf #主配置文件
total 4
-rw-r--r-- 1 root root 1836 May 14 21:12 global_common.conf #全局配置文件
######查看主配置文件內容
cat /etc/drbd.conf
######主配置文件中包含了全局配置文件及"drbd.d/"目錄下以.res結尾的文件
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

3、修改配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[root@nod1 ~]#vim /etc/drbd.d/global_common.conf
global {
    usage-count no;  #是否參加DRBD使用統(tǒng)計,默認為yes
    # minor-count dialog-refresh disable-ip-verification
}
common {
    protocol C;      #使用DRBD的同步協(xié)議
    handlers {
        # These are EXAMPLE handlers only.
        # They may have severe implications,
        # like hard resetting the node under certain circumstances.
        # Be careful when chosing your poison.
        pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
        # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
        # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
        # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
        # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
        # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
    }
    startup {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
    }
    options {
        # cpu-mask on-no-data-accessible
    }
    disk {
        on-io-error detach; #配置I/O錯誤處理策略為分離
        # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes
        # disk-drain md-flushes resync-rate resync-after al-extents
                # c-plan-ahead c-delay-target c-fill-target c-max-rate
                # c-min-rate disk-timeout
    }
    net {
        cram-hmac-alg "sha1";       #設置加密算法
        shared-secret "allendrbd"; #設置加密密鑰
        # protocol timeout max-epoch-size max-buffers unplug-watermark
        # connect-int ping-int sndbuf-size rcvbuf-size ko-count
        # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
        # after-sb-1pri after-sb-2pri always-asbp rr-conflict
        # ping-timeout data-integrity-alg tcp-cork on-congestion
        # congestion-fill congestion-extents csums-alg verify-alg
        # use-rle
    }
    syncer {
        rate 1024M;    #設置主備節(jié)點同步時的網(wǎng)絡速率
    }
}

注釋: on-io-error <strategy>策略可能為以下選項之一

detach 分離:這是默認和推薦的選項,如果在節(jié)點上發(fā)生底層的硬盤I/O錯誤,它會將設備運行在Diskless無盤模式下

pass_on:DRBD會將I/O錯誤報告到上層,在主節(jié)點上,它會將其報告給掛載的文件系統(tǒng),但是在此節(jié)點上就往往忽略(因此此節(jié)點上沒有可以報告的上層)

-local-in-error:調用本地磁盤I/O處理程序定義的命令;這需要有相應的local-io-error調用的資源處理程序處理錯誤的命令;這就給管理員有足夠自由的權力命令命令或是腳本調用local-io-error處理I/O錯誤

4、添加資源文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@nod1 ~]# vim /etc/drbd.d/drbd.res
resource drbd {
  on nod1.allen.com {    #第個主機說明以on開頭,后面是主機名稱
    device    /dev/drbd0;#DRBD設備名稱
    disk      /dev/sda3; #drbd0使用的磁盤分區(qū)為"sda3"
    address   192.168.137.225:7789; #設置DRBD監(jiān)聽地址與端口
    meta-disk internal;
  }
  on nod2.allen.com {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address   192.168.137.222:7789;
    meta-disk internal;
  }
}

5、將配置文件為NOD2提供一份

1
2
3
4
5
6
7
8
[root@nod1 ~]# scp /etc/drbd.d/{global_common.conf,drbd.res} nod2:/etc/drbd.d/
The authenticity of host 'nod2 (192.168.137.222)' can't be established.
RSA key fingerprint is 29:d3:28:85:20:a1:1f:2a:11:e5:88:cd:25:d0:95:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'nod2' (RSA) to the list of known hosts.
root@nod2's password:
global_common.conf                                                             100% 1943     1.9KB/s   00:00 
drbd.res                                                                       100%  318     0.3KB/s   00:00

6、初始化資源并啟動服務

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
######在NOD1節(jié)點上初始化資源并啟動服務
[root@nod1 ~]# drbdadm create-md drbd
Writing meta data...
initializing activity log
NOT initializing bitmap
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory
New drbd meta data block successfully created.  #提示已經(jīng)創(chuàng)建成功
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory
######啟動服務
[root@nod1 ~]# service drbd start
Starting DRBD resources: [
     create res: drbd
   prepare disk: drbd
    adjust disk: drbd
     adjust net: drbd
]
..........
***************************************************************
 DRBD's startup script waits for the peer node(s) to appear.
 - In case this node was already a degraded cluster before the
   reboot the timeout is 0 seconds. [degr-wfc-timeout]
 - If the peer was available before the reboot the timeout will
   expire after 0 seconds. [wfc-timeout]
   (These values are for resource 'drbd'; 0 sec -> wait forever)
 To abort waiting enter 'yes' [  12]: yes
######查看監(jiān)聽端口
[root@nod1 ~]# ss -tanl |grep 7789
LISTEN     0      5           192.168.137.225:7789                     *:*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
######在NOD2節(jié)點上初始化資源并啟動服務
[root@nod2 ~]# drbdadm create-md drbd
Writing meta data...
initializing activity log
NOT initializing bitmap
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory
New drbd meta data block successfully created.
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory
######啟動服務
[root@nod2 ~]# service drbd start
Starting DRBD resources: [
     create res: drbd
   prepare disk: drbd
    adjust disk: drbd
     adjust net: drbd
]
######查看監(jiān)聽地址與端口
[root@nod2 ~]# netstat -anput|grep 7789
tcp        0      0 192.168.137.222:42345       192.168.137.225:7789        ESTABLISHED -                
tcp        0      0 192.168.137.222:7789        192.168.137.225:42325       ESTABLISHED -
######查看DRBD啟動狀態(tài)
[root@nod2 ~]# drbd-overview
  0:drbd/0  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----

7、資源的連接狀態(tài)詳細介紹

7.1、如何查看資源連接狀態(tài)?

1
2
[root@nod1 ~]# drbdadm cstate drbd   #drbd為資源名稱
Connected

7.2、資源的連接狀態(tài);一個資源可能有以下連接狀態(tài)中的一種

StandAlone 獨立的:網(wǎng)絡配置不可用;資源還沒有被連接或是被管理斷開(使用 drbdadm disconnect 命令),或是由于出現(xiàn)認證失敗或是腦裂的情況

Disconnecting 斷開:斷開只是臨時狀態(tài),下一個狀態(tài)是StandAlone獨立的

Unconnected 懸空:是嘗試連接前的臨時狀態(tài),可能下一個狀態(tài)為WFconnection和WFReportParams

Timeout 超時:與對等節(jié)點連接超時,也是臨時狀態(tài),下一個狀態(tài)為Unconected懸空

BrokerPipe:與對等節(jié)點連接丟失,也是臨時狀態(tài),下一個狀態(tài)為Unconected懸空

NetworkFailure:與對等節(jié)點推動連接后的臨時狀態(tài),下一個狀態(tài)為Unconected懸空

ProtocolError:與對等節(jié)點推動連接后的臨時狀態(tài),下一個狀態(tài)為Unconected懸空

TearDown 拆解:臨時狀態(tài),對等節(jié)點關閉,下一個狀態(tài)為Unconected懸空

WFConnection:等待和對等節(jié)點建立網(wǎng)絡連接

WFReportParams:已經(jīng)建立TCP連接,本節(jié)點等待從對等節(jié)點傳來的第一個網(wǎng)絡包

Connected 連接:DRBD已經(jīng)建立連接,數(shù)據(jù)鏡像現(xiàn)在可用,節(jié)點處于正常狀態(tài)

StartingSyncS:完全同步,有管理員發(fā)起的剛剛開始同步,未來可能的狀態(tài)為SyncSource或PausedSyncS

StartingSyncT:完全同步,有管理員發(fā)起的剛剛開始同步,下一狀態(tài)為WFSyncUUID

WFBitMapS:部分同步剛剛開始,下一步可能的狀態(tài)為SyncSource或PausedSyncS

WFBitMapT:部分同步剛剛開始,下一步可能的狀態(tài)為WFSyncUUID

WFSyncUUID:同步即將開始,下一步可能的狀態(tài)為SyncTarget或PausedSyncT

SyncSource:以本節(jié)點為同步源的同步正在進行

SyncTarget:以本節(jié)點為同步目標的同步正在進行

PausedSyncS:以本地節(jié)點是一個持續(xù)同步的源,但是目前同步已經(jīng)暫停,可能是因為另外一個同步正在進行或是使用命令(drbdadm pause-sync)暫停了同步

PausedSyncT:以本地節(jié)點為持續(xù)同步的目標,但是目前同步已經(jīng)暫停,這可以是因為另外一個同步正在進行或是使用命令(drbdadm pause-sync)暫停了同步

VerifyS:以本地節(jié)點為驗證源的線上設備驗證正在執(zhí)行

VerifyT:以本地節(jié)點為驗證目標的線上設備驗證正在執(zhí)行

7.3、資源角色

查看資源角色命令

1
2
3
4
5
6
7
8
9
10
11
[root@nod1 ~]# drbdadm role drbd
Secondary/Secondary
[root@nod1 ~]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 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:2103412
注釋:
Parimary 主:資源目前為主,并且可能正在被讀取或寫入,如果不是雙主只會出現(xiàn)在兩個節(jié)點中的其中一個節(jié)點上
Secondary 次:資源目前為次,正常接收對等節(jié)點的更新
Unknown 未知:資源角色目前未知,本地的資源不會出現(xiàn)這種狀態(tài)

7.4、硬盤狀態(tài)

查看硬盤狀態(tài)命令

1
2
[root@nod1 ~]# drbdadm dstate drbd
Inconsistent/Inconsistent

本地和對等節(jié)點的硬盤有可能為下列狀態(tài)之一:

Diskless 無盤:本地沒有塊設備分配給DRBD使用,這表示沒有可用的設備,或者使用drbdadm命令手工分離或是底層的I/O錯誤導致自動分離

Attaching:讀取無數(shù)據(jù)時候的瞬間狀態(tài)

Failed 失?。罕镜貕K設備報告I/O錯誤的下一個狀態(tài),其下一個狀態(tài)為Diskless無盤

Negotiating:在已經(jīng)連接的DRBD設置進行Attach讀取無數(shù)據(jù)前的瞬間狀態(tài)

Inconsistent:數(shù)據(jù)是不一致的,在兩個節(jié)點上(初始的完全同步前)這種狀態(tài)出現(xiàn)后立即創(chuàng)建一個新的資源。此外,在同步期間(同步目標)在一個節(jié)點上出現(xiàn)這種狀態(tài)

Outdated:數(shù)據(jù)資源是一致的,但是已經(jīng)過時

DUnknown:當對等節(jié)點網(wǎng)絡連接不可用時出現(xiàn)這種狀態(tài)

Consistent:一個沒有連接的節(jié)點數(shù)據(jù)一致,當建立連接時,它決定數(shù)據(jù)是UpToDate或是Outdated

UpToDate:一致的最新的數(shù)據(jù)狀態(tài),這個狀態(tài)為正常狀態(tài)

7.5、啟用和禁用資源

1
2
3
4
5
6
######手動啟用資源
drbdadm up <resource>
######手動禁用資源
drbdadm down <resource>
注釋:
resource:為資源名稱;當然也可以使用all表示[停用|啟用]所有資源

7.6、升級和降級資源

1
2
3
4
5
######升級資源
drbdadm primary <resource>
######降級資源
drbdadm secondary <resource>
注釋:在單主模式下的DRBD,兩個節(jié)點同時處于連接狀態(tài),任何一個節(jié)點都可以在特定的時間內變成主;但兩個節(jié)點中只能一為主,如果已經(jīng)有一個主,需先降級才可能升級;在雙主模式下沒有這個限制

8、初始化設備同步

8.1、選擇一個初始同步源;如果是新初始化的或是空盤,這個選擇可以是任意的,但是如果其中的一個節(jié)點已經(jīng)在使用并包含有用的數(shù)據(jù),那么選擇同步源是至關重要的;如果選錯了初始化同步方向,就會造成數(shù)據(jù)丟失,因此需要十分小心

8.2、啟動初始化完全同步,這一步只能在初始化資源配置的一個節(jié)點上進行,并作為同步源選擇的節(jié)點上;命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@nod1 ~]# drbdadm -- --overwrite-data-of-peer primary drbd
[root@nod1 ~]# cat /proc/drbd     #查看同步進度
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:1897624 nr:0 dw:0 dr:1901216 al:0 bm:115 lo:0 pe:3 ua:3 ap:0 ep:1 wo:f oos:207988
    [=================>..] sync'ed: 90.3% (207988/2103412)K
    finish: 0:00:07 speed: 26,792 (27,076) K/sec
######當同步完成時如以下狀態(tài)
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:2103412 nr:0 dw:0 dr:2104084 al:0 bm:129 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
注釋: drbd:為資源名稱
######查看同步進度也可使用以下命令
drbd-overview

9、創(chuàng)建文件系統(tǒng)

9.1、文件系統(tǒng)只能掛載在主(Primary)節(jié)點上,因此在設置好主節(jié)點后才可以對DRBD設備進行格式化操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
######格式化文件系統(tǒng)
[root@nod1 ~]# mkfs.ext4 /dev/drbd0
######掛載文件系統(tǒng)
[root@nod1 ~]# mount /dev/drbd0 /mnt/
######查看掛載
[root@nod1 ~]# mount |grep drbd0
/dev/drbd0 on /mnt type ext4 (rw)
注釋:
"/dev/drbd0"為資源中定義已定義的資源名稱
######查看DRBD狀態(tài)
[root@nod1 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----
注釋:
Primary:當前節(jié)點為主;在前面為當前節(jié)點
Secondary:備用節(jié)點為次

9.2、在掛載目錄中創(chuàng)建一個測試文件并卸載;然后

1
2
3
4
5
[root@nod1 ~]# mkdir /mnt/test
[root@nod1 ~]# ls /mnt/
lost+found  test
######在切換主節(jié)點時必須保證資源不在使用
[root@nod1 ~]# umount /mnt/

9.3、切換主備節(jié)點

1
2
3
4
5
6
7
8
9
10
######先把當前主節(jié)點降級為次
[root@nod1 ~]# drbdadm secondary drbd
######查看DRBD狀態(tài)
[root@nod1 ~]# drbd-overview
  0:drbd/0  Connected Secondary/Secondary UpToDate/UpToDate C r-----
######在NOD2節(jié)點升級
[root@nod2 ~]# drbdadm primary drbd
######查看DRBD狀態(tài)
[root@nod2 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----

9.4、掛載設備并驗證文件是否存在

1
2
3
[root@nod2 ~]# mount /dev/drbd0 /mnt/
[root@nod2 ~]# ls /mnt/
lost+found  test


七、DRBD腦裂的模擬及修復

注釋:我們還接著上面的實驗繼續(xù)進行,現(xiàn)在NOD2為主節(jié)點而NOD1為備節(jié)點

1、斷開主(parmary)節(jié)點;關機、斷開網(wǎng)絡或重新配置其他的IP都可以;這里選擇的是斷開網(wǎng)絡

2、查看兩節(jié)點狀態(tài)

1
2
3
4
5
[root@nod2 ~]# drbd-overview
  0:drbd/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@nod1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
######由上可以看到兩個節(jié)點已經(jīng)無法通信;NOD2為主節(jié)點,NOD1為備節(jié)點

3、將NOD1節(jié)點升級為主(primary)節(jié)點并掛載資源

1
2
3
4
5
6
[root@nod1 ~]# drbdadm primary drbd
[root@nod1 ~]# drbd-overview
  0:drbd/0  StandAlone Primary/Unknown UpToDate/DUnknown r-----
[root@nod1 ~]# mount /dev/drbd0 /mnt/
[root@nod1 ~]# mount | grep drbd0
/dev/drbd0 on /mnt type ext4 (rw)

4、假如原來的主(primary)節(jié)點修復好重新上線了,這時出現(xiàn)了腦裂情況

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@nod2 ~]# tail -f /var/log/messages
Sep 19 01:56:06 nod2 kernel: d-con drbd: Terminating drbd_a_drbd
Sep 19 01:56:06 nod2 kernel: block drbd0: helper command: /sbin/drbdadm initial-split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 nod2 kernel: block drbd0: Split-Brain detected but unresolved, dropping connection!
Sep 19 01:56:06 nod2 kernel: block drbd0: helper command: /sbin/drbdadm split-brain minor-0
Sep 19 01:56:06 nod2 kernel: block drbd0: helper command: /sbin/drbdadm split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 nod2 kernel: d-con drbd: conn( NetworkFailure -> Disconnecting )
Sep 19 01:56:06 nod2 kernel: d-con drbd: error receiving ReportState, e: -5 l: 0!
Sep 19 01:56:06 nod2 kernel: d-con drbd: Connection closed
Sep 19 01:56:06 nod2 kernel: d-con drbd: conn( Disconnecting -> StandAlone )
Sep 19 01:56:06 nod2 kernel: d-con drbd: receiver terminated
Sep 19 01:56:06 nod2 kernel: d-con drbd: Terminating drbd_r_drbd
Sep 19 01:56:18 nod2 kernel: block drbd0: role( Primary -> Secondary )

5、再次查看兩節(jié)點的狀態(tài)

1
2
3
4
[root@nod1 ~]# drbdadm role drbd
Primary/Unknown
[root@nod2 ~]# drbdadm role drbd
Primary/Unknown

6、查看NOD1與NOD2連接狀態(tài)

1
2
3
4
5
[root@nod1 ~]# drbd-overview
  0:drbd/0  StandAlone Primary/Unknown UpToDate/DUnknown r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@nod2 ~]# drbd-overview
  0:drbd/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
######由上可見,狀態(tài)為StandAlone時,主備節(jié)點是不會通信的

7、查看DRBD的服務狀態(tài)

1
2
3
4
5
6
7
8
9
10
11
12
[root@nod1 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
m:res   cs          ro               ds                 p       mounted  fstype
0:drbd  StandAlone  Primary/Unknown  UpToDate/DUnknown  r-----  ext4
[root@nod2 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
m:res   cs            ro               ds                 p  mounted  fstype
0:drbd  WFConnection  Primary/Unknown  UpToDate/DUnknown  /mnt     ext4

8、在NOD1備用節(jié)點處理辦法

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@nod1 ~]# umount /mnt/
[root@nod1 ~]# drbdadm disconnect drbd
drbd: Failure: (162) Invalid configuration request
additional info from kernel:
unknown connection
Command 'drbdsetup disconnect ipv4:192.168.137.225:7789 ipv4:192.168.137.222:7789' terminated with exit code 10
[root@nod1 ~]# drbdadm secondary drbd
[root@nod1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
[root@nod1 ~]# drbdadm connect --discard-my-data drbd
######執(zhí)行完以上三步后,你查看會發(fā)現(xiàn)還是不可用
[root@nod1 ~]# drbd-overview
  0:drbd/0  WFConnection Secondary/Unknown UpToDate/DUnknown C r-----

9、需要在NOD2節(jié)點上重新建立連接資源

1
2
3
4
5
6
7
[root@nod2 ~]# drbdadm connect drbd
######查看節(jié)點連接狀態(tài)
[root@nod2 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@nod1 ~]# drbd-overview
  0:drbd/0  Connected Secondary/Primary UpToDate/UpToDate C r-----
######由上可見已經(jīng)恢復到正常運行狀態(tài)

注意:特別提醒,如果是單主模式,資源只能在主(Primary)節(jié)點上掛載使用,而且不建議手動切換主備節(jié)點

到此DRBD的安裝配置及故障修復已結束,DRBD的雙主模式一般情況不會用到,這里也不再介紹雙主模式的配置;這篇博客寫于中秋節(jié)當天,在這里祝大家中秋節(jié)愉快!?。?/span>



本文出自 “ALLEN” 博客,請務必保留此出處http://502245466.blog.51cto.com/7559397/1298945

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DRBD腦裂故障處理
生產(chǎn)環(huán)境下的高可用NFS文件服務器
drbd 配置
CentOS6.5下DRBD+HeartBeat+NFS配置(一)
linux服務之drbd
Heartbeat+DRBD+MySQL高可用方案
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服