From 905361e72fb9ea624e910c91b460071970761b6f Mon Sep 17 00:00:00 2001 From: JDierkse Date: Thu, 11 May 2023 15:44:13 +0200 Subject: [PATCH] Initial commit --- info | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ mountVolume | 44 +++++++++++++++++++++++++++++++++++++++++++ testPerformance | 24 ++++++++++++++++++++++++ unmountVolume | 15 +++++++++++++++ 4 files changed, 133 insertions(+) create mode 100755 info create mode 100755 mountVolume create mode 100755 testPerformance create mode 100755 unmountVolume diff --git a/info b/info new file mode 100755 index 0000000..111e018 --- /dev/null +++ b/info @@ -0,0 +1,50 @@ +#!/bin/bash + +IQN=$1 + +PrintIQN() { + IQN=$1 + + IQNTEST=$(grep -h ${IQN} /sys/class/iscsi_session/*/targetname) + if [ "${IQNTEST}" != "${IQN}" ]; then + echo "IQN not found" + echo "" + + exit + fi + + SESSIONFOLDER=$(grep -l ${IQN} /sys/class/iscsi_session/*/targetname | xargs realpath) + SESSION=$(echo "${SESSIONFOLDER}" | sed 's/.*session\([0-9]*\).*/\1/g') + HOST=$(echo "${SESSIONFOLDER}" | sed 's/.*host\([0-9]*\).*/\1/g') + + SCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed 's/\(.*\)\/iscsi_session.*/\1/g' | xargs ls -1 | grep "target${HOST}" | sed 's/target//g') + MAJOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 2) + MINOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 3) + + FULLSCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}/g" | xargs ls -1 | grep ":") + LUN=$(echo "${FULLSCSIADDRESS}" | cut -d ":" -f 4) + + BLOCKDEVICE=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}\/${FULLSCSIADDRESS}\/block/g" | xargs ls -1 | xargs printf "/dev/%s") + MOUNTPOINT=$(grep "${BLOCKDEVICE}" /proc/mounts | head -n 1 | cut -d " " -f 2) + + echo "IQN: ${IQN}" + #echo " Session: ${SESSION}"; + #echo " Host: ${HOST}"; + #echo " Channel: ${MAJOR}"; + #echo " Id: ${MINOR}"; + #echo " LUN: ${LUN}"; + echo " Address: [${SESSION}] scsi$HOST:${MAJOR}:${MINOR}:${LUN}" + echo " Device: ${BLOCKDEVICE}"; + echo " Mountpoint: ${MOUNTPOINT}"; + echo +} + +if [[ -z "${IQN}" ]]; then + IQNLIST=$(cat /sys/class/iscsi_session/*/targetname) + for IQN in ${IQNLIST}; do + PrintIQN ${IQN} + done; +else + PrintIQN ${IQN} +fi + diff --git a/mountVolume b/mountVolume new file mode 100755 index 0000000..cf753f8 --- /dev/null +++ b/mountVolume @@ -0,0 +1,44 @@ +#!/bin/bash + +IQN=$1 +HOST=$2 + +if [[ -z "${IQN}" ]]; then + echo "usage: $0 TargetIQN [Host]" + echo "" + + exit +fi + +iscsiadm -m discovery -t sendtargets -o update -p ${HOST} &> /dev/null + +if [[ ! -z "${HOST}" ]]; then + iscsiadm -m node -T ${IQN} -p ${HOST} -l +else + iscsiadm -m node -T ${IQN} -l +fi + +sleep 0.5 + +SESSIONID=$(iscsiadm -m session | grep "${IQN}" | head -n 1 | sed -e 's/.*\[\(.*\)\].*/\1/g') +DEVICE=$(iscsiadm -m session -r ${SESSIONID} -P 3 | grep "Attached scsi disk" | sed -e 's/.*Attached scsi disk \([^\t]*\).*/\/dev\/\1/g') +BLOCKDEVICE=${DEVICE} + +MULTIPATHDEVICE=$(multipath -l ${DEVICE} | grep 'mpath' | sed -e 's/^\([a-z]*\) .*/\1/g') +if [[ ! -z "${MULTIPATHDEVICE}" ]]; then + BLOCKDEVICE="/dev/mapper/${MULTIPATHDEVICE}" +fi + +mkdir -p /mnt/iSCSI_${IQN} + +FILESYSTEM=$(blkid ${BLOCKDEVICE}) +if [ -z "${FILESYSTEM}" ]; then + echo "No Filesystem found, initialize using following command:" + echo "mkfs.ext4 ${BLOCKDEVICE}" + echo "" + echo "And mount afterwards using:" + echo "mount ${BLOCKDEVICE} /mnt/iSCSI_${IQN}" +else + mount -o discard ${BLOCKDEVICE} /mnt/iSCSI_${IQN} +fi + diff --git a/testPerformance b/testPerformance new file mode 100755 index 0000000..44390d8 --- /dev/null +++ b/testPerformance @@ -0,0 +1,24 @@ +#!/bin/bash + +IQN=$1 + +if [[ -z "${IQN}" ]]; then + echo "usage: $0 TargetIQN" + echo "" + + exit +fi + +if [[ ! -d "/mnt/iSCSI_${IQN}" ]]; then + echo "IQN ${IQN} is not mounted" + echo "" + + exit +fi + +dd if=/dev/zero of=/mnt/iSCSI_${IQN}/test1.img bs=1G count=1 oflag=dsync +dd if=/dev/zero of=/mnt/iSCSI_${IQN}/test2.img bs=512 count=1000 oflag=dsync + +rm -f /mnt/iSCSI_${IQN}/test1.img +rm -f /mnt/iSCSI_${IQN}/test2.img + diff --git a/unmountVolume b/unmountVolume new file mode 100755 index 0000000..ee5f33a --- /dev/null +++ b/unmountVolume @@ -0,0 +1,15 @@ +#!/bin/bash + +IQN=$1 + +if [[ -z "${IQN}" ]]; then + echo "usage: $0 TargetIQN" + echo "" + + exit +fi + +umount /mnt/iSCSI_${IQN} +rm -rf /mnt/iSCSI_${IQN} +iscsiadm -m node -T ${IQN} -u +