Aktuelles Thema: Solaris 11 vs. Solaris 10 - iSCSI

Was ist iSCSI?

iSCSI - internet Small Computer System Interface - ist ein Verfahren zur Nutzung des SCSI-Protokolls über TCP. Es werden SCSI-Daten in TCP/IP-Pakete verpackt und über IP-Netze transportiert.

Analog zu SCSI existieren die Rollen Initiator und Target. Diese stehen zueinander in einer Client-/Server-Beziehung. I.d.R. ist jeder SCSI-ID auf dem Bus eine dieser beiden Rollen fest zugewiesen. Der Initiator ist zumeist ein Computer, der als Controller die Kommunikation mit dem Target steuert. Das Target ist ein Speichergerät wie eine Festplatte, ein Bandlaufwerk oder ein optisches Laufwerk. Ausgabegeräte wie Drucker kommen als Target ebenfalls infrage.

Initiator und Target sind im Netzwerk eindeutig addressiert durch:

  • den eui (enterprise unique identifier) oder
  • den iqn (iSCSI qualified name) - default
eui
  • Prefix eui und punktsepariert 16 hexadezimale Zahlen
  • z.B. eui.02004567A425678D
iqn
  • Prefix iqn, Datum (1986-03), Domain (com.sun:01) und eine Zeichenfolge, die den Knoten eindeutig kennzeichnet (0003ba0e0795.4455571f)
  • z.B. iqn.1986-03.com.sun:01:0003ba0e0795.4455571f

In beiden Fällen sind Aliase möglich, um nicht die langen, unübersichtlichen Identifier verwenden zu müssen.

Das Target wartet auf Anfragen eines SCSI-Initiators. Durch Senden eines SCSI-Kommandos startet der Initiator den Verbindungsaufbau zum Target, woraufhin das Target dem Initiator eine oder mehrere Logical Unit Numbers (LUNs) zur Adressierung des Befehls- und des Datenstroms zur Verfügung stellt.

iSCSI nutzt preiswerte, meist bereits vorhandene Netzwerkinfrastrukturen (NICs, Ethernet Hubs, Ethernet Switches) und vorhandene Netzwerkmangementtools. Durch die Kapselung der Daten in Datenpakete (Ethernet, TCP/IP) ist iSCSI routingfaehig und ermöglicht den Einsatz im LAN, SAN und WAN.
Ein IP-Port kann mehrere iSCSI-Target-Devices handhaben, darunter auch Fibre-Channel Devices. Somit sind Verbindungen ohne Fibre-Channel HBAs möglich.
Die Anzahl konfigurierbarer iSCSI-Target-Devices ist nicht begrenzt.
Systeme mit dedizierten Diskarrays können Storage über Fileysteme wie ZFS und UFS exportieren.
Über das iSCSI-Protokoll können, mit geeigneter Hardware, SAN-Umgebungen mit Fibre Channel oder iSCSI verbunden werden.

 

Überblick Solaris 10 vs Solaris 11

Es folgt eine Gegenüberstellung einer exemplarischen Konfiguration von iSCSI-Target und -Initiator unter den Betriebssystemen Solaris 10 und Solaris 11 im Umfeld des OSL Storage Cluster bzw. des OSL UVE. Unterschiede in der Konfiguration werden in separaten Spalten gegenübergestellt, Gemeinsamkeiten werden über beide Spalten dargestellt. Die Vorgehensweise ist als Empfehlung zu verstehen und beschränkt sich daher auf das Notwendige. Die genannten und weitere Konfigurationsmöglichkeiten werden im Anschluß an die Gegenüberstellung beschrieben.

Solaris 10 Solaris 11
auf dem Target-Node den iSCSI-Target-Service aktivieren
target # svcadm enable svc:/system/iscsitgt:default
          
auf dem Target-Node den STMF-Service aktivieren
target # svcadm enable svc:/system/stmf:default
          
auf dem Target-Node ein Backing Store Directory einrichten
target # iscsitadm modify admin -d /etc/iscsitgt
          
auf dem Target-Node die Festplatte formatieren (100% "SOLARIS System" Partition) und labeln und als iSCSI-Target bereitstellen
target # format
Specify disk (enter its number): 1
format >fdisk
y
format >label
yes
format >quit
          
auf dem Target-Node die formatierte Festplatte als iSCSI-Target bereitstellen
target # iscsitadm create target -b /dev/dsk/c1t0d0s2 diskvol
target # iscsitadm list -v target
auf dem Target-Node eine Logical Unit der Festplatte erzeugen, LUN anzeigen und LU der Festplatte für alle Initiator-Nodes zugreifbar machen
target # sbdadm create-lu /dev/dsk/c2t0d0s2
target # stmfadm list-lu
LU Name: 600144F0B5418B0000004DDAC7C10001
target # stmfadm add-view 600144F0B5418B0000004DDAC7C10001
          
auf dem Targe Node - Target-Service aktivieren und Target erzeugen
target # svcadm enable -r svc:/network/iscsi/target:default
target # itadm create-target
          
auf dem Initiator Node für das Target-Device eine statische Discovery-Addresse setzen und die statische Discovery-Methode aktivieren
initiator # iscsiadm add static-config iqn.1986-03.con.sun:02:310b3021-1d81-e201-c9f8-f47abe0d8279.diskvol,192.168.100.22:3260
initiator # iscsiadm modify discovery --static enable
          
auf dem Initiator Node die Device-Links für das Target Device erzeugen
initiator # devfsadm -i iscsi
initiator # echo | format
          
auf dem Initiator die iSCSI-Target Devices in den globalen Storage-Pool des OSL Storage Cluster inventarisieren - es werden PVs (physikal Volume) angelegt
initiator # vi /etc/dvsc/scancfg
initiator # devtab -l
initiator # dkadmin -u 0 -nie /dev/rdisk/c3t600144F04B555F370000093E40495B00d0s0
initiator # dvboot
          
auf dem Initiator Node können AVs (Application Volume) auf den PVs angelegt werden
initiator # smgr -c av01 -S 2g
          

 

Anforderungen an Hard- und Software

Das Betriebssystem Solaris kann sowohl als iSCSI-Target als auch als iSCSI Initiator konfiguriert werden.

Hardwareanforderungen:

  • je eine Netzwerkkarte auf Target und Initiator

Solaris 10

Softwareanforderungen:

  • Target - Solaris iSCSI-Target software ab Solaris 10 release 8/07
  • Initiator - Solaris iSCSI initiator software ab Solaris 10 release 1/06

erforderlich Pakete:

$ pkginfo | grep -i sunwiscsi
system      SUNWiscsir                       Sun iSCSI Device Driver (root)
system      SUNWiscsitgtr                    Sun iSCSI-Target (Root)
system      SUNWiscsitgtu                    Sun iSCSI-Target (Usr)
system      SUNWiscsiu                       Sun iSCSI Management Utilities (usr)

Target

Solaris 10 verwendet den iSCSI-Target Dämon und das Kommando iscsitadm um iSCSI LUNs zu konfigurieren. Um ZFS auf dem Target als iSCSI LUN bereitzustellen, wird die Eigenschaft shareiscsi (zfs set shareiscsi=on) verwendet.

Es ist sicherzustellen, dass der Service svc:/system/iscsitgt:default aktiviert ist. Ggf. muss eine Aktivierung über die SMF erfolgen.

  • Service svc:/system/iscsitgt:default anzeigen
  • Service svc:/system/iscsitgt:default ativieren

target # svcs -a | grep iscsitgt
disabled   8:25:25   svc:/system/iscsitgt:default
target # svcadm enable svc:/system/iscsitgt:default

Initiator

Der Service svc:/network/iscsi/initiator:default muss aktiviert sein. I.d.R. ist das der Fall. Anderenfalls ist er über die SMF zu aktivieren.

  • Service svc:/network/iscsi/initiator:default anzeigen
  • Service svc:/network/iscsi/initiator:default ativieren

initiator # svcs -a | grep initiator
disabled   8:25:25   svc:/network/iscsi/initiator:default
initiator # svcadm enable svc:/network/iscsi/initiator:default

Um Target Devices auf dem Initiator-Node verwenden zu können, steht das Kommando iscsiadm zur Verfügung.

Solaris 11

Target

Solaris in der Version 11 verwendet COMSTAR (Common Multiprotocol SCSI Target). Neben dem iSCSI-Protokoll unterstützt es verschiedene Arten von SCSI Targets. ZFS Volumes können als Backing Store Devices für SCSI Targets über verschiedene Protokolle (iSCSI, Fibre Chanel, InfiniBand) verwendet werden. Das iSCSI-Target in COMSTAR ersetzt den iSCSI-Target Dämon aus Solaris 10. Auch das Kommando iscsitadm und die ZFS Eigenschaft shareiscsi steht in Solaris 11 nicht mehr zur Verfügung. Mit Solaris 10 angelegte iSCSI LUNs können nicht in das COMSTAR Format konvertiert werden.

Folgende Kommandos werden verwendet:

itadm 
verwaltet SCSI Targets
srptadm 
verwaltet SCSI RDMA Protocol (SRP) Targetports
stmfadm 
das SCSI Target Mode Framework verwaltet SCSI LUNs
sbdadm 
SCSI Block Disk verwaltet SCSI-Blockdevice-basierte Logical Units, die mit dem SCSI Target Mode Framework (STMF) registriert werden

Der Target-Betrieb von Solaris 11 erfordert folgendes Software-Paket:

  • group/feature/storage-server

Das Software-Paket wird wie folgt auf dem Target-Node ermittelt und ggf. installiert. Dabei wird auf ein Solaris-Repository zugegriffen, das vorab auf dem Target-Node zur Verfügung gestellt werden muss.

  • Paket group/feature/storage-server anzeigen
  • Paket group/feature/storage-server installieren

target # pkg search storage-server
target # pkg install group/feature/storage-server

Der Service svc:/system/stmf:default muss aktiviert sein. Er ist über die SMF zu aktivieren.

  • Service svc:/system/stmf:default anzeigen
  • Service svc:/system/stmf:default aktivieren

target # svcs -a | grep stmf
target # svcadm enable svc:/system/stmf:default

Initiator

Als Initiator-Node konfiguriert, verwendet Solaris 11 denselben Service wie Solaris 10.

 

IP-Netzwerk konfigurieren

Solaris 10 / Solaris 11

Der Target-Node und der Initiator-Node müssen an dasselbe Netzwerk angeschlossen und mit gültigen IP-Adressen konfiguriert sein.

target # ping initiator
initiator is alive
initiator # ping target
target is alive

 

Verbindung herstellen und Aufsetzen des iSCSI-Target Device

Solaris 10

Der iSCSI Dämon auf dem Target-Node speichert zu jedem Target Device Informationen. Zu diesem Zweck wird auf dem Target-Node wie folgt ein Backing Store Directory eingerichtet:

target # iscsitadm modify admin -d /etc/iscsitgt

Als iSCSI-Target kann eine ganze Festplatte, eine Datei oder ein ZFS erzeugt werden.

Eine ganze Festplatte als iSCSI-Target bereitstellen.

  • Festplatte formatieren (Auswahl mit disk, formatieren mit fdisk, Label schreiben mit label)
  • LU (Logical Unit) der Festplatte erzeugen

target # format
Specify disk (enter its number): 1
format >fdisk
No fdisk table exists. The default partition for the disk is:
  a 100% "SOLARIS System" partition
Type "y" to accept the default partiotion, otherwise type "n" to edit the
 partition table.
y
format >label
Ready to lable disk, continue? yes
format >quit
target # iscsitadm create target -b /dev/dsk/c1t0d0s2 diskvol

Datei als iSCSI-Target mit 500 MB:

target # iscsitadm create target --size 500m filevol

ZFS als iSCSI-Target mit 200 MB:

  • ZFS in einem ZFS-Pool erzeugen
  • ZFS als iSCSI LUN bereitstellen

target # zfs create -V 200m rpool/zfsvol
target # zfs set shareiscsi=on rpool/zfsvol

Die Anzeige der auf dem Target-Node konfigurierten Target Devices erfolgt mit:

target # iscsitadm list target
target # iscsitadm list -v target

Solaris 11

iSCSI-Target Devices können als ganze Festplatte, als Datei oder als ZFS bereitgestellt werden.

Eine ganze Festplatte als iSCSI-Target bereitstellen.

  • Festplatte formatieren (Auswahl mit disk, formatieren mit fdisk, Label schreiben mit label)
  • LU (Logical Unit) der Festplatte erzeugen
  • LUN (Logical Unit Number) anzeigen
  • LU der Festplatte für alle Initiator-Nodes zugreifbar machen

target # format
Specify disk (enter its number): 1
format >fdisk
No fdisk table exists. The default partition for the disk is:
  a 100% "SOLARIS System" partition
Type "y" to accept the default partiotion, otherwise type "n" to edit the
 partition table.
