From: Pere Diaz Bou Date: Tue, 19 Oct 2021 07:44:39 +0000 (+0200) Subject: cephadm/box: improve robustness of setup_loop.sh X-Git-Tag: v17.1.0~577^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=be88fca941fcef6a85c31668f7765c70042baf70;p=ceph-ci.git cephadm/box: improve robustness of setup_loop.sh Signed-off-by: Pere Diaz Bou --- diff --git a/src/cephadm/box/setup_loop.sh b/src/cephadm/box/setup_loop.sh index 9809bd2eae4..661715e8031 100755 --- a/src/cephadm/box/setup_loop.sh +++ b/src/cephadm/box/setup_loop.sh @@ -1,14 +1,8 @@ #!/bin/bash -function clean_vg() { - sudo lvm vgremove -f -y vg1 - sudo rm loop-images/* -} - +set -e function create_loops() { - mkdir -p loop-images - clean_vg NUM_OSDS=$1 if [[ -z $NUM_OSDS ]]; then @@ -28,19 +22,39 @@ function create_loops() { avail_loop=$(sudo losetup -f) loop_name=$(basename -- $avail_loop) - # in case we have to create the loop, find the minor device number. - num_loops=$(lsmod | grep loop | awk '{print $3}') - num_loops=$((num_loops + 1)) - echo creating loop $avail_loop minor: $num_loops - mknod $avail_loop b 7 $num_loops - sudo umount $avail_loop - sudo losetup -d $avail_loop - # sudo fallocate -l 10G "loop-images/disk${loop_name}.img" + if [[ ! -e $avail_loop ]] + then + # in case we have to create the loop, find the minor device number. + num_loops=$(lsmod | grep loop | awk '{print $3}') + num_loops=$((num_loops + 1)) + echo creating loop $avail_loop minor: $num_loops + mknod $avail_loop b 7 $num_loops + fi + + if mountpoint -q $avail_loop + then + sudo umount $avail_loop + fi + + if [[ ! -z $(losetup -l | grep $avail_loop) ]] + then + sudo losetup -d $avail_loop + fi + + if [[ ! -e loop-images ]] + then + mkdir -p loop-images + fi + sudo rm -f loop-images/* sudo dd if=/dev/zero of="loop-images/disk${loop_name}.img" bs=1G count=$SIZE sudo losetup $avail_loop "loop-images/disk${loop_name}.img" - sudo vgcreate vg1 $avail_loop + if [[ ! -z $(sudo vgs | grep vg1) ]] + then + sudo lvm vgremove -f -y vg1 + fi sudo pvcreate $avail_loop + sudo vgcreate vg1 $avail_loop for ((i=0;i<$NUM_OSDS;i++)); do sudo vgchange --refresh