Abilitazione delle reti avanzate su un'istanza - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Abilitazione delle reti avanzate su un'istanza

La procedura utilizzata dipende dal sistema operativo dell'istanza.

I AMIs per Amazon Linux includono il driver del kernel necessario per una rete avanzata con ENA installato e il supporto ENA abilitato. Pertanto, se si avvia un'istanza con una versione HVM di Amazon Linux su un tipo di istanza supportato, l'istanza dispone già dell'abilitazione delle reti avanzate. Per ulteriori informazioni, consulta Verifica dell'abilitazione delle reti avanzate.

L'ultima versione di Ubuntu HVM AMIs include il driver del kernel necessario per una rete avanzata con ENA installato e il supporto ENA abilitato. Pertanto, se si avvia un'istanza con la più recente versione Ubuntu HVM AMI; su un tipo di istanza supportato, l'istanza dispone già dell'abilitazione delle reti avanzate. Per ulteriori informazioni, consulta Verifica dell'abilitazione delle reti avanzate.

Se l'istanza è stata avviata utilizzando un'AMI di una versione precedente per la quale la funzionalità di reti avanzate non è abilitata, puoi installare il pacchetto kernel linux-aws per avere i driver di rete ottimizzati più recenti e aggiornare l'attributo richiesto.

Come installare il pacchetto linux-aws kernel (Ubuntu 16.04 o versioni successive)

Ubuntu 16.04 e 18.04 vengono forniti con il kernel personalizzato Ubuntu (pacchetto kernel linux-aws). Per usare un kernel diverso, contatta Supporto.

Come installare il pacchetto linux-aws kernel (Ubuntu Trusty 14.04)
  1. Connettiti alla tua istanza.

  2. Aggiorna la cache dei pacchetti e i pacchetti.

    ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
    Importante

    Se durante il processo di aggiornamento viene richiesto di installare grub, utilizza /dev/xvda per installare grub, quindi scegli di conservare la versione corrente di /boot/grub/menu.lst.

  3. [Istanza supportata da EBS] Dal tuo computer locale, interrompi l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: stop-instances(AWS CLI) o Stop-EC2Instance(AWS Tools for Windows PowerShell).

    [Istanza supportata da instance store] Non è possibile arrestare l'istanza per modificare l'attributo. Segui invece questa procedura: Per abilitare le reti avanzate su Ubuntu (istanze supportate da instance store).

  4. Dal computer locale, abilita l'attributo relativo alle reti avanzate utilizzando uno dei seguenti comandi:

    • modify-instance-attribute (AWS CLI)

      aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
    • Edit-EC2InstanceAttribute(Strumenti per Windows) PowerShell

      Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true
  5. (Facoltativo) Crea un'AMI dall'istanza, come descritto in Creare un'AMI supportata da Amazon EBS. L'AMI eredita l'attributo enaSupport relativo alle reti avanzate dall'istanza. Pertanto, è possibile utilizzare questa AMI per avviare un'altra istanza con le reti avanzate abilitate per impostazione di default.

  6. Dal tuo computer locale, avvia l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: start-instances(AWS CLI) o Start-EC2Instance(AWS Tools for Windows PowerShell).

Per abilitare le reti avanzate su Ubuntu (istanze supportate da instance store)

Segui la procedura precedente fino al punto in cui si arresta l'istanza. Crea una nuova AMI come descritto in Creare un'AMI supportata da un archivio dell'istanza, assicurandoti di abilitare l'attributo relativo alle reti avanzate durante la registrazione dell'AMI.

  • register-image (AWS CLI)

    aws ec2 register-image --ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Le ultime novità AMIs per Red Hat Enterprise Linux, SUSE Linux Enterprise Server e CentOS includono il driver kernel necessario per una rete avanzata con ENA e il supporto ENA abilitato. Pertanto, se si lancia un'istanza con la più recente versione di AMI su un tipo di istanza supportato, l'istanza dispone già dell'abilitazione delle reti avanzate. Per ulteriori informazioni, consulta Verifica dell'abilitazione delle reti avanzate.

