TMPDEV=/dev/mapper/$TMPDM
TMPDM2=tmpbar
TMPDEV2=/dev/mapper/$TMPDM2
-METADATASIZE=3.5m
+METADATASIZE=8128k
# - pvresize the old PV to half the space
pvresize --setphysicalvolumesize=${HALFSIZETiB}t $DISK
}
movelv () {
- echo pvmoving $1...
- pvmove -i 10 -n $1 $2
+ echo pvmoving $VG/$1...
+ pvmove -i 10 -n $VG/$1 $2
}
ssh root@xvm remctl remote web listvms \
- | yamlkeys
+ | yamlkeys \
> runningvms
LVM_SYSTEM_DIR=/root/lvm lvsleft \
| grep '^d_.*_hda$' \
| grep -v -xf <(vmstolvs <runningvms) \
> offvmlvs
for lv in $(offvmlvs); do
- LVM_SYSTEM_DIR=/root/lvm movelv $VG/$lv $DISK
+ LVM_SYSTEM_DIR=/root/lvm movelv $lv $DISK
done
#FOREACH host:
-for lv in $(invirt-listvms | yamlkeys | vmstolvs); do
- LVM_SYSTEM_DIR=/root/lvm movelv $VG/$lv $DISK
+for lv in $(invirt-listvms | yamlkeys | vmstolvs \
+ | grep -xf <(LVM_SYSTEM_DIR=/root/lvm lvsleft)); do
+ LVM_SYSTEM_DIR=/root/lvm movelv $lv $DISK
done
#done
| grep -v -xf <(perl -pe "s|/dev/$VG/||" usedcdroms) \
> offcdlvs
for lv in $(offcdlvs); do
- LVM_SYSTEM_DIR=/root/lvm movelv $VG/$lv $DISK
+ LVM_SYSTEM_DIR=/root/lvm movelv $lv $DISK
done
# deal with $(cat usedcdroms)
# - pvremove the old PV
-vgreduce $VG $DISK
-pvremove $DISK
+LVM_SYSTEM_DIR=lvm vgreduce $VG $DISK
+dmsetup create $TMPDM2 --table "0 $((2 * 1024 * 20)) linear $DISK 0"
+pvremove $TMPDEV2
# - pvcreate a new PV in the old space,
# with --setphysicalvolumesize <half size>
# and with --metadatasize <huge> (the point of this exercise)
shortsize=$(python -c "print $HALFSIZETiB - 0.01")t
-dmsetup create $TMPDM2 --table "0 $((2 * 1024 * 4)) linear $DISK 0"
pvcreate $TMPDEV2 --setphysicalvolumesize $shortsize --metadatasize $METADATASIZE
dmsetup remove $TMPDM2
pvscan
-vgextend $VG $DISK
+LVM_SYSTEM_DIR=lvm vgextend $VG $DISK
# - pvmove all the LVs back