Utilidades útiles. Bacula 5.0.2. (III). Backup y Restore sobre un cliente Ubuntu 10.4

Vamos a por las máquinas cliente. Recuerdo una vez más la figura de lo que vamos a hacer:

Instalación sobre Ubuntu 10.4.

Los pasos son muy similares a los descritos en el post Instalando el servidor. Sin embargo, hay una diferencia, y es que en los clientes sólo se instala el File daemon. Por tanto, en el paso donde definimos los parámetros del configure, no especificamos gestor de base de datos alguno, y en su lugar ponemos el parámetro –enable-client-only. A continuación puedes ver un ejemplo, en caso de que tengamos el comando dentro de un fichero script:

#!/bin/sh
CFLAGS=”-g -Wall”
LDFLAGS=” “
./configure –sbindir=/home/isildur/bacula/bin –sysconfdir=/home/isildur/bacula/bin –mandir=/home/isildur/bacula/bin –with-pid-dir=/home/isildur/bacula/bin/working –with-subsys-dir=/home/isildur/bacula/bin/working –with-working-dir=/home/isildur/bacula/bin/working –enable-client-only
exit 0

Por lo demás, en principio no hay nada que configurar para el File daemon, pero no olvides los pasos previos como la instalación de las dependencias, por lo que si no te acuerdas bien de los pasos, vuelve a leer el post sobre la instalación del servidor, pero recuerda que todo lo referente al gestor de base de datos no debes hacerlo.

Añadiendo el cliente a la configuración del servidor.

Si la instalación del cliente ha ido bien, podrás abrir el fichero $HOME/bacula/bin/bacula-fd.conf con un editor de textos. Verás la siguiente sección:

# “Global” File daemon configuration specifications
#
FileDaemon {                          # this is me
Name = Isildur-fd
FDport = 9102                  # where we listen for the director
WorkingDirectory = /home/isildur/bacula/bin/working
Pid Directory = /home/isildur/bacula/bin/working
Maximum Concurrent Jobs = 20
}

En este mismo fichero, añadimos (¡OJO! añade, no modifiques el que ya existe) el siguiente código para dejar que nuestro server se pueda conectar a este cliente:


Director {
Name = linux-bprd-dir
Password = “xxxx”
}

Donde linux-bprd-dir es el nombre que encontramos en el fichero bacula-dir.conf del servidor, en su entrada Director{…}

En principio, no debemos cambiar este fichero. Simplemente, comprobamos que está y que tiene esta sección definida. Lo que sí es importante es recordar el valor de la entrada:

Name = Isildur-fd

Ya que lo necesitaremos para…

Dar de entrada el cliente en el fichero bacula-dir.conf del servidor.

Abrimos, en el server, el fichero $HOME/bacula/bin/bacula-dir.conf. Tenemos que añadir dos informaciones: una Client y una Job:


Client {

# El valor de Name coincide con el valor de la entrada Name de FileDaemon del fichero bacula-fd.conf de la máquina cliente.

Name = “Isildur-fd”
Address = # pon aquí el nombre de red del ordenador cliente o su IP
FDPort = 9102
Catalog = MyCatalog

# El password debe coincidir con el que indicamos en la entrada Director añadida en el fichero bacula-fd.conf de la máquina cliente.

Password = “xxxx”
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}

Job {
Name = “Isildur”
Type = Backup
Client = Isildur-fd
FileSet = “Full Set”
Schedule = “WeeklyCycle”
Storage = File
Pool = Default
Write Bootstrap = “/home/isildur/bacula/working/isildur.bsr”
}

Una vez modificados todos los ficheros, arrancamos o reiniciamos los daemons de bacula en ambas máquinas ejecutando en la ruta $HOME/bacula/bin:

sudo ./bacula start | restart

Utilizando la consola para hacer una copia de seguridad.

Desde nuestro server OpenSuSe, arrancamos una ventana de consola, nos posicionamos en el directorio $HOME/bacula/bin y arrancamos bacula con:

./sudo bacula start.

Aparecen los mensaje que indican que arrancan los servicios Storage, File y Director.

Ahora, en la misma ruta, ejecutamos:

sudo ./bconsole

La respuesta es la siguiente:

