17
Wolfgang Friebel, 9. Oktober 2003 Hierarchische Administration Hierarchische Administration des AFS File Space des AFS File Space

Wolfgang Friebel, 9. Oktober 2003

  • Upload
    elu

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

Hierarchische Administration des AFS File Space. Wolfgang Friebel, 9. Oktober 2003. Hierarchische AFS Administration. zur Zeit bei DESY laufendes Projekt Aufbauend auf Vorarbeiten im CERN Konzept eines allgemeinen Servers (arc, R. Többicke) AFS-Space Managementkonzept des CERN - PowerPoint PPT Presentation

Citation preview

Page 1: Wolfgang Friebel, 9. Oktober 2003

Wolfgang Friebel,9. Oktober 2003

Hierarchische AdministrationHierarchische Administrationdes AFS File Spacedes AFS File Space

Page 2: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 2

Hierarchische AFS Administration

zur Zeit bei DESY laufendes Projekt Aufbauend auf Vorarbeiten im CERN

Konzept eines allgemeinen Servers (arc, R. Többicke) AFS-Space Managementkonzept des CERN Programm zur Verwaltung des AFS Project Space im

CERN (afs_admin, W. Friebel) Neudesign eines allgemeinen Servers

Soll Kerberos5 und andere Authentifizierungsprotokolle beherrschen (Ersatz von arc, Basis SASL, P. Boettcher)

Adaption von afs_admin und anderen Prozeduren an neuen Server und Implementation DESY spezifischer Abläufe

Page 3: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 3

Allgemeine Ziele

Bereitstellung einer allgemeinen Arbeitsumgebung zur AFS Administration Wiederverwendung von möglichst viel Software Modularer Entwurf, Bausteine können ersetzt werden Kapselung, nur die notwendigen Schnittstellen sind

sichtbar Schaffung und Adaption von Werkzeugen, die auf

diesem Konzept aufbauen

Page 4: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 4

Gegenwärtige Situation bei DESY

Keine oder veraltete Werkzeuge zum Anlegen von Volumes und Mountpoints

Delegation von Aufgaben schwer möglich Keine Strategie zur Verteilung von Volumes auf

Fileserver Keine automatische Umverteilung von Volumes

auf die Fileserver

Page 5: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 5

Der Ansatz (1)

Kodierung in Perl (schnelle Entwicklungszyklen, ausgereifte stabile Server auf Basis Perl im Einsatz)

Benutzung vorhandener Perl Module: AFS.pm (auf CPAN) neueste Version unter www.mpa-garching.mpg.de/~nog

Zusätzliches Modul entwickelt: Vos.pm AFS.pm stellt nicht alle Funktionen des AFS API bereit insbesondere fehlend: Funktionen für volume server access Hauptzweck: Parsen der Volume und Partition Informationen (mindestens 2 weitere Perl Module tun in etwa das gleiche,

Infos dazu habe ich erst nach Kodieren von Vos.pm erhalten) Bereitstellung eines Mechanismus zum Klassifizieren von

Volumes definiere Mengen von Volumes mit gleichen Eigenschaften Volset.pm ist ein Package für solche "Volume Sets"

Page 6: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 6

Gruppierung von AFS Volumes

Volume sets (Volsets) Jeder Volume gehört zu einem oder mehreren Volsets Hierarchy von Volsets, wobei untergeordnete Volsets

Eigenschaften von übergeordneten Volsets erben Der oberste Volset für ein Volume definiert die Affinität

zu Partitionen (vice...) Der spezifischste Volset beschreibt Quota, Eigentümer,

Administrator, Zugehörigkeit zu Projekten usw.

Page 7: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 7

Beschreibung von Volsets

Alle Volsets werden in einem File afsadmin.cf beschrieben Es enthält mehrere Abschnitte, die den gesamten AFS space

beschreiben• Den Namen der AFS Zelle und Regel für den $HOME Pfad • Die vorhandenen AFS Server und ihre Funktion• Beschreibung der verfügbaren AFS Partitionen und die Names von

Volsets, die dort gespeichert werden dürfen (Sammlung von Projektvolumes in Pools).

• Volume patterns zur Beschreibung der Zuordnung von Volumes zu Volsets

• Liste von Volset Namen und deren Eigenschaften (mount point, quota, ...)

ACL's für Volsets zur Regelung von Volume Administrationsrechten müssen auf Server gehalten werden

Code dazu in Entwicklung (bzw. im arcd vom CERN enthalten)

Page 8: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 8

Grundlegende Charakteristika

Code ist weitgehend frei von Site spezifischem Code

Rolle der AFS server muss nicht fest einkodiert werden

Beliebige Zahl von Volsets (für Projekte etc.) kann auf eingeschränkte Liste von AFS server Partitionen verteilt werden

Schema könnte auch zur Strukturierung der User Volumes (Home directories) benutzt werden

Page 9: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 9

Charakteristika (Details)

Patterns in afsadmin.cf mit Variablen um einen Volset Namen von einem Volume Namen zu bestimmen, reduziert die Zahl der Patterns

Alternative Mechanismen zur Zuordnung von Volumes zu Volsets wären implementierbar (Datenbank)

Die Volsets bilden eine Hierarchie (von links nach rechts im Abschnitt [Volumepatterns]), die Volsets erben von ihren Eltern (quota, partition,...) falls sie nicht spezifischere Werte bereitstellen

Zugriff auf die Daten (z.B. Quota Information) ist nur über Funktionen möglich (separater Namensraum) Änderung der Implementation ohne Änderung des Interface Funktionen, die intern in den Modules benutzt werden, sind

verborgen

Page 10: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 10

afsadmin.cf (Beispiel)

