Linux Convertir raid 1/0 a 10 con LVM

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.398
En el post anterior les conté que mi servidor había quedado con un raid 0 por software, luego de hinchar a mi jefe logre convencerlo que comprara 2 discos mas para pasar a raid 10. La siguiente guía esta pensada para no tener que reinstalar todo desde el principio y esta basada en el tutorial de esta pagina https://www.burgundywall.com/post/convert-raid1-to-raid10-with-lvm

Primero paso a recordar como tenia mi servidor en el punto de partida inicial:

2 Discos SATA con 3 particiones cada 1, una para EFI, 1 para boot en RAID1 y otra para el LVM en raid 0, las cuales están en orden sda1-efi,sda2-raid1,sda3-raid0, lo mismo para el otro disco

1) - Clonar Esquema de Particiones

Revisar que los discos esten conectados
Código:
ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdb   /dev/sdb2  /dev/sdc
/dev/sda1  /dev/sda3  /dev/sdb1  /dev/sdb3  /dev/sdd
los dicos nuevos en mi caso aparecieron como /dev/sdc y /dev/sdd
instalar herramienta para copiar esquema de particionado
Código:
sudo apt-get install gdisk
Copiamos el particionado de /dev/sda al nuevo /dev/sdc
Código:
sudo sgdisk --backup=table /dev/sda
sudo sgdisk --load-backup=table /dev/sdc
sudo sgdisk -G /dev/sdc
Copiamos el particionado de /dev/sdb al nuevo /dev/sdd
Código:
sudo sgdisk --backup=table /dev/sdb
sudo sgdisk --load-backup=table /dev/sdd
sudo sgdisk -G /dev/sdd
revisamos que este todo ok
Código:
ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdb   /dev/sdb2  /dev/sdc   /dev/sdc2  /dev/sdd   /dev/sdd2  
/dev/sda1  /dev/sda3  /dev/sdb1  /dev/sdb3  /dev/sdc1  /dev/sdc3  /dev/sdd1  /dev/sdd3
Aparecen las nuevas particiones
listamos nuestros raids actuales
Código:
ls /dev/md
0 1

2) - Agregar discos al Raid1

Dado mi esquema de particionado debo usar la segunda particion de los discos nuevos.
Agregamos las particiones al raid 1
Código:
sudo mdadm --add /dev/md/0 /dev/sdc2
sudo mdadm --add /dev/md/0 /dev/sdd2
Preparacion para un backup externo antes de extender mi raid
Código:
sudo mount /dev/sde1 /mnt/externo
Extiendo mi raid 1
Código:
sudo mdadm --grow --raid-devices=4 --backup-file=/mnt/externo/grow_md0.bak /dev/md/0
revisamos
Código:
sudo cat /proc/mdstat
md0 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0]
      499392 blocks super 1.2 [4/4] [UUUU]

3) - Crear Raid 10

Partimos creaando un raid10 con 2 unidades perdidas utilizando las particiones nuevas /dev/sdc3 y /dev/sdd3
Código:
sudo mdadm -v --create /dev/md/raid10 --level=raid10 --raid-devices=4 /dev/sdc3 missing /dev/sdd3 missing
revisamos nuestros raids
Código:
sudo mdadm --examine --scan
ARRAY /dev/md/0 metadata=1.2 UUID=6486ff0f:8dcb3764:f2f6cb4c:298e1c33 name=Franky:0
ARRAY /dev/md/1 metadata=1.2 UUID=0fc62961:05970189:9370c3ed:7ea8b5c1 name=Franky:1
ARRAY /dev/md/raid10 metadata=1.2 UUID=4bca3f55:7edc812a:d728b13f:a287c921 name=Franky:raid10
modificamos mdadm conf agregando nuestro nuevo raid pegando la ultima linea
Código:
sudo vim /etc/mdadm/mdadm.conf
#pegamos la linea 
ARRAY /dev/md/raid10 metadata=1.2 UUID=4bca3f55:7edc812a:d728b13f:a287c921 name=Franky:raid10
revisamos el estado actual de los raid
Código:
sudo cat /proc/mdstat
ls /dev/md
Personalities : [raid0] [raid1] [raid10] 
md127 : active raid10 sdc3[0] sdd3[2]
      3907021824 blocks super 1.2 512K chunks 2 near-copies [4/2] [U_U_]

