Unidade EC2 não tamanho do volume EBS

18

Eu tenho uma instância do EC2 para a qual criei um volume EBS de 500 GB. Infelizmente, a instância do EC2 mostra apenas 8 GB disponíveis.

Eu tenho apenas uma unidade, o que é certo.

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

Mas, essa unidade é de apenas 8GB

[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

Mas, fdisk e / proc / partitions mostram o tamanho correto

[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

Qualquer ajuda seria muito apreciada, obrigado.

cristão
fonte

Respostas:

34

Se o sistema de arquivos raiz for ext3 ou ext4, execute:

sudo resize2fs /dev/xvda1

Se o sistema de arquivos raiz for xfs (menos comum), execute:

sudo xfs_growfs /

Você pode omitir "sudo" se estiver logado como root.

Esses comandos devem ser executados enquanto o sistema está em execução e o sistema de arquivos está montado.

É padrão que os volumes EBS não contenham uma tabela de partição. O volume EBS geralmente é formatado como um sistema de arquivos na sua totalidade, sem partições.

Eric Hammond
fonte
2
Me irrita quando as pessoas votam em você sem explicação. Enfim, isso funcionou lindamente. Muito obrigado!
Christian
11
/ me encolhe os ombros e segue com a vida :-) Fico feliz em ajudar. Aqui estão alguns artigos relacionados que eu escrevi: alestic.com/2009/12/ec2-ebs-boot-resize alestic.com/2010/02/ec2-resize-running-ebs-root
Eric Hammond
2
Observe que o pacote cloud-init incluído nas AMIs do Ubuntu executa automaticamente o resize2fs na inicialização. Estou surpreso que isso não esteja no Amazon Linux, pois eles também usam o cloud-init.
11134 Eric Hammond
4
Eu tenho o mesmo problema e quando executo o comando, ele diz: O sistema de arquivos já tem 2096896 blocos. Nada para fazer! Ainda é de 8GB!
Neo
12

As respostas aqui parecem estar faltando algumas etapas antes do redimensionamento, especialmente para pessoas que estão alterando o tamanho do volume do EBS. Se você usou um instantâneo para criar o EBS ou com determinadas AMIs, será necessário estender o disco (xvda), estenda a partição (xvda1) e estenda o sistema de arquivos (/).

Se estou lendo isso corretamente, seu disco fica assim:

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

Ele precisa ficar assim:

/dev/xvda
|______________________/dev/xvda1______________________|

Depois disso, a execução resize2fscrescerá nesse novo espaço xvda1, usando fdisk, podemos aumentar o tamanho do bloco excluindo e criando-o novamente e tornando a partição inicializável. tudo o que requer é uma reinicialização. Na maioria dos casos, isso não afetará seus dados se você usar o mesmo cilindro de inicialização, mas observe que qualquer erro na recriação da partição resultará na perda de todos os dados e / ou o servidor não será reiniciado. Eu recomendaria fazer isso como o primeiro passo em uma instância recém-criada. Caso contrário, tire uma foto do seu EC2 EBS Storage / etc.

Marquei as etapas com << # >> no bloco abaixo, portanto, elas não fazem parte do comando. Você precisa de permissões de root, então faça um "sudo sh" se você não for 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 [~]#
Neo
fonte
11
A extensão da partição é necessária apenas se o volume estiver particionado. Isso é muito raro no EC2. A prática recomendada comum com o EBS é formatar todo o volume bruto com o sistema de arquivos sem posicioná-lo primeiro. Isto é especialmente verdade para volumes de inicialização. O posicionamento é um artefato de discos físicos, onde eles não têm o tamanho que você deseja para seus sistemas de arquivos. No EC2, você simplesmente cria volumes (s) EBS do tamanho certo e descarta o sistema de arquivos no volume bruto sem partições.
Eric Hammond
11
Não sei o que é raro, aconteceu comigo nas duas instâncias do CentOS EC2 que iniciei com o armazenamento genérico de SSD EBS.
Neo
Quem publicou as CentOS AMIs que você usou?
Eric Hammond
@EricHammond centos.org
Neo
4
Eu recomendaria solicitar o centos.org para parar de criar AMIs com volumes EBS raiz particionados. Não há benefício para isso se você estiver usando uma única partição e isso torna o redimensionamento mais difícil. A Amazon não faz isso com suas AMIs. Nem o Ubuntu, Red Hat e outros. É uma prática recomendada simplesmente colocar o sistema de arquivos no volume bruto do EBS sem barreiras extras inúteis que precisam ser movidas no redimensionamento.
Eric Hammond
2

Redimensione o sistema de arquivos no volume EBS. Se você estiver executando ext3(o que geralmente é o padrão), basta executar e2resize /dev/xvda1.

mulher
fonte
O volume primeiro precisa estar offline e desmontado.
Farhan
11
Não com nenhuma distribuição Linux vagamente moderna. A expansão online de sistemas de arquivos ext3 é suportada há anos.
womble
Obrigado womble, estou usando a distro do aws e o e2resize não está lá. Também não está em nenhum repositório yum. Devo apenas pegar a fonte e construí-la eu mesmo?
Christian
1

Tentei a resposta do @Neo com uma instância criada a partir de uma AMI Ubuntu personalizada. A explicação foi muito útil, mas eu precisava manter as unidades em blocos e pular a etapa 4. Então funcionou perfeitamente.

Apenas um ponto é que, na etapa 5, você deve copiar o bloco / cilindro de partida para usar na etapa 10.

A resposta do @ Neo é se você possui um dispositivo de disco virtual particionado. Você pode descobrir se sofre desse problema com o seguinte: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part / O xvda e o xvda1 são tamanhos muito diferentes. Você pode redimensionar 2fs e isso não fará nenhuma diferença, no meu caso xvda1 é 5G e é isso que todo o sistema de arquivos usará.

Obrigado, @Neo

David B
fonte