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

ドキュメントの情報

はじめに

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

2.  Oracle Solaris ZFS 入門

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

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

ZFS ルートプールのコンポーネントの管理 (概要)

ZFS ルートプールの一般的な要件

ZFS ルートプールの容量要件

ZFS ルートプールの構成要件

ZFS ルートプールを管理する

ZFS ルートプールをインストールする

ZFS ブート環境を更新する方法

代替 BE をマウントする方法

ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)

ミラー化ルートプールを構成する方法 (x86/EFI (GPT))

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/EFI (GPT))

別のルートプール内で BE を作成する方法 (SPARC または x86/VTOC)

別のルートプール内で BE を作成する方法 (SPARC または x86/EFI (GPT))

ZFS スワップデバイスおよびダンプデバイスを管理する

ZFS スワップデバイスおよびダンプデバイスのサイズを調整する

ZFS ダンプデバイスの問題のトラブルシューティング

ZFS ルートファイルシステムからのブート

ミラー化された ZFS ルートプールの代替ディスクからブートする

SPARC システムで ZFS ルートファイルシステムからブートする

x86 システムで ZFS ルートファイルシステムからブートする

ZFS ルート環境での回復のためのブート

復旧のためにシステムをブートする方法

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

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

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

8.  Oracle Solaris ZFS 委任管理

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

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

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

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

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

索引

ZFS ルートプールを管理する

次のセクションでは、ZFS ルートプールのインストールと更新について、およびミラー化ルートプールの構成について説明します。

ZFS ルートプールをインストールする

Oracle Solaris 11 Live CD によるインストール方法では、デフォルトの ZFS ルートプールが単一ディスク上にインストールされます。Oracle Solaris 11 自動インストール (AI) 方法では、AI マニフェストを作成することで、ZFS ルートプール用のディスクまたはミラー化ディスクを指定できます。

AI インストーラは、ZFS ルートプールをデフォルトのブートディスクにインストールするか、または指定したターゲットディスクにインストールする柔軟性を提供します。c1t0d0 などの論理デバイスや、物理デバイスのパスを指定できます。さらに、MPxIO 識別子や、インストールされるデバイスのデバイス ID も使用できます。

インストールのあとで、ZFS ストレージプールとファイルシステムの情報を確認します。これらの情報は、インストールのタイプとカスタマイズによって異なります。例:

# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c8t0d0  ONLINE       0     0     0
            c8t1d0  ONLINE       0     0     0
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    11.8G  55.1G  4.58M  /rpool
rpool/ROOT               3.57G  55.1G    31K  legacy
rpool/ROOT/solaris       3.57G  55.1G  3.40G  /
rpool/ROOT/solaris/var    165M  55.1G   163M  /var
rpool/VARSHARE           42.5K  55.1G  42.5K  /var/share
rpool/dump               6.19G  55.3G  6.00G  -
rpool/export               63K  55.1G    32K  /export
rpool/export/home          31K  55.1G    31K  /export/home
rpool/swap               2.06G  55.2G  2.00G  -

ZFS BE 情報を確認します。例:

# beadm list
BE      Active Mountpoint Space Policy Created          
--      ------ ---------- ----- ------ -------          
solaris NR     /          3.75G static 2012-07-20 12:10 

上記の出力では、Active フィールドは、BE が現在アクティブであるか (N で表現)、リブート時にアクティブになるか ( R で表現)、またはその両方であるか (NR で表現) を示します。

ZFS ブート環境を更新する方法

デフォルトの ZFS ブート環境 (BE) には、デフォルトで solaris という名前が付けられます。BE は beadm list コマンドを使用して識別できます。例:

# beadm list
BE      Active Mountpoint Space Policy Created          
--      ------ ---------- ----- ------ -------          
solaris NR     /          3.82G static 2012-07-19 13:44

上記の出力で、NR は、BE が現在アクティブであり、リブート時にアクティブな BE になることを意味しています。

pkg update コマンドを使用して ZFS ブート環境を更新できます。pkg update コマンドを使用して ZFS BE を更新した場合、既存の BE への更新がきわめてわずかである場合を除き、新しい BE が作成されて自動的にアクティブになります。

  1. ZFS BE を更新します。
    # pkg update
                                           
    
    DOWNLOAD                                  PKGS       FILES    XFER (MB)
    Completed                              707/707 10529/10529  194.9/194.9 
    .
    .
    .

    solaris-1 という新しい BE が自動的に作成されてアクティブになります。

    更新プロセスの外部でバックアップ BE を作成してアクティブにすることもできます。

    # beadm create solaris-1
    # beadm activate solaris-1
  2. システムをリブートして BE のアクティブ化を完了します。その後、BE のステータスを確認します。
    # init 6
    .
    .
    .
    # beadm list
    BE        Active Mountpoint Space  Policy Created          
    --        ------ ---------- -----  ------ -------          
    solaris   -      -          46.95M static 2012-07-20 10:25 
    solaris-1 NR     /          3.82G  static 2012-07-19 14:45 
  3. 新しい BE のブート時にエラーが発生した場合、以前の BE をアクティブにして戻ります。
    # beadm activate solaris
    # init 6

代替 BE をマウントする方法

回復するために、別の BE からのファイルをコピーしたりそのファイルにアクセスしたりする必要が生じる場合があります。

  1. 管理者になります。
  2. 代替 BE をマウントします。
    # beadm mount solaris-1 /mnt
  3. BE にアクセスします。
    # ls /mnt
    bin        export     media      pkg        rpool      tmp
    boot       home       mine       platform   sbin       usr
    dev        import     mnt        proc       scde       var
    devices    java       net        project    shared     
    doe        kernel     nfs4       re         src        
    etc        lib        opt        root       system     
  4. 使用し終えたら、代替 BE をアンマウントします。
    # beadm umount solaris-1

ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)

自動インストール中にミラー化ルートプールを構成しない場合は、インストール後にミラー化ルートプールを簡単に構成できます。

ルートプール内のディスクを交換する方法については、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。

  1. ルートプールの現在のステータスを表示します。
    # zpool status rpool
      pool: rpool
     state: ONLINE
     scrub: none requested
    config:
    
            NAME        STATE     READ WRITE CKSUM
            rpool       ONLINE       0     0     0
              c2t0d0s0  ONLINE       0     0     0
    
    errors: No known data errors
  2. 必要に応じて、ルートプールに接続する 2 つ目のディスクを準備します。
  3. ミラー化ルートプール構成にするために、2 つ目のディスクを接続します。
    # zpool attach rpool c2t0d0s0 c2t1d0s0
    Make sure to wait until resilver is done before rebooting.

    適切なディスクのラベル付けとブートブロックが自動的に適用されます。

  4. ルートプールのステータスを表示し、再同期化が完了しているか確認します。
    # zpool status rpool
    # zpool status rpool
      pool: rpool
     state: DEGRADED
    status: One or more devices is currently being resilvered.  The pool will
            continue to function in a degraded state.
    action: Wait for the resilver to complete.
            Run 'zpool status -v' to see device specific details.
      scan: resilver in progress since Fri Jul 20 13:39:53 2012
        938M scanned out of 11.7G at 46.9M/s, 0h3m to go
        938M resilvered, 7.86% done
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         DEGRADED     0     0     0
              mirror-0    DEGRADED     0     0     0
                c2t0d0s0  ONLINE       0     0     0
                c2t1d0s0  DEGRADED     0     0     0  (resilvering)

    上の出力の場合、再同期化処理は完了していません。次のようなメッセージが表示されたら、再同期化が完了しています。

    resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 13:57:25 2012
  5. より大きいディスクを接続する場合は、プールの autoexpand プロパティーを設定して、プールのサイズを拡張します。

    既存の rpool プールサイズを判別します。

    # zpool list rpool
    NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  29.8G   152K  29.7G   0%  1.00x  ONLINE  -
    # zpool set autoexpand=on rpool

    拡張した rpool プールサイズを確認します。

    # zpool list rpool
    NAME   SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  279G   146K  279G   0%  1.00x  ONLINE  -
  6. 新しいディスクから正常にブートできることを確認します。

ミラー化ルートプールを構成する方法 (x86/EFI (GPT))

Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。

自動インストール中にミラー化ルートプールを構成しない場合は、インストール後にミラー化ルートプールを簡単に構成できます。

ルートプール内のディスクを交換する方法については、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。

  1. ルートプールの現在のステータスを表示します。
    # zpool status rpool
     pool:  rpool
     state: ONLINE
      scan: none requested
    config:
    
            NAME      STATE     READ WRITE CKSUM
            rpool     ONLINE       0     0     0
              c2t0d0  ONLINE       0     0     0
    
    errors: No known data errors
  2. ミラー化ルートプール構成にするために、2 つ目のディスクを接続します。
    # zpool attach rpool c2t0d0 c2t1d0
    Make sure to wait until resilver is done before rebooting.

    適切なディスクのラベル付けとブートブロックが自動的に適用されます。

    ルートプールディスク上のパーティションをカスタマイズした場合は、次のような構文が必要になることがあります。

    # zpool attach rpool c2t0d0s0 c2t1d0
  3. ルートプールのステータスを表示し、再同期化が完了しているか確認します。
    # zpool status rpool
      pool: rpool
     state: DEGRADED
    status: One or more devices is currently being resilvered.  The pool will
            continue to function in a degraded state.
    action: Wait for the resilver to complete.
            Run 'zpool status -v' to see device specific details.
      scan: resilver in progress since Fri Jul 20 13:52:05 2012
        809M scanned out of 11.6G at 44.9M/s, 0h4m to go
        776M resilvered, 6.82% done
    config:
    
            NAME        STATE     READ WRITE CKSUM
            rpool       DEGRADED     0     0     0
              mirror-0  DEGRADED     0     0     0
                c8t0d0  ONLINE       0     0     0
                c8t1d0  DEGRADED     0     0     0  (resilvering)
    
    errors: No known data errors

    上の出力の場合、再同期化処理は完了していません。次のようなメッセージが表示されたら、再同期化が完了しています。

    resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 13:57:25 2012
  4. より大きいディスクを接続する場合は、プールの autoexpand プロパティーを設定して、プールのサイズを拡張します。

    既存の rpool プールサイズを判別します。

    # zpool list rpool
    NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  29.8G   152K  29.7G   0%  1.00x  ONLINE  -
    # zpool set autoexpand=on rpool

    拡張した rpool プールサイズを確認します。

    # zpool list rpool
    NAME   SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  279G   146K  279G   0%  1.00x  ONLINE  -
  5. 新しいディスクから正常にブートできることを確認します。

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)

次の理由により、ルートプールのディスクの置き換えが必要になることがあります。

ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。zpool replace コマンドを使用して、障害が発生しているディスクを置き換えたり、追加ディスクがある場合は zpool attach コマンドを使用したりできます。追加ディスクの接続やルートプールディスクの切り離しの例については、次の手順を参照してください。

SATA ディスクを備えたシステムでは、故障したディスクを交換するための zpool replace 操作を試みる前に、ディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0s0
# cfgadm -c unconfigure c1::dsk/c1t0d0
<Physically remove failed disk c1t0d0>
<Physically insert replacement disk c1t0d0>
# cfgadm -c configure c1::dsk/c1t0d0
<Confirm that the new disk has an SMI label and a slice 0>
# zpool online rpool c1t0d0s0
# zpool replace rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
# bootadm install-bootloader

一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。

  1. 交換用ディスクを物理的に接続します。
  2. 必要に応じて、ルートプールに接続する 2 つ目のディスクを準備します。
  3. 新しいディスクをルートプールに接続します。

    例:

    # zpool attach rpool c2t0d0s0 c2t1d0s0
    Make sure to wait until resilver is done before rebooting.

    適切なディスクのラベル付けとブートブロックが自動的に適用されます。

  4. ルートプールのステータスを確認します。

    例:

    # zpool status rpool
      pool: rpool
     state: ONLINE
     scan: resilvered 11.7G in 0h5m with 0 errors on Fri Jul 20 13:45:37 2012
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         ONLINE       0     0     0
              mirror-0    ONLINE       0     0     0
                c2t0d0s0  ONLINE       0     0     0
                c2t1d0s0  ONLINE       0     0     0
    
    errors: No known data errors
  5. 再同期化が完了したあとで新しいディスクからブートできることを確認します。

    SPARC システムの場合、たとえば次のようになります。

    ok boot /pci@1f,700000/scsi@2/disk@1,0

    交換用ディスクからのブートをテストできるように、また、交換用ディスクに障害が発生した場合に必要に応じて既存のディスクから手動でブートできるように、現在のディスクと新しいディスクのブートデバイスのパス名を特定します。次の例では、現在のルートプールのディスク (c2t0d0s0) は次のとおりです。

    /pci@1f,700000/scsi@2/disk@0,0

    次の例で、交換用ブートディスク (c2t1d0s0) は次のとおりです。

    boot /pci@1f,700000/scsi@2/disk@1,0
  6. 新しいディスクからシステムがブートした場合は、古いディスクを切り離します。

    例:

    # zpool detach rpool c2t0d0s0
  7. より大きいディスクを接続する場合は、プールの autoexpand プロパティーを設定して、プールのサイズを拡張します。
    # zpool set autoexpand=on rpool

    または、デバイスを拡張します。

    # zpool online -e c2t1d0s0
  8. 新しいディスクから自動的にブートするようシステムをセットアップします。
    • SPARC: システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

    • x86: システム BIOS を再構成します。

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/EFI (GPT))

Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。

次の理由により、ルートプールのディスクの置き換えが必要になることがあります。

ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。zpool replace コマンドを使用して、障害が発生しているディスクを置き換えたり、追加ディスクがある場合は zpool attach コマンドを使用したりできます。追加ディスクの接続やルートプールディスクの切り離しの例については、次の手順を参照してください。

SATA ディスクを備えたシステムでは、故障したディスクを交換するための zpool replace 操作を試みる前に、ディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0
# cfgadm -c unconfigure c1::dsk/c1t0d0
<Physically remove failed disk c1t0d0>
<Physically insert replacement disk c1t0d0>
# cfgadm -c configure c1::dsk/c1t0d0
# zpool online rpool c1t0d0
# zpool replace rpool c1t0d0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
x86# bootadm install-bootloader

一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。

  1. 交換用ディスクを物理的に接続します。
  2. 新しいディスクをルートプールに接続します。

    例:

    # zpool attach rpool c2t0d0 c2t1d0
    Make sure to wait until resilver is done before rebooting.

    適切なディスクのラベル付けとブートブロックが自動的に適用されます。

  3. ルートプールのステータスを確認します。

    例:

    # zpool status rpool
      pool: rpool
     state: ONLINE
      scan: resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 12:06:07 2012
    config:
    
            NAME        STATE     READ WRITE CKSUM
            rpool       ONLINE       0     0     0
              mirror-0  ONLINE       0     0     0
                c2t0d0  ONLINE       0     0     0
                c2t1d0  ONLINE       0     0     0
    
    errors: No known data errors
  4. 再同期化が完了したあとで新しいディスクからブートできることを確認します。
  5. 新しいディスクからシステムがブートした場合は、古いディスクを切り離します。

    例:

    # zpool detach rpool c2t0d0
  6. より大きいディスクを接続する場合は、プールの autoexpand プロパティーを設定して、プールのサイズを拡張します。
    # zpool set autoexpand=on rpool

    または、デバイスを拡張します。

    # zpool online -e c2t1d0
  7. 新しいディスクから自動的にブートするようシステムをセットアップします。

    システム BIOS を再構成します。

別のルートプール内で BE を作成する方法 (SPARC または x86/VTOC)

別のルートプール内で既存の BE を再作成する場合は、次の手順に従ってください。独立したスワップデバイスおよびダンプデバイスを備えた同様の BE を持つ 2 つのルートプールが必要か、それともスワップデバイスおよびダンプデバイスを共有する別のルートプールに BE を作成するだけかに基づき、手順を変更できます。

2 番目のルートプール内の新しい BE からアクティブ化しブートしたあと、1 番目のルートプール内の以前の BE に関する情報はなくなります。元の BE に戻す場合、元のルートプールのブートディスクから手動でシステムをブートする必要があります。

  1. SMI (VTOC) ラベルの付いたディスクで 2 番目のルートプールを作成します。例:
    # zpool create rpool2 c4t2d0s0
  2. 2 番目のルートプール内に新しい BE を作成します。例:
    # beadm create -p rpool2 solaris2
  3. 2 番目のルートプールで bootfs プロパティーを設定します。例:
    # zpool set bootfs=rpool2/ROOT/solaris2 rpool2
  4. 新しい BE をアクティブにします。例:
    # beadm activate solaris2
  5. 新しい BE からブートしますが、2 番目のルートプールのブートデバイスから明示的にブートする必要があります。
    ok boot disk2

    システムは新しい BE 下で実行しています。

  6. スワップボリュームを再作成します。例:
    # zfs create -V 4g rpool2/swap
  7. 新しいスワップデバイスの /etc/vfstab エントリを更新します。例:
    /dev/zvol/dsk/rpool2/swap       -               -               swap -     no      -
  8. ダンプボリュームを再作成します。例:
    # zfs create -V 4g rpool2/dump
  9. ダンプデバイスをリセットします。例:
    # dumpadm -d /dev/zvol/dsk/rpool2/dump
  10. 2 番目のルートプールのブートディスクからブートするように、デフォルトのブートデバイスをリセットします。
    • SPARC – システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

    • x86 – システム BIOS を再構成します。

  11. リブートして、元のルートプールのスワップデバイスとダンプデバイスをクリアします。
    # init 6

別のルートプール内で BE を作成する方法 (SPARC または x86/EFI (GPT))

Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。

別のルートプール内で既存の BE を再作成する場合は、次の手順に従ってください。独立したスワップデバイスおよびダンプデバイスを備えた同様の BE を持つ 2 つのルートプールが必要か、それともスワップデバイスおよびダンプデバイスを共有する別のルートプールに BE を作成するだけかに基づき、手順を変更できます。

2 番目のルートプール内の新しい BE からアクティブ化しブートしたあと、1 番目のルートプール内の以前の BE に関する情報はなくなります。元の BE に戻す場合、元のルートプールのブートディスクから手動でシステムをブートする必要があります。

  1. 代替ルートプールを作成します。
    # zpool create -B rpool2 c2t2d0

    あるいは、ミラー化された代替ルートプールを作成します。例:

    # zpool create -B rpool2 mirror c2t2d0 c2t3d0
  2. 2 番目のルートプール内に新しい BE を作成します。例:
    # beadm create -p rpool2 solaris2
  3. 2 番目のルートプールにブート情報を適用します。例:
    # bootadm install-bootloader -P rpool2
  4. 2 番目のルートプールで bootfs プロパティーを設定します。例:
    # zpool set bootfs=rpool2/ROOT/solaris2 rpool2
  5. 新しい BE をアクティブにします。例:
    # beadm activate solaris2
  6. 新しい BE からブートします。
    • SPARC – システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

    • x86 – システム BIOS を再構成します。

    システムは新しい BE 下で実行しています。

  7. スワップボリュームを再作成します。例:
    # zfs create -V 4g rpool2/swap
  8. 新しいスワップデバイスの /etc/vfstab エントリを更新します。例:
    /dev/zvol/dsk/rpool2/swap       -               -               swap -     no      -
  9. ダンプボリュームを再作成します。例:
    # zfs create -V 4g rpool2/dump
  10. ダンプデバイスをリセットします。例:
    # dumpadm -d /dev/zvol/dsk/rpool2/dump
  11. リブートして、元のルートプールのスワップデバイスとダンプデバイスをクリアします。
    # init 6