\"/
\"/ \"/    

AFS - nová generace sdílení souborů po síti

Miroslav Ruda, Luděk Matyska, FI MU, ÚVT MU
Ročník VII - číslo 3, únor 1997
Citace: M. Ruda, L. Matyska. AFS - nová generace sdílení souborů po síti. Zpravodaj ÚVT MU. ISSN 1212-0901, 1997, roč. VII, č. 3, s. 13-16.
Tematické zařazení: Počítačové sítě na MU, Programy, nástroje
 předchozí článek | následující číslo 

V posledních letech jsme svědky bouřlivého rozvoje počítačových sítí a prudkého vzrůstu počtu připojených počítačů. Přestože naprosto převažující většina připojených počítačů využívá především služby elektronické pošty a "surfování" po světové počítačové pavučině (World Wide Webu), s rozvojem sítí jsou spojeny i další služby, často mnohem prozaičtější a koncovými uživateli často nepříliš patrné, ale o to neméně důležité. Mezi takovéto služby patří i sdílení souborů mezi jednotlivými počítači propojenými počítačovou sítí.

K čemu je sdílení souborů

Na první pohled se může zdát, že sdílení souborů mezi více počítači je spíše jakási "z nouze ctnost". Ideálem řady koncových uživatelů je mít na svém počítači všechno, co by jen kdy mohli potřebovat, a pokud možno nebýt závislí na nikom a ničem. Přestože řada výrobců zejména v oblasti osobních počítačů tyto představy vítá s otevřenou náručí a v uživatelích je podporuje, existuje celá řada protiargumentů. Kromě zcela prozaické ceny disků (a řadičů, protože ani na největší disky se všechno prostě nevejde) je to zejména otázka správy většího počtu počítačů. Má-li organizace např. 200 osobních počítačů a na každém počítači by mělo být všechno, pak též někdo se o tato "všechna" musí starat. To představuje jednu z nejtěžších nočních můr administrátorů, neboť každý uživatel přirozeně zasáhne nějakým způsobem do konfigurací jednotlivých programů (jsou to přece jeho programy na jeho počítači) a velmi rychle je v organizaci 200 naprosto různých osobních počítačů a každý zásah administrátora znamená, že ten se musí znovu seznámit s okamžitou situací na konkrétním počítači1. Nová verze produktu pak znamená zajistit, že se dostane na všech 200 počítačů (a vzhledem k výše řečenému nelze příliš spoléhat na automatizované postupy, protože ty jsou často závislé na tom, že uživatelé do "standardních" konfigurací nezasáhnou).

Počítače UNIXovského světa (a samozřejmě i velké sálové počítače) byly od počátku své existence určeny pro práci většího počtu uživatelů (nebyly to vlastně nikdy "osobní" počítače v tom nejužším slova smyslu). Jako takové byla jejich administrativa vždy plně v kompetenci odborných administrátorů (nikoliv koncových uživatelů samotných) a tím lze snad vysvětlit daleko rychlejší a přímočařejší cestu ke sdílení souborů mezi různými počítači. Svou roli nepochybně sehrála i nutnost mít co nejrychleji k dispozici náhradní řešení v případě výpadku jednoho počítače.

NFS

Pravděpodobně nejznámějším systémem sdílení souborů je systém NFS (Network File System), vyvinutý firmou SUN a v současné době dostupný na všech UNIXovských platformách i na osobních počítačích s MS DOSem i MS Windows. NFS rozlišuje mezi servery (počítači, na jejichž discích jsou soubory skutečně fyzicky přítomny) a klienty (tj. počítači, které pouze "vidí" soubory serverů; mohou je používat, ale nemají je na svých fyzických discích). Model, na kterém bylo NFS postaveno, má však zásadní nedostatky:

Tyto vlastnosti vedou k tomu, že jakmile prostředí obsahuje větší počet klientů a/nebo serverů, začíná být konfigurace obou opět složitá a navíc poměrně rychle dochází k zahlcení propojovací sítě. Paradoxně tak právě v prostředí, které je z mnoha ohledů ideálním místem širokého uplatnění sdílení souborů po síti, uživatelé požadují návrat zpět k instalaci pokud možno všeho na lokální disky.

AFS

Naštěstí se vývoj v oblasti síťových (či lépe distribuovaných) systémů souborů, jako nástrojů efektivního sdílení souborů, nezastavil. Jako jeden z nejúspěšnějších a v současné době patrně nejpoužívanější skutečně distribuovaný systém souborů se prosadil následník Andrew File Systému (vyvinut na Carnegie-Mellon univerzitě), systém AFS, který v současnosti vyvíjí a prodává firma Transarc.

Systém AFS je postaven na následujících principech:

Soubory jsou v AFS organizovány v tzv. svazcích (volumes). Svazek je základní jednotkou, která může být v rámci AFS zpřístupněna (exportována) klientům. Z logiky věci vyplývá, že svazek musí být vždy adresář, většinou je to celý strom adresářů, spojených nějakým logickým důvodem. Typickým příkladem svazku je domovský adresář konkrétního uživatele. Na rozdíl od NFS, kde se adresáře zpřístupněné servery mohly na různých klientech začleňovat do lokálního systému souborů na různá místa, definuje AFS jednotné kanonické umístění svazku. Kořenovým adresářem je vždy /afs2, pod tento adresář se připojují svazky, odpovídající celým administrativním jednotkám. AFS, bohužel bez hierarchické struktury známé z Internetu, rozděluje celý svět do administrativních domén, nazývaných buňky (cells). Jméno buňky (které může, ale nemusí být obdobou jména Internetovské domény) pak tvoří další část standardního (kanonického) jména libovolného souboru, uloženého v AFS (/afs/transarc.com je kořen firmy Transarc).

Každý svazek musí být uložen na konkrétním AFS serveru, přesné umístění je pak drženo ve speciální databázi, kterou obsluhuje server umístění svazků (Volume Location Database Server, VLDS). Klient zná pouze adresu tohoto VLDS, informace o aktuálním uložení konkrétního požadovaného svazku získává jako odpověď na příslušnou žádost. To umožňuje přesouvat svazky mezi servery bez změny konfigurace jednotlivých klientů.

Současně AFS umožňuje replikaci svazků na různých serverech. V praxi to znamená, že konkrétní svazek je uložen v několika kopiích a klient čte z té kopie, kterou pro něj vybral VLDS podle aktuálního zatížení a/nebo dostupnosti konkrétního serveru. Samozřejmě takto mohou být replikována pouze data určená ke čtení (read-only). Svazky, na něž se zapisuje, replikovány být nemohou. Typickým příkladem read-only svazků jsou svazky s programovými balíky, různé konfigurační soubory, ... Naopak typickým zapisovaným svazkem je domovský (home) adresář. Ale i v případě zapisovaných svazků umožňuje AFS alespoň přesunout svazek na nejbližší, nejrychlejší, ... server podle potřeby (a v závislosti na konfiguraci buňky i několikrát za den). Neméně zajímavým důsledkem této vlastnosti je i možnost zálohování svazků, které jsou stále užívány. AFS umožňuje vytvářet i virtuální repliky, kdy se pouze uloží informace o aktuálním stavu celého svazku (ale nealokuje se žádné místo). Pro nové (nebo modifikované staré) soubory je alokováno nové místo na disku, ale zálohovací software stále "vidí" svazek tak, jak vypadal v okamžiku založení virtuální repliky. Jakmile je zálohování úspěšně ukončeno, je virtuální replika zrušena a místo, zabírané mezitím změněnými a/nebo smazanými soubory je opět uvolněno. Uživatelé nic nepozorují a přitom je vytvořena záložní kopie, odpovídající přesně definovanému stavu svazku (což není možno standardními postupy bez dočasného odstavení svazku).

Data, načtená klientem ze serveru, jsou automaticky ukládána v lokální vyrovnávací paměti (opět jde přirozeně o read-only data, se zapisovanými daty AFS nakládá obdobně jako NFS). To znamená, že opakování požadavku na čtení téhož souboru (či opakované spuštění programu) vede k využití lokální kopie a tedy podstatně rychlejší reakci (a prakticky k nulovému zatížení sítě, neboť klient si pouze musí ověřit, že soubor nebyl mezitím modifikován)3. Vyrovnávací paměť (cache) může být vytvořena na lokálním disku (a pak může "přežít" i znovuzapnutí počítače), nebo může být vytvořena v lokální paměti (rychlejší, avšak vhodné pouze tam, kde má klient dostatek lokální paměti a kde je možno obsah vyrovnávací paměti po spuštění počítače rychle obnovit). Využití lokální vyrovnávací paměti mnohonásobně snižuje zatížení počítačové sítě i serverů a tak umožňuje obsloužit podstatně vyšší počet klientů bez dalších nároků na technické vybavení.

Další podstatnou výhodou AFS je zvýšení bezpečnosti celého systému při současném zvýšení jeho flexibility. Konkrétně to znamená, že autentikaci (ověření totožnosti) uživatele i serveru zajišťuje systém Kerberos (viz odkazy na konci článku). Jakmile je totožnost uživatele ověřena, ten dostává lístek (token) s omezenou platností. Při všech následných transakcích mezi klientem a serverem se používá tento lístek k ověření, že oba účastníci transkace jsou těmi, za které se vydávají. Po uplynutí platnosti lístku je nutno provést re-autentikaci, při které je vydán lístek nový (tím je znemožněno, aby potenciální narušitel odposlechl konkrétní lístek a posléze jej zneužil)4. Současně se zvýšením bezpečnosti komunikace AFS poskytuje i podstatně širší možnosti při specifikaci přístupových práv k souborům (resp. celým adresářům). Zatímco standardní UNIX zná pouze tři skupiny oprávnění - čtení, zápis a smazání (modifikaci) - a to pouze pro tři skupiny uživatelů - vlastník souboru, skupina a ostatní - jsou možnosti AFS podstatně bohatší. AFS sice umožňuje určit přístupová práva pouze pro adresáře (soubor přebírá všechna práva, specifikovaná pro adresář, ve kterém se nachází), dovoluje však přiřadit až 20 různých skupin uživatelů a každé skupině přiřadit libovolnou (smysluplnou) kombinaci těchto práv:

Lookup:
zobrazení položek adresáře a položek přístupových práv.
Insert:
přidávat nové soubory a vytvářet nové podadresáře.
Delete:
mazat soubory.
Administer:
umožňuje změnu seznamu práv přístupu.
Read:
umožňuje číst soubory.
Write:
umožňuje měnit obsah souborů.
Lock:
umožňuje zamykat soubory.

Uživatel má zárověň možnost vytvářet vlastní skupiny (z jednotlivých uživatelů a již dříve definovaných skupin) a tak velmi flexibilním způsobem určovat, kdo má jaká práva nakládání s jeho soubory.

A jak na MU?

V rámci projektu META Centrum programu TEN-34 CZ byla v loňském roce zakoupena multilicence systému AFS pro Masarykovu univerzitu (spolu s obdobnou multilicencí pro další čtyři vysoké školy a Akademii věd). To konkrétně znamená, že máme k dispozici licenční práva na veškeré v současnosti podporované UNIXovské platformy, a to v neomezeném množství jak serverů, tak i klientů. Máme rovněž k dispozici AFS/NFS translátor, takže je možno zpřístupnit AFS adresáře i těm uživatelům, kteří na přechod na AFS nejsou připraveni. Je možno AFS adresáře zpřístupnit i klientům, používajícím MS Windows, prostřednictvím programu samba.5 A pro skutečně zvídavé - máme k dispozici i zdrojové kódy AFS, což alespoň teoreticky otevírá cestu k vývoji AFS klientů a serverů i pro další platformy (např. BSD/OS). Podrobnější informace o AFS a zejména o možnostech jeho konkrétního uplatnění na pracovištích univerzity je možno získat u autorů článku. A jakmile získáme dostatek zkušeností s provozem, objeví se popis konkrétní instalace AFS na ÚVT MU (jako prototypové možnosti pro další uživatele z Masarykovy univerzity) i v tomto Zpravodaji.

Doporučené www odkazy:
http://www.transarc.com/
http://www.pcd.kth.se/kth-krb/
http://www.pittsburgh.org/~shadow/kerberos.html
http://web.mit.edu/computing.html
http://home.zcu.cz/cgi-bin/toISO-8859-2/orion/

setting
1 Ne všichni administrátoři se však na tuto situaci dívají nevraživě: externí konzultanti, placení od hodiny, mají naopak takovýto "pořádek" velmi rádi (a často jej i organizaci chválí), protože jim osobně přináší vysoké zisky s relativně malým odborným vypětím.
... zpět do textu
2 Toto tvrzení není úplně pravdivé. Kořenovým adresářem může být i jiný adresář, změna jména však působí velmi podstatné potíže při použití mnoha programů, které s jiným jménem v podstatě nepočítají.
... zpět do textu
3 Jeden z autorů tohoto článku zkoušel využití AFS přes modem 14400 bps pro spouštění programu TeX. Zatímco první "TeXování" konkrétního souboru trvalo přes 17 minut (musel se načíst vlastní program TeX a jeho .fmt soubor o celkové velikosti přes 1,1 MB), druhé TeXování zabralo pouhých 5 sekund, z čehož čas CPU byl více jak 3,5 sekundy.
... zpět do textu
4 To má však svá úskalí: spouštíme-li nějakou dlouhou úlohu, musíme požádat o lístek s dostatečně dlouhou dobou platnosti, jinak hrozí, že úloha bude násilně ukončena, protože platnost lístku skončí předčasně a systém odmítne dále poskytovat nějaké zdroje (např. právo zapisovat do domovského adresáře).
... zpět do textu
5 Transarc nabízí i samostatného klienta AFS pro Windows NT, oproti využití programu samba nabízí nativní klient především vyšší bezpečnost a lokální vyrovnávací paměť.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011