web-dev-qa-db-ja.com

zpool:プールI / Oは現在中断されています

OSXのZFS を使用していて、アクティブでオンラインのzpoolを使用しています。

NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
WD_1TB    931G   280G   651G    30%  1.00x  ONLINE  -

実際にマウントすることはできません。

$ Sudo zfs mount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended

またはそれをアンマウントします:

$ Sudo zfs unmount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended

またはそれを破壊する:

$ Sudo zpool destroy -f WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended

zpool export WD_1TBを実行すると、フリーズするだけです。

プール内のデバイスエラーをクリアすると、次のエラーも発生します。

$ Sudo zpool clear WD_1TB
cannot clear errors for WD_1TB: I/O error

上記は、ディスクがUSB経由で接続されているかどうかに関係なく発生します。

zpool statusがzpoolを/ dev/disk1を指しているのに、diskutil listが/ dev/disk3を指しているのは興味深いことです。

デバッグメッセージを有効にして:sysctl -w zfs.vnops_osx_debug=1を実行し、Sudo dmesg | tailを実行します。

0 [Level 3] [Facility com.Apple.system.fs] [ErrType IO] [ErrNo 6] [IOType Read] [PBlkNum 0] [LBlkNum 0] 
0 [Level 3] [Facility com.Apple.system.fs] [DevNode devfs] [MountPt /dev] [Path /dev/disk1s2] 
disk1s2: media is not present.
0 [Level 3] [Facility com.Apple.system.fs] [ErrType IO] [ErrNo 6] [IOType Read] [PBlkNum 512] [LBlkNum 512] 
0 [Level 3] [Facility com.Apple.system.fs] [DevNode devfs] [MountPt /dev] [Path /dev/disk1s2] 

zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b00000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b10000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b20000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b30000 size 0x10000
zfs_vnop_write(vp 0xffffff8051b031e0, offset 0x1f0000 size 0x10000

HDDの接続または切断は役に立ちません。

上記の状況で単にHDDをOSXにマウントする方法はありますか?

関連:

8
kenorb

Sudo zpool clear WD_1TBを実行しても機能しない場合は、以下を試してください。

$ Sudo zpool clear -nFX WD_1TB

文書化されていないこれらのパラメータの意味は次のとおりです。

  • -F:(clearについては文書化されていません。importと同じ)巻き戻します。インポートできないプールのリカバリモード。最後のいくつかのトランザクションを破棄して、プールをインポート可能な状態に戻そうとします。このオプションを使用して、損傷したすべてのプールを回復できるわけではありません。成功した場合、破棄されたトランザクションからのデータは取り返しのつかないほど失われます。プールがインポート可能であるか、すでにインポートされている場合、このオプションは無視されます。
  • -n :( clearについては文書化されておらず、importと同じ)-Fリカバリオプションとともに使用されます。インポート不可能なプールを再びインポート可能にできるかどうかを決定しますが、実際にはプールの回復は実行しません。プール回復モードの詳細については、上記の-Fオプションを参照してください。その後、再度インポートを試みます。
  • -X(ドキュメントなし):極端に巻き戻します。 -Xの効果は、非常に長い操作が試行され、終了しないことです。場合によっては、プロセスを終了するために再起動が必要でした。
  • -V(文書化されていません):UTSLingによるオプション。importに使用すると、プールが再度インポートされますが、再同期化は試行されません。

出典: ZFS障害のあるプールの問題 およびman zpool

$ zpool import WD_1TB

それでも問題が解決しない場合は、次のコマンドを試して、無効なzpoolを削除してください。

$ zpool list -v
$ Sudo zfs unmount WD_1TB
$ Sudo zpool destroy -f WD_1TB
$ zpool detach WD_1TB disk1s2
$ zpool remove WD_1TB disk1s2
$ zpool remove WD_1TB /dev/disk1s2
$ zpool set cachefile=/etc/zfs/zpool.cache WD_1TB

最後に何も役に立たない場合は、/etc/zfs/zpool.cacheファイルを削除し(オプション)、コンピュータを再起動します。


関連:

8
kenorb