Aggiungi mappature dei dispositivi a blocchi all'istanza Amazon EC2 - Amazon Elastic Compute Cloud

Aggiungi mappature dei dispositivi a blocchi all'istanza Amazon EC2

Per impostazione predefinita, un'istanza avviata include eventuali dispositivi di archiviazione specificati nella mappatura dei dispositivi a blocchi di un'AMI da cui l'istanza è stata avviata. Puoi specificare le modifiche alle mappatura dei dispositivi a blocchi di un'istanza quando la avvii; tali aggiornamenti sostituiscono la mappatura dei dispositivi a blocchi dell'AMI o si uniscono a essa.

Limitazioni
  • Per il volume root, puoi solo modificare: le dimensioni, il tipo e il contrassegno È possibile modificare il Delete on Termination (Elimina al termine).

  • Quando modifichi un volume EBS non puoi ridurne le dimensioni, pertanto devi specificare una snapshot le cui dimensioni siano uguali o maggiori di quelle della snapshot specificata nella mappatura dei dispositivi a blocchi dell'AMI.

Aggiornamento della mappatura dei dispositivi a blocchi all'avvio di un'istanza

Puoi aggiungere volumi EBS e volumi instance store a un'istanza al momento del suo avvio. Tieni presente che l'aggiornamento della mappatura dei dispositivi a blocchi di un'istanza non comporta una modifica permanente della mappatura dell'AMI da cui l'istanza è stata avviata.

Console
Per aggiornare i volumi per un’istanza all’avvio
  1. Segui la procedura di avvio di un’istanza, ma non avviare l’istanza finché non avrai completato i seguenti passaggi per aggiornare i volumi.

  2. (Facoltativo) Per aggiungere un volume, scegli Configura archiviazione, Aggiungi nuovo volume. Seleziona la dimensione e il tipo di volume.

  3. (Facoltativo) Per sopprimere un volume specificato dalla mappatura dei dispositivi a blocchi dell’AMI, scegli Configura archiviazione, Rimuovi.

  4. (Facoltativo) Per modificare la configurazione di un volume EBS, nel riquadro Configura archiviazione, scegli Avanzato. Espandi le informazioni relative al volume e apporta le modifiche necessarie.

  5. Nel pannello Summary (Riepilogo), verifica la configurazione dell'istanza, quindi scegli Launch instance (Avvia istanza). Per ulteriori informazioni, consulta Avviare un'istanza EC2 tramite la procedura guidata di avvio dell'istanza nella console.

AWS CLI
Per aggiornare i volumi per un’istanza all’avvio

Utilizzare il comando run-instances con l’opzione --block-device-mappings.

--block-device-mappings file://mapping.json

Ad esempio, si supponga che un’AMI di mappatura dei dispositivi a blocchi specifichi ciò che segue:

  • /dev/xvda: volume root EBS

  • /dev/sdh: volume EBS creato da snap-1234567890abcdef0

  • /dev/sdj: volume EBS vuoto con una dimensione di 100

  • /dev/sdb: volume di archivio dell’istanza ephemeral0

Supponiamo che quanto segue sia l’istanza di mappatura dei dispositivi a blocchi in mapping.json.

[ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } }, { "DeviceName": "/dev/sdj", "NoDevice": "" }, { "DeviceName": "/dev/sdh", "Ebs": { "VolumeSize": 300 } }, { "DeviceName": "/dev/sdc", "VirtualName": "ephemeral1" } ]

L’istanza di mappatura dei dispositivi a blocchi esegue le seguenti operazioni:

  • Sostituisce la dimensione del volume root, /dev/xvda, aumentandola a 100 GiB.

  • Impedisce a /dev/sdj di collegarsi all’istanza.

  • Sostituisce la dimensione di /dev/sdh, aumentandola a 300 GiB. Nota che non è necessario specificare nuovamente l’ID snapshot.

  • Aggiunge un volume effimero, /dev/sdc. Se il tipo di istanza non supporta più volumi di archivio dell’istanza, questo non ha effetto. Se lil tipo dell’istanza supporta i volumi di archivio dell’istanza NVMe, questi vengono enumerati automaticamente, inclusi nell’istanza di mappatura dei dispositivi a blocchi e non possono essere sostituiti.

PowerShell
Per aggiornare i volumi per un’istanza all’avvio

Utilizza il parametro -BlockDeviceMapping con il cmdlet New-EC2Instance con il parametro -BlockDeviceMapping.

-BlockDeviceMapping $bdm

Supponiamo che quanto segue sia l’istanza di mappatura dei dispositivi a blocchi in $bdm.

$bdm = @() $root = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $root.DeviceName = "/dev/xvda" $ebs1 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebs1.VolumeSize = 100 $root.Ebs = $ebs1 $bdm += $root $sdj = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdj.DeviceName = "/dev/sdj" $sdj.NoDevice = "" $bdm += $sdj $sdh = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdh.DeviceName = "/dev/sdh" $ebs2 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebs2.VolumeSize = 300 $sdh.Ebs = $ebs2 $bdm += $sdh $sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdc.DeviceName = "/dev/sdc" $sdc.VirtualName = "ephemeral1" $bdm += $sdc

L’istanza di mappatura dei dispositivi a blocchi esegue le seguenti operazioni:

  • Sostituisce la dimensione del volume root, /dev/xvda, aumentandola a 100 GiB.

  • Impedisce a /dev/sdj di collegarsi all’istanza.

  • Sostituisce la dimensione di /dev/sdh, aumentandola a 300 GiB. Nota che non è necessario specificare nuovamente l’ID snapshot.

  • Aggiunge un volume effimero, /dev/sdc. Se il tipo di istanza non supporta più volumi di archivio dell’istanza, questo non ha effetto. Se lil tipo dell’istanza supporta i volumi di archivio dell’istanza NVMe, questi vengono enumerati automaticamente, inclusi nell’istanza di mappatura dei dispositivi a blocchi e non possono essere sostituiti.

Aggiornamento della mappatura dei dispositivi a blocchi di un'istanza in esecuzione

Non è necessario arrestare l'istanza prima di cambiare questo attributo.

AWS CLI
Per aggiornare la mappatura dei dispositivi a blocchi di un’istanza in esecuzione

Utilizza il comando modify-instance-attribute.

Aggiungere l’opzione --block-device-mappings:

--block-device-mappings file://mapping.json

In mapping.json, specifica gli aggiornamenti. Ad esempio, il seguente aggiornamento modifica il volume root in modo che persista.

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
Per aggiornare la mappatura dei dispositivi a blocchi di un’istanza in esecuzione

Utilizzare il cmdlet Edit-EC2InstanceAttribute.

Aggiungere l’opzione -BlockDeviceMapping:

-BlockDeviceMapping $bdm

In bdm, specifica gli aggiornamenti. Ad esempio, il seguente aggiornamento modifica il volume root in modo che persista.

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd

Visualizzazione dei volumi EBS nella mappatura dei dispositivi a blocchi di un'istanza

Puoi enumerare facilmente i volumi EBS mappati a un'istanza.

Console
Per visualizzare i volumi EBS di un’istanza
  1. Aprire la console Amazon EC2.

  2. Nel riquadro di navigazione, seleziona Instances (Istanze).

  3. Selezionare l’istanza ed esaminare i dettagli visualizzati nella scheda Storage (Archiviazione). Al minimo, le seguenti informazioni sono disponibili per il volume root (dove il termine dispositivo root equivale a volume root):

    • Tipo di dispositivo root (ad esempio, EBS)

    • Nome dispositivo root (ad esempio, /dev/xvda)

    • Dispositivi a blocchi (ad esempio, /dev/xvda, /dev/sdf e /dev/sdj)

    Se l'istanza è stata avviata con volumi EBS aggiuntivi utilizzando una mappatura di dispositivi a blocchi, questi vengono visualizzati in Block devices (Dispositivi a blocchi). Qualsiasi volume dell'instance store non viene visualizzato in questa scheda.

  4. Per visualizzare ulteriori informazioni su un volume EBS, scegliere il relativo ID volume per andare alla pagina del volume.

AWS CLI
Per visualizzare i volumi EBS di un’istanza

Utilizzare il comando describe-instances.

aws ec2 describe-instances \ --instance-ids i-1234567890abcdef0 \ --query Reservations[*].Instances[0].BlockDeviceMappings
PowerShell
Per visualizzare i volumi EBS di un’istanza

Utilizzare il cmdlet Get-EC2Instance.

(Get-EC2Instance -InstanceId i-0bac57d7472c89bac).Instances.BlockDeviceMappings

Visualizzazione della mappatura dei dispositivi a blocchi di un'istanza per i volumi instance store

