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.02) * 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
38 for lv in $(lvs -o lv_name --noheadings $VG); do
44 lvs $VG -o lv_name,devices | grep $DISK
45 # if not, do some more movelv
47 # This is possible if some LVs were used on more than one host during
51 # - pvremove the old PV
55 # - pvcreate a new PV in the old space,
56 # with --setphysicalvolumesize <half size>
57 # and with --metadatasize <huge> (the point of this exercise)
58 shortsize=$(python -c "print $HALFSIZETiB - 0.01")t
59 dmsetup create $TMPDM2 --table "0 $((2 * 1024 * 4)) linear $DISK 0"
60 pvcreate $TMPDEV2 --setphysicalvolumesize $shortsize --metadatasize $METADATASIZE
61 dmsetup remove $TMPDM2
65 # - pvmove all the LVs back
68 for lv in $(lvs -o lv_name --noheadings $VG); do
69 movelv $VG/$lv $TMPDEV
74 lvs $VG -o lv_name,devices | grep $TMPDEV
75 # if not, do some more movelv
77 # - pvremove the temporary PV
82 # - pvresize the new PV to use the whole space