Configuración del Sistema de Copia de Seguridad Amanda
Amanda (Advanced Maryland Automatic Network Disk Archiver) es un sistema maduro de copia de seguridad de código abierto diseñado para copias de seguridad y recuperación confiables basadas en red en entornos heterogéneos. Con soporte integrado para cinta y disco, copias de seguridad multincliente concurrentes y algoritmos de programación sofisticados, Amanda gestiona eficientemente recursos de copia de seguridad mientras mantiene objetivos estrictos de tiempo de recuperación. Esta guía cubre el despliegue de la infraestructura de Amanda y la configuración de estrategias exhaustivas de copia de seguridad.
Tabla de Contenidos
- Arquitectura y Componentes de Amanda
- Instalación del Servidor
- Instalación y Configuración del Cliente
- Archivos de Configuración de Amanda
- Disklist y Gestión de Hosts
- Programación de Copias de Seguridad
- Operaciones de Copia de Seguridad
- Procedimientos de Recuperación
- Conclusión
Arquitectura y Componentes de Amanda
Amanda consta de componentes integrados:
- Servidor: Mantiene catálogo, coordina copias de seguridad, gestiona almacenamiento
- Cambiador de Cinta/Disco: Gestiona rotación de medios de almacenamiento
- Dumper: Crea imágenes de copia de seguridad en servidor
- Taper: Escribe a medios de almacenamiento
- Demonio del Cliente: Se ejecuta en sistemas siendo respaldados
- Generador de Informes: Crea informes de estado de copia de seguridad
El "disco de retención" de Amanda proporciona área de almacenamiento temporal para copias de seguridad antes de escribir al almacenamiento final, habilitando operaciones paralelas de copia de seguridad y optimizando utilización de cinta.
Instalación del Servidor
Requisitos Previos
# Requisitos del sistema:
# - 4+ núcleos de vCPU
# - 8+ GB de RAM
# - Almacenamiento de alta capacidad para disco de retención (500GB+ recomendado)
# - Conectividad de red a todos los clientes de copia de seguridad
# Verificar recursos disponibles
nproc
free -h
df -h
# Crear usuario del sistema Amanda
sudo useradd -r amanda || true
Instalar Servidor Amanda en Ubuntu/Debian
# Instalar servidor Amanda
sudo apt-get install -y amanda-server amanda-client
# Instalar componentes opcionales
sudo apt-get install -y amanda-backup-client amanda-recover
# Crear directorio home del usuario de copia de seguridad
sudo usermod -d /var/lib/amanda amanda
sudo mkdir -p /var/lib/amanda
sudo chown amanda:amanda /var/lib/amanda
# Inicializar directorio de catálogo de Amanda
sudo mkdir -p /etc/amanda
sudo chown amanda:amanda /etc/amanda
# Iniciar demonio Amanda
sudo systemctl enable amanda
sudo systemctl start amanda
# Verificar servicio
sudo systemctl status amanda
Instalar Servidor Amanda en CentOS/RHEL
# Instalar desde EPEL
sudo yum install -y epel-release
sudo yum install -y amanda-server amanda-client
# Crear directorios
sudo mkdir -p /var/lib/amanda
sudo mkdir -p /etc/amanda
sudo chown amanda:amanda /var/lib/amanda
sudo chown amanda:amanda /etc/amanda
# Iniciar xinetd (Amanda lo usa)
sudo systemctl enable xinetd
sudo systemctl start xinetd
Configuración del Firewall y Red
# UFW (Ubuntu)
sudo ufw allow 10080/tcp # Servidor Amanda
sudo ufw allow 10080/udp
sudo ufw allow 10082/tcp # Cliente de copia de seguridad
sudo ufw allow 10082/udp
# Firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=10080-10082/tcp
sudo firewall-cmd --permanent --add-port=10080-10082/udp
sudo firewall-cmd --reload
# Editar /etc/xinetd.d/amanda si es necesario
sudo nano /etc/xinetd.d/amanda
# Asegurar bind_address = 0.0.0.0
sudo systemctl reload xinetd
Instalación y Configuración del Cliente
Instalar Cliente Amanda
# En cada cliente de copia de seguridad:
sudo apt-get install -y amanda-client
# O en CentOS/RHEL:
sudo yum install -y amanda-client
# Crear usuario Amanda si no existe
sudo useradd -r amanda || true
# Crear archivo .amandahosts
sudo nano /etc/amanda/.amandahosts
# Agregar acceso del servidor:
# server.example.com root amanda
# server.example.com backup amanda
# Establecer permisos
sudo chmod 600 /etc/amanda/.amandahosts
sudo chown amanda:amanda /etc/amanda/.amandahosts
Configuración de xinetd del Cliente
# Editar configuración de xinetd para amanda
sudo nano /etc/xinetd.d/amanda
# Configurar:
cat <<'EOF' | sudo tee /etc/xinetd.d/amanda
service amanda
{
socket_type = dgram
protocol = udp
wait = yes
user = amanda
group = disk
server = /usr/lib/amanda/amandad
server_args = -auth=bsdtcp amdump amindexd ambackupd
disable = no
only_from = 192.168.1.10 # IP del servidor Amanda
}
EOF
# Recargar xinetd
sudo systemctl reload xinetd
# Probar conectividad desde servidor
sudo -u amanda nc -u 192.168.1.30 10080
Archivos de Configuración de Amanda
Configuración Principal de Amanda
Crear /etc/amanda/daily/amanda.conf:
# Crear directorio de configuración
sudo mkdir -p /etc/amanda/daily
sudo chown amanda:amanda /etc/amanda/daily
# Crear configuración principal
cat <<'EOF' | sudo tee /etc/amanda/daily/amanda.conf
# Configuración de Amanda para copias de seguridad diarias
org = "Mi Organización"
mailto = [email protected]
dumpuser = amanda
tpchanger = "chg-disk"
changerdev = "/dev/null"
changerfile = "/var/lib/amanda/daily/changer-status"
tapecycle = 10
autolabel = "daily-%%"
labelstr = "^daily-[0-9][0-9]*$"
tapetype = DLT
define tapetype DLT {
comment = "Unidad HP DLT"
length = 160000 mbytes
filemark = 1 mbyte
speed = 20000 kps
}
# Configuración del Dumper
inparallel = 4
dumptype = default {
priority = medium
compress = server
estimate = calcsize
holdingdisk = yes
}
# Configuración del disco de retención
holdingdisk hd1 {
comment = "Disco de retención uno"
directory = /var/lib/amanda/daily
use = 20 gbytes
}
# Interfaz de red
netusage = 800 mbytes
# Directorios de registro e índice
logdir = "/var/log/amanda/daily"
indexdir = "/var/lib/amanda/daily/index"
# Políticas de limpieza
amrecover_do_fsf = yes
amrecover_check_label = yes
autoflush = yes
starttime = 1830
# Encriptación (opcional)
# encryption = server
# compress = server
# Seguridad de red de Amanda
bsd_security_options = "ssh"
EOF
sudo chown amanda:amanda /etc/amanda/daily/amanda.conf
sudo chmod 640 /etc/amanda/daily/amanda.conf
Configuración de Red de Amanda
# Configurar encriptación de red (recomendado)
cat <<'EOF' | sudo tee /etc/amanda/daily/amanda-network.conf
# Usar SSH para todas las conexiones del cliente
bsd_security_options = ssh
ssh_keys = /var/lib/amanda/.ssh/id_rsa
EOF
# Generar claves SSH para usuario amanda
sudo -u amanda ssh-keygen -t rsa -f /var/lib/amanda/.ssh/id_rsa -N ""
# Copiar clave pública a todos los clientes para SSH sin contraseña
# Manualmente o a través de ansible
Disklist y Gestión de Hosts
Configurar Disklist
Crear archivo /etc/amanda/daily/disklist:
cat <<'EOF' | sudo tee /etc/amanda/daily/disklist
# Formato de Disklist: hostname diskname dumptype [interface [skip-full [skip-incr]]]
# Servidores de producción
server1.example.com /home default
server1.example.com /var default
server1.example.com /opt default
# Servidor de base de datos con tipo personalizado
db-server.example.com /var/lib/mysql database-full
db-server.example.com /var/lib/pgsql database-full
# Servidores web
web1.example.com /var/www default
web2.example.com /var/www default
# Servidor de archivos
storage.example.com /data1 large-archive
storage.example.com /data2 large-archive
EOF
sudo chown amanda:amanda /etc/amanda/daily/disklist
sudo chmod 640 /etc/amanda/daily/disklist
Tipos de Dump Personalizados
Defina configuraciones de copia de seguridad especializadas:
cat <<'EOF' | sudo tee -a /etc/amanda/daily/amanda.conf
# Tipo de copia de seguridad de base de datos - preserve datos con compresión mínima
dumptype database-full {
priority = high
compress = none
estimate = none
holdingdisk = yes
ignore-client-error = yes
exclude list = "/etc/amanda/daily/exclude.db"
}
# Tipo de archivo grande - compresión pesada, baja prioridad
dumptype large-archive {
priority = low
compress = server
estimate = calcsize
holdingdisk = no
exclude list = "/etc/amanda/daily/exclude.archive"
}
# Sistemas críticos - múltiples copias de copia de seguridad
dumptype critical {
priority = high
compress = server
estimate = calcsize
holdingdisk = yes
min-dle-by-time = 0
}
EOF
Programación de Copias de Seguridad
Programación Diaria de Copia de Seguridad
# Programar ejecución diaria de copia de seguridad
cat <<'EOF' | sudo tee /etc/cron.d/amanda
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Copia de seguridad diaria a las 1:30 AM
30 1 * * * amanda /usr/sbin/amdump /etc/amanda/daily
# Copia de seguridad completa del domingo a las 1:30 AM
30 1 * * 0 amanda /usr/sbin/amdump /etc/amanda/daily
# Informe de copia de seguridad a las 7:00 AM
00 7 * * * amanda /usr/sbin/amreport /etc/amanda/daily
EOF
# Verificar trabajo de cron
sudo crontab -u amanda -l
Operaciones de Copia de Seguridad
Ejecutar Copias de Seguridad Manuales
# Realizar copia de seguridad inmediatamente
sudo -u amanda /usr/sbin/amdump /etc/amanda/daily
# Monitorear progreso de copia de seguridad
tail -f /var/log/amanda/daily/amdump.log
# Verificar estado durante la copia de seguridad
sudo amcheck /etc/amanda/daily
# Obtener estado detallado
sudo -u amanda /usr/sbin/amstat /etc/amanda/daily
# Estado de Taper (escritura de cinta)
sudo -u amanda tail -f /var/log/amanda/daily/taperlog
Verificaciones Previas a la Copia de Seguridad
# Ejecutar amcheck para verificar configuración
sudo amcheck /etc/amanda/daily
# Probar todas las conexiones del cliente
sudo amcheck -m /etc/amanda/daily
# Verificación detallada con informe de correo electrónico
sudo amcheck -A -m /etc/amanda/daily 2>&1 | mail -s "Amanda Check" [email protected]
Generar Informes de Copia de Seguridad
# Generar informe estándar
sudo -u amanda /usr/sbin/amreport /etc/amanda/daily
# Informe de correo electrónico
sudo -u amanda /usr/sbin/amreport /etc/amanda/daily | \
mail -s "Informe de Copia de Seguridad $(date +%Y-%m-%d)" [email protected]
# Estadísticas detalladas
sudo -u amanda /usr/sbin/amreport /etc/amanda/daily -i
# Generar informe para fecha específica
sudo -u amanda /usr/sbin/amreport /etc/amanda/daily --print-stats -l 20240101
Procedimientos de Recuperación
Usar Interfaz amrecover
# Lanzar herramienta de recuperación
sudo amrecover -s backup-server /etc/amanda/daily
# Dentro de amrecover:
# Comandos interactivos:
# - sethost hostname Establecer objetivo para recuperación
# - setdisk /path Seleccionar sistema de archivos
# - settape <tape-label> Especificar cinta
# - mode smb|ftp|tar Establecer método de recuperación
# - add filename Encolar archivo para recuperación
# - adddir directory Encolar directorio completo
# - delete file/dir Eliminar de cola
# - list Mostrar archivos encolados
# - extract Realizar recuperación
# - quit Salir de amrecover
Restauración a Nivel de Archivo
# Iniciar sesión de recuperación
sudo amrecover -s backup-server /etc/amanda/daily
# Dentro de amrecover:
sethost server1.example.com
setdisk /home
listhost # Listar fechas de copia de seguridad
settape daily-01
cd /important_data
add ./critical_file.txt
extract # Restaurar a /tmp/amanda-restore por defecto
# Salir
quit
# Archivos restaurados a /tmp/amanda-restore/
ls -la /tmp/amanda-restore/home/important_data/
Restauración Completa del Sistema
# Para recuperación completa del sistema de archivos
sudo amrecover -s backup-server /etc/amanda/daily
# Dentro de sesión:
sethost server1.example.com
setdisk /
settape daily-01
# Agregar sistema de archivos completo
adddir /
mode tar # Usar modo tar para restauración completa
extract # Inicia recuperación
# Monitorear progreso de recuperación
tail -f /var/log/amanda/amrecover.log
Conclusión
Amanda proporciona un sistema sofisticado de copia de seguridad probado en batalla para entornos empresariales complejos. Configurando cuidadosamente disklists, definiciones de dumptype y estrategias de programación, las organizaciones logran protección de datos exhaustiva alineada con objetivos específicos de recuperación. La capacidad de copia de seguridad multincliente concurrente y opciones flexibles de recuperación de Amanda garantizan restauración rápida cuando ocurren desastres. Las verificaciones rigurosas previas al vuelo y las pruebas regulares de recuperación validan la confiabilidad de la copia de seguridad, haciendo a Amanda una excelente opción para infraestructura crítica de copia de seguridad que requiere protección de datos robusta y escalable.


