Cómo redimensionar discos duros de Servidores Cloud en Linux sin reiniciar
Dentro de la administración de servidores en la nube, uno de los desafíos más comunes que enfrentan los administradores de sistemas es la necesidad de redimensionar discos duros en entornos Linux, específicamente en Ubuntu y CentOS, sin tener que reiniciar el sistema. Aunque también existe la opción de utilizar Gparted o que necesites saber cómo redimensionar discos duros en Windows.
Antes de seguir avanzando y meternos con el código, te recordamos que el primer paso es modificar la capacidad del almacenamiento del Servidor desde el Panel de Control de Cloudbuilder Next.
A continuación, te explicamos cómo conseguir que el sistema operativo Linux interprete el nuevo tamaño asignado al disco duro sin reiniciar los servidores. Esta opción es más compleja ya que hay que ejecutar una serie de comandos, conectados por SSH al servidor en cuestión, así que vamos a describir todo este proceso por medio de una serie de comandos en las distribuciones Ubuntu y CentOS. Sin embargo, es importante darse cuenta que en los casos particulares de cada máquina pueden cambiar nombres de discos y volúmenes.
¿Por qué redimensionar un disco duro en Linux?
Antes de sumergirnos en los detalles técnicos, es crucial entender por qué alguien podría necesitar redimensionar discos duros en servidores Linux. A medida que los proyectos evolucionan y las necesidades de almacenamiento crecen, es común que los Servidores Cloud requieran una mayor capacidad de almacenamiento. La capacidad de redimensionar discos sin reiniciar permite una escalabilidad sin interrupciones, asegurando la continuidad del servicio.
Cómo redimensionar discos duros en Ubuntu
Vamos a comenzar viendo la secuencia de comandos de consola que nos permitirá reorganizar las particiones en una distribución Ubuntu.
Paso 1. Comprobar el identificador del disco
Comprobamos el identificador del disco usando el comando:
ls /sys/class/scsi_disk/
Será algo como 2:0:0:0, 3:0:0:0, 4:0:0:0. La salida la podemos ver en la siguiente imagen.
Paso 2. Escanear el disco
Hacemos un escaneo del disco, usando ese identificador:
echo 1 > /sys/class/scsi_device/4:0:0:0/device/rescan
En el comando anterior, ten cuenta que probablemente necesitarás cambiar el identificador 4:0:0:0 por el que te haya aparecido al hacer ls /sys/class/scsi_disk/.
Paso 3. Análisis de comprobación
Ahora vamos a hacer un análisis para comprobar discos, particiones y tamaños. Esto se consigue con fdisk.
fdisk -l
Deberíamos observar que el tamaño de los discos ya se han actualizado y qué particiones tenemos creadas en este momento, junto con sus dimensiones.
Paso 4. Crear partición
Ahora vamos a crear una partición con el espacio no particionado que se ha generado en el disco como consecuencia de la redimensión. Para ello, lanzamos el comando:
fdisk /dev/sda
Este comando nos abre una interfaz de menú capaz de recibir varias instrucciones para administrar las particiones. Tenemos que ir introduciendo uno a uno las distintas opciones de menú por medio de su inicial. Serán las siguientes:
- n # Nueva partición.
- p # Primaria.
- 3 # Número de la partición.
- Enter # Primer sector, por defecto el primero libre.
- Enter # Último sector, por defecto el último del disco.
- w # Escribir cambios.
Una vez creada esta partición, tenemos que marcarla como tipo Linux LVM.
Ahora tenemos que volver a lanzar el menú anterior con el comando:
fdisk /dev/sda
Y vamos usando las siguientes opciones de menú:
- t #Cambiar tipo de partición.
- 3 # Número de partición.
- 8e # Tipo LVM.
- w # Escribir cambios.
Paso 5. Escanear las particiones
El siguiente paso consiste en escanear las particiones de disco para detectar los cambios.
apt update -yy apt install -yy parted partprobe /dev/sda
Ahora usaremos LVM, primero creando el volumen físico.
pvcreate /dev/sda3
Luego añadimos este volumen al grupo de volúmenes, en este caso se llama vg00.
vgextend vg00 /dev/sda3
Redimensionamos el volumen lógico, vg00-lv01 en este caso, para ocupar todo el espacio libre.
lvextend -l +100%FREE /dev/mapper/vg00-lv01
Acabamos redimensionando el sistema de ficheros del volumen lógico.
resize2fs /dev/mapper/vg00-lv01
Esta secuencia de comandos se puede ver resumida en la siguiente imagen:
Paso 6. Comprobar las particiones
Solo nos queda comprobar el estado de las particiones del disco, para ver cómo ha quedado nuestra configuración. Podemos hacerlo mediante el comando que ya conocemos:
fdisk -l
Cómo redimensionar particiones en CentOS
Ahora vamos a repetir toda esta secuencia de comandos sobre una distribución CentOS. El proceso es muy similar al que hemos señalado para Ubuntu, con algunas pequeñas modificaciones. Lo más importante es fijarse en la salida de los comandos para saber cuáles son los discos que tenemos actualmente, sus nombres, particiones, etc., de modo que podamos personalizar las instrucciones a nuestro caso particular.
Como el proceso es prácticamente el mismo que para Ubuntu, vamos a resumir los pasos haciendo mayor hincapié en las diferencias que nos podemos encontrar entre ambos sistemas.
Paso 1. Comprobar el identificador del disco
El primer paso es comprobar el identificador del disco.
ls /sys/class/scsi_disk/
Como puedes ver en la imagen, en nuestro caso es 2:0:0:0.
Paso 2. Escanear el disco
Hacemos un escaneo del disco, usando ese identificador:
echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan
Paso 3. Análisis de comprobación
Ejecutamos el análisis de particiones, del mismo modo que en Ubuntu, con fdisk.
fdisk -l
En la parte de arriba vemos que los discos ya tienen el tamaño que hemos asignado en el panel de control de Cloud Builder. Sin embargo, la partición principal todavía tiene el tamaño antiguo.
Paso 4. Crear partición
Creamos una partición con el espacio no particionado:
fdisk /dev/sda
Todo el proceso de creación de estas particiones es el mismo que el explicado más arriba para Ubuntu. En resumen, los comandos que se necesita ir indicando son los siguientes:
- n # Nueva partición.
- p # Primaria.
- 3 # Número de la partición.
- Enter # Primer sector, por defecto el primero libre.
- Enter # Último sector, por defecto el último del disco.
- w # Escribir cambios.
Ahora debemos lanzar de nuevo este proceso para marcar la partición como tipo Linux LVM.
fdisk /dev/sda
Introducimos las siguientes opciones de menú:
- t # Cambiar tipo de partición.
- 3 # Número de partición.
- 8e # Tipo LVM.
- w # Escribir cambios.
Paso 5. Escanear las particiones
Para el paso de escanear las particiones de disco, con objetivo de detectar los cambios, CentOS ya viene con el programa Parted instalado, así que simplemente tenemos que hacer lo siguiente:
partprobe /dev/sda
Recuerda que, si este comando no está disponible, probablemente lo tengas que instalar usando Yum: yum install parted.
Ahora usaremos LVM, primero creando el volumen físico.
pvcreate /dev/sda3
Ahora añadimos este volumen al grupo de volúmenes. Para este caso te tienes que fijar especialmente en el nombre del volumen, que pudimos ver con fdisk -l. En nuestra máquina se llama centos, tal y como aparece marcado en la siguiente imagen.Entonces, escribimos:
vgextend centos /dev/sda3
Estamos terminando. Pero antes debemos redimensionar el volumen lógico, centos-root en este caso, para ocupar todo el espacio libre.
lvextend -l +100%FREE /dev/mapper/centos-root
Redimensionamos el volumen lógico, centos-root en este caso, para ocupar el espacio libre.
xfs_growfs /dev/mapper/centos-root
Paso 6. Comprobar las particiones
Terminado el proceso, podemos comprobar el estado de las particiones del disco usando de nuevo el comando fdisk.
fdisk -l
El resultado que encontraremos será similar al de la imagen siguiente, donde se puede comprobar que la partición principal tiene el tamaño del disco, una vez agregado el nuevo espacio asignado.
Prácticas de seguridad al redimensionar discos duros en Linux
La seguridad es un componente crítico en cualquier proceso de administración de servidores en la nube, y redimensionar discos duros no es la excepción. Aquí te presentamos una serie de prácticas esenciales que debes seguir para garantizar la integridad de tus datos y la estabilidad de tu infraestructura mientras llevas a cabo esta tarea.
- Realizar copias de seguridad. Antes de embarcarte en el proceso de redimensionamiento, asegúrate de realizar copias de seguridad de tus datos. Esto actúa como un salvavidas en caso de cualquier eventualidad durante el proceso. Utiliza siempre herramientas confiables y un almacenamiento seguro para tus copias de seguridad.
- Verificar la integridad del sistema de archivos. Antes y después de redimensionar discos, realiza una verificación de la integridad del sistema de archivos. Utiliza herramientas como fsck en Linux para identificar y corregir posibles errores en el sistema de archivos. Esta práctica es fundamental para prevenir problemas de corrupción de datos.
- Actualizar el sistema. Mantén tu sistema operativo y todas las aplicaciones relevantes actualizadas. Las actualizaciones periódicas no solo mejoran el rendimiento, sino que también abordan posibles vulnerabilidades de seguridad. Antes de iniciar el proceso de redimensionamiento, asegúrate de tener la última versión de las herramientas necesarias.
- Restricciones de acceso. Antes y durante el redimensionamiento, implementa restricciones de acceso adecuadas. Ajusta los permisos de los archivos y directorios para limitar el acceso no autorizado. Además, considera la posibilidad de restringir el acceso al servidor durante el proceso de redimensionamiento para evitar interferencias externas.
Conclusiones sobre redimensionar discos duros en Linux
A modo resumen, la capacidad de redimensionar discos duros sin reinicios es esencial para adaptarse a las crecientes demandas de almacenamiento sin afectar a la disponibilidad del servicio. La flexibilidad proporcionada por este proceso nos permite una escalabilidad dinámica y sin interrupciones, aunque recuerda siempre seguir las mejores prácticas de seguridad o realizar pruebas en entornos de desarrollo antes de implementar los cambios en producción.
Más allá de la gestión de discos, la optimización de tu infraestructura en la nube se conecta directamente con la eficiencia de tu presencia online. En un mundo donde la velocidad y la disponibilidad son imprescindibles, contar con un servicio sólido de dominios y hosting web es la clave para asegurar una experiencia sin contratiempos para tus usuarios. No olvides que una infraestructura bien optimizada contribuye directamente a la velocidad y confiabilidad de tu página web.