Aus Linux-Magazin 07/2006

Netzwerkblockgeräte in neuen Missionen (Seite 6)

Zeile 73 mountet das Root-Filesystem vorübergehend nach »/mnt«; bei NFS erledigt Zeile 80 diesen Schritt. Über den Mountpoint legen die Zeilen 86 bis 92 ein Union-FS, sodass es nach dem Beenden des Initram-FS transparent über dem ganzen Root-Filesystem liegt. Zeile 95 räumt auf und übergibt die Kontrolle an den gewöhnlichen Bootprozess.

Für Init-Skripte mit wenigen einfachen Kommandos ist das Klibc-Paket eine gute Wahl. Es bringt neben der schlanken Kernel-C-Standardbibliothek eine einfache Shell mit und Befehle wie »mount«, »nfsmount« und »ipconfig«. Letzterer eignet sich für statische IP-Konfigurationen sowie als DHCP-Client. Das Initram-FS verpackt neben dem Init-Skript eine Shell, die gewünschten Hilfskommandos und alle verwendeten Bibliotheken.

Filesystem verpacken

Der Kernel erwartet »init« auf oberster Verzeichnisebene. Fürs Einpacken eignet sich folgendes Kommando:

cd Initramfs-Verzeichnis
find . ! -name "*~" | cpio -H newc --create | gzip -9 > ../initramfs.gz

Der Find-Aufruf ignoriert Backup-Kopien, danach legt CPIO ein Archiv im portablen SVR4-Format an und Gzip komprimiert es nach Kräften.

Neben NBD gibt es weitere freie Implementierungen eines Netzwerk-Blockgeräts, etwa ENBD [4], GNBD [5] oder ANBD [6], siehe auch Tabelle 1. Deren Blockgerätetreiber sind noch kein Bestandteil des Kernels, auch die meisten Distributionen liefern sie nicht mit. Den Mehraufwand für eine Installation aus den Quellen belohnt ENBD mit Fehlerbehandlung, automatischem Wiederaufbau abgebrochener Verbindung, dem gleichzeitigen Benutzen mehrerer Kanäle und vielem mehr.

Tabelle 1:
NBD-Varianten

 

Name

Erklärung

NBD

Das Network Block Device ist Vorläufer aller
Netzwerk-Blockgeräte für Linux. Es gibt derzeit einen
aktiven Entwickler und eine Mailingliste mit überschaubarem
Traffic. [3]

ANBD

Another Network Block Device ist eine kompatible
NBD-Erweiterung aus dem Jahr 2003. Sie erlaubt Multithreading und
verspricht bessere Fehlermeldungen als die Vorlage. [6]

ENBD

Das Enhanced Network Block Device wird von einem aktiven
Entwickler vorangetrieben, es existiert eine Mailingliste, auf der
ein paar Meldungen pro Monat zusammenkommen. ENBD erweitert NBD um
einen automatischen Restart bei Verbindungsverlusten,
Authentifizierung und die Unterstützung von Wechsellaufwerken.
[4]

DNBD

Das Distributed Network Block Device arbeitet mit UDP als
Transportprotokoll und kann damit auf Multicast, Client-seitiges
Caching und Server-Redundanz setzen. Es unterstützt nur
RO-Exporte. [7]

GNBD

Das Global Network Block Device ist die Basis für GFS
(Global Filesystem). [5]

ATA übers Netz

Mit AoE (ATA over Ethernet) gibt es eine Technik für blockorientierten Datenaustausch, die etwas an I-SCSI erinnert. Während Letzteres recht hohen Aufwand treibt beim Kapseln der SCSI-Aufrufe in IP-Paketen, was bei intensiver Plattenbenutzung eine erhebliche Last für die CPU bedeutet, begnügt sich AoE mit der Ethernet-Schicht. Es geht davon aus, dass die Verlagerung von Festplatten in das lokale Netzwerk nur in Bereichen mit ausreichend leistungsfähiger Ethernet-Infrastruktur stattfindet.

Funktauglich

Speziell für den Diskless-Betrieb in Funknetzen ist DNBD [7] gedacht (Distributed Network Block Device). In diesem Szenario assoziieren sich Clients mit einem Accesspoint und teilen sich die Sendefrequenz. Zu jedem Zeitpunkt sendet maximal ein Client. Bremsend wirkt auch die recht niedrige Bandbreite, bei den verbreiteten IEEE-Standards 802.11b/a/g sind es maximal 54 MBit/s. Weil sich alle Clients das Übertragungsmedium teilen, sinkt die verfügbare Datenrate mit jedem zusätzlichen Gerät, das gleichzeitig bootet.

DNBD versucht die anfallende Datenmengen so weit wie möglich zu minimieren und dabei die Besonderheiten eines Funknetzes auszunutzen. Es verzichtet dazu auf Locking-Mechanismen und erlaubt nur lesenden Zugriff. Zudem sehen alle angeschlossenen Clients den DNBD-Datenverkehr (Abbildung 6) und cachen jeden Block, den der Server ausliefert – egal für welchen Client er gedacht war. Die Chancen stehen gut, dass auch die anderen Clients diesen Block irgendwann brauchen.

Abbildung 6: Das Distributed NBD eignet sich besonders für Funknetze: Fordert ein Rechner einen Block an, sendet der Server ihn per Multicast gleichzeitig an alle Clients. Das spart Zeit und Bandbreite, wenn ein anderer denselben Block braucht.

Abbildung 6: Das Distributed NBD eignet sich besonders für Funknetze: Fordert ein Rechner einen Block an, sendet der Server ihn per Multicast gleichzeitig an alle Clients. Das spart Zeit und Bandbreite, wenn ein anderer denselben Block braucht.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Comments
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben