X-Git-Url: http://xvm.mit.edu/gitweb/invirt/scripts/pv-fixup.git/blobdiff_plain/5d3530b0c3337cc8601522044fd844402b81845d..bac3eb26dd785974c433a92c61c01ab754b03a23:/pv-fixup diff --git a/pv-fixup b/pv-fixup index 78a4530..d5c0830 100644 --- a/pv-fixup +++ b/pv-fixup @@ -8,7 +8,7 @@ TMPDM=tmpfoo 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 @@ -52,23 +52,24 @@ totalsize () { } 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 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 @@ -80,7 +81,7 @@ LVM_SYSTEM_DIR=/root/lvm lvsleft \ | 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) @@ -91,18 +92,18 @@ done # - 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 # and with --metadatasize (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