11.8. DPDK를 사용하는 HCI 오버클라우드 생성
최적화된 리소스 사용을 위해 Compute 및 Ceph Storage 서비스를 공동 배치하고 구성하여 하이퍼컨버지드 노드를 사용하여 NFV 인프라를 배포할 수 있습니다.
하이퍼 컨버지드 인프라(HCI)에 대한 자세한 내용은 하이퍼컨버지드 인프라 배포를 참조하십시오.
다음 섹션에서는 다양한 구성의 예를 제공합니다.
11.8.1. NUMA 노드 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
성능 향상을 위해 NUMA-0 및 VNF와 같은 하나의 NUMA 노드에 테넌트 네트워크와 Ceph 개체 서비스 데몬(예: NUMA-1)을 다른 NUMA 노드에 배치하십시오.
CPU 할당:
| NUMA-0 | NUMA-1 |
|---|---|
| Ceph OSD 수 * 4 HT | VNF 및 비NFV VM용 게스트 vCPU |
| DPDK lcore - 2 HT | DPDK lcore - 2 HT |
| DPDK PMD - 2 HT | DPDK PMD - 2 HT |
CPU 할당의 예:
| NUMA-0 | NUMA-1 | |
|---|---|---|
| Ceph OSD | 32,34,36,38,40,42,76,78,80,82,84,86 | |
| DPDK-lcore | 0,44 | 1,45 |
| DPDK-pmd | 2,46 | 3,47 |
| Nova | 5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87 |
11.8.2. Ceph 구성 파일 예 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 샘플 Red Hat Ceph Storage 구성 파일에 대해 설명합니다. Red Hat OpenStack Platform 환경에 적합한 값을 대체하여 구성 파일을 모델링할 수 있습니다.
다음 매개 변수를 사용하여 Ceph OSD(오브젝트 스토리지 데몬) 프로세스의 CPU 리소스를 할당합니다. 여기에 표시된 값은 예입니다. 워크로드 및 하드웨어에 따라 값을 적절하게 조정합니다.
- 1
osd_numa_node: Ceph 프로세스의 선호도를 NUMA 노드로 설정합니다(예:NUMA-0의 경우0,NUMA-1의 경우1등).-1은 선호도를 NUMA 노드로 설정합니다.이 예에서
osd_numa_node는NUMA-0으로 설정됩니다. 11.8.3절. “DPDK 구성 파일의 예” 에 표시된 대로IsolCpusList에는OvsPmdCoreList의 요소가 제거된 후NUMA-1의 홀수 CPU가 포함되어 있습니다. 대기 시간에 민감한 Compute 서비스(nova) 워크로드는NUMA-1에서 호스팅되므로NUMA-0에서 Ceph 워크로드를 격리해야 합니다. 이 예에서는 stroage 네트워크의 디스크 컨트롤러 및 네트워크 인터페이스가NUMA-0에 있다고 가정합니다.- 2
osd_memory_target_autotune: true로 설정하면 OSD 데몬이osd_memory_target구성 옵션을 기반으로 메모리 사용을 조정합니다.- 3
autotune_memory_target_ratio: OSD에 메모리를 할당하는 데 사용됩니다. 기본값은 Cryostat입니다.시스템의 총 RAM의 70%는 시작점이며, 자동 조정되지 않은 Ceph 데몬이 사용하는 메모리는 모두 차감됩니다.
osd_memory_target_autotune이 모든 OSD에 대해 true인 경우 나머지 메모리는 OSD로 나뉩니다. HCI 배포의 경우 Compute 서비스에 더 많은 메모리를 사용할 수 있도록mgr/cephadm/autotune_memory_target_ratio를0.2로 설정할 수 있습니다. 각 OSD에 5GB 이상의 메모리가 있는지 확인하기 위해 필요에 따라 조정합니다.
11.8.3. DPDK 구성 파일의 예 링크 복사링크가 클립보드에 복사되었습니다!
- 1
- KernelArgs:
hugepages를 계산하려면NovaReservedHostMemory매개변수 값을 총 메모리에서 제거합니다. - 2
- IsolCpusList: 이 매개변수를 사용하여 호스트 프로세스에서 격리할 CPU 코어 세트를 할당합니다.
OvsPmdCoreList매개변수의 값을NovaComputeCpuDedicatedSet매개변수의 값에 추가하여IsolCpusList매개변수 값을 계산합니다. - 3
- OvsDpdkSocketMemory:
OvsDpdkSocketMemory매개변수를 사용하여 NUMA 노드당 hugepage 풀에서 사전 할당하기 위해 MB 단위로 메모리 양을 지정합니다. OVS-DPDK 매개변수 계산에 대한 자세한 내용은 OVS-DPDK 매개변수를 참조하십시오. - 4
- OvsPmdCoreList: 이 매개변수를 사용하여 DPDK 폴링 모드 드라이버(PMD)에 사용되는 CPU 코어를 지정합니다. DPDK 인터페이스의 로컬 NUMA 노드와 연결된 CPU 코어를 선택합니다. 각 NUMA 노드에 대해 2개의 HT 형제 스레드를 할당하여
OvsPmdCoreList매개변수 값을 계산합니다.
11.8.4. nova 구성 파일의 예 링크 복사링크가 클립보드에 복사되었습니다!
- 1
- NovaReservedHugePages:
NovaReservedHugePages매개변수를 사용하여 hugepage 풀에서 메모리를 MB로 미리 할당합니다. 이는OvsDpdkSocketMemory매개변수 값과 동일한 메모리 합계입니다. - 2
- NovaReservedHostMemory:
NovaReservedHostMemory매개변수를 사용하여 호스트의 작업에 메모리를 MB로 예약합니다. 다음 지침을 사용하여 예약해야 하는 메모리 양을 계산합니다.- 각 OSD에 대해 5GB입니다.
- 각 VM에 대해 0.5GB 오버헤드입니다.
- 일반 호스트 처리를 위한 4GB. NUMA 간 OSD 작업으로 인한 성능 저하를 방지하기 위해 충분한 메모리를 할당해야 합니다.
- 3
- NovaComputeCpuDedicatedSet:
OvsPmdCoreList또는NovaComputeCpuDedicatedSet매개변수를 사용하여Ceph_osd_docker_cpuset_cpus에서 찾을 수 없는 CPU를 나열합니다. CPU는 DPDK NIC와 동일한 NUMA 노드에 있어야 합니다.
11.8.5. HCI-DPDK 배포에 권장되는 구성 링크 복사링크가 클립보드에 복사되었습니다!
| 블록 장치 유형 | 장치당 OSD, 메모리, vCPU |
|---|---|
| NVMe |
메모리 : 장치당 OSD |
| SSD |
메모리 : 장치당 OSD |
| HDD |
메모리 : 장치당 OSD |
다음 기능에 동일한 NUMA 노드를 사용합니다.
- 디스크 컨트롤러
- 스토리지 네트워크
- 스토리지 CPU 및 메모리
DPDK 공급자 네트워크의 다음 기능에 대해 다른 NUMA 노드를 할당합니다.
- NIC
- PMD CPU
- 소켓 메모리
11.8.6. HCI-DPDK 오버클라우드 배포 링크 복사링크가 클립보드에 복사되었습니다!
DPDK를 사용하는 하이퍼컨버지드 오버클라우드를 배포하려면 다음 단계를 따르십시오.
사전 요구 사항
- RHOSP(Red Hat OpenStack Platform) 17.1 이상.
- Red Hat Ceph Storage 6.1의 최신 버전입니다.
프로세스
Controller 및 ComputeHCIOvsDpdk 역할에 대한
roles_data.yaml파일을 생성합니다.openstack overcloud roles generate -o ~/<templates>/roles_data.yaml \ Controller ComputeHCIOvsDpdk
$ openstack overcloud roles generate -o ~/<templates>/roles_data.yaml \ Controller ComputeHCIOvsDpdkCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
openstack flavor create및openstack flavor set명령을 사용하여 새 플레이버를 생성하고 구성합니다. RHOSP director 및 Ceph 구성 파일을 사용하여 Ceph를 배포합니다.
예제
openstack overcloud ceph deploy --config initial-ceph.conf
$ openstack overcloud ceph deploy --config initial-ceph.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성한 사용자 지정
roles_data.yaml파일을 사용하여 오버클라우드를 배포합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요이 예에서는 Ceph RGW(오브젝트 스토리지) 없이 Ceph RBD(블록 스토리지)를 배포합니다. 배포에 RGW를 포함하려면
cephadm-rbd-only.yaml대신cephadm.yaml을 사용합니다.