狠狠撸

狠狠撸Share a Scribd company logo
OpenStack Nova 調査報告書

2011 年 1 月 24 日

本 報 告 書 は 2010 年 10 月 ? 12 月 に OpenStack 初 期 リ リ ー ス (Austin)に つ い て
調 査 ? 作 成 し た 資 料 で あ る が 、 当 時 の OpenStack N ova は 機 能 が 十 分 で 無 か っ
たため未公開としたものである。
OpenStack 3 周 年 お よ び そ の 後 の 発 展 を 記 念 す る と 共 に 、 初 期 リ リ ー ス か ら の
発展を振り返り関係者の努力をたたえる為に改めて公開する。今後も
OpenStack な ら び に OpenStack ユ ー ザ 会 の 発 展 に 少 し で も 寄 与 で き れ ば 幸 い
である。
(公 開 に つ い て 、 著 作 者 よ り 許 可 済 み )
◎免責条項
本報告書はクリエーションライン株式会社(以下「クリエーションライン」
)が作成したものですが、報告書の内容及び
情報の正確性、完全性、有用性について、クリエーションラインは保証を行なっておらず、また、いかなる責任を持つ
ものでもありません。
本報告書の著作権はクリエーションラインに帰属します。
本報告書の「プリントアウト」
「コピー」
「無料配布」は可能ですが、変更、改変、加工、切除、部分利用、要約、翻訳、
変形、脚色、翻案などは禁止します。
以上の点をご了承の上、ご利用ください。

◎本報告書に関する問い合わせ先
クリエーションライン	
  info@creationline.com

Copyright ? CREATIONLINE, INC. 2011

1
1.

OpenStack ..................................................................................................................... 3
1.1. 概要 ......................................................................................................................... 3
1.2. Nova ....................................................................................................................... 3
1.2.1.

Nova 概要 ........................................................................................................ 3

1.2.2.

Nova 概要 .......................................................................................................... 6

1.2.3.

Nova のネット―ワーク ......................................................................................... 9

1.2.4.

nova のインストール .......................................................................................... 10

1.2.4.1.

Ubuntu(10.4)によるインストール手順 ........................................................ 10

1.2.4.1.2

Ubuntu(10.4)による Nova の利用方法 ........................................................ 12

1.2.4.2.

Ubuntu(10.10)によるインストール手順 ...................................................... 13

1.2.4.2.2

Ubuntu(10.10)による Nova の利用方法 ...................................................... 18

1.2.6.

nova の開発スケジュール .................................................................................. 19

1.3. まとめ ..................................................................................................................... 19

2
1. OpenStack
1.1. 概要
OpenStack は、米国の NASA や大手 IaaS 事業者である Rackspace などが開発を進めるオ
ープンソースのソフトウェアを開発するプロジェクトだ。NASA は、同局のクラウド?プラットフォーム
「Nebula」の基盤ソフトウェアを OpenStack に寄贈しており、Rackspace は、自社の従量制のオン
デマンド?サーバ「Cloud Servers」とオンライン?ストレージ?サービス「Cloud Files」の基盤ソフトウ
ェアのコードを寄贈している。
OpenStack プロジェクトは多くの人を巻き込もうという流れがあり、コミュニティが存在する。Blog
では、日々情報の交換が行われ、ドキュメントも不定期ではあるが、更新され、情報が新しくなって
いる。
また、11 月に行われた OpneStack デザインサミットには 12 カ国以上から 250 名以上の人が参
加し、次回リリースされる新しいバージョンや OpenStack が今後どのようにしてビジネスに生かされ
か議論された。
オープンソースである OpenStack のソースコードはすべて Apache2.0 ライセンスの基、自由に
入手でき、企業の方も、個人の方でも誰でも入手できる。また、OpenStack コミュニティに参加し、
OpenStack プロジェクトに加わることも可能である。これは、オープンな開発モデルが求められるク
ラウド標準を発展させ、大規模なエコシステムの生成が期待されているためである。
OpenStack は、仮想マシン管理ソフトの OpenStack Compute(Nova)と、ペタバイト級の分散
ストレージを構築するソフトである OpenStack Object Storage(Swift)の二つのプロジェクトにより
構成されている。

1.2. Nova
現在リリースされている OpenStack Compute(以下 Nova と呼ぶ)は Austin と呼ば
れるバージョンであり、本調査では、Nova-Austin の調査を行った。下記以降は
Nova-Austin について調査内容である。

1.2.1. Nova 概要
Nova は大規模なスケーラビリティが可能であり、安全性が高いオープンソースのクラウ
ドインフラソフトウェアパッケージである。Nova の機能は、AmazonEC2 や RackSpace
CloudServers と類似しているが、Nova は仮想化ソフトウェアを一切含まない。OS 上で立
ち上げられている仮想マシンと WebAPI が連携した構成になっている。
3
下記、OpenStack のドキュメントに記載されている Nova の特徴である。

ユーザとプロジェクト
?イメージへのアクセスはプロジェクトごとに行われる
	
  ?アクセスキーとシークレットキーはユーザごとに必要
	
  ?インスタンスにログインするためのキーペアーはユーザ毎に必要
	
  ?プロジェクトごとにクウォータが割り当てられる
仮想化環境
	
  ?KVM
?UML
?XEN
?HyperV
?qemu
	
 
バイナリデータ
Nova は多くのバイナリーデータを実装している。Nova のバイナリーデータは同一マシ
ンもしくは多数コンポーネント間に拡張される。
	
  バイナリの設定は Google の gflags パッケージを用いた flagfiles に依存している。
nova-m anage
nova-manage コマンドはユーザの生成や VPN の管理のような Nova 全般の管理に必須
な機能を遂行するために使用される。Eucalyptus でいう、Euca2ools のようなもの。
Flags
	
  Nova はコマンドラインシステムの一つに
「python-gflags」
を使用している。
flags は flags
コマンドライン、もしくは flag ファイルが実行された時にセットされ、nova パッケージを
イ ン ス ト ー ル す る 時 に 、 各 々 の nova サ ー ビ ス に 必 要 な flag を 入 手 す る 。 例 え ば 、
「nova-network.conf」は nova-network サービスを設定するために用いられる。
IPC/RPC
nova は nova サ ー ビ ス 間 の コ ミ ュ ニ ケ ー シ ョ ン を 行 う た め に AMQP を 実 装 し た
RabbitMQ を利用する。メッセージキューはローカル間とリモート間のコミュニケーショ
4
ンに用いられ、nova が提供するサービスは、同じ物理的マシン上に存在する必要性がない
よう設計されている。RabbitMQ は特に頑丈であり、nova が要求する効率的で信頼のある
サービスを提供する。
Fakes
	
  管理者用データベースドライバには、デフォルトでは RDBMS が設定されているが、
OpenLDAP、ReDIS を使用することもできる。
セキュリティグループ
	
  nova ではセキュリティグループがファイヤーウォールのようにネットワークアクセスを
管理している。ネットワークアクセスに関する規制により、ネットワークトラフィックが
インスタンスに届き、インスタンスに必要のないトラフィックは破棄されるようになって
いる。ユーザはセキュリティの設定を修正することが可能である。セキュリティ設定を修
正する時は、仮想インスタンスが launch しているときに、まず、プロジェクトマネージャ
がどのセキュリティグループをインスタンスに適応するか明らかにしなければいけない。
新しく設定したセキュリティは、自動的に起動しているすべての仮想インスタンスに適応
され、適応後、インスタンスが再び launch する。もし、どのセキュリティグループも適応
しなかったら、インスタンスはデフォルトのセキュリティグループに割り当てられる。
セキュリティグループの規則を生成することにより、新しいインスタンスが launch する
度にセキュリティグループを適応させる必要がなくなり、dynamicIP アドレスを扱うこと
に役立つ。nova 上で起動しているアプリケーションがスケールアップ、スケールダウンす
る時には、セキュリティグループを適応させなくて済むことは非常に有効である。
認証機能
	
  nova は認証管理の一端を担う。
これらの認証はクラウドパイプとバンドルイメージ復号に用いられる。
クラウドパイプ
クラウドパイプは VLAN によりエンドユーザとインスタンスを接続する。
Nova-manage コマンドを用いて、仮想プライベートネットワークをプライベートネットワ
ークに適応する。
仮想プライベートネットワークへのアクセスは、ネットワーク上のパブリックポートを
通して提供される。クラウドパイプにより、ユーザがパブリックインターネットに仮想マ
シンをさらすことなく、仮想マシンに自由にアクセスできる。

5
ルーディングノード
グローバル IP アドレスをプライベート IP アドレスにし、ファイヤーウォールの設定
を行う。
アドレッシングノード
プライベートネットワークに DHCP サービスを実行する。
ブリッジングノード
ベーシック novaCompute ノードのサブクラスに当たる。
チャネリングノード
VPN 接続を提供する。

1.2.2.

Nova 概要

nova は全体を統括するクラウドコントローラとそれに関連して機能する 7 つのコンポー
ネントから構成されている。下記の図のように、コントローラとノード間において、メッ
セージのやり取りは、AMQP を基にした RabbitMQ サーバを用いる。
典型的なメッセージのやり取りは、
API サーバがユーザのリクエストを受け取るところか
ら開始される。ここでは、ユーザは新しくオブジェクトの入手を要求したとする。次に、
API サーバがオブジェクトの入手に関するリクエストが適切かどうか確認する。
適切であれ
ば、そのオブジェクトに関連するクラウドワーカーに伝達するため、一度キューエンジン
に送られる。クラウドワーカーはキューからメッセージを受け取り、リクエストに応じた
タスクを行う。タスクが完了するとレスポンスがキューに返され、キューはユーザにレス
ポンスを返す。これらの情報がデータベースにキューされ、プロセスに応じて、登録、も
しくは削除される。

6
Nova-?‐
Manage

ローカ
ル

?
プロジェ ト
ク
?
ユーザ
?
role
? ト
ネッ ワーク
?
VPN

管理マネー
ジャ

ボリ ームコ
ュ
ント
ローラ

Open
Stack
API

ローカ
ル

ローカ
ル

ク ウド ン
ラ コ
ト
ローラ

AMQP

AMQP

ネッ ワーク
ト
コ ローラ
ント

API
REST

Euca2ools

http

AMQP
スケジュ
ーラ

EC2
API

オブジェ ト
ク
スト
ア

?
仮想イ
ンスタ
ンス
?
セキュ ティ
リ グループ
? ュ
ボリ ーム
?
スナッ
プショ ト
ッ
?
仮想イ ージ
メ
IPアド
レス
SSHキー
?
アベイ ビリ ゾーン
ラ ティ

AMQP

コ
ンピュ
ート
コ ローラ
ント

API
	
  クラウドフレームワークの心臓部であり、クラウドコントローラのために Web サービス
のフロントエンドとして機能する。
API サーバはコマンド作成とハイパーバイザー、
ストレ
ージ、ネットワークの管理を行っている。Amazon や Rackspace などのクラウド管理ツー
ルの下、
複数の API を管理している。
API のエンドポイントはユーザ認証や権限管理など、
基本的なコマンドを管理している。
	
  様々な API を用いる理由の一つとして、クラウドベンダーが固定してしまう事を防いで
いることがあげられる。

管理マネージャ
	
  管理マネージャはユーザがインスタンスを起動させる際に認証と認可を行う。
コンピュータコントローラ
コンピュータコントローラはサーバのリソースを提供し、ホストマシン上のインスタン
スを管理する。API サーバを通じて、以下のコマンドがコンピュータワーカに送られる。
7
?インスタンスの起動
?インスタンスの終了
?インスタンスの再起動
?ボリュームの付加
?ボリュームの分離
?コンソール出力の入手
ネットワークコントローラ
ネットワークコントローラはコンピュートサービスが相互に連携できるように機能して
いる。ネットワークコントローラは、パブリックネットワークと接続できるように仮想ネ
ットワークを提供し、ホストマシン上でネットワークの管理を行う。また、API サーバがキ
ューを通してネットワークコントローラにメッセージを送り、以下のコマンドのリクエス
トがネットワークコントローラで実行される。
?IP アドレスの付与
?VLAN の設定
?コンピュータノードのネットワークの設定
ボリュームコントローラ
ボリュームコントローラはコンピュートサービスに永久的なブロックレベルストレージ
を提供する。
LVM ベースのインスタンスを管理する iSCSI ストレージと互いに関連しており、
ボリュ
ームはインスタンス間では容易に転送できるが、一回の転送に一つのインスタンスしか転
送できない。ボリュームコントローラの機能は以下のようなものがある。
?ボリュームの作成
?ボリュームの削除
?コンピュータボリュームの設置
オブジェクトストア
オブジェクトストアはストレージサービスを提供する。
スケジューラ
スケジューラはインスタンスを管理するのに適したコンピュータコントローラを選択す
る。
8
コンポーネント間のメッセージのやり取りは、メッセージキューを介して行われる。

1.2.3.

Nova のネット―ワーク

