4.11. 스파인-리프 배포에 새 리프 추가
네트워크 용량을 늘리거나 새 물리적 사이트를 추가할 때 RHOSP(Red Hat OpenStack Platform) 스파인-리프 네트워크에 새 리프를 추가해야 할 수 있습니다.
사전 요구 사항
- RHOSP 배포에서는 스파인-리프트 네트워크 토폴로지를 사용합니다.
프로세스
-
언더클라우드 호스트에
stack
사용자로 로그인합니다. stackrc
언더클라우드 인증 정보 파일을 소싱합니다.$ source ~/stackrc
네트워크 정의 템플릿을 엽니다(예:
/home/stack/templates/spine-leaf-networks-data.yaml
). 적절한 기본 네트워크에서 리프 서브넷을 추가할 새 리프에 대한 구성 가능 네트워크 항목으로 추가합니다.예제
이 예에서는 새 리프(
leaf
3)의 subnet 항목이 추가되었습니다.- name: InternalApi name_lower: internal_api vip: true vlan: 10 ip_subnet: '172.18.0.0/24' allocation_pools: [{'start': '172.18.0.4', 'end': '172.18.0.250'}] gateway_ip: '172.18.0.1' subnets: internal_api_leaf1: vlan: 11 ip_subnet: '172.18.1.0/24' allocation_pools: [{'start': '172.18.1.4', 'end': '172.18.1.250'}] gateway_ip: '172.18.1.1' internal_api_leaf2: vlan: 12 ip_subnet: '172.18.2.0/24' allocation_pools: [{'start': '172.18.2.4', 'end': '172.18.2.250'}] gateway_ip: '172.18.2.1' internal_api_leaf3: vlan: 13 ip_subnet: '172.18.3.0/24' allocation_pools: [{'start': '172.18.3.4', 'end': '172.18.3.250'}] gateway_ip: '172.18.3.1'
추가할 새 리프에 대한 역할 데이터 파일을 만듭니다.
추가하려는 새 리프에 대한 리프 Compute 및 리프 Ceph Storage 파일을 복사합니다.
예제
이 예에서
Compute1.yaml
및CephStorage1.yaml
은 각각 새 리프,Compute3.yaml
및CephStorage3.yaml
에 대해 복사됩니다.$ cp ~/roles/Compute1.yaml ~/roles/Compute3.yaml $ cp ~/roles/CephStorage1.yaml ~/roles/CephStorage3.yaml
새 리프 파일에서
name
및HostnameFormatDefault
매개변수를 편집하여 해당 리프 매개 변수와 일치하도록 합니다.예제
예를 들어 Leaf 1 Compute 파일의 매개변수에는 다음과 같은 값이 있습니다.
- name: ComputeLeaf1 HostnameFormatDefault: '%stackname%-compute-leaf1-%index%'
예제
Leaf 1 Ceph Storage 매개변수에는 다음과 같은 값이 있습니다.
- name: CephStorageLeaf1 HostnameFormatDefault: '%stackname%-cephstorage-leaf1-%index%'
해당 Leaf 네트워크 매개변수와 일치하도록 새 리프 파일에서 network 매개변수를 편집합니다.
예제
예를 들어 Leaf 1 Compute 파일의 매개변수에는 다음과 같은 값이 있습니다.
- name: ComputeLeaf1 networks: InternalApi: subnet: internal_api_leaf1 Tenant: subnet: tenant_leaf1 Storage: subnet: storage_leaf1
예제
Leaf 1 Ceph Storage 매개변수에는 다음과 같은 값이 있습니다.
- name: CephStorageLeaf1 networks: Storage: subnet: storage_leaf1 StorageMgmt: subnet: storage_mgmt_leaf1
역할 구성이 완료되면 다음 명령을 실행하여 전체 역할 데이터 파일을 생성합니다. 네트워크에 있는 모든 리프와 추가 중인 새 리프를 포함합니다.
예제
이 예에서는 leaf3이 leaf0, leaf1 및 leaf2에 추가됩니다.
$ openstack overcloud roles generate --roles-path ~/roles -o roles_data_spine_leaf.yaml Controller Controller1 Controller2 Compute Compute1 Compute2 Compute3 CephStorage CephStorage1 CephStorage2 CephStorage3
이렇게 하면 각 리프 네트워크에 대한 모든 사용자 지정 역할을 포함하는 전체
roles_data_spine_leaf.yaml
파일이 생성됩니다.
추가할 리프에 대한 사용자 정의 NIC 구성을 생성합니다.
추가하려는 새 리프에 대한 리프 Compute 및 리프 Ceph Storage NIC 구성 파일을 복사합니다.
예제
이 예에서
computeleaf1.yaml
및ceph-storageleaf1.yaml
은 각각 새 leaf,computeleaf3.yaml
및ceph-storageleaf3.yaml
에 대해 복사됩니다.$ cp ~/templates/spine-leaf-nics/computeleaf1.yaml ~/templates/spine-leaf-nics/computeleaf3.yaml $ cp ~/templates/spine-leaf-nics/ceph-storageleaf1.yaml ~/templates/spine-leaf-nics/ceph-storageleaf3.yaml
각 역할의 역할 및 사용자 지정 NIC 템플릿 매핑이 포함된 사용자 정의 환경 파일을 엽니다(예: spine-leaf-nic-roles-map.yaml). 추가할 새 리프의 각 역할에 대한 항목을 삽입합니다.
parameter_defaults: %%ROLE%%NetworkConfigTemplate: <path_to_ansible_jinja2_nic_config_file>
예제
이 예에서는
ComputeLeaf3NetworkConfigTemplate
및CephStorage3NetworkConfigTemplate
항목이 추가되었습니다.parameter_defaults: Controller0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
별도의 네트워크 매핑이 포함된 사용자 정의 네트워크 환경 파일을 열고 오버클라우드의 컨트롤 플레인 네트워크에 대한 액세스를 설정합니다(예:
spine-leaf-ctlplane.yaml
).parameter_defaults
섹션에서 새 리프 네트워크의 컨트롤 플레인 서브넷 매핑을 추가합니다. 또한 새 리프 네트워크의 외부 네트워크 매핑을 포함합니다.플랫 네트워크 매핑의 경우
NeutronFlatNetworks
매개변수에 새리프( leaf
3)를 나열하고 새 리프에 대한NeutronBridgeMappings
매개변수를 설정합니다.parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex"
VLAN 네트워크 매핑의 경우 새 리프(
leaf
3) 네트워크의 VLAN을 매핑하도록NeutronNetworkVLANRanges
를 추가로 설정합니다.NeutronNetworkType: 'geneve,vlan' NeutronNetworkVLANRanges: 'leaf0:1:1000,leaf1:1:1000,leaf2:1:1000,leaf3:1:1000'
예제
이 예에서는 플랫 네트워크 매핑이 사용되며 새 리프(
leaf3
) 항목이 추가됩니다.parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" ControllerControlPlaneSubnet: leaf0 Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1ControlPlaneSubnet: leaf0 Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2ControlPlaneSubnet: leaf0 Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0ControlPlaneSubnet: leaf0 Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute1ControlPlaneSubnet: leaf1 Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute2ControlPlaneSubnet: leaf2 Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex" Compute3ControlPlaneSubnet: leaf3
수정된 네트워크를 프로비저닝합니다.
자세한 내용은 오버클라우드 네트워크 및 오버클라우드 VIP 프로비저닝을 참조하십시오.
이전에 생성한 베어 메탈 노드 정의 파일(예:
spine-leaf-baremetal-nodes.yaml
)에서network_config_update
변수가true
로 설정되어 있는지 확인합니다.예제
- name: Controller count: 3 defaults: networks: - network: ctlplane vif: true - network: external subnet: external_subnet - network: internal_api subnet: internal_api_subnet01 - network: storage subnet: storage_subnet01 - network: storage_mgmt subnet: storage_mgmt_subnet01 - network: tenant subnet: tenant_subnet01 network_config: template: /home/stack/templates/spine-leaf-nics/single-nic-vlans.j2 default_route_network: - external network_config_update: true
수정된 노드를 프로비저닝합니다.
자세한 내용은 베어 메탈 노드 프로비저닝 을 참조하십시오.
- 스파인-리프가 활성화된 오버클라우드 배포 단계에 따라 스파인-리프가 활성화된 오버클라우드를 재배포합니다.