y
format >label
Ready to lable disk, continue? yes
format >quit
target # sbdadm create-lu /dev/dsk/c2t0d0s2
target # stmfadm list-lu
LU Name: 600144F0B5418B0000004DDAC7C10001
target # stmfadm add-view 600144F0B5418B0000004DDAC7C10001

Eine Datei als iSCSI-Target bereitstellen.

  • Datei anlegen
  • LU (Logical Unit) der Datei erzeugen
  • LUN (Logical Unit Number) anzeigen
  • LU der Datei für alle Initiator-Nodes zugreifbar machen

target # touch /filevol
target # sbdadm create-lu --size 20m /filevol
target # stmfadm list-lu
LU Name: 600144F0B5418B0000004DDAC7A60001
target # stmfadm add-view 600144F0B5418B0000004DDAC7A60001

Ein ZFS als iSCSI-Target bereitstellen.

  • ZFS-Pool aus einer oder mehreren Festplatten anlegen (Spiegel- und RAID-Konfigurationen sind möglich)
  • im ZFS-Pool ein ZFS erzeugen
  • LU (Logical Unit) des ZFS generieren
  • LU des ZFS für alle Initiator-Nodes zugreifbar machen

target # zpool create iscsipool c2t3d0
target # zfs create -V 1g iscsipool/zfsvol
target # stmfadm create-lu /dev/zvol/rdsk/iscsipool/zfsvol
Logical unit created: 600144F0B5418B0000004DDAC7D20001
target # stmfadm add-view 600144F0B5418B0000004DDAC7D20001

Im Gegensatz zu Solaris 10 muss in Solaris 11 das Target separat erzeugt werden. Dazu ist zuvor der Service /network/iscsi/target:default über die SMF zu aktivieren.

  • Service svc:/network/iscsi/target:default anzeigen
  • Service svc:/network/iscsi/target:default aktivieren
  • iSCSI-Target anlegen

target # svcs -a | grep iscsi
disable   8:25:25   svc:/network/iscsi/target:default
target # svcadm enable -r svc:/network/iscsi/target:default
target # itadm create-target

 

Konfigurieren der iSCSI Authentifizierung zwischen Initiator und Target (optional)

Die Authentifizierung ist optional und in sicheren Umgebungen nichr erforderlich. Zur Authentifizierung in einem iSCSI-Speichernetzwerk können zwei Verfahren genutzt werden.

  • CHAP - Challenge Handshake Authentication Protocol - Ist ein Verfahren, bei dem der anfragende Initiator-Node durch den Target-Node authentifiziert wird (unidirektional) bzw. zusätzlich der Initiator-Node den Target-Node authentifiziert (bidirektional). Dem Target-Node muss das Passwort des Initiator-Node bekannt sein und der Initiator-Node muss so konfiguriert sein, dass er auf Authentifizierungsanfragen des Target-Node antwortet. Bei Anfragen des Initiator-Nodes errechnet der Target-Node aus einer Zufallszahl und dem für den Initiator-Node hinterlegten Passwort einen Hashwert und überträgt die Zufallszahl an den Initiator-Node. Der Initiator-Node bildet aus der Zufallszahl und seinem Passwort ebenfalls einen Hashwert, den er an den Target-Node überträgt. Der Target-Node vergleicht beide Hashwerte und gibt den Zugriff frei bzw. unterbindet ihn. Bei der bidirektionalen Variante wird das Verfahren mit vertauschten Rollen wiederholt. In zufälligen Abständen wird das Verfahren wiederholt.
  • RADIUS - Remote Authentication Dial-In User Service - Ist ein Verfahren zur Authentifizierung, Autorisierung und zum Accounting von Benutzern bei Einwahlverbindungen in ein Computernetzwerk. Hierbei fungiert der RADIUS-Server oder RADIUS-Proxy-Server als zentraler Authentifizierung-Server.

Solaris 10

Target

CHAP konfigurieren

  • CHAP-Name des Target-Nodes setzen (optional) - Target-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)
  • CHAP-Passwort des Target-Nodes setzen (Zeichenfolge zwischen 12 und 16 Zeichen)
  • ein Objekt für den Initiator-Node erstellen und CHAP-Name für den Initiator-Node setzen
  • CHAP-Passwort des Initiator-Nodes setzen (Zeichenfolge zwischen 12 und 16 Zeichen)

target # iscsitadm modify admin -H TargetNode
target # iscsitadm modify admin -C
target # iscsitadm create initiator -n iqn.1986-03.com.sun:01:00e081553307.4399f40e InitiatorNode
target # iscsitadm modify initiator -C InitiatorNode

RADIUS konfigurieren

Der RADIUS-Server ist zuvor aufzusetzen und ein RADIUS-Passwort zu konfigurieren.

  • dem Target-Node die IP-Adresse und ggf. Port (default 1812) des RADIUS-Servers bekanntmachen
  • Passwort des RADIUS-Servers auf dem Target-Node setzen
  • RADIUS als Authentifizierungsmethode auf dem Target-Node aktivieren

target # iscsitadm modify admin -r 10.0.0.55:1812
target # iscsitadm modify admin -P
target # iscsitadm modify admin -R enable

Initiator

CHAP konfigurieren

  • CHAP-Passwort setzen (Zeichenfolge zwischen 12 und 16 (Solaris 11 bis 255) Zeichen)
  • CHAP-Name setzen (optional) - Initator-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)
  • CHAP-Authentifizierung auf dem Initiator-Node aktivieren
  • Bidirektional CHAP - ermöglicht bidirektionale Authentifizierungparameter auf dem Target-Node (Target-Node-ID = eui.5000ABCD78945E2B).
  • Authentifizierungsmethode für den Target-Node auf CHAP setzen
  • CHAP-Passwort für den Target-Node setzen
  • CHAP-Name für den Target-Node setzen (optional) - Target-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)

initiator # iscsiadm modify initiator-node --CHAP-secret
initiator # iscsiadm modify initiator-node --CHAP-name new-CHAP-name
initiator # iscsiadm modify initiator-node --authentication CHAP
initiator # iscsiadm modify target-param -B enable eui.5000ABCD78945E2B
initiator # iscsiadm modify target-param --authentication CHAP eui.5000ABCD78945E2B
initiator # iscsiadm modify target-param --CHAP-secret eui.5000ABCD78945E2B
initiator # iscsiadm modify target-param --CHAP-name target-CHAP-name

RADIUS konfigurieren

Der RADIUS-Server ist zuvor aufzusetzen und ein RADIUS-Passwort zu konfigurieren.

  • anzeigen des auf dem Initiator-Node konfigurierten RADIUS-Servers
  • auf dem Initiator-Node die IP-Adresse und den Port (default 1812) des RADIUS-Servers setzen
  • auf dem Initiator-Node das Passwort des RADIUS-Servers setzen
  • RADIUS als Autentifizierungsmethode aktivieren
  • optional - für bidirektionale Autentifizierung - CHAP als Autentifizierungsmethode aktivieren
  • Bidirektional CHAP - ermöglicht bidirektionale Authentifizierungparameter auf dem Target-Node (Target-Node-ID = eui.5000ABCD78945E2B).
  • CHAP-Name für den Target-Node setzen - optional - Target-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)

initiator # iscsiadm list initiator-node
initiator # iscsiadm modify initiator-node --radius-server 10.0.0.55:1812
initiator # iscsiadm modify initiator-node --radius-shared-secret
initiator # iscsiadm modify initiator-node --radius-access enable
initiator # iscsiadm modify initiator-node --authentication CHAP
initiator # iscsiadm modify target-param --bi-directional-authentication enable target-iqn
initiator # iscsiadm modify target-param --authentication CHAP eui.5000ABCD78945E2B

Solaris 11

Target

CHAP konfigurieren

  • CHAP-Authentifizierung auf dem Target-Node aktivieren
  • CHAP-Passwort des Initator-Nodes setzen (Zeichenfolge zwischen 12 und 255 Zeichen)
  • CHAP-Name des Initator-Nodes setzen - optional - Initator-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)
  • CHAP-Passwort des Target-Node setzen - optional - für bidirektionale Authentifizierung
  • CHAP-Name des Target-Nodes setzen - optional - Target-Node-Name (der iqn) ist der Defaultwert (Zeichenfolge < 512 Byte)

target # itadm modify-target -a chap eui.5000ABCD78945E2B
target # itadm create-initiator -s eui.8000FFCD78945A64
target # itadm modify-initiator -u eui.8000FFCD78945A64 InitiatorNode
target # itadm modify-target -s eui.5000ABCD78945E2B
target # itadm modify-target -u eui.5000ABCD78945E2B TargetNode

RADIUS konfigurieren

Der RADIUS-Server ist zuvor aufzusetzen und ein RADIUS-Passwort zu konfigurieren.

  • dem Target-Node die IP-Adresse und ggf. Port (default 1812) des RADIUS-Servers bekanntmachen
  • Passwort des RADIUS-Servers auf dem Target-Node setzen
  • RADIUS als Authentifizierungsmethode auf dem Target-Node aktivieren

target # itadm modify-defaults -r 10.0.0.55:1812
target # itadm modify-defaults -d
target # itadm modify-target -a radius eui.5000ABCD78945E2B

Initiator

Die Konfiguration der Autentifizierung auf dem Initiator-Node wird unter Solaris 11 analog zu Solaris 10 vorgenommen.

 

Konfigurieren der iSCSI-Target Discovery Methode

Auf dem Initiator-Node ist die Discovery Methode festzulegen. Sie bestimmt, auf welche Weise bereitgestellte Target Devices aufgefunden werden. Die Methoden werden nach dynamisch und statisch unterschieden. Es existieren die Methoden:

  • iSNS (Internet Storage Name Service) - dynamische Methode, bei der die IP-Adresse eines oder mehrerer iSNS-Server auf dem Initiator-Node hinterlegt sind. Der iSNS-Server stellt dem Initiator-Node die Zugangsinformationen aller Target Devices der Domain bereit, zu der der Initator-Node gehört.
  • SendTarget - dynamische Methode, bei der die IP-Adresse des Target-Nodes auf dem Initiator-Node hinterlegt ist und dem Initiator-Node sämtliche, auf dem Target-Node konfigurierte Target Devices bereitgestellt werden.
  • Static - statische Methode, bei der der iqn des Target Device und die IP-Adresse des Target-Nodes auf dem Initiator-Node hinterlegt ist.
Es ist darauf zu achten, dass nur eine der Discovery Methode aktiviert ist. Sind mehrere Discovery Methoden aktiviert, kann das die Performance der Kommunikation zwische Initiator-Node und Target Device beeinträchtigen.

Solaris 10

Discovery Methode iSNS:

  • anzeigen der auf dem Initiator-Node konfigurierten iSNS-Server
  • dem Initiator-Node die IP-Adresse und ggf. Port (default 3205) des iSNS-Servers bekanntmachen
  • anzeigen der Discovery Methoden
  • Discovery Methode auf dem Initiator-Node aktivieren

initiator # iscsiadm list isns-server
initiator # iscsiadm add isns-server 192.168.100.11:3205
initiator # iscsiadm list discovery
initiator # iscsiadm modify discovery --iSNS enable

Discovery Methode SendTargets:

  • anzeigen der auf dem Initiator-Node konfigurierten Target-Node-IP-Adressen
  • dem Initiator-Node die IP-Adresse und ggf. Port (default 3260) des Target-Node bekanntmachen
  • anzeigen der Discovery Methoden
  • Discovery Methode auf dem Initiator-Node aktivieren

initiator # iscsiadm list discovery-address
initiator # iscsiadm add discovery-address 192.168.100.22:3260
initiator # iscsiadm list discovery
initiator # iscsiadm modify discovery --sendtargets enable

Discovery Methode Static:

  • anzeigen der auf dem Initiator-Node konfigurierten Target-Device-IDs und Target-Node-IP-Adressen
  • dem Initiator-Node die Target-Device-ID (iqn) und die IP-Adresse, ggf. Port (default 3260), des Target-Node bekanntmachen
  • anzeigen der Discovery Methoden
  • Discovery Methode auf dem Initiator-Node aktivieren

initiator # iscsiadm list static-config
initiator # iscsiadm add static-config iqn.1986-03.con.sun:02:310b3021-1d81-e201-c9f8-f47abe0d8279.diskvol,192.168.100.22:3260
initiator # iscsiadm list discovery
initiator # iscsiadm modify discovery --static enable

Nach dem Setzen der Discovery Methode ist folgender Schritt erforderlich, um die Target Devices auf dem Initiator-Node sichtbar zu machen:

  • erzeugen der Device-Links auf dem Initiator-Node
  • anzeigen der Devices

initiator # devfsadm -i iscsi
initiator # echo | format

Solaris 11

Das Einstellung der Discovery Methode und der jeweiligen Parameter erfolgt unter Solaris 11 analog zu Solaris 10.

 

