Pas encore terminé/testé/…
===== Réduire la taille d'un volume group =====
La taille d'un VG sera réduite si on définit une nouvelle taille au Physical Volume:
sudo vgdisplay | grep Size
VG Size 119,05 GiB
PE Size 4,00 MiB
Alloc PE / Size 20616 / 80,53 GiB
Free PE / Size 9861 / 38,52 GiB
sudo pvrezise --setphysicalvolumesize 40G /dev/sda1
sudo vgdisplay | grep Size
VG Size 39,15 GiB
===== Clone =====
==== Préparer le nouveau disque ====
fdisk /dev/sdb
## Delete all partitions with 'd'
## Create 2 new partitions (one with ~200Mb for Grub and all free space for the second) with 'n'
pvcreate /dev/sdb2
vgcreate vg01 /dev/sdb2
==== Créer les snapshots ====
MAX_SIZE=20G
OLD_VG_NAME=vg00
for LV in $(ls -1 /dev/${OLD_VG_NAME}); do
lvcreate --snapshot --name snap${LV} --size ${MAX_SIZE} /dev/${OLD_VG_NAME}/${LV}
done
==== Créer une image temporaire ====
OLD_VG_NAME=vg00
TEMP_DIR=/mnt/tmp
for LV in $(ls -1 /dev/${OLD_VG_NAME} | grep snap); do
dd if=/dev/${OLD_VG_NAME}/${LV} of=${TEMP_DIR}/${LV}.img
done
==== Créer les nouveaux LV ====
OLD_VG_NAME=vg00
NEW_VG_NAME=vg01
for LV in $(ls -1 /dev/${OLD_VG_NAME}|grep -v snap); do
SIZE=$(lvs|\grep ${OLD_VG_NAME}|grep -v snap|grep ${LV}|sed 's/.* \([0-9]*,[0-9]*.\)/\1/g')
lvcreate --name ${LV} --size ${SIZE} ${NEW_VG_NAME}
done
==== Écrire les images sur les nouveaux LV ====
NEW_VG_NAME=vg01
TEMP_DIR=/mnt/tmp
for LV in $(ls -1 /dev/${NEW_VG_NAME}); do
dd if=${TEMP_DIR}/${LV}.img of=/dev/${NEW_VG_NAME}/${LV}
done