Amazon Elastic Compute Cloud
Guide de l'utilisateur pour les instances Linux

Mappage de périphérique de stockage en mode bloc

Chaque instance que vous lancez comporte un volume du périphérique racine associé, soit un volume Amazon EBS ou un volume de stockage d'instance. Vous pouvez utiliser un mappage de périphérique de stockage en mode bloc pour spécifier des volumes EBS supplémentaires ou des volumes de stockage d'instance à attacher à une instance lorsqu'elle est lancée. Vous pouvez également attacher des volumes EBS supplémentaires à une instance en cours d'exécution. Consultez Attacher un volume Amazon EBS à une instance. Cependant, le seul moyen d'attacher des volumes de stockage d'instance à une instance est d'utiliser le mappage de périphérique de stockage en mode bloc pour les attacher au lancement de l'instance.

Pour plus d'informations sur les volumes du périphérique racine, consultez Modification du volume du périphérique racine en volume persistant.

Concepts de mappage de périphérique de stockage en mode bloc

Un périphérique de stockage en mode bloc est un dispositif de stockage qui déplace des données en séquence d'octets ou bits (blocs). Ces dispositifs prennent en charge l'accès aléatoire et utilisent généralement des E/S mis en mémoire tampon. Ce sont par exemple des disques durs, des lecteurs de CD-ROM et des lecteurs flash. Un périphérique de stockage en mode bloc peut être physiquement attaché à un ordinateur ou accessible à distance comme s'il était physiquement attaché à l'ordinateur. Amazon EC2 prend en charge deux types de périphériques de stockage en mode bloc :

  • Les volumes de stockage d'instance (périphériques virtuels dont le matériel sous-jacent est physiquement attaché à l'ordinateur hôte de l'instance)

  • Les volumes EBS (périphériques de stockage à distance)

