Spostare un logical volume da un disco in LVM
Jump to navigation
Jump to search
| 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.
Spostare un LV da un PV ad un altro PV in un nuovo VG
- Si parte da
/dev/debian/root /dev/sda1 /dev/debian/home /dev/sda1
- Si vuole
/dev/debian/root /dev/sda1 /dev/data/home /dev/sdb1
- Creare il nuovo pv
pvcreate /dev/sdb1
- Aggiungere il PV al VG
vgextend debian /dev/sdb1
- Creare il mirror del LV da spostare sul nuovo PV:
lvconvert -m1 /dev/debian/home /dev/sdb1
- Rimuovere il mirror dal vecchio PV
lvconvert -m0 /dev/debian/home /dev/sda1
- Controllare:
lvs -a -o+devices
- Andare in single user mode:
init 1
- Smontare e fermare l'LV da separare:
umount /home lvchange -an /dev/debian/var
- Separare l'LV spostandolo nel nuovo VG
vgsplit --verbose debian data /dev/sdb1
- Attivare il nuovo VG
vgchange -ay data
- Modificare fstab per montare il nuovo LV
/dev/mapper/data-var /var ext4 defaults 0 2
- Montarlo
mount -a
- Eventualmente estendere il filesystem:
lvextend -L+50G -r /dev/mapper/data-var
Spostare un LV su un altro disco usando il mirroring
- Il LV esistente è
/dev/prova/provavol
- Ed è creato sul PV
/dev/sdb1
- Creare la nuova partizione su cui mirrorare il LV esistente
parted /dev/sdc
- Impostare la partizione com PV
pvcreate /dev/sdc1
- Verificare che sia stato creato:
pvs
- Aggiungere il PV al VG esistente
vgextend provavol /dev/sdc1
- Creare il mirroring usando il nuovo PV
lvconvert -m1 /dev/prova/provavol /dev/sdc1
- Se dovesse dare un errore riguardo ai log, ripetere l'operazione con:
lvconvert -m1 --type mirror --corelog dev/prova/provavol /dev/sdc1
- Verificare che sia mirrorato:
vgs -o+devices
- Attendere il completamento:
watch lvs
- Quando il mirroring è completato ( Cpy%Sync 100%), rimuovere il mirroring dal vecchio PV:
lvconvert -m 0 /dev/prova/provavol /dev/sdb1
- Rimuovere il vecchio PV dal VG
vgreduce prova /dev/sdb1
- Eliminare il PV
pvremove /dev/sdb1
Riferimenti
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