JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris の管理: ZFS ファイルシステム     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris ZFS ファイルシステム (概要)

2.  Oracle Solaris ZFS 入門

3.  Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点

4.  Oracle Solaris ZFS ストレージプールの管理

ZFS ストレージプールのコンポーネント

ZFS ストレージプール内でディスクを使用する

ZFS ストレージプール内でスライスを使用する

ZFS ストレージプール内のファイルを使用する

ZFS ストレージプールに関する考慮事項

ZFS ストレージプールの複製機能

ミラー化されたストレージプール構成

RAID-Z ストレージプール構成

ZFS ハイブリッドストレージプール

冗長構成の自己修復データ

ストレージプール内の動的なストライプ

ZFS ストレージプールを作成および破棄する

ZFS ストレージプールを作成する

基本的なストレージプールを作成する

ミラー化されたストレージプールを作成する

ZFS ルートプールを作成する

RAID-Z ストレージプールを作成する

ログデバイスを持つ ZFS ストレージプールを作成する

キャッシュデバイスを使用して ZFS ストレージプールを作成する

ストレージプールを作成する場合の注意事項

ストレージプールの仮想デバイスの情報を表示する

ZFS ストレージプールの作成エラーに対応する

使用中のデバイスを検出する

複製レベルが一致しない

ストレージプール作成のドライランを行う

ストレージプールのデフォルトマウントポイント

ZFS ストレージプールを破棄する

エラー状態のデバイスが含まれるプールを破棄する

ZFS ストレージプール内のデバイスを管理する

ストレージプールにデバイスを追加する

ストレージプール内でデバイスを接続する/切り離す

ミラー化 ZFS ストレージプールを分割して新しいプールを作成する

ストレージプール内のデバイスをオンラインまたはオフラインにする

デバイスをオフラインにする

デバイスをオンラインにする

ストレージプールデバイスのエラーをクリアーする

ストレージプール内のデバイスを置き換える

ストレージプールにホットスペアを指定する

ストレージプール内のホットスペアをアクティブにする/非アクティブにする

ZFS ストレージプールのプロパティーの管理

ZFS ストレージプールのステータスのクエリー検索を行う

ZFS ストレージプールについての情報を表示する

すべてのストレージプールまたは特定のプールについての情報を表示する

物理的な場所によりプールデバイスを表示する

特定のストレージプールの統計を表示する

ZFS ストレージプールの出力をスクリプトで使えるようにする

ZFS ストレージプールのコマンド履歴を表示する

ZFS ストレージプールの入出力統計を表示する

プール全体の入出力統計を一覧表示する

仮想デバイスの入出力統計を一覧表示する

ZFS ストレージプールの健全性ステータスを調べる

ストレージプールの基本的な健全性ステータス

詳細な健全性ステータス

ZFS ストレージプールのステータス情報を収集する

ZFS ストレージプールを移行する

ZFS ストレージプールの移行を準備する

ZFS ストレージプールをエクスポートする

インポートできるストレージプールを判断する

ZFS ストレージプールを別のディレクトリからインポートする

ZFS ストレージプールをインポートする

ログデバイスがないプールをインポートする

読み取り専用モードでプールをインポートする

特定のデバイスパスを使用してプールをインポートする

破棄された ZFS ストレージプールを回復する

ZFS ストレージプールをアップグレードする

5.  ZFS ルートプールのコンポーネントの管理

6.  Oracle Solaris ZFS ファイルシステムの管理

7.  Oracle Solaris ZFS のスナップショットとクローンの操作

8.  ACL および属性を使用した Oracle Solaris ZFS ファイルの保護

9.  Oracle Solaris ZFS 委任管理

10.  Oracle Solaris ZFS の高度なトピック

11.  Oracle Solaris ZFS のトラブルシューティングとプールの回復

12.  スナップショットのアーカイブとルートプールの回復

13.  推奨の Oracle Solaris ZFS プラクティス

A.  Oracle Solaris ZFS バージョンの説明

索引

ZFS ストレージプールを移行する

ストレージプールをシステム間で移動しなければならないことがあります。この作業を行うには、ストレージデバイスを元のシステムから切断して、移動先のシステムに再接続する必要があります。このタスクは、ケーブルをデバイスに物理的に接続し直すか、または複数のポートを持つデバイス (SAN 上のデバイスなど) を使用する方法で、行うことができます。ZFS では、アーキテクチャーエンディアンの異なるシステム間でも、一方のシステムのプールをエクスポートして移行先のシステムにインポートできます。異なるストレージプール間 (異なるシステム上にある場合を含む) でファイルシステムを複製または移行する方法については、「ZFS データを送信および受信する」を参照してください。

ZFS ストレージプールの移行を準備する

ストレージプールは、移行する準備ができていることを示すために、明示的にエクスポートすることをお勧めします。この操作を行うことで、書き込まれていないデータがすべてディスクにフラッシュされ、データがディスクに書き込まれてエクスポート済みであることが示され、プールに関するすべての情報がシステムから削除されます。

プールを明示的にエクスポートする代わりに、ディスクを手動で取り外した場合でも、そのプールを別のシステムにインポートすることはできます。ただし、最後の数秒間のデータトランザクションが失われる可能性があります。この場合、デバイスが存在しないために、プールが元のシステム上でエラー状態として表示されます。デフォルトでは、明示的にエクスポートしていないプールはインポート先のシステムでインポートできません。アクティブなプールを誤ってインポートしてしまうことを防ぐ (プールを構成するネットワークに接続されたストレージが別のシステムでまだ使用されていることがないようにする) には、この状態が必要になります。

ZFS ストレージプールをエクスポートする

プールをエクスポートするには、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: 11809215114195894163
 state: DEGRADED
status: One or more devices are missing from the 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-2Q
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  UNAVAIL      0     0     0  cannot open
            c1t3d0  ONLINE       0     0     0

この例では、最初のディスクが損傷しているか見つかりません。ただし、ミラー化されたデータにまだアクセスできるため、このプールをインポートすることはできます。エラー状態または見つからないデバイスの数が多すぎる場合、そのプールはインポートできません。例:

# zpool import
  pool: dozer
    id: 9784486589352144634
 state: FAULTED
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        raidz1-0       FAULTED
          c1t0d0       ONLINE
          c1t1d0       FAULTED
          c1t2d0       ONLINE
          c1t3d0       FAULTED

この例では、RAID-Z 仮想デバイスのうち、2 つのディスクが見つかりません。つまり、プールの再構築に必要な冗長データを利用できません。場合によっては、完全な構成を判断するために必要なデバイスが存在しないことがあります。この場合、ZFS ではほかにどのようなデバイスがプールを構成していたかを特定できませんが、その状況についてできるだけ多くの情報を報告しようとします。例:

# zpool import
pool: dozer
    id: 9784486589352144634
 state: FAULTED
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://www.sun.com/msg/ZFS-8000-6X
config:
        dozer          FAULTED   missing device
          raidz1-0     ONLINE
            c1t0d0     ONLINE
            c1t1d0     ONLINE
            c1t2d0     ONLINE
            c1t3d0     ONLINE
Additional devices are known to be part of this pool, though their
exact configuration cannot be determined.

ZFS ストレージプールを別のディレクトリからインポートする

デフォルトでは、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 オプションを指定できます。

ZFS ストレージプールをインポートする

インポートできるプールを確認したあとで、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
The devices below are missing, use '-m' to import the pool anyway:
            c3t3d0 [log]

cannot import 'dozer': one or more devices is currently unavailable

ログデバイスがないプールをインポートします。例:

# zpool import -m dozer
# zpool status dozer
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:43:03 2010
config:

        NAME                    STATE     READ WRITE CKSUM
        dozer                   DEGRADED     0     0     0
          mirror-0              ONLINE       0     0     0
            c3t1d0              ONLINE       0     0     0
            c3t2d0              ONLINE       0     0     0
        logs
          14685044587769991702  UNAVAIL      0     0     0  was c3t3d0

欠落したログデバイスを接続した後、zpool clear コマンドを実行してプールエラーをクリアーします。

ミラー化されたログデバイスがない場合も類似の回復を試行することができます。例:

# zpool import dozer
The devices below are missing, use '-m' to import the pool anyway:
            mirror-1 [log]
              c3t3d0
              c3t4d0

cannot import 'dozer': one or more devices is currently unavailable
# zpool import -m dozer
# zpool status dozer
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:51:39 2010
config:

        NAME                      STATE     READ WRITE CKSUM
        dozer                     DEGRADED     0     0     0
          mirror-0                ONLINE       0     0     0
            c3t1d0                ONLINE       0     0     0
            c3t2d0                ONLINE       0     0     0
        logs
          mirror-1                UNAVAIL      0     0     0  insufficient replicas
            13514061426445294202  UNAVAIL      0     0     0  was c3t3d0
            16839344638582008929  UNAVAIL      0     0     0  was c3t4d0

欠落したログデバイスを接続した後、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 Thu Mar 10 10:28:46 2011
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

このプールがディスク全体から構成されている場合でも、特定のデバイスのスライス識別子をコマンドに含める必要があります。

破棄された ZFS ストレージプールを回復する

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: 13643595538644303788
 state: DEGRADED (DESTROYED)
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    35     1  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool import -Df dozer
# zpool status -x
  pool: dozer
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: scrub completed after 0h0m with 0 errors on Thu Jan 21 15:38:48 2010
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    37     0  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool online dozer c2t11d0
Bringing device c2t11d0 online
# zpool status -x
all pools are healthy