Spostare un logical volume da un disco in LVM
| Attenzione questo articolo è ancora incompleto. Sentiti libero di contribuire cliccando sul tasto edit. |
- Se si elimina un disco o una partizione, e si vuole spostare i volumi logici che ci sono su quel physical volume su un altro, procedere come segue.
Procedura 1
47 parted /dev/sdb 48 pvcreate /dev/sdb1 49 sfdisk -d /dev/sdb 50 sfdisk -d /dev/sdb | sfdisk /dev/sdc 51 vgcreate -n prova /dev/sdb1 52 vgcreate prova /dev/sdb1 53 lvs 54 lvcreate -n provavol -L 4G prova 55 lvs 56 mkfs.ext4 /dev/prova/provavol 57 mount /dev/prova/provavol /mnt/ 58 touch 1 2 3 4 /mnt 59 cp -rv /usr/ /mnt/ 60 man lvconvert 61 pvs 62 poweroff 63 pvs 64 parted /dev/sdc 65 pvcreate /dev/sdc1 66 pvs 67 vgs 68 lvs 69 lvcreate -n rootvol -L 3G prova 70 lvcreate -n swapvol -L 1G prova 71 lvs 72 lvconvert -m1 /dev/prova/provavol /dev/sdc1 73 vgextend provavol /dev/sdc1 74 vgextend prova /dev/sdc1 75 pvs 76 lvs 77 vgs 78 vgs -o+devices 79 lvconvert -m1 /dev/prova/provavol /dev/sdc1 80 lvs 81 lvconvert -m1 /dev/prova/rootvol /dev/sdc1 82 lvs 83 man lvconvert 84 lvs 85 poweroff 86 pvs 87 lvs 88 vgs 89 mount /dev/prova/provavol /mnt 90 ls /mnt/ 91 ls /mnt/usr/ 92 ls -laR /mnt/usr/ 93 pvs
Last step, the one where we have to be more careful, is removing mirror copy from old PV. We have to be more careful because the PV name in this case is the name of a PV we want to remove from mirroring, which is the opposite from what we had when establishing the mirror. If we use wrong PV name we will end up on the begining, with LV on a wrong PV and without mirroring.
[root@r2d2 ~]# lvconvert -m 0 sys/test /dev/sda5 Logical volume test converted.
94 lvconvert -m0 /dev/prova/rootvol 95 sudo vgreduce --removemissing prova 96 pvs 97 lvconvert -m0 /dev/prova/rootvol 98 sudo vgreduce --removemissing --force prova 99 pvs 100 lvs 101 vgs 102 lvconvert -m0 /dev/prova/rootvol 103 vgs 104 lvs 105 lvconvert -m0 /dev/prova/provavol 106 lvs 107 mount /dev/prova/provavol /mnt 108 umount /mnt 109 ls /mnt 110 mount /dev/prova/provavol /mnt 111 ls /mnt/ 112 ls -laR /mnt/ 113 reboot 114 lvs 115 vgs 116 poweroff 117 lvs 118 sudo vgreduce --removemissing --force prova 119 lvs 120 lvconvert -m0 /dev/prova/provavol 121 lvconvert -m0 /dev/prova/rootvol 122 lvs 123 mount /dev/prova/provavol /mnt 124 ls -laR /mnt/ 125 history 126 history | xclip
sudo parted /dev/sdb sudo pvcreate /dev/sdb2
51 vgcreate -n prova /dev/sdb1 52 vgcreate prova /dev/sdb1 53 lvs 54 lvcreate -n provavol -L 4G prova 55 lvs 56 mkfs.ext4 /dev/prova/provavol 57 mount /dev/prova/provavol /mnt/ 59 cp -rv /usr/ /mnt/
64 parted /dev/sdc 65 pvcreate /dev/sdc1 69 lvcreate -n rootvol -L 3G prova 70 lvcreate -n swapvol -L 1G prova
74 vgextend prova /dev/sdc1 78 vgs -o+devices 79 lvconvert -m1 /dev/prova/provavol /dev/sdc1 81 lvconvert -m1 /dev/prova/rootvol /dev/sdc1 82 lvs watch -n 30 sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home sys rwi-aor--- 114.31g 0.05 root sys rwi-aor--- 28.62g 2.42 swap sys rwi-aor--- 3.72g 7.97
84 lvs 85 poweroff
86 pvs 87 lvs 88 vgs 89 mount /dev/prova/provavol /mnt 90 ls /mnt/ 98 sudo vgreduce --removemissing --force prova 02 lvconvert -m0 /dev/prova/rootvol 104 lvs -o+devices 105 lvconvert -m0 /dev/prova/provavol 113 reboot
Procedura 2
È possibile seguire questa strada, oppure usare (man vgsplit):
vgsplit
- Verificare quanti dati ci sono sul PV /dev/OLDDEVICE che si vuole eliminare
sudo pvdisplay -v /dev/OLDDEVICE | grep "Total PE"
Using physical volume(s) on command line Total PE 117003
- Verificare che ci sia abbastanza spazio sul PV di destinazione:
sudo pvdisplay -v /dev/md1 | grep "Free PE" Using physical volume(s) on command line Free PE 999836
- Se il PV è NUOVO, avrà ZERO:
sudo pvdisplay -v /dev/sdb3
Using physical volume(s) on command line Wiping cache of LVM-capable devices "/dev/sdb3" is a new physical volume of "474.23 GiB" --- NEW Physical volume --- PV Name /dev/sdb3 VG Name PV Size 474.23 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 6Rp2Nt-5vPO-1NNa-LwE7-kvLN-S4Kw-w0t472
- Se i PV appartengono a diversi Volume Group, occorre unire i due VG. Fermare il VG da spostare:
sudo vgchange -an OLDVG
- Verificare che si disattivato:
sudo vgdisplay -v vgkvm1
- Testare se è possibile unire i VG (in realtà si incorpora OLDVG che sparisce in NEWVG, che naturalmente deve avere sufficienti PE liberi)
sudo vgmerge -t -v NEWVG OLDVG
- Se va tutto bene, unirli veramente:
sudo vgmerge -v NEWVG OLDVG
- Spostare i dati che ci sono sul PV /dev/OLDDEVICE sul PV esistente /dev/NEWDEVICE
sudo pvmove /dev/OLDDEVICE /dev/NEWDEVICE
- Se invece si vuole spostare SOLO un LV:
sudo pvmove -n MYLOGICALVOLUME /dev/OLDDEVICE /dev/NEWDEVICE
- Se il PV va eliminato, rimuoverlo dal Volume Group:
sudo vgreduce MYVOLUMEGROUP /dev/OLDDEVICE