Immer größere Datenmassen sicher zu speichern ist eine Herausforderung für jede IT-Infrastruktur. Schon mit Gigabit-Ethernet lassen sich aber ... (mehr)

iSCSI-Terminologie

iSCSI bezeichnet Targets und Initiatoren mit so genannten IQNs (iSCSI Qualified Names). Ihr Format ist »iqn.{yyyy}-{mm}.{Domainname in vertauschter Reihenfolge}« , also zum Beispiel »iqn.2010-02.com.acme:helloworld« . Der Bestandteil »:helloworld« in dieser IQN ist optional und dient der einfacheren Wiedererkennung. iSCSI als einfacher Netzwerkservice läuft auf dem TCP-Port 3260 und verschickt Datenblöcke vom Festspeicher. Der Server (genauer der Sockel des iSCSI-Dienstes) heißt in der iSCSI-Terminologie Portal. Auf einem solchen Portal können mehrere Targets bereitstehen. Tabelle 2 gibt einen Überblick über die Begriffe der iSCSI-Welt.

Tabelle 2

iSCSI-Glossar

Begriff/Abkürzung

Bedeutung

Chap

Challenge-Handshake Authentication Protocol. Verwendet der iSCSI-Server diesen Mechanismus, dann dürfen nur Initiatoren, die das richtige Passwort kennen, auf die LUNs des Target zugreifen.

HBA

Host Bus Adapter. Für Block-basierten Storage das Gerät, das »/dev/sdx« zur Verfügung stellt, wobei »/dev/sdx« über ein SAN angeschlossen ist.

IBFT

iSCSI Boot Firmware Table. Technologie, die das Booten von iSCSI-Devices ermöglicht.

Initiator

Bezeichnet die SCSI-Komponente, die Anfragen an das Storage-System stellt. Eine Anfrage in diesem Zusammenhang wäre etwa: Schick mir Block 0815 von LUN 4711.

IQN

iSCSI Qualified Name. Bezeichnet sowohl Initiatoren als auch Targets, damit diese an der iSCSI-Kommunikation teilnehmen können. Das Format ist »iqn.{yyyy}-{mm}.{Domainname in vertauschter Reihenfolge}« , zum Beispiel »iqn.2010-02.com.acme:helloworld« .

LUN

Logical Unit Number. Ein Begriff aus der SCSI-Welt, in diesem Fall synonym gebraucht mit der Logical Unit. Eine Logical Unit stellt ein SCSI-Zugriffsobjekt dar, beispielsweise eine Festplatte oder eine CD. Professionelle Storages erlauben das Zusammenfassen von Festplatten zu Raid-Gruppen und das Aufteilen dieser Gruppen in LUNs, in diesem Fall wie logische Festplatten. Eine LUN ist ein Blockdevice, typischerweise »/dev/sdx« .

Portal

iSCSI ist ein Netzwerkdienst, den ein Server anbietet. Dem Socket in der Netzwerk-Welt entspricht das Portal in der iSCSI-Welt – es ist ein Paar aus IP-Adresse und Portnummer. Für iSCSI ist 3260 der Defaultport. Jedes Portal kann mehrere Targets anbieten.

SAN

Storage Area Network. Block-basierter Storage, der über Fibre Channel oder klassisches Netzwerk an die Initiatoren angebunden ist. Im klassischen Netzwerk kann die Übertragung über TCP/IP oder Ethernet laufen.

Target

Bezeichnet den SCSI-Storage, der auf Anfragen wartet und diese beantwortet. Er ist damit das Gegenstück zum Initiator, der die Anfragen stellt. Ein Target kann mehrere LUNs enthalten.

TOE

TCP Offload Engine. Ein Großteil des Protokoll-Overhead für TCP/IP entfällt auf das Berechnen von Prüfsummen, eine Arbeit, mit der nicht die CPU belastet werden muss. Chips auf modernen Netzwerkkarten übernehmen diese Aufgabe und entlasten so die CPU.

Um einen iSCSI-Storage aufzubauen (http://2, http://3), verwendet der Interessierte zwei Maschinen, am leichtesten wie im folgenden Beispiel mit zwei Open-Suse-11.2-Default-Installationen. Eine, die als Storage-Target agiert, und eine weitere, die als Initiator dient. Hier reichen auch virtuelle Maschinen völlig aus, im Beispiel hat die Target-Instanz die IP 192.168.0.10, der Initiator die 192.168.0.11. Als Hostnamen verwendet das Beispiel »target« beziehungsweise »initiator« .

Virtuelles Blockdevice

Zunächst erstellt der Administrator eine 1 GByte große Datei, die später als Blockdevice vom Initiator aus zu sehen sein wird:

target: # dd if=/dev/zero of=/tmp/iscsi-content bs=1024 count=1000000

Dann installiert er das Modul zur iSCSI-Konfiguration mit »yast -i yast2-iscsi-server« oder »zypper in yast2-iscsi-server« . Erst jetzt existiert das optionale Yast-Modul »Netzwerkdienste | iSCSI-Ziel« , das beim ersten Start fragt, ob der Nutzer das erforderliche Paket »iscsitarget« installieren möchte. Iscsitarget [4] ist eine von vier verschiedenen Linux-iSCSI-Implementierungen. Im Zusammenspiel mit Suse ist diese Variante definitiv am einfachsten zu konfigurieren. Eine Tabelle auf [5] vergleicht die Features verschiedener iSCSI-Versionen, darunter auch die in [6] beschriebene Variante Lio von Rising Tide.

Abbildung 1 zeigt das Modul mit den drei Reitern »Dienste« , »Global« und »Ziele« . Während er Boot- und Grundeinstellungen auf den ersten beiden Tabs tätigt, fügt der Admin auf »Target« mit »Add« neue LUNs hinzu oder bearbeitet sie mit »Edit« und »Delete« (Abbildung 2).

Abbildung 1: Das Target (der Server) soll iSCSI beim Booten automatisch starten und die Firewall den Zugriff auf den Port erlauben.
Abbildung 2: Als LUN kann jede einfache Datei dienen, die auf dem Ziel angelegt ist. iSCSI exportiert diese als Blockdevice zum Initiator.

Die als LUN sichtbaren Daten soll das System in der Datei »/tmp/iscsi-content« speichern. Danach ist die Konfiguration des iSCSI-Target abgeschlossen, mit einigen Klicks auf »OK« und »Next« startet auch der Service »iscsitarget« auf Wunsch neu. Der iSCSI-Server ist fertig, das Target steht bereit.

Jetzt geht's an den Client. Um das iSCSI-Target zu testen, braucht es einen Initiator. Den legt ebenfalls ein Yast-Modul an, doch zunächst sollte der Admin sicherstellen, dass noch kein iSCSI-Blockdevice vorhanden ist. Hwinfo auf »initiator« sollte eine Antwort geben wie in Listing 1. Das virtuelle System kennt offenbar nur eine SCSI-Festplatte, und zwar jene, auf der das Root-Dateisystem gespeichert ist (»/dev/sda« ). Es gibt noch kein iSCSI-Blockdevice. Das wird sich gleich ändern.

Listing 1

Hwinfo ohne iSCSI

 

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2020