WO2007138166A1 - File archives in distributed file system architecture - Google Patents
File archives in distributed file system architecture Download PDFInfo
- Publication number
- WO2007138166A1 WO2007138166A1 PCT/FI2007/050304 FI2007050304W WO2007138166A1 WO 2007138166 A1 WO2007138166 A1 WO 2007138166A1 FI 2007050304 W FI2007050304 W FI 2007050304W WO 2007138166 A1 WO2007138166 A1 WO 2007138166A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subunits
- apparatuses
- file system
- distributed file
- data file
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Definitions
- the present invention relates to distributed file system architectures, especially when used as file archives.
- Mei et al have, however, the significant drawback that even though the data files to be archived are fragmented and distributed over several servers, thus providing security against fraudulent misuse and network and server failures, the systems still require quite extensive investments into server hardware and software in order to create commercially viable archiving service systems. Furthermore, if implemented as a commercial archiving service, the decentralized distributed file systems still have to be managed and initialized centrally.
- any kind of commercial archiving service means making contracts with a service provider about the service.
- Mergers, bankruptcies and other reasons may lead to the situation where the company no longer exists which may render archive inaccessible. Accordingly, there is a need for a safe, reliable, and cost efficient method of archiving digital content, which is especially suitable for private persons.
- a method for distributing data in a distributed file system comprising a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, the method comprising: fragmenting a data file to be archived into a plurality of subunits; carrying out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; establishing peer-to- peer connections from the apparatus carrying out the fragmentation to at least two apparatuses of the distributed file system; and distributing the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
- the data file is encrypted prior to the fragmentation.
- the original data file is restored by retrieving a necessary number of subunits from the apparatuses of the distributed file system storing the subunits as backup files, said necessary number being more than one, but less than the number of all subunits.
- the method in response to one of the apparatuses of the distributed file system storing the subunits being no longer available, the method further comprises: selecting a new apparatus to replace said non-available apparatus as a backup partner; restoring the original data file by retrieving the subunits of the data file from the rest of the apparatuses of the distributed file system storing the subunits; fragmenting the data file again into subunits; and distributing the fragmented subunits of the data file to a newly selected group of apparatuses of the distributed file system to be backed up.
- the predetermined fragmentation scheme includes a step of parity value calculation, said parity values being usable in the recovery of original data file such that less than all subunits are required.
- the predetermined fragmentation scheme is optimized according to at least one of the following attributes: the proportion of allowed storage overhead; a desired security level; available processing power; or applicable forward error correction (FEC) methods.
- FEC forward error correction
- said apparatuses of the distributed file system comprise servers suitable for file transfer protocol (FTP); and said peer-to-peer connections between the apparatuses are established as FTP connections.
- FTP file transfer protocol
- said peer-to-peer connections between the apparatuses are established as BitTorrent connections.
- the arrangement according to the invention provides significant advantages. Especially from the viewpoint of private persons, using peer-to-peer connections provide the advantage that no centralized system is required for establishing the archiving system; the devices belonging to the archiving system just establish mutual connections with each other to share and retrieve the fragmented data. Thus, friends, relatives and other trusted persons can mutually decide to establish an archiving system, whereby no commercial services are required, but only an archiving software for performing the necessary actions.
- Carrying out the fragmentation such that more than one piece, but not necessarily all pieces, of the fragmented data are required in order to restore the original data provides the security advantage that one cannot restore the original content by fraudulently accessing the data in one archiving storage, but on the other hand, if the data in one archiving storage is lost for some reason, the owner of the data content can restore the original data by accessing the rest of the fragmented data.
- Fig. 1 illustrates an example of an archiving system according to an embodiment of the invention
- Fig. 2 shows a simplified example of a predetermined fragmenting scheme according to an embodiment of the invention
- Fig. 3 shows another example of a predetermined fragmenting scheme according to an embodiment of the invention
- Fig. 4 shows the fragmenting phase of the example of Fig. 3 carried out with fewer backup partners
- Fig. 5 shows a data transfer arrangement between the peers via a FTP (File Transfer Protocol) connection according to an embodiment of the invention
- Figs. 6a - 6c show another data transfer arrangements between the peers according to further embodiments of the invention.
- Fig. 7 shows a simplified block chart of a device participating in the archiving system
- Fig. 8 shows an example user interface of an archiving software implemented as a plug-in according to an embodiment of the invention. Description of embodiments
- the embodiments rely on two basic principles: fragmenting the data to be archived according to a predetermined fragmenting scheme and delivering the fragmented data to a plurality of archiving storages via peer-to-peer connections.
- the fragmentation is preferably carried out such that it is required to have more than one piece, but not necessarily all pieces, of the fragmented data in order to restore the original data.
- This provides the security advantage that one cannot restore the original content by fraudulently accessing the data in one archiving storage, but on the other hand, if the data in one archiving storage is lost for some reason, the owner of the data content can restore the original data by accessing the rest of the fragmented data.
- Using peer-to-peer connections provides the advantage that no centralized system is required for establishing the archiving system; the devices belonging to the archiving system just establish mutual connections with each other to share and retrieve the fragmented data.
- the actual implementation of these features is carried out in the devices participating in the archiving system as an archiving software performing the required routines. Consequently, the software in each device keeps track of the other devices in the archiving system, carries out the fragmentation, retrieves the fragmented data from the other devices, when the original data needs to be restored, etc.
- the archiving software can be a separate software dedicated to a particular type of device, or if the device is a computer, the software may be a plug-in for a known software product, e.g. for Windows® Explorer.
- Fig. 1 illustrates this example, wherein the archiving system consists of eight backup partners A - H. Each of the partners store fragmented data from four other partners. For example, the data of A is archived by D, F, G and H. The fragmenting scheme is defined such that if for example F is lost for some reason, the original data can still be recovered from D, G and H.
- the archiving software of A when the archiving software of A notices that F is no longer available as an archiving storage or it is not responding for a longer time, it inquires the other partners in the archiving system whether they have free memory available, which is allocated as an archiving storage. If for example B has enough free space, it can be selected as a new archiving partner.
- the original data is recovered from the fragmented data of D, G and H, the original data is fragmented again and the fragmented data previously stored by F is delivered to B. After that the data of A would be archived by D, G, H and B. Again, the original data would once more be recoverable even if one of the partners were lost.
- Fig. 2 illustrates this example, wherein the archiving system consists of nine backup partners, i.e. each participant has eight partners 1 - 8 to which the fragmented data can be shared.
- the original file is split into four parts by allocating every fourth character, i.e. a byte, into each part according to Fig. 2.
- each part is backed up to two partners, i.e. the first part is delivered to partners 1 and 5, the second part to partners 2 and 6, etc.
- Increasing the number of partners having overlapping data content will also increase the security.
- the original file is first encrypted and the encrypted file is backed up in the manner explained above, whereby the system becomes even more secure, virtually unbreakable.
- the data is to be restored, in this case one needs to have preferably at least four pieces of information either from 1 or 5, from 2 or 6, from 3 or 7 and from 4 or 8.
- Fig. 3 illustrates a more sophisticated parity based fragmenting scheme.
- the archiving system consists of nine backup partners A - I, whereby the data of A is to be fragmented and shared among all partners.
- the example of Fig. 3 illustrates how an eight-character string ("A_QUICK_") can be backed up.
- the original 8- bit representation of each character is put into a binary matrix, wherein backup partners B - I are allocated one bit of each original byte.
- backup partners B - I are allocated one bit of each original byte.
- an additional parity bit is calculated out of each byte of the original data, and this parity bit is allocated in the binary matrix to A.
- Out of the bits of each backup partner a new byte to be backed up is calculated.
- Fig. 3 illustrates a more sophisticated parity based fragmenting scheme.
- the archiving system consists of nine backup partners A - I, whereby the data of A is to be fragmented and shared among all partners.
- B backs up a byte with value 0, C with value 190, etc.
- A itself preferably backs up the byte formed of the parity bits, having the value of 109.
- the restoring phase of the example of Fig. 3 illustrates how to reconstruct the data when one backup partner, partner E in this case, is lost.
- an XOR operation is carried out with the newly calculated parity bits and original parity bits.
- the results represent the original bits of the lost backup partner E.
- the original parity byte may also be stored by any other partner than the one whose data is to be backed up (A in this case).
- the parity partner is the only backup partner, which is lost, there is no need to do anything special when restoring the data, i.e. if all parts of the fragmented data can be found, the parity data is not needed in restoring the original data.
- the number of backup partners can also vary in parity based fragmenting schemes, whereby the original data has to be formatted accordingly.
- Fig. 4 shows the fragmenting phase of the previous example with five backup partners A - E.
- the original 8-bit representation of each character is again put into a binary matrix, wherein the 8-bit representation of each character is divided in two rows and backup partners B - E are allocated two bits of each original byte.
- an additional parity bit is calculated out of each row of the original data, and this parity bit is allocated in the binary matrix to A.
- a new byte to be backed up is calculated for each four characters, i.e. 8 rows.
- Fig. 4 shows the fragmenting phase of the previous example with five backup partners A - E.
- the original 8-bit representation of each character is again put into a binary matrix, wherein the 8-bit representation of each character is divided in two rows and backup partners B - E are allocated two bits of each original byte.
- an additional parity bit is calculated out of each row of
- B backs up a byte with value 0, C with value 139, etc. for the first four characters. Then for the next four characters B backs up a byte with value 68, C with value 168, etc.
- A itself preferably backs up the bytes formed of the parity bits, i.e. the value of 228 for the first four characters and the value of 174 for the next four characters.
- the byte size of the original data can vary. Thereby, constructing the original data out of the data of one single backup partner is even harder.
- FIGs. 2 - 4 are just simplified examples of possible fragmenting schemes.
- a skilled man appreciates that a suitable fragmenting scheme is preferably evaluated case by case and more complicated fragmenting schemes may preferably be used.
- An optimal fragmenting scheme depends on many attributes, two most important ones being the proportion of allowed storage overhead and the desired security level. Furthermore, the available processing power or applicable forward error correction
- FEC FEC
- the archiving software besides carrying out the fragmentation and the restoration of the original data, also takes care of the data transfer to and from the other partners of the archiving system.
- the actual data transfer can be done in various ways.
- the data transfer between the peers is carried out via a FTP (File Transfer Protocol) connection.
- FTP File Transfer Protocol
- a system wherein every backup partner has an FTP server would probably be the simplest case.
- Such system comprising the backup partners A, B and C, is disclosed in Fig. 5.
- the backup client needs to backup data or recover files from the backup, it initiates an FTP session and carries out the desired actions, whereby the actual data transfer is performed in very simplified manner.
- This sets some requirements for the client, i.e. the archiving software, for example in terms of password management.
- every client should know the correct username and password of every FTP server.
- a suitable peer-to-peer (p2p) protocol may be used for the actual data transfer. It is generally known that there exist various kinds of all-purpose p2p protocol, and additionally many dedicated p2p protocols have been developed for some specific purposes. Accordingly, one can use either an existing p2p protocol or a totally new dedicated p2p protocol can be developed for the p2p backup data transfer according to the embodiments.
- the data transfer can preferably be carried out using a well-recognized peer-to-peer protocol called BitTorrent.
- BitTorrent protocol forms a good base for the p2p backup data transfer protocol.
- BitTorrent website http://www.bittorrent.com/.
- the first embodiment disclosed in Fig 6a is based on signalling of the new content.
- "A" has a file to be backed up, whereby the archiving software of A fragments the file according to a predetermined fragmenting scheme. Then A signals to B and C via some signalling mechanism that there is new data to be backed up.
- the signalling can be done in several ways, e.g. via a dedicated server listening for signals. When B and C have received the signalling, they will fetch the parts with normal p2p pull mechanisms.
- the second embodiment disclosed in Fig 6b is based on p2p push. After the data has been split up, A pushes the new parts to B and C.
- B and C preferably comprise a server process listening for data to be pushed towards the devices B and C.
- the third embodiment disclosed in Fig 6c is based on polling. B and C poll regularly A to notify whether there is new data to be backed up. When there is new data available at A, then B and C request it via normal p2p pull mechanisms.
- the reconstructing of original files from the fragmented backup data can be implemented as a normal p2p pull.
- the client A requests the backup data from the respective backup partners B and C, which submit the data in response to the request. If the data is split with explicit redundancy, like in the example of fig. 2, the data can be requested from the most suitable source.
- the devices participating in the archiving system may be PC-based computers, known as such, connected to any data communication network, or they may be wireless terminals, like mobile stations or PDA devices, connected to any data communication network via a mobile communication network.
- the device participating in the archiving system may be any kind of electronic apparatus comprising the necessary memory to be used as the archiving storage, processing means for executing the archiving software, and communication means for transferring data between other devices participating in the archiving system.
- a device participating in the archiving system comprises, as illustrated in Fig. 7, memory MEM, a user interface Ul, I/O means I/O for arranging data transmission with other devices, and one or more central processing units CPU comprising at least one processor.
- the memory MEM includes a non-volatile portion for storing the applications, like the archiving software, controlling the central processing unit CPU and other data to be stored and a volatile portion to be used for temporary data processing and for operating as the archiving storage.
- the steps according to the embodiments can be largely implemented with program commands executed in the central processing units CPU of the device illustrated in Fig. 7.
- said means for carrying out the method described above are preferably implemented as computer software code.
- the computer software may be stored into any memory means, such as the hard disk of a PC or a CD-ROM disc, from where it can be loaded into the memory of device.
- the computer software can also be loaded through a network, for instance using a TCP/IP protocol stack. It is also possible to use hardware solutions or a combination of hardware and software solutions for implementing the inventive means.
- the archiving software can be implemented as a plug-in for a known software product.
- Fig. 8 illustrates an example of a user interface of such plug-in designed for Windows® Explorer.
- the plug-in extends Windows® Explorer so that a backup tab is introduced. In this tab the user can select a file to be backed up, add and remove backup partners, and carry out the restoration of the backed up data. Once the operation is started, the system automatically backs up the files in a background process.
Abstract
A distributed file system comprising a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, wherein a first apparatus is arranged to fragment a data file to be archived into a plurality of subunits. The first apparatus carries out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits. Then the apparatus establishes peer-to-peer connections to at least two apparatuses of the distributed file system, and distributes the fragmented subunits of the data file to said at least two apparatuses to be backed up.
Description
FILE ARCHIVES IN DISTRIBUTED FILE SYSTEM ARCHITECTURE
Field of the invention
The present invention relates to distributed file system architectures, especially when used as file archives.
Background of the invention
In modern world the amount of digital content is growing exponentially while the number of networked devices with own storage capacity is increasing in every household. As some examples of digital content requiring an increasing amount of storage capacity, one could mention pictures taken with digital cameras or with mobile phones, video files taken with digital camcorders, or TV broadcasts stored by using PVR systems or by downloading from the Internet.
The growing amount of digital content poses the problem of archiving the content. For a private person one possibility to archive the material is to store it on external physical storages, e.g. by burning the content to DVDs or storing them on external hard disks. However, such physical storages are always exposed to security risks, such as physical damage or theft. Furthermore, their suitability and durability for long-term storage (for decades or even longer) has not been researched intensively yet. Another possibility to archive the material is to buy the archiving service from some network based archive service provider.
From the technical point of view, such archiving services have traditionally been provided as a client-server solution, wherein the files to be backed up are transferred to some centralized server. From the service provider's point of view, the centralization of services according to classical client/server architecture allows a reasonable management of complex distributed applications, assuring security, availability, and consistency. These distributed file system prototypes rely on the explicit or implicit assumption of one or more "trusted servers". A client- server approach, however, requires extensive investments into hardware and software making it expensive to deploy. Accordingly, the
increasing size of modern network infrastructures reveals the limitation of this approach to build a ubiquitous distributed file system, especially in terms of the security, the overall efficiency, the scalability, and the single point of failure problem.
In order to overcome the above limitations, several distributed file systems based on decentralized server architectures have been researched and developed. An article "Secure Dynamic Fragment and Replica Allocation in Large-Scale Distributed File Systems", Mei et al., IEEE Transactions on parallel and distributed systems, vol. 14, Sept 2003, (also available as http://cesare.dsi.uniroma1.it/Sicurezza/doc/ tpds.pdf) discloses a solution based on a large number of servers coordinated by decentralized algorithms that provide the availability and scalability of the system's functionalities. There is no centralized server for file system services, but a set of cooperating servers to provide data storage, whereby only clients are trusted while all servers are untrusted. Mei et al also refers to research work started at the University of Berkeley ("OceanStore", http://oceanstore.cs.berkeley.edu /info/overview. html) as a prototype of such distributed file system architecture.
The architectures disclosed by Mei et al have, however, the significant drawback that even though the data files to be archived are fragmented and distributed over several servers, thus providing security against fraudulent misuse and network and server failures, the systems still require quite extensive investments into server hardware and software in order to create commercially viable archiving service systems. Furthermore, if implemented as a commercial archiving service, the decentralized distributed file systems still have to be managed and initialized centrally.
From user point of view, any kind of commercial archiving service means making contracts with a service provider about the service. Thus, there is always the question to which companies one can trust. Mergers, bankruptcies and other reasons may lead to the situation where the company no longer exists which may render archive inaccessible. Accordingly, there is a need for a safe, reliable, and cost
efficient method of archiving digital content, which is especially suitable for private persons.
Summary of the invention
Now there is invented an improved distributed file system, which requires no centrally managed server at all. Various aspects of the invention include a method for distributing data, a distributed file system, an apparatus and a software product, which are characterized by what is stated in the independent claim. Various embodiments of the invention are disclosed in the dependent claims.
According to the inventive idea, there is provided a method for distributing data in a distributed file system comprising a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, the method comprising: fragmenting a data file to be archived into a plurality of subunits; carrying out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; establishing peer-to- peer connections from the apparatus carrying out the fragmentation to at least two apparatuses of the distributed file system; and distributing the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
According to an embodiment, the data file is encrypted prior to the fragmentation.
According to an embodiment, the original data file is restored by retrieving a necessary number of subunits from the apparatuses of the distributed file system storing the subunits as backup files, said necessary number being more than one, but less than the number of all subunits.
According to an embodiment, in response to one of the apparatuses of the distributed file system storing the subunits being no longer available, the method further comprises: selecting a new apparatus to replace said non-available apparatus as a backup partner; restoring the
original data file by retrieving the subunits of the data file from the rest of the apparatuses of the distributed file system storing the subunits; fragmenting the data file again into subunits; and distributing the fragmented subunits of the data file to a newly selected group of apparatuses of the distributed file system to be backed up.
According to an embodiment, the predetermined fragmentation scheme includes a step of parity value calculation, said parity values being usable in the recovery of original data file such that less than all subunits are required.
According to an embodiment, the predetermined fragmentation scheme is optimized according to at least one of the following attributes: the proportion of allowed storage overhead; a desired security level; available processing power; or applicable forward error correction (FEC) methods.
According to an embodiment, said apparatuses of the distributed file system comprise servers suitable for file transfer protocol (FTP); and said peer-to-peer connections between the apparatuses are established as FTP connections.
According to an embodiment, said peer-to-peer connections between the apparatuses are established as BitTorrent connections.
The arrangement according to the invention provides significant advantages. Especially from the viewpoint of private persons, using peer-to-peer connections provide the advantage that no centralized system is required for establishing the archiving system; the devices belonging to the archiving system just establish mutual connections with each other to share and retrieve the fragmented data. Thus, friends, relatives and other trusted persons can mutually decide to establish an archiving system, whereby no commercial services are required, but only an archiving software for performing the necessary actions. Carrying out the fragmentation such that more than one piece, but not necessarily all pieces, of the fragmented data are required in order to restore the original data provides the security advantage that
one cannot restore the original content by fraudulently accessing the data in one archiving storage, but on the other hand, if the data in one archiving storage is lost for some reason, the owner of the data content can restore the original data by accessing the rest of the fragmented data.
List of drawings
In the following, various embodiments of the invention will be described in more detail with reference to the appended drawings, in which
Fig. 1 illustrates an example of an archiving system according to an embodiment of the invention;
Fig. 2 shows a simplified example of a predetermined fragmenting scheme according to an embodiment of the invention;
Fig. 3 shows another example of a predetermined fragmenting scheme according to an embodiment of the invention;
Fig. 4 shows the fragmenting phase of the example of Fig. 3 carried out with fewer backup partners;
Fig. 5 shows a data transfer arrangement between the peers via a FTP (File Transfer Protocol) connection according to an embodiment of the invention;
Figs. 6a - 6c show another data transfer arrangements between the peers according to further embodiments of the invention;
Fig. 7 shows a simplified block chart of a device participating in the archiving system;
Fig. 8 shows an example user interface of an archiving software implemented as a plug-in according to an embodiment of the invention.
Description of embodiments
In the following, various embodiments of the invention will be described as a mutual cooperation of a group of computer devices, whereby the users of the computer devices have agreed with each other in forehand on participating in the archiving system. The invention is, however, not limited to computers only, but it can be applied to a mobile device, set- top-box, gaming console, or media center device. Practically any IP- enabled device with local storage may act as an entity in the archive network.
The embodiments rely on two basic principles: fragmenting the data to be archived according to a predetermined fragmenting scheme and delivering the fragmented data to a plurality of archiving storages via peer-to-peer connections. The fragmentation is preferably carried out such that it is required to have more than one piece, but not necessarily all pieces, of the fragmented data in order to restore the original data. This provides the security advantage that one cannot restore the original content by fraudulently accessing the data in one archiving storage, but on the other hand, if the data in one archiving storage is lost for some reason, the owner of the data content can restore the original data by accessing the rest of the fragmented data. Using peer-to-peer connections provides the advantage that no centralized system is required for establishing the archiving system; the devices belonging to the archiving system just establish mutual connections with each other to share and retrieve the fragmented data.
The actual implementation of these features is carried out in the devices participating in the archiving system as an archiving software performing the required routines. Consequently, the software in each device keeps track of the other devices in the archiving system, carries out the fragmentation, retrieves the fragmented data from the other devices, when the original data needs to be restored, etc. The archiving software can be a separate software dedicated to a particular type of device, or if the device is a computer, the software may be a plug-in for a known software product, e.g. for Windows® Explorer.
Fig. 1 illustrates this example, wherein the archiving system consists of eight backup partners A - H. Each of the partners store fragmented data from four other partners. For example, the data of A is archived by D, F, G and H. The fragmenting scheme is defined such that if for example F is lost for some reason, the original data can still be recovered from D, G and H.
Now according to an embodiment, when the archiving software of A notices that F is no longer available as an archiving storage or it is not responding for a longer time, it inquires the other partners in the archiving system whether they have free memory available, which is allocated as an archiving storage. If for example B has enough free space, it can be selected as a new archiving partner. The original data is recovered from the fragmented data of D, G and H, the original data is fragmented again and the fragmented data previously stored by F is delivered to B. After that the data of A would be archived by D, G, H and B. Again, the original data would once more be recoverable even if one of the partners were lost.
There are several ways of splitting up the data to be backed up. For the sake of illustrating the aspects of the invention, a simple example of a predetermined fragmenting scheme is discussed herein more in detail. Fig. 2 illustrates this example, wherein the archiving system consists of nine backup partners, i.e. each participant has eight partners 1 - 8 to which the fragmented data can be shared. In this example, the original file is split into four parts by allocating every fourth character, i.e. a byte, into each part according to Fig. 2. Then each part is backed up to two partners, i.e. the first part is delivered to partners 1 and 5, the second part to partners 2 and 6, etc. Increasing the number of partners having overlapping data content will also increase the security. None of parts possessed by partners 1 - 8 alone makes sense without the other parts. Also if the original data is something else than plain text, the security effect is even greater. Thus, according to an embodiment, the original file is first encrypted and the encrypted file is backed up in the manner explained above, whereby the system becomes even more secure, virtually unbreakable.
When the data is to be restored, in this case one needs to have preferably at least four pieces of information either from 1 or 5, from 2 or 6, from 3 or 7 and from 4 or 8. The total number of suitable partner combinations for restoring is 24 = 16. It should be noted that this very simple example is only meant for illustrating the basic ideas underlying the embodiments. A skilled man readily appreciates that such method, having total backup overhead of 100%, is inefficient. On the other hand, each single backup location needs to allocate space only for 25% of the original data, making it more acceptable when considering the enhanced reliability in recovering the original data.
Fig. 3 illustrates a more sophisticated parity based fragmenting scheme. Also in this example the archiving system consists of nine backup partners A - I, whereby the data of A is to be fragmented and shared among all partners. The example of Fig. 3 illustrates how an eight-character string ("A_QUICK_") can be backed up. The original 8- bit representation of each character is put into a binary matrix, wherein backup partners B - I are allocated one bit of each original byte. Furthermore, an additional parity bit is calculated out of each byte of the original data, and this parity bit is allocated in the binary matrix to A. Out of the bits of each backup partner, a new byte to be backed up is calculated. In the example of Fig. 3, B backs up a byte with value 0, C with value 190, etc. For restoring purposes, A itself preferably backs up the byte formed of the parity bits, having the value of 109. When the parity byte is present, the original data can be restored even if one of the backup partners is lost.
The restoring phase of the example of Fig. 3 illustrates how to reconstruct the data when one backup partner, partner E in this case, is lost. First a new parity is calculated from the data from remaining backup partners B - D and F - I, in which calculation the partner containing the parity information (A) is excluded. Then an XOR operation is carried out with the newly calculated parity bits and original parity bits. The results represent the original bits of the lost backup partner E.
It should be noted that the original parity byte may also be stored by any other partner than the one whose data is to be backed up (A in this case). Then if the parity partner is the only backup partner, which is lost, there is no need to do anything special when restoring the data, i.e. if all parts of the fragmented data can be found, the parity data is not needed in restoring the original data.
The number of backup partners can also vary in parity based fragmenting schemes, whereby the original data has to be formatted accordingly. Fig. 4 shows the fragmenting phase of the previous example with five backup partners A - E. The original 8-bit representation of each character is again put into a binary matrix, wherein the 8-bit representation of each character is divided in two rows and backup partners B - E are allocated two bits of each original byte. In this case, an additional parity bit is calculated out of each row of the original data, and this parity bit is allocated in the binary matrix to A. Out of the bits of each backup partner, a new byte to be backed up is calculated for each four characters, i.e. 8 rows. In the example of Fig. 4, B backs up a byte with value 0, C with value 139, etc. for the first four characters. Then for the next four characters B backs up a byte with value 68, C with value 168, etc. A itself preferably backs up the bytes formed of the parity bits, i.e. the value of 228 for the first four characters and the value of 174 for the next four characters.
In addition to the number of backup partners, also the byte size of the original data can vary. Thereby, constructing the original data out of the data of one single backup partner is even harder.
It should be noted that the embodiments presented in Figs. 2 - 4 are just simplified examples of possible fragmenting schemes. A skilled man appreciates that a suitable fragmenting scheme is preferably evaluated case by case and more complicated fragmenting schemes may preferably be used. An optimal fragmenting scheme depends on many attributes, two most important ones being the proportion of allowed storage overhead and the desired security level. Furthermore, the available processing power or applicable forward error correction
(FEC) methods, for example, have to be considered.
The archiving software, besides carrying out the fragmentation and the restoration of the original data, also takes care of the data transfer to and from the other partners of the archiving system. Like the file splitting presented above, also the actual data transfer can be done in various ways.
According to an embodiment, the data transfer between the peers is carried out via a FTP (File Transfer Protocol) connection. From the communication point of view, a system wherein every backup partner has an FTP server, would probably be the simplest case. Such system, comprising the backup partners A, B and C, is disclosed in Fig. 5. When the backup client needs to backup data or recover files from the backup, it initiates an FTP session and carries out the desired actions, whereby the actual data transfer is performed in very simplified manner. This, however, sets some requirements for the client, i.e. the archiving software, for example in terms of password management. To be able to work in true p2p-like mode every client should know the correct username and password of every FTP server.
Instead of using a FTP protocol, a suitable peer-to-peer (p2p) protocol may be used for the actual data transfer. It is generally known that there exist various kinds of all-purpose p2p protocol, and additionally many dedicated p2p protocols have been developed for some specific purposes. Accordingly, one can use either an existing p2p protocol or a totally new dedicated p2p protocol can be developed for the p2p backup data transfer according to the embodiments.
According to an embodiment, the data transfer can preferably be carried out using a well-recognized peer-to-peer protocol called BitTorrent. BitTorrent protocol forms a good base for the p2p backup data transfer protocol. For a more complete disclosure of BitTorrent, a reference is made to BitTorrent website: http://www.bittorrent.com/.
The basic BitTorrent protocol is sufficient for transferring the files. However, traditional p2p mechanisms operate in pull mode, wherein a file is submitted in response to someone requesting it. Logically the
data backup process described above operates in an opposite way, i.e. in a push mode, wherein data is submitted to other backup partners without any request. In order to make the BitTorrent protocol applicable for the data backup process, some minor modifications are required in the normal p2p mechanism. Figures 6a - 6c show three alternative methods for implementing that functionality. For the sake of illustrating the embodiments, figs. 6a - 6c disclose A having only two backup partners, B and C, but naturally the number of the partners may vary and be significantly larger than two.
The first embodiment disclosed in Fig 6a is based on signalling of the new content. "A" has a file to be backed up, whereby the archiving software of A fragments the file according to a predetermined fragmenting scheme. Then A signals to B and C via some signalling mechanism that there is new data to be backed up. The signalling can be done in several ways, e.g. via a dedicated server listening for signals. When B and C have received the signalling, they will fetch the parts with normal p2p pull mechanisms.
The second embodiment disclosed in Fig 6b is based on p2p push. After the data has been split up, A pushes the new parts to B and C. For this purpose, B and C preferably comprise a server process listening for data to be pushed towards the devices B and C.
The third embodiment disclosed in Fig 6c is based on polling. B and C poll regularly A to notify whether there is new data to be backed up. When there is new data available at A, then B and C request it via normal p2p pull mechanisms.
The reconstructing of original files from the fragmented backup data can be implemented as a normal p2p pull. Thus the client A requests the backup data from the respective backup partners B and C, which submit the data in response to the request. If the data is split with explicit redundancy, like in the example of fig. 2, the data can be requested from the most suitable source.
The devices participating in the archiving system may be PC-based computers, known as such, connected to any data communication network, or they may be wireless terminals, like mobile stations or PDA devices, connected to any data communication network via a mobile communication network. In addition to these computing devices, the device participating in the archiving system may be any kind of electronic apparatus comprising the necessary memory to be used as the archiving storage, processing means for executing the archiving software, and communication means for transferring data between other devices participating in the archiving system.
Accordingly, a device participating in the archiving system comprises, as illustrated in Fig. 7, memory MEM, a user interface Ul, I/O means I/O for arranging data transmission with other devices, and one or more central processing units CPU comprising at least one processor. The memory MEM includes a non-volatile portion for storing the applications, like the archiving software, controlling the central processing unit CPU and other data to be stored and a volatile portion to be used for temporary data processing and for operating as the archiving storage.
The steps according to the embodiments can be largely implemented with program commands executed in the central processing units CPU of the device illustrated in Fig. 7. Thus, said means for carrying out the method described above are preferably implemented as computer software code. The computer software may be stored into any memory means, such as the hard disk of a PC or a CD-ROM disc, from where it can be loaded into the memory of device. The computer software can also be loaded through a network, for instance using a TCP/IP protocol stack. It is also possible to use hardware solutions or a combination of hardware and software solutions for implementing the inventive means.
As mentioned above, the archiving software can be implemented as a plug-in for a known software product. Fig. 8 illustrates an example of a user interface of such plug-in designed for Windows® Explorer. The plug-in extends Windows® Explorer so that a backup tab is introduced. In this tab the user can select a file to be backed up, add and remove
backup partners, and carry out the restoration of the backed up data. Once the operation is started, the system automatically backs up the files in a background process.
It is obvious that the present invention is not limited solely to the above- presented embodiments, but it can be modified within the scope of the appended claims.
Claims
1. A method for distributing data in a distributed file system comprising a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, the method comprising: fragmenting a data file to be archived into a plurality of subunits; characterized by carrying out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; establishing peer-to-peer connections from the apparatus carrying out the fragmentation to at least two apparatuses of the distributed file system; and distributing the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
2. The method according to claim 1 , characterized by encrypting the data file prior to the fragmentation.
3. The method according to claim 1 or 2, characterized by restoring the original data file by retrieving a necessary number of subunits from the apparatuses of the distributed file system storing the subunits as backup files, said necessary number being more than one, but less than the number of all subunits.
4. The method according to claim 3, characterized by in response to one of the apparatuses of the distributed file system storing the subunits being no longer available, selecting a new apparatus to replace said non-availabe apparatus as a backup partner; restoring the original data file by retrieving the subunits of the data file from the rest of the apparatuses of the distributed file system storing the subunits; fragmenting the data file again into subunits; and distributing the fragmented subunits of the data file to a newly selected group of apparatuses of the distributed file system to be backed up.
5. The method according to any of the preceding claims, characterized by the predetermined fragmentation scheme including a step of parity value calculation, said parity values being usable in the recovery of original data file such that less than all subunits are required.
6. The method according to any of the preceding claims, characterized by the predetermined fragmentation scheme being optimized according to at least one of the following attributes: - the proportion of allowed storage overhead;
- a desired security level;
- available processing power; or
- applicable forward error correction (FEC) methods.
7. The method according to any of the preceding claims, characterized in that said apparatuses of the distributed file system comprise servers suitable for file transfer protocol (FTP); and said peer-to-peer connections between the apparatuses are established as FTP connections.
8. The method according to any of the claims 1 - 6, characterized in that said peer-to-peer connections between the apparatuses are established as BitTorrent connections.
9. A distributed file system comprising: a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, wherein at least a first apparatus is arranged to fragment a data file to be archived into a plurality of subunits; characterized in that said first apparatus is arranged to carry out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; said first apparatus is arranged to establish peer-to-peer connections to at least two apparatuses of the distributed file system; and said first apparatus is arranged to distribute the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
10. An apparatus suitable for distributing data in a distributed file system comprising a plurality of apparatuses arranged to store backup data received from other apparatuses of the distributed file system, wherein the apparatus is arranged to fragment a data file to be archived into a plurality of subunits; characterized in that the apparatus is arranged to carry out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; the apparatus is arranged to establish peer-to-peer connections to at least two apparatuses of the distributed file system; and the apparatus is arranged to distribute the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
11. The apparatus according to claim 10, characterized in that the apparatus is arranged to encrypt the data file prior to the fragmentation.
12. The apparatus according to claim 10 or 11 , characterized in that the apparatus is arranged to restore the original data file by retrieving a necessary number of subunits from the apparatuses of the distributed file system storing the subunits as backup files, said necessary number being more than one, but less than the number of all subunits.
13. The apparatus according to claim 12, characterized in that in response to the apparatus noticing that one of the apparatuses of the distributed file system storing the subunits is no longer available, the apparatus is arranged to select a new apparatus to replace said non-availabe apparatus as a backup partner; whereby the apparatus is further arranged to restore the original data file by retrieving the subunits of the data file from the rest of the apparatuses of the distributed file system storing the subunits; fragment the data file again into subunits; and distribute the fragmented subunits of the data file to a newly selected group of apparatuses of the distributed file system to be backed up.
14. The apparatus according to any of the claims 10 - 13, characterized in that the predetermined fragmentation scheme includes a step of parity value calculation, said parity values being usable in the recovery of original data file such that less than all subunits are required.
15. The apparatus according to any of the claims 10 - 14, characterized in that said apparatuses of the distributed file system comprise servers suitable for file transfer protocol (FTP); and said peer-to-peer connections between the apparatuses are established as FTP connections.
16. The apparatus according to any of the claims 10 - 14, characterized in that said peer-to-peer connections between the apparatuses are established as BitTorrent connections.
17. A computer program product, stored on a computer readable medium and executable in a data processing device suitable for participating in a distributed file system, for distributing data in the distributed file system, the computer program product comprising: a computer program code section for fragmenting a data file to be archived into a plurality of subunits; characterized in that the computer program product further comprises: a computer program code section for carrying out the fragmentation according to a predetermined fragmentation scheme such that the recovery of original data file requires more than one, but less than all subunits; a computer program code section for establishing peer-to- peer connections from the data processing device carrying out the fragmentation to at least two apparatuses of the distributed file system; and a computer program code section for distributing the fragmented subunits of the data file to said at least two apparatuses of the distributed file system to be backed up.
18. The computer program product according to claim 17, characterized in that the computer program product further comprises: a computer program code section for restoring the original data file by retrieving a necessary number of subunits from the apparatuses of the distributed file system storing the subunits as backup files, said necessary number being more than one, but less than the number of all subunits.
19. The computer program product according to claim 17 or 18, characterized in that the computer program product further comprises: a computer program code section for monitoring the other apparatuses of the distributed file system.
20. The computer program product according to any of the claims 17 - 19, characterized in that the computer program product is implemented as a plug-in for another computer program product.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20065362 | 2006-05-29 | ||
FI20065362A FI20065362A0 (en) | 2006-05-29 | 2006-05-29 | File archive in a distributed file system architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007138166A1 true WO2007138166A1 (en) | 2007-12-06 |
Family
ID=36540065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FI2007/050304 WO2007138166A1 (en) | 2006-05-29 | 2007-05-28 | File archives in distributed file system architecture |
Country Status (2)
Country | Link |
---|---|
FI (1) | FI20065362A0 (en) |
WO (1) | WO2007138166A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2981766A1 (en) * | 2011-10-20 | 2013-04-26 | Fizians | Method for performing digital data storage in infrastructure, involves distributing pieces of data in set of storage units that is different from another set of storage units in secondary site |
CN104866394A (en) * | 2015-06-08 | 2015-08-26 | 肖选文 | Distributed file backup method and system |
CN105447166A (en) * | 2015-12-03 | 2016-03-30 | 沈文策 | Keyword based information search method and system |
WO2016080569A1 (en) * | 2014-11-19 | 2016-05-26 | 서울대학교산학협력단 | File management apparatus for restoring original file from predetermined number or more of file fragments, and file management method therefor |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153458A1 (en) * | 2002-11-08 | 2004-08-05 | Noble Brian D. | Peer-to-peer method and system for performing and managing backups in a network of nodes |
-
2006
- 2006-05-29 FI FI20065362A patent/FI20065362A0/en not_active Application Discontinuation
-
2007
- 2007-05-28 WO PCT/FI2007/050304 patent/WO2007138166A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153458A1 (en) * | 2002-11-08 | 2004-08-05 | Noble Brian D. | Peer-to-peer method and system for performing and managing backups in a network of nodes |
Non-Patent Citations (3)
Title |
---|
BATTEN C ET AL: "pStore: A Secure Peer-to-Peer Backup System", INTERNET CITATION, 8 December 2001 (2001-12-08), pages 1 - 12, XP002233336, Retrieved from the Internet <URL:http://www.cag.lcs.mit.edu/~kbarr/pstore/pStore.pdf> [retrieved on 20030304] * |
CHAN J S K ET AL: "Scheduling Algorithms for Peer-to-Peer Collaborative File Distribution", COLLABORATIVE COMPUTING: NETWORKING, APPLICATIONS AND WORKSHARING, 2005 INTERNATIONAL CONFERENCE ON SAN JOSE, CA, USA 19-21 DEC. 2005, PISCATAWAY, NJ, USA,IEEE, 19 December 2005 (2005-12-19), pages 1 - 10, XP010926534, ISBN: 1-4244-0030-9 * |
MEI A ET ALL: "Secure Dynamic Fragment and replica allocation in large-scale distributed file systems", IEEE, TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 14, no. 9, September 2003 (2003-09-01), Published by the IEEE Society, pages 885 - 896, XP002447123, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/iel5/71/27643/01233711.pdf> [retrieved on 20070816] * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2981766A1 (en) * | 2011-10-20 | 2013-04-26 | Fizians | Method for performing digital data storage in infrastructure, involves distributing pieces of data in set of storage units that is different from another set of storage units in secondary site |
WO2016080569A1 (en) * | 2014-11-19 | 2016-05-26 | 서울대학교산학협력단 | File management apparatus for restoring original file from predetermined number or more of file fragments, and file management method therefor |
CN104866394A (en) * | 2015-06-08 | 2015-08-26 | 肖选文 | Distributed file backup method and system |
CN104866394B (en) * | 2015-06-08 | 2018-03-09 | 肖选文 | A kind of distributed document backup method and system |
CN105447166A (en) * | 2015-12-03 | 2016-03-30 | 沈文策 | Keyword based information search method and system |
Also Published As
Publication number | Publication date |
---|---|
FI20065362A0 (en) | 2006-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178225B2 (en) | Data files synchronization with cloud storage service | |
US10613776B2 (en) | Appyling multiple hash functions to generate multiple masked keys in a secure slice implementation | |
US10656998B2 (en) | End-to-end secure data storage in a dispersed storage network | |
US10095441B2 (en) | End-to-end secure data retrieval in a dispersed storage network | |
US8051205B2 (en) | Peer-to-peer distributed storage | |
JP6296316B2 (en) | Distributed secure data storage and transmission of streaming media content | |
US7529834B1 (en) | Method and system for cooperatively backing up data on computers in a network | |
CA2642158C (en) | Reliable, efficient peer-to-peer storage | |
US7783600B1 (en) | Redundancy management service for peer-to-peer networks | |
US7610333B2 (en) | Method and apparatus for operating a computer network | |
JP5563220B2 (en) | Method and system for data backup | |
US8843637B2 (en) | Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes | |
US20120011200A1 (en) | Method and apparatus for data storage in a peer-to-peer network | |
US20100100587A1 (en) | Systems and methods for a data management recovery in a peer-to-peer network | |
WO2009048728A1 (en) | Smart access to a dispersed data storage network | |
JP5298200B2 (en) | Decomposition / reconstruction in data transfer storage | |
WO2006056681A1 (en) | System and method for perennial distributed back up | |
WO2007138166A1 (en) | File archives in distributed file system architecture | |
US10409688B2 (en) | System and method of using encryption algorithms in P2P encryption mode to restore integrity of data | |
JP7462922B2 (en) | Distributed storage platform and application program realized by blockchain technology and distributed storage technology | |
US20220368757A1 (en) | Managing Error Recovery Data in a Dispersed Storage Network | |
Upra et al. | Personal Cloud P2P | |
Mager et al. | DistBack: A low-overhead distributed back-up architecture with snapshot support | |
Sun et al. | Vault: Decentralized Storage Made Durable | |
US20180337998A1 (en) | Redirection of i/o requests to dispersed storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07730791 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07730791 Country of ref document: EP Kind code of ref document: A1 |