Jak funguje tenký klient. Tencí klienti – co to je? Připojení a používání tenkých klientů. Problémy s připojením a licencemi

Každý ví, že na systémech UNIX je souborový systém logicky souborem fyzických souborových systémů připojených k jednomu bodu. Jednou z hlavních výhod takové organizace je podle mého názoru možnost dynamicky upravovat strukturu stávajícího souborového systému. Také díky úsilí vývojářů dnes máme možnost připojit souborový systém téměř jakéhokoli typu a jakýmkoli pohodlným způsobem. „Metodou“ chci především zdůraznit schopnost jádra OS pracovat se souborovými systémy prostřednictvím síťových připojení.

Mnoho síťových protokolů nám poskytují možnost pracovat se vzdálenými soubory, ať už se jedná o FTP, SMB, Telnet nebo SSH. Díky schopnosti jádra nezáviset na typu připojovaného souborového systému máme možnost připojit cokoli a jakkoli chceme pomocí programu mount.

Dnes chci mluvit o NFS - Network Systém souborů. Tato technologie umožňuje propojovat jednotlivé FS body vzdálený počítač do souborového systému místního počítače. Samotný protokol NFS umožňuje provádět operace se soubory poměrně rychle, bezpečně a spolehlivě. Co ještě potřebujeme? :-)

Co je potřeba, aby to fungovalo

Abychom se dlouze nebavili na téma verzí NFS a jejich podpory v různých jádrech, rovnou vyjdeme z předpokladu, že verze vašeho jádra není nižší než 2.2.18. V oficiální dokumentaci vývojáři slibují plnou podporu funkčnosti NFS verze 3 v tomto jádře a novějších verzích.

Instalace

Abych mohl spustit NFS server v mém Ubuntu 7.10 - Gutsy Gibbon, potřeboval jsem nainstalovat balíčky nfs-common a nfs-kernel-server. Pokud potřebujete pouze klienta NFS, není nutné instalovat nfs-kernel-server.

Nastavení serveru

Po úspěšné instalaci všech balíčků musíte zkontrolovat, zda běží démon NFS:

/etc/init.d/nfs-kernel-server status

Pokud démon neběží, musíte jej spustit příkazem

/etc/init.d/nfs-kernel-server start

Poté, co se vše úspěšně spustí, můžete začít exportovat systém souborů. Samotný proces je velmi jednoduchý a zabere minimum času.

Hlavní konfigurační soubor serveru NFS se nachází v /etc/exports a má následující formát:

Adresář stroj1(možnost11,možnost12) stroj2(možnost21,možnost22)

adresářabsolutní cesta do adresáře FS serveru, ke kterému potřebujete udělit přístup

strojX— DNS jméno nebo IP adresa klientský počítač ze kterého je povolen přístup

možnostXX— parametry exportu FS, nejčastěji používané z nich:

  • ro- přístup k souboru je pouze pro čtení
  • rw— je povolen přístup pro čtení/zápis
  • no_root_squash- výchozí, pokud se připojujete ke sdílené složce NFS z kořenový název, bude server z důvodu bezpečnosti na své straně přistupovat k souborům jménem uživatele none. Pokud však tuto možnost povolíte, k souborům na straně serveru bude přistupovat jako root. S touto možností buďte opatrní.
  • no_subtree_check— ve výchozím nastavení, pokud neexportujete celý oddíl na serveru, ale pouze část souborového systému, démon zkontroluje, zda je požadovaný soubor fyzicky umístěn na stejném oddílu nebo ne. Pokud exportujete celý oddíl nebo bod připojení exportovaného systému souborů neovlivňuje soubory z jiných fyzických nosičů, můžete tuto možnost povolit. To vám umožní zvýšit rychlost serveru.
  • synchronizace— povolte tuto možnost, pokud existuje možnost náhlé ztráty spojení nebo výpadku napájení serveru. Pokud tato možnost není povolena, existuje velmi vysoké riziko ztráty dat, pokud se server NFS náhle zastaví.

Řekněme tedy, že potřebujeme umožnit přístup stolnímu počítači ashep do adresáře /var/backups počítače ashep-laptop. Ke kopírování záložních souborů z ashep-desktop je vyžadován přístup k adresáři. Můj soubor dopadl takto:

/var/backups ashep-desktop(rw,no_subtree_check,sync)

Po přidání řádku do /etc/exports musíte restartovat server NFS, aby se změny projevily.

/etc/init.d/nfs-kernel-server restart

To je vše. Exportovaný FS můžete začít připojovat na klientském počítači.

Nastavení klienta

Na straně klienta se vzdálený souborový systém připojuje stejným způsobem jako všechny ostatní – pomocí příkazu mount. Také vám nikdo nezakazuje používat /etc/fstab, pokud potřebujete připojit FS automaticky při bootování OS. Takže možnost připojení bude vypadat takto:

Mount -t nfs ashep-laptop:/var/backups/ /mnt/ashep-laptop/backups/

Pokud vše proběhlo v pořádku a potřebujete se připojit ke vzdálenému FS automaticky při bootu, stačí přidat řádek do /etc/fstab:

Ashep-laptop:/var/backups /mnt/ashep-laptop/backups nfs auto 0 0

Co ještě

Máme tedy praktický, malinký přehled o možnostech NFS. To je samozřejmě jen malá část toho, co NFS umí. To stačí pro použití doma nebo v malé kanceláři. Pokud vám to nestačí, doporučuji nejprve přečíst

NFS
Úroveň (podle modelu OSI):Aplikovaný
Rodina:Zásobník protokolů TCP/IP
Port/ID:67, 68/UDP
Účel protokolu:Získání konfigurace sítě
Specifikace:RFC 2131
Hlavní implementace (servery):dhcpd, ISC DHCP Server, Infoblox
Vstoupila v platnost od: 1990

NFS abstrahuje od typů serverových i klientských souborových systémů a existuje mnoho serverových a klientských implementací NFS pro různé operační systémy a hardwarové architektury. Nejvyspělejší verzí NFS je v.4, která podporuje různé autentizační prostředky (zejména Kerberos a LIPKEY využívající protokol RPCSEC GSS) a seznamy řízení přístupu (typy POSIX i Windows).

