Desde hace unos años OVH ofrece entre sus productos servidores VPS a precios asequibles que los hacen interesantes para pequeños proyectos o servidores personales.

Si en algún momento las prestaciones del VPS se quedan cortas para nuestras necesidades, éste se puede mejorar fácilmente dentro de la misma gama a través de la interfaz web de OVH. Algo que puede sorprendernos despues del upgrade es que aunque contemos con más RAM y procesador, el tamaño del disco sigue siendo el mismo a pesar de que correspondería un aumento.

En realidad, el espacio de disco sí ha aumentado, pero la partición no se extiende automáticamente para hacer uso de él. Veamos como hacerlo manualmente.

Un error en la ejecución de los siguientes comandos podría llevar a la pérdida de los datos, por lo que es muy recomendable hacer una copia de seguridad antes de iniciar el proceso.

El primer paso que tenemos que hacer es reiniciar el VPS en modo de rescate. Esto lo podemos hacer desde el panel de OVH activando previamente el modo experto.

Reiniciar VPS en modo rescate

Tras unos minutos nos llegará un correo con la clave de root del modo rescate. Al arrancar en éste modo la huella SSH del servidor cambiará, nos conectamos con los siguientes parámetros para evitar que el cliente lo interprete como un ataque man-in-the-middle.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@vps123456.ovh.net

Una vez en el servidor, listamos las particiones con fdisk -l.

root@rescue-pro:/# fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes
4 heads, 32 sectors/track, 163840 cylinders, total 20971520 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20971519    10484736   83  Linux

Disk /dev/vdb: 21.5 GB, 21474836480 bytes
4 heads, 32 sectors/track, 327680 cylinders, total 41943040 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
Disk identifier: 0x0005bac1

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1   *        2048    20971519    10484736   83  Linux

El disco en /dev/vda es el que alberga el sistema del modo rescate, el que nos interesa es el que está montado sobre /dev/vdb. Apuntamos el sector de inicio de la partición /dev/vdb1 para usarlo más adelante (en este caso es 2048).

Usando el comando fdisk vamos a editar la tabla de particiones.

fdisk /dev/vdb

Eliminamos la partición actual con el comando d.

Command (m for help): d
Selected partition 1

Ahora debemos crear una nueva partición con el comando n. Indicamos que es una partición primaria p y que el número de la partición será 1. Como sector de inicio introducimos el que hemos apuntado anteriormente y el sector final lo dejamos en blanco para que utilice todo el espacio disponible.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41940991, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-41940991, default 41940991): 
Using default value 41940991

Marcarmos la partición como ejecutable con el comando a.

Command (m for help): a
Partition number (1-4): 1

Para persistir los cambios que hemos hecho en la tabla de particiones, usamos el comando w.

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Reiniciamos el VPS.

reboot

Nos conectamos de nuevo al servidor tras el reinicio y comprobamos las particiones de nuevo con fdisk -l.

Disk /dev/vda: 10.7 GB, 10737418240 bytes
4 heads, 32 sectors/track, 163840 cylinders, total 20971520 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20971519    10484736   83  Linux

Disk /dev/vdb: 21.5 GB, 21474836480 bytes
4 heads, 32 sectors/track, 327680 cylinders, total 41943040 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
Disk identifier: 0x0005bac1

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1   *        2048    41943039    20970496   83  Linux

Perfecto, podemos ver como ahora la partición /dev/vdb1 toma todo el espacio disponible en disco. Sin embargo, todavía nos queda un paso, redimensionar el sistema de ficheros para que emplee el nuevo espacio adjudicado. Para ello usamos el comando resize2fs.

resize2fs /dev/vdb1

Para terminar, reiniciamos de nuevo el VPS desde el panel, asegurándonos de que esta vez no entre en modo rescate.

Reiniciar VPS en modo normal

Y esto es todo, ahora podemos disfrutar en nuestro VPS del espacio que le corresponde tras el upgrade.