Estoy tratando de agregar un disco basado en archivos a un servidor virtual KVM en ejecución. He creado un nuevo disco desde cero usando el comando
dd of=/home/cloud/vps_59/test.img bs=1 seek=5G count=0
y esperaba que se agregara en caliente al invitado haciendo esto en el shell virsh:
virsh # attach-disk vps_59 /home/cloud/vps_59/test.img \
vdd --driver=file --subdriver=raw
La definición XML del dominio se convierte en:
<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 puede ver, el nombre del controlador se vuelve incorrecto, debe ser driver name='qemu'
como el vda
disco existente . He intentado con --drive=qemu
pero dice que no es compatible.
En segundo lugar, solo "veo" la unidad recién agregada una vez que reinicio la máquina virtual que ejecuta Ubuntu 10.04.4 LTS. ¿Cómo puedo hacer que la unidad se "conecte en caliente"? Quiero que la máquina virtual "vea" la nueva unidad inmediatamente sin reiniciar.
virtualization
virtual-machines
storage
kvm-virtualization
libvirt
Daniele Testa
fuente
fuente
qemu-img
lugar dedd
- sus argumentos son más naturales y hacen lo mismo:qemu-img create test.img 5G
Respuestas:
Me gustaría comenzar con una nota que debe evitar usar
virsh attach-disk
con su cantidad limitada de opciones. En cambio, sugeriría que especifique el formato de disco exacto que prefiere en un archivo XML temporal separado o utilizando la aplicación GUI virt-manager (para el último, omita el primer paso).Cree un archivo temporal con una definición de disco como esta a continuación.
ajustar las propiedades para adaptarse a su situación
Consejo: Eche un vistazo a su configuración de dominio XML actual y copie una
<disk>
sección desde allí.Ahora, antes de agregar el disco a un dominio actual, asegúrese de que los módulos del núcleo hotplug necesarios estén cargados en el invitado.
Algunas distribuciones de Linux como CentOS / RHEL / Fedora recientes tienen esto incorporado en el núcleo. En este caso, verifique
CONFIG_HOTPLUG_PCI_ACPI
. Si es asíy
, ya está todo listo y puede omitir este paso.Considere agregar estos dos módulos
/etc/modules
si desea que se carguen en el arranque de forma predeterminada.Agregue el disco a la VM en ejecución usando
Opcionalmente, agregue la
--persistent
opción para permitir que Libvirt actualice la definición XML del dominio 'persistente'.Finalmente, verifique dentro del invitado si el disco fue realmente insertado en caliente. El núcleo debe activarse, como se puede verificar con
dmesg
:En el ejemplo anterior, he agregado un disco como
vdb
con dos particiones en la tabla de particiones.Referencias
fuente
--persistent
para asegurarse de que esta configuración no se pierda cuando apaga la máquina virtual?