SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
AvailabilityZoneandHostAggrigate 
(Havanaの場合) 
1発書いたきり確認してないです。間違ってたらごめん。 
@ishikawa84g
はじめに 
• 
本資料作成にあたり日本OpenStackユーザ会会長中島倫明様 の資料を参考にさせていただきました。ありがとうございまし た。 
•http://www.slideshare.net/irix_jp/josug-13thstudyregionandazahcells-v2 
• 
本資料はHavana時点での検証をまとめたものです。Icehouse, Junoでは 本内容と動作・仕様が異なる場合があります。 
• 
分散環境の対象はAvailabilityZone, HostAggregateのみとし、Region, Cellについて対象外としています。
もくじ 
• 
OpenStackにおける分散環境の区分 
• 
AvailabiltyZoneとHostAggregateの概要 
• 
Novaの設定 
• 
HostAggregateの利用方法 
• 
AvailabilityZoneの利用方法 
• 
AvailabilityZoneをまたがるHostAggregateの利用方法 
• 
CinderにおけるAvailabilityZone 
• 
Nova・CinderのAvailabiltyZone連携 
• 
未検証の事項について 
• 
今後期待する機能
OpenStackにおける分散環境の区分 
1. 
OpenStackそのものの分散 
• 
複数のOpenStackが別サイトで存在する。 
• 
コンピュートをはじめ、ネットワーク、イメージ共有、認証、 AMQP、データベースなどが分散される。 
• 
Region やCell 
2. 
仮想マシンの分散 
• 
ネットワーク、認証、AMQP、データベースはそのままに、 コンピュートだけが分散される。 
• 
分散の対象はコンピュートノード 
• 
Availability Zone (AZ) やHost Aggregate (AG) 
• 
主にNovaに実装された機能 
対象
RegionOne 
RegionTwo 
・Nova 
・Glance 
・Keystone 
など 
・MySQL 
・RabbitMQ 
・Memcached 
Shared Nothing 
TopCell 
nova-api 
Glance 
Keystone 
nova-cell 
DB 
Child Cells1 
AMQP 
nova-cell 
Child Cells2 
AMQP 
Grandchild Cells 
AMQP 
DB 
AMQP 
DB 
nova- scheduler 
AZ1 
AZ2 
compute 
compute 
compute 
compute 
compute 
compute 
compute 
compute 
AG1 
AG3 
AG2
AvailabiltyZoneの概要 
• 
管理者が明示的に指定する 
• 
ユーザは定義済みのAZを利用し、仮想マシンの配置先を指定する。 
• 
OpenStackクラスタ(リージョン)内での仮想マシンの配置を ユーザが選択できるようにする。 
• 
例えば、ラック単位、フロア単位、データセンター単位 
3F 
(AZ3) 
2F 
(AZ2) 
第2DC RACK1 
(AZ22A) 
第2DC RACK2 
(AZ22B)
HostAggregateの概要 
• 
管理者が明示的に指定する。 
• 
リージョン内で仮想マシンの配置に法則を与える。 
• 
どのマシンに配置するかをユーザは意識をしない。 
• 
インスタンスタイプを決めるだけで良い。 
• 
例えば、「チープなサーバ群とハイスペックなサーバ群の分割」 や「ハイパーバイザでの分割」 
AG1 
AG2 
AG3 
KVM: ロースペック 
KVM: ハイペック 
VMWare
Novaの設定 
• 
AvailabilityZibe, HostAggregateはどちらもスケジューラを利用する。 
• 
スケジューラのフィルタを設定することで利用可能になる。 
• 
nova.conf内、scheduler_default_filtersを設定 
• 
初期値 
• 
変更 
• 
初期値のComputeCapabilitiesFilterを指定しているとHostAggregate設定 時エラーとなる。 
scheduler_default_filters=RetryFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,AvailabilityZoneFilter 
scheduler_default_filters=RetryFilter,RamFilter,ComputeFilter,ImagePropertiesFilter,AvailabilityZoneFilter,AggregateInstanceExtraSpecsFilter
Novaの設定 
• 
nova.conf内でAvailabilityZone, HostAggregateの設定に関わる オプションは以下の通り 
パラメータ 
初期値 
説明 
internal_service_availability_zone 
internal 
インターナルサービスのデフォルトゾーン 
nova-consoleauthなどのデフォルトゾーン名 
default_availability_zone 
nova 
コンピュートノードのデフォルトゾーン名 
default_schedule_zone 
(なし) 
ゾーンを指定していない場合に指定されるゾーン名 
nova boot 時、ゾーンを指定しなければこのゾーンが 利用される 
ゾーンが複数ある場合、ゾーン名を指定しないとエ ラーになる 
cinder_cross_az_attach 
true 
コンピュートノードが所属するゾーンとcinder- volumeが所属するゾーンが異なった場合、Attache を許可/拒否する 
true:Attacheを許可する 
false: Attacheを拒否する
HostAggregateの利用
HostAggregateの利用 
• 
HostAggregateを利用するためのコマンドについて解説を行う。 
• 
全ての操作はadmin roleを持ったユーザで行う。 
• 
一般ユーザは設定・参照を行えない。 
$ nova aggregate-list 
ERROR: Policy doesn‘t allow compute_extension:aggregatesto be performed. (HTTP 403) 
(Request-ID: req-c56d3e53-231c-41d3-8a4c-80d8a1cb48aa) 
$ nova aggregate-list 
+----+---------+-------------------+ 
| Id | Name | Availability Zone | 
+----+---------+-------------------+ 
| 1 | ag1-web | None | 
+----+---------+-------------------+ 
一般 
admin
zone name: nova 
HostAggregateの利用 
• 
参考に以下のような構成でHostAggregateを作成する。 
• 
Web用AGとDB用AGを作成し、それぞれのHostAggregateに2 台のコンピュートノードを紐付ける。 
ag1-web 
ag1-db 
com001 
com002 
com003 
com004
nova コマンドによる設定(1/6) 
• 
任意のHostAggregateを作成する 
• 
usage: nova aggregate-create <name> [<availability-zone>] 
• 
ここではWeb用HostAggregateとDB用HostAggregateを作成する 
$ nova aggregate-create ag1-web 
$ nova aggregate-create ag1-db 
+----+---------+-------------------+-------+----------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+-------+----------+ 
| 1 | ag1-web | None | [] | {} | 
| 2 | ag1-db | None | [] | {} | 
+----+---------+-------------------+-------+----------+
nova コマンドによる設定(2/6) 
• 
作成したHostAggregateとホストを紐付ける 
• 
usage: nova aggregate-add-host <aggregate> <host> 
• 
ここでは、AG ID(AGNameでも可)とホスト名を指定する。 
• 
ホスト名はnova-manage service list で表示されるホスト名 
$ nova aggregate-add-host 1 com001 
$ nova aggregate-add-host 1 com002 
$ nova aggregate-add-host 2 com003 
$ nova aggregate-add-host 2 com004 
+----+---------+-------------------+------------------------+----------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+------------------------+----------+ 
| 1 | ag1-web | None | [u'com001', u'com002'] | {} | 
| 2 | ag1-db | None | [u'com003', u'com004'] | {} | 
+----+---------+-------------------+------------------------+----------+ 
※ nova aggregate-detailsの結果を参考に出力した
nova コマンドによる設定(3/6) 
• 
HostAggregateを識別するためのメタデータを設定する 
• 
usage: nova aggregate-set-metadata <aggregate> <key=value> [<key=value> ...] 
$ nova aggregate-set-metadata 1 web=true 
$ nova aggregate-set-metadata 2 db=true 
Aggregate 2 has been successfully updated. 
+----+---------+-------------------+------------------------+-------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+------------------------+-------------------+ 
| 1 | ag1-web | None | [u'com001', u'com002'] | {u'web': u'true'} | 
| 2 | ag1-db | None | [u'com003', u'com004'] | {u'db': u'true'} | 
+----+---------+-------------------+------------------------+-------------------+
nova コマンドによる設定(4/6) 
• 
HostAggregateの詳細情報を表示する 
• 
usage: nova aggregate-details <aggregate> 
$ nova aggregate-details ag1-web 
$ nova aggregate-details ag1-db 
+----+---------+-------------------+------------------------+-------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+------------------------+-------------------+ 
| 1 | ag1-web | None | [u'com001', u'com002'] | {u'web': u'true'} | 
| 2 | ag1-db | None | [u'com003', u'com004'] | {u'db': u'true'} | 
+----+---------+-------------------+------------------------+-------------------+ 
※出力をまとめている。実際は指定したHostAggregateのみを表示する。
nova コマンドによる設定(5/6) 
• 
HostAggregate用のFlavorを作成する 
• 
usage: nova flavor-create [--ephemeral <ephemeral>] [--swap <swap>] [--rxtx-factor <factor>] [--is-public <is-public>] <name> <id> <ram> <disk> <vcpus>
nova コマンドによる設定(5/6) 
$ nova flavor-create ag1.web 6 1024 10 1 
$ nova flavor-create ag1.db 7 1024 20 1 
+----+---------+-----------+------+-----------+------+-------+-------------+-----------+ 
| ID | Name | Memory_MB| Disk | Ephemeral | Swap | VCPUs | RXTX_Factor| Is_Public| 
+----+---------+-----------+------+-----------+------+-------+-------------+-----------+ 
| 6 | ag1.web | 1024 | 10 | 0 | | 1 | 1.0 | True | 
| 7 | ag1.db | 1024 | 20 | 0 | | 1 | 1.0 | True | 
+----+---------+-----------+------+-----------+------+-------+-------------+-----------+ 
$ nova flavor-list 
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ 
| ID | Name | Memory_MB| Disk | Ephemeral | Swap | VCPUs | RXTX_Factor| Is_Public| 
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ 
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 
| 6 | ag1.web | 1024 | 10 | 0 | | 1 | 1.0 | True | 
| 7 | ag1.db | 1024 | 20 | 0 | | 1 | 1.0 | True | 
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
nova コマンドによる設定(6/6) 
• 
作成したHostAggregateとFlavorを関連付ける。 
• 
AG:メタデータとFlavorのキー同士を関連付けることができる。 
• 
usage: nova flavor-key <flavor> <action> <key=value> [<key=value> ...] 
• 
Flavorを選択すると同時に定義したHostAggregateを利用する ように設定を行う。 
• 
Flavorにkeyをセットすることで、ユーザがFlavorを指定するだけで事 前に定義したHostAggregateが自動的に選択されるようになる。 
• 
このkeyはHostAggregateのメタデータと比較が行われる。 
$ nova flavor-key 6 set web=true 
$ nova flavor-key 7 set db=true
nova コマンドによる設定(6/6) 
$ nova flavor-show 6 
+----------------------------+-------------------+ 
| Property | Value | 
+----------------------------+-------------------+ 
| name | ag1.web | 
| ram | 1024 | 
| OS-FLV-DISABLED:disabled| False | 
| vcpus| 1 | 
| extra_specs| {u'web': u'true'} | 
| swap | | 
| os-flavor-access:is_public| True | 
| rxtx_factor| 1.0 | 
| OS-FLV-EXT-DATA:ephemeral| 0 | 
| disk | 10 | 
| id | 6 | 
+----------------------------+-------------------+ 
$ nova flavor-show 7 
+----------------------------+-------------------+ 
| Property | Value | 
+----------------------------+-------------------+ 
| name | ag1.db | 
| ram | 1024 | 
| OS-FLV-DISABLED:disabled| False | 
| vcpus| 1 | 
| extra_specs| {u'db': u'true'} | 
| swap | | 
| os-flavor-access:is_public| True | 
| rxtx_factor| 1.0 | 
| OS-FLV-EXT-DATA:ephemeral| 0 | 
| disk | 20 | 
| id | 7 | 
+----------------------------+-------------------+
インスタンスの起動 
• 
作成したFlavorを指定することで任意のHostAggregateを指定 できるようになる。 
• 
ただし、ユーザからはHostAggregate(起動させるコンピュー トノード)を意識することはできず、あくまでFlavorを選択して いるだけに過ぎない。 
$ nova boot --flavor ag1.web--image IMAGE_UUID --num-instances 10  
--security-groups default --nicNW_UUID cirros 
$ sudo nova-manage vm list 2> /dev/null 
instance node type state 
cirros-afa67382-7fc2-43b8-afbd-e2c42f972a96 com002 ag1.webactive 
cirros-dabf3e5c-e501-4c3a-98f8-24ea13711a3a com001 ag1.webactive 
cirros-dd5441e6-2e66-4dca-8fb4-77552a8a37a8 com002 ag1.webactive 
(省略) 
・・・ 
・・・ 
・・・
nova コマンドによる設定(参考) 
• 
作成したHostAggregateを削除する。 
• 
usage: nova aggregate-remove-host <aggregate> <host> 
• 
以下の順番でHostAggregateに関係する設定を削除する 
1. 
Flavor削除する 
2. 
HostAggregateとホストの関連付けを解除する 
3. 
HostAggregate削除する
AailabilityZoneの利用
AailabilityZoneの利用 
• 
AvailabilityZoneを利用するためのコマンドについて解説を行う。 
• 
設定は管理者権限を持つユーザで行う。 
• 
一般ユーザは一部の情報について参照だけが行える。 
• 
AvailabilityZoneはNovaインストール時に、 
• 
internal_service_availability_zoneで定義されたゾーンが作成される。 
• 
default_availability_zoneで定義されたゾーンがデフォルトで作成される。 
internal_service_availability_zone 
(internal) 
nova-cert, nova-conductor, nova-scheduler, nova- consoleauth 
など 
default_availability_zone 
(nova) 
nova-compute
AailabilityZoneの利用 
• 
nova boot時、自動的に選択されるゾーンは default_schedule_zoneで指定する。 
• 
存在しないゾーンを指定しているまたはゾーンを指定していない場合 はインスタンス作成時にエラーとなる。 
• 
NovaのAvailabilityZoneとCinderのAvailabilityZoneが異なっ てもボリュームをアタッチできるようにするには cinder_cross_az_attach=trueを指定する
AailabilityZoneの利用 
$ nova availability-zone-list 
+------+-----------+ 
| Name | Status | 
+------+-----------+ 
| nova | available | 
+------+-----------+ 
一般
AailabilityZoneの利用 
$ nova availability-zone-list 
+-----------------------+----------------------------------------+ 
| Name | Status | 
+-----------------------+----------------------------------------+ 
| internal | available | 
| |-ctrl001 | | 
| | |-nova-conductor | enabled :-) 2014-08-06T06:13:40.000000 | 
| | |-nova-cert | enabled :-) 2014-08-06T06:13:42.000000 | 
| | |-nova-consoleauth| enabled :-) 2014-08-06T06:13:43.000000 | 
| | |-nova-scheduler | enabled :-) 2014-08-06T06:13:43.000000 | 
| nova | available | 
| |-com003 | | 
| | |-nova-compute | enabled :-) 2014-08-06T06:13:38.000000 | 
| |-com002 | | 
| | |-nova-compute | enabled :-) 2014-08-06T06:13:40.000000 | 
| |-com001 | | 
| | |-nova-compute | enabled :-) 2014-08-06T06:13:39.000000 | 
| |-com004 | | 
| | |-nova-compute | enabled :-) 2014-08-06T06:13:45.000000 | 
+-----------------------+----------------------------------------+ 
admin
ag-zone02 
ag-zone01 
AailabilityZoneの利用 
• 
参考に以下のような構成でAvailabilityZoneを作成する。 
• 
2つのAvailabilityZoneを作成し、それぞれのAvailabilityZone に2台のコンピュートノードを紐付ける。 
com001 
com002 
com003 
com004 
ag1-az1 
ag2-az2
nova コマンドによる設定(1/2) 
• 
AvailabilityZoneを定義する 
• 
usage: nova aggregate-create <name> [<availability-zone>] 
• 
HostAggregate作成時、HostAggregate名とあわせて AvailabilityZone名を指定することでAvailabilityZoneが作成される。 
• 
AvailabilityZoneの作成にaggregate-createを利用しているが、 これはAvailabilityZoneの機能がHostAggregateに統合された ためである。
nova コマンドによる設定(1/2) 
$ nova aggregate-create ag1-az1 ag-zone01 
$ nova aggregate-create ag2-az2 ag-zone02 
$ nova aggregate-list 
+----+---------+-------------------+ 
| Id | Name | Availability Zone | 
+----+---------+-------------------+ 
| 3 | ag1-az1 | ag-zone01 | 
| 4 | ag2-az2 | ag-zone02 | 
+----+---------+-------------------+
nova コマンドによる設定(2/2) 
• 
作成したHostAggregateとホストを紐付ける 
• 
usage: nova aggregate-add-host <aggregate> <host> 
• 
ここでは、AG ID(AGNameでも可)とホスト名を指定する。 
• 
ホスト名はnova-manage service list で表示されるホスト名 
$ nova aggregate-add-host 3 com001 
$ nova aggregate-add-host 3 com002 
$ nova aggregate-add-host 4 com003 
$ nova aggregate-add-host 4 com004
nova コマンドによる設定(2/2) 
$ nova aggregate-details 3 
$ nova aggregate-details 4 
+----+---------+-------------------+------------------------+--------------------------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+------------------------+--------------------------------------+ 
| 3 | ag1-az1 | ag-zone01 | [u'com001', u'com002'] | {u'availability_zone': u'ag-zone01'} | 
| 4 | ag2-az2 | ag-zone02 | [u'com003', u'com004'] | {u'availability_zone': u'ag-zone02'} | 
+----+---------+-------------------+------------------------+--------------------------------------+ 
※出力をまとめている。実際は指定したHostAggregateのみを表示する
nova コマンドによる設定(2/2) 
$ nova availability-zone-list 
+-----------------------+----------------------------------------+ 
| Name | Status | 
+-----------------------+----------------------------------------+ 
| internal | available | 
| |-ctrl001 | | 
| | |-nova-conductor | enabled :-) 2014-01-16T07:26:41.000000 | 
| | |-nova-cert | enabled :-) 2014-01-16T07:26:36.000000 | 
| | |-nova-consoleauth| enabled :-) 2014-01-16T07:26:36.000000 | 
| | |-nova-scheduler | enabled :-) 2014-01-16T07:26:36.000000 | 
| ag-zone01 | available | 
| |-com002 | | 
| | |-nova-compute | enabled :-) 2014-01-16T07:26:41.000000 | 
| |-com001 | | 
| | |-nova-compute | enabled :-) 2014-01-16T07:26:40.000000 | 
| ag-zone02 | available | 
| |-com003 | | 
| | |-nova-compute | enabled :-) 2014-01-16T07:26:39.000000 | 
| |-com004 | | 
| | |-nova-compute | enabled :-) 2014-01-16T07:26:36.000000 | 
+-----------------------+----------------------------------------+
インスタンスの起動 
• 
HostAggregateとは異なり、flavorは関係しない。 
• 
ただし、Zone を指定する必要がある。 
$ nova boot --flavor m1.tiny --image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone01cirros 
$ sudo nova-manage vm list 2> /dev/null 
instance node (省略) zone 
cirros-0cf0c695-2797-4c86-8daf-78f951735b9e com002 ・・・ag-zone01 
cirros-37d253bd-24e1-49d5-89e5-4e16fd2d45a3 com001・・・ag-zone01 
cirros-5b433557-7812-4c78-90f9-262b3c062563 com002・・・ag-zone01 
cirros-1623d65b-1359-4284-a737-b96e02baaa89 com001 ・・・ag-zone01
インスタンスの起動 
$ nova boot --flavor m1.tiny --image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone02cirros 
$ sudo nova-manage vm list 2> /dev/null 
instance node (省略) zone 
cirros-57e139aa-664b-439b-846a-2319885fe7e5 com004・・・ag-zone02 
cirros-7507c166-d0dc-4e27-a1ff-1f730922383f com003 ・・・ag-zone02 
cirros-be65cc97-fd7e-433c-bf9f-7ea44f0169e5 com004 ・・・ag-zone02 
cirros-79bee77d-90bf-44f7-a656-6360d25c368f com003 ・・・ag-zone02 
• 
ゾーンを指定しない場合は、default_schedule_zoneで指定したゾーン が自動的に選択される。 
• 
存在しないゾーンを指定した場合やdefault_schedule_zoneで指定した ゾーンが存在しない場合はエラーとなる。
AvailabilityZoneをまたがる HostAggregateの利用方法
AvailabilityZoneをまたがるHostAggregateの利用方法 
• 
HostAggregateはAvailabilityZoneをまたがることもできる。 
• 
FavorでHostAggregateを指定しつつ、AvailabilityZoneを指 定することで、指定したAvailabilityZone内で定義されている HostAggregateにだけインスタンスを配置することができる。
AvailabilityZoneをまたがるHostAggregateの利用方法 
• 
以下のような構成でAvailabilityZoneとHostAggregateを作成する。 
• 
2つのAvailabilityZoneを作成し、それぞれのAvailabilityZoneに2台 のコンピュートノードを紐付ける。 
• 
HostAggregate(ag1-web)を作成し、全ノードと紐付ける。 
ag-zone02 
ag-zone01 
com001 
com002 
com003 
com004 
ag1-az01 
ag2-az02 
ag1-web
novaコマンドによる設定(1/4) 
• 
1つのHostAggregateを作成する。 
• 
2つのAvailabilityZoneを作成する。 
$ nova aggregate-create ag1-az01 ag-zone01 
$ nova aggregate-create ag2-az02 ag-zone02 
$ nova aggregate-create ag1-web
nova コマンドによる設定(2/4) 
• 
HostAggregate識別用のメタデータを付与する。 
• 
Flavorを作成し、HostAggregateと紐付ける。 
$ nova aggregate-set-metadata 5 web=true 
Aggregate 5 has been successfully updated. 
+----+---------+-------------------+-------+-------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+---------+-------------------+-------+-------------------+ 
| 5 | ag1-web | None | [] | {u'web': u'true'} | 
+----+---------+-------------------+-------+-------------------+ 
$ nova flavor-create ag1.web 6 1024 10 1
nova コマンドによる設定(3/4) 
• 
HostAggregateの状態を確認する。 
$ nova aggregate-details 5 
$ nova aggregate-details 6 
$ nova aggregate-details 7 
+----+----------+-------------------+-------+--------------------------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+----------+-------------------+-------+--------------------------------------+ 
| 5 | ag1-web | None | [] | {u'web': u'true'} | 
| 6 | ag1-az01 | ag-zone01 | [] | {u'availability_zone': u'ag-zone01'} | 
| 7 | ag2-az02 | ag-zone02 | [] | {u'availability_zone': u'ag-zone02'} | 
+----+----------+-------------------+-------+--------------------------------------+ 
※出力をまとめている。実際は指定したHostAggregateのみを表示する
nova コマンドによる設定(4/4) 
• 
HostAggregateとホストを関連付ける 
$ nova aggregate-add-host 5 com001 
$ nova aggregate-add-host 5 com002 
$ nova aggregate-add-host 5 com003 
$ nova aggregate-add-host 5 com004 
$ nova aggregate-add-host 6 com001 
$ nova aggregate-add-host 6 com002 
$ nova aggregate-add-host 7 com003 
$ nova aggregate-add-host 7 com004
nova コマンドによる設定(4/4) 
$ nova aggregate-details 5 
$ nova aggregate-details 6 
$ nova aggregate-details 7 
+----+----------+-------------------+----------------------------------------------+--------------- -----------------------+ 
| Id | Name | Availability Zone | Hosts | Metadata | 
+----+----------+-------------------+----------------------------------------------+--------------- -----------------------+ 
| 5 | ag1-web | None | [u'com001', u'com002', u'com003', u'com004'] | {u'web': u'true'} | 
| 6 | ag1-az01 | ag-zone01 | [u'com001', u'com002'] | {u'availability_zone': u'ag-zone01'} | 
| 7 | ag2-az02 | ag-zone02 | [u'com003', u'com004'] | {u'availability_zone': u'ag-zone02'} | 
+----+----------+-------------------+----------------------------------------------+--------------- -----------------------+
novaコマンドによる設定(4/4) 
$ nova availability-zone-list 
+-----------------------+----------------------------------------+ 
| Name | Status | 
+-----------------------+----------------------------------------+ 
| internal | available | 
| |-ctrl001 | | 
| | |-nova-conductor | enabled :-) 2014-08-06T08:08:31.000000 | 
| | |-nova-cert | enabled :-) 2014-08-06T08:08:38.000000 | 
| | |-nova-consoleauth| enabled :-) 2014-08-06T08:08:38.000000 | 
| | |-nova-scheduler | enabled :-) 2014-08-06T08:08:39.000000 | 
| ag-zone01 | available | 
| |-com002 | | 
| | |-nova-compute | enabled :-) 2014-08-06T08:08:31.000000 | 
| |-com001 | | 
| | |-nova-compute | enabled :-) 2014-08-06T08:08:31.000000 | 
| ag-zone02 | available | 
| |-com003 | | 
| | |-nova-compute | enabled :-) 2014-08-06T08:08:30.000000 | 
| |-com004 | | 
| | |-nova-compute | enabled :-) 2014-08-06T08:08:37.000000 | 
+-----------------------+----------------------------------------+
インスタンスの起動 
• 
Flavor: ag1.web と合わせてZone: ag-zone01 を指定した場 合はag1.web で定義されたホストかつag-zone01に属すホス トのどこかにインスタンスが作成される。 
$ nova boot --flavor ag1.web--image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone01cirros 
$ sudonova-manage vmlist 2> /dev/null 
instance node type zone 
cirros-9cf59ffe-2a31-48c4-b081-e2b732004b70 com002 ag1.webag-zone01 
cirros-f283608c-14f0-4da0-a02f-8147f7c044c6 com001 ag1.webag-zone01 
cirros-9594b32a-6ff8-43db-ada3-106494bc3b85 com002 ag1.webag-zone01 
cirros-03861c7d-a356-4e88-9acb-f1980e2ea942 com001 ag1.webag-zone01 
• 
指定したHostAggregateが存在しないAvailabilityZoneを選択 すると起動時エラーとなる。
Cinderにおける AvailabilityZone
CinderにおけるAvailabilityZone 
• 
CinderでもAvailabilityZoneが利用できる。 
• 
ただし、Nova程多くのことができるわけではない。 
• 
過去にNovaからForkした時の引き継いだものが残っているだけ? 
• 
Cinder AvailabilityZoneはコマンドから作成することができな い。 
• 
サービス認識時にcinder.conf内storage_availability_zone(初期値: nova)に指定されたものが作成される。 
• 
後から変更できるかどうかは不明。 
• 
データベースに向けてupdate文を直接実行する必要がある。?
Cinderの設定 
パラメータ 
初期値 
説明 
default_availability_zone 
(なし) 
ボリューム作成時、AvailabilityZoneを指定して いない場合にデフォルトで指定されるゾーン名。 
storage_availability_zone 
nova 
cinder-volumeが所属するAvailabilityZone。 
サービス認識時に自動的に作成される。 
コマンド等で後から変更はできない。 
• 
cinder.conf内でAvailabilityZoneの設定に関わるオプションは 以下の通り
AvailabilityZoneの確認 
• 
ノード: vol001 のstorage_availability_zoneにvol001を指定 した場合の出力は以下の通り 
$ cinder availability-zone-list 
+--------+-----------+ 
| Name | Status | 
+--------+-----------+ 
| vol001 | available | 
+--------+-----------+ 
$ sudocinder-manage host list 2> /dev/null 
host zone 
vol001 vol001
ボリュームの作成 
• 
cinder create の際、アベイラビリティゾーンを指定すること で狙ったゾーンに対してボリューム作成をすることができる。 
$ cinder create --availability-zone vol0011 
$ cinder show 7775727e-8ee5-417f-91a5-f680d2b2ff34 
+---------------------+--------------------------------------+ 
| Property | Value | 
+---------------------+--------------------------------------+ 
| attachments | [] | 
| availability_zone| vol001| 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 
| id | 7775727e-8ee5-417f-91a5-f680d2b2ff34 | 
| metadata | {} | 
| size | 1 | 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 
| status | available | 
| volume_type| None | 
+---------------------+--------------------------------------+
ボリュームの作成 
• 
--availability-zoneで指定したゾーンが存在しない場合はエ ラーとなる。 
• 
Horizonを使用した場合、AvailabilityZoneの指定ができずエ ラーになる。
Nova・Cinderの AvailabiltyZone連携
Nova・CinderのAvailabiltyZone連携 
• 
NovaとCinderのAvailabilityZoneが連携できる機能はただ1つ。 
• 
インスタンスが所属するAvailabilityZoneと ボリュームが所属するAvailabilityZoneが異なった場合、 アタッチを許可するか、拒否するか。だけである。 
• 
設定はnova.confで行う。 
パラメータ 
初期値 
説明 
cinder_cross_az_attach 
true 
コンピュートノードが所属するゾーンとcinder- volumeが所属するゾーンが異なった場合、Attache を許可/拒否する 
true:Attacheを許可する 
false: Attacheを拒否する
Nova・CinderのAvailabiltyZone連携 
• 
cidner_cross_az_attache=trueの場合 
• 
それぞれのAvailabilityZoneを評価しない。すべてAttache可能。 
Zone01 
Zone02 
Zone01 
Zone02 
Nova 
Cinder 
Attach
Nova・CinderのAvailabiltyZone連携 
• 
cidner_cross_az_attache=falseの場合 
• 
それぞれのAvailabilityZoneを評価し、ゾーンが異なる場合はエラーとなる。 
• 
[Wed Aug 06 07:43:19.809457 2014] [:error] [pid1647:tid 140731145422592] Recoverable error: Invalid volume: Instance and volume not in same availability_zone(HTTP 400) (Request-ID: req-f8dba15b-6617-4500-ba3c-089c41154943) 
Zone01 
Zone02 
Zone01 
Zone02 
Nova 
Cinder 
Attach
今後期待する機能
今後期待する機能 
• 
AvailabilityZoneの柔軟性向上 
• 
AvailabilityZone単位で活性化/非活性化 
• 
大規模障害時など、対象AvailabilityZoneへのアクセスを禁止する等 
• 
プロジェクト単位で見えるAvailabilityZoneを指定 
• 
AvailabilityZone単位のQuota設定 
• 
Cinderに全うなAvailabilityZone機能実装を! 
• 
AvailabilityZone単位で利用するネットワークを選択する(Neutron 連携)
おしまい

Contenu connexe

Tendances

OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27Kentaro Ebisawa
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...ksk_ha
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月VirtualTech Japan Inc.
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるKohei Tokunaga
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会Yuki Obara
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallAtsushi Tanaka
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1Etsuji Nakai
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要Etsuji Nakai
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみようTakashi Kajinami
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 

Tendances (20)

OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 

Similaire à AvailabilityZoneとHostAggregate

Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machinesirix_jp
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理Shinya Sugiyama
 
Japan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson EnvironmentJapan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson Environmentirix_jp
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001Takeshi Kuramochi
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較Shinya Sugiyama
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたTakashi Umeno
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Kazuki Takai
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介Kodai Terashima
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup irix_jp
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChefMasahiro NAKAYAMA
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価Dell TechCenter Japan
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 

Similaire à AvailabilityZoneとHostAggregate (20)

Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
 
Windows ✖︎ Docker
Windows ✖︎ DockerWindows ✖︎ Docker
Windows ✖︎ Docker
 
私とmysqlとROLE
私とmysqlとROLE私とmysqlとROLE
私とmysqlとROLE
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
 
Japan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson EnvironmentJapan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson Environment
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
12 cyberagent
12 cyberagent12 cyberagent
12 cyberagent
 
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較
 
OpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみたOpenStack Liberty をインストールしてみた
OpenStack Liberty をインストールしてみた
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
 
