Estamos evaluando KVM para la virtualización de Linux en algunos proyectos. Todo va bien hasta ahora. Pero uno de nuestros requisitos es la capacidad de agregar espacio en disco a un invitado en ejecución sin reiniciarlo o desconectarlo. ¿Es esto posible con KVM?
Lo único que he encontrado hasta ahora (pero aún no lo he probado) es la capacidad de conectar discos en caliente a la máquina. Si sigo esta ruta, siempre podría agregar el nuevo disco a un grupo de volúmenes LVM en el invitado y luego extender el volumen lógico elegido. El mayor inconveniente de este enfoque es que con el tiempo podríamos terminar con invitados que tengan un número variable de discos virtuales. El espacio en disco "real" se proporcionaría al host a través de una SAN, por lo que siempre podemos agregar más espacio al host cuando lo desee.
Respuestas:
Creo que estás atrapado haciendo lo que has mencionado si quieres hacerlo sin desmontar la máquina.
¿Por qué no simplemente dar a las máquinas virtuales LUN directamente desde la SAN y administrar el espacio allí? Esto funciona mejor si desea utilizar características como la migración en vivo de todos modos.
KVM se basa en QEMU, por lo que todo su soporte de formato de imagen proviene de ese proyecto. Aquí hay un buen cómo cambiar el tamaño de los diversos formatos que admite Qemu / KVM. Pero el foro Qemu sería un buen lugar para hacer esta pregunta si no obtiene respuestas sólidas aquí.
Otra opción que puede no ser ideal es utilizar qcow2 realmente grande u otro formato de imagen disperso para las unidades. Por lo tanto, podría darle a cada máquina una unidad pequeña para el sistema operativo y una imagen dispersa grande para datos bajo LVM. Esto al menos mantendría la cantidad de unidades / imágenes virtuales que tiene que administrar. Sin embargo, este aprovisionamiento delgado podría ser un problema si lo hace a 1000 máquinas y todos lo ocupan en el espacio libre que ven.
XEN creo que tiene las mismas limitaciones actualmente.
fuente
Sé que es una vieja pregunta, pero la encontré mientras busqué en Google la solución y espero que pueda ayudar a alguien más.
En cuanto a hoy, es posible cambiar el tamaño del disco duro de la máquina. He encontrado una manera de trabajar aquí:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
Se deben realizar los siguientes pasos:
Encuentre el nombre del archivo y el nombre del dispositivo KVM del disco duro que desea cambiar de tamaño:
El que nos interesa es el disco. Debes buscar
source
yalias
bloques. Para mí, el nombre del archivo estest.img
y el nombre del alias esvirtio-disk0
. Para este nombre, debe anteponerdrive-
para obtener el nombre de la unidad qemu.Ahora cambiamos el tamaño del disco usando el monitor qemu:
Tenga en cuenta que el nombre de archivo se usó sin la extensión .img y la unidad se agregó al alias del disco. El 100G es el tamaño resultante de la unidad que queremos tener
Inicie sesión en la máquina y compruebe que se modificó el tamaño real:
¡Eso es! Ahora puede crear nuevas particiones o cambiar el tamaño de las existentes.
fuente
AFAIK, esto no es posible: puede agregar nuevas imágenes de disco y, como señala, también puede agregar nuevas imágenes a un volumen LVM, pero para cambiar el tamaño de una imagen de disco activa y de arranque, debe poder cerrarla abajo y editar las particiones.
Aquí hay una buena explicación para expandir una imagen. Aunque requiere el apagado, probablemente podría salirse con solo un par de minutos de tiempo de inactividad, especialmente si evita la opción de imagen no dispersa y hace que el disco dividido en un archivo iso y se monte en su invitado KVM por adelantado. Espero que esto ayude.
fuente
Es posible mover un sistema Linux entre discos mientras se está ejecutando. La limitación es que no puede alterar particiones en un disco que tiene particiones en uso.
Para hacer esto, su sistema de archivos raíz debe estar en un LVM, esto a menudo significa que tiene que tener un sistema de archivos de arranque separado (sin embargo, esto no es esencial, solo facilita las cosas)
Después de enchufar el nuevo disco, lo agrega al LVM con vgextend, usa pvmove para mover los rootfs al nuevo disco, usa lvextend y resize2fs para expandir el volumen lógico y el sistema de archivos respectivamente, luego usa vgreduce para eliminar el disco viejo del volumen grupo. Una vez eliminado, el volumen anterior se puede desenchufar.
Para el caso simple, tiene un pequeño disco para el sistema de archivos de arranque que nunca tiene que tocar. Pero si está solo, es fácil desmontarlo, desenchufarlo, enchufar uno nuevo y reconstruir el disco de arranque sin detener el sistema. (simplemente no te cuelgues mientras lo haces)
Nota: resize2fs también puede reducir los sistemas de archivos.
fuente
Cajero automático no posible, pero afaik es una característica en desarrollo. En cambio, lo que puede hacer es conectarse a un objetivo iSCSI desde la VM y administrar el espacio en ese objetivo en el lado SAN.
fuente