• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Control distribution of virtual machines
 

Control distribution of virtual machines

on

  • 7,832 views

 

Statistics

Views

Total Views
7,832
Views on SlideShare
2,877
Embed Views
4,955

Actions

Likes
12
Downloads
93
Comments
0

27 Embeds 4,955

http://aikotobaha.blogspot.jp 4710
http://aikotobaha.blogspot.com 71
http://feeds.feedburner.com 50
http://kidatti.livedoor.biz 35
http://cloud.feedly.com 21
http://reader.aol.com 12
http://aikotobaha.blogspot.kr 7
http://aikotobaha.blogspot.tw 6
http://aikotobaha.blogspot.com.br 5
http://8474111515162401850_6be57b053a18284975f5c27e04c08f148ac8153b.blogspot.in 5
http://digg.com 5
http://aikotobaha.blogspot.de 5
http://aikotobaha.blogspot.fr 3
http://aikotobaha.blogspot.co.il 3
http://webcache.googleusercontent.com 3
http://aikotobaha.blogspot.co.uk 2
http://8474111515162401850_6be57b053a18284975f5c27e04c08f148ac8153b.blogspot.com.br 2
http://aikotobaha.blogspot.in 1
http://news.google.com 1
https://www.google.co.jp 1
http://aikotobaha.blogspot.jp&_=1385205497559 HTTP 1
http://aikotobaha.blogspot.jp&_=1385204952254 HTTP 1
http://aikotobaha.blogspot.nl 1
http://cache.yahoofs.jp 1
http://aikotobaha.blogspot.sg 1
http://inoreader.com 1
http://www.feedspot.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Control distribution of virtual machines Control distribution of virtual machines Presentation Transcript

    • 1 2013.6.28 日本 OpenStack ユーザ会 @irix_jp openstackOpen source software to build public and private clouds. JOSUG 13th Study 仮想マシンの分散を制御する
    • 2 自己紹介 ● @irix_jp ● 日本 OpenStack ユーザ会 会長 ● クラウド利用促進機構 技術アドバイザー ● RedHat 認定アーキテクト ● 某 SIer 勤務 ● OSS を使ったクラウドサービスの企画・開発
    • 3 Grizzly 時点の OpenStack ● 分散環境を制御するための2つの視点 ● OpenStack そのものの分散 ● 仮想マシンの分散
    • 4 Grizzly 時点の OpenStack ● 分散環境を制御するための 4 つの手段 ● OpenStack そのものの分散 – Region – Cell ● 仮想マシンの分散 – Availability Zone – Host Aggregate
    • 5 Grizzly 時点の OpenStack ● 分散環境を制御するための 4 つの手段 ● OpenStack そのものの分散 – Region – Cell ● 仮想マシンの分散 – Availability Zone – Host Aggregate ここが主題
    • 6 分散環境の考慮点 ● OpenStack の分散を考える上で重要な項目 ● AMQP ブローカー・・・メッセージの交換範囲 ● データベース・・・構成管理情報の共有範囲 ● 仮想マシンの分散を考える上で重要な項目 ● スケジューラー( nova-scheduler )
    • 7 ● まずは 4 つの手法のおさらい
    • 8 Region ● 異なる 2 つの OpenStack クラスタの操作窓口を 一元化するためのもの ● メッセージ交換も構成管理情報も共有しない – MySQL の複製機能等で共有させることもできる Horzion で定義 Keystone で定義 |----------------------------------+-----------+-------------------------------------------------| | id | region | publicurl | |----------------------------------+-----------+-------------------------------------------------| | 13d5e2ec04b7477c993a574b9dba14f1 | RegionOne | http://192.168.1.111:5000/v2.0 | | 1f5e76c949c14b41baeb024b20c599f7 | RegionOne | http://192.168.1.111:8080/v1/AUTH_$(tenant_id)s | | 6be0db9b56294d44b33c2c2e1cd9e4a8 | RegionOne | http://192.168.1.111:8773/services/Cloud | | 973dad1531f04d4e9c9a9b85c98808d0 | RegionOne | http://192.168.1.111:8774/v2/$(tenant_id)s | | 9bfc854b8fd24c808160dcb1367c5cbb | RegionOne | http://192.168.1.111:9696/ | | d2108c60933343c0ad680562238b9f53 | RegionOne | http://192.168.1.111:9292 | | f164fecb28484ce38ffaaa69497fdbef | RegionOne | http://192.168.1.111:8776/v1/$(tenant_id)s | | 7fa3739ab8054cf7b612f5427cbfa897 | RegionTwo | http://192.168.1.222:5000/v2.0 | | e38690360a2848ec91c28cde8101393c | RegionTwo | http://192.168.1.222:8080/v1/AUTH_$(tenant_id)s | | cf05c1f5f3c04b3899af14b8e2edf08d | RegionTwo | http://192.168.1.222:8773/services/Cloud | | 1b80b77ce5b64483ad84887d8ca1bf13 | RegionTwo | http://192.168.1.222:8774/v2/$(tenant_id)s | | 558b80356f094534be3cbe087e70d257 | RegionTwo | http://192.168.1.222:9696/ | | 95b0a65d26d3448a83daf7b817337a0b | RegionTwo | http://192.168.1.222:9292 | | ea527718c5fb45c1aa5977aa94262593 | RegionTwo | http://192.168.1.222:8776/v1/$(tenant_id)s | +----------------------------------+-----------+-------------------------------------------------+
    • 9 Cell ● OpenStack クラスタ(リージョン)内に、複数の AMQP ブローカーと、データベースを持つための仕 組み ● 主に負荷の分散を目的 ● 大規模な OpenStack 環境を想定した機能 – コンピューティングノード 10,000 台 / リージョンくらい?? ● Grizzly 時点で Nova のみの実験的実装 – Newtron(Quantum), Cinder 等は未対応
    • 10 Host Aggregate ● OpenStack クラスタ内での仮想マシンの配置に管 理者が法則を与える ● 例) HyperVisor 種別、マシンスペック等 ● 管理者が定義するだけ、ユーザは意識しない
    • 11 Availability Zone ● OpenStack クラスタ内での仮想マシンの配置を ユーザが選択できるようにする ● 例)ラック間、マシンルーム間、 DC 間 等々 ● 管理者が定義し、ユーザは指定するだけ ● Host Aggregate をベースとした機能 – Folsom までは、別の機能として実装されていた。
    • 12 分散環境 AMQP nova-api keystone AMQP DB compute nova-cell scheduler nova-cell glance AMQP AMQP DB DB computecomputecompute computecomputecompute computecomputecompute computecomputecompute nova-api AMQP DB keystone scheduler glance compute Child Cells1 Child Cells2 Grandchild Cells Top Cell Region 1 Region 2 Shared Nothing horizon AG1 AG2 AG3 AG4 AZ1 AZ2 scheduler
    • 13 使い方 ● Host Aggregate ● Availability Zone
    • 14 Scheduler ● これらの管理をするのは全部、スケジューラー。 ● スケジューラーに様々なフィルターを適用すること で、仮想マシンの配置をコントロールできる。 nova.conf(for nova-schduler) scheduler_default_filters = AggregateInstanceExtraSpecsFilter,AvailabilityZ oneFilter,RamFilter,ComputeFilter スケジューラーの設定に関しては http://goo.gl/qTikE
    • 15 Host Aggregate $ source openrc admin admin $ nova aggregate-list +----+------+-------------------+ | Id | Name | Availability Zone | +----+------+-------------------+ +----+------+-------------------+ $ source openrc demo demo $ nova aggregate-list ERROR: Policy doesn't allow compute_extension:aggregates to be performed. (HTTP 403) (Request-ID: req-134ee1c2-2b1b-4a5c- a500-431964dc3490) 管理者 一般ユーザ
    • 16 Availability Zone $ source openrc admin admin $ nova availability-zone-list +-------------------------+----------------------------------------+ | Name | Status | +-------------------------+----------------------------------------+ | internal | available | | |- devstack1.opst.ne.jp | | | | |- nova-conductor | enabled :-) 2013-06-23T06:12:06.000000 | | | |- nova-consoleauth | enabled :-) 2013-06-23T06:12:04.000000 | | | |- nova-scheduler | enabled :-) 2013-06-23T06:12:04.000000 | | | |- nova-cert | enabled :-) 2013-06-23T06:12:12.000000 | | nova | available | | |- devstack1.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack8.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack3.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack9.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack2.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:06.000000 | | |- devstack5.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack4.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack6.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | | |- devstack7.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T06:12:10.000000 | +-------------------------+---------------------------------------- $ source openrc demo demo $ nova availability-zone-list +------+-----------+ | Name | Status | +------+-----------+ | nova | available | +------+-----------+ 管理者 一般ユーザ nova.conf(grizzly) default_availability_zone=nova nova.conf(folsom) node_availability_zone=nova
    • 17 Aggregate 想定環境 Openstack controller compute1 compute2 compute3 compute4 compute5 compute6 compute7 compute8 compute9 CPU 12core 24core 36core Mem 24GB 48GB 64GB Disk SATA SAS Array SSD Array Web 用 AP 用 DB 用
    • 18 Host Aggregate の定義 $ nova aggregate-create ag1-web +----+---------+-------------------+-------+----------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+---------+-------------------+-------+----------+ | 5 | ag1-web | None | | | +----+---------+-------------------+-------+----------+ $ nova aggregate-create ag2-ap +----+--------+-------------------+-------+----------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+--------+-------------------+-------+----------+ | 6 | ag2-ap | None | | | +----+--------+-------------------+-------+----------+ $ nova aggregate-create ag3-db +----+--------+-------------------+-------+----------+ | Id | Name | Availability Zone | Hosts | Metadata | +----+--------+-------------------+-------+----------+ | 7 | ag3-db | None | | | +----+--------+-------------------+-------+----------+ web サーバ用 AP サーバ用 DB サーバ用
    • 19 Host Aggregate へホスト追加 ■ ホストの追加    $ nova aggregate-add-host 5 devstack1.opst.ne.jp    $ nova aggregate-add-host 5 devstack2.opst.ne.jp    $ nova aggregate-add-host 5 devstack3.opst.ne.jp ■ 識別子を設定    $ nova aggregate-set-metadata 5 webserver01=true ホストの追加    $ nova aggregate-add-host 6 devstack4.opst.ne.jp    $ nova aggregate-add-host 6 devstack5.opst.ne.jp    $ nova aggregate-add-host 6 devstack6.opst.ne.jp ■ 識別子の設定    $ nova aggregate-set-metadata 6 apserver01=true ホストの追加    $ nova aggregate-add-host 7 devstack7.opst.ne.jp    $ nova aggregate-add-host 7 devstack8.opst.ne.jp    $ nova aggregate-add-host 7 devstack9.opst.ne.jp ■ 識別子の設定    $ nova aggregate-set-metadata 7 dbserver01=true
    • 20 Host Aggregate へホスト追加 |----+---------+-------------------+---------------------------+---------------------------| | Id | Name | Availability Zone | Hosts | Metadata | |----+---------+-------------------+---------------------------+---------------------------| | 5 | ag1-web | None | [u'devstack1.opst.ne.jp', | {u'webserver01': u'true'} | | | | | u'devstack2.opst.ne.jp', | | | | | | u'devstack3.opst.ne.jp'] | | |----+---------+-------------------+---------------------------+---------------------------| | 6 | ag2-ap | None | [u'devstack4.opst.ne.jp', | {u'apserver01': u'true'} | | | | | u'devstack5.opst.ne.jp', | | | | | | u'devstack6.opst.ne.jp'] | | |----+---------+-------------------+---------------------------+---------------------------| | 7 | ag3-db | None | [u'devstack7.opst.ne.jp', | {u'dbserver01': u'true'} | | | | | u'devstack8.opst.ne.jp', | | | | | | u'devstack9.opst.ne.jp'] | | |----+---------+-------------------+---------------------------+---------------------------|
    • 21 Flavor との関連付け $ nova flavor-create ag1.webserver 100 512 0 1 $ nova flavor-key 100 set webserver01=true $ nova flavor-create ag1.apserver 101 512 0 1 $ nova flavor-key 100 set apserver01=true $ nova flavor-create ag1.dbserver 102 512 0 1 $ nova flavor-key 100 set dbserver01=true $ nova flavor-list +-----+---------------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +-----+---------------+-----------+------+-----------+------+-------+-------------+-----------+ | 100 | ag1.webserver | 512 | 0 | 0 | | 1 | 1.0 | True | | 101 | ag1.apserver | 512 | 0 | 0 | | 1 | 1.0 | True | | 102 | ag1.dbserver | 512 | 0 | 0 | | 1 | 1.0 | True | | 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 | | 42 | m1.nano | 64 | 0 | 0 | | 1 | 1.0 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | | 84 | m1.micro | 128 | 0 | 0 | | 1 | 1.0 | True | +-----+---------------+-----------+------+-----------+------+-------+-------------+-----------+
    • 22 Flavor との関連付け $ nova flavor-show 100 +----------------------------+---------------------------+ | Property | Value | +----------------------------+---------------------------+ | name | ag1.webserver | | ram | 512 | | OS-FLV-DISABLED:disabled | False | | vcpus | 1 | | extra_specs | {u'webserver01': u'true'} | | swap | | | os-flavor-access:is_public | True | | rxtx_factor | 1.0 | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 0 | | id | 100 | +----------------------------+---------------------------+
    • 23 仮想マシンの起動 $ for i in {1..9}; do nova boot --flavor ag1.apserver --image cirros-0.3.1-x86_64-uec ap0${i}; done $ nova list +--------------------------------------+------+--------+------------+-------------+----------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------+--------+------------+-------------+----------------------+ | 7a893de6-559f-4a9c-ac3d-9a66a6525c66 | ap01 | ACTIVE | None | Running | private=172.24.17.3 | | d798ade7-844e-4f77-850b-a9c55c657e98 | ap02 | ACTIVE | None | Running | private=172.24.17.4 | | b6590d4e-a0d7-4500-99d0-167525156212 | ap03 | ACTIVE | None | Running | private=172.24.17.5 | | 837b2f81-9aa0-403c-b7f9-d8992211f68b | ap04 | ACTIVE | None | Running | private=172.24.17.6 | | 95d9d8d0-a085-4d02-8bad-973213b64c96 | ap05 | ACTIVE | None | Running | private=172.24.17.7 | | 2c4bc17e-b3f0-49f3-ac76-58e677f14bac | ap06 | ACTIVE | None | Running | private=172.24.17.8 | | 6af465cf-cafc-498b-a937-417911575316 | ap07 | ACTIVE | None | Running | private=172.24.17.9 | | a92e1d08-bf7a-4749-8d57-1874cfdae49b | ap08 | ACTIVE | None | Running | private=172.24.17.10 | | a8454436-5631-4b30-b4b7-815be628e167 | ap09 | ACTIVE | None | Running | private=172.24.17.11 | +--------------------------------------+------+--------+------------+-------------+----------------------+ $ nova-manage vm list | instance | node | type | state | |----------+----------------------+--------------+--------| | ap01 | devstack4.opst.ne.jp | ag1.apserver | active | | ap02 | devstack6.opst.ne.jp | ag1.apserver | active | | ap03 | devstack5.opst.ne.jp | ag1.apserver | active | | ap04 | devstack4.opst.ne.jp | ag1.apserver | active | | ap05 | devstack6.opst.ne.jp | ag1.apserver | active | | ap06 | devstack5.opst.ne.jp | ag1.apserver | active | | ap07 | devstack4.opst.ne.jp | ag1.apserver | active | | ap08 | devstack6.opst.ne.jp | ag1.apserver | active | | ap09 | devstack5.opst.ne.jp | ag1.apserver | active | 指定した Host Aggregate に含ま れたホストのみに配置される。
    • 24 Host Aggregate まとめ ag1-web ag2-ap compute1 compute2 compute3 compute4 compute5 compute6 compute7 compute8 compute9 ag3-db {u'webserver01': u'true'} {u'apserver01': u'true'} {u'dbserver01': u'true'} ag1.dbserver ag1.apserver ag1.webserver {u'webserver01': u'true'} {u'apserver01': u'true'} {u'dbserver01': u'true'} Host aggregate ( 管理者 ) Flavor ( 管理者 ) nova boot --flavor ag1.apserver --image cirros-0.3.1-x86_64-uec ● 管理者が Flavor と Aggregate のキーを設定す る。 ● ユーザが指定した Flavor の キーに対応する Aggregate で 仮想マシンが起動する。 ● scheduler が振り分けを制御 する。 ● 用途ごとにスペックの異なる 物理マシンへ配置したり、ハイ パーバイザーが混在する環境 での割り当てに利用する。
    • 25 AZ 想定環境 Openstack controller compute2 compute3 compute4 compute5 compute6 compute8 compute7 compute9 浅草 DC 渋谷 DC 上野 DC
    • 26 Availability Zone の定義 +-------------------------+----------------------------------------+ | Name | Status | +-------------------------+----------------------------------------+ | internal | available | | |- devstack1.opst.ne.jp | | | | |- nova-conductor | enabled :-) 2013-06-23T11:20:05.000000 | | | |- nova-consoleauth | enabled :-) 2013-06-23T11:20:11.000000 | | | |- nova-scheduler | enabled :-) 2013-06-23T11:20:05.000000 | | | |- nova-cert | enabled :-) 2013-06-23T11:20:07.000000 | | nova | available | | |- devstack1.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack8.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack3.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack9.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack2.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack5.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack4.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack6.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | | |- devstack7.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:20:09.000000 | +-------------------------+----------------------------------------+
    • 27 Availability Zone の定義 $ nova aggregate-create ag001-az001 az-tokyo-asakusa $ nova aggregate-create ag002-az002 az-tokyo-shibuya $ nova aggregate-create ag003-az003 az-tokyo-ueno $ nova aggregate-list +----+-------------+-------------------+ | Id | Name | Availability Zone | +----+-------------+-------------------+ | 5 | ag1-web | None | | 6 | ag2-ap | None | | 7 | ag3-db | None | | 8 | ag001-az001 | az-tokyo-asakusa | | 9 | ag002-az002 | az-tokyo-shibuya | | 10 | ag003-az003 | az-tokyo-ueno | +----+-------------+-------------------+ ● Availability Zone は Host Aggregate をベースにして実装されて いる。 ● Folsom までは完全に別機能。 ● host aggregate based availability zones ● https://blueprints.launchpad.net/nova/+spec/aggregate-based-availability-zones
    • 28 AZ へのホスト追加 ● 方法は Host Aggregate と同一。 ■ ホストの追加   $ nova aggregate-add-host 8 devstack2.opst.ne.jp   $ nova aggregate-add-host 8 devstack3.opst.ne.jp   $ nova aggregate-add-host 8 devstack4.opst.ne.jp   $ nova aggregate-add-host 8 devstack5.opst.ne.jp   $ nova aggregate-add-host 9 devstack6.opst.ne.jp   $ nova aggregate-add-host 9 devstack7.opst.ne.jp   $ nova aggregate-add-host 10 devstack8.opst.ne.jp   $ nova aggregate-add-host 10 devstack9.opst.ne.jp
    • 29 AZ へのホスト追加 ● 一つのホストを複数の Aggregate へ所属させるこ とも可能。 |----+-------------+-------------------+---------------------------+---------------------------------------------| | Id | Name | Availability Zone | Hosts | Metadata | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 5 | ag1-web | None | [u'devstack1.opst.ne.jp', | {u'webserver01': u'true'} | | | | | u'devstack2.opst.ne.jp', | | | | | | u'devstack3.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 6 | ag2-ap | None | [u'devstack4.opst.ne.jp', | {u'apserver01': u'true'} | | | | | u'devstack5.opst.ne.jp', | | | | | | u'devstack6.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 7 | ag3-db | None | [u'devstack7.opst.ne.jp', | {u'dbserver01': u'true'} | | | | | u'devstack8.opst.ne.jp', | | | | | | u'devstack9.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 8 | ag001-az001 | az-tokyo-asakusa | [u'devstack2.opst.ne.jp', | {u'availability_zone': u'az-tokyo-asakusa'} | | | | | u'devstack3.opst.ne.jp', | | | | | | u'devstack4.opst.ne.jp', | | | | | | u'devstack5.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 9 | ag002-az002 | az-tokyo-shibuya | [u'devstack6.opst.ne.jp', | {u'availability_zone': u'az-tokyo-shibuya'} | | | | | u'devstack7.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------| | 10 | ag003-az003 | az-tokyo-ueno | [u'devstack8.opst.ne.jp', | {u'availability_zone': u'az-tokyo-ueno'} | | | | | u'devstack9.opst.ne.jp'] | | |----+-------------+-------------------+---------------------------+---------------------------------------------|
    • 30 AZ へのホスト追加 +-------------------------+----------------------------------------+ | Name | Status | +-------------------------+----------------------------------------+ | nova | available | | |- devstack1.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:19.000000 | | az-tokyo-asakusa | available | | |- devstack3.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | |- devstack2.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | |- devstack5.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | |- devstack4.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | az-tokyo-ueno | available | | |- devstack9.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | |- devstack8.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | az-tokyo-shibuya | available | | |- devstack6.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | | |- devstack7.opst.ne.jp | | | | |- nova-compute | enabled :-) 2013-06-23T11:45:17.000000 | +-------------------------+----------------------------------------+
    • 31 AZ 指定での仮想マシン起動 $ nova availability-zone-list +------------------+-----------+ | Name | Status | +------------------+-----------+ | nova | available | | az-tokyo-asakusa | available | | az-tokyo-ueno | available | | az-tokyo-shibuya | available | +------------------+-----------+ $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm01 $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm02 $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm03 $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm04 $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm05 $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm06 $ nova list +--------------------------------------+-----------+--------+------------+-------------+---------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-----------+--------+------------+-------------+---------------------+ | 38a845b0-df6f-4b86-a52e-46ef9a1c269b | ueno-vm01 | ACTIVE | None | Running | private=172.24.17.2 | | fa214a65-414a-4b47-a526-83116a73dda5 | ueno-vm02 | ACTIVE | None | Running | private=172.24.17.3 | | 44c687b9-d89e-4497-a3d9-d277ee7af02c | ueno-vm03 | ACTIVE | None | Running | private=172.24.17.4 | | c260af46-cc11-4a7c-96e2-4f39786a8972 | ueno-vm04 | ACTIVE | None | Running | private=172.24.17.5 | | 4444d731-1f6a-4baa-9228-298297d1e726 | ueno-vm05 | ACTIVE | None | Running | private=172.24.17.6 | | be9ef87b-eb5a-4dd5-b8c9-a1c779704790 | ueno-vm06 | ACTIVE | None | Running | private=172.24.17.7 | +--------------------------------------+-----------+--------+------------+-------------+---------------------+
    • 32 AZ 指定での仮想マシン起動 $ nova-manage vm list | instance | node | type | state | |-----------+----------------------+---------+--------| | ueno-vm01 | devstack9.opst.ne.jp | m1.tiny | active | | ueno-vm02 | devstack8.opst.ne.jp | m1.tiny | active | | ueno-vm03 | devstack9.opst.ne.jp | m1.tiny | active | | ueno-vm04 | devstack8.opst.ne.jp | m1.tiny | active | | ueno-vm05 | devstack9.opst.ne.jp | m1.tiny | active | | ueno-vm06 | devstack8.opst.ne.jp | m1.tiny | active | Availability Zone を指定しない場合、 scheduler に設定されたデフォルト zone が利用さ れる 指定した Availability Zone に含まれたホスト のみに配置される。 default_schedule_zone=nova nova.conf(nova-api)
    • 33 Availability Zone まとめ compute2 compute3 compute4 compute5 compute6 compute7 compute8 compute9 Availability Zone ( 管理者 ) ● 管理者が Availability Zone を定義する。 ● ユーザはゾーンを指定して仮想マシンを起 動する。 ● scheduler が振り分けを制御する。 ● Availability Zone は DB/AMQP が共有 できる範囲での分散を制御する。 ● 近隣の DC 単位、敷地内の建物単位、ラッ ク単位など。 az- tokyo- asakusa az- tokyo- shibuya az- tokyo- ueno $ nova boot --flavor m1.tiny --image cirros-0.3.1-x86_64-uec --availability-zone az-tokyo-ueno ueno-vm01
    • 34 組合せ ● Aggregate と AZ を組合せて利用することも可能 compute2 compute3 compute4 compute6 compute7 compute8 compute5 compute9 Host Aggerage ag-hadoop Availability Zone az-rack01 Availability Zone az-rack02
    • 35 Aggregate/AZ の定義 ■Aggregate と AZ の作成 $ nova aggregate-create ag-hadoop $ nova aggregate-create ag0001-az-rack01 az-rack01 $ nova aggregate-create ag0002-az-rack02 az-rack02 ■Aggregate にキーを設定 $ nova aggregate-set-metadata 11 hadoop01=true ■Flavor の作成とキーの設定 $ nova flavor-create h1.hadoop 200 512 0 1 $ nova flavor-key 200 set hadoop01=true ■ 作成した Aggregate と AZ (抜粋 $ nova aggregate-list +----+------------------+-------------------+ | Id | Name | Availability Zone | +----+------------------+-------------------+ | 11 | ag-hadoop | None | | 12 | ag0001-az-rack01 | az-rack01 | | 13 | ag0002-az-rack02 | az-rack02 | +----+------------------+-------------------+
    • 36 Aggregate/AZ の定義 |----+------------------+-------------------+---------------------------+--------------------------------------| | Id | Name | Availability Zone | Hosts | Metadata | |----+------------------+-------------------+---------------------------+--------------------------------------| | 11 | ag-hadoop | None | [u'devstack2.opst.ne.jp', | {u'hadoop01': u'true'} | | | | | u'devstack3.opst.ne.jp', | | | | | | u'devstack4.opst.ne.jp', | | | | | | u'devstack7.opst.ne.jp', | | | | | | u'devstack6.opst.ne.jp', | | | | | | u'devstack8.opst.ne.jp'] | | |----+------------------+-------------------+---------------------------+--------------------------------------| | 12 | ag0001-az-rack01 | az-rack01 | [u'devstack2.opst.ne.jp', | {u'availability_zone': u'az-rack01'} | | | | | u'devstack3.opst.ne.jp', | | | | | | u'devstack4.opst.ne.jp'] | | |----+------------------+-------------------+---------------------------+--------------------------------------| | 13 | ag0002-az-rack02 | az-rack02 | [u'devstack6.opst.ne.jp', | {u'availability_zone': u'az-rack02'} | | | | | u'devstack7.opst.ne.jp', | | | | | | u'devstack8.opst.ne.jp'] | | |----+------------------+-------------------+---------------------------+--------------------------------------|
    • 37 Aggregate/AZ の定義 nova |- devstack1.opst.ne.jp | |- nova-compute | az-tokyo-asakusa |- devstack2.opst.ne.jp | |- nova-compute |- devstack3.opst.ne.jp | |- nova-compute |- devstack4.opst.ne.jp | |- nova-compute |- devstack5.opst.ne.jp | |- nova-compute | az-tokyo-shibuya |- devstack6.opst.ne.jp | |- nova-compute |- devstack7.opst.ne.jp | |- nova-compute | az-tokyo-ueno |- devstack8.opst.ne.jp | |- nova-compute |- devstack9.opst.ne.jp | |- nova-compute | | az-rack01 |- devstack2.opst.ne.jp | |- nova-compute |- devstack3.opst.ne.jp | |- nova-compute |- devstack4.opst.ne.jp | |- nova-compute | az-rack02 |- devstack6.opst.ne.jp | |- nova-compute |- devstack7.opst.ne.jp | |- nova-compute |- devstack8.opst.ne.jp | |- nova-compute *見やすいように加工しています。
    • 38 仮想マシンの起動 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop01 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop02 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop03 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop04 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop05 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop06 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop07 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop08 $ nova boot --flavor h1.hadoop --image cirros-0.3.1-x86_64-uec --availability-zone az-rack02 hadoop09 |----------+----------------------+-----------+--------| | instance | node | type | state | |----------+----------------------+-----------+--------| | hadoop01 | devstack6.opst.ne.jp | h1.hadoop | active | | hadoop02 | devstack8.opst.ne.jp | h1.hadoop | active | | hadoop03 | devstack7.opst.ne.jp | h1.hadoop | active | | hadoop04 | devstack6.opst.ne.jp | h1.hadoop | active | | hadoop05 | devstack8.opst.ne.jp | h1.hadoop | active | | hadoop06 | devstack7.opst.ne.jp | h1.hadoop | active | | hadoop07 | devstack6.opst.ne.jp | h1.hadoop | active | | hadoop08 | devstack8.opst.ne.jp | h1.hadoop | active | | hadoop09 | devstack7.opst.ne.jp | h1.hadoop | active | |----------+----------------------+-----------+--------| 指定した Host Aggregate に含まれたホ ストのみに配置される。
    • 39 まとめ ● OpenStack そのものの分散を制御したい時には ● Region or Cell ● 仮想マシンの分散を制御したい時には、 ● Availability Zone or Host Aggregate ● Availability Zone はユーザが仮想マシンの配置を管 理する。 ● Host Aggregate は管理者が仮想マシンの分散に法則 を与える。 – 組み合わせることも可能