Oracle Solaris ZFS 管理ガイド

第 5 章 Oracle Solaris ZFS ルートファイルシステムのインストールと起動

この章では、Oracle Solaris ZFS ファイルシステムのインストールと起動の方法について説明します。Oracle Solaris Live Upgrade を使用して UFS ルートファイルシステムを ZFS ファイルシステムに移行する方法についても説明します。

この章は、次の節で構成されます。

このリリースで認識されている問題のリストについては、『Oracle Solaris 10 9/10 ご使用にあたって』を参照してください。

トラブルシューティングに関する最新情報については、次のサイトを参照してください。

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

Oracle Solaris ZFS ルートファイルシステムのインストールと起動 (概要)

Solaris 10 10/08 以降のリリースでは、次の方法で ZFS ルートファイルシステムからインストールと起動を行うことができます。

SPARC システムまたは x86 システムを ZFS ルートファイルシステムでインストールするか、ZFS ルートファイルシステムに移行したあとは、システムは自動的に ZFS ルートファイルシステムから起動します。起動の変更に関する詳細は、「ZFS ルートファイルシステムからの起動」を参照してください。

ZFS インストール機能

この Solaris リリースでは、次の ZFS インストール機能が用意されています。

このリリースでは、次のインストール機能は用意されていません。

ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件

システムを ZFS ルートファイルシステムでインストールする場合や、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する場合は、次の要件が満たされていることを事前に確認してください。

Oracle Solaris リリースの要件

ZFS ルートファイルシステムのインストールと起動または ZFS ルートファイルシステムへの移行は、次の方法で行うことができます。

一般的な ZFS ストレージプール要件

次の各節では、ZFS ルートプールの容量および構成の要件について説明します。

ZFS ストレージプールのディスク容量要件

ZFS ルート環境にはスワップデバイスおよびダンプデバイスとして別個のデバイスが必要なので、ZFS ルートファイルシステムに最小限必要なプール容量は、UFS ルートファイルシステムの場合よりも大きくなります。UFS ルートファイルシステムの場合、デフォルトではスワップデバイスとダンプデバイスは同一のデバイスです。

システムを ZFS ルートファイルシステムでインストールまたはアップグレードする場合、スワップ領域とダンプデバイスのサイズは、物理メモリーの容量によって決まります。ブート可能な ZFS ルートファイルシステムに最小限必要なプール容量は、物理メモリーの容量、利用可能なディスク容量、および作成するブート環境 (BE) の数によって決まります。

次の ZFS ストレージプールのディスク容量要件を確認してください。

ZFS ストレージプールの構成要件

次の ZFS ストレージプール構成要件を確認してください。

ZFS ルートファイルシステムのインストール (初期インストール)

この Solaris リリースでは、Solaris 対話式テキストインストーラを使用して初期インストールを実行し、ブート可能な ZFS ルートファイルシステムを含む ZFS ストレージプールを作成できます。既存の ZFS ストレージプールを ZFS ルートファイルシステムとして使用するには、Oracle Solaris Live Upgrade を使用して、既存の ZFS ストレージプール内で既存の UFS ルートファイルシステムを ZFS ファイルシステムに移行する必要があります。詳細は、「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」を参照してください。

ZFS ルートファイルシステムの初期インストールのあとでゾーンを構成し、システムにパッチやアップグレードを適用することを計画している場合は、「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」または 「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」を参照してください。

ZFS ストレージプールがシステム上にすでに存在している場合、次のメッセージによってその旨が通知されます。ただし、ユーザーがそれらの既存プール内のディスクを新たに作成するストレージプール用として選択しないかぎり、それらのプールはそのまま残されます。


There are existing ZFS pools available on this system.  However, they can only be upgraded 
using the Live Upgrade tools.  The following screens will only allow you to install a ZFS root system, 
not upgrade one.

注意 – 注意 –

既存のプールのディスクのいずれかを新しいプール用に選択すると、既存のプールは破棄されます。


初期インストールを実行して ZFS ストレージプールを作成する前に、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。


例 5–1 ブート可能な ZFS ルートファイルシステムの初期インストール

Solaris 対話式テキストインストーラによるインストール処理は、基本的に以前の Solaris リリースの場合と同じですが、UFS または ZFS ルートファイルシステムの作成を求めるプロンプトが表示される点が異なります。このリリースでも、デフォルトのファイルシステムは UFS です。ZFS ルートファイルシステムを選択すると、ZFS ストレージプールの作成を求めるプロンプトが表示されます。ZFS ルートファイルシステムのインストール手順は次のとおりです。

  1. ブート可能な ZFS ルートファイルシステムの作成に Solaris フラッシュインストールは使用できないため、Solaris の対話式インストール方法を選択します。ただし、ZFS フラッシュアーカイブを作成して JumpStart インストール時に使用することができます。詳細は、「ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)」を参照してください。

    Solaris 10 10/08 以降のリリースでは、Solaris 10 10/08 以降のリリースがすでにインストールされていれば、UFS ルートファイルシステムから ZFS ルートファイルシステムに移行することができます。ZFS ルートファイルシステムへの移行の詳細については、「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」を参照してください。

  2. ZFS ルートファイルシステムを作成するには、ZFS オプションを選択します。次に例を示します。


    Choose Filesystem Type
    
      Select the filesystem to use for your Solaris installation
    
    
                [ ] UFS
                [X] ZFS
  3. インストールするソフトウェアを選択したあと、ZFS ストレージプールを作成するためのディスクの選択を求めるプロンプトが表示されます。この画面は、前の Solaris リリースとほぼ同じです。


    Select Disks
    
      On this screen you must select the disks for installing Solaris software.
      Start by looking at the Suggested Minimum field; this value is the
      approximate space needed to install the software you've selected. For ZFS,
      multiple disks will be configured as mirrors, so the disk you choose, or the
      slice within the disk must exceed the Suggested Minimum value.
      NOTE: ** denotes current boot disk
    
      Disk Device                                              Available Space
      =============================================================================
      [X]    c1t0d0                                           69994 MB  (F4 to edit)
      [ ]    c1t1d0                                           69994 MB
      [-]    c1t2d0                                               0 MB
      [-]    c1t3d0                                               0 MB
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   8279 MB

    ZFS ルートプールに使用する 1 つ以上のディスクを選択できます。2 つのディスクを選択すると、ルートプールには 2 ディスク構成が設定されます。2 ディスクまたは 3 ディスクのミラー化プールが最適です。8 つのディスクがある場合にそれらすべてを選択すると、ルートプールでは 8 つのディスクが単一の大規模なミラーとして使用されます。この構成は最適ではありません。もう 1 つの方法は、初期インストールの完了後にミラー化ルートプールを作成することです。ルートプールでは RAID-Z プール構成はサポートされていません。ZFS ストレージプールの構成方法の詳細については、「ZFS ストレージプールの複製機能」を参照してください。

  4. ミラー化ルートプールを作成するために 2 つのディスクを選択するには、Ctrl キーを押しながら 2 番目のディスクをクリックします。次の例では、c1t1d1c1t2d0 の両方をルートプールディスクとして選択しています。両方のディスクには、SMI ラベルが付けられていて、スライス 0 が割り当てられていなければなりません。ディスクに SMI ラベルが付けられていない場合やディスクにスライスが含まれていない場合は、インストールプログラムを終了し、format ユーティリティを使用して、ディスクのラベルを変更し、パーティションを再設定してから、インストールプログラムを再起動してください。


    Select Disks
    
      On this screen you must select the disks for installing Solaris software.
      Start by looking at the Suggested Minimum field; this value is the
      approximate space needed to install the software you've selected. For ZFS,
      multiple disks will be configured as mirrors, so the disk you choose, or the
      slice within the disk must exceed the Suggested Minimum value.
      NOTE: ** denotes current boot disk
    
      Disk Device                                              Available Space
      =============================================================================
      [X]    c1t0d0                                           69994 MB  
      [X]    c1t1d0                                           69994 MB  (F4 to edit)
      [-]    c1t2d0                                               0 MB
      [-]    c1t3d0                                               0 MB
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   8279 MB

    「Available Space」欄が 0M バイトになっている場合、そのディスクには通常 EFI ラベルが付いています。EFI ラベルの付いたディスクを使用するには、インストールプログラムを終了し、format -e コマンドを使ってそのディスクに SMI ラベルを付け直したあと、インストールプログラムを再度起動します。

    インストール中にミラー化ルートプールを作成しなかった場合も、インストール後にそのようなプールを容易に作成できます。これについては、「ミラー化ルートプールを作成する方法 (インストール後)」を参照してください。

  5. ZFS ルートプールに使用する 1 つ以上のディスクを選択したら、次のような画面が表示されます。


    Configure ZFS Settings
    
      Specify the name of the pool to be created from the disk(s) you have chosen.
      Also specify the name of the dataset to be created within the pool that is
      to be used as the root directory for the filesystem.
    
                  ZFS Pool Name: rpool                                   
          ZFS Root Dataset Name: s10s_u9wos_08
          ZFS Pool Size (in MB): 69995
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1536
            (Pool size must be between 6231 MB and 69995 MB)
    
                             [X] Keep / and /var combined
                             [ ] Put /var on a separate dataset

    この画面では、ZFS プールの名前、データセット名、プールサイズ、およびスワップデバイスとダンプデバイスのサイズを変更できます。変更するには、カーソル制御キーでエントリの中を移動し、デフォルトの値を新しい値で置き換えます。あるいは、デフォルト値をそのまま使用できます。また、/var ファイルシステムの作成およびマウントの方法を変更することもできます。

    次の例では、ルートデータセットの名前が zfsBE に変更されます。


                  ZFS Pool Name: rpool
          ZFS Root Dataset Name: zfsBE                                   
          ZFS Pool Size (in MB): 69995
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1536
            (Pool size must be between 6231 MB and 69995 MB)
    
                             [X] Keep / and /var combined
                             [ ] Put /var on a separate dataset
  6. この最後のインストール画面では、インストールプロファイルを変更できます。次に例を示します。


    Profile
    
      The information shown below is your profile for installing Solaris software.
      It reflects the choices you've made on previous screens.
    
      ============================================================================
    
                    Installation Option: Initial
                            Boot Device: c1t0d0
                  Root File System Type: ZFS
                        Client Services: None
    
                                Regions: North America
                          System Locale: C ( C )
    
                               Software: Solaris 10, Entire Distribution
                              Pool Name: rpool
                  Boot Environment Name: zfsBE
                              Pool Size: 69995 MB
                        Devices in Pool: c1t0d0
                                         c1t1d0
  7. インストールが完了したら、作成された ZFS ストレージプールおよびファイルシステムの情報を確認します。次に例を示します。


    # zpool status
      pool: rpool
     state: ONLINE
     scrub: none requested
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         ONLINE       0     0     0
              mirror-0    ONLINE       0     0     0
                c1t0d0s0  ONLINE       0     0     0
                c1t1d0s0  ONLINE       0     0     0
    
    errors: No known data errors
    # zfs list
    NAME                USED  AVAIL  REFER  MOUNTPOINT
    rpool              8.03G  58.9G    96K  /rpool
    rpool/ROOT         4.47G  58.9G    21K  legacy
    rpool/ROOT/zfsBE   4.47G  58.9G  4.47G  /
    rpool/dump         1.50G  58.9G  1.50G  -
    rpool/export         44K  58.9G    23K  /export
    rpool/export/home    21K  58.9G    21K  /export/home
    rpool/swap         2.06G  61.0G    16K  -

    このサンプルの zfs list の出力では、rpool/ROOT ディレクトリなどルートプールのコンポーネントが識別されています。デフォルトでは、これらにはアクセスできません。

  8. 同じストレージプール内に別の ZFS ブート環境 (BE) を作成するには、lucreate コマンドを使用できます。次の例では、zfs2BE という名前の新しい BE が作成されます。zfs list の出力からわかるように、現在の BE の名前は zfsBE です。ただし、この現在の BE は、新しい BE が作成されるまで lustatus の出力に表示されません。


    # lustatus
    ERROR: No boot environments are configured on this system
    ERROR: cannot determine list of all boot environment names

    同じプール内に新しい ZFS BE を作成する場合は、次のような構文を使用します。


    # lucreate -n zfs2BE
    INFORMATION: The current boot environment is not named - assigning name <zfsBE>.
    Current boot environment is named <zfsBE>.
    Creating initial configuration for primary boot environment <zfsBE>.
    The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
    PBE configuration successful: PBE name <zfsBE> PBE Boot Device </dev/dsk/c1t0d0s0>.
    Comparing source boot environment <zfsBE> file systems with the file 
    system(s) you specified for the new boot environment. Determining which 
    file systems should be in the new boot environment.
    Updating boot environment description database on all BEs.
    Updating system configuration files.
    Creating configuration for boot environment <zfs2BE>.
    Source boot environment is <zfsBE>.
    Creating boot environment <zfs2BE>.
    Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>.
    Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>.
    Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>.
    Population of boot environment <zfs2BE> successful.
    Creation of boot environment <zfs2BE> successful.

    同じプール内で ZFS BE を作成する場合、ZFS のクローン機能とスナップショット機能を使ってその BE が即座に作成されます。Oracle Solaris Live Upgrade を使用した ZFS ルートへの移行の詳細については、「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」を参照してください。

  9. 次に、新しいブート環境を確認します。次に例を示します。


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfsBE                      yes      yes    yes       no     -         
    zfs2BE                     yes      no     no        yes    -        
    # zfs list
    NAME                      USED  AVAIL  REFER  MOUNTPOINT
    rpool                    8.03G  58.9G    97K  /rpool
    rpool/ROOT               4.47G  58.9G    21K  legacy
    rpool/ROOT/zfs2BE         116K  58.9G  4.47G  /
    rpool/ROOT/zfsBE         4.47G  58.9G  4.47G  /
    rpool/ROOT/zfsBE@zfs2BE  75.5K      -  4.47G  -
    rpool/dump               1.50G  58.9G  1.50G  -
    rpool/export               44K  58.9G    23K  /export
    rpool/export/home          21K  58.9G    21K  /export/home
    rpool/swap               2.06G  61.0G    16K  -
  10. 代替 BE からブートするには、luactivate コマンドを使用します。SPARC システムで BE をアクティブにしたあと、起動デバイスに ZFS ストレージプールが含まれている場合は、利用可能な BE を boot -L コマンドで識別します。x86 システムから起動する場合は、起動する BE を GRUB メニューで識別します。

    たとえば、SPARC システムでは、boot -L コマンドを使用して利用可能な BE のリストを表示します。新しい BE zfs2BE から起動するには、オプション 2 を選択します。次に、表示された boot -Z コマンドを入力します。


    ok boot -L
    Executing last command: boot -L                                       
    Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0  File and args: -L
    1 zfsBE
    2 zfs2BE
    Select environment to boot: [ 1 - 2 ]: 2
    
    To boot the selected entry, invoke:
    boot [<root-device>] -Z rpool/ROOT/zfs2BE
    ok boot -Z rpool/ROOT/zfs2BE
    

