GNU/Linux >> Znalost Linux >  >> Linux

Otázky k rozhovoru se systémem Linux Network File System (NFS).

Co je to NFS?

Network File System (NFS) je jedním z nejstarších produktů pro sdílení počítačových souborů, které dnes existují. Stále je nejoblíbenější pro sdílení adresářů souborů mezi systémy UNIX a Linux. NFS umožňuje serverům určit konkrétní adresáře, které je zpřístupní určeným hostitelům, a poté umožňuje klientským systémům připojit se k těmto adresářům jejich místním připojením.

NFS může být zabezpečeno pomocí pravidel firewallu (iptables), TCP wrapperů (pro povolení a odepření přístupu hostitele) a SELinux (pro omezení toho, jak mohou protokoly pro sdílení souborů sdílet prostředky NFS). Ačkoli byl NFS ve své podstatě nezabezpečený, když byl vytvořen (data jsou sdílena nešifrovaná a přístup uživatelů je poměrně otevřený), funkce NFS verze 4 pomohly zlepšit celkové zabezpečení NFS.

Co jsou NFS Server a procesy RPC

Spuštěním služby nfs-server se spustí server NFS a další procesy RPC potřebné ke zpracování požadavků na sdílené systémy souborů NFS. Můžete použít krátký název „nfs “ spíše než „nfs-server “ při spuštění služby. Příklad:

# systemctl start nfs

Toto je proces serveru NFS, který implementuje část služby NFS na úrovni uživatele. Hlavní funkcionalitu má na starosti modul jádra nfsd. Program uživatelského prostoru pouze specifikuje, na jakém druhu soketů server jádra naslouchá, jaké verze NFS podporuje a kolik vláken jádra nfsd používá. Pomocí příkazu ps –e zobrazíte počet běžících vláken.

# ps -ef | grep nfs
root      9093     2  0 11:21 ?        00:00:00 [nfsd4_callbacks]
root      9099     2  0 11:21 ?        00:00:00 [nfsd]
root      9100     2  0 11:21 ?        00:00:00 [nfsd]
root      9101     2  0 11:21 ?        00:00:00 [nfsd]
root      9102     2  0 11:21 ?        00:00:00 [nfsd]
root      9103     2  0 11:21 ?        00:00:00 [nfsd]
root      9104     2  0 11:21 ?        00:00:00 [nfsd]
root      9105     2  0 11:21 ?        00:00:00 [nfsd]
root      9106     2  0 11:21 ?        00:00:00 [nfsd]

Počet vláken nfsd ke spuštění je definován v /proc/fs/nfsd/threads soubor. V tomto příkladu je zadáno 8 vláken nfsd:

# cat /proc/fs/nfsd/threads
8

Spuštění služby nfs-server také spustí procesy RPC. K zobrazení názvů procesů RPC můžete použít příkaz ps –e.

# ps -e | grep -i rpc
  177 ?        00:00:00 rpciod
 9080 ?        00:00:00 rpc.statd
 9081 ?        00:00:00 rpc.idmapd
 9082 ?        00:00:00 rpcbind
 9083 ?        00:00:00 rpc.mountd
 9084 ?        00:00:00 rpc.rquotad

rpc.statd

Tento proces implementuje protokol RPC Network Status Monitor (NSM), který klienty NFS upozorní, když je server NFS restartován, aniž by byl řádně spuštěn. Toto se nepoužívá s NFSv4.

rpc.mountd

Toto je démon připojení NFS, který implementuje požadavky na připojení od klientů NFSv3 na straně serveru. Zkontroluje, zda je požadovaná sdílená složka NFS aktuálně exportována serverem NFS a zda k ní má klient povolen přístup. Pro NFSv4 je k nastavení exportů vyžadován démon rpc.mountd pouze na serveru NFS.

rpc.idmapd

To poskytuje NFSv4 klienta a server upcalls, která mapují mezi on-the-wire názvy NFSv4 (což jsou řetězce ve tvaru uživatel@doména) a místní UID a GID. Aby idmapd fungoval s NFSv4, musí být nakonfigurován /etc/idmapd.conf. Tato služba je vyžadována pro použití s ​​NFSv4, i když ne v případě, že všichni hostitelé sdílejí stejný název domény DNS.

rpc.rquotad

