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
もう少し調べてみると、プライマリノードに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_にご協力いただきありがとうございます。