18.10. Speicherbasierte Laufwerke

Verbessert und neu strukturiert von Marc Fonvieille.

Neben physikalischen Laufwerken unterstützt FreeBSD auch speicherbasierte Laufwerke.

18.10.1. Ein- und Aushängen von bestehenden Abbildern

Unter FreeBSD werden virtuelle Laufwerke, md(4), mit mdconfig(8) erzeugt. Dazu muss das Modul md(4) geladen sein. Bei der Verwendung einer eigenen Kernelkonfiguration, muss diese Zeile enthalten sein:

device md

mdconfig(8) unterstützt verschiedene Arten von speicherbasierten virtuellen Laufwerken: speicherbasierte Laufwerke, deren Speicher von malloc(9) zur Verfügung gestellt wird, und dateibasierte Laufwerke, deren Speicher von einer Datei oder dem Swap-Bereich zur Verfügung gestellt wird. Eine mögliche Anwendung ist das Einhängen von CDs.

Das Abbild eines Dateisystems wird wie folgt eingehangen:

Beispiel 18.7. Einhängen eines existierenden Abbildes unter FreeBSD
# mdconfig -f diskimage -u 0
# mount /dev/md0 /mnt

Ein neues Dateisystem-Abbild erstellen Sie mit mdconfig(8) wie folgt:

Beispiel 18.8. Erstellen eines dateibasierten Laufwerks mit mdconfig
# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# mdconfig -a -t vnode -f newimage -u 0
# bsdlabel -w md0 auto
# newfs md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
 160, 2720, 5280, 7840
# mount /dev/md0a /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md0a       4710    4  4330     0%    /mnt

Wenn keine Gerätenummer mit -u angegeben ist, wird von md(4) automatisch eine ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät wird auf der Standardausgabe ausgegeben (zum Beispiel md4). Weitere Informationen finden Sie in mdconfig(8).

Obwohl mdconfig(8) sehr nützlich ist, benötigt es einige Kommandos, um ein dateibasiertes Dateisystem zu erstellen. FreeBSD enthält auch mdmfs(8), das die notwendigen Schritte in einem Befehl zusammenfasst. Es konfiguriert mit mdconfig(8) ein md(4)-Laufwerk, erstellt darauf mit newfs(8) ein UFS-Dateisystem und hängt es anschließend mit mount(8) ein. Das virtuelle Laufwerk aus dem obigen Beispiel kann mit den nachstehenden Befehlen erstellt werden:

Beispiel 18.9. Mit mdmfs ein dateibasiertes Dateisystem erstellen
# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# mdmfs -F newimage -s 5m md0 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md0        4718    4  4338     0%    /mnt

Wenn md ohne Gerätenummer verwendet wird, wählt md(4) automatisch ein ungenutztes Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der Hilfeseite mdmfs(8).

Wenn ein speicher- oder dateibasiertes Dateisystem nicht mehr in Gebrauch ist, sollten seine belegten Ressourcen wieder an das System zurückgegeben werden. Hängen Sie zuerst das Dateisystem aus, dann verwenden Sie mdconfig(8), um die Platte vom System zu trennen und die Ressourcen freizugeben.

Um beispielsweise /dev/md4 zu trennen und all seine Ressourcen freizugeben:

# mdconfig -d -u 4

Informationen über alle konfigurierten md(4)-Geräte können mit mdconfig -l angezeigt werden.

18.10.2. Ein speicherbasiertes Laufwerk erzeugen

Bei einem speicherbasierten Dateisystem sollte swap backing aktiviert werden. Das heißt allerdings nicht, dass das speicherbasierte Laufwerk automatisch auf die Festplatte ausgelagert wird, vielmehr wird der Speicherplatz danach aus einem Speicherpool angefordert, der bei Bedarf auf die Platte ausgelagert werden kann. Zusätzlich ist es möglich, malloc(9)-gestützte speicherbasierte Laufwerke zu erstellen. Das Anlegen solcher Laufwerke kann allerdings zu einer System-Panic führen, wenn der Kernel danach über zu wenig Speicher verfügt.

Beispiel 18.10. Erstellen eines speicherbasierten Laufwerks mit mdconfig
# mdconfig -a -t swap -s 5m -u 1
# newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 2752, 5344, 7936
# mount /dev/md1 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md1        4718    4  4338     0%    /mnt

Beispiel 18.11. Erstellen eines speicherbasierten Laufwerks mit mdmfs
# mdmfs -s 5m md2 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md2        4846    2  4458     0%    /mnt

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.