Estou tentando adicionar a quente um disco baseado em arquivo em um servidor virtual KVM em execução. Eu criei um novo disco a partir do zero usando o comando
dd of=/home/cloud/vps_59/test.img bs=1 seek=5G count=0
e eu esperava adicioná-lo a quente ao convidado, fazendo isso no shell virsh:
virsh # attach-disk vps_59 /home/cloud/vps_59/test.img \
vdd --driver=file --subdriver=raw
A definição XML do domínio se torna:
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/home/cloud/vps_59/root.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='disk'>
<driver name='file' type='raw'/>
<source file='/home/cloud/vps_59/test.img'/>
<target dev='vdd' bus='virtio'/>
</disk>
Como você pode ver, o nome do driver fica errado, deve ser driver name='qemu'
o vda
disco existente . Eu tentei com --drive=qemu
mas afirma que não é suportado.
Em segundo lugar, apenas "vejo" a unidade recém-adicionada depois de reiniciar a máquina virtual executando o Ubuntu 10.04.4 LTS. Como posso fazer a unidade "hotplug"? Eu quero que a máquina virtual "veja" a nova unidade imediatamente sem uma reinicialização.
virtualization
virtual-machines
storage
kvm-virtualization
libvirt
Daniele Testa
fonte
fonte
qemu-img
, em vez dedd
- seus argumentos vem mais natural e faz a mesma coisa:qemu-img create test.img 5G
Respostas:
Gostaria de começar com uma nota que você deve evitar usar
virsh attach-disk
com sua quantidade limitada de opções. Em vez disso, sugiro especificar o formato exato do disco que você prefere em um arquivo XML temporário separado ou usando o aplicativo GUI do virt-manager (para o último, pule a primeira etapa).Crie um arquivo temporário com uma definição de disco como esta abaixo.
ajuste as propriedades para se adequar à sua situação
Dica: consulte a configuração atual do domínio XML e copie uma
<disk>
seção a partir daí.Agora, antes de adicionar o disco a um domínio atual, verifique se os módulos do kernel hotplug necessários estão carregados no convidado.
Algumas distribuições do Linux, como o recente CentOS / RHEL / Fedora, têm isso embutido no kernel. Nesse caso, verifique
CONFIG_HOTPLUG_PCI_ACPI
. Se estivery
, está tudo pronto e você pode pular esta etapa.Considere adicionar esses dois módulos
/etc/modules
se desejar que eles sejam carregados na inicialização por padrão.Adicione o disco à VM em execução usando
Opcionalmente, adicione a
--persistent
opção para permitir que o Libvirt atualize a definição XML do domínio 'persistente'.Por fim, verifique dentro do convidado se o disco foi realmente inserido com hotplug. O kernel deve ser acionado, como pode ser verificado com
dmesg
:No exemplo acima, adicionei um disco como
vdb
em duas partições na tabela de partições.Referências
fonte
--persistent
para garantir que essa configuração não se perca ao desligar a máquina virtual?