<> == Problème == On souhaite capitaliser l'espace de stockage au vu du nombre de disques physiques dont on dispose. La configuration actuelle ne pouvant pas répondre à ce besoin. Pour cela Transformer un disque raid ''md2'' qui est en RAID1 en ''md3'' qui sera en RAID5. ''md2'' contient /dev/sd[c,d]5 et on veut rajouter `/dev/sde5`. ''md3'' devra contenir /dev/sdc5 , /dev/sdd5 et /dev/sde5 == Contexte == * 5 disques physiques disponibles * les raid 1 dans /dev/md0 et /dev/md1 ne doivent pas être touchés * au niveau LVM, il faut conserver le groupe de volume VM1 {{{ root@abui:~# pvs PV VG Fmt Attr PSize PFree /dev/md0 systeme lvm2 a-- 27,92g 9,31g /dev/md1 VM1 lvm2 a-- 903,45g 893,68g /dev/md2 VM1 lvm2 a-- 931,39g 931,39g root@abui:~# vgs VG #PV #LV #SN Attr VSize VFree VM1 2 2 0 wz--n- 1,79t 1,78t systeme 1 6 0 wz--n- 27,92g 9,31g root@abui:~# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 sdd5[1] sdc5[0] 976631296 blocks super 1.2 [2/2] [UU] md1 : active raid1 sdb5[1] sda5[0] 947334656 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 29279104 blocks super 1.2 [2/2] [UU] unused devices: root@abui:~# mdadm -Q --detail /dev/md2 /dev/md2: Version : 1.2 Creation Time : Fri Nov 14 23:27:34 2014 Raid Level : raid1 Array Size : 976631296 (931.39 GiB 1000.07 GB) Used Dev Size : 976631296 (931.39 GiB 1000.07 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Sat Nov 15 13:02:53 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : abui:2 (local to host abui) UUID : 13a5ac83:9bc2690a:f8ba5513:62e1a004 Events : 19 Number Major Minor RaidDevice State 0 8 37 0 active sync /dev/sdc5 1 8 53 1 active sync /dev/sdd5 }}} == Mode opératoire == Ce que j'avais noté avant de démarrer :) * on déclare sdd5 défectueux dans md2 : mdadm /dev/md2 --fail /dev/sdd5 * on enleve sdd5 de md2 : mdadm /dev/md2 --remove /dev/sdd5 * nouveau raid5 mdadm --create /dev/md3 --level 5 --raid-devices 2 /dev/sdd5 /dev/sde5 * ajouter dans le groupe de volume ? puis copie : * pvcreate /dev/md3 * pvmove /dev/md2 /dev/md3 * arrêt du raid1 `mdadm --stop /dev/md2 ` * ajouter le dernier disque : `mdadm /dev/md3 --add /dev/sdc5` * faire évoluer le raid 5 pour lui faire comprendre qu'il y a 3 disques maintenant `mdadm /dev/md3 --grow --raid-devices 3` == Résolution du problème == * déclaration de sdd5 comme défectueux comme énoncé plus haut * suppression de sdd5 du raid /dev/md2 === Création du raid /dev/md3 === {{{ root@abui:~# mdadm --create /dev/md3 --level 5 --raid-devices 2 /dev/sdd5 /dev/sde5 mdadm: /dev/sdd5 appears to be part of a raid array: level=raid1 devices=2 ctime=Fri Nov 14 23:27:34 2014 mdadm: /dev/sde5 appears to be part of a raid array: level=raid5 devices=5 ctime=Fri Nov 14 14:42:32 2014 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md3 started. }}} === Création d'un nouveau groupe de volume et copie des propriétés de l'ancien groupe de volume === {{{ root@abui:~# pvcreate /dev/md3 Found duplicate PV H1SzP8yVSZlnsvOr0zXO4wksGAVpQL6L: using /dev/md2 not /dev/md3 Can't initialize physical volume "/dev/md3" of volume group "VM1" without -ff root@abui:~# pvmove -v /dev/md2 /dev/md3 Executing: /sbin/modprobe dm-mirror Found duplicate PV H1SzP8yVSZlnsvOr0zXO4wksGAVpQL6L: using /dev/md3 not /dev/md2 Finding volume group "VM1" Physical Volume "/dev/md2" not found in Volume Group "VM1" }}} {i} Le système se plaint un peu :( . Je dois avouer que je n'avais pas encore bien compris l'usage de `pvmove`. On suit les recommandations énoncées {{{ root@abui:~# pvcreate -ff /dev/md3 Found duplicate PV H1SzP8yVSZlnsvOr0zXO4wksGAVpQL6L: using /dev/md2 not /dev/md3 Really INITIALIZE physical volume "/dev/md3" of volume group "VM1" [y/n]? y WARNING: Forcing physical volume creation on /dev/md3 of volume group "VM1" Writing physical volume data to disk "/dev/md3" Physical volume "/dev/md3" successfully created root@abui:~# pvmove -v /dev/md2 /dev/md3 Finding volume group "VM1" Physical Volume "/dev/md3" not found in Volume Group "VM1" }}} === Arrêt du raid 1 /dev/md2 === {{{ root@abui:~# mdadm --stop /dev/md2 mdadm: stopped /dev/md2 }}} === Insertion de la partition /dev/sdc5 dans le nouveau raid === {{{ root@abui:~# mdadm /dev/md3 --add /dev/sdc5 mdadm: added /dev/sdc5 }}} === Mettre à jour le RAID5 === {{{ root@abui:~# mdadm /dev/md3 --grow --raid-devices 3 mdadm: /dev/md3 is performing resync/recovery and cannot be reshaped }}} {i} Oupss :-? .. Le raid n'avait pas fini sa synchronisation depuis qu'il a été créé . Visible depuis `/proc/mdstat` {i} On réessaye à la fin de la synchro du raid {{{ root@abui:~# mdadm /dev/md3 --grow --raid-devices 3 mdadm: Need to backup 1024K of critical section.. }}} {i} Le redimensionnement est en cours {{{ Personalities : [raid1] [raid6] [raid5] [raid4] md3 : active raid5 sdc5[3] sde5[2] sdd5[0] 976631296 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] [>....................] reshape = 0.8% (8763904/976631296) finish=586.5min speed=27499K/sec md1 : active raid1 sdb5[1] sda5[0] 947334656 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 29279104 blocks super 1.2 [2/2] [UU] }}} == Problème actuel: volume physique manquant == Je me retrouve avec cette erreur lors de la consultation des volumes logiques `Couldn't find device with uuid H1SzP8-yVSZ-lnsv-Or0z-XO4w-ksGA-VpQL6L` {{{ root@abui:~# pvscan -v Wiping cache of LVM-capable devices Wiping internal VG cache Walking through all physical volumes Couldn't find device with uuid H1SzP8-yVSZ-lnsv-Or0z-XO4w-ksGA-VpQL6L. There are 1 physical volumes missing. PV /dev/md1 VG VM1 lvm2 [903,45 GiB / 893,68 GiB free] PV unknown device VG VM1 lvm2 [931,39 GiB / 931,39 GiB free] PV /dev/md0 VG systeme lvm2 [27,92 GiB / 9,31 GiB free] PV /dev/md3 lvm2 [931,39 GiB] Total: 4 [2,73 TiB] / in use: 3 [1,82 TiB] / in no VG: 1 [931,39 GiB] }}} === Résolution avec vgreduce === {{{ root@abui:~# vgreduce --removemissing -v VM1 Finding volume group "VM1" Couldn't find device with uuid H1SzP8-yVSZ-lnsv-Or0z-XO4w-ksGA-VpQL6L. There are 1 physical volumes missing. Trying to open VG VM1 for recovery... Couldn't find device with uuid H1SzP8-yVSZ-lnsv-Or0z-XO4w-ksGA-VpQL6L. There are 1 physical volumes missing. Archiving volume group "VM1" metadata (seqno 7). Removing PV with UUID H1SzP8-yVSZ-lnsv-Or0z-XO4w-ksGA-VpQL6L from VG VM1 Creating volume group backup "/etc/lvm/backup/VM1" (seqno 8). Wrote out consistent volume group VM1 }}} === Insérer /dev/md3 dans le groupe de volume VM1 === {{{ root@abui:~# vgextend -v VM1 /dev/md3 Checking for volume group "VM1" Archiving volume group "VM1" metadata (seqno 8). Wiping cache of LVM-capable devices Adding physical volume '/dev/md3' to volume group 'VM1' Volume group "VM1" will be extended by 1 new physical volumes Creating volume group backup "/etc/lvm/backup/VM1" (seqno 9). Volume group "VM1" successfully extended }}} {{{ root@abui:~# vgs VG #PV #LV #SN Attr VSize VFree VM1 2 2 0 wz--n- 1,79t 1,78t systeme 1 6 0 wz--n- 27,92g 9,31g }}} Et c'est fini . J'ai relancé mes VM et elles ont démarré sans soucis !:) . Peut etre même que je pouvais les laisser tourner mais j'ai préféré les arrêter et faire une copie ;) /!\ Vérifier tout de même le fonctionnement avant d'aller plus loin au cas où on aurait oublié quelque chose == Références == * http://www.arkf.net/blog/?p=47 * http://askubuntu.com/questions/161279/how-do-i-move-my-lvm-250-gb-root-partition-to-a-new-120gb-hard-disk/161296#161296