Añadir un nuevo disco a una VM Xen en caliente
En el trabajo tenemos un servidor ftp corriendo como máquina virtual Xen. Aunque tiene varios gigas de espacio en disco, siempre termina haciendo falta más. En esta entrada explicaré paso a paso como añadir un nuevo disco “virtual” al servidor ftp, sin necesidad de “apagar” la máquina virtual.
- Crear el nuevo disco/partición en el dom0
En mi caso, el dom0 tiene 2 discos duros SATA de 250 Gb formando un único grupo de volúmenes LVM. Este grupo de volúmenes aún tiene libres 167,89 Gb, por lo que podremos emplear este espacio para crear un nuevo volumen lógico. Suponiendo que el grupo de volúmenes se llama vg00, lo único que debemos hacer es lo siguiente:xen:~# lvcreate -L 100G -n ftp-ubuntu vg00
Logical volume "ftp-ubuntu" createdAsí habremos creado un volumen lógico llamado ftp-ubuntu de 100 Gb en el grupo de volúmenes vg00. Lo he llamado ftp-ubuntu porque se usará en la máquina virtual llamada ftp, y porque albergará un mirror de ubuntu. Así será más fácil identificar luego a qué máquina virtual pertenece cada volumen lógico.
- Crear el sistema de archivos en el nuevo volumen lógico
Este paso es muy sencillo. Tan solo debemos ejecutar el siguiente comando:xen:~# mkfs.ext3 -m0 /dev/vg00/ftp-ubuntuAsí crearemos un sistema de archivos ext3 en el nuevo volumen lógico, y reservando un 0% de expacio para root.
- Conectar el nuevo volumen lógico al domU
Ahora es cuando conectaremos en caliente el nuevo disco a la máquina virtual. Para ello debemos ejecutar el siguiente comando:xen:~# xm block-attach ftp phy:vg00/ftp-ubuntu /dev/sdb3 wCon ello habremos conectado el volumen lógico vg00/ftp-ubuntu al domU ftp, en el que aparecerá como /dev/sdb3, y con acceso de lectura y escritura (w).
- Configurar el nuevo dispositivo en el domU
Una vez conectados al domU (bien mediante ssh o mediante xm console), tendremos que crear el dispositivo de bloques para poder acceder a él:ftp:~# mknod /dev/sdb3 b 8 19
ftp:~# chmod 0660 /dev/sdb3Tendremos que editar el archivo /etc/fstab para que se monte automáticamente en cada arranque y montar el nuevo dispositivo para poder empezar a usarlo.
- Configurar el domU para que se asigne el volumen lógico en cada arranque
Por último solo nos quedará editar el archivo de configuración del domU (/etc/xen/ftp.cfg en mi caso) para que el volumen lógico se monte en cada arranque de la máquina virtual. Bastará con que busquemos la variable disk y añadamos el dispositivo. En mi caso, la línea queda como sigue:disk = [ 'phy:vg00/ftp-disk,sda1,w', 'phy:vg00/ftp-swap,sda2,w', 'phy:vg00/ftp-home,sdb1,w', 'phy:vg00/ftp-breezy,sdb2,w', 'phy:vg00/ftp-ubuntu,sdb3,w' ]Como podéis comprobar, el domU ftp tiene cinco volúmenes lógicos asignados: uno para el sistema raíz, montado como sda1; otro para swap, montado como sda2; otro para la partición /home, montado como sdb1; otro que alberga un mirror de breezy, montado como sdb2; y el nuevo volumen lógico que hemos creado, que se montará como sdb3.
Y listo. Hemos conseguido disponer de más espacio en el servidor ftp sin tener que parar el servicio en absoluto. Y además, gracias a LVM, podremos seguir expandiendo el espacio en el futuro sin necesidad de interrumpir el servicio. Espero que os sirva de ayuda.




disk = [ 'phy:vg00/ftp-disk,sda1,w', 'phy:vg00/ftp-swap,sda2,w', 'phy:vg00/ftp-home,sdb1,w', 'phy:vg00/ftp-breezy,sdb2,w', 'phy:vg00/ftp-ubuntu,sdb3,w' ]
================================
no seria recomendable crearlo asi?
root = ‘/dev/sda2 ro’
var = ‘/dev/sda3 ro’
home = ‘/dev/sda4 ro’
disk = [
'phy:/dev/servidores/ares-swap,sda1,w',
'phy:/dev/servidores/ares-disk,sda2,w',
'phy:/dev/servidores/ares-var,sda3,w',
'phy:/dev/servidores/ares-home,sda4,w' ,
]
luego en la maquina virtual mapear las unidades en el fstab