NFS-server en -client instellen op CentOS 8


Network File System (NFS), ook wel bekend als client/server-bestandssysteem, is een populair, platformonafhankelijk en gedistribueerd bestandssysteemprotocol dat wordt gebruikt om lokale bestandssystemen over het netwerk te exporteren, zodat clients mappen en bestanden met anderen via een netwerk kunnen delen en kunnen communiceren met hen alsof ze lokaal zijn gemonteerd.

In CentOS/RHEL 8 is de ondersteunde NFS-versie NFSv3 en NFSv4 en de standaard NFS-versie is 4.2, die ondersteuning biedt voor Access Control Lists (ACL's), server-side copy, sparse files, ruimte reserveren, gelabeld NFS, layoutverbeteringen en veel meer.

In dit artikel leert u hoe u de NFS-server en NFS-client op CentOS/RHEL 8 Linux-distributies installeert en configureert.

  1. CentOS 8 Installation Guide
  2. RHEL 8 Minimal Installation
  3. Enable RHEL Subscription in RHEL 8
  4. Set a Static IP Address in CentOS/RHEL 8
NFS Server IP:	10.20.20.8
NFS Client IP:	10.20.20.9	

NFS-server instellen op CentOS 8

1. Begin met het installeren van de vereiste pakketten op de NFS-server. De pakketten zijn nfs-utils die een daemon leveren voor de kernel NFS-server en aanverwante tools zoals het programma showmount.

Voer de volgende opdracht uit om het pakket op de NFS-server te installeren (gebruik sudo als u het systeem beheert als een niet-rootgebruiker).

# dnf install nfs-utils

2. Zodra de installatie is voltooid, start u de nfs-server-service, schakelt u deze in om automatisch te starten bij het opstarten van het systeem en controleert u de status met behulp van de systemctl-opdrachten.

# systemctl start nfs-server.service
# systemctl enable nfs-server.service
# systemctl status nfs-server.service

Merk op dat de andere services die nodig zijn voor het draaien van een NFS-server of het mounten van NFS-shares zoals nfsd, nfs-idmapd, rpcbind, rpc.mountd, lockd, rpc.statd, rpc.rquotad en rpc.idmapd, automatisch zullen worden gestart.

De configuratiebestanden voor de NFS-server zijn:

  • /etc/nfs.conf – main configuration file for the NFS daemons and tools.
  • /etc/nfsmount.conf – an NFS mount configuration file.

3. Maak vervolgens de bestandssystemen die u wilt exporteren of delen op de NFS-server. Voor deze handleiding maken we vier bestandssystemen, waarvan er drie worden gebruikt door personeel van drie afdelingen: human resource, finance en marketing om bestanden te delen en één voor back-ups van rootgebruikers.

# mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
# mkdir  -p /mnt/backups
# ls -l /mnt/nfs_shares/

4. Exporteer vervolgens de bovenstaande bestandssystemen in de NFS-server/etc/export-configuratiebestand om lokale fysieke bestandssystemen te bepalen die toegankelijk zijn voor NFS-clients.

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

Hier zijn enkele van de exportopties (lees man exports voor meer informatie en exportopties):

  • rw – allows both read and write access on the file system.
  • sync – tells the NFS server to write operations (writing information to the disk) when requested (applies by default).
  • all_squash – maps all UIDs and GIDs from client requests to the anonymous user.
  • no_all_squash – used to map all UIDs and GIDs from client requests to identical UIDs and GIDs on the NFS server.
  • root_squash – maps requests from root user or UID/GID 0 from the client to the anonymous UID/GID.

5. Om het bovenstaande bestandssysteem te exporteren, voert u het exportfs commando uit met de -a vlag betekent exporteren of exporteren van alle mappen, -r betekent alle mappen opnieuw exporteren, synchroniseren/var/lib/nfs/etab met/etc/exports en bestanden onder /etc/exports.d, en -v maakt uitgebreide uitvoer mogelijk.

# exportfs -arv

6. Voer de volgende opdracht uit om de huidige exportlijst weer te geven. Merk op dat de exporttabel ook enkele van de standaard exportopties toepast die niet expliciet zijn gedefinieerd zoals getoond in de volgende schermafbeelding.

# exportfs  -s

7. Als je vervolgens de firewalld-service hebt uitgevoerd, moet je verkeer naar de benodigde NFS-services (mountd, nfs, rpc-bind) via de firewall toestaan, en vervolgens de firewallregels opnieuw laden om de wijzigingen toe te passen, als volgt.

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpc-bind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

NFS-client instellen op clientsystemen

8. Installeer nu op de clientknooppunten de benodigde pakketten om toegang te krijgen tot NFS-shares op de clientsystemen. Voer de juiste opdracht uit voor uw distributie:

# dnf install nfs-utils nfs4-acl-tools         [On CentOS/RHEL]
$ sudo apt install nfs-common nfs4-acl-tools   [On Debian/Ubuntu]

9. Voer vervolgens de opdracht showmount uit om de koppelingsinformatie voor de NFS-server weer te geven. De opdracht moet het geëxporteerde bestandssysteem op de client uitvoeren zoals weergegeven in de schermafbeelding.

# showmount -e 10.20.20.8

9. Maak vervolgens een lokaal bestandssysteem/map voor het aankoppelen van het externe NFS-bestandssysteem en koppel het als een ntf-bestandssysteem.

# mkdir -p /mnt/backups
# mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

10. Bevestig dan dat het externe bestandssysteem is aangekoppeld door het mount commando uit te voeren en filter nfs mounts.

# mount | grep nfs

11. Om ervoor te zorgen dat de koppeling zelfs na het opnieuw opstarten van het systeem blijft bestaan, voert u de volgende opdracht uit om het juiste item in/etc/fstab in te voeren.

# echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
# cat /etc/fstab

12. Test ten slotte of de installatie van NFS goed werkt door een bestand op de server aan te maken en controleer of het bestand in de client kan worden gezien.

# touch /mnt/backups/file_created_on_server.text     [On NFS Server]
# ls -l /mnt/backups/file_created_on_server.text     [On NFS client]

Doe dan het omgekeerde.

# touch /mnt/backups/file_created_on_client.text     [On NFS Client]
# ls -l /mnt/backups/file_created_on_client.text     [On NFS Server]

13. Om het externe bestandssysteem aan de clientzijde te ontkoppelen.

# umount /mnt/backups

Merk op dat u het externe bestandssysteem niet kunt ontkoppelen als u erin werkt, zoals weergegeven in de volgende schermafbeelding.

Dat is het! In deze gids hebben we laten zien hoe je een NFS-server en -client in CentOS/RHEL 8 installeert en configureert. Als je gedachten of vragen hebt, gebruik dan het onderstaande reactieformulier om contact met ons op te nemen.