Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
Applies to SUSE Linux Enterprise Server 11 SP4

14 Mass Storage over IP Networks: iSCSI

One of the central tasks in computer centers and when operating servers is providing hard disk capacity for server systems. Fibre Channel is often used for this purpose. iSCSI (Internet SCSI) solutions provide a lower-cost alternative to Fibre Channel that can leverage commodity servers and Ethernet networking equipment. Linux iSCSI provides iSCSI initiator and target software for connecting Linux servers to central storage systems.

iSCSI SAN with an iSNS Server
Figure 14.1: iSCSI SAN with an iSNS Server

iSCSI is a storage networking protocol that facilitates data transfers of SCSI packets over TCP/IP networks between block storage devices and servers. iSCSI target software runs on the target server and defines the logical units as iSCSI target devices. iSCSI initiator software runs on different servers and connects to the target devices to make the storage devices available on that server.

Important
Important

It is not supported to run iSCSI target software and iSCSI initiator software on the same server in a production environment.

The iSCSI target and initiator servers communicate by sending SCSI packets at the IP level in your LAN. When an application running on the initiator server starts an inquiry for an iSCSI target device, the operating system produces the necessary SCSI commands. The SCSI commands are then embedded in IP packets and encrypted as necessary by software that is commonly known as the iSCSI initiator. The packets are transferred across the internal IP network to the corresponding iSCSI remote station, called the iSCSI target.

Many storage solutions provide access over iSCSI, but it is also possible to run a Linux server that provides an iSCSI target. In this case, it is important to set up a Linux server that is optimized for file system services. The iSCSI target accesses block devices in Linux. Therefore, it is possible to use RAID solutions to increase disk space as well as a lot of memory to improve data caching. For more information about RAID, also see Chapter 8, Software RAID Configuration.

14.1 Installing iSCSI Target and Initiator

YaST includes entries for iSCSI Target and iSCSI Initiator software, but the packages are not installed by default.

Important
Important

It is not supported to run iSCSI target software and iSCSI initiator software on the same server in a production environment.

14.1.1 Installing iSCSI Target Software

Install the iSCSI target software on the server where you want to create iSCSI target devices.

  1. Launch YaST as the root user.

  2. Select Network ServicesiSCSI Target.

  3. When you are prompted to install the iscsitarget package, click Install.

  4. Follow the on-screen install instructions, and provide the installation media as needed.

    When the installation is complete, YaST opens to the iSCSI Target Overview page with the Service tab selected.

  5. Continue with Section 14.2, “Setting Up an iSCSI Target”.

14.1.2 Installing the iSCSI Initiator Software

Install the iSCSI initiator software on each server where you want to access the target devices that you set up on the iSCSI target server.

  1. Launch YaST as the root user.

  2. Select Network ServicesiSCSI Initiator.

  3. When you are prompted to install the open-iscsi package, click Install.

  4. Follow the on-screen install instructions, and provide the installation media as needed.

    When the installation is complete, YaST opens to the iSCSI Initiator Overview page with the Service tab selected.

  5. Continue with Section 14.3, “Configuring iSCSI Initiator”.

14.2 Setting Up an iSCSI Target

SUSE Linux Enterprise Server comes with an open source iSCSI target solution that evolved from the Ardis iSCSI target. A basic setup can be done with YaST, but to take full advantage of iSCSI, a manual setup is required.

14.2.1 Preparing the Storage Space

The iSCSI target configuration exports existing block devices to iSCSI initiators. You must prepare the storage space you want to use in the target devices by setting up unformatted partitions or devices by using the Partitioner in YaST, or by partitioning the devices from the command line. iSCSI LIO targets can use unformatted partitions with Linux, Linux LVM, or Linux RAID file system IDs.

Important
Important

After you set up a device or partition for use as an iSCSI target, you never access it directly via its local path. Do not specify a mount point for it when you create it.

14.2.1.1 Partitioning Devices

  1. Launch YaST as the root user.

  2. Select SystemPartitioner.

  3. Click Yes to continue through the warning about using the Partitioner.

  4. Click Add to create a partition, but do not format it, and do not mount it.

    1. Select Primary Partition, then click Next.

    2. Specify the amount of space to use, then click Next.

    3. Select Do not format, then specify the file system ID type.

      iSCSI targets can use unformatted partitions with Linux, Linux LVM, or Linux RAID file system IDs.

    4. Select Do not mount.

    5. Click Finish.

  5. Repeat Step 4 for each area that you want to use later as an iSCSI LUN.

  6. Click Accept to keep your changes, then close YaST.

14.2.1.2 Partitioning Devices in a Virtual Environment

You can use a Xen guest server as the iSCSI target server. You must assign the storage space you want to use for the iSCSI storage devices to the guest virtual machine, then access the space as virtual disks within the guest environment. Each virtual disk can be a physical block device, such as an entire disk, partition, or volume, or it can be a file-backed disk image where the virtual disk is a single image file on a larger physical disk on the Xen host server. For the best performance, create each virtual disk from a physical disk or a partition. After you set up the virtual disks for the guest virtual machine, start the guest server, then configure the new blank virtual disks as iSCSI target devices by following the same process as for a physical server.

file-backed disk images are created on the Xen host server, then assigned to the Xen guest server. By default, Xen stores file-backed disk images in the /var/lib/xen/images/vm_name directory, where vm_name is the name of the virtual machine.

For example, if you want to create the disk image /var/lib/xen/images/vm_one/xen-0 with a size of 4 GB, first ensure that the directory is there, then create the image itself.

  1. Log in to the host server as the root user.

  2. At a terminal console prompt, enter the following commands

    mkdir -p /var/lib/xen/images/vm_one
    dd if=/dev/zero of=/var/lib/xen/images/vm_one/xen-0 seek=1M bs=4096 count=1
  3. Assign the file system image to the guest virtual machine in the Xen configuration file.

  4. Log in as the root user on the guest server, then use YaST to set up the virtual block device by using the process in Section 14.2.1.1, “Partitioning Devices”.

14.2.2 Creating iSCSI Targets with YaST

To configure the iSCSI target, run the iSCSI Target module in YaST (command yast2 iscsi-server). The configuration is split into three tabs. In the Service tab, select the start mode and the firewall settings. If you want to access the iSCSI target from a remote machine, select Open Port in Firewall. If an iSNS server should manage the discovery and access control, activate iSNS Access Control and enter the IP address of your iSNS server. You cannot use hostnames or DNS names; you must use the IP address. For more about iSNS, read Chapter 13, iSNS for Linux.

The Global tab provides settings for the iSCSI server. The authentication set here is used for the discovery of services, not for accessing the targets. If you do not want to restrict the access to the discovery, use No Authentication.

If authentication is needed, there are two possibilities to consider. Incoming Authentication requires the initiator to prove that it has permission to run a discovery on the iSCSI target. Outgoing Authentication requires the iSCSI target to prove that it is the expected target. Therefore, the iSCSI target can also provide a user name and password. Find more information about authentication in RFC 3720.

The targets are defined in the Targets tab. Use Add to create a new iSCSI target. The first dialog box asks for information about the device to export.

Target

The Target line has a fixed syntax that looks like the following:

iqn.yyyy-mm.<reversed domain name>:unique_id

It always starts with iqn. yyyy-mm is the format of the date when this target is activated. Find more about naming conventions in RFC 3722.

Identifier

The Identifier is freely selectable. It should follow some scheme to make the whole system more structured.

LUN

It is possible to assign several LUNs to a target. To do this, select a target in the Targets tab, then click Edit. Then, add new LUNs to an existing target.

Path

Add the path to the block device or file system image to export.

The next menu configures the access restrictions of the target. The configuration is very similar to the configuration of the discovery authentication. In this case, at least an incoming authentication should be setup.

Next finishes the configuration of the new target, and brings you back to the overview page of the Target tab. Activate your changes by clicking Finish.

To create a target device:

  1. Launch YaST as the root user.

  2. Select Network ServicesiSCSI Target.

    YaST opens to the iSCSI Target Overview page with the Service tab selected.

  3. In the Service Start area, select one of the following:

    • When booting: Automatically start the initiator service on subsequent server reboots.

    • Manually (default): Start the service manually.

  4. If you are using iSNS for target advertising, select the iSNS Access Control check box, then type the IP address.

  5. If desired, open the firewall ports to allow access to the server from remote computers.

    1. Select the Open Port in Firewall check box.

    2. Specify the network interfaces where you want to open the port by clicking Firewall Details, selecting the check box next to a network interface to enable it, then clicking OK to accept the settings.

  6. If authentication is required to connect to target devices you set up on this server, select the Global tab, deselect No Authentication to enable authentication, then specify the necessary credentials for incoming and outgoing authentication.

    The No Authentication option is enabled by default. For a more secure configuration, you can specify authentication for incoming, outgoing, or both incoming and outgoing. You can also specify multiple sets of credentials for incoming authentication by adding pairs of user names and passwords to the list under Incoming Authentication.

  7. Configure the iSCSI target devices.

    1. Select the Targets tab.

    2. If you have not already done so, select and delete the example iSCSI target from the list, then confirm the deletion by clicking Continue.

    3. Click Add to add a new iSCSI target.

      The iSCSI target automatically presents an unformatted partition or block device and completes the Target and Identifier fields.

    4. You can accept this, or browse to select a different space.

      You can also subdivide the space to create LUNs on the device by clicking Add and specifying sectors to allocate to that LUN. If you need additional options for these LUNs, select Expert Settings.

    5. Click Next

    6. Repeat Step 7.c to Step 7.e for each iSCSI target device you want to create.

    7. (Optional) On the Service tab, click Save to export the information about the configured iSCSI targets to a file.

      This makes it easier to later provide this information to consumers of the resources.

    8. Click Finish to create the devices, then click Yes to restart the iSCSI software stack.

14.2.3 Configuring an iSCSI Target Manually

Configure an iSCSI target in /etc/ietd.conf. All parameters in this file before the first Target declaration are global for the file. Authentication information in this portion has a special meaning—it is not global, but is used for the discovery of the iSCSI target.

If you have access to an iSNS server, you should first configure the file to tell the target about this server. The address of the iSNS server must always be given as an IP address. You cannot specify the DNS name for the server. The configuration for this functionality looks like the following:

iSNSServer 192.168.1.111
iSNSAccessControl no

This configuration makes the iSCSI target register itself with the iSNS server, which in turn provides the discovery for initiators. For more about iSNS, see Chapter 13, iSNS for Linux. The access control for the iSNS discovery is not supported. Just keep iSNSAccessControl no.

All direct iSCSI authentication can be done in two directions. The iSCSI target can require the iSCSI initiator to authenticate with the IncomingUser, which can be added multiple times. The iSCSI initiator can also require the iSCSI target to authenticate. Use OutgoingUser for this. Both have the same syntax:

IncomingUser <username> <password>
OutgoingUser <username> <password>

The authentication is followed by one or more target definitions. For each target, add a Target section. This section always starts with a Target identifier followed, by definitions of logical unit numbers:

Target iqn.yyyy-mm.<reversed domain name>[:identifier]
          Lun 0 Path=/dev/mapper/system-v3
          Lun 1 Path=/dev/hda4
          Lun 2 Path=/var/lib/xen/images/xen-1,Type=fileio

In the Target line, yyyy-mm is the date when this target is activated, and identifier is freely selectable. Find more about naming conventions in RFC 3722. Three different block devices are exported in this example. The first block device is a logical volume (see also Chapter 4, LVM Configuration), the second is an IDE partition, and the third is an image available in the local file system. All these look like block devices to an iSCSI initiator.

Before activating the iSCSI target, add at least one IncomingUser after the Lun definitions. It does the authentication for the use of this target.

To activate all your changes, restart the iscsitarget daemon with rcopen-iscsi restart. Check your configuration in the /proc file system:

cat /proc/net/iet/volume
tid:1 name:iqn.2006-02.com.example.iserv:systems
        lun:0 state:0 iotype:fileio path:/dev/mapper/system-v3
        lun:1 state:0 iotype:fileio path:/dev/hda4
        lun:2 state:0 iotype:fileio path:/var/lib/xen/images/xen-1

There are many more options that control the behavior of the iSCSI target. For more information, see the man page of ietd.conf.

Active sessions are also displayed in the /proc file system. For each connected initiator, an extra entry is added to /proc/net/iet/session:

cat /proc/net/iet/session
tid:1 name:iqn.2006-02.com.example.iserv:system-v3
   sid:562949957419520 initiator:iqn.2005-11.de.suse:cn=rome.example.com,01.9ff842f5645
      cid:0 ip:192.168.178.42 state:active hd:none dd:none
   sid:281474980708864 initiator:iqn.2006-02.de.suse:01.6f7259c88b70
      cid:0 ip:192.168.178.72 state:active hd:none dd:none

14.2.4 Configuring Online Targets with ietadm

When changes to the iSCSI target configuration are necessary, you must always restart the target to activate changes that are done in the configuration file. Unfortunately, all active sessions are interrupted in this process. To maintain an undisturbed operation, the changes should be done in the main configuration file /etc/ietd.conf, but also made manually to the current configuration with the administration utility ietadm.

To create a new iSCSI target with a LUN, first update your configuration file. The additional entry could be:

Target iqn.2006-02.com.example.iserv:system2
          Lun 0 Path=/dev/mapper/system-swap2
          IncomingUser joe secret

To set up this configuration manually, proceed as follows:

  1. Create a new target with the command ietadm --op new --tid=2 --params Name=iqn.2006-02.com.example.iserv:system2.

  2. Add a logical unit with ietadm --op new --tid=2 --lun=0 --params Path=/dev/mapper/system-swap2.

  3. Set the user name and password combination on this target with ietadm --op new --tid=2 --user --params=IncomingUser=joe,Password=secret.

  4. Check the configuration with cat /proc/net/iet/volume.

It is also possible to delete active connections. First, check all active connections with the command cat /proc/net/iet/session. This might look like:

cat /proc/net/iet/session
tid:1 name:iqn.2006-03.com.example.iserv:system
        sid:281474980708864 initiator:iqn.1996-04.com.example:01.82725735af5
                cid:0 ip:192.168.178.72 state:active hd:none dd:none

To delete the session with the session ID 281474980708864, use the command ietadm --op delete --tid=1 --sid=281474980708864 --cid=0. Be aware that this makes the device inaccessible on the client system and processes accessing this device are likely to hang.

ietadm can also be used to change various configuration parameters. Obtain a list of the global variables with ietadm --op show --tid=1 --sid=0. The output looks like:

InitialR2T=Yes
ImmediateData=Yes
MaxConnections=1
MaxRecvDataSegmentLength=8192
MaxXmitDataSegmentLength=8192
MaxBurstLength=262144
FirstBurstLength=65536
DefaultTime2Wait=2
DefaultTime2Retain=20
MaxOutstandingR2T=1
DataPDUInOrder=Yes
DataSequenceInOrder=Yes
ErrorRecoveryLevel=0
HeaderDigest=None
DataDigest=None
OFMarker=No
IFMarker=No
OFMarkInt=Reject
IFMarkInt=Reject

All of these parameters can be easily changed. For example, if you want to change the maximum number of connections to two, use

ietadm --op update --tid=1 --params=MaxConnections=2.

In the file /etc/ietd.conf, the associated line should look like MaxConnections 2.

Warning
Warning

The changes that you make with the ietadm utility are not permanent for the system. These changes are lost at the next reboot if they are not added to the /etc/ietd.conf configuration file. Depending on the usage of iSCSI in your network, this might lead to severe problems.

There are several more options available for the ietadm utility. Use ietadm -h to find an overview. The abbreviations there are target ID (tid), session ID (sid), and connection ID (cid). They can also be found in /proc/net/iet/session.

14.3 Configuring iSCSI Initiator

The iSCSI initiator, also called an iSCSI client, can be used to connect to any iSCSI target. This is not restricted to the iSCSI target solution explained in Section 14.2, “Setting Up an iSCSI Target”. The configuration of iSCSI initiator involves two major steps: the discovery of available iSCSI targets and the setup of an iSCSI session. Both can be done with YaST.

14.3.1 Using YaST for the iSCSI Initiator Configuration

The iSCSI Initiator Overview in YaST is divided into three tabs:

  • Service: The Service tab can be used to enable the iSCSI initiator at boot time. It also offers to set a unique Initiator Name and an iSNS server to use for the discovery. The default port for iSNS is 3205.

  • Connected Targets: The Connected Targets tab gives an overview of the currently connected iSCSI targets. Like the Discovered Targets tab, it also gives the option to add new targets to the system.

    On this page, you can select a target device, then toggle the start-up setting for each iSCSI target device:

    • Automatic: This option is used for iSCSI targets that are to be connected when the iSCSI service itself starts up. This is the typical configuration.

    • Onboot: This option is used for iSCSI targets that are to be connected during boot; that is, when root (/) is on iSCSI. As such, the iSCSI target device will be evaluated from the initrd on server boots.

  • Discovered Targets: Discovered Targets provides the possibility of manually discovering iSCSI targets in the network.

14.3.1.1 Configuring the iSCSI Initiator

  1. Launch YaST as the root user.

  2. Select Network ServicesiSCSI Initiator (you can also use the yast2 iscsi-client.

    YaST opens to the iSCSI Initiator Overview page with the Service tab selected.

  3. In the Service Start area, select one of the following:

    • When booting: Automatically start the initiator service on subsequent server reboots.

    • Manually (default): Start the service manually.

  4. Specify or verify the Initiator Name.

    Specify a well-formed iSCSI qualified name (IQN) for the iSCSI initiator on this server. The initiator name must be globally unique on your network. The IQN uses the following general format:

    iqn.yyyy-mm.com.mycompany:n1:n2

    where n1 and n2 are alphanumeric characters. For example:

    iqn.1996-04.de.suse:01:9c83a3e15f64

    The Initiator Name is automatically completed with the corresponding value from the /etc/iscsi/initiatorname.iscsi file on the server.

    If the server has iBFT (iSCSI Boot Firmware Table) support, the Initiator Name is completed with the corresponding value in the IBFT, and you are not able to change the initiator name in this interface. Use the BIOS Setup to modify it instead.The iBFT is a block of information containing various parameters useful to the iSCSI boot process, including the iSCSI target and initiator descriptions for the server.

  5. Use either of the following methods to discover iSCSI targets on the network.

14.3.1.2 Discovering iSCSI Targets by Using iSNS

Before you can use this option, you must have already installed and configured an iSNS server in your environment. For information, see Chapter 13, iSNS for Linux.

  1. In YaST, select iSCSI Initiator, then select the Service tab.

  2. Specify the IP address of the iSNS server and port.

    The default port is 3205.

  3. On the iSCSI Initiator Overview page, click Finish to save and apply your changes.

14.3.1.3 Discovering iSCSI Targets Manually

Repeat the following process for each of the iSCSI target servers that you want to access from the server where you are setting up the iSCSI initiator.

  1. In YaST, select iSCSI Initiator, then select the Discovered Targets tab.

  2. Click Discovery to open the iSCSI Initiator Discovery dialog box.

  3. Enter the IP address and change the port if needed. IPv6 addresses are supported.

    The default port is 3260.

  4. If authentication is required, deselect No Authentication, then specify the credentials the Incoming or Outgoing authentication.

  5. Click Next to start the discovery and connect to the iSCSI target server.

  6. If credentials are required, after a successful discovery, use Login to activate the target.

    You are prompted for authentication credentials to use the selected iSCSI target.

  7. Click Next to finish the configuration.

    If everything went well, the target now appears in Connected Targets.

    The virtual iSCSI device is now available.

  8. On the iSCSI Initiator Overview page, click Finish to save and apply your changes.

  9. You can find the local device path for the iSCSI target device by using the lsscsi command:

    lsscsi
    [1:0:0:0]   disk    IET      VIRTUAL-DISK     0     /dev/sda

14.3.1.4 Setting the Start-up Preference for iSCSI Target Devices

  1. In YaST, select iSCSI Initiator, then select the Connected Targets tab to view a list of the iSCSI target devices that are currently connected to the server.

  2. Select the iSCSI target device that you want to manage.

  3. Click Toggle Start-Up to modify the setting:

    • Automatic: This option is used for iSCSI targets that are to be connected when the iSCSI service itself starts up. This is the typical configuration.

    • Onboot: This option is used for iSCSI targets that are to be connected during boot; that is, when root (/) is on iSCSI. As such, the iSCSI target device will be evaluated from the initrd on server boots.

  4. Click Finish to save and apply your changes.

14.3.2 Setting Up the iSCSI Initiator Manually

Both the discovery and the configuration of iSCSI connections require a running iscsid. When running the discovery the first time, the internal database of the iSCSI initiator is created in the directory /var/lib/open-iscsi.

If your discovery is password protected, provide the authentication information to iscsid. Because the internal database does not exist when doing the first discovery, it cannot be used at this time. Instead, the configuration file /etc/iscsid.conf must be edited to provide the information. To add your password information for the discovery, add the following lines to the end of /etc/iscsid.conf:

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <username>
discovery.sendtargets.auth.password = <password>

The discovery stores all received values in an internal persistent database. In addition, it displays all detected targets. Run this discovery with the following command:

iscsiadm -m discovery --type=st --portal=<targetip>

The output should look like the following:

10.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

To discover the available targets on a iSNS server, use the following command:

iscsiadm --mode discovery --type isns --portal <targetip>

For each target defined on the iSCSI target, one line appears. For more information about the stored data, see Section 14.3.3, “The iSCSI Client Databases”.

The special --login option of iscsiadm creates all needed devices:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --login

The newly generated devices show up in the output of lsscsi and can now be accessed by mount.

14.3.3 The iSCSI Client Databases

All information that was discovered by the iSCSI initiator is stored in two database files that reside in /var/lib/open-iscsi. There is one database for the discovery of targets and one for the discovered nodes. When accessing a database, you first must select if you want to get your data from the discovery or from the node database. Do this with the -m discovery and -m node parameters of iscsiadm. Using iscsiadm just with one of these parameters gives an overview of the stored records:

iscsiadm -m discovery
10.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

The target name in this example is iqn.2006-02.com.example.iserv:systems. This name is needed for all actions that relate to this special data set. To examine the content of the data record with the ID iqn.2006-02.com.example.iserv:systems, use the following command:

iscsiadm -m node --targetname iqn.2006-02.com.example.iserv:systems
node.name = iqn.2006-02.com.example.iserv:systems
node.transport_name = tcp
node.tpgt = 1
node.active_conn = 1
node.startup = manual
node.session.initial_cmdsn = 0
node.session.reopen_max = 32
node.session.auth.authmethod = CHAP
node.session.auth.username = joe
node.session.auth.password = ********
node.session.auth.username_in = <empty>
node.session.auth.password_in = <empty>
node.session.timeo.replacement_timeout = 0
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
....

To edit the value of one of these variables, use the command iscsiadm with the update operation. For example, if you want iscsid to log in to the iSCSI target when it initializes, set the variable node.startup to the value automatic:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems -p ip:port --op=update --name=node.startup --value=automatic

Remove obsolete data sets with the delete operation If the target iqn.2006-02.com.example.iserv:systems is no longer a valid record, delete this record with the following command:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems -p ip:port --op=delete
Important
Important

Use this option with caution because it deletes the record without any additional confirmation prompt.

To get a list of all discovered targets, run the iscsiadm -m node command.

14.4 Using iSCSI Disks when Installing

Booting from an iSCSI disk on i386, x86_64, and ppc64 architectures is supported, when iSCSI enabled firmware is used.

To use iSCSI disks during installation, it is necessary to add the following parameter to the boot option line:

withiscsi=1

During installation, an additional screen appears that provides the option to attach iSCSI disks to the system and use them in the installation process.

14.5 Troubleshooting iSCSI

14.5.1 Hotplug Doesn’t Work for Mounting iSCSI Targets

In SLES 10, you could add the hotplug option to your device in the /etc/fstab file to mount iSCSI targets. For example:

/dev/disk/by-uuid-blah /oracle/db   ext3       hotplug,rw            0 2

For SLES 11, the hotplug option no longer works. Use the nofail option instead. For example:

/dev/sdb1   /mnt/mountpoint   ext3   acl,user,nofail   0 0

For information, see TID 7004427: /etc/fstab entry does not mount iSCSI device on boot up .

14.5.2 Data Packets Dropped for iSCSI Traffic

A firewall might drop packets if it gets to busy. The default for the SUSE Firewall is to drop packets after three minutes. If you find that iSCSI traffic packets are being dropped, you can consider configuring the SUSE Firewall to queue packets instead of dropping them when it gets too busy.

14.5.3 Using iSCSI Volumes with LVM

Use the troubleshooting tips in this section when using LVM on iSCSI targets.

14.5.3.1 Check the iSCSI Initiator Discovery Occurs at Boot

When you set up the iSCSI Initiator, ensure that you enable discovery at boot time so that udev can discover the iSCSI devices at boot time and set up the devices to be used by LVM.

14.5.3.2 Check that iSCSI Target Discovery Occurs at Boot

Remember that udev provides the default setup for devices in SLES 11. Ensure that all of the applications that create devices have a Runlevel setting to run at boot so that udev can recognize and assign devices for them at system startup. If the application or service is not started until later, udev does not create the device automatically as it would at boot time.

You can check your runlevel settings for LVM2 and iSCSI in YaST by going to SystemSystem Services (Runlevel)Expert Mode. The following services should be enabled at boot (B):

boot.lvm
boot.open-iscsi
open-iscsi

14.5.4 iSCSI Targets Are Mounted When the Configuration File Is Set to Manual

When Open-iSCSI starts, it can mount the targets even if the option node.startup option is set to manual in the /etc/iscsi/iscsid.conf file if you manually modified the configuration file.

Check the /etc/iscsi/nodes/<target_name>/<ip_address,port>/default file. It contains a node.startup setting that overrides the /etc/iscsi/iscsid.conf file. Setting the mount option to manual by using the YaST interface also sets the node.startup = manual in the /etc/iscsi/nodes/<target_name>/<ip_address,port>/default files.

14.6 Additional Information

The iSCSI protocol has been available for several years. There are many reviews and additional documentation comparing iSCSI with SAN solutions, doing performance benchmarks, or just describing hardware solutions. Important pages for more information about open-iscsi are:

There is also some online documentation available. See the man pages for iscsiadm, iscsid, ietd.conf, and ietd and the example configuration file /etc/iscsid.conf.

Print this page