MSXFAQ Archivkonzept

Durch die Beschäftigung mit dem Thema Archiv habe ich meine eigenen Vorstellungen, welche Leistungen ein Archivsystem erbringen soll. Es muss natürlich den gesetzlichen Vorschriften genügen, aber es muss auch helfen, den Exchange Betrieb zu vereinfachen und an anderer Stelle kosten zu sparen. Ich denke, dass dazu folgende Funktionsweise geeignet wäre:

Konzeption

Folgende Überlegungen liegen der Archivlösung zugrunde:

Archivkopie über Transport ist genug

Exchange erlaubt durch die Journalmailboxfunktion als auch durch Transportsinks ein Zugriff auf Nachrichten während der Übertragung. Sicher wäre es auch wünschenswert, jede Veränderung eines Termins oder z.B. eines Eintrags in einem öffentlichen Ordner als neue Version zu archivieren. Dies ist aber aufwändig und erzeugt immense Datenmengen ohne letztlich einen großen Vorteil zu erbringen. Allerdings muss sichergestellt sein, dass die Mail wirklich sofort als Kopie im Archiv landet. Allerdings sollte die Mail im Postfach dadurch nicht sofort auch "archiviert" werden. Denn schaut man sich die Zugriffe und Größe auf die Mails nach dem Alter an, dann zeigt sich in etwa folgendes Bild:

 Alter und Zugriffe

Die hellgrüne Fläche zeigt die Zugriffe auf Elemente abhängig vom Alter. Die meisten Zugriffe erfolgen auf Objekte, deren Zeitpunkt aktuell sind. Dazu gehören gerade angekommene Mails aber auch Termine, die in der nahen Zukunft liegen. Auf Objekte die einige Wochen älter sind, wird fast gar nicht mehr zugegriffen bzw. nur gezielt gesucht.

Bezogen auf die Datenmenge gehen wir von einem Wachstum der Mails aus, d.h. ältere Objekte sind entweder kleiner oder wurden vom User schon aus dem Store gelöscht, während Aktuelle Objekte einen großen Anteil ausmachen und die Termine und Aufgaben in der Zukunft doch viel geringer sind. Ein Archiv könne nun die Exchange Datenbank um den violetten Anteil erleichtern.

Verzögertes Replace der Attachments

Erst ein zweiter Prozess sollte entsprechend einstellbarer Regel dann nachlaufend die Mails im Postfach durch platzsparende Ersatzobjekte austauschen. Aufgrund meiner Analysen mit MBReport wird durch ein Entfernen der Anlagen durch einen Link auf die Archivversion sehr viel Platz im Exchange Store gespart., was Zeit und Kapazität beim Backup und vor allem beim Restore spart. Hier "verdient" das Archiv das Geld, welches es selbst kostet. Alle älteren Daten die im Archiv sind, sind nicht mehr komplett im "teuren" Store, d.h. bei einem Ausfall müssen nur der kleine Teil der aktuellen Mails und die Pointer der archivierten Mails restauriert werden.

Optional könnte noch etwas später ein anderer Prozess die Mails komplett entfernen, so dass der Anwender sehr alte Mails nur noch über das Archivsystem einsehen, finden oder wiederherstellen kann. Dies sollte helfen, dass die Anzahl der Elemente pro Ordner verringert wird, denn die Performance von Exchange ist weniger von der Größe als der Anzahl in einem Ordner abhängig. Denkbar wäre auch ein serverseitiges Verschieben der alten Elemente in einen unterordner, damit die "produktiven Ordner" einfach weniger Inhalte haben.

Archiv Backend als Dateisystem mit SIS als Store, SQL als Index

Nachdem ich einige Systeme gesehen habe, bin ich ein Befürworter eines dateibasierten Archivs. Das Ablegen von archivierten Elementen komplett in einer Datenbank verlagert nur die Probleme. Mehrere Produkte nutzen eine Verzeichnisstruktur mit Datum und Zeit. Über Mountpoints kann man verschiedene Festplatten vorhalten und entsprechende Massenspeicher die Veränderungen verhindern sind schon länger im Markt verfügbar. Gerne kann ein Archivsystem auch ein MO oder WORM schreiben, wenn es ein entsprechendes Management mitbringt.

Für die Verwaltung bietet sich natürlich ein SQL-Server an, während der Zugriff durch den Client per HTTP erfolgen kann. Da Mails sehr oft an mehrere Personen gesendet werden, dürfte es sich lohnen, über jedes archivierte Element einen Hashwert zu bilden um Dubletten nur einmal abspeichern zu müssen.

Administratives Recovery

Für die Geschäftsführung ist das Archiv aufgrund legislativer Gründe gefordert aber als Administrator kann ich das Archiv als legitimes Backup und Recovery-Werkzeug verstehen. Wenn jede Mail, die übertragen wird, sofort als Kopie im Archiv landet, dann kann ein Ausfall eines Servers den Schrecken verlieren. Zumindest dann, wenn das Archiv die Mails einfach wieder generieren kann. Ist mein Backup von 22:00 uhr und der Server fällt tags darauf um 18:00 uhr aus, dann haben die meisten Firmen mangels Differenzsicherung unter Tagen der Verlust der Mails des gesamten Tags zu verkraften. Kann ich aber nun den Server von 22:00 uhr restaurieren und aus dem Archiv die Mails der Zwischenzeit neu generieren lassen, dann habe ich den Schaden stark reduziert. Nur Änderungen der Anwender selbst z.B.: im Kalender sind natürlich so nicht zu retten. Übrigens bietet z.B.: Microsoft selbst mit Exchange Hosted Services eine ähnliche Funktion an: Jede Mail wird über deren System nicht nur nach Viren und Spam gefiltert, sondern auch in einem Puffer vorgehalten, so dass ich als Administrator ein "Erneut Senden" anstoßen kann.

