FreeBSD handboek
Terug | Hoofdstuk 19. Opslag | Volgende

# 19.13. Netwerk-, geheugen-, en bestandsgebaseerde bestandssystemen

Geherstructureerd en verbeterd door Marc Fonvieille.

Naast de schijven die fysiek in de computer zitten, diskettes, CD's, harde schijven, enzovoort, worden er ook andere vormen van schijven door FreeBSD begrepen: de virtuele schijven.

Dit omvat netwerkbestandssystemen zoals het Network File System en Coda, geheugengebaseerde bestandssystemen en bestandsgebaseerde bestandssystemen.

Nagelang de gebruikte versie van FreeBSD, zijn er andere gereedschappen voor het aanmaken en gebruiken van bestandsgebaseerde en geheugengebaseerde bestandssystemen.

> Opmerking: Gebruik devfs(8) om de apparaatnodes transparant voor de gebruiker toe te wijzen.

## 19.13.1. Bestandsgebaseerd bestandssysteem

Met mdconfig(8) kunnen geheugenschijven, md(4), ingesteld worden en aangezet worden. Om mdconfig(8) te gebruiken, moet de module md(4) geladen worden of ondersteuning aan het kernelinstellingenbestand toegevoegd worden:

    device md

Het commando mdconfig(8) ondersteunt drie types geheugen-gebaseerde virtuele schijven: geheugenschijven die met malloc(9) toegewezen zijn, geheugenschijven die een bestand als basis gebruiken en geheugenschijven die swapruimte als basis gebruiken. Een mogelijk gebruik is het aankoppelen van een beeld van een diskette of CD dat in een bestand bewaard wordt.

Om een bestaand beeld van een bestandssysteem aan te koppelen:

Voorbeeld 19-3. `mdconfig` gebruiken om een bestaand beeld van een bestandssysteem aan te koppelen

    # mdconfig -a -t vnode -f schijfbeeld -u 0
    # mount /dev/md0 /mnt

Om een nieuw beeld van een bestandssysteem aan te maken met mdconfig(8):

Voorbeeld 19-4. Nieuwe bestandsgebaseerde schijf aanmaken met `mdconfig`

    # dd if=/dev/zero of=nieuwbeeld bs=1k count=5k
    5120+0 records in
    5120+0 records out
    # mdconfig -a -t vnode -f nieuwbeeld -u 0
    # bsdlabel -w md0 auto
    # newfs md0a
    /dev/md0a: 5.0MB (10240 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

Indien het eenheidsnummer niet met de optie `-u` gespecificeerd wordt, gebruikt mdconfig(8) de automatische toewijzing van md(4) om een ongebruikt apparaat te selecteren. De naam van het toegewezen apparaat wordt op stdout weergegeven als `md4`. Meer details staan in de hulppagina van mdconfig(8).

Het commando mdconfig(8) is erg nuttig, hoewel het veel opdrachten vergt om een bestandsgebaseerd bestandssysteem aan te maken. FreeBSD wordt met mdmfs(8) geleverd. Dit programma stelt een md(4)-schijf in door gebruik te maken van mdconfig(8), zet er een bestandssysteem op door gebruik te maken van newfs(8) en koppel het aan door gebruik te maken van mount(8). Om hetzelfde bestandssysteembeeld als hierboven aan te maken en aan te koppelen:

Voorbeeld 19-5. Instellen en aankoppelen van een bestandsgebaseerde schijf met `mdmfs`

    # dd if=/dev/zero of=nieuwbeeld bs=1k count=5k
    5120+0 records in
    5120+0 records out
    # mdmfs -F nieuwbeeld -s 5m md0 /mnt
    # df /mnt
    Filesystem 1K-blocks Used Avail Capacity  Mounted on
    /dev/md0        4718    4  4338     0%    /mnt

Als de optie `md` zonder eenheidsnummer gebruikt wordt, gebruikt mdmfs(8) de automatische toewijzing van md(4) om automatisch een ongebruikt apparaat te selecteren. Meer details staan in de hulppagina van mdmfs(8).

## 19.13.2. Geheugengebaseerd bestandssysteem

Voor een geheugen gebaseerd bestands systeem moet normaal gesproken wisselbestand geheugen gebruikt worden. Gebruik maken van wisselbestand geheugen wil niet perse zeggen dat de geheugen schijf direct in het wisselbestand gezet wordt, maar dat het bestand naar het wisselbestand geschreven kan worden indien nodig. Het is ook mogelijk om malloc(9) gebaseerde geheugen schijven te maken, maar door hiervan gebruik te maken kan het gebeuren dat het systeem crashed als de kernel uit het geheugen loopt.

Voorbeeld 19-6. Nieuwe geheugengebaseerde schijf aanmaken met `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

Voorbeeld 19-7. Nieuwe geheugengebaseerde schijf aanmaken met `mdmfs`

    # mdmfs -s 5m md2 /mnt
    # df /mnt
    Filesystem 1K-blocks Used Avail Capacity  Mounted on
    /dev/md2        4846    2  4458     0%    /mnt

## 19.13.3. Geheugenschijf van het systeem afkoppelen

Als een geheugen- of bestandsgebaseerd bestandssysteem niet gebruikt wordt, dienen alle bronnen aan het systeem vrijgegeven te worden. Koppel als eerste het bestandssysteem af, gebruikt daarna mdconfig(8) om de schijf van een systeem los te koppelen en de bronnen vrij te geven.

Om bijvoorbeeld alle bronnen die door `/dev/md4` gebruikt worden los te koppelen en vrij te geven:

    # mdconfig -d -u 4

Het is mogelijk om de informatie over ingestelde md(4) apparaten weer te geven door gebruik te maken van `mdconfig -l`.

Terug | Begin | Volgende
Back-upbeginselen | Omhoog | Snapshots van bestandssystemen