DRBD故障處理

2022-09-23 13:00:13 字數 3771 閱讀 6890

drbd故障處理

drbd1主,drbd2輔

1,正常情況下狀態:

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:connected ro:primary/secondary ds:uptodate/uptodate c r----

ns:2144476 nr:0 dw:36468 dr:2115769 al:14 bm:129 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:connected ro:secondary/primary ds:uptodate/uptodate c r----

ns:0 nr:2141684 dw:2141684 dr:0 al:0 bm:130 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

2,drbd1故障後

drbd1狀態:

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:standalone ro:primary/unknown ds:uptodate/dunknown   r----

ns:4 nr:102664 dw:102668 dr:157 al:1 bm:8 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

drbd2的狀態:

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:wfconnection ro:secondary/unknown ds:uptodate/dunknown c r----

ns:0 nr:2141684 dw:2141684 dr:0 al:0 bm:130 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

3,處理方法:

a,將secondary配置成primary角色

[root@drbd2 ~]# drbdsetup /dev/drbd0 primary -o

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:wfconnection ro:primary/unknown ds:uptodate/outdated c r----

ns:0 nr:2141684 dw:2141684 dr:0 al:0 bm:130 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

掛載:[root@drbd2 /]# mount /dev/drbd0 /data1

[root@drbd2 data1]# ll

total 10272

-rw-r--r-- 1 root root 10485760 feb 13 11:26 aa.img

drwx------ 2 root root    16384 feb 13 11:25 lost+found

這個時候drbd2開始提供服務,開始寫資料

drbd1主恢復正常後:

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:standalone ro:primary/unknown ds:uptodate/dunknown   r----

ns:2144476 nr:0 dw:36484 dr:2115769 al:14 bm:129 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:8

drbd1狀態是:standalone,此時,drbd1是不會和drbd2互相聯絡的

我們來檢視下日誌:

[root@drbd1 ~]# tailf /var/log/messages

feb 13 16:14:27 drbd1 kernel: block drbd0: helper command: /sbin/drbdadm split-brain minor-0

feb 13 16:14:27 drbd1 kernel: block drbd0: helper command: /sbin/drbdadm split-brain minor-0 exit code 0 (0x0)

feb 13 16:14:27 drbd1 kernel: block drbd0: conn( wfreportparams -> disconnecting ) 

feb 13 16:14:27 drbd1 kernel: block drbd0: error receiving reportstate, l: 4!

feb 13 16:14:27 drbd1 kernel: block drbd0: asender terminated

feb 13 16:14:27 drbd1 kernel: block drbd0: terminating drbd0_asender

feb 13 16:14:27 drbd1 kernel: block drbd0: connection closed

feb 13 16:14:27 drbd1 kernel: block drbd0: conn( disconnecting -> standalone ) 

feb 13 16:14:27 drbd1 kernel: block drbd0: receiver terminated

feb 13 16:14:27 drbd1 kernel: block drbd0: terminating drbd0_receiver

腦裂出現!

解決方法:

1>,我們需要將現在的drbd1角色修改為secondary

[root@drbd1 ~]# drbdadm secondary r0

[root@drbd1 ~]# drbdadm -- --discard-my-data connect r0  ##該命令告訴drbd,secondary上的資料不正確,以primary上的資料為準。

2>,我們還需要在drbd2上執行下面操作

[root@drbd2 /]# drbdadm connect r0

這樣drbd1就能和drbd2開始連線上了,並且保證資料不會丟失:

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

version: 8.3.8 (api:88/proto:86-94)

srcversion: 299afe04d7afd98b3ca0af9 

0: cs:connected ro:secondary/primary ds:uptodate/uptodate c r----

ns:0 nr:20592 dw:20592 dr:0 al:0 bm:4 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

drbd腦裂處理

自動處理 通過 etc drbd.conf配置中設定自動處理策略,在發生資料不一致時自動處理。自動處理策略定義如下 1 after sb 0pri.當兩個節點的狀態都是secondary時,可以通過after sb 0pri策略自動恢復。1 disconnect 預設策略,沒有自動恢復,簡單的斷開連...

線上故障處理

於 2016 年 12 月 09 日 處理流程 故障後處理 前段時間在團隊內整理了乙份線上事故處理的流程,修改後在這裡分享。1.1 系統 業務報警 這個是獲取故障最常用的手段。一般的系統正常運營過程中都會有一定的指標監控。如 在系統層面某種報錯出現的次數,系統常規指標,如可用記憶體,jvm gc,連...

RAC 故障處理

rac的故障定位 比單節點資料庫更複雜 日誌的儲存位置更多 日誌的資訊量更大 故障更複雜 rac的核心程序,cssd,crsd 這兩個程序出現問題,那麼 rac就宕了。rac比單例項資料庫程序要複雜的多。rac日誌存放的位置也多,種類也多,相對於單例項。對於單例項資料庫,所有的關於資料庫的資訊幾乎都...