Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


Gentoo Linux OpenAFS Handleiding

Inhoud:

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 :)



Print

Upgedate op 30 September 2003

De originele versie van dit document wordt niet meer onderhouden

Korte inhoud: Deze handleiding legt uit hoe je een openafs server en client installeert op Gentoo Linux.

Holger Brueckner
Editor

Sven Vermeulen
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.