1 / 17

Wolfgang Friebel, 9. Oktober 2003

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

elu
Télécharger la présentation

Wolfgang Friebel, 9. Oktober 2003

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 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 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 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" 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. 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) 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 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 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 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) 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) 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"); 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) 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>)+ 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 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 (Wolfgang.Friebel@desy.de) erhältlich, bei Projektende (Winter 2003/2004) auch auf obigem ftp Server AFS Administration

More Related