Eu preciso criar uma configuração multipath para fins de teste em um script, mas eu gostaria de usar nomes específicos com algum prefixo para os dispositivos que são criados - para que eu possa filtrar facilmente os testes de qualquer coisa que já possa existir. Eu sei que posso editar /etc/multipath.conf
para configurar um alias, mas editar arquivos de configuração do sistema de um teste é uma loucura. É possível em tudo?
O script bash que estou usando para configurá-lo:
iqn="iqn.2006-04.com.example:444"
mpath_setup_targets() {
# $1 is the device which is going to be provided through multipath
filename="$1"
hostiqn=$(cat /etc/iscsi/initiatorname.iscsi | grep -o "iqn.*$")
targetcli backstores/block create md_block0 "$filename"
targetcli /iscsi create $iqn
targetcli /iscsi/$iqn/tpg1/luns create /backstores/block/md_block0
targetcli /iscsi/$iqn/tpg1/portals delete 0.0.0.0 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.1 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.2 3260
targetcli /iscsi/$iqn/tpg1/portals create 127.0.0.3 3260
targetcli /iscsi/$iqn/tpg1/acls create $hostiqn
targetcli /iscsi/$iqn/tpg1 set attribute authentication=0
# find the multiple paths to $filename
iscsiadm -m discovery -t sendtargets -p 127.0.0.1 -o new -o delete >/dev/null
iscsiadm -m node -L all >/dev/null
# give it few seconds to propagate and fail if nothing appears
tries=5
while [ $tries -gt 0 ]; do
found=$(multipath -ll | wc -l)
tries=$((tries - 1))
if [ $found -gt 0 ]; then
return 0
fi
sleep 1
done
return 1
}