Solaris 10 5/09 インストールガイド (Solaris Live Upgrade とアップグレードの計画)

第 11 章 Solaris Live Upgrade と ZFS (概要)

Solaris Live Upgrade を使用して、UFS ファイルシステムを ZFS ルートプールに移行し、既存の ZFS ルートプールから ZFS ルートファイルシステムを作成することができます。


注 –

Solaris Live Upgrade を使用したブート環境の作成は、Solaris 10 10/08 リリースの新機能です。UFS ファイルシステムでの Solaris Live Upgrade の実行に関しては、コマンド行パラメータにも Solaris Live Upgrade の操作にも変更はありません。UFS ファイルシステムがインストールされているシステムで Solaris Live Upgrade を実行する場合は、本書のパート I「Solaris Live Upgrade によるアップグレード」を参照してください。


次の節で、これらの作業の概要を説明しています。

ZFS での Solaris Live Upgrade の使用の概要

UFS ファイルシステムをお使いの場合は、Solaris Live Upgrade は以前のリリースと同様に動作します。今回のリリースでは、UFS ファイルシステムから ZFS ルートプールへの移行、および ZFS ルートプール内での新規ブート環境の作成が可能になりました。これらの作業向けに、lucreate コマンドが -p オプションで拡張されました。コマンドの構文は次のとおりです。


# lucreate [-c active_BE_name] -n BE_name [-p zfs_root_pool]

-p オプションでは、新しいブート環境を配置する ZFS プールを指定します。このオプションは、ソースブート環境とターゲットブート環境が同一のプール内にある場合は省略できます。

lucreate コマンドの -m オプションは ZFS ではサポートされません。その他の lucreate コマンドのオプションは、一部の例外を除いてこれまでと変わりありません。制限事項については、「Solaris Live Upgrade 使用時のシステム要件と制限事項」を参照してください。

UFS ファイルシステムから ZFS ルートプールへの移行

現在稼動中のシステムからブート環境を作成する場合は、lucreate コマンドで UFS ルート (/) ファイルシステムを ZFS ルートプールにコピーします。コピー処理には、システムによって時間がかかる場合があります。

UFS ファイルシステムから移行する場合は、ディスクスライス上の UFS ルート (/) ファイルシステムをソースブート環境にすることができます。ZFS ルートプール上のソースブート環境から UFS ファイルシステム上のブート環境を作成することはできません。

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

ここでは、ZFS ルートプールを作成し、UFS ルート (/) ファイルシステムから ZFS ルートプール内に新規ブート環境を作成するためのコマンドについて説明します。ZFS ルートプールは lucreate を使用する前に作成します。また、アップグレード可能かつブート可能にするために、ディスク全体ではなくスライス上に作成します。EFI ラベルの付いたディスクは使えません。SMI ラベルの付いたディスクを使用してください。その他の制限事項については、「Solaris Live Upgrade 使用時のシステム要件と制限事項」を参照してください。

図 11–1 に、ルートプール rpool を別のスライス c0t1d0s5 上に作成する zpool コマンドを示します。ディスクスライス c0t0d0s0 には、UFS ルート (/) ファイルシステムが含まれています。lucreate コマンドの -c オプションで指定する現在稼動中のシステム c0t0d0 が、UFS ルート (/) ファイルシステムです。-n オプションで、作成するブート環境に new-zfsBE という名前を割り当てます。-p オプションでは、新しいブート環境を rpool に配置することを指定します。UFS の /export ファイルシステムと /swap ボリュームは、新しいブート環境にコピーされません。

図 11–1 UFS ファイルシステムから ZFS ルートプールへの移行

この図については本文中で説明しています。


例 11–1 UFS ルート (/) ファイルシステムから ZFS ルートプールへの移行

この例では、図 11–1 と同じコマンドを示しています。これらのコマンドで、新規のルートプール rpool を作成し、UFS ルート (/) ファイルシステムからプール内に新規ブート環境を作成します。この例では、zfs list コマンドで、zpool コマンドによって作成した ZFS ルートプールを表示しています。次の zfs list コマンドでは、lucreate コマンドで作成されたデータセットを表示しています。


