27 lines
1.2 KiB
Text
Executable file
27 lines
1.2 KiB
Text
Executable file
# Assumes, osd is up and
|
|
|
|
#
|
|
OSDTYPE=ssd
|
|
|
|
|
|
# Tempfile
|
|
/opt/ungleich-tools/megaclisas-status > /tmp/megaclisas-status.out
|
|
|
|
# Gets osd numbers of a particular device class, and gets their mountpoints on the host, and puts them into a tempfile
|
|
for osd in $(ceph osd tree | grep $OSDTYPE | grep -v down | cut -b 1-3); do findmnt -t xfs -n -o TARGET,SOURCE | grep "ceph-$osd " | cut -c 24- >> /tmp/list_osd_mountpoint.out; done
|
|
|
|
# Gets the Megacli mappings for the mountpoints
|
|
for MOUNT in $(cat /tmp/list_osd_mountpoint.out | awk '{print $2}' | sed 's/[0-9]*//g') ; do cat /tmp/megaclisas-status.out | grep $MOUNT | awk '{print $1}' >> /tmp/megacli-mappings.out; done
|
|
|
|
# Gets the hardware types for the Megacli mappings
|
|
for megacli_mappings in $(cat /tmp/megacli-mappings.out); do awk '/Disk info/,0' /tmp/megaclisas-status.out | grep $megacli_mappings | cut -d '|' -f 3 >> /tmp/disk_types.out; done
|
|
|
|
# Formatting, to get the local $OSDTYPE osd-s
|
|
for osd_num in $(cat /tmp/list_osd_mountpoint.out | awk '{print $1}'); do echo osd-$osd_num >> /tmp/local_osds.out; done
|
|
|
|
# Combine and display the outputs
|
|
paste /tmp/local_osds.out /tmp/disk_types.out
|
|
|
|
|
|
# Cleanup *.out files in the temp dir
|
|
rm /tmp/*.out
|