Configuración de copias de seguridade en FreeNAS
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:

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:
- Programar as copias de seguridade en FreeNAS
-
Imos ao apartado Tarefas, e engadimos unha tarefa programada picando en Engadir Tarefas programadas.
-
A tarefa executarase co usuario root. Introducimos como comando a executar o que realiza a copia completa (/mnt/copias/copia_completa.sh). Con respecto á programación, imos facer que se execute todos os sábados ás 20:00, así que en minuto picamos na lapela Cada uno seleccionado e seleccionamos o minuto 00...
-
en hora dentro de Cada uno seleccionado indicamos ás 22, e sobre o día do mes marcamos cada día do mes,
-
deixamos marcados todos os meses e nos días da semana só deixamos o sábado. Picamos en Ok para gardar a tarefa.
-
Podemos ver os datos da tarefa, e creamos unha nova para as copias incrementais, que executaremos de luns a venres ás 20:00
-
Neste caso, o comando que executamos é /mnt/copias/copia_incremental.sh. Os datos da planificación serán similares ás do caso anterior,
-
marcando como hora as 22,
-
e cambiando os días da semana da execución. Aceptamos.
-
Podemos ver os datos das dúas tarefas creadas.
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.
- Clonar máquina FreeNAS
-
Seleccionamos a instantánea Recén instalada da máquina FreeNAS, e picamos na opción de Clonar.
-
Poñémoslle un nome á máquina e activamos a opción de Reinicializar a dirección MAC de todas as tarxetas de rede, xa que se as dúas máquinas teñen a mesma MAC non funcionaría a conexión entre elas.
-
Marcamos a opción de Clonación completa.
-
Indicamos que só se clone o estado actual, xa que non precisamos clonar as instantáneas da máquina orixinal.
-
Características da máquina clonada. Fixarse como se clonaron todos os discos da máquina, así que as dúas máquinas son totalmente independentes.
-
Iniciamos a máquina clonada e cambiamos a súa configuración IP, asignándolle a dirección 172.16.5.13
-
E para poder acceder dende a máquina real tanto mediante a ferramenta de administración como por ssh, engadimos as redireccións de portos necesarias.
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 remota rsync
-
Conectámonos á ferramenta de administración da máquina clonada, e engadimos un volume co nome copias.
-
No panel lateral, dentro de Servicios->Rsync->Módulos Rsync picamos en Añadir un módulo Rsync.
-
Dámoslle un nome ao módulo e indicamos onde imos almacenar a carpeta sincronizada: /mnt/copias. Seleccionamos o usuario root e o grupo wheel para que o módulo poida escribir na carpeta. Na lista de clientes permitidos, introducimos a dirección IP da máquina que vai facer a sincronización, que será nas00. Aceptamos.
-
Imos á lista de servizos para iniciar o servizo 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.
- Configurar a máquina orixe rsync
-
Na máquina nas00, dentro do apartado de Tarefas imos á lapela de Tarefas Rsyncs picamos en Engadir Tarefas Rsync.
-
Nos datos da tarefa, introducimos a ruta da carpeta a copiar (/mnt/datos), como usuario root, a dirección IP da máquina na que facer a sincronización (172.16.5.13), como modo Rsync Módulo Rsync, e en dirección Enviar. Para non ter que esperar moito, indicamos que a sincronización se faga cada 5 minutos (seguramente nun caso real sería máis tempo, por exemplo cada día).
-
Activamos a opción de Manter permisos para que a carpeta sincronizada manteña os permisos da carpeta orixinal. Aceptamos.
-
Vemos os datos da tarefa creada. Se queremos, dispoñemos do botón de Executar agora para executar a tarefa rsync seleccionada de forma manual, e non esperar os cinco minutos para que se execute de forma automática.
-
Na máquina clonada podemos comprobar que se sincroniza o contido da carpeta de datos de nas00 dentro de /mnt/copias