# zpool create rpool c0t1d0s5
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool

# lucreate -c c0t0d0 -n new-zfsBE -p rpool
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool
rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
rpool/dump                 1.95G      -  1.95G  - 
rpool/swap                 1.95G      -  1.95G  - 

新しいブート環境は rpool/ROOT/new-zfsBE です。ブート環境 new-zfsBE は、すぐにアップグレードおよびアクティブにできます。


Solaris ボリュームマネージャーボリュームで構成された UFS ファイルシステムの ZFS ルートファイルシステムへの移行

Solaris ボリュームマネージャー (SVM) ボリュームがあるシステムでも、UFS ファイルシステムの移行が可能です。既存の SVM 構成から UFS ブート環境を作成するため、現在稼動中のシステムから新規ブート環境を作成します。その後、その新しい UFS ブート環境から ZFS ブート環境を作成します。

Solaris ボリュームマネージャー (SVM) の概要。ZFS では、物理ストレージを管理するために、「ストレージプール」という概念を使用します。従来のファイルシステムは、1 つの物理デバイス上に構築されていました。複数のデバイスを扱ってデータの冗長性を実現するため、単一デバイスのイメージを提供するボリュームマネージャーの概念が導入されました。このようにすれば、複数デバイスの利点を享受するためにファイルシステムを変更する必要はありません。一方、この設計によって、複雑さは増大します。ファイルシステムには、仮想化したボリューム上の物理的なデータの配置を制御する機能がないため、この複雑さは結局、ある面でファイルシステムの進化を阻みました。

ZFS ストレージプールによる SVM の置き換え。ZFS は、ボリューム管理を完全になくしています。ZFS では、仮想化されたボリュームを作成する代わりに、デバイスをストレージプールに集約します。ストレージプールは、デバイスのレイアウト、データの冗長性などのストレージの物理特性を記述したもので、ファイルシステムを作成できる任意のデータストアとして機能します。ファイルシステムが個々のデバイスに制約されなくなり、デバイスの領域をプール内のすべてのファイルシステムで共有することができます。ファイルシステムのサイズを事前に決定する必要はなくなりました。ファイルシステムのサイズは、ストレージプールに割り当てられた領域内で自動的に拡張します。新しいストレージを追加すると、何も操作しなくても、プール内のすべてのファイルシステムで追加した領域をすぐに使用できます。多くの点で、ストレージプールは仮想的なメモリーシステムと言えます。システムに DIMM メモリーを追加したときに、メモリーの構成と各プロセスへの割り当てを実行するコマンドの呼び出しをオペレーティングシステムから要求されることはありません。追加したメモリーは、システムのすべてのプロセスによって自動的に使用されます。


例 11–2 SVM ボリュームのある UFS ルート (/) ファイルシステムから ZFS ルートプールへの移行

SVM ボリュームのあるシステムを移行する場合、SVM ボリュームは無視されます。次の例に示すように、ルートプール内にミラーを設定できます。

この例では、-m オプションを指定した lucreate コマンドで、現在稼動中のシステムから新規ブート環境を作成します。ディスクスライス c1t0d0s0 には、SVM ボリュームで構成された UFS ルート (/) ファイルシステムが含まれています。zpool コマンドで、ルートプール c1t0d0s0、および RAID-1 ボリューム (ミラー) c2t0d0s0 を作成します。2 番目の lucreate コマンドの -n オプションで、作成するブート環境に c0t0d0s0 という名前を割り当てます。-s オプションでは、UFS ルート (/) ファイルシステムを指定します。-p オプションでは、新しいブート環境を rpool に配置することを指定します。


# lucreate -n ufsBE -m /:/dev/md/dsk/d104:ufs
# zpool create rpool mirror c1t0d0s0 c20t0d0s0
# lucreate -n c0t0d0s0 -s ufsBE -p rpool

ブート環境 c0t0d0s0 は、すぐにアップグレードおよびアクティブにできます。


ZFS ルートプールからの新規ブート環境の作成

新規 ZFS ブート環境は、同一ルートプール内、新規ルートプール上のどちらにも作成できます。この節には次の概要が含まれます。

同一のルートプール内での新規ブート環境の作成

同一の ZFS ルートプール内で新規ブート環境を作成する場合は、lucreate コマンドでソースブート環境からスナップショットを作成し、そのスナップショットからクローンを作成します。スナップショットとクローンの作成はきわめて短時間で完了し、ディスク容量の消費も最小限ですみます。最終的にどれくらいの容量が必要かは、アップグレード処理の一環として置き換えられるファイルの数で決まります。スナップショットは読み取り専用ですが、クローンはスナップショットの読み書き可能なコピーです。クローンブート環境に加えられた変更は、スナップショットにも、スナップショットの作成元のソースブート環境にも反映されません。


注 –

有効なデータセット内のデータが変更されると、スナップショットは古いデータを参照し続けるための領域を使用します。その場合、スナップショットのため、古いデータの領域は解放されずプールに戻されません。スナップショットの詳細については、『Solaris ZFS 管理ガイド』の第 7 章「ZFS のスナップショットとクローンの操作」を参照してください。


現在のブート環境が同じ ZFS プールにある場合、-p オプションは省略します。

図 11–2 に、ZFS ルートプールからの ZFS ブート環境の作成の概要を示します。スライス c0t0d0s0 に、ZFS ルートプール rpool が含まれています。lucreate コマンドの -n オプションで、作成するブート環境に new-zfsBE という名前を割り当てます。元のルートプールのスナップショット rpool@new-zfsBE が作成されます。このスナップショットから、新規ブート環境 new-zfsBE となるクローンが作成されます。ブート環境 new-zfsBE は、すぐにアップグレードおよびアクティブにできます。

図 11–2 同一のルートプール上への新規ブート環境の作成

この図については本文中で説明しています。


例 11–3 同一の ZFS ルートプール内でのブート環境の作成

この例には、同一のルートプール内に新規ブート環境を作成する、図 11–2 と同じコマンドが示されています。lucreate コマンドでは、-c zfsBE オプションで現在稼動中のブート環境を指定し、-n new-zfsBE オプションで新しいブート環境を作成します。zfs list コマンドでは、新しいブート環境とスナップショットにある ZFS データセットが表示されます。


# lucreate -c zfsBE -n new-zfsBE
# zfs list
AME                        USED  AVAIL  REFER  MOUNTPOINT 
rpool                      9.29G  57.6G    20K  /rpool
rpool/ROOT                 5.38G  57.6G    18K  /rpool/ROOT
rpool/ROOT/zfsBE           5.38G  57.6G   551M  
rpool/ROOT/zfsBE@new-zfsBE 66.5K      -   551M  -
rpool/ROOT/new-zfsBE       5.38G  57.6G   551M  /tmp/.alt.luupdall.110034
rpool/dump                 1.95G      -  1.95G  - 
rpool/swap                 1.95G      -  1.95G  - 

別のルートプール上への新規ブート環境の作成

lucreate コマンドを使用して、既存の ZFS ルートプールを別の ZFS ルートプール内にコピーできます。コピー処理には、システムによって時間がかかる場合があります。

図 11–3 に、ブート可能な ZFS ルートプールがまだ存在しないため、ZFS ルートプール rpool2c0t1d0s5 上に作成する zpool コマンドを示します。lucreate コマンドの -n オプションで、作成するブート環境に new-zfsBE という名前を割り当てます。-p オプションでは、新しいブート環境を配置する場所を指定します。

図 11–3 別のルートプール上への新規ブート環境の作成

この図については本文中で説明しています。


例 11–4 異なる ZFS ルートプール上へのブート環境の作成

