Install an iSNS server on OpenIndiana
Errata March 2021: a few statements in this blog post are wrong. These statements are marked with strikethrough text. Moreover, I would like to emphasize that Open-iSNS is solid and well maintained.
In order to test
target-isns, an iSNS
client that I am developing, I looked for an iSNS server
running on Linux. Unfortunately, the iSNS server implementations
for Linux that I found
(linuxisns and
Open-iSNS) are not
maintained anymore.
It seems that people managing iSNS servers these days are using
Windows or Solaris. That's why I decided to install OpenIndiana, an
operating system derived from OpenSolaris, to try Solaris' iSNS
server.
Install OpenIndiana
OpenIndiana is a distribution of Illumos, the open source fork of Sun's OpenSolaris. Installing the server version of OpenIndiana is quick and easy: the installation completes in less than fifteen minutes. Then it is time to execute a first command:
$ uname -a SunOS openindiana 5.11 oi_151a8 i86pc i386 i86pc Solaris
As you can see, this is not Linux ☺. When I was a student ten years ago, I used to work on an Ultra 5 workstation and at the time I felt frustrated by Solaris' command-line utilities which were less convenient than the GNU utilities. Fortunately, OpenIndiana enables the Bash interpreter and the GNU utilities by default.
$ echo $SHELL /bin/bash $ echo $PATH /usr/gnu/bin:/usr/bin:/usr/sbin:/sbin
Moreover, OpenIndiana allows remote login with SSH and the user specified during installation is a sudoer.
Install the iSNS server
That's where things start to differ from Linux: packages are managed
by the pkg
command, not apt
or yum
. To search for a package, you
can use the pkg search
command:
$ pkg search isns INDEX ACTION VALUE PACKAGE pkg.summary set Solaris iSNS Server pkg:/service/storage/isns@0.5.11-0.151.1.8 basename file usr/sbin/isns pkg:/service/storage/isns@0.5.11-0.151.1.8 pkg.fmri set openindiana.org/service/storage/isns pkg:/service/storage/isns@0.5.11-0.151.1.8
Then, the pkg install
command is executed to install the iSNS package.
$ sudo pkg install isns Packages to install: 1 Create boot environment: No Create backup boot environment: No Services to change: 1
Enable the iSNS service
After installing the iSNS server, you will see that it is not running. This is because the iSNS service must be enabled.
The services of OpenIndiana are managed with the svc
family of
commands. For instance, svcs
displays the list of services that are
running.
$ svcs STATE STIME FMRI legacy_run 18:09:16 lrc:/etc/rc2_d/S20sysetup legacy_run 18:09:16 lrc:/etc/rc2_d/S47pppd [...] online 18:10:13 svc:/system/console-login:default online 18:39:07 svc:/system/manifest-import:default
If you want to display all services, including the services that are
not running, you have to pass the -a
option to svcs
:
$ svcs -a | grep isns disabled 18:39:05 svc:/network/isns_server:default
As you can see, the iSNS service is not running. Let's enable it with
the svcadm
command:
$ sudo svcadm enable svc:/network/isns_server $ svcs svc:/network/isns_server STATE STIME FMRI online 18:59:37 svc:/network/isns_server:default
That's it! Our iSNS server is now up and running:
$ ps aux | grep isns root 2127 0.0 0.2 4712 2352 ? S 18:59:37 0:00 /usr/sbin/isns