diff options
Diffstat (limited to 'straper/db/public/zfs/etc-zfs/zpool.d/media')
| -rwxr-xr-x | straper/db/public/zfs/etc-zfs/zpool.d/media | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/straper/db/public/zfs/etc-zfs/zpool.d/media b/straper/db/public/zfs/etc-zfs/zpool.d/media new file mode 100755 index 0000000..095ac86 --- /dev/null +++ b/straper/db/public/zfs/etc-zfs/zpool.d/media @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Print out the type of device +# + +if [ "$1" = "-h" ] ; then + echo "Show whether a vdev is a file, hdd, ssd, or iscsi." + exit +fi + +# shellcheck disable=SC2154 +if [ -b "$VDEV_UPATH" ]; then + device="${VDEV_UPATH##*/}" + read -r val 2>/dev/null < "/sys/block/$device/queue/rotational" + case "$val" in + 0) MEDIA="ssd" ;; + 1) MEDIA="hdd" ;; + *) MEDIA="invalid" ;; + esac + + vpd_pg83="/sys/block/$device/device/vpd_pg83" + if [ -f "$vpd_pg83" ]; then + if grep -q --binary "iqn." "$vpd_pg83"; then + MEDIA="iscsi" + fi + fi +else + if [ -f "$VDEV_UPATH" ]; then + MEDIA="file" + fi +fi + +echo "media=$MEDIA" |
