web-dev-qa-db-fra.com

Augmenter la taille des volumes Amazon EBS

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

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

153
Nikhil Gupte

Toutes les bonnes recommandations, et j'ai pensé ajouter l'article que j'ai trouvé, qui concerne le développement d'une instance Windows Amazon EC2 EBS à l'aide des outils Amazon Web UI pour effectuer les modifications nécessaires. Si vous n'êtes pas à l'aise avec CLI, cela facilitera grandement la mise à niveau.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

Merci à TekGoblin d’avoir posté cet article.

9
Pat McCarten

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

Il existe une procédure pas à pas ici basée sur l'utilisation de outils de ligne de commande EC2 d'Amazon

103
ConroyP

Si vous en avez besoin, vous ne pouvez pas simplement gagner plus d'espace à la volée, mais vous pouvez redimensionner la partition avec un instantané.

Les étapes font 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/ - Instantané EBS:

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

44
echox

J'ai suivi toute la réponse, il manque quelque chose à tous.

Si vous suivez ces étapes, vous pouvez augmenter votre volume EBS et conserver vos données (ceci ne concerne pas le volume racine). Pour des raisons de simplicité, je suggère d'utiliser AWS consule pour créer un instantané. Vous pouvez également le faire à l'aide des outils de ligne de commande AWS.

Nous ne touchons pas le volume de la racine ici.

Allez à votre console AWS:

  1. Fermez votre instance (ce ne sera que pour quelques minutes)
  2. Détachez le volume que vous prévoyez d'augmenter (par exemple,/dev/xvdf)
  3. Créez un instantané du volume.
  4. Créez un nouveau volume avec une taille plus grande en utilisant l'instantané que vous venez de créer.
  5. Attachez le nouveau volume à votre instance
  6. Commencez votre instance

SSH à votre instance:

 $ Sudo fdisk -l

Cela donne à votre 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épart et 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 Id (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-dosis-linodecom

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

Monter 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é! Utilisation df -h pour vérifier la nouvelle taille.

22
Seeker

Aussi longtemps que vous êtes d'accord avec quelques minutes d'arrêt, 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-root

19
Jeff Bauer

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 de passer en ligne de commande.

5
Boggin

Mes pas:

  1. arrêter l'instance
  2. trouver le volume ebs attaché à l'instance et créer un instantané de celle-ci
  3. créez un nouveau volume avec un espace disque plus important en utilisant l'instantané ci-dessus. Malheureusement, l'interface utilisateur sur la console aws pour créer un instantané est presque inutilisable, car elle répertorie tous les instantanés sur les aws. Utiliser 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étachez le volume ebs existant (plus petit) de l'instance

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

Vous avez terminé!

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

Également NOTE comme mentionné ici:

https://serverfault.com/questions/365605/how-do-i-access-the-attached-volume-in-Amazon-ec2

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

4
Dexin Wang

BTW: Comme avec les disques physiques, il pourrait ê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é d'une instance à une autre.

Mises en garde:

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

Utilisez la commande "diskpart" pour Windows, regardez ici: Utilisez http://support.Microsoft.com/kb/300415 Voici les étapes que j'ai suivies pour un disque non root (base non disque dynamique)

Une fois que vous avez pris un instantané, démontez l'ancien volume EBS (par exemple 600 Go), créez un volume EBS plus important (par exemple, 1 To) et montez ce nouveau volume EBS. Vous devez informer Windows du redimensionnement (de 600 Go à 1 To). à l'invite de commande (exécuté en tant qu'administrateur)

diskpart.exe

sélectionnez le disque = 9

sélectionnez volume = Z

étendre

[Mon disque 9, le volume intitulé 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 pouvais donc suivre les étapes ci-dessus pour le faire.]

3
dinn11

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

0

Je recommande fortement le gestionnaire de volumes logiques (LVM) pour tous les volumes EBS, si votre système d'exploitation le prend en charge. Les distributions Linux 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. Par conséquent, au lieu de créer un instantané hors connexion complet, ce qui nécessite un temps d'arrêt, vous pouvez simplement créer un autre volume EBS plus grand, l'ajouter au pool LVM en tant que volume physique (PV), déplacer le volume logique, supprimez l’ancien volume physique du pool et supprimez l’ancien volume EBS. Ensuite, il vous suffit de redimensionner le volume logique, puis de redimensionner le système de fichiers. Cela ne nécessite aucun temps d'arrêt du tout!

  2. Il abstrait votre stockage de vos périphériques "physiques". Le déplacement de partitions sur des périphériques sans nécessiter de temps d'arrêt ni 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
Martijn Heemels