Unità EC2 non dimensioni volume EBS


18

Ho un'istanza EC2 per la quale ho creato un volume EBS da 500 GB. Sfortunatamente, l'istanza EC2 mostra solo 8 GB disponibili.

Ho solo un disco, che è giusto.

[root@ip-10-244-134-250 ~]# ls -la /dev/x*
brw-rw---- 1 root disk 202, 1 Aug  7 08:54 /dev/xvda1

Ma quell'unità ha solo 8 GB

[root@ip-10-244-134-250 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            8.0G  1.3G  6.7G  16% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm

Ma fdisk e / proc / partitions mostrano entrambi la dimensione corretta

[root@ip-10-244-134-250 ~]# fdisk -l

Disk /dev/xvda1: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/xvda1 doesn't contain a valid partition table

[root@ip-10-244-134-250 ~]# cat /proc/partitions 
major minor  #blocks  name

 202        1  524288000 xvda1

Qualsiasi aiuto sarebbe molto apprezzato, grazie.

Risposte:


34

Se il file system di root è ext3 o ext4, quindi eseguire:

sudo resize2fs /dev/xvda1

Se il file system di root è xfs (meno comune), eseguire:

sudo xfs_growfs /

È possibile omettere "sudo" se si è effettuato l'accesso come root.

Questi comandi devono essere eseguiti mentre il sistema è in esecuzione e il file system è montato.

È standard per i volumi EBS non contenere una tabella delle partizioni. Il volume EBS è generalmente formattato come file system nella sua interezza senza partizioni.


2
Mi irrita quando le persone ti votano senza spiegazioni. Comunque, ha funzionato magnificamente. Grazie mille!
Christian,

1
/ io scrolla le spalle e va avanti con la vita :-) Lieto di aiutarti. Ecco un paio di articoli correlati che ho scritto: alestic.com/2009/12/ec2-ebs-boot-resize alestic.com/2010/02/ec2-resize-running-ebs-root
Eric Hammond

2
Si noti che il pacchetto cloud-init incluso nelle AMI Ubuntu esegue automaticamente resize2fs all'avvio. Sono sorpreso che questo non sia in Amazon Linux poiché usano anche cloud-init.
Eric Hammond,

4
Ho lo stesso problema e quando eseguo il comando dice: Il filesystem è già lungo 2096896 blocchi. Niente da fare! Sono ancora 8 GB!
Neo,

12

Le risposte qui sembrano mancare alcuni passaggi prima del ridimensionamento specifico per le persone che stanno modificando le dimensioni del volume EBS. Se è stata utilizzata un'istantanea per creare l'EBS o con determinate AMI, è necessario estendere il disco (xvda), estendere la partizione (xvda1), quindi estendere il filesystem (/).

Se sto leggendo correttamente, il tuo disco è simile al seguente:

/dev/xvda
|__/dev/xvda1__|______________ Free space______________|

Deve apparire così:

/dev/xvda
|______________________/dev/xvda1______________________|

Dopodiché, l'esecuzione resize2fssi espanderà in quel nuovo spazio all'interno xvda1, usando fdiskpossiamo aumentare la dimensione del blocco eliminando e creandolo di nuovo e rendendo avviabile la partizione. tutto ciò che serve è un riavvio. Nella maggior parte dei casi non dovrebbe influire sui dati se si utilizza lo stesso cilindro di avvio, ma si noti che qualsiasi errore nel ricreare la partizione comporterà la perdita di tutti i dati e / o il server non si riavvierà. Consiglierei di farlo come primo passo in un'istanza appena creata. Altrimenti, scatta un'istantanea del tuo archivio E2 EC2 / ecc.

Ho contrassegnato i passaggi con << # >> nel blocco in basso, quindi non fanno parte del comando. Hai bisogno dei permessi di root, quindi fai un "sudo sh" se non sei root.

<<1>> Look at the filesystem, it is 6G
<<2>> Look at the disk and the partition, the disk is 21.5 GB but the partition is 6 GB (6291456 blocks)
<<3>> Start fdisk for that disk (xvda, so not the partition xvda1)
<<4>> Switch to sector display.
<<5>> Print the partition(s), and remember the start sector (2048 in the example).
<<6>> Delete the partition.
<<7>> Create a new partition.
<<8>> Make it primary.
<<9>> First partition.
<<10>> Enter the old start sector, do NOT make any typo here!!! (2048 in the example) 
<<11>> Hit enter to accept the default (this is the remainder of the disk)
<<12>> Print the changes and make sure the start sector is ok, if not restart at <<6>>
<<13>> Make the partition bootable. do NOT forget this!!!
<<14>> Enter your partition number (1 in the example)
<<15>> Write the partition info back, this will end the fdisk session.
<<16>> Reboot the server, and wait for it to come up (this may take longer than usual).
<<17>> Verify the filesystem size.
<<18>> If the filesystem is not around 20Gb as expected, you can use this command.


# df -h  <<1>>

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  2.0G  3.7G  35% / 
tmpfs            15G     0   15G   0% /dev/shm

# fdisk -l  <<2>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders
Units = cylinders of 1649 * 512 = 844288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           2        7632     6291456   83  Linux

# fdisk /dev/xvda  <<3>>

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u  <<4>>
Changing display/entry units to sectors

Command (m for help): p  <<5>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    12584959     6291456   83  Linux

Command (m for help): d  <<6>>
Selected partition 1

Command (m for help): n  <<7>>
Command action
   e   extended
   p   primary partition (1-4)
p  <<8>>
Partition number (1-4): 1  <<9>>
First sector (17-41943039, default 17): 2048  <<10>>
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>>
Using default value 41943039

Command (m for help): p <<12>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 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: 0x0003b587

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

Command (m for help): a  <<13>>
Partition number (1-4): 1  <<14>>


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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: ...
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

# reboot  <<16>>

<wait>

# df -h  <<17>>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  2.0G   17G  11% / 
tmpfs            15G     0   15G   0% /dev/shm

# resize2fs /dev/xvda1  <<18>>
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvda1 to 5242624 (4k) blocks.
The filesystem on /dev/xvda1 is now 5242624 blocks long.

root@vs120 [~]#  df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  7.8G   11G  42% /
tmpfs           498M     0  498M   0% /dev/shm
/usr/tmpDSK     399M   11M  368M   3% /tmp
root@vs120 [~]#

1
L'estensione della partizione è necessaria solo se il volume è partizionato. È piuttosto raro su EC2. La migliore pratica comune con EBS è quella di formattare l'intero volume non elaborato con il file system senza posizionarlo prima. Ciò è particolarmente vero per i volumi di avvio. Il posizionamento è un artefatto di dischi fisici, in cui non hanno le dimensioni desiderate per i file system. Su EC2, è sufficiente creare volumi EBS della giusta dimensione e rilasciare il file system sul volume grezzo senza partizioni.
Eric Hammond,

1
Non ne so di raro, mi è successo in entrambe le istanze di CentOS EC2 che ho lanciato con l'SSD generico SSD Storage.
Neo

Chi ha pubblicato le AMI CentOS che hai usato?
Eric Hammond,

@EricHammond centos.org
Neo

4
Consiglierei di presentare una petizione a centos.org per interrompere la creazione di AMI con volumi EBS di root partizionati. Non ci sono vantaggi se si utilizza una singola partizione e questo rende il ridimensionamento più difficile. Amazon non lo fa con le loro AMI. Né Ubuntu, Red Hat e altri. È consigliabile porre semplicemente il file system sul volume EBS non elaborato senza ulteriori inutili barriere che devono essere spostate al ridimensionamento.
Eric Hammond,

2

Ridimensiona il filesystem sul volume EBS. Se stai correndo ext3(che di solito è l'impostazione predefinita), puoi semplicemente eseguire e2resize /dev/xvda1.


Il volume deve prima essere offline e non montato.
Farhan,

1
Non con nessuna distribuzione Linux vagamente moderna. L'espansione online dei filesystem ext3 è supportata da anni.
womble

Grazie womble, sto usando la distribuzione aws e e2resize non è lì. Non è nemmeno in alcun repo di yum. Devo solo ottenere la fonte e costruirla da solo?
Christian,

1

Ho provato la risposta di @Neo con un'istanza creata da un'AMI Ubuntu personalizzata. La spiegazione è stata molto utile, ma dovevo mantenere le unità come blocchi e saltare il passaggio n. 4. Quindi ha funzionato perfettamente.

Inoltre, solo un punto è che nel passaggio 5 è necessario copiare il blocco / cilindro iniziale da utilizzare nel passaggio 10.

La risposta di @ Neo è se si dispone di un dispositivo a disco virtuale partizionato. Se si riscontra questo problema, è possibile riscontrare quanto segue: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / xvda e xvda1 hanno dimensioni molto diverse. Puoi ridimensionare2fs e non farà alcuna differenza, nel mio caso xvda1 è 5G e questo è tutto ciò che il filesystem utilizzerà.

Grazie @Neo

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.