Expandindo partição em LVM

Esse artigo tem o objetivo de orientar como expandir uma partição LVM no CentOS 7 com o sistema de arquivo XFS. Também deixei comentado para o sistema de arquivo ext1, 2, 3 ou 4.

[ Hits: 15.342 ]

Por: Carolina Robles das Neves em 04/08/2015


Expandindo partição em LVM no CentOS 7



Nesse artigo vou demostrar como expandir uma partição LVM (Logical Volume Manager), sendo que estou utilizando um servidor virtual, cujo seu hospedeiro é a VMware, ESXi.

Recentemente passei por essa situação e decidi compartilhar com vocês...

No meu cenário, utilizo o CentOS 7 em um servidor virtual. Eu gerencio as VMs pelo VMware vSphere Client (criação/templates etc.).

Precisei aumentar a minha partição "/" pois chegou no limite.

Meu cenário é o seguinte:
  • sda1 - partição: / - boot
  • sda2 - partição: / - Raiz

Ao subir o servidor virtual, foi definido 30 GB de disco e eu precisei expandi-lo ao longo do tempo para 160 GB.

1. Acesse o seu servidor.

2. Dê o comando abaixo para listar seus discos/partições e saber quanto de disco temos para expandir:

Obs.: repare que em dispositivos, temos o sda1 e o sda2, iremos expandir o sda2 que é onde está a partição /.

# fdisk -l
Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 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 label type: dos
Disk identifier: 0x000a4fb4

Dispositivo  Boot    Start         End       Blocks    Id  System
/dev/sda1    *        2048     1026047       512000    83  Linux
/dev/sda2          1026048    62914559     30944256    8e  Linux LVM 
                 [30 GB atualmente montado no sda2]
Disk /dev/mapper/centos-swap: 2164 MB, 2164260864 bytes, 4227072 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 /dev/mapper/centos-root: 29.5 GB, 29519511552 bytes, 57655296 sectors  
                 [Iremos expandir essa partição]
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Vamos acessar nosso dispositivo sda:

# fdisk /dev/sda

Vamos listar as tabelas de partições com o comando "p".

a. Com o comando "m" você lista todas as opções possíveis a serem usadas:

Comando (m para ajuda): p

Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors  
               [Total de GB disponível em nosso Disco]
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 label type: dos
Disk identifier: 0x000a4fb4

Dispositivo Boot    Start       End    Blocks   Id  System
/dev/sda1   *        2048   1026047    512000   83  Linux
/dev/sda2         1026048  62914559  30944256   8e  Linux LVM 
[Tamanho atual de nossa partição sda2: 30 GB, iremos expandir]

b. Com o comando "d" vamos deletar a partição sda2:

Comando (m para ajuda): d
Número da partição (1,2, default 2): 2
Partition 2 is deleted

c. Vamos criar uma nova partição com o comando "n" e selecionar "p" de primary e o número da partição "2":

Comando (m para ajuda): n

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Número da partição (2-4, default 2): 2
Primeiro sector (1026048-335544319, default 1026048):
Using default value 1026048
Last sector, +sectors or +size{K,M,G} (1026048-335544319, default 335544319):
Using default value 335544319
Partition 2 of type Linux and of size 159,5 GiB is set

d. Vamos informar que essa partição "2" é uma LVM com o comando "t", após, escolhemos a opção 8e (você pode listar as opções com o comando "L"):

Comando (m para ajuda): t
Número da partição (1,2, default 2): 2
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

e. Vamos salvar e sair das configurações do disco com o comando "w":

Comando (m para ajuda): w
A tabela de partições foi alterada!
Chamando ioctl() para reler tabela de partições.

WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso está ocupado.
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)
Sincronizando discos.

3. A mensagem acima informa que deu falha para reler as tabelas das informações da partição, pois o dispositivo está ocupado.

Vamos reiniciar o servidor:

# init 6

Dica: não é necessário o reboot na máquina quando criar uma nova partição, pode ser usado o pacote "parted".