La procedura seguente descrive le fasi generali per abilitare le reti avanzate ENA su una distribuzione Linux diversa da AMI Amazon Linux o Ubuntu. Per ulteriori informazioni, ad esempio sintassi dettagliata dei comandi, posizione dei file o supporto di pacchetti e strumenti, consulta la documentazione per la distribuzione Linux in uso.

Per abilitare le reti avanzate su Linux
  1. Connettiti alla tua istanza.

  2. Clona il codice sorgente per il driver del ena kernel sulla tua istanza da at. GitHub https://github.com/amzn/amzn-drivers (SUSE Linux Enterprise Server 12 SP2 e versioni successive includono ENA 2.02 per impostazione predefinita, quindi non è necessario scaricare e compilare il driver ENA. Per SUSE Linux Enterprise Server 12 SP2 e versioni successive, è necessario presentare una richiesta per aggiungere la versione del driver desiderata al kernel di serie).

    git clone https://github.com/amzn/amzn-drivers
  3. Compila e installa il driver del kernel ena sull'istanza. Questi passaggi dipendono dalla distribuzione Linux. Per ulteriori informazioni sulla compilazione del driver del kernel su Red Hat Enterprise Linux, consulta Come installare il driver ENS più recente per un supporto di rete avanzato su EC2 un'istanza Amazon che esegue RHEL?

  4. Esegui il comando sudo depmod per aggiornare le dipendenze del driver del kernel.

  5. Aggiorna initramfs sull'istanza in modo che il nuovo driver del kernel venga caricato in fase di avvio. Ad esempio, se la distribuzione supporta dracut, è possibile utilizzare il seguente comando:

    dracut -f -v
  6. Determina se il sistema utilizza nomi di interfaccia di rete prevedibili per impostazione di default. I sistemi che utilizzano systemd o udev versione 197 o successive possono rinominare i dispositivi Ethernet e pertanto non garantiscono che la singola interfaccia di rete venga rinominata in eth0. Questo comportamento potrebbe causare problemi durante la connessione all'istanza. Per ulteriori informazioni e per informazioni sulle altre opzioni di configurazione disponibili, consulta l'argomento relativo ai nomi di interfaccia di rete prevedibili sul sito Web freedesktop.org.

    1. È possibile controllare le versioni di systemd o udev sui sistemi basati su RPM utilizzando il seguente comando:

      rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+' systemd-208-11.el7_0.2.x86_64

      Nell'esempio precedente relativo a Red Hat Enterprise Linux 7, la versione di systemd è 208, pertanto, i nomi di interfaccia di rete prevedibili devono essere disabilitati.

    2. Disabilitare i nomi di interfaccia di rete prevedibili aggiungendo l'opzione net.ifnames=0 alla riga GRUB_CMDLINE_LINUX in /etc/default/grub.

      sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. Ricompila il file di configurazione di grub.

      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. [Istanza supportata da EBS] Dal tuo computer locale, interrompi l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: stop-instances(AWS CLI), Stop-EC2Instance(AWS Tools for Windows PowerShell).

    [Istanza supportata da instance store] Non è possibile arrestare l'istanza per modificare l'attributo. Segui invece questa procedura: Per abilitare le reti avanzate su Linux (istanze supportate da archivio istanze).

  8. Dal computer locale, abilita l'attributo enaSupport relativo alle reti avanzate utilizzando uno dei seguenti comandi:

    • modify-instance-attribute (AWS CLI)

      aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
    • Edit-EC2InstanceAttribute(Strumenti per Windows) PowerShell

      Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true
  9. (Facoltativo) Crea un'AMI dall'istanza, come descritto in Creare un'AMI supportata da Amazon EBS. L'AMI eredita l'attributo enaSupport relativo alle reti avanzate dall'istanza. Pertanto, è possibile utilizzare questa AMI per avviare un'altra istanza con le reti avanzate abilitate per impostazione di default.

    Se il sistema operativo dell'istanza contiene un file /etc/udev/rules.d/70-persistent-net.rules, è necessario eliminarlo prima di creare l'AMI. Questo file contiene l'indirizzo MAC per la scheda Ethernet dell'istanza originale. Se un'altra istanza viene avviata con questo file, il sistema operativo non sarà in grado di trovare il dispositivo ed eth0 potrebbe non funzionare causando problemi di avvio. Questo file viene rigenerato al successivo ciclo di avvio e qualsiasi istanza avviata dall'AMI crea la propria versione del file.

  10. Dal tuo computer locale, avvia l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: start-instances(AWS CLI) o Start-EC2Instance(AWS Tools for Windows PowerShell).

  11. (Facoltativo) Connettiti all'istanza e verifica che il driver del kernel sia installato.

    Se è impossibile connettersi all'istanza dopo aver abilitato le reti avanzate, consulta Risolvere i problemi relativi al driver ENA kernel su Linux.

Per abilitare le reti avanzate su Linux (istanze supportate da archivio istanze)

Segui la procedura precedente fino al punto in cui si arresta l'istanza. Crea una nuova AMI come descritto in Creare un'AMI supportata da un archivio dell'istanza, assicurandoti di abilitare l'attributo relativo alle reti avanzate durante la registrazione dell'AMI.

Questo metodo è solo per scopi di test e feedback. Non è pensato per l'utilizzo con distribuzioni di produzione. Per distribuzioni di produzione, consulta Ubuntu.

Importante

L'uso di DKMS annulla il contratto di assistenza per l'abbonamento. Non deve essere utilizzato per le distribuzioni di produzione.

Per abilitare le reti avanzate con ENA su Ubuntu (istanze supportate da EBS)
  1. Seguire le fasi 1 e 2 in Ubuntu.

  2. Installare i pacchetti build-essential per compilare il driver del kernel e il pacchetto dkms in modo che il driver del kernel ena venga ricompilato a ogni aggiornamento del kernel.

    ubuntu:~$ sudo apt-get install -y build-essential dkms
  3. Clona il codice sorgente per il driver del ena kernel sulla tua istanza da GitHub at. https://github.com/amzn/amzn-drivers

    ubuntu:~$ git clone https://github.com/amzn/amzn-drivers
  4. Spostare il pacchetto amzn-drivers nella directory /usr/src/ in modo che DKMS riesca a individuarlo e compilarlo per ogni aggiornamento del kernel. Aggiungere il numero di versione (il numero di versione corrente è disponibile nelle note di rilascio) del codice sorgente al nome della directory. Nell'esempio seguente viene visualizzata la seguente versione 1.0.0.

    ubuntu:~$ sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0
  5. Creare il file di configurazione DKMS con i seguenti valori, sostituendo la versione in uso di ena.

    Creare il file.

    ubuntu:~$ sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf

    Modificare il file e aggiungere i valori seguenti.

    ubuntu:~$ sudo vim /usr/src/amzn-drivers-1.0.0/dkms.conf PACKAGE_NAME="ena" PACKAGE_VERSION="1.0.0" CLEAN="make -C kernel/linux/ena clean" MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=${kernelver}" BUILT_MODULE_NAME[0]="ena" BUILT_MODULE_LOCATION="kernel/linux/ena" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ena" AUTOINSTALL="yes"
  6. Aggiungere, compilare e installare il driver del kernel ena sull'istanza utilizzando DKMS.

    Aggiungere il driver del kernel a DKMS.

    ubuntu:~$ sudo dkms add -m amzn-drivers -v 1.0.0

    Compilare il driver del kernel usando il comando dkms.

    ubuntu:~$ sudo dkms build -m amzn-drivers -v 1.0.0

    Installare il driver del kernel usando dkms.

    ubuntu:~$ sudo dkms install -m amzn-drivers -v 1.0.0
  7. Ricompilare initramfs in modo che il driver del kernel corretto venga caricato in fase di avvio.

    ubuntu:~$ sudo update-initramfs -u -k all
  8. Verificare che il driver del kernel ena sia installato utilizzando il comando modinfo ena disponibile in Verifica dell'abilitazione delle reti avanzate.

    ubuntu:~$ modinfo ena filename: /lib/modules/3.13.0-74-generic/updates/dkms/ena.ko version: 1.0.0 license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 9693C876C54CA64AE48F0CA alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i* alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i* alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i* alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i* depends: vermagic: 3.13.0-74-generic SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable) 0 - Automatically choose according to device capability (default) 1 - Don't push anything to device memory 3 - Push descriptors and header buffer to device memory (int) parm: enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int) parm: enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int) parm: numa_node_override_array:Numa node override map (array of int) parm: numa_node_override:Enable/Disable numa node override (0=disable) (int)
  9. Continuare con la fase 3 in Ubuntu.

Se hai avviato l'istanza per la quale la funzionalità di reti avanzate non è già abilitata, devi scaricare e installare il driver per la scheda di rete richiesto sull'istanza e quindi impostare l'attributo enaSupport dell'istanza in modo da attivare le reti avanzate.

Per abilitare le reti avanzate
  1. Connettersi all'istanza ed eseguire l'accesso come amministratore locale.

  2. [Solo Windows Server 2016 e 2019] Esegui il seguente PowerShell script di EC2 avvio per configurare l'istanza dopo l'installazione del driver.

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
  3. Dall'istanza, installare il driver nel seguente modo:

    1. Scarica il driver più recente per l'istanza.

    2. Estrai l'archivio .zip.

    3. Installa il driver eseguendo lo install.ps1 PowerShell script.

      Nota

      Se si verifica un errore della policy di esecuzione, impostare la policy su Unrestricted (per impostazione predefinita è impostata su Restricted o RemoteSigned). In una riga di comandoSet-ExecutionPolicy -ExecutionPolicy Unrestricted, esegui e quindi esegui nuovamente install.ps1 PowerShell lo script.

  4. Dal tuo computer locale, interrompi l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: stop-instances(AWS CLI) o Stop-EC2Instance(AWS Tools for Windows PowerShell).

  5. Abilita il supporto ENA sull'istanza nel seguente modo:

    1. Dal tuo computer locale, controlla l'attributo ENA support dell' EC2 istanza sull'istanza eseguendo uno dei seguenti comandi. Se l'attributo non è abilitato, l'output riporterà "[]" o sarà vuoto. EnaSupport è configurato su false per impostazione predefinita.

      • describe-instances (AWS CLI)

        aws ec2 describe-instances --instance-ids i-1234567890abcdef0 --query "Reservations[].Instances[].EnaSupport"
      • Get-EC2Instance(Strumenti per Windows PowerShell)

        (Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.EnaSupport
    2. Per abilitare il supporto ENA, esegui uno dei comandi riportati di seguito:

      • modify-instance-attribute (AWS CLI)

        aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
      • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

        Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true

      Se si verificano problemi durante il riavvio dell'istanza, è possibile disabilitare il supporto ENA utilizzando uno dei seguenti comandi:

      • modify-instance-attribute (AWS CLI)

        aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --no-ena-support
      • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

        Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $false
    3. Verifica che l'attributo sia stato impostato su true utilizzando describe-instances o Get-EC2Instance come descritto in precedenza. Ora l'output restituito sarà simile al seguente:

      [ true ]
  6. Dal tuo computer locale, avvia l'istanza utilizzando la EC2 console Amazon o uno dei seguenti comandi: start-instances(AWS CLI) o Start-EC2Instance(AWS Tools for Windows PowerShell).

  7. Nell'istanza, verifica che il driver ENA sia installato e abilitato nel seguente modo:

    1. Fai clic con il pulsante destro del mouse sull'icona di rete e scegli Open Network and Sharing Center (Apri centro connessioni di rete e condivisione).

    2. Seleziona la scheda Ethernet (ad esempio, Ethernet 2).

    3. Seleziona Details (Dettagli). In Network Connection Details (Dettagli connessione di rete), verifica che nel campo Description (Descrizione) sia visualizzato Amazon Elastic Network Adapter.

  8. (Facoltativo) Crea un'AMI dall'istanza. L'AMI eredita l'attributo enaSupport dall'istanza. Pertanto, è possibile utilizzare questa AMI per avviare un'altra istanza con ENA abilitato per impostazione di default.