nbd

Aus Chaostreff Chemnitz

nbd steht für network block device und ist eine Client-Server-Software für Linux um entfernte Speichermedien einzubinden.

Ein Vergleich von Alternativen gibt es unter Netzwerkspeicher.

Einrichtung

Zum Betrieb benötigt man einen Speicher bereitstellenden Computer und einen der den Speicher einbindet. Die Software gibt es auf sf.net oder in der Paketverwaltung der benutzten Linux-Distribution.

Im Netzwerk muss man den Port 10809 auf dem Server öffnen oder anderweitig zugänglich machen (SSH-Port-Forwarding)

Speicher bereitstellen

Um Speicher bereit zu stellen benötigt man die Server-Komponente der Software. Diese läuft auf jedem POSIX-kompatiblem Betriebssystem.

Man benötigt eine entsprechende Config-Datei.

[generic]
# If you want to run everything as root rather than the nbd user, you
# may either say "root" in the two following lines, or remove them
# altogether. Do not remove the [generic] section, however.
        user = nbd
        group = nbd
        includedir = /etc/nbd-server/conf.d

# What follows are export definitions. You may create as much of them as
# you want, but the section header has to be unique.

Die zu exportierenden Speicher kann man entweder direkt mit in diese Datei schreiben oder in eigene Dateien auslagern. Diese müssen dann in dem per includedir angegebenen Ordner liegen und .conf als Dateiendung haben. Dateien ohne diese Endung werden nicht gelesen.

Die grundlegende Konfiguration für zu exportierenden Speicher sieht folgendermaßen aus.

[beliebigerName]
        exportname = /path/to/export

Es gibt noch viele weitere Optionen die man angeben kann. Eine Übersicht findet man in der manpage. Dabei liegt die Beschreibung der Config-Dateien in der Sektion 5 unter dem Namen nbd-server und die Beschreibung des Programmen in der Sektion 1 unter dem gleichen Namen.

Hat man die Konfiguration geschrieben kann man das Programm starten.

Speicher einbinden

Um Speicher einzubinden benötigt man nbd-client und eine Konfigurationm, wie die folgende.

# If you don't want to reconfigure this package after installing, uncomment
# the following line:
AUTO_GEN="n"
# If you don't want the init script to kill nbd-client devices that aren't
# specified in this configuration file, set the following to "false":
KILLALL="true"
# Note that any statical settings in this file will be preserved
# regardless of the setting of AUTO_GEN, so its use is only recommended
# if you set things in a dynamical way (e.g., through a database)
#
# Name of the first used nbd /dev-entry:
NBD_DEVICE[0]=/dev/nbd0
#
# Type; s=swap, f=filesystem (with entry in /etc/fstab), r=raw (no other setup
# than to run the client)
NBD_TYPE[0]=r
#
# The host on which the nbd-server process is running
NBD_HOST[0]=hostname
#
#
# The name of the export. Required for new-style exports.
NBD_NAME[0]=beliebigerName
#
# Any extra parameters you would want to specify
NBD_EXTRA[0]=
# The second networked block device could look like:
# NBD_DEVICE[1]=/dev/nbd1
# NBD_TYPE[1]="f"
# NBD_HOST[1]="localhost"
# NBD_NAME[1]="disk1"

# You can add as many as you want, but don't skip any number in the variable
# names, or the initscript will fail.

Der Name entspricht dem Sektion-Name, welchen man auf dem Server angegeben hat.

Danach startet man nbd-client entweder per Initskript oder per

nbd-client -c /dev/nbd0

Dabei die passende /dev-Datei angeben.