16.4. 예측 가능한 IP 주소를 사용하는 노드를 교체할 때 호스트 이름 유지 및 HostNameMap
예측 가능한 IP 주소를 사용하도록 오버클라우드를 구성하고 HostNameMap
을 사용하여 heat 기반 호스트 이름을 사전 프로비저닝된 노드의 호스트 이름에 매핑하려면 새 교체 노드 인덱스를 IP 주소와 호스트 이름에 매핑하도록 오버클라우드를 구성해야 합니다.
절차
-
stack
사용자로 언더클라우드에 로그인합니다. stackrc
파일을 소싱합니다.$ source ~/stackrc
교체하려는 리소스의
physical_resource_id
및removed_rsrc_list
를 검색합니다.(undercloud)$ openstack stack resource show <stack> <role>
-
&
lt;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>
-
2단계에서 검색한 ID로
<physical_resource_id>
을 바꿉니다.
-
2단계에서 검색한 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
). -
&
lt;index&
gt;를 5단계에서 계산된 인덱스로 바꿉니다. -
&
lt;node&
gt;를 베어 메탈 노드의 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 주소 매핑 파일의 각 네트워크 IP 주소 목록 끝에 추가합니다.
ips-from-pool-all.yaml
. 다음 예에서 새 인덱스의 IP 주소overcloud-controller-3
은 각ControllerIPs
네트워크의 IP 주소 목록 끝에 추가되고overcloud-controller-1
을 대체하므로overcloud-controller-1
과 동일한 IP 주소가 할당됩니다. 새 인덱스의 IP 주소overcloud-compute-8
이 각ComputeIPs
네트워크에 대해 IP 주소 목록 끝에 추가되며 대체 인덱스와 동일한 IP 주소가 할당됩니다.overcloud-compute-3
: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을 대체하는 새 노드입니다.