Redimensionando um disco virtual já existente sem parada dos serviços

Em se tratando de sistemas virtualizados com Linux para quase tudo há um meio de fazer sem precisar parar o servidor. Suponhamos, então, que você pretenda expandir um volume LVM em seu servidor virtual que está em produção e não pode ser desligado. Com alguns poucos comandos isso pode ser feito rapidamente.

Considerando que você já tenha expandido o disco usando a ferramenta administrativa do seu ambiente virtualizado, agora vá até o console da máquina virtual e digite o seguinte comando:

echo 1 > /sys/block/sdb/device/rescan

Este comando força o Kernel do Linux a revalidar as informações do disco em questão. Observe que “sdb” é o nome do disco conforme detectado pelo Linux.

No meu exemplo eu fiz isso para expandir o disco “sdb” de 50GB para 100GB (mas é válido para qualquer tamanho). Após executá-lo, se tudo correu bem, você deverá ter uma mensagem parecida com esta no seu dmesg ou syslog:

[3007626.926866] sd 2:0:1:0: [sdb] 209715200 512-byte logical blocks: (107 GB/100 GiB)
[3007626.926923] sd 2:0:1:0: [sdb] Cache data unavailable
[3007626.926924] sd 2:0:1:0: [sdb] Assuming drive cache: write through
[3007626.927031] sdb: detected capacity change from 53688270848 to 107374182400

Uma vez feito isso o seu particionador irá reconhecer o disco com o novo tamanho e você poderá continuar o trabalho normal de expansão de espaço. O que em regras gerais seria a criação de uma partição LVM (use um particionador e o comando pvcreate), expansão do grupo de volumes (comando vgextend), expansão do volume (comando lvextend) e por último a expansão do filesystem (no caso de partições ext2, ext3 e ext4 use o comando resize2fs)

 

One thought on “Redimensionando um disco virtual já existente sem parada dos serviços”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *