Azure CLI을 사용하여 가속 네트워킹을 사용하는 Linux 가상 머신 만들기

포털 만들기

이 문서에서는 Azure CLI를 통해 가속 네트워킹을 사용하는 가상 머신을 만드는 단계를 안내하지만, Azure Portal을 통해 가속 네트워킹을 사용하는 가상 머신 만들기도 가능합니다. 포털에서 가상 머신을 만들 때 가상 머신 만들기 블레이드에서 네트워킹 탭을 선택합니다. 이 탭에는 가속화된 네트워킹 옵션이 있습니다. 지원되는 운영 체제VM 크기를 선택한 경우 이 옵션은 자동으로 "켜기"로 채워집니다. 그렇지 않은 경우 가속화된 네트워킹에 대해 "끄기" 옵션을 채우고 사용자에게 사용하지 않는 이유를 제공합니다.
VM 만들기 후 네트워크 인터페이스로 이동하고 개요 블레이드 상단에 있는 단추를 클릭하여 포털을 통해 가속 네트워킹을 사용하거나 사용하지 않도록 설정할 수도 있습니다.

참고

포털의 가속화된 네트워킹 설정은 사용자가 선택한 상태를 반영합니다. AccelNet은 VM 크기에 AccelNet이 필요한 경우에도 "사용 안 함"을 선택하도록 허용합니다. AccelNet이 필요한 VM 크기의 경우 포털에 표시되는 사용자 설정에 관계없이 런타임에 AccelNet이 사용하도록 설정됩니다.

지원되는 운영 체제만 포털을 통해 사용하도록 설정할 수 있습니다. 사용자 지정 이미지를 사용 중이고 이미지가 가속화된 네트워킹을 지원하는 경우 CLI 또는 PowerShell을 사용하여 VM을 만듭니다.

VM이 만들어진 후 확인 지침에 따라 가속화된 네트워킹이 사용하도록 설정되었는지 확인할 수 있습니다.

CLI 만들기

가상 네트워크 만들기

최신 Azure CLI를 설치하고 az login을 사용하여 Azure 계정에 로그인합니다. 다음 예제에서 매개 변수 이름을 고유한 값으로 바꿉니다. 예제 매개 변수 이름에는 myResourceGroup, myNic, myVm이 포함됩니다.

az group create를 사용하여 리소스 그룹을 만듭니다. 다음 예제에서는 centralus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create --name myResourceGroup --location centralus

Linux 가속화된 네트워킹에 나열된 지원되는 Linux 지역을 선택합니다.

az network vnet create를 사용하여 가상 네트워크를 만듭니다. 다음 예제에서는 하나의 서브넷을 포함한 myVnet이라는 가상 네트워크를 만듭니다.

az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --address-prefix 192.168.0.0/16 \
    --subnet-name mySubnet \
    --subnet-prefix 192.168.1.0/24

네트워크 보안 그룹 만들기

az network nsg create를 사용하여 네트워크 보안 그룹을 만듭니다. 다음 예제에서는 myNetworkSecurityGroup이라는 네트워크 보안 그룹을 만듭니다.

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

네트워크 보안 그룹에는 여러 가지 기본 규칙이 포함됩니다. 그 중 하나는 인터넷의 모든 인바운드 액세스를 사용하지 않도록 설정합니다. az network nsg rule create를 사용하여 가상 머신에 대한 SSH 액세스를 허용하도록 포트를 엽니다.

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNetworkSecurityGroup \
  --name Allow-SSH-Internet \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 100 \
  --source-address-prefix Internet \
  --source-port-range "*" \
  --destination-address-prefix "*" \
  --destination-port-range 22

가속화된 네트워킹을 사용하여 네트워크 인터페이스 만들기

az network public-ip create를 사용하여 공용 IP 주소를 만듭니다. 인터넷에서 VM에 액세스하지 않으려는 경우 공용 IP 주소가 필요하지 않습니다. 그러나 이 문서의 단계를 완료해야 합니다.

az network public-ip create \
    --name myPublicIp \
    --resource-group myResourceGroup

가속화된 네트워킹을 사용하여 az network nic create로 네트워크 인터페이스를 만듭니다. 다음 예제에서는 myVnet 가상 네트워크의 mySubnet이라는 서브넷에서 myNic이라는 네트워크 인터페이스를 만들고, myNetworkSecurityGroup 네트워크 보안 그룹을 네트워크 인터페이스에 연결합니다.

az network nic create \
    --resource-group myResourceGroup \
    --name myNic \
    --vnet-name myVnet \
    --subnet mySubnet \
    --accelerated-networking true \
    --public-ip-address myPublicIp \
    --network-security-group myNetworkSecurityGroup

VM 만들기 및 NIC 연결

VM을 만들 때 --nics로 만든 NIC를 지정합니다. Linux 가속 네트워킹에 나열된 크기 및 배포를 선택합니다.

az vm create로 VM을 만듭니다. 다음 예제에서는 가속 네트워킹(Standard_DS4_v2)을 지원하는 UbuntuLTS 이미지 및 크기를 사용하여 myVM이라는 VM을 만듭니다.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --size Standard_DS4_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic

모든 VM 크기 및 특성 목록은 Linux VM 크기를 참조하세요.

VM을 만들면 다음 예제 출력과 유사한 출력이 반환됩니다. publicIpAddress를 기록해 둡니다. 이 주소는 이후 단계에서 VM에 액세스하는 데 사용됩니다.

{
  "fqdns": "",
  "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "centralus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "192.168.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

가속 네트워킹을 사용할 수 있는지 확인합니다.

다음 명령을 사용하여 VM으로 SSH 세션을 만듭니다. <your-public-ip-address>를 만든 가상 머신에 할당된 공용 IP 주소와 바꾸고, VM을 만들 때 --admin-username에 다른 값을 사용한 경우 azureuser를 바꿉니다.

ssh azureuser@<your-public-ip-address>

Bash 셸에서 uname -r을 입력하고, 커널 버전이 다음 버전 이상인지 확인합니다.

  • Ubuntu 16.04: 4.11.0-1013
  • SLES SP3: 4.4.92-6.18
  • RHEL: 3.10.0-693, 2.6.32-573*
  • CentOS: 3.10.0-693

참고

다른 커널 버전이 지원될 수 있습니다. 최신 목록의 경우 지원되는 Hyper-V용 Linux 및 FreeBSD 가상 머신의 각 배포에 대한 호환성 테이블을 참조하고 SR-IOV가 지원되었는지 확인합니다. 추가 세부 정보는 Hyper-V 및 Azure용 Linux Integration Services의 릴리스 정보에서 찾을 수 있습니다. * Mellanox VF 버전 4.5 이상이 Linux Integration Services 4.3 이상 이전에 설치된 경우 RHEL 6.7-6.10이 지원됩니다.

lspci 명령을 사용하여 Mellanox VF 디바이스가 VM에 노출되었는지 확인합니다. 반환되는 출력은 다음 출력과 유사합니다.

0000:00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
0000:00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA
0001:00:02.0 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]

ethtool -S eth0 | grep vf_ 명령을 사용하여 VF(가상 함수)에서 작업을 확인합니다. 다음 샘플 출력과 비슷한 출력을 수신하면 가속화된 네트워킹을 사용하고 활성화할 수 있습니다.

vf_rx_packets: 992956
vf_rx_bytes: 2749784180
vf_tx_packets: 2656684
vf_tx_bytes: 1099443970
vf_tx_dropped: 0

이제 가속화된 네트워킹을 VM에 사용할 수 있습니다.

가상 함수의 동적 바인딩 및 해지를 처리합니다.

애플리케이션은 VM에 노출된 가상 NIC를 통해 실행해야 합니다. 애플리케이션이 직접 VF NIC에서 실행되는 경우 일부 패킷이 가상 인터페이스에 표시되므로 VM을 대상으로 한 모든 패킷을 수신하지는 않습니다. 가상 NIC를 통해 애플리케이션을 실행하면 애플리케이션이 해당 애플리케이션으로 향하는 모든 패킷을 수신하도록 보장합니다. 또한 호스트 서비스 중에 VF가 취소된 경우에도 애플리케이션이 계속 실행되도록 합니다. 합성 NIC에 대한 애플리케이션 바인딩은 가속화된 네트워킹을 활용하는 모든 애플리케이션에 대한 필수 요구 사항입니다.

애플리케이션 바인딩 요구 사항에 대한 자세한 내용은 Linux 및 FreeBSD VM에서 가속화된 네트워킹이 작동하는 방식을 참조하세요.

