ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: ZFS ファイルシステム Oracle Solaris 11.1 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
3. Oracle Solaris ZFS ストレージプールの管理
キャッシュデバイスを使用して ZFS ストレージプールを作成する
ミラー化 ZFS ストレージプールを分割して新しいプールを作成する
ストレージプール内のデバイスをオンラインまたはオフラインにする
ストレージプール内のホットスペアをアクティブにする/非アクティブにする
すべてのストレージプールまたは特定のプールについての情報を表示する
ZFS ストレージプールの出力をスクリプトで使えるようにする
5. Oracle Solaris ZFS ファイルシステムの管理
6. Oracle Solaris ZFS のスナップショットとクローンの操作
7. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
9. Oracle Solaris ZFS の高度なトピック
10. Oracle Solaris ZFS のトラブルシューティングとプールの回復
12. 推奨の Oracle Solaris ZFS プラクティス
ストレージプールをシステム間で移動しなければならないことがあります。この作業を行うには、ストレージデバイスを元のシステムから切断して、移動先のシステムに再接続する必要があります。このタスクは、ケーブルをデバイスに物理的に接続し直すか、または複数のポートを持つデバイス (SAN 上のデバイスなど) を使用する方法で、行うことができます。ZFS では、アーキテクチャーエンディアンの異なるシステム間でも、一方のシステムのプールをエクスポートして移行先のシステムにインポートできます。異なるストレージプール間 (異なるシステム上にある場合を含む) でファイルシステムを複製または移行する方法については、「ZFS データを送信および受信する」を参照してください。
ストレージプールは、移行する準備ができていることを示すために、明示的にエクスポートすることをお勧めします。この操作を行うことで、書き込まれていないデータがすべてディスクにフラッシュされ、データがディスクに書き込まれてエクスポート済みであることが示され、プールに関するすべての情報がシステムから削除されます。
プールを明示的にエクスポートする代わりに、ディスクを手動で取り外した場合でも、そのプールを別のシステムにインポートすることはできます。ただし、最後の数秒間のデータトランザクションが失われる可能性があります。この場合、デバイスが存在しないために、プールが元のシステム上で UNAVAIL として表示されます。デフォルトでは、明示的にエクスポートしていないプールはインポート先のシステムでインポートできません。アクティブなプールを誤ってインポートしてしまうことを防ぐ (プールを構成するネットワークに接続されたストレージが別のシステムでまだ使用されていることがないようにする) には、この状態が必要になります。
プールをエクスポートするには、zpool export コマンドを使用します。例:
# zpool export tank
このコマンドは、プールの中にマウントされたファイルシステムがある場合は、すべてをアンマウントしてから、次の処理を実行しようとします。いずれかのファイルシステムのアンマウントに失敗した場合は、-f オプションを使用して強制的にマウントを解除できます。例:
# zpool export tank cannot unmount '/export/home/eric': Device busy # zpool export -f tank
このコマンドを実行したあとは、プール tank はシステムから認識されなくなります。
エクスポート時にデバイスが使用できない場合、それらのデバイスは明示的にエクスポートされたものとして識別できません。これらのデバイスのいずれかをあとでシステムに接続した場合には、動作中のデバイスがなくても「潜在的にアクティブ」として表示されます。
ZFS ボリュームがプール内で使用中である場合は、-f オプションを使用してもそのプールをエクスポートすることはできません。ZFS ボリュームが含まれているプールをエクスポートするには、最初にそのボリュームのコンシューマがすべてアクティブでなくなっていることを確認してください。
ZFS ボリュームの詳細については、「ZFS ボリューム」を参照してください。
プールをシステムから削除 (明示的にエクスポートするか、デバイスを強制的に取り外す) したあとで、それらのデバイスをインポート先のシステムに接続できます。ZFS では、一部のデバイスだけが利用可能である特定の状況を処理できますが、プールの移行が成功するかどうかはデバイスの全体的な健全性に依存します。また、デバイスは同じデバイス名で接続されている必要はありません。デバイスを移動した場合またはデバイスの名前を変更した場合には、それらが自動的に検出され、構成がそれに合わせて調整されます。インポートできるプールを確認するには、zpool import コマンドをオプションを指定しないで実行します。例:
# zpool import pool: tank id: 11809215114195894163 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE
この例では、プール tank をターゲットシステムにインポートできます。各プールは、名前および一意の数値識別子を使って識別されます。同じ名前の複数のプールがインポート可能な場合、数値識別子を使ってプールを区別することができます。
zpool status コマンドの出力と同様に、zpool import の出力にはナレッジ記事へのリンクが含まれています。この記事を参照して、プールのインポートを妨げている問題の修復手順に関する最新情報を入手します。この場合、ユーザーはプールを強制的にインポートできます。ただし、別のシステムがストレージネットワーク経由で使用しているプールをインポートすると、両方のシステムが同じストレージに書き込もうとするため、データの破壊とパニックが発生する可能性があります。プール内の一部のデバイスが使用できないが、使用可能なプールを提供するために十分な冗長データが存在する場合、そのプールは DEGRADED 状態であると表示されます。例:
# zpool import pool: tank id: 4715259469716913940 state: DEGRADED status: One or more devices are unavailable. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. config: tank DEGRADED mirror-0 DEGRADED c0t5000C500335E106Bd0 ONLINE c0t5000C500335FC3E7d0 UNAVAIL cannot open device details: c0t5000C500335FC3E7d0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing.
この例では、最初のディスクが損傷しているか見つかりません。ただし、ミラー化されたデータにまだアクセスできるため、このプールをインポートすることはできます。使用できないデバイスの数が多すぎる場合、そのプールはインポートできません。
この例では、RAID-Z 仮想デバイスのうち、2 つのディスクが見つかりません。つまり、プールの再構築に必要な冗長データを利用できません。場合によっては、完全な構成を判断するために必要なデバイスが存在しないことがあります。この場合、ZFS ではほかにどのようなデバイスがプールを構成していたかを特定できませんが、その状況についてできるだけ多くの情報を報告しようとします。例:
# zpool import pool: mothership id: 3702878663042245922 state: UNAVAIL status: One or more devices are unavailable. action: The pool cannot be imported due to unavailable devices or data. config: mothership UNAVAIL insufficient replicas raidz1-0 UNAVAIL insufficient replicas c8t0d0 UNAVAIL cannot open c8t1d0 UNAVAIL cannot open c8t2d0 ONLINE c8t3d0 ONLINE device details: c8t0d0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. c8t1d0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing.
デフォルトでは、zpool import コマンドは、/dev/dsk ディレクトリに含まれるデバイスだけを検索します。デバイスが別のディレクトリに存在するか、またはファイルに基づくプールを使用している場合は、-d オプションを使用して、代替ディレクトリを検索する必要があります。例:
# zpool create dozer mirror /file/a /file/b # zpool export dozer # zpool import -d /file pool: dozer id: 7318163511366751416 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE mirror-0 ONLINE /file/a ONLINE /file/b ONLINE # zpool import -d /file dozer
デバイスが複数のディレクトリに存在する場合には、複数の -d オプションを指定できます。
インポートできるプールを確認したあとで、zpool import コマンドの引数にプールの名前または数値識別子を指定してインポートできます。例:
# zpool import tank
インポートできるプールが複数存在し、それらが同じ名前を持っている場合でも、数値識別子を使ってインポートするプールを指定する必要があります。例:
# zpool import pool: dozer id: 2704475622193776801 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE c1t9d0 ONLINE pool: dozer id: 6223921996155991199 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE c1t8d0 ONLINE # zpool import dozer cannot import 'dozer': more than one matching pool import by numeric ID instead # zpool import 6223921996155991199
プール名が既存のプール名と重複する場合は、別の名前でインポートできます。例:
# zpool import dozer zeepool
このコマンドは、エクスポート済みのプール dozer を新しい名前 zeepool を使ってインポートします。新しいプール名は永続的な名前です。
プールを明示的にエクスポートしていない場合は、別のシステムでまだ使用されているプールを誤ってインポートすることを防ぐためにインポートできません。-f フラグを使用する必要があります。例:
# zpool import dozer cannot import 'dozer': pool may be in use on another system use '-f' to import anyway # zpool import -f dozer
注 - あるシステムでアクティブになっているプールを別のシステムにインポートしようとしないでください。ZFS はネイティブのクラスタファイルシステム、分散ファイルシステム、または並列ファイルシステムではないため、異なる複数のホストからの同時アクセスには対応できません。
-R オプションを使用して、プールを代替ルートでインポートすることもできます。代替ルートプールの詳細については、「ZFS 代替ルートプールを使用する」を参照してください。
デフォルトでは、ログデバイスがないプールはインポートできません。zpool import -m コマンドを使用して、ログデバイスがないプールを強制的にインポートすることができます。例:
# zpool import dozer pool: dozer id: 16216589278751424645 state: UNAVAIL status: One or more devices are missing from the system. action: The pool cannot be imported. Attach the missing devices and try again. see: http://support.oracle.com/msg/ZFS-8000-6X config: dozer UNAVAIL missing device mirror-0 ONLINE c8t0d0 ONLINE c8t1d0 ONLINE device details: missing-1 UNAVAIL corrupted data status: ZFS detected errors on this device. The device has bad label or disk contents. Additional devices are known to be part of this pool, though their exact configuration cannot be determined.
ログデバイスがないプールをインポートします。例:
# zpool import -m dozer # zpool status dozer pool: dozer state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: none requested config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 logs 2189413556875979854 UNAVAIL 0 0 0 errors: No known data errors
欠落したログデバイスを接続した後、zpool clear コマンドを実行してプールエラーをクリアーします。
ミラー化されたログデバイスがない場合も類似の回復を試行することができます。例:
欠落したログデバイスを接続した後、zpool clear コマンドを実行してプールエラーをクリアーします。
読み取り専用モードでプールをインポートできます。プールが破損してプールにアクセスできない場合、この機能によってプールのデータを回復できることがあります。例:
# zpool import -o readonly=on tank # zpool scrub tank cannot scrub tank: pool is read-only
プールが読み取り専用モードでインポートされるとき、次の条件が適用されます。
すべてのファイルシステムおよびボリュームが読み取り専用モードでマウントされます。
プールトランザクション処理が無効になります。このことは、インテントログの保留中の同期書き込みも、プールが読み書きモードでインポートされるまで再生されないことを意味します。
読み取り専用のインポート中におけるプールプロパティーの設定の試行は無視されます。
読み取り専用プールは、プールをエクスポートおよびインポートすることによって読み書きモードの設定に戻されることがあります。例:
# zpool export tank # zpool import tank # zpool scrub tank
次のコマンドでは、プールの特定のデバイスの 1 つ (この例では /dev/dsk/c2t3d0) を識別することによって、プール dpool をインポートします。
# zpool import -d /dev/dsk/c2t3d0s0 dpool # zpool status dpool pool: dpool state: ONLINE scan: resilvered 952K in 0h0m with 0 errors on Fri Jun 29 16:22:06 2012 config: NAME STATE READ WRITE CKSUM dpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0
このプールがディスク全体から構成されている場合でも、特定のデバイスのスライス識別子をコマンドに含める必要があります。
zpool import -D コマンドを使用して、破棄されたストレージプールを回復できます。例:
# zpool destroy tank # zpool import -D pool: tank id: 5154272182900538157 state: ONLINE (DESTROYED) action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE
この zpool import の出力では、次の状態情報により、tank プールが破棄されたプールであることがわかります。
state: ONLINE (DESTROYED)
破棄されたプールを回復するには、回復するプールに対して zpool import -D コマンドを再度実行します。例:
# zpool import -D tank # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE errors: No known data errors
破棄されたプール内のいずれかのデバイスが使用できない場合でも、-f オプションを含めることによって、破棄されたプールを回復できることがあります。このような場合には、機能が低下したプールをインポートしてから、デバイスの障害の修正を試みます。例:
# zpool destroy dozer # zpool import -D pool: dozer id: 4107023015970708695 state: DEGRADED (DESTROYED) status: One or more devices are unavailable. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. config: dozer DEGRADED raidz2-0 DEGRADED c8t0d0 ONLINE c8t1d0 ONLINE c8t2d0 ONLINE c8t3d0 UNAVAIL cannot open c8t4d0 ONLINE device details: c8t3d0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. # zpool import -Df dozer # zpool status -x pool: dozer state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: none requested config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 c8t2d0 ONLINE 0 0 0 4881130428504041127 UNAVAIL 0 0 0 c8t4d0 ONLINE 0 0 0 errors: No known data errors # zpool online dozer c8t4d0 # zpool status -x all pools are healthy