md0 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0]
      499392 blocks super 1.2 [4/4] [UUUU]

md1 : active raid0 sda3[1] sdb3[0]
      243684400 blocks super 1.2 [2/2] [UU]
#Notar que nombro mi raid10 como md127, en alguna parte lo llamo de esta forma ojo con eso
Creamos un nuevo volumen fisico para LVM
Código:
sudo pvcreate /dev/md/raid10
revisamos
Código:
sudo pvdisplay
Extendemos nuestro Volumen Group, en mi caso VG1
Código:
sudo vgextend VG1 /dev/md/raid10
revisamos
Código:
sudo pvdisplay
Movemos los datos desde nuetro viejo Raid al Nuevo aprovechando LVM. Esto tardara muuuucho rato
Código:
sudo pvmove -i1 -v /dev/md1 /dev/md127
reducimos nuestro Volume Group quitando el raid viejo
Código:
sudo vgreduce VG1 /dev/md/1
quitamos el volumen Fisico
Código:
sudo pvremove /dev/md/1
revisamos
Código:
sudo pvs -o+pv_used
cat /proc/mdstat
detenemos el raid viejo
Código:
sudo mdadm --stop /dev/md1
Editamos mdadm conf quitando nuestro raid viejo
Código:
sudo vim /etc/mdadm/mdadm.conf
#en mi caso quedo asi
ARRAY /dev/md/0 metadata=1.2 UUID=6486ff0f:8dcb3764:f2f6cb4c:298e1c33 name=Franky:0
#ARRAY /dev/md/1 metadata=1.2 UUID=0fc62961:05970189:9370c3ed:7ea8b5c1 name=Franky:1
ARRAY /dev/md/raid10 metadata=1.2 UUID=4bca3f55:7edc812a:d728b13f:a287c921 name=Franky:raid10
preparamos las particiones viejas para meterlas al raid10
Código:
sudo mdadm --zero-superblock /dev/sda3
sudo mdadm --zero-superblock /dev/sdb3
agregamos las unidadesal raid 10
Código:
sudo mdadm /dev/md/raid10 --add /dev/sda3
sudo mdadm /dev/md/raid10 --add /dev/sdb3
Revisamoes
Código:
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid10 sdb3[5](S) sda3[4] sdd3[2] sdc3[0]
      3905516544 blocks super 1.2 512K chunks 2 near-copies [4/2] [U_U_]
      [=======>.............]  recovery = 38.6% (754396928/1952758272) finish=200.1min speed=99766K/sec
      
md0 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0]
      499392 blocks super 1.2 [4/4] [UUUU]
Wiii todo perfecto ahora solo esperara, tardara muuucho rato

4) - Duplicar particion efi

#revisamos cual particion efi esta cargando
Código:
df -h
/dev/sda1             120M  3.4M  116M   3% /boot/efi
clonamos particion hacia los otros 3 discos
Código:
sudo dd if=/dev/sda1 of=/dev/sdb1
sudo dd if=/dev/sda1 of=/dev/sdc1
sudo dd if=/dev/sda1 of=/dev/sdd1

Con esto queda todo el sistema bastante solido ante desastres, lo unico que me quedo pendiente es agregar las entradas alternativas del grub
 

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.267
Excelente guía

Este método también se puede usar para migrar lvm's de un raid a otro wn caso de tener conjuntos separados de discos, u otras particiones con espacio suficiente

Saludos

Sent by my Moto XXX
 
Upvote 0
Subir