Nova ネットワークは、
プライベートネットワーク、
パブリック IP アドレス、
VPN 接続、
ファイヤーウォールの設定を行う。
Nova のネットワークは fixedIP アドレスと floatingIP アドレスに特徴がある。fixedIP
アドレスは生成されたインスタンスに割り当てられ、インスタンスがターミネイトするま
でそのまま fixedIP アドレスが割り当てられるた状態になる。
floatingIP アドレスは直接イ
ンスタンスに関連付けと関連付けの解除を行う。
fiexedIP アドレスを実装するには下記のようなモードが用意されている。
FLAT M ODE
最もシンプルなネットワークモードである。このモードは、インスタンスが空いている
IP アドレスから fixedIP アドレスを受け取るものである。全てのインスタンスはデフォル
トでは同じブリッジに取り付けられる。ネットワークの設定はインスタンスがブートする
前にインスタンスに適応される。
FLAT DHCP M ODE
インスタンスが同じブリッジに取りつけられる点においては、FLAT MODE に類似して
いる。
ブリッジは Ethernet デバイスに接続され、デフォルト設定では eth0 に接続される。
(
)
ブリッジの DHCP サーバとして DNSmasq を起動させる。そして、インスタンスは
DHCPDISCOVER により、fixed IP アドレスを受け取る。
VLAN DHCP M ode
デフォルトネットワークモードであり、多くの特徴をサポートしている。
複数のマシンに Nova をインストールするためには、host-manage VLAN タグをサポート
するスイッチを必要が必要である。
このモードでは、
Nova がプロジェクトごとに VLAN と
ブリッジを生成し、VLAN の中からしかアクセスできないプライベート IP アドレスのレン
ジを得ることができる。
ユーザがインスタンスにアクセスするために、特別な VPN インスタンス(クラウドパイ
プ)を生成する必要があり、Nova はユーザが VPN にアクセスするため「certificate」(ユー
ザ認証)と「key」(インスタンスにログインするための秘密鍵)を生成し、自動的に VPN を
スタートさせる。
下記の図は VLAN とパブリックインターネット間におけるネットワーク構成を表してい
9
る。
コ
ンピュ ノ
ート ード

ネッ ワーク ード
ト
ノ

VLAN

Nova
ユーザ

ク ウド
ラ パイプ

DHCP

プラ
イベート
仮想
マシン

IP Tables
Source
Natting
IP Tables
Public	
 ?IP
Natting

パブリ ク
ッ バー
チャ
ルマシン

パブリ ク
ッ
イ ー
ンタ
ネッ
ト

コ
ンピュ ノ
ート ード

1.2.4.

nova のインストール

ドキュメントで紹介されている Nova のインストール方法は複数存在する。本調査では、一台の物
理マシンを用いて、Ubuntu10.4 と Ubuntu10.10 の基、Nova のインストールを行った。
尚、本調査で実施していない複数の物理マシンを用いたインストール方法と Dibian や Fedra、
CentOS を用いた Nova のインストール方法は下記の URL を参照していただきたい。
http://etherpad.openstack.org/NovaMultinodeInstall
http://wiki.openstack.org/NovaInstall#Multiple_Server_Installation

1.2.4.1.

Ubuntu(10.4)によるインストール手順

Ubuntu10.4 がインストールされた環境を用意し、下記の手順で nova のインストールを行う。
?ユーザを root に設定
10
# sudo su -

?git のダウンロード
Nova では、効率的かつ、スピーディにシステム構築ができるバージョン管理システム git を
用いる。git のソースを http://www.kernel.org/pub/software/scm/git/より、最新のものを
ダウンロードする。本調査では、git-1.6.0 のダウンロードを行った。

# apt-get install git-core
# wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.tar.gz
# tar zvfx git-1.6.0.tar.gz

	
  ?git に必要なパッケージのダウンロード
Debian パッケージを作成するため、build-essential をインストールし、configure ス
クリプトを実行する。

# cd git-1.6.0
# apt-get install build-essential
# ./configure

text ライブラリのインストールを行う。

# apt-get install gettext
SSL 関連パッケージのインストールを行う。

# apt-get install zlib1g-dev libssl-dev
コンパイルとインストールを行う。

# maek
# make install

?nova のインストール
nova ディレクトリを作成し、nova ディクレクトリに移動する。

# mkdir nova
# cd nova
11
git で管理されているソースコードを入手し、ローカルリポジトリを作成する。

# git clone git://git.kernel.org/pub/scm/git/git.git
# git clone git://github.com/vishvananda/novascript

テスト用のイメージファイルをダウンロードし、展開する。

# wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz
# tar xzvf images.tgz

コマンドラインツールである euca2ools をインストールする。

# apt-get install euca2ools
Euca2ools を用いて、インスタンスへログインするために SSH の秘密鍵を生成する。
秘密鍵が標準出力に出力されるので、その内容を test.pem というファイルとして保存する。

# euca-add-keypair test > test.pem
マシンイメージの ID(EMI)と鍵を指定し、インスタンスを起動する。

# euca-run-instances -k test -t m1.tiny ami-tiny
nova.sh を用いて nova を起動させる。

# nova/novascript/nova.sh branch
# nova/novascript/nova.sh install
# nova/novascript/nova.sh run

?起動状態を確認する。

# euca-describe-instances

1.2.4.1.2 Ubuntu(10.4)による Nova の利用方法
Nova のインストールが完了したため、実際にインスタンスを起動させ、インスタンスに
ログインする。
12
Euca2ools を用いて、インスタンスへログインするために SSH の秘密鍵を生成する。
秘密鍵が標準出力に出力されるので、その内容を test.pem というファイルとして保存する。

# euca-add-keypair test > test.pem
作成したキーペアーが保存されている test.pem ファイルの権限を変更する。

# chmod 600 test.pem
ダウンロードしたイメージファイルを用いて、インスタンスを起動させる。

# euca-run-instances -k test -t m1.tiny ami-tiny
インスタンスの起動状態を確認する。

# euca-describe-instances
プライベートキーを用いて、起動しているインスタンスにログインする。

# euca-authorize -P tcp -p 22 default
# ssh -i test.pem root@10.0.0.3

1.2.4.2.

Ubuntu(10.10)によるインストール手順

Ubuntu の最新版 LTS(Long Term Supprt)による nova のインストールを行う。
nova のインストールを行う前に 70MB 以上メモリに余裕があるか確認する。
root ユーザに変更する。

# sudo su rabbitmq-server と redis-server のインストール

# apt-get install rabbitmq-server redis-server

nova パッケージのインストールを行う。

# apt-get install python-nova
# apt-get install nova-api nova-objectstore nova-compute nova-scheduler
13
nova-network euca2ools unzip
Python のビルドとインストールを行う。

# python setup.py build
# python setup.py install
Python のインストールが完了すると下記が出力される。

Installing nova-network script to /usr/local/bin
Installing nova-volume script to /usr/local/bin
Installing nova-objectstore script to /usr/local/bin
Installing nova-manage script to /usr/local/bin
Installing nova-scheduler script to /usr/local/bin
Installing nova-dhcpbridge script to /usr/local/bin
Installing nova-compute script to /usr/local/bin
Installing nova-instancemonitor script to /usr/local/bin
Installing nova-api script to /usr/local/bin
Installing nova-import-canonical-imagestore script to /usr/local/bin
?nova 管理者の作成
Installed /usr/local/lib/python2.6/dist-packages/nova-2010.1-py2.6.egg
# nova-manage user admin anne
Processing dependencies for nova==2010.1

