10.2. 인스턴스의 CPU 기능 플래그 구성

특정 vCPU 모델이 있는 인스턴스에 CPU 기능 플래그를 적용하도록 계산 서비스를 구성합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. stackrc 파일을 소싱합니다.

    [stack@director ~]$ source ~/stackrc
  3. 컴퓨팅 환경 파일을 엽니다.
  4. 인스턴스 CPU 모드를 구성합니다.

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: <cpu_mode>

    <cpu_mode> 를 Compute 노드에 있는 각 인스턴스의 CPU 모드로 바꿉니다. 다음 유효한 값 중 하나로 설정합니다.

    • host-model: (기본값) 호스트 컴퓨팅 노드의 CPU 모델을 사용합니다. 이 CPU 모드를 사용하여 중요한 CPU 플래그를 인스턴스에 자동으로 추가하여 보안 결함으로부터 완화를 제공합니다.
    • custom: 를 사용하여 각 인스턴스에서 사용해야 하는 특정 CPU 모델을 구성합니다.

      참고

      CPU 모드를 host-passthrough 로 설정하여 해당 컴퓨팅 노드에 호스팅된 인스턴스의 컴퓨팅 노드와 동일한 CPU 모델 및 기능 플래그를 사용할 수도 있습니다.

  5. 선택 사항: NovaLibvirtCPUMode사용자 정의로 설정하면 사용자 정의 하려는 인스턴스 CPU 모델을 구성합니다.

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: 'custom'
        NovaLibvirtCPUModels: <cpu_model>

    <cpu_model> 을 호스트에서 지원하는 CPU 모델 쉼표로 구분된 목록으로 바꿉니다. 목록에 일반적인 및 덜 고급 CPU 모델을 배치하고 더 많은 기능이 풍부한 CPU 모델을 순서대로 나열하십시오(예: SandyBridge, IvyBridge,swell, Broadwell ). 모델 이름 목록은 /usr/share/libvirt/cpu_map.xml 을 참조하거나 호스트 컴퓨팅 노드에 다음 명령을 입력합니다.

    $ sudo podman exec -it nova_libvirt virsh cpu-models <arch>

    <arch> 를 컴퓨팅 노드의 아키텍처 이름으로 바꿉니다(예: x86_64).

  6. 지정된 CPU 모델을 사용하여 인스턴스의 CPU 기능 플래그를 구성합니다.

    parameter_defaults:
      ComputeParameters:
        ...
        NovaLibvirtCPUModelExtraFlags: <cpu_feature_flags>

    <cpu_feature_flags> 를 활성화 또는 비활성화할 쉼표로 구분된 기능 플래그 목록으로 바꿉니다. 각 플래그 앞에 "+"를 추가하여 플래그를 활성화하거나 "-"를 추가하여 비활성화합니다. 접두사를 지정하지 않으면 플래그가 활성화됩니다. 지정된 CPU 모델에 대해 사용 가능한 기능 플래그 목록은 /usr/share/libvirt/cpu_map/*.xml 을 참조하십시오.

    다음 예제에서는 IvyBridgeCascadelake-Server 모델에 대해 CPU 기능 플래그 pcidssbd 를 활성화하고 기능 플래그 mtrr 를 비활성화합니다.

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: 'custom'
        NovaLibvirtCPUModels: 'IvyBridge','Cascadelake-Server'
        NovaLibvirtCPUModelExtraFlags: 'pcid,+ssbd,-mtrr'
  7. 다른 환경 파일을 사용하여 스택에 Compute 환경 파일을 추가하고 오버클라우드를 배포합니다.

    (undercloud)$ openstack overcloud deploy --templates \
     -e [your environment files] \
     -e /home/stack/templates/<compute_environment_file>.yaml