Obecná organizace NFS

NFS poskytuje klientům transparentní přístup k souborům serveru a souborovému systému. Na rozdíl od FTP přistupuje protokol NFS pouze k těm částem souboru, ke kterým má proces přístup, a jeho hlavní výhodou je, že tento přístup činí transparentním. To znamená, že každá klientská aplikace, která umí pracovat s lokálním souborem, může stejně snadno pracovat se souborem NFS, bez jakýchkoli úprav samotného programu.

Klienti NFS přistupují k souborům na serveru NFS odesíláním požadavků RPC na server. To lze implementovat pomocí normálních uživatelských procesů – konkrétně klient NFS může být uživatelský proces, který provádí specifická volání RPC na server, což může být také uživatelský proces.

Důležitá část nejnovější verzi Standardem NFS (v4.1) se stala specifikace pNFS, zaměřená na poskytování paralelní implementace sdílení souborů, zvyšující rychlost přenosu dat úměrně velikosti a stupni paralelismu systému.

Příběh

Protokol NFS má ve své historii 4 verze.

První verze byla použita pouze pro vnitřní použití do Sunu pro experimentální účely. Verze 2 byla vydána v březnu 1989, zpočátku byla plně spuštěna protokol UDP. Vývojáři se rozhodli neukládat data o vnitřním stavu uvnitř protokolu, například blokování implementované venku základní protokol. Lidé zapojení do vytváření NFS verze 2 jsou Rusty Sandberg, Bob Lyon, Bill Joy a Steve Kleiman.

NFSv3 byl vydán v červnu 1995 a přidal podporu pro deskriptory souborů variabilní velikost až 64 bajtů (ve verzi 2 - pole pevná velikost 32 bajtů), byl odstraněn limit 8192 bajtů ve voláních RPC čtení a zápisu (velikost přenášeného bloku ve volání je tedy omezena pouze limitem pro UDP datagram - 65535 bajtů), byla implementována podpora pro velké soubory jsou podporována asynchronní volání operací zápisu, PŘEČTĚTE si postupy a WRITE volání byla přidána ACCESS (kontrola oprávnění k souboru), MKNOD (vytvoření speciálního unixového souboru), READDIRPLUS (vrací názvy souborů v adresáři spolu s jejich atributy), FSINFO (vrací statistické informace informace o systému souborů), FSSTAT (vrací informace o dynamickém systému souborů), PATHCONF (vrací informace o systému souborů POSIX.1) a COMMIT (potvrzuje dříve provedené asynchronní zápisy do trvalého úložiště). V době uvedení verze 3 došlo k nárůstu obliby mezi vývojáři protokolu TCP. Někteří nezávislí vývojáři nezávisle přidali podporu TCP do NFS verze 2 jako transportní protokol, Sun Microsystems přidal podporu TCP k NFS v jednom z dodatků k verzi 3. Podpora TCP zvýšila praktickou proveditelnost použití NFS v rozsáhlých sítích.

NFSv4 byl vydán v prosinci 2000, ovlivněn AFS a CIFS, a zahrnuje vylepšení výkonu a zabezpečení. Verze 4 byla první verzí vyvinutou společně s Internet Engineering Task Force (IETF). NFS v4.1 byl schválen IESG v lednu 2010 (nová specifikace s 612 stranami se stala známou jako nejdelší dokument schválený IETF). Důležitou novinkou ve verzi 4.1 je specifikace pNFS - Parallel NFS, což je mechanismus pro paralelní klientský přístup NFS k datům z více distribuovaných NFS serverů. Přítomnost takového mechanismu ve standardu síťového souborového systému pomůže vybudovat distribuovaný cloudové úložiště a informační systémy.

Rozvojové cíle

Počáteční požadavky na vývoj NFS byly:

  • potenciální podpora pro různé operační systémy (nejen UNIX), takže NFS servery a klienti mohou být implementováni na různých operačních systémech;
  • protokol by neměl záviset na žádném konkrétním hardwaru;
  • v případě selhání serveru nebo klienta by měly být implementovány jednoduché mechanismy obnovy;
  • aplikace musí mít transparentní přístup ke vzdáleným souborům bez použití speciálních cest nebo knihoven a bez rekompilace;
  • Sémantika UNIX musí být podporována pro klienty UNIX;
  • Výkon NFS by měl být srovnatelný s výkonem lokálních disků;
  • implementace by neměla být závislá na vozidle.

Jak funguje NFS

NFS se skládá alespoň ze dvou hlavních částí: serveru a jednoho nebo více klientů. Klient přistupuje k datům umístěným na serveru v režimu vzdáleného přístupu. Aby to správně fungovalo, je potřeba nakonfigurovat a spustit několik procesů. Implementace NFS se skládá z několika komponent. Některé z nich jsou lokalizovány buď na serveru nebo na klientovi a některé se používají na obou stranách připojení. Některé komponenty nemusí poskytovat základní funkčnost, ale tvoří součást rozšířeného rozhraní NFS.

Protokol NFS definuje sadu požadavků (operací), které může klient odeslat na server, a také sadu argumentů a návratových hodnot pro každý z těchto požadavků. Verze 1 tohoto protokolu existovala pouze v hlubinách Sun Microsystems a nikdy nebyla vydána. Všechny implementace NFS (včetně NFSv3) podporují NFS verze 2 (NFSv2), která byla poprvé vydána v roce 1985 se SunOS 2.0. Verze 3 protokolu byla publikována v roce 1993 a byla implementována několika dodavateli.