Riak事始め&デモ
Riak事始め&デモRiak事始め&デモ
Riak事始め&デモ
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 

Plus de Hiroki Ishikawa

OpenStackを体で操作する
OpenStackを体で操作するOpenStackを体で操作する
OpenStackを体で操作するHiroki Ishikawa
 
OpenStackの情報をどこから得ているのか
OpenStackの情報をどこから得ているのかOpenStackの情報をどこから得ているのか
OpenStackの情報をどこから得ているのかHiroki Ishikawa
 
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)Hiroki Ishikawa
 
気になるあのコにアタック☆
気になるあのコにアタック☆気になるあのコにアタック☆
気になるあのコにアタック☆Hiroki Ishikawa
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみたHiroki Ishikawa
 
rsyslog + SE-PostgreSQL = ???
rsyslog + SE-PostgreSQL = ???rsyslog + SE-PostgreSQL = ???
rsyslog + SE-PostgreSQL = ???Hiroki Ishikawa
 
hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版Hiroki Ishikawa
 
SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例Hiroki Ishikawa
 

Plus de Hiroki Ishikawa (14)

OpenStackを体で操作する
OpenStackを体で操作するOpenStackを体で操作する
OpenStackを体で操作する
 
Sesearch
SesearchSesearch
Sesearch
 