ZFS ファイルシステムの起動に関する詳細は、「ZFS ルートファイルシステムからの起動」を参照してください。


Procedureミラー化ルートプールを作成する方法 (インストール後)

インストール中に ZFS ミラー化ルートプールを作成しなかった場合も、インストール後にそのようなプールを容易に作成できます。

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

  1. ルートプールの現在の状態を表示します。


    # zpool status rpool
      pool: rpool
     state: ONLINE
     scrub: none requested
    config:
    
            NAME        STATE     READ WRITE CKSUM
            rpool       ONLINE       0     0     0
              c1t0d0s0  ONLINE       0     0     0
    
    errors: No known data errors
  2. ミラー化ルートプール構成にするために、2 つ目のディスクを接続します。


    # zpool attach rpool c1t0d0s0 c1t1d0s0
    Please be sure to invoke installboot(1M) to make 'c1t1d0s0' bootable.
    Make sure to wait until resilver is done before rebooting.
  3. ルートプールの状態を表示し、再同期化が完了しているか確認します。


    # 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.
     scrub: resilver in progress for 0h1m, 24.26% done, 0h3m to go
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         ONLINE       0     0     0
              mirror-0    ONLINE       0     0     0
                c1t0d0s0  ONLINE       0     0     0
                c1t1d0s0  ONLINE       0     0     0  3.18G resilvered
    
    errors: No known data errors

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


    scrub: resilver completed after 0h10m with 0 errors on Thu Mar 11 11:27:22 2010
  4. 再同期化の完了後、2 つ目のディスクにブートブロックを適用します。


    sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
    

    x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
    
  5. 2 つ目のディスクから正常に起動できることを確認します。

  6. システムが新しいディスクから自動的に起動するように設定します。そのためには、eeprom コマンドまたは SPARC ブート PROM のsetenv コマンドを使用します。あるいは、PC BIOS を再設定します。

ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)

Solaris 10 10/09 以降のリリースでは、フラッシュアーカイブは、UFS ルートファイルシステムまたは ZFS ルートファイルシステムを実行しているシステムで作成できます。ZFS ルートプールのフラッシュアーカイブには、スワップボリュームとダンプボリュームおよび任意の除外されたデータセットを除く、プール階層全体が含まれます。スワップボリュームとダンプボリュームは、フラッシュアーカイブのインストール時に作成されます。フラッシュアーカイブによるインストール方法は次のとおりです。

ZFS フラッシュアーカイブを使用してシステムをインストールする前に、次の制限事項を確認してください。

マスターシステムに Solaris 10 10/09 以降のリリースを新規インストールした後、または、マスターシステムを Solaris 10 10/09 以降のリリースにアップグレードした後に、ターゲットシステムのインストールに使用する ZFS フラッシュアーカイブを作成することができます。基本的な手順は次のとおりです。

フラッシュアーカイブによる ZFS ルートプールのインストールでサポートされているアーカイブオプションは、次のとおりです。

ZFS フラッシュアーカイブがインストールされると、システムが次のように構成されます。


例 5–2 ZFS フラッシュアーカイブを使用してシステムをインストールする

マスターシステムに Solaris 10 10/09 以降のリリースを新規インストールした後、またはマスターシステムを Solaris 10 10/09 以降のリリースにアップグレードした後に、ZFS ルートプールのフラッシュアーカイブを作成します。次に例を示します。


# flarcreate -n zfsBE zfs10upflar
Full Flash
Checking integrity...
Integrity OK.
Running precreation scripts...
Precreation scripts done.
Determining the size of the archive...
The archive will be approximately 4.94GB.
Creating the archive...
Archive creation complete.
Running postcreation scripts...
Postcreation scripts done.

Running pre-exit scripts...
Pre-exit scripts done.

インストールサーバーとして使用されるシステム上で、任意のシステムをインストールするための JumpStart プロファイルを作成します。例えば、zfs10upflar アーカイブをインストールする場合は、次のようなプロファイルを使用します。


install_type flash_install
archive_location nfs system:/export/jump/zfs10upflar
partitioning explicit
pool rpool auto auto auto mirror c0t1d0s0 c0t0d0s0

ZFS ルートファイルシステムのインストール (Oracle Solaris JumpStart インストール)

ZFS ルートファイルシステムまたは UFS ルートファイルシステムをインストールするための JumpStart プロファイルを作成できます。

ZFS 固有のプロファイルには、新しいキーワード pool を含める必要があります。pool キーワードにより、新規ルートプールがインストールされ、新しいブート環境がデフォルトで作成されます。bootenv キーワードと installbe キーワード、および bename オプションと dataset オプションを使用して、ブート環境の名前を指定したり、別の /var データセットを作成したりできます。

JumpStart 機能の使用に関する一般的な情報については、『Oracle Solaris 10 9/10 インストールガイド (カスタム JumpStart/上級編)』を参照してください。

ZFS ルートファイルシステムの JumpStart インストールのあとでゾーンを構成し、システムにパッチやアップグレードを適用することを計画している場合は、「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」または 「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」を参照してください。

ZFS 用の JumpStart キーワード

ZFS 固有のプロファイルでは、次のキーワードを使用できます。

auto

プールのスライス、スワップボリューム、またはダンプボリュームのサイズを自動的に指定します。最小限のサイズを確保できることを確認するために、ディスクのサイズがチェックされます。最小限のサイズを確保できる場合は、ディスクや予約済みスライスのサイズなどの制約を考慮して、できる限り大きいプールサイズが割当てられます。

たとえば、c0t0d0s0 を指定する場合、all キーワードまたは auto キーワードを指定すると、ルートプールのスライスはできる限り大きいサイズで作成されます。または、スライス、スワップボリューム、またはダンプボリュームに特定のサイズを指定することができます。

ZFS ルートプールに使用する場合、プールには未使用ディスク領域というものは存在しないため、auto キーワードは all キーワードと同様に機能します。

bootenv

ブート環境の特性を特定します。

ブート可能な ZFS ルート環境を作成するには、次の bootenv キーワード構文を使用します。

bootenv installbe bename BE-name [ dataset mount-point]

installbe

bename オプションと BE-name エントリによって指定された新しい BE を作成し、インストールします。

bename BE-name

インストールする BE-name を指定します。

benamepool キーワードとともに使用されている場合を除き、デフォルトの BE が作成されます。

dataset mount-point

ルートデータセットとは別の /var データセットを指定するには、省略可能なキーワード dataset を使用します。現時点では、mount-point の値は /var に限られています。たとえば、別の /var データセットを指定する bootenv 構文の行は、次のようになります。


bootenv installbe bename zfsroot dataset /var
pool

作成する新しいルートプールを定義します。次のキーワード構文を指定する必要があります。


pool poolname poolsize swapsize dumpsize vdevlist
poolname

作成するプールの名前を指定します。プールは、指定されたプールサイズ (size) および指定された物理デバイス (vdev) で作成されます。poolname 値には、既存のプールの名前を指定しないようにしてください。既存のプールの名前を指定すると、既存のプールが上書きされます。

poolsize

作成するプールのサイズを指定します。指定できる値は auto または existing です。auto を指定すると、ディスクや予約済みスライスのサイズなどの制約を考慮して、できる限り大きいプールサイズが割当てられます。existing を指定すると、その名前で指定された既存のスライスの境界が維持され、上書きされませんg (G バイト) と指定した場合を除き、サイズの単位は M バイトと見なされます。

swapsize

作成するスワップボリュームのサイズを指定します。auto 値は、デフォルトのスワップサイズが使用されることを意味します。サイズを指定するには size 値を使用します。g (G バイト) と指定した場合を除き、サイズの単位は M バイトになります。

dumpsize

作成するダンプボリュームのサイズを指定します。auto 値は、デフォルトのスワップサイズが使用されることを意味します。サイズを指定するには size 値を使用します。g (G バイト) と指定した場合を除き、サイズの単位は M バイトと見なされます。

vdevlist

プールの作成に使用する 1 つ以上のデバイスを指定します。vdevlist の書式は zpool create コマンドの書式と同じです。現時点では、複数のデバイスを指定する場合はミラー化構成だけがサポートされます。vdevlist に指定するデバイスは、ルートプール用のスライスにしてください。any という値を指定すると、インストールソフトウェアによって適切なデバイスが選択されます。

ディスクはいくつでもミラー化できますが、作成されるプールのサイズは、指定したディスクのうちで最小のディスクによって決定されます。ミラー化されたストレージプールの作成方法の詳細については、「ミラー化されたストレージプール構成」を参照してください。

ZFS 用 JumpStart プロファイルの例

この節では、ZFS 固有の JumpStart プロファイルの例を紹介します。

次のプロファイルは、install_type initial_install で指定された初期インストールを、pool newpool で指定された新しいプールで実行します。auto キーワードにより、この新しいプールのサイズは自動的に、指定されたディスクのサイズになります。auto キーワードにより、スワップ領域とダンプデバイスのサイズは自動的に決められます。また、mirror キーワードにより、c0t0d0s0c0t1d0s0 で指定されたディスクのミラー化構成になります。ブート環境の特性は bootenv キーワードで設定されます。ここでは、キーワード installbe により新しい BE がインストールされ、s10-xx という bename が作成されます。


install_type initial_install
pool newpool auto auto auto mirror c0t0d0s0 c0t1d0s0
bootenv installbe bename s10-xx

次のプロファイルは、キーワード install_type initial_install で指定された初期インストールを、SUNWCall メタクラスタを対象として、newpool という新しいプールで実行します。このプールのサイズは 80G バイトです。このプールは、2G バイトのスワップボリュームと 2G バイトのダンプボリュームを含んで作成されます。また、80G バイトのプールを作成するのに十分なサイズの、利用可能な任意の 2 つのデバイスによるミラー化構成になります。そのような 2 つのデバイスを利用できない場合、インストールは失敗します。ブート環境の特性は bootenv キーワードで設定されます。ここでは、キーワード installbe により新しい BE がインストールされ、s10–xx という bename が作成されます。


install_type initial_install
cluster SUNWCall
pool newpool 80g 2g 2g mirror any any
bootenv installbe bename s10-xx

JumpStart インストールの構文を使用すれば、ZFS ルートプールも含まれているディスク上に、UFS ファイルシステムを維持したり作成したりできます。この構成は本稼働システムにはお勧めできませんが、ノートパソコンなどの小規模なシステムで移行を行う必要がある場合に使用できます。

ZFS の JumpStart に関する問題

ブート可能な ZFS ルートファイルシステムの JumpStart インストールを開始する前に、次の問題を考慮してください。

UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)

Oracle Solaris Live Upgrade の UFS コンポーネント関連機能は引き続き使用可能で、以前の Solaris リリースと同様に動作します。

次の機能も使用可能です。

Oracle Solaris インストールおよび Oracle Solaris Live Upgrade の機能の詳細については、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。

UFS ルートファイルシステムを ZFS ルートファイルシステムに移行するための基本的な手順は次のとおりです。

ZFS および Oracle Solaris Live Upgrade の要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。

Oracle Solaris Live Upgrade で ZFS に移行する際の問題

Oracle Solaris Live Upgrade を使用して UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する前に、次に示す問題を確認してください。

Oracle Solaris Live Upgrade を使用して ZFS ルートファイルシステムに移行する (ゾーンなし)

次の例では、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法を示します。

ゾーンが含まれているシステムを移行またはアップグレードする場合は、次の各節を参照してください。


例 5–3 Oracle Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する

次の例では、ZFS ルートファイルシステムの BE を UFS ルートファイルシステムから作成する方法を示します。現在の BE ufsBE-c オプションで指定されています。この BE には UFS ルートファイルシステムが含まれています。-c オプション (省略可能) を指定しない場合、デフォルトではデバイス名が現在の BE の名前になります。新しい BE である zfsBE は、-n オプションによって識別されます。 lucreate 操作の前に ZFS ストレージプールが存在している必要があります。

ZFS ストレージプールは、アップグレード可能かつブート可能にするため、ディスク全体ではなくスライスを使って作成します。新しいプールを作成する前に、プールで使用するディスクに、EFI ラベルではなく SMI (VTOC) ラベルが付いていることを確認してください。ディスクに SMI ラベルを付け直した場合は、ラベル付け処理によってパーティション分割方式が変更されていないことを確認してください。ほとんどの場合、ルートプールに使用するスライスにディスク容量のすべてを割り当てるようにしてください。


# zpool create rpool mirror c1t2d0s0 c2t1d0s0
# lucreate -c ufsBE -n zfsBE -p rpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <ufsBE>.
Creating initial configuration for primary boot environment <ufsBE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufsBE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufsBE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c1t2d0s0> is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment <zfsBE>.
Source boot environment is <ufsBE>.
Creating boot environment <zfsBE>.
Creating file systems on boot environment <zfsBE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>.
Populating file systems on boot environment <zfsBE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfsBE>.
Creating compare database for file system </rpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfsBE>.
Making boot environment <zfsBE> bootable.
Creating boot_archive for /.alt.tmp.b-qD.mnt
updating /.alt.tmp.b-qD.mnt/platform/sun4u/boot_archive
Population of boot environment <zfsBE> successful.
Creation of boot environment <zfsBE> successful.

lucreate 操作が完了したら、lustatus コマンドを使用して BE の状態を表示します。次に例を示します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufsBE                      yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         

その後、ZFS コンポーネントのリストを確認します。次に例を示します。


# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
rpool                 7.17G  59.8G  95.5K  /rpool
rpool/ROOT            4.66G  59.8G    21K  /rpool/ROOT
rpool/ROOT/zfsBE      4.66G  59.8G  4.66G  /
rpool/dump               2G  61.8G    16K  -
rpool/swap             517M  60.3G    16K  -

