Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wolfgang Friebel, 9. Oktober 2003

Ähnliche Präsentationen


Präsentation zum Thema: "Wolfgang Friebel, 9. Oktober 2003"—  Präsentation transkript:

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

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 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 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 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 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" 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. 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) 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 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 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 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) 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) 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) # 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"); 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) 9. Oktober 2003 AFS Administration

15 afs_admin Kommandos 9. Oktober 2003 AFS Administration
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>)+ 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 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 afs_admin (erfordert laufenden arc daemon) und Servercode dazu (arc Prozeduren) sind bei Bedarf von mir erhältlich, bei Projektende (Winter 2003/2004) auch auf obigem ftp Server 9. Oktober 2003 AFS Administration


Herunterladen ppt "Wolfgang Friebel, 9. Oktober 2003"

Ähnliche Präsentationen


Google-Anzeigen