困っていたのですが、先ほど紹介した ZFS プールの rewind 機能を試したら無事マウントできるようになりました。
実はディスクを3台収容できるエンクロージャに物理的な障害が発生し 3本中1本のディスクが認識できなくなりました。冗長性を失ったままずっと動いていたのですが、障害原因の切り分けを行うべく OpenSolaris を停止したところ二度と import できなくなり、2ヶ月ほど放置してあったものです。
root@opensolaris:~# zpool import pool: array1 id: 12644204788362156509 state: DEGRADED status: The pool was last accessed by another system. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. see: http://www.sun.com/msg/ZFS-8000-EY config: array1 DEGRADED raidz1 DEGRADED c5t0d0p1 ONLINE c5t1d0p1 FAULTED corrupted data c4t1d0p1 ONLINE
2009/11/6付の ONNV では同じ操作をするとこんな感じ。ステータス表記が DEGRADED から FAULTED に変更されるなど、メッセージにいくらかの変更があります。
root@opensolaris:~# zpool import pool: array1 id: 12644204788362156509 state: FAULTED status: The pool was last accessed by another system. action: The pool cannot be imported due to damaged devices or data. The pool may be active on another system, but can be imported using the '-f' flag. see: http://www.sun.com/msg/ZFS-8000-EY config: array1 FAULTED corrupted data raidz1-0 FAULTED corrupted data c5t0d0p1 ONLINE c5t1d0p1 FAULTED corrupted data c4t1d0p1 ONLINE
これまでインポートできなかった ZFS プール array1 ですが、無事インポートできるようになりました。 cannot share ... のメッセージが表示されていますが、これは iSCSI ターゲットのパッケージが入っておらずサービスが復旧できないために表示されており、 ZFS プールとしてはきちんとオンラインになっています。
root@opensolaris:~# zpool import -Ff array1 cannot share 'array1/timemachine': iscsitgtd failed request to share cannot share 'array1/iscsi/elena4': iscsitgtd failed request to share
ちなみに -F オプションなしだと下記のようにエラーが表示されました。
プールを作り直せとメッセージが表示されるようになったのは最近のことです。
おそらくインポートできなくなったプールに関する問い合わせが相次いでいたのでしょうね。:-)
root@opensolaris:~# zpool import -f array1 cannot import 'array1': one or more devices is currently unavailable Destroy and re-create the pool from a backup source.