Eucalyptus の構成 (1.5.2)
ここでは、すべてのノードに (ソースまたはバイナリパッケージから) ソフトウェアをインストールした後、Eucalyptus を構成する手順について説明します。以下に示す手順では、環境変数 $EUCALYPTUS が適切に設定されていることを前提としています。RPM を使ってインストールした場合、$EUCALYPTUS には /opt/eucalyptus/ を設定し、DEB を使ってインストールした場合、$EUCALYPTUS には '/' を設定してください。
export EUCALYPTUS=....
Eucalyptus には、設定ファイル '$EUCALYPTUS/etc/eucalyptus/eucalyptus.conf' をセットアップするための euca_conf スクリプトが付属しています。euca_conf スクリプトを使わずに、テキストエディタで設定ファイルを編集することもできます。
1. Eucalyptus の実行
Eucalyptus は、クラウドコントローラ (CLC)、クラスタコントローラ (CC)、およびノードコントローラ (NC) と呼ばれる 3 つの要素から構成されます。以下に示す手順では、クラウドコントローラ (CLC) とクラスタコントローラ (CC) を 1 つのマシンに同居させ、これをフロントエンドと呼び、ノードコントローラ (NC) を計算ノード上で実行することを前提にしています。物理的に 1 台のマシンでフロントエンドと計算ノードの両方の役割を引き受ける場合でも、以下の手順はそのまま適用できます。
最初に、指定した各種構成パラメータに合わせて、Eucalyptus の実行時依存関係のすべてがインストールされていることを確認してください。実行時依存関係に問題がある場合 (たとえば、必要な依存関係を Eucalyptus が見つけられない場合や、依存関係の欠如によって、必要な操作を Eucalyptus が実行できない場合)、エラーはすべて $EUCALYPTUS/var/log/eucalyptus にあるログファイルに記録されます。
DEB パッケージを使ってインストールした場合など、サービスがすでに起動されている場合以外は、該当するホストで起動スクリプトを使って各コンポーネントを起動します。通常、フロントエンドでは次のコマンドを実行します。
$EUCALYPTUS/etc/init.d/eucalyptus-cloud start $EUCALYPTUS/etc/init.d/eucalyptus-cc start
各計算ノードでは次のコマンドを実行します。
$EUCALYPTUS/etc/init.d/eucalyptus-nc start
サービスを停止するには、start の代わりに stop を引数に指定して同じスクリプトを呼び出します。
2. 初回時の構成
以下の手順を実行する前に、まずクラウドコントローラが実行されていることを確認してください (たとえば、ps aux | grep euca とすれば Java のプロセスが表示されるはずです)。また、環境変数 $EUCALYPTUS が上に説明したとおりに設定されていることを確認してください。
a. フロントエンドの構成
Eucalyptus の構成要素を互いに結び付けるには、クラスタをクラウドに登録し、各ノードをクラスタに登録する必要があります。実際には、フロントエンドで次のようにします。
$EUCALYPTUS/usr/sbin/euca_conf -addcluster <clustername> <clusterhost>
ここで、<clustername> は、クラスタに付ける名前で、<clusterhost> はクラスタコントローラを実行しているマシンのホスト名または IP アドレスです。
また、フロントエンドでは、ノードコントローラを実行する予定のすべてのホスト名を一つずつ追加します (この作業では、該当するノードに SSH 経由で接続して暗号鍵を転送するので、場合によってはパスワードの入力を求められます)。
$EUCALYPTUS/usr/sbin/euca_conf -addnode "<nodehost1> ... <nodehostN>"
ここで、<nodehostX> はノードのホスト名または IP アドレスです。なお、上のコマンドを実行するには、フロントエンドとノードとの間で、ユーザー 'root' またはユーザー 'eucalyptus' として、パスワードなしで SSH によるアクセスが可能になっている必要があります。このような設定をしていない場合は、コマンドを実行してパスワードの入力を求められたときに (Enter キーを押すだけで) パスワードを入力しないと、どうすればよいか画面に指示が表示されます。
もう一つの方法として、-nodes オプションを使って一度に全部のノードを追加することもできます。この場合は、あとで暗号鍵の転送を明示的に実行する必要があります。
$EUCALYPTUS/usr/sbin/euca_conf -nodes "<nodehost1> ... <nodehostN>" $EUCALYPTUS/usr/sbin/euca_conf -synckeys
省略可能な手順: Eucalyptus では、VM の仮想ネットワークの構成に関していくつかのオプションを用意しています。デフォルトでは、eucalyptus.conf で有効になっているのは、最も単純で機能も最小限に抑えられた SYSTEM と呼ばれるネットワークモードです。このモードでは、クラスタノード上で起動する VM に IP アドレスを提供できるように、ユーザーがすでに DHCP サーバーをセットアップしていることを前提としています。より多くの機能 (セキュリティ・グループ、Elastic IP など) が有効になるほかのモードを使用する場合は、設定ファイル内のコメントにある簡単な説明、さらに Eucalyptus ネットワークの構成のページを参照してください。
b. 計算ノードの構成
バイナリパッケージを使って Eucalyptus をインストールした場合、計算ノードはすでに適切に構成されているので、次の手順 c に進んでください。あとでデフォルトの構成を変える場合は、そのときにここで説明する手順を参照してください。
各計算ノードで、VM を実行するときに一時的に VM イメージを置くローカルディレクトリを作成します (イメージは同じパスの下にキャッシュされます)。ノードに対し、ノードコントローラの実行、使用するハイパーバイザーの選択 (xen または kvm)、VM イメージ用のパスの指定を指示します。指定したパスは一時的な VM イメージを格納するのに使われます。このパスは空であることが重要です (指定したパス内のすべてが削除されます)。
for x in hostname1 hostname2 ... hostnameN ; do \
ssh $x "$EUCALYPTUS/usr/sbin/euca_conf -hypervisor kvm -instances /usr/local/instances"
done
Eucalyptus を実行するユーザー (上の例では、username='eucalyptus') がノードコントローラマシンの libvirt を介して VM を管理できるかどうかまだ確認していない場合は、確認します。そのための簡単な方法は、Eucalyptus を実行するユーザーで virsh list コマンドを実行し、該当するユーザーが適切な権限を持っているかどうか調べることです。
最後に、各ノードの 'eucalyptus.conf' 内のネットワーク設定が適切に構成されているかどうかを確認します。たとえば、VNET_INTERFACE および VNET_BRIDGE の正しい値は、フロントエンドのものとは異なる可能性があります。詳細については、Eucalyptus ネットワークの構成を参照してください。
c. Web インタフェースでの構成
Eucalyptus を構成するには、すべてのコンポーネントを起動した後、ブラウザで次の URL にアクセスします。
上の localhost は、クラウドコントローラを実行しているホストの名前に置き換えてください。Eucalyptus は自己署名証明書を使用しているので、証明書を受け入れるかどうか尋ねるメッセージがブラウザから表示される可能性があります。マシンによっては、初めて Eucalyptus を実行したときに、クラウドコントローラの起動後から上の URL にアクセスできるようになるまで、数分かかることがあります。ユーザー名とパスワードの入力を求め得られたら、両方とも admin を入力します。ログインすると、初回時に必要な作業として、以下の 3 つの操作を行うよう求められます。
- admin のパスワードを変更しなければなりません。
- admin のメールアドレスを設定するよう求められます。
- Walrus サービス (Eucalyptus のストレージコンポーネント) の URL の確認を求められます。この URL は、クラウドコントローラをインストールしているクラスタ・ヘッドノードのホスト名から始まる URL である必要があります。
初回時に必要な作業を終えると、[Configuration]タブが表示されます。EC2 クライアントツールでシステムを使う場合は、ユーザーアカウント情報を生成しなければなりません。[Credentials]タブをクリックし、[Download certificates]ボタンをクリックして証明書をダウンロードします。これらの X.509 証明書は、Amazon EC2 ツールや、rightscale.com などのサードパーティ製ツールで使用できます。
ディレクトリ (たとえば $HOME/.euca) を作成します。
mkdir $HOME/.euca
作成したディレクトリにアカウント情報を展開し、そこに含まれている 'eucarc' を取り込みます。
. $HOME/.euca/eucarc
EC2 コマンドライン・ツールを使用する場合は、そのたびにこのファイルを取り込む必要がある点に注意してください。それが面倒な場合は、上のコマンドをあらかじめ自分のローカルなデフォルト環境に追加しておく方法もあります。
