EP1540441B1

File data protection apparatus and method

Abstract

Embodiments of this invention provide primary magnetic disk data storage capacity to clients while at the same time making sure that client data is replicated locally and at an offsite location to protect from all forms of data loss.

EP1540441B1, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Expired 10 September 2023, 3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

16 claims: 16 independent, 0 dependent

  1. 1
    A method for transferring a protected set of files within a system comprising a fileserver (27) having:a file system (32) operative to store client files;a fileserver API (37) operative to communicate with a repository (28);a fileserver file transfer module (40) in communication with the file system (32) and operative to receive files for the file system from at least onerepository (28);anda recovery service (45) in communication with the fileserver API (37) and with the file system (32) and operative to transfer a set of files, the method comprising: receiving (63), at a destination fileserver (27), metadata and stub files associated with the set of files;maintaining a list of repository nodes that are associated with each file in the set of files by updating (64) a location component (36) in the fileserver (27);andreplacing each stub file with the full content of the file associated with the stub file;wherein replacing each stub file includes: receiving a client request for a specified file in the set of files, andreplacing the stub file for the specified file with the full content of the specified file, replacement of said stub file for said specified file being a higher priority task than replacement of the stub files for non-requested files. Verfahren zum Übertragen eines gesicherten Satzes von Dateien innerhalb eines Systems, umfassend: einen Dateiserver (27) mit: einem zum Speichern von Klienten-Dateien betreibbaren Dateisystem (32);einem zur Kommunikation mit einem Magazin (28) betreibbaren Dateiserver-API (37);einem Dateiserver-Übertragungsmodul (40), welches mit dem Dateisystem (32) in Verbindung steht und betreibbar ist, um Dateien für das Dateisystem von mindestens einem Magazin (28) entgegenzunehmen;und miteinem Wiederheratellungsdienst (45), welcher mit der Dateiserver-API (37) und mit dem Dateisystem (32) in Verbindung steht und zum Übertragen eines Satzes von Dateien betreibbar ist;wobei das Verfahren umfasst: Empfangen (63) von Metadaten und Stummel-Dateien, die mit dem Satz von Datelen verknüpft sind, auf einem Ziel-Dateiserver (27);Unterhalten einer Liste von mit jeder Datei aus dem Satz von Datelen verknüpften Magazin-Knoten durch Aktualisieren (64) einer Örtlichkeitskomponente (36) in dem Dateiserver (27);undErsetzen jeder Stummel-Datei durch den vollen Inhalt der mit der Stummel-Datei verknüpften Datei;wobei das Ersetzen jeder Stummel-Datei beinhaltet: Empfangen einer Klienten-Anforderung für eine spezifizierte Datei aus dem Satz von Dateien, undErsetzen der Stummel-Datei für die spezifizierte Datei durch den vollen Inhalt der spezifizierten Datei, wobei der Ersatz der Stummel-Datei durch die spezifizierte Datei eine Aufgabe mit höherer Priorität ist als das Ersetzen der Stummel-Dateien für nicht angeforderte Dateien. procédé de transfert d'un ensemble de fichiers protégé dans un système comprenant un serveur de fichiers (27) comportant: un système de fichiers (32) apte à agir pour stocker des fichiers clients;une interface API de serveur de fichiers (37) apte à agir pour communiquer avec un entrepôt (28);un module de transfert de fichiers de serveur de fichiers (40) en communication avec le système de fichiers (32) et apte à agir pour recevoir des fichiers pour le système de fichiers à partir d'au moins un entrepôt (28);etun service de récupération (45) en communication avec l'interface API de serveur de fichiers (37) et avec le système de fichiers (32) et apte à agir pour transférer un ensemble de fichiers,lequel procédé comprend: la réception (63), au niveau d'un serveur de fichiers de destination (27), de métadonnées et de fichiers souches associés à l'ensemble de fichiers;la gestion d'une liste de noeuds d'entrepôt qui sont associés à chaque fichier de l'ensemble de fichiers par l'actualisation (64) d'un organe d'emplacements (36) dans le serveur de fichiers (27);etle remplacement de chaque fichier souche par le contenu complet du fichier associé au fichier souche;dans lequel le remplacement de chaque fichier souche comprend: la réception d'une demande de client concernant un fichier spécifié de l'ensemble de fichiers, etle remplacement du fichier souche correspondant au fichier spécifié par le contenu complet du fichier spécifié, le remplacement dudit fichier souche correspondant audit fichier spécifié constituant une tâche de priorité plus grande que le remplacement des fichiers souches correspondant à des fichiers non demandés.
  2. 2
    Procédé selon la revendication 1, dans lequel les métadonnées sont reçues au niveau d'un serveur de fichiers de destination (27) à partir d'un noeud d'entrepôt (28). The method of claim 1, wherein the metadata is received at a destination fileserver (27) from a repository node (28). Verfahren nach Anspruch 1, wobei die Metadaten aus einem Magazin-Knoten (28) auf einem Ziel-Deteiserver (27) empfangen werden.
  3. 3
    Procédé selon la revendication 1 ou 2, comprenant également, avant la réception de métadonnées, la sélection (61) du serveur de fichiers de destination (27) qui doit recevoir les métadonnées et les fichiers souches. The method of claim 1 or 2, further comprising:prior to receiving metadata, selecting (61) the destination fileserver (27) that is to receive the metadata and the stub files. Verfahren nach Anspruch 1 oder 2, ferner umfassend: Auswählen (61) des Ziel-Dateiservers (27), der die Metadaten und die Stummel-Datelen zu empfangen hat, vor dem Empfangen von Metadaten.
  4. 4
    Procédé selon l'une quelconque des revendications précédentes, comprenant également la sélection (61) d'un système de partage de données en vue de leur réception au niveau du serveur de fichiers de destination (27). The method of any preceding claim, further comprising:selecting (61) a share of data for receipt at the destination fileserver (27). Verfahren nach irgendeinem der vorstehenden Ansprüche, ferner umfassend: Auswählen (61) eines Daten-Teilhaberschaftsbereiches zum Empfang auf dem Ziel-Datelserver (27).
  5. 5
    The method of any preceding claim, wherein the set of files is the set of files that have been accessed during a specified period and wherein replacing each stub file comprises recursively replacing the stub file associated with the file that was most-recently accessed until all the stub files in the set of files have been replaced. Verfahren nach irgendeinem der verstehenden Ansprüche, wobei der Satz von Dateien derjenige Satz von Dateien ist, auf die während einer spezifizierten Periode zugegriffen worden ist, und wobei das Ersetzen jeder Stummel-Datei das rekursive Ersetzen der Stummel-Dateien umfasst, die mit der Datei verknüpft sind, auf die zuletzt zugegriffen worden war, bis alle Datei-Stummel aus dem Satz von Dateien ersetzt worden sind. procédé selon l'une quelconque des revendications précédentes, dans lequel l'ensemble de fichiers est l'ensemble des fichiers qui ont fait l'objet d'un accès au cours d'une période spécifiée, et dans lequel le remplacement de chaque fichier souche comprend le remplacement récurrent du fichier souche associé au fichier qui a fait l'objet d'un accès le plus récemment jusqu'à ce que tous les fichiers souches de l'ensemble de fichiers aient été remplacés.
  6. 6
    Procédé selon la revendication 5, dans lequel la période spécifiée est une période très récente. The method of claim 5, wherein the specified period is a most-recent period. Verfahren nach Anspruch 5, wobei die spezifizierte Periode eine zuletzt aufgetretene Periode Ist.
  7. 7
    Procédé selon l'une quelconque des revendications précédentes, dans lequel l'organe d'emplacements est une antémémoire d'emplacements (36). The method of any preceding claim, wherein the location component is a location cache (36). Verfahren nach irgendeinem der vorstehenden Ansprüche, wobei die Örtlichkeitskomponente ein Orts-Cache (36) ist.
  8. 8
    A method according to any of Claims 1 to 7, wherein the fileserver (27) includes:a file system (32) operative to store client files;a policy component (34) operative to store a protection policy associated with the set of files;a mirror service (33) in communication with the policy component (34), the mirror service (33) operative to prepare modified and created files in the set of files to be written to a repository (28) as specified in the protection policy associated with the set of files;a fileserver API (37) coupled to the mirror service (33) and operative to communicate with a repository (28);anda fileserver file transfer module (40) in communication with the file system (32) and operative to transfer files from the file system to at least one repository;the method further comprising the steps of: determining a caching level as stored in the policy component;andrecursively, determining a utilization of the fileserver,comparing (90) the caching level against the utilization;andcreating (91) a file migration candidate list when the utilization exceeds the caching level;staging (92) out one candidate file;replacing (92) the candidate file with a stub file;anddetermining (93) whether the utilization of the fileserver still exceeds the caching level. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le serveur de fichiers (27) comprend: un système de fichiers (32) apte à agir pour stocker des fichiers clients;un organe de politique (34) apte à agir pour stocker une politique de protection associée à l'ensemble de fichiers;un service de mise en miroir (33) en communication avec l'organe de politique (34), le service de mise en miroir (33) étant apte à agir pour préparer des fichiers modifiés et créés dans l'ensemble de fichiers et qui doivent être écrits dans un entrepôt (28) spécifié dans la politique de protection associée à l'ensemble de fichiers;une interface API de serveur de fichiers (37) reliée au service de mise en miroir (33) et apte à agir pour communiquer avec un entrepôt (28);etun module de transfert de fichiers de serveur de fichiers (40) en communication avec le système de fichiers (32) et apte à agir pour transférer des fichiers du système de fichiers dans au moins un entrepôt;le procédé comprenant également les étapes de: détermination d'un niveau de mise en antémémoire stocké dans l'organe de politique;etdétermination récurrente d'une utilisation du serveur de fichiers;comparaison (90) du niveau de mise en antémémoire avec l'utilisation;etcréation (91) d'une liste de fichiers candidats à la migration lorsque l'utilisation est supérieure au niveau de mise en antémémoire;transfert (92) de l'un des fichiers candidats;remplacement (92) du fichier candidat par un fichier souche;etdétermination (93) du fait que l'utilisation du serveur de fichiers est encore supérieure ou non au niveau de mise en antémémoire. Verfahren nach irgendeinem der Ansprüche 1 bis 7, wobei der Dateiserver (27) beinhaltet;ein zum Speichern von Klienten-Dateien betreibbares Dateisystem (32);eine zum Speichern einer Sammlung von Sicherungsverhaltensregeln, die mit dem Satz von Dateien verknüpft ist, betreibbare Komponente (34) für eine Sammlung von Regeln:einen Spiegelungsdienst (33), welcher mit der Komponente (34) für eine Sammlung von Regeln in Verbindung steht, wobei der Spiegelungsdienst (33) betreibbar ist um vorzubereiten, dass modifizierte und erzeugte Dateien aus dem Satz von Dateien wie in der mit dem Satz von Dateien verknüpften Sammlung von Sicherungsverhaltensregeln spezifiziert in ein Magazin (28) geschrieben werden;eine mit dem Spiegelungsdienst (33) gekoppelte und zur Kommunikation mit einem Magazin (28) betreibbare Dateiserver-API (37);undein Dateiserver-Übertragurigsmodul (40), welches mit dem Dateisystem (32) in Verbindung steht und betreibbar ist, um Dateien aus dem Dateisystem zu mindestens einem Magazin zu übertragen;wobei das Verfahren ferner folgende Schritte umfasst: Festlegen eines Caching-Levels wie in der Komponente für eine Sammlung von Regeln gespeichert;undrekursives Bestimmen einer Nutzung des Dateiservers;Vergleichen (90) des Caching-Levels mit der Nutzung;undErzeugen (91) einer Dateimigrations-Kandioiatenliste, wenn die Nutzung den Caching-Level überschreitet;Bereitstellen (92) eines Datei-Kandldaten;Ersetzen (92) des Datei-Kandidaten durch eine Stummel-Datei;undBestimmen (93), ob die Nutzung des Dateiservers immer noch den Caching-Level überschreitet.
  9. 9
    Procédé selon la revendication 8, dans lequel la détermination du fait que l'utilisation du serveur de fichiers est encore supérieure ou non au niveau de mise en mémoire comprend également le transfert (92) d'un autre fichier candidat de la liste de candidats et l'étape qui consiste à déterminer (93) à nouveau si l'utilisation du serveur de fichiers est supérieure au niveau de mise en antémémoire. The method of claim 8, wherein determining whether the utilization of the fileserver still exceeds the caching level further comprises:staging out (92) another candidate file on the candidate list and again determining (93) if the utilization of the fileserver exceeds the caching level. Verfahren nach Anspruch 8, wobei das Bestimmen, ob die Nutzung des Dateiservers immer noch den Carhing-Level überschreitet, ferner umfasst: Bereitstellen (92) eines anderen Datei-Kandidaten aus der Kandidatenliste und erneutes Bestimmen (93), ob die Nutzung des Dateiservers den Caching-Level überschreitet.
  10. 10
    A file data protection system comprising:the recovery service (45) having: a receiving component (94) operative to receive metadata and stub files associated with the set of files at the fileserver (27);a location updating component (95) in communication with the receiving component (94) and operative to maintain a list of repository nodes (28) that are associated with each file in the set of files;anda stub file replacement component (96) in communication with the receiving component (94) and operative to replace each stub file with the full content of the file associated with the stub file, said stub file replacement component (96) being configured to be responsive to a client request for a specified file in said set of files to undertake replacement of the stub file for said specified file as a higher priority task than replacement of stub files for non-requested files. Datensicherungssystem, umfassend;einen Dateiserver (27) mit: einem zum Speichern von Klientan-Dateien betreibbaren Dateisystem (32);einem zur Kommunikation mit einem Magazin (28) betreibbaren Dateiserver-API (37);einem Dateiserver-Übertragungsmodul (40), welches mit dem Dateisystem (32) in Verbindung steht und betreibbar ist, um Dateien für das Dateisystem von mindestens einem Magazin (28) entgegenzunehmen;undeinem Wiederherstellungsdienst (45), welcher mit dem Dateiserver-API (37) und mit dem Dateisystem (32) in Verbindung steht und zum Übertragen eines Satzes von Dateien betreibbar ist;wobei der Wiederherstellungsdienst (45) aufweist: eine Empfangskomponente (94), die zum Empfang von mit dem Satz von Dateien auf dem Dateiserver (27) verknüpften Metadaten und Stummel-Dateien betreibbar ist;eine Örtlichkeits-Aktualisierungskomponente (95), welche in Verbindung mit der Empfangskomponente (94) steht und zum Unterhalten einer Liste von mit jeder Datei aus dem Satz von Dateien verknüpften Magazin-Knoten (28) betreibbar ist;undeine Stummel-Detei-Ersetzungskomponente (96), die mit der Empfangskomponente (94) in Verbindung steht und die zum Ersetzen jeder Stummel-Datei durch den vollen Inhalt der mit der Stummel-Datei verknüpften Datei betreibbar ist, wobei die Stummel-Datei-Ersetzungskomponente (96) konfiguriert ist, auf eine Klienten-Anforderung für eine spezifizierte Datei aus dem Satz von Dateien anzusprechen, um das Ersetzen der Stummel-Datei für die spezifizierte Datei als eine Aufgabe mit höherer Priorität durchzuführen als das Ersetzen von Stummel-Dateien für nicht angeforderte Dateien. Système de protection de données de fichiers comprenant: un serveur de fichiers (27) comportant: un système de fichiers (32) apte à agir pour stocker des fichiers clients;une interface API de serveur de fichiers (37) apte à agir pour communiquer avec un entrepôt (28);un module de transfert de fichiers de serveur de fichiers (40) en communication avec le système de fichiers (32) et apte à agir pour recevoir des fichiers pour le système de fichiers à partir d'au moins un entrepôt (28);etun service de récupération (45) en communication avec l'interface API de serveur de fichiers (37) et avec le système de fichiers (32) et apte à agir pour transférer un ensemble de fichiers, le service de récupération (45) comportant: un organe de réception (94) apte à agir pour recevoir des métadonnées et des fichiers souches associés à l'ensemble de fichiers au niveau du serveur de fichiers (27);un organe d'actualisation d'emplacements (95) en communication avec l'organe de réception (94) et apte à agir pour gérer une liste de noeuds d'entrepôt (28) associés à chaque fichier de l'ensemble de fichiers;etun organe de remplacement de fichiers souches (96) en communication avec l'organe de réception (94) et apte à agir pour remplacer chaque fichier souche par le contenu complet du fichier associé au fichier souche, ledit organe de remplacement de fichiers souches (96) étant configuré pour être sensible à une demande de client concernant un fichier spécifié dudit ensemble de fichiers afin d'entreprendre le remplacement du fichier souche correspondant audit fichier spécifié comme une tâche de priorité plus grande que le remplacement de fichiers souches correspondant à des fichiers non demandés.
  11. 11
    System nach Anspruch 10, ferner aufweisend:einen Filtertreiber (31), der betreibbar ist, um durch Klientendatei-Anforderungen initiierte Eingabe-/Ausgabe-Aktivitäten mitzuverfolgen und um eine Liste der seit dem letzten Augenblicks-Speicherabzug modifizierten oder erstellten Dateien zu unterhalten;einen Cache (34) mit Verhaltensregeln, der betreibbar ist, um eine mit dem Teilhaberschaftsbereich verknüpfte Sammlung von Sieherungsverhaltensregeln zu speichern;einen Spiegelungsdienst (33), der mit dem Filtertreiber (31) und dem Cache (34) mit Verhaltensregeln in Verbindung steht, wobei der Spiegelungsdienst (33) betreibbar ist, um vorzubereiten, dass modifizierte und erzeugte Dateien in einem Teilhaberschaftsbereich gemäß einer durch eine in der mit dem Teilhaberschaftsbereich verknüpften Sammlung von Sicherungsverhaltensregeln festgelegten Spezifikation in ein Magazin (28) geschrieben werden. Système selon la revendication 10, comprenant également: un pilote de filtre (31) apte à agir pour intercepter une activité d'entrée/sortie initiée par des demandes de fichiers clients et pour gérer une liste de fichiers modifiés et créés depuis une sauvegarde antérieure;une antémémoire de politique (34) apte à agir pour stocker une politique de protection associée à un système de partage;un service de mise en miroir (33) en communication avec le pilote de filtre (31) et avec l'antémémoire de politique (34), le service de mise en miroir (33) étant apte à agir pour préparer des fichiers modifiés et créés dans un système de partage et qui doivent être écrits dans un entrepôt (28) spécifié dans la politique de protection associée au système de partage. The system of claim 10, further comprising a filter driver (31) operative to intercept input/output activity initiated by client file requests and to maintain a list of modified and created files since a prior backup;a policy cache (34) operative to store a protection policy associated with a share;a mirror service (33) in communication with the filter driver (31) and with the policy cache (34), the mirror service (33) operative to prepare modified and created files in a share to be written to a repository (28) as specified in the protection policy associated with the share.
  12. 12
    System nach Anspruch 11, ferner umfassend:einen Örtlichkeits-Cache (36), der in Verbindung mit dem Spiegelungsdienst (33) steht und der betreibbar ist, um anzugeben, welches Magazin (28) eine aktualisierte Version einer existierenden Datei empfangen sollte;undeinen Örtlichkeits-Manager (35), der mit dem Örtlichkeits-Cache (36) gekoppelt ist und der zum Aktualisieren des Örtlichkeits-Cache (36) betreibbar ist, wenn das System eine neue Datei in einen spezifischen Magazinknoten (28) schreibt. Système selon la revendication 11, comprenant également: une antémémoire d'emplacements (36) en communication avec le service de mise en miroir (33) et apte à agir pour indiquer l'entrepôt (28) qui doit recevoir une version actualisée d'un fichier existant;etun gestionnaire d'emplacements (35) relié à l'antémémoire d'emplacements (36) et apte à agir pour actualiser l'antémémoire d'emplacements (36) lorsque le système écrit un nouveau fichier dans un noeud d'entrepôt spécifique (28). The system of claim 11, further comprising: a location cache (36) in communication with the mirror service (33) and operative to indicate which repository (28) should receive an updated version of an existing file;anda location manager (35) coupled to the location cache (36) and operative to update the location cache (36) when the system writes a new file to a specific repository node (28).
  13. 13
    System nach irgendeinem der Ansprüche 10 bis 12, ferner umfassend:ein lokales Magazin (28), aufweisend: ein lokales Magazinknaten-API (38), das zur Kommunikation mit der Dateiserver-API (37) eingerichtet ist;ein Lokaimagazin-Deteiübertragungsmodul (41), das mit dem Dateiserver-Dateiübertragungsmedul (40) in Verbindung steht und das zum Übertragen von Dateien auf das Dateiserver-Dateiübertragungsmadul (40) eingerichtet ist;undeinen Datentransporteur (39), der in Verbindung mit dem lokalen Magazin-API (38) steht und der zur Überwachung der Replikation von Dateien aus dem lokalen Magazin (28) auf den Dateiserver (27) betreibbar ist. Système selon l'une quelconque des revendications 10 à 12, comprenant également: un entrepôt local (28) comportant: une interface API de noeud d'entrepôt local (38) adaptée pour communiquer avec l'interface API de serveur de fichiers (37);un module de transfert de fichiers d'entrepôt local (41) en communication avec le module de transfert de fichiers de serveurs de fichiers (40) et adapté pour transférer des fichiers au module de transfert de fichiers de serveur de fichiers (40);etun dispositif de mouvement de données (39) en communication avec l'interface API d'entrepôt local (38) et apte à agir pour superviser la duplication de fichiers de l'entrepôt local (28) dans le serveur de fichiers (27). The system of any of claims 10 to 12, further comprising a local repository (28) having: a local repository node API (38) adapted for communicating with the fileserver API (37);a local repository file transfer module (41) in communication with the fileserver file transfer module (40) and adapted for transferring files to the fileserver file transfer module (40);anda data mover (39) in communication with the local repository API (38) and operative to supervise the replication of files from the local repository (28) to the fileserver (27).
  14. 14
    System nach Anspruch 13, wobei das Dateiserver-ApI (37) zur Kommunikation mit einem Netzwerk (30) betreibbar ist, und wobei das System ferner umfasst:ein entfernt angeordnetes Magazin (28) mit: einem API (38) betreffend entfernt angeordnete Magazinknoten, eingerichtet zum Kommunizieren mit dem Netzwerk (30);ein Dateiübertragungsmodul (41) betreffend entfernt angeordnete Magazine, welches mit dem lokalen Dateiübertragungsmodul (40) in Verbindung steht und das zum Übertragen von Dateien auf das Dateiserver-Dateiübertragungsmodul (40) eingerichtet ist;undeinen Detentransporteur (39), der mit dem API (28) betreffend entfernt angeordnete Magazins in Verbindung Steht und der zur Überwachung der Replikation von Dateien von dem entfernt angeordneten Magazin (28) auf dem Dateiserver (27) betreibbar ist. Système selon la revendication 13, dans lequel l'interface API de serveur de fichiers (37) est apte à agir pour communiquer avec un réseau (30), et dans lequel le système comprend également: un entrepôt distant (28) comportant: une interface API de noeud d'entrepôt distant (38) adaptée pour communiquer avec le réseau (30);un module de transfert de fichiers d'entrepôt distant (41) en communication avec le module de transfert de fichiers de serveur de fichiers (40) et adapté pour transférer des fichiers au module de transfert de fichiers de serveur de fichiers (40);etun dispositif de mouvement de données (39) en communication avec l'interface API d'entrepôt distant (38) et apte à agir pour superviser la duplication de fichiers de l'entrepôt distant (28) dans le serveur de fichiers (27). The system of claim 13, wherein the fileserver API (37) is operative to communicate with a network (30) and wherein the system further comprises: a remote repository (28) having: a remote repository node API (38) adapted for communicating with the network (30);a remote repository file transfer module (41) in communication with the local file transfer module (40) and adapted for transferring files to the fileserver file transfer module (40);anda data mover (39) in communication with the remote repository API (28) and operative to supervise the replication of files from the remote repository (28) to the fileserver (27).
  15. 15
    A computer program comprising computer program elements for implementing the method of any one of claims 1-9. Computerprogramm, umfassend Computerprogrammelemente zum Implementieren des Verfahrens nach irgendeinem der Ansprüche 1 bis 9. programme d'ordinateur comprenant des éléments de programme d'ordinateur pour mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 9.
  16. 16
    A computer usable carrier medium carrying a computer program according to claim 15. Computerverwendbares Trägermedium, ein Computerprogramm gemäß Anspruch 15 tragend. Support utilisable sur ordinateur et porteur d'un programme d'ordinateur selon la revendication 15.
Independent claims16