Kernel forniti dall'utente - 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à.

Kernel forniti dall'utente

Se ti occorre un kernel personalizzato per le istanze Amazon EC2, puoi iniziare con un'AMI vicina a quella che desideri, quindi puoi compilare il kernel personalizzato sull'istanza e aggiornare il bootloader per puntare al nuovo kernel. Questo processo varia a seconda del tipo di virtualizzazione utilizzato dall'AMI. Per ulteriori informazioni, consulta Tipi di virtualizzazione delle AMI Linux.

AMIs HVM (GRUB)

I volumi delle istanze HVM vengono trattati come dischi fisici reali. Il processo di avvio è simile a quello di un sistema operativo bare metal, con un disco partizionato e un bootloader che consente di lavorare con tutte le distribuzioni Linux attualmente supportate. Il bootloader più comune è GRUB o GRUB2.

Per impostazione predefinita, GRUB non invia il suo output alla console dell'istanza, perché questo comporta un ritardo aggiuntivo nell'avvio. Per ulteriori informazioni, consulta Output della console delle istanze. Se si sta installando un kernel personalizzato, si dovrebbe prendere in considerazione l'abilitazione dell'output di GRUB.

Non occorre specificare un kernel di fallback, ma suggeriamo di averne uno quando si prova un nuovo kernel. GRUB può ritornare su un altro kernel nel caso in cui quello nuovo non funzioni. Avere un kernel di fallback consente l'avvio dell'istanza anche se il nuovo kernel non viene trovato.

GRUB legacy per Amazon Linux usa /boot/grub/menu.lst. GRUB2 per Amazon Linux 2 usa /etc/default/grub. Per ulteriori informazioni sull'aggiornamento del kernel predefinito nel bootloader, vedere la documentazione per la distribuzione Linux.

AMIs paravirtuali (PV-GRUB)

Le Amazon Machine Image che usano la virtualizzazione paravirtuale (PV) utilizzano un sistema denominato PV-GRUB durante il processo di avvio. PV-GRUB è un bootloader paravirtuale che esegue patch della versione GNU GRUB 0.97. Quando avvii un'istanza, PV-GRUB inizia il processo di avvio e carica in sequenza il kernel specificato dal file dell'immagine menu.lst.

PV-GRUB comprende i comandi standard grub.conf o menu.lst, che gli consentono di lavorare con tutte le distribuzioni Linux attualmente supportate. Le distribuzioni precedenti, come Ubuntu 10.04 LTS, Oracle Enterprise Linux o CentOS 5.x, richiedono uno speciale pacchetto di kernel "ec2" o "xen", mentre le distribuzioni più recenti includono i driver necessari nel pacchetto di kernel predefinito.

La maggior parte delle moderne AMI paravirtuali utilizza un AKI PV-GRUB per impostazione predefinita (comprese tutte le AMI Linux paravirtuali disponibili nel menu Amazon EC2 Launch Wizard Quick Start), perciò non occorre eseguire altri passaggi per utilizzare un kernel diverso sull'istanza, sempre che il kernel che vuoi utilizzare sia compatibile con la tua distribuzione. Il modo migliore per eseguire un kernel personalizzato sulla tua istanza è iniziare da un'AMI vicina a quella desiderata, quindi compilare il kernel personalizzato sull'istanza e modificare il file menu.lst per eseguire l'avvio con quel kernel.

È possibile verificare che l'immagine del kernel per un AMI sia un AKI PV-GRUB. Eseguire il comando describe-images (sostituendo l'ID immagine del kernel) e verificare se il campo Name inizia con pv-grub:

aws ec2 describe-images --filters Name=image-id,Values=aki-880531cd

Limiti di PV-GRUB

PV-GRUB presenta i seguenti limiti:

  • Non è possibile utilizzare la versione a 64 bit di PV-GRUB per avviare un kernel da 32 bit o viceversa.

  • Non è possibile specificare una Amazon ramdisk image (ARI) quando si utilizza un AKI PV-GRUB.

  • AWS ha testato e verificato che PV-GRUB funzioni con questi formati di file system: EXT2, EXT3, EXT4, JFS, XFS e ReiserFS. Altri formati potrebbero non funzionare.

  • PV-GRUB può avviare kernel compressi tramite i formati di compressione gzip, bzip2, lzo e xz.

  • Le AMI di cluster non supportano né richiedono PV-GRUB, dato che utilizzano la virtualizzazione completa dell'hardware (HVM). Mentre le istanze paravirtuali utilizzano PV-GRUB per l'avvio, i volumi delle istanze HVM sono trattati come dischi reali e il processo di avvio è simile a quello di un sistema operativo bare metal con disco partizionato e bootloader.

  • Le versioni 1.03 e precedenti di PV-GRUB non supportano il partizionamento GPT, ma solo il partizionamento MBR.

  • Se hai in programma di utilizzare un gestore logico di volumi (LVM) con i volumi Amazon Elastic Block Store (Amazon EBS), ti servirà una partizione di avvio distinta al di fuori del LVM. Potrai così creare volumi logici con il LVM.

