web-dev-qa-db-ja.com

Ganetiディスクが劣化したdrbdcs:NetworkFailure

Ganetiにインスタンス(2ディスク)があり、両方のディスクが劣化しています(おそらく接続の問題が原因ですか?)。このインスタンスは、今朝まで何年もの間正しく機能していました。

私の主人に

$ gnt-instance info myinstance
...
   -disk/0
      on primary:   /dev/drbd4 (147:4) in sync, status *DEGRADED*
      on secondary: /dev/drbd4 (147:4) in sync, status *DEGRADED*
      child devices:
        - child 0: lvm, size 20.0G
          logical_id:   kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data
          on primary:   /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data (254:10)
          on secondary: /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data (254:8)
        - child 1: lvm, size 128M
          logical_id:   kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta
          on primary:   /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta (254:11)
          on secondary: /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta (254:9)

...

プライマリノード上

$ cat /proc/drbd
 4: cs:NetworkFailure ro:Primary/Unknown ds:UpToDate/DUnknown C r----
    ns:678399926 nr:0 dw:678315292 dr:25942012 al:22230 bm:16189 lo:0 pe:196 ua:0 ap:195 ep:1 wo:b oos:0

セカンダリノード上

$ cat /proc/drbd
 4: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r----
    ns:0 nr:678340009 dw:678340009 dr:0 al:0 bm:14884 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

インスタンスを再起動またはシャットダウンできません(操作がタイムアウトしました)。

「スタンドアロン」がなく、プライマリノードでは「プライマリ/不明」であり、セカンダリでは「セカンダリ/不明」であるため、ブレインスプリットの問題ではないと思います。

セカンダリノードで「drbdadmconnectall」を実行しようとしましたが、何も実行されませんでした。

ディスクを交換しようとしましたが失敗しました:

gnt-instance replace-disks -s myinstance
Thu Jun  2 11:32:00 2016 Replacing disk(s) 0, 1 for myinstancel
Thu Jun  2 11:36:00 2016  - WARNING: Could not prepare block device disk/1 on node primaryNode (is_primary=False, pass=1): Error while assembling disk: drbd5: cannot activate, unknown or unhandled reason
Thu Jun  2 11:38:01 2016  - WARNING: Could not prepare block device disk/0 on node primaryNode (is_primary=True, pass=2): Error while assembling disk: drbd4: cannot activate, unknown or unhandled reason
Thu Jun  2 11:40:02 2016  - WARNING: Could not prepare block device disk/1 on node primaryNode (is_primary=True, pass=2): Error while assembling disk: drbd5: cannot activate, unknown or unhandled reason
Failure: command execution error:
Disk consistency error

そして今、それはこのように見えます:

$ gnt-instance info myinstance
...
    -disk/0 
      on primary:   /dev/drbd4 (147:4) in sync, status *DEGRADED*
      (no more secondary)
      child devices:
        - child 0: lvm, size 20.0G
          logical_id:   kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data
          on primary:   /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data (254:10)
          on secondary: /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_data (254:8)
        - child 1: lvm, size 128M
          logical_id:   kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta
          on primary:   /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta (254:11)
          on secondary: /dev/kvmvg/299a0bdf-1acb-4bcd-ac43-eb02b0928757.disk0_meta (254:9)

プライマリノード上

$ cat /proc/drbd
 4: cs:NetworkFailure ro:Primary/Unknown ds:UpToDate/DUnknown C r----
    ns:678399926 nr:0 dw:678315292 dr:25942012 al:22230 bm:16189 lo:0 pe:196 ua:0 ap:195 ep:1 wo:b oos:0

そしてセカンダリノードで:

$ cat /proc/drbd
...
4: cs:Unconfigured
5: cs:Unconfigured

これを解決する方法はありますか?

DRBDバージョン:8.3.7

Ganetiバージョン:2.4.5

OS:Debian 6.0

2
dalf

もう少し調べてみると、プライマリノードにkvmゾンビプロセスがあることがわかりました。

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                      
17520 root    20   0     0    0    0 Z  613  0.0  13922:24 kvm <defunct> 

私はそれを適切に取り除く方法がわかりませんでした。

このノードからすべてのプライマリインスタンス(2つしかありません)を移行しようとしましたが、失敗しました(bdrmに関連するエラー)。ノードを再起動しました。マシンをシャットダウンすると、drbdが原因でスタックしました。メッセージは次のようなものでした:

No response from the DRBD driver! Is the module loaded?

そこで、ボタンを押してマシンをシャットダウンしました。マシンが(エラーなしで)再起動し、数分後にGanetiインスタンスが自動的に起動しました。

私が実行したマスターノードで:

$ gnt-instance info myinstance
...
     on primary:   /dev/drbd4 (147:4) *RECOVERING* 12.80%, ETA 288s, status *DEGRADED*
     on secondary: /dev/drbd4 (147:4) *RECOVERING* 12.80%, ETA 275s, status *DEGRADED* *UNCERTAIN STATE*
....

数分待った後、リカバリが実行され、同期されました。

結論:今はすべて問題ありませんが、ノードを再起動する必要がなかったらいいのにと思います。

Gf_にご協力いただきありがとうございます。

2
dalf