Network File System (NFS) is een netwerkbestandssysteem. En een adreslijstservice. NFS-serverbeheer

Op dit moment u moet een werkende TCP / IP-verbinding met uw netwerk hebben. U zou andere computers op het netwerk moeten kunnen pingen en als u de gateway dienovereenkomstig hebt geconfigureerd, zou u ook computers op internet moeten kunnen pingen. Zoals u weet, is het belangrijkste doel van het aansluiten van een computer op een netwerk om toegang te krijgen tot informatie. Terwijl sommige mensen een computer zomaar op een netwerk kunnen aansluiten, willen de meeste mensen bestanden en printers delen en openen. Ze willen documenten op internet raadplegen of online games spelen. Met TCP / IP-ondersteuning en software geïnstalleerd op je nieuwe Slackware-systeem, krijg je het allemaal; door echter alleen TCP / IP-ondersteuning te installeren, zal de functionaliteit zeer beperkt zijn. Om bestanden te delen en te delen, moeten we ze heen en weer overbrengen via FTP of SCP. We kunnen niet naar onze nieuwe computer met Slackware-bestandsboom via Mijn netwerklocaties of Gehele netwerkpictogrammen van Windows-computers. We zouden graag constant toegang willen hebben tot bestanden op andere Unix-machines.

Idealiter zouden we willen gebruiken netwerk bestandssysteem waardoor we transparante toegang hebben tot bestanden op computers. De programma's die we gebruiken om te werken met informatie die op computers is opgeslagen, hoeven niet eens te weten op welke computer het bestand is opgeslagen. Ze hoeven alleen te weten dat het bestand bestaat en de manier om het te krijgen. De rest is al de taak van het besturingssysteem en biedt toegang tot dit bestand met behulp van de beschikbare lokale en netwerkbestandssystemen. De twee meest gebruikte netwerkbestandssystemen zijn SMB (geïmplementeerd via Samba) en NFS.

5.6.1. SMB / Samba / CIFS

Server Message Block (SMB) is een afstammeling van het oudere NetBIOS-protocol dat oorspronkelijk door IBM is ontwikkeld voor hun LAN Manager-product. Microsoft is op zijn beurt altijd al geïnteresseerd geweest in NetBIOS en zijn erfgenamen (NetBEUI, SMB en CIFS). Het Samba-project begon in 1991 toen het werd geschreven om communicatie te bieden tussen een IBM-pc en een Unix-server. Vandaag voorzien van algemene toegang naar bestanden en afdrukservices via het SMB-netwerk is de voorkeursmethode voor bijna de hele beschaafde wereld, aangezien Windows dit ook ondersteunt.

Het Samba-configuratiebestand /etc/samba/smb.conf is een van de best gedocumenteerde configuratiebestanden die u kunt vinden. Er zijn kant-en-klare voorbeelden met instellingen voor gedeelde bronnen, zodat u deze kunt bekijken en aanpassen aan uw behoeften. Als je meer nodig hebt meer controle, staat de smb.conf man-pagina tot uw dienst. Aangezien Samba zulke goede documentatie heeft, zullen we die hier niet herschrijven. Laten we echter snel stilstaan ​​​​bij de belangrijkste punten.

smb.conf is opgesplitst in verschillende secties: één sectie per aandeel, plus één algemene sectie voor het instellen van parameters die overal worden gebruikt. Sommige parameters zijn alleen geldig in de globale sectie en sommige zijn alleen daarbuiten geldig. Onthoud dat de algemene sectie kan worden overschreven door elke andere sectie. Per Extra informatie zie de man-pagina's.

U zult hoogstwaarschijnlijk uw smb.conf-bestand willen bewerken om uw instellingen weer te geven. lokaal netwerk... We raden je aan om onderstaande items te wijzigen:

Dit is de beschrijving van uw Slackware-computer, weergegeven in de map Mijn netwerklocaties (of Alle netwerken).

U zult vrijwel zeker het gebruikersbeveiligingsniveau op uw Slackware-systeem willen gebruiken.

Als wachtwoordcodering niet is ingeschakeld, kunt u Samba niet gebruiken met NT4.0-, Win2k-, WinXP- en Win2003-systemen. Eerdere versies van Windows-besturingssystemen hadden geen versleuteling nodig om toegang te krijgen tot gedeelde bronnen.

SMB is een geauthenticeerd protocol, d.w.z. u kunt een gebruikersnaam en wachtwoord opgeven om van deze service te profiteren. We vertellen de samba-server dat de gebruikersnamen en wachtwoorden correct zijn via het smbpasswd-commando. Met smbpasswd kunnen gedeelde sleutels worden gebruikt om zowel gewone gebruikers als computergebruikers toe te voegen (voor SMB moet u NETBIOS-machinenamen toevoegen als computergebruikers, waardoor het bereik van machines waarvan authenticatie kan plaatsvinden, wordt beperkt).

Het is belangrijk om te bedenken dat gegeven naam gebruikersnaam of hostnaam moet al bestaan ​​in het /etc/passwd-bestand. U kunt dit bereiken met het adduser-commando. Merk op dat wanneer u de opdracht adduser gebruikt, u een dollarteken ("$") aan de computernaam moet toevoegen om deze toe te voegen. Echter, dit niet moet worden gedaan bij het werken met smbpasswd. Het hulpprogramma smbpasswd voegt zelf een dollarteken toe. Schending van deze regel door adduser zal resulteren in een fout bij het toevoegen van de hostnaam aan samba.

#adduser-machine $

5.6.2. Netwerkbestandssysteem (NFS)

NFS (Network File System) is oorspronkelijk geschreven door Sun voor Solaris - hun implementaties Unix-systemen... Hoewel het veel gemakkelijker is om in te stellen en te configureren dan SMB, is NFS veel minder veilig. Het belangrijkste beveiligingslek is dat het gemakkelijk is om gebruikers- en groeps-ID's van de ene computer te vervangen door ID's van een andere computer. Authenticatie is niet geïmplementeerd in het NFS-protocol. Er is gezegd dat in toekomstige versies NFS-protocol de beveiliging zal worden verbeterd, maar op het moment van schrijven is dit nog niet gebeurd.

NFS wordt geconfigureerd via het bestand / etc / exports. Wanneer u het standaard / etc / exports-bestand in een editor laadt, ziet u: leeg bestand met een opmerking in de bovenste twee regels. We moeten een regel toevoegen aan het exportbestand voor elk van de directory's die we willen exporteren, met een lijst van de clientwerkstations die toegang krijgen tot die directory. Als we bijvoorbeeld de directory / home / foo voor het Bar-werkstation willen exporteren, moeten we deze regel toevoegen aan ons / etc / exports-bestand:

Zoals u kunt zien, zijn er verschillende opties, maar de meeste zullen duidelijk zijn uit dit voorbeeld.

NFS gaat ervan uit dat een bepaalde gebruiker op een van de machines op het netwerk dezelfde identiteit heeft op alle andere machines. Wanneer een NFS-client probeert te lezen of te schrijven naar een NFS-server, wordt de UID doorgegeven als onderdeel van het lees-/schrijfverzoek. Deze UID wordt als hetzelfde beschouwd alsof het verzoek is gedaan vanaf de lokale computer. Zoals je kunt zien, als iemand willekeurig een bepaalde UID kan specificeren bij het benaderen van bronnen op een externe machine, kunnen er problemen optreden. Een deel van de manier om dit te voorkomen is om alle mappen te mounten met de root_squash parameter. Dit overschrijft de UID van elke gebruiker die beweert root te zijn naar een andere UID, en voorkomt zo dat root toegang krijgt tot nieuwe bestanden en mappen in de geëxporteerde map. Het lijkt erop dat root_squash standaard is ingeschakeld om veiligheidsredenen, maar de auteurs raden je nog steeds aan om dit expliciet op te geven in je / etc / exports-bestand.

U kunt een directory op de server ook rechtstreeks exporteren vanuit opdrachtregel met behulp van de opdracht exportfs zoals hieronder getoond:

# exportfs -o rw, no_root_squash Bar: / home / foo

