Solaris iSNS Server (v2) Beta Released

Posted on September 9, 2007

Solaris storage enthusiasts will be excited to know that the OpenSolaris iSNS Server Project has released the first usable iSNS Server implementation. I personally refer to this release as “v2” because some of you may recall Sept ’06 iSNS Server Release which was completely unusable, after which the iSNS Server Project went dark for some time. But, all that is behind us now! This release completes the iSCSI trio officially now that we have a usable iSCSI Initiator, iSCSI Target, and iSNS Server all available as CDDL Open Source.

(If your jumping up and down saying “What about COMSTAR!?!”, I’m not commenting on that right now… yes I know about it, yes I’m interested, we’ll talk later.)

The iSNS Server implementation is available now (released 2 days ago, sorry for the lag). You can download drop-in binary tarballs for X86 and SPARC, or to have a look at the code the WebRev is available here. The code is not yet available in the NWS consolidation OpenGrok, I’m hoping it’ll appear soonish.

To get started with the iSNS Server, download the tarball appropriate for your platform and untar from root (/). You’ll get 3 files: an SMF Manifest, the iSNS server binary, and the iSNS admin CLI binary. Import the manifest (“svccfg import …”) and then start the service (“svcadm enable isns_server”) and you’re good to go.

Now that you have an iSNS Server running you can start to play. I’ll blog about iSNS in detail soon now that there is a reason, but here are some quick notes to get you started:

Once the iSNS Server is running configure both your Solaris Targets and your Solaris Initiators at the iSNS Server, here is an example:

First the iSCSI Target system (I had to restart the target service after doing this):

# iscsitadm modify admin --isns-server 10.0.0.17 --isns-access enable
# iscsitadm show admin   
iscsitadm:
    Base Directory: Not set
    CHAP Name: Not set
    RADIUS Access: Not set
    RADIUS Server: Not set
    iSNS Access: Enabled
    iSNS Server: 10.0.0.17
    Fast Write ACK: Not set

And now the Initiator:

root@aeon /$ iscsiadm add isns-server 10.0.0.17 
root@aeon /$ iscsiadm modify discovery --iSNS enable
root@aeon /$ iscsiadm list discovery 
Discovery:
        Static: disabled
        Send Targets: disabled
        iSNS: enabled
root@aeon /$ iscsiadm list isns-server -v
iSNS Server IP Address: 10.0.0.17:3205

Once this is done have a look at your iSNS configuration and you should see your initiator nodes and your targets as part of the Default Discovery Domain:

 isnsadm list-node -v
iSCSI Name: iqn.1998-07.com.cuddletech:aeon
        Alias: aeon
        Type: Initiator
        Network Entity: iqn.1998-07.com.cuddletech:aeon
        Portal: 10.0.0.2:61191
                Portal Group: 1
        DD Name: Default
iSCSI Name: iqn.1986-03.com.sun:02:97e538ed-f9c0-6c11-9326-eae82f4f1174
        Alias: pool/local/default/aeon
        Type: Target
        Network Entity: flux
        Portal: 8.12.35.49:3260
                Portal Group: 1
        DD Name: Default

That should start you on your way. More on iSNS to come, I want to discuss it in much greater detail.

To the iSNS Server Project developers, namely Hyon Kim and Victor Li. Great work guys!