この章では、Solaris Live Upgrade を使用して、非大域ゾーンがインストールされているシステムをアップグレードする方法について説明します。この章の内容は次のとおりです。
Solaris Live Upgrade を使用して非大域ゾーンが含まれているシステムをアップグレードする場合の変更の概要については、「Solaris Live Upgrade によるアップグレードおよびインストール済みの非大域ゾーン (概要)」を参照してください。
Solaris Live Upgrade を使用して新しいブート環境を作成し、システムをアップグレードする詳細な手順については、「非大域ゾーンがインストールされている場合のブート環境の作成とアップグレード (作業)」を参照してください。
Solaris Live Upgrade を使用して新しいブート環境を作成し、システムをアップグレードする例と簡潔な手順については、「非大域ゾーンがインストールされているシステムのアップグレード (例)」を参照してください。
非大域ゾーンの作成の概要については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』を参照してください。
Solaris 10 8/07 リリース以降では、Solaris Live Upgrade を使用して、非大域ゾーンが含まれているシステムのアップグレードまたはパッチを行うことができます。システムに非大域ゾーンが含まれている場合は、アップグレードやパッチを追加するプログラムとして、Solaris Live Upgrade を推奨します。ほかのアップグレードプログラムでは、膨大なアップグレード時間が必要となる場合があります。これは、アップグレードの実行に要する時間が、インストールされている非大域ゾーンの数に比例して増加するからです。Solaris Live Upgrade を使ってシステムにパッチを適用する場合は、システムをシングルユーザーモードにする必要がないため、システムの稼動時間を最大限に活用できます。次のリストは、非大域ゾーンがインストールされているシステムに対応するための変更をまとめたものです。
新しいパッケージ SUNWlucfg をほかの Solaris Live Upgrade パッケージ SUNWlur および SUNWluu とともにインストールする必要があります。このパッケージは、非大域ゾーンがインストールされているシステムだけでなく、どのシステムにも必要です。
現在稼動しているブート環境から新しいブート環境を作成する方法は以前のリリースの場合と同じですが、例外が 1 つあります。非大域ゾーン内の共有ファイルシステムに対して宛先ディスクスライスを指定できます。詳細は、「非大域ゾーンがインストールされている場合のブート環境の作成とアップグレード (作業)」を参照してください。
lumount コマンドは、非大域ゾーンが、非アクティブブート環境にある対応するファイルシステムにアクセスできるようにします。大域ゾーン管理者が lumount コマンドを使って非アクティブブート環境をマウントすると、同様にそのブート環境が非大域ゾーンに対してもマウントされます。「非大域ゾーンが含まれるシステムで lumount コマンドを使用する」を参照してください。
ブート環境の比較機能が向上しました。lucompare コマンドは、非大域ゾーンの内容が含まれているブート環境の比較を行うようになりました。「非大域ゾーンがインストールされているシステムのブート環境を比較する」を参照してください。
lufslist コマンドによるファイルシステムの表示機能が向上し、大域ゾーンと非大域ゾーンの両方のファイルシステムの一覧が表示されるようになりました。「ブート環境の非大域ゾーンのファイルシステムの構成を表示する」を参照してください。
Solaris ゾーン区分技術は、オペレーティングシステムサービスの仮想化に使用され、安全で隔離されたアプリケーション実行環境を提供します。非大域ゾーンは、Solaris OS の 1 つの実体 (大域ゾーン) 内で作成される仮想化されたオペレーティングシステム環境です。非大域ゾーンを作成すると、そのアプリケーション実行環境で実行されるプロセスはシステムのほかの部分から隔離されます。
Solaris Live Upgrade は、現在稼動しているシステムを新しいスライス上にコピーするための仕組みです。非大域ゾーンがインストールされている場合は、大域ゾーンのファイルシステムとともにその非大域ゾーンを非アクティブブート環境にコピーできます。
図 9–1 に、大域ゾーンのファイルシステムとともに非アクティブブート環境にコピーされる非大域ゾーンを示します。
ディスクが 1 つだけのシステムの例では、ルート (/) ファイルシステムが c0t0d0s4 にコピーされます。このファイルシステムに関連付けられている非大域ゾーンもすべて s4 にコピーされます。/export および /swap ファイルシステムは、現在のブート環境 bootenv1 と非アクティブブート環境 bootenv2 との間で共有されます。lucreate コマンドは次のようになります。
# lucreate -c bootenv1 -m /:/dev/dsk/c0t0d0s4:ufs -n bootenv2 |
ディスクが 2 つあるシステムの例では、ルート (/) ファイルシステムが c0t1d0s0 にコピーされます。このファイルシステムに関連付けられている非大域ゾーンもすべて s0 にコピーされます。/export および /swap ファイルシステムは、現在のブート環境 bootenv1 と非アクティブブート環境 bootenv2 との間で共有されます。lucreate コマンドは次のようになります。
# lucreate -c bootenv1 -m /:/dev/dsk/c0t1d0s0:ufs -n bootenv2 |
図 9–2 に、非大域ゾーンが非アクティブブート環境にコピーされる様子を示します。
ディスクが 1 つだけのシステムの例では、ルート (/) ファイルシステムが c0t0d0s4 にコピーされます。このファイルシステムに関連付けられている非大域ゾーンもすべて s4 にコピーされます。非大域ゾーン zone1 には、zonecfg add fs コマンドで作成された独立したファイルシステムがあります。ゾーンパスは /zone1/root/export です。このファイルシステムは、非アクティブブート環境で共有されないように、個別のスライス c0t0d0s6 上に配置されます。/export および /swap ファイルシステムは、現在のブート環境 bootenv1 と非アクティブブート環境 bootenv2 との間で共有されます。lucreate コマンドは次のようになります。
# lucreate -c bootenv1 -m /:/dev/dsk/c0t0d0s4:ufs \ -m /export:/dev/dsk/c0t0d0s6:ufs:zone1 -n bootenv2 |
ディスクが 2 つあるシステムの例では、ルート (/) ファイルシステムが c0t1d0s0 にコピーされます。このファイルシステムに関連付けられている非大域ゾーンもすべて s0 にコピーされます。非大域ゾーン zone1 には、zonecfg add fs コマンドで作成された独立したファイルシステムがあります。ゾーンパスは /zone1/root/export です。このファイルシステムは、非アクティブブート環境で共有されないように、個別のスライス c0t1d0s4 上に配置されます。/export および /swap ファイルシステムは、現在のブート環境 bootenv1 と非アクティブブート環境 bootenv2 との間で共有されます。lucreate コマンドは次のようになります。
# lucreate -c bootenv1 -m /:/dev/dsk/c0t1d0s0:ufs \ -m /export:/dev/desk/c0t1d0s4:ufs:zone1 -n bootenv2 |
次の節では、非大域ゾーンがインストールされている場合のブート環境の作成に関する情報とアップグレード手順について説明します。
「非大域ゾーンがシステムにインストールされている場合に Solaris Live Upgrade でアップグレードする (作業)」
例と簡潔な手順については、「非大域ゾーンがインストールされているシステムのアップグレード (例)」を参照してください。
現在稼動しているブート環境から新しいブート環境を作成する方法は、1 つの例外を除いて、以前のリリースの場合と同じです。非大域ゾーン内の共有ファイルシステムに対して宛先ディスクスライスを指定できます。この例外は、次の条件のもとで発生します。
現在のブート環境で zonecfg add fs コマンドが使用され、非大域ゾーンに対して独立したファイルシステムが作成された場合
この独立したファイルシステムが、/zone/root/export などの共有ファイルシステム上にある場合
この独立したファイルシステムが新しいブート環境で共有されないようにするため、lucreate コマンドでは、非大域ゾーンの独立したファイルシステムに対して宛先スライスを指定できます。-m オプションの引数には、新しい省略可能フィールド zonename が追加されました。この新しいフィールドは、非大域ゾーンの独立したファイルシステムを新しいブート環境の個別のスライス上に配置します。非大域ゾーンに独立したファイルシステムを設定する方法の詳細は、zonecfg(1M) のマニュアルページを参照してください。
デフォルトでは、クリティカルファイルシステム (ルート (/)、/usr、/opt ファイルシステム) 以外のすべてのファイルシステムが現在のブート環境と新しいブート環境との間で共有されます。このため、アクティブブート環境内の共有ファイルを更新すると、非アクティブブート環境のデータも更新されます。たとえば、/export ファイルシステムは共有ファイルシステムです。-m オプションと zonename オプションを使用すると、非大域ゾーンのファイルシステムが別のスライスにコピーされ、データは共有されません。このオプションは、zonecfg add fs コマンドを使って作成した非大域ゾーンのファイルシステムがブート環境間で共有されないようにします。
ここでは、非大域ゾーンがインストールされているシステムを Solaris Live Upgrade でアップグレードする詳しい手順について説明します。
必要なパッチをインストールします。
http://sunsolve.sun.com で最新のパッチリストを確認してください。SunSolve の Web サイトで、infodoc 72099 を検索してください。
既存の Solaris Live Upgrade パッケージを削除します。
3 つの Solaris Live Upgrade パッケージ SUNWluu、SUNWlur、および SUNWlucfg は、Solaris Live Upgrade を使ってアップグレードするのに必要なソフトウェアを構成します。これらのパッケージには、既存のソフトウェア、新しい機能、およびバグ修正が含まれています。Solaris Live Upgrade を使用する前に、既存パッケージを削除しないで新しいパッケージをシステムにインストールすると、ターゲットリリースへのアップグレードは失敗します。
# pkgrm SUNWlucfg SUNWluu SUNWlur |
Solaris Live Upgrade パッケージをインストールします。
Solaris DVD または CD を挿入します。
このメディアには、アップグレードの対象となるリリース用のパッケージが含まれています。
インストールメディアまたはネットワークインストールイメージから、次の順序でパッケージをインストールします。
# pkagadd -d path_to_packages SUNWlucfg SUNWlur SUNWluu |
次の例では、インストールメディアからパッケージがインストールされます。
SPARC システムの場合:
# pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu |
x86 システムの場合:
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu |
パッケージが正常にインストールされていることを確認します。
# pkgchk -v SUNWlucfg SUNWlur SUNWluu |
新しいブート環境を作成します。
# lucreate [-A 'BE_description'] [-c BE_name] \ -m mountpoint:device[,metadevice]:fs_options[:zonename] [-m ...] -n BE_name |
作成するブート環境の名前。BE_name は、システム上で一意となるように指定する必要があります。
(省略可能) ブート環境名 (BE_name) の説明を記述できます。記述の長さ、使用できる文字に制限はありません。
アクティブブート環境に名前 BE_name を割り当てます。このオプションは省略可能で、最初のブート環境を作成する場合だけ使用されます。lucreate を初めて実行する場合に -c オプションを省略すると、デフォルトの名前が作成されます。
新しいブート環境のファイルシステム構成を vfstab で指定します。-m に引数として指定されるファイルシステムは、同じディスク上のファイルシステムでも、複数のディスク上のファイルシステムでも構いません。このオプションは、作成するファイルシステムの数だけ使用します。
mountpoint には、任意の有効なマウントポイント、またはスワップパーティションを示す – (ハイフン) を指定できます。
device フィールドには、次のいずれかを指定できます。
ディスクデバイスの名前。/dev/dsk/cwtxdysz の形式で表されます
Solaris ボリュームマネージャーのボリューム名。/dev/md/dsk/dnum の形式で表されます
Veritas Volume Manager のボリューム名。/dev/md/vxfs/dsk/dnum の形式で表されます
キーワード merged。指定されたマウントポイントのファイルシステムがその親とマージされることを示します
fs_options フィールドには、次のいずれかを指定できます。
ufs: UFS ファイルシステムを示します。
vxfs: Veritas ファイルシステムを示します。
swap: スワップファイルシステムを示します。スワップマウントポイントはハイフン (–) で表します。
論理デバイス (ミラー) であるファイルシステムについては、いくつかのキーワードを使って、そのファイルシステムに対して実行するアクションを指定できます。論理デバイスの作成、論理デバイスの構成変更、論理デバイスの削除などを行うキーワードがあります。これらのキーワードの詳細は、「RAID-1 ボリューム (ミラー) を持つブート環境を作成する」を参照してください。
zonename は、非大域ゾーンの独立したファイルシステムが個別のスライス上に配置されるように指定します。このオプションは、そのゾーンの独立したファイルシステムが /zone1/root/export などの共有ファイルシステム内にある場合に使用します。このオプションは、そのゾーンの独立したファイルシステムを新しいスライスにコピーして、このファイルシステムが共有されないようにします。独立したファイルシステムは、zonecfg add fs コマンドを使って作成したものです。
次の例では、newbe という新しいブート環境が作成されます。ルート (/) ファイルシステムは、c0t1d0s4 上に配置されます。現在のブート環境にある非大域ゾーンはすべて、新しいブート環境にコピーされます。zone1 という非大域ゾーンに対して個別のマウントポイントが c0t1d0s1 上に指定されます。
デフォルトでは、クリティカルファイルシステム (ルート (/)、/usr、/opt ファイルシステム) 以外のすべてのファイルシステムが現在のブート環境と新しいブート環境との間で共有されます。/export ファイルシステムは共有ファイルシステムです。-m オプションを使用すると、非大域ゾーンのファイルシステムが別のスライス上に配置され、データは共有されません。このオプションは、zonecfg add fs コマンドを使って作成したゾーンのファイルシステムがブート環境間で共有されないようにします。詳細は、zonecfg(1M) のマニュアルページを参照してください。
# lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1 |
ブート環境をアップグレードします。
アップグレードに使用するオペレーティングシステムイメージはネットワークから取得します。
# luupgrade -u -n BE_name -s os_image_path |
ブート環境のオペレーティングシステムイメージをアップグレードします。
アップグレード対象のブート環境の名前を指定します。
オペレーティングシステムイメージが置かれているディレクトリのパス名を指定します。
この例では、新しいブート環境 newbe がネットワークインストールイメージからアップグレードされます。
# luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos |
(省略可能) ブート環境がブート可能であることを確認します。
lustatus コマンドは、ブート環境の作成が完了してブート可能であるかどうかを報告します。
# lustatus boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ c0t1d0s0 yes yes yes no - newbe yes no no yes - |
新しいブート環境をアクティブにします。
# luactivate BE_name |
BE_name は、アクティブにするブート環境の名前を示します。
x86 ベースのシステムの場合、ブート環境をはじめてブートするときには luactivate コマンドを使用する必要があります。2 回目以降は、GRUB メニューからブート環境を選択すれば、アクティブにできます。手順については、「x86: GRUB メニューを使ったブート環境のアクティブ化」を参照してください。
ブート環境を正常にアクティブにするためには、そのブート環境がいくつかの条件を満たしている必要があります。詳細は、「ブート環境のアクティブ化」を参照してください。
リブートします。
# init 6 |
リブートには init か shutdown コマンドを使用してください。reboot や halt、uadmin コマンドを使用すると、ブート環境の切り替えは行われません。最後にアクティブになっていたブート環境が再びブートされます。
ブート環境が切り替わり、新しいブート環境が現在のブート環境になります。
(省略可能) 別のブート環境にフォールバックします。
新しいブート環境が実行可能でない場合、または別のブート環境に切り替える必要がある場合は、第 6 章「障害回復: 元のブート環境へのフォールバック (作業)」を参照してください。
ここでは、Solaris Live Upgrade を使ってアップグレードする例を簡潔な手順を追って説明します。
詳しい手順については、「非大域ゾーンがシステムにインストールされている場合に Solaris Live Upgrade でアップグレードする (作業)」を参照してください。
次の例では、非大域ゾーンがインストールされているシステムをアップグレードする手順について簡潔に説明します。この例では、Solaris 10 リリースが稼動しているシステムで、lucreate コマンドを使って新しいブート環境を作成します。このシステムには非大域ゾーンがインストールされており、そのゾーンの独立したファイルシステムは共有ファイルシステム zone1/root/export 上にあります。この新しいブート環境を、luupgrade コマンドを使用して Solaris 10 5/08 にアップグレードします。アップグレードしたブート環境を、luactivate コマンドによってアクティブ化します。
この手順では、システムでボリュームマネージャーを実行していると仮定しています。ボリュームマネージャーを使用したリムーバブルメディアの管理の詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』を参照してください。
必要なパッチをインストールします。
http://sunsolve.sun.com で最新のパッチリストを確認してください。SunSolve の Web サイトで、infodoc 72099 を検索してください。この例では、/net/server/export/patches がパッチへのパスです。
# patchadd /net/server/export/patches # init 6 |
Solaris Live Upgrade パッケージを現在のブート環境から削除します。
# pkgrm SUNWlucfg SUNWluu SUNWlur |
Solaris DVD または CD を挿入します。次に、ターゲットリリースから交換用の Solaris Live Upgrade パッケージをインストールします。
SPARC システムの場合:
# pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu |
x86 システムの場合:
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu |
ブート環境を作成します。
次の例では、newbe という新しいブート環境が作成されます。ルート (/) ファイルシステムは、c0t1d0s4 上に配置されます。現在のブート環境にある非大域ゾーンはすべて、新しいブート環境にコピーされます。zonecfg add fs コマンドを使って独立したファイルシステムを zone1 に対して作成してあります。この独立したファイルシステム /zone/root/export は、個別のスライス c0t1d0s1 上に配置されます。このオプションを使用すると、独立したファイルシステムが現在のブート環境と新しいブート環境の間で共有されなくなります。
# lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1 |
新しいブート環境をアップグレードします。
この例では、/net/server/export/Solaris_10/combined.solaris_wos がネットワークインストールイメージへのパスです。
# luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos |
(省略可能) ブート環境がブート可能であることを確認します。
lustatus コマンドは、ブート環境の作成が完了したかどうかを報告します。
# lustatus boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ c0t1d0s0 yes yes yes no - newbe yes no no yes - |
新しいブート環境をアクティブにします。
# luactivate newbe # init 6 |
ブート環境 newbe がアクティブになりました。
(省略可能) 別のブート環境にフォールバックします。新しいブート環境が実行可能でない場合、または別のブート環境に切り替える必要がある場合は、第 6 章「障害回復: 元のブート環境へのフォールバック (作業)」を参照してください。
ここでは、非大域ゾーンが含まれているブート環境の管理について説明します。
大域ゾーンと非大域ゾーンの両方のファイルシステムの一覧を表示するには、次の手順を実行します。
スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ファイルシステムの一覧を表示します。
# lufslist -n BE_name |
ファイルシステムの詳細を表示するブート環境の名前を指定します。
次の例では、非大域ゾーンが含まれているファイルシステムの一覧が表示されます。
# lufslist -n s3 boot environment name: s3 This boot environent is currently active. This boot environment will be active on next system boot. |
Filesystem fstype device size Mounted on Mount Options ------------------------------------------------------------------ /dev/dsk/c0t0d0s1 swap 2151776256 - - /dev/dsk/c0t0d0s3 ufs 10738040832 / - /dev/dsk/c0t0d0s7 ufs 10487955456 /export - zone <zone1> within boot environment <s3> /dev/dsk/c0t0d0s5 ufs 5116329984 /export - |
lucompare コマンドは、非大域ゾーンの内容が含まれているブート環境の比較を行うようになりました。
スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
現在のブート環境と新しいブート環境を比較します。
# /usr/sbin/lucompare -i infile |
または
# /usr/sbin/lucompare -t -o outfile BE_name |
infile 中に指定されたファイルを比較します。比較するファイルは、絶対パスで指定する必要があります。ファイルのエントリがディレクトリである場合、比較はディレクトリに対して再帰的に行われます。このオプションまたは -t のいずれか一方を使用できます (両方は使用できません)。
バイナリ以外のファイルだけを比較します。この比較では、ファイルごとに file(1) コマンドを使用してそのファイルがテキストファイルであるかを確認します。ユーザーは、このオプションまたは -i のいずれか一方を使用できます (両方は使用できません)。
相違についての出力を outfile にリダイレクトします。
アクティブブート環境と比較するブート環境の名前を指定します。
この例では、現在のブート環境 (ソース) と second_disk ブート環境が比較され、結果がファイルに出力されます。
# /usr/sbin/lucompare -i /etc/lu/compare/ -o /var/tmp/compare.out second_disk |
lumount コマンドは、非大域ゾーンが、非アクティブブート環境にある対応するファイルシステムにアクセスできるようにします。大域ゾーン管理者が lumount コマンドを使って非アクティブブート環境をマウントすると、同様にそのブート環境が非大域ゾーンに対してもマウントされます。
次の例では、ブート環境 newbe に対して、適切なファイルシステムが大域ゾーンの /mnt にマウントされます。実行中の非大域ゾーン、マウントされた非大域ゾーン、または準備完了の非大域ゾーンについては、newbe 内にある対応するファイルシステムが各ゾーン内の /mnt でも使用できるようになります。
# lumount -n newbe /mnt |
マウントの詳細は、lumount(1M) のマニュアルページを参照してください。