přejít na obsah přejít na navigaci

Linux E X P R E S, Sdílení pomocí NFS

Vera

Sdílení pomocí NFS

NFS (Network File System) označuje síťový systém souborů, který se používá pro sdílení dat mezi linuxovými systémy, podobně jako třeba smbfs (Samba File System) se používá pro sdílení dat mezi stanicemi s Linuxem a MS Windows. Výhodou NFS je přitom snadnost nastavení sdílení a rychlost přenosu dat, nevýhodou pak poněkud omezené možnosti zabezpečení sdíleného datového prostoru. Pojďme se teď podívat na to, jak se NFS používá, však je to snadné.


reklama

Na počítači, kde chcete sdílet nějaký adresář, je potřeba nainstalovat balíček nfs-kernel-server (takto se jmenuje v distribuci Debian, v jiných linuxových systémech může být jméno jiné). Na klientském počítači není třeba zpravidla nic doinstalovávat.

Další informace o souborovém systému NFS si můžete přečíst v našem článku NetworkFile System.

Jednoduché sdílení dat

Nastavení sdílení se provádí v souboru /etc/exports na serveru. Dál předpokládejme, že chceme sdílet adresář /mnt/disk všem počítačům v síti tak, aby z něj mohly číst. V tomto případě a díky výchozím hodnotám bude stačit do souboru /etc/exports přidat řádek:

/mnt/disk

A znovu načíst nastavení na serveru příkazem:

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

Přitom vás NFS server upozorní na použití výchozí hodnoty (no_subtree_check). Této hlášky si ovšem nemusíte všímat a nasdílení adresáře bude úspěšně provedeno. Ve výchozím nastavení jsou adresáře sdíleny pouze pro čtení (read only - ro).

Na klientském počítači zadejte (s právy uživatele root) příkaz:

mount -t nfs <jméno počítače>:/mnt/disk <adresář kam to připojit>

Místo jména počítače (pokud není uvedeno v /etc/hosts nebo na DNS serveru) také můžete použít jeho IP adresu. Adresář, do kterého budete sdílený adresář připojovat, samozřejmě musí předem existovat. Celý příkaz by mohl vypadat třeba takto:

mount -t nfs 192.168.1.1:/mnt/disk /home/martin/disk

Připojení můžete také provést pomocí nastavení souboru /etc/fstab, do kterého bychom analogicky přidali řádek:

192.168.1.1:/mnt/disk /home/martin/disk nfs defaults 0 0

Pokud byste navíc nechtěli adresář připojovat automaticky po startu počítače, ale naopak ručně obyčejným uživatelem, stačí upravit řádek takto:

192.168.1.1:/mnt/disk /home/martin/disk nfs user,noauto 0 0

Vlastní připojení adresáře pak provedete zadáním příkazu:

mount /home/martin/disk

Ať už s právy uživatele root nebo bez nich, v závislosti na předchozím nastavení.

Zatím jsme použili pouze výchozí hodnoty NFS, a tak se pojďme nyní podívat na některé další možnosti.



Pokročilé možnosti nastavení

Úpravou souboru /etc/exports můžete nastavit práva pro zápis (read/write - rw) a také se často hodí použít synchronní přenos (sync) proti často výchozímu asynchronnímu přenosu (async).

/mnt/disk  (rw,sync)

Pozor, při sdílení adresáře pro zápis je nutné nastavit odpovídající práva na tomto adresáři. Obvykle stačí pro rekurzivní změnu oprávnění na serveru zadat např. následující:

chmod -R a+w /mnt/disk

Při synchronním přenosu dochází k okamžitému zápisu na zařízení ihned při započetí kopírování. Asynchronní přenos naopak zapisuje "kdy se mu to zlíbí" (podle zátěže zařízení), nejpozději však v okamžiku odpojení (volání umount) zařízení.

Zatím adresář sdílíme všem počítačům, a nyní dokonce pro zápis. To není jistě nejbezpečnější, a tak omezme přístup pouze pro určité počítače. Pokud bychom chtěli umožnit zápis počítači s IP adresou 192.168.1.10 a zbytku této sítě nastavit přístup pouze pro čtení, pak bychom řádek upravili takto:

/mnt/disk  192.168.1.10(rw,sync) 192.168.1.0/255.255.255.0(ro)

Samozřejmě, že kromě IP adresy můžete uvádět také jména počítačů, podmínkou ovšem je, aby server jméno klienta znal (ať už třeba z DNS nebo ze souboru /etc/hosts). Také si všimněte vymezení sítě pomocí její masky. V případě, že budete chtít používat jména počítačů, pak můžete také používat hvězdičkovou konvenci (např. *.firma.cz), s IP adresou tato kombinace ale není vhodná.

Pokud se navíc chcete zbavit více či méně otravné hlášky zobrazované při znovunačtení pravidel souboru /etc/exports a informující o použití výchozí možnosti no_subtree_check, stačí jen volbu přidat na odpovídající místa:

/mnt/disk  192.168.1.10(rw,sync,no_subtree_check) 192.168.1.0/255.255.255.0(ro,no_subtree_check)

Tato možnost je výchozí a její přidání je tak pouze kosmetickou změnou nastavení. Zapnutí této možnosti může zvýšit rychlost přenosu dat, ta je u NFS i tak docela vysoká.

A jak to je s přenosem práv? Pokud na klientském počítači pod obyčejným uživatelem vytvoříte např. adresář, budou tomuto adresáři nastavena práva právě pro uživatele, který adresář vytvořil. Tady žádná změna není. Na druhou stranu platí, že není root jako root, a tak pokud tento adresář na klientovi vytvoříte s právy místního uživatele root, pak bude tento uživatel namapován na uživatele nobody na serveru. Pokud byste toto chování chtěli změnit a mapovat místního uživatele root na vzdáleného uživatele root, pak se to provádí přidáním volby no_root_squash, např. takto:

/mnt/disk 192.168.1.10(rw,sync,no_subtree_check,no_root_squash)

Tato volba je však bezpečnostním rizikem a tak je lépe se jí vyhnout.

Zkuste NFS a sami uvidíte, zda vám bude vyhovovat, nebo ne. Jistě vás mile překvapí rychlostí i jednoduchým nastavením sdílených adresářů. Pokud chcete přenést data mezi dvěma linuxovými systémy, je NFS jasnou (nikoliv však jedinou) možností, jak to provést.

Nahoru

Odkazy

(Jako ve škole)
Průměr: 1,69 | Hodnotilo: 13
 

Top články z OpenOffice.cz

Příspěvky

Jiří Ježek Sdílení pomocí NFS
cmudik 24. 08. 2009, 13:37:42
Odpovědět  Odkaz 
Jen doplním, že v ubuntu jsem musel na klientském počítači doinstalovat balík nfs-common.
Re:Sdílení pomocí NFS
xXx 25. 08. 2009, 10:04:11
Odpovědět  Odkaz 
Opravdu zajimavy postreh ;o/
Sdílení pomocí NFS
Pj 25. 08. 2009, 11:54:33
Odpovědět  Odkaz 
mno vyhodou je jen ta rychlost a moznosti nastaveni a rozhodne veke minus je zavislost na linuxu (u >sdileni< dat je to dost problem!).

ale nastaveni rozhodne neni trivialni.
co treba takova taskarice jako pruchod NFS via FW? a tech veci je tam vice.

doporucuji a to presto ze nfs jako jedine pouzivam uz leta, pokud nemate vylozene problem s rychlosti, urcite pouzijte sambu pripadne FTP (ftpfs je vsak velmi specificky pripad)

nekde jsem to hodne probiral s kolegy -- rychlosti, vykon zpusoby nastaveni apod. ...ted nevim ... cs konference debianu?
Jiří Eischmann Re:Sdílení pomocí NFS
Jiří Eischmann 25. 08. 2009, 19:04:36
Odpovědět  Odkaz 
Já si sdílení pomocí NFS pochvaluju, mám jen počítače s Linuxem a nastavení je rychlé a jednoduché. Zkoušel jsem porovnat rychlost s FTP a nepřišlo mi rychlejší.
Martin Šín Re:Re:Sdílení pomocí NFS
Martin Šín 25. 08. 2009, 19:22:06
Odpovědět  Odkaz 
Ono to je jak plácnutí do vody ale: http://forums.neurostechnology.com/index.php?topic=9263.0 Subjektivně mi NFS přijde nejrychlejší .. ;-)
Jiří Ježek Re:Re:Re:Sdílení pomocí NFS
cmudik 25. 08. 2009, 20:27:11
Odpovědět  Odkaz 
NFS je u mě 2x rychlejší než Samba. Jen mám takový problém, že po nějakym čase, co je NFS připojen, když ho chci v Nautilu procházet, tak mě zobrazuje jen prázdný složky. Musim znovu připojit a odpojit. Pak je vše v pořádku a share je úplný.
a co s pravami ?
Coudy 12. 11. 2009, 21:33:32
Odpovědět  Odkaz 
skusal som nfs medzi viac pc a viac uzivatelmi, ako dosiahnem mapovanie uzivatelov ako pri cifs ? username= ... ?
Sdílení pomocí NFS
Habo 21. 02. 2010, 17:06:27
Odpovědět  Odkaz 
Skusal som ale neide to :(
server:
$ /etc/init.d/nfs-kernel-server reload
* Re-exporting directories for NFS kernel daemon... exportfs: could not open /var/lib/nfs/etab for locking
exportfs: can't lock /var/lib/nfs/etab for writing
klient:
$ mount /home/michal/martin
mount.nfs: access denied by server while mounting martinov-pc:/media/shared
Vie niekto co s tym? (chmod som skusal...)
Milan Kozák Re:Sdílení pomocí NFS
Milan Kozák 21. 02. 2010, 19:17:15
Odpovědět  Odkaz 
Příkazy je potřeba spouštět s právy super uživatele. Použijte program sudo nebo pracujte pod rootem (nedoporučuji).
Re:Re:Sdílení pomocí NFS
Habo 21. 02. 2010, 23:48:38
Odpovědět  Odkaz 
Aha, vdaka! :) So sudo to ide vyborne. Nejako som zabudol na to carovne slovicko...
Sdílení pomocí NFS
GeBu 8. 06. 2013, 15:29:26
Odpovědět  Odkaz 
A jak je to s tou rychlostí v porovnání s fish?

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Martin Šín

Martin Šín

Martin Šín (*1980) vystudoval pedagogickou fakultu a nyní pracuje jako učitel matematiky a výpočetní techniky na střední škole. Ve volném čase překládá a také hraje hry (ani jedno mu příliš nejde). V práci se snaží prosazovat open-source programy.


  • Distribuce: Debian
  • Hodnocení autora: **

| proč linux