다음을 통해 공유


Microsoft Azure 네트워크 어댑터가 있는 Linux VM

MANA(Microsoft Azure 네트워크 어댑터)를 사용하여 Azure에서 Linux VM(가상 머신)의 성능과 가용성을 개선하는 방법을 알아봅니다.

Windows 지원에 대해서는 Microsoft Azure 네트워크 어댑터가 포함된 Windows VM을 참조하세요.

MANA에 대한 자세한 내용은 Microsoft Azure 네트워크 어댑터 개요를 참조하세요.

Important

MANA는 현재 미리 보기 상태입니다. 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 보충 사용 약관을 참조하세요.

지원되는 Azure Marketplace 이미지

Azure Marketplace의 여러 Linux 이미지에는 MANA의 이더넷 드라이버에 대한 지원이 기본 제공되어 있습니다.

  • Ubuntu 20.04 LTS
  • Ubuntu 22.04 LTS
  • Red Hat Enterprise Linux 8.8
  • Red Hat Enterprise Linux 9.2
  • SUSE Linux Enterprise Server 15 SP4
  • Debian 12 "Bookworm"
  • Oracle Linux 9.0

참고 항목

Azure Marketplace의 현재 Linux 배포판은 RDMA/InfiniBand 및 DPDK(데이터 평면 개발 키트)에 필요한 6.2 이상의 커널에는 없습니다. Azure Marketplace의 기존 Linux 이미지를 사용하는 경우 커널을 업데이트해야 합니다.

MANA 지원 현황 확인

MANA 기능 집합에는 호스트 하드웨어와 VM 소프트웨어 구성 요소가 모두 필요하므로 MANA가 VM에서 제대로 작동하는지 확인하려면 다음 검사를 수행해야 합니다.

Azure Portal 검사

하나 이상의 NIC에서 가속화된 네트워킹이 사용하도록 설정되어 있는지 확인합니다.

  1. VM에 대한 Azure Portal 페이지의 왼쪽 메뉴에서 네트워킹을 선택합니다.
  2. 네트워킹 설정 페이지에서 네트워크 인터페이스로 NIC를 선택합니다.
  3. NIC 개요 창의 Essentials 아래에서 가속화된 네트워킹사용 또는 사용 안 함으로 설정되어 있는지 확인합니다.

하드웨어 검사

가속화된 네트워킹을 사용하도록 설정하면 기본 MANA NIC를 가상 머신의 PCI 디바이스로 식별할 수 있습니다.

$ lspci
7870:00:00.0 Ethernet controller: Microsoft Corporation Device 00ba

커널 버전 검사

VM에 MANA 이더넷 드라이버가 설치되어 있는지 확인합니다.

$ grep /mana*.ko /lib/modules/$(uname -r)/modules.builtin || find /lib/modules/$(uname -r)/kernel -name mana*.ko*

kernel/drivers/net/ethernet/microsoft/mana/mana.ko

커널 업데이트

MANA용 이더넷 드라이버는 커널 버전 5.15 이상에 포함되어 있습니다. 커널 버전 6.2에는 InfiniBand/RDMA 및 DPDK와 같은 기능에 대한 Linux 지원이 포함되어 있습니다. 이전 또는 포크된 커널 버전(5.15 및 6.1)에는 백포트 지원이 필요합니다.

VM의 Linux 커널을 업데이트하려면 특정 배포판에 대한 설명서를 확인합니다.

트래픽이 MANA를 통해 흐르고 있는지 확인

가속화된 네트워킹을 사용하도록 설정하여 VM에 대해 구성하는 각 vNIC(가상 NIC)는 VM에 두 개의 네트워크 인터페이스를 생성합니다. 다음 예에서는 단일 NIC 구성의 eth0enP30832p0s0을 보여 줍니다.

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:22:48:71:c2:8c brd ff:ff:ff:ff:ff:ff
    alias Network Device
3: enP30832p0s0: <BROADCAST,MULTICAST,CHILD,UP,LOWER_UP> mtu 1500 qdisc mq master eth0 state UP mode DEFAULT group default qlen 1000
    link/ether 00:22:48:71:c2:8c brd ff:ff:ff:ff:ff:ff
    altname enP30832s1296119428

eth0 인터페이스는 NetVSC(네트워크 가상 서비스 클라이언트) 드라이버가 제공하는 기본 포트이자 vNIC용 라우팅 가능한 인터페이스입니다. 연결된 enP* 인터페이스는 MANA VF(가상 함수)을 나타내며 이 경우 eth0 인터페이스에 바인딩됩니다. 라우팅 가능한 ethN 인터페이스에서 MANA VF의 패킷 및 바이트 수를 가져올 수 있습니다.

$ ethtool -S eth0 | grep -E "^[ \t]+vf"
     vf_rx_packets: 226418
     vf_rx_bytes: 99557501
     vf_tx_packets: 300422
     vf_tx_bytes: 76231291
     vf_tx_dropped: 0

다음 단계