Welcome to the Slackware Documentation Project

iSCSI

You may have heard of iSCSI in the context of corporate SANs perhaps supplying storage to a VMWare cluster of hosts, or some other heavy-weight application. These systems would generally involve running iSCSI over specialist 10Gbe (or more?) hardware and cabling and allow the operators to divorce the supply of storage from the hosts that use it. If that's your interest then this guide is probably not for you.

This guide is for people wanting to make use of iSCSI to share a DISK on a network between two machines. There are a number of reasons why you might want to do this instead of resorting to the probably more familiar file sharing mechanisms such as Samba and NFS but I can immediately think of one: You want the flexibility of a disk that's available on the network, without all the hassle of dealing with the edge cases that the big two file share protocols (CIFS/NFS) introduce. Since it's a SCSI-command (block level) protocol here are some common problems that will simply disappear with iSCSI:

  • UID/GID mismatch issues between client/server
  • File perms mismatch resulting in 'unsupported operation' type errors
  • The typical 're-export' issues when exporting an imported network file system as something else (capability mismatch)
  • Problems with 'special' files: pipes, unix domain sockets

Since you have a block-level protocol there is really nothing to configure. All you have to decide on is a Linux file system.

Nomenclature

The machine hosting the disk, is called an iSCSI server The disk itself, a shared resource on said machine, is a target. The client to access the server over a network, is an Initiator.

Target Software

For the target software, we will use:

  • The Linux kernel
  • Kernel module target_core_mod
  • Kernel module iscsi_target_mod
  • targetcli-fb utility

The modules will be automatically loaded by Slackware-current, so nothing to do there.

I installed targetcli-fb with slkpg -s sbo targetcli-fb. This little utility controls the configuration of the kernel modules above.

Initiator Software

For the initiator we will use:

  • The Linux kernel.
  • module scsi_transport_iscsi
  • module iscsi_tcp
  • module libiscsi
  • open-iscsi

The kernel modules are also loaded automatically by Slackware-current. open-iscsi SlackBuild on SBO has been recently fixed, so should install with slpkg -s sbo open-isci.

Configuration

First, get the initiator ID from the client:

# cat /etc/iscsi/initiatorname.iscsi 

Then on the server

# mkdir /etc/target

TO BE CONTINUED….

Sources


In Other Languages
Translations of this page?:
QR Code
QR Code howtos:network_services:iscsi (generated for current page)