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).
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).
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.
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).
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).
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.
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).
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”
Kommentar abgeben
Kategorien
- Allgemein (9)
- Anderes (6)
- DIY Anleitungen (8)
- Downloads (22)
- HTC (16)
- Linux (35)
- Server (29)
- Windows (8)
Neueste Beiträge
- Tor Relay auf Ubuntu 14.04 zur Verfügung stellen
- Sogo Upgrade von Version 2 auf Version 3 auf Ubuntu 14.04
- Download: Lustige und sinnlose Feiertage im November 2012 als ICS Datei
- Skype-Symbol auf Windows 7 aus der Taskleiste verschwinden lassen
- Statische IP ab Ubuntu Server 12.04 LTS Precise Pangolin
Folge uns auch via
Archiv
WERBUNG
Featured Video
Kalender
M | D | M | D | F | S | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Meta
Unterstützt mich
futurezone.at – Newsfeed
- Forscher schockiert: Satellit überlebt 10.000-fache Erdbeschleunigung 13. Dezember 2024
- Apple stellt Verkauf von iPhone SE und iPhone 14 in Europa ein 13. Dezember 2024
- NASA weiß nun, warum ihr Mars-Helikopter abgestürzt ist 13. Dezember 2024
- “Explosive” Methode stellt Eisen in Sekunden statt Stunden her 13. Dezember 2024
- Mitmachen und Gaming-Tastatur von Logitech gewinnen 13. Dezember 2024
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.
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
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
Dieses Problem hatte ich leider oder besser gesagt gottseidank noch nicht aber vieleicht kann ja jemand anderes helfen.
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!