Als zweite Lösung kann solch ein Archiv auch die ansonsten oft durchgeführten "Single Mailbox Backups" überflüssig machen, da es ja die einzelnen Mails schon im Archiv hat. löscht ein Anwender eine einzelne Mail, dann kann er diese ja aus dem Archiv wieder herstellen lassen.

Im Extremfall sollte es sogar möglich sein, einen Exchange Server mit defekter Datenbank mit einer leeren Datenbank zu starten und alle Inhalte aus dem Archiv wieder aufbauen zu lassen. Das wäre dann der perfekte "Dialtone"-Restore. Allerdings wird ein Archivsystem sicher keine Regeln, Stellvertreter, Ansichten, Formulare etc. "sichern".  Ein Backup der dank Archiv verkleinerten Datenbank ist also immer noch angebracht.

Client Outlook Form, OWA, Suchfunktion und Intranet

Für die Anwender sollte das Thema Archiv natürlich "einfach" sein. Ein Outlook Formular, welches die Anzeige der archivierten Anlagen vereinfacht und über Erweiterungen eine einfache Funktion zur Wiederherstellung der Originalmail anbietet, sollte Pflicht sein. Die meisten Anwender greifen per OWA und ActiveSync sowieso nur auf die Mails der letzten Tage oder Wochen zurück. Insofern ist eine Lösung für OWA eher wünschenswert. Wichtig ist aber die Möglichkeit einer ordentlichen Suche. Die Suche in Outlook ist nicht immer so leistungsfähig wie dies Firmen und Mitarbeiter wünschen. Daher indexieren schon viele Firmen mit Sharepoint ihre Intranets, Dateiserver und Exchange Server. Über den Umweg einer Archivlösung ist es natürlich auch möglich, dem Anwender hier eine leistungsfähige Suche anzubieten. Eine Integration z.B.: in ein Sharepoint Portal oder Ordnerhomepage ist hier sehr gefragt.

Modell

Ich versuche einfach diese Anforderungen in ein großes Bild zu packen.

Archiv Konzeptbild

Die Idee dahinter ist, dass eingehende und ausgehende Mails entweder über einen Transportsink oder die Journalmailbox dem Archivsystem in quasi Echtzeit zu geführt werden. Das Archiv kann diese Mail direkt in das Archivsystem übernehmen. Dazu dient das Modul "Journal2Archiv" bzw. "Sink2Archiv". Aufgabe des Archivsystems ist es, die Nachrichten dem Absender bzw. Empfänger entsprechend dem Posteingang bzw. gesendete Objekte zuzuordnen, obwohl die Nachrichten ja nicht aus diesen Ordnern stammen, sondern unterwegs kopiert wurden.

Ein Crawler hingegen kann zyklisch laufen, um aus dem Exchange Store die Elemente entsprechend der Richtline zu verarbeiten. Hier gibt es zwei mögliche Optionen:

  • Replace2Aarchiv
    Das Objekt im Exchange Store wird verändert, so dass die Anlagen entfernt und durch einen Link ins Archivsystem ersetzt werden. Da die Anlagen selbst bereits im Archiv sind, müssen die Daten nicht erneut abgelegt werden. Der Anwender sieht dies anhand einem eigenen Icon. Mailobjekt
  • Move2Archive
    Sofern gewünscht kann der Crawler das Objekt zu einem sehr viel späteren Zeitpunkt (z.B.: nach einen Jahr) komplett aus der Mailbox entfernen oder in einen unterordner verschieben. Diese Funktion bewirkt, dass die Gesamtanzahl der Element in einem Exchange Store und speziell pro Ordner reduziert wird und damit die Performance des Exchange Server steigt. Will ein Anwender nach diesem Zeitpunkt noch auf seine Nachrichten zugreifen, dann muss er jedoch über einen anderen Weg wie z.B. dem Webbrowser im Archiv nach den Nachrichten suchen und diese direkt dort einsehen oder in das Postfach für eine gewisse Zeit zurückspielen.

Zurückholen

Um wieder an die Daten des Archivs zu kommen, sollte es drei Wege geben:

  • Outlook Formular
    Solange im Postfach noch das Archivierte Objekte als Platzhalter vorhanden ist, sollte ein öffnen dieses Elements entweder über ein Formular einen Zugriff auf die Anlagen erlauben. Denkbar wäre auch, dass die Anlagen direkt ein Hyperlink auf einen Webserver darstellen (z.B. mit sehr langen GUIDs) um die Anlagen zu erreichen.
    Optional könnte ein Outlook Add-on weitere Funktionen anbieten.
  • Webportal
    In Zeichen von Sharepoint und Internet scheint es angebracht zu sein, dass alle weitergehenden Funktionen, z.B. Volltextsuche, Zugriff auf vollarchivierte Elemente etc. über einen Browser erreicht werden können
  • Admin-Funktionen
    Als Administrator muss es möglich sein, archivierte Objekte auf dem Server direkt in das Postfach des Benutzers wieder herzustellen. Sollte der Benutzer nicht mehr existieren, muss eine Wiederherstellung in ein anderes Postfach möglich sein.
    Wünschenswert ist auch eine Funktion, von allen Benutzern die Objekte anhand eines Zeitkriteriums wieder herzustellen. Dies erlaubt ein Restore nach einem Serverausfall mit Restore von einem älteren Backup.

Natürlich ist es ein langer Weg von einer Idee zu einem fertigen Produkt. Ich werde sicher kein Archivprodukt entwickeln können aber vielleicht ist der ein oder andere Hersteller offen für meine Ideen.

Weitere Links