Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

NFS ( Nätverk Filsystem ) är främst designad för delningfiler Och mappar mellan / Unix system från Sun Microsystems V 1980. Det låter dig montera lokala filsystem över ett nätverk och fjärrvärdar för att interagera med dem som om de var monterade lokalt på samma system. Genom att använda NFS, kan vi ställa in fildelning mellan Unix V Linux system och Linux för systemet Unix.

Fördelar med NFS

  1. NFS skapar lokal tillgång till raderade filer.
  2. Den använder standardarkitektur klient/server att dela filer mellan alla * baserade maskiner NIX.
  3. Genom att använda NFS inget behov av att båda maskinerna körs på samma OS.
  4. Genom att använda NFS vi kan skräddarsy lösningen centraliserad lagring.
  5. Användare får sina data oavsett deras fysiska plats.
  6. Automatisk uppdatera för nya filer.
  7. Nyare version NFS stödjer montering acl, pseudo under roten.
  8. Kan skyddas brandväggar Och Kerberos.

NFS-tjänster

Service System V lanserat. Serverpaket NFS innehåller tre produkter som ingår i paketen portmap Och nfs-Utils.

  1. portmap: Visar samtal från andra maskiner till rätt tjänst RPC(krävs inte med NFSv4).
  2. nfs: konverterar fjärrförfrågningar allmänhetens tillgång till filer till förfrågningar på det lokala filsystemet.
  3. rpc.monterad: denna tjänst ansvarar för montering Och avmontering filsystem.

Viktiga konfigurationsfiler för NFS

  1. /etc/exports: dess huvudsakliga inställningsfil NFS, allt exporterat filer Och kataloger, som definieras i den här filen och på NFS-destinationsserver.
  2. /etc/fstab: Att montera NFS-katalog på ditt system utan startar om, vi måste spela in /etc/fstab.
  3. /etc/sysconfig/nfs: Konfigurationsfil NFS för kontroll på vilken port RPC och andra tjänster provspelningar.

Konfigurera och montera NFS på en Linux-server

För att konfigurera fästet NFS, vi kommer att behöva minst två bilar Linux/Unix. Här i den här handledningen kommer vi att använda två servrar.

  1. NFS-server: nfsserver.example.ru med IP – 192.168.0.55
  2. NFS-klient: nfsclient.example.ru med IP – 192.168.0.60

Installation av NFS-servern och NFS-klienten

Vi måste installera paket NFS på vår NFS-server och även med bil NFS-klient. Vi kan installera det med " " ( Red Hat Linux) och installationspaketet " apt-get” (Debian Och Ubuntu).

# yum installera nfs-utils nfs-utils-lib # yum install portmap (krävs inte med NFSv4) # apt-get install nfs-utils nfs-utils-lib

Kör nu tjänster på båda maskinerna.

# /etc/init.d/portmap start # /etc/init.d/nfs start # chkconfig --nivå 35 portmap på # chkconfig --nivå 35 nfs på

Efter att ha installerat paketen och kört tjänster på båda datorerna måste vi konfigurera båda datorerna för att dela filer.

Konfigurera en NFS-server

Låt oss först ställa in servern NFS.

Konfigurera exportkatalogen

#mkdir/nfsshare

Nu måste vi göra en post i " /etc/exports"Och starta om tjänster för att göra vår katalog delbar på webben.

# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)

I exemplet ovan finns en katalog under / kallas " nfsshare", för närvarande delad med IP-klienten" 192.168.0.60 ” med privilegier läsning Och uppgifter (RW), kan du också använda värdnamn klient istället IP i exemplet ovan.

NFS-inställningar

Några andra alternativ vi kan använda i filerna " /etc/exports” fildelning ser ut så här.

  1. ro: Med detta alternativ kan vi tillhandahålla skrivskyddad åtkomst till delade filer, det vill säga klient kommer bara att kunna läsa.
  2. rw: Detta alternativ tillåter klient till server tillgång för båda läsning Och uppgifter i den allmänna katalogen.
  3. synkronisera: Synkronisering bekräftar förfrågningar till den delade katalogen först efter förändringar var engagerade.
  4. no_subtree_check: Detta alternativ förhindrar kontroll underträd. När en delad katalog är en underkatalog till en större katalog filsystem, NFS skannar varje katalog ovanför den för att kontrollera dess behörigheter och detaljer. Inaktiverar verifiering underträd kan förbättra tillförlitligheten NFS, men minska säkerhet.
  5. no_root_squash: Denna fras tillåter rot, ansluta till en specifik mapp.

För fler alternativ med " /etc/exports"Rekommenderad läsning sidor manualer för exportera.

Konfigurera en NFS-klient

Efter installation NFS-server, vi behöver montera denna delade katalog eller partition på klient server.

Montera delade kataloger på en NFS-klient

Nu på NFS-klient, vi behöver montera denna katalog för att komma åt den lokalt. För att göra detta måste vi först ta reda på vilka resurser som finns tillgängliga på fjärrservern eller NFS-servern.

# showmount -e 192.168.0.55 Exportlista för 192.168.0.55: /nfsshare 192.168.0.60

Montera en tillgänglig katalog på NFS

För att montera allmän NFS katalog, kan vi använda följande mount-kommando.

# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

Kommandot ovan kommer att ställa in den delade katalogen till " /mnt/nfsshare” på klientservern. Du kan kontrollera det med följande kommando.

#mount | grep nfs sunrpc på /var/lib/nfs/rpc_pipefs typ rpc_pipefs (rw) nfsd på /proc/fs/nfsd typ nfsd (rw) 192.168.0.55:/nfsshare på /mnt typ nfs.51.9.9.9

Ovanmonteringskommandot monteras till NFS delad katalogNFS-klient tillfälligt för att montera en NFS-katalog ständigt på ditt system, oavsett omstarter, måste vi göra en post i " /etc/fstab“.

# vi /etc/fstab

Lägg till följande ny linje som visas nedan.

192.168.0.55:/nfsshare /mnt nfs standardvärden 0 0

Testar NFS-installationsläget

Vi kan testa vår NFS-serverinstallation genom att skapa testfil på serversidan och kontrollera att den är på NFS-klient sida eller vice versa.

På serversidan nfsserver

Vi har skapat en ny textfil som heter " nfstest.txt” i den här delade katalogen.

# cat > /nfsshare/nfstest.txt Detta är en testfil för att testa hur NFS-serverinstallationen fungerar.

På klientsidan nfsclient

Gå till den delade katalogen på klientserver och du kommer att hitta en delad fil utan någon manuell uppdatering eller starta om tjänster.

# ll /mnt/nfsshare totalt 4 -rw-r--r-- 1 rotrot 61 sep 21 21:44 nfstest.txt root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt Detta är en testfil för att testa hur NFS-serverinstallationen fungerar.

Ta bort ett NFS-fäste

Om du vill avmontera denna delade katalog från servern efter att du är klar med fildelning kan du enkelt avmontera den specifika katalogen med kommandot " umount". Se detta exempel nedan.

Root@nfsclient ~]# umount /mnt/nfsshare

Du kan se att fästet har tagits bort från filsystemet.

# df -h -F nfs

Du kommer att se att dessa delade kataloger inte längre är tillgängliga.

Viktiga kommandon för NFS

Några viktigare kommandon för NFS .

  1. showmount -e: Visar tillgängliga delade objekt på din lokala dator
  2. showmount -e : Lista över tillgängliga delade objektavlägsen server
  3. showmount -d: Lista över alla underkataloger
  4. exportfs -v: Visar en lista över delade filer Och alternativ på servern
  5. exportfs -a: Exporterar alla tillgängliga objekt listade i /etc/exports, eller namn
  6. exportfs -u: Återexportera alla tillgängliga objekt listade i /etc/exports, eller namn
  7. exportfs -r: Uppdatera serverlistan efter ändring /etc/exports

Allt handlar om NFS-fästejust nu, om du är intresserad kan du läsa guiden om det. Lämna din

Kärnan i problemet: vid ett tillfälle började Samsung producera tv-apparater som stödde DLNA-tekniken utvecklad av ledande tillverkare av hushållsapparater, baserad på principen om "digitalt hem". Denna teknik gjorde det möjligt att integrera tv-apparater i lokala hemnätverk, som gjorde det möjligt att utbyta medieinnehåll mellan en TV och en dator, och i synnerhet se filmer på TV lagrade på en dator via lokala nätverk eller via WiFi. Den multimedialösning som Samsung föreslagit för att implementera denna teknik, för att uttrycka det milt, lämnar dock mycket övrigt att önska. Filmer som ses online i den inbyggda mediaspelaren i TV:n spolas alltså i de flesta fall inte tillbaka. Dessutom, när du tittar på filmer online, till skillnad från att titta på filmer från en flash-enhet eller bärbar hårddisk ansluten till TV:n via USB-port, funktionen för kontinuerlig uppspelning stöds inte (blå knapp på fjärrkontrollen). Äntligen, själva behovet av att springa på Samsung dator PC Share Manager och att göra korrigeringar efter varje radering eller tillägg av videofiler till disken är lite irriterande.

Införandet av nätverksprotokollet NFS (Network File System) kommer att hjälpa oss att inte bara eliminera de befintliga problemen med att titta på filmer på TV över ett lokalt nätverk, utan också öka dataöverföringshastigheten (vilket kan vara en viktig faktor när vi tittar på stora filmer i HD-format). Efter att vi producerat nödvändig installation och ställer in en NFS-server kommer vår dator att uppfattas av TV:n som om vi hade anslutit en bärbar hårddisk till TV via USB-port (den enda skillnaden kommer att vara i datautbyteshastigheten, som bestäms av max genomströmning ditt lokala nätverk eller WiFi-anslutning).

NFS är ett nätverksprotokoll organiserat enligt server-klient-principen. Vi kommer att ha en dator som server och en TV som klient. Vi har redan diskuterat att aktivera NFS-stöd på TV:n i föregående avsnitt under installation och installation av SamyGO Auto-applikationen på TV:n. Om du kommer ihåg, i SamyGO Auto-konfiguratorinställningarna har vi markerat rutan mittemot NFS-sektionen och även angett IP-adressen för NFS-servern (192.168.xxx.xxx), det vill säga adressen till vår dator:
I det här avsnittet kommer vi att titta på hur vi installerar och konfigurerar en NFS-server på vår dator. Det finns många olika program på Internet för att installera och konfigurera en NFS-server. Vi kommer att använda applikationen haneWIN NFS-server(det är shareware, och efter en viss tid kräver det registrering av ett serienummer, men som du förstår finns det alltid hantverkare på Internet som kan lösa detta problem). Så låt oss börja:

Obs! Ibland kan Windows-brandväggen eller brandväggen som är inbyggd i antivirusprogrammet blockera NFS-servern. Vad som än händer, in Windows brandvägg(eller om du har en annan brandvägg, då i den) måste du tillåta två applikationer att komma åt nätverket: nfsd.exe och pmapd.exe (de finns i serverinstallationsmappen C:\Program Files\nfsd).


Slutligen, låt oss slå på TV:n och se till att vår NFS-server är igång. I föregående avsnitt, när vi installerade SamyGO Auto-programmet på TV:n, angav vi autorun-alternativet i det. När du slår på TV:n bör den därför automatiskt upptäcka vår NFS (detta händer inte omedelbart, utan ungefär 20 sekunder efter att TV:n slagits på). Så slå på TV:n, gå sedan till mediaspelaren och se en ny enhet där - NFS Server.

Om du är uppmärksam finns det en USB-anslutningsikon mittemot NFS. Detta är vad vi pratade om tidigare, nu kommer din TV att behandla din dator som en hårddisk eller flashenhet ansluten via USB. Du kan gå till avsnittet Film och njuta av att titta på filmer online. Du behöver inte längre köra Samsung PC Share Manager på din dator. Lägg bara till filmen i filmmappen på din dator så kommer den automatiskt att "laddas" till din TV:s mediaspelare.

I nästa avsnitt kommer vi att prata om hur man spelar in program från TV till en flash-enhet eller, eftersom vi nu har NFS, till filmmappen på datorn.


God eftermiddag, läsare och gäster. Det var ett väldigt långt uppehåll mellan inläggen, men jag är tillbaka i aktion). I dagens artikel ska jag titta på NFS-protokolldrift, liksom ställa in NFS-server och NFS-klient på Linux.

Introduktion till NFS

NFS (Nätverksfilsystem - nätverksfilsystem) enligt min åsikt - perfekt lösning på ett lokalt nätverk, där det krävs snabbt (snabbare jämfört med SAMBA och mindre resurskrävande jämfört med fjärrfilsystem med kryptering - sshfs, SFTP, etc...) datautbyte och säkerheten för den överförda informationen är inte i framkant . NFS-protokoll tillåter montera fjärrfilsystem över nätverket i ett lokalt katalogträd, som om det vore ett monterat diskfilsystem. Således lokala applikationer kan fungera med ett fjärrfilsystem som med ett lokalt. Men du måste vara försiktig (!) med ställa in NFS , eftersom det med en viss konfiguration är möjligt att frysa klientens operativsystem i väntan på oändliga I/O. NFS-protokoll arbetsbaserat RPC-protokoll, vilket fortfarande är bortom mitt förstånd)) så materialet i artikeln blir lite vagt... Innan du kan använda NFS, vare sig det är en server eller en klient, måste du se till att din kärna har stöd för NFS-filen system. Du kan kontrollera om kärnan stöder NFS-filsystemet genom att leta efter närvaron av motsvarande rader i filen /proc/filsystem:

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

Om de angivna raderna i filen /proc/filsystem inte visas, måste du installera paketen som beskrivs nedan. Detta kommer troligen att tillåta dig att installera beroende kärnmoduler för att stödja de nödvändiga filsystemen. Om efter installation av paketen, visas inte NFS-stöd i specificerad fil, då är det nödvändigt att aktivera den här funktionen.

Berättelse Nätverksfilsystem

NFS-protokoll utvecklad av Sun Microsystems och har 4 versioner i sin historia. NFSv1 utvecklades 1989 och var experimentell, arbetade på UDP-protokoll. Version 1 beskrivs i . NFSv2 släpptes samma 1989, beskriven av samma RFC1094 och också baserad på UDP-protokollet, samtidigt som det inte tillåts mer än 2 GB att läsas från en fil. NFSv3 slutfördes 1995 och beskrivs i . De viktigaste innovationerna i den tredje versionen var stöd för stora filer, tillagt stöd för TCP-protokollet och stora TCP-paket, vilket avsevärt accelererade teknikens prestanda. NFSv4 slutfördes 2000 och beskrivs i RFC 3010, reviderades 2003 och beskrivs i . Den fjärde versionen inkluderade prestandaförbättringar, stöd för olika autentiseringsmedel (i synnerhet Kerberos och LIPKEY som använder RPCSEC GSS-protokollet) och åtkomstkontrollistor (både POSIX- och Windows-typer). NFS version v4.1 godkändes av IESG 2010 och fick numret . En viktig innovation i version 4.1 är specifikationen av pNFS - Parallel NFS, en mekanism för parallell NFS-klientåtkomst till data från flera distribuerade NFS-servrar. Närvaron av en sådan mekanism i nätverkets filsystemstandard kommer att hjälpa till att bygga distribuerade "moln"-lagrings- och informationssystem.

NFS-server

Sedan vi har NFS- Det här nätverk filsystem, då nödvändigt. (Du kan också läsa artikeln). Nästa är nödvändigt. På Debian är detta ett paket nfs-kärnserver Och nfs-vanligt, i RedHat är detta ett paket nfs-utils. Och du måste också tillåta demonen att köra på de nödvändiga OS-exekveringsnivåerna (kommando i RedHat - /sbin/chkconfig nfs på, i Debian - /usr/sbin/update-rc.d nfs-kernel-server standardvärden).

Installerade paket i Debian lanseras i följande ordning:

ARKIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx 1 rotrot 20 okt 18 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx 1 rotrot 27 okt 22 01:23 S16nfs-server -.kerne./it-server -.kerne. /nfs-kärnserver

Det vill säga, det börjar först nfs-vanligt, sedan själva servern nfs-kärnserver. I RedHat är situationen liknande, med det enda undantaget att det första skriptet kallas nfslock, och servern kallas helt enkelt nfs. Om nfs-vanligt Debians webbplats berättar ordagrant: delade filer för NFS-klient och -server måste detta paket installeras på den maskin som kommer att fungera som en NFS-klient eller -server. Paketet innehåller program: lockd, statd, showmount, nfsstat, gssd och idmapd. Visa innehållet i startskriptet /etc/init.d/nfs-common du kan spåra följande arbetssekvens: skriptet kontrollerar om det finns en körbar binär fil /sbin/rpc.statd, kontrollerar närvaro i filer /etc/default/nfs-common, /etc/fstab Och /etc/exports parametrar som kräver att demoner körs idmapd Och gssd , startar demonen /sbin/rpc.statd , sedan innan lanseringen /usr/sbin/rpc.idmapd Och /usr/sbin/rpc.gssd kontrollerar närvaron av dessa körbara binära filer, sedan för daemon /usr/sbin/rpc.idmapd kontrollerar tillgänglighet sunrpc,nfs Och nfsd, samt filsystemstöd rpc_pipefs i kärnan (det vill säga att ha den i filen /proc/filsystem), om allt är framgångsrikt, startar det /usr/sbin/rpc.idmapd . Dessutom för demonen /usr/sbin/rpc.gssd kontroller kärnmodul rpcsec_gss_krb5 och startar demonen.

Om du tittar på innehållet NFS-serverns startskript på Debian ( /etc/init.d/nfs-kärnserver), så kan du följa följande sekvens: vid uppstart kontrollerar skriptet filens existens /etc/exports, tillgänglighet nfsd, tillgång till support NFS filsystem i (det vill säga i filen /proc/filsystem), om allt är på plats, startar demonen /usr/sbin/rpc.nfsd , kontrollerar sedan om parametern är specificerad NEED_SVCGSD(ställ in i serverinställningsfilen /etc/default/nfs-kärnserver) och, om det ges, startar demonen /usr/sbin/rpc.svcgssd , startar demonen senast /usr/sbin/rpc.mountd . Av detta manus är det tydligt att NFS-serverdrift består av daemoner rpc.nfsd, rpc.mountd och om Kerberos-autentisering används, då rcp.svcgssd-demonen. I den röda hatten körs fortfarande demonen rpc.rquotad och nfslogd (av någon anledning i Debian hittade jag inte information om denna demon och orsakerna till dess frånvaro, uppenbarligen har den tagits bort...).

Av detta framgår att Network File System-servern består av följande processer (läs: demoner), som finns i katalogerna /sbin och /usr/sbin:

I NFSv4, när du använder Kerberos, startas ytterligare demoner:

  • rpc.gssd- NFSv4-demonen tillhandahåller autentiseringsmetoder via GSS-API (Kerberos-autentisering). Fungerar på klient och server.
  • rpc.svcgssd- NFSv4-serverdemon som tillhandahåller klientautentisering på serversidan.

portmap och RPC-protokoll (Sun RPC)

Förutom ovanstående paket kräver NFSv2 och v3 ytterligare paket portmap(ersatt i nyare distributioner av bytt namn till rpcbind). Detta paket den installeras vanligtvis automatiskt med NFS som beroende och implementerar driften av RPC-servern, det vill säga den är ansvarig för den dynamiska tilldelningen av portar för vissa tjänster registrerade i RPC-servern. Bokstavligen, enligt dokumentationen, är detta en server som konverterar RPC (Remote Procedur Anrop) till TCP/UDP-portnummer. portmap fungerar på flera enheter: RPC-samtal eller förfrågningar, TCP/UDP-portar,protokollversion(tcp eller udp), programnummer Och mjukvaruversioner. Portmap-demonen startas av /etc/init.d/portmap-skriptet innan NFS-tjänsterna startar.

Kort sagt är jobbet för en RPC-server (Remote Procedure Call) att bearbeta RPC-anrop (så kallade RPC-procedurer) från lokala och avlägsna processer. Genom att använda RPC-anrop registrerar eller tar tjänsterna bort sig själva till/från en portmapper (alias portmapper, aka portmap, aka portmapper, aka, i nya versioner, rpcbind), och klienter använder RPC-anrop för att skicka förfrågningar till portmappern och får den nödvändiga informationen . Användarvänliga namn på programtjänster och deras motsvarande nummer definieras i filen /etc/rpc. Så snart någon tjänst har skickat motsvarande begäran och registrerat sig på RPC-servern i portmapparen, tilldelar, mappar RPC-servern till tjänsten de TCP- och UDP-portar som tjänsten startade på och lagrar i kärnan motsvarande information om den körande tjänsten (namn), en unik nummertjänst (i enlighet med /etc/rpc), om protokollet och porten som tjänsten körs på och om versionen av tjänsten och tillhandahåller den specificerade informationen till klienter på begäran. Själva portomvandlaren har ett programnummer (100000), versionsnummer - 2, TCP-port 111 och UDP-port 111. Ovan, när jag specificerade sammansättningen av NFS-serverdemonerna, angav jag de viktigaste RPC-programnumren. Jag har förmodligen förvirrat dig lite med det här stycket, så jag ska säga en grundläggande fras som borde klargöra saker och ting: huvudfunktionen för en portmappare är att återvända, på begäran av en klient som har tillhandahållit ett RPC-programnummer ( eller RPC-programnummer) och version till honom (klienten) porten på vilken det begärda programmet körs. Följaktligen, om en klient behöver åtkomst till RPC med ett specifikt programnummer, måste den först kontakta portmap-processen på servermaskinen och fastställa kommunikationsportnumret med den RPC-tjänst den behöver.

Driften av en RPC-server kan representeras av följande steg:

  1. Portomvandlaren bör starta först, vanligtvis när systemet startar. Detta skapar en TCP-ändpunkt och öppnar TCP-port 111. Det skapar också en UDP-slutpunkt som väntar på att ett UDP-datagram ska anlända till UDP-port 111.
  2. Vid start skapar ett program som körs genom en RPC-server en TCP-slutpunkt och en UDP-slutpunkt för varje version av programmet som stöds. (En RPC-server kan stödja flera versioner. Klienten anger vilken version som krävs när RPC-anropet görs.) Ett dynamiskt tilldelat portnummer tilldelas varje version av tjänsten. Servern loggar varje program, version, protokoll och portnummer genom att göra rätt RPC-anrop.
  3. När RPC-klientprogrammet behöver erhålla den nödvändiga informationen anropar det portupplösningsrutinen för att erhålla det dynamiskt tilldelade portnumret för givet program, version och protokoll.
  4. Som svar på denna begäran returnerar norr ett portnummer.
  5. Klienten skickar ett RPC-begäranmeddelande till portnumret som erhölls i steg 4. Om UDP används, skickar klienten helt enkelt ett UDP-datagram som innehåller RPC-utmaningsmeddelandet till UDP-portnumret på vilket den begärda tjänsten körs. Som svar skickar tjänsten ett UDP-datagram som innehåller ett RPC-svarsmeddelande. Om TCP används gör klienten en aktiv öppning till TCP-portnumret för den begärda tjänsten och skickar sedan meddelandet RPC-anrop Av upprättad anslutning. Servern svarar med ett RPC-svarsmeddelande på anslutningen.

För att få information från RPC-servern, använd verktyget rpcinfo. När du anger parametrar -p värd programmet visar en lista över alla registrerade RPC-program på värdvärden. Utan att ange värden kommer programmet att visa tjänster på localhost. Exempel:

ARCHIV ~ # rpcinfo -p prog-ma vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 59451 status 100024 1 tcp 108002 status 1 udp 10872 0n 0 21 3 udp 44310 nlockmgr 100021 4 udp 44310 nlockmgr 100021 1 tcp 44851 nlockmgr 100021 3 tcp 44851 nlockmgr 100021 4 tcp 44851 nlockmgr 100003 2 tcp 2049 nfs 100003 2 090p 3 tcp 0 49 nfs 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100005 1 udp 51306 monterad 100005 1 tcp 41405 monterad 100005 2 udp 51306 monterad 100005 2 tcp 41405 monterad 100005 3 udp 51306 monterad 100005 3 tcp 41405 monterad

Som du kan se visar rpcinfo (i kolumner från vänster till höger) det registrerade programnumret, versionen, protokollet, porten och namnet. Med hjälp av rpcinfo kan du ta bort ett programs registrering eller få information om en specifik RPC-tjänst (fler alternativ i man rpcinfo). Som du kan se, är portmapper version 2-demoner registrerade på udp och tcp-portar, rpc.statd version 1 på udp- och tcp-portar, NFS-låshanterare version 1,3,4, NFS-serverdemon version 2,3,4, samt mount-demonversioner 1,2,3.

NFS-servern (mer exakt, rpc.nfsd-demonen) tar emot förfrågningar från klienten i form av UDP-datagram på port 2049. Även om NFS arbetar med en portupplösare, som tillåter servern att använda dynamiskt tilldelade portar, är UDP-port 2049 hårdkodad till NFS i de flesta implementeringar.

Network File System Protocol Operation

Fjärrmontering av NFS

Processen att montera ett fjärranslutet NFS-filsystem kan representeras av följande diagram:

Beskrivning av NFS-protokollet vid montering av en fjärrkatalog:

  1. En RPC-server startas på servern och klienten (vanligtvis vid uppstart), som betjänas av portmapper-processen och registreras på tcp/111- och udp/111-portarna.
  2. Tjänster lanseras (rpc.nfsd, rpc.statd, etc.), som registreras på RPC-servern och registreras på godtycklig nätverksportar(om en statisk port inte anges i tjänstinställningarna).
  3. mount-kommandot på klientdatorn skickar en begäran till kärnan om att montera en nätverkskatalog, vilket indikerar typen av filsystem, värd och katalog själva kärnan skickar och bildar en RPC-begäran till portmap-processen på NFS-servern på port udp /111 (om alternativet att arbeta via tcp inte är inställt på klienten)
  4. NFS-serverkärnan frågar RPC:n efter närvaron av rpc.mountd-demonen och returnerar nätverksporten på vilken demonen körs till klientkärnan.
  5. mount skickar en RPC-begäran till porten som rpc.mountd körs på. NFS-servern kan nu validera en klient baserat på dess IP-adress och portnummer för att se om klienten kan montera det angivna filsystemet.
  6. Mount-demonen returnerar en beskrivning av det begärda filsystemet.
  7. Klientens monteringskommando utfärdar monteringssystemets anrop för att associera filhandtaget som erhölls i steg 5 med den lokala monteringspunkten på klientens värd. Filhandtaget lagras i klientens NFS-kod, och från och med nu kommer all åtkomst av användarprocesser till filer på serverns filsystem att använda filhandtaget som utgångspunkt.

Kommunikation mellan klient och NFS-server

En typisk åtkomst till ett fjärrfilsystem kan beskrivas på följande sätt:

Beskrivning av processen för att komma åt en fil som finns på en NFS-server:

  1. Klienten (användarprocessen) bryr sig inte om den kommer åt en lokal fil eller NFS-fil. Kärnan interagerar med hårdvara genom kärnmoduler eller inbyggda systemanrop.
  2. Kärnmodul kernel/fs/nfs/nfs.ko, som utför funktionerna hos en NFS-klient, skickar RPC-förfrågningar till NFS-servern via TCP/IP-modulen. NFS använder vanligtvis UDP, men nyare implementeringar kan använda TCP.
  3. NFS-servern tar emot förfrågningar från klienten som UDP-datagram på port 2049. Även om NFS kan arbeta med en portupplösare, som gör att servern kan använda dynamiskt tilldelade portar, är UDP-port 2049 hårdkodad till NFS i de flesta implementeringar.
  4. När NFS-servern tar emot en begäran från en klient skickas den till den lokala filåtkomstrutinen, som ger åtkomst till lokal disk på servern.
  5. Resultatet av diskåtkomsten returneras till klienten.

Konfigurera en NFS-server

Serverinställning består i allmänhet av att ange lokala kataloger som tillåts monteras av fjärrsystem i en fil /etc/exports. Denna åtgärd kallas exportkataloghierarki. De huvudsakliga informationskällorna om exporterade kataloger är följande filer:

  • /etc/exports- huvudkonfigurationsfilen som lagrar konfigurationen av de exporterade katalogerna. Används vid start av NFS och av exportfs-verktyget.
  • /var/lib/nfs/xtab- innehåller en lista över kataloger monterade av fjärrklienter. Används av rpc.mountd-demonen när en klient försöker montera en hierarki (en monteringspost skapas).
  • /var/lib/nfs/etab- en lista över kataloger som kan monteras av fjärrsystem, som anger alla parametrar för de exporterade katalogerna.
  • /var/lib/nfs/rmtab- en lista över kataloger som för närvarande inte är oexporterade.
  • /proc/fs/nfsd- ett speciellt filsystem (kärna 2.6) för att hantera NFS-servern.
    • export- en lista över aktiva exporterade hierarkier och klienter till vilka de exporterades, samt parametrar. Kärnan tar emot denna information från /var/lib/nfs/xtab.
    • trådar- innehåller antalet trådar (kan även ändras)
    • med filehandle kan du få en pekare till en fil
    • etc...
  • /proc/net/rpc- innehåller "rå" statistik, som kan erhållas med nfsstat, samt olika cacher.
  • /var/run/portmap_mapping- information om tjänster registrerade i RPC

Notera: I allmänhet finns det många tolkningar och formuleringar av syftet med xtab-, etab-, rmtab-filerna, jag vet inte vem jag ska tro Ens på http://nfs.sourceforge.net/ är tolkningen inte klart.

Konfigurera filen /etc/exports

I det enklaste fallet är filen /etc/exports den enda filen som kräver redigering för att konfigurera NFS-servern. Denna fil hanterar följande aspekter:

  • Vilken typ av kunder kan komma åt filer på servern
  • Vilka hierarkier? kataloger på servern kan nås av varje klient
  • Hur blir anpassade kundnamn visaslokala namn användare

Varje rad i exportfilen har följande format:

export_point klient1 (alternativ) [klient2(alternativ) ...]

Där export_point absolut sökväg till den exporterade kataloghierarkin, klient1 - n namn på en eller flera klienter eller IP-adresser, separerade med mellanslag, som får monteras export_point . Alternativ beskriv monteringsregler för klient, specificerat tidigare alternativ .

Här är en typisk exportfilkonfigurationsexempel:

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

I i detta exempel datorfiler och 10.0.0.1 tillåts åtkomst till exportpunkten /archiv1, medan filvärden har läs-/skrivbehörighet, och värden 10.0.0.1 och subnät 10.0.230.1/24 har skrivskyddad åtkomst.

Värdbeskrivningar i /etc/exports är tillåtna i följande format:

  • Namnen på enskilda noder beskrivs som filer eller files.DOMAIN.local.
  • Domänmasken beskrivs i följande format: *DOMAIN.local inkluderar alla noder i DOMAIN.local-domänen.
  • Subnät anges som IP-adress/mask-par. Till exempel: 10.0.0.0/255.255.255.0 inkluderar alla noder vars adresser börjar med 10.0.0.
  • Ange namnet på nätverksgruppen @myclients som har åtkomst till resursen (när en NIS-server används)

Allmänna alternativ för att exportera kataloghierarkier

Exportfilen använder följande allmänna alternativ(alternativ som används som standard i de flesta system listas först, de som inte är standard inom parentes):

  • auth_nlm (no_auth_nlm) eller säkra_lås (osäkert_lås)- anger att servern ska kräva autentisering av låsförfrågningar (med NFS Lock Manager-protokoll).
  • nohide (gömma)- om servern exporterar två kataloghierarkier, med en kapslad (monterad) i den andra. Klienten måste explicit montera den andra (underordna) hierarkin, annars kommer den underordnade hierarkins monteringspunkt att visas som en tom katalog. Alternativet nohide resulterar i en andra kataloghierarki utan en explicit montering. ( notera: Jag kunde inte få det här alternativet att fungera...)
  • ro(rw)- Tillåter endast läs (skriv) förfrågningar. (I slutändan, huruvida det är möjligt att läsa/skriva eller inte bestäms baserat på filsystemrättigheter, och servern kan inte skilja en begäran att läsa en fil från en begäran att exekvera, så den tillåter läsning om användaren har läst eller utöva rättigheter.)
  • säker (osäker)- kräver att NFS-förfrågningar kommer från säkra portar (< 1024), чтобы программа без roträttigheter kunde inte montera kataloghierarkin.
  • subtree_check (ingen_subtree_check)- Om en underkatalog till filsystemet exporteras, men inte hela filsystemet, kontrollerar servern om den begärda filen finns i den exporterade underkatalogen. Att inaktivera verifiering minskar säkerheten men ökar dataöverföringshastigheten.
  • synkronisera (asynkron)- anger att servern ska svara på förfrågningar först efter att ändringarna som gjorts av dessa förfrågningar har skrivits till disken. Asynkroniseringsalternativet säger åt servern att inte vänta på att information skrivs till disken, vilket förbättrar prestandan men minskar tillförlitligheten eftersom I händelse av ett anslutningsavbrott eller utrustningsfel kan information gå förlorad.
  • wdelay (ingen_wdelay)- instruerar servern att fördröja exekvering av skrivbegäranden om en efterföljande skrivbegäran väntar, skriv data i större block. Detta förbättrar prestandan när du skickar stora köer med skrivkommandon. no_wdelay anger att inte fördröja exekvering av skrivkommandot, vilket kan vara användbart om servern tar emot stort antal lag som inte är relaterade till varandra.

Exportera symboliska länkar och enhetsfiler. När du exporterar en kataloghierarki som innehåller symboliska länkar måste länkobjektet vara tillgängligt för klientsystemet (fjärrsystemet), det vill säga en av följande regler måste vara sann:

Enhetsfilen tillhör gränssnittet. När du exporterar en enhetsfil exporteras detta gränssnitt. Om klientsystemet inte har en enhet av samma typ kommer den exporterade enheten inte att fungera. På klientsystemet, när du monterar NFS-objekt, kan du använda nodev-alternativet så att enhetsfiler i de monterade katalogerna inte används.

Standardalternativ i olika system kan variera, de kan ses i filen /var/lib/nfs/etab. Efter att ha beskrivit den exporterade katalogen i /etc/exports och startat om NFS-servern, kommer alla saknade alternativ (läs: standardalternativ) att återspeglas i filen /var/lib/nfs/etab.

Alternativ för visning av användar-ID (matchning).

För en bättre förståelse av följande, skulle jag råda dig att läsa artikeln. Varje Linux-användare har sitt eget UID och huvud-GID, som beskrivs i filerna /etc/passwd Och /etc/group. NFS-servern antar att fjärrvärdens operativsystem har autentiserat användarna och tilldelat dem rätt UID och GID. Att exportera filer ger användare av klientsystemet samma tillgång till dessa filer som om de loggats direkt på servern. Följaktligen, när en NFS-klient skickar en begäran till servern, använder servern UID och GID för att identifiera användaren i lokalt system, vilket kan leda till några problem:

  • en användare kanske inte har samma identifierare på båda systemen och kan därför komma åt en annan användares filer.
  • därför att Rotanvändar-ID:t är då alltid 0 denna användare visas för den lokala användaren beroende på de angivna alternativen.

Följande alternativ anger reglerna för att visa fjärranvändare i lokala:

  • root_squash (ingen_root_squash)- Med det angivna alternativet root_squash, förfrågningar från rotanvändaren mappas till den anonyma uid/gid, eller till användaren som anges i parametern anonuid/anongid.
  • no_all_squash (alla_squash)- Ändrar inte UID/GID för den anslutande användaren. Alternativ all_squash ställer in visningen av ALLA användare (inte bara root), som anonym eller specificerad i parametern anonuid/anongid.
  • anonuid= UID Och anongid= GID - Anger uttryckligen UID/GID för den anonyma användaren.
  • map_static= /etc/file_maps_users - Anger en fil där du kan ställa in mappningen av fjärr-UID/GID till lokal UID/GID.

Exempel på användning av en användarmappningsfil:

ARCHIV ~ # cat /etc/file_maps_users # Användarmappning # fjärrlokal kommentar uid 0-50 1002 # mappa användare med fjärr-UID 0-50 till lokal UID 1002 gid 0-50 1002 # mappa användare med/spana fjärr-GID 0-50 till lokal GID 1002

NFS-serverhantering

NFS-servern hanteras med hjälp av följande verktyg:

  • nfsstat
  • visamsäkert (osäkert) fäste

nfsstat: NFS- och RPC-statistik

Verktyget nfsstat låter dig se statistik över RPC- och NFS-servrar. Kommandoalternativen finns i man nfsstat.

showmount: Visa NFS-statusinformation

showmount verktyg frågar rpc.mountd-demonen på fjärrvärden om monterade filsystem. Som standard returneras en sorterad lista med klienter. Nycklar:

  • --alla- en lista över klienter och monteringspunkter visas som anger var klienten monterade katalogen. Denna information kanske inte är tillförlitlig.
  • --kataloger- en lista över monteringspunkter visas
  • --export- en lista över exporterade filsystem visas från nfsds synvinkel

När du kör showmount utan argument kommer information om de system som får monteras att skrivas ut till konsolen lokal kataloger. Till exempel ger ARCHIV-värden oss en lista över exporterade kataloger med IP-adresserna för värdar som får montera de angivna katalogerna:

FILER ~ # showmount --exports archive Exportlista för arkiv: /archiv-big 10.0.0.2 /archiv-small 10.0.0.2

Om du anger värdnamn/IP i argumentet kommer information om denna värd att visas:

ARCHIV ~ # showmount-filer clnt_create: RPC: Program inte registrerat # detta meddelande talar om för oss att NFSd-demonen inte körs på FILES-värden

exportfs: hantera exporterade kataloger

Detta kommando tjänar de exporterade katalogerna som anges i filen /etc/exports, skulle det vara mer korrekt att skriva att den inte tjänar, utan synkroniserar med filen /var/lib/nfs/xtab och tar bort icke-existerande från xtab. exportfs exekveras när nfsd-demonen startas med argumentet -r. Verktyget exportfs i 2.6 kärnläge kommunicerar med rpc.mountd-demonen genom filer i katalogen /var/lib/nfs/ och kommunicerar inte direkt med kärnan. Utan parametrar, visar en lista över för närvarande exporterade filsystem.

exportfs parametrar:

  • [klient:katalognamn] - lägg till eller ta bort det angivna filsystemet för den angivna klienten)
  • -v - visa mer information
  • -r - återexportera alla kataloger (synkronisera /etc/exports och /var/lib/nfs/xtab)
  • -u - ta bort från listan över exporterade
  • -a - lägg till eller ta bort alla filsystem
  • -o - alternativ separerade med kommatecken (liknande alternativen som används i /etc/exports; d.v.s. du kan ändra alternativen för redan monterade filsystem)
  • -i - använd inte /etc/exports när du lägger till, bara nuvarande kommandoradsalternativ
  • -f - återställ listan över exporterade system i kärnan 2.6;

NFS-klient

Innan du får åtkomst till en fil på ett fjärrfilsystem måste klienten (klient-OS). montera den och ta emot från servern pekare till det. NFS-fäste kan göras med eller använda en av de växande automatiska monteringsanordningarna (amd, autofs, automount, supermount, superpupermount). Installationsprocessen är väl demonstrerad i illustrationen ovan.

NFS-klienter du behöver inte köra några demoner, klientfunktioner kör en kärnmodul kernel/fs/nfs/nfs.ko, som används vid montering av ett fjärrfilsystem. Exporterade kataloger från servern kan monteras på klienten på följande sätt:

  • manuellt med monteringskommandot
  • automatiskt vid uppstart, vid montering av filsystem som beskrivs i /etc/fstab
  • automatiskt med autofs-demonen

Jag kommer inte att överväga den tredje metoden med autofs i den här artikeln, på grund av dess omfattande information. Kanske kommer det att finnas en separat beskrivning i framtida artiklar.

Montera nätverksfilsystemet med kommandot mount

Ett exempel på hur man använder mount-kommandot presenteras i inlägget. Här kommer jag att titta på ett exempel på mount-kommandot för att montera ett NFS-filsystem:

FILER ~ # mount -t nfs archiv:/archiv-small /archivs/archiv-small FILES ~ # mount -t nfs -o ro archiv:/archiv-big /archivs/archiv-big FILES ~ # mount ..... .. archiv:/archiv-small på /archivs/archiv-small typ nfs (rw,addr=10.0.0.6) archiv:/archiv-big på /archivs/archiv-big type nfs (ro,addr=10.0.0.6)

Det första kommandot monterar den exporterade katalogen /arkiv-liten på servern arkiv till lokal monteringspunkt /archivs/archiv-small med standardalternativ (dvs läs och skriv). Även om mount kommando i de senaste distributionerna kan den förstå vilken typ av filsystem som används även utan att specificera typen, men ändå ange parametern -t nfsönskvärd. Det andra kommandot monterar den exporterade katalogen /arkiv-stor på servern arkiv till den lokala katalogen /archivs/archiv-big med skrivskyddat alternativ ( ro). mount kommando utan parametrar visar det oss tydligt monteringsresultatet. Förutom alternativet skrivskyddat (ro) är det möjligt att ange andra Grundläggande alternativ vid montering av NFS:

  • nosuid- Det här alternativet förbjuder exekvering av program från den monterade katalogen.
  • nodev(ingen enhet - inte en enhet) - Det här alternativet förbjuder användning av tecken och blockerar specialfiler som enheter.
  • lås (nolock)- Tillåter NFS-låsning (standard). nolock inaktiverar NFS-låsning (startar inte lockd-demonen) och är användbart när man arbetar med äldre servrar som inte stöder NFS-låsning.
  • mounthost=namn- Namnet på den värd som NFS-monteringsdemonen körs på - mountd.
  • mountport=n - Port som används av mountd-demonen.
  • port=n- port som används för att ansluta till NFS-servern (standard är 2049 om rpc.nfsd-demonen inte är registrerad på RPC-servern). Om n=0 (standard), frågar NFS portkartan på servern för att fastställa porten.
  • rsize=n(läs blockstorlek - läs blockstorlek) - Antalet byte som läses åt gången från NFS-servern. Standard - 4096.
  • wsize=n(skrivblockstorlek - skrivblockstorlek) - Antalet byte som skrivs åt gången till NFS-servern. Standard - 4096.
  • tcp eller utp- För att montera NFS, använd TCP- eller UDP-protokollet.
  • bg- Om du förlorar åtkomst till servern, försök igen i bakgrunden för att inte blockera systemstartprocessen.
  • fg- Om du förlorar åtkomst till servern, försök igen i prioritetsläge. Det här alternativet kan blockera systemstartprocessen genom att upprepa monteringsförsök. Av denna anledning används parametern fg främst för felsökning.

Alternativ som påverkar attributcachelagring på NFS-montering

Filattribut, lagras i (inoder), såsom ändringstid, storlek, hårda länkar, ägare, ändras vanligtvis sällan för vanliga filer och ännu mindre ofta för kataloger. Många program, som ls, får åtkomst till filer skrivskyddade och ändrar inte filattribut eller innehåll, utan slösar bort systemresurser på dyra nätverksoperationer. För att undvika slöseri med resurser kan du cachelagra dessa attribut. Kärnan använder ändringstiden för en fil för att avgöra om cachen är inaktuell genom att jämföra ändringstiden i cachen och ändringstiden för själva filen. Attributcachen uppdateras regelbundet i enlighet med de angivna parametrarna:

  • ac (noac) (attributcache- attributcaching) - Tillåter attributcaching (standard). Även om noac-alternativet gör servern långsammare, undviker det att attributen är inaktuella när flera klienter aktivt skriver information till en gemensam hierarki.
  • acdirmax=n (attribut cache katalogfil maximum- maximal attributcache för en katalogfil) - Det maximala antalet sekunder som NFS väntar innan katalogattribut uppdateras (standard 60 sek.)
  • acdirmin=n (attribut cache katalogfil minimum- minsta attributcachelagring för en katalogfil) - Minsta antal sekunder som NFS väntar innan katalogattribut uppdateras (standard 30 sek.)
  • acregmax=n (attribut cache normal fil maximum- maximal attributcaching för en vanlig fil) - Det maximala antalet sekunder som NFS väntar innan attributen för en vanlig fil uppdateras (standard 60 sek.)
  • acregmin=n (attribut cache normal fil minimum- minsta attributcache för en vanlig fil) - Minsta antal sekunder som NFS väntar innan attributen för en vanlig fil uppdateras (standard 3 sekunder)
  • actimeo=n (attribut cache timeout- attribut caching timeout) - Ersätter värdena för alla ovanstående alternativ. Om acttimeo inte är specificerat, tar ovanstående värden standardvärdena.

NFS-felhanteringsalternativ

Följande alternativ styr vad NFS gör när det inte finns något svar från servern eller när I/O-fel uppstår:

  • fg(bg) (förgrund- förgrund, bakgrund- bakgrund) - Försök att montera en misslyckad NFS i förgrunden/bakgrunden.
  • hård (mjuk)- visar meddelandet "servern svarar inte" för konsolen när timeout nås och fortsätter att försöka montera. Med alternativet givet mjuk- under en timeout, informerar programmet som anropade operationen om ett I/O-fel. (det rekommenderas att inte använda det mjuka alternativet)
  • nointr (intr) (inget avbrott- avbryt inte) - Tillåter inte att signaler avbryter filoperationer i en hårdmonterad kataloghierarki när en stor timeout nås. intr- möjliggör avbrott.
  • retrans=n (återsändningsvärde- återsändningsvärde) - Efter n små timeout genererar NFS en stor timeout (standard 3). En stor timeout stoppar driften eller skriver ut ett "server svarar inte"-meddelande till konsolen, beroende på om det hårda/mjuka alternativet är specificerat.
  • försök igen=n (försök igen värde- Försök igen värde) - Antalet minuter som NFS-tjänsten kommer att upprepa monteringsoperationer innan de ger upp (standard 10000).
  • timeo=n (timeoutvärde- timeout-värde) - Antalet tiondelar av en sekund som NFS-tjänsten väntar innan den återsänder i händelse av RPC eller en liten timeout (standard 7). Detta värde ökar med varje timeout upp till maximalt 60 sekunder eller tills en stor timeout inträffar. I fallet med ett upptaget nätverk, en långsam server, eller när begäran passerar genom flera routrar eller gateways, kan en ökning av detta värde förbättra prestandan.

Automatisk NFS-montering vid uppstart (beskrivning av filsystem i /etc/fstab)

Välj den optimala tiden för visst värdeöverfört paket (rsize/wsize-värden), kan du använda kommandot ping:

FILER ~ # ping -s 32768 archiv PING archiv.DOMAIN.local (10.0.0.6) 32768(32796) databyte. 32776 byte från archiv.domain.local (10.0.0.6): icmp_req=1 ttl=64 time=0,931 ms 32776 byte från archiv.domain.local (10.0.0.6): icmp_req=2 ttl=957 ms0.957 ms0. från archiv.domain.local (10.0.0.6): icmp_req=3 ttl=64 tid=1,03 ms 32776 byte från archiv.domain.local (10.0.0.6): icmp_req=4 ttl=64 tid=1,00 ms 32 från 1,00 ms 32 .domain.local (10.0.0.6): icmp_req=5 ttl=64 time=1,08 ms ^C --- archive.DOMAIN.local ping-statistik --- 5 paket överförda, 5 mottagna, 0 % paketförlust, tid 4006ms rtt min/avg/max/mdev = 0,931/1,002/1,083/0,061 ms

Som du kan se, när du skickar ett paket med storleken 32768 (32Kb), flyter dess restid från klienten till servern och tillbaka runt 1 millisekund. Om denna tid överstiger 200 ms, bör du tänka på att öka timeo-värdet så att det överstiger utbytesvärdet med tre till fyra gånger. Följaktligen är det tillrådligt att göra detta test under kraftig nätverksbelastning.

Startar NFS och konfigurerar brandväggen

Anteckningen kopierades från bloggen http://bog.pp.ru/work/NFS.html, vilket stort tack!!!

Kör NFS-server, montera, blockera, kvot och status med "rätt" portar (för brandvägg)

  • Det är tillrådligt att först avmontera alla resurser på klienter
  • stoppa och inaktivera rpcidmapd från att starta om du inte planerar att använda NFSv4: chkconfig --nivå 345 rpcidmapd av tjänsten rpcidmapd stop
  • om nödvändigt, låt tjänsterna portmap, nfs och nfslock starta: chkconfig --levels 345 portmap/rpcbind på chkconfig --levels 345 nfs på chkconfig --levels 345 nfslock på
  • vid behov, stoppa nfslock och nfs tjänster, starta portmap/rpcbind, ladda ur modulerna tjänsten nfslock stop service nfs stop service portmap start # service rpcbind start umount /proc/fs/nfsd service rpcidmapd stop rmmod nfsd service autofs stop # somewhere later it måste startas rmmod nfs rmmod nfs_acl rmmod lockd
  • öppna portar i
    • för RPC: UDP/111, TCP/111
    • för NFS: UDP/2049, TCP/2049
    • för rpc.statd: UDP/4000, TCP/4000
    • för låst: UDP/4001, TCP/4001
    • för monterad: UDP/4002, TCP/4002
    • för rpc.rquota: UDP/4003, TCP/4003
  • för rpc.nfsd-servern, lägg till raden RPCNFSDARGS="--port 2049" till /etc/sysconfig/nfs
  • för monteringsservern, lägg till raden MOUNTD_PORT=4002 till /etc/sysconfig/nfs
  • för att konfigurera rpc.rquota för nya versioner måste du lägga till raden RQUOTAD_PORT=4003 till /etc/sysconfig/nfs
  • för att konfigurera rpc.rquota är det nödvändigt för äldre versioner (du måste dock ha kvotpaketet 3.08 eller nyare) lägg till /etc/services rquotad 4003/tcp rquotad 4003/udp
  • kommer att kontrollera lämpligheten av /etc/exports
  • kör tjänsterna rpc.nfsd, mountd och rpc.rquota (rpcsvcgssd och rpc.idmapd lanseras samtidigt, om du kommer ihåg att ta bort dem) service nfsd start eller i nya versioner service nfs start
  • för blockeringsservern för nya system, lägg till raderna LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 till /etc/sysconfig/nfs
  • för låsservern för äldre system, lägg till direkt i /etc/modprobe[.conf]: options lockd nlm_udpport=4001 nlm_tcpport=4001
  • bind rpc.statd-statusservern till port 4000 (för äldre system, kör rpc.statd med -p 4000-växeln i /etc/init.d/nfslock) STATD_PORT=4000
  • starta lockd och rpc services.statd service nfslock start
  • se till att alla portar är bundna normalt med "lsof -i -n -P" och "netstat -a -n" (några av portarna används av kärnmoduler som lsof inte ser)
  • om servern innan "ombyggnaden" användes av klienter och de inte kunde avmonteras, måste du starta om de automatiska monteringstjänsterna på klienterna (am-utils, autofs)

Exempel på NFS-server- och klientkonfiguration

Serverkonfiguration

Om du vill göra din NFS delade katalog öppen och skrivbar kan du använda alternativet all_squash i kombination med tillval anonuid Och anongid. Till exempel, för att ställa in behörigheter för användaren "ingen" i gruppen "ingen", kan du göra följande:

ARCHIV ~ # cat /etc/exports # Läs- och skrivåtkomst för klient på 192.168.0.100, med rw-åtkomst för användare 99 med gid 99 /filer 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99) # Läs- och skrivåtkomst för klient på 192.168.0.100, med rw-åtkomst för användare 99 med gid 99 /filer 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

Detta betyder också att om du vill tillåta åtkomst till den angivna katalogen, måste nobody.nobody vara ägare till den delade katalogen:

man montera
man exporterar
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm - NFS-prestanda från IBM.

Med vänlig hälsning, McSim!

Kombinationen "NFC" (Near Field Communication) återfinns alltmer i specifikationerna för moderna smartphones och surfplattor. I den här artikeln kommer vi att försöka överväga detta gränssnitt utifrån praktisk användning, så att läsare självständigt kan dra sin egen slutsats om behovet av att ha det på sin telefon.

I testet använde vi två smartphonemodeller som redan har granskats i detalj på vår resurs: Acer CloudMobile S500 och Sony Xperia acro S. Vi vill också påpeka att det mesta av informationen, inklusive de beskrivna programmen och användningsscenarionerna, endast kommer att gälla för smartphones som körs Android baserad. Det är detta operativsystem som idag är det "vänligaste" när det kommer till att arbeta med NFC.

Introduktion

Vid första anblicken kan det verka som att många trådlösa gränssnitt idag redan täcker alla möjliga populära uppgifter och scenarier, så ett annat alternativ behövs helt enkelt inte. Däremot om man ser till utvecklingen modern teknik, kan du se att mer och mer uppmärksamhet ägnas åt energiförbrukningsfrågor, särskilt om vi pratar om O mobila enheter. Framför allt syftar version 4.0 av den välkända familjen av Bluetooth-protokoll till att minska batterikostnaderna. Den andra punkten som är värd att nämna är att inte varje uppgift kräver lång räckvidd. Det händer till och med tvärtom - du vill uttryckligen begränsa avståndet mellan interagerande enheter. Förutom den uppenbara minskningen av förbrukningen påverkar detta även säkerheten. Och en liknande anmärkning kan göras om volymen av överförda data. Så idén med ett långsamt trådlöst gränssnitt som körs på korta avstånd och kännetecknas av låg energiförbrukning har rätt att existera.

Utgångspunkten i historien om NFC-utveckling kan tas 2004, när Nokia, Philips och Sony tillkännagav skapandet av ett interaktionsgränssnitt för att utveckla och standardisera olika enheter, baserat på beröring. De första versionerna av specifikationerna skapades dock lite tidigare. Kanske, med moderna standarder, kan tekniken anses vara mycket ung (om du inte tar hänsyn till RFID-historien), men den finns redan ganska ofta i riktiga produkter och tjänster. I synnerhet vid Mobile World Congress 2013 som hölls i slutet av februari ägnades många montrar och demonstrationer åt detta ämne.

Denna skylt finns på enheter med NFC-teknik

Gränssnittets formella egenskaper är följande: drift på flera centimeters avstånd, maximal informationsutbyte på cirka 400 Kbps, full-duplex datautbyte stöds, driftfrekvens är 13,56 MHz, anslutnings etableringstid överstiger inte 0,1 s, driftläget är punkt-till-punkt. Det kan ses att dessa parametrar radikalt skiljer NFC från andra populära trådlösa gränssnitt.

Om vi ​​pratar om enheter så finns det förutom aktiva kontroller i NFC även passiva alternativ (de brukar kallas taggar), som får ström trådlöst från den aktiva kontrollern. Ett exempel är moderna kort för resor med kollektivtrafik. Taggar är helt enkelt datalagring, vanligtvis mindre än 4 KB i storlek. Oftast ger de bara läsläge, men det finns även alternativ med skrivstöd.

Ett av de enklaste alternativen för en passiv NFC-tagg

Styrenhetens kompakta storlek och dess låga förbrukning gör att NFC kan implementeras även i små konstruktioner som SIM-kort eller kort microSD-minne. Men för full drift är det nödvändigt att använda en speciell antenn. I telefoner är den vanligtvis placerad på baksidan av batteriluckan eller inbyggd i bakpanel, om enheten inte har ett löstagbart batteri.

NFC-antennen placeras ofta på bakre omslag smartphone

Den korta räckvidden kan ha en negativ inverkan när du använder surfplattor - att hitta rätt plats att "positionera" kanske inte är så lätt som vi skulle vilja. För att lösa detta problem markerar vissa tillverkare platsen för antennen med ett speciellt tecken. När det gäller räckvidden, i vårt fall fungerade anslutningen på ett avstånd av högst fyra centimeter - både mellan telefoner och med en passiv tagg.

Ur säkerhetssynpunkt implementerade utvecklarna inte delar av skydd mot avlyssning och reläattacker. Detta gör det naturligtvis svårt att implementera säkra lösningar, eftersom det kräver att själva applikationerna är säkrare. hög nivå. Observera att ett så välkänt protokoll som TCP/IP faktiskt beter sig på liknande sätt. Så ur praktisk synvinkel är det farligare att tappa sin telefon utan ytterligare skydd med skräddarsydda betalningssystemsprogram än avlyssning av kommunikation.

Det kanske viktigaste att veta om NFC idag är att själva gränssnittet inte ger några verkliga praktiska användningsfall eller lösningar. Till skillnad från till exempel Bluetooth, vars profiler tydligt beskriver hur man överför en fil, hur man ansluter ett headset eller ger nätverksåtkomst, är NFC bara en bas, och direkta driftscenarier tillhandahålls av ytterligare programvara som fungerar genom den. Å ena sidan öppnar detta stora möjligheter för utvecklare, men å andra sidan är det ett problem för dem när de ska säkerställa interaktion olika applikationer och enheter.

Intressant nog kan alla program som är installerade på en smartphone eller surfplatta registreras i operativsystemet som NFC-relaterade händelsehanterare, och när du anropar externt kommer du att se en standardmeny "Vad vill du göra med den här åtgärden?" Eftersom vissa NFC-användningsfall involverar bekväm automatisering av åtgärder, är det tillrådligt att inte överbelasta enheten med sådana verktyg.

NFC-forumet försöker hjälpa till med denna osäkerhet genom att föreslå standardisering av protokoll för vissa scenarier (särskilt NDEF för lagring av korta meddelanden på taggar och SNEP (Simple NDEF Exchange Protocol) för utbyte av information mellan enheter), men praktiskt taget bestämma kompatibiliteten för specifika enheter är vanligtvis hämmas av brist på detaljerad information från tillverkaren och diagnostiska verktyg. En annan hjälpare är här Google-företag, som föreslog i senaste versionerna Android egen utveckling Android Beam. Det låter dig utbyta vissa typer av information mellan kompatibla enheter.

Android Beam

Först måste du se till att båda enheterna har NFC aktiverat, Android Beam aktiv och att deras skärmar är upplåsta. På modellerna vi testade fungerar NFC bara om skärmen är på och enheten är helt upplåst. Men kanske kommer andra enheter att använda en annan algoritm. I vilket fall som helst kräver det aktiva gränssnittet väldigt lite batterikraft för att fungera, och hittills verkar det beskrivna tillvägagångssättet ganska rimligt. Ett alternativ för att förenkla ditt arbete är att inaktivera låsskärmen. I det här fallet, för att identifiera taggen, räcker det att helt enkelt slå på smarttelefonen. En annan olägenhet är behovet av att bekräfta operationen genom att trycka på skärmen efter att enheterna har hittat varandra. Detta är inte alltid lätt att göra utan att störa kommunikationen, särskilt när båda enheterna är i händerna på två olika personer.

Nästa steg är att välja en av applikationerna på enheten som du planerar att överföra från. Dessa kan särskilt vara:

  • Google Chrome - överför den aktuella öppna länken;
  • YouTube-klient - överföring av ett videoklipp (som en länk);
  • Google Maps— Överföring av plats eller rutt.
  • Kontakter – överför ett kontaktkort;
  • Google Play— Överföring av ansökan.
  • Galleri - överföring av bilder.

För sedan enheterna närmare varandra. När en partner upptäcks hör du en ton på den sändande enheten och skrivbordsbilden kommer att krympa. I detta ögonblick måste du trycka på skärmbilden och hålla fingret tills du hör den andra signalen - om en lyckad överföring.

Vi provade alternativen som anges och nästan alla fungerar verkligen. Inte ens det faktum att våra enheter tillverkades av olika tillverkare hindrade dem från att hitta gemensamt språk. Men några kommentarer är ändå värda att göra. Det finns inga problem med rutter i Google Maps, men alternativet med en plats är inte särskilt intressant, eftersom bara den aktuella kartvisningen sänds. Punkten som är markerad på skärmen på den ursprungliga telefonen når inte mottagaren. Situationen kan korrigeras genom att använda applikationen Adresser, som överför data korrekt. När du skickar kontakter försvinner bilden, eftersom överföringsformatet överensstämmer ur teknisk synvinkel textfiler vcf. Om vi ​​pratar om applikationer kan du skicka inte bara de som är installerade på telefonen, utan också helt enkelt öppna kort på Google Play. Böcker och annat innehåll från butiken stöds på liknande sätt. Naturligtvis talar vi om att överföra länkar, och inte de nedladdade eller, särskilt, köpta elementen själva. Det uppstod ett problem med att skicka foton: Sony-enheten kunde inte arbeta med den här typen av data. Den officiella formuleringen är "Mottagarens enhet stöder inte stora dataöverföringar via Android Beam." Här är det första tecknet på att gränssnittet är ungt eller att de tekniska specifikationerna för enheterna är otillräckligt detaljerade. Formellt har vi både NFC och Android Beam i två enheter, men i praktiken skiljer sig deras verkliga kapacitet avsevärt, och det kan man bara ta reda på genom att kolla. Vad kan vi säga om mindre kända tillverkare - deras version av att implementera denna teknik kan vara helt oförutsägbar.

