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 ストレージプールの管理

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

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

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

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

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

ZFS ルートプールのインストールに関する問題のトラブルシューティング

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

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

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

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

ミラー化ルートプールを構成する方法

ZFS ルートプールのディスクを交換する方法

別のルートプール内で BE を作成する方法

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

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

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

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

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

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

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

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 ルートプールを管理する

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

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

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

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

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

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

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c1t3d0s0  ONLINE       0     0     0

errors: No known data errors
# zfs list
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    6.49G  60.4G    40K  /rpool
rpool/ROOT               3.46G  60.4G    31K  legacy
rpool/ROOT/solaris       3.46G  60.4G  3.16G  /
rpool/ROOT/solaris/var    303M  60.4G   216M  /var
rpool/dump               2.00G  60.5G  1.94G  -
rpool/export             96.5K  60.4G    32K  /rpool/export
rpool/export/home        64.5K  60.4G    32K  /rpool/export/home
rpool/export/home/admin  32.5K  60.4G  32.5K  /rpool/export/home/admin
rpool/swap               1.03G  60.5G  1.00G  -

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

# beadm list
# beadm list
BE      Active Mountpoint Space Policy Created          
--      ------ ---------- ----- ------ -------          
solaris NR     /          3.85G static 2011-09-26 08:37 

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

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

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

# beadm list
BE      Active Mountpoint Space Policy Created          
--      ------ ---------- ----- ------ -------          
solaris NR     /          8.41G static 2011-01-13 15:31 

上記の出力で、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 が自動的に作成されてアクティブになります。

  2. システムをリブートして BE のアクティブ化を完了します。その後、BE のステータスを確認します。
    # init 6
    .
    .
    .
    # beadm list
    BE        Active Mountpoint Space Policy Created          
    --        ------ ---------- ----- ------ -------          
    solaris   -      -          6.25M static 2011-09-26 08:37 
    solaris-1 NR     /          3.92G static 2011-09-26 09:32 
  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

ミラー化ルートプールを構成する方法

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

ルートプール内のディスクを置き換える方法については、「ZFS ルートプールのディスクを交換する方法」を参照してください。

  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
      pool: rpool
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scan: resilver in progress since Thu Sep 29 18:09:09 2011
        1.55G scanned out of 5.36G at 36.9M/s, 0h1m to go
        1.55G scanned out of 5.36G at 36.9M/s, 0h1m to go
        1.55G resilvered, 28.91% done
    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  (resilvering)
    
    errors: No known data errors

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

    resilvered 5.36G in 0h10m with 0 errors on Thu Sep 29 18:19:09 2011
  5. 新しいディスクから正常にブートできることを確認します。
  6. 新しいディスクから自動的にブートするようシステムをセットアップします。
    • SPARC: システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

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

ZFS ルートプールのディスクを交換する方法

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

ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。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 replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t0d0s0

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

  1. 交換用ディスクを物理的に接続します。
  2. 交換用 (新しい) ディスクに SMI (VTOC) ラベルが付けられていてスライス 0 があることを確認してください。

    ルートプールのために使用するディスクのラベルを変更する方法については、『Oracle Solaris の管理: デバイスとファイルシステム』の「ディスクラベルを作成する方法」を参照してください。

  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 5.36G in 0h2m with 0 errors on Thu Sep 29 18:11:53 2011
    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. 新しいディスクから自動的にブートするようシステムをセットアップします。
    • SPARC: システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

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

別のルートプール内で BE を作成する方法

別のルートプール内で既存の 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