Protokol Remote Procedure Call (RPC) definuje formát všech interakcí mezi klientem a serverem. Každý požadavek NFS je odeslán jako paket RPC. Na serveru běží následující démoni:

  • rpc.nfsd - Hlavním démonem serveru NFS je nfsd (v nových verzích někdy nazývaný nfsd4). Tento démon obsluhuje požadavky klientů NFS. Parametr RPCNFSDCOUNT v souboru /etc/default/nfs-kernel-server na Debianu a NFSDCOUNT v souboru /etc/sysconfig/nfs na RedHat určuje počet démonů, které se mají spustit (standardně 8). (RPC program 100003)
  • rpc.mountd - Připojovací démon NFS mountd zpracovává požadavky klientů na připojení adresářů. Připojený démon běží na serverech NFS. (RPC program 100005)
  • rpc.statd - Démon monitorování stavu sítě (také znám jako Network Status Monitor, aka NSM). Umožňuje správně zrušit zámek po havárii/rebootu. K upozornění na selhání používá program /usr/sbin/sm-notify. Démon statd běží na serverech i klientech. Dříve tento server byl nezbytný pro fungování rpc.lockd, ale za zamykání je nyní zodpovědné jádro. (RPC program 100021 a 100024 - v nových verzích)
  • rpc.lockd – Démon lockd (také známý jako správce zámků NFS (NLM)) zpracovává požadavky na uzamčení souborů. Démon zamykání běží na serverech i klientech. Klienti požadují zamykání souborů a servery to umožňují. (zastaralý a v nových distribucích se nepoužívá jako démon. Jeho funkce v moderních distribucích (s jádrem starším než 2.2.18) vykonávají jádra (lockd). (RPC program 100024)
  • rpc.idmapd – Démon idmapd pro NFSv4 na serveru převádí místní uid/gid uživatelů do formátu jméno@doména a služba na klientovi převádí názvy uživatelů/skupin ve formátu jméno@doména na místní identifikátory uživatelů a skupin. (podle konfiguračního souboru /etc/idmapd .conf).

Klient může také spustit démona s názvem nfsiod. nfsiod obsluhuje požadavky na straně serveru ze serveru NFS. Je volitelný a zvyšuje výkon, ale pro normální a řádný provoz není vyžadováno. V NFSv4 se při použití Kerberos spouštějí další démoni:

  • rpc.gssd – Démon NFSv4 poskytuje metody ověřování prostřednictvím GSS-API (autentizace Kerberos). Funguje na klientovi i serveru.
  • rpc.svcgssd – démon serveru NFSv4, který poskytuje autentizaci klienta na straně serveru.

Démoni staré verze (NFS v.3 a nižší):

  • nfslogd – démon protokolu NFS protokoluje aktivitu pro exportované systémy souborů, běží na serverech NFS
  • rpc.rquotad - vzdálený server kvót poskytuje informace o uživatelských kvótách na vzdálených souborových systémech, může běžet na serverech i klientech.

Kromě výše uvedených balíčků vyžadují NFSv2 a v3 doplňkový balíček portmap (v novějších distribucích nahrazen přejmenovaným rpcbind). Sun RPC je server, který převádí čísla programů RPC (Remote Procedure Call) na čísla portů TCP/UDP.

portmap funguje na několika entitách:

  • RPC volání nebo požadavky
  • TCP/ UDP port ami, verze protokolu (tcp nebo udp)
  • čísla programů a verze programů

Démon portmap je spuštěn skriptem /etc/init.d/portmap před spuštěním služeb NFS.

Úkolem serveru RPC (Remote Procedure Call) je zpracovávat volání RPC (tzv. procedury RPC) z místních a vzdálených procesů. Pomocí volání RPC se služby registrují nebo vymazávají do/z mapovače portů (portmap, portmapper, v nových verzích také známý jako rpcbind) a klienti používající volání RPC, odesílající požadavky na mapovač portů, přijímají potřebné informace.

Činnost serveru RPC může být reprezentována následujícími kroky:

  1. Převaděč portů by se měl spustit jako první, obvykle při startu systému. Tím se vytvoří koncový bod TCP a otevře se port TCP 111. Také se vytvoří koncový bod UDP, který čeká, až datagram UDP dorazí na port UDP 111.
  2. Při spuštění program běžící prostřednictvím serveru RPC vytvoří koncový bod TCP a koncový bod UDP pro každou podporovanou verzi programu. ( Server RPC může podporovat více verzí. Klient specifikuje požadovanou verzi při volání RPC.) Ke každé verzi služby je přiřazeno dynamicky přidělené číslo portu. Server zaprotokoluje každý program, verzi, protokol a číslo portu provedením příslušného volání RPC.
  3. Když klientský program RPC potřebuje získat potřebné informace, zavolá rutinu překladače portů, aby získal dynamicky přiřazené číslo portu pro zadaný program, verzi a protokol.
  4. V reakci na tento požadavek vrátí sever číslo portu.
  5. Klient odešle zprávu s požadavkem RPC na číslo portu získané v kroku 4. Pokud je použito UDP, klient jednoduše odešle UDP datagram obsahující výzvu RPC na číslo portu UDP, na kterém běží požadovaná služba. V odezvě služba odešle datagram UDP obsahující zprávu odpovědi RPC. Pokud je použit TCP, klient se aktivně otevře na čísle portu TCP požadované služby a poté odešle zprávu o výzvě RPC přes navázané spojení. Server odpoví zprávou odpovědi RPC na připojení.

Pro získání informací z RPC serveru se používá utilita rpcinfo, která zobrazuje registrované číslo programu, verzi, protokol, port a název. Pomocí rpcinfo můžete také odebrat registraci programu nebo získat informace o samostatná služba RPC. Když zadáte parametry hostitele -p, program zobrazí seznam všech registrovaných programů RPC na hostitelském hostiteli. Bez zadání hostitele program zobrazí služby na localhost.

NFS server (přesněji démon rpc.nfsd) přijímá požadavky od klienta ve formě UDP datagramů na portu 2049. Navzdory tomu, že NFS pracuje s překladačem portů, který umožňuje serveru používat dynamicky přidělované porty, UDP port 2049 je ve většině implementací pevně zakódován pro NFS.

Popis procesu přístupu k souboru umístěnému na serveru NFS:

  • Klientovi (uživatelskému procesu) je jedno, zda přistupuje místní soubor nebo do soubor NFS. Jádro interaguje s hardwarem prostřednictvím modulů jádra nebo vestavěných systémových volání.
  • Modul jádra kernel/fs/nfs/nfs.ko, který plní funkce klienta NFS, odesílá požadavky RPC na server NFS prostřednictvím modulu TCP/IP. NFS obvykle používá UDP, ale novější implementace mohou používat TCP.
  • Server NFS přijímá požadavky od klienta jako datagramy UDP na portu 2049. Ačkoli NFS může pracovat s překladačem portů, který serveru umožňuje používat dynamicky přidělované porty, port UDP 2049 je ve většině implementací pevně zakódován pro NFS.
  • Když server NFS obdrží požadavek od klienta, je předán rutině pro přístup k místnímu souboru, která poskytuje přístup k místnímu disku na serveru.
  • Výsledek přístupu na disk se vrátí klientovi.

Nastavení serveru NFS

Nastavení serveru jako celku spočívá v nastavení lokálních adresářů povolených pro připojení vzdálené systémy v souboru /etc/exports. Tato akce se nazývá export adresářové hierarchie. Hlavními zdroji informací o exportovaných katalozích jsou následující soubory:

Struktura kořenové složky

  1. /etc/exports - hlavní konfigurační soubor, který ukládá konfiguraci exportovaných adresářů. Používá se při spouštění NFS a obslužným programem exportfs.
  2. /var/lib/nfs/xtab - Obsahuje seznam adresářů připojených vzdálenými klienty. Používá se démonem rpc.mountd, když se klient pokusí připojit hierarchii (vytvoří se záznam pro připojení).
  3. /var/lib/nfs/etab - seznam adresářů, které mohou být připojeny vzdálenými systémy, s uvedením všech parametrů exportovaných adresářů.
  4. /var/lib/nfs/rmtab - seznam adresářů, které nejsou aktuálně neexportovány.
  5. /proc/fs/nfsd - speciální souborový systém (kernel 2.6) pro správu NFS serveru.
  6. /proc/net/rpc - obsahuje nezpracované statistiky, které lze získat pomocí nfsstat, stejně jako různé cache.
  7. /var/run/portmap_mapping - informace o službách registrovaných v RPC.

Soubor exportů používá následující obecné možnosti:

  • auth_nlm (no_auth_nlm) nebo secure_locks (insecure_locks) – určuje, že server by měl vyžadovat ověření požadavků na zámek (pomocí protokolu NFS Lock Manager).
  • nohide (hide) - pokud server exportuje dvě hierarchie adresářů, přičemž jedna je vnořená (připojená) uvnitř druhé. Klient musí explicitně připojit druhou (podřízenou) hierarchii, jinak se bod připojení podřízené hierarchie zobrazí jako prázdný adresář. Volba nohide má za následek druhou hierarchii adresářů bez explicitního připojení.
  • ro - Umožňuje pouze požadavky na čtení.
  • rw - Umožňuje požadavky na zápis.
  • zabezpečené (nezabezpečené) – Vyžaduje, aby požadavky NFS přicházely ze zabezpečených portů (< 1024), чтобы программа без root práva nelze připojit hierarchii adresářů.
  • subtree_check (no_subtree_check) - Pokud je exportován podadresář souborového systému, ale ne celý souborový systém, server zkontroluje, zda je požadovaný soubor v exportovaném podadresáři. Zakázání ověřování snižuje zabezpečení, ale zvyšuje rychlost přenosu dat.
  • sync (async) - určuje, že server by měl odpovídat na požadavky pouze po zapsání změn provedených těmito požadavky na disk. Možnost async říká serveru, aby nečekal na zapsání informací na disk, což zlepšuje výkon, ale snižuje spolehlivost, protože V případě přerušení spojení nebo selhání zařízení může dojít ke ztrátě informací.
  • wdelay (no_wdelay) – Instruuje server, aby zpozdil provádění požadavků na zápis, pokud se očekává následný požadavek na zápis, zapisování dat přes více velké bloky. To zlepšuje výkon při odesílání velkých front příkazů zápisu. no_wdelay určuje, že se nemá zpožďovat provedení příkazu write, což může být užitečné, pokud server přijímá velký počet týmy, které spolu nesouvisí.

Správa serveru NFS

Server NFS je spravován pomocí následujících nástrojů:

  • nfsstat
  • showmsecure (nezabezpečené) připojení
  • exportfs

Obslužný program nfsstat umožňuje zobrazit statistiky serverů RPC a NFS.

showmount

Obslužný program showmount se dotazuje démona rpc.mountd na vzdáleném hostiteli na připojené systémy souborů. Ve výchozím nastavení je vrácen seřazený seznam klientů. Týmy:

  • --all - zobrazí seznam klientů a přípojných bodů označujících, kam klient připojil adresář. Tyto informace nemusí být spolehlivé.
  • --directories - zobrazí seznam přípojných bodů.
  • --exports - zobrazí seznam exportovaných souborových systémů z pohledu nfsd.

Spuštění showmount bez argumentů vytiskne do konzole informace o systémech, které mají povoleno připojovat místní adresáře.

exportfs

Tento příkaz synchronizuje exportované adresáře uvedené v souboru /etc/exports se souborem /var/lib/nfs/xtab a odstraní neexistující adresáře z xtab. exportfs se provede při spuštění démona nfsd s argumentem -r. Obslužný program exportfs v režimu jádra 2.6 komunikuje s démonem rpc.mountd prostřednictvím souborů v adresáři /var/lib/nfs/ a nekomunikuje přímo s jádrem. Bez parametrů zobrazí seznam aktuálně exportovaných systémů souborů. parametry exportfs:

  1. [client:název-adresáře] - přidat nebo odebrat zadaný systém souborů pro zadaného klienta)
  2. -v - zobrazí další informace
  3. -r - znovu exportovat všechny adresáře (synchronizovat /etc/exports a /var/lib/nfs/xtab)
  4. -u - odebrat ze seznamu exportovaných
  5. -a - přidat nebo odebrat všechny systémy souborů
  6. -o - možnosti oddělené čárkami (podobně jako možnosti používané v /etc/exports; tj. můžete změnit možnosti již připojených souborových systémů)
  7. -i - při přidávání nepoužívejte /etc/exports, pouze aktuální volby příkazového řádku
  8. -f - resetuje seznam exportovaných systémů v jádře 2.6.