Finished processing dependencies for nova==2010.1

下記のようにアクセスキーとシークレットキーの環境変数が設定される。

# export EC2_ACCESS_KEY=4e6498a2-blah-blah-blah-17d1333t97fd
# export EC2_SECRET_KEY=0a520304-blah-blah-blah-340sp34k05bbe9a7

新たなユーザ名、(サイト上では、anne)とプロジェクト名(サイト上では IRT)を作成す
る。

# nova-manage project create IRT anne

下記のような内容が表示される。

14
Generating RSA private key, 1024 bit long modulus
.....++++++
..++++++
e is 65537 (0x10001)
Using configuration from ./openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName

:PRINTABLE:'US'

stateOrProvinceName

:PRINTABLE:'California'

localityName
organizationName

:PRINTABLE:'MountainView'
:PRINTABLE:'AnsoLabs'

organizationalUnitName:PRINTABLE:'NovaDev'
commonName

:PRINTABLE:'anne-2010-10-12T21:12:35Z'

Certificate is to be certified until Oct 12 21:12:35 2011 GMT (365 days)
Write out database with 1 new entries
Data Base Updated

作成したプロジェクトの認証を得て、zip ファイルを作成する。

# nova-manage project zipfile IRT anne
カレントディレクトリにある nova.zip ファイルの展開を行う

# unzip nova.zip
カレントディレクトリで novarc ファイルを実行する

# . novarc
イメージファイルの取得するため、
ラックスペース CDN 上のイメージをダウンロード
する。

#

wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz

	
  ダウンロードしたイメージファイルを解凍する。

# tar xvzf images.tgz
15
クラウド上にサンプルイメージをアップロードし、カーネルに manifest ファイルを作
成する。

# euca-bundle-image -i images/aki-lucid/image -p kernel --kernel true
カーネルに manifest ファイルが作成されると下記ように出力される。

Checking image
Tarring image
Encrypting image
Splitting image...
Part: kernel.part.0
Generating manifest /tmp/kernel.manifest.xml

Ramdisk に manifest ファイルの作成を行う。

# euca-bundle-image -i images/ari-lucid/image -p ramdisk --ramdisk true
続いて、カーネルバンドルのアップロードを行う。

# euca-upload-bundle -m /tmp/kernel.manifest.xml -b mybucket
下記のような出力結果が表示される。

Checking bucket: mybucket
Creating bucket: mybucket
Uploading manifest file
Ramdisk バンドルのアップロードを行う。
Uploading part: kernel.part.0
Uploaded image as mybucket/kernel.manifest.xml
# euca-upload-bundle -m /tmp/ramdisk.manifest.xml -b mybucket

カーネルを記憶させ、カーネル ID を取得する。

# euca-register mybucket/kernel.manifest.xml
カーネル ID として下記のように表示される

IMAGE

ami-XXXXX

Ramdisk を記憶させ、カーネル ID を取得する

# euca-register mybucket/ramdisk.manifest.xml
16
Ramdisk の ID として下記のように表示される。

IMAGE

ami-YYYYY

上記コマンドより、取得したカーネルと ramdisk の ID に基づくマシーンイメージの
manifest の作成する。

# euca-bundle-image -i images/ami-tiny/image -p machine
ami-XXXXX --ramdisk ami-YYYYY
	
  下記のような出力結果が表示される。

Checking image
Tarring image
Encrypting image
Splitting image...
Part: machine.part.0
Part: machine.part.1
Part: machine.part.2
Part: machine.part.3
Part: machine.part.4
Generating manifest /tmp/machine.manifest.xml

マシーンイメージのアップロードを行う。

# euca-upload-bundle -m /tmp/machine.manifest.xml -b mybucket

	
 

下記のような出力結果を得る。

hecking bucket: mybucket
Uploading manifest file
Uploading part: machine.part.0
Uploading part: machine.part.1
Uploading part: machine.part.2
Uploading part: machine.part.3
Uploading part: machine.part.4
Uploaded image as mybucket/machine.manifest.xml

17

--kernel
マシーンイメージを登録し、ID を取得する。

# euca-register mybucket/machine.manifest.xml
	
  	
  マシンイメージとして、下記が登録される。

IMAGE

1.2.4.2.2

ami-ZZZZZ

Ubuntu(10.10)による Nova の利用方法

インスタンスの SSH キーを作成し、mykey.priv ファイルとして保存し、
Mykey.priv ファイルの権限の変更を行っておく。

# euca-register mybucket/machine.manifest.xml
chmod 600 mykey.priv

上記コマンドより、
取得したマシンイメージの ID を用いて、
インスタンスを立ち上げる。

# euca-run-instances ami-xxxxx --kernel ami-XXXXX --ramdisk ami-YYYYY
–k mykey
下記のようにインスタンス情報が表示される。

RESERVATION

r-0at28z12

INSTANCE
10.0.0.3

IRT

i-1b0bh8n
scheduling

ami-ZZZZZ
mykey (IRT, None)

10.0.0.3
m1.small

2010-10-18 19:02:10.443599
インスタンスを読み込んだ時間と起動した時間を表示する

# euca-describe-instances
下記のようにインスタンスが running になっていることが確認できる。

RESERVATION
INSTANCE
10.0.0.3

r-0at28z12

IRT

i-1b0bh8n

ami-ZZZZZ

running mykey (IRT, cloud02)

0

10.0.0.3
m1.small

2010-10-18 19:02:10.443599
仮想マシンが起動しているか確認するには、下記のコマンドを実行する。
18
# virsh list
仮想マシンが動いていれば、仮想マシンの名前と起動状況が表示される。

Id Name

State

---------------------------------1 2842445831

running

	
  プライベート IP アドレスを用いて、インスタンスに接続する。

# ssh -i mykey.priv root@10.0.0.3

1.2.6.

nova の開発スケジュール

	
  OpenStack の新しいバージョンのリリースは基本的に 3 カ月に一度のサイクルで行われ
る。
本調査で調査したバージョンは、
プロジェクト名として Austin と呼ばれるものであり、
2010 年 10 月 21 日にリリースされた。次のバージョンは、Bexar と呼ばれ、リリースは
2011 年 2 月の第三週を予定している。Bexar の次のバージョンは Cactus と呼ばれるもの
で、2011 年 4 月にリリースを予定している。
	
  また、OpenStack の新しいバージョンのリリースに開発協力することは非常に歓迎され
ている。

1.3. まとめ
Nova の第一弾である Austin が 10 月 21 日にリリースされた。Nova に関して明らかに
なっていない情報がまだ多いため不定期ではあるが、ドキュメントが何度か更新されてい
る。
このことは、Nova が完成されたサービスではなく、ジェネラスチームとコミュニティメン
バーにより、Nova を発展させ、現在よりも良いサービスを提供しようという動きの表れだ
と言える。
かなり個人的な感想
	
  nova のインストールからインスタンスにログインするまで、Eucvalyptus よりもスムー
