Criar instâncias do Compute Engine de ULL
Nesta página, descrevemos como criar instâncias do Compute Engine de latência ultrabaixa (ULL) usando os tipos de máquina U4P ou U4C da família de máquinas U4.
Para uma visão geral do processo de configuração da infraestrutura da ULL, consulte Visão geral da configuração da solução ULL.
Antes de começar
Antes de criar instâncias de computação ULL, consulte as seções a seguir.
Criar redes VPC
Se ainda não tiver feito isso, crie redes VPC para cada uma das interfaces de rede da instância, conforme descrito em Visão geral da configuração da solução ULL.
Criar uma política de posicionamento
Se quiser, aplique uma política de posicionamento distribuído à sua instância do ULL para aumentar a capacidade de recuperação. Para mais informações, consulte Criar e aplicar políticas de posicionamento distribuído na documentação do Compute Engine.
Definir o projeto
Defina a CLI gcloud para usar seu projeto. Como alternativa, inclua
a flag --project=PROJECT_ID para cada comando
nos procedimentos a seguir.
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do seu
projeto.
Funções exigidas
Para receber as permissões necessárias para criar instâncias do Compute Engine, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para criar e gerenciar instâncias de computação:
Administrador da instância do Compute (
compute.instanceAdmin) no seu projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Visão geral da configuração da instância ULL
Para criar uma instância de computação ULL e configurá-la para enviar ou receber tráfego unicast e multicast ULL, faça o seguinte:
| Etapa | Descrição |
|---|---|
| Criar uma instância de ULL | Crie uma instância usando um tipo de máquina U4P ou U4C e conecte as interfaces de rede a uma rede VPC de uso geral e uma rede VPC de ULL. Se você planeja usar a instância como um consumidor de multicast, defina a flag igmp-query como IGMP_QUERY_V2. |
Configurar o roteamento para as interfaces não nic0 para tráfego unicast ULL |
Configure o roteamento de políticas baseado na origem no SO convidado para garantir que os pacotes de saída saiam pela interface correta e evitar o roteamento assimétrico. |
| Configurar uma instância como consumidor de multicast ULL |
Conclua cada uma das etapas a seguir para receber tráfego multicast
nas interfaces de rede ULL:
|
Além disso, você pode usar os comandos de exemplo nesta página para testar a conectividade multicast.
Criar uma instância de ULL
Esta seção descreve como criar uma instância para usar com ULL unicast e multicast.
Para informações gerais sobre como criar instâncias de computação, incluindo outras opções de configuração, consulte Criar e iniciar uma instância do Compute Engine.
gcloud
Para criar uma instância de ULL, use o
comando compute instances create.
Para as interfaces de rede que se conectam a uma rede VPC
ULL, no-address precisa ser especificado.
Além disso, o comando a seguir inclui a flag igmp-query para
permitir que a instância seja um consumidor de multicast. Essa flag não é necessária se a instância for apenas um produtor de multicast ou se ela enviar e receber apenas unicast.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--image-project=IMAGE_PROJECT \
--image=IMAGE_NAME \
--maintenance-policy=TERMINATE \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,network=GENERAL_PURPOSE_VPC_NETWORK,subnet=GENERAL_PURPOSE_SUBNET \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_1,no-address,igmp-query=IGMP_QUERY_V2 \
--network-interface=nic-type=NIC_TYPE,queue-count=QUEUES,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_2,no-address,igmp-query=IGMP_QUERY_V2
Substitua os seguintes valores:
ZONE: a zona em que a instância será criada.INSTANCE_NAME: um nome para a instânciaMACHINE_TYPE: o tipo de máquina U4P ou U4C da instânciaIMAGE_PROJECT: o projeto de imagem. Para testes durante o pré-lançamento, use o projeto de imagem fornecido pelo Google. Consulte Suporte a sistemas operacionais para tipos de máquina U4.IMAGE_NAME: o nome da imagem. Para testar durante a prévia, use a imagem fornecida pelo Google. Consulte Suporte a sistemas operacionais para tipos de máquina U4.NIC_TYPE: o tipo de interface de rede a ser usado. Use o tipo de interface de rede compatível com a zona específica em que você está criando a instância:- Para
us-south1-d, especifiqueIDPF. - Para
us-south1-e, especifiqueGVNIC.
- Para
QUEUES: o número de filas de recebimento e transmissão para processar pacotes da rede:- Para
GVNIC, inclua o campoqueue-counte especifique um valor de32para compatibilidade com XDP. - Para
IDPF, omitaqueue-count=QUEUESdo comando.
- Para
GENERAL_PURPOSE_VPC_NETWORK,GENERAL_PURPOSE_SUBNET: a rede VPC e a sub-rede a que a interfacenic0da instância será anexadaULL_VPC_NETWORK: a rede VPC da ULL a que as interfaces nãonic0serão anexadasULL_SUBNET_1: a sub-rede na rede VPC do ULL para anexar a interfacenic1ULL_SUBNET_2: a sub-rede na rede VPC do ULL para anexar a interfacenic2
Configurar o roteamento para as interfaces não nic0 do tráfego unicast ULL
Por padrão, uma instância usa a rota padrão associada à interface nic0 para enviar tráfego a qualquer destino fora da sub-rede diretamente conectada. Para
mais informações, consulte a visão geral de várias interfaces de rede.
Para que as interfaces nic1 e nic2 da sua instância enviem e recebam tráfego unicast ULL, configure o roteamento de políticas com base na origem no SO convidado. Essa configuração garante que os pacotes de saída saiam pela interface correta e evita o roteamento assimétrico, em que o tráfego entra em uma interface, mas tenta sair por nic0.
Para um exemplo de como configurar o roteamento de políticas, consulte Configurar o roteamento de políticas no tutorial Configurar o roteamento para uma interface de rede adicional.
Configurar uma instância como consumidor de multicast ULL
Nesta seção, descrevemos como configurar uma instância ULL para ser um consumidor de multicast.
Ativar a consulta IGMP em uma instância ULL atual
Se você não ativou o IGMP ao criar a instância, é possível fazer isso na instância atual, conforme descrito nesta seção.
gcloud
Para ativar a consulta IGMP em uma instância ULL atual, use o
comando compute instances network-interfaces update.
Repita o comando a seguir para cada interface de rede que você quer receber tráfego multicast.
gcloud compute instances network-interfaces update INSTANCE_NAME \
--zone=ZONE \
--network-interface=NETWORK_INTERFACE_NAME \
--igmp-query=IGMP_QUERY_V2
Substitua os seguintes valores:
INSTANCE_NAME: nome da instânciaZONE: zona da instânciaNETWORK_INTERFACE_NAME: o nome da interface de rede em que ativar a consulta IGMP. Em Google Cloud, o formato énicNUMBER, comonic0,nic1ounic2.
Definir o IGMPv2 no SO convidado
Para definir o IGMPv2 no SO convidado da instância, faça o seguinte:
Conecte-se à instância usando SSH.
Execute o comando a seguir e identifique os nomes dos dispositivos das interfaces de rede que você quer receber tráfego multicast.
sudo ifconfig
Para cada interface de rede aplicável, execute o seguinte comando para forçar o IGMPv2.
sudo -i echo "2" > /proc/sys/net/ipv4/conf/NETWORK_INTERFACE_DEVICE_NAME/force_igmp_version
Substitua
NETWORK_INTERFACE_DEVICE_NAMEpelo nome do dispositivo da interface de rede, comoeth0,eth1oueth2.
Configurar a filtragem de caminho reverso (rp_filter)
Em alguns casos, como com instâncias de várias NICs, a validação estrita da origem por
filtragem de caminho inverso (rp-filter) pode fazer com que pacotes multicast legítimos sejam
descartados. Para evitar que isso aconteça, configure a filtragem de caminho inverso para reduzir ou desativar a validação de origem em interfaces de rede não nic0 que recebem tráfego multicast.
Por exemplo, os comandos a seguir configuram a filtragem de caminho reverso para desativar
a validação de origem em eth1 e eth2 definindo rp_filter como 0.
sudo sysctl -w net.ipv4.conf.all.rp_filter=0 sudo sysctl -w net.ipv4.conf.eth1.rp_filter=0 sudo sysctl -w net.ipv4.conf.eth2.rp_filter=0
Para mais informações sobre rp_filter, consulte IP Sysctl na documentação do kernel do Linux.
Aumentar o tamanho do buffer de anel do driver de rede
Nesta seção, descrevemos como aumentar o tamanho do buffer circular do driver de rede na sua instância.
Para consumidores de multicast que recebem altos níveis de tráfego, aumente o tamanho do buffer de anel do driver de rede para um valor de 2048 para evitar a perda de pacotes. Faça isso para cada interface de rede que
recebe tráfego multicast.
Confira os exemplos de comandos a seguir, que configuram nic1 e nic2:
sudo ethtool -G eth1 rx 2048 tx 2048 sudo ethtool -G eth2 rx 2048 tx 2048
Exemplos de comandos para testar a conectividade multicast ULL
Esta seção fornece exemplos de comandos para testar o tráfego multicast sem
iniciar uma carga de trabalho de aplicativo usando a
ferramenta iperf. As etapas nesta seção exigem que a configuração de multicast descrita em Visão geral da configuração da solução ULL esteja concluída.
Enviar tráfego de multicast ULL de um produtor de multicast
Conecte-se à instância usando SSH.
Instale
iperfcaso ainda não tenha feito isso.iperf3não aceita multicast. O comando a seguir usaiperf, que instalaiperf2.sudo yum install iperf
Para enviar tráfego multicast ao endereço IP do grupo multicast, execute o seguinte comando:
iperf -c MULTICAST_GROUP_ADDRESS%NIC -p 1234 -l 512 -i 1 -u -b 1000pps -t 999999 -B NIC_IP_ADDRESS
Substitua os seguintes valores:
MULTICAST_GROUP_ADDRESS: o endereço IP do grupo multicast.NICo nome do dispositivo de interface de rede, comoeth1oueth2NIC_IP_ADDRESSo endereço IP atribuído à NIC especificada
Entrar em um grupo e receber tráfego multicast ULL de um consumidor multicast
Conecte-se à instância usando SSH.
Instale
iperfcaso ainda não tenha feito isso.sudo yum install iperf
Para participar de um grupo multicast e registrar o tráfego recebido, execute o comando a seguir:
iperf -s -p 1234 -B MULTICAST_GROUP_ADDRESS%NIC -l 512 -u -i 1
Substitua os seguintes valores:
MULTICAST_GROUP_ADDRESSo endereço IP do grupo multicastNICo nome do dispositivo de interface de rede, comoeth1oueth2
Por exemplo, o comando a seguir une um grupo com o endereço IP
224.1.0.176para receber pacotes de até 512 bytes e registra o tráfego recebido:iperf -s -p 1234 -B 224.1.0.176%eth1 -l 512 -u -i 1
A seguir
- Para ativar a pesquisa de ocupado e testar recursos do Onload em instâncias de computação ULL, consulte Trabalhar com o Onload.
- Para sincronizar o relógio do sistema da instância com o relógio da NIC física do servidor host, consulte Configurar a hora exata.