kvm / vmbuilder partições são menores do que deveriam ser, 10% do volume lógico sempre não alocado

2

Eu uso a ferramenta vmbuilder para criar máquinas virtuais KVM no meu sistema host ubuntu. Para cada vm eu configurei um arquivo de texto vmbuilder.partitions em que os tamanhos de partição para a vm são definidos.

Tão simples quanto:

root 100000
swap 4000

Agora eu criaria um novo volume lógico para a vm que tenha exatamente o tamanho de todas as partições definidas. (No exemplo, eu executaria lvcreate -L 104G ... )

O resultado é um LV com exatamente 104 GiB de tamanho. Mas minha partição raiz de 100 G (i?) B preenche apenas 93.13 GiB dela. E troque apenas cerca de 3,72 GiB. Há cerca de 7 GiB de espaço não alocado no LV.

Isso é muito estranho, porque mesmo que você calcule os números de vmbuilder.partitions em 1024 bytes / megabyte, a partição raiz ainda deve ter 97.65 GiB e não 93. E swap deve ter 3.9 GiB em vez de 3.72. (Infelizmente esses números aumentam, uma definição de 1TB terá apenas cerca de 930 GiB em vez de 976.)

Isso PODE ser corrigido removendo manualmente uma quantidade estimada de bytes de regra do polegar do LV. Mas quero ter valores sensatos desde o início. E ter 10% de espaço não alocado em cada VM é claramente inaceitável.

Alguém conhece a lógica por trás disso? Muito obrigado.

    
por Karma Fusebox 07.11.2012 / 19:24

1 resposta

0

Bem, até eu descobrir a resposta real, vou me ater à seguinte solução alternativa usando o LiveCD do gparted. Como se viu, as partições são realmente fáceis de consertar sem ter que tocar no próprio LV. Se você usar o combo LVM / libvirt / KVM / QEMU, poderá usar o seguinte.

  • coloque o LiveCD-iso do gparted em algum lugar legível (isso significa que não / root)
  • virsh edit <vmname> alteração <boot dev="hd" /> para <boot dev="cdrom" />
  • adicione ao lado dos seus outros blocos de disco:
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/some/vm-readable/path/gparted-live-0.14.0-1.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>

  • redefine e reinicie vm, conecte via VNC (usando virt-viewer por exemplo)

Usando a GUI do gparted, você pode arrastar / soltar as partições para preencher o último byte do LV.

Não se esqueça de voltar o dispositivo de inicialização do seu vm para "hd". Redefina e reinicie e fique feliz com os tamanhos das suas partições, como deveriam ter sido desde o início.

    
por 08.11.2012 / 01:54