miércoles, 25 de junio de 2014

Copiar servidor completo y restaurar la copia de seguridad en otro servidor Linux

Linux es un sistema operativo de código abierto tipo Unix. Como tal es sencillo el poder realizar copias de seguridad del sistema para preservar la configuración y los datos del mismo; y poder restaurar esta copia en otro sistema puesto que el núcleo de Linux es compatible con una amplia variedad de hardware.

Recientemente, en mi tarea de trabajo habitual he tenido que administrar el dominio r1hotels.com y como todo buen administrador de sistemas sabe, se ha de crear una copia de seguridad del sistema completo para evitar desastres.

En nuestro caso se planteo el hecho de copiar el servidor de forma completa, incluido el MBR, y restaurar la copia en un segundo servidor de reserva. Nuestro servidor era un Linux CentOS 6.5. Veamos cómo podemos realizar esta tarea:

Requisitos previos

Yo os aconsejo, si tenéis acceso físico al server, que conectéis una unidad externa con suficiente espacio para hacer la copia ya que está ocupará una gran cantidad de espacio (Tanto como espacio ocupe el sistema completo del servidor a copiar). Si lo hacéis dentro del servidor se os puede llenar el disco duro.

Hay multitud de programas de copias de seguridad, pero nosotros lo haremos a la vieja usanza, con TAR. Este programa está presente en todas las versiones Linux y se puede utilizar para hacer una copia de seguridad de un servidor completo y restaurarlo en otro sistema, usando el comando dd para realizar la copia de seguridad del registro de inicio principal o MBR.

Conectar unidad externa al sistema:

Conecta e instala la unidad externa al sistema Linux. Si no sabes cómo hacerlo consulta el manual de la unidad. Si lo vas ha hacer de forma directa dentro del servidor, asegúrate que la partición donde vas a guardar la copia tiene espacio suficiente.

Copiar el MBR

Desde la terminal de Linux se ha de escribir el siguiente comando para copiar el MBR:

#su -c 'dd if=/dev/sda of=/path/to/externaldrive/sdabk.mbr count=1 bs=512'

Cambie "/ruta/a_guardar/copia/" por la ruta de acceso al disco duro o a la partición en la cual quieres guardar la copia. (Las comillas del comando han de ser incluidas).

Realizar la copia de seguridad del sistema

Desde la terminal de Linux se ha de escribir el siguiente comando para hacer la copia completa del sistema:

#su -c 'tar -cvpzf /ruta/a_guardar/copia/linuxbackup.tgz --exclude=/path/to/external --exclude=/lost+found --exclude=/dev --exclude=/proc --exclude=/sys /'

Cambie "/ruta/a_guardar/copia/" por la ruta de acceso al disco duro o a la partición en la cual quieres guardar la copia. (Las comillas del comando han de ser incluidas).

Este comando va a crear un archivo denominado "linuxbackup.tgz" en la ruta especificada el cual es una copia completa del sistema.

Enviar la copia de seguridad de un servidor origen a otro destino mediante ssh

A partir de este momento trabajaremos en el servidor de destino.

Si conectaste una unidad externa no has de realizar este paso, simplemente conecta la unidad al servidor de destino.

Si realizaste la copia a una partición del servidor has de utilizar el siguiente comando para copiar con SCP a través de ssh:

#scp usuario@x.x.x.x:]/ruta/de/copia/ /ruta/a_guardar/copia/

Reemplaza "usuario" por el usuario con permisos de lectura en el servidor origen, x.x.x.x por la dirección ip o el nombre de host del servidor de origen, "/ruta/de/copia/" por la ruta donde está la copia en el servidor origen y "/ruta/a_guardar/copia/" por la ruta donde se guardará la copia en el servidor de destino.

Recuerda que dependiendo del tamaño de la copia esta tarea puede durar varias horas. En nuestro caso fuero 27h.

Restaurar el MBR en el servidor de destino

Desde la terminal de Linux del servidor destino has de escribir el siguiente comando para restaurar el MBR:

#dd if=/ruta/a_guardar/sdabk.mbr of=/dev/sda

Cambie "/ruta/a_guardar/copia/" por la ruta de acceso al disco duro o a la partición desde la cual quieres restaurar la copia.

Restaurar la copia de seguridad completa en el servidor de destino

Desde la terminal de Linux del servidor destino has de escribir el siguiente comando para restaurar la copia completa del sistema:

#su -c 'tar -xvpzf /ruta/a_guardar/copia/linuxbackup.tgz -C /'

Cambie "/ruta/a_guardar/copia/" por la ruta de acceso al disco duro o a la partición desde la cual quieres restaurar la copia. (Las comillas del comando han de ser incluidas).

¡Advertencia! Asegúrate de introducir el comando en el servidor correcto, el de destino, porque esto borrará todo el sistema y lo reemplazará por la copia de seguridad.


Crear los directorios excluidos

Desde la terminal de Linux ha de escribir el siguiente comando para crear los directorios excluidos en la copia:

#su -c 'mkdir /proc && mkdir /lost+found && mkdir /dev && mkdir /sys && init 6/'

Con esto se crearan los directorios excluidos en la copia y se reiniciará el sistema. El servidor es ahora idéntico al de origen.

Saludos curiosos.

No hay comentarios:

Install Drupal 8 in CentOS

Drupal is an open source, flexible, highly scalable and secure Content Management System (CMS) which allows users to easily build and create...