Como habilitar a multifila de NIC para uma imagem?
Cenários
Com o aumento da largura de banda de I/O da rede, uma única vCPU não pode atender aos requisitos de processamento de interrupções de NIC. A multifila de NIC permite que várias vCPUs processem interrupções de NIC, melhorando assim o PPS da rede e o desempenho de I/O.
ECSs com suporte para multifila de NIC
A multifila de NIC pode ser ativada em um ECS somente quando as especificações do ECS, o tipo de virtualização e a imagem atendem aos requisitos descritos nesta seção.
- Para obter detalhes sobre as especificações do ECS que oferecem suporte a multifila de NIC, consulte Tipos de ECS.
Se o número de filas de NIC for maior que 1, a multifila de NIC será suportada.
- Apenas os ECSs de KVM suportam multifila de NIC.
- As imagens públicas do Linux listadas na Tabela 2 oferecem suporte a multifila de NIC.
- Os SOs Windows não ofereceram suporte comercial à multifila de NIC. Se você habilitar a multifila de NIC para uma imagem do Windows, a inicialização de um ECS criado com essa imagem poderá ser lenta.
- É aconselhável atualizar a versão do kernel dos ECSs do Linux para a versão 2.6.35 ou posterior. Caso contrário, a multifila de NIC não é suportada.
Execute o comando uname -r para verificar a versão do kernel. Se a versão for anterior à 2.6.35, entre em contato com o suporte técnico para atualizá-la.
SO |
Imagem |
Com suporte de |
---|---|---|
Windows |
Windows Server 2008 WEB R2 64bit |
Imagens privadas |
Windows Server 2008 Enterprise SP2 64bit |
Imagens privadas |
|
Windows Server 2008 R2 Standard/Datacenter/Enterprise 64bit |
Imagens privadas |
|
Windows Server 2008 R2 Enterprise 64bit_WithGPUdriver |
Imagens privadas |
|
Windows Server 2012 R2 Standard 64bit_WithGPUdriver |
Imagens privadas |
|
Windows Server 2012 R2 Standard/Datacenter 64bit |
Imagens privadas |
SO |
Imagem |
Com suporte de |
Multifila de NIC habilitada por padrão |
---|---|---|---|
Linux |
Ubuntu 14.04/16.04 Server 64bit |
Imagens públicas |
Sim |
openSUSE 42.2 64bit |
Imagens públicas |
Sim |
|
SUSE Enterprise 12 SP1/SP2 64bit |
Imagens públicas |
Sim |
|
CentOS 6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5/7.6 64bit |
Imagens públicas |
Sim |
|
Debian 8.0.0/8.8.0/8.9.0/9.0.0 64bit |
Imagens públicas |
Sim |
|
Fedora 24/25 64bit |
Imagens públicas |
Sim |
|
EulerOS 2.2 64bit |
Imagens públicas |
Sim |
Instruções de operação
Suponha que um ECSs tenha as especificações necessárias e o tipo de virtualização.
- Se o ECS foi criado usando uma imagem pública listada em ECSs com suporte para multifila de NIC, a multifila de NIC foi ativada no ECS por padrão. Portanto, não é necessário ativar manualmente a multifila de NIC para ele.
- Se o ECS tiver sido criado usando um arquivo de imagem externo com um SO listado em ECSs com suporte para multifila de NIC, execute as seguintes operações para ativar a multifila de NIC:
Registrar o arquivo de imagem externo como uma imagem privada
- Se o valor for Supported, vá para Criar um ECSs a partir da imagem privada.
- Se o valor for Not supported, vá para Definir multifila de NIC para a imagem.
Definir multifila de NIC para a imagem
Os SOs Windows não ofereceram suporte comercial à multifila de NIC. Se você habilitar a multifila de NIC para uma imagem do Windows, a inicialização de um ECS criado com essa imagem poderá ser lenta.
Use um dos seguintes métodos para definir multifila de NIC.
- Acesse o console do IMS.
- Acesse o console de gerenciamento.
- Em Compute, clique em Image Management Service.
O console do IMS é exibido.
- Na página Private Images exibida, localize a linha que contém a imagem de destino e clique em Modify na coluna Operation.
- Defina multifila de NIC para a imagem.
- Acesse o console do IMS.
- Acesse o console de gerenciamento.
- Em Compute, clique em Image Management Service.
O console do IMS é exibido.
- Na página Private Images exibida, clique no nome da imagem de destino.
- No canto superior direito da página de detalhes da imagem exibida, clique em Modify. Na caixa de diálogo Modify Image exibida, defina a multifila de NIC para a imagem.
Método 3: adicionar hw_vif_multiqueue_enabled à imagem usando uma API.
- Obtenha um token. Para obter detalhes, consulte Autenticação.
- Chame uma API para atualizar as informações da imagem. Para obter detalhes, consulte Atualização das informações da imagem (API OpenStack nativo).
- Adicione X-Auth-Token ao cabeçalho da solicitação.
O valor de X-Auth-Token é o token obtido na etapa 1.
- Adicione Content-Type ao cabeçalho da solicitação.
O valor de Content-Type é application/openstack-images-v2.1-json-patch.
O URI da solicitação está no seguinte formato:
PATCH /v2/images/{image_id}
O corpo da solicitação é o seguinte:[ { "op":"add", "path":"/hw_vif_multiqueue_enabled", "value": "true" } ]
Figura 1 mostra um exemplo de corpo de solicitação para definir a multifila de NIC.
Criar um ECSs a partir da imagem privada
- Region: selecione a região onde a imagem privada está localizada.
- Image: selecione Private image e, em seguida, a imagem desejada na lista suspensa.
Executar o script para configurar a multifila de NIC
Os SOs Windows não ofereceram suporte comercial à multifila de NIC. Se você habilitar a multifila de NIC para uma imagem do Windows, a inicialização de um ECS criado com essa imagem poderá ser lenta.
Para SOs Linux, o script para configurar automaticamente a multifila de NIC é fornecido. Se um ECS tiver várias NICs, a execução do script habilitará automaticamente multifila para todas as NICs.
- Faça logon no ECS e execute o seguinte comando para verificar o número de filas suportadas e ativadas para uma NIC:
Exemplo:
[root@localhost ~]# ethtool -l eth0 #View the number of queues used by NIC eth0. Channel parameters for eth0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 4 #The NIC supports a maximum of four queues. Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 1 #One queue has been enabled for the NIC.
Se os valores dos dois campos Combined forem os mesmos, a multifila de NIC foi ativada. Nenhuma ação adicional é necessária.
- Execute o seguinte comando para baixar o script de configuração multi-queue-hw:
wget https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw
O caminho de download é https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/multi-queue-hw.
- Execute o seguinte comando para tornar o script executável:
- Execute o seguinte comando para colocar o script multi-queue-hw no diretório /etc/init.d:
mv multi-queue-hw /etc/init.d
Digite y quando as seguintes informações forem exibidas:
mv: overwrite '/etc/init.d/multi-queue-hw'?
- Execute o seguinte comando para executar o script:
/etc/init.d/multi-queue-hw start
O script de multifila de NIC entra em vigor imediatamente após a execução do script, mas se torna inválido quando o ECSs é interrompido.
- Adicione um item de inicialização para cada SO para que a multifila de NIC seja ativada automaticamente na inicialização do ECS.
- Para CentOS, Red Hat, Fedora, EulerOS, SUSE e openSUSE, execute o seguinte comando: