Zoeken op website

Standaard Linux-bestandssystemen instellen en NFSv4 Server configureren - Deel 2


Een Linux Foundation Certified Engineer (LFCE) is getraind in het opzetten, configureren, beheren en oplossen van problemen met netwerkservices in Linux-systemen, en is verantwoordelijk voor het ontwerp en de implementatie van systeemarchitectuur en het oplossen van alledaagse problemen problemen

Introductie van het Linux Foundation Certification Program (LFCE).

In deel 1 van deze serie hebben we uitgelegd hoe je een NFS-server (Network File System) installeert en de service zo instelt dat deze automatisch start bij het opstarten. Als u dit nog niet heeft gedaan, raadpleeg dan dat artikel en volg de beschreven stappen voordat u verdergaat.

  1. Netwerkservices installeren en automatisch opstarten bij opstarten configureren – Deel 1

Ik zal je nu laten zien hoe je je NFSv4-server correct configureert (zonder authenticatiebeveiliging), zodat je netwerkshares kunt instellen voor gebruik in Linux-clients alsof die bestandssystemen lokaal zijn geïnstalleerd. Houd er rekening mee dat u LDAP of NIS kunt gebruiken voor authenticatiedoeleinden, maar beide opties vallen buiten het bereik van de LFCE-certificering.

Een NFSv4-server configureren

Zodra de NFS-server actief is, zullen we onze aandacht richten op:

  1. het specificeren en configureren van de lokale mappen die we via het netwerk willen delen, en
  2. het automatisch koppelen van deze netwerkshares in clients, hetzij via het bestand /etc/fstab of het op de kernel gebaseerde automount-hulpprogramma (autofs).

We zullen later uitleggen wanneer u voor de ene of de andere methode moet kiezen.

Voordat we dat doen, moeten we ervoor zorgen dat de idmapd-daemon actief en geconfigureerd is. Deze service voert de toewijzing van NFSv4-namen (gebruiker@mijndomein) uit aan gebruikers- en groeps-ID's, en is vereist om een NFSv4-server te implementeren.

Bewerk /etc/default/nfs-common om idmapd in te schakelen.

NEED_IDMAPD=YES

En bewerk /etc/idmapd.conf met uw lokale domeinnaam (de standaardwaarde is de FQDN van de host).

Domain = yourdomain.com

Start vervolgens idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Netwerkshares exporteren

Het bestand /etc/exports bevat de belangrijkste configuratierichtlijnen voor onze NFS-server, definieert de bestandssystemen die naar externe hosts worden geëxporteerd en specificeert de beschikbare opties. In dit bestand wordt elke netwerkshare aangegeven met een aparte regel, die standaard de volgende structuur heeft:

/filesystem/to/export client1([options]) clientN([options])

Waarbij /filesystem/to/export het absolute pad naar het geëxporteerde bestandssysteem is, terwijl client1 (tot clientN) de specifieke client (hostnaam of IP-adres) of netwerk vertegenwoordigt (jokertekens zijn toegestaan) waarnaar het aandeel wordt geëxporteerd. Tenslotte zijn opties een lijst met door komma's gescheiden waarden (opties) waarmee rekening wordt gehouden bij het exporteren van het aandeel. Houd er rekening mee dat er geen spaties staan tussen elke hostnaam en de haakjes die eraan voorafgaan.

Hier is een lijst met de meest voorkomende opties en hun respectieve beschrijving:

  1. ro (afkorting van alleen-lezen): Externe clients kunnen de geëxporteerde bestandssystemen aankoppelen met alleen leesrechten.
  2. rw (afkorting van read-write): Hiermee kunnen externe hosts schrijfwijzigingen aanbrengen in de geëxporteerde bestandssystemen.
  3. wdelay (afkorting van schrijfvertraging): De NFS-server vertraagt het doorvoeren van wijzigingen op de schijf als hij vermoedt dat er een ander gerelateerd schrijfverzoek op handen is. Als de NFS-server echter meerdere kleine, niet-gerelateerde verzoeken ontvangt, zal deze optie de prestaties verminderen, zodat de optie no_wdelay kan worden gebruikt om deze uit te schakelen.
  4. synchronisatie: de NFS-server antwoordt alleen op verzoeken nadat wijzigingen zijn vastgelegd in permanente opslag (d.w.z. de harde schijf). Het tegenovergestelde, de async-optie, kan de prestaties verbeteren, maar dit gaat ten koste van gegevensverlies of corruptie na een onreine herstart van de server.
  5. root_squash: Voorkomt dat externe rootgebruikers superuser-rechten hebben op de server en wijst hen de gebruikers-ID voor gebruiker niemand toe. Als je alle gebruikers wilt “squash” (en niet alleen rooten), kun je de optie all_squash gebruiken.
  6. anonuid/anongid: Stelt expliciet de UID en GID in van het anonieme account (niemand).
  7. subtree_check: Als alleen een submap van een bestandssysteem wordt geëxporteerd, verifieert deze optie dat een opgevraagd bestand zich in die geëxporteerde submap bevindt. Aan de andere kant, als het volledige bestandssysteem wordt geëxporteerd, zal het uitschakelen van deze optie met no_subtree_check de overdracht versnellen. De standaardoptie is tegenwoordig no_subtree_check, omdat het controleren van de subboom de neiging heeft meer problemen te veroorzaken dan het waard is, volgens man 5 exports.
  8. fsid=0 | root (nul of root): Specificeert dat het opgegeven bestandssysteem de root is van meerdere geëxporteerde mappen (alleen van toepassing in NFSv4).

In dit artikel gebruiken we de mappen /NFS-SHARE en /NFS-SHARE/mydir op 192.168.0.10 (NFS-server) als onze bestandssystemen testen.

We kunnen altijd de beschikbare netwerkshares op een NFS-server weergeven met behulp van de volgende opdracht:

showmount -e [IP or hostname]

In de bovenstaande uitvoer kunnen we zien dat de aandelen /NFS-SHARE en /NFS-SHARE/mydir op 192.168.0.10 zijn geëxporteerd naar client met IP-adres 192.168.0.17.

Onze initiële configuratie (raadpleeg de map /etc/exports op uw NFS-server) voor de geëxporteerde map is als volgt:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Na het bewerken van het configuratiebestand moeten we de NFS-service opnieuw opstarten:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Geëxporteerde netwerkshares koppelen met autofs

Mogelijk wilt u Deel 5 van de LFCS-serie raadplegen (“Hoe lokale en netwerkbestandssystemen (Samba & NFS) in Linux te koppelen/ontkoppelen”) voor details over het on-demand koppelen van externe NFS-shares met behulp van het mount commando of permanent via het /etc/fstab bestand.

Het nadeel van het koppelen van een netwerkbestandssysteem met behulp van deze methoden is dat het systeem de benodigde bronnen moet toewijzen om de share te allen tijde aangekoppeld te houden, of in ieder geval totdat we besluiten ze handmatig te ontkoppelen. Een alternatief is om het gewenste bestandssysteem automatisch op aanvraag te koppelen (zonder het commando mount te gebruiken) via autofs, dat bestandssystemen kan aankoppelen wanneer ze worden gebruikt en ze daarna kan ontkoppelen. een periode van inactiviteit.

Autofs leest /etc/auto.master, dat het volgende formaat heeft:

[mount point]	[map file]

Waar [mapbestand] wordt gebruikt om meerdere koppelpunten binnen [koppelpunt] aan te geven.

Dit hoofdtoewijzingsbestand (/etc/auto.master) wordt vervolgens gebruikt om te bepalen welke koppelpunten zijn gedefinieerd, en start vervolgens een automount-proces met de opgegeven parameters voor elk koppelpunt.

Geëxporteerde NFS-shares koppelen met autofs

Bewerk uw /etc/auto.master als volgt:

/media/nfs	/etc/auto.nfs-share	--timeout=60

en maak een kaartbestand met de naam /etc/auto.nfs-share met de volgende inhoud:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Merk op dat het eerste veld in /etc/auto.nfs-share de naam is van een submap binnen /media/nfs. Elke submap wordt dynamisch aangemaakt door autofs.

Start nu de autofs-service opnieuw:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

en ten slotte, om autofs in te schakelen bij het opstarten, voert u de volgende opdracht uit:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Gekoppelde bestandssystemen onderzoeken na het starten van de autofs-daemon

Wanneer we autofs opnieuw opstarten, laat het commando mount ons zien dat het kaartbestand (/etc/auto.nfs-share) is aangekoppeld op de opgegeven map in /etc/auto.master:

Houd er rekening mee dat er nog geen mappen daadwerkelijk zijn aangekoppeld, maar dit zal automatisch gebeuren wanneer we proberen toegang te krijgen tot de gedeelde mappen die zijn opgegeven in /etc/auto.nfs-share:

Zoals we kunnen zien, “koppelt” de autofs-service als het ware het kaartbestand, maar wacht totdat er een verzoek aan de bestandssystemen wordt gedaan om ze daadwerkelijk te koppelen.

Het uitvoeren van schrijftests in geëxporteerde bestandssystemen

Met de opties anonuid en anongid, samen met de root_squash zoals ingesteld in de eerste share, kunnen we verzoeken in kaart brengen die worden uitgevoerd door de rootgebruiker in de client naar een lokaal account op de server.

Met andere woorden, wanneer root in de client een bestand in die geëxporteerde map aanmaakt, wordt het eigendom ervan automatisch toegewezen aan het gebruikersaccount met UID en GID=1000, op voorwaarde dat een dergelijk account op de server bestaat:

Conclusie

Ik hoop dat je met succes een NFS-server hebt kunnen instellen en configureren die geschikt is voor jouw omgeving, met behulp van dit artikel als leidraad. Mogelijk wilt u ook de relevante manpagina's raadplegen voor verdere hulp (bijvoorbeeld man exports en man idmapd.conf).

Experimenteer gerust met andere opties en testcases, zoals eerder beschreven, en aarzel niet om het onderstaande formulier te gebruiken om uw opmerkingen, suggesties of vragen te sturen. Wij zullen blij zijn om van u te horen.