Provozuji malý server pro náš plochý podíl. Většinou se jedná o souborový server s některými doplňkovými službami. Klienty jsou linuxové stroje (většinou Ubuntu, ale také některé další distribuce) a některé Mac (-Book) mezi nimi (ale nejsou pro tuto otázku důležité). Na serveru běží Ubuntu 11.10 (Oneiric Ocelot) ‚Server Edition‘, systém, ze kterého provádím nastavení a testování, běží na ‚Desktop Edition‘ 11.10. Sdíleli jsme své akcie se Sambou (kterou jsme více obeznámeni) nějakou dobu, ale pak jsme migrovali na NFS (protože v síti LAN nemáme žádné uživatele Windows a chceme to vyzkoušet) a zatím vše funguje dobře .
Nyní chci nastavit automatickou montáž pomocí autofs aby se to urovnalo (dosud každý připojoval sdílené položky ručně, když je to potřeba). Zdá se, že automatická montáž také funguje. Problém je v tom, že náš „server“ neběží 24 hodin denně, 7 dní v týdnu, aby se šetřila energie (pokud někdo potřebuje věci ze serveru, zapne ho a poté ho vypne, takže každý den běží jen pár hodin). Ale od nastavení autofs se klienti často zavěšují, když server neběží.
-
Mohu spustit všechny klienty v pohodě, i když server neběží.
-
Ale když chci zobrazit adresář (v terminálu nebo nautilu), který obsahuje symbolické odkazy na sdílenou položku pod
/nfs
zatímco server neběží, zasekne se alespoň dvě minuty (protože autofs se nemůže připojit k serveru, ale předpokládám, že to zkouší).- Existuje způsob, jak se tomu vyhnout? Takže by připojení bylo zpožděno, dokud se nezmění adresář nebo dokud nebude přístup k obsahu tohoto adresáře? Ne, když se „podíváte“ na odkaz na sdílení pod
/nfs
? Myslím, že ne, ale možná je možné se k tomu tak dlouho nepokoušet? A dejte mi prázdný adresář nebo „nelze najít / připojit se k tomuto adresáři“ nebo něco podobného.
- Existuje způsob, jak se tomu vyhnout? Takže by připojení bylo zpožděno, dokud se nezmění adresář nebo dokud nebude přístup k obsahu tohoto adresáře? Ne, když se „podíváte“ na odkaz na sdílení pod
-
Když server běží, vše funguje správně.
-
Ale když se server vypne, před sdílená složka byla odpojena, nástroje (jako
df
neboll
) zablokuje se (za předpokladu, že si myslí, že sdílení je stále zapnuté, ale server již nereaguje).- Existuje způsob, jak automaticky odpojit sdílené položky, když se spojení ztratí?
-
Klienti se také nevypnou ani nerestartují, když je server vypnutý a mají stále připojené sdílené položky. Visí (jak se zdá nekonečně) v „zabíjení zbývajících procesů “ a zdá se, že se nic neděje.
Myslím, že to všechno souvisí s úhlednými hodnotami časového limitu pro připojení a odpojení. A možná odstranit všechny sdílené položky, když se spojení se serverem ztratí.
Související:„$XAUTHORITY“ se na su+tmux objevuje „odnikud“?
Moje otázka tedy zní:Jak to řešit? A jako bonus:existuje dobrý způsob, jak odkazovat uvnitř /nfs
bez nutnosti připojovat skutečné sdílené položky (možnost autofs nebo možná použití pseudo FS pro /nfs
který se vymění, když dojde k montáži nebo něco takového)?
Moje nastavení
Nastavení NFS je docela základní, ale zatím nám sloužil dobře (pomocí NFSv4 ):
/etc/default/nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/etc/exports
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
V kořenovém adresáři exportu /srv
máme dva adresáře s bind
:
/etc/fstab (Server)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
První je většinou pouze pro čtení (ale vynucuji to prostřednictvím atributů souboru a vlastnictví namísto nastavení NFS) a druhý je rw pro všechny. Poznámka:V /etc/exports nemají žádné další položky , jejich samostatná montáž však funguje.
Na straně klienta se nastavují v /etc/fstab
a namontovat ručně podle potřeby (morton
je název serveru a překládá se dobře).
/etc/fstab (Klient)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Pro automatické nastavení Odebral jsem položky z /etc/fstab
na klientech a zbytek nastavte takto:
/etc/auto.master
/nfs /etc/auto.nfs
Nejprve jsem svázal dodaný spustitelný soubor /etc/auto.net
(můžete se na to podívat zde), ale automaticky mi nic nepřipojí. Poté napíšu /etc/auto.nfs
na základě některých HowTos, které jsem našel online:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
A docela to funguje... Nebo by fungovalo, kdyby server běžel 24/7. Zasekáváme se tedy, když se klient spustí bez spuštěného serveru nebo když server selže, zatímco sdílené položky jsou stále připojeny.
Přijatá odpověď:
Při použití jakéhokoli systému připojení se chcete vyhnout situacím, kdy Nautilus uvádí adresář obsahující připojení, které může nebo nemusí být připojeno. Takže s autofs nevytvářejte připojení například v /nfs. Pokud tak učiníte, když použijete Nautilus k vypsání ‚Souborového systému‘, pokusí se vytvořit všechna připojení, která by měla existovat v /nfs, a pokud tyto pokusy o připojení selžou, bude trvat několik minut, než se vzdáte.
Takže jsem změnil auto.master tak, aby vytvořil připojení v /nfs/mnt.
Tím jsem problém vyřešil. Dlouhé zpoždění se objeví pouze tehdy, když se pokusím vypsat obsah /nfs/mnt, čemuž se mohu snadno vyhnout.