Deze opdracht exporteert de directory / home / foo voor de computer “Bar” en geeft deze lees-/schrijftoegang. Bovendien is de parameter root_squash niet ingeschakeld op de NFS-server, wat betekent dat elke gebruiker op Bar met UID "0" (UID root "a) dezelfde privileges op de server heeft als root. De syntaxis ziet er nogal vreemd uit (meestal wanneer u directory specificeert als computer: / directory / bestand, verwijst u naar een bestand in een directory op een bepaalde computer).

U kunt meer informatie over het exportbestand vinden in de man-pagina.

Het NFS-bestandssysteem (Network File System) is gemaakt door Sun Microsystems. Het is momenteel het standaard netwerkbestandssysteem voor het besturingssysteem. UNIX-familie daarnaast zijn NFS-clients en -servers geïmplementeerd voor veel andere besturingssystemen. De principes van zijn organisatie zijn momenteel gestandaardiseerd door de internetgemeenschap, de nieuwste versie van NFS v.4 wordt beschreven door de RFC-specificatie ZOJ, uitgebracht in december 2000.

NFS is een systeem dat het schema ondersteunt toegang op afstand naar bestanden. Het werk van de gebruiker met externe bestanden na het koppelen wordt volledig transparant - de substructuur van het bestandssysteem van de NFS-server wordt een substructuur van het lokale bestandssysteem.

Een van de doelen van de NFS-ontwikkelaars was om heterogene systemen te ondersteunen met clients en servers met verschillende besturingssystemen op verschillende hardwareplatforms. Dit doel wordt ondersteund door Sun's RFC-gebaseerde implementatie van NFS, die de standaard XDR-faciliteit ondersteunt voor de uniforme weergave van procedureargumenten op afstand.

Om ervoor te zorgen dat de client bestand is tegen serverstoringen, heeft NFS een staatloze benadering aangenomen, dat wil zeggen dat servers bij het werken met bestanden geen gegevens opslaan over bestanden die door clients zijn geopend.

Het basisidee achter NFS is om een ​​willekeurige groep gebruikers een gemeenschappelijk bestandssysteem te laten delen. Meestal behoren alle gebruikers tot hetzelfde lokale netwerk, maar niet noodzakelijk. U kunt NFS ook op het WAN uitvoeren. Elke NFS-server biedt een of meer van zijn mappen voor externe clienttoegang. De directory wordt toegankelijk verklaard met al zijn subdirectories. De lijst met directory's die door de server worden doorgegeven, bevindt zich in het bestand / etc / exports, dus deze directory's worden automatisch geëxporteerd zodra de server opstart. Clients hebben toegang tot de geëxporteerde mappen door te mounten. Veel Sun-werkstations zijn schijfloos, maar zelfs dan is het mogelijk om een ​​extern bestandssysteem aan de rootdirectory te koppelen met het volledige bestandssysteem op de server. De uitvoering van programma's is bijna onafhankelijk van waar het bestand zich bevindt: lokaal of op een externe schijf. Als twee of meer clients tegelijkertijd dezelfde map hebben aangekoppeld, kunnen ze communiceren door het bestand te splitsen.

Het NFS-bestandssysteem gebruikt bij zijn werk twee protocollen.

Het eerste NFS-protocol regelt mounts. De client stuurt de server de volledig gekwalificeerde directorynaam en vraagt ​​toestemming om die directory ergens in zijn eigen directorystructuur te mounten. In dit geval wordt de server niet aangegeven waar de serverdirectory zal worden aangekoppeld. Na ontvangst van de naam valideert de server het verzoek en stuurt een bestandsdescriptor terug naar de client die het externe koppelpunt is. De descriptor omvat een descriptor van het bestandssysteemtype, schijfnummer, inodenummer van de directory die het externe koppelpunt is, en beveiligingsinformatie. Bij het lezen en schrijven van bestanden van gekoppelde bestandssystemen worden bestandsdescriptors gebruikt in plaats van een symbolische naam.


Het koppelen kan automatisch worden gedaan met behulp van batchbestanden bij het opstarten. Er is nog een andere optie voor automatische montage: wanneer het besturingssysteem opstart op een werkstation, wordt het externe bestandssysteem niet aangekoppeld, maar wanneer het externe bestand voor de eerste keer wordt geopend, verzendt het besturingssysteem verzoeken naar elke server en, na detectie van dit bestand, mount de directory van de server waarop het gevonden bestand zich bevindt.

Het tweede NFS-protocol wordt gebruikt om toegang te krijgen tot externe bestanden en mappen. Clients kunnen een verzoek naar de server sturen om een ​​actie op de directory uit te voeren of een bestand te lezen of te schrijven. Bovendien kunnen ze bestandskenmerken opvragen, zoals type, grootte, aanmaak- en wijzigingstijden. NFS wordt ondersteund door de meeste UNIX-systeemaanroepen, met uitzondering van openen en sluiten. De open en gesloten uitzonderingen zijn niet toevallig. In plaats van een bestand op afstand te openen, stuurt de client een bericht naar de server met de bestandsnaam, vraagt ​​om een ​​zoekopdracht en retourneert een bestandsdescriptor. In tegenstelling tot de open aanroep, kopieert de opzoekaanroep geen informatie naar de interne systeemtabellen. De read-aanroep bevat de bestandsdescriptor die moet worden gelezen, de offset in het bestand dat wordt gelezen en het aantal te lezen bytes. Het voordeel van dit schema is dat de server niets onthoudt van geopende bestanden. Op deze manier, als de server crasht en vervolgens wordt hersteld, gaat informatie over geopende bestanden niet verloren, omdat dit niet wordt ondersteund.

Als de server faalt, gaat de client gewoon door met het verzenden van opdrachten om bestanden te lezen of te schrijven, maar zonder een reactie te ontvangen en de time-out te hebben uitgeput, herhaalt de client zijn verzoeken. Na het opnieuw opstarten ontvangt de server nog een herhaald verzoek van de client en reageert hierop. Een servercrash veroorzaakt dus alleen wat pauze in de klantenservice, maar nee aanvullende acties clients zijn niet verplicht om verbindingen te herstellen en bestanden opnieuw te openen.

Helaas maakt NFS het moeilijk om bestanden te vergrendelen. Op veel besturingssystemen kan een bestand worden geopend en vergrendeld, zodat andere processen er geen toegang toe hebben. Wanneer het dossier wordt gesloten, wordt de vergrendeling opgeheven. Op stateless systemen zoals NFS kan blokkering niet gerelateerd zijn aan het openen van een bestand, omdat de server niet weet welk bestand geopend is. Daarom vereist NFS speciale extra geld controle blokkeren.

NFS maakt gebruik van cache aan de clientzijde, gegevens worden blok voor blok naar de cache overgedragen en read-ahead wordt gebruikt, waarbij het lezen van een blok naar de cache op aanvraag door de applicatie altijd wordt gevolgd door het lezen van het volgende blok op initiatief van de systeem. De NFS-cachingmethode behoudt de UNIX-semantiek niet voor het splitsen van bestanden. In plaats daarvan wordt de kritisch bekritiseerde semantiek gebruikt, waarbij wijzigingen in gegevens in een bestand dat door een client in de cache is opgeslagen, zichtbaar zijn voor een andere client, afhankelijk van de timing. Bij de volgende opening van een bestand in zijn cache, controleert de client bij de server wanneer het bestand voor het laatst is gewijzigd. Als dit gebeurt nadat het bestand in de cache is geplaatst, wordt het bestand uit de cache verwijderd en wordt een nieuwe kopie van het bestand van de server ontvangen. Clients verspreiden elke 30 seconden wijzigingen in de cache, zodat de server updates met een lange vertraging kan ontvangen. Als gevolg van de mechanismen voor het wissen van gegevens uit de cache en het verspreiden van wijzigingen, zijn de gegevens die door een klant worden ontvangen niet altijd de meest recente.

NFS-replicatie wordt niet ondersteund.

Directory-service

Doel en principes van organisatie

Net als een grote organisatie moet een groot computernetwerk zoveel mogelijk referentie-informatie over zichzelf centraal opslaan. De oplossing van veel problemen in het netwerk is afhankelijk van informatie over netwerkgebruikers - hun namen die worden gebruikt voor logische aanmelding, wachtwoorden, toegangsrechten tot netwerkbronnen, evenals bronnen en netwerkcomponenten: servers, clientcomputers, routers, gateways, bestandsvolumes systemen, printers, enz.

Hier zijn voorbeelden van de belangrijkste taken die een gecentraliseerde database met referentie-informatie op het netwerk vereisen:

  • Een van de meest uitgevoerde taken in het systeem, gebaseerd op referentie-informatie over gebruikers, is hun authenticatie, op basis waarvan vervolgens toegangsautorisatie wordt uitgevoerd. Het netwerk moet op de een of andere manier centraal worden opgeslagen rekeningen gebruikers met namen en wachtwoorden.
  • Het hebben van een soort gecentraliseerde database vereist ondersteuning van transparantie van toegang tot veel netwerkbronnen. Zo'n database zou de namen van deze bronnen en de toewijzing van namen aan numerieke identifiers (bijvoorbeeld IP-adressen) moeten opslaan, zodat je deze bron op het netwerk kunt vinden. Er kan transparantie worden geboden voor toegang tot servers, bestandssysteemvolumes, RPC-procedure-interfaces, gedistribueerde applicatieprogramma-objecten en vele andere netwerkbronnen.
  • E-mail is een ander populair voorbeeld van een service die een webgebaseerde helpdesk wenst die de e-mailnaamgegevens van gebruikers opslaat.
  • V recente tijden In netwerken worden in toenemende mate quality of service (QoS) managementtools gebruikt, die ook informatie nodig hebben over alle gebruikers en applicaties van het systeem, hun vereisten voor verkeerskwaliteit van serviceparameters, evenals over alle netwerkapparaten waarmee u het verkeer kunt beheren (routers, switches, gateways, enz.).
  • De organisatie van gedistribueerde applicaties kan aanzienlijk worden vereenvoudigd als het netwerk een database heeft die informatie opslaat over de beschikbare programmamodule-objecten en hun locatie op de netwerkservers. Een toepassing die een standaardactie moet uitvoeren, doet een verzoek aan zo'n database en ontvangt het adres van een programmaobject dat de vereiste actie kan uitvoeren.
  • Het netwerkbeheersysteem moet een basis hebben voor het opslaan van informatie over de netwerktopologie en kenmerken van alle netwerkelementen zoals routers, switches, servers en clientcomputers. De aanwezigheid van volledige informatie over de samenstelling van het netwerk en zijn verbindingen stelt het systeem in staat geautomatiseerde controle netwerk om berichten over noodsituaties correct te identificeren en hun oorzaak te vinden. Informatie gesorteerd op divisies van de onderneming over de beschikbare netwerk uitrusting en gevestigd software op zichzelf nuttig, omdat het beheerders helpt een betrouwbaar beeld te krijgen van de toestand van het netwerk en plannen te ontwikkelen voor de ontwikkeling ervan.

Dergelijke voorbeelden kunnen worden voortgezet, maar het is niet moeilijk om een ​​tegenargument aan te halen dat twijfel doet rijzen over de noodzaak om een ​​gecentraliseerde database met referentie-informatie op het netwerk te gebruiken - lange tijd netwerken werkten zonder een enkele referentiedatabase, en veel netwerken werken nog steeds zonder. Er zijn inderdaad veel privé-oplossingen die het mogelijk maken om de werking van een netwerk effectief te organiseren op basis van privé-referentiedatabases, die kunnen worden weergegeven door gewone tekstbestanden of tabellen die zijn opgeslagen in de hoofdtekst van de toepassing. UNIX gebruikt bijvoorbeeld traditioneel een passwd-bestand om gebruikersnamen en wachtwoorden op te slaan, dat alleen gebruikers op één computer dekt. U kunt de namen van e-mailontvangers ook opslaan in een lokaal bestand op de clientcomputer. En zo privé help systemen goed werken - de praktijk bevestigt dit.

Dit bezwaar geldt echter alleen voor kleine en middelgrote netwerken; in grote netwerken verliezen individuele lokale referentiedatabases hun effectiviteit. DNS op internet is een goed voorbeeld dat niet van toepassing blijkt te zijn op on-premises oplossingen voor grote netwerken. Zodra de grootte van internet een bepaalde limiet overschreed, werd het ineffectief om informatie over de correspondentie van namen en IP-adressen van computers op het netwerk op te slaan in lokale tekstbestanden. Het was nodig om een ​​gedistribueerde database te creëren die werd ondersteund door hiërarchisch gekoppelde naamservers en een gecentraliseerde service bovenop die database om de symbolische naamresolutie op internet snel en efficiënt te laten werken.

Voor een groot netwerk is het ook niet effectief om een ​​groot aantal specifieke hulpdiensten te gebruiken: een voor authenticatie, een andere voor netwerkbeheer, een derde voor het oplossen van computernamen, enz. Zelfs als elk van deze diensten goed georganiseerd is en een combinatie van gecentraliseerde interface met gedistribueerde basisgegevens, groot aantal helpdeskdiensten dupliceren grote hoeveelheden informatie en bemoeilijken netwerkbeheer en -beheer. Windows NT heeft bijvoorbeeld ten minste vijf verschillende soorten referentiedatabases. In de hoofddirectory van het domein (NT Domain Directory Service) wordt informatie over gebruikers opgeslagen, wat nodig is bij het organiseren van hun logische aanmelding bij het netwerk. Gegevens over dezelfde gebruikers kunnen zijn opgenomen in een andere directory die wordt gebruikt door de elektronische door Microsoft mail Mail. Nog drie databases ondersteunen adresresolutie: WINS wijst Netbios-namen toe aan IP-adressen, de DNS-directory (Domain Name Server) is handig bij het verbinden van een NT-netwerk met internet, en ten slotte wordt de DHCP-directory gebruikt om automatisch IP-adressen toe te wijzen aan computers op het netwerk ... ... Het is duidelijk dat een dergelijke verscheidenheid aan helpdeskdiensten het leven van de beheerder bemoeilijkt en leidt tot: extra fouten wanneer de inloggegevens van dezelfde gebruiker in meerdere databases moeten worden ingevoerd. Daarom in de nieuwe Windows-versies 2000 de meeste systeemhulpinformatie kan worden opgeslagen dienst Actief Directory is een enkele, gecentraliseerde directoryservice die gebruikmaakt van een gedistribueerde database en is geïntegreerd met DNS.

Als gevolg van de ontwikkeling van opslagsystemen voor referentie-informatie verscheen er een speciale service in netwerkbesturingssystemen - de zogenaamde Directory Services, ook wel een referentieservice (directory) genoemd. De directoryservice slaat informatie over alle gebruikers en netwerkbronnen op in de vorm van uniforme objecten met bepaalde attributen, en stelt u ook in staat om de relaties tussen opgeslagen objecten weer te geven, zoals het feit dat gebruikers tot een bepaalde groep behoren, gebruikerstoegangsrechten tot computers, de invoer van meerdere knooppunten in één subnet, communicatie links tussen subnetten, serverproductie, enz. Met de directoryservice kunt u enkele basisbewerkingen uitvoeren op opgeslagen objecten, zoals het toevoegen en verwijderen van een object, inclusief een object in een ander object, het wijzigen van de waarden van een objectkenmerk, het lezen van attributen, en enkele anderen. Meestal worden er verschillende specifieke netwerkapplicaties bovenop de directoryservice gebouwd, die de informatie van de service gebruiken om problemen op te lossen specifieke taken: netwerkbeheer, gebruikersauthenticatie, servicetransparantie en andere hierboven genoemde. Een directoryservice is meestal gebaseerd op een client-servermodel: servers slaan een database op met referentie-informatie die clients gebruiken door verzoeken via het netwerk naar servers te verzenden. Het lijkt hetzelfde te zijn voor de directoryclient. gecentraliseerd systeem hoewel de meeste goede directoryservices een gedistribueerde structuur hebben die een groot aantal servers omvat, is de structuur transparant voor klanten.

Een belangrijke vraag is de organisatie van de referentiedatabase. Een enkele database die een grote hoeveelheid referentie-informatie opslaat, creëert dezelfde problemen als elke andere grote database. Implementatie van de helpservice als een lokale database opgeslagen als een enkele kopie op een van de servers in het netwerk is om verschillende redenen niet geschikt voor een groot systeem, voornamelijk vanwege de lage prestaties en lage betrouwbaarheid van een dergelijke oplossing. De prestaties zullen laag zijn vanwege het feit dat verzoeken aan de database van alle gebruikers en applicaties op het netwerk naar een enkele server gaan, die bij een groot aantal verzoeken zeker niet langer kan worden verwerkt. Dat wil zeggen dat een dergelijke oplossing niet goed schaalt in termen van het aantal bediende gebruikers en gedeelde bronnen. De betrouwbaarheid kan ook niet hoog zijn in een systeem met een enkele kopie van de gegevens. Naast het wegnemen van beperkingen op het gebied van prestaties en betrouwbaarheid, is het wenselijk dat de structuur van de database de logische groepering van bronnen en gebruikers door structurele afdelingen van de onderneming mogelijk maakt en dat voor elke dergelijke groep een beheerder wordt toegewezen.

De uitdagingen van het handhaven van prestaties en betrouwbaarheid naarmate het netwerk groeit, worden doorgaans aangepakt door middel van gedistribueerde referentiedatabases. Het delen van gegevens over meerdere servers vermindert de belasting van elke server, terwijl de betrouwbaarheid behouden blijft door meerdere replica's van elk deel van de database te hebben. Voor elk deel van de database kunt u een eigen beheerder toewijzen, die alleen toegangsrechten heeft tot de objecten van zijn deel van de informatie over het hele systeem. Voor de gebruiker (en voor netwerkapplicaties) blijkt zo'n gedistribueerde database een enkele database te zijn die toegang geeft tot alle netwerkbronnen, ongeacht van welk werkstation de aanvraag afkomstig is.

Er zijn twee populaire standaarden voor directoryservices. Ten eerste is het de X.500-standaard die is ontwikkeld door ITU-T (ten tijde van de ontwikkeling van de standaard heette deze organisatie CCITT). Deze norm definieert de functies, de organisatie van de helpdesk en het protocol voor toegang. De X.500-standaard is voornamelijk ontworpen voor gebruik met de X.400-postdienst en stelt u in staat om de opslag van referentie-informatie efficiënt te organiseren en dient als een goede basis voor een universele directoryservice op het netwerk.

Een andere standaard is de Light-weight Directory Access Protocol (LDAP)-standaard, ontwikkeld door de internetgemeenschap. Deze standaard definieert een vereenvoudigd toegangsprotocol voor directoryservices, omdat services die zijn gebouwd op de X.500-standaard te omslachtig zijn gebleken. LDAP is wijdverbreid en is de de facto standaard geworden als clienttoegangsprotocol voor helpdeskresources.

Er zijn er ook meerdere praktische implementaties directoryservices voor netwerkbesturingssystemen. De meest voorkomende is de Novell NDS-service, die in 1993 werd ontwikkeld voor het NetWare 4.0-netwerkbesturingssysteem en tegenwoordig ook wordt geïmplementeerd voor Windows NT / 2000. Directoryservice is van groot belang Active Directory ontwikkeld door Microsoft voor Windows 2000. Beide services ondersteunen het LDAP-toegangsprotocol en kunnen door hun distributie in zeer grote netwerken werken.

NDS-directoryservice

NetWare Directory Services (NDS) is een wereldwijde referentieservice die is gebaseerd op een gedistribueerde objectgeoriënteerde database van netwerkbronnen. De NDS-database bevat informatie over alle netwerkbronnen, inclusief informatie over gebruikers, gebruikersgroepen, printers, volumes en computers. NetWare OS (en andere NDS-clients die op andere platforms draaien) gebruikt NDS-informatie om toegang tot deze bronnen te bieden.

NDS verving de bindery-directory van eerdere versies van NetWare. De bindery-directory is een "platte" of single-tier database die is ontworpen om een ​​enkele server te ondersteunen. Het gebruikte ook het concept "object" voor een netwerkbron, maar de interpretatie van deze term verschilde van de algemeen aanvaarde. De bindery-objecten werden geïdentificeerd als eenvoudig numerieke waarden en had bepaalde eigenschappen. Voor deze objecten was er echter geen expliciete overervingsrelatie voor objectklassen, dus de relatie tussen bindery-objecten werd willekeurig vastgesteld door de beheerder, wat vaak leidde tot schendingen van de gegevensintegriteit.

De NDS-database is een gelaagde database die resource-informatie bijhoudt voor alle servers in een netwerk. Voor achterwaartse compatibiliteit met NetWare biedt NDS een bindery-emulatiemechanisme.

NDS is een aanzienlijke verbetering ten opzichte van eerdere versies door:

  • verdeling;
  • reproduceerbaarheid;
  • transparantie;
  • globaliteit.

Distributie betekent dat informatie niet op een enkele server wordt opgeslagen, maar is opgedeeld in delen die partities worden genoemd. NetWare slaat deze partities op meerdere servers op het netwerk op (Figuur 10.8). Deze eigenschap vereenvoudigt het beheer en beheer van een groot netwerk aanzienlijk, aangezien het voor de beheerder als één systeem lijkt. Het biedt ook snellere toegang tot de netwerkbronnendatabase door toegang te krijgen tot de dichtstbijzijnde server.

Rijst. 10.8. NDS-databasepartities

Een replica is een kopie van de NDS-partitiegegevens. U kunt een onbeperkt aantal replica's van elke partitie maken en deze opslaan op verschillende servers... Als een server stopt, kunnen kopieën van deze informatie worden opgehaald van een andere server. Dit verhoogt de veerkracht van het systeem omdat geen enkele server verantwoordelijk is voor alle informatie in de NDS-database.

Transparantie is dat NDS automatisch koppelingen maakt tussen software- en hardwarecomponenten die een gebruiker toegang geven tot netwerkbronnen. NDS vereist niet dat de gebruiker de fysieke locatie van deze bronnen kent. vragen netwerkbron op naam, krijgt u er correcte toegang toe, zelfs als het netwerkadres of de locatie verandert.

De globaliteit van NDS is dat je na het inloggen toegang krijgt tot de bronnen van het hele netwerk, en niet slechts één server, zoals in vorige versies... Dit wordt bereikt door middel van de algemene inlogprocedure. In plaats van in te loggen op een aparte server, logt de NDS-gebruiker in op het netwerk en krijgt vervolgens toegang tot de netwerkbronnen die hem zijn toegestaan. De informatie die tijdens het logisch inloggen wordt verstrekt, wordt gebruikt om de gebruiker te identificeren. Later, wanneer de gebruiker toegang probeert te krijgen tot bronnen zoals servers, volumes of printers, achtergrondproces identificatie controleert of een gebruiker recht heeft op een bepaalde bron.

Goede tijd, lezers en gasten. Er was een zeer lange pauze tussen de berichten, maar ik ben terug in de strijd). In het artikel van vandaag zal ik overwegen: NFS-protocolwerking, en een NFS-server en NFS-client configureren op Linux.

