11장. 인스턴스에 영구 메모리를 제공하도록 NVDIMM 컴퓨팅 노드 구성
비발성 듀얼 인라인 메모리 모듈(NVDIMM)은 DRAM에 PMEM(영구 메모리)을 제공하는 기술입니다. 표준 컴퓨터 메모리는 전기 전력 손실 후 데이터를 손실합니다. NVDIMM은 전기 전력 손실 후에도 데이터를 유지 관리합니다. PMEM을 사용하는 인스턴스는 전원 주기 동안 애플리케이션 데이터를 유지하는 대규모 연속 메모리 세그먼트를 로드할 수 있는 기능을 애플리케이션에 제공할 수 있습니다. 이 기능은 대량의 메모리를 요청하는 HPC(고성능 컴퓨팅)에 유용합니다.
클라우드 관리자는 NVDIMM 하드웨어가 있는 컴퓨팅 노드에서 PMEM 네임스페이스를 생성하고 구성하여 가상 PMEM(vPMEM)으로 인스턴스에서 PMEM을 사용할 수 있습니다. 그런 다음 클라우드 사용자는 종료 후 인스턴스 콘텐츠를 유지해야 할 때 vPMEM을 요청하는 인스턴스를 생성할 수 있습니다.
클라우드 사용자가 PMEM을 사용하는 인스턴스를 생성할 수 있도록 하려면 다음 절차를 완료해야 합니다.
- PMEM을 위한 컴퓨팅 노드 지정.
- NVDIMM 하드웨어가 있는 PMEM의 컴퓨팅 노드를 구성합니다.
- Overcloud를 배포합니다.
- vPMEM이 있는 인스턴스를 시작하기 위한 PMEM 플레이버를 만듭니다.
NVDIMM 하드웨어가 제한된 경우 PMEM Compute 노드에서 예약을 최적화하도록 호스트 집계를 구성할 수도 있습니다. PMEM Compute 노드에서 vPMEM을 요청하는 인스턴스만 예약하려면 NVDIMM 하드웨어가 있는 컴퓨팅 노드의 호스트 집계를 생성하고 호스트 집계에 PMEM 인스턴스만 배치하도록 Compute 스케줄러를 구성합니다. 자세한 내용은 호스트 집계를 격리 하여 호스트 집계 및 필터링 생성 및 관리를 참조하십시오.
사전 요구 사항
- 컴퓨팅 노드에는 Intel® Optane™ DC Persistent Memory와 같은 영구 메모리 하드웨어가 있습니다.
- PMEM 하드웨어 장치에서 backend NVDIMM 리전에 PMEM 네임스페이스를 생성하도록 구성했습니다. Intel에서 제공하는 ipmctl 도구를 사용하여 PMEM 하드웨어를 구성할 수 있습니다.
PMEM 장치 사용 시 제한 사항
- vPMEM을 사용하는 인스턴스를 콜드 마이그레이션, 실시간 마이그레이션, 크기 조정 또는 일시 중단할 수 없습니다.
- RHEL8이 실행되는 인스턴스만 vPMEM을 사용할 수 있습니다.
- vPMEM 인스턴스를 다시 빌드할 때 인스턴스의 초기 상태를 복원하도록 영구 메모리 네임스페이스가 제거됩니다.
- 새 플레이버를 사용하여 인스턴스 크기 조정 시 원래 가상 영구 메모리의 콘텐츠가 새 가상 영구 메모리에 복사되지 않습니다.
- 가상 영구 메모리 핫플러그는 지원되지 않습니다.
- vPMEM 인스턴스의 스냅샷을 생성할 때 가상 영구 이미지가 포함되지 않습니다.
11.1. PMEM을 위한 컴퓨팅 노드 지정 링크 복사링크가 클립보드에 복사되었습니다!
PMEM 워크로드에 대한 Compute 노드를 지정하려면 PMEM 역할을 구성하는 새 역할 파일을 만들고, NVDIMM Compute 노드를 태그하는 데 사용할 PMEM의 새 오버클라우드 플레이버 및 리소스 클래스를 구성해야 합니다.
절차
-
stack사용자로 언더클라우드에 로그인합니다. stackrc파일을 소싱합니다.source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Controller,Compute 및 ComputePMEM역할이 포함된roles_data_pmem.yaml이라는 새 역할 데이터 파일을 생성합니다.openstack overcloud roles \ generate -o /home/stack/templates/roles_data_pmem.yaml \ Compute:ComputePMEM Compute Controller
(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_pmem.yaml \ Compute:ComputePMEM Compute ControllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow roles_data_pmem.yaml을 열고 다음 매개변수 및 섹션을 편집하거나 추가합니다.Expand 섹션/패랜드 현재 값 새 값 역할 설명
역할: 컴퓨팅역할: ComputePMEM역할 이름
name: 컴퓨팅name: ComputePMEMdescription기본 컴퓨팅 노드 역할PMEM 계산 노드 역할HostnameFormatDefault%stackname%-novacompute-%index%%stackname%-novacomputepmem-%index%deprecated_nic_config_namecompute.yamlcompute-pmem.yaml-
노드 정의 템플릿 node.
json 또는 node.yaml에 추가하여 오버클라우드에 NVDIMM 컴퓨팅 노드를등록합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드용 노드 등록을 참조하십시오. 노드 하드웨어를 검사합니다.
openstack overcloud node introspect --all-manageable --provide
(undercloud)$ openstack overcloud node introspect --all-manageable --provideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 Director 설치 및 사용 가이드 의 베어 메탈 노드 하드웨어 인벤토리 생성을 참조하십시오.
PMEM Compute 노드에 대한
compute-pmem오버클라우드 플레이버를 생성합니다.openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-pmem
(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-pmemCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ram_size_mb>를 베어 메탈 노드의 RAM(MB)으로 바꿉니다. -
<disk_size_gb>를 베어 메탈 노드의 디스크 크기(GB)로 바꿉니다. <no_vcpus>를 베어 메탈 노드의 CPU 수로 바꿉니다.참고이러한 속성은 인스턴스를 예약하는 데 사용되지 않습니다. 그러나 계산 스케줄러는 디스크 크기를 사용하여 루트 파티션 크기를 결정합니다.
-
노드 목록을 검색하여 UUID를 확인합니다.
openstack baremetal node list
(undercloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 PMEM 리소스 클래스를 사용하여 PMEM 워크로드를 지정하려는 각 베어 메탈 노드에 태그를 지정합니다.
openstack baremetal node set \ --resource-class baremetal.PMEM <node>
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.PMEM <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node>를 베어 메탈 노드의 ID로 바꿉니다.compute-pmem플레이버를 사용자 지정 PMEM 리소스 클래스와 연결합니다.openstack flavor set \ --property resources:CUSTOM_BAREMETAL_PMEM=1 \ compute-pmem
(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_PMEM=1 \ compute-pmemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 베어 메탈 서비스 노드의 리소스 클래스에 해당하는 사용자 지정 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하려면 모든 문장 부호를 밑줄로 바꾸고 접두사는
CUSTOM_로 바꿉니다.참고플레이버는 베어 메탈 리소스 클래스의 인스턴스 하나만 요청할 수 있습니다.
Compute 스케줄러가 베어 메탈 플레이버 속성을 사용하여 인스턴스를 예약하지 못하도록 다음 플레이버 속성을 설정합니다.
openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-pmem
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-pmemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 매개변수를
node-info.yaml파일에 추가하여 PMEM 컴퓨팅 노드 수와 PMEM 지정 컴퓨팅 노드에 사용할 플레이버를 지정합니다.parameter_defaults: OvercloudComputePMEMFlavor: compute-pmem ComputePMEMCount: 3 #set to the no of NVDIMM devices you have
parameter_defaults: OvercloudComputePMEMFlavor: compute-pmem ComputePMEMCount: 3 #set to the no of NVDIMM devices you haveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 역할이 생성되었는지 확인하려면 다음 명령을 입력합니다.
openstack overcloud profiles list
(undercloud)$ openstack overcloud profiles listCopy to Clipboard Copied! Toggle word wrap Toggle overflow