X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=input%2Fhowto%2Fexport-iscsi.creole;h=6d3b88ff8a3c577e10a7d703cdb49467aea1164c;hb=9061e132d38c354d068878e281c6cf8c536c7bf0;hp=54ce1654b9b8c23e0b9bce8d60e883ba47cea2de;hpb=54bbad1c8c8f65dabfa839296249180131adc62b;p=mirror%2Fdsa-wiki.git diff --git a/input/howto/export-iscsi.creole b/input/howto/export-iscsi.creole index 54ce165..6d3b88f 100644 --- a/input/howto/export-iscsi.creole +++ b/input/howto/export-iscsi.creole @@ -23,7 +23,7 @@ This document describes how to add new new volumes on gustini and add them into iscsiadm -m node --targetname "iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a" --rescan + on dijkstra: add aliases to the wwids (show topology) - + on dijkstra: /etc/init.d/multipath-tools reload + + on dijkstra: service multipath-tools reload }}} == via telnet interface == @@ -37,4 +37,64 @@ This document describes how to add new new volumes on gustini and add them into * map the new volume to traetta.debian.org, LUN 12 + map volume berlioz-boot lun 12 host traetta access rw (again, there is a 'help map volume' command with lots of informations) + +* Run 'show host-maps $host' again, then, on the host, run: + convert_sn() { + local sn a b c d + sn="$1" + a="${sn%??????????????????????????}"; sn="${sn#??????}" + b="${sn%????????????????????}"; sn="${sn#??????}" + c="${sn%??????????????}"; sn="${sn#??????}" + d="$sn" + + if [ "${c#0000}" = "$c" ]; then + echo >&2 "sn has unexpected value ($1: $a - $b - $c - $d)" + return 1 + fi + + echo "36${a}000${b}${c#0000}${d}" + return 0 + } + + parse_volume() { + host=`hostname` + echo "Paste appropriate 'show host-maps $host' output line:" + read name sn id lun access channels + + if [ "$access" != "rw" ]; then + echo >&2 "Do not have rw access" + return 1 + fi + + if [ "$(echo -n "$sn" | wc -c)" != "32" ]; then + echo >&2 "Unexpected sn length in '$sn' (wanted 32 chars)" + return 1 + fi + + wwid=$(convert_sn "$sn") + + if [ -z "$wwid" ]; then + return 1 + fi + + echo "" + echo " multipath {" + echo " wwid $wwid" + echo " alias $name" + echo " }" + echo "" + + mp="$(multipath -ll $wwid)" + if [ -z "$mp" ]; then + echo >&2 "Warning: multipath does not know about $wwid" + return 1 + fi + + if ! echo "$mp" | grep -q ":$lun "; then + echo >&2 "Warning: Are you sure $wwid is lun $lun? multipath -ll disagrees" + return 1 + fi + } + + parse_volume }}}