Portál AbcLinuxu, 19. března 2024 07:17

OpenAFS – servery

20. 7. 2011 | Michal Švamberg
Články - OpenAFS – servery  

V AFS je několik typů serverů, které mezi sebou komunikují. Aby AFS mohlo být robustní a škálovatelné, existuje pro každou funkci AFS samostatný server. Všechny databáze lze mít duplicitní a důležité informace se v systému nacházejí vícekrát. A pro velkou jistotu je v AFS kladen silný důraz na zálohování.

Obsah

Typy serverů

link

Výhodou AFS je, že na ovládání celého systému se nepotřebujete k fyzickým strojům přihlašovat. Všechny nástroje pro administraci pracují přímo s protokolem AFS, a to včetně ověření. Pro některé příkazy nemusíte mít ani připojeno AFS.

Na obrázku je uvedena konfigurace AFS serverů, včetně náznaku databází, kterou jsme si nainstalovali jako pokusnou buňku foo.bar. Jde o minimální konfiguraci, kterou budeme potřebovat při provozu AFS na jediném serveru. Níže si vysvětlíme základní vlastnosti jednotlivých serverů.

Servery OpenAFS

Basic OverSeer (BOS) Server

link

BosServer se ovládá příkazem bos, jde o proces, který monitoruje ostatní instance AFS serveru spuštěné na daném stroji. Ve skutečnosti se z  init.d skriptu vždy startuje BosServer, ten si přečte konfigurační soubor BosConfig, kde jsou uvedeny parametry pro jednotlivé AFS servery a další informace nezbytné pro běh BosServeru.

Zde je konfigurace našeho bos serveru, kterou jsme vytvořili ve druhém díle:

~$ cat /etc/openafs/BosConfig | nl
     1  restarttime 11 0 4 0 0
     2  checkbintime 3 0 5 0 0
     3  bnode simple ptserver 1
     4  parm /usr/lib/openafs/ptserver
     5  end
     6  bnode simple vlserver 1
     7  parm /usr/lib/openafs/vlserver
     8  end
     9  bnode fs fs 1
    10  parm /usr/lib/openafs/fileserver
    11  parm /usr/lib/openafs/volserver
    12  parm /usr/lib/openafs/salvager
    13  end

V úvodu (ř. 1, 2) vidíte parametry přímo pro BosServer, v dalších blocích se definují jednotlivé podřízené servery. Blok začíná definicí typu serveru klíčovým slovem bnode, definice volání jednotlivých procesů slovem parm včetně jejich parametrů. Blok se uzavírá slovem end. Jednotlivé části tohoto souboru se přidaly příkazy bos create ve druhém díle.

Přes BosServer lze podřízené servery ovládat, včetně jejich restartu, spuštění nebo zastavení. Asi nejčastěji se používá pro vynucení oprav poškozených volumů.

Protection (Pt) Server

link

PtServer spravuje Protection Data Base (PRDB), v níž jsou uchovány informace o uživatelích a skupinách. Druhou funkcí je ověřování přístupových práv. K administraci údajů v PRDB se používá příkaz pts. Pokud vám server běží, pak kromě upgradů o něm nebudete ani vědět.

Volume Location (VL) Server

link

VlServer spravuje Volume Location Data Base (VLDB), v níž jsou uchovávány základní informace o volumech včetně jejich umístění na souborových serverech. Databáze se aktualizuje automaticky při manipulacích se svazky příkazem vos. Tento příkaz obsahuje také volby pro záchranné operace s databází VLDB a informacemi uložených v meta datech svazků na souborových serverech.

Databázové servery (ptserver, vlserver) jsou pro chod infrastruktury zásadní, proto je možné je mít redundantně. Jeden ze serverů je vždy master, na ten se provádí zápisové operace a ty se replikují na ostatní databázové servery. Počet serverů se volí vždy lichý, i pro velkou společnost běžně dostačuje 3x ptserver a 3x vlserver, ideálně umístěné v  různých lokalitách. Lichý počet se volí pro případ, že selže konektivita mezi jednotlivými lokalitami. V té lokalitě, kde zůstane větší počet serverů, vznikne nový master, v menší lokalitě budou povoleny pouze operace pro čtení. Po obnovení konektivity se databáze z masteru sesynchronizuje Tento mechanismus umožňuje omezit míru dopadu výpadku konektivity mezi  servery na funkčnost AFS.

Instance fs

link

Vlastní data AFS se ukládají na tzv. file serverech, o ně se ve skutečnosti starají 3 komponenty instance fs. Pokud se zeptáte na stav serveru, na kterém běží tato instance, uvidíte pro konfiguraci BosServeru z výše uvedené konfigurace následující:

~$ bos status afssrv.foo.bar -long
Instance ptserver, (type is simple) currently running normally.
    Process last started at Sat Mar 26 18:50:01 2011 (1 proc starts)
    Command 1 is '/usr/lib/openafs/ptserver'

Instance vlserver, (type is simple) currently running normally.
    Process last started at Sat Mar 26 18:50:01 2011 (1 proc starts)
    Command 1 is '/usr/lib/openafs/vlserver'

Instance fs, (type is fs) currently running normally.
    Auxiliary status is: file server running.
    Process last started at Sat Mar 26 18:50:01 2011 (2 proc starts)
    Command 1 is '/usr/lib/openafs/fileserver'
    Command 2 is '/usr/lib/openafs/volserver'
    Command 3 is '/usr/lib/openafs/salvager'

