Cómo aumentar o ajustar el espacio de disco con Virtualmin

      Antes o después hay que hacerlo

      Para los que no sabemos, como yo, uno de los problemas principales en las instalaciones de máquinas virtuales Linux para servidores web es cómo gestionar y disponer de espacio de almacenamiento en disco.

      Es barato y muy sencillo de comprar, pero conseguir que el sistema lo use apropiadamente no es sencillo ni intutitivo. El objetivo es gestionar estas operaciones a través del panel de control Virtualmin y la consola de órdenes con PuTTy para que sean razonablemente sencillas.

      la partición raiz se queda sin sitio

      De forma predeterminada, Virtualmin crea los servidores virtuales para los dominios y sitios web dentro del directorio /home de nuestra partición raíz de Linux (/.). Aunque no es una ubicación obligatoria e inamovible, es lo recomendable por razones de seguridad de PHP y Apache (especialmente por suexec) —por eso, se desaconseja ubicar los dominios web controlados por Virtualmin fuera del directorio /home

      Las instalaciones Ubuntu virtuales como las de gandi.net proporcionan un disco de sistema inicial de 3Gb. Podemos aumentarlo: Excelente, pero si vamos a la partición raiz veremos que tiene un tamaño reducido (3GB) y que el resto del espacio disponible —ese disco de datos que hemos creado al principio— no está en uso. Y el espacio se agota rápido.

      La consecuencia de de todo esto es que nos quedaremos sin sitio de almacenamiento seguro. Y va a ocurrir con cierta rapidez, ya que los sistemas Linux tienden a crecer como niños alimentados con pan y chocolate (paquetes de actualizaciones pasadas, registros de sistema que crecen, nuevos registros en bases de datos…) —cómo controlar el crecimiento desmesurado y absurdo es un tema aparte.

      Los síntomas

      Es muy posible que los primeros fallos no los notaremos porque tengamos un mensaje de que falte sitio, sino porque un día, de repente, el servidor MySQL se quedará parado y veremos como nuestros sitios Drupal están caídos con el mensaje de "Sitio desconectado " (site offline). Si intentamos rearrancar el servidor de bases de datos MySQ, será imposible.

      Redimensionar la partición raiz no es banal y podemos destrozar el sistema, por lo que tenemos la aparente contradicción de estar sin espacio, tener discos vacíos y no querer sacar nada a otro disco para aliviar el problema.

      La solución: Enganchar otras particiones como subcarpetas

      Advierto antes que nada, que hablo siempre de un servidor virtual creado en una máquina Linux Ubuntu en la empresa gandi.net. Eso puede que no suponga diferencia alguna en muchos casos, pero lo aviso por los pequeños detalles que pudieran representar algun problema.

      Lo que vamos a hacer es usar el disco de datos que aun no hemos no utilizado como partición nueva y la asignaremos a una carpeta llamada data dentro de /home. Luego cambiaremos las preferencias de Virtualmin para que siempre cree los servidores virtuales en esa nueva carpeta dentro de /home —que en realidad es un disco.

      Este proceso de asignación de espacio se puede repetir hasta con nuevos discos hasta donde nuestra sensatez y necesidades nos lo indiquen. De esa forma tendremos sitio y nuestros servidores web estarán dentro de /home. No tenemos porqué sacar nada fuera de la partición raíz ni de /home. Veamos cómo se hace, paso a paso:

      Identificar los discos disponibles en nuestro sistema

      En una virtualización Xen con Linux, Los discos virtuales se denominan xvda (xvda1 para la partición principal, xvda2 para la memoria de intercambio o swap), xvdb, xdvc y sucesivos…

      Si queremos saber cómo se llaman nuestras unidades y cuáles son, vamos a la consola de órdenes y escribimos la orden mount, que nos permite saber qué unidades montables (es decir: discos) tenemos:

      Aquí, podemos ver que este sistema tiene montadas las unidades xdva y xdvb. Una vez identificada, procedemos a desmontarla para poder seguir la operación:

      sudo umount /dev/xvdb

      Y continuamos...

      A través del apartado de disco y sistemas de archivos de red (disk and network filesystems) del módulo de sistema (system) de Webmin, podemos ver que el disco xdvb está disponible como Xen Device B en la partición /srv con la etiqueta aaron_data, que le dimos al crearlo y que está casi vacío.

      Montar la partición con Webmin

      En ese mismo apartado de Webmin, vamos al botón de agregar unidad o punto de montaje (Add mount) y elegimos "Linux native filesystem (ext3)", que es el tipo de partición nativo de Linux (y en el que está nuestro disco de datos).

      En el cuadro de diálogo siguiente, elegimos dónde se debe montar la nueva unidad (mountes as). Si el directorio no existe, se creará automáticamente. También indicamos qué unidad se debe montar a través de la opción de otro dispositivo (other device) y allí nos vamos, a través de la pantalla que aparece, a /dev/xvdb, que es el disco vacío xdvb, que hemos identificado antes. Ahora, pulsamos "crear" (create) y la asignación del disco estará hecha.

      Cambiar la ubicación predeterminada de los servidores

      Ahota cambiaremos las preferencias de Virtualmin para que siempre cree los servidores virtuales de cada dominio en esa nueva carpeta /data dentro de /home.

      En Webmin, vamos al apartado de sistema de usuarios y grupos (Users and groups) y, en la esquina superior izquierda, pulsamos el enlace de configuración del módulo (module config. Allí, vamos a las opciones del directorio home (home directory options) y modificamos la unicación automática del directorio home de los usuarios (automatic home directory base) de /home a /home/data/

      En el apartado de servidores (servers) de Webmin para los servidores virtuales de Virtualmin (Virtualmin Virtual Servers (GPL)), vamos a la configuración del módulo (module config.) y modificamos la opción de valores preeterminados para dominios nuevos (Default for new domains), poniendo en el subdirectorio home el valor "de la plantilla" (from template) $USER.

      A partir de ahora, los dominios nuevos se crearán en esa ubicación y tendremos el disco de datos disponible para ubicarlos ahí. La estructura de carpetas resultante será similar a la que se puede apreciar más arriba.

      Y el uso de espacios de almacenamiento se parecerá al que se muestra en esta pantalla de Webmin.

      Un posible problema de ausencia de bibliotecas de PHP

      Puede ocurrir que aunque hayamos hecho todo lo anterior y todo esté aparentemente dispuesto, el servidor no funcione. La razón es la ausencia de unas bibliotecas de PHP, concretamente los paquetes relacionados con GD, bases de datos y MySQL. la solución es sencilla: Instalarlas a través de la consóla de órdenes con PuTTy:

      apt-get install php5-gd php-db php5-mysql

      y reiniciar Apache:

      sudo /etc/init.d/apache2 restart

      Añadir nuevo comentario