ズに行えた。理由は、設定項目が少なかったから。Eucalyptus では、ハイパーバイザの設
定、ネットワークの設定など、細かな設定を行う必要が無かった。

19
【主な参考文献】
http://www.openstack.org/
http://www.computerworld.jp/topics/cloud/189597.html
	
 

20

More Related Content

Open stack nova_austin報告書

  • 1. OpenStack Nova 調査報告書 2011 年 1 月 24 日 本 報 告 書 は 2010 年 10 月 ? 12 月 に OpenStack 初 期 リ リ ー ス (Austin)に つ い て 調 査 ? 作 成 し た 資 料 で あ る が 、 当 時 の OpenStack N ova は 機 能 が 十 分 で 無 か っ たため未公開としたものである。 OpenStack 3 周 年 お よ び そ の 後 の 発 展 を 記 念 す る と 共 に 、 初 期 リ リ ー ス か ら の 発展を振り返り関係者の努力をたたえる為に改めて公開する。今後も OpenStack な ら び に OpenStack ユ ー ザ 会 の 発 展 に 少 し で も 寄 与 で き れ ば 幸 い である。 (公 開 に つ い て 、 著 作 者 よ り 許 可 済 み )
  • 2. ◎免責条項 本報告書はクリエーションライン株式会社(以下「クリエーションライン」 )が作成したものですが、報告書の内容及び 情報の正確性、完全性、有用性について、クリエーションラインは保証を行なっておらず、また、いかなる責任を持つ ものでもありません。 本報告書の著作権はクリエーションラインに帰属します。 本報告書の「プリントアウト」 「コピー」 「無料配布」は可能ですが、変更、改変、加工、切除、部分利用、要約、翻訳、 変形、脚色、翻案などは禁止します。 以上の点をご了承の上、ご利用ください。 ◎本報告書に関する問い合わせ先 クリエーションライン info@creationline.com Copyright ? CREATIONLINE, INC. 2011 1
  • 3. 1. OpenStack ..................................................................................................................... 3 1.1. 概要 ......................................................................................................................... 3 1.2. Nova ....................................................................................................................... 3 1.2.1. Nova 概要 ........................................................................................................ 3 1.2.2. Nova 概要 .......................................................................................................... 6 1.2.3. Nova のネット―ワーク ......................................................................................... 9 1.2.4. nova のインストール .......................................................................................... 10 1.2.4.1. Ubuntu(10.4)によるインストール手順 ........................................................ 10 1.2.4.1.2 Ubuntu(10.4)による Nova の利用方法 ........................................................ 12 1.2.4.2. Ubuntu(10.10)によるインストール手順 ...................................................... 13 1.2.4.2.2 Ubuntu(10.10)による Nova の利用方法 ...................................................... 18 1.2.6. nova の開発スケジュール .................................................................................. 19 1.3. まとめ ..................................................................................................................... 19 2
  • 4. 1. OpenStack 1.1. 概要 OpenStack は、米国の NASA や大手 IaaS 事業者である Rackspace などが開発を進めるオ ープンソースのソフトウェアを開発するプロジェクトだ。NASA は、同局のクラウド?プラットフォーム 「Nebula」の基盤ソフトウェアを OpenStack に寄贈しており、Rackspace は、自社の従量制のオン デマンド?サーバ「Cloud Servers」とオンライン?ストレージ?サービス「Cloud Files」の基盤ソフトウ ェアのコードを寄贈している。 OpenStack プロジェクトは多くの人を巻き込もうという流れがあり、コミュニティが存在する。Blog では、日々情報の交換が行われ、ドキュメントも不定期ではあるが、更新され、情報が新しくなって いる。 また、11 月に行われた OpneStack デザインサミットには 12 カ国以上から 250 名以上の人が参 加し、次回リリースされる新しいバージョンや OpenStack が今後どのようにしてビジネスに生かされ か議論された。 オープンソースである OpenStack のソースコードはすべて Apache2.0 ライセンスの基、自由に 入手でき、企業の方も、個人の方でも誰でも入手できる。また、OpenStack コミュニティに参加し、 OpenStack プロジェクトに加わることも可能である。これは、オープンな開発モデルが求められるク ラウド標準を発展させ、大規模なエコシステムの生成が期待されているためである。 OpenStack は、仮想マシン管理ソフトの OpenStack Compute(Nova)と、ペタバイト級の分散 ストレージを構築するソフトである OpenStack Object Storage(Swift)の二つのプロジェクトにより 構成されている。 1.2. Nova 現在リリースされている OpenStack Compute(以下 Nova と呼ぶ)は Austin と呼ば れるバージョンであり、本調査では、Nova-Austin の調査を行った。下記以降は Nova-Austin について調査内容である。 1.2.1. Nova 概要 Nova は大規模なスケーラビリティが可能であり、安全性が高いオープンソースのクラウ ドインフラソフトウェアパッケージである。Nova の機能は、AmazonEC2 や RackSpace CloudServers と類似しているが、Nova は仮想化ソフトウェアを一切含まない。OS 上で立 ち上げられている仮想マシンと WebAPI が連携した構成になっている。 3
  • 5. 下記、OpenStack のドキュメントに記載されている Nova の特徴である。 ユーザとプロジェクト ?イメージへのアクセスはプロジェクトごとに行われる ?アクセスキーとシークレットキーはユーザごとに必要 ?インスタンスにログインするためのキーペアーはユーザ毎に必要 ?プロジェクトごとにクウォータが割り当てられる 仮想化環境 ?KVM ?UML ?XEN ?HyperV ?qemu バイナリデータ Nova は多くのバイナリーデータを実装している。Nova のバイナリーデータは同一マシ ンもしくは多数コンポーネント間に拡張される。 バイナリの設定は Google の gflags パッケージを用いた flagfiles に依存している。 nova-m anage nova-manage コマンドはユーザの生成や VPN の管理のような Nova 全般の管理に必須 な機能を遂行するために使用される。Eucalyptus でいう、Euca2ools のようなもの。 Flags Nova はコマンドラインシステムの一つに 「python-gflags」 を使用している。 flags は flags コマンドライン、もしくは flag ファイルが実行された時にセットされ、nova パッケージを イ ン ス ト ー ル す る 時 に 、 各 々 の nova サ ー ビ ス に 必 要 な flag を 入 手 す る 。 例 え ば 、 「nova-network.conf」は nova-network サービスを設定するために用いられる。 IPC/RPC nova は nova サ ー ビ ス 間 の コ ミ ュ ニ ケ ー シ ョ ン を 行 う た め に AMQP を 実 装 し た RabbitMQ を利用する。メッセージキューはローカル間とリモート間のコミュニケーショ 4
  • 6. ンに用いられ、nova が提供するサービスは、同じ物理的マシン上に存在する必要性がない よう設計されている。RabbitMQ は特に頑丈であり、nova が要求する効率的で信頼のある サービスを提供する。 Fakes 管理者用データベースドライバには、デフォルトでは RDBMS が設定されているが、 OpenLDAP、ReDIS を使用することもできる。 セキュリティグループ nova ではセキュリティグループがファイヤーウォールのようにネットワークアクセスを 管理している。ネットワークアクセスに関する規制により、ネットワークトラフィックが インスタンスに届き、インスタンスに必要のないトラフィックは破棄されるようになって いる。ユーザはセキュリティの設定を修正することが可能である。セキュリティ設定を修 正する時は、仮想インスタンスが launch しているときに、まず、プロジェクトマネージャ がどのセキュリティグループをインスタンスに適応するか明らかにしなければいけない。 新しく設定したセキュリティは、自動的に起動しているすべての仮想インスタンスに適応 され、適応後、インスタンスが再び launch する。もし、どのセキュリティグループも適応 しなかったら、インスタンスはデフォルトのセキュリティグループに割り当てられる。 セキュリティグループの規則を生成することにより、新しいインスタンスが launch する 度にセキュリティグループを適応させる必要がなくなり、dynamicIP アドレスを扱うこと に役立つ。nova 上で起動しているアプリケーションがスケールアップ、スケールダウンす る時には、セキュリティグループを適応させなくて済むことは非常に有効である。 認証機能 nova は認証管理の一端を担う。 これらの認証はクラウドパイプとバンドルイメージ復号に用いられる。 クラウドパイプ クラウドパイプは VLAN によりエンドユーザとインスタンスを接続する。 Nova-manage コマンドを用いて、仮想プライベートネットワークをプライベートネットワ ークに適応する。 仮想プライベートネットワークへのアクセスは、ネットワーク上のパブリックポートを 通して提供される。クラウドパイプにより、ユーザがパブリックインターネットに仮想マ シンをさらすことなく、仮想マシンに自由にアクセスできる。 5
  • 7. ルーディングノード グローバル IP アドレスをプライベート IP アドレスにし、ファイヤーウォールの設定 を行う。 アドレッシングノード プライベートネットワークに DHCP サービスを実行する。 ブリッジングノード ベーシック novaCompute ノードのサブクラスに当たる。 チャネリングノード VPN 接続を提供する。 1.2.2. Nova 概要 nova は全体を統括するクラウドコントローラとそれに関連して機能する 7 つのコンポー ネントから構成されている。下記の図のように、コントローラとノード間において、メッ セージのやり取りは、AMQP を基にした RabbitMQ サーバを用いる。 典型的なメッセージのやり取りは、 API サーバがユーザのリクエストを受け取るところか ら開始される。ここでは、ユーザは新しくオブジェクトの入手を要求したとする。次に、 API サーバがオブジェクトの入手に関するリクエストが適切かどうか確認する。 適切であれ ば、そのオブジェクトに関連するクラウドワーカーに伝達するため、一度キューエンジン に送られる。クラウドワーカーはキューからメッセージを受け取り、リクエストに応じた タスクを行う。タスクが完了するとレスポンスがキューに返され、キューはユーザにレス ポンスを返す。これらの情報がデータベースにキューされ、プロセスに応じて、登録、も しくは削除される。 6
  • 8. Nova-?‐ Manage ローカ ル ? プロジェ ト ク ? ユーザ ? role ? ト ネッ ワーク ? VPN 管理マネー ジャ ボリ ームコ ュ ント ローラ Open Stack API ローカ ル ローカ ル ク ウド ン ラ コ ト ローラ AMQP AMQP ネッ ワーク ト コ ローラ ント API REST Euca2ools http AMQP スケジュ ーラ EC2 API オブジェ ト ク スト ア ? 仮想イ ンスタ ンス ? セキュ ティ リ グループ ? ュ ボリ ーム ? スナッ プショ ト ッ ? 仮想イ ージ メ IPアド レス SSHキー ? アベイ ビリ ゾーン ラ ティ AMQP コ ンピュ ート コ ローラ ント API クラウドフレームワークの心臓部であり、クラウドコントローラのために Web サービス のフロントエンドとして機能する。 API サーバはコマンド作成とハイパーバイザー、 ストレ ージ、ネットワークの管理を行っている。Amazon や Rackspace などのクラウド管理ツー ルの下、 複数の API を管理している。 API のエンドポイントはユーザ認証や権限管理など、 基本的なコマンドを管理している。 様々な API を用いる理由の一つとして、クラウドベンダーが固定してしまう事を防いで いることがあげられる。 管理マネージャ 管理マネージャはユーザがインスタンスを起動させる際に認証と認可を行う。 コンピュータコントローラ コンピュータコントローラはサーバのリソースを提供し、ホストマシン上のインスタン スを管理する。API サーバを通じて、以下のコマンドがコンピュータワーカに送られる。 7
  • 9. ?インスタンスの起動 ?インスタンスの終了 ?インスタンスの再起動 ?ボリュームの付加 ?ボリュームの分離 ?コンソール出力の入手 ネットワークコントローラ ネットワークコントローラはコンピュートサービスが相互に連携できるように機能して いる。ネットワークコントローラは、パブリックネットワークと接続できるように仮想ネ ットワークを提供し、ホストマシン上でネットワークの管理を行う。また、API サーバがキ ューを通してネットワークコントローラにメッセージを送り、以下のコマンドのリクエス トがネットワークコントローラで実行される。 ?IP アドレスの付与 ?VLAN の設定 ?コンピュータノードのネットワークの設定 ボリュームコントローラ ボリュームコントローラはコンピュートサービスに永久的なブロックレベルストレージ を提供する。 LVM ベースのインスタンスを管理する iSCSI ストレージと互いに関連しており、 ボリュ ームはインスタンス間では容易に転送できるが、一回の転送に一つのインスタンスしか転 送できない。ボリュームコントローラの機能は以下のようなものがある。 ?ボリュームの作成 ?ボリュームの削除 ?コンピュータボリュームの設置 オブジェクトストア オブジェクトストアはストレージサービスを提供する。 スケジューラ スケジューラはインスタンスを管理するのに適したコンピュータコントローラを選択す る。 8
  • 10. コンポーネント間のメッセージのやり取りは、メッセージキューを介して行われる。 1.2.3. Nova のネット―ワーク Nova ネットワークは、 プライベートネットワーク、 パブリック IP アドレス、 VPN 接続、 ファイヤーウォールの設定を行う。 Nova のネットワークは fixedIP アドレスと floatingIP アドレスに特徴がある。fixedIP アドレスは生成されたインスタンスに割り当てられ、インスタンスがターミネイトするま でそのまま fixedIP アドレスが割り当てられるた状態になる。 floatingIP アドレスは直接イ ンスタンスに関連付けと関連付けの解除を行う。 fiexedIP アドレスを実装するには下記のようなモードが用意されている。 FLAT M ODE 最もシンプルなネットワークモードである。このモードは、インスタンスが空いている IP アドレスから fixedIP アドレスを受け取るものである。全てのインスタンスはデフォル トでは同じブリッジに取り付けられる。ネットワークの設定はインスタンスがブートする 前にインスタンスに適応される。 FLAT DHCP M ODE インスタンスが同じブリッジに取りつけられる点においては、FLAT MODE に類似して いる。 ブリッジは Ethernet デバイスに接続され、デフォルト設定では eth0 に接続される。 ( ) ブリッジの DHCP サーバとして DNSmasq を起動させる。そして、インスタンスは DHCPDISCOVER により、fixed IP アドレスを受け取る。 VLAN DHCP M ode デフォルトネットワークモードであり、多くの特徴をサポートしている。 複数のマシンに Nova をインストールするためには、host-manage VLAN タグをサポート するスイッチを必要が必要である。 このモードでは、 Nova がプロジェクトごとに VLAN と ブリッジを生成し、VLAN の中からしかアクセスできないプライベート IP アドレスのレン ジを得ることができる。 ユーザがインスタンスにアクセスするために、特別な VPN インスタンス(クラウドパイ プ)を生成する必要があり、Nova はユーザが VPN にアクセスするため「certificate」(ユー ザ認証)と「key」(インスタンスにログインするための秘密鍵)を生成し、自動的に VPN を スタートさせる。 下記の図は VLAN とパブリックインターネット間におけるネットワーク構成を表してい 9
  • 11. る。 コ ンピュ ノ ート ード ネッ ワーク ード ト ノ VLAN Nova ユーザ ク ウド ラ パイプ DHCP プラ イベート 仮想 マシン IP Tables Source Natting IP Tables Public ?IP Natting パブリ ク ッ バー チャ ルマシン パブリ ク ッ イ ー ンタ ネッ ト コ ンピュ ノ ート ード 1.2.4. nova のインストール ドキュメントで紹介されている Nova のインストール方法は複数存在する。本調査では、一台の物 理マシンを用いて、Ubuntu10.4 と Ubuntu10.10 の基、Nova のインストールを行った。 尚、本調査で実施していない複数の物理マシンを用いたインストール方法と Dibian や Fedra、 CentOS を用いた Nova のインストール方法は下記の URL を参照していただきたい。 http://etherpad.openstack.org/NovaMultinodeInstall http://wiki.openstack.org/NovaInstall#Multiple_Server_Installation 1.2.4.1. Ubuntu(10.4)によるインストール手順 Ubuntu10.4 がインストールされた環境を用意し、下記の手順で nova のインストールを行う。 ?ユーザを root に設定 10
  • 12. # sudo su - ?git のダウンロード Nova では、効率的かつ、スピーディにシステム構築ができるバージョン管理システム git を 用いる。git のソースを http://www.kernel.org/pub/software/scm/git/より、最新のものを ダウンロードする。本調査では、git-1.6.0 のダウンロードを行った。 # apt-get install git-core # wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.tar.gz # tar zvfx git-1.6.0.tar.gz ?git に必要なパッケージのダウンロード Debian パッケージを作成するため、build-essential をインストールし、configure ス クリプトを実行する。 # cd git-1.6.0 # apt-get install build-essential # ./configure text ライブラリのインストールを行う。 # apt-get install gettext SSL 関連パッケージのインストールを行う。 # apt-get install zlib1g-dev libssl-dev コンパイルとインストールを行う。 # maek # make install ?nova のインストール nova ディレクトリを作成し、nova ディクレクトリに移動する。 # mkdir nova # cd nova 11
  • 13. git で管理されているソースコードを入手し、ローカルリポジトリを作成する。 # git clone git://git.kernel.org/pub/scm/git/git.git # git clone git://github.com/vishvananda/novascript テスト用のイメージファイルをダウンロードし、展開する。 # wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz # tar xzvf images.tgz コマンドラインツールである euca2ools をインストールする。 # apt-get install euca2ools Euca2ools を用いて、インスタンスへログインするために SSH の秘密鍵を生成する。 秘密鍵が標準出力に出力されるので、その内容を test.pem というファイルとして保存する。 # euca-add-keypair test > test.pem マシンイメージの ID(EMI)と鍵を指定し、インスタンスを起動する。 # euca-run-instances -k test -t m1.tiny ami-tiny nova.sh を用いて nova を起動させる。 # nova/novascript/nova.sh branch # nova/novascript/nova.sh install # nova/novascript/nova.sh run ?起動状態を確認する。 # euca-describe-instances 1.2.4.1.2 Ubuntu(10.4)による Nova の利用方法 Nova のインストールが完了したため、実際にインスタンスを起動させ、インスタンスに ログインする。 12
  • 14. Euca2ools を用いて、インスタンスへログインするために SSH の秘密鍵を生成する。 秘密鍵が標準出力に出力されるので、その内容を test.pem というファイルとして保存する。 # euca-add-keypair test > test.pem 作成したキーペアーが保存されている test.pem ファイルの権限を変更する。 # chmod 600 test.pem ダウンロードしたイメージファイルを用いて、インスタンスを起動させる。 # euca-run-instances -k test -t m1.tiny ami-tiny インスタンスの起動状態を確認する。 # euca-describe-instances プライベートキーを用いて、起動しているインスタンスにログインする。 # euca-authorize -P tcp -p 22 default # ssh -i test.pem root@10.0.0.3 1.2.4.2. Ubuntu(10.10)によるインストール手順 Ubuntu の最新版 LTS(Long Term Supprt)による nova のインストールを行う。 nova のインストールを行う前に 70MB 以上メモリに余裕があるか確認する。 root ユーザに変更する。 # sudo su rabbitmq-server と redis-server のインストール # apt-get install rabbitmq-server redis-server nova パッケージのインストールを行う。 # apt-get install python-nova # apt-get install nova-api nova-objectstore nova-compute nova-scheduler 13 nova-network euca2ools unzip
  • 15. Python のビルドとインストールを行う。 # python setup.py build # python setup.py install Python のインストールが完了すると下記が出力される。 Installing nova-network script to /usr/local/bin Installing nova-volume script to /usr/local/bin Installing nova-objectstore script to /usr/local/bin Installing nova-manage script to /usr/local/bin Installing nova-scheduler script to /usr/local/bin Installing nova-dhcpbridge script to /usr/local/bin Installing nova-compute script to /usr/local/bin Installing nova-instancemonitor script to /usr/local/bin Installing nova-api script to /usr/local/bin Installing nova-import-canonical-imagestore script to /usr/local/bin ?nova 管理者の作成 Installed /usr/local/lib/python2.6/dist-packages/nova-2010.1-py2.6.egg # nova-manage user admin anne Processing dependencies for nova==2010.1 Finished processing dependencies for nova==2010.1 下記のようにアクセスキーとシークレットキーの環境変数が設定される。 # export EC2_ACCESS_KEY=4e6498a2-blah-blah-blah-17d1333t97fd # export EC2_SECRET_KEY=0a520304-blah-blah-blah-340sp34k05bbe9a7 新たなユーザ名、(サイト上では、anne)とプロジェクト名(サイト上では IRT)を作成す る。 # nova-manage project create IRT anne 下記のような内容が表示される。 14
  • 16. Generating RSA private key, 1024 bit long modulus .....++++++ ..++++++ e is 65537 (0x10001) Using configuration from ./openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :PRINTABLE:'California' localityName organizationName :PRINTABLE:'MountainView' :PRINTABLE:'AnsoLabs' organizationalUnitName:PRINTABLE:'NovaDev' commonName :PRINTABLE:'anne-2010-10-12T21:12:35Z' Certificate is to be certified until Oct 12 21:12:35 2011 GMT (365 days) Write out database with 1 new entries Data Base Updated 作成したプロジェクトの認証を得て、zip ファイルを作成する。 # nova-manage project zipfile IRT anne カレントディレクトリにある nova.zip ファイルの展開を行う # unzip nova.zip カレントディレクトリで novarc ファイルを実行する # . novarc イメージファイルの取得するため、 ラックスペース CDN 上のイメージをダウンロード する。 # wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz ダウンロードしたイメージファイルを解凍する。 # tar xvzf images.tgz 15
  • 17. クラウド上にサンプルイメージをアップロードし、カーネルに manifest ファイルを作 成する。 # euca-bundle-image -i images/aki-lucid/image -p kernel --kernel true カーネルに manifest ファイルが作成されると下記ように出力される。 Checking image Tarring image Encrypting image Splitting image... Part: kernel.part.0 Generating manifest /tmp/kernel.manifest.xml Ramdisk に manifest ファイルの作成を行う。 # euca-bundle-image -i images/ari-lucid/image -p ramdisk --ramdisk true 続いて、カーネルバンドルのアップロードを行う。 # euca-upload-bundle -m /tmp/kernel.manifest.xml -b mybucket 下記のような出力結果が表示される。 Checking bucket: mybucket Creating bucket: mybucket Uploading manifest file Ramdisk バンドルのアップロードを行う。 Uploading part: kernel.part.0 Uploaded image as mybucket/kernel.manifest.xml # euca-upload-bundle -m /tmp/ramdisk.manifest.xml -b mybucket カーネルを記憶させ、カーネル ID を取得する。 # euca-register mybucket/kernel.manifest.xml カーネル ID として下記のように表示される IMAGE ami-XXXXX Ramdisk を記憶させ、カーネル ID を取得する # euca-register mybucket/ramdisk.manifest.xml 16
  • 18. Ramdisk の ID として下記のように表示される。 IMAGE ami-YYYYY 上記コマンドより、取得したカーネルと ramdisk の ID に基づくマシーンイメージの manifest の作成する。 # euca-bundle-image -i images/ami-tiny/image -p machine ami-XXXXX --ramdisk ami-YYYYY 下記のような出力結果が表示される。 Checking image Tarring image Encrypting image Splitting image... Part: machine.part.0 Part: machine.part.1 Part: machine.part.2 Part: machine.part.3 Part: machine.part.4 Generating manifest /tmp/machine.manifest.xml マシーンイメージのアップロードを行う。 # euca-upload-bundle -m /tmp/machine.manifest.xml -b mybucket 下記のような出力結果を得る。 hecking bucket: mybucket Uploading manifest file Uploading part: machine.part.0 Uploading part: machine.part.1 Uploading part: machine.part.2 Uploading part: machine.part.3 Uploading part: machine.part.4 Uploaded image as mybucket/machine.manifest.xml 17 --kernel
  • 19. マシーンイメージを登録し、ID を取得する。 # euca-register mybucket/machine.manifest.xml マシンイメージとして、下記が登録される。 IMAGE 1.2.4.2.2 ami-ZZZZZ Ubuntu(10.10)による Nova の利用方法 インスタンスの SSH キーを作成し、mykey.priv ファイルとして保存し、 Mykey.priv ファイルの権限の変更を行っておく。 # euca-register mybucket/machine.manifest.xml chmod 600 mykey.priv 上記コマンドより、 取得したマシンイメージの ID を用いて、 インスタンスを立ち上げる。 # euca-run-instances ami-xxxxx --kernel ami-XXXXX --ramdisk ami-YYYYY –k mykey 下記のようにインスタンス情報が表示される。 RESERVATION r-0at28z12 INSTANCE 10.0.0.3 IRT i-1b0bh8n scheduling ami-ZZZZZ mykey (IRT, None) 10.0.0.3 m1.small 2010-10-18 19:02:10.443599 インスタンスを読み込んだ時間と起動した時間を表示する # euca-describe-instances 下記のようにインスタンスが running になっていることが確認できる。 RESERVATION INSTANCE 10.0.0.3 r-0at28z12 IRT i-1b0bh8n ami-ZZZZZ running mykey (IRT, cloud02) 0 10.0.0.3 m1.small 2010-10-18 19:02:10.443599 仮想マシンが起動しているか確認するには、下記のコマンドを実行する。 18
  • 20. # virsh list 仮想マシンが動いていれば、仮想マシンの名前と起動状況が表示される。 Id Name State ---------------------------------1 2842445831 running プライベート IP アドレスを用いて、インスタンスに接続する。 # ssh -i mykey.priv root@10.0.0.3 1.2.6. nova の開発スケジュール OpenStack の新しいバージョンのリリースは基本的に 3 カ月に一度のサイクルで行われ る。 本調査で調査したバージョンは、 プロジェクト名として Austin と呼ばれるものであり、 2010 年 10 月 21 日にリリースされた。次のバージョンは、Bexar と呼ばれ、リリースは 2011 年 2 月の第三週を予定している。Bexar の次のバージョンは Cactus と呼ばれるもの で、2011 年 4 月にリリースを予定している。 また、OpenStack の新しいバージョンのリリースに開発協力することは非常に歓迎され ている。 1.3. まとめ Nova の第一弾である Austin が 10 月 21 日にリリースされた。Nova に関して明らかに なっていない情報がまだ多いため不定期ではあるが、ドキュメントが何度か更新されてい る。 このことは、Nova が完成されたサービスではなく、ジェネラスチームとコミュニティメン バーにより、Nova を発展させ、現在よりも良いサービスを提供しようという動きの表れだ と言える。 かなり個人的な感想 nova のインストールからインスタンスにログインするまで、Eucvalyptus よりもスムー ズに行えた。理由は、設定項目が少なかったから。Eucalyptus では、ハイパーバイザの設 定、ネットワークの設定など、細かな設定を行う必要が無かった。 19