Mais conteúdo relacionado Semelhante a AvailabilityZoneとHostAggregate (20) Mais de Hiroki Ishikawa (14) AvailabilityZoneとHostAggregate2. はじめに
•
本資料作成にあたり日本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で指定した ゾーンが存在しない場合はエラーとなる。 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 |
+---------------------+--------------------------------------+ 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 連携)