Expandindo partição do disco de uma máquina virtual LVM em CentOS

Este tópico abordará como aumentar o espaço em disco de uma máquina virtual VMware executando o Linux que está usando o gerenciador de volume lógico (LVM). Em primeiro lugar, aumentaremos o tamanho do disco real na máquina Virtual VMware, portanto, no nível de hardware – o arquivo .vmdk da VM. Uma vez que este esteja completo, entraremos na máquina virtual e efetuaremos as mudanças necessárias através do sistema operacional, a fim de aproveitar o espaço adicional fornecido pelo disco rígido sendo estendido. Isso envolverá a criação de uma nova partição com o novo espaço, expandindo o grupo de volumes e o grupo lógico e, finalmente, redimensionando o sistema de arquivos.

Nota importante: tenha muito cuidado ao trabalhar com os comandos neste artigo, pois eles têm o potencial de causar muitos danos aos seus dados. Se você estiver trabalhando com máquinas virtuais, certifique-se antes de fazer um backup de sua máquina virtual antes prosseguir. Observe que a instancia não deve ser inicializada até que o disco virtual tenha sido aumentado, caso contrário você não poderá aumentá-lo. Também pode-se fazer a clonagem da máquina virtual primeiro e testar esse método no clone.

Pré-requisitos: como este método usa o espaço adicional para criar uma partição primária, você não deve ter ainda 4 partições, pois não poderá criar mais de 4. Se você não tiver espaço para outra partição, será necessário considerar uma Método diferente, existem alguns outros.

Ao longo dos exemplos, vou trabalhar com uma máquina Virtual VMware executando o CentOS 7 64bits, isso foi configurado com um disco de 20GB e nós aumentamos 10GB por um tamanho final total de 30GB.

Identificando o tipo de partição

Como este método se concentra em trabalhar com o LVM, primeiro confirmaremos que o nosso tipo de partição é, na verdade, Linux LVM executando o comando abaixo:

fdisk -l

Como você pode ver na imagem acima / dev / sda5 é listado como “Linux LVM” e tem o ID de 8e. O código hexadecimal 8e mostra que é um Linux LVM, enquanto que 83 mostra uma partição nativa do Linux. Agora que confirmamos que estamos trabalhando com um LVM, podemos continuar. Para aumentar o tamanho de uma partição nativa do Linux (código hexadecimal 83).

Abaixo está a informação do disco mostrando que nossa configuração inicial apenas possui o único disco de 20GB atualmente, que está sob o volume lógico chamado / dev / mapper / Mega-root – isto é o que estaremos expandindo com o novo disco.

Observe que / dev / mapper / Mega-root é o volume composto por / dev / sda5 atualmente – é isso que vamos expandir.

Aumentando o disco rígido virtual

Primeiro, aumentamos o espaço de disco alocado na própria máquina virtual. Isso é feito clicando com o botão direito do mouse na máquina virtual no VMware Player, selecionando as configurações de edição e, em seguida, selecionando o disco rígido. Na imagem abaixo, alterei o disco rígido previamente definido de 8GB para 30GB enquanto a máquina virtual está desligada. Uma vez concluído, clique em OK, isso é tudo o que precisa ser feito no VMware para este processo.

Abaixo veja os procedimentos feitos:

Se você não conseguir modificar o tamanho do disco, a configuração do tamanho provisionado está acinzentada. Isso pode acontecer se a máquina virtual estiver com instancias ligadas. Recomendo você desligar a máquina virtual se não permitir que você adicione ou aumente discos, caso seja preciso desligue-a e faça a alteração e volte a ligá-la.

Detectar o novo espaço no disco

Uma vez que o disco físico foi aumentado no nível de hardware, precisamos entrar no sistema operacional e criar uma nova partição que faça uso deste espaço para prosseguir.

Antes de podermos fazer isso, precisamos verificar se o novo espaço em disco não alocado é detectado pelo servidor, você pode usar “fdisk -l” para listar o disco primário. Você provavelmente verá que o espaço em disco ainda está sendo exibido como o mesmo tamanho original, neste momento, você pode reiniciar o servidor e ele irá detectar as mudanças na inicialização ou você pode recapitalizar seus dispositivos para evitar a reinicialização executando o comando abaixo. Observe que talvez seja necessário alterar o host0 dependendo da sua configuração.

echo "- - -"> /sys/class/scsi_host/host0/scan

Abaixo está uma imagem depois de executar isso e confirmando que o novo espaço está sendo exibido.

 

Particionar o novo espaço no disco

Conforme descrito em minhas imagens anteriores, o disco no meu exemplo com o qual estou trabalhando é / dev / sda, então usamos o fdisk para criar uma nova partição primária para usar o novo espaço em disco expandido. Observe que não temos 4 partições primárias já instaladas, tornando possível esse método.

fdisk /dev/sda

Agora estamos usando fdisk para criar uma nova partição, as entradas que entrei são apresentadas abaixo em negrito. Observe que você pode pressionar ‘m’ para obter uma lista completa dos comandos do fdisk.

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): n

‘p’ é então selecionado, pois estamos fazendo uma partição primária.

Command action
   l   logical (5 or over)
   p   primary partition (1-4)
p

Como eu já tenho /dev/sda1 e /dev/sda2 como mostrado em imagens anteriores, eu usei ‘3’ para esta nova partição que será criada como /dev/sda3

Partition number (1-4): 3

Nós apenas pressionamos Enter duas vezes acima, como por padrão, o primeiro e o último cilindro do espaço não alocado deve estar correto. Depois disso, a partição está pronta.

First cylinder (2611-3916, default 2611): "enter"
Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"
Using default value 3916

‘t’ é selecionado para mudar para o ID de sistema de uma partição, neste caso, mudamos para ‘3’, que é o que acabamos de criar.

Command (m for help): t
Partition number (1-5): 3

O código hexadecimal ‘8e’ foi inserido, pois este é o código para um Linux LVM, que é o que queremos que essa partição seja, pois iremos juntá-lo ao original /dev/sda5 Linux LVM.

Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

‘w’ é usado para escrever a mesa no disco e sair, basicamente todas as mudanças que foram feitas serão salvas e você será encerrado no fdisk.

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
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.

Você verá um aviso que, basicamente, significa para usar a nova tabela com as mudanças é necessária uma reinicialização do sistema. Se você não pode ver a nova partição usando “fdisk -l”, você poderá executar “partprobe -s” para rever as partições. No meu teste eu não exigiria nenhuma dessas coisas nesta fase (eu faço uma reinicialização mais tarde), logo depois de pressionar ‘w’ no fdisk, eu consegui ver a partição nova /dev/sda3 do meu 10GB de espaço como mostrado Na imagem abaixo.

Para o CentOS/RHEL, execute um “partx -a /dev/sda3” para evitar a reinicialização mais tarde.

Isso é tudo para particionamento, agora temos uma nova partição que está fazendo uso do espaço em disco anteriormente não alocado do aumento no VMware.

Aumentando o volume lógico

Usamos o comando pvcreate que cria um volume físico para uso posterior pelo gerenciador de volume lógico (LVM). Neste caso, o volume físico será a nossa nova partição /dev/sda3.

root@Mega:~# pvcreate /dev/sda3
  Device /dev/sda3 not found (or ignored by filtering).

Para contornar isso, você pode reiniciar ou usar partprobe/partx como mencionado anteriormente para evitar uma reinicialização, pois, nessa instância, o disco não parece estar corretamente, apesar de mostrar em “fdisk -l”. Após uma reinicialização ou parteprobe/partx, use o mesmo comando que terá sucesso.

root@Mega:~# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

Em seguida, precisamos confirmar o nome do grupo de volume atual usando o comando vgdisplay. O nome variará dependendo da sua configuração, para mim é o nome do meu servidor de teste. O vgdisplay fornece muitas informações no grupo de volume, eu mostrei apenas o nome e o tamanho atual desse exemplo.

root@Mega:~# vgdisplay
  --- Volume group ---
  VG Name               Mega
...
VG Size               19.76 GiB

Agora, estendemos o grupo de volume ‘Mega’ adicionando o volume físico de / dev / sda3 que criamos usando o comando pvcreate anteriormente.

root@Mega:~# vgextend Mega /dev/sda3
  Volume group "Mega" successfully extended

Usando o comando pvscan, nós varremos todos os discos para volumes físicos, isso deve confirmar a partição original /dev/sda5 e o volume físico recém-criado /dev/sda3.

root@Mega:~# pvscan
  PV /dev/sda5   VG Mega   lvm2 [19.76 GiB / 0    free]
  PV /dev/sda3   VG Mega   lvm2 [10.00 GiB / 10.00 GiB free]
  Total: 2 [29.75 GiB] / in use: 2 [29.75 GiB] / in no VG: 0 [0   ]

Em seguida, precisamos aumentar o volume lógico (em vez do volume físico), o que basicamente significa que iremos tomar nosso volume lógico original e estendê-lo sobre nossa nova partição / volume físico de /dev/sda3.

Primeiro confirme o caminho do volume lógico usando lvdisplay. Este nome do caminho variará dependendo da sua configuração.

root@Mega:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/Mega/root

O volume lógico é prolongado usando o comando lvextend.

root@Mega:~# lvextend /dev/Mega/root /dev/sda3
  Extending logical volume root to 28.90 GiB
  Logical volume root successfully resized

Existe então um passo final que é redimensionar o sistema de arquivos para que ele possa aproveitar esse espaço adicional, isso é feito usando o comando resize2fs para sistemas de arquivos baseados em ext. Observe que isso pode levar algum tempo para completar, demorou cerca de 30 segundos para o meu espaço adicional.

root@Mega:~# resize2fs /dev/Mega/root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/Mega/root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/Mega/root to 7576576 (4k) blocks.
The filesystem on /dev/Mega/root is now 7576576 blocks long.

No caso estamos executando o sistema de arquivos XFS (padrão de RedHat/CentOS 7), você pode expandir o sistema de arquivos com “xfs_growfs /dev /Mega/root”.

xfs_growfs /dev/Mega/root

É isso mesmo, agora com o comando ‘df’, podemos ver que o espaço total disponível em disco foi aumentado.

Resumo

Com este método, aumentamos a unidade de disco virtual através da VMware, criamos uma nova partição para fora deste espaço recém-alocado no sistema operacional convidado, transformamo-lo em um volume físico, ampliamos o grupo de volumes e, finalmente, estendemos o volume lógico original sobre o Volume físico mais recente, resultando em aumento do espaço em disco global.

Fonte: https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/