Intro

Estoy migrando mi servidor proxmox al cluster y me he dado cuenta de que el diseño del almacenamiento es mejorable, sobre todo teniendo en cuenta que se trata de una máquina virtual kvm.
El diseño original contenía un disco duro de 200GB donde se incluia el sistema operativo y el almacenamiento (fig. 1).

Fig. 1. El sistema monolítico de instalación/almacenamiento actual

Fig. 1. El sistema monolítico de instalación/almacenamiento actual

 

Esto obliga a transferir los 200GB en caso de querer migrar la máquina virtual a otro servidor de virtualización. Por el contrario, si empleamos la misma estrategia que con otras máquinas virtuales, separar los discos virtuales que albergan el sistema operativo de aquellos previstos para el almacenamiento, la transferencia entre equipos es más rápida.

 

Nuevo diseño

El nuevo diseño tiene un disco duro de 10GB para el proxmox y añadiremos tantos discos duros extra como sea necesario.

Hemos instalado proxmox 4 beta2, pero podemos cambiarlo por la versión estable (3.4 en el momento en que escribo).

Una vez instalado el SO, lo que haremos será crear un nuevo disco virtual y le daremos un total de 50GB (51200MB).

Reiniciamos el proxmox, ya que de otro modo no reconoce el nuevo disco, que hemos creado como virtio y aparece como /dev/vdb al hacer un fdisk -l

Habría que añadir el nuevo disco al servidor proxmox, para lo cual tenemos dos opciones principales:

  1. Crear un volumen vg y añadirlo a proxmox como lvm
  2. Formatearlo como ext4 o xfs y montarlo en un directorio (ej. /home/HDD50_1) y añadirlo al almacenamiento del proxmox como un directorio

Según la bibliografía, la primera opción es la recomendable, así que lo haremos de este modo.

 

Agregar el disco duro como volumen vg

Para agregar el disco duro lo creamos en virt-manager y lo añadimos a la máquina virtual.

Una vez reiniciado el proxmox el disco duro aparece al hacer un fdisk -l:

Disk /dev/vdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Ahora hemos de crear una partición en el mismo, para lo que hacemos:

# fdisk /dev/vdb

Y la salida que obtenemos:

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x4fc97516.

Command (m for help): p
Disk /dev/vdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4fc97516

Command (m for help):

Crearemos la partición como primaria y el tipo sería 8e (Linux VM).

Guardamos la tabla de particiones nueva y salimos de fdisk.

Creamos el volumen físico para poderlo usar con lvm:

# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created

 

Ahora creamos el grupo de volúmenes (vg):

# vgcreate HDD1_50 /dev/vdb1
Volume group "HDD1_50" successfully created

Y vemos que aparece:

# vgs
VG      #PV #LV #SN Attr   VSize  VFree
HDD1_50   1   0   0 wz--n- 50.00g 50.00g
pve       1   3   0 wz--n-  9.87g  1.12g

Ya estamos en condiciones de añadirlo empleando la interfaz web de proxmox.

 

Instalamos como prueba la versión beta 2 del proxmox 4 (kernel 4 y esas cosas). Esta versión ha cambiado el sistema de containers, que pasa de ser openVZ a lxe. Al tratar de emplear el nuevo disco duro añadido para albergar un container lxe, el sistema indica que es imposible emplear almacenamiento lvm para alojar containers lxe, por lo que emplearemos el otro tipo de almacenamiento, el basado en directorio.

 

Agregar el disco duro como directorio

Cambiamos el tipo de partición desde 8e (Linux VM) a 83 (Linux).

Formateamos como xfs (mkfs.xfs /dev/vdb1)

Sacamos la UUID del disco con blkid

Creamos el directorio /home/HDD1_50GB

Modificamos /etc/fstab para que monte automáticamente la UUID obtenida para el disco duro en el directorio /home/HDD1_50GB con los parámetros: default, xfs, 0 2

Añadimos el directorio en Storage (fig. 2)

Fig. 2

Fig. 2

Ya lo podemos utilizar.