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.

  1. 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" created

    Así 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.

  2. 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-ubuntu

    Así crearemos un sistema de archivos ext3 en el nuevo volumen lógico, y reservando un 0% de expacio para root.

  3. 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 w

    Con 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).

  4. 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/sdb3

    Tendremos 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.

  5. 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.

Anuncios

2 pensamientos en “Añadir un nuevo disco a una VM Xen en caliente

  1. 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

  2. Definitely, what a fantastic website and informative posts, I definitely will bookmark your blog.All the Best! kebackadekcd

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s