Skip to content

Respaldos

En esta página te mostramos cómo tomar copias de respaldo de los tus volúmenes utilizando la línea de comandos (CLI).

Crear respaldos

Para crear un nuevo respaldo de tu volumen, seguí estos pasos:

  1. Accedé al CLI (consultá la guía).
  2. Ejecutá el comando de creación
    openstack volume backup create \
    --force \
    --name "<nombre opcional>" \
    --description "<descripción opcional>" \
    <ID del volumen a respaldar>
    

    Notar que el parámetro --force solo es necesario al respaldar volúmenes en uso (es decir, con status=in-use)

  3. Confirmá la creación
    openstack volume backup list
    
    Aparecerá el nuevo respaldo (volume backup) en la lista con su ID y nombre.

Eliminar respaldos

Para eliminar los respaldos creados, seguí estos pasos:

  1. Accedé al CLI (consultá la guía).
  2. Obtené el ID o el nombre de los respaldos que deseás eliminar:
    openstack volume backup list
    
  3. Elimina cada respaldo indicando su ID o nombre:
    openstack volume backup delete <ID o nombre del respaldo>
    
  4. Verificá que se hayan eliminado:
    openstack volume backup list
    
    Los respaldos borrados ya no aparecerán en la lista.

Automatizar creación y rotación de respaldos

Cuando de respaldos se trata, típicamente deseamos crearlos y rotarlos de forma automática y periódica de acuerdo a una política.

Para implementar este caso de uso en tu proyecto de Netuy Public Cloud puedes servirte de las API´s públicas de la nube.

Una de las formas más sencillas de automatizar la integración con ellas es confeccionar un script que secuencie órdenes de CLI y agendar su ejecución como tarea programada en un sistema que oficie como controlador.

A modo de ejemplo, en un sistema Linux puedes emplear un script bash como este

#!/bin/bash

# Constante: Cantidad de días que se conservarán las copias de respaldo
DIAS_DE_RETENCION=7

# Constante: ID de los volúmenes que se respaldarán
LISTA_VOLUMENES_A_RESPALDAR="
    AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE
    LLLLLLLL-MMMM-NNNN-OOOO-PPPPPPPPPPPP
"

### Determinar la lista de respaldos preexistentes
lista_respaldos_preexistentes=$(openstack volume backup list -c ID -f value)

### Crear un nuevo respaldo de cada volumen indicado en constante LISTA_VOLUMENES_A_RESPALDAR
for volumen in $LISTA_VOLUMENES_A_RESPALDAR
do
    echo "$(date +%F_%T) Creando copia de respaldo de volumen ID=$volumen"
    openstack volume backup create --force \
    --name "Respaldo automático $(date "+%F %T") $(openstack volume show $volumen -c name -f value)" \
    $volumen > /dev/null
done

### Determinar la fecha de retención en función de lo indicado en constante DIAS_DE_RETENCION
fecha_de_retencion=$(date -d "-$DIAS_DE_RETENCION days" +%s)

### Purgar los respaldos que ya superaron la fecha retención establecida
for respaldo in $lista_respaldos_preexistentes
do
    fecha_de_creado=$(date -d "$(openstack volume backup show $respaldo -c created_at -f value)" --utc +%s)

    if [ $fecha_de_creado -lt $fecha_de_retencion ]; then
        # Elimina el respaldo si es anterior a la fecha de retención
        echo "$(date +%F_%T) Eliminando copia de respaldo ID=$respaldo"
        openstack volume backup delete $respaldo
    fi
done

y programar su ejecución todos los días a las 01:00am mediante un cron job

0 1 * * * bash /ruta/al/script.sh

Como resultado, cada vez que se ejecute el script se creará una nueva copia de respaldo de los volúmenes cuyos ID listes en la constante LISTA_VOLUMENES_A_RESPALDAR.

Además, cualquier copia de respaldo que exceda la antigüedad de días indicada en la constante DIAS_DE_RETENCION será eliminada.

Ten presente que este script pretende ser un ejemplo sencillo. Puedes tomarlo como punto de partida para sumar funcionalidades de tu interés como logging, control de status, rotación basada en múltiples criterios, etc.