Internet Storage Name Service

The Linux SCSI Target Wiki

(Redirected from ISNS)
Jump to: navigation, search

The proposed Internet Storage Name Service (iSNS) protocol allows automated discovery, management and configuration of LinuxIO devices on a TCP/IP network across multiple discovery domains and discovery domain sets (optionally using iFCP gateways).

The service can be conceptualized as "DNS for SANs." FCoE, Fibre Channel, iSCSI, or iSER then provide the storage, TPG, and Network Portal objects for the Initiator and LinuxIO nodes respectively.



iSNS provides management services similar to those found in Fibre Channel networks, allowing a standard IP network to operate in much the same way that a Fibre Channel SAN does. Because iSNS is able to emulate Fibre Channel fabric services and manage both iSCSI and Fibre Channel devices, an iSNS server can be used as a consolidated configuration point for an entire storage network. However, standards-compliant iSNS implementations are required to support the iFCP protocol, supporting the iSCSI protocol is optional.

RFC 4171 Section 4.2 (iSCSI Object Model Diagrams) describes two implementations, including an advanced object model that is required for active-active high availability.


The iSNS standard defines four components:

The iSNS Protocol
iSNSP is a protocol that specifies how iSNS clients and servers communicate. It is intended to be used by various platforms, including switches and targets as well as server hosts.
iSNS Clients
iSNS clients are part of iSNSP aware storage devices. iSNS clients initiate transactions with iSNS servers using the iSNSP, register device attribute information in a common Discovery Domain (DD), download information about other registered clients and receive asynchronous notification of events that occur in their DD(s).
iSNS Servers
iSNS servers respond to iSNS protocol queries and requests made by iSNS clients using the iSNSP. iSNS servers initiate iSNSP State Change Notifications and store properly authenticated information submitted by a registration request in an iSNS database.
iSNS Databases
iSNS databases are the information repositories for iSNS server(s). They maintain information about iSNS client attributes; while implementations will vary, a directory-enabled implementation of iSNS, for example, might store client attributes in an LDAP directory.
iSNS Control Node Client
an iSNS control node client can facilitate administrative operations. Multiple implementations exist.

Control Node Client

There is no need to setup an iSNS Control Node Client in order to run the iSNS server with non-control node clients. Without an iSNS Control Mode Client, this will start the daemon and accept clients into the the Default Discovery Domain:

/etc/init.d/isnsserver start

CentOS 5 (i386 & x86_64) client and server builds are available from the LIO iSNS repository.

There is long-term interest to provide iSNS using software RFC 4171 heartbeat (implemented by the original author, and still present today). Also, a long-term option is using LIO T/I mounts using Linux/HA H+A with iSNS server as a cluster resource.

iSNS client scripts

The iSNS Control Client from LIO is directly based on the Linux/iSNS Project. Additional iSNS control client functionality and scripts have been included. The iSNS control client is stable, and is currently being used on Linux-IO.

iSNS Control Node Client scripts


  1. The scripts are meant to be used by the iSNS GUI for managing control nodes.
  2. String arguments which contain spaces must be enclosed in double quotes.


The sourcecode is available from the iSNS repository (see also README). It should build on any 2.4 or 2.6 Linux machine. Also, there is code to support other build platforms aside from the original Linux/iSNS sourcecode.

This original single threaded iSNS server design has been stable for some time, and suffices for moderate loads on modern iSNS clients. allows to buld these RPMs for a simple iSNS server today. The original iSNS server by IPS TWG was licensed under a BSD license, and the new version is also available under a BSD license.

The new iSNS server code still requires work to fully achieve production quality. E.g., the completion of asynchronous event handling on both client and server is an ongoing effort by numerous parties. A number of Linux vendors have been working on implementing iSNS functionality in their products, too. Examples for configurations of these implementations can be posted here as a community resource.

The following example is based on the Sony PlayStation 3 with Fedora Core 5.

[root@ps3-cell isnsserver]# ARCH=powerpc ./autoconfig --write-to-file

The resultng .make_autoconfig file should look as follows (some of the resulting output has been removed for simplicity):

[root@ps3-cell isnsserver]# cat /usr/src/
AUTO_CFLAGS?= -I/lib/modules/2.6.23-rc5/source/drivers/scsi  DUSE_COMPAT_IOCTL -DPYX_ISCSI_VENDOR='""'  -DIQN_PREFIX='""'  -DLINUX -DLINUX_SCATTERLIST_HAS_PAGE -DSVN_VSN=\"58\"

Upon request, we can also provide users and developers with a public iSNS server service.



See also

External links

Personal tools
Google AdSense