WO2006016085A1 - Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique - Google Patents

Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique Download PDF

Info

Publication number
WO2006016085A1
WO2006016085A1 PCT/FR2005/050572 FR2005050572W WO2006016085A1 WO 2006016085 A1 WO2006016085 A1 WO 2006016085A1 FR 2005050572 W FR2005050572 W FR 2005050572W WO 2006016085 A1 WO2006016085 A1 WO 2006016085A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
backup
equipment
digital data
network
Prior art date
Application number
PCT/FR2005/050572
Other languages
English (en)
Other versions
WO2006016085B1 (fr
Inventor
Yann Torrent
Fayçal DAIRA
Original Assignee
Skyrecon Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Skyrecon Systems filed Critical Skyrecon Systems
Priority to US11/632,281 priority Critical patent/US20080195675A1/en
Publication of WO2006016085A1 publication Critical patent/WO2006016085A1/fr
Publication of WO2006016085B1 publication Critical patent/WO2006016085B1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Definitions

  • the present invention relates to the computer field and the field of digital data backup.
  • the present invention more particularly relates to a method for saving digital data in a distributed manner on a set of client stations of a computer network.
  • the prior art already knows, from US Pat. No. 6,430,611 (Jefferson A. Kita et al), a storage management system for managing the storage resources of a plurality of computer apparatus in a network. computer science.
  • the system includes a plurality of management agents, each of which is installed on one of the corresponding apparatus, and each of which is configured to compile the storage information of the storage resources accessible by the computer apparatus so that to create a first set of information compiled storage, and a storage manager installed on the server.
  • the storage manager is configured to collect the first set of compiled storage information from each of the management agents and then compile the first set of storage information received to create a second set of compiled storage information.
  • the storage management system further includes a user interface coupled with the server manager to enable the user to access the second set of compiled storage information.
  • This solution is limited because it requires the use of a server and does not describe automation of the distribution of data.
  • This solution also implements a server.
  • the system therefore strongly depends on the reliability of this server.
  • significant costs are necessary to maintain the server viable and / or to provide redundancy of this server.
  • Also known in United States Patent Application 2004/0 049 700 is an inexpensive method of storing data using available capacity in individual computers connected to a network.
  • a backup client of a user PC receives a backup instruction for a file from a user
  • the backup client requests the backup to a backup command server.
  • the backup control server divides and encrypts the file to be backed up into a plurality of encrypted pieces, transfers the encrypted pieces to the user PCs, and stores the encrypted piece in the hard drives of the user PCs.
  • the user PC obtains each encrypted pieces of the user PCs on which they are stored, and combines them and decrypts them to reconstruct the original file.
  • This solution is based on a strong centralization of operations on a server. This implies a high dependence on this server as well as relatively high operating costs to maintain the server.
  • the present invention intends to overcome the disadvantages of the prior art by proposing a distributed backup method on a computer network.
  • the method according to the present invention responds particularly well to the budget restrictions of the companies, because it makes it possible to take advantage of the resources, in storage capacity and in processing capacity, not used by the client computers.
  • the absence of a dedicated server makes it possible to free oneself from the problems of reliability of these machines. While the existing methods show a great dependence on machines (server, among others), the invention makes it possible to avoid this dependence: all the client stations participate in the distributed backup, the backup being redundant on several stations.
  • the invention relates in its most general sense to a method of saving digital data on a plurality of computer equipment connected to a computer network, characterized in that:
  • said equipment loads are a function of CPU, RAM, hard disk and "uptime" resources.
  • said backup step comprises a substep of cutting said data into blocks.
  • said blocks are encrypted.
  • said backup step is performed according to RAID 5 technology.
  • said method further comprises a step of versioning said saved data.
  • said method further comprises a step of determining the profile of the user and a step of erasing old versions of said data that do not correspond to said determined profile.
  • said backup is distributed on the equipment of a subgroup of said network.
  • FIG. 1 represents the overall architecture of the system ;
  • FIG. 2 represents the global architecture of a client system
  • FIG. 3 represents the organization of the virtual file system
  • FIG. 5 represents message exchanges following a crash of a device; and - Figure 6 illustrates the versioning mechanism.
  • the present invention implements a method of distributed backup of digital data on a computer network.
  • the invention operates on a whole computer park, it does not need a dedicated server or a network administrator.
  • the file system will use all the unsolicited free space of all the machines connected to the computer park.
  • the program will decide to protect, save and send data on the network, which will be encrypted and stored on other machines.
  • the objective of the invention is to implement a backup solution integrated into the operating system without requesting additional or specific computer hardware or technical skills.
  • This solution is made in total transparency with the system because implements low-level modules, including a kernel driver that easily integrates with operating system.
  • the project engine revolves around an AI technology based on autonomous agents that ensure the proper distribution and reconstruction of data.
  • the system according to the present invention comprises a computer network on which computer stations, of the computer type, are connected.
  • Any type of network is part of the invention, wired computer networks (LAN, Internet) to wireless networks (Wifi).
  • Each computer station has CPU, RAM and storage resources (HD hard drives).
  • the object of the invention is to provide a data storage solution that can efficiently use all the HD storage resources of the computer stations. For this, constraints are fixed:
  • the solution adopted and present on each machine is modular with a kernel which, by its low level, optimizes the access time to the resources of the system, and a deamon and modules to a higher level
  • the kernel "hooks" the various disk accesses (read, write, open, close, rename, delete, stat, statfs, readdir) to specific functions. These accesses are then redirected via a "device” to the "UserLand” process, and are interpreted by the various agents of the program.
  • the kernel kernel represents the VFS (Virtual File System) which makes it perfectly integrated into the operating system (transparent for the user).
  • the backup folder can be, for example, C: / My Documents / but a virtual representation of the backup folder can also be done by using a virtual drive, eg J: /.
  • All storage and file system file name resolution features run in the "UserLand" process, the kernel only serves as an interface to the file system.
  • a communication module is coded parallel to the kernel, its purpose is to retrieve the messages from the kernel and sends them to the storage modules and the analyzer agent, etc.
  • the user space consists of:
  • a GUI module the graphical interface to the user
  • a local storage module that performs local file storage as well as versioning and rebuilding files from recovered songs
  • the core of the system consists of a VFS (Virtual File System) module.
  • This module represents the core of the file system, it is responsible for organizing the vnodes (unique structure representing all the information of a resource such as a file or a directory), the inodes (structure stored in each vnode containing the system information the file as the creation date, type, size, etc.).
  • Each vnode represents a node of a tree with "n" branches. On each vnode, there will be the offset of the first block of the associated data (only if it is a file) . The data blocks will be stored in another location, regardless of the file system tree.
  • This module manages, in parallel, remote storage that will be stored in a location independent of local storage.
  • Local storage is the user's storage of the current machine. This storage takes into account the problematic versions of the files. It acts as a cache because it has all the data of the current user.
  • Remote storage has only the information and data of remote users. The two storages are not associated so that each user can keep his own environment in order to guarantee a better security.
  • Local storage and its vfat system tree + data blocks
  • vfat system tree + data blocks
  • the agents realize the features of the present invention.
  • the monetary agent is a very important agent because it has a dual role; it evaluates the reliability of its host machine, its exploitable free space, the quality of the bandwidth. With all these criteria, it diffuse a weight that will be the synthesis of the "quality" of the machine. These weights are very important because they allow, at the time of the distribution of data, the election of potentially interesting machines on the network at a given time.
  • the second role of the monitoring agent is to keep the real-time list of machines connected to the network updated.
  • This module also elects the "pool" of machines that will be retained for the deployment of a resource.
  • the weight changes significantly (+ or -)
  • the weight is again broadcast on the network for all machines to update.
  • a stop frame is sent, or else, if a machine can no longer contact another machine, then it warns others that this machine is no longer connected.
  • the rebuilder agent is solicited only after a machine "crash", its role is to find and rebuild as quickly as possible the vfat and the blocks of data on the entire computer park.
  • the analyzer agent is crucial because it decides whether or not to create a new version of a resource in the file system, and / or to send this resource to different machines for remote backup (or more) .
  • This agent is autonomous and takes into account, to make his choice, several important system criteria including the size of the resource, its date of update, etc. (This enumeration is not exhaustive of the usable parameters).
  • Figure 4 illustrates the different communication paths of the system.
  • a communication module centralizes the messages sent by each agent and sends them either to the destination agent (agent B) or on the network to another machine (machine B).
  • the monitoring agent broadcasts information illustrating the availability of the machine. This information may contain, for example, the IP address that uniquely identifies the machine and a characteristic coefficient of availability of resources of the machine. This coefficient or weight can be a function of CPU, RAM, hard disk memory and up- time information.
  • the sending of this information can be done in a multicast way when the network is structured in a subgroup.
  • this sending is renewed during the operation of the machine, for example after a given time or when its coefficient has been changed.
  • the agents of each of the machines of the network or subgroup thus have the list of (IP, coefficient) of each of the other machines.
  • a validation of the list is performed by a TCP connection to each of the machines and by the sending of an SSL certificate, for example SSLv3 + Certificates X509 v3.
  • the agents When editing or creating a file, the agents perform a double backup of the file.
  • a local backup is performed, preferably unencrypted even if some file systems automatically encrypt the data.
  • the file is cut into pieces either of fixed size (1024 bytes for example) or of size adapted according to the type of file (multimedia) or its own size.
  • a header (file name membership, block number, ...) is added to the song and the set is encrypted according to a traditional encryption algorithm. For example :
  • the most sensitive part is the generation of keys used to encrypt data and metadata, it is necessary to avoid a collision of generated keys, while keeping in sight an increased performance. For this, it is necessary to pass the system of encryption by a benchmark to decrease the security if the performances are bad.
  • the change of passphrase causes the deletion of the previous data, unless the data saved locally is re-encrypted and redistributed during the night or when the machine is not used.
  • the blocks thus encrypted are sent securely to different machines to ensure redundancy of the backup.
  • the number of machines on which blocks are sent is set by the system administrator. This distribution of data on different machines makes it possible, if necessary, to have several data recovery paths: if one computer crashes, the data will always be recoverable on another station. This distribution gives the name of the distributed backup.
  • the agents of the machines in question receive the blocks and store them locally.
  • the agents take advantage of the "hollow” periods to use machines to perform all kinds of actions: defragmenting data blocks, cleaning on the workstation of the oldest block versions to recover memory space, ...
  • a machine belonging to the network has "crashed", all the data has been lost.
  • the machine sends a Multicast request comprising an identifier of the machine (IP address, name
  • the machines indicate the data (blocks) of the crashed machine they have. The latter then makes a specific request for data to the most available machines so as to recover all the initial data as quickly as possible.
  • the agents restore the original files.
  • Version 2 of file.ext differs from version 1 by a new block 1 (Ref # 0004). As for version 4, it consists of block 1 (Ref # 0004) modified for version 2, of block 2 (Ref # 0005) modified for the version 3 and block 3 (Ref # 0007) modified for version 4.
  • This differential versioning solution saves a lot of space compared to solutions that save the entire file for each version.
  • Archiving versions can be based on a number given to each version or, more simply, on the use of date to prioritize blocks.
  • learning mechanisms or behavioral analysis are also set up to establish user profiles: for example, the more a file is regularly accessed, the more frequent the versioning must be, documents with extensions .doc and .xls are regularly saved under different versions for a user type "secretariat", source codes of a computer scientist are also very regularly saved.
  • static rules can be set by the administrator, rules that determine the versioning policy.
  • the redundancy of the data is achieved by the RAID 5 (Redundant Array of Inexpensive Disks) technical solution of making a parity of at least two elementary blocks of data.
  • RAID 5 Redundant Array of Inexpensive Disks
  • a third "parity" block is constructed such that this third block associated with any one of the first or second block makes it possible to find the unused block.
  • N blocks of data can be recovered from a single block of pure data and (NI) parity blocks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

La présente invention se rapporte au domaine informatique et au domaine de la sauvegarde de données numériques . La présente invention se rapporte à un procédé de sauvegarde de données numériques sur une pluralité d'équipements informatiques connectés à un réseau informatique, caractérisé en ce qu'il ne met pas en œuvre de serveur informatique centralisé, et qu'il comprend : • une étape préalable de calcul et de transmission de la charge des équipements aux autres équipements du réseau, l'étape étant réalisée par les équipements eux- mêmes , • une étape de sauvegarde distribuée desdites données, la sélection et la répartition des données étant réalisées, par lesdits équipements, de façon à ce que les charges relatives aux données sont reparties de façon automatisée et de manière à atteindre un équilibre de charge des équipements.

Description

PROCÉDÉ DE SAUVEGARDE DISTRIBUÉE SUR DES POSTES CLIENTS DANS UN RÉSEAU INFORMATIQUE
La présente invention se rapporte au domaine informatique et au domaine de la sauvegarde de données numériques .
La présente invention concerne plus particulièrement un procédé de sauvegarde de données numériques de façon distribuée sur un ensemble de postes clients d'un réseau informatique.
Alors que le volume global de données a doublé au cours des trois dernières années, on estime à 30% le taux d'utilisation des ressources en stockage de la plupart des réseaux. Notamment, les postes clients sont peu utilisés pour le stockage des données numériques au profit des serveurs, dont la fiabilité et le « up-time » (durée moyenne de fonctionnement entre deux redémarrage de la machine, ce qui illustre la stabilité de la machine) se doivent d'être élevés. Les postes clients représentent, de par leur grand nombre et leurs ressources inutilisées, de fortes capacités de stockage de données permettant d'offrir une grande redondance des informations sauvegardées .
L'art antérieur connaît déjà, par le brevet américain US 6 430 611 (Jefferson A. Kita et autres) , un système de gestion de stockage pour la gestion des ressources de stockage d'une pluralité d'appareils d'ordinateur dans un réseau informatique. Ce système comprend une pluralité d'agents de gestion, chacun étant installé sur l'un des appareils correspondants, et chacun d'entre eux étant configuré pour compiler les informations de stockage des ressources de stockage accessibles par l'appareil d'ordinateur de sorte à créer un premier jeu d'informations compilées de stockage, et un gestionnaire de stockage installé sur le serveur. Le gestionnaire de stockage est configuré pour collecter le premier jeu d'informations compilées de stockage de chacun des agents de gestion et pour compiler ensuite les premiers jeux d'informations de stockage reçus pour créer un second jeu d'informations compilées de stockage. Le système de gestion de stockage comprend, en outre, une interface utilisateur couplée avec le gestionnaire du serveur pour permettre à l'utilisateur d'accéder au second jeu d'informations compilées de stockage.
Cette solution est limitée puisqu'elle nécessite l'utilisation d'un serveur et ne décrit pas d'automatisation de la répartition des données.
On connaît également, dans le brevet américain US 6 728 751 (Robert Thomas Cato et autres) , un système de sauvegarde de données numériques de machines clientes . Dans un réseau informatique, une fonction d'administration système commande la sauvegarde des données de machines clientes et sélectionne d'autres machines clients à l'intérieur du réseau en retirant le contrôle et l'accès aux parties du disque dur dans ces machines à l'utilisateur local. L'espace de stockage libre à l'intérieur du disque dur local du client, est alors utilisé à des fins de sauvegarde pour sauvegarder des données d'autres machines du réseau. Les agents dans les machines serveur et client accomplissent cette tâche permettant de répartir la charge de travail de sauvegarde à travers le réseau. Il y a trois modes de sauvegarde : la source lancée, la cible lancée, et l'agent de sauvegarde commun (SC) serveur lancé. Tous sont coordonnés par l'agent de SC serveur.
Cette solution met également en œuvre un serveur. Le système dépend donc fortement de la fiabilité de ce serveur. D'autre part, des coûts importants sont nécessaires pour maintenir viable le serveur et/ou pour proposer une redondance de ce serveur.
On connaît également, dans la demande de brevet américain US 2004 / 0 049 700 (Takeo Yoshida) , un procédé peu coûteux de stockage de données utilisant la capacité disponible dans des ordinateurs individuels reliés à un réseau. Quand un client de sauvegarde d'un PC d'utilisateur reçoit une instruction de sauvegarde pour un fichier provenant d'un utilisateur, le client de sauvegarde demande la sauvegarde à un serveur de commande de sauvegarde. Le serveur de commande de sauvegarde divise et chiffre le fichier à sauvegarder dans une pluralité de morceaux chiffrés, transfère les morceaux chiffrés aux PC d'utilisateur, et stocke le morceau chiffré dans les disques durs des PC d'utilisateur. Quand le fichier sauvegardé de façon distribuée doit être extrait, le PC d'utilisateur obtient chacun des morceaux chiffrés des PC d'utilisateur sur lesquels ils sont stockés, et les combine et les déchiffre pour reconstituer le fichier original.
Cette solution repose sur une forte centralisation des opérations sur un serveur. Ceci implique donc une forte dépendance vis-à-vis de ce serveur ainsi que des coûts d'exploitation relativement élevés pour maintenir le serveur.
On connaît également, dans l'état de la technique, des procédés de sauvegarde automatisés de données numériques sur des serveurs . Ces procédés sont effectués sur une architecture réseau où des postes clients et un ou plusieurs serveurs sont connectés à un réseau informatique. Des agents situés sur les différents postes clients réalisent, à heure fixe, une liste des fichiers modifiés depuis la dernière sauvegarde, puis réalise le transfert de ces données vers les serveurs de sauvegarde. Ces procédés sont couramment utilisés dans les entreprises pour sauvegarder les données des employés. Néanmoins, ces mécanismes ne permettent pas de tirer profit des nombreuses ressources inutilisées des postes clients.
La présente invention entend remédier aux inconvénients de l'art antérieur en proposant un procédé de sauvegarde distribuée sur un réseau informatique.
Le procédé selon la présente invention répond particulièrement bien aux restrictions budgétaires des entreprises, car il permet de tirer profit des ressources, en capacité de stockage et en capacité de traitement, non utilisées par les postes clients.
De plus, dans l'architecture retenue, l'absence de serveur dédié permet de se libérer des problèmes de fiabilité de ces machines. Alors que les procédés existants montrent une grande dépendance à des machines (serveur, entre autres), l'invention permet de se soustraire de cette dépendance : tous les postes clients participent à la sauvegarde distribuée, la sauvegarde étant redondante sur plusieurs postes.
A cet effet, l'invention concerne dans son acception la plus générale un procédé de sauvegarde de données numériques sur une pluralité d'équipements informatiques connectés à un réseau informatique, caractérisé en ce qu' :
- il ne met pas en œuvre de serveur informatique centralisé,
- il comprend :
• une étape préalable de calcul et de transmission de la charge des équipements aux autres équipements du réseau, l'étape étant réalisée par les équipements eux- mêmes,
• une étape de sauvegarde distribuée desdites données, la sélection et la répartition des données étant réalisées, par lesdits équipements, de façon à ce que les charges relatives aux données sont reparties de façon automatisée et de manière à atteindre un équilibre de charge des équipements .
De préférence, lesdites charges des équipements sont fonction des ressources CPU, RAM, disque dur et « uptime ».
Avantageusement, ladite étape de sauvegarde comprend une sous-étape de découpage desdites données en blocs.
Dans un mode de réalisation particulier, lesdits blocs sont chiffrés.
De préférence, ladite étape de sauvegarde est effectuée selon la technologie RAID 5.
Selon un mode de mise en œuvre, ledit procédé comprend en outre une étape de versioning desdites données sauvegardées.
De préférence, ledit procédé comprend, en outre, une étape de détermination du profil de l'utilisateur et une étape d'effacement des anciennes versions desdites données ne correspondant pas audit profil déterminé. Selon une variante, ladite sauvegarde est distribuée sur les équipements d'un sous-groupe dudit réseau.
La présente invention concerne également un système de sauvegarde distribuée de données numérique comprenant une pluralité d'équipements informatiques, un réseau informatique auquel sont connectés lesdits équipements informatiques pour la mise en œuvre du procédé. On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées où : - la figure 1 représente l'architecture globale du système ;
- la figure 2 représente l'architecture globale d'un système client ;
- la figure 3 représente l'organisation du système de fichiers virtuels ;
- La figure 4 illustre les différentes voies de communication du système ;
- la figure 5 représente les échanges de message suite à un crash d'un équipement ; et — la figure 6 illustre le mécanisme de versioning.
La présente invention met en œuvre un procédé de sauvegarde distribuée de données numériques sur un réseau informatique. L'invention fonctionne sur un parc informatique entier, elle n'a pas besoin de serveur dédié, ni d'un administrateur réseau. Le système de fichier va utiliser tout l'espace libre non sollicité de toutes les machines connectées au parc informatique. Le programme va décider de protéger, de sauvegarder et d'envoyer des données sur le réseau, qui seront chiffrées et stockées sur d'autres machines .
L'objectif de l'invention est de mettre en place une solution de sauvegarde intégrée au système d'exploitation sans solliciter de matériels informatiques ou des compétences techniques supplémentaires et spécifiques. Cette solution est réalisée en totale transparence avec le système car met en œuvre des modules de bas niveau, notamment par un pilote kernel qui s'intègre facilement au système d'exploitation.
Le moteur du projet tourne autour d'une technologie IA basée sur des agents autonomes qui assurent la bonne répartition et reconstruction des données .
Les différents intérêts du procédé de la présente invention portent sur :
• la distribution sur toutes les machines du réseau,
• la gestion d'un mécanisme de version des fichiers sauvegardés,
• l'absence de serveur,
• la compatibilité multi-plateformes,
• une haute redondance,
• une transparence accrue au système par l'utilisation d'un pilote kernel.
En référence à la figure 1, le système selon la présente invention comprend un réseau informatique sur lequel sont connectés des postes informatiques, de type ordinateurs. Tout type de réseau s'inscrit dans le cadre de l'invention, des réseaux informatiques filaires (LAN, Internet) aux réseaux sans-fil (Wifi) .
Chaque poste informatique dispose de ressources processeur (CPU) , mémoire vive (RAM) et de stockage (disques durs HD) .
Le but de l'invention est de fournir une solution de stockage de données qui peut utiliser de façon efficace toutes les ressources en stockage HD des postes informatiques . Pour cela des contraintes sont fixées :
• le transfert d'informations en respectant totalement les contraintes temps-réel du réseau que la disponibilité de tous les ordinateurs connectés, l'
• l'extraction et la reconstruction des données aussi rapide que possible pour tous les utilisateurs,
• l'envoi de message de restauration au réseau à la suite d'un crash de machine, garantissant une sécurité optimale de restauration de données .
Pour cela, la solution adoptée et présente sur chaque machine est modulaire avec un noyau (kernel) qui, par son bas niveau, optimise le temps d'accès aux ressources du système, et un deamon et des modules à un niveau plus haut
(niveau utilisateur, user) réalisant interfaçage avec le noyau et les différentes ressources de l'équipement
(réseau, mémoire, interface utilisateur) .
Le développement de ces différentes parties dans un environnement informatique peut être réalisé en langage C permettant une interaction bas-niveau.
Le noyau « hooke » les différents accès disques (read, write, open, close, rename, delete, stat, statfs, readdir) vers des fonctions spécifiques. Ces accès sont ensuite redirigés via un "device" vers le processus "UserLand", et sont interprétés par les différents agents du programme.
Le noyau kernel représente le VFS (Virtual File System) ce qui le rend parfaitement intégré dans le système d'exploitation (transparent pour l'utilisateur) . Le dossier de sauvegarde peut être, par exemple, C: /Mes Documents/ mais une représentation virtuelle du dossier de sauvegarde peut aussi être faite par l'utilisation d'un lecteur virtuel, par exemple J:/ .
Toutes les fonctionnalités de stockage, de résolution de noms de fichiers du système de fichiers s'exécutent dans le processus "UserLand", le noyau sert seulement d' interface au système de fichiers . Un module de communication est codé parallèlement au noyau, il a pour but de récupérer les messages provenant du noyau et les envoie aux modules de stockage et à l'agent analyseur, etc.
Dans l'architecture globale, l'espace user se compose :
• d'une interface de communication dont le rôle est de vérifier la transmission des données entre le noyau et l'interface utilisateur et d'assurer la connectivité avec les autres modules, notamment que les requêtes sont correctement réalisées et retournent des valeurs attendues,
• d'un module GUI : l'interface graphique à 1'utilisateur, • d'un module de stockage local qui réalise le stockage local des fichiers ainsi qu'une gestion des versions et la reconstruction de fichiers à partir de morceaux récupérés, et
• d'un système de distribution dont les rôles sont de dispatcher, distribuer et reconstruire les données de façon sécurise sur le réseau.
En référence aux figures 2 et 3, le cœur du système se compose d'un module VFS (Virtual File System) . Ce module représente le coeur du système de fichiers, il a pour charge d'organiser les vnodes (structure unique représentant toutes les informations d'une ressource comme un fichier ou un répertoire) , les inodes (structure stockée dans chaque vnode contenant les informations système du fichier comme la date de création, le type, la taille, etc. ) .
Chaque vnode représente un noeud d'un arbre à « n » branches. Sur chaque vnode, il y aura l'offset du premier bloc de la donnée associée (uniquement si c'est un fichier) . Les blocs de données seront stockés dans un autre endroit, indépendamment de l'arbre du système de fichiers.
Ce module gère, en parallèle, les stockages distants qui seront stockés dans un endroit indépendamment du stockage local. Le stockage local correspond au stockage de l'utilisateur de la machine actuelle. Ce stockage prend en compte les problématiques de versions des fichiers. Il joue le rôle de cache car il possède l'intégralité des données de l'utilisateur courant. Le stockage distant quant à lui possède uniquement les informations et les données des utilisateurs distants. Les deux stockages ne sont pas associés pour que chaque utilisateur puisse garder son environnement propre afin de garantir une meilleure sécurité. Le stockage local ainsi que sa vfat (arbre système + blocs de données) ne sont pas chiffrés, seul le stockage distant est chiffré car il est inutile de chiffrer les données qui sont déjà accessibles en clair sur le point de montage (vfat) , seuls les données "distantes" sont sensibles car elles n'appartiennent pas à l'utilisateur de la machine locale.
Toujours en référence à la figure 2, les agents réalisent les fonctionnalités de la présente invention. L'agent mon±tor±ng est un agent très important car il a un double rôle ; il évalue la fiabilité de sa machine hôte, son espace libre exploitable, la qualité de la bande passante. Avec tous ces critères, il diffuse un poids qui sera la synthèse de la "qualité" de la machine. Ces poids sont très importants car ils permettent, au moment de la répartition d'une donnée, l'élection des machines potentiellement intéressantes sur le réseau à un moment donné. le deuxième rôle de l'agent monitoring est de garder à jour la liste en temps réel des machines connectées au réseau.
Ce module effectue aussi l'élection du « pool » de machines qui seront retenues pour le déploiement d'une ressource. Lorsque le poids évolue significativement (en + ou en -) , le poids est de nouveau diffusé sur le réseau pour que toutes les machines se mettent à jour. Lorsque la machine s'arrête, une trame d'arrêt est envoyée, ou bien, si une machine n'arrive plus à contacter une autre machine, elle prévient alors les autres que telle ou telle machine n'est plus connectée.
L'agent reconstructeur est sollicité uniquement après un « crash » de machine, son rôle est de retrouver et de reconstruire le plus rapidement possible la vfat puis les blocs de données sur l'ensemble du parc informatique.
Il se sert des messages Multicast pour prévenir toutes les autres machines en même temps, et l'agent reconstructeur de chaque machine distante répond à la requête au cas par cas.
L'agent analyseur est crucial, car il décide de la pertinence ou non de créer une nouvelle version d'une ressource dans le système de fichiers, et/ou d'envoyer sur différentes machines cette ressource pour effectuer une sauvegarde distante (ou plusieurs) . Cet agent est autonome et prend en considération, pour effectuer son choix, plusieurs critères système importants notamment la taille de la ressource, sa date de mise à jour, etc. (cette énumération n'est pas limitative des paramètres utilisables) .
La figure 4 illustre les différentes voies de communication du système. Un module de communication centralise les envois de messages de chacun des agents et les expédient soit vers l'agent destinataire (agent B) soit sur le réseau à destination d'une autre machine (machine B) . Dans un mode de réalisation, lorsqu'une machine se connecte au réseau, l'agent de monitoring diffuse des informations illustrant la disponibilité de la machine. Ces informations peuvent contenir, par exemple, l'adresse IP qui identifie de façon unique la machine et un coefficient caractéristique des disponibilités des ressources de la machine. Ce coefficient ou poids peut être une fonction des informations CPU, mémoire vive, mémoire disque dur et up- time.
L'envoi de ces informations peut être réalisé de façon Multicast lorsque le réseau est structuré en sous- groupe. De plus cet envoi est renouvelé pendant le fonctionnement de la machine, par exemple au bout d'un temps imparti ou lorsque son coefficient a été modifié.
Les agents de chacune des machines du réseau ou du sous-groupe possèdent ainsi la liste des (IP, coefficient) de chacune des autres machines. Pour des raisons de sécurité, une validation de la liste est effectuée par une connexion TCP à chacune des machines et par l'envoi d'un certificat SSL, par exemple SSLv3 + Certificats X509 v3.
Lors de l'édition ou création d'un fichier, les agents réalisent une double sauvegarde du fichier.
D'une part, une sauvegarde locale est effectuée, de préférence non chiffrée même si certains systèmes de fichiers chiffrent automatiquement les données.
D'autre part, le fichier est découpé en morceau soit de taille fixe (1024 octets par exemple) soit de taille adaptée en fonction du type de fichier (multimédia) ou de sa propre taille. Un en-tête (nom du fichier d'appartenance, numéro de bloc, ...) est ajouté au morceau et l'ensemble est chiffré selon un algorithme de chiffrement traditionnel. Par exemple :
• Méthode : clef dérivées de la passphrase : PKCS#5 v2 (PBKDF2-HMAC-SHAl)
• Chiffrement des données : AES 128Bits.
• Générateur de nombres aléatoires : ISAAC de Bob Jenkins
La partie la plus sensible est la génération des clefs servant à chiffrer les données et les metadatas, il faut éviter une collision de clefs générées, tout en gardant en visu une performance accrue. Pour cela, il faut passer le système de chiffrement par un benchmark pour diminuer la sécurité si les performances sont mauvaises. Le changement de passphrase entraine la suppression des précédentes données, sauf si on re-chiffre les données sauvegardées localement et qu'on les redistribue durant la nuit ou quand la machine n'est pas utilisée.
Les blocs ainsi chiffrés sont envoyés de façon sécurisée vers différentes machines pour assurer une redondance de la sauvegarde. Le nombre de machines sur lesquelles sont envoyés les blocs est défini par l'administrateur du système. Cette distribution des données sur différentes machines permet le cas échéant de disposer de plusieurs voies de récupération des données : si un ordinateur crashe, les données seront toujours récupérables sur un autre poste. C'est cette distribution qui donne le nom de sauvegarde distribuée. Les agents des machines en question réceptionnent les blocs et les stockent de façon locale.
Pour optimiser les performances de la solution, les agents mettent à profit les périodes « creuses » d'utilisation des machines pour réaliser toutes sortes d'actions : défragmentation des blocs de données, nettoyage sur le poste des versions de blocs les plus anciennes afin de récupérer de l'espace mémoire, ...
Dans un autre mode de réalisation, une machine appartenant au réseau a « crashé », toutes les données ont été perdues .
En référence à la figure 5, après la réinstallation des agents, le machine envoie une requête Multicast comportant un identifiant de la machine (adresse IP, nom
DHCP de la machine, ...) ou une requête sur les machines les plus disponibles.
Les machines indiquent les données (blocs) de la machine crashée dont elles disposent. Cette dernière fait alors une requête spécifique des données aux machines les plus disponibles de façon à récupérer le plus rapidement possible toutes les données initiales.
Après réception des blocs, les agents reconstituent les fichiers originaux.
Comme illustré par la figure 6, un système d'archivage de versions est implémenté dans la solution selon la présente invention. Cette solution de versioning permet entre autres de récupérer des anciennes versions d'un fichier. Pour cela, à chaque modification d'un fichier, la sauvegarde avec incrément de version n'est réalisée que sur les blocs de données qui ont été modifiés ou sur ceux qui ont été créés. La version 2 du fichier file.ext se différencie de la version 1 par un nouveau bloc 1 (Ref #0004) . Quant à la version 4, elle se compose du bloc 1 (Ref #0004) modifié pour la version 2, du bloc 2 (Ref #0005) modifié pour la version 3 et du bloc 3 (Ref #0007) modifié pour la version 4.
Cette solution de versioning différentielle permet un gain de place important en comparaison des solutions qui sauvegardent tout le fichier pour chaque version.
L'archivage des versions peut être basé sur un numéro donné à chaque version ou, plus simplement, sur l'utilisation de la date pour hiérarchiser les blocs.
Pour accroître l'efficacité du système, des mécanismes d'apprentissage ou d'analyse comportementale sont aussi mis en place afin d'établir des profils d'utilisateur : par exemple, plus un fichier est régulièrement accédé, plus le versioning doit être fréquent, les documents avec des extensions .doc et .xls sont régulièrement sauvegardés sous des versions différentes pour un utilisateur de type « secrétariat », des codes sources d'un informaticien sont également très régulièrement sauvegardés .
En outre, des règles statiques peuvent être établies par l'administrateur, règles déterminant la politique de versioning.
Dans un mode de réalisation, la redondance des données est réalisée par la solution technique RAID 5 (Redundant Array of Inexpensive Disks) consistant à réaliser une parité d'au moins deux blocs élémentaires de données. En prenant deux blocs issus de la fragmentation d'une page mémoire, un troisième bloc de « parité » est construit de telle sorte que ce troisième bloc associé avec n'importe lequel du premier ou second bloc permet de retrouver le bloc non utilisé.
La force d'un tel mécanisme réside dans le fait que tous les blocs de parité ne sont pas des données exploitables à elles seules. Ainsi, l'opération de chiffrement de données n'est nécessaire que sur les blocs de « données pures ». N blocs de données peuvent être recouvrés à partir d'un seul bloc de données pures et de (N-I) blocs de parité.
L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet.

Claims

REVENDICATIONS
1. Procédé de sauvegarde de données numériques sur une pluralité d'équipements informatiques connectés à au moins un réseau informatique, caractérisé en ce qu' :
— il ne met pas en œuvre de serveur informatique centralisé,
- il comprend :
• une étape préalable de calcul et de transmission de la charge des équipements aux autres équipements du réseau, l'étape étant réalisée par les équipements eux- mêmes,
• une étape de sauvegarde distribuée desdites données, la sélection et la répartition des données étant réalisées, par lesdits équipements, de façon à ce que les charges relatives aux données sont reparties de façon automatisée et de manière à atteindre un équilibre de charge des équipements .
2. Procédé de sauvegarde de données numériques selon la revendication précédente, caractérisé en ce que lesdites charges des équipements sont fonction des ressources CPU, RAM, disque dur et « uptime ».
3. Procédé de sauvegarde de données numériques selon les revendications précédentes, caractérisé en ce que ladite étape de sauvegarde comprend une sous-étape de découpage desdites données en blocs .
4. Procédé de sauvegarde de données numériques selon la revendication précédente, caractérisé en ce que lesdits blocs sont chiffrés.
5. Procédé de sauvegarde de données numériques selon la revendication 3, caractérisé en ce que ladite étape de sauvegarde est effectuée selon la technologie RAID 5.
6. Procédé de sauvegarde de données numériques selon les revendications précédentes, caractérisé en ce qu'il comprend en outre une étape de versioning desdites données sauvegardées .
7. Procédé de sauvegarde de données numériques selon la revendication précédente, caractérisé en ce qu'il comprend, en outre, une étape de détermination du profil de l'utilisateur et une étape d'effacement des anciennes versions desdites données ne correspondant pas audit profil déterminé.
8. Procédé de sauvegarde de données numériques selon les revendications précédentes, caractérisé en ce que ladite sauvegarde est distribuée sur les équipements d'un sous-groupe dudit réseau.
9. Système de sauvegarde distribuée de données numérique comprenant une pluralité d'équipements informatiques, au moins un réseau informatique auquel sont connectés lesdits équipements informatiques pour la mise en œuvre du procédé selon l'une quelconque des revendications précédentes .
PCT/FR2005/050572 2004-07-15 2005-07-12 Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique WO2006016085A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/632,281 US20080195675A1 (en) 2004-07-15 2005-07-12 Method for Pertorming Distributed Backup on Client Workstations in a Computer Network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0451534A FR2873219A1 (fr) 2004-07-15 2004-07-15 Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique
FR0451534 2004-07-15

Publications (2)

Publication Number Publication Date
WO2006016085A1 true WO2006016085A1 (fr) 2006-02-16
WO2006016085B1 WO2006016085B1 (fr) 2006-03-30

Family

ID=34950797

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/050572 WO2006016085A1 (fr) 2004-07-15 2005-07-12 Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique

Country Status (3)

Country Link
US (1) US20080195675A1 (fr)
FR (1) FR2873219A1 (fr)
WO (1) WO2006016085A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489830B2 (en) 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US8359599B2 (en) * 2007-11-20 2013-01-22 Ricoh Production Print Solutions LLC Methods and systems for efficient use and mapping of distributed shared resources
US8386741B2 (en) * 2010-08-31 2013-02-26 International Business Machines Corporation Method and apparatus for optimizing data allocation
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US9389966B2 (en) * 2012-12-12 2016-07-12 1E Limited Backing-up user data
US9442803B2 (en) * 2014-06-24 2016-09-13 International Business Machines Corporation Method and system of distributed backup for computer devices in a network

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2767937A1 (fr) * 1997-09-04 1999-03-05 Michel Gouget Procede de duplication de donnees reduisant les volumes a transferer
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6401238B1 (en) * 1998-12-10 2002-06-04 International Business Machines Corporation Intelligent deployment of applications to preserve network bandwidth
US20040034672A1 (en) * 2002-05-30 2004-02-19 Takeshi Inagaki Data backup technique using network
US20040049700A1 (en) * 2002-09-11 2004-03-11 Fuji Xerox Co., Ltd. Distributive storage controller and method
US6728751B1 (en) * 2000-03-16 2004-04-27 International Business Machines Corporation Distributed back up of data on a network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9705371D0 (en) * 1997-03-14 1997-04-30 British Telecomm Control of data transfer and distributed data processing
US6430611B1 (en) * 1998-08-25 2002-08-06 Highground Systems, Inc. Method and apparatus for providing data storage management
US20020152305A1 (en) * 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
DE60327329D1 (de) * 2002-09-10 2009-06-04 Exagrid Systems Inc Primär- und ferndatensicherung mit knoten-failover

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2767937A1 (fr) * 1997-09-04 1999-03-05 Michel Gouget Procede de duplication de donnees reduisant les volumes a transferer
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6401238B1 (en) * 1998-12-10 2002-06-04 International Business Machines Corporation Intelligent deployment of applications to preserve network bandwidth
US6728751B1 (en) * 2000-03-16 2004-04-27 International Business Machines Corporation Distributed back up of data on a network
US20040034672A1 (en) * 2002-05-30 2004-02-19 Takeshi Inagaki Data backup technique using network
US20040049700A1 (en) * 2002-09-11 2004-03-11 Fuji Xerox Co., Ltd. Distributive storage controller and method

Also Published As

Publication number Publication date
US20080195675A1 (en) 2008-08-14
FR2873219A1 (fr) 2006-01-20
WO2006016085B1 (fr) 2006-03-30

Similar Documents

Publication Publication Date Title
US10924511B2 (en) Systems and methods of chunking data for secure data storage across multiple cloud providers
US11451391B1 (en) Encryption key management in a storage system
EP1815359B1 (fr) Système et procédé de sauvegarde distribuée pérenne des données
US8843637B2 (en) Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes
US8055615B2 (en) Method for efficient storage node replacement
EP2559196B1 (fr) Outil de gestion de ressources et d'infrastructures informatiques et réseaux
US20110055494A1 (en) Method for distributed direct object access storage
US20100257403A1 (en) Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US11308223B2 (en) Blockchain-based file handling
EP2559224B1 (fr) Outil de gestion de ressources et d'infrastructures informatiques et de réseaux
US20100332549A1 (en) Recipes for rebuilding files
JP2012504284A (ja) データ転送記憶における分解/再構築
WO2006016085A1 (fr) Procede de sauvegarde distribuee sur des postes clients dans un reseau informatique
WO2021043599A1 (fr) Migration d'une chaîne de blocs de données
Swagatika et al. Cloud-based backup and data recovery
EP2990948A1 (fr) Nuage de donnees
EP2684129B1 (fr) Procedes, dispositifs et programmes d'ordinateur pour optimiser la replication de donnees dans des systemes informatiques
Modi et al. Cloud Backup & Recovery Techniques of Cloud Computing and a Comparison between AWS and Azure Cloud
Upra et al. Personal Cloud P2P
Srikanth et al. Decentralized Cloud Storage using Unutilized Storage in PC
FR2870951A1 (fr) Systeme de memorisation de donnees de niveau utilisateur
EP3239851A1 (fr) Gestion de l'accès a des données dans un système de stockage
Darrous Scalable and Efficient Data Management in Distributed Clouds: Service Provisioning and Data Processing
Meye Dependability in cloud storage
WO2010052440A1 (fr) Procede et systeme de stockage virtualise d'un ensemble de donnees numeriques

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

B Later publication of amended claims

Effective date: 20060207

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase
WWE Wipo information: entry into national phase

Ref document number: 11632281

Country of ref document: US