Mai
1
2011

iSCSI Target auf Ubuntu Server erstellen und in Windows/Linux einbinden  Print This Post

Autor admin    Kategorie Linux, Server     Tags , , , , ,

iSCSI Target auf Ubuntu Server erstellen und in Windows/Linux einbinden Mit Hilfe des iSCSI Protokolls lässt sich Speicherplatz auf einem Server oder iSCSI-Target als ganz normale Festplatte in Windows/Linux/Mac einbinden. Diese kann wie üblich partitioniert werden und erscheint auch wie gewohnt in der Datenträgerverwaltung. Damit ist es sogar möglich einen PC ohne eingebaute Festplatte zu betreiben.

iSCSI Target auf Ubuntu erstellen

Das Paket “iscsitarget” wird auf Ubuntu benötigt um ein Target zu erstellen.

sudo apt-get install iscsitarget

Danach öffnen wir die Datei …

sudo nano /etc/default/iscsitarget

… und setzen “ISCSITARGET_ENABLE” auf true (nano: speichern mit “Strg+o“, schließen mit “Strg+x”).

ISCSITARGET_ENABLE=true

LUN-Files erzeugen

“LUN” hat sich als Bezeichnung für eine virtuelle Festplatte aus Sicht eines Betriebssystems eingebürgert. Grundsätzlich kann man eine physikalische Festplatte, eine Partition, ein RAID oder eine Datei als LUN einbinden. Da sich eine Datei jedoch um einiges leichter zwischen Systemen übertragen lässt und die Möglichkeit besteht den Speicher nicht sofort, sondern erst dynamisch bei Verwendung zu besetzen, ist dies sicher die beste Wahl (kommt natürlich auf den Anwendungsbereich an).

Für die Lun-Dateien legen wir einen neuen Ordner an und wechseln auch gleich in diesen.

sudo mkdir /luns
cd /luns

Dort erstellen wir die Datei/en mit folgendem Befehl:

sudo dd if=/dev/zero of=storagelun0 count=0 obs=1 seek=100G

… und noch eine zweite …

sudo dd if=/dev/zero of=storagelun1 count=0 obs=1 seek=100G

Wir haben nun zwei Imagedateien erstellt, welche 100GB fassen können, den Speicher aber erst dann verwenden, wenn man diese mit Daten füllt. Sieht man sich die Eigenschaften der Images an, erscheinen sie jedoch von Anfang an als 100GB-Dateien. Bei der Wahl der Größe sollte man darauf achten, dass auch genügend physikalischer Speicher für den Fall der Fälle vorhanden ist.

Benennung des Targets

Der Name des jeweiligen Targets muss in eurer Umgebung einzigartig sein und man sollte sich wenigstens halbwegs an die Konvention halten. “iqn” steht in diesem Fall für “iSCSI Qualified Name” und sollte auch so verwendet werden. Der zweite Block besteht aus Jahr und Monat (YYYY-MM), in welchem die Domain gültig ist und kann eigentlich ausgelassen werden. An dritter Stelle steht der umgedrehte Domainname (statt z.B. example.at > at.example) und dahinter noch ein Name der frei wählbar ist.

iqn.YYYY-MM.at.example:irgendeinname

Konfigurationsdatei bearbeiten

In der Konfigurationsdatei müssen wir natürlich noch das Target mit den soeben erstellten LUNs eintragen.

Öffnet die “ietd.conf” Datei …

sudo nano /etc/iet/ietd.conf

… und fügt ganz am Ende diese Zeilen ein (gegebenen Falles anpassen).

Target iqn.local.example:storage.sys1
        Lun 0 Path=/luns/storagelun0,Type=fileio,ScsiId=lun0,ScsiSN=lun0
        Lun 1 Path=/luns/storagelun1,Type=fileio,ScsiID=lun1,ScsiSN=lun1

Danach startet man den Dienst neu, damit diese Änderungen auch übernommen werden.

sudo service iscsitarget start

Sicherheit

Das iSCSI-Target bietet die Möglichkeit den User über CHAP zu authentifizieren. Dazu öffnen wir wieder die Konfigurationsdatei …

sudo nano /etc/iet/ietd.conf

… und fügen zum jeweiligen Target die “IncomingUser” Option hinzu:

Target iqn.local.example:storage.sys1
        IncomingUser BENUTZERNAME PASSWORT
        Lun 0 Path=/luns/storagelun0,Type=fileio,ScsiId=lun0,ScsiSN=lun0
        Lun 1 Path=/luns/storagelun1,Type=fileio,ScsiID=lun1,ScsiSN=lun1

Zu beachten ist, dass das Passwort mindestens 9 Zeichen lang sein muss, da man ansonsten eine Fehlermeldung erhält (nano: speichern mit “Strg+o“, schließen mit “Strg+x”). Danach startet man den Dienst wieder neu.

sudo service iscsitarget start

iSCSI Initiatoren

Der iSCSI-Initiator ist das Gegenstück zum Target, also in etwa ein Client zum Server und wird benötigt um die Laufwerke auf den Clientmaschinen einzubinden.

Windows XP

In Windows XP ist der Initiator nicht enthalten, man kann diesen jedoch bei Microsoft kostenlos herunterladen: Microsoft iSCSI Initiator

Nach der Installation öffnet man diesen über “Start > Programme > Microsoft iSCSI Initiator”. Dort wechselt man zur Karteikarte “Discovery” und klickt auf “Add” (Bild 1). Im Unterfenster gibt man die IP des Servers oder iSCSI-Targets an und bestätigt mit “Ok” (Bild 2).

iSCSI Initiator Windows XP 1

Bild 1

iSCSI Initiator Windows XP 2

Bild 2

iSCSI Initiator Windows XP 3

Bild 3

In “Targets” wählt man das gewünschte (Bild 4) und nach dem Klick auf “Log On” sollte man den Hacken (Bild 5) für die automatische Verbindung beim Start setzen. Hat man die Authentifizierung wie oben gezeigt aktiviert, kann man in “Advanced” das Passwort und den Benutzernamen angeben (Bild 6).

iSCSI Initiator Windows XP 4

Bild 4

iSCSI Initiator Windows XP 5

Bild 5

iSCSI Initiator Windows XP 6

Bild 6

In “Bound Volumes/Devices” kann man mit einem Klick auf “Bind All” alle LUNs dieses Targets verbinden (Bild 7), welche dann in der Datenträgerverwaltung (Systemsteuerung > Verwaltung) angezeigt werden (Bild 8). Diese Laufwerke müssen nur mehr initialisiert werden (Bild 9) und danach partitioniert man diese wie gewohnt.

iSCSI Initiator Windows XP 7

Bild 7

iSCSI Initiator Windows XP 8

Bild 8

iSCSI Initiator Windows XP 9

Bild9

 

Windows 7

Windows 7 hat den iSCSI-Initiator integriert, welcher in den Verwaltungstools zu finden ist. Die Verwaltung erreicht man über die Systemsteuerung, nachdem man auf den kleinen Pfeil in der Adressleiste klickt und “Alle Systemsteuerungselemente” (Bild 10) auswählt. Danach öffnet man die Verwaltung wo anschließend auch der iSCSI-Initiator aufgelistet ist (Bild 12).

iSCSI Initiator Windows 7 1

Bild 10

iSCSI Initiator Windows 7 2

Bild 11

iSCSI Initiator Windows 7 3

Bild 12

Will man sich nicht durch die einzelnen Fenster klicken, besteht auch die Möglichkeit das Suchfeld im Startmenü zu benutzen. Dort gibt man einfach “iscsicpl.exe” ein und öffnet das gefundene Programm (Bild 13).

Benutzt man den Initiator zum ersten Mal, wird man zur Bestätigung der Ausführung des Dienstes aufgefordert (Bild 14).

iSCSI Initiator Windows 7 4

Bild 13

iSCSI Initiator Windows 7 5

Bild 14

iSCSI Initiator Windows 7 6

Bild 15

In der Karteikarte Suchen gibt man bei “Portal ermitteln” die Server/Target IP ein (Bild 16) und wechselt zu “Ziele “. Hier sollte schon der Name unseres Targets aufscheinen und wir verbinden zu diesem (Bild 17). Nachdem man zusätzlich den Hacken für die automatische Verbindung gesetzt hat, kann man unter “Erweitert” das Passwort und den Benutzernamen eingeben, sofern man eine Authentifizierung benutzt.

