Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to get back into the unix game for some storage projects we have got going. We would love to use joyents smartos (based on illumos) for that.

Working with it is a real joy (setting up vms etc) but i can't get iscsi to work.

I would love to simply share a zfs device as an iscsi connection point but cant get it to work. I also cant get smb or nfs to work, but those properties at least exist and i am sure they would work.

The documentation i can find seems a little all-over-the-place with some old solaris, new solaris, illumos stuff etc. Which is understandable since it is such a new release though.

Does anybody have any pointers ?

I already tried

zfs set shareiscsi=on zones/name

which results in "unknown property". And its not listed in the zfs properties anyway.

I also tried

sbdadm create-lu /dev/zvol/rdsk/zones/

but this results in

sbdadm: unknown error

itadm also is not available and not service containing iscsi is listed in "svcs".

Any help is greatly appreciated.

Update: It seems iscsi is provided by COMSTAR and not in the same way that old solaris did it so the set shareiscsi is not supported because of that.

Update: i found out that the stmf service needs to be started for it (related to COMSTAR). sadly its in maintainance mode (svcs|grep stmf) log in /var/svc/log/system-stmf:default.log says:

svc-stmf: Unable to load the configuration. See /var/adm/messages for details

/var/adm/messages says:

svc:/system/stmf:default: Method "/lib/svc/method/svc-stmf start" failed with exit status 1.
system/stmf:default failed: transitioned to maintenance (see 'svcs -xv' for details)

probably a driver is missing, but which one ? and how do I install it ?

share|improve this question
up vote 4 down vote accepted

Creating an ISCSI Target

enable the storage server and iscsi target server if necessary

svcadm enable stmf
svcadm enable -r svc:/network/iscsi/target:default

create a volume if necessary (sparse 10T in example)

zfs create -V 10T -s zones/iscsi

create a logical unit

sbdadm create-lu /dev/zvol/rdsk/zones/iscsi

Add a view on it (GUID is output by previous command or list-lu)

stmfadm add-view GUID

Create a target group to connect to (Choose a GROUPNAME and a TARGETNAME and use an IP from the current server) An Example TARGETNAME could be: where the iscsi-100T part can be whatever you like. I think creating the target group is not essential, though it might be sensible.

itadm create-tpg GROUPNAME IP

Create a target in this group

itadm create-target -t GROUPNAME  -n TARGETNAME

BTW: If you dont set a TARGETNAME a unique identifier will be generated. But this happens everytime on boot on smartos and thus clients wont be able to reconnect automatically.

share|improve this answer
btw: this will get lost on reboot. in order to persist you should create a script that will execute on startup. – mgoetzke Mar 18 '12 at 12:15
create a script that will execute on startup and place it in /opt/custom/smf along with an smf file that executes the script on startup. – mgoetzke Mar 18 '12 at 12:25
it might be possible to use "stmfadm create-lu ..." with option --lu-prop alias=myname in order to create a consistent name instead of creating new names all the time ... that might make it easier for clients to autoreconnect to the iscsi device" – mgoetzke Jan 8 '13 at 12:33
Excellent instructions. I followed these on my smartOS machine using 20130725. It appears to be only possible in the global zone. – Matt Connolly Feb 8 '14 at 4:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .