Een netwerkshare aanmaken op Ubuntu Server met NFS

Een netwerkshare aanmaken op Ubuntu Server met NFS

Recent ben ik gestopt met het gebruiken van Unraid op mijn thuisserver om diverse redenen. Unraid is nog steeds een supermakkelijk systeem maar ik wilde meer experimenteren met een linuxserver, daarom de switch naar Ubuntu server.

Naast het draaien van verschillende Dockercontainers wil ik ook nog een netwerkshare. Aangezien ik in een linux-only omgeving werk kies ik voor het NFS protocol om dit te regelen. NFS is zeer makkelijk in gebruik en indien je het wenst kan je zeer gedetailleerd specifiëren wie toegang heeft tot de share. In mijn situatie heeft iedereen toegang tot de share wie deel uit maakt van mijn VLAN 10.

Genoeg gepraat, tijd om in actie te schieten.

Configuratie van de server

Vooraleer we beginnen met de installatie gaan we eerst de map kiezen / aanmaken op de schijf welke we gaan delen.

Ik kies ervoor om de map Fileshare te gaan delen in de homefolder van de user John dus maak ik die map aan met onderstaand commando.

cd /home/John
mkdir Fileshare

In deze map gaan op termijn alle bestanden komen die we willen plaatsen op de fileshare.

In de volgende stap ga je de NFS functionaliteit installeren op je server, dit doe je als volgt.

sudo apt install nfs-kernel-server

Nu is het tijd om je fileshare te definiëren en te publiceren. Dit doe je in het bestand /etc/exports. In dat bestand gebeurt de volledige configuratie van alle NFS shares van jouw systeem. Ik heb 1 fileshare aangemaakt, onderstaande screenshot toont je mijn exportsfile.

/etc/exports

Om bovenstaande fileshare even te ontleden zie je het volgende:

  • Gedeelde map: /home/john/fileshare
  • Toegang: iedereen die deel uitmaakt van het 10.10.1.0 netwerk.
  • Opties:
    • Sync: alle wijzigingen worden direct weggeschreven op schijf.
    • RW: er is zowel lees als schrijftoegang.
    • No_subtree_check: deze optie zorgt voor een grotere betrouwbaarheid aangezien de subtree niet gecontroleerd moet worden.

Op deze manier kan je nog verschillende configuraties maken van gedeelde mappen. Meer informatie en voorbeelden vind je op de website GoLinuxCloud.

Nadat je het exportsbestand hebt opgeslaan moet je de syntax en configuratie controleren op geldigheid. Zo kan je je later wel wat moeilijkheden besparen. Je doet dat met onderstaand commando. Krijg je geen fouten te zien dan kan je doorgaan naar de volgende stap.

sudo exportfs -r

Dit commando laadt alle shares zoals ze bedoeld zijn. Als er fouten op het scherm komen moet je deze eerst oplossen vooraleer ze op het scherm komen.

Tijdens de voorlaatste stap gaan we ervoor zorgen dat de NFS service draait en dat deze ook automatisch start na bijvoorbeeld een reboot van de server. Dit kunnen we heel makkelijk instellen door middel van de volgende twee commando's.

# De service starten
sudo systemctl start nfs-kernel-server.service

# De service automatisch starten na een reboot
sudo systemctl enable nfs-kernel-server.service

Als laatste moeten we er nog voor zorgen dat NFS shares benaderbaar zijn over ons netwerk. Zoals je misschien wel al weet staat momenteel de firewall dit in de weg. Aangezien Ubuntu standaard gebruik maakt van UFW kunnen we deze poort zeer makkelijk openen met dit commando.

sudo ufw allow nfs

Het gaat hier om de poort 2049 die je opent zoals je kan zien in het overzicht. Om te controleren dat het bij jou is gelukt gebruik je het commando sudo ufw status.

ufw status

Meer configuratie is er niet nodig, het spreekt vanzelf dat shares toevoegen nog minder configuratie vraagt dan nu. De initiële setup omvat altijd wat meer werk.

Je kan nu al in ieder geval beginnen met het uitdenken en aanmaken van je netwerkshares en in de blog van volgende week woensdag ga je leren hoe je die netwerkshare kan gebruiken.

Succes!