• No se han encontrado resultados

Proceso de clonación

Solución elegida

2.1.2.1 Proceso de clonación

A continuación, se detallará el proceso a seguir para realizar la clonación completa del escenario propuesto. En

17

ANEXO A: Clonación de RAID mediante Software se proporciona un script que realiza automáticamente todos los pasos que se detallan.

Los pasos que se siguen son los siguientes:

1. Clonar el contenido de la partición con datos: en este ejemplo será /dev/md0. Para ello se utiliza la herramienta fsarchiver. Entre otras características de esta herramienta se encuentran la de restaurar posteriormente sobre discos con un tamaño menor que el original, clonar sistemas de archivos ext4 y ejecutar la compresión del archivo de backup de forma automática.

fsarchiver -j2 -v savefs md0_backup /dev/md0

Los argumentos usados son:

-j2 Indica el número de hilo que se usará en el proceso clonación. Permite que el proceso se realice de manera más rápida si se dispone de un procesador con varios núcleos. El número 2 indica que se utilizan 2 núcleos.

-v Activa el modo verboso para poder ver el progreso de la clonación. savefs Indica que se va a realizar la clonación de un sistema de archivos.

md0_backup Indica el archivo sobre el que se quiere volcar el contenido de la clonación. /dev/md0 Indica el dispositivo que se quiere clonar.

2. Clonar el registro de arranque maestro (MBR) de los discos /dev/sda y /dev/sdb. Para ello se hará uso de la herramienta dd que permite clonar exactamente un número determinado de bytes. Esta propiedad es muy útil al conocer que el MBR se encuentra alojado en los primeros 512B de los discos.

dd if=/dev/sda of=backup_sda_MBR.dd bs=512 count=1 dd if=/dev/sdb of=backup_sdb_MBR.dd bs=512 count=1 Los argumentos usados son:

if=/dev/sdX Indica el origen de donde se leerán los bytes.

of=backup_sda_MBR.dd Indica el destino sobre el que se volcarán los bytes leídos.

bs=512 Indica el tamaño del bloque de los datos que leerán del origen y que se escribirán en el destino de una vez. Si no se pone ningún sufijo, se estará indicando en bytes. El valor en 512 por ser el tamaño del MBR.

count=1 Indica el número de bloques que se copiarán.

3. Clonar la tabla de particiones de los discos /dev/sda y /dev/sdb. Para ello se utilizará la herramienta sfdisk[6] que permite realizar la clonación de la tabla de partición a un archivo de forma sencilla únicamente mediante un comando.

Plan de recuperación y contingencia de pérdidas de datos

18

sfdisk -d /dev/sda > backup_sda.sfdisk sfdisk -d /dev/sdb > backup_sdb.sfdisk Los argumentos usados son:

-d Indica que se imprima por la salida la tabla de particiones con el formato adecuado para usarse como entrada del comando sfdisk y así recrear la tabla de particiones.

/dev/sdX Indica el dispositivo del cual se quiere clonar la tabla de particiones.

4. Calcular la ubicación de los superbloques que contienen la información de los RAIDs /dev/md0 y /dev/md1. Para ello se hará uso de la herramienta mdadm con la cual se administran los RAIDs software. En el

19

5. ANEXO A: Clonación de RAID mediante Software se detallará que es el super bloque y porque es necesario clonarlo.

Para conocer la ubicación del superbloque, primero se debe escoger a uno de los dispositivos que compongan el RAID. Para el RAID /dev/md0 se cogerá la partición /dev/sda1 y para /dev/md1, la partición /dev/sda5.

mdadm -E /dev/sda1 mdadm -E /dev/sda5 El argumento usado es:

-E Indica que se quiere ver el contenido de los metadatos /dev/sdX Indica el dispositivo del cual se quiere obtener los metadatos.

Tras ejecutar el primero de los comandos se obtendrá un resultado como el siguiente:

Ilustración 2-4 Resultado del comando mdadm sobre /dev/sda1

De este resultado se debe guardar el valor del camp Super Offset que indica a que distancia desde el comienzo de la partición /dev/sda1 se encuentra el superbloque. Este será igual para la partición /dev/sdb1. El valor de offset es de 8 sectores.

Plan de recuperación y contingencia de pérdidas de datos

20

Tras ejecutar el segundo comando se obtendrá un resultado como el siguiente:

Ilustración 2-5 Resultado del comando mdadm sobre /dev/sda5

Se deberá guardar el mismo valor para /dev/sda5 y /dev/sdb5. El valor de offset es de 8 sectores.

En este ejemplo, los valores coinciden, pero no tiene por qué ser así. En este caso ocurre porque la versión de los superbloques es para ambos RAIDs la v1.2.

6. Calcular el tamaño de los sectores para cada dispositivo que compone los RAIDs. cat /sys/block/sda/queue/hw_sector_size

cat /sys/block/sdb/queue/hw_sector_size El resultado obtenido es el siguiente:

Ilustración 2-6 Resultado del cálculo de tamaño de sectores Esto indica que tanto el dispositivo /dev/sda y /dev/sba tienen sectores de 512B.

21

7. Clonar los superbloques de todos los dispositivos que componen los diferentes RAIDs. Para ello se usará de nuevo la herramienta dd que permite indicar el punto concreto desde donde comenzar la lectura de información para la clonación.

dd if=/dev/sda1 of=sda1_superblock.dd count=1 bs=512 skip=8 dd if=/dev/sdb1 of=sdb1_superblock.dd count=1 bs=512 skip=8 dd if=/dev/sda5 of=sda5_superblock.dd count=1 bs=512 skip=8 dd if=/dev/sdb5 of=sdb5_superblock.dd count=1 bs=512 skip=8 Los argumentos usados son:

if=/dev/sdX Indica el origen desde donde se leerán los bytes.

of= backup_sda_MBR.dd Indica el destino sobre el que se volcarán los bytes leídos.

bs=512 Indica el tamaño del bloque de datos que se leerá del origen y se escribirá en el destino de una vez. Por defecto, si no se pone ningún sufijo, se estará indicando en bytes. En este caso serán 512 al ser el tamaño de los sectores de los discos. count=1 Indica el número de bloques que se copiarán. Este será calculado en función

del número de dispositivos que compongan el RAID.

skip=8 Indica cuántos bloques se saltarán antes de comenzar la lectura de los datos en el origen. Este valor será el que indique el campo Super Offset calculado en el paso 4.

En este punto será necesario calcular el tamaño de los bloques y el número de bloque a copiar. Para ello hay que aplicar la siguiente fórmula:

𝑇𝑠= 260 + 2 × 𝑁𝑑

Donde Ts será el número de bytes que ocupa el superbloque y Nd el número de dispositivos que forman el RAID.

Esto nos indica cuántos bloques del tamaño de los sectores serán necesario clonar. No debe importar si se clona más información de la que forma parte estrictamente del superbloque porque no influirá en el procedimiento de restauración.

8. Para finalizar, al poseer una partición swap en /dev/md1, se necesita guardar su UUID y su etiqueta, si la tuviera, para poder recrearla correctamente. Para ello, se utilizará la herramienta blkid[7] que indica esta información.

blkid /dev/md1 El argumento usado es:

/dev/sdX Indica el dispositivo del cual se quiere obtener su UUID y su etiqueta

El resultado del comando anterior será el siguiente:

Ilustración 2-7 Resultado de la consulta de UUID y etiqueta del RAID /dev/md1 De donde debemos guardar el valor del campo LABEL y del campo UUID.

Plan de recuperación y contingencia de pérdidas de datos

22