17.6. 予測可能な IP アドレスと HostNameMap を使用するノードを置き換えるときにホスト名を保持する
予測可能な IP アドレスを使用するようにオーバークラウドを設定し、ヒートベースのホスト名を事前プロビジョニングされたノードのホスト名にマップするように HostNameMap
を設定した場合は、新しい置換ノードインデックスを IP アドレスとホスト名にマップするようにオーバークラウドを設定する必要があります。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。$ source ~/stackrc
置き換えるリソースの
physical_resource_id
とremoved_rsrc_list
を取得します。(undercloud)$ openstack stack resource show <stack> <role>
-
<stack>
を、リソースが属するスタックの名前 (overcloud
など) に置き換えます。 <role>
を、ノードを置き換えるロールの名前 (Compute
など) に置き換えます。出力例:
+------------------------+-----------------------------------------------------------+ | Field | Value | +------------------------+-----------------------------------------------------------+ | attributes | {u'attributes': None, u'refs': None, u'refs_map': None, | | | u'removed_rsrc_list': [u'2', u'3']} | 1 | creation_time | 2017-09-05T09:10:42Z | | description | | | links | [{u'href': u'http://192.168.24.1:8004/v1/bd9e6da805594de9 | | | 8d4a1d3a3ee874dd/stacks/overcloud/1c7810c4-8a1e- | | | 4d61-a5d8-9f964915d503/resources/Compute', u'rel': | | | u'self'}, {u'href': u'http://192.168.24.1:8004/v1/bd9e6da | | | 805594de98d4a1d3a3ee874dd/stacks/overcloud/1c7810c4-8a1e- | | | 4d61-a5d8-9f964915d503', u'rel': u'stack'}, {u'href': u'h | | | ttp://192.168.24.1:8004/v1/bd9e6da805594de98d4a1d3a3ee874 | | | dd/stacks/overcloud-Compute-zkjccox63svg/7632fb0b- | | | 80b1-42b3-9ea7-6114c89adc29', u'rel': u'nested'}] | | logical_resource_id | Compute | | physical_resource_id | 7632fb0b-80b1-42b3-9ea7-6114c89adc29 | | required_by | [u'AllNodesDeploySteps', | | | u'ComputeAllNodesValidationDeployment', | | | u'AllNodesExtraConfig', u'ComputeIpListMap', | | | u'ComputeHostsDeployment', u'UpdateWorkflow', | | | u'ComputeSshKnownHostsDeployment', u'hostsConfig', | | | u'SshKnownHostsConfig', u'ComputeAllNodesDeployment'] | | resource_name | Compute | | resource_status | CREATE_COMPLETE | | resource_status_reason | state changed | | resource_type | OS::Heat::ResourceGroup | | updated_time | 2017-09-05T09:10:42Z | +------------------------+-----------------------------------------------------------+
- 1
removed_rsrc_list
は、リソースからすでに削除されているノードのインデックスをリスト表示します。
-
resource_name
を取得して、このリソースのノードに heat が適用した最大インデックスを決定します。(undercloud)$ openstack stack resource list <physical_resource_id>
-
<physical_resource_id>
を手順 3 で取得した ID に置き換えます。
-
resource_name
とremoved_rsrc_list
を使用して、heat が新しいノードに適用する次のインデックスを決定します。-
removed_rsrc_list
が空の場合、次のインデックスは (current_maximum_index) + 1 になります。 -
removed_rsrc_list
に値 (current_maximum_index) + 1 が含まれている場合、次のインデックスは次に使用可能なインデックスになります。
-
置換用のベアメタルノードの ID を取得します。
(undercloud)$ openstack baremetal node list
置換ノードの機能を新しいインデックスで更新します。
openstack baremetal node set --property capabilities='node:<role>-<index>,boot_option:local' <node>
-
<role>
を、ノードを置き換えるロールの名前 (compute
など) に置き換えます。 -
<index>
を手順 5 で計算したインデックスに置き換えます。 -
<node>
をベアメタルノードの ID に置き換えてください。
Compute スケジューラーは、ノード機能を使用して、デプロイメント時にノードを照合します。
-
HostnameMap
設定にインデックスを追加して、新しいノードにホスト名を割り当てます。次に例を示します。parameter_defaults: ControllerSchedulerHints: 'capabilities:node': 'controller-%index%' ComputeSchedulerHints: 'capabilities:node': 'compute-%index%' HostnameMap: overcloud-controller-0: overcloud-controller-prod-123-0 overcloud-controller-1: overcloud-controller-prod-456-0 1 overcloud-controller-2: overcloud-controller-prod-789-0 overcloud-controller-3: overcloud-controller-prod-456-0 2 overcloud-compute-0: overcloud-compute-prod-abc-0 overcloud-compute-3: overcloud-compute-prod-abc-3 3 overcloud-compute-8: overcloud-compute-prod-abc-3 4 ....
注記削除されたノードのマッピングを
HostnameMap
から削除しないでください。置換ノードの IP アドレスを、ネットワーク IP アドレスマッピングファイル
ips-from-pool-all.yaml
の各ネットワーク IP アドレスリストの最後に追加します。次の例では、新しいインデックスovercloud-controller-3
の IP アドレスが、各ControllerIPs
ネットワークの IP アドレスリストの最後に追加され、overcloud-controller-1
を置き換えるため、overcloud-controller-1
と同じ IP アドレスが割り当てられます。新しいインデックスの IP アドレスovercloud-compute-8
も、各ComputeIPs
ネットワークの IP アドレスリストの最後に追加され、置き換えられるインデックスovercloud-compute-3
と同じ IP アドレスが割り当てられます。parameter_defaults: ControllerIPs: ... internal_api: - 192.168.1.10 1 - 192.168.1.11 2 - 192.168.1.12 3 - 192.168.1.11 4 ... storage: - 192.168.2.10 - 192.168.2.11 - 192.168.2.12 - 192.168.2.11 ... ComputeIPs: ... internal_api: - 172.17.0.10 5 - 172.17.0.11 6 - 172.17.0.11 7 ... storage: - 172.17.0.10 - 172.17.0.11 - 172.17.0.11 ...
- 1
- インデックス 0 に割り当てられた IP アドレス、ホスト名
overcloud-controller-prod-123-0
。 - 2
- インデックス 1 に割り当てられた IP アドレス、ホスト名
overcloud-controller-prod-456-0
。このノードはインデックス 3 に置き換えられます。このエントリーは削除しないでください。 - 3
- インデックス 2 に割り当てられた IP アドレス、ホスト名
overcloud-controller-prod-789-0
。 - 4
- インデックス 3 に割り当てられた IP アドレス、ホスト名
overcloud-controller-prod-456-0
。これは、インデックス 1 を置き換える新しいノードです。 - 5
- インデックス 0 に割り当てられた IP アドレス、ホスト名
overcloud-compute-0
。 - 6
- インデックス 1 に割り当てられた IP アドレス、ホスト名
overcloud-compute-3
。このノードはインデックス 2 に置き換えられます。このエントリーは削除しないでください。 - 7
- インデックス 2 に割り当てられた IP アドレス、ホスト名
overcloud-compute-8
。これは、インデックス 1 を置き換える新しいノードです。