RAID por software reemplazo de disco dañado
Este procedimiento lo documente en una vmware el día antes de tener que hacer el cambio de un disco de un servidor de producción que el smartd nos empezó a alertar que el disco estaba fallando!
El servidor tiene 2 discos sata (el procedimiento es igual para sata, scsi o sas) linux ve todo como scsi.
El procedimiento es complejo no es recomendable para ser ejecutados por usuarios con poca experiencia en la administración de sistemas.
Procedimiento:
En el ejemplo el disco que esta fallando es el "/dev/sdb"
Lo primero a realizar es desactivar la swap del disco en cuestión (la swap en este caso no estaba dentro de un RAID).
< root@raidtest:~# swapoff /dev/sdb1
y borrar la entrada en el fstab (vi /etc/fstab)
> # /dev/sdb1 > UUID=ad86a391-c492-4946-8c1e-536ec6eed5b7 none swap sw 0 0
A continuación se debe marcar las particiones de esta unidad como falladas en los distintos RAID's definidos.
< root@raidtest:~# mdadm /dev/md0 -f /dev/sdb2 < root@raidtest:~# mdadm /dev/md1 -f /dev/sdb3 < root@raidtest:~# mdadm /dev/md2 -f /dev/sdb4
Y removerlas.
< root@raidtest:~# mdadm /dev/md0 -r /dev/sdb2 < root@raidtest:~# mdadm /dev/md1 -r /dev/sdb3 < root@raidtest:~# mdadm /dev/md2 -r /dev/sdb4
Se desactivar la unidad del sistema. Lo primero a realizar es identificarla en la lista de componentes SCSI (linux ve a los SATA/SAS como SCSI). El primer dispositivo es un CD-ROM el segundo y tercero son discos. Se debe desactivar el segundo (/dev/sdb).
< root@raidtest:~# cat /proc/scsi/scsi > Attached devices: > Host: scsi1 Channel: 00 Id: 00 Lun: 00 > Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00 > Type: CD-ROM ANSI SCSI revision: 05 > Host: scsi2 Channel: 00 Id: 00 Lun: 00 > Vendor: VMware, Model: VMware Virtual S Rev: 1.0 > Type: Direct-Access ANSI SCSI revision: 02 > Host: scsi2 Channel: 00 Id: 01 Lun: 00 > Vendor: VMware, Model: VMware Virtual S Rev: 1.0 > Type: Direct-Access ANSI SCSI revision: 02
Se debe remover en forma lógica el disco que esta en la segunda placa SCSI (scsi2) en el canal 0 id 1 lun 0 . Se realiza con el siguiente comando.
< root@raidtest:~# echo "scsi remove-single-device" 2 0 1 0 > /proc/scsi/scsi
Se verifica la remoción lógica del disco.
< root@raidtest:~# cat /proc/scsi/scsi < Attached devices: < Host: scsi1 Channel: 00 Id: 00 Lun: 00 < Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00 < Type: CD-ROM ANSI SCSI revision: 05 < Host: scsi2 Channel: 00 Id: 00 Lun: 00 < Vendor: VMware, Model: VMware Virtual S Rev: 1.0 < Type: Direct-Access ANSI SCSI revision: 02
Se debe remover físicamente el disco del equipo.
Se inserta el reemplazo (se asume que se inserta en el mismo puerto). Y se lo habilita a nivel lógico en el sistema con el siguiente comando.
< root@raidtest:~# echo "scsi add-single-device" 2 0 1 0 > /proc/scsi/scsi
Se revisa el sislog para verificar el estado del disco.
< root@raidtest:~# tail -n 15 /var/log/syslog > May 6 19:55:24 raidtest kernel: [ 1412.983194] scsi 2:0:1:0: Direct-Access VMware, VMware Virtual S 1.0 PQ: 0 ANSI: 2 > May 6 19:55:24 raidtest kernel: [ 1412.983850] sd 2:0:1:0: [sdc] 41943040 512-byte hardware sectors (21475 MB) > May 6 19:55:24 raidtest kernel: [ 1412.983952] sd 2:0:1:0: [sdc] Write Protect is off > May 6 19:55:24 raidtest kernel: [ 1412.983963] sd 2:0:1:0: [sdc] Mode Sense: 5d 00 00 00 > May 6 19:55:24 raidtest kernel: [ 1412.984219] sd 2:0:1:0: [sdc] Cache data unavailable > May 6 19:55:24 raidtest kernel: [ 1412.984227] sd 2:0:1:0: [sdc] Assuming drive cache: write through > May 6 19:55:24 raidtest kernel: [ 1412.984875] sd 2:0:1:0: [sdc] 41943040 512-byte hardware sectors (21475 MB) > May 6 19:55:24 raidtest kernel: [ 1412.984963] sd 2:0:1:0: [sdc] Write Protect is off > May 6 19:55:24 raidtest kernel: [ 1412.984972] sd 2:0:1:0: [sdc] Mode Sense: 5d 00 00 00 > May 6 19:55:24 raidtest kernel: [ 1412.985679] sd 2:0:1:0: [sdc] Cache data unavailable > May 6 19:55:24 raidtest kernel: [ 1412.985687] sd 2:0:1:0: [sdc] Assuming drive cache: write through > May 6 19:55:24 raidtest kernel: [ 1412.986140] sdc: unknown partition table > May 6 19:55:24 raidtest kernel: [ 1412.999439] sd 2:0:1:0: [sdc] Attached SCSI disk > May 6 19:55:24 raidtest kernel: [ 1412.999715] sd 2:0:1:0: Attached scsi generic sg2 type 0
Se detecta que el disco insertado en este caso fue reconocido por el sistema como sdc (/dev/sdc). Si lo reconoce con la misma definición que el removido no es problema, varía según la controladora.
A continuación se transfiere la tabla de particiones del disco que esta funcionando (asumiendo que el disco tiene igual o mayor capacidad que el que se encuentra en uso en el sistema).
< root@raidtest:~# sfdisk -d /dev/sda |sfdisk /dev/sdc
Finalizada la creación de la estructura de archivos del disco rígido, se procede a crear la partición swap.
< root@raidtest:~# mkswap /dev/sdc1 > Setting up swapspace version 1, size = 501735 kB > no label, UUID=2038332b-69fd-4dd2-a96a-0018d97fe075
Se habilita al sistema al uso de la swap.
< root@raidtest:~# swapon /dev/sdc1
Se debe agregar la entrada de la swap al /etc/fstab para que persista la configuración
> #/dev/sda1 > UUID=2038332b-69fd-4dd2-a96a-0018d97fe075 none swap sw 0 0
El siguiente paso a realizar es agregar las particiones a los dispositivos RAID.
< root@raidtest:~# mdadm /dev/md0 -a /dev/sdc2 < root@raidtest:~# mdadm /dev/md1 -a /dev/sdc3 < root@raidtest:~# mdadm /dev/md2 -a /dev/sdc4
Para verificar el estado del raid se puede ejecutar el siguiente comando:
< root@raidtest:~# cat /proc/mdstat > Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] > md2 : active raid1 sdc4[2] sda4[0] > 10458240 blocks [2/1] [U_] > resync=DELAYED > > md1 : active raid1 sdc3[2] sda3[0] > 9767424 blocks [2/1] [U_] > [===>.................] recovery = 16.1% (1574080/9767424) finish=1.0min speed=131173K/sec > > md0 : active raid1 sdc2[1] sda2[0] > 248896 blocks [2/2] [UU] > > unused devices: <none>
Dejando pasar un tiempo se puede volver a chequear el estado de la actualización de datos.
< root@raidtest:~# cat /proc/mdstat > Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] > md2 : active raid1 sdc4[1] sda4[0] > 10458240 blocks [2/2] [UU] > > md1 : active raid1 sdc3[1] sda3[0] > 9767424 blocks [2/2] [UU] > > md0 : active raid1 sdc2[1] sda2[0] > 248896 blocks [2/2] [UU] > > unused devices: <none>

Voy a ver si anda.
Gracias.