Solaris ZFS 管理ガイド
この本のみを検索
PDF 文書ファイルをダウンロードする (2012 KB)

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

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

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

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

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

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

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

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

  • ZFS がルートファイルシステムとして選択されている場合は、初期インストールを実行できます。

  • Solaris Live Upgrade 機能を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行できます。また、Solaris Live Upgrade を使用して次のタスクを実行することもできます。

    • 既存の ZFS ルートプール内に新しいブート環境を作成する

    • 新しい ZFS ルートプール内に新しいブート環境を作成する

  • Solaris JumpStart プロファイルを使用して、システムが ZFS ルートファイルシステムによって自動的にインストールされるようにすることができます。

  • Solaris 10 10/09 リリースでは、JumpStart プロファイルを使用して、システムが ZFS フラッシュアーカイブによって自動的にインストールされるようにすることができます。

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

ZFS インストール機能

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

  • Solaris 対話式テキストインストーラを使用して、UFS または ZFS ルートファイルシステムをインストールできます。この Solaris リリースでも、デフォルトのファイルシステムは UFS です。対話式テキストインストーラは、次の方法で利用できます。

    • SPARC システムで、Solaris インストール DVD から起動する場合は次の構文を使用します。


      ok boot cdrom - text
    • SPARC システムで、ネットワークから起動する場合は次の構文を使用します。


      ok boot net - text
    • x86 システムでは、プロンプトが表示されたらテキストモードのインストールオプションを選択します。

  • カスタム JumpStartTM には次の機能が用意されています。

    • ZFS ストレージプールを作成してブート可能な ZFS ファイルシステムを指定するプロファイルをセットアップすることができます。

    • ZFS ルートプールのフラッシュアーカイブを識別するプロファイルをセットアップすることができます。

  • Solaris Live Upgrade 機能を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行できます。lucreate コマンドと luactivate コマンドが変更され、ZFS プールと ZFS ファイルシステムをサポートするようになりました。lustatus コマンドと ludelete コマンドは、以前の Solaris リリースと同様に動作します。

  • インストール時に 2 つのディスクを選択することにより、ミラー化された ZFS ルートプールを設定できます。また、インストール後に追加ディスクを接続することにより、ミラー化された ZFS ルートプールを作成できます。

  • ZFS ルートプールの ZFS ボリュームにスワップデバイスとダンプデバイスが自動的に作成されます。

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

  • 現時点では、ZFS ルートファイルシステムのインストールに GUI 機能は使用できません。

  • ZFS ルートファイルシステムをインストールするための SolarisTM フラッシュインストール機能は、初期インストールオプションからフラッシュインストールオプションを選択しても、使用することはできません。ただし、ZFS ルートプールのフラッシュアーカイブを識別するための JumpStart プロファイルを作成することができます。詳細は、「ZFS ルートファイルシステムをインストールする (フラッシュアーカイブインストール)」を参照してください。

  • 標準のアップグレードプログラムを使用して UFS ルートファイルシステムを ZFS ルートファイルシステムにアップグレードすることはできません。ブート可能な UFS スライスが少なくとも 1 つ存在する場合は、標準アップグレードを使用できます。ブート可能な ZFS プールが存在し、ブート可能な UFS スライスが存在しない場合は、アップグレードの方法として使用できるのは Live Upgrade だけで、標準のアップグレードプログラムは使用できません。ブート可能な UFS スライスとブート可能な ZFS プールの両方が存在する場合は、標準アップグレードを使用できますが、アップグレードできるのは UFS スライスだけです。

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

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

Solaris リリースの要件

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

  • ZFS ルートファイルシステムをインストールする – Solaris 10 10/08 以降のリリースで使用できます。

  • Live Upgrade を使用して UFS ルートファイルシステムから ZFS ルートファイルシステムに移行する – Solaris 10 10/08 以降のリリースをインストールしてあるか、Solaris 10 10/08 以降のリリースにアップグレードしてあることが必要です。

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

ZFS ルートプールの容量および構成の要件について説明している以降の節を確認してください。

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

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

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

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

  • ZFS ルートファイルシステムのインストールに必要な最小メモリー容量は 768M バイトです。

  • ZFS の全体的なパフォーマンスを向上させるには、1G バイトのメモリーを搭載することをお勧めします。

  • 推奨される最小ディスク容量は 16G バイトです。容量は次のように消費されます。

    • スワップ領域とダンプデバイス – Solaris インストールプログラムによって作成されるスワップボリュームとダンプボリュームのデフォルトのサイズは、次のとおりです。

      • Solaris の初期インストール – デフォルトのスワップボリュームサイズは、物理メモリーの半分 (新しい ZFS BE の場合、一般的には、512M バイト - 2G バイト) です。スワップサイズは、初期インストール時に調整することができます。

      • ダンプボリュームのデフォルトのサイズは、dumpadm の情報と物理メモリーのサイズに基づいて、カーネルによって計算されます。ダンプサイズは、初期インストール時に調整することができます。

      • Solaris Live Upgrade – UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する場合、ZFS ブート環境 (BE) のスワップボリュームのデフォルトサイズは、UFS BE のスワップデバイスのサイズとして計算されます。スワップボリュームのデフォルトサイズの計算では、UFS BE 内のすべてのスワップデバイスのサイズが単純に合計され、そのサイズの ZFS ボリュームが ZFS BE 内に作成されます。UFS BE にスワップデバイスが定義されていない場合、スワップボリュームのデフォルトサイズは 512M バイトに設定されます。

      • デフォルトのダンプボリュームサイズは、物理メモリーの半分 (ZFS BE の場合、512M バイト - 2G バイト) に設定されます。

      スワップボリュームとダンプボリュームのサイズを新しいサイズに調整することができます。ただし、システムの動作をサポートするサイズを選択する必要があります。詳細は、「ZFS スワップデバイスおよびダンプデバイスのサイズを調整する」を参照してください。

    • ブート環境 (BE) – 新しいスワップおよびダンプの容量要件、または調整したスワップおよびダンプのデバイスサイズのほかに、UFS BE から移行した ZFS BE には約 6G バイトが必要です。別の ZFS BE から複製された各 ZFS BE には、追加のディスク容量は必要ありませんが、パッチが適用されると BE のサイズが増加することを考慮してください。同じルートプール内の ZFS BE はすべて、同じスワップデバイスとダンプデバイスを使用します。

    たとえば、ブート可能な ZFS 環境には、12G バイトのディスク容量を備えたシステムでは小さすぎる可能性があります。UFS BE から移行した ZFS BE の場合、スワップデバイスとダンプデバイスにそれぞれ約 6G バイトのディスク容量が必要になるためです。

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

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

  • ルートプールに使用するプールには SMI ラベルが付いていなければなりません。ディスクスライスを使用してプールを作成する場合には、この要件を満たす必要があります。

  • プールは、ディスクスライスとミラー化されているディスクスライスのいずれかに存在していなければなりません。Live Upgrade での移行時に、サポートされていないプール構成を使用しようとすると、次のようなメッセージが表示されます。


    ERROR: ZFS pool name does not support boot environments

    サポートされている ZFS ルートプール構成の詳細については、「ZFS ルートプールを作成する」を参照してください。

  • x86 システムでは、ディスクに Solaris fdisk パーティションが含まれている必要があります。Solaris fdisk パーティションは、x86 システムのインストール時に自動的に作成されます。Solaris fdisk パーティションの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』「fdisk パーティションの作成上のガイドライン」を参照してください。

  • SPARC システムでも x86 システムでも、ZFS ルートプールで起動用として指定するディスクのサイズは 1T バイト以下でなければなりません。

  • ルートプールで圧縮を有効にすることはできますが、ルートプールをインストールしたあとでないと有効にすることはできません。ルートプールのインストール時に圧縮を有効にする方法はありません。ルートプールでは gzip 圧縮アルゴリズムはサポートされていません。

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

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