Connecting to Director linux-bprd:9101
1000 OK: linux-bprd-dir Version: 5.0.2 (28 April 2010)
Enter a period to cancel a command.
*

El asterisco es el prompt de la consola de bacula.

Hacer Backup sobre el cliente Ubuntu 10.4

Si todo ha ido bien (Servidor y Cliente con daemons funcionando y ficheros configurados), vamos a hacer una copia de seguridad. Estamos en la consola de bacula. Vamos a ejecutar algunos comandos y ver qué responde bacula:

*show filesets
FileSet: name=Full Set
      O M
      N
      I /home/isildur/bacula/bin
      I /home/isildur/bacula/para-copias
      N
      E /home/isildur/bacula/bin/working
      E /tmp
      E /proc
      E /tmp
      E /.journal
      E /.fsck
      N
FileSet: name=Catalog
      O M
      N
      I /home/isildur/bacula/bin/working/bacula.sql
      N

Según he configurado en el server (fichero bacula-dir.conf) tengo solamente dos. El que me interesa es el de nombre “Full Set”, ya que es el que se tendrá en cuenta al hacer la copia sobre el nuevo cliente. La carpeta (del ordenador cliente) que más me interesa es:

/home/isildur/bacula/para-copias

En ella voy a crear dos ficheros, de nombre fichero1 y fichero2.

*status dir
linux-bprd-dir Version: 5.0.2 (28 April 2010) i686-pc-linux-gnu suse 11.2
Daemon started 11-nov-10 11:45, 12 Jobs run since started.
 Heap: heap=581,632 smbytes=81,161 max_bytes=184,538 bufs=265 max_bufs=304

Scheduled Jobs:
Level          Type     Pri  Scheduled          Name               Volume
===================================================================================
Incremental    Backup    10  11-nov-10 23:05    BackupClient1      pruebas
Incremental    Backup    10  11-nov-10 23:05    Isildur            defecto
Full           Backup    11  11-nov-10 23:10    BackupCatalog      pruebas
====

Running Jobs:
Console connected at 11-nov-10 11:59
No Jobs running.
====

Se trata del estado del daemon Director. Nos presenta los diferentes trabajos que podemos lanzar, también configurados en bacula-dir.conf.

*status client
The defined Client resources are:
     1: linux-bprd-fd
     2: Isildur-fd

Select Client (File daemon) resource (1-2): 2
Connecting to Client Isildur-fd at 192.168.32.47:9102

Isildur-fd Versión: 5.0.2 (28 April 2010)  i686-pc-linux-gnu ubuntu 9.10
Demonio iniciado 11-nov-10 12:14, 4 Jobs ejecutados desde el inicio.
 Heap: heap=393,216 smbytes=81,280 max_bytes=154,722 bufs=68 max_bufs=102
 Sizeof: boffset_t=8 size_t=4 debug=0 trace=0

Jobs Ejecutando:
Director conectado en: 11-nov-10 13:03
No hay Jobs en ejecución.
====

Nos presenta los diferentes clientes configurados. Sólo tenemos dos, el propio server e Isildur-fd. Una cosa importante a tener en cuenta es que, para que todo vaya bien, tanto el server como el cliente deben “verse” en la red. Al conectarse para hacer una copia, el Director daemon del server se conecta con el File daemon del cliente, pero luego es el File daemon del cliente el que se conecta al Storage daemon del server para enviar la información de la copia.

*status storage
Automatically selected Storage: File
Connecting to Storage daemon File at linux-bprd:9103

linux-bprd-sd Version: 5.0.2 (28 April 2010) i686-pc-linux-gnu suse 11.2
Daemon started 11-nov-10 11:45, 12 Jobs run since started.
 Heap: heap=540,672 smbytes=217,043 max_bytes=293,064 bufs=82 max_bufs=111
Sizes: boffset_t=8 size_t=4 int32_t=4 int64_t=8

Running Jobs:
No Jobs running.

Device status:
Device "FileStorage" (/home/isildur/copias) is not open.
====

Used Volume status:
====

====

Nos indica el estado de los medios de almacenamiento. Nos dice que “FileStorage is not open”. Para arreglar esto utilizamos el comando label. Si lo ejecutas, verás que te pide el nombre y el tipo, que puede ser Default, File o Scratch. Selecciona Default. Le he puesto de nombre “defecto”.

*run
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: BackupCatalog
     3: RestoreFiles
     4: Isildur
Select Job resource (1-4): 4
Run Backup job
JobName:  Isildur
Level:    Incremental
Client:   Isildur-fd
FileSet:  Full Set
Pool:     Default (From Job resource)
Storage:  File (From Job resource)
When:     2010-11-11 14:02:03
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=14
*
11-nov 14:02 linux-bprd-dir JobId 14: Start Backup JobId 14, Job=Isildur.2010-11-11_14.02.08_23
11-nov 14:02 linux-bprd-dir JobId 14: Using Device "FileStorage"
11-nov 13:04 Isildur-fd JobId 14: Advertencia: DIR and FD clocks differ by -3442 seconds, FD automatically compensating.
11-nov 14:02 linux-bprd-sd JobId 14: Volume "defecto" previously written, moving to end of data.
11-nov 14:02 linux-bprd-sd JobId 14: Ready to append to end of Volume "defecto" size=1425627
11-nov 14:02 linux-bprd-sd JobId 14: Job write elapsed time = 00:00:01, Transfer rate = 99  Bytes/second
11-nov 14:02 linux-bprd-dir JobId 14: Bacula linux-bprd-dir 5.0.2 (28Apr10): 11-nov-2010 14:02:11
  Build OS:               i686-pc-linux-gnu suse 11.2
  JobId:                  14
  Job:                    Isildur.2010-11-11_14.02.08_23
  Backup Level:           Incremental, since=2010-11-11 13:38:34
  Client:                 "Isildur-fd" 5.0.2 (28Apr10) i686-pc-linux-gnu,ubuntu,9.10
  FileSet:                "Full Set" 2010-07-13 13:19:49
  Pool:                   "Default" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "File" (From Job resource)
  Scheduled time:         11-nov-2010 14:02:03
  Start time:             11-nov-2010 14:02:10
  End time:               11-nov-2010 14:02:11
  Elapsed time:           1 sec
  Priority:               10
  FD Files Written:       1
  SD Files Written:       1
  FD Bytes Written:       0 (0 B)
  SD Bytes Written:       99 (99 B)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         defecto
  Volume Session Id:      13
  Volume Session Time:    1289472350
  Last Volume Bytes:      1,426,122 (1.426 MB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

11-nov 14:02 linux-bprd-dir JobId 14: Begin pruning Jobs older than 6 months .
11-nov 14:02 linux-bprd-dir JobId 14: No Jobs found to prune.
11-nov 14:02 linux-bprd-dir JobId 14: Begin pruning Jobs.
11-nov 14:02 linux-bprd-dir JobId 14: No Files found to prune.
11-nov 14:02 linux-bprd-dir JobId 14: End auto prune.

*

Es la orden para lanzar la copia de seguridad. Las opciones que da son las configuradas como Jobs en el fichero bacula-dir.conf. La 4 es la que me interesa. El resultado es que se ha creado un fichero “defecto” en la ruta /home/isildur/copias, ya que configuré esta ruta en el fichero bacula-sd.conf.

Todo a ido bien. Así que probaremos el restore.

Hacer Restore sobre el cliente Ubuntu 10.4

Ejecutamos, en la consola:

*restore
To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel
Select item:  (1-13):

Como se ve, hay muchas opciones. Voy a elegir la 1:

Select item:  (1-13): 1
+-------+---------------+---------------------+----------+----------+----------+
| JobId | Client        | StartTime           | JobLevel | JobFiles | JobBytes |
+-------+---------------+---------------------+----------+----------+----------+
| 10    | Isildur-fd    | 2010-11-11 13:16:07 | F        | 41       | 705654   |
| 3     | linux-bprd-fd | 2010-11-11 12:01:08 | F        | 1        | 16608    |
+-------+---------------+---------------------+----------+----------+----------+
To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel

Me presenta las copias, que sólo tengo dos, y la que me interesa es la de JobId 10. Para seleccionarla, utilizaré la opción 3 del menú:

Select item:  (1-13): 3
Enter JobId(s), comma separated, to restore: 10
You have selected the following JobId: 10

Building directory tree for JobId(s) 10 ...
37 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /
$

Lo que ha hecho bacula es montar la copia de seguridad como un sistema de ficheros, por el que podemos navegar y utilizar los comandos cd y ls. La idea es ir “marcando” los ficheros que quiero restaurar. Para ello tengo los comandos mark y unmark. Si quisiese marcar toda la copia de seguridad, puedo utilizar mark all. Cuando acabo de marcar, ejecuto el comando done:

cwd is: /
$ ls
home/
$ pwd
cwd is: /
$ cd home
cwd is: /home/
$ ls
isildur/
$ cd isildur
cwd is: /home/isildur/
$ ls
bacula/
$ cd bacula
cwd is: /home/isildur/bacula/
$ ls
bin/
para-copias/
$ cd para-copias
cwd is: /home/isildur/bacula/para-copias/
$ ls
fichero1
fichero2
$ mark ./fichero2
No files marked.
$ mark fichero2
1 file marked.
$ done
Bootstrap records written to /home/isildur/bacula/bin/working/linux-bprd-dir.restore.1.bsr

The job will require the following
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================

    defecto                   File                      FileStorage

Volumes marked with "*" are online.

1 file selected to be restored.

Lo siguiente es decir a qué cliente quiero restaurar. Elijo Isildur-fd:

efined Clients:
     1: Isildur-fd
     2: linux-bprd-fd
Select the Client (1-2): 1
Run Restore job
JobName:         RestoreFiles
Bootstrap:       /home/isildur/bacula/bin/working/linux-bprd-dir.restore.2.bsr
Where:           /tmp/bacula-restores
Replace:         always
FileSet:         Full Set
Backup Client:   Isildur-fd
Restore Client:  Isildur-fd
Storage:         File
When:            2010-11-11 13:53:17
Catalog:         MyCatalog
Priority:        10
Plugin Options:  *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=13
*messages
11-nov 13:53 linux-bprd-dir JobId 13: Start Restore Job RestoreFiles.2010-11-11_13.53.50_22
11-nov 13:53 linux-bprd-dir JobId 13: Using Device "FileStorage"
11-nov 13:53 linux-bprd-sd JobId 13: Ready to read from volume "defecto" on device "FileStorage" (/home/isildur/copias).
11-nov 13:53 linux-bprd-sd JobId 13: Forward spacing Volume "defecto" to file:block 0:199.
11-nov 13:53 linux-bprd-sd JobId 13: End of Volume at file 0 on device "FileStorage" (/home/isildur/copias), Volume "defecto"
11-nov 13:53 linux-bprd-sd JobId 13: End of all volumes.
11-nov 13:53 linux-bprd-dir JobId 13: Bacula linux-bprd-dir 5.0.2 (28Apr10): 11-nov-2010 13:53:53
  Build OS:               i686-pc-linux-gnu suse 11.2
  JobId:                  13
  Job:                    RestoreFiles.2010-11-11_13.53.50_22
  Restore Client:         Isildur-fd
  Start time:             11-nov-2010 13:53:52
  End time:               11-nov-2010 13:53:53
  Files Expected:         1
  Files Restored:         1
  Bytes Restored:         0
  Rate:                   0.0 KB/s
  FD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Restore OK

11-nov 13:53 linux-bprd-dir JobId 13: Begin pruning Jobs older than 6 months .
11-nov 13:53 linux-bprd-dir JobId 13: No Jobs found to prune.
11-nov 13:53 linux-bprd-dir JobId 13: Begin pruning Jobs.
11-nov 13:53 linux-bprd-dir JobId 13: No Files found to prune.
11-nov 13:53 linux-bprd-dir JobId 13: End auto prune.

*

Con messages veo todo lo que ha ocurrido. Ha ido bien, y puedo comprobar que en la ruta (del ordenador cliente) que indica…

Where:           /tmp/bacula-restores

Está la restauración. Para ello tengo que ir a ella con permisos de root. Está allí. Todo OK.

About these ads

Acerca de Isildur Fuentes

Apasionado de las buenas historias y aikidoka de la tierra.

Publicado el noviembre 11, 2010 en Utilidades de administración y etiquetado en , , , , , . Guarda el enlace permanente. Deja un comentario.

Los comentarios están cerrados.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 183 seguidores

%d personas les gusta esto: