LPS:AFS servery

Z HelpDesk

Na této stránce je stručně popsána konfigurace našich AFS serverů.

Podrobná dokumentace je na stránkách projektu OpenAFS

Databázové servery

HW

Naši AFS buňku reprezentují 3 databázové stroje.

Jméno HW OS
oknos SunFire v210, UltraSPARC IIIi, 1GB RAM SunOS 5.9
nic SunFire v210, UltraSPARC IIIi, 1GB RAM SunOS 5.9
sauron SunFire v210, UltraSPARC IIIi, 1GB RAM SunOS 5.9

Konfigurace

Bosserver (Basic OverSeer Server ) spravuje procesy vlserver (Volume Location Server ), ptserver (Protection Server ), buserver (Backup Server ). Bosserver na serveru oknos navíc zajišťuje periodické spouštění zálohování a vytváření backup volumů (user.*.backup). Přestože používáme OpenAFS, jsou veškeré konfigurační soubory a data umístěna v adresáři /usr/afs (Transarc AFS konvence). AFS servery při startu kontrolují přístupová práva k těmto adresářům!

# ls -l  /usr/afs
 total 10
 drwxr-xr-x   2 root     other       1024 Aug 18 13:13 bin
 drwx------   3 root     other        512 Aug 18 10:56 db
 drwxr-xr-x   2 root     other        512 Aug  9 17:00 etc
 drwx------   2 root     other        512 Oct 16 04:00 local
 drwxr-xr-x   2 root     other        512 Oct 16 04:00 logs
 

Základní konfigurace je umístěna v adresáři etc

# ls -l /usr/afs/etc
 total 14
 -rw-r--r--   1 root     root         111 Aug 18 10:58 CellServDB
 -rw-r--r--   1 root     root         113 Aug  9 13:00 CellServDB_old
 -rw-------   1 root     root         100 Aug  9 13:00 KeyFile
 -rw-r--r--   1 root     root           9 Aug  9 13:00 License
 -rw-r--r--   1 root     root           6 Aug  9 16:18 ThisCell
 -rw-r--r--   1 root     root          69 Aug 17 18:00 UserList
 -rw-r--r--   1 root     root         269 Aug 18 14:22 krb.conf
   

CellServDB obsahuje pouze jméno AFS buňky a seznam VLDB serverů (viz výše)

>zcu.cz                        #University of West Bohemia, Czech Republic
147.228.52.10                  #oknos.zcu.cz
147.228.52.17                  #nic.zcu.cz
147.228.10.18                  #sauron.zcu.cz

KeyFile nese klíč - nikdy jej nenechávejte na veřejně přístupném místě!. KeyFile je společný pro všechny servery naší buňky obdobně jako soubor License. ThisCell obsahuje název lokální buňky - tedy zcu.cz. Soubor UserList je také shodný pro všechny servery a obsahuje seznam privilegovaných uživatelů (bos adduser nebo prosté překopírování souboru). V našem případě obsahuje uživatele:

	admin
	sitera.root
	adm.admin
	kejzlar.root
	afsadm.ody.zcu.cz
	paja.root

Adresář bin obsahuje binární soubory AFS serverů. V db leží databáze udržované jednotlivými procesy (ptserver, vlserver, ...), jde o nejdůležitější část dat, která jsou replikována na všech VLDB serverech. Adresář local obsahuje především soubor BosConfig, jenž nese informace o AFS procesech, které mají na daném stroji běžet. Soubor lze mezi stroji kopírovat, za normálních okolností se vytváří příkazem bos (create, setrestart, ...) Př. BosConfig na serverech sauron a nic

restarttime 11 0 4 0 0
checkbintime 3 0 5 0 0
bnode simple buserver 1
parm /usr/afs/bin/buserver
end
bnode simple ptserver 1
parm /usr/afs/bin/ptserver
end
bnode simple vlserver 1
parm /usr/afs/bin/vlserver
end

Server oknos obsahuje i informace pro zálohování

restarttime 11 0 4 0 0
checkbintime 3 0 5 0 0
bnode simple buserver 1
parm /usr/afs/bin/buserver
end
bnode simple ptserver 1
parm /usr/afs/bin/ptserver
end
bnode simple vlserver 1
parm /usr/afs/bin/vlserver
end
bnode cron userbackupmon 1
parm /usr/afs/bin/vos backupsys -prefix user. -localauth
parm mon 22:00
end
bnode cron userbackuptue 1
parm /usr/afs/bin/vos backupsys -prefix user. -localauth
parm tue 22:00
end
bnode cron userbackupwed 1
parm /usr/afs/bin/vos backupsys -prefix user. -localauth
parm wed 22:00
end
bnode cron userbackupthu 1
parm /usr/afs/bin/vos backupsys -prefix user. -localauth
parm thu 22:00
end
bnode cron userbackupweekend 1
parm /usr/afs/bin/vos backupsys -prefix user. -localauth
parm sat 04:00
end

V local se nachází i soubor sysid obsahující jednoznačný identifikátor serveru (HW adresa, jméno, verze, ...). Tento soubor nikdy nekopírujte mezi servery. V případě potřeby ho lze smazat, při startu AFS serveru se automaticky vytvoří.

logs zahrnuje logy AFS procesů (BosLog, FileLog, ...).

Kontrola

Aktuální stav procesů lze zjistit příkazem

>  bos status sauron
Instance vlserver, currently running normally.
Instance ptserver, currently running normally.
Instance buserver, currently running normally.

nebo

> bos status sauron -long
Instance vlserver, (type is simple) currently running normally.
    Process last started at Fri Sep 27 10:45:05 2002 (1 proc starts)
    Command 1 is '/usr/afs/bin/vlserver'

Instance ptserver, (type is simple) currently running normally.
    Process last started at Fri Sep 27 10:45:05 2002 (1 proc starts)
    Command 1 is '/usr/afs/bin/ptserver'

Instance buserver, (type is simple) currently running normally.
    Process last started at Fri Sep 27 10:45:05 2002 (1 proc starts)
    Command 1 is '/usr/afs/bin/buserver'

AFS zajištujě konzistenci databází replikovaných na těchto strojích. Informace o synchronizačním místu, výsledcích hlasování, ... mohou být získány příkazem udebug. Je potřeba uvést jméno serveru a port, na kterém patřičný proces svázaný s databází pracuje, např. 7002 Protection Server, 7003 Volume Location Server.

> udebug sauron 7002
Host's addresses are: 147.228.10.18
Host's 147.228.10.18 time is Thu Oct 20 11:55:41 2005
Local time is Thu Oct 20 11:55:42 2005 (time differential 1 secs)
Last yes vote for 147.228.10.18 was 12 secs ago (sync site);
Last vote started 12 secs ago (at Thu Oct 20 11:55:30 2005)
Local db version is 1129567846.93
I am sync site until 45 secs from now (at Thu Oct 20 11:56:27 2005) (3 servers)
Recovery state 1f
Sync site's db version is 1129567846.93
0 locked pages, 0 of them for write
Last time a new db version was labelled was:
         234295 secs ago (at Mon Oct 17 18:50:47 2005)

Server (147.228.52.17): (db 1129567846.93)
    last vote rcvd 15 secs ago (at Thu Oct 20 11:55:27 2005),
    last beacon sent 12 secs ago (at Thu Oct 20 11:55:30 2005), last vote was yes
    dbcurrent=1, up=1 beaconSince=1

Server (147.228.52.10): (db 1129567846.93)
    last vote rcvd 12 secs ago (at Thu Oct 20 11:55:30 2005),
    last beacon sent 12 secs ago (at Thu Oct 20 11:55:30 2005), last vote was yes
    dbcurrent=1, up=1 beaconSince=1

Pokud je vše v pořádku, má recovery state hodnotu 1f. Tento stav je ovšem uveden jen na jednom serveru - na aktuálním synchronizačním místě pro danou databázi (ta je určena hlasovaním, resp. nejnižší IP adresou).

Souborové servery

V jednotlivých lokalitách máme následující servery

  • Bory - elektra1, elektra2, elektra3, eurynome, eurynome2, dce
  • Husova - harpia
  • Klatovská - ezop.pef
  • Cheb - fennel.fek

Hardware

Na těchto strojích je spuštěn fileserver (procesy bosserver, fileserver, volserver, salvager):

Jméno HW OS Poznámka
elektra1 1x Xeon/3.20GHz, 2GB RAM Debian Linux, i686
elektra2 1x Xeon/3.20GHz, 2GB RAM Debian Linux, i686
elektra3 1x Xeon/3.20GHz, 2GB RAM Debian Linux, i686
elektra4 1x Xeon/3.20GHz, 2GB RAM Debian Linux, i686
eurynome 1x Xeon 3.06GHz, 2GB RAM Debian Linux, i686
eurynome2 1x Xeon 3.06GHz, 2GB RAM Debian Linux, i686
dce 1x Xeon 3.20GHz, 2GB RAM Debian Linux, i686
dce2 1x Xeon 5160 @ 3.00GHz, 4GB RAM Debian Linux, i686
harpia 1x Xeon E5420 @ 2.50GHz, 4GB RAM Debian Linux, i686 provozní, RO kopie pro město
ezop.fpe 1x Xeon E5310 @ 1.60GHz, 4GB RAM Debian Linux, i686 provozní, RO kopie pro FPE
fennel.fek 1x Xeon @ 2.60GHz, 1GB RAM Debian Linux, i686 provozní, RO kopie pro Cheb
laila.civ 1x Xeon @ 3.00GHz, 8GB RAM Debian Linux, i686 testovací server
chryso1 1x Xeon, 4GB RAM Debian Linux, amd64 experimentální pro projekt FR Cesnet
chryso2 1x Xeon, 4GB RAM Debian Linux, amd64 experimentální pro projekt FR Cesnet

Využití prostoru jednotlivých typů volumů v GB:

* user.* sw.* project.* public.* testovací data ostatní
Datum RW RO BK RW RO BK RW RO BK RW RO BK RW RO BK RW RO BK RW RO BK
11/2005 1129 180 893 241 0 241 105 108 103 296 5 308 21 16 21 406 0 163 60 51 57
10/2009 4659 552 937 937 0 937 241 241 0 956 6 0 97 61 0 2139 0 0 289 250 0

Důležité volumy a jejich rozmístění

V následující tabulce je seznam důležitých volumů, které je vhodné releasovat na všechny dostupné servery. Pokud se má provádět profylaxe na serveru s RW kopií tohoto volumu, pak přesun tohoto volumu na jiný server je významným plusem pro fungování AFS prostředí během profylaxe:

  • root.afs
  • root.cell
  • common
  • common.profiles
  • users
  • project
  • sw
  • public

Konfigurace

Některé prvky jsou shodné s konfigurací databázových serverů - CellServDB, sysid, KeyFile, ...
Jelikož na souborových serverech používáme OpenAFS, může být poněkud odlišná adresářová struktura na Linuxech (Debian). Přesvečte se, zda je konfigurace v /usr/afs nebo v /etc/openafs.

elektra1:~# ls -l /etc/openafs/
total 56
drwxr-xr-x    4 root     root         4096 Mar 14 13:41 .
drwxr-xr-x   43 root     root         4096 Mar 14 13:41 ..
-rw-------    1 root     root            0 Dec  6 15:13 AFSLog
-rw-r--r--    1 root     root          163 Mar 14 13:41 BosConfig
-rw-r--r--    1 root     root          163 Dec 10 07:23 CellServDB
-rw-r--r--    1 root     root        16340 Dec  6 12:40 CellServDB.old
-rw-r--r--    1 root     root            7 Feb 14 12:22 ThisCell
-rw-r--r--    1 root     root         2742 Dec  4 06:05 afs.conf
-rw-r--r--    1 root     root           81 Feb 14 12:22 afs.conf.client
-rw-r--r--    1 root     root           31 Feb 14 12:22 cacheinfo
drwxr-xr-x    2 root     root         4096 Dec 10 06:52 server
drwxr-xr-x    2 root     root         4096 Dec  4 06:05 server-local

elektra1:~# ls -l /etc/openafs/server
total 24
drwxr-xr-x    2 root     root         4096 Dec 10 06:52 .
drwxr-xr-x    4 root     root         4096 Mar 14 13:41 ..
-rw-r--r--    1 root     root          163 Dec 10 07:23 CellServDB
-rw-------    1 root     root          100 Dec 10 07:20 KeyFile
-rw-r--r--    1 root     root            7 Feb 14 12:22 ThisCell
-rw-------    1 root     root           73 Dec 10 06:52 UserList

elektra1:~# ls -l /var/log/openafs/
total 19336
drwxr-xr-x    2 root     root         4096 Mar 14 13:41 .
drwxr-xr-x    7 root     root         4096 Mar 25 06:54 ..
-rw-r--r--    1 root     root           58 Mar 14 13:41 BosLog
-rw-r--r--    1 root     root          164 Mar 14 13:22 BosLog.old
-rw-r--r--    1 root     root       228668 Mar 25 09:22 FileLog
-rw-r--r--    1 root     root       653154 Mar 14 13:22 FileLog.old
-rw-r--r--    1 root     root          192 Dec 16 09:05 SalvageLog
-rw-r--r--    1 root     root          192 Dec 13 16:13 SalvageLog.old
-rw-r--r--    1 root     root      4821243 Mar 24 22:48 VolserLog
-rw-r--r--    1 root     root     14021053 Mar 13 22:45 VolserLog.old

BosConfig obsahuje jinou konfiguraci než na databázových serverech. Proces fileserveru se skládá ze tří základních procesů:

restarttime 16 0 0 0 0
checkbintime 3 0 5 0 0
bnode fs fs 1
parm /usr/lib/openafs/fileserver -L
parm /usr/lib/openafs/volserver
parm /usr/lib/openafs/salvager
end

Parametr -L (Large) používáme pouze u velkých serverů (elektra1, elektra2, elektra3, tapes). Na Linuxech (přesněji v OpenAFS) lze použít pro ukládání dat (/vicep?) moderní souborové systémy - na elektra[1-3] např. reiserfs, na DUX máme standardní filesystem ufs.

