SOUBOROVÝ SYSTÉM AFS

AFS je je způsob jak na UNIXu sdílet on-line data mezi počítači. Jedná se o novější obdobu NFS filesystému. Její hlavní výhody jsou možnost vytváření záložních kopií, rychlost, spolehlivost, bezpečnost založená na bezpečnostním systému kerberos.

K čemu nám je:
-setří misto na discích
-aplikace stačí nainstalovat jednou a udržovat pouze jednu aktuální verzi.
-umožňuje využívat již instalované aplikace v jiných buňkách (viz níže)
-zálohování

Protože se jedná o způsob sdílení dat po síti, počítače spojené pomocí AFS se v rámci jedné počítačové domény patří do jedné buňky (cell). Naše buňka je tedy natur.cuni.cz. Kerberos má své označení pro jinak sdružené skupiny -- a to sice pojem realm. Název realmu se píše velkými písmeny, např. NATUR.CUNI.CZ.

Po systémové stránce, pro data na AFS je vyhrazena či více logických oblastí disku (partitons). Na dané partition je pochopitelně nějaký souborový systém (filesystem). Na OSF1/DigitalUnixu/Tru64Unixu je to UFS, na SGI Irix počítačích je to EFS. Vlastní partiton s hrubě zapsanými daty se většinou připojuje do adresáře /vicepX ; kde X označuje písmeno abecedy od a do z. AFS je zakomponováno do jádra systému buď zakompilováním, nebo se do něj dynamicky vkládá jako modul. Do adresáře zapisuje pouze démon AFS (afsd). Prostor který je k dispozici na všech partitions na počítačích v rámci jedné buňky vypadá pro uživatele jako jedna velká oblast. Správce pak v této oblasti vytváří uživatelsky přístupné oblasti, tzv. volumy (angl. volumes). K volumům se již dají přiřadit vlastnická práva, kvóty apod. Jednotlivé volumy se opět obdobou příkazu mount připojují do adresářové struktury AFS. Volumy se vytváří se konkrétním serveru a konkrétní partition. Pomocí dalšího příkazu se mohou definovat read-only kopie volumu na stejném nebo jiném serveru. Výhoda je ve vyšší přístupové rychlosti a projeví se zejména v případě, kdy server či disk s danou partition /vicepX není dostupný - můžete pracovat s read-only kopií, uložit si ji přechodně někde jinde....

Správce definuje do kterých dalších buněk po světě se smí jeho uživatelé podívat. Standardně mají uživatelé pouze read-only přístup do jiných buněk. Ovšem pokud to správci umožní, je možný i zápis.

Zvláštnosti AFS
AFS se v některých směrech odlišuje od běžného filesystému na UNIXu:
Aby byl soubor umístěný v AFS zapisovatelný, musí UNIXovský vlastník souboru mít právo rw (viz `ls -la soubor' a `chmod u+w soubor'). Práva skupiny a ostatní se ignorují (příkaz `chmod go-rwx soubor' je tedy irelevantní. Naopak, práva AFS jsou odstupňována takto:


r - read
l - list, výpis obsahu adresáře
i - insert, oprávnění ke vložení nového souboru do adresáře
d - delete, mazání souboru/adresáře
w - write, zápis do souboru
k - lock, možnost vytvoření zámku nad souborem, je občas potřeba k zápisu do souboru :-)
a - administrator, ten kdo má oprávnění a k nejakému souboru múže měnit přístupová práva

K přihlášení do AFS potřebujete mít platné lístky kerberos. Příkaz klist vám vypíše zda a jaké lístky máte. Pokud máte platný lístek username@NATUR.CUNI.CZ, můžete se přihlásit do AFS příkazem afslog. Pokud lístek nemáte, lze jej získat příkazem kinit případně kinit username.

Pokud z nějakého důvodu nemáte platné lístky, můžete je získat a rovnou se příhlásit do AFS pomocí příkazu kauth případně kauth username. Příkaz tokens vypisuje vaše lístky (tokens) do AFS, pokud nějaké máte.

Kontrola situace:
klist
tokens


prfdec$ klist
Ticket file:    /tmp/tkt111_2387
Principal:      mmokrejs@NATUR.CUNI.CZ

  Issued           Expires          Principal
Apr  1 08:03:20  Apr  1 18:03:20  krbtgt.NATUR.CUNI.CZ@NATUR.CUNI.CZ
Apr  1 08:03:20  Apr  1 18:03:20  rcmd.prfdec@NATUR.CUNI.CZ
Apr  1 08:03:24  Apr  1 18:03:24  afs.natur.cuni.cz@NATUR.CUNI.CZ
You have new mail in /usr/spool/mail/mmokrejs
prfdec$ tokens

Tokens held by the Cache Manager:

User's (AFS ID 111) tokens for afs@natur.cuni.cz [Expires Apr  1 18:03]
   --End of list--
prfdec$ 

Z příkladu výše je patrné, že mám lístek pro uživatele mmokrejs@NATUR.CUNI.CZ. Podle lístku afs.natur.cuni.cz@NATUR.CUNI.CZ se dá soudit, že asi budu přihlášen do AFS, ale není to uplně jisté. Ovšem výpis příkazu tokens hovoří o nějém tokenu afs@natur.cuni.cz, který expiruje Apr 1 18:03, čili jsem přihlášen i do AFS.

Volumy buňky natur.cuni.cz jsou připojeny do adresáře /afs. Adresář /afs/.natur.cuni.cz ukazuje na větev, do které se dá zapisovat. Adresář /afs/natur.cuni.cz ukazuje na read-only kopii. Pod oběma adresáři je stejný strom adresářů. Uživatelské volumy, do kterých smí jednotliví uživatelé zapisovat, jsou v /afs/.natur.cuni.cz/home/. Zajemcům o práci v AFS jsme schopni vytvořit volume v AFS prostoru. Pro zjednodušení přístupu si většinou vytvářejí symbolické linky (odkazy) na tento adresář v AFS ze svého domovského adresáře.

Zjednodušení přístupu k RO a RW kopiím:

cd $HOME
ln -s /afs/.natur.cuni.cz/home/$USER .share
ln -s /afs/natur.cuni.cz/home/$USER share

Práce s právy k souborům:
Práva z adresářů se dědí na nově založené soubory v daném adresáři. Jestliže má mít uživatel přístup k nějakému podadresáři, musí mít povolen přístup (práva rl) ke všem nadřazeným adresářům.


fs la /afs/natur.cuni.cz/home/$USER                         
  - vypíše oprávnění

fs sa /afs/natur.cuni.cz/home/$USER mmokrejs rlidwka        
  - tímto přidáte všechna práva uživateli mmokrejs na adresář /afs/natur.cuni.cz/home/$USER 

fs sa /afs/natur.cuni.cz/home/$USER novak wd -neg
  - tímto definujete, že uživatel novak nemá právo zápis/delete v daném adresáři,
      toto se uplatňuje v případě, že máte skupinu uživatelů které jste něco povolili, 
      ale zrovna pan Novák vám tam nějak nevyhovuje ;)

fs sa /afs/natur.cuni.cz/home/$USER mmokrejs none
  - tímto jste vzali všechna práva na daný adresář uživateli mmokrejs, pokud vůbec nějaká měl ;)

Pro zjednodušení administrace práv si uživatelé mohou vytvářet skupinu uživatelů a práva přidávat samotným skupinám. Skupiny se dají přesně označovat takto: vlastník_skupiny:název_skupiny my zde pro zjednodušení uvádíme pouze název skupiny, vlastníkem je míněn ten uživatel, který příkaz provádí

pts mebership uživatel
  - vám vypíše do jakých skupin patříte

pts examine skupina
  - vypisuje informace o majiteli dané skupiny

pts listowned skupina
  - vypisuje skupiny které tato skupina vlastní

pts create group nová_ skupina
  - vytvoří novou skupinu

pts adduser uživatel skupina
  - přidá uživatele do skupiny

pts removeuser uživatel
  - vyjme uživatele ze skupiny

pts delete skupina
  - zruší skupinu

pts cleanacl /afs/natur.cuni.cz/home/$USER 
  - zruší neexistující skupiny v tabulce přístupových práv

Nápověda:

Každý příkaz akceptuje argument help, který vyvolává nápovědu, např. pts help nebo pts help examine.
Základní příkazy:
pts
fs

Pro zjištění informací o volumech (spíše pro správce)
vos

Použitelné jedině pro správce
bos

Dále jsou k dispozici manuály na adresách:
http://www.transarc.com/Support/afs/index.html
Český návod z MUNI v Brně.

Protože na výpočetních serverech se spouští výpočty pomocí dávkových úloh, je potřeba zajistit občas nové lítky do kerbera a tokeny do AFS. Zajišťuje to služba kreauth. Jedná se o principála v databázi kerbera, tedy o klíč, přes který se "přenáší nový lístek". Vlastní práci obstarává renewtokensd démon, běží na prfdecu a pteryxovi.