- 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:
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
El raid 1 quedo reconocido como md126 y el raid 10 como md127, perfecto
ahora toca montar el LVM con:
Activar el volumen que deseo reducir
Reducir el filesystem del lvm DATA a 340 Gib (siempre dejar algo de espacio por si acaso)
Reducir ahora el Volumen 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
Ahora extendemos el volumen agregando el 5to disco, particion /dev/sde3
luego tratamos de mover los contenidos desde el raid al 5to disco usando pvmove
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:
De acuerdo a esta salida necesitamos 3 comandos pvmove, los cuales tardaran una eternidad
Si todo salio bien toca quitar el raid del volumen fisico vg1 con
Perfecto ahora nuestra lvm solo vive en el 5disco, falta eso si clonar las particiones efi y boot lo cual hacemos con dd
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:
ahora extendemos el volumen fisico agregando el raid de la controladora
Mover los contenidos hacia el raid desde el 5to disco usando pvmove
Quitar el 5to disco del volumen fisico vg1
Perfecto ahora nuestra lvm vive en raid por hardware, falta eso si clonar las particiones efi y boot lo cual hacemos con dd
Si todo salio bien ahora podemos apagar nuestro servidor y bootear normalmente con todo andando a la perfeccion.
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.