1.3. 하이퍼컨버지드 노드에서 리소스 격리 구성
하이퍼컨버지드 노드에서 Ceph OSD 및 Compute 서비스를 배치하면 Red Hat Ceph Storage와 Compute 서비스 간에 리소스 경합이 발생할 수 있으므로 동일한 호스트에서 서로의 존재를 인식하지 못합니다. 리소스 경합으로 인해 서비스 성능이 저하될 수 있으며, 이 경우 하이퍼컨버지의 이점을 오프셋할 수 있습니다.
경합을 방지하려면 Ceph 및 Compute 서비스의 리소스 격리를 구성해야 합니다.
절차
선택 사항: 컴퓨팅 환경 파일에 다음 매개변수를 추가하여 자동 생성된 Compute 설정을 재정의합니다.
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: <ram> NovaCPUAllocationRatio: <ratio>
-
<
ram
>을 하이퍼컨버지드 노드의 Ceph OSD 서비스 및 인스턴스 오버헤드(MB)에 예약할 RAM의 양으로 바꿉니다. 인스턴스
를 배포할 컴퓨팅
노드를 선택할 때 Compute 스케줄러에서 사용해야 하는 비율로 <ratio>를 바꿉니다.자동 생성된 Compute 설정에 대한 자세한 내용은 Compute 서비스에 예약할 CPU 및 메모리 리소스를 자동으로 생성하는 프로세스를 참조하십시오.
-
<
Red Hat Ceph Storage의 메모리 리소스를 예약하려면
/home/stack/templates/storage-container-config.yaml
에서is_hci
를true
로 설정합니다.parameter_defaults: CephAnsibleExtraConfig: is_hci: true
이를 통해
ceph-ansible
은 HCI 배포에 대한osd_memory_target
매개변수 설정을 자동으로 조정하여 Red Hat Ceph Storage에 대한 메모리 리소스를 예약하고 Ceph OSD의 메모리 증가를 줄일 수 있습니다.주의Red Hat은
ceph_osd_docker_memory_limit
매개변수를 직접 덮어쓰는 것을 권장하지 않습니다.참고ceph-ansible 3.2에서는 FileStore 또는 BlueStore 백엔드의 사용 여부에 관계없이 Ansible에서 검색한 대로
ceph_osd_docker_memory_limit
가 자동으로 호스트의 최대 메모리로 설정됩니다.선택 사항: 기본적으로
ceph-ansible
은 각 Ceph OSD에 대해 하나의 vCPU를 예약합니다. Ceph OSD당 두 개 이상의 CPU가 필요한 경우/home/stack/templates/storage-container-config.yaml
에 다음 구성을 추가합니다.parameter_defaults: CephAnsibleExtraConfig: ceph_osd_docker_cpu_limit: <cpu_limit>
&
lt;cpu_limit&
gt;를 각 Ceph OSD에 예약할 CPU 수로 바꿉니다.하드웨어 및 워크로드를 기반으로 CPU 리소스를 조정하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage Hardware Selection Guide 를 참조하십시오.
선택 사항: Ceph 환경 파일에 다음 매개변수를 추가하여 Ceph OSD를 제거할 때 Red Hat Ceph Storage 백필 및 복구 작업의 우선 순위를 줄입니다.
parameter_defaults: CephConfigOverrides: osd_recovery_op_priority: <priority_value> osd_recovery_max_active: <no_active_recovery_requests> osd_max_backfills: <max_no_backfills>
-
OSD 클라이언트 OP 우선 순위에 따라 <
priority_value
>를 복구 작업의 우선 순위로 바꿉니다. -
&
lt;no_active_recovery_requests
>를 OSD당 활성 복구 요청 수로 한 번에 바꿉니다. &
lt;max_no_backfills
>를 단일 OSD에서 또는 단일 OSD에서 허용된 최대 백필 수로 바꿉니다.기본 Red Hat Ceph Storage 백필 및 복구 옵션에 대한 자세한 내용은 Red Hat Ceph Storage 백필 및 복구 작업 을 참조하십시오.
-
OSD 클라이언트 OP 우선 순위에 따라 <
1.3.1. 컴퓨팅 서비스에 예약할 CPU 및 메모리 리소스를 자동 생성하는 프로세스
director는 배포 중에 하이퍼컨버지드 노드에서 리소스 제약 조건을 구성하기 위한 기본 계획 환경 파일을 제공합니다. 이 계획 환경 파일은 OpenStack Workflow에 다음 프로세스를 완료하도록 지시합니다.
- 하드웨어 노드 검사 중에 수집된 하드웨어 인트로스펙션 데이터를 검색합니다.
- 해당 데이터를 기반으로 하이퍼컨버지드 노드의 Compute에 대한 최적의 CPU 및 메모리 할당 워크로드를 계산합니다.
-
이러한 제약 조건을 구성하고 Compute에 CPU 및 메모리 리소스를 예약하는 데 필요한 매개변수를 자동으로 생성합니다. 이러한 매개변수는
plan-environment-derived-params.yaml
파일의hci_profile_config
섹션에 정의되어 있습니다.
각 워크로드 프로필의 average_guest_memory_size_in_mb
및 average_guest_cpu_utilization_percentage
매개변수는 Compute의 reserved_host_memory
및 cpu_allocation_ratio
설정에 대한 값을 계산하는 데 사용됩니다.
컴퓨팅 환경 파일에 다음 매개변수를 추가하여 자동 생성된 Compute 설정을 덮어쓸 수 있습니다.
자동 생성된 nova.conf 매개변수 | 컴퓨팅 환경 파일 덮어쓰기 | 설명 |
---|---|---|
|
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: 181000 | 하이퍼컨버지드 노드에서 Ceph OSD 서비스 및 게스트당 인스턴스 오버헤드로 예약해야 하는 RAM 양을 설정합니다. |
|
parameter_defaults: ComputeHCIParameters: NovaCPUAllocationRatio: 8.2 | 인스턴스를 배포할 컴퓨팅 노드를 선택할 때 계산 스케줄러에서 사용해야 하는 비율을 설정합니다. |
이러한 덮어쓰기는 모든 하이퍼컨버지드 노드, 즉 ComputeHCI 역할을 사용하는 모든 노드에 적용됩니다. NovaReservedHostMemory
및 NovaCPUAllocationRatio
에 대한 최적 값을 수동으로 확인하는 방법에 대한 자세한 내용은 OpenStack Workflow Compute CPU 및 메모리 계산기 를 참조하십시오.
다음 스크립트를 사용하여 하이퍼컨버지드 노드에 대한 적절한 기준 NovaReservedHostMemory
및 NovaCPUAllocationRatio
값을 계산할 수 있습니다.