12.2. RT-KVM을 사용하여 OVS-DPDK 구성
12.2.1. 실시간 컴퓨팅을 위한 노드 지정 링크 복사링크가 클립보드에 복사되었습니다!
실시간 컴퓨팅에 대한 노드를 지정하려면 새 역할 파일을 생성하여 Real-time Compute 역할을 구성하고 Real-time Compute 리소스 클래스로 베어 메탈 노드를 구성하여 컴퓨팅 노드를 실시간으로 태그합니다.
다음 절차는 아직 프로비저닝하지 않은 새 오버클라우드 노드에 적용됩니다. 이미 프로비저닝된 기존 오버클라우드 노드에 리소스 클래스를 할당하려면 오버클라우드를 축소하여 노드를 프로비저닝 해제한 다음 오버클라우드를 확장하여 새 리소스 클래스 할당으로 노드를 다시 프로비저닝합니다. 자세한 내용은 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 오버클라우드 노드 스케일링을 참조하십시오.
프로세스
-
언더클라우드 호스트에
stack사용자로 로그인합니다. stackrc언더클라우드 인증 정보 파일을 소싱합니다.source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/usr/share/openstack-tripleo-heat-templates/environments/compute-real-time-example.yaml파일을 기반으로ComputeRealTime역할의 매개변수를 설정하는compute-real-time.yaml환경 파일을 만듭니다. ComputeRealTime역할을 포함하는roles_data_rt.yaml이라는 새 역할 데이터 파일과 오버클라우드에 필요한 다른 역할 데이터 파일을 생성합니다. 다음 예제에서는 역할Controller, Compute ,을 포함하는 역할 데이터 파일ComputeRealTimeroles_data_rt.yaml을 생성합니다.openstack overcloud roles generate \ -o /home/stack/templates/roles_data_rt.yaml \ ComputeRealTime Compute Controller
(undercloud)$ openstack overcloud roles generate \ -o /home/stack/templates/roles_data_rt.yaml \ ComputeRealTime Compute ControllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow ComputeRealTime 역할의 roles_data_rt.yaml 파일을 업데이트합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드 정의 템플릿에
node.json또는node.yaml.yaml에 추가하여 오버클라우드의 ComputeRealTime 노드를 등록합니다.자세한 내용은 director 를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 오버클라우드 노드 등록을 참조하십시오.
노드 하드웨어를 검사합니다.
openstack overcloud node introspect --all-manageable --provide
(undercloud)$ openstack overcloud node introspect --all-manageable --provideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 director 를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 베어 메탈 노드 하드웨어 인벤토리 생성 을 참조하십시오.
ComputeRealTime에 지정할 각 베어 메탈 노드에 사용자 지정 ComputeRealTime 리소스 클래스를 태그합니다.
openstack baremetal node set \ --resource-class baremetal.RTCOMPUTE <node>
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.RTCOMPUTE <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node>를 베어 메탈 노드의 이름 또는 UUID로 바꿉니다.
노드 정의 파일
overcloud-baremetal-deploy.yaml에 ComputeRealTime 역할을 추가하고 노드에 할당할 예측 노드 배치, 리소스 클래스, 네트워크 토폴로지 또는 기타 속성을 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
role_topology_file>을ComputeRealTime역할에 사용할 토폴로지 파일의 이름으로 바꿉니다(예:myRoleTopology.j2). 기존 네트워크 토폴로지를 재사용하거나 역할에 대한 새 사용자 지정 네트워크 인터페이스 템플릿을 생성할 수 있습니다.자세한 내용은 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 사용자 정의 네트워크 인터페이스 템플릿 정의를 참조하십시오. 기본 네트워크 정의 설정을 사용하려면 역할 정의에
network_config를 포함하지 마십시오.노드 정의 파일에서 노드 속성을 구성하는 데 사용할 수 있는 속성에 대한 자세한 내용은 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 베어 메탈 노드 프로비저닝 속성을 참조하십시오.
노드 정의 파일의 예는 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 예제 노드 정의 파일을 참조하십시오.
다음 Ansible 플레이북을 생성하여 노드 프로비저닝 중에 커널을 구성하고 플레이북을
/home/stack/templates/fix_rt_kernel.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드 프로비저닝 파일의
ComputeOvsDpdkSriovRT역할 정의에/home/stack/templates/fix_rt_kernel.yaml을 플레이북으로 포함합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드 정의 파일에서 노드 속성을 구성하는 데 사용할 수 있는 속성에 대한 자세한 내용은 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리에서 베어 메탈 노드 프로비저닝 속성을 참조하십시오.
노드 정의 파일의 예는 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 예제 노드 정의 파일을 참조하십시오.
역할의 새 노드를 프로비저닝합니다.
openstack overcloud node provision \ [--stack <stack> \ ]
(undercloud)$ openstack overcloud node provision \ [--stack <stack> \ ] [--network-config \] --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항:
<stack>을 베어 메탈 노드가 프로비저닝되는 스택의 이름으로 바꿉니다. 기본값은overcloud입니다. -
선택 사항:
--network-config선택적 인수를 포함하여 네트워크 정의를cli-overcloud-node-network-config.yamlAnsible 플레이북에 제공합니다.network_config속성을 사용하여 네트워크 정의를 정의하지 않으면 기본 네트워크 정의가 사용됩니다. -
<
deployment_file>을 배포 명령에 포함할 heat 환경 파일의 이름으로 교체합니다(예:/home/stack/templates/overcloud-baremetal-deployed.yaml).
-
선택 사항:
별도의 터미널에서 프로비저닝 진행 상황을 모니터링합니다. 프로비저닝이 성공하면 노드 상태가
available에서active로 변경됩니다.watch openstack baremetal node list
(undercloud)$ watch openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow --network-config옵션 없이 provisioning 명령을 실행한 경우 NIC 템플릿 파일을 가리키도록network-environment.yaml파일에서 <Role>NetworkConfigTemplate매개변수를 구성합니다.parameter_defaults: ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2 ComputeAMDSEVNetworkConfigTemplate: /home/stack/templates/nic-configs/<rt_compute>.j2 ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2
parameter_defaults: ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2 ComputeAMDSEVNetworkConfigTemplate: /home/stack/templates/nic-configs/<rt_compute>.j2 ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
rt_compute>를ComputeRealTime역할의 네트워크 토폴로지가 포함된 파일의 이름으로 바꿉니다(예: 기본 네트워크 토폴로지를 사용하려면computert.yaml).다른 환경 파일과 함께 스택에 환경 파일을 추가하고 오버클라우드를 배포합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.2.2. OVS-DPDK 매개변수 구성 링크 복사링크가 클립보드에 복사되었습니다!
parameter_defaults에서 터널 유형을vxlan으로 설정하고 네트워크 유형을vxlan,vlan:로 설정합니다.NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan,vlan'
NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan,vlan'Copy to Clipboard Copied! Toggle word wrap Toggle overflow parameters_defaults에서 브리지 매핑을 설정합니다.# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0
# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0Copy to Clipboard Copied! Toggle word wrap Toggle overflow parameter_defaults에서ComputeOvsDpdkSriov역할의 역할별 매개변수를 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고게스트 생성 중에 오류가 발생하지 않도록 하려면 각 NUMA 노드에 형제 스레드가 있는 하나 이상의 CPU를 할당합니다. 이 예에서
OvsPmdCoreList매개변수 값은 NUMA 0의 코어 2 및 22, NUMA 1의 코어 3 및 23을 나타냅니다.참고이러한 대규모 페이지는 가상 머신에서 사용하고 이 절차에 표시된 대로
OvsDpdkSocketMemory매개변수를 사용하는 OVS-DPDK에서도 사용됩니다. 가상 머신에 사용할 수 있는 대규모 페이지 수는부팅매개변수에서OvsDpdkSocketMemory를 뺀 값입니다.DPDK 인스턴스와 연결된 플레이버에도
hw:mem_page_size=1GB를 추가해야 합니다.참고OvsDpdkMemoryChannels는 이 프로세스에 필요한 설정입니다. optimal operation을 위해 적절한 매개변수 및 값을 사용하여 DPDK를 배포하십시오.SR-IOV의 역할별 매개변수를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow