From: TheR 2 <d_...@ya...> - 2009-09-11 09:18:45
|
This is what I managed to do. It works so far even for luns that are created dynamicly and rediscovered with "iscsiadm -m session -R" command. 1. I have created /etc/iscsi/persistent.names.conf. It looks like this: ------------- iqn.2100-05.si.ozs:diski.sas;0;iscsi/win_portal iqn.2100-05.si.ozs:diski.sas;1;iscsi/dns1 iqn.2100-05.si.ozs:diski.sas;2;iscsi/dns2 ------------- 2. I have created /etc/udev/rules.d/60-persistent-iscsi.rules. It looks like this: ------------- # This file maintains persistent names for iscsi disks. ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{program}="path_id %p" ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", PROGRAM="/usr/bin/persistent_iscsi.rb $env{ID_PATH}", SYMLINK+="%c" -------------- 3. And finaly I have created this Ruby script, since I do almost all my programing in Ruby. -------------- #!/usr/bin/ruby # id looks like this: ip-192.168.1.221:3260-iscsi-iqn.2100-05.si.ozs:diski.sas-lun-0 id = ARGV.first device = nil # parse id on - sign a = id.split('-') # third part should be iscsi exit 1 unless a[2] == 'iscsi' # get lun and iqn id_iqn = a[3] + '-' + a[4] id_lun = a[6] # read my configuration file /etc/iscsi/persistent.names.conf File.new('/etc/iscsi/persistent.names.conf').readlines.each do |line| # config line looks like this: iqn.2100-05.si.ozs:diski.sas;2;iscsi/dns1 iqn, lun, dev = line.chomp.split(';') if iqn == id_iqn and lun == id_lun device = dev break end end # Error if not found exit 1 if device.nil? # out device name on stdout puts device ---------------- Now I can see this devices: /dev/iscsi/dns1 /dev/iscsi/dns2 /dev/iscsi/win_portal What do you think of? Should I expect any problems. This is stricly test environment for now but will be going production by the end of the year. Ruby is of course optional. I have no idea how to make comparisons and parsing in shell script and I will run Ruby on server anyway. Scripting is so much easier. by TheR -- View this message in context: http://www.nabble.com/Making-consistent-iscsi-device-naming-tp25397685p25397685.html Sent from the linux-iscsi-users mailing list archive at Nabble.com. |