Federico Balbi

AFS: Andrew File System


AFS e' un File System distribuito che permette la condivisione di file tra macchine UNIX su reti LAN e WAN utilizzando il modello Client/Server. AFS viene sviluppato, mantenuto e commercializzato dalla TRANSARC corporation.

Questo prodotto non e' un applicativo, bensi' un prodotto che integra il sistema operativo a livello di kernel; esso infatti modifica la struttura interna del file system di Unix.
Per questo motivo e' necessaria una particolare installazione che talvolta comporta la ricostruzione del kernel della macchina e la sostituzione di alcuni comandi che interagiscono con il file system e il logging.

SISTEMI OPERATIVI SUPPORTATI


AFS Client versione 3.4a supporta i seguenti sistemi operativi:

- Digital Unix 3.2x
- HP-UX 9.0.x, 10.x
- SUN OS 4.1.x, 5.4
- Digital Ultrix 4.3, 4.3a, 4.4
- Silicon Graphics IRIX 5.2, 5.3
- IBM AIX
- NeXT NeXTSTEP

Porting non supportati da Transarc:

- LINUX
- HP (Apollo) Domain OS

CLIENT/SERVER


Le macchine di tipo AFS Client sono tipicamente le workstation utilizzate dagli utenti che richiedono dati agli AFS Server.

Le macchine AFS Server solitamente memorizzano software e dati comuni, forniscono servizi ai Client in rete e contengono il Database di autorizzazione all'utilizzo di AFS. I Server dovrebbero essere dedicati esclusivamente a questa funzione per garantire le massime performance.

CACHE MANAGER


Ogni Client dispone di uno spazio su disco riservato alla Cache AFS.
La dimensione della cache e' definita durante l'installazione a seconda del tipo di utilizzo del client (normalmente 40-50 Mb garantiscono buone performance).
Per controllare l'effettiva percentuale di utilizzo della cache e' sufficiente impartire il comando fs getcacheparms.

La dimensione della cache e' comunque modificabile anche dopo l'installazione del client.

- Dopo l'installazione e' visibile la directory /afs; questa punta alla radice dell'albero AFS (AFS filespace).
- Ogni istituzione che utilizza AFS dispone di una Cella, cioe' una sottodirectory di /afs; INFN appartiene alla cella /afs/infn.it.
- La Cella rappresenta un dominio dell'AFS file space.

CLIENT CACHE MANAGER


Il Cache Manager e' un processo che gira sulle macchine client e che gestisce l'AFS Cache; accede al server e salva una copia del file richiesto sulla cache locale.
Il client continuera' ad utilizzare la copia residente in cache senza dover sottomettere continue richieste alla rete.

In caso di modifica della copia locale, Cache Manager updatera' l'immagine sul server al momento della chiusura del file.
Cache Manager inoltre permette al client di lavorare sulle copie locali anche quando il server non e' disponibile (crash o interruzioni di rete); non sara' ovviamente possibile aggiornare il file residente sul sever finche' questo non tornera' attivo.

Quando Cache Manager aggiorna un file sul server, quest'ultimo notifica tutti gli altri client della modifica.

AFS SECURITY


AFS garantisce un buon livello di sicurezza utilizzando i due modelli:

- Password e Mutual Authentication:
AFS richiede una password di accesso per autentificare l'utente; in caso di successo Cache Manager riceve dal server un token che indica l'autorizzazione all'utilizzo.
La Mutual Authentication e' il meccanismo secondo il quale Cache Manager e Server comunicano; questi provano la loro identita' scambiandosi i token.

- ACL (Access Control List):
ACL e' una tabella associata ad ogni directory che specifica quali diritti sono associati a tale directory e relativi files (simile a chmod di unix); cio' permette agli utenti di restringere l'accesso ai propri file.
Ogni ACL puo' contenere fino a 20 utenti/gruppi con relativi diritti d'accesso; ogni gruppo puo' essere costituito da uno o piu' utenti/client.

Nota: gli utenti non autentificati vengono automaticamnte assegnati al gruppo system:anyuser.

DIFFERENZE TRA UNIX E AFS


- File sharing: AFS permette agli uenti di condividere file remoti come fossero locali utilizzando il sottoalbero di /afs con i dovuti privilegi; la condivisione non e' penalizzata ne dalle distanze geografiche ne dalle differenze di sistema operativo.
E' possibile inoltre replicare i server in modo completamente trasparente all'utente; cio' consente la disponibilita' dei dati anche in caso di crash di uno dei server.

- Login: per diventare un utente AFS autorizzato e' necessario fornire una password associata al proprio username; esistono due modi per autenticarsi:

- utilizzando AFS login fornito col software del client, il quale rimpiazza il comando login standard; in questo caso l'autorizzazione all'utilizzo di AFS avviene dirante la login sulla macchina Unix.

- utilizzando il comando klog.

Nota: nella maggior parte dei casi il software di esperimento e' visibile anche al gruppo system:anyuser; in questo caso non e' indispensabile autentificarsi.

VOLUMI E MOUNT POINT


In un AFS Server il Volume e' una struttura limitata che contiene un albero di directory; la partizione di un disco puo' contenere piu' volumi AFS.
Il volume permette al server AFS di spostare, fare il backup e memorizzare agevolmente file e directory.
L'accesso ad un volume avviene attraverso un mount point che punta al server e alla partizione a cui il volume appartiene.
Un mount point appare all'utente come una directory; per spostarsi si utilizza il normale comando cd senza doverci preoccupare su quali macchine e partizioni i nostri file sono memorizzati. Per conoscere l'indirizzo fisico di un file e' sufficiente impartire il comando fs whereis [-path ].
AFS permette la replicazione di volumi su piu' server garantendo la disponibilita' dei volumi nel caso un server dovesse crashare (volume replication).

esempio di Volume (user.balbi) per una directory utente.

CELLA


Come gia' detto in precedenza, la cella e' un dominio amministrativo dell'AFS file space.
Ogni cella viene amministrata in modo autonomo; l'amministratore determina lo spazio sul server da assegnare ad ogni utente.
Dal punto di vista hardware, la cella e' un insieme di macchine Client/Server che appartengono alla stessa sottodirectory di /afs (Local Cell).
La cella infn.it e' costituita dall'insieme dei client/server INFN.

CELLA infn.it


Ogni sezione e' una sottodirectory di /afs/infn.it

STRUTTURA CELLA infn.it


SERVER PADOVA


- ospd02.pd.infn.it
- DEC 3000, 128 Mb, 2 Gb AFS space

- Librerie CERN Digital Unix
- Librerie CERN HP-UX
- Librerie CERN Sun (link a /afs/infn.it/asis/cnaf)

UTILIZZO


- Applicazioni CERN (PAW, CMZ, ecc.)


- GNU, f90, Mosaic, Netscape, ecc.

VANTAGGI RISPETTO NFS


- Ogni Client ha la stessa visione dei file, in qualsiasi punto si trovi, poiche' AFS ha una radice comune (/afs).
- AFS risulta molto piu' performante poiche' la cache locale riduce il carico in rete.
- E' scalabile, poiche' mantiene le stesse performance sia su piccoli cluster che grandi installazioni; e' molto indicato anche su wide-area network.
- E' piu' sicuro in quanto utilizza un sistema di autenticazione basato su Kerberos.
- Ammette replicazione dei volumi consentendo maggior disponibilita' e sicurezza dei dati.

INSTALLAZIONI


Per ulteriori informazioni riguardo AFS e l'installazione di un Client, mandate un mail al sottoscritto.