Amazon EBS e NVMe - Amazon EBS

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à.

Amazon EBS e NVMe

EBSi volumi sono esposti come dispositivi a NVMe blocchi su istanze basate sul sistema Nitro.

Le indicazioni EBS sulle prestazioni riportate in Amazon EBS Product Details sono valide indipendentemente dall'interfaccia a blocchi del dispositivo.

Istanze Linux

I nomi dei dispositivi sono /dev/nvme0n1/dev/nvme1n1, e così via. I nomi dei dispositivi specificati in una mappatura dei dispositivi a blocchi vengono rinominati utilizzando i nomi dei NVMe dispositivi ()/dev/nvme[0-26]n1. Il driver del dispositivo a blocchi può assegnare i nomi dei NVMe dispositivi in un ordine diverso da quello specificato per i volumi nella mappatura dei dispositivi a blocchi.

Istanze Windows

Quando colleghi un volume alla tua istanza, includi un nome di dispositivo per il volume. Questo nome di dispositivo viene utilizzato da AmazonEC2. Il driver del dispositivo a blocchi per l'istanza assegna il nome effettivo del volume durante il montaggio del volume e il nome assegnato può essere diverso dal nome EC2 utilizzato da Amazon.

Installa o aggiorna il NVMe driver

Per accedere ai NVMe volumi, è necessario installare NVMe i driver. Le istanze possono supportare NVMe EBS volumi, volumi di NVMe Instance Store, entrambi i tipi di NVMe volumi o nessun NVMe volume. Per ulteriori informazioni, vedere Riepilogo delle funzionalità di rete e archiviazione.

Di seguito AMIs sono inclusi i NVMe driver richiesti:

  • Amazon Linux 2

  • Amazon Linux AMI 2018.03

  • Ubuntu 14.04 o versioni successive con kernel linux-aws

    Nota

    AWS I tipi di istanze basati su Graviton richiedono Ubuntu 18.04 o versione successiva con kernel linux-aws

  • Red Hat Enterprise Linux 7.4 o versioni successive

  • SUSELinux Enterprise Server 12 o versione successiva SP2

  • CentOS 7.4.1708 o versioni successive

  • BSD11.1 o versione successiva gratuita

  • Debian GNU /Linux 9 o versione successiva

Per confermare che l'istanza abbia il driver NVMe

È possibile verificare che l'istanza disponga del NVMe driver utilizzando il seguente comando.

  • Amazon LinuxRHEL, CentOS e SUSE Linux Enterprise Server

    $ modinfo nvme

    Se l'istanza ha il NVMe driver, il comando restituisce informazioni sul driver.

  • Amazon Linux 2 e Ubuntu

    $ ls /sys/module/ | grep nvme

    Se l'istanza ha il NVMe driver, il comando restituisce i driver installati.

Per aggiornare il NVMe driver

Se l'istanza dispone del NVMe driver, è possibile aggiornare il driver alla versione più recente utilizzando la procedura seguente.

  1. Connettiti alla tua istanza.

  2. Aggiornare la cache dei pacchetti per ottenere gli aggiornamenti dei pacchetti necessari come riportato di seguito.

    • Per Amazon Linux 2, Amazon Linux, CentOS e Red Hat Enterprise Linux:

      [ec2-user ~]$ sudo yum update -y
    • Per Ubuntu e Debian:

      [ec2-user ~]$ sudo apt-get update -y
  3. Ubuntu 16.04 e versioni successive includono il linux-aws pacchetto, che contiene ENA i driver NVMe e richiesti dalle istanze basate su Nitro. Aggiornare il pacchetto linux-aws per ricevere la versione più recente come riportato di seguito:

    [ec2-user ~]$ sudo apt-get install --only-upgrade -y linux-aws

    Per Ubuntu 14.04, è possibile installare il pacchetto linux-aws più recente come segue:

    [ec2-user ~]$ sudo apt-get install linux-aws
  4. Riavviare l'istanza per caricare la versione più recente del kernel.

    sudo reboot
  5. Riconnettersi all'istanza dopo averla riavviata.

AWS Windows AMIs per Windows Server 2008 R2 e versioni successive includono il driver. AWS NVMe Se non utilizzi la versione più recente di AWS Windows AMIs fornita da Amazon, consulta Installa o aggiorna AWS NVMe i driver utilizzando PowerShell la Amazon EC2 User Guide.

Identifica il EBS dispositivo

EBSutilizza la virtualizzazione I/O a radice singola (SR-IOV) per fornire allegati di volume su istanze basate su Nitro utilizzando le specifiche. NVMe Questi dispositivi si basano su driver standard del sistema operativoNVMe. Questi driver in genere scoprono i dispositivi collegati eseguendo una scansione del bus di PCI durante l'avvio dell'istanza e creano nodi di dispositivi basati sull'ordine al quale rispondono i dispositivi, non su come i dispositivi vengono specificati nella mappatura dei dispositivi a blocco.

<y>In Linux, i nomi dei NVMe dispositivi seguono lo schema/dev/nvme<x>n<y>, dove <x>è l'ordine di enumerazione e, perEBS, è 1. Occasionalmente, i dispositivi possono rispondere alla scoperta in un ordine diverso, in avvii di istanze successivi, causando la modifica del nome del dispositivo. Inoltre, il nome del dispositivo assegnato dal driver del dispositivo a blocchi può essere diverso da quello specificato nella mappatura del dispositivo a blocchi.

Ti consigliamo di utilizzare identificatori stabili per i EBS volumi all'interno dell'istanza, come uno dei seguenti:

  • Per le istanze basate su Nitro, le mappature dei dispositivi a blocchi specificate nella EC2 console Amazon quando si collega un EBS volume AttachVolume o durante le nostre RunInstances API chiamate vengono acquisite nel campo dati specifico del fornitore dell'identificazione del controller. NVMe Con Amazon Linux AMIs successiva alla versione 2017.09.01, forniamo una udev regola che legge questi dati e crea un collegamento simbolico alla mappatura dei dispositivi a blocchi.

  • L'ID del EBS volume e il punto di montaggio sono stabili tra le modifiche dello stato dell'istanza. Il nome del NVMe dispositivo può cambiare in base all'ordine in cui i dispositivi rispondono durante l'avvio dell'istanza. Si consiglia di utilizzare l'ID EBS del volume e il punto di montaggio per un'identificazione coerente del dispositivo.

  • NVMeEBSper i volumi l'ID EBS del volume è impostato come numero di serie nell'identificazione del dispositivo. Utilizzare il comando lsblk -o +SERIAL per elencare il numero di serie.

  • Il formato del nome del NVMe dispositivo può variare a seconda che il EBS volume sia stato collegato durante o dopo l'avvio dell'istanza. NVMei nomi dei dispositivi per i volumi collegati dopo l'avvio dell'istanza includono il /dev/ prefisso, mentre i nomi dei NVMe dispositivi per i volumi collegati durante l'avvio dell'istanza non includono il /dev/ prefisso.

    • Per Amazon Linux o Free BSDAMI, usa il sudo ebsnvme-id /dev/nvme0n1 -u comando per un nome di NVMe dispositivo coerente.

    • Per altre distribuzioni, usa il sudo nvme id-ctrl -v /dev/nvme0n1 comando per determinare il nome del NVMe dispositivo. Potrebbe essere necessario includere l'opzione di --vendor-specific comando.

  • Quando un dispositivo viene formattato, UUID viene generato un file che persiste per tutta la vita del filesystem. Un'etichetta di dispositivo può essere specificata allo stesso tempo. Per ulteriori informazioni, consulta Rendi disponibile un volume Amazon EBS per l'uso e Boot from the wrong volume.

Amazon Linux AMIs

Con Amazon Linux AMI 2017.09.01 o versioni successive (incluso Amazon Linux 2), puoi eseguire il ebsnvme-id comando come segue per mappare il nome del NVMe dispositivo a un ID di volume e al nome del dispositivo:

L'esempio seguente mostra il comando e l'output di un volume collegato durante l'avvio dell'istanza. Tieni presente che il nome del NVMe dispositivo non include il prefisso. /dev/

[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme0n1 Volume ID: vol-01324f611e2463981 sda

L'esempio seguente mostra il comando e l'output di un volume collegato dopo l'avvio dell'istanza. Si noti che il nome NVMe del dispositivo include il /dev/ prefisso.

[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme1n1 Volume ID: vol-064784f1011136656 /dev/sdf

Amazon Linux crea anche un collegamento simbolico dal nome del dispositivo nella mappatura a blocchi del dispositivo (ad esempio,/dev/sdf), al nome del NVMe dispositivo.

Gratuito BSD AMIs

A partire da Free BSD 12.2-RELEASE, è possibile eseguire il ebsnvme-id comando come mostrato sopra. Passa il nome del NVMe dispositivo (ad esempio,nvme0) o del dispositivo disco (ad esempio, nvd0 onda0). Free crea BSD anche collegamenti simbolici ai dispositivi a disco (ad esempio, /dev/aws/disk/ebs/volume_id).

Altro Linux AMIs

Con una versione del kernel 4.2 o successiva, è possibile eseguire il nvme id-ctrl comando come segue per mappare un NVMe dispositivo a un ID di volume. Innanzitutto, installa il pacchetto da riga di NVMe comando utilizzando nvme-cli gli strumenti di gestione dei pacchetti per la tua distribuzione Linux. Per le istruzioni per il download e l'installazione di altre distribuzioni, fai riferimento alla documentazione specifica della distribuzione.

L'esempio seguente ottiene l'ID del volume e il nome NVMe del dispositivo per un volume che è stato collegato durante l'avvio dell'istanza. Si noti che il nome del NVMe dispositivo non include il /dev/ prefisso. Il nome del dispositivo è disponibile tramite l'estensione specifica NVMe del fornitore del controller (byte 384:4095 dell'identificazione del controller):

[ec2-user ~]$ sudo nvme id-ctrl -v /dev/nvme0n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : vol01234567890abcdef mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "sda..."

L'esempio seguente ottiene l'ID del volume e il nome del NVMe dispositivo per un volume collegato dopo l'avvio dell'istanza. Si noti che il nome NVMe del dispositivo include il /dev/ prefisso.

[ec2-user ~]$ sudo nvme id-ctrl -v /dev/nvme1n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : volabcdef01234567890 mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "/dev/sdf..."

Il comando lsblk mostra l'elenco dei dispositivi disponibili e dei relativi punti di montaggio (se applicabile). Queste informazioni consentono di determinare il nome di dispositivo corretto da utilizzare. In questo esempio, /dev/nvme0n1p1 viene montato come dispositivo root e /dev/nvme1n1 viene collegato, ma non montato.

[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:3 0 100G 0 disk nvme0n1 259:0 0 8G 0 disk nvme0n1p1 259:1 0 8G 0 part / nvme0n1p128 259:2 0 1M 0 part

È possibile eseguire il ebsnvme-id comando per mappare il numero del disco del NVMe dispositivo a un ID di EBS volume e al nome del dispositivo. Per impostazione predefinita, tutti i EBS NVMe dispositivi sono enumerati. È possibile passare un numero di disco per enumerare informazioni di un dispositivo specifico. Lo ebsnvme-id strumento è incluso nell'ultima versione di Windows Server AWS AMIs fornita in. C:\PROGRAMDATA\AMAZON\Tools

A partire dal pacchetto AWS NVMe driver, 1.5.0, la versione più recente dello ebsnvme-id strumento viene installata dal pacchetto driver. L'ultima versione è disponibile solo nel pacchetto driver. Il link per il download standalone dello strumento ebsnvme-id non riceverà più aggiornamenti. L'ultima versione disponibile tramite il link standalone è1.1.0, che può essere scaricata utilizzando il collegamento ebsnvme-id.zip ed estraendo i contenuti sulla propria EC2 istanza Amazon a cui accedere. ebsnvme-id.exe

PS C:\Users\Administrator\Desktop> ebsnvme-id.exe Disk Number: 0 Volume ID: vol-0d6d7ee9f6e471a7f Device Name: sda1 Disk Number: 1 Volume ID: vol-03a26248ff39b57cf Device Name: xvdd Disk Number: 2 Volume ID: vol-038bd1c629aa125e6 Device Name: xvde Disk Number: 3 Volume ID: vol-034f9d29ec0b64c89 Device Name: xvdb Disk Number: 4 Volume ID: vol-03e2dbe464b66f0a1 Device Name: xvdc PS C:\Users\Administrator\Desktop> ebsnvme-id.exe 4 Disk Number: 4 Volume ID: vol-03e2dbe464b66f0a1 Device Name: xvdc

Lavora con i volumi NVMe EBS

Per formattare e montare un NVMe EBS volume, vedereRendi disponibile un volume Amazon EBS per l'uso.

Istanze Linux

Se si utilizza il kernel Linux 4.2 o successivo, qualsiasi modifica apportata alla dimensione del volume di un NVMe EBS volume si riflette automaticamente nell'istanza. Per i kernel Linux meno recenti, potrebbe essere necessario scollegare e collegare il EBS volume o riavviare l'istanza per riflettere la modifica delle dimensioni. Con il kernel Linux 3.19 o successivo, puoi usare il hdparm comando seguente per forzare una nuova scansione del dispositivo: NVMe

[ec2-user ~]$ sudo hdparm -z /dev/nvme1n1

Quando scollegate un NVMe EBS volume, l'istanza non ha la possibilità di svuotare le cache o i metadati del file system prima di scollegare il volume. Pertanto, prima di scollegare un NVMe EBS volume, è necessario innanzitutto sincronizzarlo e smontarlo. Se non è possibile scollegare il volume, si può provare a eseguire il comando force-detach, come descritto in Scollegare un volume Amazon EBS da un'istanza.

Istanze Windows

Le AWS versioni più recenti di Windows AMIs contengono il AWS NVMe driver richiesto dai tipi di istanze che espongono i EBS volumi come NVMe dispositivi a blocchi. Tuttavia, se ridimensioni il volume root in un sistema Windows, devi rieseguire la scansione del volume per rendere effettive le modifiche. Se l'istanza è stata avviata da un'altra istanzaAMI, potrebbe non contenere il AWS NVMe driver richiesto. Se l'istanza non dispone del AWS NVMe driver più recente, è necessario installarlo. Per ulteriori informazioni, consulta AWS NVMeDriver per istanze Windows.

Timeout delle operazioni di I/O

La maggior parte dei sistemi operativi specifica un timeout per le operazioni di I/O inviate ai dispositivi. NVMe

Istanze Linux

In Linux, EBS i volumi collegati alle istanze basate su Nitro utilizzano il NVMe driver predefinito fornito dal sistema operativo. La maggior parte dei sistemi operativi specifica un timeout per le operazioni di I/O inviate ai dispositivi. NVMe Il timeout predefinito è di 30 secondi e può essere modificato con il parametro di avvio nvme_core.io_timeout. Per la maggior parte dei kernel Linux precedenti alla versione 4.6, questo parametro è nvme.io_timeout.

Se la latenza di I/O supera il valore di questo parametro di timeout, il NVMe driver Linux interrompe l'I/O e restituisce un errore al file system o all'applicazione. In base all'operazione I/O, il filesystem o l'applicazione possono riprovare l'errore. In alcuni casi, il file system potrebbe essere montato nuovamente come di sola lettura.

Per un'esperienza simile ai EBS volumi collegati alle istanze Xen, consigliamo di impostare il valore più alto possibile. nvme_core.io_timeout Per i kernel attuali il valore massimo è 4294967295, mentre per i kernel precedenti è 255. A seconda della versione di Linux, il timeout potrebbe essere già impostato sul valore massimo supportato. Ad esempio, il timeout è impostato su 4294967295 per impostazione predefinita per Amazon Linux AMI 2017.09.01 e versioni successive.

Puoi verificare il valore massimo della distribuzione Linux scrivendo un valore superiore a quello massimo suggerito in /sys/module/nvme_core/parameters/io_timeout e controllando l'errore Numerical result out of range (Risultato numerico fuori intervallo) quando cerchi di salvare il file.

Istanze Windows

In Windows, il timeout predefinito è di 60 secondi e il massimo è di 255 secondi. È possibile modificare l'impostazione del registro della classe del TimeoutValue disco utilizzando la procedura descritta in Voci di registro per i driver SCSI Miniport.

Comando Abort

Il Abort comando è un comando di NVMe amministrazione che viene emesso per interrompere un comando specifico precedentemente inviato al controller. Questo comando tipicamente viene emesso dal driver del dispositivo ai dispositivi di archiviazione che hanno superato la soglia di timeout dell'operazione di I/O. I tipi di EC2 istanze Amazon che supportano il Abort comando per impostazione predefinita interromperanno un comando specifico precedentemente inviato al controller del EBS dispositivo Amazon collegato a cui viene emesso un Abort comando.

I seguenti tipi di istanza supportano il Abort comando per tutti i EBS volumi Amazon collegati per impostazione predefinita: R5b R6iM6i,M6a,C6gn,C6i,,X2gd,X2iezn,Im4gn,Is4gen.

Altri tipi di istanze non intervengono quando Abort i comandi vengono emessi ai EBS volumi Amazon collegati.

EBSI dispositivi Amazon con versione NVMe del dispositivo 1.4 o superiore supportano il Abort comando.

Per ulteriori informazioni, consulta la sezione 5.1 Comando di interruzione della specifica NVM Express Base.