BigAdmin System Administration Portal
Solaris Live Upgrade の使用法
Print-friendly VersionPrint-friendly Version
Solaris Technical Article

Solaris Live Upgrade の使用法


Solaris OS には、システムを稼働させたままで、アップグレードされたオペレーティングシステムを構築し、システムのダウンタイムをリブートに要する最低限の時間に抑える Live Upgrade という機能があります。 この Live Upgrade は、Solaris 8 で導入された機能で、以前、このコーナーでも取り上げました。

この機能は、SPARC プラットフォームだけではなく、x86 プラットフォームでも利用することができます。 Live Upgrade は、サービスが稼働中のシステムを最小限のダウンタイムでアップグレードできることなどから実運用のサーバに特化した機能のように思われるかもしれません が、Solaris Express のように毎月リリースされるオペレーティングシステムを評価するような場合にもとても都合のよい機能です。
今月は、通常の Solaris リリースと将来のリリースの早期アクセス版である Solaris Express を切り替えてブートする方法を中心に Live Upgrade の使用方法について解説します。


はじめに

このドキュメントは、Solaris オペレーティングシステムの x86 プラットフォーム版について記述していますが、この情報は SPARC プラットフォーム版にも適用することができます。 このドキュメントによって、より多くのユーザーが Sun の Solaris Live Upgrade ソフトウェアを使用するようになることを期待しています。

現在、次期 Solaris リリースの早期提供版として Solaris Express の更新版が毎月リリースされています。 この Solaris Express をダウンロードして将来の Solaris OS に搭載される新機能にアクセスすることをお奨めします。

早期リリースにアクセスする場合、テストや開発を行うために 2、3 の異なる環境を持つことができますが、Live Upgrade は、これらの複数の環境を切り替えてブートするための手段として使うことができます。 Live Upgrade は、コピー元の環境に存在したシステムファイルやユーザファイルはそのままに可能な限り既存の環境を変えずにアップグレードします。

Live Upgrade の細かい操作方法については、Sun の製品ドキュメントサイト http://docs.sun.com/ を参照してください。


例: Solaris 9 リリースと現在の Solaris Express リリースを切り替えてブートする

簡単な例から始めます。 Solaris 9 の製品版リリースと、毎月リリースされる Solaris Express リリースを切り替えてブートしたいシステムがあるとします。

まず、x86 システムの 40G バイトのディスクをパーティショニング分割します。 Live Upgrade は、複数のディスクがあるシステムでは異なるディスクにアップグレードイメージを作って切り替えることもできますが、ここではディスクが 1台で 1人のユーザという最も基本的な構成で、Solaris 9 OS と Solaris Express を切り替えるために Live Upgrade を活用する方法について説明します。

注意: ダウングレードすることはできません。

Live Upgrade を含め Sun のツールでは、ダウングレードする機能は提供していません。

システムに対して行った全ての変更は、ファイルアクセス権の変更やファイルシステムの変更を含めて、新しいシステムに移行されます。 これには変更したシンボリックリンク、インストールしたソフトウェア、インストールしたパッケージなどが含まれるため、ダウングレードすることはできません。

この処理に相応な時間がかかることは容易に想像できます。 時間のことだけ考えれば、最低限の変更だけ行ったブート環境をコピーするのが最善と言えるでしょう。 しかし、利便性を考慮すれば、Live Upgrade にこれらの変更をコピーさせ、Solaris の新しいリリースでも同じ環境を作成できるという点で価値があります。 もちろん、これは Live Upgrade の背後にある概念です。

下図は、1台のディスクの場合と 2台のディスクの場合について説明していますが、ここでは左側の 1台のディスクの例を参照してください。

この図では、3 つの root(/) があります。 1 つの root(/) は Solaris 9 のリリースで、残りの 2 つの root(/) は、Solaris Express にアップグレードされた OS です。 この例では、Solaris 9 update 6 をインストールし、変更を加える前に、Solaris Express の現在のリリース用の第 2 ブート環境を作成しています。 あとで、Solaris Express ビルドを作成し、更新します。

Live Upgrade

図 1: ブート環境の作成 -- root(/) から root(/) へのコピー

