12.6. 연결된 Mellanox 가상 기능을 사용하여 가상 머신 실시간 마이그레이션


지원되는 Mellanox 네트워킹 장치의 연결된 VF(가상 기능)를 사용하여 VM(가상 머신)을 실시간 마이그레이션할 수 있습니다.

Red Hat은 Mellanox 네트워킹 장치의 VF를 사용하여 VM 실시간 마이그레이션의 일반적인 기능을 구현합니다. 그러나 기능은 특정 Mellanox 장치 모델 및 펌웨어 버전에 따라 다릅니다.

현재 VF 마이그레이션은 Mellanox CX-7 네트워킹 장치에서만 지원됩니다.

Mellanox CX-7 네트워킹 장치의 VF는 새 mlx5_vfio_pci 드라이버를 사용하여 실시간 마이그레이션에 필요한 기능을 추가하고 libvirt 는 새 드라이버를 VF에 자동으로 바인딩합니다.

Red Hat은 포함된 mlx5_vfio_pci 드라이버에서만 Mellanox VF 실시간 마이그레이션을 직접 지원합니다.

제한

일부 가상화 기능은 연결된 가상 기능을 사용하여 VM을 실시간 마이그레이션할 때 사용할 수 없습니다.

  • VM의 더티 메모리 페이지 비율 계산.

    현재 Mellanox VF가 연결된 VM을 마이그레이션할 때 virsh domjobinfovirsh domdirtyrate-calc 명령에서 제공하는 실시간 마이그레이션 데이터 및 통계는 계산이 연결된 VF의 영향을 주지 않고 게스트 RAM만 계산하기 때문에 부정확합니다.

  • 복사 후 실시간 마이그레이션 사용.
  • VM에서 vIOMMU(가상 I/O Memory Management Unit) 장치 사용.

Mellanox CX-7 네트워킹 장치에 특정한 추가 제한 사항:

  • 동일한 PSID(Parameter-Set Identification) 및 동일한 펌웨어 버전이 있는 CX-7 장치는 소스 및 대상 호스트 둘 다에서 사용해야 합니다.

    다음 명령을 사용하여 장치의 PSID를 확인할 수 있습니다.

    # mstflint -d <device_pci_address> query | grep -i PSID
    
    PSID: MT_1090111019
    Copy to Clipboard Toggle word wrap
  • 하나의 CX-7 물리적 함수에서는 동시에 실시간 마이그레이션을 위해 최대 4개의 VF를 사용할 수 있습니다. 예를 들어 4개의 VF가 연결된 VM 한 개 또는 각 VM에 하나의 VF가 연결된 4개의 VM을 마이그레이션할 수 있습니다.

사전 요구 사항

  • Mellanox CX-7 네트워킹 장치가 28.36.1010 보다 크거나 같은 펌웨어 버전이 있습니다.

    지원되는 펌웨어 버전에 대한 자세한 내용은 Mellanox 설명서 를 참조하고 최신 버전의 펌웨어를 사용하고 있는지 확인하십시오.

  • 호스트는 Intel 64, AMD64 또는 ARM 64 CPU 아키텍처를 사용합니다.
  • 소스 호스트의 Mellanox 펌웨어 버전은 대상 호스트의 Mellanox 펌웨어 버전과 동일해야 합니다.
  • mstflint 패키지는 소스 및 대상 호스트 모두에 설치됩니다.

    # dnf install mstflint
    Copy to Clipboard Toggle word wrap
  • Mellanox CX-7 네트워킹 장치에는 VF_MIGRATION_MODEMIGRATION_ENABLED 로 설정되어 있습니다.

    # mstconfig -d <device_pci_address> query | grep -i VF_migration
    
    VF_MIGRATION_MODE                           MIGRATION_ENABLED(2)
    Copy to Clipboard Toggle word wrap
    • 다음 명령을 사용하여 VF_MIGRATION_MODEMIGRATION_ENABLED 로 설정할 수 있습니다.

      # mstconfig -d <device_pci_address> set VF_MIGRATION_MODE=2
      Copy to Clipboard Toggle word wrap
  • openvswitch 패키지는 소스 및 대상 호스트 모두에 설치됩니다.

    # dnf install openvswitch
    Copy to Clipboard Toggle word wrap
  • 모든 일반 SR-IOV 장치 사전 요구 사항입니다. 자세한 내용은 가상 머신에 SR-IOV 네트워킹 장치 연결을참조하십시오.
  • 모든 일반 VM 마이그레이션 사전 요구 사항입니다. 자세한 내용은 명령줄을 사용하여 가상 머신 마이그레이션을참조하십시오.

프로세스

  1. 소스 호스트에서 Mellanox 네트워킹 장치를 switchdev 모드로 설정합니다.

    # devlink dev eswitch set pci/<device_pci_address> mode switchdev
    Copy to Clipboard Toggle word wrap
  2. 소스 호스트에서 Mellanox 장치에 가상 기능을 생성합니다.

    # echo 1 > /sys/bus/pci/devices/0000\:e1\:00.0/sriov_numvfs
    Copy to Clipboard Toggle word wrap

    파일 경로의 /0000\:e1\:00.0/ 부분은 장치의 PCI 주소를 기반으로 합니다. 예에서는 0000:e1:00.0입니다.

  3. 소스 호스트에서 드라이버에서 VF를 바인딩 해제합니다.

    # virsh nodedev-detach <vf_pci_address> --driver pci-stub
    Copy to Clipboard Toggle word wrap

    다음 명령을 사용하여 VF의 PCI 주소를 볼 수 있습니다.

    # lshw -c network -businfo
    
    Bus info            Device         Class          Description
    =============================================================================
    pci@0000:e1:00.0    enp225s0np0    network        MT2910 Family [ConnectX-7]
    pci@0000:e1:00.1    enp225s0v0     network        ConnectX Family mlx5Gen Virtual Function
    Copy to Clipboard Toggle word wrap
  4. 소스 호스트에서 VF의 마이그레이션 기능을 활성화합니다.

    # devlink port function set pci/0000:e1:00.0/1 migratable enable
    Copy to Clipboard Toggle word wrap

    이 예에서 pci/0000:e1:00.0/1 은 지정된 PCI 주소가 있는 Mellanox 장치의 첫 번째 VF를 나타냅니다.

  5. 소스 호스트에서 VF 마이그레이션을 위해 OVS(Open vSwitch)를 구성합니다. Mellanox 장치가 switchdev 모드에 있는 경우 네트워크를 통해 데이터를 전송할 수 없습니다.

    1. openvswitch 서비스가 실행 중인지 확인합니다.

      # systemctl start openvswitch
      Copy to Clipboard Toggle word wrap
    2. 하드웨어 오프로드를 활성화하여 네트워킹 성능을 개선할 수 있습니다.

      # ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
      Copy to Clipboard Toggle word wrap
    3. 마이그레이션 중에 네트워크 연결이 열린 상태로 유지되도록 최대 유휴 시간을 늘립니다.

      # ovs-vsctl set Open_vSwitch . other_config:max-idle=300000
      Copy to Clipboard Toggle word wrap
    4. OVS 인스턴스에 새 브릿지를 만듭니다.

      # ovs-vsctl add-br <bridge_name>
      Copy to Clipboard Toggle word wrap
    5. openvswitch 서비스를 다시 시작합니다.

      # systemctl restart openvswitch
      Copy to Clipboard Toggle word wrap
    6. 물리적 Mellanox 장치를 OVS 브리지에 추가합니다.

      # ovs-vsctl add-port <bridge_name> enp225s0np0
      Copy to Clipboard Toggle word wrap

      이 예에서 enp225s0np0 은 Mellanox 장치의 네트워크 인터페이스 이름입니다.

    7. Mellanox 장치의 VF를 OVS 브리지에 추가합니다.

      # ovs-vsctl add-port <bridge_name> enp225s0npf0vf0
      Copy to Clipboard Toggle word wrap

      이 예에서 enp225s0npf0vff0 은 VF의 네트워크 인터페이스 이름입니다.

  6. 대상 호스트에서 1-5단계를 반복합니다.
  7. 소스 호스트에서 mlx_vf.xml 과 같은 새 파일을 열고 VF의 다음 XML 구성을 추가합니다.

     <interface type='hostdev' managed='yes'>
          <mac address='52:54:00:56:8c:f7'/>
          <source>
            <address type='pci' domain='0x0000' bus='0xe1' slot='0x00' function='0x1'/>
          </source>
     </interface>
    Copy to Clipboard Toggle word wrap

    이 예에서는 VF의 통과를 VM의 네트워크 인터페이스로 구성합니다. MAC 주소가 고유한지 확인하고 소스 호스트에서 VF의 PCI 주소를 사용합니다.

  8. 소스 호스트에서 VF XML 파일을 VM에 연결합니다.

    # virsh attach-device <vm_name> mlx_vf.xml --live --config
    Copy to Clipboard Toggle word wrap

    이 예제에서 mlx_vf.xml 은 VF 구성이 포함된 XML 파일의 이름입니다. 장치를 실행 중인 VM에 연결하려면 --live 옵션을 사용합니다.

  9. 소스 호스트에서 연결된 VF를 사용하여 실행 중인 VM의 실시간 마이그레이션을 시작합니다.

    # virsh migrate --live --domain <vm_name> --desturi qemu+ssh://<destination_host_ip_address>/system
    Copy to Clipboard Toggle word wrap

    실시간 마이그레이션 수행에 대한 자세한 내용은 명령줄을 사용하여 가상 머신 마이그레이션을 참조하십시오.

검증

  1. 마이그레이션된 VM에서 Mellanox VF의 네트워크 인터페이스 이름을 확인합니다.

    # ifconfig
    
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::a00:27ff:fe4e:66a1  prefixlen 64  scopeid 0x20<link>
            ether 08:00:27:4e:66:a1  txqueuelen 1000  (Ethernet)
            RX packets 100000  bytes 6543210 (6.5 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 100000  bytes 6543210 (6.5 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    enp4s0f0v0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255
            inet6 fe80::a00:27ff:fe4e:66c3  prefixlen 64  scopeid 0x20<link>
            ether 08:00:27:4e:66:c3  txqueuelen 1000  (Ethernet)
            RX packets 200000  bytes 12345678 (12.3 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 200000  bytes 12345678 (12.3 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    Copy to Clipboard Toggle word wrap
  2. 마이그레이션된 VM에서 Mellanox VF가 작동하는지 확인합니다. 예를 들면 다음과 같습니다.

    # ping -I <VF_interface_name> 8.8.8.8
    
    PING 8.8.8.8 (8.8.8.8) from 192.168.3.10 <VF_interface_name>: 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=27.4 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=26.9 ms
    
    --- 8.8.8.8 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 26.944/27.046/27.148/0.102 ms
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat