Open Source im professionellen Einsatz
Linux-Magazin 02/2010
©B B, 123RF.com

©B B, 123RF.com

PS3 als I-SCSI-Target

Zum Spielen zu schade

Sonys Playstation 3 hat Gigabit-LAN und ein Blu-ray-Laufwerk. Wer den Power-PC-Prozessor mit Linux startet und ein I-SCSI-Target darauf installiert, macht aus der Konsole einen schnellen Fileserver, mit dem sich sogar HD-Filme übers Netz betrachten lassen.

733

Spielerisch treffen sich zwei Welten: I-SCSI verwenden Admins normalerweise in schnellen Netzen, um Daten zwischen Servern und Storage zu übertragen, die PS3 dient allenfalls der Entspannung nach getaner Arbeit. Aber wer Linux auf der Spielekonsole installiert, kommt bisweilen auch in den Genuss ganz anderer Fähigkeiten, zum Beispiel eines I-SCSI-Servers.

Linux und I-SCSI

Das Kürzel I-SCSI [1] steht für Internet Small Computer Systems Interface und findet vorwiegend in Umgebungen vom Gigabit-Ethernet aufwärts Verwendung. Der Standard [2] für Storage Anbindung über LAN-, aber auch WAN- oder Internet-Verbindungen hat sich mittlerweile als günstige Alternative zu Fibre Channel etabliert. Die Clients, so genannte Initiatoren finden sich in Linux-Distributionen, Yast-Modulen für Server (Abbildung 1) und Client, aber auch in Hardware wie Host-Bus-Adaptern. Die Server, so genannte Targets akzeptieren Kommandos als Command Descriptor Block (CDB), für die Benutzer am Client entsteht so die Illusion lokaler Laufwerke.

Abbildung 1: I-SCSI ist als Standard für schnelle Storage-Anbindung als Server (Target) und Client (Initiator) auch in Yast integriert.

Lio, (Linux-iscsi.org) [3] steht für die Linux-Implementierung der I-SCSI-Technologie von Rising Tide Systems [4]. Unter allen gängigen Varianten wie dem Initiator Open-I-SCSI [5] oder dem Server Iscsitarget [6] scheint Lio derzeit die meisten Plattformen und Features anzubieten. Rising Tides I-SCSI- Variante besteht aus Client und Server, ist bereits seit 2004 Open-Source, bringt Enterprise-Support und laut Hersteller im 10-GBit-LAN bessere Ergebnisse als vergleichbare, aber wesentlich teuerere Fiber-Channel-Infrastrukturen.

Als Beispiel ist auf der DELUG-DVD ein angepasstes Linux-Image enthalten, mit dem Besitzer einer PS3 auf Sonys Gerät Ubuntu booten und es so in einen schnellen Fileserver mit I-SCSI-Anschluss verwandeln, ohne die PS3 partitionieren oder etwas installieren zu müssen.

In der Abbild-Datei »lio-ps3-ubuntu-9.04-live.img« findet sich eine 20 MByte große Boot-Partition mit dem PS3-Boot-Loader Petit Boot [7] in »/ps3/otheros.bld«. Die zweite Partition im Image umfasst als Ext3-Root-Partition eine Ubuntu-9.04-Installation für Power-PC. Darüber hinaus sind die Kernelmodule für die Lio-Target-Konfiguration, die Lio-Utils und ein einfaches Skript für die automatische Konfiguration der Spielekonsole enthalten.

Wer das mit seiner PS3 testen will, schreibt zunächst das Image mit Dd auf einen bootfähigen USB-Stick. Unter Windows gibt es das für Anwender von Ubuntu-Netbook-Distributionen entwickelten Open-Source-Tool Win32-Disk-Imager [8] von Tobin Davis.

Booten

Ist der fertige USB-Stick auf der Playstation eingesteckt, dann funktioniert der Systemstart mit dem kleinen Bootloader Petit Boot recht einfach: Aus dem Menü des PS3-XMB-Game-OS wählt der Anwender den Eintrag »System Settings | Install Other OS« und sucht nach »otheros.bld«. Einmal mit »Ok« bestätigen, dann im Menü »System Settings | Set Default System | OtherOS« auswählen und nach dem nächsten »Ok« bootet die Playstation mit Petit Boot. Der kleine Bootloader sucht zunächst nach vorhandenen Dateisystemen auf allen Speichermedien und zeigt erkannte, bootbare Systeme in einer Liste an.

Wenn beim Kopieren alles richtig gelaufen ist, sollte hier ein Eintrag mit der Root-Partition »lio-ubuntu-ps3-live« erscheinen. Den wählt der Benutzer aus und betätigt [Return]. Jetzt bootet das Ubuntu-System mit dem Power-PC-Kernel und sucht nach einer bestehenden Lio-Target-Konfiguration. Existiert diese nicht, was bei dem Live-System der Default ist, dann startet automatisch das Skript »/root/lio-ps3-setup.sh« aus Listing 1, das eine Demo-Konfiguration für die PS3 als I-SCSI-Target beinhaltet.

Listing 1:
»lio-ps3-setup.sh«

#!/bin/sh
PS3_IQN=`iscsi-name`
IPV4_ADDR=`ifconfig eth0 | grep "inet addr" | awk '{ print $2 }' | awk 'BEGIN { FS=":" } { print $2 }'`
HOST_ID=`ls /sys/block/sr0/device/scsi_device/ | awk -F':' '{ print $1 }'`
CHANNEL_ID=`ls /sys/block/sr0/device/scsi_device/ | awk -F':' '{ print $2 }'`
TARGET_ID=`ls /sys/block/sr0/device/scsi_device/ | awk -F':' '{ print $3 }'`
LUN_ID=`ls /sys/block/sr0/device/scsi_device/ | awk -F':' '{ print $4 }'`
tcm_node --pscsi pscsi_$HOST_ID/bdrom $CHANNEL_ID:$TARGET_ID:$LUN_ID
lio_node --addtpg $PS3_IQN 1
lio_node --addlun $PS3_IQN 1 0 lio_bdrom pscsi_$HOST_ID/bdrom
lio_node --addnp $PS3_IQN 1 $IPV4_ADDR
lio_node --demomode $PS3_IQN 1
lio_node --disableauth $PS3_IQN 1
lio_node --enabletpg $PS3_IQN 1
/etc/init.d/target status
tcm_dump --o

Das Skript definiert einen eindeutigen Namen »iscsi-name« für die PS3 und extrahiert die IPv4-Adresse aus der Ausgabe des Ifconfig-Befehls. Standardmäßig aktiviert das Ubuntu- Image DHCP auf »eth0«, was der Gbit- Ethernet-Karte der Playstation entspricht. Host-, Channel-, Target- und Lun-IDs be- zieht es aus der Konfiguration der lokalen Geräte im Sys-FS .

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 2 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • I-SCSI

    Mit Version 2.6.38 hält ein modular aufgebautes I-SCSI Storage Target Einzug in den offiziellen Kernel. Dieser Artikel zeigt, wie Admins damit flexiblere und schnellere Fileserver aufsetzen.

  • I-SCSI

    Das Multiprotokoll-SCSI-Target LIO eignet sich wegen seiner breiten Unterstützung von SCSI-Standards gerade für komplexe Testumgebungen sehr gut.

  • Speicherriese

    I-SCSI (Internet-SCSI) übermittelt Storage-Daten über TCP/IP und benutzt dazu die klassische Netzwerkinfrastruktur. Spezielle Switches und Kabel wie bei Fibre Channel sind dazu nicht nötig. Anhand von Suses Yast, Iscsitarget und Open-iscsi gibt dieser Artikel eine Einführung in Grundlagen und Terminologie.

     

  • LTR Update: iSCSI unter Linux - die günstige Alternative

    Speichernetze boomen. Nicht zuletzt wegen des Hypes um Virtualisierung und private Clouds
    - denn dort braucht man Plattenspeicher im gemeinsamen Zugriff mehrerer Hosts (shared
    storage), damit virtuelle Maschinen über Rechnergrenzen migrieren können. Eine kostengünstige
    Alternative zu Fibre Channel und Co. ist seit geraumer Zeit iSCSI

  • Nested VM

    Das Verschachteln von Hypervisoren ineinander, bekannt als Nested Virtualization, erlaubt das Einrichten eines kompletten Virtualisierungsszenarios mit Datacenter, Storage und HA-Funktionen auf einem Notebook. Dieser Artikel zeigt, wie das mit Linux-I-SCSI und den kostenlosen Trials von VMware gelingt.

comments powered by Disqus

Ausgabe 01/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.