Crear RAID1 en Linux (Debian)

En donde estoy haciendo las prácticas están haciendo una restructuración de lo que es todo el tinglado informático. Empiezan a virtualizar todos los servidores que tenían etc…

Anteriormente ya me habían pedido que les montase un enrutador para dar conexión a los equipos de una habitación que querían tenerlos en una red distinta.

Ahora me pidieron que cogiese uno de los servidores que ya no usarían (por lo de que ahora está virtualizado y tal…) y montase un NAS en el que tuviese un disco para el sistema y luego otros 2 formando un RAID1 para usarlo para lo que viene siendo la tarea del NAS, almacenamiento.

El sistema operativo es GNU/Linux Debian.

Montar un RAID1 no es algo complejo. Serían esos dos discos con una única partición que estarían espejados.

El primer paso será instalar el software necesario. En el caso de Debian, se encuentra todo en los repositorios.

apt-get install initramfs-tools mdadm

Durante este paso aparecerá una ventana diciendo: “MD arrays needed for the root filesystem” en donde marcaremos “all” que viene por defecto.

Una vez hayamos instalado el software necesario, para no tener que reiniciar, activamos los módulos necesarios del kernel para montar el raid

modprobe md

modprobe linear

modprobe multipath

modprobe raid1

Como ya dije, en este caso los dos discos tendrán una única partición que se usará para datos, pero pueden tener las particiones que queráis.

Para crear la partición usamos fdisk o lo que prefiráis. Solo es necesario particionar uno de los discos. Más abajo veréis por qué.

fdisk /dev/sdb  ->  Creo la partición en el dispositivo 1 del RAID

Para quien no sepa usar fdisk, para listar las opciones escribe la letra “m”, para borrar una partición “d” y para crear una nueva “n”

Antes dije que solo era necesario crear la partición en uno de los dispositivos. Esto es así porque ahora usaremos el siguiente comando para copiar tal cual la tabla de particiones de uno a otro.

sfdisk -d /dev/sdb | sfdisk /dev/sdc

Procedemos a cambiar el tipo de partición de nuestro segundo dispositivo para ponerlo en la de tipo “Linux RAID Autodetect”

fdisk /dev/sdc

Para cambiar el tipo de partición metemos la opción “t”. Luego nos preguntarán por el código hexadecimal del tipo de partición,  metemos “fd”, que es el código que le corresponde a “Linux RAID Autodetect”. Guardamos los cambios y salimos con “w”.

Comprobamos que no haya un RAID anterior con el siguiente comando (Debe sacar un error)

mdadm –zero-superblock /dev/sdc1

ATENCIÓN: Se hace a la primera partición del dispositivo 2 del RAID en mi caso, en otros casos se haría con todas las particiones del segundo dispositivo

Creamos el RAID:

mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdc1

El comando crea un RAID de nivel 1 compuesto por dos discos.

NOTA: Sé que ese comando tal como está es más bien destinado a RAIDs que en ese momento uno de los discos está siendo usado por el sistema, pero no habría problema.

Ahora hacemos una copia del archivo de configuración de “mdadm”

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.backup

Y examinamos en busca del raid para añadirlo a dicho archivo

mdadm –examine –scan >> /etc/mdadm/mdadm.conf

Teniendo el archivo de configuración ya modificado (en mi caso añadió una linea al final donde aparece el raid que voy a montar) procedemos a repetir el paso donde cambiamos el tipo de partición de nuestro segundo dispositivo a tipo “Linux RAID Autodetect”. Ahora lo hacemos con el otro

fdisk  /dev/sdb

Para cambiar el tipo de partición metemos la opción “t”. Luego nos preguntarán por el código hexadecimal del tipo de partición,  metemos “fd”, que es el código que le corresponde a “Linux RAID Autodetect”. Guardamos los cambios y salimos con “w”.

El siguiente paso será añadir este primer dispositivo al RAID que ya está creado (md0). Ejecutamos:

mdadm –add /dev/md0 /dev/sdb1

Esta tarea tardará bastante (dependiendo del tamaño del disco), así que para ver como va el proceso podemos hacer:

watch -n 1 “cat /proc/mdstat”

Una vez haya finalizado solo queda hacer lo siguiente:

cp /etc/mdadm/mdadm.conf.backup /etc/mdadm/mdadm.conf ->  Copiamos el archivo original sobreescribiendo el que modificamos antes

mdadm –examine –scan >> /etc/mdadm/mdadm.conf -> Volvemos a escanear en busca del RAID

En este punto ya está todo listo y funcionando. Si fuese encesario ahora es el momento de formatear usando “mkfs.ext3 /dev/md0″ o lo que quieras.

En mi caso no lo haré debido a que este NAS va a tener instalado iSCSI Enterprise Target para funcionar con Vmware ESXi, por lo que requiere que no tenga ningún formato ya que ESXi no reconoce ext3 y ya él se encarga de formatear en el formato de vmware.

En el siguiente tutorial explicaré como instalar iSCSI Enterprise Target y cómo añadirlo a un servidor Vmware.

Hasta la próxima!!


2 Comments

  1. El tema es que este metodo no entiendo si funciona tambien para discos ya instalados. Teniendo un disco instalado /dev/sda con sus particiones (en mi caso 2 /dev/sda1 y /dev/sda2) y teniendo un segundo disco /dev/sdb he creado el raid incluyendo y copiando la tabla de particiones a /dev/md0 y /dev/md1 para mis particiones /dev/sdb1 /dev/sdb2 (del segundo disco) marcadas como linux raid autodetect. Me informa mdadm que estan instaladas ya, pero hacia el final de tu tutorial mencionas el formatear el raid (o el paso que agrega la particion del primer disco al raid) la que tarda mucho. Me queda la duda si perdere o no los datos de mis particiones primarias /dev/sda1 y /dev/sda2 al momento de agregarlas a los raids correspondientes.

    Gracias.

  2. A ver, primero tendrias que copiar la tabla de particiones del primer disco al segundo (el segundo deberia estar sin particiones). Entonces ahora estan los dos discos iguales.

    Ahora es cuando se crea el RAID y se añade el segundo disco (el segundo disco va primero), luego añades el segundo y no perderias nada porque todos los datos se estan duplicando, no estas formateando en ningun momento

    Espero haberte aclarado un poco, si no, pregunta otra vez, aqui estare

Leave a Reply


Powered by WP Hashcash