Reconstruir RAID con MDADM cuando una partición ha fallado (F)

Si existe una partición fallida en un conjunto de RAID 1 usando MDADM, podemos lanzar de nuevo la resincronización de la misma.

El escerario inicial es el siguiente:

En este escenario, se observa que una de las particiones sdb1 esta en estado fallo (F)

servidor:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2] (F)
25448688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]

En primer lugar hay que eliminar la partición fallida del volumen raid md0:

mdadm --manage /dev/md0 --remove /dev/sdb1

Observamos que la partición sdb2 ya no existe, por lo tanto podemos reemplazarla o lanzar la resincronización:

servidor:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
25448688 bloks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]

Ahora añadimos de nuevo la partición sdb1 en el conjunto md0:

mdadm /dev/md0 --manage --add /dev/sdb1

Ahora el sistema RAID deberá de resincronizar y tan solo queda esperar a que esté sincronizado:

servidor:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
25448688 blocks [2/1] [U_]
[=>...................]  recovery =  9.9% (243168/2448688) 
finish=2.8min speed=127535K/sec

Nuevo sistema SAFE MODE para servidores Virtuales VPS

Recientemente se ha añadido a nuestra lista de proyectos un nuevo sistema bautizado como SAFE MODE.

¿Porqué se ha implementado el nuevo sistema SAFE MODE? Sencillo, imaginemos por un momento que en uno de los nodos de virtualización fallan, en el mismo momento, 2 tarjetas de red y, además, dos unidades de disco o, incluso, se averían varios routers que dejan inoperativo al propio nodo.

En el resto de los proveedores de servicios, un incidente de esta gravedad ocasiona la caída de los servidores virtuales del nodo afectado y, dependiendo de la gravedad ocasionada en el sistema RAID, incluso la pérdida de datos. Como consecuencia, muchos clientes tendrían que reinstalar su servidor virtual y empezar desde 0 a restaurar sus backups.

El sistema SAFE MODE entra en acción en el mismo momento en que un nodo sufre una cadena de errores que desembocan en un error fatal que impidan al nodo mantener activos sus servidores virtuales. En ese momento entra en acción el nuevo sistema SAFE MODE, el cual es capaz de arrancar uno o varios nodos de virtualización en cuestión de segundos y reasignar a nuestros clientes las IPs de las que disponían, con una pérdida de datos nunca superior a 3 horas.

SAFE MODE se encuentra separado de la red de servidores virtuales, lo cual garantiza el correcto arranque de todos los servidores que hayan sido afectados.

SAFE MODE no se plantea como un sustituto de las copias de seguridad, ya que sólo actúa en el momento en que se produce un fallo grave en alguno de los nodos y, en ningún momento, está planteado para recuperar datos perdidos.

¿Cómo saber si su servidor virtual se beneficia, o beneficiará en un futuro, de nuestro nuevo sistema SAFE MODE?

Si la dirección IP de su servidor virtual se encuentra en el rango 84.246.X.X ya dispone, o dispondrá en breve, del sistema SAFE MODE, de forma totalmente gratuita.

¿No estoy dentro del rango 84.246.X.X, puedo hacer algo para disponer del sistema SAFE MODE?

Si desea beneficiarse de las ventajas del nuevo sistema, y su servidor virtual no está en el rango indicado anteriormente, puede utilizar nuestro sistema de soporte para comunicarse con el departamento de soporte e, indicando el nombre de su servidor virtual y su interés por disponer del sistema SAFE MODE, los administradores estudiarán su caso individualmente y le indicarán a partir de cuándo podrá disponer de él.

Este año 2010 ha estado lleno de novedades y mejoras en todos nuestros servicios. Todo esto gracias a nuestros clientes que, como usted, día a día han depositado su confianza en Unelink y aseguramos que el nuevo año 2011 estará lleno de nuevos sistemas y mejoras en todos nuestros servicios y productos, esperando que sean de gran utilidad a nuestros clientes.

Crear RAID1 Software en servidores con Proxmox

Es mas que sabido que Proxmox no permite de forma nativa la creación de RAID por software en este capitulo vamos a ver como crear un RAID1 por software en Proxmox con MDADM, el cual tiene un rendimiento muy bueno para esta distribución.