図の右側は、2台のハードディスクを使って Live Upgrade を行う場合の例です。 図では、2台のハードディスクまでになっていますが、3台以上のハードディスクを使うこともできます。 また root(/)は、Solaris パーティション内の任意のスライスに設定することができます。

Live Upgrade には //var/usr、および /opt のすべてが必要です。 これらは Solaris にとって必須のファイルシステムです。 新しいブート環境の作成時には、これらのファイルシステムをコピーする必要があります。 これらファイルを複数のブート環境で共有することはできないのでこれらファイルのコピーを省くことはできません。 説明を簡単にするため、図1 のように 1台のハードディスクで root(/)パーティションにこれらすべてが存在する場合について説明します。

また、これらのブート環境の全てが /export を共有することも重要なポイントです。  Live Upgrade は、複数ディスクにまたがった任意のパーティションを使うことができるという点でも非常に柔軟性が高いと言えます。 一般的に、ファイルシステムがマウントされ、新しいブート環境の作成時に /etc/vfstab にエントリがある場合、そのファイルシステムは、現在のブート環境と新しいブート環境の間で共有されますが、例外は Solaris の必須ファイルシステム (//var/usr、および /opt) で、これらが共有されることは決してありません。

図1 では現時点で、3 つの root スライス、1つの共有 swap スライス、および 1つの共有 export スライスを持つ 1つの大きな Solaris パーティションがあります。 ここで、各 root スライスに 9G バイト、swap パーティションに 500M バイト、共有 export に残りの 10〜12G バイトを与えるよう、1 つの 40G バイトドライブをパーティション分割したと仮定します。

ここで説明したインストールの後、追加の root パーティションを /etc/vfstab に追加した場合は追加の root パーティションを削除する必要があります。 これは、これらがマウントに接続されていると、Live Upgrade ユーティリティがこれらを使用できなくなるためです。


Live Upgrade ツールのインストール

Live Upgrade を使用する前に、アップグレードの対象となるリリースから最新の Live Upgrade ツールをインストールしてください。 Live Upgrade は、アップグレードのための機能なので古いリリースにダウングレードすることはできません。 したがって、常にアップグレードする対象となるリリースのメディアから最新の Live Upgrade ツールをインストールする必要があります。

最新の Live Upgrade は、アップグレードしたリリースの CD2 に含まれています。 CD 2 の以下のディレクトリにあるインストーラを起動してください。
  • (Solaris 9 の場合)
    Solaris_9/Tools/Installers/liveupgrade20
  • (Solaris 10 の場合)
    Solaris_10/Tools/Installers/liveupgrade20

これにより最新の Live Upgrade ユーティリティをインストールすることができます。

前述したようにアップグレードを実行する前に、最新の Live Upgrade ユーティリティーをインストールする必要があります。 もし、ユーティリティのレベルが同じである場合、WebStart は同じレベルがすでにインストールされていることを通知します。

また、パッケージコマンドを使ってこの作業を行うこともできます。 この場合はまず、既存の Live Upgrade パッケージを削除します。

pkgrm SUNWluu SUNWlur

続いて、Solaris インストールメディアから以下のように新しい Live Upgrade パッケージを追加します。

pkgadd -d /cdrom/cdrom0/s2/Solaris_9/Product SUNWlur SUNWluu

別のブート環境の作成

Live Upgrade ユーティリティをインストールしたら、次に別のブート環境を作成します。

Live Upgrade の操作は、コマンド行インタフェースによる方法を推奨します。

luactivate
lucancel
lucompare
lucreate
lucurr
ludelete
ludesc
lufslist
lumake
lumount
lurename
lustatus
luumount
luupgrade

live_upgrade(5) だけでなく、各 Live Upgrade コマンド用にセクション 1M のマニュアルページが用意されています。


lu(1M) インタフェースと Solaris Live Upgrade の併用

lu(1M) コマンドは、root で実行します。 lu ユーティリティを起動し、「Create」を選択します。 新しいブート環境の場合、パーティションを選択します。 パーティションを選択するには F2 キーを押します。 選択肢が表示されます。

注: 最初に Solaris OS をインストールした際に作成したブート環境の /etc/vfstab から、すべてのマウントの指定を取り除く必要があります。 マウントされているもの、または /etc/vfstab にリストされているものがあってはいけません。 ブート環境がデフォルトのディスク名ではなく、ディストリビューションを反映するような名前を持つように、最初のインストールの名前を変更することができます。

現在使用しているのと同じ swap が使用できます。また、必要に応じて別の swap を使用することもできます。 一般的には、同じ swap を使用します。 デフォルトでは、新しい swap デバイスが指定されていない限り、同じ swap デバイスが使用されます。 この場合、指定されている新しい swap デバイスのみが使用されます。

ここでは、lu(1M) コマンドを使用して Live Upgrade にアクセスする方法を説明しています。 このコマンドは、将来サポートされなくなる予定です。 lu(1M) は Live Upgrade 機能のサブセットのみへのアクセスを提供するコマンドです。 このツールは、国際化されていませんので英語(米国)のみの表示になります。

"/" パーティション (デフォルトでは /var/opt、および /usr が含まれる) を選択したあと、F3 を選択して保存します。 lucreate によって新しいブート環境に情報がコピーされるまで、待ちます。 /var/opt、および /usr に異なるパーティションを使用したい場合は、ブート環境を保存する前にその作業を行います。


アップグレードの実行

2つめのブート環境を作成したあとは、いよいよ実際のアップグレードを実行します。 root で lu ユーティリティを実行し、「Upgrade」オプションを選択します。 パッケージメディアとともに、ブート環境の名前を入力するプロンプトが表示されます。 以前の手順で作成したブート環境の名前を入力し、Solaris パッケージメディアへのパスを指定します。 パッケージメディアにはネットワークインストールと CD メディアを使用できますので、どちらで行っても構いません。 CD メディアを使用する場合は、CD1 と CD2 の 2 回の手順を実行する必要があることに注意してください。 同様に任意の数の追加の CD を使用でき、また指定したパッケージのみを含める場合、追加の CD からパッケージを選択できます。

Solaris のネットワークインストールイメージ (CD から作成可能) を使用する場合、パッケージメディアを、ネットワークインストールをインストールしたディレクトリに指定する必要があります。 ネットワークインストールは任意の場所にインストールできます (たとえば /export/install/S10_51 など)。 ネットワークインストールをインストールしたパスを入力します。

CD メディアを使用する場合は、まず 2枚の CD の CD1 を挿入し、/cdrom/cdrom0/s2 と入力する必要があります。 CD2 を追加する場合は、パッケージメディアのパスとして /cdrom/cdrom0 を指定します。


Live Upgrade のコマンド行インタフェースの使用法

コマンド行ユーティリティを使用してこれらの機能を実行することもできます。ブート環境を作成するには次のコマンドを使用します。

# lucreate -n S10_51

(前の例にある)使用するディスクを入力しないと、ユーザーが選択する有効な選択肢がダイアログボックスに表示されます。

/dev/dsk/c1t0d0s0 上に "/" ファイルシステムを持つ新しいブート環境を作成するには、次のコマンドを使用します。

# lucreate -n S10_51 -m /:c1t0d0s0:ufs

2 つのサブミラー c1t0d0s0c2t0d0s0 が含まれる SVM ミラー d10 上に "/" ファイルシステムを持つ新しいブート環境を作成するには、次のコマンドを使用します。

# lucreate -n S10_51 -m /:d10:mirror,ufs -m /:c1t0d0s0:attach -m /:
c2t0d0s0:attach
続いて、最初の CD に関しては、次のコマンドを使用してアップグレードすることができます。
# luupgrade -u -n s10_51 -s /cdrom/cdrom0/s2

引き続き、2 枚目の CD の作業を行います。

# luupgrade -i -n s10_51 -s /cdrom/cdrom0 -O "-nodisplay -noconsole"

言語 CD をインストールする必要がある場合は、必要な各言語 CD を使用して前のコマンドを繰り返します。

/net/server/export/s10_51/sparc にある、ネットワーク上で利用できる結合されたインストールイメージが存在する場合は、次のコマンドを使用します。

# luupgrade -u -n s10_51 -s /net/server/export/s10_51/sparc

上記以外にも、各コマンドには様々なオプションが用意されています。 コマンドの詳細については、マニュアルページやオンラインドキュメントをご参照ください。


ブート環境の起動

ここまでで、ブート環境は S10_51 にアップグレードされています。 後は、ブート環境を起動する作業が残っているだけです。

実用的に考えて、最初のブート環境の名前を S9_U6 に変更し、2番目のブート環境の名前を S10_51 にします。 この場合、S10_51 は S9_U6 からライブアップグレードされたもので、また S9_U6 はまだアクティブ(現在ブート中という意味)です。 状態を取得するには、次のように実行します。

# lustatus

これにより、次のような出力が表示されます。

Boot Environment       Is       Active Active    Can    Copy      
Name                   Complete Now    On Reboot Delete Status    
---------------------- -------- ------ --------- ------ ----------
S9_U6                  yes      yes    yes       no     -         
S10_51                 yes      no     no        yes    -         

次のようにコマンドを実行します。

# luactivate S10_51
# lustatus
Boot Environment       Is       Active Active    Can    Copy      
Name                   Complete Now    On Reboot Delete Status    
---------------------- -------- ------ --------- ------ ----------
S9_U6                  yes      yes    no        no     -         
S10_51                 yes      no     yes       no     -         

luactivate コマンドを発行したあとは、次のコマンドを使用してシステムのシャットダウンとリブートを実行することが重要です。

# init 6

init 6 によってリブートしないと新しいブート環境が起動しません。 uadminhalt、または reboot コマンドは使用しないでください。 シャットダウンとリブートを正しく行うよう注意してください。

これで 2つのブート環境が使用できるようになったため、更新元のブート環境を起動し、上記のようにもう 1つのブート環境を作成し、上記の手順でアップグレードを実行し、init 6 でブート環境を起動すると、3つ目のブート環境を追加できます。

ブート環境を追加すれば、3 つのブート環境の任意のブート環境を起動できるようになります。

この例では、ブート環境は次のようになります。

Boot Environment       Is       Active Active    Can    Copy      
Name                   Complete Now    On Reboot Delete Status    
---------------------- -------- ------ --------- ------ ----------
S9_U6                  yes      yes    yes       no     -         
S10_51                 yes      no     no        yes    -         
S10_54                 yes      no     no        yes    -         

このような例を使用したのは、現在のリリースである S9_U6 または Solaris Express の 2 つの異なるバージョンを起動するオプションがユーザーに与えられるためです。 この方法で、ユーザーは最新の S9 MU (Maintenance Update) を使用し、また引き続き Solaris Express のビルドを切り替えて使用することができます。 この例では、Solaris Express ビルド 56 が公開されれば、S10_51 ブート環境を名称変更または削除し、S10_54 から S10_56 を作成して、新しいビルドに対して Live Upgrade を実行することができます。 アクティブであるどのようなブート環境からでもアップグレードできるため、コマンドを実行する前には Live Upgrade の実行元であるブート環境を起動することに注意してください。

また、安全を確保するため、常に CD 2 から最新の Live Upgrade ユーティリティーをインストールします。 これにより、Live Upgrade が計画どおりに動作するようになります。

使用できるブート環境の数に制限はありません。 各ブート環境には、"/" ファイルシステム用に、自身に割り当てられたディスクパーティションが少なくとも 1 つ必要です。 このことは事実上、ディスクごとに最大 7 つのブート環境が使用できることを意味します (8 つのスライスから、絶対に使用できないスライス "2" 用の 1 つが差し引かれるため)。

この記事は、Using Solaris Live Upgrade for the x86 (and SPARC) PlatformBy Alan DuBoff を翻訳したものです。

※ また、この記事は、Solaris 10 リリース前に書かれたドキュメントのため、解説の中で Solaris 9 Update 6 が現行リリースとなっており、Solaris Express が Solaris 10 となっております。 現在は、ご存じのように Solaris 10 が現行リリースであり、Solaris Express は、次期バージョンとなっております。 本内容は、現行の Solaris 10 と現行の Solaris Express に置き換えて読むことができます。

BigAdmin