-
libvirt e LVM2
Uma ótima forma de criar uma estrutura para suportar máquinas virtuais é a parceria entre libvirt e LVM2. No meu caso em específico, uso o emulador qemu-kvm para rodar minhas máquinas virtuais. A seguir, apresentarei como se cria um pool de volumes lógicos no libvirt e como converter máquinas já criadas em arquivos de imagens.
Antes de tudo, é necessário que já tenha sido criado um grupo virtual. Como isso não está no escopo do post, recomendo navegar por esse howto. Com o grupo criado e ativado, vamos criar a definição do pool para o libvirt. Abra um editor de texto, como o vim, e coloque nele o seguinte texto:
<pool type='logical'> <name>logical</name> <source> <device path='/dev/sdb1'/> <name>logical</name> <format type='lvm2'/> </source> <target> <path>/dev/logical</path> </target></pool>
Nesse exemplo, vamos assumir que a partição que compõe o grupo logico é o /dev/sdb1. Após, salve com um nome sugestivo, como por exemplo logical.xml. Agora só resta registrar no libvirt.
virsh pool-define logical.xml
Mesmo registrado, o sistema ainda não ativou o pool. É recomendado que ele seja marcado como autostart, para que caso o libvirt pare, ele ative automaticamente o pool. Para isto, basta os seguintes comandos:
virsh pool-autostart logical virsh pool-start logical
Com o pool inicializado, agora só resta criar um volume lógico dentro dele:
virsh vol-create-as logical disco_teste 10GB
Este comando criará um volume lógico de nome disco_teste no grupo logical tendo como capacidade 10GiB
Convertendo arquivos de imagens em volumes lógicos
Caso já tenha uma máquina virtual configurada em um arquivo de imagem nos formatos suportados pelo qemu, basta convertê-lo usando o próprio qemu-img para o formato desejado. Na versão 0.12.4 os formatos suportados são: cow, qcow, vdi, vmdk, cloop, dmg, bochs, qcow2, host_device, raw entre outros.
Antes de começar, é preciso criar um volume lógico com o mesmo tamanho da imagem existente. Para ter o valor correto, use a ferramenta qemu-img para saber o tamanho total da imagem:
qemu-img info disco.img
Ele retornará algo como:
image: disco.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 4.0G cluster_size: 65536
Veja que, embora o arquivo tenha tamanho de 4GB, ele pode crescer até o tamanho virtual, que é de 10GB para esta imagem. Agora, crie um volume lógico com este tamanho seguindo o modelo logo acima.
Eu conheço duas formas de levar o arquivo de imagem para um volume lógico. A primeira é usando o qemu-img para já gravar a imagem no volume:
qemu-img convert -f qcow2 -O host_device disco.img /dev/logical/disco_teste
Ou então, com uma etapa a mais, e portanto mais demorada, transformando a imagem do formato nativo para raw e depois transferindo os dados de forma bruta para o volume com o dd:
qemu-img convert -f qcow2 -O raw disco.img disco.raw dd if=disco.raw of=/dev/logical/disco_teste
O resultado de ambos é o mesmo. Desde que tenha um domínio registrado com esse disco, agora é só usar o volume lógico recém criado. A definição de um disco em volume lógico segue o modelo:
<devices> ... <disk type='block' device='disk'> <source dev='/dev/logical/disco_teste'/> <target dev='sdc' bus='scsi'/> </disk> ... </devices>
Comentários via Facebook:
1 Respostas a “libvirt e LVM2”
Deixe uma resposta
The trackbacks and pingpacks:
- Converter discos virtuais | Freedom Interface - Pingback on 10/09/22 17:21
Tags
"viagens"
asterisk
backup
banco de dados
catástrofes
c programming
curiosidade
desenvolvimento
dicas
espiritualidade
filosofias
hardware
ideia maluca
kvm
libvirt
linux
livros
lvm2
recuperação
redes
servidores
shell script
slackware
sql
utilidades
variedades
virtualização
vídeos
Recentes
Blog
- Carlos Feichas
- Debugging Consultoria
- Fabiano Xavier
- Fábio Arezi
- Felipe Molina
- Lucas Catón
- Mateus Penha
- Tiago Mathidios
Lista de Links
- Asterisk Asterisk PBX
- Debugging Consultoria Debugging Consultoria
- LPI
- Slackbuilds Repositório Slackbuilds
- Slackware Site oficial Slackware
- Viva o Linux Comunidade Viva o Linux
- Voip-Info Wiki VoIP