1. Actualizamos nuestros repositorios y descargamos los paquetes necesarios:

apt-get update
apt-get install mdadm initramfs-tools

En la ventana “configuring mdadm” seleccionamos OK y después ALL

2. Añadimos RAID1 en /etc/modules:

echo "raid1" >> /etc/modules

3. Regenerar fichero initrd.img, este proceso suele tardar unos segundos.

mkinitramfs -o /boot/test -r /dev/mapper/pve-root

4. Renombramos el antiguo archivo IMG. En la siguiente linea debemos de sustituir las XXX por la versión de nuestro Kernel. Se puede averiguar la versión del kernel escribiendo en el shell “uname -a”

mv /boot/initrd.img-2.6.x-pve /boot/initrd.img-2.6.x-pve.original

Ejemplo de linea para proxmox 1.6: mv /boot/initrd.img-2.6.32-4-pve /boot/initrd.img-2.6.32-4-pve.original

5. Renombramos el nuevo fichero creado img, en este caso tambien hay que sustituir las XX por la versión del kernel.

mv /boot/test /boot/initrd.img-2.6.x-pve

Ejemplo de linea para proxmox 1.6: mv /boot/test /boot/initrd.img-2.6.32-4-pve

6. Configuramos GRUB en los dos discos para que el RAID pueda arrancar desde cualquiera de los dos.

grub-install --no-floppy /dev/sda
grub-install --no-floppy /dev/sdb

nota: si este paso nos da error es por que no se ha replicado las particiones antes o el disco es nuevo, hay que replicar las particiones: sfdisk -d /dev/sda | sfdisk –force /dev/sdb

7. Editamos el fichero menu.1st, en este fichero deberemos localizar la cadena root UUID y remplazar por root hd(0,0)

pico /boot/grub/menu.lst

8. Editar fichero /etc/fstab deberemos de sustituir la linea: UUID=xxxxxxxxxxxxx /boot ext3 defaults 0 1 por UUID=xxxxxxxxxxxxxxxx /dev/md0 /boot ext3 defaults 0 1

pico /etc/fstab

9. Ahora hay que proceder a clonar las particiones del disco sda al disco sdb para que en el momento de la sincronización todas las particiones sean del mismo tamaño.

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

10. Creamos los dispositivos md en el disco secundario sdb

mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb2

11. Salvamos las nueva configuración de los md

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

12. Configurar el dispotivo como dispositivo de arranque:

mkfs.ext3 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
cp -ax /boot/* /mnt/md0
umount /mnt/md0
umount /boot
mount /dev/md0 /boot
sfdisk --change-id /dev/sda 1 fd
mdadm --add /dev/md0 /dev/sda1
pvcreate /dev/md1 si este comando nos da problema podemos usar pvcreate /dev/md1 -ff
vgextend pve /dev/md1

13. Replicamos los datos de sda2 a md1. nota:este proceso puede tardas horas.

pvmove /dev/sda2 /dev/md1
vgreduce pve /dev/sda2
sfdisk --change-id /dev/sda 2 fd
mdadm --add /dev/md1 /dev/sda2

14. Una vez realizado el raid deberá de empezar a sincronizar, podemos ver el proceso de sincronización del siguiente modo.

watch -n 1 cat /proc/mdstat

Deberemos observar algo parecido a:

md1: active raid1 sda1[1] sdb1[0]
195358336 blocks [2/2] [UU]
[====>................]  resync = 23.6% (46143360/195358336) finish=29.0min speed=85593K/sec
md6 : active raid1 sda1[1] sdb1[0]      195358336 blocks [2/2] [UU]
[====>................]  resync = 23.6% (46143360/195358336) finish=29.0min speed=85593K/sec

15. Ahora cambiamos el valor minimo de velocidad para el RAID

echo 60000 >/proc/sys/dev/raid/speed_limit_min

16. Para configurar el arranque en ambos discos introducimos

apt-get install grub2  (aquí ponerlo todo por defecto)
update-grub fijarnos si en el fichero /boot/grub/grub.cfg está en set root=(md0)
grub-install --no-floppy /dev/md0
grub-install --no-floppy /dev/sda
grub-install --no-floppy /dev/sdb