Förresten, som för de flesta Android fungerar Balk. Beskrivningen av tekniken indikerar att dataöverföring använder Bluetooth-kommunikation efter initial koordinering av inställningar via NFC. Med tanke på att alla arbetsformat krävde en väldigt liten mängd överförd data, räckte NFC-hastigheten ganska bra för dem, men för fotografier hade det helt klart inte räckt till. Så vi kan anta att Sony inte har implementerat bytet till ett snabbare gränssnitt. Det är inte möjligt att förstå om det här problemet är programvara (kom ihåg att den här enheten har Android 4.0.4 installerad) eller hårdvara.

Vi försökte också skicka vår egen musik och videor på samma sätt från deras respektive appar, men ingenting syntes på mottagaren.

Läsa och skriva taggar

Den beskrivna Android Beam använder förmågan att sända och bearbeta kort informationsmeddelanden. Men i verkligheten kan de inte bara överföras från telefonen, utan också läsas från passiva taggar. På vissa sätt liknar denna teknik de välkända QR-koderna som läses av en telefonkamera. Samtidigt användbar information(till exempel en länk till en webbsida) tar bokstavligen flera tiotals byte. Taggar kan användas av företag, till exempel för att marknadsföra sina produkter eller tjänster. Med tanke på den kompakta storleken på den passiva taggen (mer exakt, dess tjocklek är jämförbar med ett pappersark - på grund av antennen kommer området fortfarande att vara betydande, inte mindre än ett fem-rubelmynt), kan den placeras nästan var som helst : på en låda med en produkt, i en tidning, på en informationsdisk och andra ställen.

Passiva NFC-taggar kan tillverkas som nyckelbrickor

Om vi ​​pratar om att göra taggar med våra egna händer, så är detta ett helt genomförbart scenario. För att göra detta måste du köpa rena ämnen och använda ett speciellt program för din telefon för att skriva ner den nödvändiga informationen på dem. Vi köpte till exempel flera olika alternativ: ett klistermärke med minimal tjocklek, en skyddad plastcirkel och nyckelringar. Alla av dem hade en mycket liten mängd minne - bara 144 byte (det finns också 4 KB-alternativ på marknaden). Antalet omskrivningscykler specificerades inte, men för de flesta applikationsscenarier är denna parameter inte kritisk. För att arbeta med taggar kan vi rekommendera NXP Semiconductors-program - TagInfo och TagWriter.

Den första låter dig läsa data från taggen och dekryptera information enligt NDEF-standarden, och den andra hjälper dig att skapa dina egna taggar. Flera NDEF-underalternativ stöds: kontakt, länk, text, SMS, e-postmeddelande, telefonnummer, Bluetooth-anslutning, geografisk plats, lokal fillänk, programstart, URI. Observera att när du skapar en post måste du ta hänsyn till mängden lagrad data. Till exempel kan ett kontaktfoto ta upp flera kilobyte, meddelanden eller text kan också lätt överstiga 144 byte. Förresten, NFC TagInfo-programmet från NFC Research Lab med en speciell plugin kan läsa och visa dig ett färgfoto från ett biometriskt pass. Med en datavolym på ett och ett halvt dussin kilobyte tar det cirka 20 sekunder att läsa dem via NFC. Ytterligare nivå skydd i i detta fall säkerställs av behovet av att ange några passdetaljer för att läsa data från chipet.

Observera att automatisk bearbetning av lästa taggar beror på innehållet. I synnerhet krävs ibland ytterligare bekräftelse för att själva åtgärden ska kunna utföras. Till exempel, vid SMS öppnas ett ifyllt meddelandeformulär, men användaren måste faktiskt bekräfta sändningen. Men den inspelade webblänken kan omedelbart öppnas i webbläsaren. All automatisering är förknippad med förlust av kontroll, så de beskrivna funktionerna bör användas försiktigt, eftersom genom att helt enkelt ersätta eller programmera om taggar kan angripare omdirigera dig till en falsk webbplats istället för den ursprungliga. Vi hittade inga standardinställningar för OS för att begränsa sådan autostart (såvida du inte inaktiverar själva NFC).

En annan viktig punkt vid användning av taggar på offentliga platser, skydd mot överskrivning. När du spelar in en tagg kan du ställa in en skyddsflagga som blockerar alla försök att ändra informationen, men det går inte längre att ta bort den. Så etiketten kommer att användas i skrivskyddat läge i framtiden. För hemmabruk är detta i de flesta fall inte särskilt kritiskt.

Låt oss nämna några fler program för inspelning av taggar:

Använda färdiga taggar för att styra enheten

En av de aktiva deltagarna i NFC-implementeringsprocessen är Sony. Dess enheter kommer förinstallerade Smart program Connect, stödjer arbete med original Sony-taggar. Om du vill, med hjälp av verktyget SmartTag Maker, kan du skapa dem själv från tomma ämnen. Systemet använder NDEF URI-formatet med kodning av etikettnummer/färg i textlänken. Totalt ger systemet upp till åtta taggar, som är betecknade som "hem", "kontor", "bil", "sovrum", "lyssna", "spela", "aktiviteter", "titta".

Variant av original Sony SmartTags

Själva Smart Connect-programmet fungerar inte bara med NFC-taggar, utan även med andra enheter som är anslutna till telefonen, inklusive headset, strömförsörjning och Bluetooth-enheter. Det är ganska bekvämt att standardinställningarna redan stämmer väl överens med ovanstående scenarier. I detta fall kan användaren programmera om alla kretsar; var och en av dem specificerar en uppsättning villkor och åtgärder.

Som ett villkor kan du använda taggidentifiering eller enhetsanslutning, och du kan dessutom begränsa kretsens drifttid. Uppsättningen av åtgärder är ganska bred, den inkluderar att starta en applikation, öppna en länk i webbläsaren, starta musik, justera volym och läge, ansluta en Bluetooth-ljudenhet, skicka SMS, ringa, kontrollera trådlösa gränssnitt, justering av ljusstyrkan och andra åtgärder. Dessutom kan de också tilldelas att lämna detta läge, vilket utförs genom upprepad igenkänning av taggen, av en ny händelse/tagg, eller genom utgången av ett specificerat tidsintervall.

Men i själva verket är det inte nödvändigt att använda Sony-märkta taggar - du kan också hitta användning för färdiga taggar som inte tillåter att information skrivs över. Dessa kan till exempel vara transportkort. Faktum är att var och en av dem har sin egen unika identifierare, som kan kopplas till vissa åtgärder specialprogram. Möjliga reaktioner kan inkludera operationer som att ändra profilen, aktivera/inaktivera gränssnitt och många andra.

Det finns flera verktyg för detta scenario i Play Butik, låt oss nämna ett par av dem:

Låt oss påminna dig om att du inte bör installera flera liknande program samtidigt. Det här läget kommer inte att tillföra någon bekvämlighet, eftersom när en tagg upptäcks på telefonskärmen kommer en dialogruta att visas som ber dig att välja ett program för att bearbeta den.

När vi sökte efter program för att arbeta med taggar, stötte vi också på en annan klass av verktyg som kan vara intressanta om du har inspelningsbara taggar. Dessa program använder sitt eget ursprungliga inspelningsformat, som bara de kan arbeta med. Samtidigt uppsättningen möjliga åtgärder nästan inte annorlunda än de som beskrivs ovan:

Låt oss påminna dig om att taggen för närvarande endast kan läsas när enheten är upplåst. Så scenariot "kom hem, lägg telefonen på nattduksbordet - bytte automatiskt profilen, stängde av samtalet och Bluetooth, ställ in larmet" kommer att kräva några åtgärder från användaren. Detta beteende begränsar fortfarande programmens kapacitet något.

Utbyta information mellan enheter

Med undantag för Android Beam, förutsätter scenarierna som beskrivs ovan driften av en enda telefon med en tagg eller en specialiserad terminal. Om vi ​​pratar om direkt anslutning av enheter med varandra, är huvudproblemet här kompatibilitet. Naturligtvis, när det gäller produkter från en tillverkare, särskilt en stor, har den tillverkaren möjlighet att helt enkelt installera lämpligt program i firmware. Men om enheterna tillverkas av olika tillverkare måste alla använda samma verktyg. Och det är inte alls ett faktum att din partner kommer att ha samma program installerat som ditt.

Med tanke på att NFC:s egen hastighet är mycket låg, används vanligtvis Bluetooth eller Wi-Fi för att snabbt överföra filer, och NFC fungerar bara vid förhandlingsstadiet för anslutningsparametrar och upprättande av kommunikation. För att testa det här scenariot provade vi flera filöverföringsprogram som påstår sig stödja NFC på våra enheter.

Skicka! Filöverföring (NFC) gratis version Låter dig dela foton, musik och videor. Du kan använda NFC- eller QR-koder för att upprätta kommunikation. Överföring sker via Bluetooth eller Wi-Fi (om båda enheterna stöder Wi-Fi Direct, vilket i den använda Sony telefon det visade sig inte). Som ett resultat kunde vi se en hastighet på 65 KB/s, vilket naturligtvis är för lågt även för fotografier.

Blue NFC, som namnet antyder, förenklar också fildelning över Bluetooth genom att ersätta påslagnings-, sök- och parningsstegen med touch- och NFC-delning. Operationshastigheten är inte särskilt hög - på nivån för programmet som nämns ovan.

File Expert HD använder också Bluetooth, men hastigheten är redan 100-200 KB/s. Det är sant, i rättvisans namn är det värt att notera att det här programmet har många andra fildelningslägen.

Slutsats

Från och med våren 2013 kan man säga att NFC-tekniken redan med säkerhet intar en plats i moderna smartphones topp- och mellannivå. Intresset för det kan indirekt bedömas av antalet program i Play Store: det finns redan flera hundra gratisprojekt enbart. Med tanke på marknadsdominans (särskilt när det gäller antalet modeller) Android-plattformar, det är den som är mest populär idag för NFC-enheter. iOS tillhandahåller inte standardverktyg för NFC, men Windows Phone 8 har avsevärt begränsade NFC-möjligheter för tredjepartsapplikationer.

