Einleitung Titelseite samrestore - restore your SAM-FS files Michael Arlt arlt@universa.de 26. Mai 2009 Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 1 / 16
Einleitung Gründe für die Entwicklung Gründe für die Entwicklung Möglichkeiten zum Suchen/Restore in SAM-FS sind vorhanden, aber aufwendig Kommerzielle Systeme bieten teilweise sehr viele (aber nicht alle gewünschten) Features und sind damit vergleichsweise teuer Sourcecode kommerzieller Systeme ist nicht oder nur schwer erhältlich Wenig Lösungen am Markt erhältlich Keine passende Software gefunden Gewünschte Features können selbst implementiert werden Umsetzung schien relativ einfach (bezogen auf unsere Anforderungen) Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 2 / 16
Details zu samrestore Arbeitsweise Arbeitsweise von samrestore archiver-import Erzeugt oder löscht bei Bedarf die Tabellen Importiert archiver.log (Zeilen mit A am Zeilenanfang) in eine PostgreSQL DB Führt ANALYZE durch samrestore Curses Oberfläche zur Suche und Auswahl der zu restorenden Dateien oder Ordner Nutzt Informationen aus archiver.log (DB) um Daten für recover.sh aufzubereiten Ein Restoredatum für samfsrestore zu empfehlen Startet externe Programme für Datei- oder Ordnerrestore Auswahl und Anzeige der Logfiles Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 3 / 16
Details zu samrestore Features Features von samrestore Restore einzelner Dateien mittels recover.sh Überschreiben Originalpfad oder spezieller Restoreordner Restore von Ordnern durch samfsrestore (benötigt Dumps) Auffüllen Ältere überschreiben Alle überschreiben Originalpfad oder spezieller Restoreordner Online stellen (nutzt restore.sh) Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 4 / 16
Details zu samrestore Schnittstellen Schnittstellen zu externen Programmen Liste der Logfiles - keine Parameter Anzeige eines Logfiles $1: Dateiname des Logfiles (absolut/relativ: je nach Liste) Wiederherstellung von Dateien $1: overwrite oder restore-folder Liste der Dateien auf StdIn Wiederherstellung eines Ordners (rekursiv) $1: stage oder nostage $2: alle SAM-FS Parameter (rrsf) $3: Datum (yyyy-mm-dd) des gewünschten Dumpfiles $4: Ordner, der wiederhergestellt werden soll Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 5 / 16
Details zu samrestore Technische Voraussetzungen Technische Voraussetzungen Distributionsunabhängig PostgreSQL ab Version 8.3 Curses::UI DBD::Pg Perl Debian Lenny Pakete postgresql-8.3 libcurses-ui-perl libdbd-pg-perl Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 6 / 16
Systemgrenzen Details zu samrestore Systemgrenzen Grenze Eindeutige Dateinamen 2.147.483.647 1 Eindeutige Pfadnamen 2.147.483.647 1 Dateigröße 9.223.372.036.854.775.807 Datei- und Pfadversionen Anzahl Datensätze in PostgreSQL Archiver Medientypen 1 1 2 Archivesets 1 1 2 Filesysteme 1 3 Datentyp- und Codeänderungen sind teilweise im README dokumentiert und im Quellcode schon vorbereitet (aber nicht getestet). 1 Datentypänderung 2 Codeänderung 3 Neue Datenbank pro Filesystem Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 7 / 16
Praxis: universa Hardware, Statistik universa Virtueller Debian Etch Server Hardware, Statistik 4 Cores (ESX-Server: X5365@3GHz) 2 GB Arbeitsspeicher PostgreSQL 8.3.5 Importierte archiver.log Dateien (13 Monate) Massenimport 5.800.000 Zeilen in 65 Min. (ca. 5,3 Millionen/Std.) Täglicher Import 40.000-50.000 Zeilen/Min. (ca. 3 Millionen/Std.) Anzahl MB Zeilen 18.373.000 2900 Eindeutige Verzeichnisse 412.000 180 Eindeutige Dateinamen 1.880.000 375 Verzeichnisversionen 1.130.000 72 Dateiversionen 12.800.000 1600 Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 8 / 16
Praxis: universa Systemlandschaft universa Systemlandschaft Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 9 / 16
Einrichtung Schnellstart Einrichtung Grundkonfiguration vi samrestore archiver-import psql -c CREATE DATABASE samfs; # Konfiguration # DB einrichten Datenimport archiver-import drop archiver-import create archiver-import import # Löscht alle Tabellen # Erzeugt alle Tabellen # Importiert archiver.log Kontrolle der Imports (schnell, aber nicht exakt) psql -c SELECT relname,reltuples FROM pg_class WHERE reltuples>10000; samfs Restore (Schnittstellenscripte fehlen noch...) samrestore # Startet samrestore Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 10 / 16
PostgreSQL Schnellstart PostgreSQL Performanceoptimierung PostgreSQL (postgresql.conf/universa.conf) include = universa.conf shared_buffers = 1600MB fsync = off synchronous_commit = off archive_mode = off work_mem = 5MB random_page_cost =? synchronize_seqscans = on Shared Memory Konfiguration (Debian Linux) # im gleichen Ordner # Datenbankgröße # Warnung! # Warnung! # Warnung! # z. B. bei ORDER BY # bei Verwendung von SSDs # synchrones seq. Lesen echo kernel.shmmax = n >>/etc/sysctl.conf # Bytes sysctl -p # Kernel Parameter neu laden Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 11 / 16
Livedemo Schnellstart Livedemo Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 12 / 16
Fazit Grenzen des Systems Grenzen des Systems samrestore Features Sicht auf die Vergangenheit (Umbenennen!) Restore von Ordnern (rekursiv) nur mittels Dumps Re- und Unarchiving nicht implementiert Segmented/Overflowed Files nicht implementiert Wartung/Support Kein oder nur eigener Support Code ist von einem Perl-Gelegenheitsanwender Gebunden an PostgreSQL (DBD::PG) Eingeschränkter Nutzerkreis (Administratoren) Keine Rechteverwaltung Keine Prüfung der Eingaben Externe Probleme Zielordner sollten für Dateirestore mit recover.sh existieren star: Parameter p; Ordner werden entsprechend umask erzeugt Aufeinanderfolgende Leerzeichen in restore.sh/recover.sh Probleme der Curses Oberfläche README Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 13 / 16
Fazit Fazit Fazit Einführung SAM-FS Start Mitte März 2008 Start und Fertigstellung samrestore Herbst 2008 Entwicklungszeit Basisversion: 10 MT Integration, Fehlerbereinigung und Funktionserweiterung: 3 MT Anwendung ca. 50 Restores in sieben Monaten Administratoren kommen mittlerweile gut damit zurecht Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 14 / 16
Anhang Datenmodell Datenmodell (eventuell korrekt) Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 15 / 16
Anhang Links Danke für Ihre Aufmerksamkeit! PostgreSQL http://www.postgresql.org/ DBD::Pg CPAN http://search.cpan.org/dist/dbd-pg/ Curses::UI Google Code http://code.google.com/p/curses-ui/ CPAN http://search.cpan.org/dist/curses-ui/ Blog http://curses-ui.blogspot.com/ samrestore http://sourceforge.net/projects/samrestore/ Michael Arlt arlt@universa.de () samrestore - restore your SAM-FS files 26. Mai 2009 16 / 16