[ceph-osd] Remove udev interactions from osd-init
There are bugs with containerizing certain udev operations in some udev versions. The osd-init container can hang in these circumstances, so the osd-init scripts are modified not to use these problematic operations. Change-Id: I6b39321b849f5fbf1b6f2097c6c57ffaebe68121
This commit is contained in:
parent
0dc859cbcb
commit
e02dc3da44
@ -15,6 +15,6 @@ apiVersion: v1
|
|||||||
appVersion: v1.0.0
|
appVersion: v1.0.0
|
||||||
description: OpenStack-Helm Ceph OSD
|
description: OpenStack-Helm Ceph OSD
|
||||||
name: ceph-osd
|
name: ceph-osd
|
||||||
version: 0.1.39
|
version: 0.1.40
|
||||||
home: https://github.com/ceph/ceph
|
home: https://github.com/ceph/ceph
|
||||||
...
|
...
|
||||||
|
@ -292,21 +292,15 @@ function zap_extra_partitions {
|
|||||||
# Delete any discovered journal, block.db, and block.wal partitions
|
# Delete any discovered journal, block.db, and block.wal partitions
|
||||||
if [ ! -z "${journal_disk}" ]; then
|
if [ ! -z "${journal_disk}" ]; then
|
||||||
sgdisk -d ${journal_part} ${journal_disk}
|
sgdisk -d ${journal_part} ${journal_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
/usr/bin/flock -s ${journal_disk} /sbin/partprobe ${journal_disk}
|
/usr/bin/flock -s ${journal_disk} /sbin/partprobe ${journal_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
fi
|
fi
|
||||||
if [ ! -z "${block_db_disk}" ]; then
|
if [ ! -z "${block_db_disk}" ]; then
|
||||||
sgdisk -d ${block_db_part} ${block_db_disk}
|
sgdisk -d ${block_db_part} ${block_db_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
/usr/bin/flock -s ${block_db_disk} /sbin/partprobe ${block_db_disk}
|
/usr/bin/flock -s ${block_db_disk} /sbin/partprobe ${block_db_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
fi
|
fi
|
||||||
if [ ! -z "${block_wal_disk}" ]; then
|
if [ ! -z "${block_wal_disk}" ]; then
|
||||||
sgdisk -d ${block_wal_part} ${block_wal_disk}
|
sgdisk -d ${block_wal_part} ${block_wal_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
/usr/bin/flock -s ${block_wal_disk} /sbin/partprobe ${block_wal_disk}
|
/usr/bin/flock -s ${block_wal_disk} /sbin/partprobe ${block_wal_disk}
|
||||||
/sbin/udevadm settle --timeout=600
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,9 +339,19 @@ function lvm_scan {
|
|||||||
lvscan
|
lvscan
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wait_for_device {
|
||||||
|
local device="$1"
|
||||||
|
|
||||||
|
echo "Waiting for block device ${device} to appear"
|
||||||
|
for countdown in {1..600}; do
|
||||||
|
test -b "${device}" && break
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
test -b "${device}" || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
function udev_settle {
|
function udev_settle {
|
||||||
osd_devices="${OSD_DEVICE}"
|
osd_devices="${OSD_DEVICE}"
|
||||||
udevadm settle --timeout=600
|
|
||||||
partprobe "${OSD_DEVICE}"
|
partprobe "${OSD_DEVICE}"
|
||||||
lvm_scan
|
lvm_scan
|
||||||
if [ "${OSD_BLUESTORE:-0}" -eq 1 ]; then
|
if [ "${OSD_BLUESTORE:-0}" -eq 1 ]; then
|
||||||
@ -378,11 +382,10 @@ function udev_settle {
|
|||||||
local JDEV=$(echo ${OSD_JOURNAL} | sed 's/[0-9]//g')
|
local JDEV=$(echo ${OSD_JOURNAL} | sed 's/[0-9]//g')
|
||||||
osd_devices="${osd_devices}\|${JDEV}"
|
osd_devices="${osd_devices}\|${JDEV}"
|
||||||
partprobe "${JDEV}"
|
partprobe "${JDEV}"
|
||||||
|
wait_for_device "${JDEV}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# watch the udev event queue, and exit if all current events are handled
|
|
||||||
udevadm settle --timeout=600
|
|
||||||
|
|
||||||
# On occassion udev may not make the correct device symlinks for Ceph, just in case we make them manually
|
# On occassion udev may not make the correct device symlinks for Ceph, just in case we make them manually
|
||||||
mkdir -p /dev/disk/by-partuuid
|
mkdir -p /dev/disk/by-partuuid
|
||||||
@ -394,9 +397,6 @@ function udev_settle {
|
|||||||
ln -s "../../${dev}" "${symlink}"
|
ln -s "../../${dev}" "${symlink}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Give udev another chance now that all symlinks exist for devices we care about
|
|
||||||
udevadm settle --timeout=600
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Helper function to get a logical volume from a physical volume
|
# Helper function to get a logical volume from a physical volume
|
||||||
|
@ -40,4 +40,5 @@ ceph-osd:
|
|||||||
- 0.1.37 Add a disruptive OSD restart to the post-apply job
|
- 0.1.37 Add a disruptive OSD restart to the post-apply job
|
||||||
- 0.1.38 Skip pod wait in post-apply job when disruptive
|
- 0.1.38 Skip pod wait in post-apply job when disruptive
|
||||||
- 0.1.39 Allow for unconditional OSD restart
|
- 0.1.39 Allow for unconditional OSD restart
|
||||||
|
- 0.1.40 Remove udev interactions from osd-init
|
||||||
...
|
...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user