Il tipo di istanza determina il numero e il tipo di volumi dell'archivio dell'istanza disponibili. Se il numero di volumi instance store in una mappatura dei dispositivi a blocchi supera il numero disponibile di volumi instance store per un'istanza, i volumi vengono ignorati. Per visualizzare i volumi dell'archivio dell'istanza per l'istanza, esegui il comando lsblk (istanza Linux) o apri Windows Disk Management (istanza Windows). Per conoscere il numero di volumi instance store supportati da ogni tipo di istanza, consulta le specifiche del tipo di istanza Amazon EC2.

Quando visualizzi la mappatura dei dispositivi a blocchi della tua istanza, puoi vedere solo i volumi EBS e non i volumi instance store. Il metodo utilizzato per visualizzare i volumi dell'archivio istanza per l'istanza dipende dal tipo di volume.

Volumi di archivio istanza NVMe

È possibile utilizzare il pacchetto della riga di comando NVMe, nvme-cli, per eseguire query sui volumi dell'archivio istanza NVMe nella mappatura dei dispositivi a blocchi. Scarica e installa il pacchetto sull'instanza, quindi emetti il seguente comando.

[ec2-user ~]$ sudo nvme list

Di seguito è riportato un esempio di output per un'istanza. Il testo nella colonna Modello indica se il volume è un volume EBS o un volume dell'archivio istanza. In questo esempio, entrambi /dev/nvme1n1 e /dev/nvme2n1 sono volumi dell'archivio istanza.

Node SN Model Namespace ---------------- -------------------- ---------------------------------------- --------- /dev/nvme0n1 vol06afc3f8715b7a597 Amazon Elastic Block Store 1 /dev/nvme1n1 AWS2C1436F5159EB6614 Amazon EC2 NVMe Instance Storage 1 /dev/nvme2n1 AWSB1F4FF0C0A6C281EA Amazon EC2 NVMe Instance Storage 1 ...

Puoi utilizzare Disk Management o PowerShell per elencare volumi NVMe dell’archivio dell’istanza ed EBS. Per ulteriori informazioni, consulta Mappare i dischi NVMe ai volumi nell'istanza Amazon EC2 Windows.

Volumi di archivio istanza HDD o SSD

È possibile utilizzare i metadati dell'istanza per effettuare query sui volumi dell'archivio istanza HDD o SSD nella mappatura dei dispositivi a blocchi. I volumi dell'instance store NVMe non sono inclusi nella mappatura dei dispositivi a blocchi.

L'URI di base di tutte le richieste dei metadati dell'istanza è http://169.254.169.254/latest/. Per ulteriori informazioni, consulta Utilizzo dei metadati dell'istanza per gestire l'istanza EC2.

Innanzitutto connettiti all'istanza in esecuzione, quindi da essa utilizza questa query per ottenere la relativa mappatura dei dispositivi a blocchi.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/

La risposta include i nomi dei dispositivi a blocchi dell'istanza. Ad esempio, l'output di un'istanza m1.small supportata da archivio istanza somiglia a quello seguente.

ami ephemeral0 root swap

Il dispositivo ami è il volume root come visto dall’istanza. I volumi instance store sono denominati ephemeral[0-23]. Il dispositivo swap è destinato al file di paging. Se hai mappato anche i volumi EBS, questi appariranno come ebs1, ebs2 e così via.

Per ottenere i dettagli su un singolo dispositivo a blocchi nella mappatura dei dispositivi a blocchi, aggiungi il suo nome alla query precedente, come mostrato.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0

Innanzitutto connettiti all'istanza in esecuzione, quindi da essa utilizza questa query per ottenere la relativa mappatura dei dispositivi a blocchi.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/

La risposta include i nomi dei dispositivi a blocchi dell'istanza. Ad esempio, l'output di un'istanza m1.small supportata da archivio istanza somiglia a quello seguente.

ami ephemeral0 root swap

Il dispositivo ami è il volume root come visto dall’istanza. I volumi instance store sono denominati ephemeral[0-23]. Il dispositivo swap è destinato al file di paging. Se hai mappato anche i volumi EBS, questi appariranno come ebs1, ebs2 e così via.

Per ottenere i dettagli su un singolo dispositivo a blocchi nella mappatura dei dispositivi a blocchi, aggiungi il suo nome alla query precedente, come mostrato.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0