# yum install parted -y

Depois executamos o comando partprobe:

# partprobe

Esse comando irá reler as tabelas de partições do sistema e a nova partição ficará disponível para ser formatada.

4. Como você reiniciou seu servidor, se você estiver acessando-o remotamente irá perder a conexão, então, reinicie sua sessão, conectando novamente no servidor após o boot.

5. Vamos checar nossas partições e tamanho.

Podemos observar que continua com os 30 GB:

# df -h
Sist. Arq.               Tam. Usado Disp. Uso% Montado em
/dev/mapper/centos-root   28G  1,1G   27G   4% /
devtmpfs                 915M     0  915M   0% /dev
tmpfs                    921M     0  921M   0% /dev/shm
tmpfs                    921M  8,4M  913M   1% /run
tmpfs                    921M     0  921M   0% /sys/fs/cgroup
/dev/sda1                497M   96M  402M  20% /boot

6. Vamos efetuar o grep no vgdisplay (volume group) para verificar se temos espaço disponível para alocar:

# vgdisplay | grep "Free"
Free  PE / Size       0 / 0

Não possuímos espaço disponível ainda.

7. Agora com o comando pvresize (PV=phisical Volume) iremos disponibilizar o espaço para o nosso dispositivo sda2:

# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized / 0 physical volume(s) not resized

8. Com o mesmo comando no passo 6, vamos novamente efetuar o grep para ver se disponibilizou o espaço que precisamos:

# vgdisplay | grep "Free"
Free  PE / Size       33280 / 130,00 GiB

Agora temos 130 GB disponíveis.

9. Agora com o comando lvextend (LV= Logical Volume), iremos estender nossa partição do / que está montada no arquivo /etc/fstab:

# lvextend -L+130GB /dev/mapper/centos-root
Extending logical volume root to 157,49 GiB
Logical volume root successfully resized


Podemos observar na mensagem acima que foi estendido com sucesso!

10. Com o comando xfs_growfs iremos redimensionar a partição do / para os 130 GB disponíveis agora:

Observação: em minha distribuição (CentOS 7) estou utilizando o sistema de arquivo XFS, por isso o comando xfs_growfs, caso seja outro sistema de arquivo: ext1, 2, 3 ou 4, você deve usar o comando resize2fs.

# xfs_growfs /dev/mapper/centos-root -D 167259136
meta-data=/dev/mapper/centos-root isize=256   agcount=4, agsize=1801728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=7206912, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=3519, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data size 167259136 too large, maximum is 41285632

Eu inseri um número fictício para ver a saída da mensagem e a mesma informa qual é o tamanho máximo de dados.

11. Repito o comando com o número máximo de dados apresentados acima:

# xfs_growfs /dev/mapper/centos-root -D 41285632
meta-data=/dev/mapper/centos-root isize=256   agcount=4, agsize=1801728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=7206912, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=3519, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7206912 to 41285632

Na mensagem acima, podemos observar que foi alterado com sucesso!

12. Vamos verificar o espaço de nossa partições com o comando "df -h":

# df -h
Sist. Arq.               Tam. Usado Disp. Uso% Montado em
/dev/mapper/centos-root  158G  1,1G  157G   1% /
devtmpfs                 915M     0  915M   0% /dev
tmpfs                    921M     0  921M   0% /dev/shm
tmpfs                    921M  8,4M  913M   1% /run
tmpfs                    921M     0  921M   0% /sys/fs/cgroup
/dev/sda1                497M   96M  402M  20% /boot

Podemos certificar que nossa partição / foi alterada conforme nosso planejamento.

Espero ter ajudado.

   

Páginas do artigo
   1. Expandindo partição em LVM no CentOS 7
Outros artigos deste autor

Personalizando o servidor centralizador de logs com rotate, script e crontab

Configurando hostname, rotas, gateway e IP em Red Hat 6

Rsyslog - Configurando o Centralizador de Logs

