1.3. 하이퍼컨버지드 노드에서 리소스 격리 구성

하이퍼컨버지드 노드의 Ceph OSD 및 계산 서비스를 결합하면 Red Hat Ceph Storage와 Compute 서비스 간의 리소스 경합이 발생할 수 있습니다. 리소스 경합으로 인해 하이퍼컨버지스(hyconvergence)의 이점을 오프셋하는 서비스가 저하될 수 있습니다.

경합을 방지하려면 Ceph 및 Compute 서비스 모두에 대한 리소스 격리를 구성해야 합니다.

절차

  1. 선택 사항: Compute 환경 파일에 다음 매개 변수를 추가하여 자동 생성된 Compute 설정을 재정의합니다.

    parameter_defaults:
      ComputeHCIParameters:
        NovaReservedHostMemory: <ram>
        NovaCPUAllocationRatio: <ratio>
  2. Red Hat Ceph Storage의 메모리 리소스를 예약하려면 /home/stack/templates/storage-container-config.yaml에서 매개변수 is_hcitrue 로 설정합니다.

    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부터 ceph_osd_docker_memory_limit 는 파일 저장소 또는 BlueStore 백엔드 사용 여부와 관계없이 Ansible에서 검색한 대로 호스트의 최대 메모리로 자동 설정됩니다.

  3. 선택 사항: 기본적으로 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>

    <cpu_limit> 를 각 Ceph OSD에 예약할 CPU 수로 바꿉니다.

    하드웨어 및 워크로드를 기반으로 CPU 리소스를 조정하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage 하드웨어 선택 가이드를 참조하십시오.

  4. 선택 사항: 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> 를 복구 작업의 우선 순위로 바꿉니다.
    • <no_active_recovery_requests> 를 한 번에 OSD당 활성 복구 요청 수로 바꿉니다.
    • <max_no_backfills> 를 단일 OSD에 또는 단일 OSD에서 허용된 최대 백필 수로 바꿉니다.

      기본 Red Hat Ceph Storage 백필 및 복구 옵션에 대한 자세한 내용은 Red Hat Ceph Storage 백필 및 복구 작업을 참조하십시오.

1.3.1. Compute 서비스를 예약하기 위해 CPU 및 메모리 리소스를 자동화하는 프로세스

director는 배포 중에 하이퍼컨버지드 노드에서 리소스 제약 조건을 구성하는 기본 계획 환경 파일을 제공합니다. 이 계획 환경 파일은 다음 프로세스를 완료하도록 OpenStack 워크플로우에 지시합니다.

  1. 하드웨어 노드를 검사하는 동안 수집된 하드웨어 세부 검사 데이터를 검색합니다.
  2. 해당 데이터를 기반으로 하이퍼컨버지드 노드에서 컴퓨팅에 대한 최적의 CPU 및 메모리 할당 워크로드를 계산합니다.
  3. 이러한 제약 조건을 구성하고 Compute를 위해 CPU 및 메모리 리소스를 예약하는 데 필요한 매개 변수를 자동생성합니다. 이러한 매개 변수는 plan-environment-derived-params.yaml 파일의 the hci_profile_config 섹션에 정의되어 있습니다.
참고

각 워크로드 프로필의 average_guest_memory_size_in _mb 및 average_guest_cpu_utilization_percentage 매개 변수는 Compute의 reserved_host_memory 및 cpu_ allocation_ratio 설정 값을 계산하는 데 사용됩니다.

Compute 환경 파일에 다음 매개변수를 추가하여 자동 생성된 Compute 설정을 재정의할 수 있습니다.

nova.conf 매개변수 자동 생성컴퓨팅 환경 파일 덮어쓰기설명

reserved_host_memory

parameter_defaults:
  ComputeHCIParameters:
    NovaReservedHostMemory: 181000

Ceph OSD 서비스 및 하이퍼컨버지드 노드의 게스트당 인스턴스 오버헤드에 대해 예약해야 하는 RAM 양을 설정합니다.

cpu_allocation_ratio

parameter_defaults:
  ComputeHCIParameters:
    NovaCPUAllocationRatio: 8.2

인스턴스를 배포할 컴퓨팅 노드를 선택할 때 Compute 스케줄러에서 사용해야 하는 비율을 설정합니다.

이러한 재정의는 ComputeHCI 역할을 사용하는 모든 노드에 적용됩니다(즉, 모든 하이퍼컨버지드 노드). NovaReservedHostMemoryNovaCPUAllocationRatio 에 대한 최적 값을 수동으로 결정하는 방법에 대한 자세한 내용은 OpenStack Workflow Compute CPU 및 메모리 계산기 를 참조하십시오.

작은 정보

다음 스크립트를 사용하여 하이퍼컨버지드 노드에 적합한 NovaReservedHostMemoryNovaCPU AllocationRatio 값을 계산할 수 있습니다.

nova_mem_cpu_calc.py

1.3.2. Red Hat Ceph Storage 백필 및 복구 작업

Ceph OSD가 제거되면 Red Hat Ceph Storage는 백필(backfill) 및 복구 작업을 사용하여 클러스터를 리밸런싱합니다. Red Hat Ceph Storage는 배치 그룹 정책에 따라 여러 데이터 복사본을 유지하기 위해 이 작업을 수행합니다. 이러한 작업은 시스템 리소스를 사용합니다. Red Hat Ceph Storage 클러스터가 로드 중인 경우 리소스가 백필(backfill) 및 복구에 따라 성능이 저하됩니다.

OSD를 제거하는 동안 이 성능 효과를 완화하려면 백필(backfill) 및 복구 작업의 우선 순위를 줄일 수 있습니다. 이에 대한 단점은 더 적은 데이터 복제본이 더 많다는 것입니다. 이로 인해 데이터가 약간 더 위험해집니다.

다음 표에 자세히 설명된 매개 변수는 백필(backfill) 및 복구 작업의 우선 순위를 구성하는 데 사용됩니다.

매개변수설명기본값

osd_recovery_op_priority

OSD 클라이언트 OP 우선 순위를 기준으로 복구 작업의 우선 순위를 설정합니다.

3

osd_recovery_max_active

한 번에 OSD당 활성 복구 요청 수를 설정합니다. 더 많은 요청으로 복구를 가속화하지만 요청에 따라 클러스터에서 부하가 증가합니다. 대기 시간을 줄이려면 이 값을 1로 설정합니다.

3

osd_max_backfills

단일 OSD에 또는 단일 OSD에서 허용된 최대 백필 수를 설정합니다.

1