기존 VM에서 가속 네트워킹 사용

가속화된 네트워킹 없이 VM을 만든 경우 기존 VM에서 이 기능을 사용하도록 설정할 수 있습니다. VM이 설명된 다음 필수 조건을 충족하여 가속화된 네트워킹을 지원해야 합니다.

  • VM은 가속화된 네트워킹에 대해 지원되는 크기이어야 함
  • VM은 지원되는 Azure Gallery 이미지(및 Linux용 커널 버전)이어야 함
  • 가용성 집합의 모든 VM 또는 VMSS는 모든 NIC에서 가속화된 네트워킹을 사용하기 전에 중지/할당 취소되어야 함

개별 VM & 가용성 집합의 VM

먼저 VM을 중지/할당 취소하거나, 가용성 집합인 경우 집합에 포함된 모든 VM을 중지/할당 취소합니다.

az vm deallocate \
    --resource-group myResourceGroup \
    --name myVM

VM이 가용성 집합 없이 개별적으로 만들어진 경우 가속화된 네트워킹을 사용하도록 설정하려면 개별 VM만 중지하거나 할당을 취소해야 합니다. VM이 가용성 집합으로 만들어진 경우 NIC에서 가속화된 네트워킹을 사용하도록 설정하기 전에 집합에 포함된 모든 VM을 중지하거나 할당을 취소해야 합니다.

VM이 중지되면 해당 VM의 NIC에서 가속 네트워킹을 사용하도록 설정합니다.

az network nic update \
    --name myNic \
    --resource-group myResourceGroup \
    --accelerated-networking true

VM을 다시 시작하거나, 가용성 집합인 경우 집합에 포함된 모든 VM을 다시 시작하고 가속 네트워킹이 사용되는지 확인합니다.

az vm start --resource-group myResourceGroup \
    --name myVM

VMSS

VMSS는 약간 차이는 있지만 동일한 워크플로를 따릅니다. 먼저, VM을 중지합니다.

az vmss deallocate \
    --name myvmss \
    --resource-group myrg

VM이 중지되면 네트워크 인터페이스 아래의 가속화된 네트워킹 속성을 업데이트합니다.

az vmss update --name myvmss \
    --resource-group myrg \
    --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].enableAcceleratedNetworking=true

참고

VMSS에는 자동, 롤링 및 수동의 세 가지 설정을 사용하여 업데이트를 적용하는 VM 업그레이드가 있습니다. 이 지침에서는 다시 부팅한 후 VMSS에서 변경 내용을 즉시 픽업하도록 정책이 자동으로 설정되었습니다. 변경 내용이 즉시 픽업되도록 정책을 자동으로 설정하려면:

az vmss update \
    --name myvmss \
    --resource-group myrg \
    --set upgradePolicy.mode="automatic"

마지막으로, VMSS를 다시 시작합니다.

az vmss start \
    --name myvmss \
    --resource-group myrg

다시 시작하면 업그레이드가 완료될 때까지 기다리지만 완료되면 VF가 VM 내부에 나타납니다. (지원되는 OS 및 VM 크기를 사용하고 있는지 확인합니다.)

가속화된 네트워킹을 사용하여 기존 VM 크기 조정

가속화된 네트워킹을 사용하는 VM은 가속화된 네트워킹을 지원하는 VM으로만 크기 조정할 수 있습니다.

가속화된 네트워킹을 사용하는 VM은 크기 조정 작업을 사용하여 가속화된 네트워킹을 지원하지 않는 VM 인스턴스로 크기를 조정할 수 없습니다. 이러한 VM 중 하나의 크기를 조정하려면 다음을 수행합니다.

  • VM을 중지/할당 취소하거나, 가용성 집합/VMSS인 경우 집합/VMSS에 포함된 모든 VM을 중지/할당 취소합니다.
  • VM 또는 가용성 집합/VMSS인 경우, 집합/VMSS에 포함된 모든 VM의 NIC에서 가속 네트워킹을 사용하지 않도록 설정해야 합니다.
  • 가속화된 네트워킹이 사용되지 않으면 VM/가용성 집합/VMSS를 가속화된 네트워킹이 지원되지 않는 새 크기로 이동하고 다시 시작할 수 있습니다.

다음 단계