Tabla de Contenidos

Recuperación de desastres

Introducción

En el mundo de la tecnología, los desastres pueden ocurrir en cualquier momento, ya sea debido a un fallo en el hardware, un error humano o un ataque cibernético. Cuando se trata de servidores, la recuperación de desastres es crucial para minimizar el tiempo de inactividad y garantizar la continuidad del negocio. En este artículo, exploraremos las diferentes estrategias y técnicas para recuperar un servidor después de un desastre, desde la recuperación de GRUB hasta la reinstalación manual y otras ideas útiles.

Generalidades

Antes de profundizar en las técnicas de recuperación, es importante entender algunos conceptos básicos. Un desastre en un servidor puede ser causado por una variedad de factores, incluyendo:

En cualquier caso, la clave para una recuperación exitosa es tener un plan de emergencia y conocer las herramientas y técnicas necesarias para restaurar el sistema a su estado original.

Ante un desastre, lo más importante será prepararse para el trabajo, entonces:

Es imprescindible tener a mano alguna distribución de rescate en pendrive, como System Rescue CD o alguna otra. También es útil considerar tener una versión de esa distro más vieja, para el caso de hardware más antiguo. Algunas distribuciones Live también pueden servir en caso de no disponer otra cosa.

Recuperación de GRUB

GRUB (Grand Unified Bootloader) es el cargador de arranque que permite al sistema operativo iniciarse. Si GRUB se daña o se elimina, el sistema no podrá arrancar. Para recuperar GRUB, se pueden seguir los siguientes pasos:

grub-install -root-directory=/mnt/raiz /dev/sda

Bibliografía

Jaula chroot

Una jaula chroot es una herramienta que permite crear un entorno de ejecución aislado para un sistema operativo. Esto puede ser útil para recuperar un sistema que no puede arrancar normalmente. Para crear una jaula chroot, se pueden seguir los siguientes pasos:

Comandos para crear una jaula chroot:

mount /dev/sda1 /mnt/raiz
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

Finalmente, ejecutar chroot:

chroot /mnt/raiz /bin/bash

Chequeo de discos

Los discos duros pueden fallar en cualquier momento, por lo que es importante realizar chequeos regulares para detectar problemas potenciales. Para realizar un chequeo de discos, se pueden utilizar herramientas como fsck o chkdsk. Estas herramientas pueden detectar y reparar errores en el sistema de archivos y en la estructura del disco.

Ejemplos

Chequeo básico:

fsck /dev/sdb1

Forzar el chequeo del FS:

fsck -fv /dev/sdb1

Bibliografía

Copiado de discos dañados

Si un disco duro se daña, es importante copiar los datos importantes lo antes posible para evitar la pérdida de información. Para copiar un disco dañado, se pueden utilizar herramientas como dd o ddrescue. Estas herramientas pueden copiar los datos del disco dañado a un disco nuevo o a un archivo de imagen.

Ejemplos

Copiar un disco en otro, recuperando bad sectors si es posible:

ddrescue -fv /dev/sda /dev/sdc

Copiar una imagen de disco completo a un disco físico:

ddrescue -fv /mnt/imagenes/imagen.img /dev/sdc

Reubicación y cambio de particiones

Si un sistema operativo se instala en una partición que se ha vuelto demasiado pequeña, puede ser necesario reubicar el sistema a una partición más grande. Para reubicar un sistema, se pueden seguir los siguientes pasos:

RAID por software

Las unidades RAID armadas con mdadm son excelentes, tienen una enorme resiliencia a fallas, y permiten hacer magia de manera relativamente fácil. Pero a veces puede ser necesario resolver temas, por ejemplo ante falla de un disco.

Bibliografía

Reinstalación manual

En algunos casos, puede ser necesario reinstalar el sistema operativo desde cero. Para reinstalar un sistema manualmente, se pueden seguir los siguientes pasos:

Otras ideas para resolver emergencias

Además de las técnicas mencionadas anteriormente, hay otras ideas que pueden ser útiles para resolver emergencias en servidores:

Ejemplos

Copiado de un disco desde un equipo remoto al disco local:

ssh usuario@remoto "dd if=/dev/sda" | dd of=/dev/sdb status=progress

Copiado de un disco desde un equipo remoto a una imagen en un directorio local:

ssh usuario@remoto "dd if=/dev/sda" | dd of=/mnt/temp/remoto-sda.img status=progress

Copiado de un sistema de archivos local a un servidor remoto:

rsync -av --progress /mnt/disco/ usuario@remoto:/mnt/backup

Bibliografía

Conclusión

La recuperación de desastres en servidores requiere un plan de emergencia y conocimientos de las herramientas y técnicas necesarias para restaurar el sistema a su estado original. Desde la recuperación de GRUB hasta la reinstalación manual y otras ideas innovadoras, hay muchas formas de abordar un desastre en un servidor. Es importante estar preparado y tener un plan de emergencia para minimizar el tiempo de inactividad y garantizar la continuidad del negocio.