NFC-tekniken i sig har flera funktioner som gör att den kan inta en unik position:

  • kontaktlös dataöverföring;
  • arbeta endast över korta avstånd;
  • förmågan att utbyta information med andra enheter eller passiva taggar;
  • låg kostnadslösning;
  • låg strömförbrukning;
  • låg dataöverföringshastighet.

För smartphones och surfplattor finns det för närvarande tre mest relevanta alternativ för att använda NFC: utbyta data mellan enheter (kontakter, applikationer, länkar, foton och andra filer), läsa taggar med speciell information och ändra enhetslägen/inställningar/profiler, snabb ihopkoppling med kringutrustning (som headset). I det första fallet kan du prova att arbeta med standarden Android-program Stråla eller installera alternativa alternativ. De kan vara användbara om du behöver höga överföringshastigheter (via Wi-Fi), men kräver samma program på varje enhet.

Passiva taggar kan användas nästan överallt, från affischer till tidningar till produkttaggar. De kan innehålla information om produkten, en länk till webbplatsen, Wi-Fi-inställningar, kontaktuppgifter, geografiska koordinater eller annan liten mängd data. Spridningen av denna metod för informationsutbyte beror direkt på antalet kompatibla enheter som användare har. Det här scenariot kan jämföras med vanliga QR-koder, som idag kanske fortfarande är enklare vad gäller implementering och mer populära.

Att förändra systeminställningarÄven taggar utan inspelningsmöjligheter kan användas med vissa program, så många användare kommer att kunna prova detta scenario. Det bör dock noteras att i det här fallet kommer uppsättningen av alternativ att skrivas in specifik enhet, och det kan vara svårt att överföra den till en annan enhet. De flesta verktyg för detta ändamål kräver fortfarande sina egna inspelade taggar, vilket gör att de kan lagra all nödvändig information i kodad form direkt i taggen (eller molnet), så att för att använda dessa inställningar på en annan enhet räcker det att ha samma program på den.

I den här artikeln tog vi inte hänsyn till sådana NFC-användningsfall som betalningssystem, elektroniska plånböcker och mikrobetalningar, biljetter och kuponger, transportkort och pass. Dessa ämnen, särskilt de första, förtjänar separat övervägande. Vi kommer att försöka återkomma till dem om det finns läsarintresse och spridning av sådana lösningar.

När det gäller datornätverk, kan du ofta höra NFS nämnas. Vad betyder denna förkortning?

Det är ett distribuerat filsystemsprotokoll som ursprungligen utvecklades av Sun Microsystems 1984, vilket gör det möjligt för en användare på en klientdator att komma åt filer över ett nätverk, som liknar lokal lagring. NFS, liksom många andra protokoll, är baserat på Open Network Computing Remote Procedure Call (ONC RPC)-systemet.

Med andra ord, vad är NFS? Det är en öppen standard, definierad av Request for Comments (RFC), som tillåter vem som helst att implementera protokollet.

Versioner och varianter

Uppfinnaren använde endast den första versionen för sina egna experimentändamål. När utvecklingsteamet lade till betydande ändringar i den ursprungliga NFS och släppte den utanför Suns ägande, utsåg de ny version som v2 så att interoperabilitet mellan distributioner kan testas och en reserv kan skapas.

NFS v2

Version 2 fungerade initialt endast över User Datagram Protocol (UDP). Dess utvecklare ville behålla serversidan utan blockering implementerad utanför huvudprotokollet.

Det virtuella filsystemets gränssnitt möjliggör en modulär implementering som återspeglas i ett enkelt protokoll. I februari 1986 hade lösningar demonstrerats för operativsystem som System V release 2, DOS och VAX/VMS med Eunice. NFS v2 tillät endast att de första 2 GB av en fil lästes på grund av 32-bitars begränsningar.

NFS v3

Det första förslaget att utveckla NFS version 3 hos Sun Microsystems tillkännagavs kort efter lanseringen av den andra distributionen. Den främsta motivationen var att försöka mildra prestandaproblemet med synkron inspelning. I juli 1992 hade praktiska förbättringar löst många av bristerna i NFS version 2, vilket bara lämnade otillräckligt filstöd (64-bitars filstorlekar och filförskjutningar).

  • stöd för 64-bitars filstorlekar och förskjutningar för att hantera data större än 2 gigabyte (GB);
  • stöd för asynkron inspelning på servern för att förbättra prestandan;
  • ytterligare filattribut i många svar för att undvika att behöva hämta dem igen;
  • READDIRPLUS-operation för att erhålla data och attribut tillsammans med filnamn vid skanning av en katalog;
  • många andra förbättringar.

Under introduktionen av version 3 började stödet för TCP som transportlagerprotokoll att öka. Användningen av TCP som ett sätt att överföra data, utförd med NFS över ett WAN, började göra det möjligt att överföra stora filstorlekar för visning och skrivning. Tack vare detta kunde utvecklare övervinna de 8 KB-gränser som infördes av User Datagram Protocol (UDP).

Vad är NFS v4?

Version 4, påverkad av Endres File System (AFS) och Server Message Block (SMB, även kallat CIFS), inkluderar prestandaförbättringar, ger bättre säkerhet och introducerar ett efterlevnadsprotokoll.

Version 4 var den första distributionen som utvecklades i Målgrupp Internet Engineering Task Force (IETF) efter att Sun Microsystems outsourcade protokollutveckling.

NFS version 4.1 syftar till att tillhandahålla protokollstöd för att utnyttja klustrade serverdistributioner, inklusive möjligheten att tillhandahålla skalbar parallell åtkomst till filer distribuerade över flera servrar (pNFS-tillägg).

Det senaste filsystemprotokollet, NFS 4.2 (RFC 7862), släpptes officiellt i november 2016.

Andra tillägg

Med utvecklingen av standarden dök motsvarande verktyg för att arbeta med den upp. Således tillåter WebNFS, ett tillägg för version 2 och 3, protokollet nätverksåtkomst Filsystem är lättare att integrera i webbläsare och möjliggör arbete genom brandväggar.

Olika tredjepartsprotokoll har också blivit associerade med NFS. De mest kända av dem är:

  • Network Lock Manager (NLM) med stöd för byteprotokoll (läggs till för att stödja UNIX System V fillåsnings-API);
  • Remote Quota (RQUOTAD), som tillåter NFS-användare att se lagringskvoter på NFS-servrar;
  • NFS över RDMA är en anpassning av NFS som använder RDMA (Remote Direct Memory Access) som överföringsmedium;
  • NFS-Ganesha är en NFS-server som körs i användarutrymme och stöder CephFS FSAL (File System Abstraction Layer) med libcephfs.

Plattformar

Network File System används ofta med operativsystem Unix (som Solaris, AIX, HP-UX), Apples MacOS och Unix-liknande operativsystem (som Linux och FreeBSD).

Den är också tillgänglig för plattformar som Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare och IBM AS/400.

Alternativa protokoll fjärråtkomst filer inkluderar Server Message Block (SMB, även kallat CIFS), Apple Transfer Protocol (AFP), NetWare Core Protocol (NCP) och OS/400 Server File System (QFileSvr.400).

Detta beror på kraven i NFS, som främst är inriktade på Unix-liknande "skal".

Samtidigt används protokollen SMB och NetWare (NCP) oftare än NFS i system som körs Microsoft Windows. AFP är vanligast på Apple Macintosh-plattformar och QFileSvr.400 är vanligast på OS/400.

Typiskt genomförande

Om vi ​​antar ett typiskt Unix-scenario där en dator (klienten) behöver åtkomst till data lagrad på en annan (NFS-servern):

  • Servern implementerar nätverksfilsystemprocesser, som körs som standard som nfsd, för att göra dess data allmänt tillgänglig för klienter. Serveradministratören bestämmer hur katalognamn och inställningar ska exporteras, vanligtvis med hjälp av konfigurationsfilen /etc/exports och kommandot exportfs.
  • Att administrera serversäkerhet säkerställer att den kan känna igen och godkänna en autentiserad klient. Dess nätverkskonfiguration säkerställer att berättigade klienter kan förhandla med den genom vilket brandväggssystem som helst.
  • Klientmaskinen begär åtkomst till de exporterade data, vanligtvis genom att utfärda ett kommando. Den frågar efter servern (rpcbind) som använder NFS-porten och ansluter sedan till den.
  • Om allt händer utan fel kommer användare på klientdatorn att kunna se och interagera med de installerade filsystemen på servern inom de tillåtna parametrarna.

Det bör också noteras att automatisering av Network File System-processen också kan ske - kanske med etc/fstab och/eller andra liknande verktyg.

Utveckling hittills

På 2000-talet hade konkurrerande protokoll DFS och AFS inte nått någon större kommersiell framgång jämfört med Network File System. IBM, som tidigare förvärvat alla kommersiella rättigheter till ovanstående teknologier, har donerat det mesta av AFS-källkoden till den fria utvecklargemenskapen programvaraår 2000. Open AFS-projektet existerar än idag. I början av 2005 meddelade IBM slutet på försäljningen av AFS och DFS.

I sin tur, i januari 2010, föreslog Panasas NFS v 4.1 baserad på teknologi som förbättrar parallella dataåtkomstmöjligheter. Network File System v 4.1-protokollet definierar en metod för att separera filsystemets metadata från platsen för specifika filer. Så det går utöver enkel namn/dataseparering.

Vad är NFS av denna version i praktiken? Ovanstående funktion skiljer det från det traditionella protokollet, som innehåller namn på filer och deras data under en anslutning till servern. Med Network File System v 4.1 kan vissa filer delas mellan servrar med flera noder, men klientens inblandning i delning av metadata och data är begränsad.

När den fjärde distributionen av NFS-protokollet implementeras är NFS-servern en uppsättning serverresurser eller komponenter; de antas kontrolleras av metadataservern.

Klienten kontaktar fortfarande en enskild metadataserver för att gå igenom eller interagera med namnområdet. När den flyttar filer till och från servern kan den interagera direkt med en uppsättning data som ägs av en NFS-grupp.



Om du upptäcker ett fel markerar du ett textstycke och trycker på Ctrl+Enter
DELA: