WikiDer > ISCSI
Internet-Schnittstelle für kleine Computersysteme (iSCSI) ist ein Netzwerkprotokoll entwickelt von der Internettechnik-Arbeitsgruppe (IETF). Es ist gewohnt, SCSI-Befehle über . senden TCP/IP Vernetzung, das kann ein . sein Lokales Netzwerk, ein Weitverkehrsnetz wenn es Internet sein. Der Zweck dieses Protokolls besteht darin, Verbindungen zwischen Speichergeräten, Servern und Clients herzustellen. Wenn eine Speichereinrichtung nicht direkt mit dem Server verbunden ist, wird dies von iSCSI so angezeigt. Dieses Protokoll wird verwendet mit Speicherbereichsnetz (SAN). Ein alternatives Protokoll, das bei SANs verwendet wird, ist Fibre-Channel. Nachteilig daran ist, dass die Übertragungen dann Glasfaser muss durchgeführt werden, während iSCSI über eine vorhandene Netzwerkinfrastruktur verwendet werden kann. Namhafte Unternehmen wie Microsoft, IBM, Cisco und Intel nutzen den iSCSI-Standard.
SCSI
Small Computer System Interface ist a Client-Server-Modell. Dem Client wird hier der Begriff „Initiator“ und dem Server „Ziel“ zugewiesen. Ein Initiator sendet einen SCSI-Befehl an a IOGerät, das als logische Einheit (LU) eines Servers bezeichnet wird, um einen Dienst anzufordern. Da ein Ziel mehrere LUs haben kann, wird jede LU über eine logische Einheitennummer (LUN) referenziert. SCSI-Befehle werden in a . gesendet Befehlsbeschreibungsblock (CDB) Datenstruktur.
Grundprinzipien
Sitzungen
Die Daten, die vom Initiator zum Ziel und zurück gesendet werden, werden in Protokolldateneinheiten (PDUs) unterteilt. Wenn ein Initiator und ein Ziel miteinander kommunizieren, kann dies über mehrere TCP-Verbindungen geschehen. Die Sammlung solcher Verbindungen wird als Session bezeichnet und mit einer Session-ID benannt. Jeder Verbindung wird außerdem eine Verbindungs-ID zugewiesen. Das Ziel wird für alle Verbindungen gleich angezeigt und der Initiator ist auch für alle Verbindungen einer Sitzung gleich.
Login-Prozess
Um eine Verbindung zwischen Initiator und Ziel aufzubauen, muss der Login-Prozess gestartet werden. Dieser Prozess wird gestartet, wenn sich ein Initiator mit einem TCP-Port des Ziels verbindet. Anschließend kann optional eine Authentifizierung durchgeführt werden und a Sicherheitsassoziationsprotokoll eingestellt werden, wie zum Beispiel IPsec. Wenn die korrekten Parameter bestätigt sind, endet die Login-Phase und die Phase mit voller Funktionalität beginnt und SCSI-Befehle können gesendet werden Während der Login-Phase dürfen nur Login-Anfragen und Login-Antworten verwendet werden. Wenn ein Ziel außerhalb dieser Phase Login-PDUs empfängt, wird die Verbindung sofort getrennt.
Anschlusstreue
Wenn ein Initiator über eine bestimmte Verbindung eine Anfrage an ein Ziel sendet, muss das Ziel die Antwort oder andere zugehörige PDUs über dieselbe Verbindung zurücksenden. Wenn die Verbindung unterbrochen wird, bevor der Befehl abgeschlossen ist, wird dem nicht abgeschlossenen Befehl eine andere Verbindung zugewiesen.
Benennung
Jeder Initiator oder jedes Ziel hat einen eindeutigen Namen zur Identifizierung. In iSCSI werden drei Formate verwendet:
IQN
Der qualifizierte iSCSI-Name verwendet Domänennamen. Wer auch immer den Namen generiert, muss einen registrierten Domainnamen besitzen. Dies soll verhindern, dass verschiedene Ziele denselben Namen haben. Der qualifizierte iSCSI-Name besteht aus den folgenden Teilen:
- Die Zeichenfolge 'iqn.'
- Ein Datum (yyyy-mm), an dem sich der Domainname noch im Besitz des Ziels befindet
- Ein Punkt '.'
- Der umgekehrte Domänenname der Person, die den iSCSI-Namen erstellt.
- Anschließend können optionale Informationen mit einem Doppelpunkt ':' vorangestellt werden.
Einige Beispiele:
Benennungszeichenfolge definiert durch Typ Datumsberechtigung "beispiel.com" Benennungsberechtigung -- ----- --------- -------- ------------ | || | | | | | iqn.2001-04.com.example:storage:diskarrays-sn-a8675309 iqn.2001-04.com.example iqn.2001-04.com.example:storage.tape1.sys1.xyz iqn.2001-04.com .beispiel:storage.disk2.sys1.xyz
IEEE EUI-64
Dieses von IEEE etablierte Format wird verwendet, damit es leicht in eine globale Kennung zur Verwendung in anderen Netzwerkprotokollen umgewandelt werden kann. Dieses Format besteht aus den folgenden Teilen: *Der String eui. *16 ASCII-kodierte Hexadezimalziffern. Ein Beispiel:
Typ EUI-64-Kennung (ASCII-codierte hexadezimale)
-- ----------------- | || | eui.02004567A425678D
T11 Network Address Authority (NAA)
Dies ist ein Format, das später für Glasfaserkompatibilität und seriell angeschlossenes SCSI (SAS). Dieses Format besteht aus folgenden Teilen: * Die Zeichenfolge naa. * ASCII-kodierte Hexadezimalziffern. Beispiele:
Typ NAA-Kennung (64-Bit-ASCII-kodiert hexadezimal)
-- ----------------- | || | naa.52004567BA64678D
Typ NAA-Kennung (128-Bit-ASCII-codierte hexadezimale)
-- ------------------------------ | || | naa.62004567BA64678D0123456789ABCDEF
Umgang mit Fehlern und Wiederherstellung
In verschiedenen Implementierungen können verschiedene Techniken verwendet werden, um Fehler zu beheben. Da eine Form der Interoperabilität vorhanden sein muss, wurde ein allgemeines Modell spezifiziert. Außerdem muss auf eine ordnungsgemäße Verteilung geachtet werden, damit Ziel und Initiator nicht dieselben PDUs wiederherstellen. Ein Initiator verwendet R2T-Unterstützung (Ready-to-Transfer) und ein Ziel von SNACK-Unterstützung (Bestätigung, dass Daten gelesen wurden). Auch der Verbindungsaufsatz kann angepasst werden, falls mit der Verbindung etwas nicht stimmt. Die Fehlerbehebung kann in einem Befehl oder einer Verbindung erfolgen. Eine Sitzung oder eine Verbindung kann auch selbst wiederhergestellt werden.
PDU-Format
Das Format einer Protokolldateneinheit (PDU) ist für andere Befehle unterschiedlich. Gemeinsam ist ihnen das Basic Header Segment (BHS). Dies ist ein Teil des Headers, der aus 48 Bytes besteht. Daran kann optional ein weiteres Header-Segment, ein Header-Digest, ein Daten-Segment und/oder ein Data-Digest folgen Ein BHS sieht so aus:
| Ich (Opcode) | F (Opcode-spezifische Felder) |
| GesamtAHSL-Länge | DatenSegmentLänge |
| LUN- oder Opcode-spezifische Felder | |
| Initiator-Aufgaben-Tag | |
| Opcode-spezifische Felder | |
- I: Dies ist bei Anfragen zur sofortigen Lieferung auf 1 gesetzt
- F: Wenn es 1 enthält, ist diese PDU die letzte einer Reihe von PDUs
- TotalAHSLength: Dies ist die Gesamtlänge aller angehängten AHS-Header-Segmente
- DataSegmentLength: Dies ist die Länge des Datensegments
- LUN: Dieses Feld zeigt an, auf welche logische Einheit der Opcode angewendet wird
- Initiator Task Tag: Dies identifiziert den Befehl oder eine Reihe von verknüpften Befehlen
Viele Felder hängen vom Opcode ab, den die PDU enthält. Opcodes können sein: Anmeldeanforderung, Textanforderung, SCSI-Aufgabenverwaltungsfunktionsanforderung, SCSI-Dateneingang (Lesevorgang), R2T (Bereit zur Übertragung) und vieles mehr.
Sicherheit
Bei Verwendung von Authentifizierung, dies ist völlig kostenlos, die folgenden Authentifizierungsmethoden können verwendet werden:
- Kerberos V5
- SPKM1, Einfacher Public-Key-GSS-API-Mechanismus
- SPKM2, einfacher Public-Key-GSS-API-Mechanismus
- Sicheres Remote-Passwort
- Challenge Handshake Authentication Protocol
IPSec kann für Daten verwendet werden Integrität, Authentifizierung und Vertraulichkeit.
Externe Links
Verweise
- ↑RFC 3720 – Internet Small Computer Systems Interface (iSCSI), (Abschnitt 3.2.6.3.1. Geben Sie „iqn.“ (iSCSI Qualified Name) ein) (2004-04). Zugegriffen unter 11. November 2010.
- ↑RFC 3720 - Internet Small Computer Systems Interface (iSCSI), (Abschnitt 3.2.6.3.2. Geben Sie "eui" ein (IEEE EUI-64-Format)) (2004-04). Zugegriffen unter 11. November 2010.
- ↑RFC 3980 - T11 Network Address Authority (NAA) Namensformat für iSCSI-Knotennamen (2005-02). Zugegriffen unter 11. November 2010.