Pod instancí fs jsou uvedeny 3 programy, které se starají o správu a poskytování souborů. Pro tyto servery není určen explicitně samostatný příkaz, pokud je potřeba něco upravit, získávají informace nejčastěji od klienta, případně od dalších příkazů AFS. Například při vytváření nového svazku příkazem vos create se vytvoří záznam ve VLDB, zároveň se založí fyzicky svazek na daném souborovém serveru včetně aktualizace VolServeru.

Start instance fs může chvíli trvat, záleží na tom, jestli se zjistí, že svazky jsou poškozeny a bude muset nastoupit proces salvager. Jistou dobu také trvá načítání informací ze svazků a připojení je do stavu On-line. Vše se odvíjí od počtu svazků, jejich velikosti a rychlosti úložiště. Doba startu může být od jednotek sekund až po několik hodin. Verze 1.6 by měla znatelně urychlit start souborového serveru, kdy se svazky budou kontrolovat a připojovat až ve chvíli, kdy k nim klient vyžaduje přístup.

File Server

link

Základní proces, který komunikuje s klientem při čtení nebo zápisu dat. Lze mu nastavit spoustu parametrů, existují i předkonfigurované volby dle velikosti používané infrastruktury. Nám bude stačit výchozí nastavení.

File Server (souborový server) po svém spuštění zkontroluje, zda jsou připojeny samostatné souborové systémy do adresářů pojmenovaných od /vicepa až do /vicepiv (vicep = vice partition). To je celkem 255 různých úložišť na jednom serveru. Poslední název se dle dokumentace nedoporučuje používat, takže skončíme u jména /vicepiu. Těmto úložným prostorům se v AFS říká partition (oddíl). Názvy oddílů nemusí jít postupně za sebou. Souborový server využívá pro uložení svazků na oddílech již existující souborový systém, který je do operačního systému připojen příkazem mount. Na produkční stroje se nejčastěji doporučuje použít XFS nebo ZFS.

AFS předpokládá, že budete mít k souborovým serverům připojeny datová úložiště. Pokud daná partition není samostatný souborový systém, pak vytvořte uvnitř prázdný soubor s názvem AlwaysAttach, tak jako jsme to provedli při instalaci ve druhém díle:

~# touch /vicepa/AlwaysAttach

Názvy oddílů se v příkazech běžně zkracují pouze na identifikátor, například pro /vicepbf stačí uvádět pouze bf.

Volume Server

link

Zařizuje administrativní operace nad svazky (volumes). Pokud chceme například svazek releasovat, pak použijeme příkaz vos move, který kontaktuje volume server a vlastní přenos nechá na nich samotných. Přesun svazku proběhne mezi servery a nebude zatěžovat linku k příkazu vos, který pouze přesun nařídil a vypisuje informace o jeho průběhu.

Salvager

link

Oproti tomu proces salvager vám někdy může pěkně pít krev. Tento proces zajišťuje kontrolu struktury AFS svazků na oddílech. Pouští se vždy, když se zjistí, že svazky nebyly odpojeny regulérně, nejčastěji tedy po pádu systému, souborového serveru nebo úložiště.

"Salvagovat" lze jednotlivé svazky, pokud jich není mnoho, protože před kontrolou se svazek odpojuje od serveru a pak znova připojuje, což výrazně zpomaluje celou kontrolu. Výhodou je, že při kontrole jednoho svazku zůstávají ostatní k dispozici. Pokud se kontroluje celý oddíl nebo celý server, pak se svazky odpojují hromadně a ukončí se procesy fileserver a volserver. Tím nejsou data po dobu opravy dostupná, celá operace je ale rychlejší díky hromadnému odpojování a následného připojování svazků. Taktéž je možné pustit salvager paralelně přes jednotlivé oddíly. Pokud chcete kontrolu vynutit, použije se příkaz bos salvage.

Závěr

link

V AFS existuje spousta dalších serverů (zálohování) a jiné se programují (object storage). Výše uvedené servery jsou minimum pro provoz AFS a tento seriál si s nimi vystačí na několik dílů. Na to, jak jednotlivé servery komunikují mezi sebou a s klientem, se podíváme později.

V dalších dílech se naučíme na naší ukázkové buňce, jak se jednotlivé svazky propojují mezi sebou.

Seriál OpenAFS (dílů: 11)

První díl: OpenAFS – úvod, poslední díl: OpenAFS – zálohování do volumů.
Předchozí díl: OpenAFS – volumy (svazky)
Následující díl: OpenAFS – cesta v AFS stromu

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

20.7.2011 08:59 peppa
Rozbalit Rozbalit vše Re: OpenAFS – servery
Odpovědět | Sbalit | Link | Blokovat | Admin
Chybí zde ta nejzákladnější informace. Co je to ASF a k čemu se používá!

The Andrew File System (AFS) is a distributed networked file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. Its primary use is in distributed computing.
20.7.2011 09:27 Pavel | skóre: 15 | blog: Pavlův blog | Praha
Rozbalit Rozbalit vše Re: OpenAFS – servery
Toto bylo popsano v predchozich dilech serialu ;)
20.7.2011 14:43 Qk
Rozbalit Rozbalit vše Re: OpenAFS – servery
Chybi tady druha nejzakladnejsi informace. Toto je X-ty dil serialu.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.