Disclaimer :
Dit document is niet juist en is niet meer onderhouden.
|
Gentoo Linux OpenAFS Handleiding
1.
Overzicht
Over dit document
Dit document vertelt alles over het installeren van een openafs server op
Gentoo Linux. Delen van dit document werden genomen van de AFS FAQ en IBM's
Quick Beginnings guide on AFS. Welja, zoals ze zeggen, je hoeft het wiel niet
telkens opnieuw uitvinden :)
Wat is AFS ?
AFS is een gedistribueerd bestandssysteem dat co-operatie tussen verschillende
hosts toelaat zodat op een efficiente manier bestandssysteembronnen over een
LAN of WAN gedeeld worden. Clients houden tevens een cache bij zodat frequent
gebruikte bestanden sneller beschikbaar zijn.
AFS is gebaseerd op een gedistribueerd bestandssysteem dat oorspronkelijk
ontwikkeld werd aan de Information Technology Center in Carnegie-Mellon
University, genaamd de "Andrew File System". "Andrew" was de naam van het
onderzoeksproject op CMU - dit ter ere van de universiteits-oprichters. Eenmaal
Transarc opgericht was en AFS een product werd werd de "Andrew" weggelaten, dit
om aan te duiden dat AFS verder dan het Andrew research project was geevolueerd
en een volledig ondersteund kwaliteitsproduct geworden was. Er waren echter
verschillende cellen die hun root-bestandssysteem als /afs hadden. Het
veranderen van de root van het bestandssysteem was een niet-triviale hack. Dus
om de vroegere AFS-cellen toe te laten verder te werken werd AFS als naam en
root-bestandssysteem behouden.
Wat is een AFS cell ?
Een AFS cel is een verzameling van servers die gegroepeerd zijn en een
enkelvoudig, coherent bestandssysteem vormen. Een AFS cel is typisch een set
hosts die eenzelfde Internet domeinnaam gebruiken (bv gentoo.org). Users loggen
in via AFS client workstations die de nodige informatie en bestanden van de
cel-servers afhalen in opdracht van de gebruikers. De gebruikers weten zelf
niet van welke server de bestanden gehaald werden. Ze zullen zelfs niet merken
indien de originele server verhuisd wordt, aangezien elk volume gedupliceerd en
verplaatst wordt naar andere server(s) zonder dat de gebruiker dat mag merken.
De bestanden zijn dus altijd beschikbaar.
Denk aan NFS met steroiden :)
Wat zijn de voordelen van AFS?
De hoofd-voordelen van AFS zijn:
caching mogelijkheid (op client, tussen 100 MiB tot 1 GiB),
veiligheidsfeatures (Kerberos 4 gebaseerd, access control lists),
eenvoud van adressering (je hebt maar 1 bestandssysteem),
schaleerbaarheid (voeg servers toe aan de cel indien nodig),
communicatie protocol.
Waar vind ik meer informatie?
Lees de AFS
FAQ.
De OpenAFS website vind je op http://www.openafs.org.
AFS werd oorspronkelijk ontwikkeld door Transarc die nu onder IBM's voogdij
zit. Je kan meer informatie over AFS vinden op Transarcs
Website.
2.
Documentatie
AFS Documentatie verkrijgen
Je kan de originele IBM AFS documentatie verkrijgen indien gewenst. Deze is goe
geschreven en indien je een AFS-server wil beheren is het aangeraden lectuur.
Codevoorbeeld 2.1: |
# emerge app-doc/afsdoc
|
3.
Client Installatie
Voorbereidend werk
Nota:
Alle commando's moeten in 1 regel getypt worden. In dit document is er soms
regelafbreking toegepast om de regels leesbaarder te maken.
|
Nota:
Jammergenoeg heeft de AFS client een ext2-partitie nodig voor het cachen omdat
er op het moment van schrijven (eind 2001) locking-problemen zijn met reiserfs.
Je moet een ext2-partitie aanmaken van ongeveer 200 MiB (meer zal geen zeer
doen) en deze in /usr/vice/cache mounten.
|
Je moet de bestanden CellServDB en ThisCell aanpassen
alvorens je de afs client compileert. Deze bestanden staan in
/usr/portage/sys-fs/openafs/files).
Codevoorbeeld 3.1: |
CellServDB:
>netlabs #Celnaam
10.0.0.1 #storage
ThisCell:
netlabs
|
CellServDB vertelt je client welke server(s) hij moet contacteren voor een
specifieke cel. ThisCell, welja, de naam zegt genoeg :). Normaal gezien neem je
een benaming die uniek is voor je organisatie. Je officieel domein is een goede
keuze.
Compileren van de client
Codevoorbeeld 3.2: |
# emerge sys-fs/openafs
|
Na een succesvolle compilatie ben je startklaar.
Automatisch AFS opstarten
Het volgende commando zal de nodige links aanmaken waardoor je je AFS client
automatisch doet opstarten.
Waarschuwing:
Je moet altijd een werkende AFS-server hebben in je domein wanneer je een AFS
client start. Je systeem zal lang wachten op een timeout tijdens het booten
wanneer dat niet het geval is, en dat kan lang duren.
|
Codevoorbeeld 3.3: |
# rc-update add afs default
|
4.
Server Installatie
De server compileren
Het volgende commando zal alle nodige bestanden aanmaken voor zowel AFS server
als client.
Codevoorbeeld 4.1: |
# emerge sys-fs/openafs
|
Opstarten van de AFS server
Je moet eerst de CellServDB en ThisCell voorbeeldbestanden verwijderen.
Codevoorbeeld 4.2: |
# rm /usr/vice/etc/ThisCell
# rm /usr/vice/etc/CellServDB
|
Hierna voer je bosserver uit om de Basic OverSeer (BOS) Server, dewelke
de AFS serverprocessen beheert, op te starten. Bezie het als een init voor het
systeem. Geef het -noauth argument mee om authorizatie uit te schakelen,
aangezien je nog geen beheerder aangemaakt hebt.
Waarschuwing:
Het uitschakelen van de authorizatie is een zware veiligheidsfout. Je moet alle
volgende stappen in 1 trek uitvoeren en je mag de server niet verlaten totdat
je de BOS Server herstart met authorizatie geactiveerd. Dit staat tevens in de
AFS-documentatie.
|
Codevoorbeeld 4.3: |
# /usr/afs/bin/bosserver -noauth &
|
Controleer of de BOS Server /usr/vice/etc/CellServDB en
/usr/vice/etc/ThisCell aangemaakt heeft.
Codevoorbeeld 4.4: |
# ls -al /usr/vice/etc/
-rw-r--r-- 1 root root 41 Jun 4 22:21 CellServDB
-rw-r--r-- 1 root root 7 Jun 4 22:21 ThisCell
|
Definieren van een celnaam en celtoegang voor een server process
Geef nu namen aan je cells.
Belangrijk:
Er zijn enkele restricties wat betreft naamformaat. Twee hiervan zijn dat de
naam geen hoofdletters mag bevatten en niet meer dan 64 karakters lang mag
zijn. Herinner je dat de celnaam onder /afs komt te staan, dus
neem een die gemakkelijk typt.
|
Nota:
Vanaf nu wordt in dit document <server naam> gebruikt. Gelieve
telkens deze te vervangen met de volledige hostname (zoals
afs.gentoo.org). Voor de <celnaam> vervang je deze
natuurlijk met de werkelijke celnaam (bv gentoo).
|
Voer bos setcellname uit om de celnaam in te stellen:
Codevoorbeeld 4.5: |
# /usr/afs/bin/bos setcellname <server naam> <celnaam> -noauth
|
Starten van de Database Server Process
Voer nu bos create uit om de 4 databaseprocessen in
/usr/afs/local/BosConfig in te stellen. Deze 4 processen draaien
enkel op de servermachines.
| kaserver |
De identiteits verificatieserver onderhoudt de identiteits database. Deze kan
vervangen worden door een Kerberos 5 daemon. Indien iemand dat wil proberen mag
je gerust dit document hiernaartoe aanpassen :)
|
| buserver |
De backup server onderhoudt de backup database.
|
| ptserver |
De protectieserver onderhoudt de protectiedatabase.
|
| vlserver |
De volume localisatieserver onderhoudt de volume locatisatiedatabase (VLDB).
Zeer belangrijk :)
|
Codevoorbeeld 4.6: |
# /usr/afs/bin/bos create <server naam> kaserver simple
/usr/afs/bin/kaserver -cell <celnaam> -noauth
# /usr/afs/bin/bos create <server naam> buserver simple
/usr/afs/bin/buserver -cell <celnaam> -noauth
# /usr/afs/bin/bos create <server naam> ptserver simple
/usr/afs/bin/ptserver -cell <celnaam> -noauth
# /usr/afs/bin/bos create <server naam> vlserver simple
/usr/afs/bin/vlserver -cell <celnaam> -noauth
|
Je kan snel zien of alle server draaien door bos status uit te voeren:
Codevoorbeeld 4.7: |
# /usr/afs/bin/bos status <server naam> -noauth
Instance kaserver, currently running normally.
Instance buserver, currently running normally.
Instance ptserver, currently running normally.
Instance vlserver, currently running normally.
|
Initialiseren van de Cell Security
Nu gaan we de veiligheidsmaatregelen initialiseren. We beginnen met het
aanmaken van de volgende 2 entries in de identiteitsdatabase: de
hoofdadministratieve account, genaamd admin, en een entrie voor de AFS
serverprocessen, genaamd afs. Niemand zal er inloggen onder afs,
maar de Server's Ticket Granting Service (TGS) maakt gebruik van deze account
om de servertickets die ze uitdeelt aan de AFS clients te encrypteren. Dit
trekt dus enorm veel op Kerberos :)
Voer kas uit in interactieve mode:
Codevoorbeeld 4.8: |
# /usr/afs/bin/kas -cell <celnaam> -noauth
ka> create afs
initial_password:
Verifying, please re-enter initial_password:
ka> create admin
initial_password:
Verifying, please re-enter initial_password:
ka> examine afs
User data for afs
key (0) cksum is 2651715259, last cpw: Mon Jun 4 20:49:30 2001
password will never expire.
An unlimited number of unsuccessful authentications is permitted.
entry never expires. Max ticket lifetime 100.00 hours.
last mod on Mon Jun 4 20:49:30 2001 by lt;none>
permit password reuse
ka> setfields admin -flags admin
ka> examine admin
User data for admin (ADMIN)
key (0) cksum is 2651715259, last cpw: Mon Jun 4 20:49:59 2001
password will never expire.
An unlimited number of unsuccessful authentications is permitted.
entry never expires. Max ticket lifetime 25.00 hours.
last mod on Mon Jun 4 20:51:10 2001 by lt;none>
permit password reuse
ka>
|
Voer het bos adduser commando uit om de admin gebruiker aan de
/usr/afs/etc/UserList toe te voegen.
Codevoorbeeld 4.9: |
# /usr/afs/bin/bos adduser <server naam> admin -cell <celnaam> -noauth
|
Gebruik het bos addkey commando om de AFS server encryptiesleutel in
/usr/afs/etc/KeyFile te definieren.
Nota:
Indien er gevraagd wordt naar de invoersleutel, geef dan het paswoord in dat je
gegeven hebt bij de afs entrie toen je kas uitvoerde.
|
Codevoorbeeld 4.10: |
# /usr/afs/bin/bos addkey <server naam> -kvno 0 -cell <celnaam> -noauth
input key:
Retype input key:
|
Voer het pts createuser commando uit om een beschermingsdatabase entrie
aan te maken voor de admin gebruiker.
Nota:
Per default zal de Protection Server de AFS UID 1 aan de admin gebruiker
geven, aangezien deze de eerste gebruiker is die je aanmaakt. Indien het lokale
passwd-bestand (/etc/passwd of equivalent) al een entrie heeft voor
admin dat een andere UID gebruikt, maak dan gebruik van het -id
argument om gelijke UIDs te gebruiken.
|
Codevoorbeeld 4.11: |
# /usr/afs/bin/pts createuser -name admin -cell <celnaam> [-id <AFS UID>] -noauth
|
Gebruik het pts adduser commando om de admin gebruiker een lid te
maken van de system:administrators groep, en het pts membership commando
om deze te verifieren.
Codevoorbeeld 4.12: |
# /usr/afs/bin/pts adduser admin system:administrators -cell <celnaam> -noauth
# /usr/afs/bin/pts membership admin -cell <celnaam> -noauth
Groups admin (id: 1) is a member of:
system:administrators
|
Herstart alle AFS serverprocessen.
Codevoorbeeld 4.13: |
# /usr/afs/bin/bos restart <server naam> -all -cell <celnaam> -noauth
|
Starten van de fileserver, volumeserver en Salvager
Start het fs process, dat bestaat uit de fileserver, volumeserver en
Salvager.
Codevoorbeeld 4.14: |
# /usr/afs/bin/bos create <server naam> fs fs /usr/afs/bin/fileserver
/usr/afs/bin/volserver
/usr/afs/bin/salvager
-cell <celnaam> -noauth
|
Controleer of alle processen draaien.
Codevoorbeeld 4.15: |
# /usr/afs/bin/bos status <servernaam> -long -noauth
Instance kaserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/afs/bin/kaserver'
Instance buserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/afs/bin/buserver'
Instance ptserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/afs/bin/ptserver'
Instance vlserver, (type is simple) currently running normally.
Process last started at Mon Jun 4 21:07:17 2001 (2 proc starts)
Last exit at Mon Jun 4 21:07:17 2001
Command 1 is '/usr/afs/bin/vlserver'
Instance fs, (type is fs) currently running normally.
Auxiliary status is: file server running.
Process last started at Mon Jun 4 21:09:30 2001 (2 proc starts)
Command 1 is '/usr/afs/bin/fileserver'
Command 2 is '/usr/afs/bin/volserver'
Command 3 is '/usr/afs/bin/salvager'
|
De volgende actie is afhankelijk van of je al AFS bestandsservers draaiende
hebt gehad in de cel of niet:
Indien je voor de eerste keer een AFS server in de cel installeert moet je een
AFS volume aanmaken, root.afs.
Nota:
Voor de partitie's naam, substitueer <partitienaam> met de naam van je
computer's AFS Server partities. Bij conventie zijn deze /vicex
waar x in de range a-z gelegen is.
|
Codevoorbeeld 4.16: |
# /usr/afs/bin/vos create <servernaam>
<partitienaam> root.afs
-cell <celnaam> -noauth
|
Indien er bestaande AFS fileservermachines bestaan en er al volumes in de cel
zitten, dan moet je vos sncvldb en vos syncserv uitvoeren zodat
de VLDK gesynchroniseerd wordt met de werkelijke staat van de volumes op de
lokale machine. Deze zal alle nodige data overkopieren naar je nieuwe server.
Codevoorbeeld 4.17: |
# /usr/afs/bin/vos syncvldb <server naam> -cell <celnaam> -verbose -noauth
# /usr/afs/bin/vos syncserv <server naam> -cell <celnaam> -verbose -noauth
|
Starten van de servers van de update server
Codevoorbeeld 4.18: |
# /usr/afs/bin/bos create <server naam>
upserver simple "/usr/afs/bin/upserver
-crypt /usr/afs/etc -clear /usr/afs/bin"
-cell <celnaam> -noauth
|
Configureren van de top level van het AFS bestandssysteem
Allereerst moet je enkele ACL's installeren zodat gebruikers /afs
kunnen gebruiken.
Codevoorbeeld 4.19: |
# /usr/afs/bin/fs setacl /afs system:anyuser rl
|
Nu moet je een rootvolume aanmaken, readonly mounten op
/afs/<celnaam> en lees/schrijf op
/afs/.<celnaam>.
Codevoorbeeld 4.20: |
# /usr/afs/bin/vos create <server naam><partitienaam> root.cell
# /usr/afs/bin/fs mkmount /afs/<celnaam> root.cell
# /usr/afs/bin/fs setacl /afs/<celnaam> system:anyuser rl
# /usr/afs/bin/fs mkmount /afs/.<celnaam> root.cell -rw
|
Blaas nu maar eens goed uit. We zijn klaar. Je hebt nu een werkend AFS
bestandssysteem op je lokaal net. Het is nu tijd om een grote kop koffie te
drinken en de AFS documentatie uit te printen.
Nota:
Het is zeer belangrijk dat de AFS server correct functioneert en dat alle
systeemklokken gesynchroniseerd zijn. Dit doe je het best door een NTP-server
te installeren op een machine (bv op de AFS server) en dan via een ntpclient
alle clients hun klokken in te stellen. Dit kan je trouwens laten doen door de
afsclient zelf.
|
5.
Basis Beheer
Nog te doen... momenteel lees je het best de AFS documentatie :)
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|