Una de las características que me hicieron elegir este software frente a otros a la hora de hacer backup de los datos más importantes de mi empresa es que no utilizar ningún tipo de formato propio para almacenar esas copias, es decir, puedes recuperar las copias de seguridad desde otra máquina sin la necesidad de tener instalado/configurado el software, puedes manejar todo el proceso con órdenes estándar del sistema operativo, como tar, mt, cron, etc.
Es un software muy potente comparable a Bacula, por ejemplo, y que tiene una estructura similar: habrá una máquina que hará de servidor de copias de seguridad que atenderá a varios clientes siguiendo una agenda determinada. La instalación y configuración es bastante sencilla, quizás más que la de Bacula, la herramienta
En esta entrada haré un repaso de la instalación y configuración del software en un equipo HP Proliant con una unidad de cinta Ultrium 232 (LTO1) algo antigua, en la que se ejecuta un sistema CentOS 6.
Backup en cintas
Para ejecutar Amanda usando la unidad Ultrium como dispositivo de copia de seguridad debemos tener instaladas todas las herramientas de sistema que trabajarán de forma subyacente, especialmente mt-st:
yum install mt-st
Comprobamos la unidad de cinta:
[root@host ~]# cat /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: CD-ROM GCR-8486B Rev: 2.00 Type: CD-ROM ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 03 Lun: 00 Vendor: HP Model: Ultrium 1-SCSI Rev: P61D Type: Sequential-Access ANSI SCSI revision: 03 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: BENQ Model: DVD DD EW162I Rev: 47F9 Type: CD-ROM [root@host ~]# dmesg | grep -i tape st 3:0:3:0: Attached scsi tape st0 osst :I: Tape driver with OnStream support version 0.99.4
Comprobaré que la cinta funciona correctamente, por ejemplo, extrayendo información sobre la misma o extrayendo la unidad:
mt -f /dev/nst0 offline # Extrae la cinta [amandabackup@host root]$ mt -f /dev/nst0 status SCSI 2 tape drive: File number=0, block number=1, partition=0. Tape block size 0 bytes. Density code 0x40 (DLT1 40 GB, or Ultrium). Soft error count since last status=0 General status bits on (1010000): ONLINE IM_REP_EN
Al intentar ejecutar otras órdenes en las que si se accede a la cinta como mt -f /dev/nst0 tell, que dice el bloque en que se encuentra la cinta, da un error de entrada salida. Para solucionarlo se han de ejecutar estas dos órdenes: Más información sobre la configuración de las cintas Ultrium en los manuales de HP.
mt -f /dev/nst0 stsetoptions scsi2logical # Hace que el driver st use direccionamiento lógico mt -f /dev/nst0 setblk 0 # Establece la lectura de bloques de tamaño variable. Ver enlace de Info anterior.
Instalación y configuración de Amanda
Server: Instalación
Una vez comprobado el funcionamiento de la unidad de cinta continuamos con la instalación y configuración de Amanda en CentOS. Vamos a configurar Amanda para que realice copias de seguridad del mismo servidor (local), así que necesitamos instalar el software de cliente y de servidor.
yum install amanda amanda-server amanda-client
La instalación en CentOS crea el usuario amandabackup que será desde el que realizaremos la mayoría de las interacciones con Amanda. También crea los grupos disk y tape en los que incluirá al usuario amandabackup, estos grupos tendrán permisos para acceder a varios directorios, dispositivos y ficheros de configuración necesarios. También crea archivos de configuración que tendremos que modificar. En el directorio /etc/amanda y /etc/amanda/DailySet1 tenemos también plantillas de archivos de configuración.
Amanda se ejecuta vía xinetd, así que tendremos que configurar el servicio. Aunque la instalación ha creado el archivo en /etc/xinetd.d/amanda sustituimos por el archivo xinetd.amandaserver que encontramos en el directorio /etc/amanda/DailySet1/. Este archivo define los servicios de Amanda que estarán activos en el servidor, estos servicios vienen determinados por el parámetro server_args.
- amdump. Es el servicio (máquina cliente y servidor) que se encarga de realizar las copias de seguridad.
- amindexd. Es el servicio (servidor) que mantiene el catálogo de Amanda. Muchas herramientas de Amanda se comunican con este servicio. Es necesario para ejecutar amrecover, la herramienta interactiva de recuperación de datos, es muy similar a un servicio de FTP que es accedido por la herramienta amrecover.
- amidxtaped. Servicio (servidor) que se comunica con la unidad de cinta.
# default: on
#
# description: Amanda services for Amanda server and client.
#
service amanda
{
disable = no
flags = IPv6
socket_type = stream
protocol = tcp
wait = no
user = amandabackup
group = disk
groups = yes
server = /usr/lib64/amanda/amandad
server_args = -auth=bsdtcp amdump amindexd amidxtaped
}
Siempre que hagamos algún cambio en este archivo debemos recargar xinetd con la orden service xinetd reload.
Server: Configuración de los trabajos de copia
La configuración de los trabajos de copia de seguridad se hace desde los subdirectorios dentro de /etc/amanda. Por ejemplo, hemos copiado la configuración por defecto que incluye la instalación al directorio DailySet1. Dentro de este directorio establecemos todos los parámetros para realizar las copias de seguridad. Hay que tener en cuenta que para casi cualquier operación que hagamos con Amanda tendremos que especificar este identificador.
El fichero principal es el fichero amanda.conf dentro del directorio de configuración. Los cambios más importantes son:
mailto= "admin@email.es" # Email que recibirá las notificaciones. Hay que modificar .mailrc en /var/lib/amanda/ para que funcione. Después se explica.
dumpuser="amandabackup" # Usuario que se utiliza para ejecutar dump en el cliente.
dumpcycle 1 weeks # Asegura al menos haya una copia completa cada 1 semana
runspercycle 4 # Cuantas veces se lanza el dump cada dumpcycle
tapecycle 4 tapes # Número de cintas que se conservan antes de empezar a reciclar.
runtapes 1 # Número de cintas que se permiten para un trabajo de copia. Si una copia no cabe en una cinta debemos subirlo. Sólo se usan las necesarias.
#tpchanger "scrtip" # Script que se encarga de cambiar cintas. Como cambiaremos las cintas manualmente comentamos.
tapedev "tape:/dev/nts0" # Dispositivo que se usa para realizar las copias.
tapetype HP-ULTRIUM-LTO1 # Tipo de cinta. HP-ULTRIUM-LTO1 debe estar definido como tipo de cinta en la sección ''define tapetype''. Ver más adelante.
labelstr "^DailySet1-[0-9][0-9]*$" # Expresión regular que restringe la etiqueta de las cintas que se aceptan. Todas las cintas ser etiquetadas según este patrón.
#holdingdisk hd1 { # Discos buffer en los que se hará un dump previo, después se copiará a la cinta. Desactivado (comentado) por problemas de espacio en el servidor.
#...
#}
infofile "/etc/amanda/DailySet1/curinfo" # database DIRECTORY
logdir "/etc/amanda/DailySet1" # log directory
indexdir "/etc/amanda/DailySet1/index" # index directory
tapelist "/etc/amanda/DailySet1/tapelist" # list of used tapes
define tapetype HP-ULTRIUM-LTO1 { # Definición de la cinta. Extraída del enlace http://tirpitz.iat.sfu.ca/wiki/index.php?title=Backups_with_AMANDA
comment "LTO-1. Añadido por Emilio" # Amanda puede examinar la cinta para obtener su definición usando la orden 'amtapetype -f /dev/nst0'
length 96512 mbytes
filemark 0 kbytes
speed 13611 kps
}
# A continuación vienen las definiciones de los tipos de dumps estándares. En el fichero se comentan todas las opciones posibles y se pueden crear nuevos o modificar existentes,
# que después habrá que especificar en el fichero disklist. Estas definiciones se pueden anidar, como se ve en el ejemplo. Estamos usando comp-user-tar, cuya definición es:
define dumptype global {
comment "Global definitions"
# This is quite useful for setting global parameters, so you don't have
# to type them everywhere. All dumptype definitions in this sample file
# do include these definitions, either directly or indirectly.
# There's nothing special about the name `global'; if you create any
# dumptype that does not contain the word `global' or the name of any
# other dumptype that contains it, these definitions won't apply.
# Note that these definitions may be overridden in other
# dumptypes, if the redefinitions appear *after* the `global'
# dumptype name.
# You may want to use this for globally enabling or disabling
# indexing, recording, etc. Some examples:
# index yes
# record no
# split_diskbuffer "/raid/amanda"
# fallback_splitsize 64m
auth "bsdtcp" # Añadido para forzar la autenticación bsdtcp
}
define dumptype root-tar {
global
program "GNUTAR"
comment "root partitions dumped with tar"
compress none
index
# exclude list "/etc/amanda/exclude.gtar"
priority low
}
define dumptype user-tar {
root-tar
comment "user partitions dumped with tar"
priority medium
}
define dumptype comp-user-tar {
user-tar
compress client fast
}
...
...
Puede que al hacer un amcheck <ID> no se pueda conectar al cliente dando este error:[amandabackup@host root]$ amcheck DailySet1
Amanda Tape Server Host Check
-----------------------------
read label `DailySet1-04', date `20130314070502'.
Tape with label DailySet1-04 is still active and cannot be overwritten.
(expecting tape DailySet1-01 or a new tape)
Server check took 0.096 seconds
Amanda Backup Client Hosts Check
--------------------------------
WARNING: host: selfcheck request failed: timeout waiting for ACK
Client check: 1 host checked in 30.036 seconds. 1 problem found.
(brought to you by Amanda 2.6.1p2)
Se soluciona especificando en amanda.conf el tipo de autenticación en la definición dumptype. Yo lo he añadido en la definición de dumptype global, como aparece en el enlace.
Ahora debemos indicar a Amanda las máquinas a las que tendrá que acceder, los datos que deberá respaldar y el tipo de dump que realizará para cada uno. Esto se hace mediante el archivo disklist dentro del directorio /etc/amanda/DailySet1:
host /var/backups comp-user-tar host /etc comp-user-tar
Antes de poder hacer copias de seguridad debemos etiquetar las cintas para que sean reconocidas por amanda. Para ello introducimos una por una las cintas y las etiquetamos de la siguiente forma, donde XX es el número de cinta:
amlabel DailySet1 DailySet1-XX
Cada vez que etiquetemos una cinta se añadirá al archivo /etc/amanda/[id]/tapelist. Se puede listar este fichero para ver las cintas.
Para comprobar que funciona podemos ejecutar:
[amandabackup@host root]$ amcheck DailySet1 Amanda Tape Server Host Check ----------------------------- read label `DailySet1-02', date `20130312070502'. Tape with label DailySet1-02 is still active and cannot be overwritten. (expecting a new tape) WARNING: tapecycle (4) <= runspercycle (4). Server check took 0.097 seconds Amanda Backup Client Hosts Check -------------------------------- Client check: 1 host checked in 2.135 seconds. 0 problems found.
OJO! Esta salida se obtiene una vez configurado todo, la salida real en esta etapa de configuración debería ser similar, lo importante es que no aparezcan problemas en el resultado.
Server: Cron
En el directorio /etc/amanda/ hay un ejemplo de cron. Se puede modificar el cron del usuario amandabackup para programar las copias. Cambiarse al usuario amandabackup y hacer un crontab -e. El contenido actual (pruebas) es el siguiente:
#Amanda Backup 00 07 * * 1-5 /usr/sbin/amcheck -m DailySet1 05 07 * * 1-4 /usr/sbin/amdump DailySet1
Server: Notificaciones por email
Para que funcionen las notificaciones de las copias de seguridad hay que configurar los parámetros de envío creando el archivo /var/lib/amanda/.mailrc:
set smtp=[smtp server] set from=[admin@email.es]
Client
Primero debemos configurar el servicio amanda en xinetd. Esto ya lo hemos hecho ya que el servidor también es el cliente. Permitir al servidor que acceda al servicio amanda. Para esto se modifica el fichero /var/lib/amanda/.amandahosts:
# host user services. # root en el cliente accederá a los servicios amindexdx y amidxtaped para recuperar ficheros. # amandabackup accederá al servicio amdump server1 root amindexd amidxtaped server1 amandabackup amdump
En un segundo post haré un repaso por las órdenes más útiles para hacer copias de seguridad, restauraciones, extraer información del catálogo... Además del manejo de las copias realizadas con herramientas del sistema como mt o tar.
1 comentario:
Buenos dias me gustaria saber si me podrias apoyar en una implementacion de amanda tedejo mi correo electronico : fbustamante@softtoolsit.com
Saludos cordiales
Atte. Francisco
Publicar un comentario