More Related Content
Similar to Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Similar to Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要 (20)
More from Etsuji Nakai (20)
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
- 1. openstack Open source software to build public and private clouds.
OpenStackの機能概要
ver1.1 2014/12/12
Etsuji Nakai
(Twitter @enakai00)
- 2. 2
目次
■ OpenStackのこれまで
■ OpenStackの機能概要
■ セキュリティ機能とストレージ機能
■ OpenStackの特徴と主要コンポーネント
■ コンポーネントのAPI操作
- 4. 4
OpenStackとは?
■ OpenStackは、Amazon EC2/S3相当のクラウドインフラを構築するためのオープン
ソースソフトウェアです。
- マルチテナント型のIaaS (Infrastructure as a Service) 環境を提供します。
- 類似のオープンソースには、CloudStack、Eucalyptusなどがあります。
■ 2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクトを立ち
あげて、開発をスタートしました。
- RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作りかけて
いた「Nova」(EC2相当の機能を提供)をオープンソース化して提供して、それらをベースにコ
ミュニティモデルでの開発を開始しました。
単なる仮想化管理ツールではなく、
「パブリッククラウドと同等の機能」を
実現することがOpenStackの目的
- 5. 5
これまでの開発状況
■ これまで、年に2〜3回程度のメジャーバージョンアップが行われています。
■ 当初は、RackSpace社が開発を主導していましたが、2012年にOpenStackの開発を支
える公式の非営利団体である「OpenStack Foudation」が設立されました。
Bexar
2011/02/03
Diablo
2011/09/22
OpenStack Foudation設立
Folsom
2012/09/27
Havana
2013/10/17
2011 2012 2013 2014
Austin
2010/10/21
Cactus
2011/04/15
Essex
2012/04/05
Grizzly
2013/04/04
「最低限動くもの」を
目指して地道に開発
EC2/S3相当機能がほぼ完成
Icehouse
2014/04/17
- 7. OpenStackユーザ
プロジェクト環境
OS領域仮想マシンインスタンス
7
OpenStackが提供する環境
■ OpenStackのユーザは、WebコンソールやREST
APIを用いて、次のようなコンピューティング
リソースを利用します。
- 仮想ネットワーク
- 仮想マシンインスタンス
- ブロックボリューム
■ 各ユーザは特定のプロジェクトに所属します。
- プロジェクト内でリソースを共有します。
- プロジェクト全体でのリソース使用量の上限設定、
リソース使用状況のレポーティングなどが可能。
■ 環境操作には次のような方法があります。
- GUIダッシュボードから操作
- CLIツールから操作
- API連携ツール(Heat, Ansible, etc )から操作
外部ネットワーク
仮想ルータ
仮想スイッチ
データ領域ブロックボリューム
- 8. 8
OpenStackの仮想ネットワークモデル
■ プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。
- 仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。
- それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。
■ 仮想マシンインスタンス起動時に、接続する仮想スイッチを選択します。
- DHCPでプライベートIPアドレスが割り当てられます。
- 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。
プロジェクトA
仮想ルータ
仮想スイッチ
192.168.101.0/24
外部ネットワーク
プロジェクトB
仮想ルータ
仮想スイッチ
192.168.102.0/24
- 9. 9
プライベートIPとフローティングIP
■ 外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を
割り当てます。
- 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスをプールし
ておきます。
- 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。
- フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネットワークへの
接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード接続します。)
外部ネットワークからは
フローティングIPで接続
フローティングIP
インスタンス同士は
プライベートIPで接続
プライベートIP プライベートIP
WebサーバーDBサーバー
- 10. 10
仮想マシンインスタンスの起動
■ 仮想マシンインスタンスを起動する際は、次の項目を指定します。
- インスタンスタイプ
- テンプレートイメージ (*)
- 接続する仮想ネットワーク
- セキュリティグループ
- キーペア
外部ネットワーク
セキュリティグループ
OS領域
テンプレート
イメージ
複製
複数ネットワーク
接続も可能
形式説明
raw フラットなイメージファイル
AMI/AKI/ARI Amazon EC2が利用する形式
qcow2 Linux KVMが利用する形式
VDI VirtualBoxが利用する形式
VMDK VMwareが利用する形式
VHD Hyper-Vが利用する形式
テンプレートとしてインポート可能なイメージ形式
- 12. 12
セキュリティグループ
■ 仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリング
します。
- セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件で受信を
許可するパケットを指定します。
- 仮想マシンインスタンス起動時に
適用するセキュリティグループを
指定します。
Pingの受信許可
HTTPの受信許可
SSHの受信許可
セキュリティグループ「default」の
仮想マシンからは任意の受信許可
送信は自由に可能
- 13. 13
キーペアによるSSHログイン認証
■ 事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込み
ます。
- 公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりません。
仮想マシンインスタンス
②公開鍵をゲストOSに埋め込み
ユーザ情報データベース
秘密鍵
公開鍵
③秘密鍵で認証
①公開鍵を事前に登録
- 14. 14
インスタンスタイプとディスク領域の関係
■ デフォルトで用意されるインスタンスタイプは次のようになります。
- ルートディスクは、テンプレートイメージを複製した後に指定のサイズまで拡張されます。
インスタンスタイプ仮想CPU メモリルート
ディスク
一時
ディスク
スワップ
ディスク
m1.tiny 1 512MB 1GB 0 0
m1.small 1 2GB 20GB 0 0
m1.medium 2 4GB 40GB 0 0
m1.large 4 4GB 80GB 0 0
m1.xlarge 8 8GB 160GB 0 0
■ 管理者ユーザは任意のインスタンスタイプを定義することができます。
- 一時ディスクとスワップディスクを与えると、ゲストOSからは下図のように認識されます。
- これらのディスク領域は、仮想マシンインスタンスを停止するとすべて破棄されます。(永続保
存が必要なユーザデータは、ブロックボリュームに保存します。)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 20G 0 disk
└─vda1 252:1 0 20G 0 part /
ルートディスク
一時ディスク
vdb 252:16 0 5G 0 disk /mnt
vdc 252:32 0 1G 0 disk [SWAP] スワップディスク
- 15. 15
仮想マシンインスタンスのスナップショット
■ 仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保
存することができます。
テンプレートイメージ
OS領域
テンプレートイメージから
仮想マシンインスタンス起動
インスタンスの
スナップショット
OS領域
ルートディスクを複製して
スナップショットを作成
スナップショットから
仮想マシンインスタンス起動
- 16. 16
ブロックボリュームの使い方
■ ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続
的なデータ保存領域として使います。
OS領域OS領域
データ領域
③スナップショット作成
④スナップショットを複製して
新たなブロックボリュームを作成
②仮想マシンインスタンスに
接続してデータ領域として使用
データ領域
他の仮想マシンインスタンスに
再接続可能(同時接続は不可)
①新規ブロックボリュームを作成
- 17. 17
ブロックボリュームの使い方
■ ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マ
シンインスタンスを起動することも可能です。
- 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。
- スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、スナップ
OS領域
仮想マシンインスタンスに
接続してゲストOS起動
OS領域
テンプレート
イメージ
テンプレートイメージを複製して
ブロックボリュームを作成
OS領域
スナップショット作成
OS領域
複製
ショットから新しいブロックボリュームを用意することも可能です。
- 21. 21
OpenStackの主要コンポーネント
■ OpenStackでは、機能別にソフトウェアをモジュール化して開発が進められています。
- Swift : オブジェクトストレージ
● ファイル単位で出し入れするだけの単純なファイルストア
- Nova : 仮想マシンの配置決定と起動・停止処理
- Glance : 仮想マシンイメージの管理
● バックエンドにSwift、その他のストレージを使用
- Cinder : ブロックボリュームの提供
● サンプル実装では、Linux LVM + iSCSIソフトウェアターゲットを使用
● 外部のストレージ装置をバックエンドにすることも可能
- Keystone : 統合認証機能
- Neutron : 仮想ネットワーク管理機能(Quantumから改名)
● 仮想ネットワークの作成を外部のプラグインモジュール(SDN製品)に移譲
● 標準提供のプラグインでは、Linux bridge、もしくは、Open vSwitchを使用
- Horizon : GUIコンソールのサンプル実装
- 22. 22
コンポーネント間の連携処理
■ Webコンソールで操作をすると、REST API経由で各モジュールに指示が飛びます。ま
た、クライアントは、各モジュールのREST APIを直接操作することも可能です。
- これにより、プログラムコードからの呼び出しによる環境操作の自動化が可能になります。
テンプレート
イメージ保存
仮想マシン
イメージ
Nova
Compute
Nova
Compute
Glance Horizon Neutron
管理ネットワーク
LUN
仮想ネットワーク作成
仮想マシン起動
ブロックボリューム提供
(iSCSI)
認証サーバ
MySQL
Network
Node
Nova
Compute
Cinder
Keystone
Swift
メッセージキュー
パブリックネットワーク
クライアントPC
Webコンソールアクセス
テンプレート
イメージ検索
テンプレート
ダウンロード
AMQP
データベース
LUN
LUN
Nova
- 23. 23
OpenStackの特徴
■ APIで操作する「Programmable Infrastructure」の提供
- 既存のGUI・ワークフローに縛られたくないユーザ層の獲得
- プログラムによるインフラ環境の自動構築・変更に対応
■スケーラビリティを意識した疎結合アーキテクチャ
- コンピューティングノードの追加が容易/コントローラの負荷分散が可能
- システム設計、運用・管理にはこれまでとは違うノウハウが必要
■ Driver/Pluginによる外部コンポーネントとの連携
- 既存インフラと連携・統合するための作りこみが可能
- サードパーティ製品連携のエコシステム
ここがポイント
- 24. ■ 仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると
任意のテキストをメタデータとしてゲストOSに受け渡すことができます。
24
カスタマイズスクリプト(User Data)の利用
■ Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。
- 下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。
- この他にもCloud-Init独自の構文で、処理内容を指示することができます。
$ curl http://169.254.169.254/2009-04-04/user-data
#!/bin/sh
echo 'Hello, World' > /etc/motd
exit 0
- 25. 25
Puppetと連携したアプリケーション導入例
■ カスタマイズスクリプトからGitHub/Puppetを連携させることで、仮想マシンインスタ
ンスの起動時にアプリケーションの導入・設定をまとめて自動化することができます。
ソフトウェア
パッケージ
VM GitHub
YUM
リポジトリ
アプリ設定情報
(Puppetマニフェスト)
httpd
カスタマイズ・スクリプト
#!/bin/sh -x
GitRepository=https://github.com/enakai00/apache_puppet
ConfigTag=f18
setenforce 0
yum -y install puppet git
RepoName=${GitRepository##*/}
mkdir -p /tmp/gittmp
cd /tmp/gittmp
git clone $GitRepository
cd $RepoName
git checkout $ConfigTag
puppet apply main.pp
setenforce 1
- 27. 27
コンポーネントのAPI操作のパターン
■ コンポーネントのAPIを操作する際は、2種類のパターンがあります。
- ユーザがダッシュボード経由で各コンポーネントのAPIを操作、もしくは、直接にAPIを操作
- あるコンポーネントが他のコンポーネントに処理を依頼するためにAPIを操作
Horizon
(ダッシュボード)
Keystone
(ユーザ認証)
Neutron
(仮想ネットワーク)
Cinder
(ブロックボリューム)
Nova
(仮想マシン)
Glance
(テンプレート)
テンプレートイメージ
のダウンロード
ブロックボリューム
の接続
仮想ネットワークへの接続
APIアクセスWebブラウザ
アクセス
- 28. 28
API操作のユーザ認証
■ コンポーネントのAPIを操作する際は、ユーザ認証が必要となります。
- ユーザ、もしくは、コンポーネントは、KeystoneからAPI操作を許可する「トークン」を取得し
た後に、操作対象コンポーネントのAPIにリクエストを送信します。(各コンポーネントは、自
分自身を表す「ユーザ」がKeystoneに事前に登録されています。)
- Keystoneからトークンを取得する際に、操作対象コンポーネントのAPIのURLを併せて取得しま
す。したがって、ユーザは、KeystoneのAPIのURLだけを知っている必要があります。
Horizon
(ダッシュボード)
Keystone
(ユーザ認証)
Neutron
(仮想ネットワーク)
Cinder
(ブロックボリューム)
Nova
(仮想マシン)
Glance
(テンプレート)
- 29. 29
Keystoneのコマンド操作例 (1)
■ OpenStack標準のコマンドラインツールは、環境変数でユーザ/パスワード/操作対象テ
ナント/Keystone APIのベースURLを指定します。
- Keystone APIは、管理ユーザ用と一般ユーザ用でURL(ポート番号)が異なります。
- 引数でユーザ等を指定した場合は、そちらが優先されます。
- 次はデフォルトの管理ユーザ「admin」でKeystoneを操作する例です。
# cat keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=714f1ab569a64a3b
export OS_AUTH_URL=http://172.16.1.11:35357/v2.0/
export PS1='[u@h W(keystone_admin)]$ '
管理ユーザの場合は
# . keystonerc_admin
ポート番号35357
# keystone user-list
+----------------------------------+------------+---------+-------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+-------------------+
| 589a800d70534655bfade5504958afd6 | admin | True | test@test.com |
| 3c45a1f5a88d4c1d8fb07b51ed72cd55 | cinder | True | cinder@localhost |
| f23d88041e5245ee8cc8b0a5c3ec3f6c | demo_admin | True | |
| 44be5165fdf64bd5907d07aa1aaa5dab | demo_user | True | |
| cd75770810634ed3a09d92b61aacf0a7 | glance | True | glance@localhost |
| a38561ed906e48468cf1759918735c53 | nova | True | nova@localhost |
| 157c8846521846e0abdd16895dc8f024 | neutron | True | neutron@localhost |
+----------------------------------+------------+---------+-------------------+
- 30. 30
Keystoneのコマンド操作例 (3)
■ 各コマンドラインツールは、「helpサブコマンド」でサブコマンドの一覧や各サブコマ
ンドの詳細が確認できます。
# keystone help ← サブコマンドの一覧
# keystone help user-list ← サブコマンド「user-list」の詳細説明
- 31. 31
仮想マシンインスタンスの起動
■ NovaのAPIに仮想マシンインスタンスの起動を指示すると、Glance / Netronと連携し
て、インスタンスの起動と仮想ネットワーク接続の処理が行われます。
- Novaは、Glance APIを通じて、テンプレートイメージをコンピュートノードにコピーします。
- 同じく、Neutron APIを通じて、仮想マシンインスタンスを仮想ネットワークに接続します。
Horizon
(ダッシュボード)
Keystone
(ユーザ認証)
Neutron
(仮想ネットワーク)
Cinder
(ブロックボリューム)
Nova
(仮想マシン)
Glance
(テンプレート)
テンプレートイメージ
のダウンロード
仮想ネットワークへの接続
- 32. 32
仮想マシンインスタンスの起動 (1)
■ 次は、novaコマンドで仮想マシンインスタンスの起動に必要な情報を確認しています。
# . keystonerc_demo_user
# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | True | {} |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | {} |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | {} |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | {} |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {} |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
# nova keypair-list
+-------+-------------------------------------------------+
| Name | Fingerprint |
+-------+-------------------------------------------------+
NovaからGlance APIを呼び出して
| mykey | 31:8c:0e:43:67:40:f6:17:a3:f8:3f:d5:73:8e:d0:30 |
+-------+-------------------------------------------------+
情報を取得しています。
# nova image-list
+--------------------------------------+----------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+----------+--------+--------+
| 702d0c4e-b06c-4c15-85e5-9bb612eb6414 | Fedora19 | ACTIVE | |
+--------------------------------------+----------+--------+--------+
# nova secgroup-list
+---------+-------------+
| Name | Description |
+---------+-------------+
| default | default |
+---------+-------------+
NovaからNeutron APIを呼び出して
情報を取得しています。
# nova net-list
+--------------------------------------+-------------+------+
| ID | Label | CIDR |
+--------------------------------------+-------------+------+
| 843a1586-6082-4e9f-950f-d44daa83358c | private01 | None |
| d3c763f0-ebf0-4717-b3fc-cda69bcd1957 | private02 | None |
| d8040897-44b0-46eb-9c51-149dfe351bbe | ext-network | None |
+--------------------------------------+-------------+------+
- 33. 33
仮想マシンインスタンスの起動 (2)
■ 次は、確認した情報を元に、仮想マシンインスタンスを起動しています。
# nova boot --flavor m1.small --image Fedora19 --key-name mykey
--security-groups default --nic net-id=843a1586-6082-4e9f-950f-d44daa83358c vm01
+-----------------------------+--------------------------------------+
| Property | Value |
+-----------------------------+--------------------------------------+
| status | BUILD |
| updated | 2013-11-22T06:22:52Z |
| OS-EXT-STS:task_state | scheduling |
| key_name | mykey |
| image | Fedora19 |
| hostId | |
| OS-EXT-STS:vm_state | building |
| flavor | m1.small |
| id | f40c9b76-3891-4a5f-a62c-87021ba277ce |
| security_groups | [{u'name': u'default'}] |
| user_id | 2e57cd295e3f4659b151dd80f3a73468 |
| name | vm01 |
| adminPass | 5sUFyKhgovV6 |
| tenant_id | 555b49dc8b6e4d92aa74103bfb656e70 |
| created | 2013-11-22T06:22:51Z |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
(中略)
+-----------------------------+--------------------------------------+
# nova list
+--------------------------------------+------+--------+-------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+------+--------+-------------------------+
| f40c9b76-3891-4a5f-a62c-87021ba277ce | vm01 | ACTIVE | private01=192.168.101.3 |
+--------------------------------------+------+--------+-------------------------+
- 34. 34
仮想マシンインスタンスの起動 (3)
■ 「カスタマイズスクリプト」を使用する際は、スクリプトを記載したファイルを用意し
て、「--user-data」オプションで指定します。
- 次の例では、カスタマイズスクリプトを指定して仮想マシンインスタンスを起動した後、フロー
ティングIPを割り当てて、実際にログインしています。
# cat hello.txt
#!/bin/sh
echo 'Hello, World!' > /etc/motd
# nova boot --flavor m1.small --image Fedora19 --key-name mykey
--security-groups default --nic net-id=843a1586-6082-4e9f-950f-d44daa83358c
--user-data hello.txt vm01
# nova floating-ip-list
+--------------+-------------+----------+-------------+
| Ip | Instance Id | Fixed Ip | Pool |
+--------------+-------------+----------+-------------+
| 172.16.1.101 | None | None | ext-network |
| 172.16.1.102 | None | None | ext-network |
| 172.16.1.103 | None | None | ext-network |
| 172.16.1.104 | None | None | ext-network |
| 172.16.1.105 | None | None | ext-network |
+--------------+-------------+----------+-------------+
# nova add-floating-ip vm01 172.16.1.101
# ssh -i ~/mykey.pem fedora@172.16.1.101
The authenticity of host '172.16.1.101 (172.16.1.101)' can't be established.
RSA key fingerprint is b7:24:54:63:1f:02:33:4f:81:a7:47:90:c1:1b:78:5a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.101' (RSA) to the list of known hosts.
Hello, World!
[fedora@vm01 ~]$
- 35. 35
ブロックボリュームの作成と接続
■ CinderのAPIを通して、ブロックボリュームの作成・削除・スナップショット作成など
が可能です。
- 仮想マシンインスタンスにブロックボリュームを接続する際は、NovaのAPIに指示を出すと、
NovaがCinderのAPIを経由して連携処理を行います。
Horizon
(ダッシュボード)
Keystone
(ユーザ認証)
Neutron
(仮想ネットワーク)
Cinder
(ブロックボリューム)
Nova
(仮想マシン)
Glance
(テンプレート)
ブロックボリューム
の接続
- 36. 36
ブロックボリュームの作成と接続
■ 次は5GBのボリュームを作成して、仮想マシンインスタンスに接続/取り外し、スナップ
ショット作成を行う例です。
# cinder create --display-name volume01 5
# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 78b4d23b-3b57-4a38-9f6e-10e5048170ef | available | volume01 | 5 | None | false | |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
# nova volume-attach vm01 78b4d23b-3b57-4a38-9f6e-10e5048170ef
+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| serverId | f40c9b76-3891-4a5f-a62c-87021ba277ce |
| id | 78b4d23b-3b57-4a38-9f6e-10e5048170ef |
| volumeId | 78b4d23b-3b57-4a38-9f6e-10e5048170ef |
+----------+--------------------------------------+
# nova volume-detach vm01 78b4d23b-3b57-4a38-9f6e-10e5048170ef
# cinder snapshot-create --display-name volume01-snap 78b4d23b-3b57-4a38-9f6e-10e5048170ef
# cinder snapshot-list
+--------------------------------------+--------------------------------------+-----------+---------------+------+
| ID | Volume ID | Status | Display Name | Size |
+--------------------------------------+--------------------------------------+-----------+---------------+------+
| 3dfa60cb-d0b2-4a10-9d49-817f5cee78b5 | 78b4d23b-3b57-4a38-9f6e-10e5048170ef | available | volume01-snap | 5 |
+--------------------------------------+--------------------------------------+-----------+---------------+------+
- 37. 37
ブロックボリュームからの起動
■ テンプレートイメージを複製してブロックボリュームを作成すると、ブロックボリュー
ムから仮想マシンインスタンスを起動できるようになります。
- 次は、既存のテンプレートイメージからブロックボリュームを作成して、仮想マシンインスタン
スを起動する例です。
テンプレートイメージのID
# cinder create --image-id 702d0c4e-b06c-4c15-85e5-9bb612eb6414 --display-name Fedora19-bootvol 5
# cinder list
+--------------------------------------+-----------+------------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+------------------+------+-------------+----------+-------------+
| 78b4d23b-3b57-4a38-9f6e-10e5048170ef | available | volume01 | 5 | None | false | |
| bdde9405-8be7-48d5-a879-35e37c97512f | available | Fedora19-bootvol | 5 | None | true | |
+--------------------------------------+-----------+------------------+------+-------------+----------+-------------+
# nova boot --flavor m1.small --key-name mykey
--security-groups default --nic net-id=843a1586-6082-4e9f-950f-d44daa83358c
--block_device_mapping vda=bdde9405-8be7-48d5-a879-35e37c97512f:::0 vm02
ブロックボリュームのID インスタンス停止時にボリュームを
削除するかどうか
# nova volume-list
+----------||-----------+-----------+------------------+------+-------------+--------------------------------------+
| ID || | Status | Display Name | Size | Volume Type | Attached to |
+----------||-----------+-----------+------------------+------+-------------+--------------------------------------+
| 78b4d23b-||e5048170ef | available | volume01 | 5 | None | |
| bdde9405-||e37c97512f | in-use | Fedora19-bootvol | 5 | None | b4cb7edd-317f-44e9-97db-5a04c41a4510 |
+----------||-----------+-----------+------------------+------+-------------+--------------------------------------+