-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf ein Speichersystem
und insbesondere auf ein Backup- und Archivierungssystem, das es
ermöglicht,
eigenständig
Daten von einer Vielzahl von Rechnern und Servern (Clients) zu speichern und
zu archivieren. Ökologische,
politische und soziale Aspekte des Lebens werden immer häufiger durch
digitale Daten verwaltet. So werden Transaktionen und der Wohlstand
unserer Gesellschaft oftmals auf der Basis von digitalen Informationen
erzeugt. Die Anzahl der Daten, die in Form von Computerprogrammen
oder Datenbanken verwaltet werden müssen, steigt exponentiell.
Durch die Leistungssteigerung von Rechnern und Betriebssystemen
werden die Anwendungen immer größer. Weiterhin
steigt der Wunsch große
Datenbanken wie zum Beispiel Multimediadatenbanken oder große Files
in einem permanenten Zugriff zu haben. Die Wachstumsrate der Daten,
resultierend aus steigenden Dateigrößen und mehrfache Vorhaltung
identischer Dateien, macht es notwendig, diese effizient zu sichern
und zu verwalten.
-
Aufgrund
des Umstandes, dass immer mehr Datenspeicher eingesetzt werden müssen, besteht ein
kontinuierlicher Druck auf die Speicheranbieter, die Kosten der
Speichersysteme zu reduzieren. Ferner sollen die Daten-Managementsysteme
skalierbar sein. Sie sollen nicht nur den aktuellen Bedarf sondern
auch einen voraussichtlichen, zukünftigen Bedarf abdecken können. Vorzugsweise
sind Speichersysteme inkrementell skalierbar, so dass der Benutzer
immer dann die zusätzliche
Kapazität
erwerben kann, die er zum entsprechend Zeitpunkt benötigt. Hohe
Verfügbarkeit
und hohe Zuverlässigkeit
sind weiterhin wichtige Aspekte, da der Benutzer den Verlust oder
die Beschädigung
von Daten nicht akzeptiert.
-
Auch
steigen die gesetzlichen Anforderungen hinsichtlich der Archivierung
von Daten. Aufbewahrungszeit, Datenintegrität, Unveränderbarkeit, Datenschutzrichtlinien
und Zugriffsberechtigungen werden zunehmend in Regularien und Gesetzen
geregelt. So sind eine Vielzahl von Dokumenten teils weit mehr als
10 Jahre aufzubewahren und fälschungssicher
zu verwalten, damit deren Existenz und Integrität nachgewiesen werden kann.
-
Bekannte
Speichersysteme, die auf Festplattenbasis arbeiten, haben oftmals
eine Vielzahl von Festplatten, die redundant ausgelegt sind (Raid:
Redundant Array of Independent Disks). Diese Systeme sind jedoch
permanent online, haben einen hohen Stromverbrauch und sind für eine Archivierung
nur bedingt geeignet, da die Daten auf ihnen des Öfteren geändert werden
können.
Diese Raids sind oftmals mit dem Raid-level 1, 3, 5, 10 oder 6 versehen,
um einen Datenverlust zu vermeiden. Auch haben sie mehrere Controller,
so dass kein Single Point of Failure gegeben ist. An diesen Raid-Systemen
können Server
angebunden werden, die z.B. über TCP/IP/iSCSI,
Fibre Channel oder SCSI angebunden sind. Einzelne Systeme stellen
die Daten auch per NAS (network attached storage) zur Verfügung.
-
Für die Datensicherung
jedoch werden Bandlaufwerke eingesetzt, die die Daten auf Bändern speichern.
Diese Bandlaufwerke können
ebenfalls in Robotern eingebaut sein, die die Bänder zu den einzelnen Bandlaufwerken
transportieren. Bei diesen Bandlaufwerken gibt es im Wesentlichen
Standardformate wie zum Beispiel DDS, SDLT, LTO, AIT und SAIT. Andere
Standards sind ebenfalls denkbar.
-
Bisherige
Systeme nutzen Backup- und Archivierungsprogramme, die die Daten
in regelmäßigen Abständen von
den Rechnern anfordern und auf den Bändern abspeichern. Hierbei
gibt es einen zentralen Backup- und Archivierungsserver, der die
Daten von den Rechnern in regelmäßigen Abständen anfordert,
um dann diese zu sichern. Hierbei wird jedoch oftmals alle 24 Stunden
gesichert, so dass ein Großteil
der Daten verloren geht, falls der Rechner bzw. das Speichersystem
innerhalb dieses Zeitraums abstürzt.
Ferner gibt es bei diesen Backup-Softwaren nur beschränkte Möglichkeiten
Daten dauerhaft und unveränderbar
zu archivieren.
-
Die
US 6 704 730 ,
US 6 810 398 ,
US 6 826 711 ,
US 7 000 143 zeigen Speichersysteme
und Ansätze
die im Bereich der Erfindung liegen. FalconStor Software (falconstor.com),
Quantum (quantum.com), Rocksoft, Sepaton (sepaton.com), DeltaStor,
Diligent Technologies (diligent.com) mit ProtectTIER VTL Software
und Avamar Technologies (avamar.com) sind Anbieter von Speicherlösungen auf
diesem Gebiet.
-
Überblick über die
Erfindung:
-
Aufgabe
der vorliegenden Erfindung ist es, ein Backupsystem bereitzustellen,
dass es in möglichst
kurzen Abständen ermöglicht Daten
an einen zentralen Speicherort zu senden, so dass auch Benutzer
die einen mobilen Computer, wie z.B Laptop, PDA oder ähnliches
benutzen alle Daten sichern, auch wenn sie nur für einen kurzen Zeitraum am Rechner
tätig sind.
Ferner soll die übertragene
Datenmenge reduziert werden. Es ist zu beachten, dass die Erfindung
nicht nur auf mobile Computer beschränkt ist. Alle Typen von Rechnern,
die an ein Netzwerk angeschlossen sind, können bei der Sicherung berücksichtigt
werden.
-
Gelöst wird
die Aufgabe durch eine Erfindung mit den Merkmalen der unabhängigen Ansprüche.
-
In
einer bevorzugten Ausführungsform
handelt es sich um ein Verfahren zum Speichern von Daten mit einem
ersten Speichersystem und einem zweiten Speichersystem, wobei das
zweite Speichersystem zum Sichern der Daten vom ersten Speichersystem
dient. Das erste Speichersystem kann ein PC, Spezialserver, wie
z.B. ein Email-Server oder eine Serverfestplatte/Flash-Speicher
sein, dessen Daten zu sichern sind. Die Daten sind als Dateien in einem
Filesystem abgelegt Das erste System weist einen Client/Agenten
auf, der das Filesysteme überwacht.
Dieser Client/Agent ist vorzugsweise ein Softwareprogramm. In einer
bevorzugten Ausführungsform
basiert dieser auf dem Microsoft FindFirstChangeNotification® Ansatz,
der Bestandteil des Microsoft Directory Managements® ist,
und der an die kontrollierende Client-Software der vorliegenden
Erfindung berichtet. Ein Server ist auf einem zweiten System installiert,
der das zweite Speichersystem verwaltet. Der Server ist in der Regel
eine Software, die auf einem Rechner mit einem Betriebssystem läuft. Der Server
verwaltet die Ablage der gesicherten Daten auf dem zweiten Speichersystem.
Das zweite Speichersystem ist ein Festplattenraid (Flashraid) vorzugsweise
in Kombination mit Bandlaufwerken. Diese Komponenten sind hierarchisch
angeordnet, so dass eine Datenmigration erfolgen kann.
-
Das Verfahren umfasst die folgenden Schritte:
-
Der
Client überprüft die Dateien
und vorzugsweise das Filesystem auf dem ersten Speichersystem auf
Veränderungen.
Dies beinhaltet im Besonderen, aber nicht ausschließlich das
Hinzufügen neuer
Dateien, sowie die Veränderung
bereits bestehender Dateien und Datensätzen. Dies kann in regelmäßigen Zeiträumen erfolgen
oder ereignisgesteuert (z.B. Interrupt durch das Betriebssystem,
das mitteilt, dass Dateien verändert
wurden).
-
Falls
Veränderungen
festgestellt wurden, wird ein Hash-Wert in Bezug auf die Datei errechnet, der
so ausgebildet ist, dass die Identität der Datei feststellbar ist.
Die Veränderung
der Datei kann durch ein Änderungsdatum
bestimmt werden oder durch Filter bzw. Ereignisse die das Betriebssystem
bereitstellt. Solche basieren z.B. auf den Microsoft FindFirstChangeNotification® welches
Bestandteil des Microsoft Directory Managements® ist.
Es ist natürlich auch
denkbar, dass die Veränderung
durch die Hardware mitgeteilt wird. Der Hash-Wert ist so ausgebildet,
dass die Identität
einer Datei festgestellt werden kann. D.h. der Hash-Wert ist identisch,
wenn die Datei identisch ist. Sollten Änderungen an der Datei vorgenommen
worden sein, so verändert
sich auch der Hash-Wert. Nachdem der Hash-Wert ermittelt wurde, wird
dieser an den Server übermittelt,
der den Hash-Wert entgegen nimmt. Die Übermittlung erfolgt in der
Regel über
ein Netzwerk wie ein LAN oder WLAN. Der Server überprüft anhand des Hash-Werts, ob
eine entsprechende Kopie der Datei auf dem zweiten Speichersystem
bereits abgelegt ist, da es in einem Netzwerk häufig Duplikate von Dateien
gibt. Falls dies der Fall ist, so fordert er die Datei nicht erneut
an, sondern erstellt auf dem zweiten Speichersystem lediglich einen
weiteren Verweis auf den Speicherort der Datei, sowie einen Eintrag
der die Zugriffsberechtigung regelt. Das erste Speichersystem wird
dabei nicht verändert.
Konkret bedeutet dies, dass der Verweis einerseits die Identität des Clients
beziehungsweise des Rechners und dessen Festplatte umfasst, andererseits
ein mögliches
Volumen und den Speicherort innerhalb des Filesystems, das auf dem
Volumen angelegt ist. Der Server weist in einer bevorzugten Ausführungsform
eine schnelle Datenbank auf (CAS), über die es ihm ermöglicht wird,
schnell auf die Hash-Werte zu zugreifen, um festzustellen, ob diese
schon abgelegt wurden oder noch nicht. Ferner wird in dieser Datenbank
der Verweis auf die Datei auf einem oder mehreren Clientsysteme
abgelegt. Es können
auch noch Zugangsbeschränkungen
innerhalb der Datenbank abgelegt werden. Diese Zugangsbeschränkungen
können auch über eine
Schnittstelle zum Active Directory von Windows erlangt werden. Andere
Verzeichnisdienste wie LDAP sind natürlich ebenfalls denkbar.
-
Durch
die Erfindung wird erreicht, dass der Verkehr auf dem Netzwerk sehr
gering ist und dass jede Datei nur möglichst einmal auf dem zweiten Speichersystem
abgelegt wird (hierbei wird nicht die Redundanz des zweiten Speichersystems
berücksichtigt).
Explizit werden zunächst
nur Hash-Werte über
das Netz transferiert und nur im Falle, dass Datensätze und
Files noch nicht auf dem zweiten Speichersystem abgelegt sind werden
diese Datensätze und
Files einmalig über
das Netzwerk transferiert. Dadurch kann eine Duplizierung und Mehrfachablage
von Dateien vermieden werden und die Nutzung des Speicherplatzes
auf dem zweiten Speichersystem optimiert werden. Die Datenbank erlaubt
es trotz allem, die Dateien individuell für alle Systeme zur Verfügung zu
stellen, obwohl die Datei physikalisch nur einmal abgespeichert
wurde.
-
Falls
bei der Überprüfung festgestellt
wird, dass der Hash-Wert
nicht existiert, also die Datei noch nicht vorhanden ist, so fordert
der Server vom Clientsystem die gesamte Datei oder Teile der Datei an,
die sich im Vergleich zu einer vorhergehenden Datei verändert haben.
Danach wird die Datei auf dem zweiten Speichersystem abgelegt und
die Datenbank mit den nötigen
Informationen versorgt. Sollte hingegen nur ein Teil der Datei übertragen
worden sein, so wird entweder auf dem zweiten Speichersystem dieser
Teil vollständig
wieder rekonstruiert und abgelegt oder es werden nur die veränderten
Teile abgespeichert mit einem Verweis auf die ursprüngliche
vollständige
Datei. Es ist auch denkbar, dass eine Vielzahl von Verweisen existiert,
die jeweils unterschiedliche Dateiversionen widerspiegeln, bei denen
zu unterschiedlichen Zeitpunkten unterschiedliche Änderungen
vorgenommen wurden. Das Serversystem rekonstruiert dann, wenn die
Datei wiederhergestellt werden soll, die gewünschte Datei, indem alle Änderungen
der Reihe nach ausgeführt
werden. Es wird zuerst die ursprüngliche
Datei geladen und dann die jeweiligen Veränderungen, die zeitlich hintereinander
folgten, die dann auf diese ursprüngliche Datei anzuwenden sind.
Die Bestimmung der Veränderung
beziehungsweise der Teile, die verändert wurden, kann einerseits
anhand des Hash-Wertes bestimmt werden oder andererseits durch den
Client, der lokale die Änderung
der Datei auf der Basis ursprünglichen
Datei berechnet. Hierbei ist der Hash-Wert vorzugsweise so aufgebaut,
dass er immer für
eine bestimmte Anzahl von Bytes einer Datei erstellt wird (z.B.
1000), um dann den Gesamthashwert aus diesen einzelnen Hashwerten
zusammen zu setzen. Somit kann festgestellt werden, welche der 1000-Byte
Blöcke
sich verändert
haben. Alternative Wege zur Berechnung der Veränderungen sind ebenfalls denkbar
und können
benutzt werden. In einer bevorzugten Ausführungsform werden lediglich die
Blöcke
der Datei übertragen,
die sich verändert haben.
-
In
einer alternativen Ausführungsform
wird die Berechnung der Veränderung
durch den Server vorgenommen. Dieser analysiert die Dateien und
deren Vorgängerversionen
und berechnet das Delta. Es wird dann nur das Delta auf dem zweiten Speichersystem
gespeichert und eine Regel, wie diese Datei wieder zusammenzusetzen
ist. Hierdurch wird zwar die gesamte Datei über das Netzwerk übertragen,
es wird jedoch sichergestellt, dass nur die Änderungen auf dem Server gespeichert
werden.
-
In
der bevorzugten Ausführungsform
ist der Hash-Wert so abgelegt, dass eine eindeutige Relation zu
den Clients und der Datei auf dem zweiten Speichersystem hergestellt
werden kann. Hierbei wird der Pfad auf dem Dateisystem beziehungsweise Filesystem
in Relation abgelegt. Ferner ist die Zugriffsberechtigung gespeichert.
-
In
der bevorzugten Ausführungsform
ist der Hash ein HSA1-Hash basierend auf 256 bit. Das Berechnungsverfahren
für diesen
Hersteller ist wohl bekannt. Literaturangaben finden sich unten.
-
Der
Hash-Wert ist vorzugsweise so aufgebaut, dass anhand des Hashwertes
erkannt werden kann, welche Blöcke
bzw. Bereiche der Datei sich verändert
haben, so dass lediglich die Blöcke,
die sich verändert
haben übertragen
werden, und auf dem Server diese Datei anhand der vorhandenen Datei
wieder zusammengestellt wird. Die Zusammenstellung kann unmittelbar
erfolgen, so dass der Teil vollständig auf den zweiten Speichersystem
abgelegt ist oder sie kann erst beim Anfragen einer Wiederherstellungskopie
zusammengebaut werden. Details hierzu wurden bereits beschrieben.
-
In
einer bevorzugten Ausführungsform
setzt sich der Hashwert aus mehrern Einzelhashwerten zusammen. So
kann der erste Teil des Hashwertes die ersten 10MB einer Datei bestimmen
der zweite Teil 10–90MB
und der Dritte Teil alles was darüber liegt. Es kann natürlich auch
eine feinere Abstufung erfolgen.
-
In
einer weiteren bevorzugten Ausführungsform
wird der Hashwert erweitert, so dass eine Zuordnung zu einem Volumen
auf dem zweiten Speichersystem aus dem Hashwert ersichtlich ist.
Oftmals besteht ein Speichersystem aus einer Vielzahl von logisch
getrennten Volumen, die sich über
ein oder mehrere Speichersystem erstrecken. Solche Volumen werden
zum Beispiel unter den Microsoft Betriebssystemen mit einem Buchstaben
gekennzeichnet. Bei Unix Betriebssystemen oder Linux Betriebssystems
können
auf diese Volumen über
einem Pfad zugegriffen werden.
-
Um
eine möglichst
hohe Sicherheit zu gewährleisten,
ist das zweite Speichersystem redundant aufgebaut. Vorzugsweise
ist das Speichersystem sogar mehrfach redundant aufgebaut, wie im Folgenden
beschrieben wird.
-
Hierbei
werden hierarchische Speichermodelle berücksichtigt. Bei hierarchischen
Speichermodellen sind die schnellsten und hochwertigen Speicher
an höchster
Stelle. Bei diesen Speichern handelt es sich um schnelle Festplattensysteme
mit Fibre Channel, SCSI oder SAS interface und schnellen Umdrehungszahlen
(mit 10000 U/min und mehr). Es ist auch denkbar, dass in Zukunft
schneller Flash-Speicher, holografische Speicher oder optische Speichertechnologien
diese Rolle übernehmen werden.
Momentan ist der Trend zu kombinierten Systemen mit Festplatte und
Flashspeicher gegeben, so dass zu erwarten ist, dass auf lange Sicht
die Festplatte in ihrer heutigen Form eine geringere Rolle spielen
wird. Diese schnellen dauerhaften Speicherplatten können als
RAID miteinander verbunden werden. Hierdurch ist auf der ersten
Ebene des zweiten Speichersystems eine hohe Schnelligkeit gegeben und
eine sichere Datenhaltung. Die Daten werden in Kopie auf einem zweiten
etwas langsameren Speicherbereich als Teil des zweiten Speichersystems
gehalten. Bei diesem kann es sich um ein SATA Speichersystem handeln
oder um ein Speichersystem mit geringeren Zugriffszeit und Umdrehungszahlen.
Zwischen diesen beiden Festplattensystemen, erfolgt eine permanente
Synchronisation, so dass die Daten redundant vorliegen. Einerseits
redundant durch die Festplatten-RAIDS auf jeder Hierarchiestufe
und andrerseits redundant durch die Verwendung von zwei Festplattensystemen,
die parallel angeordnet sind und die gespiegelt werden.
-
In
der nächsten
Hierarchiestufe ist ein Bandroboter angeordnet, der vorzugsweise,
aber nicht zwingend mindestens zwei Bandlaufwerke umfasst, die die
Daten jeweils auf zwei Bändern
in Kopie schreiben. Somit wird sichergestellt, dass auch die Daten
auf den Bändern
immer doppelt unabhängig voneinander
vorliegen. Die Tapetechnologie könnte künftig ebenfalls
durch eine andere Technologie wie z.B. Flash-Speicher, holografische Speicher oder
optische Speichertechnologien ersetzt werden.
-
Sobald
die Daten auf der letzten Hierarchiestufe redundant abgelegt sind
können
Sie basiert auf einstellbaren Regeln von den höher performanten und teureren
Speicherstufen gelöscht
werden um dort wieder für
neue Daten Platz zu gewinnen. Dabei wird automatisch zwischen aktiven
und inaktiven Daten unterschieden, nachdem die Daten klassifiziert wurden.
-
Durch
das Bandspeichersystem, das die Daten dann ebenfalls doppelt vorrätig hält, hat
man die oben beschriebene Redundanz für die Daten erhalten, auch
wenn die Daten von den höher
in der Hierarchie stehenden Technologien gelöscht wurden.
-
Bei
der Migration der Daten von einer Hierarchie zur nächsten erfolgt
eine Integritätsprüfung auf der
Basis der Hash-Werte. Nach dem Schreiben der Datei bzw. nach dem
Lesen der zu verschiebenden Daten wird der Hashwert erzeugt und
mit dem in der Datenbank gespeicherten Hashwert verglichen. Sollte
hierbei Veränderungen
erkannt werden, so ist der Kopiervorgang erneut durchzuführen, oder
die Daten von einem anderen Medium zu laden.
-
In
einer weiteren Ausführungsform
können auf
Wunsch weitere Duplikate der Bänder
erzeugt werden, um eine Kopie der Daten an einem externen Ort zu
lagern. Es wird dem System, das das zweite Speichersystem verwaltet,
mitgeteilt, dass eine Kopie aller archivierten Daten anzufertigen
ist. Der Bandroboter fordert den Benutzer auf, entsprechende Bänder bereitzustellen,
auf die dann eine Kopie aller Daten angelegt und ausgegeben wird.
Dabei könnte
auch eine Exportfunktionalität
mit integrierter Konvertierung auf Standardformate wie z.B..pdf
Datensätze
zugegriffen werden.
-
Die
Migration der Daten erfolgt automatisch und kann durch Zeitschwellen
oder Datenvolumina bezogen vorgegeben werden. In der bevorzugten Ausführungsform
ist zusätzlich
noch eine Archivierungsfunktion im System enthalten, die den gesetzlichen
Vorschriften entspricht und eine Veränderung der Daten nach dem
Schreiben nicht mehr erlaubt. Hierzu kann z.B. ein spezielles Band-Medium
wie das WORM-Medium (Write once Read multiple) eingesetzt werden.
Auch ist denkbar, dass die Daten mit einer Signatur versehen werden,
die aus einem öffentlichen
Schlüsselsystem
(PKI-System) erlangt werden. Die generelle Datenverifizierung kann
auch durch die implementierte und bereits beschriebene HSA-1 Berechnung
erfolgen. Der detaillierte Ablauf der Archivierung unterliegt Standardprozessen,
die im Folgenden nicht weiter beschrieben werden, da sie für den Fachmann
auf diesem Gebiet bekannt sind. Die Vorrichtung stellt jedoch sicher,
dass die archivierten Daten nicht verändert werden können.
-
Das
System gibt ferner über
ein Benutzerinterface die Möglichkeit
festzulegen, welche Arten von Dateien zu archivieren sind und an
welchen Stellen auf dem ersten Speichersystem die Dateien abgelegt sind.
Der Benutzer kann hierdurch festlegen welche Dateien als Backup
gesichert werden, sollen welche Dateien archiviert werden sollen
und welche Dateien für
eine Inhaltssuche indiziert werden sollen.
-
Um
sicherzustellen, dass die Daten während der Migration zwischen
den einzelnen Hierarchiestufen nicht beschädigt werden, werden die Hash-Werte herangezogen,
um die Daten zu überprüfen, nachdem
diese auf das neue Speichermedium beziehungsweise die neue Hierarchiestufe
kopiert wurden. Anhand des Signatur Schlüssels kann ebenfalls kontrolliert
werden, dass die Daten nicht verändert
wurden. Somit ist sichergestellt, dass die Daten Integrität und Konsistenz über alle
Hierarchiestufen gegeben ist. Die Hashes werden vor der Übermittlung
der Daten im einer Speichersystem berechnet in einer Datenbank im
Server gespeichert und nachdem die Daten auf dem zweiten Speichersystem
abgelegt wurden neu berechnet. Die beiden Werte werden miteinander
verglichen und die Datenintegrität
und Konsistenz kann somit gewährleistet
werden. Derselbe Vorgang wird noch einmal durchgeführt wenn
innerhalb der Speicherhierarchie des zweiten Speichersystems Daten
kopiert und migriert werden.
-
In
einer weiteren Ausführungsform
wird die Erfindung auf den Emailverkehr erstreckt. In der bevorzugten
Ausführungsform
wird der MS-Exchangeserver von Microsoft® unterstützt (andere
Mail Systeme sind jedoch denkbar). Auf dessen E-Mails wird durch
eine vorgegebene Schnittstelle, wie zum Beispiel die MAPI-Schnittstelle,
zugegriffen und es erfolgt eine Sicherung und Archivierung der E-Mail nach
dem gleichen Prinzip, wie es bei Dateien erfolgt. Ein wesentlicher
Unterschied dabei ist jedoch, dass der Hash-Wert nicht auf die ganze
Datei beziehungsweise Email angewendet wird, (sondern separat zusätzlich noch
auf deren Anhänge)
sondern jeweils separat für
die E-Mail selbst und deren Anhänge.
Denn oftmals befinden sich eine Vielzahl von identischen Anhängen in
einem Mail-Server, so dass deren Speicherung eine enorme Überlastung
des Systems mit sich bringt. Häufig
werden Anhänge
innerhalb einer Mail-Gruppe an viele Beteiligte gesendet, so dass
sie bei de Benutzern doppelt oder vielfach vorliegen. Zur Vermeidung
eines großen
Speicherplatzbedarfs und der steigenden Netzwerkbelastung während des Backups
bzw. der Archivierung, werden nur die Anhänge beziehungsweise Attachments
mit auf dem zweiten Speichersystem abgelegt, die vorher anhand der
berechneten Hash-Werte noch nicht identifiziert werden konnten.
In der Datenbank wird dann bezüglich
dieses Anhangs vermerkt, dass er zu einer spezifischen E-Mail gehört. Folglich
kann in Bezug zu einem Hash-Wert nicht nur eine Datei auf einem
Filesystem referenziert werden sondern auch eine Datei innerhalb
einer oder mehreren E-Mails.
-
Dieser
Ansatz kann einerseits durch einen Client gelöst werden, der auf dem Mailserver
läuft und über eine
Schnittstelle des Mailservers auf den gesamten Mailverkehr zugreift,
oder andererseits durch einen Client der auf den Clientrechnern
läuft, auf
denen ein Mailclient (wie z.B. Outlook) installiert ist, um dann
auf alle Mails über
eine Schnittstelle von Outlook (oder imap, pop, mapi etc) zuzugreifen.
-
Für die Überwachung
des Mailverkehrs, kann so auf jedem Client, der einen Mailclient
verwaltet bzw. aufweist eine Überwachung
lokal erfolgen, um dann mit dem Server zu kommunizieren und um gegebenenfalls
die E-Mails und deren Anhänge
zu übertragen.
-
In
der bevorzugten Ausführungsform
wird bei einem Exchangeserver auf die Journaling Mailbox über eine
entsprechende API zugegriffen. Es wird der Hash-Wert berechnet (für die Mail
selber und ggfs. deren Attachments). Falls die Mail noch nicht gesichert
wurde, wird sie indiziert für
eine Volltextsuche und dann auf das zweite Speichersystem mit einem entsprechenden
Verweis und Zugriffsberechtigungen kopiert. Die Journaling Mailbox
stellt die Emails somit temporär
für ine Verarbeitung
zur Verfügung.
Nach einer vorgebaren Zeitdauer werden die Emails dann gelöscht. Parallel
wurden die Emails jedoch schon dem Empfänger übermittelt.
-
Diesen
Ansatz kann man weiterführen
für andere
Speichersysteme wie z.B. Datenbanken. Es versteht sich, dass durch
die Berücksichtigung
des Exchangeservers keinerlei Einschränkungen für die Anwendbarkeit dieses
Verfahrens gegeben sein sollen. Mailserver von IBM® wie
Lotus Notes® oder
eine Reihe von Emailserver im Unix-® und
Linux®-Bereich können durch
diesen Ansatz ebenfalls abgedeckt werden. Auch bei diesen Systemen
wird auf der Basis der gespeicherten Informationen gesucht, ob Dateien
vorhanden sind, die mehrfach vorhanden sind, so dass eine Mehrfachspeicherung
vermieden wird. So gibt es auch Datenbankstrukturen (BLOBs, Binary Large
Objects), die ganze Dateien aufnehmen. Für diese Datenstrukturen, wäre das Vermeiden
von Duplikaten von Interesse.
-
Somit
kann Single Instancing auch für
Mails und darüber
hinaus zwischen allen beschriebenen Applikationen praktiziert werden.
Es wird also ein Applikationsübergreifendes
Single Instancing implementiert, so dass z.B. Backup, Archive und
NAS greifen auf dieselbe physikalische Datenebene zugreifen. Dieser
Ansatz kann auch für
Fibre Channel Systeme iSCSI Systme und Dokumentenmanagementsysteme
berücksichtigt
werden.
-
In
einer bevorzugten Ausführungsform
wird eine solche Überwachung
regelmäßig in einem
30 minütigen
Abstand vorgenommen. Es sind natürlich auch
andere Zeitintervalle, die einstellbar sind, denkbar. Dies hängt entscheidend
vom Daten-Volumen ab,
das täglich
anfällt,
und somit von der Belastung der Rechnersysteme.
-
Grundsätzlich erlaubt
die Erfindung eine Vorgabe wie lange und in welchem Umfang die Daten gesichert
und archiviert werden sollen. So ist es denkbar, die Datei alle
30 Minuten auf dem ersten Speichersystem zu überprüfen und ggfs. zu sichern. Auch
sind kürzere
Intervalle denkbar. Ferner kann festgelegt werden, wie lange diese
Daten bzw. Dateien für
die Gesamtsicherung vorzuhalten sind. So kann z.B. sichergestellt
werden, dass die Daten auf dem ersten Speichersystem für 3 Monate
vorzuhalten sind. So kann z. B. für die Archivierung festgelegt werden,
dass die Daten 10 Jahre zu archivieren sind. Ferner sind Auswahlkriterien
festlegbar, die selektiv Dateien bestimmen oder Dateien ausschließen, die zu
sichern oder zu archivieren sind bzw. die nicht zu sichern sind.
Dies kann über
Selektionsmuster mit Platzhaltern erfolgen oder durch andere Auswahlkriterien
die über
ein grafisches Benutzerinterface bestimmt werden. /*Indizierung*/.
Klassifizierzung der der Daten und Differenzierung von aktiven und
inaktiven Daten, so dass diese je nach klassifizierung auf unterschiedlichen
Stufen des HSM sind. (Zugriffshäufigkeit,
letzte Modifikation, Erstellungsdatum)
-
Dieses
Benutzerinterface kann über
einen Web-Browser angesprochen werden, wie ein Webserver. Alternativen
durch Softwareverwaltungsclients sind natürlich denkbar.
-
Um
eine Wiederherstellung von Dateien zu ermöglichen, ohne dass der Administrator
kontaktiert werden muss, weist der Server einen Webserver auf, der
es erlaubt, über
eine Eingabemaske Auswahlkriterien anzugeben, die dazu dienen, die
Dateien zu bestimmen, die zurück
zu sichern sind. Dies kann entweder durch direkte Eingabe des Dateinamens erfolgen
oder durch Navigieren innerhalb eines Dateisystems, das als Baum
dargestellt wird. Der Zugriff auf die Datei ist natürlich durch
eine Berichtigungsüberprüfung beschränkt, so
dass nicht alle verfügbaren
Dateien von jedem Benutzer wieder zurück sicherbar sind, sondern
nur die, für
die der Benutzer auch eine Berechtigung hat. Die Berechtigungen können entweder
durch das Berechtigungssystem von Microsoft (Active Directory) erlangt
werden oder durch Eingabe von Benutzernamen und Passwort, die auf
einem eigenen Berechtigungssystem basieren.
-
Zusätzlich kann
der Server noch durch iSCSI oder TCP/IP als NAS (File Share) eingebunden
werden, so dass er nicht nur für
die Datensicherung dient, sondern zusätzlich noch für die Bereitstellung von
Speicherplatz im Netzwerk. Für
die Benutzer ist dann nicht ersichtlich, dass es sich jeweils um
ein besonderes Backupsystem handelt. Vielmehr werden die Eigenschaften
des Betriebssystems, das auf dem Serversystem eingesetzt wird, genutzt,
um weitere Dienste für
die Benutzer im Netzwerk bereitzustellen. Als bevorzugtes Betriebssystem
wird auf dem Sicherungsserver, der das zweite Speichersystem verwaltet,
ein Windows Storage Server® eingesetzt. Dieses Betriebssystem
stellt die beschriebenen Schnittstellen und Dienste zur Verfügung. Es
ist auch denkbar ein anderes Betriebssystem wie Linux oder Unix
einzusetzen.
-
Weitere
Bestandteile der Erfindung sind das Überwachen des Mailverkehrs,
die Integrität
der Dateien bei einem hierarchischen Speichersystem und der Aufbau
des Clients, der in der Regel als Software auf einem PC oder Computer
läuft oder
der Server selber, der in der Regel als Software ausgebildet ist oder
eine Kombination aus Software und Hardware ist und auf einem Server
installiert ist, der mehrere Raid-Systeme verwaltet. Der Server
ist dann wiederum mit einem Backupsystem bzw. einer Tapelibrary über Fibre
Channel, iSCSI oder SCSI verbunden.
-
Kurze Beschreibung der Figuren
-
Im
Folgenden werden die Figuren kurz beschrieben, auf die die detaillierte
Beschreibung Bezug nimmt.
-
1:
zeigt ein Netzwerk mit einem zentralen Switch, an dem eine Reihe
von PCs angeschlossen sind, die hierüber mit dem Backupsystem verbunden
sind, auf dem der Server läuft;
-
2:
zeigt ein Netzwerk mit einem zentralen Switch, an dem eine Reihe
von PCs angeschlossen sind, die hierüber mit dem Backupsystem verbunden
sind, mit einem Aufbau der Zentralen Datenbank (CAS);
-
3:
an dem eine Reihe von PCs angeschlossen sind, die hierüber mit
dem Backupsystem verbunden sind, wobei lediglich Teile der Dateien übertragen
werden;
-
4:
zeigt ein Flussdiagramm zur Überprüfung der
Hash-Werte;
-
5:
zeigt ein Flussdiagramm zur Überprüfung der
Hash-Werte nach
dem erneuten Herunterladen von Daten.
-
Detaillierte Beschreibung der Erfindung:
-
Die 1 zeigt
einen zentralen Switch 1 an dem eine Reihe von Arbeitsplätzen A,
B, C und D angeschlossen sind, die wiederum auf File-Servern 2, 3 ihre
Daten abgelegt haben. Ferner ist eine Mailserver 4 an das
Netzwerk angeschlossen. Die erfindungsgemäße Vorrichtung 5 ist
ebenfalls im Netzwerk integriert. Auf den einzelnen Arbeitsstationen
A, B, C und D, sowie den Servern 2, 3, 4 läuft der
Client, der Server hingegen läuft
auf der erfindungsgemäßen Vorrichtung 5.
Die erfindungsgemäße Vorrichtung 5 weist
ein hierarchisches Speichersystem auf, das aus einem schnellen Speichersystem 6 einem
etwas langsameren Speichersystem 7 und einem Bandspeichersystem 8 aufgebaut
ist. Auf der Arbeitsstation B wird durch den Client eine File/Datei
A bestimmt, die zu sichern ist. Es wird ein Hashwert SS52 berechnet
und an den Server 5 gesendet. Dieser überprüft ob in der Datenbank (CAS)
dieser Hash-Wert bereits vorhanden ist. Da bereits diese Datei von
der Arbeitsstation A gesichert wurde, wird nicht die ganze Datei
angefordert, sondern es wird lediglich in der Datenbank (CAS) ein
neuer Eintrag vorgenommen, der auf den Client B verweist. Die Details dieses
Datenbankeintrages können
der 2 entnommen worden. Ferner befindet sich auf dem
Mailserver eine Mail X, die als Attachment (Anhang) den File A aufweist.
Auch diese Datei wird vom Client nicht an die Vorrichtung 5 übertragen,
da sie bereits auf dem hierarchischen Speichersystem der erfindungsgemäßen Vorrichtung
abgelegt ist. Vielmehr wird ein Verweis in die Datenbank (CAS) eingetragen.
-
Die 2 zeigt
einen Ausschnitt der Datenbank (CAS). Für jede Datei existiert ein
Eintrag in der Tabelle. Dieser umfasst den Hash-Wert, und den Besitzer,
wobei der Besitzer der entsprechende Rechner ist, auf dem der Client
läuft.
Aus der Tabelle kann entnommen werden, dass für die Dateien mit dem Hash-Wert
FD12 und SS52 3 Besitzer (Zugriffsberechtigung) vorhanden
sind. Ferner ist zu entnehmen, wo sie auf den Speichersystem abgelegt
sind. Der ursprüngliche
Pfad, Aufbewahrungszeit für
Backup und Archiev getrennt. Indizierungsinformationen**/
-
So
können
die Dateien auf der ersten Ebene 6 der zweiten Ebene 7 und
der dritten Ebene, nämlich auf
dem Tapebackupsystem 8 abgelegt, sein. Es ist deutlich
zu erkennen, dass die Datei mit dem Hash-Wert SS52 auf der zweiten
Ebene und zusätzlich
als Kopie auf der dritten Ebene, also den langsameren Bandsystem 7,
abgelegt ist. Ferner gibt es noch einen Überblick über den Inhalt dieser Dateien.
-
Die 3 zeigt
eine weitere Besonderheit, bei der die Unterschiede der Dateien
bestimmt werden und somit nur die Teile einer Datei übertragen werden,
die verändert
wurden. Es wird folglich das Delta der Datei berechnet, die auf
dem Client abgelegt ist. Das Verfahren zur Berechnung des Delta wurde
bereits oben beschrieben. Ferner ist diese Datei auf dem Rechnern
abgelegt. Die Differenz wird hierbei durch den Client berechnet,
der auf Anforderung die Differenz an die erfindungsgemäße Vorrichtung 5 sendet.
In der Regel macht es lediglich dann Sinn die Differenz zu senden,
wenn eine Datei sehr häufig
verändert
wird und dass Backup-Intervall sehr kurz ist. Dies kann für Dateien
gegeben sein, an denen häufige Änderungen
vorgenommen werden wie z.B. Datenbankdateien, so dass nicht immer
die ganze Datenbankdatei zu übertragen
ist, sondern lediglich der Teil dieser Datei, der sich verändert hat.
Auf dem Back-up Server werden dann die Dateien wieder vollständig zusammengesetzt,
da die Historie der Delta Veränderungen
vorliegt und die Datei somit stückweise
wieder zusammengebaut werden kann.
-
4 zeigt
ein Flussdiagramm der vorliegenden Erfindung für die Berechnung des Hashwerts.
-
SHA1
ist ein wohl bekannter Algorithmus zur Berechnung des HASH-Wertes.
Es handelt sich bei diesem Hashwert um einen Wert mit einer festen Größe unabhängig davon
wie lang der Input ist. Die Größe umfasst
160 Bits. Es existieren auch andere Varianten des SHA die mehr Bits
umfassen in der Regel 256 (SHA-256...).
-
Verfahren
zur Berechnung sind in der RFC 3174 (http://www.rfc-archive.org/getrfc.php?rfc=3174),
beschrieben, so dass kein weiterer Bedarf besteht, diese hier zu
diskutieren.
-
In
der bevorzugten Ausführungsform
wird jedoch ein erweiterter ABSHASH verwendet.
-
Diese
wird verwendet, um die Effizienz für das Sicherungssystem zu verbessern.
-
Das
erfindungsgemäße Sicherungssystem umfasst
eine Anzahl von Volumen abhängig
von der Speicherkapazität
der Festplattensysteme, die eingesetzt werden.
-
Die
Datenbank (CAS) hat letztlich zu entscheiden, auf welchem Volumen
die Dateien, die übermittelt
werden, zu speichern sind. Zur Vermeidung von häufigen Kopieroperationen wurde
der HASH-Wert entsprechend angepasst, so dass aus ihm ersichtlich
ist, in welchem Volumen die Objekte beziehungsweise Dateien abzulegen
sind. Hierzu wurden zwei zusätzliche
Bytes eingesetzt, die dazu dienen, das Volumen zu bestimmen, auf
dem die Datei abzulegen ist. Hieraus ergibt sich das der vollständige Hashwert
nun aus 176 Bits besteht. Das Volumen wird unter Berücksichtigung
der gesamten Anzahl von Volumen berechnet. Hierzu wird eine sprechende
Moduln-Operation eingesetzt.
-
Berücksichtigt
man nun die 4 so sieht man, dass der Client
Daten sendet. Der Server empfängt
die Daten und überprüft, ob für diese
Daten der Hash berechnet wurde. Falls dies nicht der Fall ist, überprüft er, ob
bereits eine bestimmte Anzahl von N-Bytes empfangen wurde, falls
dies ebenfalls nicht der Fall ist, werden weiterhin Daten vom Client
empfangenen. Falls bereits N-Bytes empfangen wurden, so wird das
Volumen berechnet. Das gleiche tritt ein wenn der Hashwert bereits
berechnet wurde. Es wird überprüft, ob ein
temporärer
File in dem entsprechenden Volumen bereits erzeugt wurde, falls
dies der Fall ist, werden die Daten im temporären File gespeichert. Falls
dies nicht der Fall ist, wird erst ein temporärer File erzeugt, in dem dann
die Daten gespeichert werden. Nach dem Speichern dieser Datei, wird
die Datei innerhalb des Volumens an die richtige Position verschoben.
Dies ist in der Regel sehr einfach möglich, da lediglich der Pointer
zu verhändern
ist, jedoch keine Copyoperation stattfinden muss.
-
Die 5 zeigt
einen Transfer der Dateien beziehungsweise Files von unterschiedlichen
Speicherebenen. Von außen
wird die Anforderung zur Wiederherstellung eines bestimmten Files
gestellt. Der entsprechende File liegt auf Speicherebene 7.
Es wird überprüft ob der
erneut berechneten Hash mit dem Namen und dem Hash aus der Datenbank übereinstimmt.
Falls dies der Fall ist, so wird die Datei bereitgestellt, falls
dies nicht der Fall ist, wird vom Speichersystem 8, in
diesem Falle der Tape-Ebene, die Datei geladen, um sie bereitzustellen.
-
Die
hier beschriebenen bevorzugten Ausführungsformen dienen nicht dazu,
die Erfindung zu beschränken.
Vielmehr haben sie Aufgabe das Verständnis der Erfindung zu erleichtern.
Der Schutzumfang der Erfindung soll allein durch die beigefügten Ansprüche bestimmt
werden.