Saltar a contenido

Ampliar el espacio en disco de un appliance virtual

Los appliances virtuales se llenan: las grabaciones, los archivos, las bases de datos y los registros se acumulan en las particiones que los alojan. Esta página amplía una de esas particiones para que utilice todo el espacio disponible en el disco — en un Mediation Controller o en una Edge Gateway.

La operación se realiza normalmente en caliente, sin impacto en la producción.

Una condición, y no es negociable

Los comandos siguientes dan por supuestos la organización de discos y el particionado entregados con el appliance. Si los discos o el particionado de esta máquina virtual se han modificado a mano, no son aplicables: eliminan y vuelven a crear una partición, y lo harían a partir de premisas que ya no son ciertas. En ese caso, póngase en contacto con el soporte de Systancia en lugar de adaptar usted mismo los comandos.

Se tolera un único cambio: el que ya ha realizado este mismo procedimiento. La página está pensada para volver a aplicarse: un appliance ampliado de este modo sigue siendo apto, y cada nueva ampliación del disco virtual se traslada a la partición de la misma manera.

Antes de empezar

Realice estas cuatro etapas en orden. La primera es la que hace recuperable todo lo demás.

1. Haga una copia de seguridad de la máquina virtual

Haga una copia de seguridad de la máquina virtual antes que nada. La ampliación reescribe la tabla de particiones: una copia de seguridad es lo que convierte una operación fallida en una restauración en lugar de en una reinstalación.

2. Amplíe el disco virtual desde el hipervisor

Añada el espacio necesario al disco del appliance desde su hipervisor. Esta etapa por sí sola no cambia nada dentro de la máquina: el sistema operativo sigue viendo el tamaño anterior hasta que se ejecuten los comandos siguientes.

¿La opción está atenuada? Busque una instantánea

Un hipervisor se niega a ampliar el disco de una máquina virtual que conserva una instantánea. Si la opción no está disponible, compruebe si queda alguna y elimínela; amplíe después el disco.

3. Opcionalmente, tome una instantánea

Una vez ampliado el disco, puede tomar una instantánea de la máquina, como vuelta atrás inmediata para los comandos que siguen. Tómela después de la ampliación del disco, nunca antes: una instantánea es precisamente lo que impediría esa ampliación.

4. Aplique la ampliación dentro del appliance

Solo entonces ejecute los comandos de la sección siguiente.

Qué partición ampliar

Los comandos toman un directorio y amplían la partición que lo aloja. Puede indicarse cualquier directorio del sistema, con una excepción.

/boot queda excluido

No apunte a /boot. Los comandos actúan sobre el volumen LVM del appliance, del que /boot queda fuera. El campo siguiente rechaza esa ruta.

En la práctica, dos directorios por appliance crecen más deprisa que el resto — son el motivo habitual para ejecutar este procedimiento:

Appliance Directorio Qué contiene
Mediation Controller /var Los datos del Mediation Controller, entre ellos la base de datos.
Mediation Controller /var/log Los registros del sistema.
Edge Gateway /var/lib/ipdiva/carerecord/archives Los archivos gráficos de las sesiones grabadas.
Edge Gateway /var/log Los registros del sistema.

Indicar un directorio, no una partición

No necesita saber qué partición ni qué volumen lógico aloja qué: los comandos lo deducen del directorio que se les indica. Ejecute df -h en el appliance para ver cuál se está quedando sin espacio.

Ampliar la partición

Abra una sesión SSH en el appliance, como root, y ejecute después los comandos que le correspondan.

Puede personalizar la variable de los comandos siguientes:

Valor personalizado Variable Comentario
TARGET_DIRECTORY Directorio cuya partición debe ampliarse — véase Qué partición ampliar.

O rellene el campo con uno de los tres directorios que se saturan primero:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
directory=TARGET_DIRECTORY

echo 1 > /sys/class/block/sda/device/rescan

start_lvm_partition=`fdisk -l /dev/sda | grep LVM | awk '{print $2}'`
mountpoint=`df $directory | awk 'NR==2 {print $1}'`

echo -e "d\n2\nn\ne\n2\n\n\nn\n$start_lvm_partition\n\nn\nt\n5\n8E\nw" | fdisk /dev/sda

pvresize /dev/sda5
lvresize -l +100%FREE $mountpoint
resize2fs $mountpoint
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
directory=TARGET_DIRECTORY

echo 1 > /sys/class/block/sda/device/rescan

start_last_lvm_partition=`fdisk -l /dev/sda | grep LVM | awk '{print $2}' | sort -nr | head -n1`
last_lvm_partition=`fdisk -l /dev/sda | grep $start_last_lvm_partition | awk '{print $1}'`
mountpoint=`df $directory | awk 'NR==2 {print $1}'`

echo -e "d\n${last_lvm_partition: -1}\nn\np\n${last_lvm_partition: -1}\n$start_last_lvm_partition\n\nn\nt\n${last_lvm_partition: -1}\n8E\nw" | fdisk /dev/sda

pvresize $last_lvm_partition
lvresize -l +100%FREE $mountpoint
resize2fs $mountpoint

Qué hacen los comandos

Encadenan cuatro operaciones: hacer que el núcleo vea el nuevo tamaño del disco sin reiniciar, reescribir la última partición LVM para que llegue hasta el final del disco, entregar ese espacio a LVM y, por último, extender el sistema de archivos sobre él. Las dos variantes solo se diferencian en la organización de particiones de cada appliance — elija la que corresponda a la máquina en la que se encuentra.

Compruebe el espacio libre antes y después

Ejecute df -h sobre el directorio antes y después. La ganancia debe coincidir con el espacio añadido en la etapa 2.

Si el sistema de archivos no ha crecido, no vuelva a ejecutar los comandos de inmediato: la tabla de particiones ya se ha reescrito, y una segunda pasada sobre el mismo tamaño de disco partiría de un estado que ellos no esperan. Comunique el resultado al soporte de Systancia.

Volver a ejecutarlos es legítimo en un caso, que es además el habitual: cuando se ha añadido más espacio al disco virtual. Empiece de nuevo por la etapa 1 — todo el procedimiento vuelve a aplicarse, copia de seguridad incluida.