Configurazione di GRUB per le AMIs paravirtuali

Per avviare PV-GRUB, nell'immagine deve essere presente un file menu.lst GRUB; la posizione più comune di questo file è /boot/grub/menu.lst.

Di seguito è riportato un esempio di un file di configurazione menu.lst per l'avvio di un'AMI con un AKI PV-GRUB. In questo esempio è possibile scegliere tra due voci di kernel: Amazon Linux 2018.03 (il kernel originale dell'AMI) e Vanilla Linux 4.16.4 (una versione più recente del kernel Vanilla Linux da https://www.kernel.org/). La voce Vanilla è stata copiata dalla voce originale di questa AMI e i percorsi kernel e initrd sono stati aggiornati sulle nuove posizioni. Il parametro default 0 punta il bootloader sulla prima voce che visualizza (in questo caso, la voce Vanilla) e il parametro fallback 1 punta il bootloader sulla voce successiva in caso di problemi nell'avvio della prima.

default 0
fallback 1
timeout 0
hiddenmenu

title Vanilla Linux 4.16.4
root (hd0)
kernel /boot/vmlinuz-4.16.4 root=LABEL=/ console=hvc0
initrd /boot/initrd.img-4.16.4

title Amazon Linux 2018.03 (4.14.26-46.32.amzn1.x86_64)
root (hd0)
kernel /boot/vmlinuz-4.14.26-46.32.amzn1.x86_64 root=LABEL=/ console=hvc0
initrd /boot/initramfs-4.14.26-46.32.amzn1.x86_64.img

Non occorre specificare un kernel di fallback nel file menu.lst, ma ti suggeriamo di averne uno quando testi un nuovo kernel. PV-GRUB può ritornare su un altro kernel nel caso in cui quello nuovo non funzioni. Avere un kernel di fallback permette l'avvio dell'istanza anche se il nuovo kernel non viene trovato.

PV-GRUB controlla le seguenti posizioni di menu.lst utilizzando la prima che trova:

  • (hd0)/boot/grub

  • (hd0,0)/boot/grub

  • (hd0,0)/grub

  • (hd0,1)/boot/grub

  • (hd0,1)/grub

  • (hd0,2)/boot/grub

  • (hd0,2)/grub

  • (hd0,3)/boot/grub

  • (hd0,3)/grub

Le versioni di PV-GRUB fino alla 1.03 controllano solo una delle prime due posizioni nell'elenco.

ID delle immagini dei kernel PV-GRUB di Amazon

Gli AKI PV-GRUB sono disponibili in tutte le Regioni di Amazon EC2, esclusa la Regione Asia Pacifico (Osaka). Esistono AKI per i tipi di architettura a 32 bit e a 64 bit. La maggior parte delle AMI moderne utilizza un AKI PV-GRUB per impostazione predefinita.

Ti suggeriamo di utilizzare sempre la versione più recente dell'AKI PV-GRUB, perché non tutte le versioni sono compatibili con ogni tipo di istanza. Utilizza il seguente comando describe-images per ottenere un elenco degli AKI PV-GRUB per la regione in uso:

aws ec2 describe-images --owners amazon --filters Name=name,Values=pv-grub-*.gz

PV-GRUB è l'unico AKI disponibile nella regione ap-southeast-2. Devi verificare che le AMI che vuoi copiare su questa regione utilizzino una versione di PV-GRUB disponibile nella regione.

Di seguito sono elencati gli attuali ID AKI per ciascuna regione. Registra nuove AMI utilizzando un AKI hd0.

Nota

Continuiamo a fornire AKI hd00 per compatibilità con le versioni precedenti nelle regioni in cui erano prima disponibili.

ap-northeast-1, Asia Pacific (Tokyo)
ID immagine Nome immagine
aki-f975a998 pv-grub-hd0_1.05-i386.gz
aki-7077ab11 pv-grub-hd0_1.05-x86_64.gz
ap-southeast-1, Asia Pacific (Singapore) Region
ID immagine Nome immagine
aki-17a40074 pv-grub-hd0_1.05-i386.gz
aki-73a50110 pv-grub-hd0_1.05-x86_64.gz
ap-southeast-2, Asia Pacific (Sydney)
ID immagine Nome immagine
aki-ba5665d9 pv-grub-hd0_1.05-i386.gz
aki-66506305 pv-grub-hd0_1.05-x86_64.gz
eu-central-1, Europe (Frankfurt)
ID immagine Nome immagine
aki-1419e57b pv-grub-hd0_1.05-i386.gz
aki-931fe3fc pv-grub-hd0_1.05-x86_64.gz
eu-west-1, Europe (Ireland)
ID immagine Nome immagine
aki-1c9fd86f pv-grub-hd0_1.05-i386.gz
aki-dc9ed9af pv-grub-hd0_1.05-x86_64.gz
sa-east-1, South America (São Paulo)
ID immagine Nome immagine
aki-7cd34110 pv-grub-hd0_1.05-i386.gz
aki-912fbcfd pv-grub-hd0_1.05-x86_64.gz
us-east-1, US East (N. Virginia)
ID immagine Nome immagine
aki-04206613 pv-grub-hd0_1.05-i386.gz
aki-5c21674b pv-grub-hd0_1.05-x86_64.gz
us-gov-west-1, (Stati Uniti occidentali) AWS GovCloud
ID immagine Nome immagine
aki-5ee9573f pv-grub-hd0_1.05-i386.gz
aki-9ee55bff pv-grub-hd0_1.05-x86_64.gz
us-west-1, US West (N. California)
ID immagine Nome immagine
aki-43cf8123 pv-grub-hd0_1.05-i386.gz
aki-59cc8239 pv-grub-hd0_1.05-x86_64.gz
us-west-2, US West (Oregon)
ID immagine Nome immagine
aki-7a69931a pv-grub-hd0_1.05-i386.gz
aki-70cb0e10 pv-grub-hd0_1.05-x86_64.gz

Aggiornamento di PV-GRUB

Ti suggeriamo di utilizzare sempre la versione più recente dell'AKI PV-GRUB, perché non tutte le versioni sono compatibili con ogni tipo di istanza. Inoltre, le versioni precedenti di PV-GRUB non sono disponibili in tutte le regioni, quindi se copi un'AMI che utilizza una versione precedente su una regione che non la supporta, non potrai avviare istanze da quell'AMI fino a quando non aggiorni l'immagine del kernel. Utilizza le seguenti procedure per verificare la versione di PV-GRUB dell'istanza e aggiornarla se necessario.

Per verificare la versione di PV-GRUB
  1. Trovare l'ID kernel per l'istanza.

    aws ec2 describe-instance-attribute --instance-id instance_id --attribute kernel --region region { "InstanceId": "instance_id", "KernelId": "aki-70cb0e10" }

    L'ID kernel per l'istanza è aki-70cb0e10.

  2. Visualizzare le informazioni sulla versione dell'ID kernel.

    aws ec2 describe-images --image-ids aki-70cb0e10 --region region { "Images": [ { "VirtualizationType": "paravirtual", "Name": "pv-grub-hd0_1.05-x86_64.gz", ... "Description": "PV-GRUB release 1.05, 64-bit" } ] }

    L'immagine del kernel è PV-GRUB 1.05. Se la versione di PV-GRUB non è la più recente (come indicato in ID delle immagini dei kernel PV-GRUB di Amazon), devi aggiornarla utilizzando la seguente procedura.

Per aggiornare la versione di PV-GRUB

Se la tua istanza utilizza una versione precedente di PV-GRUB, devi aggiornarla alla versione più recente.

  1. Identificare l'AKI PV-GRUB più recente per la regione e l'architettura del processore da ID delle immagini dei kernel PV-GRUB di Amazon.

  2. Arrestare l'istanza. La tua istanza deve essere arrestata per modificare l'immagine del kernel utilizzata.

    aws ec2 stop-instances --instance-ids instance_id --region region
  3. Modificare l'immagine del kernel utilizzata per l'istanza.

    aws ec2 modify-instance-attribute --instance-id instance_id --kernel kernel_id --region region
  4. Riavviare l'istanza.

    aws ec2 start-instances --instance-ids instance_id --region region