Criar uma máquina virtual do Linux com Rede Acelerada com a CLI do Azure

Criação do portal

Embora este artigo forneça passos para criar uma máquina virtual com rede acelerada utilizando o Azure CLI, também pode criar uma máquina virtual com rede acelerada utilizando o portal Azure. Ao criar uma máquina virtual no portal, na lâmina de máquina virtual, escolha o separador 'Rede '. Neste separador, existe uma opção para a rede acelerada. Se escolheu um sistema operativo suportado e tamanho VM, esta opção preencherá automaticamente para "On". Caso contrário, irá preencher a opção "Off" para o Networking Acelerado e dar ao utilizador uma razão para não estar ativado.
Também pode ativar ou desativar a rede acelerada através do portal após a criação de VM navegando para a interface de rede e clicando no botão na parte superior da lâmina de visão geral .

Nota

A definição de Rede Acelerada no portal reflete o estado selecionado pelo utilizador. A AccelNet permite escolher "Desativado" mesmo que o tamanho VM exija AccelNet. Para os tamanhos VM exigidos pela AccelNet, a AccelNet será ativada em tempo de execução, independentemente da definição do utilizador vista no portal.

Apenas sistemas operativos suportados podem ser ativados através do portal. Se estiver a utilizar uma imagem personalizada e a sua imagem suportar rede acelerada, crie o seu VM utilizando CLI ou PowerShell.

Após a criação do VM, pode confirmar que a rede acelerada está ativada seguindo as instruções de confirmação.

Criação do CLI

Criar uma rede virtual

Instale o mais recente Azure CLI e faça login numa conta Azure utilizando o login. Nos exemplos seguintes, substitua os nomes dos parâmetros de exemplo pelos seus próprios valores. Os nomes dos parâmetros incluem myResourceGroup, myNic e myVm.

Crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização central :

az group create --name myResourceGroup --location centralus

Selecione uma região de Linux suportada listada em Linux Accelerated Networking.

Crie uma rede virtual com az network vnet create. O exemplo a seguir cria uma rede virtual chamada myVnet com uma sub-rede:

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

Criar um grupo de segurança de rede

Crie um grupo de segurança de rede com a criação de rede Az nsg. O exemplo seguinte cria um grupo de segurança de rede com o nome myNetworkSecurityGroup:

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

O grupo de segurança da rede contém várias regras predefinições, uma das quais desativa todo o acesso à entrada a partir da Internet. Abra uma porta para permitir o acesso do SSH à máquina virtual com a regra nsg de rede az criar:

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

Criar uma interface de rede com rede acelerada

Criar um endereço IP público com az network public-ip create. Não é necessário um endereço IP público se não pretender aceder ao VM a partir da Internet. No entanto, é necessário completar os passos deste artigo.

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

Criar uma interface de rede com a az network nic criar com rede acelerada ativada. O exemplo a seguir cria uma interface de rede chamada myNic na sub-rede mySubnet da rede virtual myVnet e associa o grupo de segurança da rede myNetworkSecurityGroup à interface de rede:

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

Criar um VM e anexar o NIC

Quando criar o VM, especifique o NIC que criou com --nics. Selecione um tamanho e distribuição listados em rede acelerada Linux.

Crie uma VM com az vm create. O exemplo a seguir cria um VM nomeado myVM com a imagem UbuntuLTS e um tamanho que suporta networking acelerado (Standard_DS4_v2):

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

Para obter uma lista de todos os tamanhos e características de VM, consulte os tamanhos linux VM.

Uma vez criado o VM, a saída semelhante à saída de exemplo a seguir é devolvida. Anote o publicIpAddress. Este endereço é utilizado para aceder ao VM nos passos seguintes.

{
  "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"
}

Confirme que a ligação acelerada em rede está ativada

Utilize o seguinte comando para criar uma sessão SSH com a VM. Substitua <your-public-ip-address> o endereço IP público atribuído à máquina virtual que criou e substitua o azureuser se tiver usado um valor diferente para --admin-username quando criou o VM.

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

A partir da casca bash, insira uname -r e confirme que a versão kernel é uma das seguintes versões, ou maior:

  • 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

Nota

Outras versões de kernel podem ser suportadas. Para a lista mais atualizada, consulte as tabelas de compatibilidade para cada distrução em máquinas virtuais Suportadas de Linux e FreeBSD para Hyper-V e confirme que o SR-IOV é suportado. Detalhes adicionais podem ser encontrados nas notas de lançamento para os Serviços de Integração Linux para Hiper-V e Azure. * RHEL 6.7-6.10 são suportados se a versão 4.5+ do Mellanox VF for instalada antes dos Serviços de Integração Linux 4.3+.

