anexo seguridad tic-centrorespaldo
DESCRIPTION
Alternativas sencillas de copia de seguridad con bacula, rsync o duplicityTRANSCRIPT
Gestión de la Continuidad enGestión de la Continuidad en la Junta de Andalucíala Junta de Andalucía
Anexo: alternativasAnexo: alternativas
• IntroducciónIntroducción
• Bacula vs otras herramientasBacula vs otras herramientas
• RsyncRsync
• duplicityduplicity
Introdución
• Situación actual– Presupuestos muy reducidos
– Tecnología heterogénea
– Elevada carga de trabajo del equipo técnico
– Elevada rotación de personal
– Elevado consumo de disco de nuestras aplicaciones
– Necesidad de respaldo en caliente de nuestras Bases de datos, mayoritariamente, Oracle
Introducción
• Alternativas– Backups tradicionales a cinta u otros medios
– Contratación de los servicios del centro de respaldo (opción deseable)
– Adquirir herramientas de backup de terceros– Opción “háztelo-tú-mismo”
• IntroducciónIntroducción
• Bacula vs otras herrramientasBacula vs otras herrramientas
• RsyncRsync
• duplicityduplicity
Introducción
• El recorrido que vamos a hacer incluye estas aproximaciones:– Backups tradicionales:
• visión de bacula
• Servicio de recogida de cintas CdR
– Adquirir herramientas de terceros• A evaluar dependiendo del entorno.
• Estrategia poco deseable: mejor el enfoque a servicio o a software libre (más estandarizado)
– Opcíon háztelo tú mismo• Rsync
• duplicity
Bacula vs otras herramientas
• Bacula:– Sistema de backup orientado a la red
– Open Source
– Versión actual: 5.2.6 (22/Feb/2012)
– Admite diferentes medios, incluyendo disco y cintas
– Comparable a Legato Networker. ARCserveIT, Arkeia, o PerfectBackup+
– Idóneo para backups de clientes, no sólo servidores
– Disponibles diferentes consolas gráficas
Bacula vs otras herramientas
• Principales componentes de bacula– Bacula Director
– Bacula Console– Bacula File – Bacula Storage (almacenamiento)– Bacula catalog– Bacula Monitor (monitorización de servicios)
Bacula vs otras herramientas
• Bacula Director– Bacula Director es el programa que supervisa
todo el backup, restore, vrificaciónes y operaciones de archivado.
– El administrador de sistema usa Bacula Director para planificar y/o recuperar ficheros.
– Bacula Director se ejecuta como un daemon (o servicio) en background.
Bacula vs otras herramientas
• Bacula Console– Bacula Console es elprograma que permite al
administrador comunicarse con Bacula Director para darle órdenes.
– Versiones: texto, QT y wxWindows
Bacula vs otras herramientas
• Bacula File– Bacula File service (también llamado Bacula
Client) es el software que se instala en la máquina a ser respaldada.
– Versiones Unix/Windows
Bacula vs otras herramientas
• Bacula Storage– Bacula Storage está formado por los
programas que efectúan el almacenador y recuperación de los datos y atributos de ficheros hacia el mdio físico de backup o volúmenes.
– En otras palabras, es por ejemplo el responsable de leer y escribir en las cintas.
Bacula vs otras herramientas
• Bacula Catalog– Compuesto por los programas responsables
de mantener los índices y bases de datos de volúmenes de todos los ficheros respaldados.
– Soporta MySQL, PostgreSQL o SQLite (oracle no)
Bacula vs otras herramientas
• Bacula Monitor– Bacula Monitor esel programa que permite al
administrador comrprobar el estado de los componentes Bacula Director, Bacula File y Bacula Storage.
– Versión GTK+ disponible.
Componentes bacula
Interacciones entre componentes bacula
• IntroducciónIntroducción
• Bacula vs otras herramientasBacula vs otras herramientas
• RsyncRsync
• duplicityduplicity
rsync
• ¿Qué es rsync?– Programa para sincronizar dos árboles de
directorio.– Puede funcionar a través de ssh para
garantizar privacidad.– Si un fichero a transmitir ya existe en el host
destino, no es transmitido.• Si existe pero es diferente, sólo se transmiten las
partes que son diferentes.
Rsync: ejemplomkdir /tmp/backup
rsync --archive --one-file-system --hard-links \ --human-readable --inplace --numeric-ids --delete \ --delete-excluded \ --human-readable \ --stats \ --progress \ /home/jcrubio/Dropbox /tmp/backup/backup.full
rsync --archive --one-file-system --hard-links \ --human-readable --inplace --numeric-ids --delete \ --delete-excluded \ --human-readable \ --stats \ --progress \ --link-dest=/tmp/backup/backup.full \ /home/jcrubio/Escritorio /tmp/backup/backup.incremental
Rsync: ejemplo
• Ejercicio:– Creamos un full y un incremental
– Creamos un fichero con cat /dev/zero en carpeta Dropbox/temp
– Comprobamos lo que tarda en transmitir.
– Modificamos el archivo y comprobamos que tarda menos en llevarlo.
• Conclusión: idóneo para los backups de usuarios, donde cada uno se puede recuperar los ficheros perdidos.
Rsync: parámetros utilizados
• --archive: obliga a reservar permisos, propietarios, y hora.
• --one-file-system: NO entra de forma recursiva en otros file systems.
• --hard-links:Mantiene hard links del servidor que están siendo respaldados.
• --numeric-ids: Impide a rsync el intento de transformar UID <> userid o GID <> groupid.
• IntroducciónIntroducción
• Bacula vs otras herramientasBacula vs otras herramientas
• rsyncrsync
• DuplicityDuplicity
duplicity
• Duplicity: – Es una suite software que proporciona backup
remoto sencillo, encriptado, firmado digitalmente y versionado.
– Permite backups full e incrementales
– Usa GnuPG, librsync, tar y rdiff.
– Para transmitir datos, puede usar SSH/SCP, ficheros locales, rsync, FTP, Amazon S3, webdav...
– Funciona en Unix/Linux y windows con cygwin
duplicity
• Ejemplo1:– duplicity –no-encryption \ Escritorio/ \ file:///tmp/backup/pruebadup
– La primera vez, lanza un backup full, las demás incremental.
– No cifra la copia con GPG– Guarda la copia en sistema de ficheros local– Bastante optimizado en espacio– Al menos un parámetro debe ser URL
duplicity
• Ejemplo 2:– duplicity Escritorio/ \
ftp://[email protected]/pruebadup
– La primera vez, lanza un backup full, las demás incremental.
– **SÍ** cifra la copia con GPG– Guarda la copia en remoto (FTP)– Al menos un parámetro debe ser URL, en
este caso, recurso FTP.
duplicity
• duplicity full /home/jcrubio/Escritorio \
scp://jcrubio@mi_servidor/mi_directorio
• Fuerza un full backup y lo envía por SCP• duplicity scp://[email protected]/pruebadup \
/home/jcrubio/Escritorio
• Restaura TODO tal y como estaba originalmente.
duplicity
• duplicity -t 3D --file-to-restore ceritos \ file:///tmp/backup/pruebadup \ /home/jcrubio/Escritorio/ceritos --force
• Restaura UN ÚNICO FICHERO de la copia en la ubicación proporcionada, tomando de la copia la versión de hace tres días entre las que haya.
duplicity
• echo “prueba” >> \ /home/jcrubio/Escritorio/ceritos
• duplicity verify file:///tmp/backup/pruebadup \
/home/jcrubio/Escritorio
• Comprueba lo que ha cambiado entre el directorio actual y la réplica– Siguiente diapositiva muestra salida del
comando.
duplicity
• Salida del comando anterior:
root@server:/home/jcrubio# duplicity verify file:///tmp/backup/pruebadup /home/jcrubio/Escritorio/GnuPG passphrase: Local and Remote metadata are synchronized, no sync needed.Last full backup date: Wed Mar 14 15:08:45 2012Difference found: File . has mtime Wed Mar 14 22:38:13 2012, expected Tue Mar 13 21:20:22 2012Difference found: File ceritos has mtime Wed Mar 14 22:42:39 2012, expected Wed Mar 14 15:09:37 2012
Verify complete: 13 files compared, 2 differences found.
duplicity
• duplicity --exclude /mnt --exclude /tmp \ --exclude /proc / file:///media/backup
• Copia el directorio raíz excluyendo los directorios listados.
• duplicity --include /home --include /etc \ --exclude ’**’ / file:///media/backup
• Lo único que copia del raíz son los directorios /home y /etc
duplicity
• CONCLUSIÓN: Idóneo para backup de servidores
• ¿Podríamos hacer backups de Oracle u otras bases de datos, o de máquinas virtuales en caliente?– Casi.... – Ejemplo de BD oracle
duplicity#!/bin/bash
# NOMBRE SCRIPT: start-backup-mode.sh
# Pone la BD en modo backup mode
sqlplus /nolog <<EOF
conn sys/managger as sysdba
alter database begin backup;
exit
EOF
# Usando LVM, crea y monta Snapshots
/usr/sbin/lvcreate -L 20G -s -n oradata-snap oradata
/usr/sbin/lvcreate -L 20G -s -n oraappl-snap oraappl
mount /dev/VG_DATA/oradata-snap /mnt/snapshots/var/oradata/
mount /dev/VG_DATA/oraappl-snap /mnt/snapshots/opt/oraappl/
# Sacamos la BD de modo backup
sqlplus /nolog <<EOF
conn sys/managger as sysdba
alter database end backup;
exit
EOF
exit 0
duplicity
• Hacemos la copia con duplicity• duplicity ora* ftp://usuario@servidor/path• Esta misma orden podría ir en el archivo
anterior, start-backup-mode.sh, después de que se haya sacado la BD de modo backup
• Por último, destruimos el snapshot
duplicity
#!/bin/sh# NOMBRE: stop-backup-mode.sh# Desmonta y destruye snapshotsumount /mnt/snapshots/var/oradata/umount /mnt/snapshots/opt/oraappl/lvremove -f /dev/VG_DATA/oradata-snaplvremove -f /dev/VG_DATA/oraappl-snap
exit 0
duplicity