Archive for the ‘eucalyptus’ Category

  • eucalyptus
はてなブックマーク - Ubuntu 9.10改め10.04でUEC構築
このエントリーをはてなブックマークに追加

Fusic 平田です。
前回の続きを書く前にUbuntu 10.04 LTS(Lucid Lynx)が登場しました。
また前回「靭帯が切れた」と書きましたが、その後入院など挟みつつ。
やっとこ復帰して記事を書ける状態になりましたので、10.04での設定などをつらつらと。
構成は前回と同じですが、せっかくなのでFrontendは32bit機にしてみました。
ついでついでと言うことで(?)、インストール作業は後輩君に任せてみました。

インストール時の大きな違いとしては、コントローラ単位での選択式になりました。
# 9.10の場合はCluster/Nodeの2択でした。
# ClusterにNode Controller以外の全てがインストールされていたのですが、今回は選択可能です。

このためStorage Controllerだけ別にするなども可能なので、構成の幅が大きく広がります。
今回は同様の構成にしています。
[Frontend] Cluster Controller他1 : 192.168.11.100/24
[Backend] Node Controller: 192.168.11.101/24

インストール後、まずは管理画面にアクセスします。
[Frontend IP]:8443/
ログイン画面
まずadmin/passwordでログインし、パスワード設定と管理者メールアドレスを入力。
管理画面はこんな感じです。
管理画面

UECがめっぽう楽な理由の一つ2 が「Store」の項目。
Store
Store2
あらかじめ用意されている起動イメージを1クリックでインストールできます。
以下が現時点で用意されているイメージの一覧。

  • Ubuntu 9.10 – Karmic Koala (i386)
  • MediaWiki Demo Appliance (i386)
  • Ubuntu 9.10 – Karmic Koala (amd64)
  • M/DB Appliance
  • Ubuntu 10.04 LTS – Lucid Lynx (i386)
  • Ubuntu 10.04 LTS – Lucid Lynx (amd64)

とりあえず動かしてみたい!という方は是非使ってみてください。

さて、Eucalyptusの操作は主にコマンド(Euca2ools)を使用して行います。
というわけでまずは下準備。
# 以下の流れは、9.10でも10.04でも変わりはありません。

1. Frontendにsshでログイン
2. euca_conf –get-credentialsで認証情報を取得

gintama@gintama-front:~$ sudo euca_conf --get-credentials euca.zip
[sudo] password for gintama:
--2010-06-11 10:44:57--  https://localhost:8443/getX509?user=admin&code=dc4sfR3CSYk1V0G3qNvtyP2BL8vx4387zYPWk8K2NVDAz7SL5jkS8k7kDC2sBBMp7hcMES6wMLyJQU8ng1dg
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:8443 に接続しています... 失敗しました: Connection refused.
localhost|127.0.0.1|:8443 に接続しています... 接続しました。
警告: localhost の証明書(発行者: `/C=US/ST=CA/L=Santa Barbara/O=db/OU=Eucalyptus/CN=localhost')の検証に失敗しました:
  自己署名証明書です。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5052 (4.9K) [application/zip]
`euca.zip' に保存中
 
100%[==================================================================================================================================>] 5,052       --.-K/s   時間 0s
 
2010-06-11 10:44:58 (584 MB/s) - `euca.zip' へ保存完了 [5052/5052]

3. 解凍してsourceで読み込む3

gintama@gintama-front:~$ unzip euca.zip
Archive:  euca.zip
To setup the environment run: source /path/to/eucarc
  inflating: eucarc
  inflating: cloud-cert.pem
  inflating: jssecacerts
  inflating: euca2-admin-8de7c506-pk.pem
  inflating: euca2-admin-8de7c506-cert.pem

これでeuca-****なコマンドを使っていろいろ操作できるようになりました。
主に使うコマンドの説明をしつつ、一気にインスタンス起動まで話を進めます。

・euca-describe-availability-zones verbose
クラスタの状態(起動できるイメージの数など)を表示します。

gintama@gintama-front:~$ euca-describe-availability-zones verbose
AVAILABILITYZONE        gintama-front   192.168.11.100
AVAILABILITYZONE        |- vm types     free / max   cpu   ram  disk
AVAILABILITYZONE        |- m1.small     0004 / 0004   1    192     2
AVAILABILITYZONE        |- c1.medium    0004 / 0004   1    256     5
AVAILABILITYZONE        |- m1.large     0002 / 0002   2    512    10
AVAILABILITYZONE        |- m1.xlarge    0002 / 0002   2   1024    20
AVAILABILITYZONE        |- c1.xlarge    0001 / 0001   4   2048    20

・euca-describe-images
登録されている起動イメージの一覧を表示します。

gintama@gintama-front:~$ euca-describe-images
IMAGE   emi-E0851072    image-store-1276057589/image.manifest.xml       admin   available       public          x86_64  machine eki-F6F41100    eri-0B6B1169
IMAGE   eki-F6F41100    image-store-1276057589/kernel.manifest.xml      admin   available       public          x86_64  kernel
IMAGE   eri-0B6B1169    image-store-1276057589/ramdisk.manifest.xml     admin   available       public          x86_64  ramdisk

emi-******が起動イメージ、eki-******がkernel、eri-******がramdiskです。
Amazon EC2のami/aki/ariと同様だと考えていただければ結構です。

・euca-bundle-image, euca-upload-image, euca-register
イメージ登録に使用するコマンド群。
bundle→upload→registerの流れになります。
これについてはEucalyptus 日本語 Wikiあたりを参考に。
今回はStoreからインストールしたイメージを使用するので、この項目は省略します。

・euca-add-keypair [keypair_name] > keyfilename
起動したインスタンスへのログインは、公開鍵認証を用います。
起動時にkeypair名を指定し、対応した秘密鍵を用いて認証する流れになります。
この元となるkeypairを作成するコマンドです。
今回はsilverkeyというkeypairを作成、silverkey.privとして秘密鍵を保存しました。
ついでにパーミッションも変更しておきます。

gintama@gintama-front:~$ euca-add-keypair silverkey > silverkey.priv
gintama@gintama-front:~$ chmod 600 ~/silverkey.priv

・euca-add-group, euca-describe-group
細かい権限の設定はgroupという単位で管理されます。
groupごとに通信を許可するポートの指定などが行えます。
初期状態ではdefault groupのみが存在します。

gintama@gintama-front:~$ euca-describe-groups
GROUP   admin   default default group

・euca-run-instances
インスタンスの起動を行います。
必ず指定するのはgroup(-g)、keypair(-k)、image_id(emi-*******)の3つ。
インスタンスのCPU数・メモリ容量・ディスク容量はtype(-t)で指定します。

gintama@gintama-front:~$ euca-run-instances -g default -k silverkey -t m1.small emi-E0851072
RESERVATION     r-3339074D      admin   admin-default
INSTANCE        i-47D5088C      emi-E0851072    0.0.0.0 0.0.0.0 pending silverkey       0               m1.small        2010-06-11T02:35:00.451Z        gintama-front   eki-F6F41100        eri-0B6B1169

しばらくしてeuca-descibe-instancesを実行すると、

gintama@gintama-front:~$ euca-describe-instances
RESERVATION     r-3339074D      admin   default
INSTANCE        i-47D5088C      emi-E0851072    192.168.11.201  172.19.1.2      running silverkey       0               m1.small        2010-06-11T02:35:00.451Z        gintama-front       eki-F6F41100    eri-0B6B1169

となり起動していることが確認できます。

・euca-authorize
group単位でのアクセス許可設定です。
Firewallの設定だと考えていただければ、分かりやすいかと思われます。
例えば192.168.11.0/24に対してsshを許可するならこんな感じになります。

gintama@gintama-front:~$ euca-authorize -P tcp -p 22 -s 192.168.11.0/24 default
GROUP   default
PERMISSION      default ALLOWS  tcp     22      22      FROM    CIDR    192.168.11.0/24

前述の通り、sshでのログイン時は公開鍵認証を行います。
# Storeに登録されているイメージの場合、ユーザIDはubuntuを使用します。

gintama@gintama-front:~$ ssh -i silverkey.priv ubuntu@192.168.11.201
Linux ip-172-19-1-2 2.6.32-21-server #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.04 LTS
 
Welcome to the Ubuntu Server!
 * Documentation:  http://www.ubuntu.com/server/doc
 
  System information as of Fri Jun 11 02:50:13 UTC 2010
 
  System load: 0.17              Memory usage: 23%   Processes:       64
  Usage of /:  42.7% of 1.36GB   Swap usage:   0%    Users logged in: 0
 
  Graph this data and manage this system at https://landscape.canonical.com/
---------------------------------------------------------------------
At the moment, only the core of the system is installed. To tune the
system to your needs, you can choose to install one or more
predefined collections of software by running the following
command:
 
   sudo tasksel --section server
---------------------------------------------------------------------
 
0 packages can be updated.
0 updates are security updates.
 
 
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
 
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
 
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
 
ubuntu@ip-172-19-1-2:~$

起動したインスタンスに無事ログインすることができました。

だいぶ駆け足でしたが、起動まではこんな感じです。
インストール作業は基本お任せでやってもらったのですが、何の苦労もなく起動しました。
もう少し苦戦するだろうと思っていたのですが。。。

次回は各コマンドの追加説明や、GUIのツールなどについて説明しようと思います。

  1. Cloud Controler, Storage Controller, Warlus []
  2. もう一つはインストーラの手軽さ []
  3. .bashrcであらかじめ読み込むようにしておいたほうが便利です []
  • eucalyptus
はてなブックマーク - Ubuntu 9.10でUEC構築 ~インストール~
このエントリーをはてなブックマークに追加

Fusic 平田です。
「次回は」と書きつつ間が開きすぎて申し訳ありません。
靭帯が切れたりしていたということで、ご容赦ください。。。

というわけで、前回の続きでEucalyptusインストールのお話です。

マシンとネットワーク

今回使用するマシンのスペックは以下になります。
Dell PowerEdge T105
CPU: Quad-core AMD Opteron 1354
メモリ: 4GB
HDD: 250GB 7,200rpm
CPUがAMD-V対応であることを条件に選定しています。
これを2台使用し、それぞれFrontendとBackendとして使用します。

ネットワーク構成としては、前回の記事にあった
ネットワーク構成図
の構成で組むことにします。

IPアドレスはそれぞれ以下の通り。
[Frontend] Cluster Controller他1 : 192.168.11.100/24
[Backend] Node Controller: 192.168.11.101/24

仮想インスタンスには、内部IPとして自動的に1つのIPアドレスが割り当てられます。
これはインスタンス同士、あるいはEucalyptus内部の通信に用いられます。
これとは別に、外部からの通信用に別途IPアドレスを割り当てることが可能です。
この「仮想インスタンスが外部とのやりとりに使用するIP」がPublic IPです。
今回はPublic IPとして192.168.11.201-220/24を割り当てます。

インストール

Ubuntu公式サイトからUbuntu 9.10 serverのISOファイルをダウンロードし、インストールCDを作成します。
作成したCDから起動すると、
言語の選択
言語の選択が表示されるので「日本語」を選択します。

Ubuntu 9.10 Serverから、インストール項目に
インストール画面
「Ubuntu エンタープライズ クラウドをインストール」が追加されているので、これを選択します。

以降は通常のUbuntuインストール手順ですが、途中いくつか異なる点があります。
Cluster選択
ClusterとNode、どちらとしてインストールするかを選択。
Clusterの場合は「Cluster」を、
Node選択
Nodeの場合は「Node」を選択します。

ここで注意点をひとつ。
Ubuntuでは全体、もしくはホームディレクトリの暗号化が可能です。
ただし、暗号化したファイルシステムを使用した場合は起動imageが正常に動作しないので、今回は暗号化しません。2
ディスクガイド
ホームディレクトリ暗号化

Cluster側は、さらにいくつか設定項目があります。

Cluster名入力
Cluster名の入力。
任意のCluster名を入力してください。

Public IP入力
Public IPの入力。
今回は「192.168.11.201-220」と入力しました。

以上でインストールは完了です。

なお、前回の記事で仮想化技術に対応していないCPUのマシンをNodeにしようとした場合は
Nodeインストール時の警告画面
こんなのが出ると書きましたが、これが出るのはインストールの最後です。
結構げんなりすること請け合いですので、Node側のマシン選定にはご注意ください。
ちなみにCluster側は出ません。3

インストールはこれで完了です。
設定まで含めようと思ったのですが、長くなったので次回に回します。

  1. Cloud Controler, Storage Controller, Warlusが一緒に入ります。 []
  2. ホームディレクトリ上で作業する事が多かったので、ホームディレクトリも暗号化していません。 []
  3. 試しに余ったマシンにClusterを入れてみたところ、仮想インスタンスの起動までは動作しました。 []
  • eucalyptus
はてなブックマーク - Ubuntu 9.10でUEC構築 ~まえがき~
このエントリーをはてなブックマークに追加

FusicはWebシステムの開発会社ですが、一方でいろいろと技術ネタに取り組んでおります。
その中の1つにEucalyptusがありまして、今日はそのお話を。

Eucalyptus(ユーカリプタス:社内でユーカリと言えばこれか、もしくは以前お土産でいただいたユーカリ飴です)というOSSがあります。
Amazon EC2/S3のクローンに位置づけられる、OSSのクラウド基盤構築ソフトウェアです。
昨年の10/29にリリースされたUbuntu 9.10(Karmic Koala)のServer版に組み込まれ、「Ubuntu Enterprise Cloud(以下UEC)」と名前を変えました。

<余談>
それ以前のUbuntu9.04(Jaunty)で既にプレビュー版は公開されていましたが、
- apt-getでeucalyptus他をインストール
- /etc/eucalyptus/eucalyptus.confを編集
- いろいろとトリック1 2 も混ぜて
- やっとこさ動く状態に
とまあ非常にひちめんどくさい手順が必要でした。
9.10ではそのあたりがだいぶ楽になっています。
</余談>

以下、弊社での構成についてざっと説明します。

1. マシン
Eucalyptusではhypervisorとしてkvmかxenを選択できます。
が、Ubuntu環境においてはkvmを使うのが標準的です。
# そもそもUbuntuにおけるxenサポートが8.10以降で切られていますし。
というわけでkvm環境を選択することになりますが、ここで注意したいのがCPU。
Node(厳密には、kvmが動作するマシン)については、CPUが仮想化対応していなければいけません。
Intel系ならIntel VT、AMD系ならAMD-VをサポートしているCPUが必要になります。
確認方法ですが(んなこと確認すんのめんどくさいって言ったら後で泣きます 理由は後述)、
Intel系:パソコン工房さんのIntel VT対応表を参照
AMD系:AMD製品リスト→左側検索「Virtualization」をYesにして検索
で調べるか、既存マシンについては

$ egrep '(vmx|svm)' /proc/cpuinfo

で引っ掛かるかどうかでも調べることが可能です。

2. ネットワーク構成
シンプルな形で構成しています。
ネットワーク構成図
後ほどPublic IPなんかの説明に関わってきますので、ぼんやりと頭に入れておいてください。

とりあえず、前提はここまで。
次回はインストールと設定を行います。
ちなみに先のCPU選定を怠けた場合、Nodeインストール中に
Nodeインストール時の警告画面
こんなことになるので、すぐ分かります。

  1. 事前に mkdir -p /var/run/eucalyptus/net しないと動かないとか []
  2. Java VMがFull GCするタイミングで固まるのでパラメータ調整とか []