Kontrola

Stav procesů je možné obdobně jako u databázových serverů zjistit prostřednictvím příkazu bos.

> bos status elektra1 -long
Instance fs, (type is fs) currently running normally.
    Auxiliary status is: file server running.
    Process last started at Fri Jan 10 12:50:17 2003 (2 proc starts)
    Command 1 is '/usr/lib/openafs/fileserver -L'
    Command 2 is '/usr/lib/openafs/volserver'
    Command 3 is '/usr/lib/openafs/salvager'

Bos umožňuje rovněž vzdálené čtení logů (v adresáři /usr/afs/logs, popř. /var/log/openafs).

> bos getlog elektra1 FileLog | less
Fetching log file 'FileLog'...
Fri Jan 10 12:50:18 2003 File server starting
Fri Jan 10 12:50:18 2003 afs_krb_get_lrealm failed, using zcu.cz.
Fri Jan 10 12:59:25 2003 Partition /vicepa: attached 11586 volumes; 0 volumes not attached
Fri Jan 10 13:04:33 2003 Partition /vicepb: attached 6404 volumes; 0 volumes not attached
Fri Jan 10 13:04:55 2003 Partition /vicepc: attached 180 volumes; 0 volumes not attached
Fri Jan 10 13:04:55 2003 Getting FileServer name...
Fri Jan 10 13:04:55 2003 FileServer host name is 'elektra1'
Fri Jan 10 13:04:55 2003 Getting FileServer address...
Fri Jan 10 13:04:55 2003 FileServer elektra1 has address 147.228.54.15 (0xf36e493 or 0x93e4360f in host byte order)
Fri Jan 10 13:04:55 2003 File Server started Fri Jan 10 13:04:55 2003
Fri Jan 10 13:10:51 2003 ProbeUuid failed for host 147.228.2.137:7001

Fileserver reaguje na vybrané signály.

  • TSTP - enable logging (více informací v logu)
  • HUP - disable logging (návrat k minimálnímu množství informací)
  • XCPU - dump all internal datastructures
  • QUIT - kill fs safely

Pokud se zdá, že AFS klient nereaguje, je vhodné zjistit, zda nečeká na komunikaci s nějakým serverem.

> rxdebug afro 7001
Trying 147.228.1.20 (port 7001):
Free packets: 130, packet reclaims: 68, calls: 6147, used FDs: 64
not waiting for packets.
0 calls waiting for a thread
1 threads are idle
Done.
> /usr/afsws/etc/rxdebug eryx1 7001
Trying 147.228.52.223 (port 7001):
Free packets: 122, packet reclaims: 2, calls: 23407, used FDs: 64
not waiting for packets.
0 calls waiting for a thread
1 threads are idle
Connection from host 147.228.54.15, port 7000, Cuid 9100a59f/8a6802f0
   serial 248,  natMTU 1444, flags pktCksum, security index 2, client conn
   rxkad: level crypt, flags pktCksum
   Received 9936 bytes in 38 packets
   Sent 57359 bytes in 76 packets
     call 0: # 38, state active, mode: receiving, flags: reader_wait,
has_output_packets
     call 1: # 0, state not initialized
     call 2: # 0, state not initialized
     call 3: # 0, state not initialized
  ...
  ...
  ...

Vykazuje-li klient delší dobu stavy reader_wait, bude patrně problém v komunikaci s uvedenou IP adresou (serverem). Obdobně lze překontrolovat i stranu serveru.

> rxdebug elektra1 -allconn -rxstats | grep waiting_for_process 

Jestliže výpis delší dobu obsahuje větší mnořství řádek, je možné očekávat nějaké problémy.

    call 0: # 4417, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 9, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 14, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 15, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 456, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 15, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 10, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 972, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    ...
    ...
    ...
    call 0: # 13, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 2, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 20, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 109, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 11, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets
    call 0: # 19, state precall, mode: unknown, flags: waiting_for_process receive_done, has_input_packets

LVM2 na AFS-FS serverech

Rozšíření diskového prostoru

Inicializace a přidání dalšího disku /dev/dm-1 do LVM skupiny vgvicepa:

pvscan
pvcreate /dev/dm-1
vgextend vgvicepa /dev/dm-1

Uvolnění původní partitiony /dev/dm-0 (vhodné pustit ve screen):

pvscan
pvmove -v /dev/dm-0
vgreduce vgvicepa /dev/dm-0
pvremove /dev/dm-0

Zvětšení logického volumu /dev/vgvicepa/part1 na maximum volného místa:

lvscan
lvextend -l +100%FREE /dev/vgvicepa/part1

Zvětšení XFS na mountpointu /vicepa:

mount
xfs_growfs /vicepa