| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
iscsiadm/iscsistart return a mix of type of returns codes.
Sometimes -1 and sometimes a EXYZ type of error code. This
patch has them return a ISCSI_ERR value.
See iscsiadm man page EXIT STATUS section for error
code definitions.
|
|
|
|
|
|
|
| |
This patch has isns discoveryd use the isns discovery
rec settings instead of the iscsid.conf ones, so
that the set up the is the same as ST and to give us
freedom in the future to add more settings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We may need to have different CHAP settings for each
discovery portal. This patch has us use the discovery
records instead of the iscsid.conf method of specifying
the sendtargets info.
If the discovery record has
discovery.sendtargets.use_discoveryd = Yes
then iscsid will use that record to do sendtargets
discovery.
The poll interval can be set with
discovery.sendtargets.discoveryd_poll_inval.
|
|
|
|
|
|
|
|
|
|
|
| |
This has the suse and red hat scripts use the iscsiadm
kill command to shutdown the daemon. This is needed
so if the discovery daemon is used then it will be
cleanly stopped.
This does not modify the debian script because I was
not sure what the start-stop stuff was doing and did not
want to add a bug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the following params to iscsid.conf
discovery.daemon.isns.addresses
discovery.daemon.isns.poll_interval
These work like SendTargets where if you the param iscsid will do
discovery and log into the portals found.
This also adds iSNS SCN support. Like the other code it only supports
login of new targets.
Some notes:
- It does not appear to work with the Microsoft iSNS server
shipping with Windows 2008 rc. I have not tested 2003.
The server does not seem to be sending any SCNs and at the
same time when we register for SCNs it tells us the operation
was successful. From the Microsoft docs it appears that
the server does not support SCN events.
- Linux-isns is not working with our code. The Linux-isns
code appears to be sending iSNS SCN pdus with an incorrect
format.
- It is working with open-isns.git.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a MaxXmitDataSegmentLength param to iscsid.conf.
It will limit the size of the pdu we send to the target.
If you set it to 0, then we use the old behavior where we
just use whatever the target requested. If you set it to
a valid value then we use the min of the set value and
what the target requested.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the native isns code with open-isns's libisns.
I included the open-isns code in the open-iscsi tarball
to make distribution easier since some distros use different
isns clients and may not want to carry open-isns.
This is based on open-isns commit
5e09f36d3446e41de0b8361601ffec4cd140d513.
Changes in iSNS behavior/use:
- To do discovery you must pass the ip and optionally the
port to iscsiadm:
iscsiadm -m discovery -t st -p 10.15.0.9
This command accepts the same ops as sendtargets so you can
add/remove/update the node records that are created.
It also supports ifaces properly now.
- isns.address and isns.port in iscsid.conf are no longer
used.
- ESI is temporarily not supported. This will be fixed in the
next patch when SCNs support is added.
- The iscsiadm isns discovery command is not marked as stable.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch has iscsid do SendTargets to the addresses pointed to
discovery.daemon.sendtargets.addresses
iscsid.conf. It will do it every
discovery.daemon.sendtargets.poll_interval
seconds.
This is useful for setups where the target returns only the
valid portals and you want to log into all the portals returned.
If the target returns all portals, then this still works, but
it is a little loud when a login fails.
Notes:
- It will use the ifaces setup in /etc/iscsi/ifaces.
- For iscsi settings it will use the /etc/iscsi/iscsid.conf settings.
- It currently only logs into new targets. It does not remove old
ones. You have to run
iscsiadm -m session -r $SID -u
to remove stale sessions.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
This mvs the session management functions to a new file
so they can be used by the discovery daemons.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
The previous kernel patch added warm target reset support.
This patch allows you to set a timeout for the operation.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
| |
We now support replacement_timeout values of 0 and -1. See
the iscsid.conf for details.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch and mail from Hans de Goede:
Make iscsiadm start iscsid when needed so that iscsid will not actually
be started even if there are no iscsi disks configured yet.
From Mike Chrisite:
Orignal patch had Fedora startup string hard coded. Modified
patch so that it got read from iscsid.conf.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch and email from Erez:
If 'iscsiadm -m node --logoutall=all' fails when stopping
the open-iscsi service, we shouldn't kill iscsid.
This solves the following race:
1. A logout from a node is initiated by the user.
2. Before the logout completes, the user runs /etc/init.d/iscsi stop.
The 'stop' method logs out from all nodes. When it tries to logout
from the node that is already logging out (step #1), it fails
because it is already logging out. Then, the 'stop' method kills
iscsid.
3. The logout command form step #1 returns and notifies the (dead)
daemon.
Now, running 'iscsiadm -m session' shows a session (which, actually,
doesn't
exist anymore) and the iscsi service is down.
Signed-off-by: Erez Zilber <erezzi.list@gmail.com>
|
|
|
|
| |
This sets node.session.queue_depth for the session's devices.
|
|
|
|
|
|
|
|
| |
Increase default node.conn[0].iscsi.MaxRecvDataSegmentLength
to 262144 to closer match IO sizes we see from block layer.
The default block layer max is actually 512K, but in testing
setting the MaxRecvDataSegmentLength to this high a value
caused perf regressions with some targets.
|
|
|
|
|
|
|
| |
This sets the default xmit thread nice to -20. This will
increase throughput and decrease latency, but could hog
the cpu more. In the latter case you can set the nice in
/etc/iscsi/iscsid.conf's node.session.xmit_thread_priority setting.
|
|
|
|
|
|
|
|
|
| |
added new transport cxgb3i.
This patch is based on the master branch of the git tree.
Signed-off-by: Karen Xie <kxie@chelsio.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the retry count only controls the number of retries
that we attempt when the initial login attempt timesout.
It used to control the retry count for any error, which resulted
in it having to be set really high and it was also difficult to
figure out what to set it to since users (and me) have no idea
how quickly the network layer will return errors in some cases.
The retry count is also used to determine the max amount of time
to wait for the initial login attempt. We do this by:
login retry max * login timeout = max time
This makes it easier for the user to calculate the
max time that they will have to wait.
The default time to wait is now 2 minutes for normal sessions and
7 minutes for root.
|
|
|
|
|
|
|
|
|
|
|
| |
45 is too high if the connection is timing out. It is
45 * 15 seconds. This sets the retry limit to 8,
which would make the connection timeout wait 2 minutes.
This is still to few retries for the static ip problem, so
in the next patch we will modify iscsid so it retries
connection errors like this up to login_timeout * login_retry
seconds. This would be 2 minutes which is working for the
bug reporters on the list.
|
|
|
|
|
|
|
| |
initial_login_retry_max is too short to be useful.
We are getting a lot of login problems due to the
EHOSTUNREACH static ip address, so this patch
increases the default initial_login_retry_max to 45.
|
|
|
|
|
|
|
|
|
|
| |
bnx2i allocates a host per session and iser accesses the
device so we need to pass them a the leading connection
so they can find the hardware that is it bound to.
This also has us call ep_disconnect before calling the stop
conn callout, so these driver do not have to worry about
stopping the receiving path.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you wanted to be able to create multiple session to the same
target portal, then you can now do
iscsiadm -m iface -I iface0 -o new
If you want to, set a binding:
iscsiadm -m iface -I iface0 ....set your binding
repeat iface creation
iscsiadm -m discovery -t st -p ip:port -I iface0 -I iface1 -I ....
or you can create and bind statically
iscsiadm -m node -T my_target -i ip:port,tpgt -I iface0 -I iface1 -I ....
then login like normal. Or you can login/logout of specific ifaces
like with the normal binding.
There is one known bug where discovery is not printing the
portals and binding setup nicely.
|
|
|
|
| |
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now setup the initiator to use multiple initiatornames
which may come in handy for virtualization.
To setup a iface with inames do:
iscsiadm -m iface -o new -I iname0
iscsiadm -m iface -I iname0 -o update -n iface.initiatorname -v "your new name"
Then you can bind and use the interface like you would before.
QUIRK:
Because you can pass in multiple ifaces to the discovery command we
use the default initiator name in /etc/iscsi/initiatorname.iscsi for
the discovery session.
node.transport_name is no longer supported. In the next patches you
will be able to use the default ifaces for these transports.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
|
|
|
|
|
|
|
|
|
| |
These are some updates to the SUSE init scripts, plus a new
boot.open-iscsi script for SUSE. The latter is used for
root on iscsi, to start iscsid as early as possible to
avoid deadlocks on the root fs.
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
|
|
|
|
|
|
| |
While stopping open-iscsi, the initd script removes
the modules by running 'modprobe -r'. The retval of
modprobe must be tested.
Signed-off-by: Doron Shoham <dorons@voltaire.com>
|
|
|
|
| |
The default device qdepth is 32 and not 128.
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now do killall iscsid or iscsiadm -k 0 to stop iscsid.
This should not normally be done, because iscsid is required
for normal initiator behavior. It is mostly for testing, iscsi
boot or system shutdown.
TODO:
- more testing. I am pretty sure the original code is broken. For
exmaple sending a SIGTERM to the log process then the daemon process
will cause semop errors.
|
|
|
|
|
| |
Allow users to change the scsi eh timeout settings
and expose in sysfs.
|
|
|
|
|
|
|
| |
During root boot and shutdown the target could send us nops.
At this time iscsid cannot be running, so the target will drop
the session and the boot or shutdown will hang. This patch
moves the nop handling to the kernel.
|
|
|
|
|
|
|
| |
This patch adds logical unit reset support. It also fixes a bug
where when the session lock is dropped so we can grab
the recv lock, the iscsi eh thread could grab completely clean
up the session. The recv lock would then be a null ptr.
|
| |
|
| |
|
|
|
|
|
| |
condrestart is checking iscsi lock when it should be checking
open-iscsi (iscsi is only used in fedora).
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@865 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@855 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@852 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
targets are not handling it well) and use the iface argument instead of the actual values
git-svn-id: svn://svn.berlios.de/open-iscsi@845 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@826 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
iface (driver and hardware are bound). Also merge the -D and -I arguments so they are now -I driver,hwaddress. Also add some basic qla4xxx support. We can rescan/scan it and perform sendtargets through it but it stores the targets it finds in Flash and then logs into all of them autmatically (when we do discovery and later when reload the driver). So qla4xxx support is mostly to make sure we have the --interfae argument right. We will have to decide how to set other params, manage nodes, and if we should move scanning to the kernel and then also move some error recovery code to the kernel (today qla4xxx is calling block directly and is not able to export it iscsi state yet (the beginnings to fix that is in the git tree but we still need to reduce some code duplcation)). qla4xxx behavior and functionality is going to change as we learn more about the hw (what format the flash data is supposed to be in for example).
git-svn-id: svn://svn.berlios.de/open-iscsi@816 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
as well as the other params, so add a -D param
git-svn-id: svn://svn.berlios.de/open-iscsi@814 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
check if the allocation succeeds, so this patch fixes them in the discovery code and it allows use to set the MaxRecvDataSegmentLength so we can set it higher for some targets which do not send multiple smaller pdus well
git-svn-id: svn://svn.berlios.de/open-iscsi@787 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@780 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
|
|
| |
if invalid values are passed in
git-svn-id: svn://svn.berlios.de/open-iscsi@776 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@766 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@762 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@746 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@745 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@732 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|
|
|
|
| |
git-svn-id: svn://svn.berlios.de/open-iscsi@728 d7303112-9cec-0310-bdd2-e83a94d6c2b6
|