Augmentation des tailles de volume Amazon EBS [fermé]


154

Je suis assez impressionné par les services EC2 et EBS d'Amazon. Je voulais savoir s'il est possible de faire pousser un volume EBS.

Par exemple: si j'ai un volume de 50 Go et que je commence à manquer d'espace, puis-je le faire passer à 100 Go si nécessaire?


2
J'ai écrit un tutoriel pour augmenter la taille de votre volume ebs à - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik

8
Excellente question (+1). Un meilleur ajustement pour Server Fault?
Jonik

1
Veuillez voter pour cette réponse car elle est beaucoup plus à jour: stackoverflow.com/a/15229477/163461
David

1
@Jonik Je suis totalement d'accord. Pour ceux qui peuvent (et sont également d'accord), veuillez voter pour rouvrir cette question afin qu'elle puisse être migrée. À moins qu'un mod lisant cela puisse faire la même chose?
Yuck

Cela devrait être migré vers Server Fault, si pour aucune autre raison que pour permettre des réponses plus récentes (comme celle qui fait référence à la documentation AWS sur ce sujet à docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
Jeromy French

Réponses:



103

Vous pouvez agrandir le stockage, mais cela ne peut pas être fait à la volée. Vous devrez prendre un instantané du bloc actuel, ajouter un nouveau bloc plus grand et attacher à nouveau votre instantané.

Il y a une procédure simple ici basé sur l' utilisation des outils de ligne de commande EC2 d'Amazon


2
Vous devrez également redimensionner le système de fichiers. Vous recherchez probablement "resize2fs - redimensionneur de système de fichiers ext2 / ext3 / ext4".
James Moore

8
Je devais juste chercher ça sur Google. J'ai touché cette question et cette vidéo en même temps. C'est une très bonne promenade, merci beaucoup au créateur: youtube.com/watch?v=ouYjQ3_I3BA (j'ai tout compris par moi-même, à l'exception du bit de redimensionnement, comme James Moore l'a mentionné.)
Chris Allen Lane

Il existe également un moyen de définir la taille du volume EBS à l'aide d'AWS-SDK en interrogeant d'abord la taille du volume de son instantané comme l'une des flexibilités sur The Benefit utilisant EBS .
Chetabahana

Vous pouvez désormais redimensionner un volume en direct à partir de la console AWS . Semble fonctionner uniquement sur des instances SSD (gp2, io1) et vous pouvez même passer d'un type à l'autre. Je ne sais pas quand il a été ajouté, mais cela résout un problème majeur.
STRML

44

Vous ne pouvez pas simplement «augmenter» plus d'espace à la volée si vous en avez besoin, mais vous pouvez redimensionner la partition avec un instantané.

Étapes à suivre pour cela:

  1. démonter le volume ebs
  2. créer un instantané ebs
  3. ajouter un nouveau volume avec plus d'espace
  4. recréer la table de partition et redimensionner le système de fichiers
  5. monter le nouveau volume ebs

Regardez http://aws.amazon.com/ebs/ - EBS Snapshot:

Les instantanés peuvent également être utilisés pour instancier plusieurs nouveaux volumes, augmenter la taille d'un volume ou déplacer des volumes entre les zones de disponibilité. Lorsqu'un nouveau volume est créé, il est possible de le créer en fonction d'un instantané Amazon S3 existant. Dans ce scénario, le nouveau volume commence comme une réplique exacte du volume d'origine. En spécifiant éventuellement une taille de volume différente ou une zone de disponibilité différente, cette fonctionnalité peut être utilisée pour augmenter la taille d'un volume existant ou pour créer des volumes en double dans de nouvelles zones de disponibilité. Si vous choisissez d'utiliser des instantanés pour redimensionner votre volume, vous devez vous assurer que votre système de fichiers ou votre application prend en charge le redimensionnement d'un périphérique.


22

J'ai suivi toute la réponse, tous ont quelque chose qui manque avec tout le respect.

Si vous suivez ces étapes, vous pouvez augmenter votre volume EBS et conserver vos données (ce n'est pas pour le volume racine). Pour plus de simplicité, je suggère d'utiliser la console AWS pour créer un instantané, ... vous pouvez également le faire en utilisant les outils de ligne de commande AWS.

Nous ne touchons pas au volume racine ici.

Accédez à votre console AWS:

  1. Arrêtez votre instance (ce ne sera que pour quelques minutes)
  2. Détachez le volume que vous prévoyez d'augmenter (disons / dev / xvdf)
  3. Créez un instantané du volume.
  4. Créez un nouveau volume avec une taille plus grande à l'aide de l'instantané que vous venez de créer
  5. Attachez le nouveau volume à votre instance
  6. Démarrez votre instance

SSH sur votre instance:

 $ sudo fdisk -l

Cela vous donne quelque chose comme:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

Notez les valeurs de début et d' ID . (dans ce cas 2048 et 83)

À l'aide de fdisk, supprimez la partition xvdf1 et créez-en une nouvelle qui commence exactement à partir du même bloc (2048). Nous lui donnerons le même identifiant (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Cette étape est bien expliquée ici: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Presque terminé, il suffit de monter le volume et d'exécuter resize2fs:

Montez le volume ebs: (le mien est à / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

et redimensionnez-le:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

Terminé! Utilisez df -hpour vérifier la nouvelle taille.


19

Tant que vous êtes d'accord avec quelques minutes d'indisponibilité, Eric Hammond a écrit un bon article sur le redimensionnement du disque racine sur une instance EBS en cours d'exécution: http://alestic.com/2010/02/ec2-resize-running-ebs -racine


1
Inspiré par cela, j'ai commencé à écrire "awscripts", @ github.com/moejay/awscripts, il inclut les commandes d'Eric ainsi que celles permettant de changer les types d'instances, dans un script facile et "crontabbable"
jay

5

Vous pouvez maintenant le faire via AWS Management Console. Le processus est le même que dans les autres réponses mais vous n'avez plus besoin d'accéder à la ligne de commande.


7
Pouvez-vous publier plus d'informations sur la façon dont cela se fait via la console Web? La console peut être en mesure de redimensionner le volume, mais comment gère-t-elle le redimensionnement de la partition à l'intérieur du volume, en particulier si elle est d'un type comme XFS, BRTFS, etc.?
Riyad Kalla

Cela aurait dû être un commentaire car il ne fait qu'augmenter les réponses existantes et n'ajoute rien de nouveau en soi.
Beurk

1
Les instructions d'utilisation de la console Web sont disponibles ici: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov

4

BTW: Comme pour les disques physiques, il peut être pratique d'utiliser LVM; ex:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Gros avantage: il permet d'ajouter (ou de supprimer) de l'espace de manière dynamique.

Il peut également être facilement déplacé entre / parmi les instances.

Mises en garde:

  • il doit être configuré à l'avance
  • une configuration JBOD simple signifie que vous perdez tout si vous perdez un "disque"

4

Mes pas:

  1. arrêter l'instance
  2. trouver le volume ebs attaché à l'instance et créer un instantané de celui-ci
  3. créez un nouveau volume avec plus d'espace disque à l'aide de l'instantané ci-dessus. Malheureusement, l'interface utilisateur de la console aws pour créer un instantané est presque inutilisable car elle répertorie tous les instantanés sur aws. L'utilisation de l'outil de ligne de commande est beaucoup plus facile, comme ceci:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. détacher le volume ebs (plus petit) existant de l'instance

  5. attachez le nouveau volume (plus grand) à l'instance et assurez-vous de l'attacher au même périphérique que l'instance attend (dans mon cas, c'est / dev / sda1)
  6. démarrer l'instance

Vous avez terminé!

À part l'étape 3 ci-dessus, vous pouvez tout faire à l'aide de la console de gestion aws.

Notez également comme mentionné ici:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

le périphérique sur votre instance ec2 peut être / dev / xv * tandis que la console Web aws vous indique que c'est / dev / s *.


2
À partir de novembre 2013, vous pouvez sélectionner l'instantané nouvellement créé, puis cliquez simplement sur «Créer un volume» en haut de la page. Cela créera un volume à partir de l'instantané et vous pouvez éviter de faire l'étape 3 ci-dessus à partir de la ligne de commande.
Matt C

1
Une note est que vous devez vous assurer que vous créez le volume dans la même zone de disponibilité que l'instance, sinon vous ne pourrez pas le joindre.
codecowboy

3

Utilisez la commande "diskpart" pour le système d'exploitation Windows, regardez ici: Utilisez http://support.microsoft.com/kb/300415 Voici les étapes que j'ai suivies pour un disque non racine (disque de base non dynamique)

Une fois que vous avez pris un instantané, démonté l'ancien volume EBS (disons 600 Go) et créé un volume EBS plus grand (par exemple 1 To) et monté ce nouveau volume EBS - vous devrez informer Windows du redimensionnement (de 600 Go à 1 To). à l'invite de commande (exécuter en tant qu'administrateur)

diskpart.exe

sélectionnez le disque = 9

sélectionner le volume = Z

étendre

[mon disque 9, volume étiqueté Z, était un volume de taille 1 To créé à partir d'un instantané ec2 de taille 600 Go - je voulais redimensionner 600 Go à 1 To et je pouvais donc suivre les étapes ci-dessus pour ce faire.]


A très bien fonctionné pour mon système Win Server 2003 R2 Datacenter. Merci pour le conseil!
Jeff Hay

Super article, m'a beaucoup aidé!
user1326293

0

Je recommande vivement Logical Volume Manager (LVM) pour tous les volumes EBS, si votre système d'exploitation le prend en charge. Les distributions Linux le font généralement. C'est génial pour plusieurs raisons.

  1. Le redimensionnement et le déplacement des volumes logiques peuvent être effectués en direct, donc au lieu de tout l'instantané hors ligne, qui nécessite un temps d'arrêt, vous pouvez simplement ajouter créer un autre volume EBS plus grand, l'ajouter au pool LVM en tant que volume physique (PV), déplacer le volume logique (LV), supprimez l'ancien volume physique du pool et supprimez l'ancien volume EBS. Ensuite, vous redimensionnez simplement le volume logique et redimensionnez le système de fichiers sur celui-ci. Cela ne nécessite aucun temps d'arrêt!

  2. Il extrait votre stockage de vos appareils «physiques». Déplacer des partitions entre les périphériques sans avoir besoin de temps d'arrêt ou de modifications des points de montage / fstab est très pratique.

Ce serait bien si Amazon permettait de redimensionner les volumes EBS à la volée, mais avec LVM, ce n'est pas nécessaire.


0

si votre volume racine est un système de fichiers xfs, exécutez cette commande xfs_growfs /


Cela nécessite un peu plus de détails pour être considéré comme une réponse complète et utilisable.
Beurk le
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.