2 exit 1 #Not actually a script.
5 DISK=/dev/mapper/36090a028407d6e2b2589a45cdb971489
8 TMPDEV=/dev/mapper/$TMPDM
10 TMPDEV2=/dev/mapper/$TMPDM2
13 # - pvresize the old PV to half the space
14 pvresize --setphysicalvolumesize=${HALFSIZETiB}t $DISK
16 # - dmsetup create a device in the latter half
17 dmstart=$(python -c "print int(($HALFSIZETiB + 0.01) * 1024 * 1024 * 1024 * 2)")
18 dmlen=$(python -c "print int(($HALFSIZETiB - 0.03) * 1024 * 1024 * 1024 * 2)")
20 dmsetup create $TMPDM --table "0 $dmlen linear $DISK $dmstart"
23 # - pvcreate a temporary PV on the new device
26 # - vgextend with the temporary PV
29 # - pvmove all the LVs to the temporary PV
39 for lv in $(lvs -o lv_name --noheadings $VG); do
45 lvs $VG -o lv_name,devices | grep $DISK
46 # if not, do some more movelv
48 # This is possible if some LVs were used on more than one host during
52 # - pvremove the old PV
56 # - pvcreate a new PV in the old space,
57 # with --setphysicalvolumesize <half size>
58 # and with --metadatasize <huge> (the point of this exercise)
59 shortsize=$(python -c "print $HALFSIZETiB - 0.01")t
60 dmsetup create $TMPDM2 --table "0 $((2 * 1024 * 4)) linear $DISK 0"
61 pvcreate $TMPDEV2 --setphysicalvolumesize $shortsize --metadatasize $METADATASIZE
62 dmsetup remove $TMPDM2
66 # - pvmove all the LVs back
69 for lv in $(lvs -o lv_name --noheadings $VG); do
70 movelv $VG/$lv $TMPDEV
75 lvs $VG -o lv_name,devices | grep $TMPDEV
76 # if not, do some more movelv
78 # - pvremove the temporary PV
83 # - pvresize the new PV to use the whole space