Backup bootable con REAR para clonar un servidor Linux

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Recientemente, me hicieron la pregunta de si es posible clonar un servidor Linux que está en un CPD a otro CPD. En concreto, me planteaban si podía clonar un servidor de Amazon AWS, ya que no es posible exportar una imagen de Amzon EC2 de un servidor que ha sido creado dentro de la infraestructura de Amazon desde el inicio.

[[email protected] ~]# aws ec2 create-instance-export-task –instance-id i-0093481eeaab71526 –target-environment vmware –export-to-s3-task DiskImageFormat=VMDK,ContainerFormat=ova,S3Bucket=puerto53.com-backup,S3Prefix=puerto53

An error occurred (NotExportable) when calling the CreateInstanceExportTask operation: Only imported instances can be exported.

[[email protected] ~]#

Así que para realizar un primer procedimiento, me monté en mi PC local un servidor virtual con VMWare Workstation con un CentOS 7 que sería el que clonaría.

Para clonarlo utilizaría REAR – Relax and Recover, una herramienta de la que ya hablo en el artículo Creación de backups bootables con REAR. A partir de RedHat 7, esta herramienta ya viene distribuida con el sistema operativo sin que haga falta acceder a repositorios de terceros para instalarla.

Configuración de REAR (Relax and Recover) en el servidor que quiero clonar

La idea es crear una imagen ISO bootable y una copia de seguridad de todos los datos que quiero copiar. En este caso concreto, no me interesa guardar los datos en ningún servidor externo, si no en un directorio local del sistema, ya que el tar generado me lo llevaré al  CPD de destino donde crearé el servidor clonado. Por lo tanto, configuramos el fichero /etc/rear/local.conf para que guarde la ISO y los datos en local:

[[email protected] ~]# cat /etc/rear/local.conf
HOSTNAME=$(hostname)
TIMESTAMP=$(date +%Y%m%d_%H%M)
OUTPUT=ISO
ISO_DIR=/mnt/hgfs/david
BACKUP_PROG=tar
OUTPUT_URL=file:///mnt/hgfs/david/$HOSTNAME
BACKUP=NETFS
BACKUP_URL=file:///mnt/hgfs/david/$HOSTNAME
ONLY_INCLUDE_VG=( «vg00» )
# Excluir directorios (no filesystems)
BACKUP_PROG_EXCLUDE=( ‘/tmp/*’ ‘/dev/shm/*’ ‘/CentOS_7.4.1708’ ‘/app’ )

[[email protected] ~]#

Una vez configurado el fichero como me interesa, ejecuto la copia de seguridad que creará el fichero ISO bootable:

[email protected] ~]# /usr/sbin/rear -v mkbackup
Relax-and-Recover 2.00 / Git
Using log file: /var/log/rear/rear-centostst1.log
Using backup archive '/mnt/hgfs/david/centostst1/centostst1/backup.tar.gz'
Creating disk layout
Excluding Volume Group vgtemp
Excluding component fs:/mnt/hgfs
Creating root filesystem layout
TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD in your configuration file
Copying logfile /var/log/rear/rear-centostst1.log into initramfs as '/tmp/rear-centostst1-partial-2018-05-16T10:50:16+0200.log'
Copying files and directories
Copying binaries and libraries
Copying kernel modules
Creating initramfs
Making ISO image
Wrote ISO image: /mnt/hgfs/david/rear-centostst1.iso (154M)
Copying resulting files to file location
Saving /var/log/rear/rear-centostst1.log as rear-centostst1.log to file location
Creating tar archive '/mnt/hgfs/david/centostst1/centostst1/backup.tar.gz'
Archived 3460 MiB [avg 4244 KiB/sec] OK
Archived 3460 MiB in 836 seconds [avg 4239 KiB/sec]
[[email protected] ~]#

Clonación del servidor Linux en una nueva maquina virtual

Guardo los ficheros generados en el punto anterior en un servidor del CPD de destino de la misma red:

[[email protected] centostst1]# ll
total 3920172
-rwxrwxrwx 1 root root 29689199 May 16 11:05 backup.log
-rwxrwxrwx 1 root root 3640768112 May 16 11:05 backup.tar.gz
-rwxrwxrwx 1 root root 202 May 16 10:51 README
-rwxrwxrwx 1 root root 171782144 May 16 10:51 rear-centostst1.iso
-rwxrwxrwx 1 root root 209606 May 16 10:51 rear-centostst1.log
-rwxrwxrwx 1 root root 268 May 16 10:51 VERSION
[[email protected] centostst1]#

El fichero rear-centostst1.iso contiene la ISO bootable, mientras que el fichero backup.tar.gz contiene la copia de seguridad de los datos del sistema.

Creo un servidor nuevo con VMWare pero no instalo el sistema operativo. Se puede elegir instalarlo más tarde.

En VMWare, indico que el servidor va a arrancar con la ISO de rear y arranco el servidor:

Obviamente, cuando REAR intente buscar el archivo backup.tar.gz fallará porque en el nuevo CPD no existe el directorio donde lo guardé en el CPD origen. No importa, no es ningún problema.

Anteriormente, comentaba que había guardado la copia de seguridad en un servidor de la misma red. Recordemos las directivas del fichero local.conf, comentadas anteriormente:

OUTPUT_URL=file:///mnt/hgfs/david/$HOSTNAME
BACKUP=NETFS
BACKUP_URL=file:///mnt/hgfs/david/$HOSTNAME

Restaurando la copia de seguridad bootable en el servidor de destino

Desde el servidor que estoy clonando, como ya he arrancado con la ISO de rear, ya tengo shell, así que me conecto por SFTP al servidor donde guardo el fichero backup.tar.gz (generado con REAR) y me descargo los binarios de NFS y monto por NFS el FS donde reside el fichero gz en el mismo punto de montaje donde REAR va a ir a buscarlo.

  • Por último, comienzo la restauración del sistema.

Esperamos un ratito a que finalice la restauración.

Una vez restaurado el sistema, desactivamos el CD y rebotamos el sistema para que arranque del disco local.

Si no te arranca, es probable que en el /etc/fstab debas eliminar alguna entrada, de algún FS de SAN, por ejemplo.

Te puede interesar

Contratar un servidor virtual privado administrado

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author