iSCSI Initiator Windows 7 7

Bild 16

iSCSI Initiator Windows 7 8

Bild 17

iSCSI Initiator Windows 7 9

Bild 18

Als letzten Schritt bindet man die Volumes in “Volumes und Geräte” ein, indem man einfach “Automatisch konfigurieren” anklickt (Bild 19). Jetzt sollten alle Laufwerke dieses Targets in der Datentragerverwaltung vorhanden sein (Bild 20).

iSCSI Initiator Windows 7 10

Bild 19

iSCSI Initiator Windows 7 11

Bild 20

 

Ubuntu

Für Ubuntu gibt es bis jetzt leider nur Initiatoren ohne grafische Benutzeroberfläche, diese sind jedoch mit einer kuzen Anleitung nicht sonderlich schwer zu konfigurieren.

Dazu installiert man Open-iSCSI:

sudo apt-get install open-iscsi

Damit automatisch beim Start mit dem Target verbunden wird öffnen wir folgende Datei, …

sudo nano /etc/iscsi/iscsid.conf

… suchen “node.startup” und ersetzen “manual” durch “automatic”.

.
.
node.startup = automatic
.
.

Danach starten wir den Dienst neu um die Änderungen zu übernehmen.

sudo service open-iscsi restart

Jetzt lassen wir uns die Targets dieser IP-Adresse anzeigen.

sudo iscsiadm -m discovery -t sendtargets -p SERVERIP

Die Ausgabe sollte in etwa so aussehen und enthält den Targetnamen, welchen wir uns aufschreiben/merken/kopieren (iqn.local.example:storage.sys1).

192.168.11.128:3260,1 iqn.local.example:storage.sys1

Da wir jetzt den Namen kennen, können wir alle Laufwerke dieses Targets einbinden.

sudo iscsiadm --mode node --targetname EUERTARGETNAME --portal SERVERIP:3260 --login

Habt ihr keine Authentifizierung konfiguriert, könnt ihr diesen Bereich bis zum finalen Neustart des Dienstes überspringen.

Den Benutzernamen und das Passwort für die Authentifizierung könnt ihr ganz einfach mit folgenden Befehlen angeben.

sudo iscsiadm -m node --targetname "EUERTARGETNAME" --portal "SERVERIP:3260" --op=update --name node.session.auth.authmethod --value=CHAP
sudo iscsiadm -m node --targetname "EUERTARGETNAME" --portal "SERVERIP:3260" --op=update --name node.session.auth.username --value=EUERBENUTZERNAME
sudo iscsiadm -m node --targetname "EUERTARGETNAME" --portal "SERVERIP:3260" --op=update --name node.session.auth.password --value=EUERPASSWORT 

Wie vorhin angekündigt der finale Restart des Dienstes:

sudo service open-iscsi restart

Lässt man sich nun mit fdisk die Liste anzeigen sind die Laufwerke vorhanden und man kann sie mit z.B. gParted zum Mounten vorbereiten.

sudo fdisk -l

PC ohne Festplatte booten

Dieser Bereich ist noch in Arbeit und erscheint entweder in einem gesonderten Artikel oder wird in kürze hier eingefügt.

iSCSI über Internet

Man sollte davon absehen direkt mit Hilfe von Portfreigaben am Router zu einem iSCSI-Target zu verbinden. Es könnte zwar funktionieren, aber dann sicherlich nicht sonderlich stabil. Ich nutze seit einiger Zeit iSCSI in Verbindung mit VPN und seitdem läuft es ohne Probleme.

 

Viel Spaß beim Experimentieren!

 