Un mappage de périphérique de stockage en mode bloc définit les périphériques de stockage en mode bloc (volumes de stockage d'instance et volumes EBS) qui doivent être attachés à l'instance. Vous pouvez spécifier un mappage de périphérique de stockage en mode bloc lors de la création d'une AMI, afin que le mappage soit utilisé par toutes les instances lancées à partir de l'AMI. Vous pouvez également spécifier un mappage de périphérique de stockage en mode bloc lorsque vous lancez une instance, afin que son mappage remplace celui spécifié dans l'AMI à partir de laquelle vous avez lancé l'instance. Notez que tous les volumes de stockage d'instance NVMe pris en charge par un type d'instance sont automatiquement énumérés et un nom de périphérique leur est automatiquement attribué au lancement de l'instance. Le fait de les ajouter dans votre mappage de périphérique de stockage en mode bloc n'a aucun effet.

Entrées du mappage de périphérique de stockage en mode bloc

Lorsque vous créez un mappage de périphérique de stockage en mode bloc, vous spécifiez les informations suivantes pour chaque périphérique de stockage en mode bloc qui doit être attaché à l'instance :

  • Le nom du périphérique utilisé dans Amazon EC2. Le pilote du périphérique de stockage en mode bloc de l'instance attribue le nom de volume réel lors du montage du volume. Le nom attribué peut être différent de celui recommandé par Amazon EC2. Pour plus d'informations, consultez Noms d'appareil pour les instances Linux.

  • [Volumes de stockage d'instance] Le périphérique virtuel : ephemeral[0-23]. Notez que le nombre et la taille des volumes de stockage d'instance disponibles pour votre instance varient en fonction du type d'instance.

  • [Volumes de stockage d'instance NVMe] Ces volumes sont automatiquement énumérés et un nom de périphérique leur est automatiquement attribué. Le fait de les ajouter dans votre mappage de périphérique de stockage en mode bloc n'a aucun effet.

  • [Volumes EBS] L'ID de l'instantané à utiliser pour créer le périphérique de stockage en mode bloc (snap-xxxxxxxx). Cette valeur est facultative si vous spécifiez une taille de volume.

  • [Volumes EBS] La taille du volume, en Gio. La taille spécifiée doit être supérieure ou égale à la taille de l'instantané spécifié.

  • [Volumes EBS] La suppression ou non du volume à la clôture de l'instance (true ou false). La valeur par défaut est true pour le volume du périphérique racine et false pour les volumes attachés. Lorsque vous créez une AMI, son mappage de périphérique de stockage en mode bloc hérite de ce paramètre de l'instance. Lorsque vous lancez une instance, elle hérite de ce paramètre de l'AMI.

  • [Volumes EBS] Le type de volume, qui peut être gp2 pour SSD à usage général, io1 pour IOPS provisionnés SSD, st1 pour HDD à débit optimisé, sc1 pour Cold HDD ou standard pour magnétique. La valeur par défaut est gp2.

  • [Volumes EBS] Le nombre d'opérations d'E/S par seconde (IOPS) pris en charge par le volume. (Non utilisé avec les volumes gp2, st1, sc1 ou standard.)

Mises en garde sur le stockage d'instance du mappage de périphérique de stockage en mode bloc

Vous devez prendre en compte plusieurs mises en garde lorsque vous lancez des instances avec des AMIs comportant des volumes de stockage d'instance dans leurs mappages de périphérique de stockage en mode bloc.

  • Certains types d'instance comprennent un plus grand nombre de volumes de stockage d'instance que d'autres et certains types d'instance ne contiennent aucun volume de stockage d'instance. Si votre type d'instance prend en charge un volume de stockage d'instance et que votre AMI comporte des mappages pour deux volumes de stockage d'instance, l'instance est lancée avec un volume de stockage d'instance.

  • Les volumes de stockage d'instance peuvent uniquement être mappés au moment du lancement. Vous ne pouvez pas arrêter une instance sans volume de stockage d'instance (comme t2.micro), modifier le type de l'instance par un type prenant en charge les volumes de stockage d'instance, puis redémarrer l'instance avec des volumes de stockage d'instance. En revanche, vous pouvez créer une AMI à partir de l'instance et la lancer sur un type d'instance prenant en charge les volumes de stockage d'instance, et mapper ces volumes de stockage d'instance à l'instance.

  • Si vous lancez une instance à laquelle sont mappés des volumes de stockage d'instance, puis arrêtez l'instance, en modifiez le type avec un nombre inférieur de volumes de stockage d'instance et redémarrez l'instance, les mappages des volumes de stockage d'instance du lancement initial apparaissent toujours dans les métadonnées de l'instance. Cependant, l'instance n'a accès qu'au nombre maximum de volumes de stockage d'instance pris en charge pour ce type d'instance.

    Note

    Lorsqu'une instance est arrêtée, toutes les données stockées sur les volumes de stockage d'instance sont perdues.

  • En fonction de la capacité de stockage de l'instance au moment du lancement, les instances M3 peuvent ignorer les mappages de périphérique de stockage en mode bloc du stockage d'instance AMI au moment du lancement, sauf s'ils sont spécifiés au moment du lancement. Il est conseillé de spécifier les mappages de périphérique de stockage en mode bloc du stockage d'instance au moment du lancement, même si les volumes d'instance de stockage de l'AMI que vous lancez sont mappés dans l'AMI, afin de garantir la disponibilité des volumes de stockage d'instance au lancement de l'instance.

Exemple de mappage de périphérique de stockage en mode bloc

L'illustration suivante montre un exemple de mappage de périphérique de stockage en mode bloc pour une instance basée sur les volumes EBS. /dev/sdb est mappé à ephemeral0 et deux volumes EBS sont mappés. L'un à /dev/sdh et l'autre à /dev/sdj. La figure illustre également le volume EBS qui est le volume du périphérique racine, /dev/sda1.


          Relation entre une instance, des volumes de stockage d'instance et des volumes EBS.

Notez que cet exemple de mappage de périphérique de stockage en mode bloc est utilisé dans les exemples de commandes et d'API de cette rubrique. Les exemples de commandes et d'API qui créent les mappages de périphérique de stockage en mode bloc sont disponibles dans les sections Spécification d'un mappage de périphérique de stockage en mode bloc pour une AMI et Mise à jour du mappage de périphérique de stockage en mode bloc lors du lancement d'une instance.

Mise à disposition d'appareils dans le système d'exploitation

Les noms de périphériques tels que /dev/sdh et xvdh sont utilisés par Amazon EC2 pour décrire des périphériques de stockage en mode bloc. Le mappage de périphérique de stockage en mode bloc est utilisé par Amazon EC2 pour spécifier les périphériques de stockage en mode bloc qui doivent être attachés à une instance EC2. Lorsqu'un périphérique de stockage en mode bloc est attaché à une instance, il doit être monté par le système d'exploitation pour que vous puissiez accéder au dispositif de stockage. Lorsqu'un périphérique de stockage en mode bloc est détaché d'une instance, il doit être démonté par le système d'exploitation. Ainsi, vous ne pouvez plus accéder au dispositif de stockage.

Avec une instance Linux, les noms des appareils spécifiés dans le mappage de périphérique de stockage en mode bloc sont mappés à leurs périphériques de stockage en mode bloc correspondants au premier démarrage de l'instance. Le type d'instance détermine les volumes de stockage d'instance qui sont formatés et montés par défaut. Vous pouvez monter des volumes de stockage d'instance supplémentaires au moment du lancement, à condition de ne pas dépasser le nombre de volumes de stockage d'instance disponibles pour votre type d'instance. Pour plus d'informations, consultez Stockage d'instance Amazon EC2. Le pilote du périphérique de stockage en mode bloc pour l'instance détermine les périphériques utilisés lorsque les volumes sont formatés et montés. Pour plus d'informations, consultez Attacher un volume Amazon EBS à une instance.

Mappage de périphérique de stockage en mode bloc d'une AMI

Chaque AMI comporte un mappage de périphérique de stockage en mode bloc qui spécifie les périphériques de stockage en mode bloc à attacher à une instance lancée à partir de l'AMI. Une AMI fournie par Amazon comprend uniquement un périphérique racine. Pour ajouter d'autres périphériques de stockage en mode bloc à une AMI, vous devez créer votre propre AMI.

Spécification d'un mappage de périphérique de stockage en mode bloc pour une AMI

Lorsque vous créez une AMI, il existe deux façons de spécifier des volumes en plus du volume racine. Si vous avez déjà attaché des volumes à une instance en cours d'exécution avant de créer une AMI à partir de l'instance, le mappage de périphérique de stockage en mode bloc pour l'AMI comprend ces mêmes volumes. Pour les volumes EBS, les données existantes sont enregistrées dans un nouvel instantané. C'est ce nouvel instantané qui est spécifié dans le mappage de périphérique de stockage en mode bloc. Pour les volumes de stockage d'instance, les données ne sont pas conservées.

Pour une AMI basée sur des volumes EBS, vous pouvez ajouter des volumes EBS et des volumes de stockage d'instance à l'aide d'un mappage de périphérique de stockage en mode bloc. Pour une AMI basée sur le stockage d'instance, vous pouvez ajouter des volumes de stockage d'instance uniquement en modifiant les entrées du mappage de périphérique de stockage en mode bloc dans le fichier manifest des images lors de l'enregistrement de l'image.

Note

Pour les instances M3, vous devez spécifier les volumes de stockage d'instance dans le mappage de périphérique de stockage en mode bloc de l'instance lorsque cette dernière est lancée. Lorsque vous lancez une instance M3, les volumes de stockage d'instance spécifiés dans le mappage de périphérique de stockage en mode bloc de l'AMI peuvent être ignorés s'ils ne sont pas spécifiés dans le cadre du mappage de périphérique de stockage en mode bloc de l'instance.

Pour ajouter des volumes à une AMI à l'aide de la console

  1. Ouvrez la console Amazon EC2.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Sélectionnez une instance, puis choisissez Actions, Image, Create Image.

  4. Dans la boîte de dialogue Create Image, choisissez Add New Volume.

  5. Sélectionnez un type de volume dans la liste Type et un nom de périphérique dans la liste Device. Pour un volume EBS, vous pouvez éventuellement spécifier un instantané, une taille de volume et un type de volume.

  6. Choisissez Créer une image.

Pour ajouter des volumes à une AMI à l'aide de la ligne de commande

Utilisez la commande AWS CLI create-image pour spécifier un mappage de périphérique de stockage en mode bloc pour une AMI basée sur des volumes EBS. Utilisez la commande AWS CLI register-image afin de spécifier un mappage de périphérique de stockage en mode bloc pour une AMI basée sur le stockage d'instance.

Spécifiez le mappage de périphérique de stockage en mode bloc à l'aide du paramètre --block-device-mappings. Les arguments encodés en JSON peuvent être fournis soit directement depuis la ligne de commande soit par référence à un fichier :

--block-device-mappings [mapping, ...] --block-device-mappings [file://mapping.json]

Pour ajouter un volume de stockage d'instance, utilisez le mappage suivant :

{ "DeviceName": "/dev/sdf", "VirtualName": "ephemeral0" }

Pour ajouter un volume gp2 vide de 100 Gio, utilisez le mappage suivant :

{ "DeviceName": "/dev/sdg", "Ebs": { "VolumeSize": 100 } }

Pour ajouter un volume EBS basé sur un instantané, utilisez le mappage suivant :

{ "DeviceName": "/dev/sdh", "Ebs": { "SnapshotId": "snap-xxxxxxxx" } }

Pour omettre un mappage pour un périphérique, utilisez le mappage suivant :

{ "DeviceName": "/dev/sdj", "NoDevice": "" }

Vous pouvez aussi utiliser le paramètre -BlockDeviceMapping avec les commandes suivantes (Outils AWS pour Windows PowerShell) :

Affichage des volumes EBS dans le mappage de périphérique de stockage en mode bloc d'une AMI

Vous pouvez facilement énumérer les volumes EBS du mappage de périphérique de stockage en mode bloc pour une AMI.

Pour afficher les volumes EBS pour une AMI à l'aide de la console

  1. Ouvrez la console Amazon EC2.

  2. Dans le panneau de navigation, sélectionnez AMI.

  3. Choisissez EBS images dans la liste Filter pour obtenir la liste des AMI basées sur EBS.

  4. Sélectionnez l'AMI souhaitée et consultez l'onglet Details. Au minimum, les informations suivantes sont disponibles pour le périphérique racine :

    • Type de périphérique racine (ebs)

    • Nom du périphérique racine (par exemple, /dev/sda1)

    • Block Devices (par exemple, /dev/sda1=snap-1234567890abcdef0:8:true)

    Si l'AMI a été créée avec des volumes EBS supplémentaires à l'aide d'un mappage de périphérique de stockage en mode bloc, le champ Block Devices affiche également le mappage pour ces volumes supplémentaires. (Rappelez-vous que cet écran n'affiche pas les volumes de stockage d'instance.)

Pour afficher les volumes EBS d'une AMI à l'aide de la ligne de commande

Utilisez la commande describe-images (AWS CLI) ou la commande Get-EC2Image (Outils AWS pour Windows PowerShell) afin d'énumérer les volumes EBS dans le mappage de périphérique de stockage en mode bloc pour une AMI.

Mappage de périphérique de stockage en mode bloc d'une instance

Par défaut, une instance que vous lancez comprend tous les périphériques de stockage spécifiés dans le mappage de périphérique de stockage en mode bloc de l'AMI à partir de laquelle vous avez lancé l'instance. Vous pouvez spécifier les modifications apportées au mappage de périphérique de stockage en mode bloc d'une instance lorsque vous la lancez. Ces mises à jour remplacent le mappage de périphérique de stockage en mode bloc de l'AMI ou fusionnent avec.

Restrictions

  • Pour le volume racine, vous pouvez uniquement modifier les données informations suivantes : taille du volume, type de volume et indicateur Delete on Termination.

  • Lorsque vous modifiez un volume EBS, vous ne pouvez pas en diminuer la taille. Vous devez donc spécifier un instantané dont la taille est égale ou supérieure à celle de l'instantané spécifié dans le mappage de périphérique de stockage en mode bloc de l'AMI.

Mise à jour du mappage de périphérique de stockage en mode bloc lors du lancement d'une instance

Vous pouvez ajouter des volumes EBS et des volumes de stockage d'instance à une instance lors de son lancement. Notez que la mise à jour du mappage de périphérique de stockage en mode bloc d'une instance n'entraîne pas de modification permanente du mappage de périphérique de stockage en mode bloc de l'AMI à partir de laquelle il a été lancé.

Pour ajouter des volumes à une instance à l'aide de la console

  1. Ouvrez la console Amazon EC2.

  2. Sur le tableau de bord, choisissez Lancer une instance.

  3. Sur la page Choose an Amazon Machine Image (AMI), sélectionnez l'AMI à utiliser, puis choisissez Select.

  4. Suivez l'Assistant pour compléter les pages Choisir un type d'instance et Configurer les détails de l'instance.

  5. Sur la page Add Storage, vous pouvez modifier le volume racine, les volumes EBS et les volumes de stockage d'instance de la façon suivante :

    • Pour modifier la taille du volume racine, recherchez le volume Root dans la colonne Type, et modifiez le champ Size.

    • Pour supprimer un volume EBS spécifié par le mappage de périphérique de stockage en mode bloc de l'AMI utilisée pour lancer l'instance, recherchez le volume et cliquez sur l'icône Delete qui lui correspond.

    • Pour ajouter un volume EBS, choisissez Add New Volume, puis EBS dans la liste Type, et renseignez les champs (Device, Snapshot, etc).

    • Pour supprimer un volume de stockage d'instance spécifié par le mappage de périphérique de stockage en mode bloc de l'AMI utilisée pour lancer l'instance, recherchez le volume et choisissez l'icône Delete qui lui correspond.

    • Pour ajouter un volume de stockage d'instance, choisissez Add New Volume, sélectionnez Instance Store dans la liste Type, puis choisissez un nom de périphérique dans la liste Device.

  6. Complétez les pages restantes de l'Assistant, puis sélectionnez Launch.

Pour ajouter des volumes à une instance à l'aide de la ligne de commande

Utilisez la commande AWS CLI run-instances pour spécifier un mappage de périphérique de stockage en mode bloc pour une instance.

Spécifiez le mappage de périphérique de stockage en mode bloc à l'aide du paramètre suivant :

--block-device-mappings [mapping, ...]

Supposons par exemple qu'une AMI basée sur des volumes EBS spécifie le mappage de périphérique de stockage en mode bloc suivant :

  • /dev/sdb=ephemeral0

  • /dev/sdh=snap-1234567890abcdef0

  • /dev/sdj=:100

Pour empêcher l'attachement de /dev/sdj à une instance lancée à partir de cette AMI, utilisez le mappage suivant :

{ "DeviceName": "/dev/sdj", "NoDevice": "" }

Pour augmenter la taille de /dev/sdh à 300 Gio, spécifiez le mappage suivant. Notez que vous ne devez pas spécifier l'ID d'instantané pour /dev/sdh, car le fait de spécifier le nom du périphérique suffit à identifier le volume.

{ "DeviceName": "/dev/sdh", "Ebs": { "VolumeSize": 300 } }

Pour attacher un volume de stockage d'instance supplémentaire, /dev/sdc, spécifiez le mappage suivant. Si le type d'instance ne prend pas en charge plusieurs volumes de stockage d'instance, ce mappage n'a aucun effet.

{ "DeviceName": "/dev/sdc", "VirtualName": "ephemeral1" }

Vous pouvez aussi utiliser le paramètre -BlockDeviceMapping avec la commande New-EC2Instance (Outils AWS pour Windows PowerShell).

Mise à jour du mappage de périphérique de stockage en mode bloc d'une instance en cours d'exécution

Vous pouvez utiliser la commande modify-instance-attribute suivante de l'AWS CLI pour mettre à jour le mappage de périphérique de stockage en mode bloc d'une instance en cours d'exécution. Notez que vous n'avez pas besoin d'arrêter l'instance avant de modifier cet attribut.

aws ec2 modify-instance-attribute --instance-id i-1a2b3c4d --block-device-mappings file://mapping.json

Par exemple, pour conserver le volume racine à la clôture de l'instance, spécifiez les informations suivantes dans le fichier mapping.json:

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]

Vous pouvez aussi utiliser le paramètre -BlockDeviceMapping avec la commande Edit-EC2InstanceAttribute (Outils AWS pour Windows PowerShell).

Affichage des volumes EBS dans le mappage de périphérique de stockage en mode bloc d'une instance

Vous pouvez facilement énumérer les volumes EBS mappés à une instance.

Note

Pour les instances lancées avant la version du 31/10/2009 de l'API, AWS ne peut pas afficher le mappage de périphérique de stockage en mode bloc. Vous devez détacher et attacher à nouveau les volumes afin qu'AWS puisse afficher le mappage de périphérique de stockage en mode bloc.

Pour afficher les volumes EBS pour une instance à l'aide de la console

  1. Ouvrez la console Amazon EC2.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Dans la barre de recherche, tapez Type de périphérique racine, puis choisissez EBS. Une liste des instances basées sur des volumes EBS s'affiche.

  4. Sélectionnez l'instance souhaitée, puis consultez les informations affichées dans l'onglet Description. Au minimum, les informations suivantes sont disponibles pour le périphérique racine :

    • Type de périphérique racine (ebs)

    • Périphérique racine (par exemple, /dev/sda1)

    • Périphériques de stockage en mode bloc (par exemple, /dev/sda1, /dev/sdh et /dev/sdj)

    Si l'instance a été lancée avec des volumes EBS supplémentaires à l'aide d'un mappage de périphérique de stockage en mode bloc, le champ Périphériques de stockage en mode bloc affiche ces volumes supplémentaires ainsi que le périphérique racine. (Rappelez-vous que cette boîte de dialogue n'affiche pas les volumes de stockage d'instance.)

    
              Périphérique de stockage en mode bloc pour une instance.
  5. Pour afficher plus d'informations à propos d'un périphérique de stockage en mode bloc, sélectionnez l'entrée correspondante à côté de Périphériques de stockage en mode bloc. Les informations suivantes s'affichent pour le périphérique de stockage en mode bloc :

    • ID d'EBS (vol-xxxxxxxx)

    • Type de périphérique racine (ebs)

    • Heure d'attachement (aaaa-mmThh:mm:ss.ssTZD)

    • Statut du périphérique de stockage en mode bloc (attaching, attached, detaching, detached)

    • Supprimer à la résiliation (Yes, No)

Pour afficher les volumes EBS d'une instance à l'aide de la ligne de commande

Utilisez la commande describe-instances (AWS CLI) ou Get-EC2Instance (Outils AWS pour Windows PowerShell) pour énumérer les volumes EBS du mappage de périphérique de stockage en mode bloc pour une instance.

Affichage du mappage de périphérique de stockage en mode bloc d'une instance pour les volumes de stockage d'instances

Lorsque vous affichez le mappage de périphérique de stockage en mode bloc de votre instance, vous pouvez uniquement voir les volumes EBS, mais vous ne pouvez pas voir les volumes de stockage d'instance. Vous pouvez utiliser les métadonnées de l'instance pour interroger l'ensemble du mappage de périphérique de stockage en mode bloc. L'URI de base pour toutes les requêtes de métadonnées des instances est http://169.254.169.254/latest/.

Important

Les volumes de stockage d'instance NVMe ne sont pas inclus dans le mappage de périphérique de stockage en mode bloc.

Commencez par vous connecter à votre instance en cours d'exécution. Utilisez cette requête à partir de l'instance pour obtenir son mappage de périphérique de stockage en mode bloc.

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/

La réponse inclut les noms des périphériques de stockage en mode bloc de l'instance. Par exemple, la sortie pour une instance m1.small basée sur un stockage d'instance ressemble à cela :

ami ephemeral0 root swap

Le périphérique ami est le périphérique racine tel que le voit l'instance. Les volumes de stockage d'instance sont nommés ephemeral[0-23]. Le périphérique swap est utilisé pour le fichier d'échange. Si vous avez également mappé des volumes EBS, ils apparaissent en tant que ebs1, ebs2, etc.

Pour obtenir des détails relatifs à un périphérique de stockage en mode bloc individuel dans le mappage de périphérique de stockage en mode bloc, ajoutez son nom à la requête précédente, comme illustré ici.

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0

Pour plus d'informations, consultez Métadonnées d'instance et données utilisateur.