1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
    Information ausblenden

[Tutorial] iSCSI mit Mac und Linux

Dieses Thema im Forum "Software-Tutorials" wurde erstellt von WDZaphod, 18.03.08.

  1. WDZaphod

    WDZaphod Prinzenapfel

    Dabei seit:
    10.11.06
    Beiträge:
    546
    Seit einiger Zeit interessiert mich die Möglichkeit, die HDD-Kapazität meines Debian-Homeservers auch für mein Macbook nutzen zu können.
    Besonders ins Auge fiel die Möglichkeit, iSCSI-Verbindungen mit dem Macbook herstellen zu können. Dafür kann die kostenlose Software "GlobalSAN iSCSI Initiator" verwendet werden, welche HIER herunterladbar ist.

    Als nächstes die Frage: iSCSI unter Debian? Folgend ein Howto, wie man einen Etch-Server als iSCSI-Target konfiguriert:

    Zuerst fügen wir die folgende Zeile in /etc/apt/sources.list hinzu:

    Code:
    deb http://debian.hug.cx/debian/ unstable/
    Ein apt-get update bringt die Paketverwaltung auf den neusten Stand.

    Als nächstes werden die benötigten Softwarepakete installiert, und die Kernelmodule gebaut. Die einzelnen Zeilen können eigentlich einfach per C&P übernommen werden:

    Code:
    [root@heimserver]# apt-get install module-assistant debhelper linux-source-2.6.18 dpkg-dev kernel-package libncurses-dev libssl-dev linux-headers-2.6.18-4-xen-amd64
    
    [root@heimserver]# cd /usr/src/
    [root@heimserver]# tar -jxvf linux-source-2.6.18.tar.bz2
    [root@heimserver]# ln -s linux-source-2.6.18 linux
    
    [root@heimserver]# apt-get install  iscsitarget iscsitarget-source
    [root@heimserver]# tar -zxvf iscsitarget.tar.gz 
    
    [root@heimserver]# m-a a-i iscsitarget
    
    Die Konfigutationsdate /etc/ietd.conf ist wiefolgt aufgebaut:

    Code:
    Target iqn.2006-07.com.example.intra:storage.disk1.vault
           Lun 0 Path=/dev/ziellaufwerk1,Type=fileio
           Alias vault1
    Target iqn.2006-07.com.example.intra:storage.disk2.vault
           Lun 1 Path=/dev/ziellaufwerk2,Type=fileio
           Alias vault2
    
    Dann kann der iSCSI Taget Deamon gestartet werden:

    Code:
    [root@heimserver]# /etc/init.d/iscsi-target start
    Der Deamon lauscht per default auf TCP port 3260, was man vom Macbook mit:

    Code:
    [zaphod@macbook]# sudo nmap -sS -p 3000-4000 192.168.178.2 
    einfach überprüfen kann. (Wer kein nmap installiert hat: Der Portscanner in den Netzwerktools tuts auch!)

    Problematisch bei mir war, daß die Datenplatte des Fileservers bereits voll durch das ext3-Rootfilesystem des Servers genutzt war, ich hatte also kein Laufwerk frei, und keine leere Partition verfügbar. Die Lösung ist Linux-Typisch einfach:
    Man erzeugt ein File mit der Größe des benötigten Volumes:

    Code:
    [root@heimserver]# dd if=/dev/urandom of=/pfad/zum/file bs=1M count=500
    Dies dauert je nach Systemleistung zwischen sehr lange und unglaublich lange o_O
    Danach kann das File via loopback gemounted werden:

    Code:
    [root@heimserver]# losetup /dev/loop1 /pfad/zum/file
    Das nun verfügbare Laufwerk /dev/loop1 könnte nun als ext3 formatiert werden - was wir aber nicht wollen. NAtürlich kann anstelle dieser Variante auch eine (leere) Festplattenpartition verwendet werden, was deutlich performanter sein dürfte.
    Nun machen wir dieses "Laufwerk in a Textfile" via iSCSI verfürbar, indem wir in der /etc/ietd.conf folgenden Eintrag erstellen:

    Code:
    Target iqn.2006-07.com.example.intra:storage.disk1.vault
           Lun 0 Path=/dev/loop1,Type=fileio
           Alias vault1
    
    Neustart des iSCSI-Targets:

    Code:
    [root@heimserver]# /etc/init.d/iscsi-target restart
    Und - Tadaaaa! Ein neues (unformatiertes) Laufwerk ist im iSCSI-Initiator vefügbar, und kann als HFS+ formatiert und gemounted werden. Da sich diese Partition wie ein "echtes" Laufwerk verhält, funktioniert dort auch die Spotlight-Indizierung. Auch ein Timemachine-Backup sollte gehen. Mit diesen Mitteln hat man nun ein Teil des Speicherplatzes des Linux-Servers als HFS-Speicherplatz zur Verfügung. Das Debian-System kann darauf zwar (momentan) in keiner Weise zugreifen, aber immerhin kann das komplette File gesichert werden.

    Nun sitze ich gerade in der Firma, und mache Mittag. Es wäre ja toll, an sein Laufwerk daheim zu kommen. Der Heimserver ist über dyndns erreichbar, iSCSI will nur einen TCP-Port. Fein, schnell eine Shell geöffent, und einen Tunnel gegraben:

    Code:
    [zaphod@macbook]#ssh root@meinedyndnsdomain.dyndns.org -L3260:localhost:3260
    Damit ist der lokale Port 3260 auf den Heimserver Port 3260 weitergeleitet. Im iSCSI-Initiator unter der IP 127.0.0.1 (localhost) nach Volumes gesucht, kurz warten, Volume verfügbar. Die Sache ist zwar ehr träge, aber ich habe mein Laufwerk nun unterwechs verfügbar!

    Spielereien für die nächsten Tage:
    • Anstatt direkt in das Loopback-Textfile zu schreiben, soll ein LVM (Logical Volume Manager) dazwischengeschaltet werden. Damit kann "on the fly" die Kapazität des iSCSI-Devices verändert werden, indem ein weiteres File (oder Laufwerk) hinzugefügt wird. Auch LVM-Snapshopts können evtl. sinnvoll eingesetzt werden.
    • Umzug des iSCSi-Tagets auf das "große Eisen" - eine Sun Fire V210 mit momentan 14x146Gb Fibrechannel-HDDs. Die Kiste läuft unter Solaris 10, welches ZFS (ein ohne Reboot erweiterbares Filesystem) und iSCSI von Haus aus unterstützt.
    • Test, wie man mit mehreren Rechner auf die gleiche LUN (iSCSI-Volume) zugreifen kann
    Viel Spaß beim basteln ;)
     
    #1 WDZaphod, 18.03.08
    Zuletzt bearbeitet: 18.03.08
    1 Person gefällt das.

Diese Seite empfehlen