2012年8月12日日曜日

FreeBSD で Windows 用の NAS をマウントする (3)

[シリーズの先頭から読む]
(このシリーズはこれが最終です)


ネットワークが切れたらどうなる?


ネットワークのトラブルで 、急に FreeBSD から仮想 HDD への LAN 接続が切れたらどうなるのか。LAN が切れただけでファイルシステムが壊れて 1.4TBの HDD が簡単に全滅してしまったのでは困る。そこで、アクセス中(仮想 HDD 内で大きなファイルのコピー中)にLAN ケーブルを引っこ抜くという強引な方法で試してみた。すると

  • LAN が短時間(15~120秒?)のうちに回復すれば何事もなく復旧する
  • ある程度切れっぱなしだと Kernel panic で OS が落ちる

という結果になった。少なくともファイルシステムが壊れて再起不能になるようなことはないようだ。Kernel panic に陥るまでの時間が一定しないのが困ったものだが。

LAN が切断してしばらく回復しないと、コンソールに次のようなエラーが表示される。(仮想ファイルシステムを暗号化しているため?)

messages:Aug 12 15:18:31 lait kernel: GEOM_ELI: g_eli_read_done() failed md1a.eli[READ(offset=1252104634368, length=131072)]
messages:Aug 12 15:18:31 lait kernel: GEOM_ELI: Crypto WRITE request failed (error=9). md1a.eli[WRITE(offset=1107275448320, length=32768)]

実行中のコマンドが
Bad file descriptor

というエラーで終了する場合もある。その後しばらくリトライしているようだが、いつまでも LAN が回復しないと、なんとKernel panic で OS が落ちる。まあ突然 HDD が消滅したようなものなのでしょうがないのか。

再起動後は、仮想 HDD をマウントしなおして復旧できる。ただし記事の [その1] の「マウントできなくなった場合の対応」に書いたように、手動で fsck を実行する必要がある。

Kernel Panic 時に再起動したい


困ったのは、FreeBSD9 が Kernel Panic した後に
Automatic reboot in 15 seconds - press a key on the console to abort
という表示を出すにもかかわらず、そのまま15秒待っていても自動で再起動しない点。サーバが遠隔地に置いてあると、電源を入れなおしに行かなくてはいけない。

一応なんとか解決できたが、カーネルの再構築が必要で結構おおごとだった。詳しくは別稿で。

まだ試していないこと


  • 今回は UFS2 で仮想 HDD をフォーマットしたが、ZFSの方が良いかもしれない
  • 万一暗号化ファイルシステムが破損したらどうするのか。仮想ファイルシステムなら気軽に実験できそうなので、いずれ試してみたい


0 件のコメント:

コメントを投稿