KALF Computertechniek

nfs: network file system 17 mei 2013

NFS windowsVoor Linux is NFS file-sharing de aangewezen manier, en vanaf versie 7 kan zelfs Windows OS er "met enig gedoe" mee overweg.

NFS is sterk te prefereren boven SMB (Samba), zoals ik al eerder heb aangegeven genereert Samba een enorme bak overhead met als gevolg extra processor- en schijfbelasting.

Het installeren van een NFS server/client lijkt een hele klus en wordt als iets afschrikwekkends bekeken (Samba klikt zo lekker weg) Echter, het is te simpel voor woorden en het komt er in vijf eenvoudige stappen op neer dat men:

  1. de NFS client en server software installeert
  2. de lokatie en naam van de aangesloten externe disks bepaalt
  3. de nodige mappen creeert
  4. één essentieel bestand aanmaakt: "/etc/exports"
  5. de NFS mappen, via een muisklik danwel automatisch via het bestand "/etc/fstab", koppelt

Alle overige handelingen zijn franje ter verhoging van het gebruikersgemak.
Dit meerwerk echter, zal zich in het dagelijks gebruik van NFS en ten opzichte van het SMB protocol snel terugverdienen met een soepelere manier van werken.

Installatie

Installeer eerst, op elke Linux machine, de server- en clientsoftware:

sudo apt-get install nfs-common nfs-kernel-server

Alvorens we de NFS-server opstarten dienen we het een en ander te configureren.

Ook nu weer, om het leven makkelijker te maken, adviseer ik om de schijven/partities van een duidelijk LABEL te voorzien. Geeft de partitie met de multimedia bestanden een naam als "mmedia", o.i.d.
Ondanks dat men aangeeft dat schijven d.m.v. een UUID gekoppeld zouden moeten worden, raad ik aan om vooral de LABEL manier te gebruiken. Dit geeft 100% zekerheid dat een schijf welke opnieuw op een usb poort aangesloten wordt, EXACT gemount wordt als bedoeld.
De universally unique identifier (UUID) blijkt in de praktijk niet permanent aan een bepaalde disk gekoppeld te blijven!

Disk- c.q. partitielabels maken:

Wanneer een externe usb disk op de computer wordt aangesloten zal deze direct herkend en gemount/gekoppeld worden.
De koppelingen maken we zichtbaar door:

sudo fdisk -l

met als output voor elke aangesloten disk:

Disk /dev/sdj: 1000.2 GB, 1000202043392 bytes
255 heads, 63 sectors/track, 
121600 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ad541

Device Boot  Start   End    Blocks    Id  System
/dev/sdj1     1     76609  615359456+  83  Linux
/dev/sdj2    77609  121600 361392512   83  Linux

Om te bepalen waar deze disks/partities zijn gemount typen we:

df
met als output:
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36843208  30954852   4016788  89% /
none                    503740       388    503352   1% /dev
....
/dev/sdj1            605703800 566070500   8865332  99% /media/12345AA
/dev/sdj2            355720500 327044232  10606652  97% /media/12345BB
......

We zien hier dat sdj1 (600GB) ensdj2 (400GB) de externe drives zijn, en mocht dit niet genoeg info zijn om deze partities te kunnen koppelen aan een gewenste map en LABEL dan geeft het commando "mount" verdere informatie.

Partities benoemen

Het van een LABEL voorzien gaat als volgt:
sudo e2label /dev/sdj1 fotos
sudo e2label /dev/sdj2 mmedia

Vóór het mounten/koppellen van deze schijven dient eerst in de "/media" directory mappen aangemaakt te worden met dezelfde naam als het label van de schijf/partitie:

sudo mkdir /media/fotos
sudo mkdir /media/mmedia

idem voor public, movies, cloud, etc. en edit daarna "/etc/fstab."

sudo nano /etc/fstab
en voeg toe:
# koppelen usb drives aan gewenste mappen
LABEL=fotos         /media/fotos         ext3     defaults,auto   0 0 
LABEL=mmedia        /media/mmedia    ext4    defaults,auto   0 0 
LABEL=public        /media/public      ext4     defaults,auto   0 0 
LABEL=cloud         /media/cloud        ext3     defaults,auto   0 0 

 

Mount en unmount de partities

USB disks/partities worden automatisch gekoppeld in de /media map. Unmount (ontkoppel) de schijven/partities eerst:
sudo umount /media/12345AA # "ls" in de map /media om de juiste naam te vinden
sudo umount /media/12345BB # idem

Mount nu alle partities opnieuw door:

sudo mount -av

Teneinde de gegevens op deze partities via het netwerk te kunnen delen, passen we het "exports" bestand aan:

sudo nano /etc/exports
als volgt:
/media/public       10.0.0.0/24(rw,no_subtree_check) #rw=lezen+schrijven toegestaan op het gehele netwerk
/media/mmedia    10.0.0.0/24(r,no_subtree_check) #r=lezen toegestaan op het gehele netwerk
/media/fotos        10.0.0.0/24(rw,no_subtree_check) 
/media/cloud        10.0.0.0/24(rw,no_subtree_check)  
/home/uwnaam    10.0.0.15(rw,no_subtree_check) #eigen home-map alleen gedeeld met b.v. 10.0.0.15
en activeren dit door:
sudo exportfs -av

Als laatste geven we gebruikers-rechten aan de NFS exports:

  • chmod 777 = lezen.schrijven,uitvoeren
  • chown = gebruikersnaam-op-de-nfs-server : groep
sudo chmod -R 777 /media/mmedia  
sudo chown -R naam:users /media/mmedia 
sudo chmod -R 777 /media/fotos 
sudo chown -R naam:users /media/fotos

Nu is er een basis configuratie waar we mee uit de voeten kunnen en wordt de NFS-server opgestart met:

sudo service nfs-kernel-server start
of
sudo /etc/init.d/nfs-kernel-server start

De NFS-server zal nu op de achtergrond luisteren naar aanvragen van de guests en zal na een reboot van dedesktop mount computer/server, weer automatisch opgestart worden.

Nu kunnen bestanden met andere systemen op het LAN gedeeld worden, bijvoorbeeld:

  • stel b.v. de browser zo in dat downloads terecht komen in de map "/media/public/downloads"
  • of geef binnen de spreadsheet en tekstverwerker aan dat documenten vanaf "/media/cloud/docs" ingeladen moeten worden,
  • sla foto's centraal op in "/media/fotos/eensubmap."
  • etc.

Deze mappen kunnen ge-symlinked (win7="snelkoppeling") worden naar de desktop zodat de remote partities, Windows-like, vanaf de desktop als een lokale map te zien zijn.
Overigens, in de meeste Desktopmanagers kan aangegeven worden dat alle gemounte partities op het buroblad zichtbaar moeten zijn.

Om op een NFS schijf geplaatste applicaties/script direct te kunnen opstarten dient het systeem te weten waar deze te vinden zijn. Pas daartoe het ~/.bashrc bestand aan met de locatie van de apps & scripts:

nano ~/.bashrc

en voeg aan het einde toe:

#scripts path 
export PATH=/media/cloud/scripts:$PATH
source ~/.bashrc

Voor een voorbeeld "~/.bashrc bestand: klik hier.

Makkelijker kan ik het niet maken en dat alles zonder (extra processor-) belastingwink


Benut de mogelijkheden van het netwerk, ga naar het hoofdstuk toepassingen

Drucken