プールのメタデータが損傷していて、その損傷によりプールを開けないかインポートできない場合の選択肢には、次のものがあります。
zpool clear –F コマンドまたは zpool import – F コマンドを使用して、プールの回復を試みることができます。これらのコマンドは、プールに対する直近数回のトランザクションをロールバックして、プールを正常な状態に戻すことを試みます。zpool status コマンドを使用すると、損傷したプールと推奨される回復手順を確認できます。例:
# zpool status pool: tpool state: UNAVAIL status: The pool metadata is corrupted and the pool cannot be opened. action: Recovery is possible, but will result in some data loss. Returning the pool to its state as of Fri Jun 29 17:22:49 2012 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing 'zpool clear -F tpool'. A scrub of the pool is strongly recommended after recovery. see: http://support.oracle.com/msg/ZFS-8000-72 scrub: none requested config: NAME STATE READ WRITE CKSUM tpool UNAVAIL 0 0 1 corrupted data c1t1d0 ONLINE 0 0 2 c1t3d0 ONLINE 0 0 4
前の出力で説明した回復プロセスでは次のコマンドを使用します。
# zpool clear -F tpool
損傷したストレージプールをインポートしようとすると、次のようなメッセージが表示されます。
# zpool import tpool cannot import 'tpool': I/O error Recovery is possible, but will result in some data loss. Returning the pool to its state as of Fri Jun 29 17:22:49 2012 should correct the problem. Approximately 5 seconds of data must be discarded, irreversibly. Recovery can be attempted by executing 'zpool import -F tpool'. A scrub of the pool is strongly recommended after recovery.
前の出力で説明した回復プロセスでは次のコマンドを使用します。
# zpool import -F tpool Pool tpool returned to its state as of Fri Jun 29 17:22:49 2012. Discarded approximately 5 seconds of transactions
損傷したプールが zpool.cache ファイルに存在する場合、システムのブート時に問題が検出され、損傷したプールが zpool status コマンドで報告されます。プールが zpool.cache ファイルに存在しない場合、プールをインポートすることも開くこともできず、プールをインポートしようとするとプールの損傷を知らせるメッセージが表示されます。
損傷したプールを読み取り専用モードでインポートできます。この方法によってプールをインポートでき、データにアクセスできます。例:
# zpool import -o readonly=on tpool
プールを読み取り専用でインポートすることの詳細については、読み取り専用モードでプールをインポートするを参照してください。
zpool import –m コマンドを使用して、ログデバイスのないプールをインポートできます。詳細は、ログデバイスがないプールをインポートするを参照してください。
いずれのプール回復方法によってもプールを回復できない場合は、プールとそのすべてのデータをバックアップコピーから復元する必要があります。そのために使用する方法は、プールの構成とバックアップ方法によって大きく異なります。最初に、zpool status コマンドによって表示された構成を保存しておき、プールを破棄したあとで構成を再作成できるようにします。次に、zpool destroy –f コマンドを使用してプールを破棄します。
また、データベースのレイアウトを記述するファイルおよびローカルで設定されたさまざまなプロパティーを安全な場所に保管します。プールがアクセス不能になると、この情報がアクセス不能になるからです。プールを破棄したあとに、プールの構成とデータセットのレイアウトを使用して、完全な構成を再構築できます。その後、好きなバックアップまたは復元方法を使用してデータを投入できます。