Comment utiliser le stockage «Instance Store Volumes» dans Amazon EC2?


18

Selon AWS, j'ai obtenu 850 Go de stockage avec le serveur Medium EC2. Mais lorsque je crée une AMI Amazon Linux, je ne peux pas utiliser les 850 Go fournis.

Lors de sa création, il montre dans la configuration du périphérique de stockage dans les volumes de stockage d' instance que son périphérique sera situé dans / dev / sdb, mais lorsque je démarre la machine virtuelle, je trouve simplement / dev / sda1.

Pouvez-vous m'aider à monter ce stockage? Merci

De plus, quand Amazon prétend que le stockage d'instance n'est pas sûr pour une utilisation à long terme et devrait préférer utiliser EBS, alors quel est l'intérêt de ces 850 Go?

Merci


Quel type d'instance spécifique essayez-vous d'exécuter? c1.medium? m1.medium? autre chose?
Eric Hammond

1
Voici deux excellentes ressources pour en savoir plus sur le stockage d'instances sur EC2: docs.amazonwebservices.com/AWSEC2/latest/UserGuide/… et docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…
Eric Hammond du

Réponses:


10

L'utilisation d'un stockage local d'instance qui n'est pas persistant lorsqu'une instance est arrêtée est assez simple: c'est un très grand espace utile pour les choses transitoires. Ils sont la cible idéale pour le montage /tmpet sont extrêmement utiles si votre serveur gère de manière transitoire de très gros fichiers.

Par exemple, si vous construisiez un groupe d'instances pour effectuer la traduction voix-texte des fichiers vidéo téléchargés, le stockage local d'instance serait exactement la chose sur laquelle vous souhaitez mettre les fichiers en cours. Il peut être là pendant quelques heures pendant le traitement du fichier, mais une fois terminé, il peut être supprimé et un autre repris. Vous n'avez pas besoin d'EBS pour cela, et il est beaucoup moins cher d'exécuter ce type de stockage hors de l'instance locale plutôt qu'EBS.

Le stockage local d'instance est destiné à être utilisé comme espace de travail pour exécuter le traitement, et non à long terme. Si votre charge de travail n'utilise pas d'espace de travail pour quoi que ce soit, ou si ce dont il a besoin est si petit qu'il n'est pas significatif, cela ne vous convient pas.


16
Le stockage éphémère ou le stockage d'instance persiste à travers les redémarrages d'une instance! Il ne persiste pas pendant un arrêt / démarrage, ni une interruption, ni certaines défaillances matérielles d'instance. Voici un article que j'ai écrit sur la différence entre redémarrage et arrêt / démarrage: alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond

27

S'il n'est pas déjà monté sous eg / mnt et s'il n'a pas déjà un système de fichiers créé alors faites:

  1. Vérifiez le nom de l'appareil

    sudo fdisk -l

  2. Créez le répertoire à l'endroit où vous souhaitez monter le volume

    sudo mkdir / mnt

  3. Créez un système de fichiers sur votre volume (assurez-vous de choisir le bon volume car cela crée un nouveau système de fichiers sur le volume)

    sudo mkfs.ext4 / dev / xvdj

  4. Monter le volume

    montage sudo -t ext4 / dev / xvdj / mnt

  5. Si vous souhaitez conserver le montage après, par exemple, un redémarrage, ouvrez / etc / fstab et ajoutez-y le montage

    echo "/ dev / xvdj / mnt auto noatime 0 0" | sudo tee -a / etc / fstab

  6. Assurez-vous que rien ne va mal avec fstab en montant tous

    monter -a


5
Selon le type d'instance, vous devez d'abord attacher les volumes de stockage d'instance à l'instance à l'aide des options de mappage de périphérique de bloc. Si vous ne le faites pas, vous ne verrez peut-être même pas les appareils sous / dev
Eric Hammond

@ Le commentaire d'EricHammond était vraiment la réponse à ma quête - je ne les ai vus nulle part - même dansfdisk -l
Peter V. Mørch

Si vous ne voyez pas l'appareil, essayez d'utiliser lsblk.
volker238

Ces instructions montent le volume pour moi, mais essayer d'écrire un nouveau fichier sur le volume donne "accès refusé". Je ne peux pas trier ce qui ne va pas avec les autorisations. Des idées?
MikeB

lsblk -fest le meilleur moyen de trouver des volumes de disque - tous les volumes montés seront affichés avec le chemin de montage, et il affiche les étiquettes des volumes (recommandé d'utiliser des UUID ou des étiquettes lors du montage de systèmes de fichiers sur Linux).
RichVel

1

J'ai créé un script pour Ubuntu qui peut être exécuté au démarrage et après un cycle de démarrage / arrêt car dans le monde d'AWS, ce sont deux choses très différentes. Lorsque vous redémarrez, vous avez toujours le même disque éphémère et tout ce que vous avez à faire est de monter (/ etc / fstab devrait gérer cela automatiquement) mais quand une instance est arrêtée puis redémarrée, vous obtenez un nouveau disque éphémère non formaté qui a besoin de plus d'amour pour être récupéré prêt à l'emploi. Tant que l'entrée / etc / fstab est correcte, vous pouvez l'exécuter à tout moment et elle montera / formatera le périphérique selon vos besoins. il prendra un paramètre du point de montage mais s'il n'est pas fourni il supposera / mnt Vous pouvez appeler le script mount_ephemeral.sh et l'exécuter en tant que root dans un service de démarrage.

#!/bin/sh
set -e
mountPoint=${1:-'/mnt'}
rawDevice=$(grep "\s$mountPoint\s" /etc/fstab |cut -f1)
#echo checking $mountPoint on $rawDevice
[ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; }
mountpoint -q $mountPoint
[  "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; }
hasFS=$(blkid |grep $rawDevice)
[ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; }
echo initializing $mountPoint on $rawDevice
mkdir -p $mountPoint
mkfs.ext4 $rawDevice
mount $mountPoint
chmod 777 $mountPoint
exit 0

Je préfère ne pas utiliser /mntcomme point de montage pour les volumes, car la convention est celle qui /mnt/fooest utilisée pour chaque volume. Si vous devez monter un autre volume à un moment donné /mnt/bar, cela signifie que le démontage du /mntvolume ne peut pas être effectué pendant le /mnt/barmontage. Le grepest dangereux si vous utilisez /mntet qu'il existe des points de montage tels que /mnt/foo, car ils /mntpeuvent correspondre à plusieurs lignes - le script peut donc dans certains cas monter ou mkfs le mauvais disque.
RichVel

Il ne trouvera pas d'autres supports similaires car il doit correspondre exactement. Le problème est que l'espace blanc utilisé dans votre fstab doit correspondre à la valeur indiquée dans le grep. J'ai mis à jour pour utiliser \bmais YMMV. C'est /mntjuste un défaut que vous pouvez changer vous-même et n'est qu'un exemple. De plus, vous pouvez passer un paramètre au script et il utilisera ce point de montage à la place. Je vais ajouter le set -eafin que tout échec termine le script entier
DanJGer

correction: changé de \bà\s
DanJGer

0

Le montage du magasin d'instances dépend également de l'image:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

Lorsque vous lancez une instance, le mappage de périphérique de bloc par défaut est fourni par l'AMI spécifiée. Si vous avez besoin de volumes de stockage d'instance supplémentaires, vous devez les ajouter à l'instance lorsque vous la lancez. Notez que vous pouvez également omettre les périphériques spécifiés dans le mappage de périphérique de bloc AMI.

Certaines images utiliseront toutes les ressources disponibles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.