Andrew File System

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Andrew File System (AFS)[1] je distribuovaný souborový systém, jehož úložný prostor je rozvržen po velkém množství důvěryhodných serverů. Veškeré připojené stanice tedy vidí stejný celistvý obsah, ať jsou připojené kdekoliv. Systém byl vyvinut na Univerzitě Carnegie Mellon jako součást projektu Andrew.[2] Systém je pojmenován po Andrew Carnegiovi a Andrew Mellonovi. AFS je primárně využíván při distribuovaných výpočtech.

Vlastnosti[editovat | editovat zdroj]

AFS[3] má několik výhod oproti tradičním síťovým souborovým systémům. Zejména v oblasti bezpečnosti a škálovatelnosti. V podnikových sférách je běžné, že počet připojených stanic je v řádu desítek tisíc.[4] AFS pro autentizaci využívá kerberos protokol a pro přístup ke složkám access control list (ACL) vztahující se pro skupiny a uživatele. Pro zvýšení rychlosti si každá připojená stanice ukládá do cache již načtený soubor pro případ vícečetného čtení. Využití velkého počtu serverů zajišťuje alespoň částečný přístup do souborového systému v případě pádu některého ze serverů.

AFS využívá model slabé konzistence.[5] Čtení a zápis do právě otevřeného souboru lze pouze v lokální kopii uloženou v cache. Když je modifikace souboru dokončena, změněné části jsou zkopírovány zpět na server. Konzistence v cache je zachována pomocí callback mechanismu. To znamená, že když je soubor v cache, tak si server tuto událost poznamená a přislíbí informovat klienta, pokud je soubor pozměněn někým jiným. Pokud nastane selhání na straně klienta, serveru, sítě nebo vyprší platnost callbacku, callback je znehodnocen a musí být obnoven. Obnovení callbacku zahrnuje kontrolu stavu souboru a nevyžaduje znovu stáhnout soubor ze serveru.

Důsledek strategie zamykání celých souborů je, že AFS nepodporuje velké, sdílené databáze nebo aktualizace úprav souborů, které jsou sdíleny mezi klienty. Tato strategie byla záměrně zvolena pro potřeby v univerzitním prostředí. Například elektronická pošta v projektu Andrew ukládá každou zprávu jako samostatný soubor, namísto ukládání všech zpráv jednoho uživatele do jednoho souboru (tj. formát maildir místo mbox).

Významnou vlastností AFS je dělení na oddíly a tyto oddíly jsou navzájem propojeny za pomoci tzv. AFS mountingpointů, které odkazují na ostatní AFS oddíly. Oddíly vytváří administrátor a rozhoduje o jejich umístění v AFS. Po vytvoření oddílu mohou uživatelé vytvářet soubory a složky bez ohledu na jeho fyzické umístění. Každý oddíl může podléhat diskové kvótě, která limituje maximální množství uložených dat pro každého uživatele. Podle potřeby mohou administrátoři za běhu přesouvat jednotlivé oddíly mezi servery, a to beze změny přístupu vůči uživatelům.

AFS oddíly mohou být replikovány do kopií, které jsou určené pouze pro čtení. Když uživatel pouze data čte, je mu nabídnuta tato speciální kopie. Pokud se stane tato kopie z jakéhokoliv důvodu nedostupná, uživateli je nabídnuta některá ze zbývajících kopií. Uživatelům je jakákoliv kopie předkládána jako originál, a tedy nevědí, ze které kopie právě čtou. Administrátoři mohou vytvářet a přesouvat kopie podle potřeby. AFS garantuje, že všechny kopie oddílů pouze pro čtení obsahují stejnou kopii originálu.

Jmenný prostor souborů na každém serveru je rozdělen na sdílený a místní. Sdílený jmenný prostor (v Unixu obvykle připojen jako /afs) je pro všechny servery identický. Místní jmenný prostor je pro každý server unikátní a obsahuje pouze dočasné soubory pro inicializaci a symbolické odkazy na soubory ve sdíleném jmenném prostoru.

Implementace[editovat | editovat zdroj]

Transarc (IBM), OpenAFS a Arla jsou 3 nejčastější implementace AFS. Nicméně Transarc už není dál vyvíjen a je zastaralý. Druhá verze AFS se stala předchůdcem souborového systému CODA. AFS je také implementován v samotném Linuxovém jádře, ale až od verze 2.6.10.[6] Tato implementace pochází z dílny Red Hatu.

Dostupná oprávnění[editovat | editovat zdroj]

Seznam oprávnění pro řízení přístupu, která mohou být udělena:

Lookup (l)
Umožňuje uživateli zobrazit obsah AFS adresáře, prohlížet ACL pro adresář a přístup do podadresářů.
Insert (i)
Umožňuje uživateli přidávat nové soubory nebo podadresáře do složky.
Delete (d)
Umožňuje uživateli mazat soubory a podadresáře ze složky.
Administer (a)
Umožňuje uživateli měnit ACL pro složku. Uživatelé mají vždy toto právo na jejich domácím adresáři, i když se sami z ACL omylem odstraní.

Oprávnění, která ovlivní veškeré soubory a podadresáře:

Read (r)
Umožňuje uživateli zobrazit obsah souborů ve složce a zobrazit soubory v podadresářích. Soubory, které jsou poskytnuty ke čtení kterémukoli uživateli, včetně vlastníka, musí mít nastavené standardní Unixové oprávnění pro čtení vlastníkem.
Write (w)
Umožňuje uživateli modifikovat soubory a adresáře. Soubory, které jsou poskytnuty k zápisu kterémukoli uživateli, včetně vlastníka, musí mít nastavené standardní Unixové oprávnění pro zápis vlastníkem.
Lock (k)
Umožňuje procesoru zpracovat programy, které ke svému běhu potřebují zamčené soubory.

Kromě toho, AFS zahrnuje ACL atributy (A)-(H), které nemají vliv na přístup k souborům.

Odkazy[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Andrew File System na anglické Wikipedii.

Reference[editovat | editovat zdroj]

  1. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.(2014),, Arpaci-Dusseau Books, http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf 
  2. What is Andrew - part of CMU's official site chronicling the history of the Andrew Project.
  3. Howard, J.H., Kazar, M.L., Nichols, S.G., Nichols, D.A., Satyanarayanan, M., Sidebotham, R.N., & West, M.J. (February 1988).  "Scale and Performance in a Distributed File System". ACM Transactions on Computer Systems 6 (1): 51–81. doi:10.1145/35037.35059. 
  4. http://www-conf.slac.stanford.edu/AFSBestPractices/Slides/MorganStanley.pdf
  5. Yaniv Pessach(2013),(Distributed Storage: Concepts, Algorithms, and Implementations ed.), Amazon, http://openlibrary.org/books/OL25423189M/Distributed_Storage_Concepts_Algorithms_and_Implementations 
  6. Linux kernel AFS documentation for 2.6.10

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]