![Como aumentar o tamanho do disco convidado KVM usando LVM VG como pool de armazenamento?](https://rvso.com/image/632736/Como%20aumentar%20o%20tamanho%20do%20disco%20convidado%20KVM%20usando%20LVM%20VG%20como%20pool%20de%20armazenamento%3F.png)
O servidor host KVM está executando o CentOS 6.5 e um grupo de volumes LVM "storage_pool" é usado como o pool de armazenamento principal para KVM.
Um convidado Ubuntu é instalado usando um sistema de arquivos ext4 e monta todo o /dev/vda1 como /. Esta é a configuração do disco convidado:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/storage_pool/kvmguest.img'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
Qual seria a melhor abordagem para aumentar o tamanho do disco convidado? O VG tem muito espaço livre.
Encontrei alguns exemplos, mas a maioria também usa LVM dentro dos convidados ou não eram totalmente aplicáveis. Pelo que entendi, o método comum é criar um LV maior no mesmo VG, desligar o convidado, transferir os dados, editar a configuração para usar o novo LV?
Agradecemos antecipadamente por quaisquer sugestões ou sugestões
Responder1
Não há necessidade de desligar o convidado (pelo menos não mais em 2019).
Simplesmente
lvextend -L+<size>G /dev/<group>/<volume>
então
virsh blockresize <domain> /dev/<group>/<volume> --size <newsize>
e finalmente entre no seu convidado e faça o que for necessário para ele aproveitar o espaço extra.
Em um convidado do Windows você pode fazer
diskpart
list volume
select volume <n>
extend
Estas são as etapas exatas que segui para expandir a unidade C: de um convidado do Windows 10 rodando como domínio KVM no Ubuntu 19.04 com qemu 3.1.0
Responder2
Este é o procedimento que segui:
Estenda o volume lógico do convidado kvm
# lvextend -L+50G /dev/storage_pool/guest.img
Desligue o convidado kvm e desative o volume lógico
# virsh shutdown guest # lvchange -a n /dev/storage_pool/guest.img
Liste e anote as informações de partição do convidado kvm, principalmente o primeiro setor. Se não exibir setores, talvez seja necessário adicionar a opção '-u' ou '-u setores'
# fdisk -l /dev/storage_pool/guest.img
Exclua e recrie a partição para preencher todo o espaço estendido, certifique-se de usar setores como unidades e para selecionar o mesmo primeiro setor (geralmente 2048 se a partição estiver alinhada), você pode usar o comando 'u' fdisk para alternar entre as unidades
# fdisk /dev/storage_pool/guest.img Command (m for help): d Partition number (1-4): 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (...): 2048 Last sector...: hit enter and use the default last sector Command (m for help): a Partition number (1-4): 1 Command (m for help): w
Exponha o sistema de arquivos ext3/4 e redimensione-o
# kpartx -a -v /dev/storage_pool/guest.img # e2fsck -p -f /dev/mapper/storage_pool-guest.img1 # resize2fs /dev/mapper/storage_pool-guest.img1 # e2fsck -p -f /dev/mapper/storage_pool-guest.img1 # kpartx -d -v /dev/storage_pool/guest.img
Ative o volume lógico e inicie o convidado kvm
# lvchange -a y /dev/storage_pool/guest.img # virsh start guest
Responder3
Procurando a mesma coisa, encontrei sua pergunta ainda sem resposta. Para mim, o seguinte funcionou:
desligue o convidado (no meu caso, um debian 7.0) da maneira usual.
estender o LV "original" (no VG do host, é claro), por exemplo, em 5G. Para isso, você precisa ser root/sudo no host:
lvextend -L +5G /dev/YourStoragePoolVG/YourVirtualMachinesVGToExtend
Abra o lv recém-estendido (ou seja, o “disco” da sua VM) no gparted:
gparted /dev/mapper/YourStoragePoolVG-YourVirtualMachinesVGToExtend
- Nota: vocêdeveuse o caminho "/dev/mapper/...", não"/dev/dm-77" ou "/dev/YourStoragePoolVG/..." ou outro (isso parece ser um bug/recurso do LVM)!
- Mexa nas partições no volume modificado (use a GUI normalmente)
- Nota: Considere os avisos sobre perda de dados, tipos de fs etc.!
- Nota: Tenha cuidado.
- Emgparted, você pode redimensionar partições e movê-las na tabela de partições armazenada no disco virtio dentro do LV.
- Estender uma ou mais partições não é um problema IMHO. Para redução de partição/fs, use o Google...
- O gparted também adapta os sistemas de arquivos nas partições (não apenas as próprias partições.
- Reinicie sua VM. Agora vê as partições modificadas.
Como eu disse, funcionou para mim (eu poderia tentar em alguma instalação de brinquedo sem correr riscos). Alguém poderia revisar as instruções acima e comentar se isso funciona em geral? Obrigado.
Responder4
É fácil - após a inicialização do LVEXTEND | LVRESIZE do host na VM a partir de um LiveCD ISO com GPARTED integrado. Assim que a inicialização do CD for concluída, execute GPARTED com o nome da partição raiz usada DENTRO da VM:
$ gparted /dev/vda1" # for VirtIO /dev/vda
ou
$ gparted /dev/sda1" # for SATA emulated /dev/sda
e execute o redimensionamento da partição da maneira usual do GPARTED