Filesystem auf der iSCSI-Festplatte erstellen

Nachdem die iSCSI-Target Devices auf dem Initiator-Node sichtbar sind, können auf ihnen, je nach Anforderung, verschiedene Filesysteme angelegt werden.

Solaris 10

UFS auf einem Target Device anlegen und einhängen:

  • UFS auf Target Device erzeugen
  • Mountpoint einrichten
  • UFS am Mountpoint einhängen

initiator # newfs /dev/rdsk/c0t600144F0751C8E0000005294663C0001d0
newfs: construct a new file system /dev/rdsk/c0t1d0s0: (y/n)? y
/dev/rdsk/c0t600144F0751C8E0000005294663C0001d0:     286722656 sectors in 46668 cylinders of 48 tracks, 128 sectors
        140001.3MB in 2917 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
Initializing cylinder groups:
..........................................................
super-block backups for last 10 cylinder groups at:
 285773216, 285871648, 285970080, 286068512, 286166944, 286265376, 286363808,
 286462240, 286560672, 286659104
initiator # mkdir /mountpoint
initiator # mount dev/dsk/c0t600144F0751C8E0000005294663C0001d0 /mountpoint

Um das UFS auch nach einem Reboot verfügbar zu machen (Persistenz), ist Folgendes nötig:

  • Datei /etc/vfstab erweitern

initiator # vi /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
/dev/dsk/c0t600144F0751C8E0000005294663C0001d0        -       /mountpoint    ufs     -       no      -

ZFS auf einem Target Device anlegen und einhängen:

  • ZFS-Pool auf iSCSI-Target Device erzeugen
  • ZFS in ZFS-Pool erzeugen
  • alle verfügbaren ZFS einhängen

initiator # zpool create iscsipool c3t600144F04B555F370000093D00495B00d0s0
initiator # zfs create iscsipool/zfsvol
initiator # zfs mount -a

Im Kontext des OSL Storage Cluster bzw. des OSL UVE können iSCSI-Target Devices wie folgt in den globalen Storage-Pool inventarisiert werden:

  • anpassen der Datei /etc/dvsc/scancfg
  • anzeigen der verfügbaren Devices unterschieden nach cluster foreign/cluster native
  • Inventarisieren des (raw-) Devices (Disks) in ein Universum unter Verwendung des EFI-Labels
  • booten der Speichervirtualisierung

initiator # vi /etc/dvsc/scancfg
initiator # devtab -l
initiator # dkadmin -u 0 -nie /dev/rdisk/c3t600144F04B555F370000093E40495B00d0s0
initiator # dvboot

Solaris 11

Das Erstellen und Einhängen von Dateisystemen erfolgt unter Solaris 11 analog zu Solaris 10.

 

Überwachung der ISCSI Konfiguration

Solaris 10

Target

Das Kommando iscstiadm show liefert administrative und statistische Informationen zum iSCSI-Target und zu den iSCSI-Target Devices.

  • administrative Informationen des Targets anzeigen
  • IO-Statistik der Target Devices anzeigen

target # iscsitadm show admin
target # iscstiadm show stats

Initiator

Das Kommando iscsiadm list liefert Informationen über den iSCSI-Initiator und die iSCSI-Target Devices.

  • Informationen über den iSCSI-Initiator anzeigen
  • Informationen über die verwendete Discovery Methode anzeigen
  • Informationen über den iSCSI-Target anzeigen
  • Informationen über iSCSI-Target Parameter anzeigen

initiator # iscsiadm list initiator-node
initiator # iscsiadm list discovery
initiator # iscsiadm list target -v
initiator # iscsiadm list target-param iqn.1986-03.com.sun:01:0003ba0e0795.4455571f

Solaris 11

Target

Das Kommando itadm liefert Informationen über den iSCSI-Target.

  • Informationen über konfigurierte Targets anzeigen
  • Informationen über konfigurierte Target Portal Gruppe anzeigen
  • Informationen zum angegebenen Initiator-Node anzeigen
  • Informationen zu den Standardeigenschaften anzeigen

target # itadm list-target -v
target # itadm list-tpg -v
target # itadm list-initiator -v
target # itadm list-defaults

Das Kommando stmfadm liefert Informationen über den iSCSI-Target Devices.

  • Informationen zu Host Gruppen anzeigen
  • Informationen zu Target Gruppen anzeigen
  • Informationen zu Logical Units anzeigen
  • Informationen zu Target Ports anzeigen
  • Informationen zur Sichtbarkeit einer Logical Unit anzeigen
  • Informationen zum Zustand der STMF anzeigen

target # stmfadm list-hg -v
target # stmfadm list-tg -v
target # stmfadm list-lu -v
target # stmfadm list-target -v
target # stmfadm list-view -v --lu-name 600144F0B5418B0000004DDAC7C10001
target # stmfadm list-state -v

Initiator

Überwachungsaufgabe auf dem Initiaor-Node werden unter Solaris 11 mit dem gleichen Befehlssatz wie unter Solaris 10 ausgeführt.

 

Ändern der iSCSI Konfiguration

Solaris 10

Target

Mit dem Kommando iscsitadm modify können die Eigenschaften folgender Objekte bearbeitet werden.

  • Eigenschaft des Target-Nodes ändern
  • Eigenschaft des Initiator-Nodes ändern
  • Eigenschaft des Target Port Group Tag ändern
  • administrative Eigenschaft des Targets ändern

target # iscsitadm modify target option
target # iscsitadm modify initiator option
target # iscsitadm modify tpgt option
target # iscsitadm modify admin option

Initiator

Mit dem Kommando iscsiadm modify können Änderungen an den Eigenschaften folgender Objekte vorgenommen werden.

  • Discovery Methode ändern
  • Eigenschaft des Initiator-Nodes ändern
  • Parameter des Targets ändern

initiator # iscsiadm modify discovery option
initiator # iscsiadm modify initiator-node option
initiator # iscsiadm modify target-param option target

Solaris 11

Target

Über das Kommando itadm können Änderungen an Eigenschaften von Objekten des iSCSI-Target vorgenommen werden.

  • Eigenschaft des angegebenen Target-Nodes ändern
  • Eigenschaft des angegebenen Initiator-Node ändern
  • ändern der Standardeigenschaften

target # itadm modify-target option target_node_name
target # itadm modify-initiator option initiator_node_name
target # itadm modify-defaults option

Das Kommando stmfadm ändert Eigenschaften von Objekten der iSCSI-Target Devices.

  • Eigenschaft der angegebenen Logical Unit ändern

target # stmfadm modify-lu option lu-name

Initiator

Änderungen der Eigenschaften auf dem Initiator-Node werden unter Solaris 11 analog zu Solaris 10 ausgeführt.

 

Zusammenfassung

iSCSI ermöglicht den Zugriff von Initiator-Hosts wie Solaris, Linux, Mac OS und Windows auf Speichergeräte über Netzwerke. Die Speichergeräte verhalten sich aus Sicht des Initiator-Hosts wie lokale Speichermedien.

Die Unterschiede beim Einsatz des iSCSI-Protokolls auf Solaris 10 und Solaris 11 liegen in der Konfiguration des Betriebssystems als Target. Solaris 11 nutzt COMSTAR, ein Software Framework zur Konfiguration von Logical Units. Es ersetzt den iSCSI-Target Daemon aus Solaris 10. Das Kommando iscsitadm und die ZFS-Eigenschaft shareiscsi aus Solaris 10 existieren in Solaris 11 nicht mehr.

Mit Solaris 10 erstellte iSCSI LUNs sind nicht mit COMSTAR LUNs kompatibel und können nicht konvertiert werden.

COMSTAR unter Solaris 11 unterstützt die Speicherprotokolle:

  • iSCSI - Internet Small Computer System Interface
  • FC - Fibre Channel
  • SRP - SCSI RDMA Protocol (RDMA = Remote Direct Memory Access), u.a. für InfiniBand
  • iSER - ISCSI Extensions for RDMA

COMSTAR unter Solaris 11 nutzt den Befehlssatz:

  • itadm - verwaltet SCSI targets
  • srptadm - verwaltet SCSI RDMA Protocol (SRP) target ports
  • stmfadm - verwaltet SCSI LUNs

 

Interessiert?

Wenn Sie Vorschläge, Ideen, Hinweise haben oder sich weiter mit dem Thema beschäftigen möchten, senden Sie bitte eine Mail mit dem Betreff "[iSCSI]" an: info@osl-it.de.
Wir halten Sie auf dem Laufenden bzw. nehmen Kontakt zu Ihnen auf!

zurück