On 02/23/2011 08:44 AM, Hannes Reinecke wrote:
On 02/19/2011 05:45 AM, Mike Christie wrote:
On 02/18/2011 08:59 PM, Dr. Ed Morbius wrote:
Trying to set up a number of initiators on CentOS 5.5 with a Dell
MD32xxi target.

I've successfully configured several other identical initiators with
these targets.

      $ export DP=<dataport IP>
      $ sudo iscsiadm -m discoverydb -t sendtargets -p $DP:3260
      iscsiadm: Discovery record [$DP,3260] not found.


I've got records in /var/lib/iscsi/ifaces, but no other /var/lib/iscsi/
subdirectories.

Have you done discovery to that address,port or done a -o new to create
a db discovery record for it? If not then that is what you would expect.

You can do


sudo iscsiadm -m discoverydb -t sendtargets -p $DP:3260 -D

without the -D, then iscsiadm is just looking for the discovery record
for that discovery address,port.

To have iscsiadm try to do discovery pass it the -D argument or do the
old style

iscsiadm -m discovery -t st -p ip:port
(no db in the discovery mode name).

I have just stumbled upon this issue, too.

I am not sure you guys are talking about the same issue. Here is the long story for why we have discoverydb and discover mode. It is bascially because I messed up. So if you like long stories read on. If not skip to the patch comments :)


In the discoverydb issue it is that with discoverydb mode you can use -o new to create a discovery record manually. This was to make it easier to script/manage. So if you had multiple discovery addresses that needed different discovery settings you had to edit iscsid.conf discovery settings, run iscsiadm discovery command for -p A, then edit iscsid.conf disocvery settings again and then rerun iscsiadm discovery command for -p B.

With discoverydb mode your script can do

iscsiadm -m discoverydb -p ip:port -o new
iscsiadm -m discoverydb -p ip:port -o update -n discovery.somesetting -v value
iscsiadm -m discoverdb -p ip:port -D


A long time ago, I think when Alex and Dimitry and I transitioned maintainership, I messed up the original "discovery" mode. We used to do something like the above with -o new in the old discovery mode and --login in discovery mode had you use the discovery record and login to the discovery address. But at some point I changed it so -o new operated on the node records that got created and --login logged into the portals that got discovered.

A couple months ago I realized I messed up when someone was requesting the behavior. I could not change the current discovery behavior because users were using it so I added the discoverydb mode which acts on the discovery db. (I think no one noticed I messed up before because there not as many users or at least we did not have vocal users because no one said anything. And I never knew I messed up until I was looking at that code a couple months ago).

So now we have commands like:

// just create discovery record
iscsiadm -m discoverydb -p ip:port -o new
you can then use -o update to edit the settings like in node mode.


// do discovery and only add records for portals that are not yet present in the db
iscsiadm -m discovery -p ip:port -o new
or
iscsiadm -m discoverydb -p ip:port --discover -o new
// note that for discoverydb mode you pass in the --discover argument, and that the discoverydb command will use the discovery record settings where discovery mode would use the iscsid.conf settings.





And found it pretty awkward to use; after all, to all intents and
purposes the hostname and the IP-address can be used interchangeably.
I (and our QA :-( ) don't see a reason why should draw a blank here.


I just added support for this to node mode with commit 4d045cdeaf701f8abe6bee4f1e433f7bc9c50493.

I did not add support for discovery mode, because I figured you would just use whatever you used the first time. With node mode though the target decided and you had no control. I am ok with adding support though.


So after long hours of debugging I came up with this patch, which
resolves the hostname into the IP address and uses this for lookup.


I am ok with the idea. I am not sure if the patch works ok though. I was not sure what version to apply it to, so the comment below are based on me trying to port it.

For the patch it seems if you passed in a hostname into

iscsiadm -m discovery -p myhost -t st

but later did

iscsiadm -m discovery -p myhost

it would not work since we are only resolving in the discovery path. So we need to resolve and convert in other paths. For example if you ran

iscsiadm -m discovery
or
iscsiadm -m discovery -P 1

you get the ip address printed out when if they passed in the hostname they probably want to see the hostname.

Also it seems since we resolve the hostname to a IP and use that for discovery record value if the hostname changes IPs then the db is messed up.

For 4d045cdeaf701f8abe6bee4f1e433f7bc9c50493 I tried to do the resolution on the fly. So the user/target gives us whatever they want then I tried to resolve and match. I will try to convert your patch to support the above. Give me a couple days. I am very backed up (I am just about done porting the broadcom patch to fix if session_login_task->iscsi_conn_connect->ep_connect fails with a transient error).

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to