次に、luactivate コマンドを使用して、新しい ZFS BE をアクティブにします。次に例を示します。


# luactivate zfsBE
A Live Upgrade Sync operation will be performed on startup of boot environment <zfsBE>.

**********************************************************************

The target boot environment has been activated. It will be used when you 
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You 
MUST USE either the init or the shutdown command when you reboot. If you 
do not use either init or shutdown, the system will not boot using the 
target BE.

**********************************************************************
.
.
.
Modifying boot archive service
Activation of boot environment <zfsBE> successful.

次に、システムを再起動して ZFS BE に切り替えます。


# init 6

ZFS BE がアクティブになっていることを確認します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufsBE                      yes      no     no        yes    -         
zfsBE                      yes      yes    yes       no     -      

UFS BE に切り替えなおす場合は、ZFS BE が起動されていた間に作成された ZFS ストレージプールをすべて再インポートする必要があります。これらは UFS BE で自動的には使用可能になりません。

UFS BE が必要でなくなった場合は、ludelete コマンドで削除できます。



例 5–4 Oracle Solaris Live Upgrade を使用して ZFS BE を ZFS BE から作成する

同じプール内で ZFS BE から ZFS BE を作成する操作には ZFS のスナップショットとクローンの機能が使用されるため、この操作は非常に高速です。現在の BE が同じ ZFS プールにある場合、-p オプションは省略されます。

ZFS BE が複数存在する場合は、次のようにして起動元の BE を選択します。

詳細は、例 5–9 を参照してください。


# lucreate -n zfs2BE
Analyzing system configuration.
No name for current boot environment.
INFORMATION: The current boot environment is not named - assigning name <zfsBE>.
Current boot environment is named <zfsBE>.
Creating initial configuration for primary boot environment <zfsBE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <zfsBE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <zfsBE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment <zfs2BE>.
Source boot environment is <zfsBE>.
Creating boot environment <zfs2BE>.
Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>.
Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>.
Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>.
Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>.
Population of boot environment <zfs2BE> successful.
Creation of boot environment <zfs2BE> successful.


例 5–5 ZFS BE をアップグレードする (luupgrade)

ZFS BE を追加のパッケージやパッチでアップグレードすることができます。

基本的な手順は次のとおりです。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfsBE                      yes      no     no        yes    -         
zfs2BE                     yes      yes    yes       no     -   
# luupgrade -p -n zfsBE -s /net/system/export/s10up/Solaris_10/Product SUNWchxge
Validating the contents of the media </net/install/export/s10up/Solaris_10/Product>.
Mounting the BE <zfsBE>.
Adding packages to the BE <zfsBE>.

Processing package instance <SUNWchxge> from </net/install/export/s10up/Solaris_10/Product>

Chelsio N110 10GE NIC Driver(sparc) 11.10.0,REV=2006.02.15.20.41
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.

This appears to be an attempt to install the same architecture and
version of a package which is already installed.  This installation
will attempt to overwrite this package.

Using </a> as the package base directory.
## Processing package information.
## Processing system information.
   4 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of <SUNWchxge> [y,n,?] y
Installing Chelsio N110 10GE NIC Driver as <SUNWchxge>

## Installing part 1 of 1.
## Executing postinstall script.

Installation of <SUNWchxge> was successful.
Unmounting the BE <zfsBE>.
The package add to the BE <zfsBE> completed.

ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)

Solaris 10 10/08 リリースでは、ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行することはできますが、サポートされる構成は限られています。Solaris 10 5/09 以降のリリースをインストールする場合や Solaris 10 5/09 以降のリリースにアップグレードする場合は、より多くのゾーン構成がサポートされます。詳細は、「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」を参照してください。

この節では、Oracle Solaris Live Upgrade によるアップグレードやパッチの適用が可能になるように、ゾーンが含まれているシステムを構成してインストールする方法について説明します。ゾーンが含まれていない ZFS ルートファイルシステムに移行する場合は、「Oracle Solaris Live Upgrade を使用して ZFS ルートファイルシステムに移行する (ゾーンなし)」を参照してください。

Solaris 10 10/08 リリースで、ゾーンが含まれているシステムを移行する場合や、ゾーンが含まれているシステムを構成する場合は、次の手順を確認してください。

ZFS ルートファイルシステムが含まれているシステムでこれらの推奨手順に従ってゾーンを設定して、そのシステムで Oracle Solaris Live Upgrade を使用できるようにします。

ProcedureUFS 上にゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 10/08)

次の手順では、ゾーンがインストールされている UFS ルートファイルシステムを、アップグレードやパッチの適用が可能な ZFS ルートファイルシステムおよび ZFS ゾーンルート構成に移行する方法を説明します。

次の手順では、プール名の例として rpool、アクティブなブート環境の名前の例として s10BE* を使用しています。

  1. システムで以前の Solaris 10 リリースが稼働している場合は、Solaris 10 10/08 リリースにアップグレードします。

    Solaris 10 リリースが稼働しているシステムのアップグレードの詳細については、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。

  2. ルートプールを作成します。


    # zpool create rpool mirror c0t1d0 c1t1d0
    

    ルートプールの要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。

  3. UFS 環境のゾーンが起動されることを確認します。

  4. 新しい ZFS ブート環境を作成します。


    # lucreate -n s10BE2 -p rpool
    

    このコマンドは、新しいブート環境のデータセットをルートプールに確立し、現在のブート環境をゾーンも含めてそれらのデータセットにコピーします。

  5. 新しい ZFS ブート環境をアクティブにします。


    # luactivate s10BE2
    

    これで、システムでは ZFS ルートファイルシステムが稼働していますが、UFS 上のゾーンルートはまだ UFS ルートファイルシステムにあります。UFS ゾーンをサポートされる ZFS 構成に完全に移行するには、次の手順が必要です。

  6. システムを再起動します。


    # init 6
    
  7. ゾーンを ZFS BE に移行します。

    1. ゾーンを起動します。

    2. プール内に別の ZFS BE を作成します。


      # lucreate s10BE3
      
    3. 新しいブート環境をアクティブにします。


      # luactivate s10BE3
      
    4. システムを再起動します。


      # init 6
      

      この手順により、ZFS BE とゾーンが起動されることが確認されます。

  8. 発生する可能性のあるマウントポイントの問題をすべて解決します。

    Oracle Solaris Live Upgrade のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。

    1. zfs list の出力を確認します。

      正しくない一時的なマウントポイントを探します。次に例を示します。


      # zfs list -r -o name,mountpoint rpool/ROOT/s10u6
      
      NAME                               MOUNTPOINT
      rpool/ROOT/s10u6                   /.alt.tmp.b-VP.mnt/
      rpool/ROOT/s10u6/zones             /.alt.tmp.b-VP.mnt//zones
      rpool/ROOT/s10u6/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

      ルート ZFS BE (rpool/ROOT/s10u6) のマウントポイントは / となるべきです。

    2. ZFS BE とそのデータセットのマウントポイントを設定しなおします。

      次に例を示します。


      # zfs inherit -r mountpoint rpool/ROOT/s10u6
      # zfs set mountpoint=/ rpool/ROOT/s10u6
      
    3. システムを再起動します。

      GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。

ProcedureZFS 上にゾーンルートを持つ ZFS ルートファイルシステムを構成する方法 (Solaris 10 10/08)

次の手順では、アップグレードやパッチの適用が可能な ZFS ルートファイルシステムおよび ZFS ゾーンルート構成を設定する方法を説明します。この構成では、ZFS ゾーンルートは ZFS データセットとして作成されます。

次の手順では、プール名の例として rpool、アクティブなブート環境の名前の例として s10BE を使用しています。ゾーンのデータセットの名前には、正当なデータセット名であればどのようなものでも使用できます。次の例では、ゾーンのデータセットの名前は zones になっています。

  1. Solaris 対話式テキストインストーラまたは Solaris JumpStart インストール方法を使用して、システムを ZFS ルートでインストールします。

    初期インストールまたは Solaris JumpStart インストールを使用して ZFS ルートファイルシステムをインストールする方法については、「ZFS ルートファイルシステムのインストール (初期インストール)」または 「ZFS ルートファイルシステムのインストール (Oracle Solaris JumpStart インストール)」を参照してください。

  2. 新しく作成したルートプールからシステムを起動します。

  3. ゾーンルートをまとめるためのデータセットを作成します。

    次に例を示します。


    # zfs create -o canmount=noauto rpool/ROOT/s10BE/zones
    

    canmount プロパティーに noauto 値を設定すると、Oracle Solaris Live Upgrade とシステムの起動コードの明示的なアクションによらないかぎり、データセットはマウントされなくなります。

  4. 新しく作成したゾーンデータセットをマウントします。


    # zfs mount rpool/ROOT/s10BE/zones
    

    データセットは /zones にマウントされます。

  5. 各ゾーンルートのデータセットを作成し、マウントします。


    # zfs create -o canmount=noauto rpool/ROOT/s10BE/zones/zonerootA
    # zfs mount rpool/ROOT/s10BE/zones/zonerootA
    
  6. ゾーンルートディレクトリに適切なアクセス権を設定します。


    # chmod 700 /zones/zonerootA
    
  7. ゾーンを設定して、ゾーンパスを次のように設定します。


    # zonecfg -z zoneA
        zoneA: No such zone configured
        Use 'create' to begin configuring a new zone.
        zonecfg:zoneA> create
        zonecfg:zoneA> set zonepath=/zones/zonerootA
    

    次の構文を使用して、システムの起動時にゾーンが自動的に起動するように設定できます。


    zonecfg:zoneA> set autoboot=true
    
  8. ゾーンをインストールします。


    # zoneadm -z zoneA install
    
  9. ゾーンを起動します。


    # zoneadm -z zoneA boot
    

ProcedureZFS 上にゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 10/08)

ZFS 上にゾーンルートを持つ ZFS ルートファイルシステムにアップグレードやパッチを適用する必要がある場合は、次の手順を使用します。このような更新には、システムのアップグレードの場合と、パッチの適用の場合があります。

次の手順では、アップグレードまたはパッチを適用するブート環境の名前の例として newBE を使用しています。

  1. アップグレードまたはパッチを適用するブート環境を作成します。


    # lucreate -n newBE
    

    すべてのゾーンを含め、既存のブート環境が複製されます。元のブート環境の各データセットに対してデータセットが 1 つずつ作成されます。新しいデータセットは、現在のルートプールと同じプールに作成されます。

  2. 次のいずれかを選択して、システムをアップグレードするか新しいブート環境にパッチを適用します。

    • システムをアップグレードします。


      # luupgrade -u -n newBE -s /net/install/export/s10u7/latest
      

      ここで、-s オプションは Solaris インストールメディアの場所を指定します。

    • 新しいブート環境にパッチを適用します。


       # luupgrade -t -n newBE -t -s /patchdir 139147-02 157347-14
      
  3. 新しいブート環境をアクティブにします。


    # luactivate newBE
    
  4. 新たにアクティブにしたブート環境から起動します。


    # init 6
    
  5. 発生する可能性のあるマウントポイントの問題をすべて解決します。

    Oracle Solaris Live Upgrade 機能のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。

    1. zfs list の出力を確認します。

      正しくない一時的なマウントポイントを探します。次に例を示します。


      # zfs list -r -o name,mountpoint rpool/ROOT/newBE
      
      NAME                               MOUNTPOINT
      rpool/ROOT/newBE                   /.alt.tmp.b-VP.mnt/
      rpool/ROOT/newBE/zones             /.alt.tmp.b-VP.mnt/zones
      rpool/ROOT/newBE/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

      ルート ZFS BE (rpool/ROOT/newBE) のマウントポイントは / となるべきです。

    2. ZFS BE とそのデータセットのマウントポイントを設定しなおします。

      次に例を示します。


      # zfs inherit -r mountpoint rpool/ROOT/newBE
      # zfs set mountpoint=/ rpool/ROOT/newBE
      
    3. システムを再起動します。

      GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。

ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)

Solaris 10 10/08 以降のリリースでは、Oracle Solaris Live Upgrade 機能を使用して、ゾーンが含まれているシステムを移行またはアップグレードすることができます。Solaris 10 5/09 以降のリリースでは、疎ルートゾーン構成と完全ルートゾーン構成も Live Upgrade でサポートされます。

この節では、Solaris 10 5/09 以降のリリースで Oracle Solaris Live Upgrade によるアップグレードやパッチの適用が可能になるようにゾーンが含まれているシステムを構成する方法について説明します。ゾーンが含まれていない ZFS ルートファイルシステムに移行する場合は、「Oracle Solaris Live Upgrade を使用して ZFS ルートファイルシステムに移行する (ゾーンなし)」を参照してください。

Solaris 10 5/09 以降のリリースで ZFS とゾーンに Oracle Solaris Live Upgrade を使用する場合は、次の点を考慮してください。

Solaris 10 5/09 以降のリリースでゾーンを含むシステムを移行または構成する場合は、次の情報を確認してください。

サポートされているゾーンルート構成を持つ ZFS の情報 (Solaris 10 5/09 以降)

ゾーンが含まれているシステムを Oracle Solaris Live Upgrade を使用して移行またはアップグレードする前に、サポートされているゾーン構成を確認してください。

ProcedureZFS ルートファイルシステムとゾーンルートを持つ ZFS BE を作成する方法 (Solaris 10 5/09 以降)

Solaris 10 5/09 以降のリリースの初期インストールを実行したあとで、この手順を使用して ZFS ルートファイルシステムを作成します。また、luupgrade 機能を使って Solaris 10 5/09 以降のリリースに ZFS ルートファイルシステムをアップグレードしたあとも、この手順を使用します。この手順を使用して作成した ZFS BE には、あとでアップグレードやパッチを適用できます。

次の手順で例として使用する Oracle Solaris 10 9/10 システムは、ZFS ルートファイルシステムと、/rpool/zones にゾーンルートのデータセットを持っています。zfs2BE という名前の ZFS BE が作成されますが、あとでそのアップグレードやパッチの適用を行うことができます。

  1. 既存の ZFS ファイルシステムを確認します。


    # zfs list
    NAME                   USED  AVAIL  REFER  MOUNTPOINT
    rpool                 7.26G  59.7G    98K  /rpool
    rpool/ROOT            4.64G  59.7G    21K  legacy
    rpool/ROOT/zfsBE      4.64G  59.7G  4.64G  /
    rpool/dump            1.00G  59.7G  1.00G  -
    rpool/export            44K  59.7G    23K  /export
    rpool/export/home       21K  59.7G    21K  /export/home
    rpool/swap               1G  60.7G    16K  -
    rpool/zones            633M  59.7G   633M  /rpool/zones
  2. ゾーンがインストールされ起動されていることを確認します。


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       2 zfszone          running    /rpool/zones                   native   shared
  3. ZFS BE を作成します。


    # lucreate -n zfs2BE
    Analyzing system configuration.
    No name for current boot environment.
    INFORMATION: The current boot environment is not named - assigning name <zfsBE>.
    Current boot environment is named <zfsBE>.
    Creating initial configuration for primary boot environment <zfsBE>.
    The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
    PBE configuration successful: PBE name <zfsBE> PBE Boot Device </dev/dsk/c1t0d0s0>.
    Comparing source boot environment <zfsBE> file systems with the file 
    system(s) you specified for the new boot environment. Determining which 
    file systems should be in the new boot environment.
    Updating boot environment description database on all BEs.
    Updating system configuration files.
    Creating configuration for boot environment <zfs2BE>.
    Source boot environment is <zfsBE>.
    Creating boot environment <zfs2BE>.
    Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>.
    Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>.
    Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>.
    Population of boot environment <zfs2BE> successful.
    Creation of boot environment <zfs2BE> successful.
  4. ZFS BE をアクティブにします。


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfsBE                      yes      yes    yes       no     -         
    zfs2BE                     yes      no     no        yes    -         
    # luactivate zfs2BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs2BE>.
    .
    .
    .
    # init 6
    
  5. 新しい BE に ZFS ファイルシステムとゾーンが作成されていることを確認します。


    # zfs list
    NAME                               USED  AVAIL  REFER  MOUNTPOINT
    rpool                             7.38G  59.6G    98K  /rpool
    rpool/ROOT                        4.72G  59.6G    21K  legacy
    rpool/ROOT/zfs2BE                 4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs2BE@zfs2BE          74.0M      -  4.64G  -
    rpool/ROOT/zfsBE                  5.45M  59.6G  4.64G  /.alt.zfsBE
    rpool/dump                        1.00G  59.6G  1.00G  -
    rpool/export                        44K  59.6G    23K  /export
    rpool/export/home                   21K  59.6G    21K  /export/home
    rpool/swap                           1G  60.6G    16K  -
    rpool/zones                       17.2M  59.6G   633M  /rpool/zones
    rpool/zones-zfsBE                  653M  59.6G   633M  /rpool/zones-zfsBE
    rpool/zones-zfsBE@zfs2BE          19.9M      -   633M  -
    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       - zfszone          installed  /rpool/zones                   native   shared

Procedureゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 5/09 以降)

Solaris 10 5/09 以降のリリースで、ゾーンルートを持つ ZFS ルートファイルシステムにアップグレードやパッチを適用する必要がある場合は、次の手順を使用します。このような更新には、システムのアップグレードの場合と、パッチの適用の場合があります。

次の手順では、アップグレードまたはパッチを適用するブート環境の名前の例として zfs2BE を使用しています。

  1. 既存の ZFS ファイルシステムを確認します。


    # zfs list
    NAME                               USED  AVAIL  REFER  MOUNTPOINT
    rpool                             7.38G  59.6G   100K  /rpool
    rpool/ROOT                        4.72G  59.6G    21K  legacy
    rpool/ROOT/zfs2BE                 4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs2BE@zfs2BE          75.0M      -  4.64G  -
    rpool/ROOT/zfsBE                  5.46M  59.6G  4.64G  /
    rpool/dump                        1.00G  59.6G  1.00G  -
    rpool/export                        44K  59.6G    23K  /export
    rpool/export/home                   21K  59.6G    21K  /export/home
    rpool/swap                           1G  60.6G    16K  -
    rpool/zones                       22.9M  59.6G   637M  /rpool/zones
    rpool/zones-zfsBE                  653M  59.6G   633M  /rpool/zones-zfsBE
    rpool/zones-zfsBE@zfs2BE          20.0M      -   633M  -
  2. ゾーンがインストールされ起動されていることを確認します。


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       5 zfszone          running    /rpool/zones                   native   shared
  3. アップグレードまたはパッチを適用する ZFS BE を作成します。


    # lucreate -n zfs2BE
    Analyzing system configuration.
    Comparing source boot environment <zfsBE> file systems with the file 
    system(s) you specified for the new boot environment. Determining which 
    file systems should be in the new boot environment.
    Updating boot environment description database on all BEs.
    Updating system configuration files.
    Creating configuration for boot environment <zfs2BE>.
    Source boot environment is <zfsBE>.
    Creating boot environment <zfs2BE>.
    Cloning file systems from boot environment <zfsBE> to create boot environment <zfs2BE>.
    Creating snapshot for <rpool/ROOT/zfsBE> on <rpool/ROOT/zfsBE@zfs2BE>.
    Creating clone for <rpool/ROOT/zfsBE@zfs2BE> on <rpool/ROOT/zfs2BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs2BE>.
    Creating snapshot for <rpool/zones> on <rpool/zones@zfs10092BE>.
    Creating clone for <rpool/zones@zfs2BE> on <rpool/zones-zfs2BE>.
    Population of boot environment <zfs2BE> successful.
    Creation of boot environment <zfs2BE> successful.
  4. 次のいずれかを選択して、システムをアップグレードするか新しいブート環境にパッチを適用します。

    • システムをアップグレードします。


      # luupgrade -u -n zfs2BE -s /net/install/export/s10up/latest
      

      ここで、-s オプションは Solaris インストールメディアの場所を指定します。

      この処理には非常に長い時間がかかることがあります。

      luupgrade 処理の詳細な例については、例 5–6 を参照してください。

    • 新しいブート環境にパッチを適用します。


      # luupgrade -t -n zfs2BE -t -s /patchdir patch-id-02 patch-id-04
      
  5. 新しいブート環境をアクティブにします。


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfsBE                      yes      yes    yes       no     -         
    zfs2BE                     yes      no     no        yes    -    
    # luactivate zfs2BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs2BE>.
    .
    .
    .
  6. 新たにアクティブにしたブート環境から起動します。


    # init 6
    

例 5–6 ゾーンルートを持つ ZFS ルートファイルシステムを Oracle Solaris 10 9/10 の ZFS ルートファイルシステムにアップグレードする

この例では、Solaris 10 10/09 システムに作成された、非ルートプール内に ZFS ルートファイルシステムとゾーンルートを持つ ZFS BE (zfsBE) を、Oracle Solaris 10 9/10 リリースにアップグレードします。この処理には長い時間がかかることがあります。その後、アップグレードした BE (zfs2BE) をアクティブにします。アップグレードを行う前に、ゾーンがインストールされ起動されていることを確認してください。

この例では、zonepool プール、/zonepool/zones データセット、および zfszone ゾーンが、次のようにして作成されます。


# zpool create zonepool mirror c2t1d0 c2t5d0
# zfs create zonepool/zones
# chmod 700 zonepool/zones
# zonecfg -z zfszone
zfszone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zfszone> create
zonecfg:zfszone> set zonepath=/zonepool/zones
zonecfg:zfszone> verify
zonecfg:zfszone> exit
# zoneadm -z zfszone install
cannot create ZFS dataset zonepool/zones: dataset already exists
Preparing to install zone <zfszone>.
Creating list of files to copy from the global zone.
Copying <8960> files to the zone.
.
.
.

# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   2 zfszone          running    /zonepool/zones                native   shared

# lucreate -n zfsBE
.
.
.
# luupgrade -u -n zfsBE -s /net/install/export/s10up/latest
40410 blocks
miniroot filesystem is <lofs>
Mounting miniroot at </net/system/export/s10up/latest/Solaris_10/Tools/Boot>
Validating the contents of the media </net/system/export/s10up/latest>.
The media is a standard Solaris media.
The media contains an operating system upgrade image.
The media contains <Solaris> version <10>.
Constructing upgrade profile to use.
Locating the operating system upgrade program.
Checking for existence of previously scheduled Live Upgrade requests.
Creating upgrade profile for BE <zfsBE>.
Determining packages to install or upgrade for BE <zfsBE>.
Performing the operating system upgrade of the BE <zfsBE>.
CAUTION: Interrupting this process may leave the boot environment unstable 
or unbootable.
Upgrading Solaris: 100% completed
Installation of the packages from this media is complete.
Updating package information on boot environment <zfsBE>.
Package information successfully updated on boot environment <zfsBE>.
Adding operating system patches to the BE <zfsBE>.
The operating system patch installation is complete.
INFORMATION: The file </var/sadm/system/logs/upgrade_log> on boot 
environment <zfsBE> contains a log of the upgrade operation.
INFORMATION: The file </var/sadm/system/data/upgrade_cleanup> on boot 
environment <zfsBE> contains a log of cleanup operations required.
INFORMATION: Review the files listed above. Remember that all of the files 
are located on boot environment <zfsBE>. Before you activate boot 
environment <zfsBE>, determine if any additional system maintenance is 
required or if additional media of the software distribution must be 
installed.
The Solaris upgrade of the boot environment <zfsBE> is complete.
Installing failsafe
Failsafe install is complete.
# luactivate zfsBE
# init 6
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfsBE                      yes      no     no        yes    -         
zfs2BE                     yes      yes    yes       no     -         
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - zfszone          installed  /zonepool/zones                native   shared

Procedureゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 5/09 以降)

UFS ルートファイルシステムとゾーンルートを持つシステムを Solaris 10 5/09 以降のリリースに移行するには、次の手順を使用します。その後、Oracle Solaris Live Upgrade を使用して ZFS BE を作成します。

次の手順では、UFS BE の名前の例として c0t1d0s0、UFS ゾーンルートとして zonepool/zfszone、ZFS ルート BE として zfsBE を使用しています。

  1. システムで以前の Solaris 10 リリースが稼働している場合は、Solaris 10 5/09 以降のリリースにアップグレードします。

    Solaris 10 リリースが稼働しているシステムのアップグレードについては、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。

  2. ルートプールを作成します。

    ルートプールの要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。

  3. UFS 環境のゾーンが起動されることを確認します。


    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       2 zfszone          running    /zonepool/zones                native   shared
  4. 新しい ZFS ブート環境を作成します。


    # lucreate -c c1t1d0s0 -n zfsBE -p rpool
    

    このコマンドは、新しいブート環境のデータセットをルートプールに確立し、現在のブート環境をゾーンも含めてそれらのデータセットにコピーします。

  5. 新しい ZFS ブート環境をアクティブにします。


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    c1t1d0s0                   yes      no     no        yes    -         
    zfsBE                      yes      yes    yes       no     -         #
    luactivate zfsBE       
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfsBE>.
    .
    .
    .
  6. システムを再起動します。


    # init 6
    
  7. 新しい BE に ZFS ファイルシステムとゾーンが作成されていることを確認します。


    # zfs list
    NAME                                USED  AVAIL  REFER  MOUNTPOINT
    rpool                              6.17G  60.8G    98K  /rpool
    rpool/ROOT                         4.67G  60.8G    21K  /rpool/ROOT
    rpool/ROOT/zfsBE                   4.67G  60.8G  4.67G  /
    rpool/dump                         1.00G  60.8G  1.00G  -
    rpool/swap                          517M  61.3G    16K  -
    zonepool                            634M  7.62G    24K  /zonepool
    zonepool/zones                      270K  7.62G   633M  /zonepool/zones
    zonepool/zones-c1t1d0s0             634M  7.62G   633M  /zonepool/zones-c1t1d0s0
    zonepool/zones-c1t1d0s0@zfsBE       262K      -   633M  -
    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       - zfszone          installed  /zonepool/zones                native   shared

例 5–7 ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する

この例では、UFS ルートファイルシステムとゾーンルート (/uzone/ufszone) およびルート以外の ZFS プール (pool) とゾーンルート (/pool/zfszone) を持つ Oracle Solaris 10 9/10 システムを、ZFS ルートファイルシステムに移行します。移行を行う前に、ZFS ルートプールが作成されていることと、ゾーンがインストールされ起動されていることを確認してください。


# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   2 ufszone          running    /uzone/ufszone                 native   shared
   3 zfszone          running    /pool/zones/zfszone            native   shared

# lucreate -c ufsBE -n zfsBE -p rpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <zfsBE>.
Creating initial configuration for primary boot environment <zfsBE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufsBE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufsBE> file systems with the file 
system(s) you specified for the new boot environment. Determining which 
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment <zfsBE>.
Source boot environment is <ufsBE>.
Creating boot environment <zfsBE>.
Creating file systems on boot environment <zfsBE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>.
Populating file systems on boot environment <zfsBE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Copying root of zone <ufszone> to </.alt.tmp.b-EYd.mnt/uzone/ufszone>.
Creating snapshot for <pool/zones/zfszone> on <pool/zones/zfszone@zfsBE>.
Creating clone for <pool/zones/zfszone@zfsBE> on <pool/zones/zfszone-zfsBE>.
Creating compare databases for boot environment <zfsBE>.
Creating compare database for file system </rpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfsBE>.
Making boot environment <zfsBE> bootable.
Creating boot_archive for /.alt.tmp.b-DLd.mnt
updating /.alt.tmp.b-DLd.mnt/platform/sun4u/boot_archive
Population of boot environment <zfsBE> successful.
Creation of boot environment <zfsBE> successful.
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufsBE                      yes      yes    yes       no     -         
zfsBE                      yes      no     no        yes    -         
# luactivate zfsBE    
.
.
.
# init 6
.
.
.
# zfs list
NAME                                    USED  AVAIL  REFER  MOUNTPOINT
pool                                    628M  66.3G    19K  /pool
pool/zones                              628M  66.3G    20K  /pool/zones
pool/zones/zfszone                     75.5K  66.3G   627M  /pool/zones/zfszone
pool/zones/zfszone-ufsBE                628M  66.3G   627M  /pool/zones/zfszone-ufsBE
pool/zones/zfszone-ufsBE@zfsBE           98K      -   627M  -
rpool                                  7.76G  59.2G    95K  /rpool
rpool/ROOT                             5.25G  59.2G    18K  /rpool/ROOT
rpool/ROOT/zfsBE                       5.25G  59.2G  5.25G  /
rpool/dump                             2.00G  59.2G  2.00G  -
rpool/swap                              517M  59.7G    16K  -
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - ufszone          installed  /uzone/ufszone                 native   shared
   - zfszone          installed  /pool/zones/zfszone            native   shared

スワップデバイスおよびダンプデバイスの ZFS サポート

Solaris OS の初期インストール中、あるいは UFS ファイルシステムからの Oracle Solaris Live Upgrade 移行の実行後に、ZFS ルートプールの ZFS ボリュームにスワップ領域が作成されます。次に例を示します。


# swap -l
swapfile                  dev  swaplo  blocks   free
/dev/zvol/dsk/rpool/swap 256,1      16 4194288 4194288

Solaris OS の初期インストールまたは UFS ファイルシステムからの Oracle Solaris Live Upgrade の際に、ZFS ルートプールの ZFS ボリュームにダンプデバイスが作成されます。ダンプデバイスは一般に、インストール時に自動的に設定されるため、管理の必要はありません。次に例を示します。


# dumpadm
      Dump content: kernel pages
       Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash/t2000
  Savecore enabled: yes
   Save compressed: on

ダンプデバイスを無効にして削除した場合、ダンプデバイスを作成し直したあと、dumpadm コマンドを使ってデバイスを有効にする必要があります。ほとんどの場合、zfs コマンドを使ってダンプデバイスのサイズを調整するだけですみます。

インストールプログラムによって作成されるスワップボリュームとダンプボリュームのサイズについては、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。

スワップボリュームのサイズとダンプボリュームのサイズはどちらも、インストール中またはインストール後に調整することができます。詳細は、「ZFS スワップデバイスおよびダンプデバイスのサイズを調整する」を参照してください。

ZFS のスワップデバイスとダンプデバイスを操作する場合には、次の問題を考慮してください。

詳細は、次の章を参照してください。

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

ZFS ルートのインストールでは、スワップデバイスとダンプデバイスのサイズの決定方法が異なるため、インストール前、インストール中、またはインストール後にスワップデバイスとダンプデバイスのサイズの調整が必要になることがあります。

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

システムクラッシュダンプの取得やダンプデバイスのサイズ変更で問題が発生した場合には、次の項目を確認してください。

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

SPARC システムと x86 システムの両方で、ブートアーカイブによる新しい形式の起動方法が使用されます。ブートアーカイブは、起動に必要なファイルを含んだファイルシステムイメージです。ZFS ルートファイルシステムからシステムが起動される際には、ブートアーカイブとカーネルファイルのパス名が、起動用に選択されたルートファイルシステム内で解決されます。

インストールのためにシステムを起動する場合は、インストール処理の全体にわたって RAM ディスクがルートファイルシステムとして使用されます。

ZFS では、単一のルートファイルシステムではなくストレージプールが起動デバイス指定子で指定されるため、ZFS ファイルシステムからの起動は UFS ファイルシステムからの起動とは異なります。ストレージプールには、複数の「ブート可能なデータセット」または ZFS ルートファイルシステムが含まれている場合があります。ZFS から起動する場合は、起動デバイスと、起動デバイスによって指定されたプール内のルートファイルシステムを指定する必要があります。

デフォルトでは、プールの bootfs プロパティーで指定されているデータセットが、起動用に選択されます。別のブート可能データセットを boot -Z コマンドに指定することで、このデフォルトの選択を無効にできます。

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

ミラー化された ZFS ルートプールは、システムのインストール時に作成するか、インストール後にディスクを接続することによって作成することができます。詳細については、次のトピックを参照してください。

ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。

SPARC: ZFS ルートファイルシステムから起動する

複数の ZFS BE が存在する SPARC システムでは、luactivate コマンドを使用することによって、任意の BE から起動できます。

Solaris OS インストールおよび Oracle Solaris Live Upgrade の処理中に、ZFS ルートファイルシステムが bootfs プロパティーで自動的に指定されます。

ブート可能なデータセットがプール内に複数存在する場合があります。デフォルトでは、/pool-name/boot/menu.lst ファイルのブート可能データセットのエントリは、プールの bootfs プロパティーで指定されます。ただし、menu.lst のエントリに bootfs コマンドを含めて、プールの代替データセットを指定することもできます。このように、menu.lst ファイルには、プール内の複数のルートファイルシステムに対応するエントリが含まれている場合があります。

システムを ZFS ルートファイルシステムでインストールするか、ZFS ルートファイルシステムに移行すると、次のようなエントリが menu.lst ファイルに追加されます。


title zfsBE
bootfs rpool/ROOT/zfsBE
title zfs2BE
bootfs rpool/ROOT/zfs2BE

新しい BE を作成すると、menu.lst ファイルが自動的に更新されます。

SPARC システムでは、2 つの新しい起動オプションを使用できます。


例 5–8 SPARC: 特定の ZFS ブート環境から起動する

システムの起動デバイス上の ZFS ストレージプールに複数の ZFS BE が存在する場合は、luactivate コマンドを使用してデフォルトの BE を指定できます。

たとえば、次の ZFS BE が lustatus の出力のとおり使用可能であるとします。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfsBE                      yes      no     no        yes    -         
zfs2BE                     yes      yes    yes       no     -

SPARC システム上に ZFS BE が複数存在している場合、boot -L コマンドを使用すれば、デフォルト BE とは異なる BE から起動することができます。ただし、boot -L セッションから起動された BE がデフォルト BE としてリセットされることはなく、bootfs プロパティーも更新されません。boot -L セッションから起動された BE をデフォルト BE にするには、その BE を luactivate コマンドでアクティブにする必要があります。

次に例を示します。


ok boot -L
Rebooting with command: boot -L
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0  File and args: -L

1 zfsBE
2 zfs2BE
Select environment to boot: [ 1 - 2 ]: 1
To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfsBE

Program terminated
ok boot -Z rpool/ROOT/zfsBE


例 5–9 SPARC: ZFS ファイルシステムをフェイルセーフモードで起動する

SPARC システムでは、/platform/`uname -i`/failsafe にあるフェイルセーフアーカイブから、次のように起動できます。


ok boot -F failsafe

特定の ZFS ブート可能データセットのフェイルセーフアーカイブを起動するには、次のような構文を使用します。


ok boot -Z rpool/ROOT/zfsBE -F failsafe

x86: ZFS ルートファイルシステムから起動する

Solaris OS インストール処理中または Oracle Solaris Live Upgrade 操作中に、ZFS を自動的に起動するための次のようなエントリが /pool-name/boot/grub/menu.lst ファイルに追加されます。


title Solaris 10 9/10  X86
findroot (rootfs0,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

GRUB によって起動デバイスとして識別されたデバイスに ZFS ストレージプールが含まれている場合、menu.lst ファイルを使用して GRUB メニューが作成されます。

複数の ZFS BE が存在する x86 システムでは、BE を GRUB メニューから選択できます。このメニューエントリに対応するルートファイルシステムが ZFS データセットである場合は、次のオプションが追加されます。


-B $ZFS-BOOTFS

例 5–10 x86: ZFS ファイルシステムを起動する

ZFS ファイルシステムからシステムを起動する場合は、boot -B $ZFS-BOOTFS パラメータを GRUB メニューエントリの kernel 行または module 行に記述して、ルートデバイスを指定します。このパラメータ値は、-B オプションで指定されるすべてのパラメータと同様に、GRUB によってカーネルに渡されます。次に例を示します。



title Solaris 10 9/10  X86
findroot (rootfs0,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

例 5–11 x86: ZFS ファイルシステムをフェイルセーフモードで起動する

x86 のフェイルセーフアーカイブは /boot/x86.miniroot-safe です。GRUB メニューで Solaris フェイルセーフエントリを選択することによって起動できます。次に例を示します。


title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

正常な起動を妨げる ZFS マウントポイントの問題の解決 (Solaris 10 10/08)

アクティブなブート環境を変更するための最適な方法は、luactivate コマンドを使用することです。不適切なパッチや構成エラーが原因でアクティブな環境の起動に失敗する場合、別の環境から起動する唯一の方法は、起動時にその環境を選択することです。x86 システムでは GRUB メニューから代替 BE を選択でき、SPARC システムでは PROM から明示的に代替 BE を起動できます。

Solaris 10 10/08 リリースの Oracle Solaris Live Upgrade のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。同じバグのため、BE に別の /var データセットがある場合は、BE をマウントすることもできなくなります。

ゾーンのデータセットに無効なマウントポイントが含まれている場合は、次の手順を実行してマウントポイントを修正することができます。

ProcedureZFS マウントポイントの問題を解決する方法

  1. フェイルセーフアーカイブからシステムを起動します。

  2. プールをインポートします。

    次に例を示します。


    # zpool import rpool
    
  3. 正しくない一時的なマウントポイントを探します。

    次に例を示します。


    # zfs list -r -o name,mountpoint rpool/ROOT/s10u6
        
        NAME                               MOUNTPOINT
        rpool/ROOT/s10u6                   /.alt.tmp.b-VP.mnt/
        rpool/ROOT/s10u6/zones             /.alt.tmp.b-VP.mnt//zones
        rpool/ROOT/s10u6/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

    ルート BE (rpool/ROOT/s10u6) のマウントポイントは / となるべきです。

    /var のマウントの問題が原因で起動に失敗する場合は、/var データセットについて同様に、正しくない一時的なマウントポイントを探します。

  4. ZFS BE とそのデータセットのマウントポイントを設定しなおします。

    次に例を示します。


    # zfs inherit -r mountpoint rpool/ROOT/s10u6
    # zfs set mountpoint=/ rpool/ROOT/s10u6
    
  5. システムを再起動します。

    GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。

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

失われたルートパスワードやそれに似た問題から回復する目的でシステムを起動する必要がある場合は、次の手順を使用します。

エラーの深刻度に応じてフェイルセーフモードの起動、代替メディアからの起動のいずれかを行う必要があります。一般に、フェイルセーフモードを起動すれば、失われたルートパスワードや未知のルートパスワードを回復することができます。

ルートプールまたはルートプールのスナップショットを回復する必要がある場合は、「ZFS ルートプールまたはルートプールのスナップショットを回復する」を参照してください。

ProcedureZFS フェイルセーフモードを起動する方法

  1. フェイルセーフモードを起動します。

    SPARC システムの場合:


    ok boot -F failsafe
    

    x86 システムの場合、GRUB プロンプトからフェイルセーフモードを選択します。

  2. プロンプトが表示されたら、ZFS BE を /a にマウントします。


    .
    .
    .
    ROOT/zfsBE was found on rpool.
    Do you wish to have it mounted read-write on /a? [y,n,?] y
    mounting rpool on /a
    Starting shell.
  3. /a/etc ディレクトリに移動します。


    # cd /a/etc
    
  4. 必要であれば、TERM タイプを設定します。


    # TERM=vt100
    # export TERM
  5. passwd または shadow ファイルを修正します。


    # vi shadow
    
  6. システムを再起動します。


    # init 6
    

Procedure代替メディアから ZFS を起動する方法

システムの正常な起動を妨げる問題やその他の何らかの深刻な問題が発生した場合には、ネットワークインストールサーバーまたは Solaris インストール CD から起動し、ルートプールをインポートし、ZFS BE をマウントし、問題の解決を試みる必要があります。

  1. インストール CD またはネットワークから起動します。

    • SPARC:


      ok boot cdrom -s 
      ok boot net -s
      

      -s オプションを使用しない場合は、インストールプログラムを終了する必要があります。

    • x86: ネットワーク起動、ローカル CD からの起動、のいずれかのオプションを選択します。

  2. ルートプールをインポートし、代替マウントポイントを指定します。次に例を示します。


    # zpool import -R /a rpool
    
  3. ZFS BE をマウントします。次に例を示します。


    # zfs mount rpool/ROOT/zfsBE
    
  4. /a ディレクトリから ZFS BE の内容にアクセスします。


    # cd /a
    
  5. システムを再起動します。


    # init 6
    

ZFS ルートプールまたはルートプールのスナップショットを回復する

ここでは、次のタスクを実行する方法について説明します。

ProcedureZFS ルートプールのディスクを置き換える方法

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

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

一部のハードウェアでは、故障したディスクを交換するための 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
# 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/c1t9d0s0

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

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


/pci@8,700000/pci@3/scsi@5/sd@a,0

交換用起動ディスク (c1t9d0s0) のパス名は次のとおりです。


/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. 交換用ディスク (新しいディスク) を物理的に接続します。

  2. 新しいディスクに SMI ラベルが付けられていてスライス 0 があることを確認してください。

    ルートプールに使用するディスクのラベルを変更する方法については、次のサイトを参照してください。

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  3. 新しいディスクをルートプールに接続します。

    次に例を示します。


    # zpool attach rpool c1t10d0s0 c1t9d0s0
    
  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.
     scrub: resilver in progress, 25.47% done, 0h4m to go
    config:
    
            NAME           STATE     READ WRITE CKSUM
            rpool          ONLINE       0     0     0
              mirror-0     ONLINE       0     0     0
                c1t10d0s0  ONLINE       0     0     0
                c1t9d0s0   ONLINE       0     0     0
    
    errors: No known data errors
  5. ディスクの再同期化が完了したら、新しいディスクにブートブロックを適用します。

    次のような構文を使用します。

    • SPARC:


      # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0
      
    • x86:


      # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
      
  6. 新しいディスクから起動できることを確認します。

    たとえば、SPARC システムの場合、次のような構文を使用します。


    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
    
  7. 新しいディスクからシステムが起動した場合は、古いディスクを切り離します。

    次に例を示します。


    # zpool detach rpool c1t10d0s0
    
  8. システムが新しいディスクから自動的に起動するように設定します。そのためには、eeprom コマンドまたは SPARC ブート PROM のsetenv コマンドを使用するか、PC BIOS を再設定します。

Procedureルートプールのスナップショットを作成する方法

回復に利用できるようにルートプールのスナップショットを作成することができます。ルートプールのスナップショットを作成するための最適な方法は、ルートプールの再帰的なスナップショットを実行することです。

次の手順に従って、再帰的なルートプールスナップショットを作成し、そのスナップショットをリモートシステムでプール内のファイルとして保存します。ルートプールで障害が発生した場合には、NFS を使ってリモートデータセットをマウントし、そのスナップショットファイルを受信して作成し直したプール内に格納することができます。代わりに、ルートプールスナップショットをリモートシステムのプール内の実際のスナップショットとして保存することもできます。修復対象のシステムを Solaris OS ミニルートから起動する一方で ssh を構成または rsh を使用する必要があるので、リモートシステムとのスナップショットの送受信は、やや複雑です。

ルートプールスナップショットをリモートで保存して回復する方法、およびルートプールの回復に関する最新情報については、次のサイトを参照してください。

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

ファイルまたはスナップショットとしてリモートに格納されたスナップショットの内容を確認することは、ルートプールを回復する際の重要なステップです。プールの構成が変更された場合や Solaris OS をアップグレードした場合など、定期的にいずれかの方法を使ってスナップショットを作成し直すべきです。

次の手順では、zfsBE ブート環境からシステムを起動します。

  1. リモートシステム上で、スナップショットを格納するためのプールとファイルシステムを作成します。

    次に例を示します。


    remote# zfs create rpool/snaps
    
  2. ファイルシステムをローカルシステムと共有します。

    次に例を示します。


    remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps
    # share
    -@rpool/snaps   /rpool/snaps   sec=sys,rw=local-system,root=local-system   "" 
  3. ルートプールの再帰的なスナップショットを作成します。


    local# zfs snapshot -r rpool@0804
    local# zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /
    rpool/ROOT/zfsBE@0804       386K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  4. ルートプールのスナップショットをリモートシステムに送信します。

    次に例を示します。


    local# zfs send -Rv rpool@0804 > /net/remote-system/rpool/snaps/rpool.0804
    sending from @ to rpool@0804
    sending from @ to rpool/swap@0804
    sending from @ to rpool/ROOT@0804
    sending from @ to rpool/ROOT/zfsBE@0804
    sending from @ to rpool/dump@0804

ProcedureZFS ルートプールを再作成しルートプールのスナップショットを復元する方法

この手順では、次の条件を前提としています。

手順はすべてローカルシステム上で実行します。

  1. CD/DVD またはネットワークから起動します。

    • SPARC: 次のいずれかのブート方法を選択します。


      ok boot net -s
      ok boot cdrom -s
      

      -s オプションを使用しない場合は、インストールプログラムを終了する必要があります。

    • x86: DVD またはネットワークから起動するオプションを選択します。その後、インストールプログラムを終了します。

  2. リモートのスナップショットのデータセットをマウントします。

    次に例を示します。


    # mount -F nfs remote-system:/rpool/snaps /mnt
    

    ネットワークサービスを構成していない場合は、remote-system の IP アドレスを指定する必要があります。

  3. ルートプールのディスクが置き換えられ、ZFS で使用可能なディスクラベルを含んでいない場合は、ディスクのラベルを変更する必要があります。

    ディスクのラベル変更の詳細は、次の Web サイトを参照してください。

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  4. ルートプールを再作成します。

    次に例を示します。


    # zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
    /etc/zfs/zpool.cache rpool c1t1d0s0
    
  5. ルートプールのスナップショットを復元します。

    この手順には時間がかかることがあります。次に例を示します。


    # cat /mnt/rpool.0804 | zfs receive -Fdu rpool
    

    -u オプションを使用すると、復元されたアーカイブは zfs receive 処理の完了時にマウントされません。

  6. ルートプールのデータセットが復元されていることを確認します。

    次に例を示します。


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /a/rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /legacy
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /a
    rpool/ROOT/zfsBE@0804       398K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  7. ルートプールの BE に bootfs プロパティーを設定します。

    次に例を示します。


    # zpool set bootfs=rpool/ROOT/zfsBE rpool
    
  8. 新しいディスクに起動ブロックをインストールします。

    SPARC:


    # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
    

    x86:


    # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
    
  9. システムを再起動します。


    # init 6
    

Procedureフェイルセーフブートからルートプールのスナップショットをロールバックする方法

この手順では、ルートプールの既存のスナップショットを利用できることを前提としています。この例は、それらはローカルシステム上で使用可能となっています。


# zfs snapshot -r rpool@0804
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
rpool                      6.17G  60.8G    98K  /rpool
rpool@0804                     0      -    98K  -
rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
rpool/ROOT@0804                0      -    21K  -
rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /
rpool/ROOT/zfsBE@0804       398K      -  4.67G  -
rpool/dump                 1.00G  60.8G  1.00G  -
rpool/dump@0804                0      -  1.00G  -
rpool/swap                  517M  61.3G    16K  -
rpool/swap@0804                0      -    16K  -
  1. システムをシャットダウンし、フェイルセーフモードで起動します。


    ok boot -F failsafe
    ROOT/zfsBE was found on rpool.
    Do you wish to have it mounted read-write on /a? [y,n,?] y
    mounting rpool on /a
    
    Starting shell.
  2. ルートプールの各スナップショットをロールバックします。


    # zfs rollback rpool@0804
    # zfs rollback rpool/ROOT@0804
    # zfs rollback rpool/ROOT/zfsBE@0804
    
  3. 再起動してマルチユーザーモードにします。


    # init 6