Dimensioni crescenti del volume Amazon EBS [chiuso]


154

Sono abbastanza impressionato dai servizi Amazon EC2 ed EBS. Volevo sapere se è possibile far crescere un volume EBS.

Ad esempio: se ho un volume da 50 GB e inizio a corto di spazio, posso aumentarlo fino a 100 GB quando richiesto?


2
Ho scritto un tutorial per aumentare le dimensioni del tuo volume ebs su - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik

8
Grande domanda (+1). Adatta meglio a Server Fault?
Jonik,

1
Per favore vota questa risposta perché è molto più aggiornata: stackoverflow.com/a/15229477/163461
David

1
@Jonik Sono totalmente d'accordo. Per coloro che possono (e anche concordare), si prega di votare per riaprire questa domanda in modo che possa essere migrata. A meno che qualche lettura mod non possa fare lo stesso?
Yuck,

Questo dovrebbe essere migrato a Server Fault, se non altro per consentire risposte più attuali (come quella che fa riferimento alla documentazione di AWS su questo argomento su docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
Jeromy French

Risposte:


9

Tutti ottimi consigli, e ho pensato di aggiungere questo articolo che ho trovato, relativo all'espansione di un'istanza EBS Amazon EC2 di Windows utilizzando gli strumenti dell'interfaccia utente Web di Amazon per eseguire le modifiche necessarie. Se non ti senti a tuo agio con l'interfaccia della riga di comando, questo renderà il tuo aggiornamento molto più semplice.

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

Grazie a TekGoblin per aver pubblicato questo articolo.


103

Puoi aumentare lo spazio di archiviazione, ma non può essere fatto al volo. Dovrai scattare un'istantanea del blocco corrente, aggiungere un nuovo blocco più grande e ricollegare l'istantanea.

C'è una semplice procedura dettagliata qui basata sull'utilizzo di strumenti a linea di comando EC2 di Amazon


2
Dovrai anche ridimensionare il filesystem. Probabilmente stai cercando "resize2fs - ext2 / ext3 / ext4 file system resizer".
James Moore,

8
Ho dovuto solo Google. Ho toccato questa domanda e questo video allo stesso tempo. Questa è una passeggiata davvero fantastica, grazie mille al creatore: youtube.com/watch?v=ouYjQ3_I3BA (ho capito tutto da solo, tranne il ridimensionatore, come menzionato da James Moore.)
Chris Allen Lane

Esiste anche un modo per impostare le dimensioni del volume EBS utilizzando AWS-SDK eseguendo prima una query sulla dimensione del volume della sua istantanea come una delle flessibilità di The Benefit utilizzando EBS .
Chetabahana,

Ora puoi effettivamente ridimensionare un volume live dalla console AWS . Sembra funzionare solo su istanze SSD (gp2, io1) e puoi persino passare da un tipo all'altro. Non sono sicuro quando è stato aggiunto, ma questo risolve un grave punto di dolore.
STRML

44

Non puoi semplicemente "imbatterti" più spazio al volo se ne hai bisogno, ma puoi ridimensionare la partizione con uno snapshot.

I passaggi per fare questo:

  1. smontare il volume ebs
  2. creare un'istantanea ebs
  3. aggiungi nuovo volume con più spazio
  4. ricreare la tabella delle partizioni e ridimensionare il filesystem
  5. montare il nuovo volume ebs

Guarda http://aws.amazon.com/ebs/ - Istantanea EBS:

Le istantanee possono anche essere utilizzate per creare un'istanza di più nuovi volumi, espandere le dimensioni di un volume o spostare i volumi nelle zone di disponibilità. Quando viene creato un nuovo volume, esiste la possibilità di crearlo in base a un'istantanea di Amazon S3 esistente. In quello scenario, il nuovo volume inizia come una replica esatta del volume originale. Specificando facoltativamente una diversa dimensione del volume o una diversa zona di disponibilità, questa funzionalità può essere utilizzata come modo per aumentare le dimensioni di un volume esistente o per creare volumi duplicati nelle nuove zone di disponibilità. Se si sceglie di utilizzare le istantanee per ridimensionare il volume, è necessario assicurarsi che il file system o l'applicazione supporti il ​​ridimensionamento di un dispositivo.


22

Ho seguito tutta la risposta, tutti hanno qualcosa che manca con tutto il rispetto.

Se segui questi passaggi puoi aumentare il tuo volume EBS e conservare i tuoi dati (questo non è per il volume principale). Per semplicità sto suggerendo di usare il consule AWS per creare uno snapshot, ... puoi farlo anche usando gli strumenti della riga di comando di AWS.

Non stiamo toccando il volume di root qui.

Vai alla tua console AWS:

  1. Chiudi l'istanza (sarà solo per pochi minuti)
  2. Stacca il volume che stai pianificando di crescere (diciamo / dev / xvdf)
  3. Crea un'istantanea del volume.
  4. Crea un nuovo volume con dimensioni maggiori utilizzando l'istantanea appena creata
  5. Allega il nuovo volume alla tua istanza
  6. Inizia la tua istanza

SSH per la tua istanza:

 $ sudo fdisk -l

Questo ti dà qualcosa come:

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

Annotare avvio e Id valori. (in questo caso 2048 e 83)

Usando fdisk, elimina la partizione xvdf1 e creane una nuova che inizia esattamente dallo stesso blocco (2048). Gli daremo lo stesso 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.

Questo passaggio è spiegato bene qui: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Quasi fatto, dobbiamo solo montare il volume ed eseguire resize2fs:

Montare il volume ebs: (il mio è a / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

e ridimensionalo:

$ 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:~$ 

Fatto! Utilizzare df -hper verificare la nuova dimensione.



5

Ora puoi farlo tramite la Console di gestione AWS. Il processo è lo stesso delle altre risposte ma non è più necessario passare alla riga di comando.


7
Puoi pubblicare ulteriori informazioni su come eseguire questa operazione tramite la console Web? La console potrebbe essere in grado di ridimensionare il volume, ma come gestisce il ridimensionamento della partizione all'interno del volume, soprattutto se è di un tipo come XFS, BRTFS, ecc.?
Riyad Kalla

Questo avrebbe dovuto essere un commento in quanto aumenta solo le risposte esistenti e non aggiunge nulla di nuovo in sé e per sé.
Yuck,

1
Le istruzioni per l'uso della console Web sono disponibili qui: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov

4

A proposito: come con i dischi fisici, potrebbe essere utile usare LVM; ex:

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

Grande vantaggio: consente di aggiungere (o rimuovere) lo spazio in modo dinamico.

Può anche essere facilmente spostato tra / tra istanze.

Avvertenze:

  • deve essere configurato in anticipo
  • una semplice configurazione JBOD significa che perdi tutto se perdi un "disco"

4

I miei passi:

  1. interrompere l'istanza
  2. trova il volume ebs associato all'istanza e creane uno snapshot
  3. creare un nuovo volume con spazio su disco maggiore utilizzando l'istantanea sopra. Sfortunatamente l'interfaccia utente sulla console aws per creare un'istantanea è quasi inutilizzabile perché elenca tutte le istantanee su aws. L'uso dello strumento da riga di comando è molto più semplice, in questo modo:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. staccare il volume ebs (più piccolo) esistente dall'istanza

  5. collega il nuovo (più grande) volume all'istanza e assicurati di collegarlo allo stesso dispositivo che l'istanza si aspetta (nel mio caso è / dev / sda1)
  6. avvia l'istanza

Hai fatto!

Oltre al passaggio 3 sopra, puoi fare tutto usando la console di gestione di aws.

NOTA anche come menzionato qui:

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

il dispositivo sulla tua istanza ec2 potrebbe essere / dev / xv * mentre la console web aws ti dice che è / dev / s *.


2
A partire da novembre 2013, puoi selezionare l'istantanea appena creata e fare clic su "Crea volume" nella parte superiore della pagina. Ciò creerà un volume dall'istantanea ed è possibile evitare di eseguire il passaggio 3 sopra dalla riga di comando.
Matt C

1
Una nota è che è necessario assicurarsi di creare il volume nella stessa zona di disponibilità dell'istanza, altrimenti non sarà possibile collegarlo.
codecowboy,

3

Usa il comando "diskpart" per il sistema operativo Windows, dai un'occhiata qui: Usa http://support.microsoft.com/kb/300415 Di seguito sono i passaggi che ho seguito per un disco non root (di base non dinamico)

Dopo aver scattato un'istantanea, smontato il vecchio volume EBS (diciamo 600GB) e creato un volume EBS più grande (diciamo 1TB) e montato questo nuovo volume EBS - dovresti informare Windows del ridimensionamento (da 600GB a 1TB) così al prompt dei comandi (eseguito come amministratore)

diskpart.exe

seleziona disco = 9

seleziona volume = Z

estendere

[il mio disco 9, volume etichettato Z, era un volume di dimensioni 1 TB creato da un'istantanea ec2 di dimensioni 600 GB - Volevo ridimensionare da 600 GB a 1 TB e quindi seguire i passaggi precedenti per farlo.]


Ha funzionato benissimo per il mio sistema Win Server 2003 R2 Datacenter. Grazie per il consiglio!
Jeff Hay,

Ottimo post, mi ha aiutato molto!
user1326293

0

Consiglio vivamente Logical Volume Manager (LVM) per tutti i volumi EBS, se supportato dal sistema operativo. Le distribuzioni Linux generalmente lo fanno. È ottimo per diversi motivi.

  1. Il ridimensionamento e lo spostamento di volumi logici possono essere eseguiti dal vivo, quindi invece dell'intera cosa di snapshot offline, che richiede tempi di inattività, è possibile aggiungere semplicemente creare un altro volume EBS più grande, aggiungerlo al pool LVM come volume fisico (PV), spostare il volume logico (LV), rimuovere il vecchio volume fisico dal pool ed eliminare il vecchio volume EBS. Quindi, ridimensiona semplicemente il volume logico e ridimensiona il filesystem su di esso. Ciò non richiede alcun tempo morto!

  2. Estrae il tuo spazio di archiviazione dai tuoi dispositivi "fisici". Spostare le partizioni tra i dispositivi senza tempi di inattività o modifiche ai mountpoint / fstab è molto utile.

Sarebbe bello se Amazon consentisse di ridimensionare i volumi EBS al volo, ma con LVM non è così necessario.


0

se il tuo volume di root è il file system xfs, allora esegui questo comando xfs_growfs /


Ciò richiede un po 'più di dettagli per essere considerato una risposta completa e utilizzabile.
Yuck,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.