Připojení systému síťových souborů pomocí příkazu mount

Příklad příkazu mount pro připojení souborového systému NFS v Debianu:

SOUBORY~# mount -t archiv nfs:/archiv-small /archivs/archiv-small SOUBORY~# mount -t nfs -o ro archiv:/archiv-big /archivs/archiv-big FILES ~ # mount ....... archiv:/archiv-small na /archivs/archiv-small typu nfs (rw,addr=10.0.0.6) archiv:/archiv-big na /archivs/archiv-big type nfs (ro,addr=10.0.0.6)

První příkaz připojí exportovaný adresář /archiv-small na archivačním serveru k místnímu bodu připojení /archivs/archiv-small s výchozími volbami (tj. čtení-zápis). Druhý příkaz připojí exportovaný adresář /archiv-big na archivačním serveru do místního adresáře /archivs/archiv-big s volbou pouze pro čtení (ro). Příkaz mount bez parametrů nám názorně ukazuje výsledek montáže. Kromě možnosti pouze pro čtení (ro) je možné při montáži NFS nastavit další základní možnosti:

  • nosuid - Tato volba zabraňuje spouštění programů setuid z připojeného adresáře.
  • nodev (bez zařízení) – Tato možnost zakazuje použití znakových a blokových speciálních souborů jako zařízení.
  • lock (nolock) - Povolí uzamčení NFS (výchozí). nolock deaktivuje zamykání NFS (nespustí démona lockd) a je užitečný při práci se staršími servery, které nepodporují zamykání NFS.
  • mounthost=name - Název hostitele, na kterém běží démon připojení NFS - mountd -.
  • mountport=n - Port používaný démonem mountd.
  • port=n - port používaný pro připojení k serveru NFS (výchozí hodnota je 2049, pokud démon rpc.nfsd není registrován na serveru RPC). Pokud n=0 (výchozí), NFS se dotazuje na mapu portů na serveru, aby určil port.
  • rsize=n (velikost bloku čtení – velikost bloku čtení) – Počet bajtů přečtených najednou ze serveru NFS. Standardní - 4096.
  • wsize=n (velikost bloku zápisu – velikost bloku zápisu) – Počet bajtů zapsaných najednou na server NFS. Standardní - 4096.
  • tcp nebo udp – Použijte pro připojení NFS TCP protokol respektive UDP.
  • bg - Pokud ztratíte přístup k serveru, zkuste to znovu pozadí, aby nedošlo k zablokování procesu spouštění systému.
  • fg - Pokud ztratíte přístup k serveru, zkuste to znovu v prioritním režimu. Tento parametr může zablokovat proces spouštění systému opakovanými pokusy o připojení. Z tohoto důvodu se parametr fg používá především pro ladění.
  • Možnosti ovlivňující ukládání atributů do mezipaměti na připojení NFS
  • Atributy souborů uložené v inodech (inodech), jako je čas úpravy, velikost, pevné odkazy, vlastník, se u běžných souborů obvykle mění zřídka a u adresářů ještě méně často. Jádro používá čas úpravy souboru k určení, zda je mezipaměť zastaralá, porovnáním času úpravy v mezipaměti a času úpravy samotného souboru.

Mezipaměť atributů se pravidelně aktualizuje v souladu se zadanými parametry:

  1. ac (noac) (attrebute cache - atribut caching) - Umožňuje ukládání atributů do mezipaměti (ve výchozím nastavení). Přestože volba noac zpomaluje server, zabraňuje zastarávání atributů, když více klientů aktivně zapisuje informace do společné hierarchie.
  2. acdirmax=n (maximum souboru adresáře mezipaměti atributů - maximální ukládání atributů do mezipaměti pro soubor adresáře) - Maximální počet sekund, po které NFS čeká před aktualizací atributů adresáře (výchozí 60 sekund)
  3. acdirmin=n (minimum souboru adresáře mezipaměti atributů – minimální ukládání atributů do mezipaměti pro soubor adresáře) – Minimální počet sekund, po které NFS čeká před aktualizací atributů adresáře (výchozí 30 sekund)
  4. acregmax=n (maximální hodnota běžného souboru mezipaměti atributů - maximální hodnota mezipaměti atributů běžného souboru) - Maximální počet sekund, po které NFS čeká před aktualizací atributů běžného souboru (výchozí 60 sekund)
  5. acregmin=n (minimum běžného souboru mezipaměti atributů – minimální mezipaměť atributů běžného souboru) – Minimální počet sekund, po které NFS čeká před aktualizací atributů běžného souboru (výchozí 3 sekundy)
  6. actimeo=n (časový limit mezipaměti atributů) - Nahradí hodnoty pro všechny výše uvedené možnosti. Pokud není zadáno actimeo, pak výše uvedené hodnoty převezmou výchozí hodnoty.

Možnosti zpracování chyb NFS

Následující možnosti řídí, co NFS dělá, když server neodpovídá nebo když se vyskytnou chyby I/O:

  • fg (bg) (popředí - popředí, pozadí - pozadí) - Pokusy o připojení neúspěšného NFS na popředí/pozadí.
  • tvrdý (měkký) – po vypršení časového limitu zobrazí konzoli zprávu „server neodpovídá“ a pokračuje v pokusech o připojení. Když je zadána softwarová možnost, během časového limitu ohlásí chybu I/O programu, který operaci vyvolal.
  • nointr (intr) (bez přerušení) – Zabraňuje signálům v přerušení operací se soubory v pevně připojené hierarchii adresářů, když je dosaženo velkého časového limitu. intr - umožňuje přerušení.
  • retrans=n (hodnota opětovného přenosu - hodnota retransmisi) - Po n malých prodlevách NFS vygeneruje velký časový limit (výchozí 3). Velký časový limit zastaví operace nebo vytiskne na konzolu zprávu „server neodpovídá“ v závislosti na tom, zda je zadána možnost hard/soft.
  • retry=n (hodnota opakování) – Počet minut, po které bude služba NFS opakovat operace připojení, než se vzdá (výchozí 10000).
  • timeo=n (hodnota časového limitu) - Počet desetin sekundy, po kterou služba NFS čeká před opětovným přenosem v případě RPC nebo malého časového limitu (výchozí 7). Tato hodnota se zvyšuje s každým časovým limitem až do maximální hodnota 60 sekund nebo dokud nenastane velký časový limit. V případě vytížené sítě, pomalý server nebo když požadavek prochází více směrovači nebo branami, zvýšení této hodnoty může zlepšit výkon.

