GNU/Linux >> Znalost Linux >  >> Linux

Automount Nfs:Nastavení časového limitu Autofs pro nespolehlivé servery – jak se vyhnout zablokování?

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.
  • 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 nebo ll ) 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.


Linux
  1. Jak zvýšit časový limit připojení SSH

  2. Jak správně nastavit oprávnění pro složku NFS? Povolení odepřeno na konci montáže.

  3. Jak simulovat časový limit odpovědi serveru DNS?

  1. Jak používat autofs k připojení sdílených složek NFS

  2. Jak používat příkaz showmount k zobrazení seznamu sdílených položek na serveru NFS

  3. Pkexec – Jak nastavit vlastní časový limit pro Auth_admin_keep při psaní zásad Pkexec?

  1. Jak používám Cockpit pro domácí správu linuxového serveru

  2. Jak vytvořit vlastní jmenné servery pro váš dedikovaný server

  3. Matice oprávnění pro cloudové servery