Eucalyptus 1.5.1、1.4、および Ubuntu Jaunty パッケージから Eucalyptus 1.5.2 へのアップグレード
ここで説明する手順は、ソースベースまたはパッケージベースの Eucalyptus 1.4、1.5.1、あるいは Ubuntu Jaunty にインストールした Eucalyptus から、Eucalyptus 1.5.2 にアップグレードするユーザーを対象としています。まだ Eucalyptus 1.3 を実行している場合は、このページに書かれた手順を実行する前に、あらかじめ1.4 へのアップグレード手順を実行しておいてください。
以下で説明する手順には、慎重を期して、重要な状態をバックアップする手順も含まれています。RPM を使ったアップグレードでは、アップグレード中に自動的にバックアップが行われますが、DEB ベースとソースベースのアップグレードでは、手作業でバックアップを作成する必要があります。バックアップを使って、以前にインストールしていた Eucalyptus にロールバックする方法については、このページの最後で説明します。
以下で使用するコマンドは、環境変数 $EUCALYPTUS に現在インストールされている Eucalyptus のルートが設定されていることを前提にしています。現在インストールされている Eucalyptus をバックアップした後で、同じ場所を 1.5.2 のインストール先として使います。別の場所に 1.5.2 をインストールする場合は、インストール先に応じてコマンドを書き換えてください。
また、環境変数 $OLD_VAR については、以下のように値を設定してください。
- 1.5.1 または Ubuntu Jaunty からアップグレードする場合は、var/lib/eucalyptus とする必要があります。
- 1.4 からアップグレードする場合は、var/eucalyptus とする必要があります。
1. Eucalyptus 実行状態のクリーンアップ
- Web インタフェースの[Configuration]タブに表示される Walrus のパスの値をメモしておきます (すべてのアップロード済みイメージとユーザーバケットは、この場所に置かれます)。
- すべての Eucalyptus インスタンスを終了します。
euca-terminate-instances ... # (管理者で実行)
- すべてのノードで Eucalyptus をシャットダウンします。
$EUCALYPTUS/etc/init.d/eucalyptus-nc stop $EUCALYPTUS/etc/init.d/eucalyptus-cc stop $EUCALYPTUS/etc/init.d/eucalyptus-cloud stop
1.4 の場合は、次のようにします。$EUCALYPTUS/etc/init.d/eucalyptus stop
- すべてのノードで、まだ残っている Eucalyptus のプロセスがないかどうか調べ、残っているプロセスがあれば kill します。
ps aux | grep euca kill -9 ...
2. 現在インストールされている Eucalyptus のバックアップ
CentOS や OpenSUSE のように RPM を使ってアップグレードする場合は)、バックアップが自動的に作成され、/root/eucalyptus-pre-1.5.2-rollback.tar に置かれるので、ここで説明するバックアップの手順は省略してかまいません。
ソースベース、または Debian や Ubuntu などの DEB パッケージを使ってインストールした Eucalyptus をアップグレードする場合は、アップグレードがうまくいかなかったときのために、データベースとキーをバックアップしておくとよいでしょう。具体的には次のようにします。
cd $EUCALYPTUS rm -f $OLD_VAR/db/eucalyptus.lck tar cvf /root/eucalyptus-pre-1.5.2-rollback.tar etc/eucalyptus $OLD_VAR/db $OLD_VAR/keys/*.p* cp etc/eucalyptus/eucalyptus.conf /root/eucalyptus-pre-1.5.2-configuration
不要なものは消去したい場合には、次の 2 つのディレクトリを削除できます。
rm -rf log/eucalyptus run/eucalyptus
Walrus のパス (デフォルトでは $EUCALYPTUS/$OLD_VAR/bukkits) には大量のデータが含まれている可能性がありますが、これらのデータがアップグレードによって影響を受ける可能性はまずないので、バックアップする必要はありません。
3. Eucalyptus 1.5.2 のインストール
- ソースベースでインストールした Eucalyptus をアップグレードする場合は、「管理者ガイド」のソースコードからのインストールのページで説明されている手順を実行し、またここへ戻ってきてください。
- バイナリパッケージを使ってアップグレードする場合は、使用しているディストリビューションに応じて、以下のうち該当するインストールの手順に従ってください。
- インストールの手順を実行したら、またここへ戻ってきてください。
4. 構成のアップグレード
バージョン 1.4 のときと違い、1.5 では設定ファイルに新しいパラメータが増えています。したがって、バージョン 1.4 からアップグレードする場合は、以前の設定ファイルと新しい設定ファイルの違いを調整する必要があります。この調整は、手作業で行うこともできますが、次のようにしてまず自動変換したものに必要な修正を加える方法もあります。
$EUCALYPTUS/usr/sbin/euca_conf -upgrade-conf /root/eucalyptus-pre-1.5.2-configuration $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
古いバイナリパッケージからアップグレードした場合、上のコマンドはアップグレード中に自動的に実行されています。
以前の設定ファイルをコピーした場合も、自動変換を利用した場合も、必ず新しい設定ファイルを調べて、内容が適切かどうか確認してください。特に、以下の環境変数に注意してください。
- *_PORT
- NODES
- INSTANCE_PATH
- VNET_*
- HYPERVISOR (1.4 からアップグレードする場合は "xen" でなければなりません)
- EUCA_USER この変数は、上の手順 3 で実行したインストールのタイプに応じて設定する必要があります (root で実行すると構成は容易になりますが、特別にコンパイルされた Apache を使うためのユーザーが必要になります)。
1.4 と 1.5.1 から引き継いだネットワーク関連のパラメータについては、動作に問題ないはずです。新しいネットワークモード (MANAGED-NOVLAN モード) については、「管理者ガイド」のEucalyptus ネットワークの構成のページを参照してください。
すべての計算ノードの新しい設定ファイルを有効なものにします。それには、各計算ノードで設定ファイルの変換を実行するか、または計算ノード固有のファイルをほかのすべての計算ノードにプッシュします。
5. Eucalyptus の再起動とアップグレードが適切に行われたかどうかの検証
- ノードコントローラ、クラスタコントローラ、およびクラウドコントローラを起動します。バージョン 1.5.x では、これらのサービスはそれぞれ独自の起動スクリプトで開始するようになっています。したがって、マシンによってこれらの起動スクリプトを適切に組み合わせて実行します。
$EUCALYPTUS/etc/init.d/eucalyptus-nc start $EUCALYPTUS/etc/init.d/eucalyptus-cc start $EUCALYPTUS/etc/init.d/eucalyptus-cloud start
- Web ブラウザで https://headnode:8443/ にアクセスし、以前と同様にログインします。ユーザーアカウントとイメージが存在していることを確認します。
- 重要: バージョン 1.5 での Walrus の正式なデフォルトパスは $EUCALYPTUS/var/lib/eucalyptus です。このデフォルトの場所を使うかどうかにかかわらず、インスタンスを実行したりバケットを使ったりする前に、実際にバケットのある場所が、Web インタフェースの[Configuration]タブに表示される Walrus のパスに設定されているかどうか確認してください。
- ノードが復帰していて、以前のインスタンスを実行できることを確認します (うまくいかない場合は、トラブルシューティングを参照してください)。
euca-describe-availability-zones verbose
6-a. バックアップファイルのクリーンアップ
アップグレードした Eucalyptus が正常に動作することを確認したら、ディスク上のバックアップファイルを削除します。
rm /root/eucalyptus-pre-1.5.2-rollback.tar
アップグレードによって一部のディレクトリが (FHS への準拠のために) 新しく別の場所に移動している可能性があるので、このようなディレクトリについては、不要なら手作業で削除する必要があります。
rm -rf $EUCALYPTUS/var/eucalyptus
6-b. 以前の Eucalyptus へのロールバック
- すべてのノード上で Eucalyptus 1.5.2 のプロセスを停止します。
- バイナリパッケージを使ってアップグレードした場合は、ディストリビューション固有のコマンド (rpm -e、apt-get remove など) を使って、すべての Eucalyptus 関連パッケージを削除します。削除操作に失敗する場合は、rpm コマンドに --nopreun オプションを指定する必要があるかもしれません。
- 「管理者ガイド」の説明に従って、以前に使用していた Eucalyptus のバージョンをダウンロードしてインストールします (以前のバージョンのガイドへのリンクは、ドキュメントのページにあります)。
- アップグレードプロセスの中で保存しておいた以前の状態をコピーします。
cd $EUCALYPTUS tar xf /root/eucalyptus-pre-1.5.2-rollback.tar
- RPM からインストールした場合は、以前の設定ファイルをコピーします。
cp etc/eucalyptus/eucalyptus.conf.old etc/eucalyptus/eucalyptus.conf
- 以前と同様にして Eucalyptus を起動します。