Vylepšený výkon NFS

Výkon NFS může být ovlivněn několika parametry, zejména při běhu přes pomalá připojení. Při práci s pomalým a silně zatěžovaným připojením je vhodné použít parametr hard, aby timeouty nezpůsobily zastavení činnosti programů. Musíte si ale uvědomit, že pokud připojíte souborový systém přes NFS s parametrem hard přes fstab a vzdálený hostitel je nedostupný, pak systém při bootování zamrzne.

Jeden ze způsobů, jak zvýšit Výkon NFS- zvýšení počtu bajtů přenesených najednou. Velikost 4096 bajtů je příliš malá pro moderní rychlá spojení Zvýšením této hodnoty na 8192 nebo více můžete experimentálně najít optimální rychlost.

Také byste neměli přehlédnout nastavení časového limitu. NFS čeká na odezvu na přenos dat po dobu specifikovanou ve volbě timeo, není-li během této doby přijata odpověď, provede se opakovaný přenos. U zaneprázdněných a pomalých připojení může být tato doba kratší než doba odezvy serveru a kapacita komunikačního spojení, což vede ke zbytečným opakovaným přenosům, které zpomalují výkon. Ve výchozím nastavení je timeo 0,7 sekundy (700 milisekund). po zjištění přerušení spojení do 700 ms server znovu odešle a zdvojnásobí čekací dobu na 1,4 sekundy, prodlužování timeo bude pokračovat až na maximální hodnotu 60 sekund.

Network File System (NFS) je řešení pro sdílení souborů pro organizace, které používají smíšená počítačová prostředí Windows a Unix/Linux. Soubor systém NFS umožňuje sdílet soubory mezi určenými různými platformami za běhu operačního systému Windows Server 2012: Služby NFS v systému Windows Server 2012 zahrnují následující funkce a vylepšení.

1. Active Directory Search. Pro přístup k souborům máte možnost používat Windows Active Directory. Rozšíření schématu Identity Management for Unix pro Active Directory obsahuje pole Unix User identifier (UID) a group identifier (GID). To umožňuje Serverové služby pro NFS a klient pro NFS zobrazení mapování účtů Uživatelé Windows na Unix přímo ze služeb doména aktivní Adresář (Active Directory Domain Services). Správa identit pro Unix usnadňuje správu mapování uživatelských účtů Windows v Unixu na Active Directory Domain Services.

2. Vylepšený výkon serveru. Služby pro NFS zahrnují ovladač filtru souborů, který výrazně snižuje celkovou latenci při přístupu k souborům na serveru.

3. Podpora speciálních unixových zařízení. Služby pro NFS podporují speciální unixová zařízení (mknod).

4. Rozšířená podpora Unixu. Služby pro NFS podporují následující verze Unix: Sun Microsystems Solaris verze 9, Red Hat Linuxové verze 9, IBM AIX verze 5L 5.2 a Hewlett Packard HP-UX verze 11i, stejně jako mnoho moderních distribucí Linuxu.

Jedním z nejběžnějších scénářů, který vytváří potřebu NFS, je umožnit uživatelům přístup Prostředí Windows na systém plánování podnikových zdrojů (ERP) založený na Unixu. V systému ERP mohou uživatelé vytvářet sestavy a/nebo exportovat finanční data do Microsoft Excel pro další analýzu. Systém souborů NFS umožňuje přístup k těmto souborům ještě v prostředí Windows, čímž se snižuje potřeba specializovaných technických dovedností a čas strávený exportem souborů pomocí unixového skriptu a jejich následným importem do konkrétní aplikace Windows.

Může také nastat situace, kdy máte unixový systém, který se používá k ukládání souborů na nějakém druhu úložné sítě (Storage Oblastní síť- SAN). Spouštění služeb NFS zapnuto Stroj s Windows Server 2012 umožňuje uživatelům v organizaci přistupovat k souborům tam uloženým bez režie skriptování na straně Unixu.

Před instalací Služeb NFS musíte odebrat všechny dříve nainstalované součásti NFS, jako jsou součásti NFS, které byly součástí dodávky Služby pro Unix.

Komponenty služeb NFS

K dispozici jsou následující dvě součásti služeb NFS.

1. Server pro NFS(Server pro NFS). Počítač se systémem Unix obvykle nemá přístup k souborům umístěným v počítači se systémem Windows. Počítač se systémem Windows Server 2012 R2 a Server pro NFS však může fungovat jako souborový server pro počítače se systémem Windows a Unix.

2. Klient pro NFS(Klient pro NFS). Počítač se systémem Windows obvykle nemá přístup k souborům umístěným v počítači se systémem Unix. Počítač se systémem Windows Server 2012 R2 a funkcí Client for NFS však může přistupovat k souborům uloženým na serveru NFS založeném na systému Unix.

Instalace serveru pro systém souborů NFS pomocí prostředí PowerShell

Podívejme se, jak pomocí PowerShellu nainstalovat roli NFS na server a vytvořit sdílenou složku NFS.

1. Otevřete Okno Windows PowerShell přes hlavní panel jako účet správce.

2. Zadejte následující příkazy k instalaci role NFS na server:

PS C:\> Import-Modul ServerManager PS C:\> Add-WindowsFeature FS-NFS-Services PS C:\> Import-modul NFS

3. Zadejte příkaz níže a vytvořte novou sdílenou složku NFS:

PS C:\> New-NfsShare -Název "Test" -Cesta "C:\Shares\Test"

4. Chcete-li zobrazit všechny nové rutiny prostředí PowerShell specifické pro NFS, které jsou k dispozici v systému Windows Server 2012 R2, spusťte následující příkaz:

PS C:\>Get-Command -modul NFS

5. Klepněte pravým tlačítkem myši na složku C:\Shares\Test, vyberte „vlastnosti“ a přejděte na kartu Sdílení NFS. Klikněte na tlačítko Spravovat sdílení NFS, v dialogovém okně, které se zobrazí, můžete spravovat přístupová oprávnění ke složce, povolit anonymní přístup, nakonfigurujte nastavení kódování souborů. Složku můžete sdílet přes NFS pomocí dialogového okna Rozšířené sdílení NFS bez použití PowerShellu.

Nastavení standardních rozlišení

Nyní budeme muset otevřít některé porty brány firewall, aby NFS fungoval. Porty potřebné pro normální fungování Služby NFS jsou uvedeny v tabulce níže.

"a už máte představu o "síťovém souborovém systému", jeho možnostech a stupni zabezpečení. V tomto článku však bylo vše chápáno hlavně z pohledu klienta... ale co dělat, když chcete mít svůj vlastní NFS server? (poznámka: „kurva“ neznamená „přerušit“, ale znamená „nainstalovat a nakonfigurovat“).

No, pokud máte takovou touhu, pak první otázka, kterou byste si měli položit, je: „K čemu koza potřebuje harmoniku? Pro instalaci serveru NFS doma
zcela zbytečné - nikdo to neocení, ale pokud máte to štěstí být správcem v kanceláři „muži v černém“ nebo v nové „HOME Network“ - pak je to úplně jiná věc...

Samotné spuštění serveru je celkem jednoduchá záležitost, pokud si přečtete předchozí článek, zvládnete to docela dobře. Budete tedy potřebovat následující démony:

  • nfsd - přímý servis protokolu
    NFS;
  • mountd - servisní operace montáže;
  • rpc.portmap - démon portů RPC; potřeba, protože požadavky na server NFS jsou odesílány ve formě paketů
    RPC;

Jak to udělat? Je to velmi jednoduché – přejděte do souboru „/etc/rc.d/rc.inet2“ a odkomentujte příslušné řádky. Vše lze považovat za dokončené prvotní spuštění, bude trochu složitější to celé nastavit...
První věc, kterou je třeba rozhodnout, je, kdo má jaká práva ohledně té či oné informace. To se konfiguruje prostřednictvím souboru /etc/exports. Existují oprávnění „číst“ a „číst-zápis“. Jak to nastavit, je popsáno v "Základech"
NFS".

Druhým je samozřejmě zatížení serveru, tzn. množství aktivní uživatelé a jejich vzorové žádosti. Požadavky na NFS server se obvykle dělí na dva typy: první je, když klient pracuje s atributy, druhý je, když klient požaduje data přímo. Požadavky prvního typu jsou hledání souboru, čtení seznamu oprávnění atd., samozřejmě chápete, že lehce zatěžují síť. Požadavky druhého typu jsou přenos a příjem obsahu souboru přímo od klienta; a zde vyvstává otázka: "co se bude přenášet a jak často?" To je zvláště důležité, pokud máte síť 10 Mbit/s (no, zjednodušeně řečeno standardní ruskou síť). Pokud víte, pak 10 Mbit/s je o něco více než 1 MB za sekundu; Přirozeně, pokud jsou neustále přenášeny soubory o velikosti desítek megabajtů, síť prostě zemře. Pokud je to vaše situace, budete muset nastavit ukládání dat do mezipaměti klientský stroj(biod démona). Poté, co si klient jednou vyžádal soubor a znovu k němu přistoupil, jej znovu „nestáhne“ ze serveru, ale vezme si jej ze své mezipaměti; zároveň bude pravidelně kontrolováno, zda se soubor na serveru nezměnil, a v případě zjištění skutečnosti změny bude soubor v mezipaměti nahrazen „čerstvou verzí“
(jak jistě víte, kontrola „má soubor změněn“ je dotaz „podle atributů“, který je často stokrát menší než samotný soubor).

No: spustili jsme NFS server, nadefinovali přístupová oprávnění, vypořádali se se zátěží... Teď už zbývá jen naplnit šroubek potřebnými informacemi a použít
Možnosti NFS na maximum...

Místo závěru:

Pokud stojíte před otázkou organizace výměny dat v síti, pak neváhejte a zvolte NFS – NFS je o tři hlavy vyšší než
FTP je hlava a ramena nad „balony“ Windows a není tak těžké jej nastavit...

Ne každý je obeznámen s protokoly přenosu dat. Ale mnoho lidí by chtělo propojit své počítače do jedné sítě nebo použít server k ukládání souborů. Jedním ze způsobů, jak toho dosáhnout, je NFS. Jak nastavit NFS server v Ubuntu - čtěte dále.

Správnou konfigurací NFS můžete kombinovat počítače na různých operačních systémech do jedné sítě.

Network File System je síťový protokol pro přístup k souborům. Jako obvykle se skládá ze dvou částí. Jedním je klientský, který je umístěn na počítači, ze kterého jsou vzdálená data prohlížena. Druhý - server - je umístěn na počítači, kde jsou tato data uložena. Obzvláště v lokální síti je docela vhodné využít další místo na disku. A pokud se bavíme o nějakých firemních PC, tak je to prostě nutné.

v čem je to jiné?

Dnes existuje velký počet protokoly a různé software, který plní stejné funkce. V čem NFS vyniká?

  • Možnost propojení počítačů na různých operačních systémech do jedné sítě. Často je vhodné připojit OS Windows přes NFS k unixovému systému, například Ubuntu. Samba existuje a používá se ke stejným účelům, ale NFS je lehčí, jednodušší a rychlejší než tento program, protože je implementován na úrovni jádra. Nastavení přístupu přes něj bude proto většinou jednodušší.
  • NFS poskytuje transparentní přístup k souborům. To znamená, že všechny vzdálené soubory se přehrávají úplně stejně jako ty místní. Programy není třeba upgradovat, aby bylo možné přehrávat jakýkoli soubor umístěný na serveru.
  • NFS odešle pouze požadovanou část souboru, nikoli celý soubor.

Nainstalujte síťový souborový systém pro plnohodnotnou práci vyžaduje alespoň dva počítače: server a klient. Přirozeně, že začátečník bude muset tvrdě pracovat serverová část, protože zde je nutné „sdílet“ (otevřený přístup) složky. To vše se však provádí poměrně snadno.

Stejně jako většina protokolů pro přenos dat není NFS vůbec mladý. Byl vyvinut v roce 1984 a byl určen pro systémy UNIX. To je stále hlavní role NFS, ale mnozí zjistili, že je velmi pohodlné propojit počítače s Windows a Linux. NFS je navíc skvělé pro přehrávání multimediálního obsahu přes lokální domácí síť. Samba v této roli často zamrzne a zpomalí.

Instalace backendu NFS

Serverovou část protokolu nainstalujeme na Ubuntu 16.04. Přirozeně, pokud máte Server edition, proces se nijak neliší. Jde jen o to, že v tradiční verzi Ubuntu lze některé akce provádět pomocí grafického rozhraní.

Nainstalujte program. Chcete-li to provést, můžete použít centrum pro stahování aplikací nebo jednoduše zadat příkaz:

sudo apt install nfs-kernel-server

Poté by bylo užitečné zkontrolovat správnost instalace. Není to nutné, ale stejně to zkontrolujeme. Zadejte příkaz:

Port by měl být všude 2049.

Nyní zkontrolujeme, zda jádro podporuje NFS. Chcete-li to provést, zadejte:

cat /proc/filesystems | grep nfs

Výsledná hodnota by měla vypadat takto: nodev nfsd

To znamená, že vše funguje správně. Pokud ne, zadejte příkaz:

Pomocí něj si sami nainstalujeme modul jádra.

Přidejte protokol do automatického spuštění. Není to nutné, ale je velmi nepohodlné jej pokaždé zapínat. Opět jej můžete přidat pomocí speciální položky nabídky v nastavení nebo jej můžete přidat sami pomocí příkazu:

sudo systemctl povolit nfs

Serverovou část jsme tedy nainstalovali, zbývá ji jen správně nakonfigurovat a přejít na klientskou část.

Nastavení

Nastavení NFS v Ubuntu zahrnuje sdílení určitých složek.

Kromě jednoduchého povolení přístupu musíte také zadat parametry, které určují možnosti uživatele ve vztahu k této složce.

  • rw - čtení a zápis Tato volba umožňuje čtení a zápis souborů ve složce.
  • ro - pouze čtení - umožňuje pouze čtení složky.
  • synchronizace (výchozí) - parametr zajišťuje spolehlivost přenosu. Pokud je povolena, nebudete moci přenášet více souborů současně nebo do různých počítačů. Toto nastavení vám zabrání reagovat na další požadavky. Zabraňuje ztrátě dat, ale přenos může být pomalejší.
  • async je inverzní hodnota k předchozímu parametru. Přenos je rychlejší, ale hrozí ztráta informací.
  • secure – tato možnost vám umožňuje používat pouze porty pod 1024. Ve výchozím nastavení povoleno.
  • nezabezpečený - umožňuje použití libovolných portů.
  • nohide - pokud připojíte několik adresářů, včetně vnořených, pak se vnořené adresáře na rozdíl od nadřazeného adresáře zobrazí jako prázdné. Parametr to pomůže vyřešit
  • anonuid - určuje uid pro anonymní uživatele. Toto je speciální ID uživatele.
  • anongid - určuje gid pro anonymní uživatele. GID (Group ID) - další identifikátor uživatele.
  • no_subtree_check - funkce zakáže kontrolu podstromu. Faktem je, že bez něj NFS navíc kontroluje, zda mají přístup pouze uživatelé požadované sekce katalog. To vše zpomaluje. Tento parametr to zrychluje, ale snižuje bezpečnost.

Použijeme je podle toho, co je v konkrétní situaci potřeba.

Pojďme tvořit nová složka. Můžete použít i nový. Naše složka bude /var/network.

Nyní musíte tuto složku přidat do souboru /etc/exports. Jsou tam uloženy všechny otevřené soubory a složky. přístup k síti. Záznam by měl vypadat takto:

/var/network168.1.1(rw,async,no_subtree_check)

192.168.1.1 je IP, přes kterou přenášíme. Je povinné jej uvést.

Aktualizujte exportní tabulku:

Nyní zkusme přistupovat ke složce ze strany klienta.

Instalace a konfigurace klientské části NFS

Ubuntu

Na Ubuntu není připojení nakonfigurovaného serveru obtížné. To se provádí pomocí několika příkazů.

Nainstalujte speciální klientský balíček:

sudo apt install nfs-common

sudo mount 192.168.1.1:/var/network/ /mnt/

Síťová složka je připojena. Pomocí df můžete zkontrolovat všechny připojené síťové složky:

Úroveň přístupu můžete také zkontrolovat pomocí speciálního příkazu:

Zakažte souborový systém takto:

Příkaz mount se používá téměř všude. Zodpovídá za proces montáže, tedy přípravu místa na pevném disku k použití operační systém. Zní to složitě, ale když to zjednodušíme, ukáže se, že síťové soubory jednoduše přeneseme do našeho počítače do nově vytvořené složky. Zde se nazývá /mnt/.

Windows

S Windows je zpravidla vše mnohem složitější. NFS klient lze bez problémů spustit na každém server Windows. Ze standardních je přítomen na:

  • Windows 7 Ultimate/Enterprise
  • Windows 8/8.1 Enterprise
  • Windows 10 Enterprise

Nikde jinde to nejde najít. Pokud máte jednu z těchto verzí, postupujte takto:

  1. Otevřete nabídku „Programy a funkce“.
  2. Klikněte na „Přidání součástí“.
  3. Najdeme tam NFS a nainstalujeme pouze „Client for NFS“ nepotřebujeme další komponentu.

Po připojení je vše připojeno stejným příkazem:

mount 192.168.1.1:/var/network/ /mnt/

Můžete jej odpojit následovně:

Příkazy se zadávají do příkazového řádku spuštěného jako správce. Poté můžete snadno najít požadovaný síťový disk pomocí Průzkumníka.

Co dělat, pokud v počítači není klient NFS? Můžete zkusit stáhnout software z webu společnosti Microsoft nebo z zdroje třetích stran. Je možné, že zde budou potřeba další příkazy nebo akce.

Nyní máte základní představu o tom, jak můžete NFC používat a jak se chovat nejjednodušší nastavení. Tyto znalosti stačí k vytvoření přístupu z jednoho počítače do druhého. Kromě toho může počítač se systémem Windows fungovat také jako klient.




Nahoru