ZFS ルートファイルシステムの初期インストールのあとでゾーンを構成し、システムにパッチやアップグレードを適用することを計画している場合は、「ゾーンが含まれているシステムを Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」または「ゾーンが含まれているシステムを Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 および Solaris 10 10/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 をサポートするための Solaris インストールと Solaris Live Upgrade の要件」を参照してください。


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

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

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

    Solaris 10 10/08 以降のリリースでは、Solaris 10 10/08 以降のリリースがすでにインストールされていれば、UFS ルートファイルシステムから ZFS ルートファイルシステムに移行することができます。ZFS ルートファイルシステムへの移行の詳細については、「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (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] ** c1t1d0                                           69994 MB
      [ ]    c1t2d0                                           69994 MB  (F4 to edit)
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   7466 MB

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

  4. ミラー化ルートプールを作成するために 2 つのディスクを選択する場合は、Ctrl キーを押しながら 2 番目のディスクをクリックします。例えば、c1t1d1c0t2d0 の両方をルートプールディスクとして選択します。両方のディスクには、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] ** c1t1d0                                           69994 MB
      [X]    c1t2d0                                           69994 MB  (F4 to edit)
    
                                      Maximum Root Size:  69994 MB
                                      Suggested Minimum:   7466 MB

    [空き容量 (Available Space)] 列が「0 MB」になっている場合は、一般的な原因として、ディスクに EFI ラベルが付けられていることが考えられます。

  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_u8wos_08a
          ZFS Pool Size (in MB): 69994
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1024
            (Pool size must be between 6442 MB and 69995 MB)
    
                             [X] Keep / and /var combined
                             [ ] Put /var on a separate dataset

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

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


           ZFS Pool Name: rpool
          ZFS Root Dataset Name: zfs1009BE                               
          ZFS Pool Size (in MB): 69994
      Size of Swap Area (in MB): 2048
      Size of Dump Area (in MB): 1024
            (Pool size must be between 6442 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: c1t1d0
                  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: zfs1009BE
                              Pool Size: 69994 MB
                        Devices in Pool: c1t1d0
                                         c1t2d0

インストールが完了したら、作成された ZFS ストレージプールおよびファイルシステムの情報を確認します。次に例を示します。


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

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c1t1d0s0  ONLINE       0     0     0
            c1t2d0s0  ONLINE       0     0     0

errors: No known data errors
# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
rpool                 6.66G  60.3G    97K  /rpool
rpool/ROOT            4.66G  60.3G    21K  legacy
rpool/ROOT/zfs1009BE  4.66G  60.3G  4.66G  /
rpool/dump            1.00G  60.3G  1.00G  -
rpool/export            44K  60.3G    23K  /export
rpool/export/home       21K  60.3G    21K  /export/home
rpool/swap               1G  61.3G    16K  -

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

最初に 1 つのディスクで ZFS ストレージプールを作成した場合は、インストール完了後に zpool attach コマンドを使用して利用可能なディスクを接続することにより、ZFS ミラー化構成に変換できます。次に例を示します。


# zpool attach rpool c1t1d0s0 c1t2d0s0
# zpool status
  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 0h0m, 5.03% done, 0h13m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c1t1d0s0  ONLINE       0     0     0
            c1t2d0s0  ONLINE       0     0     0

errors: No known data errors

新しいディスクにデータを再同期化するために時間がかかりますが、プールは引き続き使用可能です。

CR 6668666 が解決されるまでは、ミラー内のほかのディスクで起動できるようにするには、追加で接続したディスクにブート情報を installboot コマンドまたは installgrub コマンドでインストールする必要があります。ミラー化された ZFS ルートプールを初期インストールで作成した場合は、この手順は不要です。ブート情報のインストールの詳細については、「ミラー化された ZFS ルートプールの代替ディスクから起動する」を参照してください。

ディスクの追加または接続の詳細については、「ZFS ストレージプール内のデバイスを管理する」を参照してください。

同じストレージプール内に別の ZFS ブート環境 (BE) を作成するには、lucreate コマンドを使用できます。次の例では、zfs10092BE という名前の新しい BE が作成されます。現在の BE は zfs509BE という名前で、zfs list の出力に表示されていますが、新しい 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 zfs10092BE
Analyzing system configuration.
No name for current boot environment.
INFORMATION: The current boot environment is not named - assigning name <zfs1009BE>.
Current boot environment is named <zfs1009BE>.
Creating initial configuration for primary boot environment <zfs1009BE>.
The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <zfs1009BE> PBE Boot Device </dev/dsk/c1t1d0s0>.
Comparing source boot environment <zfs1009BE> 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 <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <rpool/ROOT/zfs1009BE> on <rpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <rpool/ROOT/zfs1009BE@zfs10092BE> on <rpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.

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

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


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE                  yes      yes    yes       no     -         
zfs10092BE                 yes      no     no        yes    -         
# zfs list
NAME                              USED  AVAIL  REFER  MOUNTPOINT
rpool                            6.66G  60.3G    97K  /rpool
rpool/ROOT                       4.66G  60.3G    21K  legacy
rpool/ROOT/zfs10092BE              93K  60.3G  4.66G  /
rpool/ROOT/zfs1009BE             4.66G  60.3G  4.66G  /
rpool/ROOT/zfs1009BE@zfs10092BE  81.5K      -  4.66G  -
rpool/dump                       1.00G  60.3G  1.00G  -
rpool/export                       44K  60.3G    23K  /export
rpool/export/home                  21K  60.3G    21K  /export/home
rpool/swap                          1G  61.3G    16K  -

代替 BE からブートするには、luactivate コマンドを使用します。SPARC システムで BE をアクティブにしたあと、起動デバイスに ZFS ストレージプールが含まれている場合は、利用可能な BE を -boot L コマンドで識別します。x86 システムから起動する場合は、起動する BE を GRUB メニューで識別します。

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


ok boot -L
Executing last command: boot -L                                       
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0:a  File and args: -L
1 zfs1009BE
2 zfs10092BE
Select environment to boot: [ 1 - 2 ]: 2

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfs10092BE
ok boot -Z rpool/ROOT/zfs10092BE

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


ZFS ルートファイルシステムをインストールする (フラッシュアーカイブインストール)

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

  • ZFS ルートファイルシステムを含むシステムのインストールとブートに使用できるフラッシュアーカイブを生成します。

  • ZFS フラッシュアーカイブを使用して、システムの JumpStart インストールを実行します。ZFS フラッシュアーカイブを作成すると、個別のブート環境ではなく、ルートプール全体が複製されます。flarcreate コマンドと flar コマンドの -D オプションを使用して、プール内の個別のデータセットを除外できます。

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

  • サポートされているのは、ZFS フラッシュアーカイブの JumpStart インストールのみです。フラッシュアーカイブの対話式インストールオプションを使用して ZFS ルートファイルシステムを含んでいるシステムをインストールすることはできません。また、Solaris Live Upgrade によって ZFS BE をインストールするためにフラッシュアーカイブを使用することもできません。

  • インストールできるのは、ZFS フラッシュアーカイブと同じアーキテクチャを使用しているシステムのみです。例えば、sun4u システムで作成されたアーカイブは、sun4v システムにはインストールできません。

  • サポートされているのは、ZFS フラッシュアーカイブの完全な初期インストールのみです。ZFS ルートファイルシステムのさまざまなフラッシュアーカイブをインストールすることはできず、また、ハイブリッド UFS/ZFS アーカイブをインストールすることもできません。

  • 従来どおり、UFS ルートファイルシステムをインストールするために使用できるのは既存の UFS フラッシュアーカイブのみです。ZFS ルートファイルシステムをインストールするために使用できるのは ZFS フラッシュアーカイブのみです。

  • ルートプール全体 (ただし、明示的に除外されたデータセットを除く) がアーカイブされてインストールされますが、フラッシュアーカイブのインストール後に使用できるのは、アーカイブを作成時に起動されていた ZFS BE のみです。ただし、flar または flarcreate コマンドの -R rootdir オプションによってアーカイブされたプールを使用して、現在起動されているルートプール以外のルートプールをアーカイブすることができます。

  • フラッシュアーカイブを使用して作成される ZFS ルートプールの名前は、マスタールートプールの名前と同じです。フラッシュアーカイブを作成するために使用するルートプールの名前は、新規作成するプールに割り当てる名前です。プール名の変更はサポートされていません。

  • 個々のファイルを含める場合や除外する場合に使用する flarcreate および flar コマンドオプションは、ZFS フラッシュアーカイブではサポートされていません。データセットを ZFS フラッシュアーカイブから除外する場合はデータセット全体が除外されます。

  • flar info コマンドは ZFS フラッシュアーカイブではサポートされていません。次に例を示します。


    # flar info -l zfs10u8flar
    ERROR: archive content listing not supported for zfs archives.

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

  • マスターシステムで Solaris 10 10/09 リリースをインストールまたはアップグレードします。必要なカスタマイズを加えます。

  • マスターシステムで flarcreate コマンドを使用して ZFS フラッシュアーカイブを作成します。ZFS フラッシュアーカイブには、スワップボリュームとダンプボリューム以外のルートプール内のすべてのデータセットが含まれます。

  • インストールサーバーで、JumpStart プロファイルを作成してフラッシュアーカイブ情報を含めます。

  • ZFS フラッシュアーカイブをターゲットシステムにインストールします。

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

  • flarcreate または flar コマンドを使用して、ZFS ルートプールを指定してフラッシュアーカイブを作成します。特に指定しない場合は、デフォルトのルートプールのフラッシュアーカイブが作成されます。

  • flarcreate -D dataset を使用して、データセットを指定してフラッシュアーカイブから除外します。このオプションを複数回使用して複数のデータセットを除外することができます。

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

  • フラッシュアーカイブが作成されたシステム上のデータセット階層全体 (ただし、アーカイブの作成時に明示的に除外されたデータセットを除く) がターゲットシステム上で再作成されます。スワップボリュームおよびダンプボリュームは、フラッシュアーカイブに含まれません。

  • ルートプールには、アーカイブを作成するために使用されたプールと同じ名前が付けられます。

  • フラッシュアーカイブの作成時にアクティブだったブート環境が、展開先のシステムのアクティブなデフォルトの BE になります。


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

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


# flarcreate -n zfs10u8BE zfs10u8flar
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 プロファイルを作成します。例えば、zfs10u8flar アーカイブをインストールする場合は、次のようなプロファイルを使用します。


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

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

JumpStart プロファイルを作成して、ZFS ルートファイルシステムまたは UFS ルートファイルシステムをインストールできます。UFS ルートファイルシステムをインストールするためのプロファイルを設定した場合は、既存のすべてのプロファイルキーワードが以前の Solaris リリースと同様に機能します。

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

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

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

ZFS JumpStart プロファイルの例

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

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


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

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


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

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

ZFS JumpStart のキーワード

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

auto

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

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

ZFS ルートプールに使用する場合、プールには未使用領域の概念がないため、auto キーワードは all キーワードと同様に機能します。

bootenv

このキーワードは、ブート環境の特性を指定します。

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

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


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 インストールを開始する前に、次の問題を考慮してください。

  • 既存の ZFS ストレージプールを JumpStart インストールに使用して、ブート可能な ZFS ルートファイルシステムを作成することはできません。次のような構文を使用して、新しい ZFS ストレージプールを作成する必要があります。


    pool rpool 20G 4G 4G c0t0d0s0

    既存のプールは使用できないため、完全な pool キーワード行が必要です。次に例を示します。


    install_type initial_install
    cluster SUNWCall
    pool rpool 20G 4g 4g any
    bootenv installbe bename newBE
  • プールの作成には、ディスク全体ではなくスライスを使用する必要があります。詳細は、「ZFS をサポートするための Solaris インストールと Solaris Live Upgrade の要件」を参照してください。たとえば、太字で示された構文は使用できません。


    install_type initial_install
    cluster SUNWCall
    pool rpool all auto auto mirror c0t0d0 c0t1d0
    bootenv installbe bename newBE

    太字で示された次の構文は使用できます。


    install_type initial_install
    cluster SUNWCall
    pool rpool all auto auto mirror c0t0d0s0 c0t1d0s0
    bootenv installbe bename newBE

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

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

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

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

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

  • サポートされている任意の SPARC システムまたは x86 システムで、Solaris 10 10/08、Solaris 10 5/09、または Solaris 10 10/09 リリースをインストールするか、標準のアップグレードプログラムを使用して以前の Solaris 10 リリースからアップグレードします。

  • Solaris 10 10/08、Solaris 10 5/09、または Solaris 10 10/09 リリースを実行している場合は、ZFS ルートファイルシステムとして使用する ZFS ストレージプールを必要に応じて作成します。

  • Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行します。

  • ZFS BE を luactivate コマンドでアクティブにします。

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

ZFS の Solaris Live Upgrade 移行に関する問題

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

  • UFS から ZFS ルートファイルシステムへの移行には、Solaris インストール GUI の標準アップグレードオプションは使用できません。UFS ファイルシステムから移行するには、Solaris Live Upgrade を使用する必要があります。

  • Solaris Live Upgrade 操作の前に、起動に使用する ZFS ストレージプールを作成する必要があります。また、現時点での起動に関する制限のため、ZFS ルートプールの作成には、ディスク全体ではなくスライスを使用する必要があります。次に例を示します。


    # zpool create rpool mirror c1t0d0s0 c1t1d0s0

    新しいプールを作成する前に、プールで使用するディスクに、EFI ラベルではなく SMI (VTOC) ラベルが付いていることを確認してください。ディスクに SMI ラベルを付け直した場合は、ラベル付け処理によってパーティション分割方式が変更されていないことを確認してください。ほとんどの場合、ルートプールに使用するスライスにディスク容量の大部分を割り当てるようにしてください。

  • Solaris Live Upgrade を使用して、UFS BE を ZFS BE から作成することはできません。UFS BE を ZFS BE に移行し、UFS BE を維持する場合は、UFS BE または ZFS BE から起動できます。

  • Solaris Live Upgrade 機能は名前の変更に対応していないため、zfs rename コマンドで ZFS BE の名前を変更しないでください。名前を変更すると、以降に実行する ludelete などのコマンドが失敗します。したがって、既存の BE を引き続き使用する場合は、ZFS プールまたはファイルシステムの名前を変更しないでください。

  • Solaris Live Upgrade では、BE およびスワップ領域とダンプデバイスの ZFS ボリュームのデータセットが作成されますが、既存のデータセットプロパティーの変更は考慮されません。したがって、新しい BE でデータセットプロパティーを有効にするには、lucreate 操作の前にプロパティーを設定する必要があります。次に例を示します。


    # zfs set compression=on rpool/ROOT
  • 主 BE のクローンである代替 BE を作成するときに、-f-x-y-Y、および -z オプションを使用して主 BE のファイルを含めたり除外したりすることはできません。ただし、次の場合には、ファイルを含めるオプションと除外するオプションを使用できます。


    UFS -> UFS 
    UFS -> ZFS
    ZFS -> ZFS (different pool)
  • Solaris Live Upgrade を使用すると、UFS ルートファイルシステムを ZFS ルートファイルシステムにアップグレードできますが、ルート以外のファイルシステムまたは共有ファイルシステムはアップグレードできません。

  • lu コマンドを使用して ZFS ルートファイルシステムの作成や移行を行うことはできません。

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

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

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


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

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

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


# zpool create mpool mirror c1t2d0s0 c2t1d0s0
# lucreate -c ufs1009BE -n zfs1009BE -p mpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <ufs1009BE>.
Creating initial configuration for primary boot environment <ufs1009BE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufs1009BE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufs1009BE> 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 <zfs1009BE>.
Source boot environment is <ufs1009BE>.
Creating boot environment <zfs1009BE>.
Creating file systems on boot environment <zfs1009BE>.
Creating <zfs> file system for </> in zone <global> on <mpool/ROOT/zfs1009BE>.
Populating file systems on boot environment <zfs1009BE>.
Checking selection integrity.
Integrity check OK.
Populating contents of mount point </>.
Copying.
Creating shared file system mount points.
Creating compare databases for boot environment <zfs1009BE>.
Creating compare database for file system </mpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfs1009BE>.
Making boot environment <zfs1009BE> bootable.
Creating boot_archive for /.alt.tmp.b-qD.mnt
updating /.alt.tmp.b-qD.mnt/platform/sun4u/boot_archive
Population of boot environment <zfs1009BE> successful.
Creation of boot environment <zfs1009BE> successful.

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


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

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


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

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


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

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

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 <zfs1009BE> successful.

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


# init 6

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


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

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

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



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

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

SPARC システムに複数の ZFS BE が存在する場合は、利用可能な BE を boot -L コマンドで識別し、どの BE から起動するかを boot -Z コマンドで選択します。x86 システムでは、BE を GRUB メニューから選択できます。詳細は、例 5–9 を参照してください。


# lucreate -n zfs10092BE
Analyzing system configuration.
Comparing source boot environment <zfs1009BE> 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 <zfs10092BE>.
Source boot environment is <zfs1009BE>.
Creating boot environment <zfs10092BE>.
Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
Creating snapshot for <mpool/ROOT/zfs1009BE> on <mpool/ROOT/zfs1009BE@zfs10092BE>.
Creating clone for <mpool/ROOT/zfs1009BE@zfs10092BE> on <mpool/ROOT/zfs10092BE>.
Setting canmount=noauto for </> in zone <global> on <mpool/ROOT/zfs10092BE>.
Population of boot environment <zfs10092BE> successful.
Creation of boot environment <zfs10092BE> successful.


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

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

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

  • 代替 BE を lucreate コマンドで作成します。

  • 代替 BE をアクティブにし、そこから起動します。

  • 主 ZFS BE を luupgrade コマンドでアップグレードして、パッケージやパッチを追加します。


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs1009BE                  yes      no     no        yes    -         
zfs10092BE                 yes      yes    yes       no     -         
# luupgrade -p -n zfs1009BE -s /net/system/export/s10u8/Solaris_10/Product SUNWchxge

Validating the contents of the media </net/system/export/s10u8/Solaris_10/Product>.
Mounting the BE <zfs1009BE>.
Adding packages to the BE <zfs1009BE>.

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

Chelsio N110 10GE NIC Driver(sparc) 11.10.0,REV=2006.02.15.20.41
Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

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 <zfs1009BE>.
The package add to the BE <zfs1009BE> completed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    # lucreate -n S10BE2 -p rpool
    

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

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


    # luactivate s10BE2
    

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

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


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

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

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


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


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


      # init 6
      

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

  8. この 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 プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。

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

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

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

  1. 対話形式による初期インストールまたは Solaris JumpStart インストールを使用して、システムを ZFS ルートでインストールします。

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

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

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

    次に例を示します。


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

    ゾーンのデータセットの名前には、正当なデータセット名であればどのようなものでも使用できます。次の手順では、データセット名の例として zones を使用しています。

    canmount プロパティーに noauto 値を設定すると、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
    

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

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

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

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


    # lucreate -n newBE
    

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

  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. Solaris 10/08 リリースでは、マウントポイントに関連して発生する可能性のある問題をすべて解決してください。

    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 プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。

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

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

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

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

  • Solaris 10 5/09 以降のリリースでサポートされているゾーン構成に Live Upgrade を使用するには、まず標準のアップグレードプログラムを使用してシステムを Solaris 10 5/09 または Solaris 10 10/09 リリースにアップグレードする必要があります。

  • その後、Live Upgrade を使用して、ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行するか、ZFS ルートファイルシステムとゾーンルートにアップグレードやパッチを適用することができます。

  • サポートされていないゾーン構成を以前の Solaris 10 リリースから Solaris 10 5/09 または Solaris 10 10/09 リリースに直接移行することはできません。

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

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

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

  • UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する – 次のゾーンルート構成がサポートされています。

    • UFS ルートファイルシステムのディレクトリ内

    • UFS ルートファイルシステムのマウントポイントのサブディレクトリ内

    • ゾーンルートを持つ UFS ルートファイルシステム (前述) およびゾーンルートを持つルート以外の ZFS プール

    次の UFS/ゾーン構成はサポートされていません。

    • ゾーンルートをマウントポイントとして持つ UFS ルートファイルシステム

  • ZFS ルートファイルシステムを移行またはアップグレードする – 次のゾーンルート構成がサポートされています。

    • ZFS ルートプールのデータセット内。場合により、Live Upgrade 操作の前にゾーンルートのデータセットが用意されていないときは、ゾーンルートのデータセット (zoneds) が Live Upgrade によって作成されます。

    • ZFS ルートファイルシステムのサブディレクトリ内

    • ZFS ルートファイルシステムの外部にあるデータセット内

    • ZFS ルートファイルシステムの外部にあるデータセットのサブディレクトリ内

    • 非ルートプールのデータセット内。例えば、zonepool/zones はゾーンルートを含むデータセットであり、rpool は ZFS BE を含んでいます。


      zonepool
      zonepool/zones
      zonepool/zones/myzone
      rpool
      rpool/ROOT
      rpool/ROOT/myBE

      次の構文を使用すると、Live Upgrade 操作によって zonepool のゾーンおよび rpool BE のスナップショットが作成され、複製が行われます。


      # lucreate -n newBE

      rpool/ROOT/newBEnewBE BE が作成されます。これがアクティブになると、zonepool のコンポーネントにアクセスできるようになります。

      前述の例では、/zonepool/zones がサブディレクトリーであり、別個のデータセットではない場合には、それらは、ルートプール rpool のコンポーネントとして、Live Upgrade によって移行されます。

  • UFS および ZFS のゾーンの移行またはアップグレードに関する情報 – UFS 環境または ZFS 環境の移行とアップグレードに影響を与える可能性のある次の考慮事項を確認してください。

    • 「ゾーンが含まれているシステムを Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」の説明に従って Solaris 10 10/08 リリースでゾーンを構成し、Solaris 10 5/09 または Solaris 10 10/09 リリースにアップグレードした場合は、ZFS ルートファイルシステムへの移行や、Solaris Live Upgrade による Solaris 10 5/09 または Solaris 10 10/09 リリースへのアップグレードが可能なはずです。

    • zones/zone1zones/zone1/zone2 のような入れ子のディレクトリにゾーンルートを作成しないでください。起動時にマウントが失敗する可能性があります。

手順ZFS ルートファイルシステムとゾーンルートを持つ ZFS BE を作成する方法 (Solaris 10 5/09 または Solaris 10 10/09)

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

次の手順で例として使用する Solaris 10 10/09 システムは、ZFS ルートファイルシステムと、/rpool/zones にゾーンルートのデータセットを持っています。アップグレードやパッチの適用が可能な zfs10092BE という名前の 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/zfs1009BE  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 zfs10092BE
    Analyzing system configuration.
    Comparing source boot environment <zfs1009BE> 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 <zfs10092BE>.
    Source boot environment is <zfs1009BE>.
    Creating boot environment <zfs10092BE>.
    Cloning file systems from boot environment <zfs1009BE> to create boot environment <zfs10092BE>.
    Creating snapshot for <rpool/ROOT/zfs1009BE> on <rpool/ROOT/zfs1009BE@zfs10092BE>.
    Creating clone for <rpool/ROOT/zfs1009BE@zfs10092BE> on <rpool/ROOT/zfs10092BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10092BE>.
    Creating snapshot for <rpool/zones> on <rpool/zones@zfs10092BE>.
    Creating clone for <rpool/zones@zfs10092BE> on <rpool/zones-zfs10092BE>.
    Population of boot environment <zfs10092BE> successful.
    Creation of boot environment <zfs10092BE> successful.
  4. ZFS BE をアクティブにします。


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    zfs1009BE                  yes      yes    yes       no     -         
    zfs10092BE                 yes      no     no        yes    -         
    # luactivate zfs10092BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs10092BE>.
    .
    .
    .
    # 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/zfs10092BE             4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs10092BE@zfs10092BE  74.0M      -  4.64G  -
    rpool/ROOT/zfs1009BE              5.45M  59.6G  4.64G  /.alt.zfs1009BE
    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-zfs1009BE              653M  59.6G   633M  /rpool/zones-zfs1009BE
    rpool/zones-zfs1009BE@zfs10092BE  19.9M      -   633M  -
    # zoneadm list -cv
      ID NAME             STATUS     PATH                           BRAND    IP    
       0 global           running    /                              native   shared
       - zfszone          installed  /rpool/zones                   native   shared

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

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

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

  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/zfs10092BE             4.72G  59.6G  4.64G  /
    rpool/ROOT/zfs10092BE@zfs10092BE  75.0M      -  4.64G  -
    rpool/ROOT/zfs1009BE              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-zfs1009BE              653M  59.6G   633M  /rpool/zones-zfs1009BE
    rpool/zones-zfs1009BE@zfs10092BE  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 zfs10093BE
    Analyzing system configuration.
    Comparing source boot environment <zfs10092BE> 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 <zfs10093BE>.
    Source boot environment is <zfs10092BE>.
    Creating boot environment <zfs10093BE>.
    Cloning file systems from boot environment <zfs10092BE> to create boot environment <zfs10093BE>.
    Creating snapshot for <rpool/ROOT/zfs10092BE> on <rpool/ROOT/zfs10092BE@zfs10093BE>.
    Creating clone for <rpool/ROOT/zfs10092BE@zfs10093BE> on <rpool/ROOT/zfs10093BE>.
    Setting canmount=noauto for </> in zone <global> on <rpool/ROOT/zfs10093BE>.
    Creating snapshot for <rpool/zones> on <rpool/zones@zfs10093BE>.
    Creating clone for <rpool/zones@zfs10093BE> on <rpool/zones-zfs10093BE>.
    Population of boot environment <zfs10093BE> successful.
    Creation of boot environment <zfs10093BE> successful.
  4. 次のいずれかを選択して、システムをアップグレードするか新しいブート環境にパッチを適用します。

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


      # luupgrade -u -n zfs10093BE -s /net/install/export/s10uX/combined.s10s_uXwos/latest
      

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

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

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

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


      # luupgrade -t -n zfs10093BE -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    
    -------------------------- -------- ------ --------- ------ ----------
    zfs1009BE                  yes      no     no        yes    -         
    zfs10092BE                 yes      yes    yes       no     -         
    zfs10093BE                 yes      no     no        yes    -     
    # luactivate zfs10093BE
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs10093BE>.
    .
    .
    .
  6. 新しくアクティブにしたブート環境から起動します。


    # init 6
    

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

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

この例では、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 zfs1009BE
.
.
.
# luactivate zfs1009BE
.
.
.

# init 6
# luupgrade -u -n zfs1009BE -s /net/install/export/s10u8/combined.s10s_u8wos/latest
40410 blocks
miniroot filesystem is <lofs>
Mounting miniroot at </net/system/export/s10u8/latest/Solaris_10/Tools/Boot>
Validating the contents of the media </net/system/export/s10u8//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 <zfs1009BE>.
Determining packages to install or upgrade for BE <zfs1009BE>.
Performing the operating system upgrade of the BE <zfs1009BE>.
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 <zfs1009BE>.
Package information successfully updated on boot environment <zfs1009BE>.
Adding operating system patches to the BE <zfs1009BE>.
The operating system patch installation is complete.
INFORMATION: The file </var/sadm/system/logs/upgrade_log> on boot 
environment <zfs1009BE> contains a log of the upgrade operation.
INFORMATION: The file </var/sadm/system/data/upgrade_cleanup> on boot 
environment <zfs1009BE> contains a log of cleanup operations required.
INFORMATION: Review the files listed above. Remember that all of the files 
are located on boot environment <zfs1009BE>. Before you activate boot 
environment <zfs1009BE>, 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 <zfs1009BE> is complete.
Installing failsafe
Failsafe install is complete.
# luactivate zfs1009BE
# init 6
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfs509BE                   yes      no     no        yes    -         
zfs1009BE                  yes      yes    yes       no     -   
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - zfszone          installed  /zonepool/zones                native   shared

手順ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 5/09 または Solaris 10 10/09)

UFS ルートファイルシステムとゾーンルートを持つシステムを Solaris 10 5/09 または Solaris 10 10/09 リリースにアップグレードするには、次の手順を使用します。その後、Live Upgrade を使用して ZFS BE を作成します。

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

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

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

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

    ルートプールの要件については、「ZFS をサポートするための Solaris インストールと 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 zfs1009 -p rpool
    

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

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


    # lustatus
    Boot Environment           Is       Active Active    Can    Copy      
    Name                       Complete Now    On Reboot Delete Status    
    -------------------------- -------- ------ --------- ------ ----------
    c1t1d0s0                   yes      yes    yes       no     -         
    zfs1009BE                  yes      no     no        yes    -         
    # luactivate zfs1009BE       
    A Live Upgrade Sync operation will be performed on startup of boot environment <zfs1009BE>.
    .
    .
    .
  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/zfs1009BE               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@zfs1009BE   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) を持つ Solaris 10 10/09 システムを、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 ufs1009BE -n zfs1009BE -p rpool
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named <ufs509BE>.
Creating initial configuration for primary boot environment <ufs509BE>.
The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name <ufs1009BE> PBE Boot Device </dev/dsk/c1t0d0s0>.
Comparing source boot environment <ufs1009BE> 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 <zfs1009BE>.
Source boot environment is <ufs1009BE>.
Creating boot environment <zfs1009BE>.
Creating file systems on boot environment <zfs1009BE>.
Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfs1009BE>.
Populating file systems on boot environment <zfs1009BE>.
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@zfs1009BE>.
Creating clone for <pool/zones/zfszone@zfs1009BE> on <pool/zones/zfszone-zfs1009BE>.
Creating compare databases for boot environment <zfs1009BE>.
Creating compare database for file system </rpool/ROOT>.
Creating compare database for file system </>.
Updating compare databases on boot environment <zfs1009BE>.
Making boot environment <zfs1009BE> bootable.
Creating boot_archive for /.alt.tmp.b-DLd.mnt
updating /.alt.tmp.b-DLd.mnt/platform/sun4u/boot_archive
Population of boot environment <zfs1009BE> successful.
Creation of boot environment <zfs1009BE> successful.
# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
ufs1009BE                  yes      yes    yes       no     -         
zfs1009BE                  yes      no     no        yes    -         
# luactivate zfs1009BE    
.
.
.
# 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-ufs1009BE            628M  66.3G   627M  /pool/zones/zfszone-ufs1009BE
pool/zones/zfszone-ufs1009BE@zfs1009BE   98K      -   627M  -
rpool                                  7.76G  59.2G    95K  /rpool
rpool/ROOT                             5.25G  59.2G    18K  /rpool/ROOT
rpool/ROOT/zfs1009BE                   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 サポート

初期インストールまたは UFS ファイルシステムからの Solaris Live Upgrade の際に、ZFS ルートプールの ZFS ボリュームにスワップ領域が作成されます。次に例を示します。


# swap -l
swapfile                  dev    swaplo   blocks     free
/dev/zvol/dsk/mpool/swap 253,3        16  8257520  8257520

初期インストールまたは UFS ファイルシステムからの Solaris Live Upgrade の際に、ZFS ルートプールの ZFS ボリュームにダンプデバイスが作成されます。ダンプデバイスを設定したあとは、ダンプデバイスの管理は不要です。次に例を示します。


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

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

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

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

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

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

  • ZFS ダンプボリュームのパフォーマンスは、ボリュームを 128K バイトのブロックサイズで作成すると大幅に向上します。

  • スワップボリュームとダンプボリュームのサイズは、初期インストール時に調整することができます。詳細は、例 5–1 を参照してください。

  • Solaris Live Upgrade 操作を実行する前に、スワップボリュームとダンプボリュームを作成し、それらのサイズを設定することができます。次に例を示します。

    1. ストレージプールを作成します。


      # zpool create rpool mirror c0t0d0s0 c0t1d0s0
      
    2. ダンプデバイスを作成します。


      # zfs create -V 2G rpool/dump
      
    3. 次のいずれかを選択してスワップ領域を作成します。

      • SPARC システムで、スワップ領域を作成します。ブロックサイズを 8K バイトに設定します。


        # zfs create -V 2G -b 8k rpool/swap
        
      • x86 システムで、スワップ領域を作成します。ブロックサイズを 4K バイトに設定します。


        # zfs create -V 2G -b 4k rpool/swap
        
    4. 新しいスワップデバイスを追加または変更したときは、スワップ領域をアクティブにしてください。

    Solaris Live Upgrade では、既存のスワップボリュームとダンプボリュームのサイズは変更されません。

  • ダンプデバイスの volsize プロパティーは、システムのインストール後に再設定することができます。次に例を示します。


    # zfs set volsize=2G rpool/dump
    # zfs get volsize rpool/dump
    NAME        PROPERTY  VALUE       SOURCE
    rpool/dump  volsize   2G          -
  • スワップボリュームのサイズを変更することはできますが、CR 6765386 を組み込むまでは、まずスワップデバイスを削除することをお勧めします。そのあとで再作成してください。次に例を示します。


    # swap -d /dev/zvol/dsk/rpool/swap
    # zfs volsize=2G rpool/swap
    # swap -a /dev/zvol/dsk/rpool/swap
    

    アクティブなシステムからスワップデバイスを削除する方法については、次のサイトを参照してください。

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

  • JumpStart プロファイルのスワップボリュームとダンプボリュームのサイズは、次のようなプロファイル構文を使用して調整することができます。


    install_type initial_install
    cluster SUNWCXall
    pool rpool 16g 2g 2g c0t0d0s0

    このプロファイルでは、2g エントリと 2g エントリにより、スワップ領域とダンプデバイスのサイズがそれぞれ 2G バイトと 2G バイトに設定されます。

  • インストール済みのシステムのスワップ領域を増やす必要がある場合は、スワップボリュームを追加するだけです。次に例を示します。


    # zfs create -V 2G rpool/swap2
    

    その後、新しいスワップボリュームをアクティブにします。次に例を示します。


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

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

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

インストールのためにシステムを起動する場合は、インストール処理の全体にわたって RAM ディスクがルートファイルシステムとして使用されます。これにより、リムーバブルメディアから起動する必要がなくなります。

Solaris 10 10/08 または Solaris 10 5/09 リリースの初期インストールを実行するか、このリリースで Solaris Live Upgrade を使用して ZFS ルートファイルシステムに移行する場合は、SPARC システムでも x 86 システムでも、ZFS ルートファイルシステムから起動することができます。

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

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

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

ミラー化された ZFS ルートプールは、システムのインストール時に作成するか、インストール後にディスクを接続することによって作成することができます。ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。

  • CR 6668666 – ミラー内のほかのディスクで起動できるようにするには、追加で接続したディスクにブート情報を installboot コマンドまたは installgrub コマンドでインストールする必要があります。ミラー化された ZFS ルートプールを初期インストールで作成した場合は、この手順は不要です。たとえば、ミラーに追加した 2 番目のディスクが c0t1d0s0 であった場合、installboot コマンドまたは installgrub コマンドは次のようになります。


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

    x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0
    
  • ミラー化された ZFS ルートプールのさまざまなデバイスから起動することができます。ハードウェア構成によっては、別の起動デバイスを指定するには、PROM または BIOS の更新が必要になる場合があります。

    たとえば、このプール内のどちらかのディスク (c1t0d0s0 または c1t1d0s0) から起動できます。


    # zpool status
      pool: rpool
     state: ONLINE
     scrub: none requested
    config:
    
            NAME          STATE     READ WRITE CKSUM
            rpool         ONLINE       0     0     0
              mirror      ONLINE       0     0     0
                c1t0d0s0  ONLINE       0     0     0
                c1t1d0s0  ONLINE       0     0     0

    SPARC システムでは、ok プロンプトに代替ディスクを入力します。


    ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1
    

    システムが再起動したら、アクティブな起動デバイスを確認します。次に例を示します。


    SPARC# prtconf -vp | grep bootpath
            bootpath:  '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1,0:a'

    x86 システムで、次のような構文を使用します。


    x86# prtconf -v|sed -n '/bootpath/,/value/p'
            name='bootpath' type=string items=1
                value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a'
  • x86 システムでは、ミラー化された ZFS ルートプールの代替ディスクを、適切な BIOS メニューで選択します。

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

複数の ZFS BE が存在する SPARC システムでは、luactivate コマンドを使用することによって、任意の BE から起動できます。BE をアクティブにしたあと、起動デバイスに ZFS ストレージプールが含まれている場合は、boot -L コマンドを使用して BE のリストを表示できます。

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

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

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


title zfs1009BE
bootfs rpool/ROOT/zfs1009BE
title zfs509BE
bootfs rpool/ROOT/zfs509BE

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

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

  • boot -L コマンドを使用して、ZFS プール内のブート可能なデータセットのリストを表示できます。その後、ブート可能なデータセットの 1 つをリストで選択できます。そのデータセットを起動するための詳細な手順が表示されます。手順に従って、選択したデータセットを起動できます。このオプションは、起動デバイスに ZFS ストレージプールが含まれている場合にのみ使用できます。

  • boot -Z dataset コマンドを使用して、特定の ZFS データセットを起動できます。


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

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

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


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

SPARC システムに複数の ZFS BE が存在する場合は、boot -L コマンドを使用できます。次に例を示します。


ok boot -L
Rebooting with command: boot -L
Boot device: /pci@8,600000/SUNW,qlc@2/fp@0,0/disk@w500000e01082bbd1,0:a  File and args: -L
1 zfs1009BE
2 zfs509BE
Select environment to boot: [ 1 - 2 ]: 2
ok boot -Z rpool/ROOT/zfs509BE


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

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


ok boot -F failsafe

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


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

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

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


title Solaris 10 10/09 s10x_u8wos_07b X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (pool_rpool,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 10/09 s10x_u8wos_07b X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (pool_rpool,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 (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

正常な起動を妨げる ZFS マウントポイントの問題の解決

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

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

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

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

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

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

    次に例を示します。


    # zpool import rpool
    
  3. プールがインポートされたら、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

    ルート 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 ルートプールのディスクを置き換える方法

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

  • ルートプールが小さすぎるため、より大きいディスクに置き換えたい

  • ルートプールのディスクに障害が発生している。ディスクに障害が発生しているためシステムが起動しない場合は、CD やネットワークなどの代替メディアから起動したあとでルートプールのディスクを置き換える必要があります。

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


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

次の例で、交換用起動ディスク (c4t0d0s0) は次のとおりです。


/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 c4t0d0s0
    
  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      ONLINE       0     0     0
                c1t0d0s0  ONLINE       0     0     0
                c1t5d0s0  ONLINE       0     0     0
    
    errors: No known data errors
  5. ディスクの再同期化が完了したら、新しいディスクにブートブロックを適用します。

    次に例を示します。

    SPARC システムの場合は、次のようになります。


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

    x86 システムの場合は、次のようになります。


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

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


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

    次に例を示します。


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

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

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

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

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

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

ファイルまたはスナップショットとしてリモートで保存されたスナップショットの検証は、ルートプールの回復における重要な手順です。いずれの場合でも、プール構成の変更時や Solaris OS のアップグレード時など、スナップショットを日常的に再作成する必要があります。

次の例では、システムが zfs1009BE ブート環境から起動されています。

  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/zfs1009BE       4.67G  60.8G  4.67G  /
    rpool/ROOT/zfs1009BE@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/zfs1009BE@0804
    sending from @ to rpool/dump@0804

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

このシナリオでは、次の条件を前提としています。

  • ZFS ルートプールを回復できない

  • ZFS ルートプールのスナップショットがリモートシステム上に保存されており、NFS で共有されている

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

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

    SPARC システムで、次の起動方法の 1 つを選択します。


    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
    
  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/zfs1009BE       4.67G  60.8G  4.67G  /a
    rpool/ROOT/zfs1009BE@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/zfs1009BE rpool
    
  8. 新しいディスクに起動ブロックをインストールします。

    SPARC システムの場合は、次のようになります。


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

    x86 システムの場合は、次のようになります。


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


    # init 6
    

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

この手順では、ルートプールの既存のスナップショットを利用できることを前提としています。この例では、ルートプールのスナップショットはローカルシステム上にあります。次に例を示します。


# 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/zfs1009BE       4.67G  60.8G  4.67G  /
rpool/ROOT/zfs1009BE@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
    Multiple OS instances were found. To check and mount one of them
    read-write under /a, select it from the following list. To not mount
    any, select 'q'.
    
     1  /dev/dsk/c1t1d0s0              Solaris 10 10/09 s10s_u8wos_04 SPARC
     2  rpool:11306141908645873833     ROOT/zfs10092BE
    
    Please select a device to be mounted (q for none) [?,??,q]: 2
    mounting rpool on /a
    
    Starting shell.
  2. ルートプールの個々のスナップショットをロールバックします。


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


    # init 6