11.5. NUMA 인식 vSwitch 구성
이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.
NUMA 인식 vSwitch를 구현하기 전에 하드웨어 구성의 다음 구성 요소를 검사합니다.
- 물리적 네트워크 수입니다.
- PCI 카드 배치
- 서버의 물리적 아키텍처입니다.
PCIe NIC와 같은MMIO(메모리 매핑된 I/O) 장치는 특정 NUMA 노드와 연결됩니다. VM과 NIC가 다른 NUMA 노드에 있는 경우 성능이 크게 저하됩니다. 성능을 높이려면 동일한 NUMA 노드에서 PCIe NIC 배치 및 인스턴스 처리를 조정합니다.
이 기능을 사용하여 물리적 네트워크를 공유하는 인스턴스가 동일한 NUMA 노드에 있는지 확인합니다. 데이터 센터 하드웨어의 사용을 최적화하려면 여러 physnet을 사용해야 합니다.
최적의 서버 사용률을 위해 NUMA 인식 네트워크를 구성하려면 PCIe 슬롯과 NUMA 노드의 매핑을 이해해야 합니다. 특정 하드웨어에 대한 자세한 내용은 벤더 설명서를 참조하십시오. NUMA 인식 vSwitch를 올바르게 계획하거나 구현하지 못하면 서버에서 단일 NUMA 노드만 사용하도록 할 수 있습니다.
NUMA 간 구성을 방지하려면 NIC의 위치를 Nova에 제공하여 VM을 올바른 NUMA 노드에 배치합니다.
사전 요구 사항
-
filter
NUMATopologyFilter
를 활성화했습니다.
절차
-
새
NeutronPhysnetNUMANodesMapping
매개변수를 설정하여 물리적 네트워크를 물리적 네트워크와 연결하는 NUMA 노드에 매핑합니다. VxLAN 또는 GRE와 같은 터널을 사용하는 경우
NeutronTunnelNUMANodes
매개변수도 설정해야 합니다.parameter_defaults: NeutronPhysnetNUMANodesMapping: {<physnet_name>: [<NUMA_NODE>]} NeutronTunnelNUMANodes: <NUMA_NODE>,<NUMA_NODE>
예제
다음은 NUMA 노드 0으로 터널링된 두 개의 물리적 네트워크가 있는 예입니다.
- NUMA 노드 0과 연결된 프로젝트 네트워크 1개
유사성이 없는 하나의 관리 네트워크
parameter_defaults: NeutronBridgeMappings: - tenant:br-link0 NeutronPhysnetNUMANodesMapping: {tenant: [1], mgmt: [0,1]} NeutronTunnelNUMANodes: 0
이 예에서는
eno2
라는 장치의 physnet을 NUMA 번호 0에 할당합니다.# ethtool -i eno2 bus-info: 0000:18:00.1 # cat /sys/devices/pci0000:16/0000:16:02.0/0000:18:00.1/numa_node 0
예제 heat 템플릿에서 physnet 설정을 확인합니다.
NeutronBridgeMappings: 'physnet1:br-physnet1' NeutronPhysnetNUMANodesMapping: {physnet1: [0] } - type: ovs_user_bridge name: br-physnet1 mtu: 9000 members: - type: ovs_dpdk_port name: dpdk2 members: - type: interface name: eno2
검증
다음 단계에 따라 NUMA 인식 vSwitch를 테스트합니다.
/var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf
파일의 구성을 확인합니다.[neutron_physnet_tenant] numa_nodes=1 [neutron_tunnel] numa_nodes=1
lscpu
명령을 사용하여 새 구성을 확인합니다.$ lscpu
- 적절한 네트워크에 연결된 NIC를 사용하여 VM을 시작합니다.