Eine meiner Hauptaufgaben für die GKSS@DESY ist die Planung der Datenhaltung. Die Beamlines der GKSS, und dort insbesondere die Tomographie-Experimente an den neuen Beamlines an Petra III werden in den nächsten Jahren ca. 1PetaByte an Daten pro Jahr erzeugen - das sind zur Zeit (2009) ca. 3 Festplatten täglich. Hierbei handelt es sich sowohl um Messdaten (die bis zu 10 Jahre aufbewahrt werden sollen) als auch um abgeleitete Daten (Rekonstruktionen, Auswertungen), die teilweise nur einige Monate, teilweise aber auch viele Jahre aufbewahrt werden sollen.
Gleichzeitig ist jedoch ein einfacher Zugriff auf diese Daten gewünscht - statt dass man sich mühsam merken muss, welche Datei zur Zeit wo lagert, soll ein virtuelles Dateisystem zu jedem Zeitpunkt den Zugriff auf jede Datei erlauben (wenn auch, im Fall von ausgelagerten Dateien, einen eher langsamen Zugriff).
Derartige Eigenschaften verbinden sich im Allgemeinen mit dem Begriff Hierarchical Storage Management (HSM). Das ist nicht neu, und wird von einer Reihe von Firmen (u.a. IBM, SGI, Quantum) bereits seit Jahren angeboten. Hier findet sich ein Vortrag vom 17.6.2008, in dem ich auf einige der Probleme und Fragestellungen (aus damaliger Sicht) eingehe.
Wir haben uns jedoch entschieden, statt einer professionellen Kauflösung den bereits am DESY vorhandenen dCache zu nutzen (in seiner ursprünglichen Konzeption als Cache für Tapezugriffe; in seiner aktuellen Inkarnation kann der dCache viel mehr). Da der dCache jedoch nicht unseren Anforderungen entspricht (z.B. bündelt der dCache Datein nicht bevor er sie auf Tape schreibt und kann dadurch kleine Dateien nicht effizient auf Tape speichern) habe ich ein Frontend für den dCache geschrieben, das Disk Cache File System (DCFS), ein auf FUSE basierendes Dateisystem, welches von den Clients über CIFS oder NFS gemounted werden kann und einen Überblick über alle zur Zeit gespeicherten Daten bietet.
Die Abbildung zeigt den Daten- und Kontrollfluss; wie man erkennen kann, müssen die Daten bis zu 4x kopiert werden (2x, wenn die Daten im lokalen Cache des DCFS Servers liegen). Der Datenfluß geht hierbei ausschließlich vom Server zum Client, da all diesen Daten gemeinist , das sie nur einmal (bei der Datennahme) geschrieben und danach nur noch (zur Auswertung) gelesen werden.