Linux GUIA RAID Software a Hardware

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.428
La siguiente guia muestra como "convertir" un raid por software linux a un raid por Hardware usando LVM. Esto es un proceso muy delicado que no deberia ser necesario si se hacen las cosas bien desde 0, pero a veces puede necesitarse debido a razones de presupuesto, dado que no hay luca$$$ uno compra un servidor con una controladora raid de jugete o derechamente sin controladora raid e implementa un raid por software via mdam, el cual se va quedando corto cuando nuestras aplicaciones necesitan mas recursos de hardware.

En mi caso tenia un servidor con 4 discos de 2 TB y 3 particiones cada 1:

Código:
sda1,sdb1,sdc1,sdd1 Particion para EFI de 128MB
sda2,sdb2,sdc2,sdd2 RAID 1  MDAM para Boot
sda3,sdb3,sdc3,sdd3 RAID 10 MDAM para LVM

Para cambiar todo sin problemas se necesita un 5to disco con espacio suficente para contener los datos, en mi caso usaremos un disco de 1 TB, al cual tambien se le crearan las 3 particiones. Primero se apaga el equipo, se conecta el 5to disco y se reinica con un live cd con soporte lvm. Lo primero es reducir los LVM de tamaño para que quepan, esto por que en mi caso tenia un Volumen de 500GB de los cuales solo 330G estaban ocupados y con los 500GB me pasaba del TB disponible en el 5to disco.

1) Activar Raid y reducir particiones

primero montamos el Raid

Código:
mdadm --assemble --scan

El raid 1 quedo reconocido como md126 y el raid 10 como md127, perfecto

ahora toca montar el LVM con:
Código:
pvscan
vgscan
lvscan

Activar el volumen que deseo reducir
Código:
lvchange -a y /dev/VG1/DATA

Reducir el filesystem del lvm DATA a 340 Gib (siempre dejar algo de espacio por si acaso)

Código:
e2fsck -ff /dev/VG1/DATA
resize2fs -p /dev/VG1/DATA 340G

Reducir ahora el Volumen DATA
Código:
lvreduce --size 340G VG1/DATA
e2fsck -ff /dev/VG1/DATA

Si todo salio bien no deberian salir errores, si el e2fsck indica un error cancelar, luego extender de inmediato el Volumen con lvextend, volver a revisar con e2fsck

2) Extender el Volumen fisico y mover data al 5to disco

primero tenemos un paso opcional que es reducir el volumen fisico del raid a 1T, en mi caso no lo hice debido a que tomaria demasiado tiempo, pero facilita el paso del pvmove
Código:
pvresize --setphysicalvolumesize 1T /dev/md127

Ahora extendemos el volumen agregando el 5to disco, particion /dev/sde3
Código:
vgextend VG1 /dev/sde3

luego tratamos de mover los contenidos desde el raid al 5to disco usando pvmove
Código:
pvmove -v /dev/md127

Si el paso anterior fallo con este error "cannot resize to xxx extents as later ones are allocated" o no se redujo el volumen debemos mover las cosas individualmente, para esto primero vemos las cosas del Volumen Fisico con este comando:
Código:
pvs -v --segments /dev/md127

Código:
/dev/md127  VG1  lvm2 a-  3.64t 2.71t  0  6656 RAIZ  0 linear /dev/md127:0-6655 
/dev/md127  VG1  lvm2 a-  3.64t 2.71t  6656  15258  0 linear free
/dev/md127  VG1  lvm2 a-  3.64t 2.71t  21914  7936 ESCRIBASO  0 linear /dev/md127:21914-29849
/dev/md127  VG1  lvm2 a-  3.64t 2.71t  29850  81920  0 linear free
/dev/md127  VG1  lvm2 a-  3.64t 2.71t 111770  10496 IGOR  0 linear /dev/md127:111770-122265
/dev/md127  VG1  lvm2 a-  3.64t 2.71t 122266  87040 DATA  0 linear /dev/md127:122266-209305

De acuerdo a esta salida necesitamos 3 comandos pvmove, los cuales tardaran una eternidad
Código:
pvmove /dev/md127:0-6655 /dev/sde3
pvmove /dev/md127:21914-29849 /dev/sde3
pvmove /dev/md127:111770-209305 /dev/sde3

Si todo salio bien toca quitar el raid del volumen fisico vg1 con
Código:
vgreduce VG1 /dev/md127
pvremove /dev/md127

Perfecto ahora nuestra lvm solo vive en el 5disco, falta eso si clonar las particiones efi y boot lo cual hacemos con dd
Código:
dd if=/dev/sda1 of=/dev/sde1     Clonamos la particion EFI
dd if=/dev/md126 of=/dev/sde2     Clonamos la particion Boot

3)Instalar Controladora Raid y Regresar datos

Simplemente apagamos el equipo, instalamos la controladora raid por hardware, creamos el raid 10 en ella con los 4 discos originales y booteamos en el entorno live cd de nuevo. Ahora existen 2 dispositvos, sda y sdb con sda siendo el raid por hardware y sdb el 5to disco.

Primero creamos la tabla de particiones en sda de forma que replique la config original

luego toca montar el LVM con:
Código:
pvscan
vgscan
lvscan

ahora extendemos el volumen fisico agregando el raid de la controladora
Código:
vgextend VG1 /dev/sda3

Mover los contenidos hacia el raid desde el 5to disco usando pvmove
Código:
pvmove -v /dev/sdb3

Quitar el 5to disco del volumen fisico vg1
Código:
vgreduce VG1 /dev/sdb3
pvremove /dev/sdb3

Perfecto ahora nuestra lvm vive en raid por hardware, falta eso si clonar las particiones efi y boot lo cual hacemos con dd
Código:
dd if=/dev/sdb1 of=/dev/sda1     Clonamos la particion EFI
dd if=/dev/sdb2 of=/dev/sda2     Clonamos la particion Boot

Si todo salio bien ahora podemos apagar nuestro servidor y bootear normalmente con todo andando a la perfeccion.
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Güena guía. Una consulta:

¿Esta guía se ciñe a una distribución particular? ¿A alguna versión en particular? ¿O es una guía que se puede aplicar en cualquier distro medianamente moderna?
 
Upvote 0

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.428
Dado que los pasos los haces en un live cd en "teoria" debería servir para cualquier distro. En mi caso particular el SO instalado era ubuntu server 14.04 :( y la modificacion de los lvm la realice utilizando parted magic live cd.
 
Upvote 0

Cosme

Gold Member
Se incorporó
27 Febrero 2005
Mensajes
8.281
Encuentro que es mas facil hacer un pv en el mismo grupo con el disco del nuevo raid (por hardware) , y alli realizar el pvmove, lo que lo hace 100% online real no fake 1 link + mega
 
Última modificación:
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.402
Encuentro que es mas facil hacer un pv en el mismo grupo con el disco del nuevo raid (por hardware) , y alli realizar el pvmove, lo que lo hace 100% online real no fake 1 link + mega

de hecho hay guias de como pasar un sistema (debian o centos, los comandos son casi los mismos) de disco normal a Raid usando los lvm, y claro, ahi aprovechan el hecho de meter el raid por software (o hardware) al pvgroup y despues aplicar pvmove desde el disco fisico al raid

el show para reiniciar el la ubicacion de /boot y cual sera el disco de arranque, ya que hay que reiniciar y cambiar la unidad de arranque antes de borrarla/agregarla a un raid (en el caso de mdadm o raid por software)
 
Upvote 0
Subir