Expandindo partição ext3 em discos lógicos e qcow2 em ambiente de virtualização
Dica publicada em Linux / Avançado
Expandindo partição ext3 em discos lógicos e qcow2 em ambiente de virtualização
Esta dica é em parte, documentação do procedimento que utilizo com certa frequência, o qual não recomendo para usuários que não entendem os conceitos envolvidos.
A ideia aqui é redimensionar disco de volume lógicos (lvm) e disco em arquivo formato qcow2 de VM linux.
Com alguma imaginação é possível modificar o procedimento para se adequar a outros tipos de discos e partições.
Supondo os seguintes discos abaixo, um no formato qcow2 e outro um volume lógico do grupo virtual vg0:
Para expandir o tamanho de ambos em 10GB por exemplo, os discos não podem estar em uso é claro. Execute o comando abaixo de acordo com o tipo do disco da vm:
qemu-img resize /media/workspace/vhds/cliedomcvm01.disk01.qcow2 +10G
$ lvextend -L +10G /dev/vg0/cliedomcvm01.disk02
Antes de estender o disco o reportado pela VM no exemplo aqui, era o seguinte:
fdisk -l
fdisk -l
Vamos redimensionar a partição sda2, de dentro da VM em questão. Existem outros modos mais "seguros" para fazer isto.
O modo abaixo simplesmente troca o tamanho da partição e boa, eu tenho utilizado isso sem problemas, mas dependendo do particionamento e da ordem da partição, você querer alterar o procedimento não é tão seguro, mas como no caso aqui, a partição a ser estendida é a sda2 que está no fim do disco, é relativamente seguro, e eu utilizo pelo simples fato de conseguir executar tudo pelo ssh.
Dando continuidade, vamos copiar o particionamento atual para um arquivo.
sfdisk -d /dev/sda > ~/sfdisk_sda.orig
Fazer uma cópia do arquivo e manter o original em caso de sinistro no procedimento (rsrs):
cp ~/sfdisk_sda.orig ~/sfdisk_sda.novo
Vamos ter que fazer algumas continhas, veja que temos duas partições, sda1 e sda2, cada uma com um tamanho em setor, 4194304 e 12580864 respectivamente.
Se somarmos ambos os valores teremos: 16775168, subtraindo esse valor do novo tamanho do disco em setores, 37748736 menos 16775168, teremos 20973568 que é justamente os 10g extras que adicionamos.
Ou seja, este valor está disponível para acrescentarmos ao tamanho do sda2, 12580864 mais 20973568 o que dá 33554432.
Ainda por segurança ou por bobagem não sei ao certo, mas costumo remover 1024 setores desse valor para dar uma folga de espaço livre no fim do disco, o que dá 33553408, esse será o novo tamanho do sda2.
Agora edite o arquivo sfdisk_sda novo e troque o número de setores do sda2 pelo valor que encontramos 33553408.
Veja a diferença entre os arquivos abaixo:
cat sfdisk_sda.orig
sfdisk --force /dev/sda < ~/sfdisk_sda.novo
Reinicie a vm, logue-se novamente e execute o comando abaixo para ajustar a partição:
# resize2fs /dev/sda2
Após este procedimento o df -h já deve listar a partição com o novo espaço em disco.
Eu alertei da insegurança do procedimento, mas posso garantir que dentro do ambiente exposto funciona muito bem, já utilizei inúmeras vezes, mas de fato eu não recomendo para quem tem lacunas nos conceitos envolvidos no processo.
Boa sorte e abraços!!!
A ideia aqui é redimensionar disco de volume lógicos (lvm) e disco em arquivo formato qcow2 de VM linux.
Com alguma imaginação é possível modificar o procedimento para se adequar a outros tipos de discos e partições.
Supondo os seguintes discos abaixo, um no formato qcow2 e outro um volume lógico do grupo virtual vg0:
- /media/workspace/vhds/cliedomcvm01.disk01.qcow2 (QCOW2)
- /dev/vg0/cliedomcvm01.disk02 (LVM)
Para expandir o tamanho de ambos em 10GB por exemplo, os discos não podem estar em uso é claro. Execute o comando abaixo de acordo com o tipo do disco da vm:
qemu-img resize /media/workspace/vhds/cliedomcvm01.disk01.qcow2 +10G
$ lvextend -L +10G /dev/vg0/cliedomcvm01.disk02
Antes de estender o disco o reportado pela VM no exemplo aqui, era o seguinte:
fdisk -l
Disk /dev/sda: 8 GiB, 8588886016 bytes, 16775168 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 Disklabel type: dos Disk identifier: 0x015ccc6f Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 4196351 4194304 2G 83 Linux /dev/sda2 * 4196352 16775168 12580864 6G 83 LinuxApós estender o tamanho do disco, o reportado pela VM é o seguinte:
fdisk -l
Disk /dev/sda: 18 GiB, 19327352832 bytes, 37748736 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 Disklabel type: dos Disk identifier: 0x015ccc6f Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 4196351 4194304 2G 83 Linux /dev/sda2 * 4196352 16775168 12580864 6G 83 LinuxVeja que o tamanho mudou, aqui nos interessa em particular a quantidade de setores que foi de 16775168 para 37748736.
Vamos redimensionar a partição sda2, de dentro da VM em questão. Existem outros modos mais "seguros" para fazer isto.
O modo abaixo simplesmente troca o tamanho da partição e boa, eu tenho utilizado isso sem problemas, mas dependendo do particionamento e da ordem da partição, você querer alterar o procedimento não é tão seguro, mas como no caso aqui, a partição a ser estendida é a sda2 que está no fim do disco, é relativamente seguro, e eu utilizo pelo simples fato de conseguir executar tudo pelo ssh.
Dando continuidade, vamos copiar o particionamento atual para um arquivo.
sfdisk -d /dev/sda > ~/sfdisk_sda.orig
Fazer uma cópia do arquivo e manter o original em caso de sinistro no procedimento (rsrs):
cp ~/sfdisk_sda.orig ~/sfdisk_sda.novo
Vamos ter que fazer algumas continhas, veja que temos duas partições, sda1 e sda2, cada uma com um tamanho em setor, 4194304 e 12580864 respectivamente.
Se somarmos ambos os valores teremos: 16775168, subtraindo esse valor do novo tamanho do disco em setores, 37748736 menos 16775168, teremos 20973568 que é justamente os 10g extras que adicionamos.
Ou seja, este valor está disponível para acrescentarmos ao tamanho do sda2, 12580864 mais 20973568 o que dá 33554432.
Ainda por segurança ou por bobagem não sei ao certo, mas costumo remover 1024 setores desse valor para dar uma folga de espaço livre no fim do disco, o que dá 33553408, esse será o novo tamanho do sda2.
Agora edite o arquivo sfdisk_sda novo e troque o número de setores do sda2 pelo valor que encontramos 33553408.
Veja a diferença entre os arquivos abaixo:
cat sfdisk_sda.orig
label: dos label-id: 0xcfb458e4 device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 4194304, type=83, bootable /dev/sda2 : start= 4196352, size= 12580864, type=83, bootablecat sfdisk_sda.novo
label: dos label-id: 0xcfb458e4 device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 4194304, type=83, bootable /dev/sda2 : start= 4196352, size= 33553408, type=83, bootableAgora vamos forçar a nova tabela de partição no disco, se sabe rezar é uma boa hora.
sfdisk --force /dev/sda < ~/sfdisk_sda.novo
Reinicie a vm, logue-se novamente e execute o comando abaixo para ajustar a partição:
# resize2fs /dev/sda2
Após este procedimento o df -h já deve listar a partição com o novo espaço em disco.
Eu alertei da insegurança do procedimento, mas posso garantir que dentro do ambiente exposto funciona muito bem, já utilizei inúmeras vezes, mas de fato eu não recomendo para quem tem lacunas nos conceitos envolvidos no processo.
Boa sorte e abraços!!!