5 Kommentare zu “iSCSI Target auf Ubuntu Server erstellen und in Windows/Linux einbinden”

  • #1  blogreader 4. Mai 2011 um 15:13

    Vielen Dank auch für diesen Artikel. Ich warte sachon immer auf einen neuen Beitrag von dir um neue Ideen zu bekommen was ich mit meinem Server noch so anstellen könnte. Dieses Tutorial hat einwandfrei funktioniert nur haben die LUN des Targets so einen komischen Namen. Ich vermute mal dass man das durch die Alias Option ändern kann.

  • #2  tobi1980cgn 10. November 2011 um 17:16

    Vielen danke für dieses geniale HowTo. Ich würde mir wünschen mehr von so gut ausgearbeiteten Anleitungen im Netz zu finden.

    Greetz Tobi

  • #3  Michl 17. April 2012 um 17:36

    Hi, danke für das gute HowTo!

    Bei mir läuft die Umsetzung soweit, nur leider erzeugt der Target Dämon Prozess immer (jede Sekunde!) die folgende Nachricht am System Prompt:


    iscsi_trgt: start_cmnd_start(1015)

    Hast Du das Problem schon mal gehabt?
    Wie gesagt es funktioniert aber halt das massive logging…das stört!

    Danke schon mal für jeden Tipp, wie ich diese “Ausgabe” los werde…
    😉

    – Michl

    • #4  Chal 18. April 2012 um 12:18

      Dieses Problem hatte ich leider oder besser gesagt gottseidank noch nicht aber vieleicht kann ja jemand anderes helfen.

  • #5  Mr. B 5. Oktober 2013 um 13:39

    Ein schöner Beitrag.
    Falls jemand, wie ich, den Fehler FATAL: Module iscsi_trgt not found bekommt,
    hilft die Installation von iscsitarget-source iscsitarget-dkms. Das hat apt bei mir nicht automatisch mit gemacht.

    Sonst prima, danke!

Kommentar abgeben zu blogreader

Kategorien

Neueste Beiträge

Folge uns auch via

Facebook Facebook RSS RSS
Werdet ein Fan und bekommt die neuesten Beiträge bei Erscheinen im Netzwerk eurer Wahl angezeigt.

Archiv

WERBUNG

Featured Video

Kalender

März 2024
M D M D F S S
 123
45678910
11121314151617
18192021222324
25262728293031

Meta

Unterstützt mich

Wenn ihr mich unterstützen möchtet, könnt ihr mir gerne ein Bier spendieren.

RSS futurezone.at – Newsfeed

Schlagwörter

Letzte Kommentare

  • Andere Blogs

    • Giveaway of the day
      Bietet jeden Tag eine kostenlose lizenzierte Software an, die man sonst kaufen müsste.
    • Lifehacker
      Daily weblog on software and personal productivity recommends downloads, web sites and shortcuts.
    • Netzpolitik
      Blog und eine politische Plattform für Freiheit und Offenheit im digitalen Zeitalter.
    • Slashgear
      Englischer Blog, welcher euch über neue Hardware informiert.
    • Webdomination
      Gute Softwaretipps rund um Windows, Linux und den Mac.
  • IT News

    • Computerwelt
      Österreichs große EDV-Zeitung für IT-Profis und EDV-Entscheider.
    • Futurezone
      Österreichs führende Hightech-Seite. Nachrichten, Interviews und Analysen aus Digital Life, IT-Business und Netzpolitik.
    • Heise IT News
      News und Foren zu Computer, IT, Wissenschaft, Medien und Politik.
    • Slashdot
      Source for technology related news with a heavy slant towards Linux and Open Source issues.
  • Witzige Links

    • Failblog
      Fail and Epic Fail Pictures and Videos in one blog.
    • German Bash
      Die bekannteste deutsche IRC (Chat) Zitate Datenbank. Nur hier gibts die Originale!
    • Snotr
      Kleines unscheinbares Videoportal mit kleinen lustigen Clips und Kurzfilmen.
    • The Daily WTF
      Curious Perversions in Information Technology
    • There, I fixed it
      Innovative Ansätze Dinge zu reparieren.
  • Foren usw

    • HTC
      Die High Tech Computer Corporation (HTC) ist ein Hersteller von Mobiltelefonen.
    • Quefi.de
      Diverse Anleitungen der Quer Frei und Ideal Community.
    • Ubuntuforums
      Das wohl aktivste Forum rund um Ubuntu-Linux.
    • XDA-Developers
      The Largest Community for Smartphone Hacks and Development of Apps.
    • Yeti Adventures
      Canyoning mit einem der erfahrensten und geprüften Führer in Süd Tirol.