Configuración de copias de seguridade en FreeNAS

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda
  • Na Parte IV do curso abordouse con bastante profundidade as diferentes estratexias e técnicas básicas para a realización de copias de seguridade, e todo o explicado pódese aplicar case ao 100% ao escenario que temos agora.
  • Por iso non imos volver a abordar todos os conceptos xa traballados nese apartado; tan só aplicaremos as técnicas de copias de seguridade sobre FreeNAS con exemplos sinxelos.
  • Veremos como facer uso tanto do comando tar para facer copias de seguridade nun volume local na máquina FreeNAS, como de rsync para realizar copias dunha carpeta nun servidor remoto.


Copias de seguridade nun volume local con tar

Engadir o volume para as copias de seguridade

  • Como primeiro paso, imos engadir na máquina FreeNAS un volume para volcar sobre el as copias de seguridade. Este volume podería ser un disco interno ou un disco esterno USB, por exemplo.
  • Co xestor de volumes ZFS creamos un volume co nome copias:
Dl freenas copias 01.png

Crear os scripts para a realización das copias

  • Imos crear dentro do volume copias (en /mnt/copias) dous scripts: Un para facer unha copia completa e outro para facer copias incrementais.
  • SCRIPT: copia_completa.sh
date "+%Y-%m-%d %H:%M:%S" > /mnt/copias/last_backup_date.txt
tar czf /mnt/copias/backup_completo_`date "+%Y-%m-%d-%H-%M-%S"`.tar.gz /mnt/datos/usuarios /mnt/datos/comun
  • Como se pode ver, este script simplemente garda nun ficheiro a data da copia, e copia e comprime con tar nun ficheiro dentro de /mnt/copias todo o contido das carpetas usuarios e comun.
  • SCRIPT: copia_incremental.sh
LAST_BACKUP_DATE=`cat /mnt/copias/last_backup_date.txt`
date "+%Y-%m-%d %H:%M:%S" > /mnt/copias/last_backup_date.txt
tar czf /mnt/copias/backup_inc_`date "+%Y-%m-%d-%H-%M-%S"`.tar.gz --newer "$LAST_BACKUP_DATE" /mnt/datos/usuarios /mnt/datos/comun
  • Neste caso, o script toma a data da última copia e almacena en /mnt/copias só os ficheiros creados e modificados dende esa data. A implementación do comando tar en FreeNAS non inclúe a opción -g para facer as copias incrementais, así que usaremos o parámetro --newer para incluír só as carpetas e ficheiros modificados a partir dunha data.
  • O script tamén modifica no ficheiro a data da copia, para que a seguinte vez só de copien os ficheiros modificados dende ese momento. Eliminando esta liña estariamos facendo copias diferenciais en lugar de incrementais (xa que sempre faríamos copia dos ficheiros modificados dende a última copia completa).
  • Establecemos sobre os scripts os permisos que permitan a súa execución:
chmod 755 /mnt/copias/copia_completa.sh 
chmod 755 /mnt/copias/copia_incremental.sh
  • E no seguinte exemplo podemos ver o resultado da execución manual dos scripts:
[root@nas00] ~# /mnt/copias/copia_completa.sh 
tar: Removing leading '/' from member names
[root@nas00] ~# tar tvf /mnt/copias/backup_completo_2014-05-22-00-47-11.tar.gz 
...
...
drwx------  0 root          wheel           0 May 21 21:24 mnt/datos/comun/departamentos/
drwx------  0 root          wheel           0 May 21 02:35 mnt/datos/comun/dam1/
[root@nas00] ~# /mnt/copias/copia_incremental.sh 
[root@nas00] ~# ls -lh /mnt/copias/
total 6160
drwxr-xr-x  2 root  wheel     7B May 22 00:48 ./
drwxr-xr-x  5 root  wheel   512B May 21 23:13 ../
-rw-r--r--  1 root  wheel     6M May 22 00:47 backup_completo_2014-05-22-00-47-11.tar.gz
-rw-r--r--  1 root  wheel    45B May 22 00:48 backup_inc_2014-05-22-00-48-43.tar.gz
-rwxr-xr-x  1 root  wheel   169B May 22 00:41 copia_completa.sh*
-rwxr-xr-x  1 root  wheel   248B May 22 00:43 copia_incremental.sh*
-rw-r--r--  1 root  wheel    20B May 22 00:48 last_backup_date.txt
[root@nas00] ~# tar tvf /mnt/copias/backup_inc_2014-05-22-00-48-43.tar.gz 
[root@nas00] ~# mkdir /mnt/datos/comun/nova_carpeta
[root@nas00] ~# /mnt/copias/copia_incremental.sh
[root@nas00] ~# tar tvf /mnt/copias/backup_inc_2014-05-22-00-50-02.tar.gz 
drwx------  0 root   wheel       0 May 22 00:49 mnt/datos/comun/
drwxr-xr-x  0 root   wheel       0 May 22 00:49 mnt/datos/comun/nova_carpeta/

Programar as copias de seguridade con CRON

  • Evidentemente, a execución das copias de seguridade non se debería facer de forma manual. Sempre deberíamos configurar tarefas planificadas para que se executasen periodicamente.
  • A ferramenta de administración de FreeNAS ofrécenos a posibilidade de configurar tarefas programadas:

Copias de seguridade en remoto con RSYNC

  • Con Rsync podemos manter sincronizado o contido dunha carpeta (que pode ser unha carpeta de datos ou a que contén as copias de seguridade) nun equipo remoto.
  • A ferramenta de administración de FreeNAS permítenos configurar o equipo tanto para a sincronización dunha carpeta noutra máquina como para recibir a sincronización do contido dunha carpeta de outra máquina con rsync.

Clonar máquina FreeNAS e configurar a máquina clonada

  • Para facer unha demostración do uso de rsync, imos crear unha segunda máquina FreeNAS para sincronizar unha carpeta entre nas00 e esa nova máquina.

Configurar a máquina remota na que se fan as copias

  • Imos configurar esta máquina clonada para que reciba as sincronizacións por rsync:

Configurar a máquina orixe das copias

  • Por último, imos configuración nas00 para sincronizar todo o contido da carpeta de datos coa máquina clonada.
  • Nun caso real, non sería moi recomendable sincronizar as carpetas de datos, xa que o borrado dalgún ficheiro ou carpeta na carpeta orixinal faríase tamén na máquina remota no momento de realizar a sincronización, e non teríamos polo tanto un histórico dos datos dos que facemos a copia. O máis recomendable sería polo tanto utilizar rsync para sincronizar as copias de seguridade co equipo remoto, para poder ter as copias en localizacións físicas diferentes.
  • Neste caso facémolo así para poder comprobar máis claramente o funcionamento de rsync.


-- Antonio de Andrés Lema e Carlos Carrión Álvarez