Een inleiding tot NFS

NFS (Netwerk bestandssysteem - netwerk bestandssysteem) naar mijn mening - een ideale oplossing in een lokaal netwerk, waar snelle (sneller dan SAMBA en minder resource-intensief in vergelijking met externe bestandssystemen met codering - sshfs, SFTP, enz ...) gegevensuitwisseling nodig is en niet ten voorste beveiliging van verzonden informatie. NFS-protocol staat toe mount externe bestandssystemen via een netwerk in een lokale mappenboom alsof het een gemount schijfbestandssysteem is. Lokale toepassingen kunnen dus met het externe bestandssysteem werken zoals met de lokale. Maar je moet voorzichtig zijn (!) Met NFS instellen, omdat het met een bepaalde configuratie mogelijk is om het besturingssysteem van de klant op te schorten, wachtend op oneindige I/O. NFS-protocol gebaseerd op werk RPC-protocol, wat zich nog niet leent voor mijn begrip)) dus het materiaal in het artikel zal een beetje vaag zijn ... Voordat je NFS kunt gebruiken, of het nu een server of een client is, moet je ervoor zorgen dat je kernel ondersteuning heeft voor het NFS-bestandssysteem. U kunt controleren of de kernel het NFS-bestandssysteem ondersteunt door te zoeken naar de aanwezigheid van de bijbehorende regels in het bestand / proc / bestandssystemen:

