Backup de la Self-Hosted Engine en Oracle KVM: Importancia y Automatización

¿Qué es la Self-Hosted Engine en Oracle KVM?

La Self-Hosted Engine (SHE) en Oracle KVM es una implementación donde el motor de gestión de Oracle Linux Virtualization Manager (OLVM) se ejecuta como una máquina virtual dentro del mismo entorno que administra. Es un método práctico que elimina la necesidad de un servidor separado para gestionar el hipervisor y las máquinas virtuales.

Esta arquitectura ofrece ventajas como:

  • Reducción de hardware dedicado.

  • Facilidad de gestión centralizada.

  • Recuperación automática ante fallos.

  • Mejor integración con la infraestructura virtual.

¿Por qué realizar backups de la Self-Hosted Engine?

Realizar backups de la Self-Hosted Engine es fundamental para garantizar la disponibilidad y la recuperación rápida del entorno en caso de fallos. Un backup permite:

  • Restaurar el sistema en caso de corrupción o pérdida de datos.

  • Migrar la configuración a otro servidor en caso de desastres.

  • Mantener un historial de configuraciones para auditoría y control de cambios.

Automatizando el Backup con un Script Bash

A continuación, se presenta un script en Bash que automatiza la copia de seguridad de la Self-Hosted Engine. Utiliza engine-backup, la herramienta oficial para realizar backups completos de OLVM.

Explicación del Script

El script está diseñado para ejecutarse periódicamente y realizar las siguientes tareas:

  1. Verificar que el volumen NFS esté montado: he montado un volumen NFS en el servidor de OLVM para realizar el backup. Si el almacenamiento remoto no está disponible, el backup se cancela y se envía una notificación por correo.

  2. Ejecutar el backup con engine-backup: Se guarda un registro del proceso y la salida se captura para su análisis.

  3. Eliminar backups antiguos: Se borran los archivos con más de 7 días para optimizar el almacenamiento.

  4. Enviar un correo con el resultado: Se notifica el éxito o fracaso del backup al administrador.

#!/bin/bash

# Variables
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
BACKUP_DIR="/backup/she_backup"
LOG_FILE="$BACKUP_DIR/backup.$(/bin/date +%Y%m%d%H%M%S).log"
BACKUP_FILE="$BACKUP_DIR/backup.$(/bin/date +%Y%m%d%H%M%S)"
MAIL_TO="xxxxx@xxxxxxx.es"
MAIL_SUBJECT="[KVM] Backup Self-Hosted Engine - Resultado del $(/bin/date +'%Y-%m-%d %H:%M:%S')"

# Función para enviar correos
enviar_correo() {
    local asunto=$1
    local destinatario=$2
    local contenido=$3

    (
        echo "Subject: $asunto"
        echo "To: $destinatario"
        echo "Content-Type: text/plain"
        echo
        echo "$contenido"
    ) | sendmail "$destinatario"
}

# Verificar que el volumen esté montado
if ! mount | grep -q "xxxxx-xxxxx-xxxxxx:/backup"; then
    MAIL_SUBJECT="[KVM] Backup Self-Hosted Engine NOOK - Resultado del $(/bin/date +'%Y-%m-%d %H:%M:%S')"
    enviar_correo "$MAIL_SUBJECT" "$MAIL_TO" "Error: El volumen NFS no está montado. Backup cancelado."
    exit 1
fi

# Realizar el backup y capturar la salida
OUTPUT=$(/usr/bin/engine-backup --scope=all --mode=backup --log="$LOG_FILE" --file="$BACKUP_FILE" 2>&1)

# Verificar si el backup fue OK
if [ $? -eq 0 ]; then
    echo "Backup completado correctamente." >> "$LOG_FILE"
    MAIL_SUBJECT="[KVM] Backup Self-Hosted Engine OK - Resultado del $(/bin/date +'%Y-%m-%d %H:%M:%S')"
else
    echo "Error durante el backup." >> "$LOG_FILE"
    MAIL_SUBJECT="[KVM] Backup Self-Hosted Engine NOOK - Resultado del $(/bin/date +'%Y-%m-%d %H:%M:%S')"
fi

# Borrar backups y logs antiguos (mayores a 7 días)
echo "Eliminando backups antiguos (mayores a 7 días) en $BACKUP_DIR..." >> "$LOG_FILE"
find "$BACKUP_DIR" -name "backup.*" -mtime +7 -exec rm -f {} \; >> "$LOG_FILE" 2>&1

# Enviar solo la salida limpia de engine-backup por correo
enviar_correo "$MAIL_SUBJECT" "$MAIL_TO" "$OUTPUT"

Consideraciones Adicionales

  • Verificación del volumen NFS: Es clave asegurarse de que el almacenamiento remoto esté accesible antes de iniciar el backup.

  • Logs y depuración: Se mantiene un registro detallado del proceso para revisión en caso de fallos.

  • Automatización: Puede ejecutarse como una tarea programada (cron job) para garantizar copias periódicas.

Configuración de un Cron Job

Para automatizar el backup, se puede agregar una tarea en crontab con el siguiente comando:

#backup SHE
0 0 * * * /root/backup.sh >/dev/null 2>&1

Esto ejecutará el script todos los días asegurando backups regulares sin intervención manual.

Conclusión

El backup de la Self-Hosted Engine en Oracle KVM es una tarea crítica para la continuidad operativa del entorno virtualizado.

Con este script, se logra un proceso automatizado, seguro y eficiente, garantizando que siempre exista una copia de seguridad lista para su restauración en caso de necesidad.

0
Subscribe to my newsletter

Read articles from Carla Muñoz López directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Carla Muñoz López
Carla Muñoz López

Mi nombre es Carla y me defino como una apasionada de conocer, compartir ideas, divertirme y aprender todo lo relacionado con Oracle. Alegre y creativa, con un alto grado de autoexigencia, que busca, incluso sin querer, una forma diferente de ver un mismo problema o solución. Defensora del trabajo en equipo en todas las facetas de la vida y de disfrutar todo lo que haces, siempre con humildad. Actualmente cuento con más de 15 años de experiencia como administradora de Oracle, habiendo ocupado previamente posiciones como desarrolladora en la rama de Inteligencia de Negocios. Fue en ese momento que me di cuenta de que no quería centrarme en el desarrollo, sino participar en todas las capas que involucraban los datos, desde el despliegue de la base de datos hasta su explotación final. Siempre estoy dispuesta a ayudar y compartir conocimientos. Creo firmemente que con la tecnología hay que divertirse y no verla como una competencia. La persona con la que tienes que ser el mejor es contigo mismo.