lunes, 3 de noviembre de 2008

Crear Raid por software

Crear RAID 0 y RAID 1 con mdadm

Preparar el disco duro

Se va a crear un RAID-0 o un RAID-1. Para RAID-5 necesitará añadir más discos. Cree una particion en cada disco con el máximo tamaño:

Hay que hacer los mismos pasos para todos los discos que vayan a formar el RAID:

#fdisk /dev/dispositivo (hda, hdb, sda,sdb, etc...)
d y nº partición para borrar todas las existentes.
n para crear una nueva, p para decirle que es primaria y
1 para decirle que es la1ª.
t para indicar el tipo, fd que es el que corresponde a Linux RAID autodetect
w para escribir los cambios en la tabla del disco y salir

Device Boot Start End Blocks Id System
/dev/hda1 1 79780 40209088+ fd Linux raid autodetec

RAID-0 (¡sin redundancia!)

Use mdadm para crear un RAID-0:

mdadm --create /dev/md0 --chunk=64 --level=raid0 --raid-devices=2 /dev/hda1 /dev/hdc1

# cat /proc/mdstat
Personalities : [raid0]
read_ahead 1024 sectors
md0 : active raid0 hdc1[1] hda1[0]
80418048 blocks 128k chunks

RAID-1 (¡con redundancia!)

Use mdadm para crear un RAID-1:

mdadm --create /dev/md0 --chunk=64 --level=raid1 --raid-devices=2 /dev/hda1 /dev/hdc1

# cat /proc/mdstat
Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[1] hda1[0]
40209024 blocks [2/2] [UU]
[>....................] resync = 0.7% (301120/40209024) finish=17.6min speed=37640K/sec

Antes de reiniciar tiene que esperar a que se complete la sincronización

Guarde la información de los arrays recien creados

# mdadm --detail --scan >> /etc/mdadm.conf
# cat /etc/mdadm.conf
DEVICE /dev/hd* /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=d876333b:694e852b:e9a6f40f:0beb90f9

Obtener información sobre los dispositivos RAID y los discos
Mostrar el estado actual de los dispositivos raid

cat /proc/mdstat

Salida de un RAID-1 degradado con un disco que falla:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[2](F) hda1[0]
40209024 blocks [2/1] [U_]
unused devices:

Salida de un RAID-1 degradado con un disco quitadoi:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hda1[0]
40209024 blocks [2/1] [U_]
unused devices:

Salida de un RAID-1 recostruyéndose:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[2] hda1[0]
40209024 blocks [2/1] [U_]
[=======>.............] recovery = 37.1% (14934592/40209024) finish=11.7min speed=35928K/sec
unused devices:

Obtener más detalles sobre los dispositivos RAID

# mdadm --query /dev/md0
/md0: 38.35GiB raid1 2 devices, 3 spares. Use mdadm --detail for more detail.
/dev/md0: No md super block found, not an md component.

# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.00
Creation Time : Mon Jan 20 22:53:28 2003
Raid Level : raid1
Array Size : 40209024 (38.35 GiB 41.22 GB)
Device Size : 40209024 (38.35 GiB 41.22 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Jan 21 00:49:47 2003
State : dirty, no-errors
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0


Number Major Minor RaidDevice State
0 3 1 0 active sync /dev/hda1
1 22 1 1 active sync /dev/hdc1
UUID : d876333b:694e852b:e9a6f40f:0beb90f9

Obtener más detalles sobre los discos

# mdadm --query /dev/hda1
/dev/hda1: is not an md array
/dev/hda1: device 0 in 2 device active raid1 md0....

# mdadm --query /dev/hdc1
/dev/hdc1: is not an md array
/dev/hdc1: device 1 in 2 device active raid1 md0....

Administrar dispositivos RAID (RAID-1 y superiores)

Configurando el fallo de un disco:

# mdadm --fail /dev/md0 /dev/hdc1

Quitando un disco que falla de un array:

# mdadm --remove /dev/md0 /dev/hdc1

Borrando cualquier información de un raid anterior de un disco

# mdadm --zero-superblock /dev/hdc1

Agragar un disco al array

# mdadm --add /dev/md0 /dev/hdc1