Tento proces poskytuje informace o uživatelských kvótách pro vzdálené uživatele. Spouští se automaticky službou nfs a nevyžaduje uživatelskou konfiguraci. Výsledky jsou používány příkazem kvóty k zobrazení uživatelských kvót pro vzdálené systémy souborů a příkazem edquota k nastavení kvót pro vzdálené systémy souborů.

uzamčeno

Toto je vlákno jádra, které běží na klientech i serverech. Implementuje protokol Network Lock Manager (NLM), který umožňuje klientům NFSv3 zamykat soubory na serveru. Spouští se automaticky při každém spuštění serveru NFS a při každém připojení souborového systému NFS.

nfslock

Spuštěním této služby se spustí procesy RPC, které klientům NFS umožňují uzamknout soubory na serveru.

Jak nakonfigurovat server NFS a klienta NFS v CentOS/RHEL?

Přečtěte si prosím níže uvedené příspěvky pro konfiguraci serverů NFS a klientských počítačů.

Průvodce NFS pro začátečníky v CentOS / RHEL
CentOS / RHEL 7 :Konfigurace serveru NFS a klienta NFS

Co jsou konfigurační soubory pro NFS server?

Primární konfigurace serveru NFS je soubor /etc/exports. Toto je soubor, který používáte k určení, které adresáře chcete sdílet s klienty NFS. Syntaxe tohoto souboru je:

Directory      hostname(options)

Hodnota Directory by měla být nahrazena názvem adresáře, který chcete sdílet (například /usr/share/doc). Hodnota hostname by měla být název hostitele klienta, který lze přeložit na adresu IP. Hodnota options se používá k určení, jak má být prostředek sdílen.

Například následující záznam v souboru /etc/exports by sdílel adresář /usr/share/doc s klientem NFS client01 (s možnostmi čtení-zápis) a klientem NFS client02 (s možností pouze pro čtení ):

# vi /etc/exports
/usr/share/doc      client01(rw) client02(ro)

Všimněte si, že mezi názvem/volbami client01 a client02 je mezera, ale žádná mezera mezi názvem hostitele a jeho odpovídající volbou.

Pochopení souboru /etc/exports

Jaké jsou nejběžněji používané možnosti sdílení NFS v /etc/exports

Existuje mnoho různých možností sdílení NFS, včetně těchto:

  • rw :Sdílet jako čtení i zápis. Mějte na paměti, že stále platí normální oprávnění systému Linux. (Všimněte si, že toto je výchozí možnost.)
  • ro :Sdílet pouze pro čtení.
  • synchronizovat :Změny dat souborů se na disku provádějí okamžitě, což má dopad na výkon, ale je méně pravděpodobné, že povede ke ztrátě dat. U některých distribucí je to výchozí.
  • asynchronní :opak synchronizace; změny dat souboru se zpočátku provádějí v paměti. To zrychlí výkon, ale pravděpodobněji to povede ke ztrátě dat. U některých distribucí je to výchozí.
  • root_squash :Mapujte účet uživatele root a účet skupiny z klienta NFS na anonymní účty, obvykle buď účet Nobody, nebo účet nfsnobody. Další podrobnosti naleznete v další části „Mapování ID uživatele“. (Všimněte si, že toto je výchozí možnost.)
  • no_root_squash :Mapujte účet uživatele root a skupiny z klienta NFS na místní účty root a skupiny.
Běžné možnosti připojení NFS v Linuxu

Jak získat informace o výkonu sdílených složek NFS?

Příkaz nfsiostat funguje jako příkaz iostat s výjimkou pouze přípojných bodů NFS. Nfsiostat získává vstup z /proc/self/mountstats a poskytuje informace o vstupním/výstupním výkonu sdílených složek NFS nainstalovaných v systému. Příkaz nfsiostat poskytuje nfs-utils balíček.

Níže je ukázkový výstup z příkazu nfsiostat.

Níže uvedená tabulka zobrazuje krátký popis každého sloupce ve výstupu about.

Pole Popis
op/s Toto je počet operací za sekundu.
rpc bklog Toto je délka fronty nevyřízených záležitostí.
kB/s Toto je počet kB zapsaných/přečtených za sekundu.
kB/op Toto je počet kB zapsaných/přečtených na každou operaci.
retrans Toto je počet opakovaných přenosů.
prům. RTT (ms) Toto je doba od okamžiku, kdy jádro klienta odešle požadavek RPC, do okamžiku, kdy obdrží odpověď.
avg exe (ms) Jedná se o dobu od okamžiku, kdy klient NFS odešle požadavek RPC svému jádru, až do dokončení požadavku RPC, včetně výše uvedeného času RTT.

Níže je uvedena syntaxe pro použití příkazu nfsiostat.

# nfsiostat --help
Usage: nfsiostat [interval] [count] [options] [mount point]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit

  Statistics Options:
    File I/O is displayed unless one of the following is specified:

    -a, --attr          displays statistics related to the attribute cache
    -d, --dir           displays statistics related to directory operations
    -p, --page          displays statistics related to the page cache

  Display Options:
    Options affecting display format:

    -s, --sort          Sort NFS mount points by ops/second
    -l LIST, --list=LIST
                        only print stats for first LIST mount points

Zde,
interval – čas v sekundách mezi jednotlivými zprávami.
počet – počet zpráv, které mají být vygenerovány v intervalu [interval] sekund od sebe. Pokud zde počet neuvedete, přehled se bude generovat průběžně v zadaném intervalu.
možnosti – Různé možnosti jsou vysvětleny v příkladech níže.
mount_point – můžete určit konkrétní bod připojení NFS, pro který se mají zobrazit statistiky. V tomto případě se generuje zpráva pouze pro zadaný bod připojení.

Jak zobrazit aktuálně sdílené sdílení NFS?

Příkaz exportfs lze na serveru NFS použít k zobrazení toho, co je aktuálně sdíleno:

# exportfs
/share          [world]

Jak sdílet prostředek NFS pomocí příkazového řádku?

Příkaz exportfs lze také použít k dočasnému sdílení prostředku za předpokladu, že služby NFS již byly spuštěny:

# exportfs -o ro 192.168.1.100:/usr/share/doc
# exportfs
/usr/share/doc  192.168.1.100
/share          [world]

-o volba se používá k určení možností sdílení. Argument obsahuje název systémů, se kterými chcete sdílet, a také adresář, který chcete sdílet, oddělené dvojtečkou (:).

Pokud provedete změny v souboru /etc/exports, bude po restartu povolena jakákoli nově přidaná sdílená položka. Pokud chcete tyto změny povolit okamžitě, proveďte následující příkaz:

# exportfs –a

Jak připojit sdílenou složku NFS na klientské systémy?

Jakmile je sdílená složka NFS exportována ze serveru NFS, lze ji připojit ke způsobilým klientům pomocí níže uvedené syntaxe příkazu:

# mount [NFS server IP or hostname]:/share/path /client/path

Pokud je například /exports/downloads sdílen ze serveru NFS 10.10.10.100, můžeme jej připojit na klientský server jako adresář /mnt/downloads pomocí níže uvedeného příkazu:

# mount 10.10.10.100:/exports/downloads /mnt/downloads

Jak odpojit souborový systém NFS?

Po připojení souborového systému NFS je jeho odpojení jednoduché. Příkaz umount použijete buď s místním bodem připojení, nebo se jménem vzdáleného souborového systému. Například:

# umount /mnt/nfs_mnt

nebo:

# umount 10.10.10.100:/nfs_share

Jak získat seznam klientů připojených k serveru NFS?

Chcete-li získat seznam klientů připojených k serveru NFS, použijte příkaz showmount z příkazového řádku terminálu. Chcete-li také zobrazit adresáře, ke kterým jsou klienti připojeni, použijte:

# showmount -a

Jaký je výchozí port používaný serverem NFS?

Ve výchozím nastavení server NFS používá port 2049.

Jaké porty musí být otevřené ve firewallu, aby NFS fungovalo?

Aby server NFS správně fungoval, musí být otevřeny porty TCP a UDP 2049 (nfs) a 111 (rpcbind). Server musí také otevřít porty TCP a UDP 20048, aby příkaz showmount mohl vyhledávat dostupné sdílené adresáře NFS z rpc.mountd na serveru.

Jak zobrazit sdílené položky NFS z klientských systémů?

V klientském systému Linux můžete pomocí příkazu showmount zjistit, jaké sdílené adresáře jsou dostupné na vybraném počítači, jako v tomto příkladu:

$ showmount -e server.example.com
/export/myshare client.example.com
/mnt/public *

Výstup showmount ukazuje, že sdílený adresář s názvem /export/myshare je dostupný pouze hostiteli client.example.com. Sdílený adresář /mnt/public je však dostupný komukoli.

Jak zobrazit připojené body připojení NFS na klientovi NFS?

Pomocí níže uvedeného příkazu zobrazíte připojené body připojení NFS na klientském serveru NFS:

# mount -t nfs4

Příklad výstupu:

# mount -t nfs4
10.10.10.100:/mnt on /mnt/fed type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.20.200,local_lock=none,addr=10.10.20.200)

Výstup příkazu mount -t nfs4 zobrazuje pouze ty souborové systémy připojené ze souborových serverů NFS.

Jak připojit souborové systémy NFS při spouštění?

Chcete-li nastavit souborový systém NFS tak, aby se automaticky připojoval k určenému bodu připojení při každém spuštění systému Linux, musíte do souboru /etc/fstab přidat položku pro tento souborový systém NFS.

Zde je formát pro přidání souborového systému NFS do vašeho místního systému:

host:directory    mountpoint   nfs   options   0   0

První položka (host:directory) identifikuje počítač serveru NFS a sdílený adresář. bod připojení je místní bod připojení, ke kterému je připojen adresář NFS. Za ním následuje typ souborového systému (nfs). Jakékoli možnosti související s připojením se zobrazí jako další v seznamu odděleném čárkami. (Poslední dvě nuly konfigurují systém tak, aby nevypisoval obsah souborového systému a nespouštěl fsck na souborovém systému.)

Níže jsou uvedeny příklady položek NFS v /etc/fstab:

# vi /etc/fstab
nfs_server01:/data    /mnt/data      nfs    bg,rsize=8192,wsize=8192  0  0

Jak používat autofs k připojení souborových systémů NFS na vyžádání?

Zařízení autofs připojí síťové souborové systémy na vyžádání, když se někdo pokusí použít souborové systémy. S konfigurací a zapnutou funkcí autofs můžete na požádání zařídit připojení všech dostupných sdílených adresářů NFS. Chcete-li použít funkci autofs, musíte mít nainstalovaný balíček autofs.

S povoleným autofs, pokud znáte název hostitele a adresář sdílený jiným hostitelským počítačem, jednoduše změňte (cd) na adresář autofs (standardně /net nebo /var/autofs). To způsobí, že sdílený prostředek bude automaticky připojen a zpřístupněn vám. Následující kroky vysvětlují, jak zapnout funkci autofs ve Fedoře nebo RHEL:

1. Jako uživatel root otevřete soubor /etc/auto.master soubor a vyhledejte následující řádek:

# vi /etc/auto.master
/net -hosts

To způsobí, že adresář /net bude fungovat jako přípojný bod pro sdílené adresáře NFS, ke kterým chcete v síti přistupovat.

2. Chcete-li spustit službu autofs v systému CentOS/RHEL 7 nebo novějším, zadejte jako uživatel root následující:

# systemctl start autofs.service

3. V systému CentOS/RHEL 7 nebo novějším nastavte službu autofs tak, aby se restartovala při každém spuštění systému:

# systemctl enable autofs

Jak nakonfigurovat firewall na serveru NFS?

Aby server NFS fungoval, povolte služby nfs, mountd a rpc-bind v příslušné zóně v aplikaci firewall-config nebo pomocí firewall-cmd :

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


Linux
  1. Zlepšete výkon systému Linux pomocí noatime

  2. 40 Linuxových otázek k pohovoru pro Freshers Část-2

  3. 25 nejčastějších otázek a odpovědí v rozhovoru pro Linux

  1. 25 nejčastějších otázek k pohovoru o Linuxu

  2. Otázky k rozhovoru s Linuxem:Otevřít soubory / Otevřít deskriptory souborů

  3. Otázky k rozhovoru:Linux Package Manager (RPM)

  1. Rychlá konfigurace serveru NFS na systému Redhat 7 Linux

  2. Odstraňování běžných problémů s NFS v Linuxu

  3. Ubuntu Linux – sdílené VHDX