この例では、新規ルートプールの作成後、新しく作成したルートプールに新規ブート環境を作成する、図 11–3 と同じコマンドを示しています。この例の zpool create コマンドで rpool2 が作成されます。zfs list コマンドで、rpool2 に ZFS データセットが作成されていないことが示されます。データセットは、lucreate コマンドで作成されます。


# zpool create rpool2 c0t2d0s5
# zfs list
NAME                             USED    AVAIL   REFER   MOUNTPOINT 
rpool2                           9.29G    57.6G     20K   /rpool2 
rpool                            9.29G    57.6G     20K   /.new.lulib.rs.109262
rpool/ROOT                       5.46G    57.6G     18K   legacy
rpool/ROOT/zfsBE                 5.46G    57.6G   551M  
rpool/dump                       3.99G        -   3.99G   - 
rpool/swap                       3.99G        -   3.99G   - 

新しい ZFS ルートプール rpool2 が、ディスクスライス c0t2d0s5 上に作成されます。


# lucreate -n new-zfsBE -p rpool2
# zfs list
NAME                             USED    AVAIL   REFER   MOUNTPOINT 
rpool2                           9.29G    57.6G     20K   /rpool2 
rpool2/ROOT/                     5.38G    57.6G     18K   /rpool2/ROOT 
rpool2/ROOT/new-zfsBE            5.38G    57.6G    551M   /tmp/.new.luupdall.109859
rpool2/dump                      3.99G        -   3.99G   - 
rpool2/swap                      3.99G        -   3.99G   - 
rpool                            9.29G    57.6G     20K   /.new.lulib.rs.109262
rpool/ROOT                       5.46G    57.6G     18K   legacy
rpool/ROOT/zfsBE                 5.46G    57.6G   551M  
rpool/dump                       3.99G        -   3.99G   - 
rpool/swap                       3.99G        -   3.99G   - 

新しいブート環境 new-zfsBE が、ROOTdump、および swap の他のデータセットと共に rpool2 に作成されます。ブート環境 new-zfsBE は、すぐにアップグレードおよびアクティブにできます。


現在稼動中のシステム以外のソースからの新規ブート環境の作成

現在稼動中のシステム以外のソースからブート環境を作成する場合は、lucreate コマンドに -s オプションを指定して実行します。-s オプションは、UFS ファイルシステムの場合と同じように機能します。-s オプションには、代替ルート (/) ファイルシステムのパスを指定します。この代替ルート (/) ファイルシステムが、新しい ZFS ルートプールを作成するためのソースとなります。代替ルートは、UFS (/) ルートファイルシステム、ZFS ルートプールのどちらでもかまいません。コピー処理には、システムによって時間がかかる場合があります。


例 11–5 代替ルート (/) ファイルシステムからのブート環境の作成

次のコマンドで、既存の ZFS ルートプールから新規 ZFS ルートプールを作成します。-n オプションで、作成するブート環境に new-zfsBE という名前を割り当てます。-s オプションには、現在稼動中のブート環境の代わりにコピー元として使用する、ブート環境 source-zfsBE を指定します。-p オプションでは、新しいブート環境を newpool2 に配置することを指定します。


# lucreate -n new-zfsBE  -s source-zfsBE -p rpool2

ブート環境 new-zfsBE は、すぐにアップグレードおよびアクティブにできます。


非大域ゾーンがインストールされているシステム上への ZFS ブート環境の作成

Solaris Live Upgrade を使用して、非大域ゾーンを ZFS ルートファイルシステムに移行できます。概要、計画、および詳細な手順については、第 14 章非大域ゾーンがインストールされている ZFS の Solaris Live Upgradeを参照してください。

追加情報

この章のトピックに関する追加情報については、表 11–1 のリソースを参照してください。

表 11–1 追加情報

リソース 

場所 

概要、計画、詳細な手順を含む ZFS の情報 

『Solaris ZFS 管理ガイド』

UFS ファイルシステムがインストールされているシステムでの Solaris Live Upgrade の使用 

本書のパート I「Solaris Live Upgrade によるアップグレード」