OpenStackの情報をどこから得ているのか
OpenStackの情報をどこから得ているのかOpenStackの情報をどこから得ているのか
OpenStackの情報をどこから得ているのか
 
AppArmorの話
AppArmorの話AppArmorの話
AppArmorの話
 
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
 
気になるあのコにアタック☆
気になるあのコにアタック☆気になるあのコにアタック☆
気になるあのコにアタック☆
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみた
 
OpenStack & SELinux
OpenStack & SELinuxOpenStack & SELinux
OpenStack & SELinux
 
rsyslog + SE-PostgreSQL = ???
rsyslog + SE-PostgreSQL = ???rsyslog + SE-PostgreSQL = ???
rsyslog + SE-PostgreSQL = ???
 
hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版
 
SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例
 
Cms on SELinux
Cms on SELinuxCms on SELinux
Cms on SELinux
 
SystemTapで何か
SystemTapで何かSystemTapで何か
SystemTapで何か
 
(F15)File Capability
(F15)File Capability(F15)File Capability
(F15)File Capability
 

Dernier

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Dernier (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

AvailabilityZoneとHostAggregate

  • 2. はじめに • 本資料作成にあたり日本OpenStackユーザ会会長中島倫明様 の資料を参考にさせていただきました。ありがとうございまし た。 •http://www.slideshare.net/irix_jp/josug-13thstudyregionandazahcells-v2 • 本資料はHavana時点での検証をまとめたものです。Icehouse, Junoでは 本内容と動作・仕様が異なる場合があります。 • 分散環境の対象はAvailabilityZone, HostAggregateのみとし、Region, Cellについて対象外としています。
  • 3. もくじ • OpenStackにおける分散環境の区分 • AvailabiltyZoneとHostAggregateの概要 • Novaの設定 • HostAggregateの利用方法 • AvailabilityZoneの利用方法 • AvailabilityZoneをまたがるHostAggregateの利用方法 • CinderにおけるAvailabilityZone • Nova・CinderのAvailabiltyZone連携 • 未検証の事項について • 今後期待する機能
  • 4. OpenStackにおける分散環境の区分 1. OpenStackそのものの分散 • 複数のOpenStackが別サイトで存在する。 • コンピュートをはじめ、ネットワーク、イメージ共有、認証、 AMQP、データベースなどが分散される。 • Region やCell 2. 仮想マシンの分散 • ネットワーク、認証、AMQP、データベースはそのままに、 コンピュートだけが分散される。 • 分散の対象はコンピュートノード • Availability Zone (AZ) やHost Aggregate (AG) • 主にNovaに実装された機能 対象
  • 5. RegionOne RegionTwo ・Nova ・Glance ・Keystone など ・MySQL ・RabbitMQ ・Memcached Shared Nothing TopCell nova-api Glance Keystone nova-cell DB Child Cells1 AMQP nova-cell Child Cells2 AMQP Grandchild Cells AMQP DB AMQP DB nova- scheduler AZ1 AZ2 compute compute compute compute compute compute compute compute AG1 AG3 AG2
  • 6. AvailabiltyZoneの概要 • 管理者が明示的に指定する • ユーザは定義済みのAZを利用し、仮想マシンの配置先を指定する。 • OpenStackクラスタ(リージョン)内での仮想マシンの配置を ユーザが選択できるようにする。 • 例えば、ラック単位、フロア単位、データセンター単位 3F (AZ3) 2F (AZ2) 第2DC RACK1 (AZ22A) 第2DC RACK2 (AZ22B)
  • 7. HostAggregateの概要 • 管理者が明示的に指定する。 • リージョン内で仮想マシンの配置に法則を与える。 • どのマシンに配置するかをユーザは意識をしない。 • インスタンスタイプを決めるだけで良い。 • 例えば、「チープなサーバ群とハイスペックなサーバ群の分割」 や「ハイパーバイザでの分割」 AG1 AG2 AG3 KVM: ロースペック KVM: ハイペック VMWare
  • 8. Novaの設定 • AvailabilityZibe, HostAggregateはどちらもスケジューラを利用する。 • スケジューラのフィルタを設定することで利用可能になる。 • nova.conf内、scheduler_default_filtersを設定 • 初期値 • 変更 • 初期値のComputeCapabilitiesFilterを指定しているとHostAggregate設定 時エラーとなる。 scheduler_default_filters=RetryFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,AvailabilityZoneFilter scheduler_default_filters=RetryFilter,RamFilter,ComputeFilter,ImagePropertiesFilter,AvailabilityZoneFilter,AggregateInstanceExtraSpecsFilter
  • 9. Novaの設定 • nova.conf内でAvailabilityZone, HostAggregateの設定に関わる オプションは以下の通り パラメータ 初期値 説明 internal_service_availability_zone internal インターナルサービスのデフォルトゾーン nova-consoleauthなどのデフォルトゾーン名 default_availability_zone nova コンピュートノードのデフォルトゾーン名 default_schedule_zone (なし) ゾーンを指定していない場合に指定されるゾーン名 nova boot 時、ゾーンを指定しなければこのゾーンが 利用される ゾーンが複数ある場合、ゾーン名を指定しないとエ ラーになる cinder_cross_az_attach true コンピュートノードが所属するゾーンとcinder- volumeが所属するゾーンが異なった場合、Attache を許可/拒否する true:Attacheを許可する false: Attacheを拒否する
  • 11. HostAggregateの利用 • HostAggregateを利用するためのコマンドについて解説を行う。 • 全ての操作はadmin roleを持ったユーザで行う。 • 一般ユーザは設定・参照を行えない。 $ nova aggregate-list ERROR: Policy doesn‘t allow compute_extension:aggregatesto be performed. (HTTP 403) (Request-ID: req-c56d3e53-231c-41d3-8a4c-80d8a1cb48aa) $ nova aggregate-list +----+---------+-------------------+ | Id | Name | Availability Zone | +----+---------+-------------------+ | 1 | ag1-web | None | +----+---------+-------------------+ 一般 admin
  • 12. zone name: nova HostAggregateの利用 • 参考に以下のような構成でHostAggregateを作成する。 • Web用AGとDB用AGを作成し、それぞれのHostAggregateに2 台のコンピュートノードを紐付ける。 ag1-web ag1-db com001 com002 com003 com004
  • 13. nova コマンドによる設定(1/6) • 任意のHostAggregateを作成する • usage: nova aggregate-create <name> [<availability-zone>] • ここではWeb用HostAggregateとDB用HostAggregateを作成する $ nova aggregate-create ag1-web $ nova aggregate-create ag1-db +----+---------+-------------------+-------+----------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+-------+----------+ | 1 | ag1-web | None | [] | {} | | 2 | ag1-db | None | [] | {} | +----+---------+-------------------+-------+----------+
  • 14. nova コマンドによる設定(2/6) • 作成したHostAggregateとホストを紐付ける • usage: nova aggregate-add-host <aggregate> <host> • ここでは、AG ID(AGNameでも可)とホスト名を指定する。 • ホスト名はnova-manage service list で表示されるホスト名 $ nova aggregate-add-host 1 com001 $ nova aggregate-add-host 1 com002 $ nova aggregate-add-host 2 com003 $ nova aggregate-add-host 2 com004 +----+---------+-------------------+------------------------+----------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+------------------------+----------+ | 1 | ag1-web | None | [u'com001', u'com002'] | {} | | 2 | ag1-db | None | [u'com003', u'com004'] | {} | +----+---------+-------------------+------------------------+----------+ ※ nova aggregate-detailsの結果を参考に出力した
  • 15. nova コマンドによる設定(3/6) • HostAggregateを識別するためのメタデータを設定する • usage: nova aggregate-set-metadata <aggregate> <key=value> [<key=value> ...] $ nova aggregate-set-metadata 1 web=true $ nova aggregate-set-metadata 2 db=true Aggregate 2 has been successfully updated. +----+---------+-------------------+------------------------+-------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+------------------------+-------------------+ | 1 | ag1-web | None | [u'com001', u'com002'] | {u'web': u'true'} | | 2 | ag1-db | None | [u'com003', u'com004'] | {u'db': u'true'} | +----+---------+-------------------+------------------------+-------------------+
  • 16. nova コマンドによる設定(4/6) • HostAggregateの詳細情報を表示する • usage: nova aggregate-details <aggregate> $ nova aggregate-details ag1-web $ nova aggregate-details ag1-db +----+---------+-------------------+------------------------+-------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+------------------------+-------------------+ | 1 | ag1-web | None | [u'com001', u'com002'] | {u'web': u'true'} | | 2 | ag1-db | None | [u'com003', u'com004'] | {u'db': u'true'} | +----+---------+-------------------+------------------------+-------------------+ ※出力をまとめている。実際は指定したHostAggregateのみを表示する。
  • 17. nova コマンドによる設定(5/6) • HostAggregate用のFlavorを作成する • usage: nova flavor-create [--ephemeral <ephemeral>] [--swap <swap>] [--rxtx-factor <factor>] [--is-public <is-public>] <name> <id> <ram> <disk> <vcpus>
  • 18. nova コマンドによる設定(5/6) $ nova flavor-create ag1.web 6 1024 10 1 $ nova flavor-create ag1.db 7 1024 20 1 +----+---------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB| Disk | Ephemeral | Swap | VCPUs | RXTX_Factor| Is_Public| +----+---------+-----------+------+-----------+------+-------+-------------+-----------+ | 6 | ag1.web | 1024 | 10 | 0 | | 1 | 1.0 | True | | 7 | ag1.db | 1024 | 20 | 0 | | 1 | 1.0 | True | +----+---------+-----------+------+-----------+------+-------+-------------+-----------+ $ nova flavor-list +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB| Disk | Ephemeral | Swap | VCPUs | RXTX_Factor| Is_Public| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | 6 | ag1.web | 1024 | 10 | 0 | | 1 | 1.0 | True | | 7 | ag1.db | 1024 | 20 | 0 | | 1 | 1.0 | True | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
  • 19. nova コマンドによる設定(6/6) • 作成したHostAggregateとFlavorを関連付ける。 • AG:メタデータとFlavorのキー同士を関連付けることができる。 • usage: nova flavor-key <flavor> <action> <key=value> [<key=value> ...] • Flavorを選択すると同時に定義したHostAggregateを利用する ように設定を行う。 • Flavorにkeyをセットすることで、ユーザがFlavorを指定するだけで事 前に定義したHostAggregateが自動的に選択されるようになる。 • このkeyはHostAggregateのメタデータと比較が行われる。 $ nova flavor-key 6 set web=true $ nova flavor-key 7 set db=true
  • 20. nova コマンドによる設定(6/6) $ nova flavor-show 6 +----------------------------+-------------------+ | Property | Value | +----------------------------+-------------------+ | name | ag1.web | | ram | 1024 | | OS-FLV-DISABLED:disabled| False | | vcpus| 1 | | extra_specs| {u'web': u'true'} | | swap | | | os-flavor-access:is_public| True | | rxtx_factor| 1.0 | | OS-FLV-EXT-DATA:ephemeral| 0 | | disk | 10 | | id | 6 | +----------------------------+-------------------+ $ nova flavor-show 7 +----------------------------+-------------------+ | Property | Value | +----------------------------+-------------------+ | name | ag1.db | | ram | 1024 | | OS-FLV-DISABLED:disabled| False | | vcpus| 1 | | extra_specs| {u'db': u'true'} | | swap | | | os-flavor-access:is_public| True | | rxtx_factor| 1.0 | | OS-FLV-EXT-DATA:ephemeral| 0 | | disk | 20 | | id | 7 | +----------------------------+-------------------+
  • 21. インスタンスの起動 • 作成したFlavorを指定することで任意のHostAggregateを指定 できるようになる。 • ただし、ユーザからはHostAggregate(起動させるコンピュー トノード)を意識することはできず、あくまでFlavorを選択して いるだけに過ぎない。 $ nova boot --flavor ag1.web--image IMAGE_UUID --num-instances 10 --security-groups default --nicNW_UUID cirros $ sudo nova-manage vm list 2> /dev/null instance node type state cirros-afa67382-7fc2-43b8-afbd-e2c42f972a96 com002 ag1.webactive cirros-dabf3e5c-e501-4c3a-98f8-24ea13711a3a com001 ag1.webactive cirros-dd5441e6-2e66-4dca-8fb4-77552a8a37a8 com002 ag1.webactive (省略) ・・・ ・・・ ・・・
  • 22. nova コマンドによる設定(参考) • 作成したHostAggregateを削除する。 • usage: nova aggregate-remove-host <aggregate> <host> • 以下の順番でHostAggregateに関係する設定を削除する 1. Flavor削除する 2. HostAggregateとホストの関連付けを解除する 3. HostAggregate削除する
  • 24. AailabilityZoneの利用 • AvailabilityZoneを利用するためのコマンドについて解説を行う。 • 設定は管理者権限を持つユーザで行う。 • 一般ユーザは一部の情報について参照だけが行える。 • AvailabilityZoneはNovaインストール時に、 • internal_service_availability_zoneで定義されたゾーンが作成される。 • default_availability_zoneで定義されたゾーンがデフォルトで作成される。 internal_service_availability_zone (internal) nova-cert, nova-conductor, nova-scheduler, nova- consoleauth など default_availability_zone (nova) nova-compute
  • 25. AailabilityZoneの利用 • nova boot時、自動的に選択されるゾーンは default_schedule_zoneで指定する。 • 存在しないゾーンを指定しているまたはゾーンを指定していない場合 はインスタンス作成時にエラーとなる。 • NovaのAvailabilityZoneとCinderのAvailabilityZoneが異なっ てもボリュームをアタッチできるようにするには cinder_cross_az_attach=trueを指定する
  • 26. AailabilityZoneの利用 $ nova availability-zone-list +------+-----------+ | Name | Status | +------+-----------+ | nova | available | +------+-----------+ 一般
  • 27. AailabilityZoneの利用 $ nova availability-zone-list +-----------------------+----------------------------------------+ | Name | Status | +-----------------------+----------------------------------------+ | internal | available | | |-ctrl001 | | | | |-nova-conductor | enabled :-) 2014-08-06T06:13:40.000000 | | | |-nova-cert | enabled :-) 2014-08-06T06:13:42.000000 | | | |-nova-consoleauth| enabled :-) 2014-08-06T06:13:43.000000 | | | |-nova-scheduler | enabled :-) 2014-08-06T06:13:43.000000 | | nova | available | | |-com003 | | | | |-nova-compute | enabled :-) 2014-08-06T06:13:38.000000 | | |-com002 | | | | |-nova-compute | enabled :-) 2014-08-06T06:13:40.000000 | | |-com001 | | | | |-nova-compute | enabled :-) 2014-08-06T06:13:39.000000 | | |-com004 | | | | |-nova-compute | enabled :-) 2014-08-06T06:13:45.000000 | +-----------------------+----------------------------------------+ admin
  • 28. ag-zone02 ag-zone01 AailabilityZoneの利用 • 参考に以下のような構成でAvailabilityZoneを作成する。 • 2つのAvailabilityZoneを作成し、それぞれのAvailabilityZone に2台のコンピュートノードを紐付ける。 com001 com002 com003 com004 ag1-az1 ag2-az2
  • 29. nova コマンドによる設定(1/2) • AvailabilityZoneを定義する • usage: nova aggregate-create <name> [<availability-zone>] • HostAggregate作成時、HostAggregate名とあわせて AvailabilityZone名を指定することでAvailabilityZoneが作成される。 • AvailabilityZoneの作成にaggregate-createを利用しているが、 これはAvailabilityZoneの機能がHostAggregateに統合された ためである。
  • 30. nova コマンドによる設定(1/2) $ nova aggregate-create ag1-az1 ag-zone01 $ nova aggregate-create ag2-az2 ag-zone02 $ nova aggregate-list +----+---------+-------------------+ | Id | Name | Availability Zone | +----+---------+-------------------+ | 3 | ag1-az1 | ag-zone01 | | 4 | ag2-az2 | ag-zone02 | +----+---------+-------------------+
  • 31. nova コマンドによる設定(2/2) • 作成したHostAggregateとホストを紐付ける • usage: nova aggregate-add-host <aggregate> <host> • ここでは、AG ID(AGNameでも可)とホスト名を指定する。 • ホスト名はnova-manage service list で表示されるホスト名 $ nova aggregate-add-host 3 com001 $ nova aggregate-add-host 3 com002 $ nova aggregate-add-host 4 com003 $ nova aggregate-add-host 4 com004
  • 32. nova コマンドによる設定(2/2) $ nova aggregate-details 3 $ nova aggregate-details 4 +----+---------+-------------------+------------------------+--------------------------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+------------------------+--------------------------------------+ | 3 | ag1-az1 | ag-zone01 | [u'com001', u'com002'] | {u'availability_zone': u'ag-zone01'} | | 4 | ag2-az2 | ag-zone02 | [u'com003', u'com004'] | {u'availability_zone': u'ag-zone02'} | +----+---------+-------------------+------------------------+--------------------------------------+ ※出力をまとめている。実際は指定したHostAggregateのみを表示する
  • 33. nova コマンドによる設定(2/2) $ nova availability-zone-list +-----------------------+----------------------------------------+ | Name | Status | +-----------------------+----------------------------------------+ | internal | available | | |-ctrl001 | | | | |-nova-conductor | enabled :-) 2014-01-16T07:26:41.000000 | | | |-nova-cert | enabled :-) 2014-01-16T07:26:36.000000 | | | |-nova-consoleauth| enabled :-) 2014-01-16T07:26:36.000000 | | | |-nova-scheduler | enabled :-) 2014-01-16T07:26:36.000000 | | ag-zone01 | available | | |-com002 | | | | |-nova-compute | enabled :-) 2014-01-16T07:26:41.000000 | | |-com001 | | | | |-nova-compute | enabled :-) 2014-01-16T07:26:40.000000 | | ag-zone02 | available | | |-com003 | | | | |-nova-compute | enabled :-) 2014-01-16T07:26:39.000000 | | |-com004 | | | | |-nova-compute | enabled :-) 2014-01-16T07:26:36.000000 | +-----------------------+----------------------------------------+
  • 34. インスタンスの起動 • HostAggregateとは異なり、flavorは関係しない。 • ただし、Zone を指定する必要がある。 $ nova boot --flavor m1.tiny --image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone01cirros $ sudo nova-manage vm list 2> /dev/null instance node (省略) zone cirros-0cf0c695-2797-4c86-8daf-78f951735b9e com002 ・・・ag-zone01 cirros-37d253bd-24e1-49d5-89e5-4e16fd2d45a3 com001・・・ag-zone01 cirros-5b433557-7812-4c78-90f9-262b3c062563 com002・・・ag-zone01 cirros-1623d65b-1359-4284-a737-b96e02baaa89 com001 ・・・ag-zone01
  • 35. インスタンスの起動 $ nova boot --flavor m1.tiny --image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone02cirros $ sudo nova-manage vm list 2> /dev/null instance node (省略) zone cirros-57e139aa-664b-439b-846a-2319885fe7e5 com004・・・ag-zone02 cirros-7507c166-d0dc-4e27-a1ff-1f730922383f com003 ・・・ag-zone02 cirros-be65cc97-fd7e-433c-bf9f-7ea44f0169e5 com004 ・・・ag-zone02 cirros-79bee77d-90bf-44f7-a656-6360d25c368f com003 ・・・ag-zone02 • ゾーンを指定しない場合は、default_schedule_zoneで指定したゾーン が自動的に選択される。 • 存在しないゾーンを指定した場合やdefault_schedule_zoneで指定した ゾーンが存在しない場合はエラーとなる。
  • 37. AvailabilityZoneをまたがるHostAggregateの利用方法 • HostAggregateはAvailabilityZoneをまたがることもできる。 • FavorでHostAggregateを指定しつつ、AvailabilityZoneを指 定することで、指定したAvailabilityZone内で定義されている HostAggregateにだけインスタンスを配置することができる。
  • 38. AvailabilityZoneをまたがるHostAggregateの利用方法 • 以下のような構成でAvailabilityZoneとHostAggregateを作成する。 • 2つのAvailabilityZoneを作成し、それぞれのAvailabilityZoneに2台 のコンピュートノードを紐付ける。 • HostAggregate(ag1-web)を作成し、全ノードと紐付ける。 ag-zone02 ag-zone01 com001 com002 com003 com004 ag1-az01 ag2-az02 ag1-web
  • 39. novaコマンドによる設定(1/4) • 1つのHostAggregateを作成する。 • 2つのAvailabilityZoneを作成する。 $ nova aggregate-create ag1-az01 ag-zone01 $ nova aggregate-create ag2-az02 ag-zone02 $ nova aggregate-create ag1-web
  • 40. nova コマンドによる設定(2/4) • HostAggregate識別用のメタデータを付与する。 • Flavorを作成し、HostAggregateと紐付ける。 $ nova aggregate-set-metadata 5 web=true Aggregate 5 has been successfully updated. +----+---------+-------------------+-------+-------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+-------+-------------------+ | 5 | ag1-web | None | [] | {u'web': u'true'} | +----+---------+-------------------+-------+-------------------+ $ nova flavor-create ag1.web 6 1024 10 1
  • 41. nova コマンドによる設定(3/4) • HostAggregateの状態を確認する。 $ nova aggregate-details 5 $ nova aggregate-details 6 $ nova aggregate-details 7 +----+----------+-------------------+-------+--------------------------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+----------+-------------------+-------+--------------------------------------+ | 5 | ag1-web | None | [] | {u'web': u'true'} | | 6 | ag1-az01 | ag-zone01 | [] | {u'availability_zone': u'ag-zone01'} | | 7 | ag2-az02 | ag-zone02 | [] | {u'availability_zone': u'ag-zone02'} | +----+----------+-------------------+-------+--------------------------------------+ ※出力をまとめている。実際は指定したHostAggregateのみを表示する
  • 42. nova コマンドによる設定(4/4) • HostAggregateとホストを関連付ける $ nova aggregate-add-host 5 com001 $ nova aggregate-add-host 5 com002 $ nova aggregate-add-host 5 com003 $ nova aggregate-add-host 5 com004 $ nova aggregate-add-host 6 com001 $ nova aggregate-add-host 6 com002 $ nova aggregate-add-host 7 com003 $ nova aggregate-add-host 7 com004
  • 43. nova コマンドによる設定(4/4) $ nova aggregate-details 5 $ nova aggregate-details 6 $ nova aggregate-details 7 +----+----------+-------------------+----------------------------------------------+--------------- -----------------------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+----------+-------------------+----------------------------------------------+--------------- -----------------------+ | 5 | ag1-web | None | [u'com001', u'com002', u'com003', u'com004'] | {u'web': u'true'} | | 6 | ag1-az01 | ag-zone01 | [u'com001', u'com002'] | {u'availability_zone': u'ag-zone01'} | | 7 | ag2-az02 | ag-zone02 | [u'com003', u'com004'] | {u'availability_zone': u'ag-zone02'} | +----+----------+-------------------+----------------------------------------------+--------------- -----------------------+
  • 44. novaコマンドによる設定(4/4) $ nova availability-zone-list +-----------------------+----------------------------------------+ | Name | Status | +-----------------------+----------------------------------------+ | internal | available | | |-ctrl001 | | | | |-nova-conductor | enabled :-) 2014-08-06T08:08:31.000000 | | | |-nova-cert | enabled :-) 2014-08-06T08:08:38.000000 | | | |-nova-consoleauth| enabled :-) 2014-08-06T08:08:38.000000 | | | |-nova-scheduler | enabled :-) 2014-08-06T08:08:39.000000 | | ag-zone01 | available | | |-com002 | | | | |-nova-compute | enabled :-) 2014-08-06T08:08:31.000000 | | |-com001 | | | | |-nova-compute | enabled :-) 2014-08-06T08:08:31.000000 | | ag-zone02 | available | | |-com003 | | | | |-nova-compute | enabled :-) 2014-08-06T08:08:30.000000 | | |-com004 | | | | |-nova-compute | enabled :-) 2014-08-06T08:08:37.000000 | +-----------------------+----------------------------------------+
  • 45. インスタンスの起動 • Flavor: ag1.web と合わせてZone: ag-zone01 を指定した場 合はag1.web で定義されたホストかつag-zone01に属すホス トのどこかにインスタンスが作成される。 $ nova boot --flavor ag1.web--image IMAGE_UUID --num-instances 10 --security- groups default --nicnet-id=NETWORK_UUID --availability-zone ag-zone01cirros $ sudonova-manage vmlist 2> /dev/null instance node type zone cirros-9cf59ffe-2a31-48c4-b081-e2b732004b70 com002 ag1.webag-zone01 cirros-f283608c-14f0-4da0-a02f-8147f7c044c6 com001 ag1.webag-zone01 cirros-9594b32a-6ff8-43db-ada3-106494bc3b85 com002 ag1.webag-zone01 cirros-03861c7d-a356-4e88-9acb-f1980e2ea942 com001 ag1.webag-zone01 • 指定したHostAggregateが存在しないAvailabilityZoneを選択 すると起動時エラーとなる。
  • 47. CinderにおけるAvailabilityZone • CinderでもAvailabilityZoneが利用できる。 • ただし、Nova程多くのことができるわけではない。 • 過去にNovaからForkした時の引き継いだものが残っているだけ? • Cinder AvailabilityZoneはコマンドから作成することができな い。 • サービス認識時にcinder.conf内storage_availability_zone(初期値: nova)に指定されたものが作成される。 • 後から変更できるかどうかは不明。 • データベースに向けてupdate文を直接実行する必要がある。?
  • 48. Cinderの設定 パラメータ 初期値 説明 default_availability_zone (なし) ボリューム作成時、AvailabilityZoneを指定して いない場合にデフォルトで指定されるゾーン名。 storage_availability_zone nova cinder-volumeが所属するAvailabilityZone。 サービス認識時に自動的に作成される。 コマンド等で後から変更はできない。 • cinder.conf内でAvailabilityZoneの設定に関わるオプションは 以下の通り
  • 49. AvailabilityZoneの確認 • ノード: vol001 のstorage_availability_zoneにvol001を指定 した場合の出力は以下の通り $ cinder availability-zone-list +--------+-----------+ | Name | Status | +--------+-----------+ | vol001 | available | +--------+-----------+ $ sudocinder-manage host list 2> /dev/null host zone vol001 vol001
  • 50. ボリュームの作成 • cinder create の際、アベイラビリティゾーンを指定すること で狙ったゾーンに対してボリューム作成をすることができる。 $ cinder create --availability-zone vol0011 $ cinder show 7775727e-8ee5-417f-91a5-f680d2b2ff34 +---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone| vol001| |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | id | 7775727e-8ee5-417f-91a5-f680d2b2ff34 | | metadata | {} | | size | 1 | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | status | available | | volume_type| None | +---------------------+--------------------------------------+
  • 51. ボリュームの作成 • --availability-zoneで指定したゾーンが存在しない場合はエ ラーとなる。 • Horizonを使用した場合、AvailabilityZoneの指定ができずエ ラーになる。
  • 53. Nova・CinderのAvailabiltyZone連携 • NovaとCinderのAvailabilityZoneが連携できる機能はただ1つ。 • インスタンスが所属するAvailabilityZoneと ボリュームが所属するAvailabilityZoneが異なった場合、 アタッチを許可するか、拒否するか。だけである。 • 設定はnova.confで行う。 パラメータ 初期値 説明 cinder_cross_az_attach true コンピュートノードが所属するゾーンとcinder- volumeが所属するゾーンが異なった場合、Attache を許可/拒否する true:Attacheを許可する false: Attacheを拒否する
  • 54. Nova・CinderのAvailabiltyZone連携 • cidner_cross_az_attache=trueの場合 • それぞれのAvailabilityZoneを評価しない。すべてAttache可能。 Zone01 Zone02 Zone01 Zone02 Nova Cinder Attach
  • 55. Nova・CinderのAvailabiltyZone連携 • cidner_cross_az_attache=falseの場合 • それぞれのAvailabilityZoneを評価し、ゾーンが異なる場合はエラーとなる。 • [Wed Aug 06 07:43:19.809457 2014] [:error] [pid1647:tid 140731145422592] Recoverable error: Invalid volume: Instance and volume not in same availability_zone(HTTP 400) (Request-ID: req-f8dba15b-6617-4500-ba3c-089c41154943) Zone01 Zone02 Zone01 Zone02 Nova Cinder Attach
  • 57. 今後期待する機能 • AvailabilityZoneの柔軟性向上 • AvailabilityZone単位で活性化/非活性化 • 大規模障害時など、対象AvailabilityZoneへのアクセスを禁止する等 • プロジェクト単位で見えるAvailabilityZoneを指定 • AvailabilityZone単位のQuota設定 • Cinderに全うなAvailabilityZone機能実装を! • AvailabilityZone単位で利用するネットワークを選択する(Neutron 連携)