[AFSSERVERS] #server_name OS server_functions

afs02 Linux fs

afsdb1 Solaris fs db arc reg

[PARTITIONS] #partition_names collection_names

afs02/(a,b,c) fixed

afsdb1/s sys

[VOLUMEPATTERNS] #perl_pattern collection_names

\.R$ recover

^s\.(\w+)\b fixed $1 $1_s

^user\b users

[VOLSETS]

ceres 4G exp/ceres #collection_name quota mount_point

ceres_s 2G

Page 11: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 11

Gegenwärtiger Stand

Vos.pm ist getested, Testsuite (testvos) ist vorhanden (hauptsächlich Parsen von vos exa &co. output)

Volset.pm ist getested, gleiche Testsuite, Funktionsumfang hauptsächlich an Bedürfnissen von afs_admin (verteilte Administration des Volume Managements) angepaßt

Stubs für allgemeinen Mechanismus zum Cachen von Daten in beiden Perl Modulen vorhanden (Verhalten beeinflußbar)

Dokumentation vorhanden (perldoc Vos/Volset) Prozedur zur Verwaltung des AFS Project Space im CERN

(afs_admin) existiert (client), Server ist noch arcd, wird im Rahmen des laufenden Projektes ersetzt)

Page 12: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 12

Interna

Perl Module mit Blick auf Objektorientierung geschrieben. Zur Zeit wird prozedurales Interface angeboten. Übergang auf OO ist einfach, wegen Rückwärtskompatibilität nicht realisiert

Alle Informationen werden intern in Strukturen gehalten (anonyme Perl Hashes, die Substrukturen enthalten können (anonyme Hashes oder anonyme Arrays)

Die meisten Daten kommen mit time stamps (für Caching) Zugriff auf die Daten von außen ausschließlich über

Funktionen (Encapsulation)

Page 13: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 13

Codebeispiel

# $vol can be volname or volID

my $volname=vid2name($vol);

# retrieve some volume attribute

my $quota=quota($volname);

my $timestamp=get_volattrib($volname, '_time');

# get all volsets the volume is in ($volsets[0] is poolname)

my @volsets=vol2set($volname);

# create a volume (without sanity checks)

my $to=choose_disk($volname);

# $to contains suitable partition, e.g. filesrv1/a

$to =~ s/\// /;

arc_execute("vos create $to $volname");

Page 14: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 14

Nächte Schritte

Installation von afs_admin bei DESY mit neuem Server Entwicklung eines Kerberos5 Servers nach dem Vorbild von

spamd (SpamAssassin) Authentisierung mit SASL (neben Kerberos weitere

Mechanismen möglich) Benutzung von Vos.pm und Volset.pm im Serverteil Entwicklung/Adaption weiterer Werkzeuge, die auf diese

Perl Module aufbauen (z.B. Loadbalancing durch Verlagern von AFS Volumes)

eventuell Entwicklung eines Web-Interfaces oder GUI für afs_admin

Anpassungen an neue geplante Versionen von AFS.pm mit erweitertem Funktionsumfang (Ersatz von Vos.pm)

Page 15: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 15

afs_admin Kommandos create [-q <quota>] [-u <user>] [-p <pool|srv[/part]>] <mnt> <volume> create_mount (<mount_point> <volume_name>)+ create_project -q <quota> [-u <user>] <project> [<mount_point_pattern>] create_replica [-p <pool|srv[/part]>] (<volume> [<srv/part>])+ create_scratch [-q <quota>] [-u <user>] [-p pool] [-w{0..9}] <project> create_volume [-p <pool|srv[/part]>] (<volume> [<srv/part>])+ create_workspace [-q<quota>] [-u<user>] [-p pool] [-w{0..9}] <project> delete <dir_path>+ delete_mount <dir_path>+ delete_project <project> delete_replica [-p <srv[/part]>] (<vol_name_or_ID> [<srv/part>])+ delete_scratch -u <user> -w{0...9} <project> delete_volume [-p <srv[/part]>] (<vol_name_or_ID> [<srv/part>])+ delete_workspace -u <user> -w{0...9} <project> help [command]+ list_acl [<project>+|<dir path>+] list_quota [<project>+|<dir path>+] list_occupancy [-q <max_percentage_quota>] [project|srv[/part]] list_project [-q <max_percentage_quota>] [<project>] move_volume [-p <pool|srv[/part]>] (<volume> [<srv/part>])+ rename <dir_path> <new_volume_name> rename_mount <old_dir_path> <new_dir_path> rename_volume <old_volume_name> <new_volume_name> set_acl <dir_path> <access_list_entries>+ set_owner <owner> <dir_path>+ set_quota <dir_path>|<project_name> [+]<max_quota_in_kbytes> vos_release (<volume name>|<dir path>)+

Page 16: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 16

Servercode für afs_admin

Liste der für afs_admin zu implementierenden Funktionen auf dem Server: fs: listacl, setacl, lsmount, mkmount, rmmount vos: addsite, create, release, remove, rename UNIX: chown, mkdir Authorisierung der Nutzer gemäß ACL's

Page 17: Wolfgang Friebel, 9. Oktober 2003

9. Oktober 2003 AFS Administration 17

Verfügbarkeit

Vos.pm und Volset.pm sind auf ftp://ftp.ifh.de/pub/unix/gnu/perl/modules (Vos-1.07.tar.gz und Volset-1.06.tar.gz)

AFS.pm ist auf CPAN oder auf http://www.mpa-garching.mpg.de/~nog

afs_admin (erfordert laufenden arc daemon) und Servercode dazu (arc Prozeduren) sind bei Bedarf von mir ([email protected]) erhältlich, bei Projektende (Winter 2003/2004) auch auf obigem ftp Server