Distribuované souborové systémy

David Kovalský, xkovalsk (zavináč) fi.muni.cz


Obsah


Co jsou to distribuované systémy souborů

Distribuovaný systém souborů je síťový systém souborů. Co se uživatelského přístupu týče neliší se velmi např. od samby. Pokud si systém připojíte do nějakého adresáře, nezjistíte bez hlubšího zkoumání, jestli pracujete se souborem na lokálním disku nebo souborem síťovým. Rozdíl je ovšem v připojení. Zatím co v sambě se musíte připojovat k určitým strojům, udržovat si aktuální seznam strojů, jejich exportovaných položek a při změně měnit "mountování", v DSS toto nemusíte. Např. adresář /coda je připojený do Cody. Přístup k souborům a adresářům je transparentní, uživatel nepozná na kterém počítači je soubor fyzicky umístěný, nepozná dokonce ani když se soubor přesune jinam. Tohoto systému lze s výhodou použít rozmístění souborů na několik strojů. Tento systém snižuje zátěž konkrétního stroje, dále také zvyšuje odolnost vůči výpadku. Například Coda umí rozpoznat, že jistý stroj měl výpadek, a až při pokusu klienta získat soubor ho také zreplikuje na daný 'mirror'. Distribuované souborové systémy ale nabízejí mnohem více ...


Co nabízi DSS

Dostupnost dat/výkon
Kromě redundace souborů a automatické obnovy spočívá také výhoda DSS ve shlukování dat do takzvaných 'volumes'. Jsou to bloky dat různé velikosti obsahující několik souborů o velikostech řádově menších než diková/logická jednotka. Pokud administrátor uzná, že přístup k určité 'volume' příliš vytěžuje jistý stroj, přesune ji na stroj s nejnižším vytížením aniž by si toho uživatel všimnul. Tím, že velikosti 'volumes' jsou relativně malé, bývá jednoduché najít na jiném stroji místo.

Cache/Cache Manager
Pro správné fungování DSS je vhodné vyhradit cache-partition, většinou ext2, nebo aspoň adresář (u AFS /usr/vice/cache). Při požadavku otevření souboru si Cache Manager stáhne na disk aktuální verzi, se kterou pak pracuje lokálně a narozdíl od samby je uploadována zpět až po zápisu a uzavření souboru. Pokud je server nedostupný, Cache manager zařadí tento úkol do fronty a data aktualizuje později. Cache manager si udržuje informaci o aktuálnosti souboru metodou 'callbacku'. Jak tato technika přesně funguje se dočtete na dokumentaci openAFS zde.

Disconected Operations
Souvisí s Chache managerem. Data jsou uložena lokálně, když uživatel nemá přístup k síti. Zvláště uživatelé notebooku ocení možnost přístupu k datům i přesto, že připojení k síti není dostupné. Při vhodné konfiguraci lze systém nastavit tak, aby si pamatoval specifické i často dotazované soubory. Při opětném spojení se provede sychronizace dat. Vhodné pro uživatele vlastnící PC i notebook. Coda obsahuje tzv. sticky cache soubory, které nejsou z cache automaticky mazány.

Zabezpečení
U všech těchto systému můžeme určit několik typů zabezpečení, oprávnění přístupu (u openAFS je podle manuálu asi 20 typů), ACL ... Dále se navzájem autentizují klient i server určitými daty, která jsou specifická pro každý stroj. Takže nejenom že server ví přesně, komu data posílá, ale i klient má jistotu, že má ta správná data od správného serveru.

Něco málo o OpenAFS

OpenAFS, vycházející z AFS firmy IBM (stejného základu je i InterMezzo, Coda vychází z AFS2), funguje na principu klient-server, kdy jeden stroj často hraje obě role. Výhody tohoto systému oproti velkému silnému mainframe jsou zřetelné. Systém se dá jednoduše přizpůsobit aktuálním požadavkům co do kapacity a rozložení výkonu. Zapojit do sítě další počítač středního výkonu je mnohem levnější než upgradovat drahé stroje serverových platforem. Lze spojit počítače různých architektur s rozličnými OS a využít například pro "obyčejou práci" předimenzovaný pevný disk.

AFS je rozděleno do buněk ('cells'). Každý server může náležet nejvýše jedné buňce (local cell), klient však může mít přístup i k více buňkám (foreign cells). Buňka je chápána jako jakási doména. Každá buňka má svého administrátora, který určuje, které počítače do ní patří, nastavuje kvóty vůbec :) Sdružení buněk se nazývá 'site'.

AFS můžeme používat na mnoha platformách, včetně Windows. Abychom jej mohli používat v UNIXovém prostředí, je potřeba stáhnout si zdrojové kódy z www.openafs.org (pozor, pro jádro řady 2.6 je zatím pouze unstable verze), nakompilovat modul a vrhnout se na nastavení. Jsou k tomu potřeba zdrojové kódy jádra. Konfiguračních souborů není zrovna málo, doporučuji dobře nastudovat Administration reference a jak funguje AFS.


Odkazy