Confirme se o dispositivo VF Mellanox está exposto ao VM com o lspci comando. A saída devolvida é semelhante à seguinte saída:

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]

Verifique se há atividade no VF (função virtual) com o ethtool -S eth0 | grep vf_ comando. Se receber uma saída semelhante à seguinte, a rede acelerada está ativada e ativa.

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

A rede acelerada está agora ativada para o seu VM.

Lidar com a ligação dinâmica e revogação da função virtual

As aplicações devem passar por cima do NIC sintético que está exposto em VM. Se a aplicação correr diretamente sobre o VF NIC, não recebe todos os pacotes que estão destinados ao VM, uma vez que alguns pacotes aparecem sobre a interface sintética. Se executar uma aplicação sobre o NIC sintético, garante que a aplicação recebe todos os pacotes que lhe estão destinados. Também garante que a aplicação continua em funcionamento, mesmo que o VF seja revogado durante a manutenção do hospedeiro. Aplicações vinculativas ao NIC sintético é um requisito obrigatório para todas as aplicações que se aproveitam da Rede Acelerada.

Para obter mais detalhes sobre os requisitos de ligação à aplicação, consulte como funciona o Networking Acelerado em VMs Linux e FreeBSD.

Ativar a rede acelerada nos VM existentes

Se criou um VM sem Rede Acelerada, é possível ativar esta funcionalidade num VM existente. O VM deve apoiar a Rede Acelerada, cumprindo os seguintes pré-requisitos que também são delineados:

  • O VM deve ser um tamanho suportado para networking acelerado
  • O VM deve ser uma imagem suportada da Galeria Azure (e versão kernel para Linux)
  • Todos os VMs de um conjunto de disponibilidade ou VMSS devem ser interrompidos/locados antes de permitir a rede acelerada em qualquer NIC

VMs & individuais em um conjunto de disponibilidade

Primeiro stop/deallocate o VM ou, se um Conjunto de Disponibilidade, todos os VMs no Conjunto:

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

Se o seu VM foi criado individualmente sem um conjunto de disponibilidade, só deve parar ou negociar o VM individual para permitir a Rede Acelerada. Se o seu VM foi criado com um conjunto de disponibilidade, todos os VM contidos no conjunto devem ser interrompidos ou translocados antes de permitir a rede acelerada em qualquer um dos NICs.

Uma vez parado, ative a rede acelerada no NIC do seu VM:

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

Reinicie o seu VM ou, se num Conjunto de Disponibilidade, todos os VMs no Conjunto e confirme que a rede acelerada está ativada:

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

VMSS

O VMSS é ligeiramente diferente, mas segue o mesmo fluxo de trabalho. Primeiro, pare os VMs:

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

Uma vez parados os VMs, atualize a propriedade de Rede Acelerada sob a interface de rede:

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

Nota

Um VMSS tem atualizações VM que aplicam atualizações utilizando três configurações diferentes, automáticas, rolantes e manuais. Nestas instruções, a política é definida de forma automática para que o VMSS recolhe as alterações imediatamente após o reboot. Para defini-lo para automático para que as alterações sejam imediatamente recolhidas:

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

Finalmente, reinicie o VMSS:

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

Uma vez reiniciado, aguarde que as atualizações terminem mas uma vez concluídas, o VF aparece dentro do VM. (Certifique-se de que está a utilizar um tamanho de SO e VM suportado.)

Redimensionamento de VMs existentes com rede acelerada

VMs com Rede Acelerada ativada só podem ser redimensionados para VMs que suportam Rede Acelerada.

Um VM com rede acelerada ativado não pode ser redimensionado para uma instância VM que não suporta rede acelerada usando a operação de redimensionamento. Em vez disso, para redimensionar um destes VMs:

  • Parar/Negociar o VM ou se num conjunto de disponibilidade/VMSS, parar/negociar todos os VMs no conjunto/VMSS.
  • A rede acelerada deve ser desativada no NIC do VM ou se num conjunto de disponibilidade/VMSS, todos os VMs no conjunto/VMSS.
  • Uma vez desativada a rede acelerada, o conjunto VM/disponibilidade/VMSS pode ser movido para um novo tamanho que não suporta rede acelerada e reiniciado.

Passos seguintes