Recuperación tras desastre con backuppc e Hyper-V

backuppcTras la actualización de gitlab-ce en la máquina virtual que mantiene mis core-services* y un reinicio para actualizar el kernel, la máquina ha decidido no volver a la vida y quedarse bloqueada en la carga inicial de servicios.

¿Qué hacer para recuperar los servicios y los últimos estados de partes relevantes de mi infraestructura si el servidor de backups es parte de lo que ha muerto?

*core-services: vm – 1 core – 20gb hdd – 1gb ram.

  • mediawiki
  • git server
  • backuppc
  • webdav
  • apache
  • mysql
  • openldap
  • ansible master

Vale,

don’t panic

¿Qué es lo importante?

  • La base de datos de mediawiki.
    Es en lo que más he estado trabajando en las últimas semanas, documentar siempre me ha parecido difícil -necesito estar inspirado para hacer documentación de calidad y completa. Perder lo ya documentado sería un drama.
  • Las backups (aunque -esta vez- no sean relevantes). Incluyen:
    • /etc
    • /var/www
    • Git repos

¿Cómo recuperar el desastre?

Como no puedo arrancar la máquina, voy a intentar montar el disco, salvar los archivos que pueda restaurar, restaurarlos y ver como se comporta el equipo y el resto de servicios.

  1. Obtener el id del disco vhd(x) de la maquina virtual en Hyper-V.
    • Esta es la parte más fácil.
      En la mmc de administración de hyper-v, selecciona la máquina virtual > configuración > verifica la ruta del disco duro y recuerda los últimos dígitos del (a)vdx.
  2. Montar el disco en windows.dr-hyperv-backuppc-2
    • Apaga la máquina virtual (no es explicitamente necesario pero sí recomendable).
    • Arranca diskmgmt.msc (mmc de administración de discos). dr-hyperv-backuppc-3
      Selecciona una unidad de disco > Exponer VHD > Selecciona el disco a montar.Si el disco es un diferencial, selecciona todos los archivos y se montarán todas las unidades necesarias automáticamente.
  3. Leer y salvar los datos.
    • De las opciones que encontré en Google me decidí a utilizar Diskinternals Linux Reader, un freeware que hace lo que necesito, lee las particiones y permite salvar los archivos que seleccione.
  4. Restaurar la ultima snapshot disponible en Hyper-V.
  5. Actualizar, restaurar datos y verificar servicios.

Cosas interesantes

  • Mediawiki : restaurar los archivos en /var/lib/mysql/wiki-db con MySQL parado, verificar permisos, reiniciar, sorpresa al ver que funciona sin mayor complicación.
  • backuppc : tener /var/lib/backuppc en su propio disco hizo que recuperarlo solo consistiese en reiniciar el servicio. La detección de copias y restauración de archivos funcionó sin más problemas.
    • Restaurar las configs fue cosa de navegar entre las backups y seleccionar los archivos oportunos.

Media hora gracias a tener el sistema de archivos de backuppc en otra ubicación, a que la trampa con MySQL funcionó y a que el tamaño de lo perdido era insignificante en megas.

Recuperar datos de un vhd(x) es bastante sencillo si la partición lvm no está encriptada, si lo está, montar los discos con un live-cd y cryptsetup sería la manera.

TO-DO:

·n·

Deja un comentario