この章では、Oracle Solaris ZFS ファイルシステムのインストールと起動の方法について説明します。Oracle Solaris Live Upgrade を使用して UFS ルートファイルシステムを ZFS ファイルシステムに移行する方法についても説明します。
この章は、次の節で構成されます。
「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」
「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」
このリリースで認識されている問題のリストについては、『Oracle Solaris 10 9/10 ご使用にあたって』を参照してください。
トラブルシューティングに関する最新情報については、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Solaris 10 10/08 以降のリリースでは、次の方法で ZFS ルートファイルシステムからインストールと起動を行うことができます。
初期インストールを実行できます。その場合、ZFS がルートファイルシステムとして選択されます。
Oracle Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行できます。また、Oracle Solaris Live Upgrade を使用して次のタスクを実行することもできます。
既存の ZFS ルートプール内に新しいブート環境を作成する。
新しい ZFS ルートプール内に新しいブート環境を作成する。
Oracle Solaris JumpStart プロファイルを使用して、システムが ZFS ルートファイルシステムによって自動的にインストールされるようにすることができます。
Solaris 10 10/09 以降のリリースでは、JumpStart プロファイルを使用して、システムが ZFS フラッシュアーカイブによって自動的にインストールされるようにすることができます。
SPARC システムまたは x86 システムを ZFS ルートファイルシステムでインストールするか、ZFS ルートファイルシステムに移行したあとは、システムは自動的に ZFS ルートファイルシステムから起動します。起動の変更に関する詳細は、「ZFS ルートファイルシステムからの起動」を参照してください。
この Solaris リリースでは、次の ZFS インストール機能が用意されています。
Solaris 対話式テキストインストーラを使用して、UFS または ZFS ルートファイルシステムをインストールできます。この Solaris リリースでも、デフォルトのファイルシステムは UFS です。対話式テキストインストーラは、次の方法で利用できます。
SPARC: Solaris インストール DVD から起動する場合は次の構文を使用します。
ok boot cdrom - text |
SPARC: ネットワークから起動する場合は次の構文を使用します。
ok boot net - text |
x86: テキストモードインストールのオプションを選択します。
カスタム JumpStart プロファイルが提供する機能は次のとおりです。
ZFS ストレージプールを作成してブート可能な ZFS ファイルシステムを指定するプロファイルをセットアップすることができます。
ZFS ルートプールのフラッシュアーカイブを識別するプロファイルをセットアップすることができます。
Oracle Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行できます。lucreate コマンドと luactivate コマンドが変更され、ZFS プールと ZFS ファイルシステムをサポートするようになりました。
インストール時に 2 つのディスクを選択することにより、ミラー化された ZFS ルートプールを設定できます。また、インストール後に追加ディスクを接続することにより、ミラー化された ZFS ルートプールを作成できます。
ZFS ルートプールの ZFS ボリュームにスワップデバイスとダンプデバイスが自動的に作成されます。
このリリースでは、次のインストール機能は用意されていません。
現時点では、ZFS ルートファイルシステムのインストールに GUI 機能は使用できません。
ZFS ルートファイルシステムをインストールするための Oracle Solaris フラッシュインストール機能は、初期インストールオプションからフラッシュインストールオプションを選択しても、使用することはできません。ただし、ZFS ルートプールのフラッシュアーカイブを識別するための JumpStart プロファイルを作成することができます。詳細は、「ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)」を参照してください。
標準のアップグレードプログラムを使用して UFS ルートファイルシステムを ZFS ルートファイルシステムにアップグレードすることはできません。
システムを ZFS ルートファイルシステムでインストールする場合や、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する場合は、次の要件が満たされていることを事前に確認してください。
ZFS ルートファイルシステムのインストールと起動または ZFS ルートファイルシステムへの移行は、次の方法で行うことができます。
ZFS ルートファイルシステムをインストールする – Solaris 10 10/08 以降のリリースで使用できます。
Oracle Solaris Live Upgrade を使用して UFS ルートファイルシステムから ZFS ルートファイルシステムに移行する – Solaris 10 10/08 以降のリリースをインストールしてあるか、Solaris 10 10/08 以降のリリースにアップグレードしてあることが必要です。
次の各節では、ZFS ルートプールの容量および構成の要件について説明します。
ZFS ルート環境にはスワップデバイスおよびダンプデバイスとして別個のデバイスが必要なので、ZFS ルートファイルシステムに最小限必要なプール容量は、UFS ルートファイルシステムの場合よりも大きくなります。UFS ルートファイルシステムの場合、デフォルトではスワップデバイスとダンプデバイスは同一のデバイスです。
システムを ZFS ルートファイルシステムでインストールまたはアップグレードする場合、スワップ領域とダンプデバイスのサイズは、物理メモリーの容量によって決まります。ブート可能な ZFS ルートファイルシステムに最小限必要なプール容量は、物理メモリーの容量、利用可能なディスク容量、および作成するブート環境 (BE) の数によって決まります。
次の ZFS ストレージプールのディスク容量要件を確認してください。
ZFS ルートファイルシステムのインストールに必要な最小メモリー容量は 768M バイトです。
ZFS の全体的なパフォーマンスを向上させるには、1G バイトのメモリーを搭載することをお勧めします。
推奨される最小ディスク容量は 16G バイトです。ディスク容量は次のように消費されます。
スワップ領域とダンプデバイス – Solaris インストールプログラムによって作成されるスワップボリュームとダンプボリュームのデフォルトのサイズは、次のとおりです。
Solaris 初期インストール – 新しい ZFS ブート環境のスワップボリュームのデフォルトサイズは、物理メモリーのサイズの半分 (一般に 512M バイトから 2G バイトの範囲) として計算されます。スワップサイズは、初期インストール時に調整することができます。
ダンプボリュームのデフォルトのサイズは、dumpadm の情報と物理メモリーのサイズに基づいて、カーネルによって計算されます。ダンプサイズは、初期インストール時に調整することができます。
Oracle 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 はすべて、同じスワップデバイスとダンプデバイスを使用します。
Solaris OS コンポーネント – ルートファイルシステムの、OS イメージの一部となっているサブディレクトリのうち、/var 以外のものはすべて、ルートファイルシステムと同じデータセット内に存在している必要があります。さらに、スワップデバイスとダンプデバイス以外の Solaris OS コンポーネントはすべて、ルートプール内に存在している必要があります。
さらに、/var ディレクトリまたはデータセットは単一のデータセットでなければならない、という制限もあります。たとえば、Oracle Solaris Live Upgrade を使って ZFS BE の移行やパッチ適用を行ったり、このプールの ZFS フラッシュアーカイブを作成したりする必要もある場合には、/var/tmp のような /var の下位データセットを作成することはできません。
たとえば、ブート可能な ZFS 環境には、12G バイトのディスク容量を備えたシステムでは小さすぎる可能性があります。UFS BE から移行した ZFS BE の場合、スワップデバイスとダンプデバイスにそれぞれ約 6G バイトのディスク容量が必要になるためです。
次の ZFS ストレージプール構成要件を確認してください。
ルートプールに使用するプールには SMI ラベルが付いていなければなりません。ディスクスライスを使用して作成されたプールでは、この要件が満たされます。
プールは、ディスクスライスとミラー化されているディスクスライスのいずれかに存在していなければなりません。Oracle Solaris 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 圧縮アルゴリズムはサポートされていません。
初期インストールによるルートプールの作成後、あるいは Solaris Live Upgrade による 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 の要件」を参照してください。
Solaris 対話式テキストインストーラによるインストール処理は、基本的に以前の Solaris リリースの場合と同じですが、UFS または ZFS ルートファイルシステムの作成を求めるプロンプトが表示される点が異なります。このリリースでも、デフォルトのファイルシステムは UFS です。ZFS ルートファイルシステムを選択すると、ZFS ストレージプールの作成を求めるプロンプトが表示されます。ZFS ルートファイルシステムのインストール手順は次のとおりです。
ブート可能な 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)」を参照してください。
ZFS ルートファイルシステムを作成するには、ZFS オプションを選択します。次に例を示します。
Choose Filesystem Type Select the filesystem to use for your Solaris installation [ ] UFS [X] ZFS |
インストールするソフトウェアを選択したあと、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 ストレージプールの複製機能」を参照してください。
ミラー化ルートプールを作成するために 2 つのディスクを選択するには、Ctrl キーを押しながら 2 番目のディスクをクリックします。次の例では、c1t1d1 と c1t2d0 の両方をルートプールディスクとして選択しています。両方のディスクには、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 ラベルを付け直したあと、インストールプログラムを再度起動します。
インストール中にミラー化ルートプールを作成しなかった場合も、インストール後にそのようなプールを容易に作成できます。これについては、「ミラー化ルートプールを作成する方法 (インストール後)」を参照してください。
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 |
この最後のインストール画面では、インストールプロファイルを変更できます。次に例を示します。
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 |
インストールが完了したら、作成された 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 ディレクトリなどルートプールのコンポーネントが識別されています。デフォルトでは、これらにはアクセスできません。
同じストレージプール内に別の 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)」を参照してください。
次に、新しいブート環境を確認します。次に例を示します。
# 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 - |
代替 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 ルートファイルシステムからの起動」を参照してください。
インストール中に ZFS ミラー化ルートプールを作成しなかった場合も、インストール後にそのようなプールを容易に作成できます。
ZFS ルートプールのディスクを置き換える方法については、「ZFS ルートプールのディスクを置き換える方法」を参照してください。
ルートプールの現在の状態を表示します。
# 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 つ目のディスクを接続します。
# 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. |
ルートプールの状態を表示し、再同期化が完了しているか確認します。
# 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 |
再同期化の完了後、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 |
2 つ目のディスクから正常に起動できることを確認します。
システムが新しいディスクから自動的に起動するように設定します。そのためには、eeprom コマンドまたは SPARC ブート PROM のsetenv コマンドを使用します。あるいは、PC BIOS を再設定します。
Solaris 10 10/09 以降のリリースでは、フラッシュアーカイブは、UFS ルートファイルシステムまたは ZFS ルートファイルシステムを実行しているシステムで作成できます。ZFS ルートプールのフラッシュアーカイブには、スワップボリュームとダンプボリュームおよび任意の除外されたデータセットを除く、プール階層全体が含まれます。スワップボリュームとダンプボリュームは、フラッシュアーカイブのインストール時に作成されます。フラッシュアーカイブによるインストール方法は次のとおりです。
ZFS ルートファイルシステムによるシステムのインストールとブートに使用できるフラッシュアーカイブを生成します。
ZFS フラッシュアーカイブを使用して、システムの JumpStart インストールを実行します。ZFS フラッシュアーカイブを作成すると、個別のブート環境ではなく、ルートプール全体が複製されます。flarcreate コマンドと flar コマンドの -D オプションを使用すると、プール内の個別のデータセットを除外できます。
ZFS フラッシュアーカイブを使用してシステムをインストールする前に、次の制限事項を確認してください。
サポートされているのは、ZFS フラッシュアーカイブの JumpStart インストールのみです。フラッシュアーカイブの対話式インストールオプションを使用して ZFS ルートファイルシステムを含んでいるシステムをインストールすることはできません。また、Oracle Solaris Live Upgrade によって ZFS BE をインストールするためにフラッシュアーカイブを使用することもできません。
ZFS フラッシュアーカイブは、その作成元のシステムと同じアーキテクチャーのシステムにしかインストールできません。例えば、sun4u システムで作成されたアーカイブは、sun4v システムにはインストールできません。
サポートされているのは、ZFS フラッシュアーカイブの完全な初期インストールのみです。ZFS ルートファイルシステムのさまざまなフラッシュアーカイブをインストールすることはできず、また、ハイブリッド UFS/ZFS アーカイブをインストールすることもできません。
従来どおり、UFS ルートファイルシステムをインストールするために使用できるのは既存の UFS フラッシュアーカイブのみです。ZFS ルートファイルシステムをインストールするために使用できるのは ZFS フラッシュアーカイブのみです。
ルートプール全体 (ただし、明示的に除外されたデータセットを除く) がアーカイブされてインストールされますが、フラッシュアーカイブのインストール後に使用できるのは、アーカイブを作成時に起動されていた ZFS BE のみです。ただし、flarcreate または flar コマンドの -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 になります。
マスターシステムに 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 ルートファイルシステムまたは 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 固有のプロファイルでは、次のキーワードを使用できます。
プールのスライス、スワップボリューム、またはダンプボリュームのサイズを自動的に指定します。最小限のサイズを確保できることを確認するために、ディスクのサイズがチェックされます。最小限のサイズを確保できる場合は、ディスクや予約済みスライスのサイズなどの制約を考慮して、できる限り大きいプールサイズが割当てられます。
たとえば、c0t0d0s0 を指定する場合、all キーワードまたは auto キーワードを指定すると、ルートプールのスライスはできる限り大きいサイズで作成されます。または、スライス、スワップボリューム、またはダンプボリュームに特定のサイズを指定することができます。
ZFS ルートプールに使用する場合、プールには未使用ディスク領域というものは存在しないため、auto キーワードは all キーワードと同様に機能します。
ブート環境の特性を特定します。
ブート可能な ZFS ルート環境を作成するには、次の bootenv キーワード構文を使用します。
bootenv installbe bename BE-name [ dataset mount-point]
bename オプションと BE-name エントリによって指定された新しい BE を作成し、インストールします。
インストールする BE-name を指定します。
bename が pool キーワードとともに使用されている場合を除き、デフォルトの BE が作成されます。
ルートデータセットとは別の /var データセットを指定するには、省略可能なキーワード dataset を使用します。現時点では、mount-point の値は /var に限られています。たとえば、別の /var データセットを指定する bootenv 構文の行は、次のようになります。
bootenv installbe bename zfsroot dataset /var |
作成する新しいルートプールを定義します。次のキーワード構文を指定する必要があります。
pool poolname poolsize swapsize dumpsize vdevlist |
作成するプールの名前を指定します。プールは、指定されたプールサイズ (size) および指定された物理デバイス (vdev) で作成されます。poolname 値には、既存のプールの名前を指定しないようにしてください。既存のプールの名前を指定すると、既存のプールが上書きされます。
作成するプールのサイズを指定します。指定できる値は auto または existing です。auto を指定すると、ディスクや予約済みスライスのサイズなどの制約を考慮して、できる限り大きいプールサイズが割当てられます。existing を指定すると、その名前で指定された既存のスライスの境界が維持され、上書きされませんg (G バイト) と指定した場合を除き、サイズの単位は M バイトと見なされます。
作成するスワップボリュームのサイズを指定します。auto 値は、デフォルトのスワップサイズが使用されることを意味します。サイズを指定するには size 値を使用します。g (G バイト) と指定した場合を除き、サイズの単位は M バイトになります。
作成するダンプボリュームのサイズを指定します。auto 値は、デフォルトのスワップサイズが使用されることを意味します。サイズを指定するには size 値を使用します。g (G バイト) と指定した場合を除き、サイズの単位は M バイトと見なされます。
プールの作成に使用する 1 つ以上のデバイスを指定します。vdevlist の書式は zpool create コマンドの書式と同じです。現時点では、複数のデバイスを指定する場合はミラー化構成だけがサポートされます。vdevlist に指定するデバイスは、ルートプール用のスライスにしてください。any という値を指定すると、インストールソフトウェアによって適切なデバイスが選択されます。
ディスクはいくつでもミラー化できますが、作成されるプールのサイズは、指定したディスクのうちで最小のディスクによって決定されます。ミラー化されたストレージプールの作成方法の詳細については、「ミラー化されたストレージプール構成」を参照してください。
この節では、ZFS 固有の JumpStart プロファイルの例を紹介します。
次のプロファイルは、install_type initial_install で指定された初期インストールを、pool newpool で指定された新しいプールで実行します。auto キーワードにより、この新しいプールのサイズは自動的に、指定されたディスクのサイズになります。auto キーワードにより、スワップ領域とダンプデバイスのサイズは自動的に決められます。また、mirror キーワードにより、c0t0d0s0 と c0t1d0s0 で指定されたディスクのミラー化構成になります。ブート環境の特性は 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 インストールに使用して、ブート可能な ZFS ルートファイルシステムを作成することはできません。次のような構文を使用して、新しい ZFS ストレージプールを作成する必要があります。
pool rpool 20G 4G 4G c0t0d0s0 |
プールの作成には、ディスク全体ではなくスライスを使用する必要があります。詳細は、「ZFS をサポートするための Oracle Solaris インストールと Oracle 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 |
Oracle Solaris Live Upgrade の UFS コンポーネント関連機能は引き続き使用可能で、以前の Solaris リリースと同様に動作します。
次の機能も使用可能です。
UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する場合は、既存の ZFS ストレージプールを -p オプションで指定する必要があります。
UFS ルートファイルシステムのコンポーネントがさまざまなスライス上に存在する場合、それらは ZFS ルートプールに移行されます。
Solaris 10 10/08 リリースでは、ゾーンが含まれているシステムを移行することはできますが、サポートされる構成は限られています。Solaris 10 5/09 以降のリリースでは、より多くのゾーン構成がサポートされています。詳細は、次の各節を参照してください。
「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」
「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」
ゾーンが含まれていないファイルシステムを移行する場合は、「Oracle Solaris Live Upgrade を使用して ZFS ルートファイルシステムに移行する (ゾーンなし)」を参照してください。
同じプール内で新しい ZFS BE を作成する場合は、Oracle Solaris Live Upgrade で ZFS のスナップショットとクローンの機能を使用できます。したがって、以前の Solaris リリースと比べてはるかに高速に BE を作成できます。
Oracle Solaris インストールおよび Oracle Solaris Live Upgrade の機能の詳細については、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。
UFS ルートファイルシステムを ZFS ルートファイルシステムに移行するための基本的な手順は次のとおりです。
サポートされている任意の SPARC システムまたは x86 システムで、Solaris 10 10/08、Solaris 10 5/09、Solaris 10 10/09、または Oracle Solaris 10 9/10 リリースをインストールするか、標準のアップグレードプログラムを使用して以前の Solaris 10 リリースからアップグレードします。
Solaris 10 10/08 以降のリリースを実行している場合は、ZFS ルートファイルシステム用の ZFS ストレージプールを作成します。
Oracle Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行します。
ZFS BE を luactivate コマンドでアクティブにします。
ZFS および Oracle Solaris Live Upgrade の要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。
Oracle Solaris Live Upgrade を使用して UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する前に、次に示す問題を確認してください。
UFS から ZFS ルートファイルシステムへの移行には、Oracle Solaris インストール GUI の標準アップグレードオプションは使用できません。UFS ファイルシステムから移行するには、Oracle Solaris Live Upgrade を使用する必要があります。
Oracle Solaris Live Upgrade 操作の前に、起動に使用する ZFS ストレージプールを作成する必要があります。また、現時点での起動に関する制限のため、ZFS ルートプールの作成には、ディスク全体ではなくスライスを使用する必要があります。次に例を示します。
# zpool create rpool mirror c1t0d0s0 c1t1d0s0 |
新しいプールを作成する前に、プールで使用するディスクに、EFI ラベルではなく SMI (VTOC) ラベルが付いていることを確認してください。ディスクに SMI ラベルを付け直した場合は、ラベル付け処理によってパーティション分割方式が変更されていないことを確認してください。ほとんどの場合、ルートプールに使用するスライスにディスク容量のすべてを割り当てるようにしてください。
Oracle Solaris Live Upgrade を使用して、UFS BE を ZFS BE から作成することはできません。UFS BE を ZFS BE に移行し、UFS BE を維持する場合は、UFS BE または ZFS BE から起動できます。
Oracle Solaris Live Upgrade 機能は名前の変更を検出できないため、zfs rename コマンドで ZFS BE の名前を変更しないでください。名前を変更すると、以降に実行する ludelete などのコマンドが失敗します。したがって、既存の BE を引き続き使用する場合は、ZFS プールまたはファイルシステムの名前を変更しないでください。
主 BE のクローンである代替 BE を作成するときに、-f、-x、-y、-Y、および -z オプションを使用して主 BE のファイルを含めたり除外したりすることはできません。ただし、次の場合には、ファイルを含めるオプションと除外するオプションを使用できます。
UFS -> UFS UFS -> ZFS ZFS -> ZFS (different pool) |
Oracle Solaris Live Upgrade を使用すると、UFS ルートファイルシステムを ZFS ルートファイルシステムにアップグレードできますが、ルート以外のファイルシステムまたは共有ファイルシステムはアップグレードできません。
lu コマンドを使用して ZFS ルートファイルシステムの作成や移行を行うことはできません。
次の例では、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法を示します。
ゾーンが含まれているシステムを移行またはアップグレードする場合は、次の各節を参照してください。
「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」
「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」
次の例では、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 コマンドで削除できます。
同じプール内で ZFS BE から ZFS BE を作成する操作には ZFS のスナップショットとクローンの機能が使用されるため、この操作は非常に高速です。現在の BE が同じ ZFS プールにある場合、-p オプションは省略されます。
ZFS BE が複数存在する場合は、次のようにして起動元の BE を選択します。
SPARC: boot -L コマンドを使って使用可能な BE を確認し、boot -Z コマンドを使って起動元の BE を選択することができます。
x86: GRUB メニューから 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. |
ZFS BE を追加のパッケージやパッチでアップグレードすることができます。
基本的な手順は次のとおりです。
代替 BE を lucreate コマンドで作成します。
代替 BE をアクティブにし、そこから起動します。
主 ZFS BE を luupgrade コマンドでアップグレードして、パッケージやパッチを追加します。
# 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. |
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 リリースで、ゾーンが含まれているシステムを移行する場合や、ゾーンが含まれているシステムを構成する場合は、次の手順を確認してください。
「UFS 上にゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 10/08)」
「ZFS 上にゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 10/08)」
ZFS ルートファイルシステムが含まれているシステムでこれらの推奨手順に従ってゾーンを設定して、そのシステムで Oracle Solaris Live Upgrade を使用できるようにします。
次の手順では、ゾーンがインストールされている UFS ルートファイルシステムを、アップグレードやパッチの適用が可能な ZFS ルートファイルシステムおよび ZFS ゾーンルート構成に移行する方法を説明します。
次の手順では、プール名の例として rpool、アクティブなブート環境の名前の例として s10BE* を使用しています。
システムで以前の Solaris 10 リリースが稼働している場合は、Solaris 10 10/08 リリースにアップグレードします。
Solaris 10 リリースが稼働しているシステムのアップグレードの詳細については、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。
ルートプールを作成します。
# zpool create rpool mirror c0t1d0 c1t1d0 |
ルートプールの要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。
UFS 環境のゾーンが起動されることを確認します。
新しい ZFS ブート環境を作成します。
# lucreate -n s10BE2 -p rpool |
このコマンドは、新しいブート環境のデータセットをルートプールに確立し、現在のブート環境をゾーンも含めてそれらのデータセットにコピーします。
新しい ZFS ブート環境をアクティブにします。
# luactivate s10BE2 |
これで、システムでは ZFS ルートファイルシステムが稼働していますが、UFS 上のゾーンルートはまだ UFS ルートファイルシステムにあります。UFS ゾーンをサポートされる ZFS 構成に完全に移行するには、次の手順が必要です。
システムを再起動します。
# init 6 |
ゾーンを ZFS BE に移行します。
発生する可能性のあるマウントポイントの問題をすべて解決します。
Oracle Solaris Live Upgrade のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。
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) のマウントポイントは / となるべきです。
ZFS BE とそのデータセットのマウントポイントを設定しなおします。
次に例を示します。
# zfs inherit -r mountpoint rpool/ROOT/s10u6 # zfs set mountpoint=/ rpool/ROOT/s10u6 |
システムを再起動します。
GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。
次の手順では、アップグレードやパッチの適用が可能な ZFS ルートファイルシステムおよび ZFS ゾーンルート構成を設定する方法を説明します。この構成では、ZFS ゾーンルートは ZFS データセットとして作成されます。
次の手順では、プール名の例として rpool、アクティブなブート環境の名前の例として s10BE を使用しています。ゾーンのデータセットの名前には、正当なデータセット名であればどのようなものでも使用できます。次の例では、ゾーンのデータセットの名前は zones になっています。
Solaris 対話式テキストインストーラまたは Solaris JumpStart インストール方法を使用して、システムを ZFS ルートでインストールします。
初期インストールまたは Solaris JumpStart インストールを使用して ZFS ルートファイルシステムをインストールする方法については、「ZFS ルートファイルシステムのインストール (初期インストール)」または 「ZFS ルートファイルシステムのインストール (Oracle Solaris JumpStart インストール)」を参照してください。
新しく作成したルートプールからシステムを起動します。
ゾーンルートをまとめるためのデータセットを作成します。
次に例を示します。
# zfs create -o canmount=noauto rpool/ROOT/s10BE/zones |
canmount プロパティーに noauto 値を設定すると、Oracle Solaris Live Upgrade とシステムの起動コードの明示的なアクションによらないかぎり、データセットはマウントされなくなります。
新しく作成したゾーンデータセットをマウントします。
# zfs mount rpool/ROOT/s10BE/zones |
データセットは /zones にマウントされます。
各ゾーンルートのデータセットを作成し、マウントします。
# zfs create -o canmount=noauto rpool/ROOT/s10BE/zones/zonerootA # zfs mount rpool/ROOT/s10BE/zones/zonerootA |
ゾーンルートディレクトリに適切なアクセス権を設定します。
# chmod 700 /zones/zonerootA |
ゾーンを設定して、ゾーンパスを次のように設定します。
# 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 |
ゾーンをインストールします。
# zoneadm -z zoneA install |
ゾーンを起動します。
# zoneadm -z zoneA boot |
ZFS 上にゾーンルートを持つ ZFS ルートファイルシステムにアップグレードやパッチを適用する必要がある場合は、次の手順を使用します。このような更新には、システムのアップグレードの場合と、パッチの適用の場合があります。
次の手順では、アップグレードまたはパッチを適用するブート環境の名前の例として newBE を使用しています。
アップグレードまたはパッチを適用するブート環境を作成します。
# lucreate -n newBE |
すべてのゾーンを含め、既存のブート環境が複製されます。元のブート環境の各データセットに対してデータセットが 1 つずつ作成されます。新しいデータセットは、現在のルートプールと同じプールに作成されます。
次のいずれかを選択して、システムをアップグレードするか新しいブート環境にパッチを適用します。
システムをアップグレードします。
# luupgrade -u -n newBE -s /net/install/export/s10u7/latest |
ここで、-s オプションは Solaris インストールメディアの場所を指定します。
新しいブート環境にパッチを適用します。
# luupgrade -t -n newBE -t -s /patchdir 139147-02 157347-14 |
新しいブート環境をアクティブにします。
# luactivate newBE |
新たにアクティブにしたブート環境から起動します。
# init 6 |
発生する可能性のあるマウントポイントの問題をすべて解決します。
Oracle Solaris Live Upgrade 機能のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。
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) のマウントポイントは / となるべきです。
ZFS BE とそのデータセットのマウントポイントを設定しなおします。
次に例を示します。
# zfs inherit -r mountpoint rpool/ROOT/newBE # zfs set mountpoint=/ rpool/ROOT/newBE |
システムを再起動します。
GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。
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 以降のリリースでサポートされるゾーン構成で Oracle Solaris Live Upgrade を使用するには、まず標準のアップグレードプログラムを使って Solaris 10 5/09 以降のリリースにシステムをアップグレードする必要があります。
その後、Oracle Solaris Live Upgrade を使用して、ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行するか、ZFS ルートファイルシステムとゾーンルートにアップグレードやパッチを適用することができます。
サポートされていないゾーン構成を、以前の Solaris 10 リリースから直接 Solaris 10 5/09 以降のリリースに移行することはできません。
Solaris 10 5/09 以降のリリースでゾーンを含むシステムを移行または構成する場合は、次の情報を確認してください。
「ZFS ルートファイルシステムとゾーンルートを持つ ZFS BE を作成する方法 (Solaris 10 5/09 以降)」
「ゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 5/09 以降)」
「ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 5/09 以降)」
ゾーンが含まれているシステムを Oracle Solaris Live Upgrade を使用して移行またはアップグレードする前に、サポートされているゾーン構成を確認してください。
UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する – 次のゾーンルート構成がサポートされています。
UFS ルートファイルシステムのディレクトリ内
UFS ルートファイルシステムのマウントポイントのサブディレクトリ内
UFS ルートファイルシステムのディレクトリ内または UFS ルートファイルシステムのマウントポイントのサブディレクトリ内にゾーンルートを含む UFS ルートファイルシステム、およびゾーンルートを含む ZFS 非ルートプール
次の UFS/ゾーン構成はサポートされません: ゾーンルートをマウントポイントとして持つ UFS ルートファイルシステム。
ZFS ルートファイルシステムを移行またはアップグレードする – 次のゾーンルート構成がサポートされています。
ZFS ルートプールのデータセット内。場合により、Oracle Solaris Live Upgrade 操作の前にゾーンルートのデータセットが用意されていないときは、ゾーンルートのデータセット (zoneds) が Oracle Solaris Live Upgrade によって作成されます。
ZFS ルートファイルシステムのサブディレクトリ内
ZFS ルートファイルシステムの外部にあるデータセット内
ZFS ルートファイルシステムの外部にあるデータセットのサブディレクトリ内
非ルートプールのデータセット内。次の例では、zonepool/zones はゾーンルートを含むデータセットであり、rpool は ZFS BE を含んでいます。
zonepool zonepool/zones zonepool/zones/myzone rpool rpool/ROOT rpool/ROOT/myBE |
次の構文を使用すると、Oracle Solaris Live Upgrade によって zonepool のゾーンおよび rpool BE のスナップショットが作成され、複製が行われます。
# lucreate -n newBE |
newBE BE が rpool/ROOT/newBE 内に作成されます。newBE をアクティブにすると、 zonepool のコンポーネントにアクセスできるようになります。
前述の例では、/zonepool/zones がサブディレクトリーであり、別個のデータセットではない場合には、それは、ルートプール rpool のコンポーネントとして、Live Upgrade によって移行されます。
UFS および ZFS のゾーンの移行またはアップグレードに関する情報 – UFS 環境または ZFS 環境の移行またはアップグレードに影響を与える可能性のある次の考慮事項を確認してください。
「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」の説明に従って Solaris 10 10/08 リリースでゾーンを構成し、Solaris 10 5/09 以降のリリースにアップグレードした場合は、ZFS ルートファイルシステムへの移行や、Solaris Live Upgrade による Solaris 10 5/09 以降のリリースへのアップグレードが可能なはずです。
zones/zone1 や zones/zone1/zone2 のような入れ子のディレクトリ内にゾーンルートを作成しないでください。そうしないと、起動時にマウントが失敗する可能性があります。
Solaris 10 5/09 以降のリリースの初期インストールを実行したあとで、この手順を使用して ZFS ルートファイルシステムを作成します。また、luupgrade 機能を使って Solaris 10 5/09 以降のリリースに ZFS ルートファイルシステムをアップグレードしたあとも、この手順を使用します。この手順を使用して作成した ZFS BE には、あとでアップグレードやパッチを適用できます。
次の手順で例として使用する Oracle Solaris 10 9/10 システムは、ZFS ルートファイルシステムと、/rpool/zones にゾーンルートのデータセットを持っています。zfs2BE という名前の ZFS BE が作成されますが、あとでそのアップグレードやパッチの適用を行うことができます。
既存の 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 |
ゾーンがインストールされ起動されていることを確認します。
# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared 2 zfszone running /rpool/zones native shared |
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. |
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 |
新しい 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 |
Solaris 10 5/09 以降のリリースで、ゾーンルートを持つ ZFS ルートファイルシステムにアップグレードやパッチを適用する必要がある場合は、次の手順を使用します。このような更新には、システムのアップグレードの場合と、パッチの適用の場合があります。
次の手順では、アップグレードまたはパッチを適用するブート環境の名前の例として zfs2BE を使用しています。
既存の 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 - |
ゾーンがインストールされ起動されていることを確認します。
# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared 5 zfszone running /rpool/zones native shared |
アップグレードまたはパッチを適用する 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. |
次のいずれかを選択して、システムをアップグレードするか新しいブート環境にパッチを適用します。
システムをアップグレードします。
# 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 |
新しいブート環境をアクティブにします。
# 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 |
この例では、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 |
UFS ルートファイルシステムとゾーンルートを持つシステムを Solaris 10 5/09 以降のリリースに移行するには、次の手順を使用します。その後、Oracle Solaris Live Upgrade を使用して ZFS BE を作成します。
次の手順では、UFS BE の名前の例として c0t1d0s0、UFS ゾーンルートとして zonepool/zfszone、ZFS ルート BE として zfsBE を使用しています。
システムで以前の Solaris 10 リリースが稼働している場合は、Solaris 10 5/09 以降のリリースにアップグレードします。
Solaris 10 リリースが稼働しているシステムのアップグレードについては、『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』を参照してください。
ルートプールを作成します。
ルートプールの要件については、「ZFS をサポートするための Oracle Solaris インストールと Oracle Solaris Live Upgrade の要件」を参照してください。
UFS 環境のゾーンが起動されることを確認します。
# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared 2 zfszone running /zonepool/zones native shared |
新しい ZFS ブート環境を作成します。
# lucreate -c c1t1d0s0 -n zfsBE -p rpool |
このコマンドは、新しいブート環境のデータセットをルートプールに確立し、現在のブート環境をゾーンも含めてそれらのデータセットにコピーします。
新しい 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>. . . . |
システムを再起動します。
# init 6 |
新しい 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 |
この例では、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 |
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 ファイルシステムでスワップファイルを使用することはできません。
システムのインストール後またはアップグレード後にスワップ領域やダンプデバイスを変更する必要がある場合は、以前の Solaris 10 リリースと同様に swap コマンドと dumpadm コマンドを使用します。詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 20 章「追加スワップ空間の構成 (手順)」および『Solaris のシステム管理 (上級編)』の第 17 章「システムクラッシュ情報の管理 (手順)」を参照してください。
詳細は、次の章を参照してください。
ZFS ルートのインストールでは、スワップデバイスとダンプデバイスのサイズの決定方法が異なるため、インストール前、インストール中、またはインストール後にスワップデバイスとダンプデバイスのサイズの調整が必要になることがあります。
スワップボリュームとダンプボリュームのサイズは、初期インストール時に調整することができます。詳細は、例 5–1 を参照してください。
Oracle Solaris Live Upgrade 操作を実行する前に、スワップボリュームとダンプボリュームを作成し、それらのサイズを設定することができます。次に例を示します。
ストレージプールを作成します。
# zpool create rpool mirror c0t0d0s0 c0t1d0s0 |
ダンプデバイスを作成します。
# zfs create -V 2G rpool/dump |
ダンプデバイスを有効にします。
# dumpadm -d /dev/zvol/dsk/rpool/dump Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/t2000 Savecore enabled: yes Save compressed: on |
次のいずれかを選択してスワップ領域を作成します。
SPARC: スワップ領域を作成します。ブロックサイズを 8K バイトに設定します。
# zfs create -V 2G -b 8k rpool/swap |
x86: スワップ領域を作成します。ブロックサイズを 4K バイトに設定します。
# zfs create -V 2G -b 4k rpool/swap |
新しいスワップデバイスを追加または変更したときは、スワップボリュームを有効にしてください。
スワップボリュームのエントリを /etc/vfstab ファイルに追加します。
Oracle 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 |
このプロファイルでは、2 つの 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 |
最後に、2 つ目のスワップボリュームのエントリを /etc/vfstab ファイルに追加します。
システムクラッシュダンプの取得やダンプデバイスのサイズ変更で問題が発生した場合には、次の項目を確認してください。
クラッシュダンプが自動的に作成されなかった場合は、savecore コマンドを使ってクラッシュダンプを保存することができます。
ZFS ルートファイルシステムの初期インストール時や ZFS ルートファイルシステムへの移行時に、ダンプボリュームが自動的に作成されます。ダンプボリュームのデフォルトサイズが小さすぎる場合には、ほとんどの場合、ダンプボリュームのサイズを調整するだけですみます。たとえば、大量のメモリーが搭載されたシステムでは、次のようにダンプボリュームのサイズを 40G バイトに増やします。
# zfs set volsize=40G rpool/dump |
大きなサイズのダンプボリュームのサイズ変更処理には、長い時間がかかる可能性があります。
何らかの理由で、ダンプデバイスを手動で作成したあとでそのデバイスを有効化する必要がある場合には、次のような構文を使用します。
# dumpadm -d /dev/zvol/dsk/rpool/dump Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/t2000 Savecore enabled: yes |
128G バイト以上のメモリーが搭載されたシステムでは、デフォルトで作成されるダンプデバイスよりも大きいダンプデバイスが必要となります。ダンプデバイスが小さすぎて既存のクラッシュダンプを取得できない場合には、次のようなメッセージが表示されます。
# dumpadm -d /dev/zvol/dsk/rpool/dump dumpadm: dump device /dev/zvol/dsk/rpool/dump is too small to hold a system dump dump size 36255432704 bytes, device size 34359738368 bytes |
スワップデバイスやダンプデバイスのサイジングについては、『Solaris のシステム管理 (デバイスとファイルシステム)』の「スワップ空間の計画」を参照してください。
現在のところ、複数の最上位デバイスを含むプールにダンプデバイスを追加することはできません。次のようなメッセージが表示されます。
# dumpadm -d /dev/zvol/dsk/datapool/dump dump is not supported on device '/dev/zvol/dsk/datapool/dump': 'datapool' has multiple top level vdevs |
ダンプデバイスは、最上位デバイスを複数持つことのできないルートプールに追加してください。
SPARC システムと x86 システムの両方で、ブートアーカイブによる新しい形式の起動方法が使用されます。ブートアーカイブは、起動に必要なファイルを含んだファイルシステムイメージです。ZFS ルートファイルシステムからシステムが起動される際には、ブートアーカイブとカーネルファイルのパス名が、起動用に選択されたルートファイルシステム内で解決されます。
インストールのためにシステムを起動する場合は、インストール処理の全体にわたって RAM ディスクがルートファイルシステムとして使用されます。
ZFS では、単一のルートファイルシステムではなくストレージプールが起動デバイス指定子で指定されるため、ZFS ファイルシステムからの起動は UFS ファイルシステムからの起動とは異なります。ストレージプールには、複数の「ブート可能なデータセット」または ZFS ルートファイルシステムが含まれている場合があります。ZFS から起動する場合は、起動デバイスと、起動デバイスによって指定されたプール内のルートファイルシステムを指定する必要があります。
デフォルトでは、プールの bootfs プロパティーで指定されているデータセットが、起動用に選択されます。別のブート可能データセットを boot -Z コマンドに指定することで、このデフォルトの選択を無効にできます。
ミラー化された ZFS ルートプールは、システムのインストール時に作成するか、インストール後にディスクを接続することによって作成することができます。詳細については、次のトピックを参照してください。
ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。
CR 6668666 – ミラー内のほかのディスクで起動できるようにするには、追加で接続したディスクにブート情報を installboot コマンドまたは installgrub コマンドでインストールする必要があります。ミラー化された ZFS ルートプールを初期インストールで作成した場合は、この手順は不要です。たとえば、ミラーに追加した 2 番目のディスクが c0t1d0s0 であった場合、installboot コマンドまたは installgrub コマンドの構文は次のようになります。
SPARC:
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
x86:
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-0 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@0 |
システムが再起動したら、アクティブな起動デバイスを確認します。次に例を示します。
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a' |
x86: ミラー化された ZFS ルートプールの代替ディスクを、適切な BIOS メニューで選択します。
続いて、次のような構文を使って、代替ディスクから起動されていることを確認します。
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' |
複数の 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 つの新しい起動オプションを使用できます。
その BE がアクティブになったあと、boot -L コマンドを使用して ZFS プール内のブート可能なデータセットのリストを表示できます。その後、ブート可能なデータセットの 1 つをリストで選択できます。そのデータセットを起動するための詳細な手順が表示されます。手順に従って、選択したデータセットを起動できます。
boot -Z dataset コマンドを使用して、特定の 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 |
SPARC システムでは、/platform/`uname -i`/failsafe にあるフェイルセーフアーカイブから、次のように起動できます。
ok boot -F failsafe |
特定の ZFS ブート可能データセットのフェイルセーフアーカイブを起動するには、次のような構文を使用します。
ok boot -Z rpool/ROOT/zfsBE -F failsafe |
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 |
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 |
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 |
アクティブなブート環境を変更するための最適な方法は、luactivate コマンドを使用することです。不適切なパッチや構成エラーが原因でアクティブな環境の起動に失敗する場合、別の環境から起動する唯一の方法は、起動時にその環境を選択することです。x86 システムでは GRUB メニューから代替 BE を選択でき、SPARC システムでは PROM から明示的に代替 BE を起動できます。
Solaris 10 10/08 リリースの Oracle Solaris Live Upgrade のバグのため、アクティブでないブート環境は起動に失敗する場合があります。これは、ブート環境の ZFS データセットまたはゾーンの ZFS データセットに無効なマウントポイントが含まれているためです。同じバグのため、BE に別の /var データセットがある場合は、BE をマウントすることもできなくなります。
ゾーンのデータセットに無効なマウントポイントが含まれている場合は、次の手順を実行してマウントポイントを修正することができます。
フェイルセーフアーカイブからシステムを起動します。
プールをインポートします。
次に例を示します。
# zpool import rpool |
正しくない一時的なマウントポイントを探します。
次に例を示します。
# 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 データセットについて同様に、正しくない一時的なマウントポイントを探します。
ZFS BE とそのデータセットのマウントポイントを設定しなおします。
次に例を示します。
# zfs inherit -r mountpoint rpool/ROOT/s10u6 # zfs set mountpoint=/ rpool/ROOT/s10u6 |
システムを再起動します。
GRUB メニューまたは OpenBoot PROM プロンプトで、特定のブート環境を起動するオプションが表示されたら、前の手順でマウントポイントを修正したブート環境を選択します。
失われたルートパスワードやそれに似た問題から回復する目的でシステムを起動する必要がある場合は、次の手順を使用します。
エラーの深刻度に応じてフェイルセーフモードの起動、代替メディアからの起動のいずれかを行う必要があります。一般に、フェイルセーフモードを起動すれば、失われたルートパスワードや未知のルートパスワードを回復することができます。
ルートプールまたはルートプールのスナップショットを回復する必要がある場合は、「ZFS ルートプールまたはルートプールのスナップショットを回復する」を参照してください。
フェイルセーフモードを起動します。
SPARC システムの場合:
ok boot -F failsafe |
x86 システムの場合、GRUB プロンプトからフェイルセーフモードを選択します。
プロンプトが表示されたら、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. |
/a/etc ディレクトリに移動します。
# cd /a/etc |
必要であれば、TERM タイプを設定します。
# TERM=vt100 # export TERM |
passwd または shadow ファイルを修正します。
# vi shadow |
システムを再起動します。
# init 6 |
システムの正常な起動を妨げる問題やその他の何らかの深刻な問題が発生した場合には、ネットワークインストールサーバーまたは Solaris インストール CD から起動し、ルートプールをインポートし、ZFS BE をマウントし、問題の解決を試みる必要があります。
インストール CD またはネットワークから起動します。
SPARC:
ok boot cdrom -s ok boot net -s |
-s オプションを使用しない場合は、インストールプログラムを終了する必要があります。
x86: ネットワーク起動、ローカル CD からの起動、のいずれかのオプションを選択します。
ルートプールをインポートし、代替マウントポイントを指定します。次に例を示します。
# zpool import -R /a rpool |
ZFS BE をマウントします。次に例を示します。
# zfs mount rpool/ROOT/zfsBE |
/a ディレクトリから ZFS BE の内容にアクセスします。
# cd /a |
システムを再起動します。
# init 6 |
ここでは、次のタスクを実行する方法について説明します。
次の理由により、ルートプールのディスクの置き換えが必要になることがあります。
ルートプールが小さすぎるため、小さいディスクを大きいディスクに置き換えたい。
ルートプールのディスクに障害が発生している。非冗長プールでディスクに障害が発生してシステムが起動しない場合は、CD やネットワークなどの代替メディアから起動したあとでルートプールのディスクを置き換える必要があります。
ミラー化ルートプール構成では、代替メディアからの起動を行わずにディスク交換を試みることができます。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 |
交換用ディスク (新しいディスク) を物理的に接続します。
新しいディスクに SMI ラベルが付けられていてスライス 0 があることを確認してください。
ルートプールに使用するディスクのラベルを変更する方法については、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
新しいディスクをルートプールに接続します。
次に例を示します。
# zpool attach rpool c1t10d0s0 c1t9d0s0 |
ルートプールのステータスを確認します。
次に例を示します。
# 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 |
ディスクの再同期化が完了したら、新しいディスクにブートブロックを適用します。
次のような構文を使用します。
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 |
新しいディスクから起動できることを確認します。
たとえば、SPARC システムの場合、次のような構文を使用します。
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0 |
新しいディスクからシステムが起動した場合は、古いディスクを切り離します。
次に例を示します。
# zpool detach rpool c1t10d0s0 |
システムが新しいディスクから自動的に起動するように設定します。そのためには、eeprom コマンドまたは SPARC ブート PROM のsetenv コマンドを使用するか、PC BIOS を再設定します。
回復に利用できるようにルートプールのスナップショットを作成することができます。ルートプールのスナップショットを作成するための最適な方法は、ルートプールの再帰的なスナップショットを実行することです。
次の手順に従って、再帰的なルートプールスナップショットを作成し、そのスナップショットをリモートシステムでプール内のファイルとして保存します。ルートプールで障害が発生した場合には、NFS を使ってリモートデータセットをマウントし、そのスナップショットファイルを受信して作成し直したプール内に格納することができます。代わりに、ルートプールスナップショットをリモートシステムのプール内の実際のスナップショットとして保存することもできます。修復対象のシステムを Solaris OS ミニルートから起動する一方で ssh を構成または rsh を使用する必要があるので、リモートシステムとのスナップショットの送受信は、やや複雑です。
ルートプールスナップショットをリモートで保存して回復する方法、およびルートプールの回復に関する最新情報については、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
ファイルまたはスナップショットとしてリモートに格納されたスナップショットの内容を確認することは、ルートプールを回復する際の重要なステップです。プールの構成が変更された場合や Solaris OS をアップグレードした場合など、定期的にいずれかの方法を使ってスナップショットを作成し直すべきです。
次の手順では、zfsBE ブート環境からシステムを起動します。
リモートシステム上で、スナップショットを格納するためのプールとファイルシステムを作成します。
次に例を示します。
remote# zfs create rpool/snaps |
ファイルシステムをローカルシステムと共有します。
次に例を示します。
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 "" |
ルートプールの再帰的なスナップショットを作成します。
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 - |
ルートプールのスナップショットをリモートシステムに送信します。
次に例を示します。
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 |
この手順では、次の条件を前提としています。
ZFS ルートプールを回復できない。
ZFS ルートプールのスナップショットがリモートシステム上に保存されており、NFS で共有されている。
手順はすべてローカルシステム上で実行します。
CD/DVD またはネットワークから起動します。
SPARC: 次のいずれかのブート方法を選択します。
ok boot net -s ok boot cdrom -s |
-s オプションを使用しない場合は、インストールプログラムを終了する必要があります。
x86: DVD またはネットワークから起動するオプションを選択します。その後、インストールプログラムを終了します。
リモートのスナップショットのデータセットをマウントします。
次に例を示します。
# mount -F nfs remote-system:/rpool/snaps /mnt |
ネットワークサービスを構成していない場合は、remote-system の IP アドレスを指定する必要があります。
ルートプールのディスクが置き換えられ、ZFS で使用可能なディスクラベルを含んでいない場合は、ディスクのラベルを変更する必要があります。
ディスクのラベル変更の詳細は、次の Web サイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
ルートプールを再作成します。
次に例を示します。
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0 |
ルートプールのスナップショットを復元します。
この手順には時間がかかることがあります。次に例を示します。
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool |
-u オプションを使用すると、復元されたアーカイブは zfs receive 処理の完了時にマウントされません。
ルートプールのデータセットが復元されていることを確認します。
次に例を示します。
# 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 - |
ルートプールの BE に bootfs プロパティーを設定します。
次に例を示します。
# zpool set bootfs=rpool/ROOT/zfsBE rpool |
新しいディスクに起動ブロックをインストールします。
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 |
システムを再起動します。
# 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/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 - |
システムをシャットダウンし、フェイルセーフモードで起動します。
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. |
ルートプールの各スナップショットをロールバックします。
# zfs rollback rpool@0804 # zfs rollback rpool/ROOT@0804 # zfs rollback rpool/ROOT/zfsBE@0804 |
再起動してマルチユーザーモードにします。
# init 6 |