Pasar de un linux corriendo en un disco a dos discos en RAID 1

Tags:
Su voto: Ninguno Promedio: 5 (1 vote)

El procedimiento se desarrollo para ser implementado en un servidor en producción instalado con un solo disco se desea obtener un arreglo RAID 1 por software para tener redundancia en los datos.  Debido a la escasa ventana de mantenimiento, volumen de información contenida en el mismo y el tiempo que llevo configurar todos los servicios, reinstalar no es la mejor de las opciones.

Requerimientos:

Un equipo corriendo linux.  Un disco libre de igual o mayor capacidad al que se encuentra en uso en el sistema, instalado en el equipo.

Conocimientos intermedios de linux.  Particionado de discos y configuración de Grub.

Procedimiento:

Como para llevar adelante esta actividad se deben ejecutar actividades como ROOT casi en forma continua lo más práctico es invocar el comando "su -" para evitar estar escribiendo sudo todo el tiempo.

< sudo su -

Se debe actualizar el sistema para trabajar con la última versión de las utilidades para el manejo de discos y kernel.

< apt-get update
< apt-get upgrade

Finalizada la actualización se debe instalar "mdadm"

< apt-get install -y mdadm

A continuación se procederá a ver el estado del disco que se encuentra en uso por el sistema (sda).

< fdisk -l /dev/sda
> Disk /dev/sda: 10.7 GB, 10737418240 bytes
> 255 heads, 63 sectors/track, 1305 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> Disk identifier: 0x0009b6c1
>
> Device Boot      Start         End      Blocks   Id  System
> /dev/sda1               1         122      979933+  82  Linux swap / Solaris
> /dev/sda2   *         123         184      498015   83  Linux
> /dev/sda3             185         549     2931862+  83  Linux
> /dev/sda4             550        1305     6072570   83  Linux

Se copia la tabla de particiones y el sector de arranque de un disco al otro.  Se puede hacer con sfdisk, pero con dd también se pasa el arranque del Grub que se aloja en el MBS

< dd if=/dev/sda of=/dev/sdb bs=512 count=1

Se verifica el estado de las particiones del disco nuevo (sdb).  Donde se observa la correcta transferencia de las particones.

< fdisk -l /dev/sdb
> Disk /dev/sdb: 10.7 GB, 10737418240 bytes
> 255 heads, 63 sectors/track, 1305 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> Disk identifier: 0x00000000
>
>   Device Boot      Start         End      Blocks   Id  System
> /dev/sdb1               1         122      979933+  82  Linux swap / Solaris
> /dev/sdb2   *         123         184      498015   83  Linux
> /dev/sdb3             185         549     2931862+  83  Linux
> /dev/sdb4             550        1305     6072570   83  Linux

Se deben modificar el tipo de las particiones del disco sdb para que puedan formar parte del raid.   Esto se hace con el comando "fdisk".

< fdisk /dev/sdb
> The number of cylinders for this disk is set to 1305.
> There is nothing wrong with that, but this is larger than 1024,
> and could in certain setups cause problems with:
> 1) software that runs at boot time (e.g., old versions of LILO)
> 2) booting and partitioning software from other OSs
> (e.g., DOS FDISK, OS/2 FDISK)

Para cambiar el tipo de la particion se debe ejecutar el comando t dentro del prompt que brinda el fdisk.  En este caso se selecciona la particion "2" y se asigna el tipo de particion "fd".

> Command (m for help): 
< t
> Partition number (1-4):
< 2
> Hex code (type L to list codes):
< fd
> Changed system type of partition 2 to fd (Linux raid autodetect)

Lo mismo para la partición 3 del disco.

> Command (m for help): 
< t
> Partition number (1-4):
< 3
> Hex code (type L to list codes):
< fd
> Changed system type