ARCHIV ~ # grep nfs / proc / bestandssystemen nodev nfs nodev nfs4 nodev nfsd

Als de opgegeven regels in het bestand / proc / bestandssystemen mislukt, moet u de hieronder beschreven pakketten installeren. Dit zal hoogstwaarschijnlijk afhankelijke kernelmodules installeren om de gewenste bestandssystemen te ondersteunen. Als na het installeren van pakketten NFS-ondersteuning niet wordt weergegeven in: het opgegeven bestand, zal het nodig zijn, met de opname van deze functie.

Geschiedenis Netwerk bestandssysteem

NFS-protocol ontwikkeld door Sun Microsystems en heeft 4 versies in zijn geschiedenis. NFSv1 werd ontwikkeld in 1989 en was experimenteel, draaiend op het UDP-protocol. Versie 1 staat beschreven in. NFSv2 werd uitgebracht in hetzelfde 1989, werd beschreven door dezelfde RFC1094 en was ook gebaseerd op het UDP-protocol, terwijl je niet meer dan 2 GB uit een bestand kon lezen. NFSv3 herzien in 1995 en beschreven in. De belangrijkste innovaties van de derde versie waren bestandsondersteuning grote maat, voegde ondersteuning toe voor het TCP-protocol en grote TCP-pakketten, wat de werking van de technologie aanzienlijk versnelde. NFSv4 voltooid in 2000 en beschreven in RFC 3010, herzien in 2003 en beschreven in. De vierde versie omvatte prestatieverbeteringen, ondersteuning voor verschillende authenticatietools (met name Kerberos en LIPKEY met behulp van het RPCSEC GSS-protocol) en toegangscontrolelijsten (zowel POSIX- als Windows-types). NFS-versies v4.1 werd in 2010 goedgekeurd door de IESG en ontving het nummer. Een belangrijke innovatie van versie 4.1 is de specificatie pNFS - Parallel NFS, een mechanisme voor parallelle toegang van een NFS-client tot de gegevens van veel gedistribueerde NFS-servers. De aanwezigheid van een dergelijk mechanisme in de netwerkbestandssysteemstandaard zal helpen bij het bouwen van gedistribueerde "cloud" -opslag- en informatiesystemen.

NFS-server

Sinds we hebben NFS- dit is netwerk bestandssysteem nodig. (Je kunt het artikel ook lezen). Verder is het nodig. Op Debian is dit het pakket nfs-kernel-server en nfs-common, in RedHat is dit het pakket nfs-utils... En het is ook noodzakelijk om de lancering van de daemon op de vereiste runlevels van het besturingssysteem mogelijk te maken (de opdracht in RedHat is / sbin / chkconfig nfs aan, in Debian - /usr/sbin/update-rc.d nfs-kernel-server standaardwaarden).

Geïnstalleerde pakketten in Debian worden in de volgende volgorde uitgevoerd:

ARCHIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx 1 root root 20 okt 18 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx 1 root root 27 okt 22 01:23 S16nfs-kernel-server -> ../init.d / nfs-kernel-server

Dat wil zeggen, het begint eerst nfs-common dan de server zelf nfs-kernel-server... In RedHat is de situatie vergelijkbaar, met als enige uitzondering dat het eerste script wordt genoemd nfslock en de server heet gewoon nfs... Wat betreft nfs-common de debian-site vertelt ons letterlijk het volgende: gemeenschappelijke bestanden voor een NFS-client en -server moet dit pakket worden geïnstalleerd op een machine die zal fungeren als een NFS-client of -server. Het pakket bevat programma's: lockd, statd, showmount, nfsstat, gssd en idmapd... Door de inhoud van het opstartscript te bekijken /etc/init.d/nfs-common u kunt de volgende werkvolgorde traceren: het script controleert op de aanwezigheid van een uitvoerbaar binair bestand /sbin/rpc.statd, controleert op aanwezigheid in bestanden / etc / standaard / nfs-common, / etc / fstab en / etc / export parameters die het starten van daemons vereisen idmapd en gssd , start de daemon /sbin/rpc.statd , dan voordat u begint /usr/sbin/rpc.idmapd en /usr/sbin/rpc.gssd controleert op de aanwezigheid van deze uitvoerbare bestanden binaire bestanden, dan voor daemon /usr/sbin/rpc.idmapd controleert op sunrpc, nfs en nfsd, evenals ondersteuning voor het bestandssysteem rpc_pipefs in de kernel (dat wil zeggen, zijn aanwezigheid in het bestand) / proc / bestandssystemen), als alles succesvol is, wordt het uitgevoerd /usr/sbin/rpc.idmapd ... Bovendien, voor de demon /usr/sbin/rpc.gssd cheques kernelmodule rpcsec_gss_krb5 en start de daemon.

Als je de inhoud bekijkt NFS-server opstartscript op Debian ( /etc/init.d/nfs-kernel-server), dan kunt u de volgende volgorde volgen: bij het opstarten controleert het script het bestaan ​​van het bestand / etc / export, Beschikbaarheid nfsd, beschikbaarheid van ondersteuning NFS-bestandssysteem in (dat wil zeggen, in het bestand) / proc / bestandssystemen), als alles op zijn plaats is, wordt de daemon gestart /usr/sbin/rpc.nfsd en controleert vervolgens of de parameter is ingesteld NEED_SVCGSSD(ingesteld in het bestand met serverinstellingen) / etc / standaard / nfs-kernel-server) en, indien gegeven, start de daemon /usr/sbin/rpc.svcgssd , de laatste die de daemon start /usr/sbin/rpc.mountd ... Aan dit script kun je zien dat De werking van de NFS-server bestaat uit: daemons rpc.nfsd, rpc.mountd en als Kerberos-verificatie wordt gebruikt, dan de daemon rcp.svcgssd. De daemon rpc.rquotad en nfslogd draaien nog steeds in de rode hoed (om de een of andere reden vond ik geen informatie over deze daemon in Debian en de redenen voor zijn afwezigheid, blijkbaar verwijderd ...).

Hieruit wordt duidelijk dat de Network File System-server bestaat uit de volgende processen (lezen - daemons) bevindt zich in de mappen / sbin en / usr / sbin:

In NFSv4 worden bij gebruik van Kerberos bovendien daemons gestart:

  • rpc.gssd- De NFSv4-daemon biedt authenticatiemethoden via de GSS-API (Kerberos-authenticatie). Werkt op client en server.
  • rpc.svcgssd- NFSv4-serverdaemon die clientverificatie aan de serverzijde biedt.

portmap en RPC-protocol (Sun RPC)

Naast de bovenstaande pakketten, vereisen NFSv2 en v3: extra pakket portmap(in nieuwere distributies, vervangen door hernoemd in rpcbind). Dit pakket wordt meestal automatisch geïnstalleerd met NFS als afhankelijke en implementeert de werking van de RPC-server, dat wil zeggen dat het verantwoordelijk is voor de dynamische toewijzing van poorten voor sommige services die zijn geregistreerd op de RPC-server. Letterlijk, volgens de documentatie, is dit een server die Remote Procedure Call (RPC) programmanummers converteert naar TCP/UDP-poortnummers. portmap werkt op verschillende entiteiten: RPC-oproepen of verzoeken, TCP / UDP-poorten,protocolversie(tcp of udp), programma nummers en softwareversies. De portmap-daemon wordt gestart door het /etc/init.d/portmap-script voordat de NFS-services worden gestart.

Kortom, de taak van een RPC-server (Remote Procedure Call) is het afhandelen van RPC-oproepen (ook wel RPC-procedures genoemd) van lokale en externe processen. Met behulp van RPC-aanroepen registreren of verwijderen services zichzelf van/naar de port mapper (ook bekend als port mapper, ook bekend als portmap, ook bekend als portmapper, ook bekend als rpcbind, in nieuwere versies), en klanten die RPC-aanroepen gebruiken die verzoeken naar de portmapper leiden, krijgen de informatie die ze nodig hebben. Gebruiksvriendelijke programmaservicenamen en de bijbehorende nummers zijn gedefinieerd in de / etc / rpc. Zodra een service een overeenkomstig verzoek heeft verzonden en zichzelf heeft geregistreerd bij de RPC-server in de port mapper, wijst de RPC-server de TCP- en UDP-poorten toe aan de service waarop de service is gestart en slaat in de kernel de bijbehorende informatie over de running service (naam), een uniek nummer service (conform / etc / rpc), over het protocol en de poort waarop de service draait en over de versie van de service, en verstrekt op verzoek de gespecificeerde informatie aan klanten. De poortconverter zelf heeft een programmanummer (100000), versienummer - 2, TCP-poort 111 en UDP-poort 111. Hierboven, bij het specificeren van de samenstelling van de NFS-serverdaemons, heb ik de belangrijkste RPC-programmanummers aangegeven. Ik heb je waarschijnlijk een beetje verward met deze paragraaf, dus ik zal de hoofdzin zeggen, die moet verduidelijken: de belangrijkste functie van de poortmapper is om hem (de klant) de poort terug te geven waarop het gevraagde programma draait. Dienovereenkomstig, als een client toegang moet krijgen tot RPC met een specifiek programmanummer, moet hij eerst contact opnemen met het portmap-proces op de servermachine en het poortnummer bepalen om te communiceren met de RPC-service die hij nodig heeft.

De werking van een RPC-server kan worden weergegeven door de volgende stappen:

  1. De poortconverter moet eerst worden gestart, meestal bij het opstarten van het systeem. Dit creëert een TCP-eindpunt en opent TCP-poort 111. Het creëert ook een UDP-eindpunt dat wacht tot een UDP-datagram arriveert op UDP-poort 111.
  2. Bij het opstarten maakt een programma dat via een RPC-server loopt, een TCP-eindpunt en een UDP-eindpunt voor elke ondersteunde versie van het programma. (Een RPC-server kan meerdere versies ondersteunen. De client specificeert de vereiste versie bij het maken van een RPC-oproep.) Een dynamisch toegewezen poortnummer wordt toegewezen aan elke versie van de service. De server registreert elk programma, versie, protocol en poortnummer door de juiste RPC-aanroep te doen.
  3. Wanneer het RPC-clientprogramma de informatie nodig heeft die het nodig heeft, roept het een poorttoewijzingsroutine aan om een ​​dynamisch toegewezen poortnummer voor een bepaald programma, versie en protocol te verkrijgen.
  4. In antwoord op dit verzoek geeft het noorden het poortnummer terug.
  5. De client stuurt een RPC-verzoekbericht naar het in stap 4 verkregen poortnummer. Als UDP wordt gebruikt, stuurt de client eenvoudig een UDP-datagram met het RPC-oproepbericht naar het UDP-poortnummer waarop de gevraagde service draait. Als reactie stuurt de service een UDP-datagram met een RPC-antwoordbericht. Als TCP in gebruik is, opent de client het TCP-poortnummer van de gevraagde service en verzendt vervolgens een RPC-oproepbericht op tot stand gebrachte verbinding... De server reageert met een RPC-antwoordbericht via de verbinding.

Om informatie van de RPC-server te verkrijgen, gebruikt u het hulpprogramma rpcinfo... Bij het specificeren van parameters -p host het programma vermeldt alle geregistreerde RPC-programma's op de host. Zonder de host op te geven, zal het programma services weergeven op localhost. Voorbeeld:

ARCHIV ~ # rpcinfo -p prog-ma versie proto-poort 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 59451 status 100024 1 tcp 60872 status 100021 1 udp 44310 nlockmgr 100021 3 udp 44310 nlockmgr 100021 4 udp 44310 nlock 44851 3 tcp 44851 nlockmgr 100021 4 tcp 44851 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 20 ud5 51306 gemonteerd 100005 2 tcp 41405 gemonteerd 100005 3 udp 51306 gemonteerd 100005 3 tcp 41405 gemonteerd

Zoals u kunt zien, geeft rpcinfo (in kolommen van links naar rechts) het geregistreerde programmanummer, de versie, het protocol, de poort en de naam weer. Met rpcinfo kunt u de registratie van een programma verwijderen of informatie krijgen over: een aparte dienst RPC (meer opties in man rpcinfo). Zoals u kunt zien, zijn portmapper versie 2 daemons geregistreerd op udp en tcp poorten, rpc.statd versie 1 op udp en tcp poorten, NFS lock manager versies 1,3,4, nfs server daemon 2,3,4, evenals mount daemon versies 1,2,3.

De NFS-server (meer precies, de rpc.nfsd-daemon) ontvangt verzoeken van de client in de vorm van UDP-datagrammen op poort 2049. Hoewel NFS werkt met een poorttoewijzing, waarmee de server dynamisch toegewezen poorten kan gebruiken, is UDP-poort 2049 dat wel. hardcoded naar NFS in de meeste implementaties ...

Bediening netwerkbestandssysteemprotocol

Externe NFS koppelen

Het proces van het mounten van een extern NFS-bestandssysteem kan worden weergegeven door het volgende diagram:

Beschrijving van het NFS-protocol bij het aankoppelen van een externe map:

  1. Een RPC-server wordt gestart op de server en client (meestal bij het opstarten), onderhouden door het portmapper-proces en geregistreerd op de tcp / 111- en udp / 111-poorten.
  2. Services worden gestart (rpc.nfsd, rpc.statd, enz.), die op de RPC-server worden geregistreerd en op willekeurige netwerkpoorten(als er geen statische poort is opgegeven in de service-instellingen).
  3. het mount-commando op de clientcomputer stuurt een verzoek naar de kernel om een ​​netwerkdirectory te mounten met een indicatie van het bestandssysteemtype, host en directory zelf, de kernel stuurt een RPC-verzoek naar het portmap-proces op de NFS-server op de udp / 111-poort (als de client niet de mogelijkheid heeft om via tcp te werken)
  4. De NFS-serverkernel ondervraagt ​​de RPC op de aanwezigheid van de rpc.mountd-daemon en stuurt deze terug naar de client-kernel netwerkpoort: waarop de daemon draait.
  5. mount stuurt een RPC-verzoek naar de poort waarop rpc.mountd draait. Nu kan de NFS-server de client valideren op basis van zijn IP-adres en poortnummer om te zien of de client het gespecificeerde bestandssysteem kan aankoppelen.
  6. De mount-daemon retourneert een beschrijving van het gevraagde bestandssysteem.
  7. De client mount-opdracht geeft de mount-systeemaanroep om de bestandsdescriptor die in stap 5 is verkregen, te binden aan het lokale koppelpunt op de clienthost. De bestandsdescriptor wordt opgeslagen in de NFS-clientcode en vanaf dit punt zal elke toegang door gebruikersprocessen tot bestanden op het bestandssysteem van de server de bestandsdescriptor als uitgangspunt gebruiken.

Communicatie tussen client en NFS-server

Typische toegang tot een extern bestandssysteem kan als volgt worden beschreven:

Beschrijving van het proces van toegang tot een bestand op de NFS-server:

  1. De client (gebruikersproces) maakt het niet uit of hij toegang krijgt tot een lokaal bestand of een NFS-bestand. De kernel handelt de interactie met de hardware af via kernelmodules of ingebouwde systeemaanroepen.
  2. Kernel-module kernel / fs / nfs / nfs.ko, die fungeert als een NFS-client en RPC-verzoeken naar de NFS-server stuurt via de TCP / IP-module. NFS gebruikt meestal UDP, maar nieuwere implementaties kunnen TCP gebruiken.
  3. De NFS-server ontvangt verzoeken van de client als UDP-datagrammen op poort 2049. Hoewel NFS kan werken met een poorttoewijzing, waardoor de server dynamisch toegewezen poorten kan gebruiken, is UDP-poort 2049 in de meeste implementaties hardgecodeerd naar NFS.
  4. Wanneer de NFS-server een verzoek van een client ontvangt, wordt dit doorgegeven aan de lokale bestandstoegangsroutine, die toegang geeft tot de lokale schijf op de server.
  5. Het resultaat van de schijftoegang wordt teruggestuurd naar de client.

Een NFS-server instellen

Server afstemmen bestaat over het algemeen uit het specificeren van de lokale mappen die door externe systemen in een bestand mogen worden gemount / etc / export... Deze actie heet directory-hiërarchie exporteren... De belangrijkste informatiebronnen over geëxporteerde mappen zijn de volgende bestanden:

  • / etc / export- het hoofdconfiguratiebestand dat de configuratie van de geëxporteerde mappen opslaat. Wordt gebruikt bij het starten van NFS en het hulpprogramma exportfs.
  • / var / lib / nfs / xtab- bevat een lijst met directory's die zijn aangekoppeld door externe clients. Gebruikt door de rpc.mountd-daemon wanneer een client een hiërarchie probeert aan te koppelen (er wordt een aankoppelrecord gemaakt).
  • / var / lib / nfs / etab- een lijst met directory's die kunnen worden aangekoppeld door systemen op afstand, met vermelding van alle parameters van de geëxporteerde directory's.
  • / var / lib / nfs / rmtab- een lijst met mappen die momenteel niet worden geëxporteerd.
  • / proc / fs / nfsd- een speciaal bestandssysteem (kernel 2.6) voor het beheer van de NFS-server.
    • exporteert- een lijst met actieve geëxporteerde hiërarchieën en clients waarnaar ze zijn geëxporteerd, evenals parameters. De kernel haalt deze informatie uit / var / lib / nfs / xtab.
    • draden- bevat het aantal threads (kan ook worden gewijzigd)
    • met behulp van filehandle kun je een bestandsaanwijzer krijgen
    • en etc...
  • / proc / netto / rpc- bevat onbewerkte statistieken die kunnen worden verkregen met nfsstat, evenals verschillende caches.
  • / var / run / portmap_mapping- informatie over geregistreerd in RPC-services

Opmerking: over het algemeen zijn er op internet veel interpretaties en formuleringen van het doel van de xtab-, etab-, rmtab-bestanden, ik weet niet wie ik moet geloven. is niet eenduidig.

Het / etc / exportbestand configureren

In het eenvoudigste geval is het bestand /etc / exports het enige bestand dat moet worden bewerkt om de NFS-server te configureren. Dit bestand beheert de volgende aspecten:

  • Welke klanten? heeft toegang tot bestanden op de server
  • Welke hiërarchieën mappen op de server zijn toegankelijk voor elke client
  • Hoe aangepaste klantnamen zullen zijn tentoongesteld zijn naar lokale gebruikersnamen

Elke regel in het exportbestand heeft het volgende formaat:

export_point client1 (opties) [client2 (opties) ...]

Waar export_point het absolute pad van de geëxporteerde directoryhiërarchie, klant1 - n de naam van een of meer clients of IP-adressen, gescheiden door spaties, die mogen worden geactiveerd export_point . Opties beschrijf de mount-regels voor: cliënt eerder gespecificeerd opties .

Hier is een typische voorbeeld exportbestand configuratie:

ARCHIV ~ # cat / etc / exports / archiver1 bestanden (rw, sync) 10.0.0.1 (ro, sync) 10.0.230.1/24(ro,sync)

V dit voorbeeld bestanden en 10.0.0.1-computers hebben toegang tot het exportpunt / archief1, terwijl de bestandshost lezen / schrijven is en de 10.0.0.1-host en 10.0.230.1/24-subnet alleen-lezen zijn.

Hostbeschrijvingen in / etc / exports zijn toegestaan ​​in het volgende formaat:

  • De namen van individuele knooppunten worden beschreven als bestanden of bestanden.DOMAIN.local.
  • Domeinmaskers worden beschreven in de volgende indeling: * DOMAIN.local omvat alle knooppunten in het domein DOMAIN.local.
  • Subnetten worden gespecificeerd als IP-adres/maskerparen. Bijvoorbeeld: 10.0.0.0/255.255.255.0 bevat alle knooppunten waarvan het adres begint met 10.0.0.
  • De naam instellen van de @myclients-netwerkgroep die toegang heeft tot de bron (bij gebruik van een NIS-server)

Algemene exportopties voor directoryhiërarchieën

Het exportbestand gebruikt de volgende algemene opties:(opties die standaard in de meeste systemen worden gebruikt, worden als eerste aangegeven, tussen haakjes - niet standaard):

  • auth_nlm (geen_auth_nlm) of secure_locks (insecure_locks)- specificeert dat de server authenticatie van vergrendelingsverzoeken moet vereisen (met behulp van het NFS Lock Manager-protocol).
  • niet verbergen (verbergen)- als de server twee directoryhiërarchieën exporteert, waarvan de ene genest (gemount) is in de andere. De client moet de tweede (kind) hiërarchie expliciet aankoppelen, anders wordt het aankoppelpunt van de onderliggende hiërarchie weergegeven als een lege map. De optie nohide resulteert in een tweede directoryhiërarchie zonder een expliciete koppeling. ( Opmerking: Ik kreeg deze optie niet werkend...)
  • ro (rw)- Staat alleen lees- (schrijf)verzoeken toe. (Uiteindelijk wordt bepaald of het mogelijk is om te lezen/schrijven of niet, op basis van de machtigingen van het bestandssysteem, terwijl de server een leesverzoek van een bestand niet kan onderscheiden van een uitvoeringsverzoek, dus het staat lezen toe als de gebruiker lees- of uitvoeringsmachtigingen heeft .)
  • veilig (onzeker)- vereist dat NFS-verzoeken afkomstig zijn van beveiligde poorten (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (geen_subtree_check)- Als een submap van het bestandssysteem wordt geëxporteerd, maar niet het hele bestandssysteem, controleert de server of het gevraagde bestand zich in de geëxporteerde submap bevindt. Als u verificatie uitschakelt, neemt de beveiliging af, maar neemt de snelheid van gegevensoverdracht toe.
  • synchroniseren (asynchroon)- geeft aan dat de server alleen op verzoeken moet reageren nadat de wijzigingen die door die verzoeken zijn aangebracht naar de schijf zijn geschreven. De async-optie vertelt de server niet te wachten tot informatie naar schijf wordt geschreven, wat de prestaties verbetert, maar de betrouwbaarheid vermindert, omdat verlies van informatie is mogelijk in het geval van een verbroken verbinding of apparatuurstoring.
  • wdelay (no_wdelay)- Vertelt de server de uitvoering van schrijfverzoeken uit te stellen als een volgend schrijfverzoek in behandeling is, waarbij gegevens in grotere blokken worden geschreven. Dit verbetert de prestaties bij het verzenden van grote schrijfwachtrijen. no_wdelay geeft aan de uitvoering van het commando voor schrijven niet uit te stellen, wat handig kan zijn als de server een groot aantal commando's ontvangt die niet aan elkaar gerelateerd zijn.

Export van symbolische koppelingen en apparaatbestanden. Bij het exporteren van een hiërarchie van mappen die symbolische koppelingen bevatten, moet het koppelingsobject toegankelijk zijn voor het clientsysteem (op afstand), dat wil zeggen dat aan een van de volgende regels moet worden voldaan:

Het apparaatbestand verwijst naar de interface. Wanneer u een apparaatbestand exporteert, wordt deze interface geëxporteerd. Als het clientsysteem geen apparaat van hetzelfde type heeft, werkt het geëxporteerde apparaat niet. Op het clientsysteem kunt u bij het aankoppelen van NFS-objecten de nodev-optie gebruiken, zodat apparaatbestanden in de aangekoppelde mappen niet worden gebruikt.

De standaardopties kunnen van systeem tot systeem verschillen, ze kunnen worden bekeken in het bestand / var / lib / nfs / etab. Na het beschrijven van de geëxporteerde map in / etc / exports en het herstarten van de NFS-server, zullen alle ontbrekende opties (lees: standaardopties) worden weergegeven in het bestand / var / lib / nfs / etab.

Gebruikers-ID weergave (overeenkomst) opties

Voor een beter begrip van het volgende raad ik je aan het artikel te lezen. Elke Linux-gebruiker heeft zijn eigen UID en hoofd-GID, die worden beschreven in de bestanden / etc / wachtwoord en / etc / groep... De NFS-server gaat ervan uit dat het besturingssysteem van de externe host de gebruikers heeft geverifieerd en hen de juiste UID's en GID's heeft toegewezen. Het exporteren van de bestanden geeft gebruikers op het clientsysteem dezelfde toegang tot deze bestanden alsof ze rechtstreeks op de server inloggen. Dienovereenkomstig, wanneer een NFS-client een verzoek naar een server stuurt, gebruikt de server de UID en GID om de gebruiker op het lokale systeem te identificeren, wat tot problemen kan leiden:

  • de gebruiker heeft mogelijk niet dezelfde identificatiegegevens in beide systemen en heeft bijgevolg toegang tot de bestanden van een andere gebruiker.
  • sinds de rootgebruiker heeft een identifier van altijd 0, dan wordt deze gebruiker toegewezen aan lokale gebruiker afhankelijk van de opgegeven opties.

De volgende opties definiëren de regels voor het toewijzen van externe gebruikers aan lokale gebruikers:

  • root_squash (geen_root_squash)- Met de gegeven optie root_squash, worden verzoeken van de rootgebruiker toegewezen aan de anonieme uid / gid, of aan de gebruiker die is opgegeven in de anonuid / anongid-parameter.
  • geen_alle_squash (alle_squash)- Verandert de UID / GID van de verbindende gebruiker niet. Optie all_squash stelt ALLE gebruikers in (niet alleen root) om te worden weergegeven als anoniem of gespecificeerd in de anonuid / anongid parameter.
  • anonuid = UID en anongid = GID - Stelt expliciet de UID / GID in voor de anonieme gebruiker.
  • map_static = / etc / file_maps_users - Specificeert een bestand waarin u de toewijzing van externe UID / GID - lokale UID / GID kunt instellen.

Een voorbeeld van het gebruik van een gebruikerstoewijzingsbestand:

ARCHIV ~ # cat / etc / file_maps_users # User mapping # remote local comment uid 0-50 1002 # mapping gebruikers naar remote UID 0-50 naar local UID 1002 gid 0-50 1002 # mapping gebruikers naar / span remote GID 0-50 naar lokale GID 1002

NFS-serverbeheer

De NFS-server wordt beheerd met behulp van de volgende hulpprogramma's:

  • nfsstat
  • showmsecure (onveilige) unt

nfsstat: NFS- en RPC-statistieken

Met het hulpprogramma nfsstat kunt u de statistieken van RPC- en NFS-servers bekijken. Opdrachtopties kunnen worden bekeken in man nfsstat.

showmount: NFS-statusinformatie weergeven

Showmount-hulpprogramma vraagt ​​de rpc.mountd daemon om: externe host over gemounte bestandssystemen. Standaard wordt een gesorteerde lijst met klanten geretourneerd. Sleutels:

  • --alle- er wordt een lijst met clients en koppelpunten weergegeven, die aangeeft waar de client de directory heeft aangekoppeld. Deze informatie is mogelijk niet betrouwbaar.
  • --mappen- er wordt een lijst met aankoppelpunten gegeven
  • --export- geeft een lijst van geëxporteerde bestandssystemen vanuit het oogpunt van nfsd

Als je showmount uitvoert zonder argumenten, zal de console informatie weergeven over de systemen die mogen mounten lokaal mappen. De ARCHIV-host geeft ons bijvoorbeeld een lijst met geëxporteerde mappen met de IP-adressen van de hosts die de opgegeven mappen mogen aankoppelen:

BESTANDEN ~ # showmount --exports archief Exportlijst voor archief: / archive-big 10.0.0.2 / archive-small 10.0.0.2

Als u de hostnaam / IP opgeeft in het argument, wordt informatie over deze host weergegeven:

ARCHIV ~ # showmount-bestanden clnt_create: RPC: Programma niet geregistreerd # dit bericht vertelt ons dat de NFSd-daemon niet draait op de FILES-host

exportfs: geëxporteerde mappen beheren

Deze opdracht bedient de geëxporteerde mappen die in het bestand zijn gespecificeerd / etc / export, het zal nauwkeuriger zijn om te schrijven dient niet, maar synchroniseert met het bestand / var / lib / nfs / xtab en verwijdert niet-bestaande uit xtab. exportfs wordt uitgevoerd wanneer de nfsd-daemon wordt gestart met het argument -r. Het hulpprogramma exportfs in kernelmodus 2.6 communiceert met de rpc.mountd-daemon via de bestanden in de directory / var / lib / nfs / en communiceert niet rechtstreeks met de kernel. Geeft zonder parameters de momenteel geëxporteerde bestandssystemen weer.

Exportfs-opties:

  • [client: directorynaam] - voeg het opgegeven bestandssysteem toe of verwijder het voor de opgegeven client)
  • -v - meer informatie weergeven
  • -r - exporteer alle mappen opnieuw (sync / etc / exports en / var / lib / nfs / xtab)
  • -u - verwijderen uit de lijst met geëxporteerde
  • -a - alle bestandssystemen toevoegen of verwijderen
  • -o - opties gescheiden door komma's (vergelijkbaar met de opties die worden gebruikt in / etc / exports; dus je kunt opties wijzigen voor reeds aangekoppelde bestandssystemen)
  • -i - gebruik / etc / exports niet bij het toevoegen, alleen parameters van de huidige opdrachtregel
  • -f - reset de lijst met geëxporteerde systemen in de 2.6-kernel;

NFS-client

Alvorens toegang te krijgen tot een bestand op het externe bestandssysteem, moet de client (client-besturingssysteem) monteer het en ga van de server verwijzing ernaar. NFS . monteren kan worden gedaan met of met de hulp van een van de productieve automatische assemblers (amd, autofs, automount, supermount, superpupermount). Het montageproces wordt goed gedemonstreerd in de bovenstaande afbeelding.

Op NFS-clients er hoeven geen daemons te worden gestart, client functies voert kernelmodule uit kernel / fs / nfs / nfs.ko die wordt gebruikt bij het aankoppelen van een extern bestandssysteem. Geëxporteerde mappen van de server kunnen op de volgende manieren op de client worden aangekoppeld:

  • handmatig met behulp van de opdracht mount
  • automatisch bij het opstarten, bij het aankoppelen van bestandssystemen beschreven in / etc / fstab
  • automatisch met behulp van de autofs-daemon

Ik zal de derde methode met autofs in dit artikel niet beschouwen, vanwege de omvangrijke informatie. Misschien komt er in de volgende artikelen een aparte beschrijving.

Koppel het netwerkbestandssysteem met de opdracht mount

Een voorbeeld van het gebruik van de opdracht mount wordt gepresenteerd in de post. Hier is een voorbeeld van een mount-opdracht om een ​​NFS-bestandssysteem te mounten:

BESTANDEN ~ # mount -t nfs archief: / archief-klein / archief / archief-klein BESTANDEN ~ # mount -t nfs -o ro archief: / archief-groot / archief / archief-groot BESTANDEN ~ # mount ..... .. archief: / archief-klein op / archief / archief-klein type nfs (rw, addr = 10.0.0.6) archief: / archief-groot op / archief / archief-groot type nfs (ro, addr = 10.0.0.6)

De eerste opdracht koppelt de geëxporteerde map / archief-klein op server archief naar lokaal koppelpunt / archieven / archief-klein met standaardopties (d.w.z. lezen en schrijven). Hoewel mount commando in de nieuwste distributies weet het te begrijpen welk type bestandssysteem wordt gebruikt zonder het type te specificeren, specificeer nog steeds de parameter -t nfs wenselijk. De tweede opdracht koppelt de geëxporteerde map / archief-groot op server archief naar lokale map / archief / archief-groot met alleen-lezen optie ( ro). Mount commando zonder parameters geeft het ons duidelijk het mount-resultaat weer. Naast de alleen-lezen optie (ro), is het mogelijk om andere basisopties bij het monteren van NFS:

  • nosuid- Deze optie verbiedt het uitvoeren van programma's vanuit de aangekoppelde map.
  • nodev(geen apparaat - geen apparaat) - Deze optie verbiedt het gebruik van tekens en blokkeert speciale bestanden als apparaten.
  • slot (nolock)- Staat NFS-vergrendeling toe (standaard). nolock schakelt NFS-vergrendeling uit (start de vergrendelde daemon niet) en is handig voor oudere servers die NFS-vergrendeling niet ondersteunen.
  • mounthost = naam- De hostnaam waarop de NFS-mount-daemon draait - mountd.
  • mountpoort = n - De poort die wordt gebruikt door de mountd-daemon.
  • poort = n- poort die wordt gebruikt om verbinding te maken met de NFS-server (standaard 2049 als de rpc.nfsd-daemon niet is geregistreerd op de RPC-server). Als n = 0 (de standaard), dan zal NFS de portmap op de server opvragen om de poort te bepalen.
  • grootte = n(leesblokgrootte) - Het aantal bytes dat in één keer van de NFS-server wordt gelezen. Standaard - 4096.
  • wgrootte = n(schrijfblokgrootte) - Het aantal bytes dat in één keer naar de NFS-server wordt geschreven. Standaard - 4096.
  • tcp of udp- Gebruik om NFS te mounten TCP-protocol of UDP, respectievelijk.
  • bg- Als u de toegang tot de server verliest, probeer het dan opnieuw op de achtergrond om het opstartproces van het systeem niet te blokkeren.
  • fg- Als u de toegang tot de server verliest, probeer het dan opnieuw in de prioriteitsmodus. Deze parameter kan het opstartproces blokkeren door aankoppelpogingen te herhalen. Om deze reden wordt de fg-parameter voornamelijk gebruikt voor foutopsporingsdoeleinden.

Opties die van invloed zijn op attribuutcaching wanneer NFS wordt gemount

Bestandskenmerken opgeslagen in (inodes), zoals wijzigingstijd, grootte, harde links, eigenaar, veranderen meestal niet vaak voor gewone bestanden en zelfs minder vaak voor mappen. Veel programma's, zoals ls, openen bestanden alleen-lezen en veranderen de bestandskenmerken of inhoud niet, maar verspillen systeembronnen aan dure netwerkoperaties. Om onnodige verspilling van middelen te voorkomen, kunt u: cache gegeven attributen... De kernel gebruikt de wijzigingstijd van een bestand om te bepalen of de cache verouderd is door de wijzigingstijd in de cache te vergelijken met de wijzigingstijd van het bestand zelf. De attributencache wordt periodiek bijgewerkt volgens de opgegeven parameters:

  • ac (noac) (kenmerk cache- attribuutcaching) - Schakelt attribuutcaching in (standaard). Hoewel de noac-optie de server vertraagt, wordt het verlopen van attributen vermeden wanneer meerdere clients actief informatie naar de gedeelde hiërarchie schrijven.
  • acdirmax = n (attribute cache directory bestand maximum- maximum attribuutcaching voor een directorybestand) - Het maximum aantal seconden dat NFS wacht voordat de directorykenmerken worden bijgewerkt (standaard 60 seconden)
  • acdirmin = n (attribuut cache directory bestand minimum- attribuutcaching ten minste voor een directorybestand) - Het minimum aantal seconden dat NFS wacht voordat de directorykenmerken worden bijgewerkt (standaard 30 seconden)
  • agregmax = n (attributencache normaal bestand maximum- attribuut caching hoogstens voor normaal bestand) - Het maximum aantal seconden dat NFS zal wachten voordat de attributen van een normaal bestand worden bijgewerkt (standaard 60 seconden)
  • acregmin = n (attributencache regulier bestand minimum- attribuut caching ten minste voor een normaal bestand) - Het minimum aantal seconden dat NFS wacht voordat de attributen van een normaal bestand worden bijgewerkt (standaard 3 seconden)
  • actimeo = geen (time-out van attribuutcache- time-out voor attribuutcaching) - Overschrijft de waarden voor alle bovenstaande opties. Als actimeo niet is opgegeven, worden de bovenstaande waarden ingesteld op hun standaardwaarden.

Opties voor NFS-foutafhandeling

De volgende opties bepalen hoe NFS zich gedraagt ​​wanneer er geen reactie is van de server of wanneer I/O-fouten optreden:

  • fg (bg) (voorgrond - voorgrond, achtergrond- achtergrond) - Probeer een mislukte NFS op de voorgrond / achtergrond te mounten.
  • hard zacht)- geeft het bericht "server reageert niet" weer op de console wanneer de time-out is bereikt en zet de montagepogingen voort. Met de gegeven optie zacht- als er een time-out optreedt, informeert het programma dat de bewerking heeft aangeroepen over een I/O-fout. (de zachte optie wordt geadviseerd niet te gebruiken)
  • nointr (intern) (geen onderbreking- niet onderbreken) - Voorkomt dat signalen bestandsbewerkingen in de hard-mounted directory-hiërarchie onderbreken wanneer een lange time-out is bereikt. intro- maakt onderbreking mogelijk.
  • retrans = n (hertransmissiewaarde:- hertransmissiewaarde) - Na n kleine time-outs genereert NFS een grote time-out (3 standaard). Een lange time-out stopt de bewerkingen of geeft het bericht "server reageert niet" weer op de console, afhankelijk van de gespecificeerde harde/zachte optie.
  • opnieuw proberen = n (waarde opnieuw proberen- waarde voor opnieuw proberen) - Het aantal minuten dat de NFS-service opnieuw probeert om bewerkingen op te geven voordat het wordt opgegeven (standaard 10.000).
  • timeo = n (time-outwaarde- time-outwaarde) - Het aantal tienden van een seconde dat de NFS-service wacht voordat deze opnieuw wordt verzonden in het geval van RPC of een lage time-out (standaard 7). Deze waarde neemt toe met elke time-out, tot een maximum van 60 seconden, of totdat een lange time-out optreedt. Op een druk netwerk, een trage server of wanneer een verzoek via meerdere routers of gateways gaat, kan het verhogen van deze waarde de prestaties verbeteren.

Automatische NFS-mount bij opstarten (beschrijving van bestandssystemen in / etc / fstab)

Vind de optimale tijd voor een bepaalde waarde het verzonden pakket (rsize / wsize-waarden), met behulp van het ping-commando:

BESTANDEN ~ # ping -s 32768 archief PING archief.DOMAIN.local (10.0.0.6) 32768 (32796) bytes aan gegevens. 32776 bytes van archive.domain.local (10.0.0.6): icmp_req = 1 ttl = 64 tijd = 0,931 ms 32776 bytes van archive.domain.local (10.0.0.6): icmp_req = 2 ttl = 64 tijd = 0,958 ms 32776 bytes van archive.domain.local (10.0.0.6): icmp_req = 3 ttl = 64 tijd = 1,03 ms 32776 bytes van archiv.domain.local (10.0.0.6): icmp_req = 4 ttl = 64 tijd = 1,00 ms 32776 bytes uit archief .domain.local (10.0.0.6): icmp_req = 5 ttl = 64 tijd = 1,08 ms ^ C --- archive.DOMAIN.local ping-statistieken --- 5 pakketten verzonden, 5 ontvangen, 0% pakketverlies, tijd 4006ms rtt min / gemiddeld / max / mdev = 0,931 / 1,002 / 1,083 / 0,061 ms

Zoals je kunt zien, schommelt de reistijd van de client naar de server en terug bij het verzenden van een pakket van 32768 (32Kb) in de regio van 1 milliseconde. Indien de gegeven tijd binnen 200 ms van de schaal gaat, moet u overwegen de timeo-waarde te verhogen, zodat deze drie tot vier keer hoger is dan de ruilwaarde. Daarom is het raadzaam om deze test uit te voeren tijdens een sterke netwerkbelasting.

NFS starten en Firewall configureren

De notitie is gekopieerd van de blog http://bog.pp.ru/work/NFS.html, waarvoor veel dank aan hem !!!

Start NFS-server, mount, lock, quota en status met "juiste" poorten (voor firewall)

  • het is raadzaam om eerst alle bronnen op clients te ontkoppelen
  • stop en laat rpcidmapd niet starten als u niet van plan bent NFSv4 te gebruiken: chkconfig --level 345 rpcidmapd off service rpcidmapd stop
  • schakel indien nodig de start van de portmap-, nfs- en nfslock-services in: chkconfig --levels 345 portmap / rpcbind op chkconfig --levels 345 nfs op chkconfig --levels 345 nfslock op
  • indien nodig, stop nfslock en nfs services, start portmap / rpcbind, verwijder modules service nfslock stop service nfs stop service portmap start # service rpcbind start umount / proc / fs / nfsd service rpcidmapd stop rmmod nfsd service autofs stop # ergens later moet het zijn voer rmmod nfs rmmod nfs_acl rmmod lockd uit
  • open poorten in
    • voor RPC: UDP / 111, TCP / 111
    • voor NFS: UDP / 2049, TCP / 2049
    • voor rpc.statd: UDP/4000, TCP/4000
    • voor vergrendeld: UDP / 4001, TCP / 4001
    • voor mountd: UDP / 4002, TCP / 4002
    • voor rpc.rquota: UDP / 4003, TCP / 4003
  • voeg voor de rpc.nfsd-server de regel RPCNFSDARGS = "- port 2049" toe aan / etc / sysconfig / nfs
  • voeg voor de mount-server de regel MOUNTD_PORT = 4002 toe aan / etc / sysconfig / nfs
  • om rpc.rquota te configureren voor nieuwe versies, voegt u de regel RQUOTAD_PORT = 4003 toe aan / etc / sysconfig / nfs
  • om rpc.rquota te configureren is het noodzakelijk voor oudere versies (desalniettemin moet u het quota 3.08 of nieuwere pakket hebben) voeg rquotad 4003 / tcp rquotad 4003 / udp toe aan / etc / services
  • zal de geschiktheid van / etc / exports controleren
  • start de services rpc.nfsd, mountd en rpc.rquota (tegelijkertijd worden rpcsvcgssd en rpc.idmapd gestart, als u niet bent vergeten ze te verwijderen) service nfsd start of in nieuwe versies service nfs start
  • voeg voor de lock-server voor nieuwe systemen de regels LOCKD_TCPPORT = 4001 LOCKD_UDPPORT = 4001 toe aan / etc / sysconfig / nfs
  • voor een lock-server voor legacy-systemen direct toevoegen aan /etc/modprobe [.conf]: options lockd nlm_udpport = 4001 nlm_tcpport = 4001
  • bind de statusserver rpc.statd aan poort 4000 (voor oude systemen, voer rpc.statd uit met de -p 4000 switch in /etc/init.d/nfslock) STATD_PORT = 4000
  • start services vergrendeld en rpc.statd service nfslock start
  • zorg ervoor dat alle poorten correct zijn gebonden met "lsof -i -n -P" en "netstat -a -n" (sommige van de poorten worden gebruikt door kernelmodules die lsof niet ziet)
  • als de server vóór het "herbouwen" door clients werd gebruikt en ze niet konden worden ontkoppeld, moet u de automatische koppelingsservices op de clients opnieuw starten (am-utils, autofs)

Voorbeeld NFS-server- en clientconfiguratie

Serverconfiguratie

Als u uw NFS-gepartitioneerde map open en beschrijfbaar wilt maken, kunt u de optie gebruiken: all_squash in combinatie met opties anoniem en anongid... Als u bijvoorbeeld de rechten voor de gebruiker "niemand" in de groep "niemand" wilt instellen, kunt u het volgende doen:

ARCHIV ~ # cat / etc / exports # Lees-/schrijftoegang voor client op 192.168.0.100, met rw-toegang voor gebruiker 99 met gid 99 / bestanden 192.168.0.100 (rw, sync, all_squash, anonuid = 99, anongid = 99) ) # Lees-/schrijftoegang voor client op 192.168.0.100, met rw-toegang voor gebruiker 99 met gid 99 / bestanden 192.168.0.100 (rw, sync, all_squash, anonuid = 99, anongid = 99))

Dit betekent ook dat als u toegang tot de opgegeven map wilt toestaan, niemand de eigenaar van de gesplitste map moet zijn:

man mount
man export
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm - NFS-prestaties van IBM.

Met vriendelijke groet, Mc Sim!

Netwerkbestandssystemen

Een van de meest handige functies die met een netwerk kan worden geïmplementeerd, is het delen van bestanden via een netwerkbestandssysteem. Veelgebruikt is een systeem genaamd Network File System of NFS, dat is ontwikkeld door Sun Corporation.

Wanneer u met een netwerkbestandssysteem werkt, worden alle bewerkingen op bestanden die op de lokale computer worden uitgevoerd, via het netwerk verzonden naar: externe machine... Wanneer het netwerkbestandssysteem actief is, gaat het programma ervan uit dat alle bestanden op de externe computer zich op de computer bevinden waarop het wordt uitgevoerd. De scheiding van informatie via een dergelijk systeem vereist dus geen wijzigingen in het programma.

mail

E-mail is het belangrijkste communicatiemiddel tussen computers. E-mails worden opgeslagen in een enkel bestand in een speciaal formaat. Voor het lezen en verzenden van brieven worden speciale programma's gebruikt.

Elke gebruiker heeft een aparte mailbox, een bestand waarin informatie wordt opgeslagen in een speciaal formaat waarin inkomende mail wordt opgeslagen. Als er een brief op de computer komt, zoekt het mailverwerkingsprogramma het mailboxbestand van de corresponderende gebruiker en voegt de ontvangen brief daar toe. Als de mailbox van de gebruiker zich op een andere computer bevindt, wordt de brief doorgestuurd naar deze computer, waar hij verder wordt verwerkt.

postsysteem bestaat uit velen verschillende programma's... Postbezorging naar lokale of externe mailboxen wordt gedaan door één programma (bijvoorbeeld sendmail of smail), terwijl een groot aantal verschillende programma's (bijvoorbeeld Pine of elm) worden gebruikt om brieven normaal te verzenden of te bekijken. in de / var / spool / mail.

Vragen

1. Wat is NOS en wat is het doel ervan?

2. Welke functies van het netwerk voert het netwerkbesturingssysteem uit?

3. Wat zijn de onderdelen van de NOS-structuur?

4. Wat is een redirector?

5. Hoe zijn netwerkbesturingssystemen onderverdeeld naar toegangsrechten tot resources?

6. Hoe worden netwerkbesturingssystemen onderverdeeld naar netwerkschaal?

7. Hoe hangen de eigenschappen van een netwerkbesturingssysteem af van de schaal van netwerken?

8. Beschrijf het netwerkbesturingssysteem NetWare van Novell.

9. Wat zijn de elementen van de structuur van het NetWare-netwerkbesturingssysteem?

10. Beschrijf het bestandssysteem van het NetWare-netwerkbesturingssysteem.

11. Welke protocolniveaus ondersteunt het NetWare-netwerkbesturingssysteem?

12. Maak een lijst van de functies van de IPX-, SPX-protocollen.

13. Beschrijf de netwerkoperatiekamer Windows-systemen NT.

14. Maak een lijst van de taken van het netwerkbesturingssysteem Windows NT.

15. Wat zijn de elementen van de structuur van het netwerkbesturingssysteem Windows NT?

16. Geef de kenmerken van het bestandssysteem van het netwerkbesturingssysteem Windows NT.

17. Welke beveiligingsprincipes worden gebruikt in het netwerkbesturingssysteem Windows NT?

18. Maak een lijst van de kenmerken van het netwerkbesturingssysteem Windows NT vanuit het oogpunt van de implementatie van netwerkfaciliteiten.

19. Geef de eigenschappen van het netwerkbesturingssysteem Windows NT een naam.

20. Wat zijn de gebieden? Windows gebruiken NT?

21. Geef de kenmerken van het netwerkbesturingssysteem UNIX.

22. Maak een lijst van de functies van het UNIX-netwerkbesturingssysteem.

23. Geef de kenmerken van het bestandssysteem van het netwerk OS UNIX.

24. Welke beveiligingsprincipes worden door UNIX gehanteerd?

25. Geef een overzicht van het Linux netwerkbesturingssysteem.

Netwerkdiensten

College 10

Een set server- en client-onderdelen van het besturingssysteem die toegang bieden tot: specifiek type een computerbron via een netwerk wordt genoemd netwerkdienst . Klantdeel behandelt netwerkverzoeken aan de serverzijde van een andere computer. Server onderdeel voldoet aan verzoeken aan lokale serverbronnen. De clientzijde is actief, de serverzijde is passief.

Tijdens netwerkinteractie wordt een belangrijke plaats ingenomen door toegang via het netwerk tot het bestandssysteem. In dit geval vormen de client- en serverdelen samen met het netwerkbestandssysteem bestandsservice

Een belangrijk onderdeel van een gedistribueerd besturingssysteem is het netwerkbestandssysteem. Netwerkbestandssysteem wordt ondersteund door een of meer computers die bestanden opslaan (bestandsservers)

Cliënt computers koppelen of koppelen deze bestandssystemen aan hun lokale bestandssystemen

Bestandsservice omvat serverprogramma's en clientprogramma's die via het netwerk communiceren met behulp van een protocol.

File Services omvat de eigenlijke bestandsservice (bestandsbewerkingen) en de directoryservice (directorybeheer)

Het netwerkbestandsservicemodel omvat de volgende elementen:

Lokaal bestandssysteem (FAT, NTFS)

Lokale bestandssysteeminterface (systeemaanroepen)

Netwerkbestandssysteemserver

Client voor netwerkbestandssysteem (Windows Verkenner, UNIX-shell, enz.)

Netwerkbestandssysteeminterface (herhaalt systeemaanroepen naar het lokale bestandssysteem)

Network File System Client-Server Protocol (SMB-Server Message Block voor Windows, NFS (Network File System) en FTP ( Bestandsoverdracht protocol) voor UNIX)

Interface netwerkbestandssysteem

Er zijn verschillende soorten interfaces, die worden gekenmerkt door:

Bestandsstructuur... De meeste netwerkbestandssystemen ondersteunen platte bestanden

Aanpasbaarheid van bestanden... De meeste netwerkbestandssystemen hebben de mogelijkheid om het bestand te wijzigen. Sommige gedistribueerde bestandssystemen verbieden wijzigingsbewerkingen. Alleen aanmaken en lezen is mogelijk. Voor dergelijke bestanden is het gemakkelijker om caching en replicatie te organiseren.

Semantiek voor het splitsen van bestanden:

Semantiek UNIX (gecentraliseerd). Als het lezen op meerdere schrijfbewerkingen volgt, wordt de laatste update gelezen. Dit principe is ook mogelijk in een gedistribueerd bestandssysteem, op voorwaarde dat bestanden server en het ontbreken van bestandscaching op de client.

Sessie semantiek. Wijzigingen beginnen wanneer het bestand wordt geopend en zijn voltooid wanneer het bestand wordt gesloten. Met andere woorden, voor andere processen zijn de wijzigingen pas zichtbaar nadat het bestand is gesloten. In dit geval is er een probleem met het delen van bestanden. Semantiek van onveranderlijke bestanden. Het bestand kan alleen worden gemaakt en gelezen. U kunt het bestand ook opnieuw maken met een andere naam. Daarom kan het bestand niet worden gewijzigd, maar kan het worden vervangen door een nieuw bestand. Er is geen probleem met delen.



Transactie mechanisme. Het is een manier van werken met gedeelde bestanden met behulp van het transactiemechanisme (ondeelbare bewerkingen)

Toegangscontrole... Voor Windows NT / 2000 zijn er bijvoorbeeld twee mechanismen: op directoryniveau (voor FAT) en op bestandsniveau (NTFS)

Toegangseenheid. Volledig bestandsupload / downloadmodel (FTP). Het tweede model is het gebruik van bestandsbewerkingen.