11.3. 마이그레이션 전 작업

하나 이상의 가상 머신을 마이그레이션하기 전에 다음 단계를 수행합니다.

절차

  1. 언더클라우드에서 소스 Compute 노드 호스트 이름과 대상 Compute 노드 호스트 이름을 식별합니다.

    $ source ~/overcloudrc
    $ openstack compute service list
  2. 소스 Compute 노드의 가상 머신을 나열하고 마이그레이션하려는 가상 머신의 ID를 찾습니다.

    $ openstack server list --host [source] --all-projects

    [source]를 소스 Compute 노드의 호스트 이름으로 교체합니다.

Compute 노드 유지보수를 위한 마이그레이션 전 작업

유지보수를 위해 소스 Compute 노드를 중단하는 경우, 언더클라우드에서 소스 Compute 노드를 비활성화하여 스케줄러가 유지보수 중 소스 Compute 노드에 새 가상 머신을 할당하지 않도록 합니다.

$ openstack compute service set [source] nova-compute --disable

[source]를 소스 Compute 노드의 호스트 이름으로 교체합니다.

NUMA, CPU 고정 및 DPDK 인스턴스에 대한 마이그레이션 전 작업

NUMA, CPU 고정 또는 DPDK를 사용하는 가상 머신을 마이그레이션하는 경우, 대상 Compute 노드는 소스 Compute 노드와 동일한 하드웨어 사양 및 설정을 사용해야 합니다. 또한 소스 Compute 노드의 NUMA 토폴로지를 유지하기 위해 대상 Compute 노드에 실행 중인 가상 머신이 없어야 합니다.

참고

NUMA, CPU 고정 또는 DPDK를 사용하여 가상 머신을 마이그레이션하는 경우, /etc/nova/nova.conf 파일의 scheduler_default_filters 구성 설정에 AggregateInstanceExtraSpecsFilterNUMATopologyFilter와 같은 적절한 값을 설정해야 합니다. 환경 파일에서 NovaSchedulerDefaultFilters heat 매개변수를 설정하면 됩니다.

  1. NUMA, CPU 고정 또는 DPDK 가상 머신의 대상 Compute 노드가 비활성화되지 않은 경우 해당 노드를 비활성화하여 스케줄러가 가상 머신을 노드에 할당하지 않도록 합니다.

    $ openstack compute service set [dest] nova-compute --disable

    [dest]를 대상 Compute 노드의 호스트 이름으로 교체합니다.

  2. 여러 DPDK 또는 NUMA 가상 머신을 마이그레이션하는 경우, 소스 Compute 노드에서 이전에 마이그레이션된 가상 머신을 제외하고 대상 Compute 노드에 가상 머신이 없는지 확인합니다.

    $ openstack server list --host [dest] --all-projects

    [dest]를 대상 Compute 노드의 호스트 이름으로 교체합니다.

  3. 대상 Compute 노드에 NUMA, CPU 고정 또는 DPDK 가상 머신을 실행하기에 충분한 리소스가 있는지 확인합니다.

    $ openstack host show overcloud-compute-n
    $ ssh overcloud-compute-n
    $ numactl --hardware
    $ exit

    overcloud-compute-n을 대상 Compute 노드의 호스트 이름으로 교체합니다.

  4. 소스 또는 대상 Compute 노드에 대한 NUMA 정보를 검색하려면 필요에 따라 다음을 실행합니다.

    $ ssh root@overcloud-compute-n
    # lscpu && lscpu | grep NUMA
    # virsh nodeinfo
    # virsh capabilities
    # exit

    ssh를 사용하여 overcloud-compute-n에 연결합니다. 여기서 overcloud-compute-n은 소스 또는 대상 Compute 노드입니다.

  5. 가상 머신이 NUMA를 사용하는지 확실하지 않은 경우 가상 머신의 플레이버를 확인합니다.

    $ openstack server list -c Name -c Flavor --name [vm]

    [vm]을 가상 머신의 이름 또는 ID로 교체합니다.

    그런 다음 플레이버를 확인합니다.

    $ openstack flavor show [flavor]

    [flavor]를 플레이버의 이름 또는 ID로 교체합니다. properties 필드의 결과에 2MB, 2048 또는 1GB와 같은 any 이외의 값을 가진 hw:mem_page_size가 포함된 경우 가상 머신에서 NUMA 토폴로지를 사용합니다. properties 필드에 aggregate_instance_extra_specs:pinned='true'가 포함된 경우 가상 머신에서 CPU 고정을 사용합니다. properties 필드에 hw:numa_nodes가 포함된 경우에는 nova가 가상 머신을 특정 NUMA 노드로 제한합니다.

  6. NUMA를 사용하는 각 가상 머신에 대해 기본 Compute 노드에서 NUMA 토폴로지 정보를 검색하여, 마이그레이션이 완료된 후 대상 Compute 노드의 NUMA 토폴로지가 소스 Compute 노드의 NUMA 토폴로지를 반영하는지 확인할 수 있습니다.

    $ ssh root@overcloud-compute-n
    # virsh vcpuinfo [vm]
    # virsh numatune [vm]
    # exit

    [vm]을 가상 머신의 이름으로 교체합니다. vcpuinfo 명령은 NUMA 및 CPU 고정에 대한 세부 정보를 제공합니다. numatune 명령은 가상 머신에서 사용 중인 NUMA 노드에 대한 세부 정보를 제공합니다.