Criação de usuário, grupo e permissão

Leitura recomendada

Trabalhando com boot duplo ou múltiplo: estação para testes de sistemas operacionais

Montando Volumes no Docker

Replicando e distribuindo armazenamento de arquivos através de quatro servidores usando Cluster (GlusterFs) no Debian Lenny

SSHFS no CentOS, Slackware e Windows - Simples e rápido

Stripe no LVM

  
Comentários
[1] Comentário enviado por foxbit3r em 04/08/2015 - 11:29h

Carolina,

O artigo tá bom, mas só a execução do partprobe não seria necessário um reboot na máquina.

[2] Comentário enviado por carolinaneves22 em 04/08/2015 - 12:15h


[1] Comentário enviado por foxbit3r em 04/08/2015 - 11:29h

Carolina,

O artigo tá bom, mas só a execução do partprobe não seria necessário um reboot na máquina.


Bom dia, obrigada pelo feedback, mas creio que você não leu todo o artigo, pois eu descrevo a "DICA" que não seria necessário o reboot se executa-se o partprobe para reler as tabelas..
Pode ter ficado confuso devido a ordem.. ;)
Irei melhorar nos próximos..

Att,

[3] Comentário enviado por celo_gomes em 07/08/2015 - 15:47h

Hoje, é muito mais fácil utilizar o partprobe sem a necessidade de um reboot!

[root@ExaServer ~]# partx -v -a /dev/disk
device /dev/xvda: start 0 size 245760000
gpt: 0 slices
dos: 4 slices
# 1: 2048- 514047 ( 512000 sectors, 262 MB)
# 2: 514048- 20961279 ( 20447232 sectors, 10468 MB)
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
added partition 2


[root@ExaServer~]# partprobe /dev/disk

[]'s

[4] Comentário enviado por sergeimartao em 11/08/2015 - 10:00h

Muito interessante o artigo, parabéns!

[5] Comentário enviado por carolinaneves22 em 12/08/2015 - 15:43h


[4] Comentário enviado por sergeimartao em 11/08/2015 - 10:00h

Muito interessante o artigo, parabéns!


Boa tarde,

Obrigada pelo feedback.

[6] Comentário enviado por wilsonnetto em 13/08/2015 - 23:55h


[5] Comentário enviado por carolinaneves22 em 12/08/2015 - 15:43h


[4] Comentário enviado por sergeimartao em 11/08/2015 - 10:00h

Muito interessante o artigo, parabéns!

Boa tarde,

Obrigada pelo feedback.



[7] Comentário enviado por albfneto em 15/08/2015 - 18:56h

Favoritado.
Seus artigos são excelentes
Legal ter mulheres Linuxers aqui.
o VOL é quase dominado por homens
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[8] Comentário enviado por willinocencio em 15/08/2015 - 21:11h


Adorei o artigo. Muito bonita também.

[9] Comentário enviado por ghostman em 19/08/2015 - 09:11h

Parabéns ! Essa e a ideia do GNU/Linux.

[10] Comentário enviado por reiloubarol em 17/12/2015 - 22:25h

NO ato de deletar a partição, perde todos os arquivos nela. Existe alguma maneira de diminuir ex: /backup esta com 400gb preciso diminuir ela para 350gb e criar outra particao com os 50gb restantes.

[11] Comentário enviado por carolinaneves22 em 14/06/2016 - 04:38h

Bom dia,

reiloubarol,

Existe sim, se está em LVM conseguimos diminuir e aumentar sem problemas.
Para o diminuir um LV podemos usar o comando "lvreduce" , para aumentar com o comando "lvextend".
Para diminuir (Shrink) um VG existe o comando "pvresize"...

Consulte o manual desses comandos.

man pvresize
http://linux.die.net/man/8/pvresize


Att,

Carolina Robles das Neves

[12] Comentário enviado por brigamont em 16/05/2017 - 11:10h

Me ajudou aqui...muito obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts