アベイラビリティーゾーンを使うと、DHCP、 L3、ファイアウォールなどのサービスを実行するネットワークノードをグルーピングできます。アベイラビリティーゾーンは、ネットワークノード上のエージェントの属性として定義されます。ユーザーはリソースをアベイラビリティーゾーンに関連付けることで、リソースの可用性を高めることができます。
アベイラビリティーゾーンはネットワークリソースの可用性を高めるために使用されます。オペレーターは、異なる電源供給源に接続されたネットワークノードを別々のアベイラビリティーゾーンにグルーピングし、可用性を確保しながらリソースの割り当てを行うように設定します。これにより、ネットワークリソースは異なるアベイラビリティーゾーンに割り当てられます。
コアプラグインは availability_zone 拡張をサポートしている必要があります。また、ネットワークをアベイラビリティーゾーンに基いて割り当てを行うには、コアプラグインが network_availability_zone 拡張もサポートしている必要があります。ルーターをアベイラビリティーゾーンに基いて割り当てを行うには、ルーターサービスプラグインが router_availability_zone 拡張をサポートしている必要があります。
$ neutron ext-list
+---------------------------+-----------------------------------------------+
| alias | name |
+---------------------------+-----------------------------------------------+
...
| network_availability_zone | Network Availability Zone |
...
| availability_zone | Availability Zone |
...
| router_availability_zone | Router Availability Zone |
...
+---------------------------+-----------------------------------------------+
availability_zone 属性は dhcp-agent と l3-agent で定義できます。各エージェントでアベイラビリティーゾーンを定義するには、 /etc/neutron/dhcp_agent.ini や /etc/neutron/l3_agent.ini の [AGENT] セクションで値を設定します。
[AGENT]
availability_zone = zone-1
エージェントのアベイラビリティーゾーンを確認するには、以下のようにします。
$ neutron agent-show ca203db1-9f7f-40a7-91aa-4b184886e65d
+---------------------+----------------------------------------------------------+
| Field | Value |
+---------------------+----------------------------------------------------------+
| admin_state_up | True |
| agent_type | DHCP agent |
| alive | True |
| availability_zone | zone-1 |
| binary | neutron-dhcp-agent |
| configurations | { |
| | "subnets": 0, |
| | "dhcp_lease_duration": 86400, |
| | "dhcp_driver": "neutron.agent.linux.dhcp.Dnsmasq", |
| | "networks": 0, |
| | "log_agent_heartbeats": false, |
| | "ports": 0 |
| | } |
| created_at | 2015-12-10 00:30:19 |
| description | |
| heartbeat_timestamp | 2015-12-10 00:54:09 |
| host | mitaka |
| id | ca203db1-9f7f-40a7-91aa-4b184886e65d |
| started_at | 2015-12-10 00:45:09 |
| topic | dhcp_agent |
+---------------------+----------------------------------------------------------+
$ neutron agent-show 4d8aa289-21eb-4997-86f2-49a884f78d0b
+---------------------+---------------------------------------------+
| Field | Value |
+---------------------+---------------------------------------------+
| admin_state_up | True |
| agent_type | L3 agent |
| alive | True |
| availability_zone | zone-1 |
| binary | neutron-l3-agent |
| configurations | { |
| | "router_id": "", |
| | "agent_mode": "legacy", |
| | "gateway_external_network_id": "", |
| | "handle_internal_only_routers": true, |
| | "routers": 0, |
| | "interfaces": 0, |
| | "floating_ips": 0, |
| | "interface_driver": "openvswitch", |
| | "log_agent_heartbeats": false, |
| | "external_network_bridge": "br-ex", |
| | "ex_gw_ports": 0 |
| | } |
| created_at | 2015-12-10 00:30:22 |
| description | |
| heartbeat_timestamp | 2015-12-10 00:54:48 |
| host | mitaka |
| id | 4d8aa289-21eb-4997-86f2-49a884f78d0b |
| started_at | 2015-12-10 00:45:18 |
| topic | l3_agent |
+---------------------+---------------------------------------------+
/etc/neutron/neutron.conf で network_scheduler_driver に AZAwareWeightScheduler を設定すると、 Networking サービスはアベイラビリティーゾーンに基いてネットワークの割り当てを行います。
network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler
dhcp_load_type = networks
Networking サービスは、選択されたゾーン内のいずれかのエージェントに WeightScheduler によりネットワークの割り当てを行います。
/etc/neutron/neutron.conf で router_scheduler_driver に AZLeastRoutersScheduler を設定すると、 Networking サービスはアベイラビリティーゾーンに基いてルーターの割り当てを行います。
router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler
Networking サービスは、選択されたゾーン内のいずれかのエージェントに ``LeastRouterScheduler `` によりルーターの割り当てを行います。
Networking サービスは、ルーターに対する高可用性と、ネットワークの DHCP サービスに対する高可用性と耐障害性を持ちますが、アベイラビリティーゾーンはこれとは異なる保護レイヤーを提供し、 Networking サービスのデプロイメントを別々の故障ドメインに区分けするものです。異なるアベイラビリティーゾーンにまたがって HA ノードをデプロイすることで、ゾーン全体に渡る障害が発生した場合でも、ネットワークサービスが利用可能な状態になることを保証できます。
このセクションでは、L3 と DHCP に対するアベイラビリティーゾーンと組み合わせて高可用性を実現する方法を説明します。アベイラビリティーゾーンについては上記のオプションを設定しているものとします。
L3 の高可用性を実現するには /etc/neutron/neutron.conf で以下のオプションを設定します。
l3_ha = True
max_l3_agents_per_router = 3
min_l3_agents_per_router = 2
HA ルーターは、ルーター作成時に指定したアベイラビリティーゾーンに作成されます。
DHCP の高可用性を実現するには /etc/neutron/neutron.conf で以下のオプションを設定します。
dhcp_agents_per_network = 2
DHCP サービスは、ネットワーク作成時に指定したアベイラビリティーゾーンに作成されます。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.