WO2011099099A1 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
WO2011099099A1
WO2011099099A1 PCT/JP2010/006171 JP2010006171W WO2011099099A1 WO 2011099099 A1 WO2011099099 A1 WO 2011099099A1 JP 2010006171 W JP2010006171 W JP 2010006171W WO 2011099099 A1 WO2011099099 A1 WO 2011099099A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
separation
marker
file
stored
Prior art date
Application number
PCT/JP2010/006171
Other languages
English (en)
French (fr)
Inventor
善昭 野口
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011553663A priority Critical patent/JP5533888B2/ja
Priority to US13/577,862 priority patent/US9021230B2/en
Publication of WO2011099099A1 publication Critical patent/WO2011099099A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present invention relates to a storage apparatus, and more particularly to a storage apparatus that eliminates redundant storage of data having the same content.
  • a content address storage system has been developed in recent years as shown in Patent Document 1.
  • data is distributed and stored in a plurality of storage devices, and the storage location where the data is stored is specified by a unique content address specified according to the content of the data.
  • predetermined data is divided into a plurality of fragments, and a fragment that becomes redundant data is further added, and the plurality of fragments are respectively stored in a plurality of storage devices.
  • the content address uses, for example, a hash value of data generated so as to be unique according to the content of the data. For this reason, if it is duplicate data, the data of the same content can be acquired by referring to the data at the same storage position. Therefore, it is not necessary to store the duplicate data separately, and duplicate recording can be eliminated and the data capacity can be reduced.
  • a tree type file system is used.
  • a content address that refers to stored data is referred to by a content address located in a higher hierarchy, and the content address is stored in a tree structure. Accordingly, the target storage data can be accessed by tracing the reference destination of the content address from the upper hierarchy to the lower hierarchy.
  • FIG. 1 shows a general structure type file.
  • a file is divided into fragments for each deduplication group (hereinafter, storage unit) and stored.
  • storage unit data strings such as archive files and communication data are attached to the data with attached information called headers and trailers, and can be separated as a single piece of data (hereinafter referred to as a separation unit).
  • an object of the present invention is to solve the decrease in data storage efficiency, which is the above-described problem.
  • a storage apparatus provides: A temporary buffer for temporarily storing data that constitutes a file of a predetermined capacity requested for writing every time it is received from outside, The data stored in the temporary buffer is immediately separated into mutually corresponding data parts and marker parts classified according to preset criteria, and the data parts and marker parts are associated with each other to store data.
  • the configuration is as follows.
  • the program which is the other form of this invention is: To an information processing apparatus having a temporary buffer for temporarily storing data that constitutes a file of a predetermined capacity requested for writing every time it is received from the outside, The data stored in the temporary buffer is immediately separated into mutually corresponding data parts and marker parts classified according to preset criteria, and the data parts and marker parts are associated with each other to store data.
  • the pre-separation data writing means for storing in the pre-separation data storage means,
  • the data stored in the pre-separation data storage means is separated into the data part and the marker part corresponding to each other in accordance with a preset standard, and the data part and the marker part are associated with each other and the data Re-separation processing means for storing in the storage means and deleting from the pre-separation data storage means; It is a program for realizing.
  • a data processing method includes: Each time data that constitutes a file of a predetermined capacity requested for writing is received from the outside, it is temporarily stored in a temporary buffer sequentially. The data stored in the temporary buffer is immediately separated into mutually corresponding data parts and marker parts classified according to preset criteria, and the data parts and marker parts are associated with each other to store data.
  • the data stored in the pre-separation data storage means is separated into the data part and the marker part corresponding to each other in accordance with a preset standard, and the data part and the marker part are associated with each other and the data Storing in the storage means and deleting from the pre-separation data storage means,
  • the configuration is as follows.
  • the present invention can improve the data storage efficiency by being configured as described above.
  • FIG. 1 is a block diagram showing a configuration of an entire system including a storage system in Embodiment 1 of the present invention.
  • 1 is a block diagram showing an outline of the configuration of a storage system in Embodiment 1 of the present invention.
  • 1 is a functional block diagram showing a configuration of a storage system in Embodiment 1 of the present invention.
  • FIG. 5 is an explanatory diagram for explaining a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 4 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing and reading processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state when a file is received in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • FIG. 5 is an explanatory diagram illustrating a state of data storage processing in the storage system disclosed in FIG. 4.
  • 5 is a flowchart showing an operation of data storage processing in the storage system disclosed in FIG. 4.
  • 5 is a flowchart showing an operation of data storage processing in the storage system disclosed in FIG. 4.
  • 2 is a functional block diagram illustrating a configuration of a storage system according to attachment 1.
  • FIG. 2 is a block diagram showing the configuration of the entire system.
  • FIG. 3 is a block diagram showing an outline of the storage system, and
  • FIG. 4 is a functional block diagram showing the configuration.
  • 5 to 12 are explanatory diagrams for explaining the operation of data storage processing in the storage system.
  • 13 to 14 are flowcharts showing the operation of the storage system.
  • the present embodiment shows a specific example of a storage device or the like described in an appendix to be described later.
  • the storage system is configured by connecting a plurality of server computers.
  • the storage system according to the present invention is not limited to being configured by a plurality of computers, and may be configured by a single computer.
  • the storage system 100 is connected via a network N to a backup system 110 that controls backup processing. Then, the backup system 110 acquires backup target data (file) stored in the backup target device 120 connected via the network N and requests the storage system 100 to store it. As a result, the storage system 100 stores the backup target data requested to be stored for backup.
  • the backup system 110 acquires backup target data (file) stored in the backup target device 120 connected via the network N and requests the storage system 100 to store it.
  • the storage system 100 stores the backup target data requested to be stored for backup.
  • the storage system 100 in the present embodiment is configured by connecting a plurality of server computers.
  • the storage system 100 includes an accelerator node 101 that is a server computer that controls storage and reproduction operations in the storage system 100 itself, and a storage node 102 that is a server computer including a storage device that stores data. Yes.
  • the number of accelerator nodes 101 and the number of storage nodes 102 are not limited to those shown in FIG. 3, and more nodes 101 and 102 may be connected.
  • the storage system 100 divides and redundantly stores the data, distributes and stores the data in a plurality of storage devices, and stores the data according to a unique content address set according to the content of the stored data. It is a content address storage system for specifying a stored location. This content address storage system will be described in detail later.
  • the storage system 100 is one system, the configuration and functions of the storage system 100 will be described. That is, the configuration and function of the storage system 100 described below may be provided in either the accelerator node 101 or the storage node 102. As shown in FIG. 3, the storage system 100 is not necessarily limited to including the accelerator node 101 and the storage node 102, and may have any configuration, for example, a single computer. May be. Furthermore, the storage system 100 is not limited to being a content address storage system.
  • FIG. 4 shows the configuration of the storage system 10 in this embodiment.
  • the storage system 10 is connected to the user application 1 corresponding to the backup target device 120 and the backup system 110 described above, and stores a file in response to a request from the user application 1. , A process of reading.
  • the storage system 10 includes a data storage unit 31 and a pre-separation data storage unit 32 which are storage devices such as a hard disk drive for storing data.
  • the storage system 10 also includes an arrival waiting buffer 30 that is a temporary storage device such as a flash memory.
  • the storage system 10 includes a write processing unit 11, a read processing unit 12, a data / marker search unit 13, and a data / marker separation unit 14 that are constructed by incorporating a program into the arithmetic device provided.
  • the storage system 10 described above includes a plurality of arithmetic devices and storage devices such as CPUs (Central Processing Unit) included in the accelerator node 101 and the storage node 102 illustrated in FIG. Has been.
  • CPUs Central Processing Unit
  • the storage system 10 in the present embodiment is a content address storage system. Therefore, the data storage unit 31 described above is a storage unit that stores data using content addresses, and the data writing unit 24, the marker writing unit 25, and the index writing unit 26 are as follows. The data is divided and distributed, the storage location is specified by the content address, and the data is stored.
  • data storage processing using content addresses in the storage system 10 will be described with reference to FIGS.
  • the file A is stored in a predetermined capacity (shown by an arrow Y2 in FIGS. 5 and 6). For example, it is divided into 64 KB) block data D. Based on the data contents of the block data D, a unique hash value H representing the data contents is calculated (arrow Y3). For example, the hash value H is calculated from the data content of the block data D using a preset hash function.
  • the block data D that has already been stored has its hash value H and the content address CA representing the storage position associated with each other and registered in an MFI (Main Fragment Index) file. Therefore, when the hash value H of the block data D calculated before storage exists in the MFI file, it can be determined that the same block data D has already been stored (arrow Y4 in FIG. 6). In this case, the content address CA associated with the hash value H in the MFI that matches the hash value H of the block data D before storage is acquired from the MFI file.
  • MFI Main Fragment Index
  • this content address CA is returned as the content address CA of the block data D requested to be written.
  • the already stored data referred to by the content address CA is used as the block data D requested to be written, and there is no need to store the block data D related to the write request.
  • the block data D is compressed, and a plurality of pieces of fragment data having a predetermined capacity as shown by an arrow Y5 in FIG. Divide into For example, as shown by symbols D1 to D9 in FIG. 5, the data is divided into nine fragment data (divided data 41). Further, even if some of the divided fragment data is missing, redundant data is generated so that the original block data can be restored and added to the divided fragment data 41. For example, three pieces of fragment data (redundant data 42) are added as indicated by reference numerals D10 to D12 in FIG. As a result, a data set 40 composed of twelve fragment data composed of nine divided data 41 and three redundant data is generated.
  • each fragment data constituting the data set generated as described above is distributed and stored in each storage area formed in the storage device. For example, as shown in FIG. 5, when 12 pieces of fragment data D1 to D12 are generated, each piece of fragment data D1 to D12 is stored in a data storage file formed in each of a plurality of storage devices. (See arrow Y6 in FIG. 6).
  • the storage system 10 generates a content address CA indicating the storage position of the fragment data D1 to D12 stored as described above, that is, the storage position of the block data D restored by the fragment data D1 to D12.
  • a content address CA indicating the storage position of the fragment data D1 to D12 stored as described above, that is, the storage position of the block data D restored by the fragment data D1 to D12.
  • a part of the hash value H short hash
  • information indicating the logical storage position Are combined to generate a content address CA.
  • this content address CA is returned to the file system in the storage system 10 (arrow Y7 in FIG. 6).
  • the storage system 10 manages identification information such as the file name of the backup target data and the content address CA in association with the file system.
  • each storage node 102 manages the content address CA of the block data D and the hash value H of the block data D by using the MFI file.
  • the content address CA is stored in the storage device of the accelerator node 101 or the storage node 102 in association with the information specifying the file, the hash value H, or the like.
  • the storage system 10 controls to read out the stored file as described above. For example, when a read request is made by designating a specific file from the user application 1 to the storage system 10, first, based on the file system, a short which is a part of the hash value corresponding to the file related to the read request. A content address CA consisting of hash and logical position information is designated. Then, it is checked whether or not the content address CA is registered in the MFI file. If it is not registered, the requested data is not stored and an error is returned.
  • the storage location specified by the content address CA is specified, and each fragment data stored in the specified storage location is read. Read as requested data.
  • the storage position of other fragment data can be specified from the same storage position. .
  • the block data D is restored from each fragment data read in response to the read request. Further, a plurality of restored block data D are concatenated, restored to a group of data such as file A, and returned.
  • the storage system 10 in this embodiment eliminates duplication of data, but has a configuration for further enhancing data storage efficiency. This configuration will be described in detail.
  • the storage system 10 in this embodiment includes the data marker separation unit 14 as described above.
  • This data / marker separation unit 14 is an actual data portion of a file, and a “data” portion whose value does not change depending on a generated time, the number of updates, and the like, a time stamp, a serial number, etc. It is separated into a “marker” portion whose value changes depending on the difference. Then, the data / marker separation unit 14 separates partial data constituting the file requested to be written from the user application 1 into a “data” portion and a “marker” portion at a predetermined timing.
  • the separation unit 14 reads out from either one according to the situation and separates into a “data” portion and a “marker” portion.
  • the basic operation of the data separation processing by the data marker separation unit 14 will be described.
  • the configuration of the file system constructed in the storage system 10 is referred to by, for example, a general UNIX (registered trademark) file system UFS1 (UFS: Unix File System) that stores data files before separation and an index.
  • UFS1 Unix File System
  • Content address file system CAFS1 CAFS: Content Address File System
  • virtual FS1 that enables indirect reference to files stored in these two file systems
  • Consists of Under the virtual FS1 (FS: File System)
  • FS File System
  • a write access to the file 1 indicates a write request from the user application 1.
  • the name of the file system and the mounting location are not limited to those described above.
  • the reference destination may be implemented in the same way as the symbolic link file, or may be implemented by calculating using a unique value such as an i-node number.
  • the virtual file system may be realized by changing the OS (Operating System) kernel or adding a kernel module, or by using a technology that creates a file system in user space represented by FUSE (Filesystem in User Space).
  • the configuration of the present invention is not limited by these techniques.
  • FIG. 7 shows a state in which part of data constituting the file 1 stored in the arrival waiting buffer 30 is separated into a “data” portion and a “marker” portion.
  • the storage system 10 sequentially receives a part of the data constituting the file 1 and stores it in the arrival waiting buffer 30, but the data marker separating unit 14 stores the data stored in the arrival waiting buffer 30.
  • the copy data is stored in the arrival waiting buffer 30, it is separated into a “data” portion and a “marker” portion.
  • Such separation processing is referred to as “inline method”.
  • part of the data constituting the file is added with index information so that the separated “data” part and “marker” part can be combined at the time of reading, and linked from the index information as shown in the lower diagram of FIG.
  • the data file and the marker file are separately stored (see FIG. 9).
  • the reference destination of the file 1 is directed to the index file.
  • the data file can be expected to have deduplication effect, and the index file and marker file cannot be expected to have much deduplication effect. For this reason, it is most efficient to store only the data file in the data storage unit 31 that stores the content file using the content address.
  • the index file and the marker file may also be stored in the data storage unit 31 using the content address.
  • the file reference from the user application 1 can be performed via the read processing unit 12.
  • the index information, data, and marker corresponding to the file 1 on the virtual file system are read from the user application 1 and combined (see FIG. 9), so that the file 1 is restored and passed to the user application 1.
  • FIG. 8 shows a process of separating some data stored in the pre-separation data storage unit 32 by the data / marker separation unit 14. Such separation processing is referred to as an “offline method”.
  • the file 1 is stored as the pre-separation data file 1 in the pre-separation data storage unit 32 as shown in the lower diagram of FIG.
  • the file 1 on the virtual file system (virtual FS) 1 does not have an entity but only a reference destination thereof. This may be implemented, for example, as a symbolic link file, or may be a method of obtaining a reference destination by calculation using the i-node number of the file.
  • the pre-separation data storage unit 32 as a reference destination is preferably a normal file system, not a content address storage system. This is because a marker is included in the file 1 at this time, and it is difficult to deduplicate such a file and data.
  • the data / marker separation unit 14 converts the partial data stored in the pre-separation data storage unit 32 into a “data” portion and a “marker” portion. And to separate. At this time, index information is added so that it can be combined in preparation for later reading.
  • the index information is separated into three files, a data file and a marker file, which are stored in the data storage unit 31 using the content address. The At this time, the reference destination of the file 1 is directed to the index file.
  • the file stored in the pre-separation data storage unit 32 may be deleted immediately, or if there is sufficient free space, leave it. You can leave it. Further, in order to deal with the shortage of free space, for example, the LRU (Least Recently Used) control may be deleted in order from the least frequently used. This is because when a file is updated or added, a file image is created again in the pre-separation data storage unit 32 and then used as a cache image when data and markers are separated again. .
  • LRU Least Recently Used
  • reading of the file 1 described above can also be performed from the pre-separation data storage unit 32.
  • reading from the user application 1 to the file 1 on the virtual file system means that the target file is in the pre-separation data storage unit 32 or the data storage unit 31 from the reference destination of the file 1. Judging.
  • the contents of the file 1 are acquired from the pre-separation data storage unit 32.
  • the index information is acquired as described above, and the data linked by the index information and the marker are combined (see FIG. 9). Will be restored to the file.
  • the multiplicity of communication may be increased in order to improve the speed when writing via a network.
  • a device for increasing the bandwidth is performed by increasing the multiplicity and performing window control.
  • a part of the file may not arrive.
  • NFS Network File System
  • NFS Network File System
  • the offset can be shifted and written.
  • the marker when data and markers are stored separately, the marker generally indicates the next marker, and therefore has a structure in which scanning is performed in order from the beginning of the file. For this reason, when a part of the data has not arrived, it is necessary to buffer and scan until the data is aligned.
  • a method of not returning a response to the arrival of data or a method of returning a retry may be used to wait for unarrived portions to be aligned.
  • the time until the completion of the storage of all data is increased, and the throughput is lowered.
  • separation of subsequent data and markers can be given up, but in such a case, the deduplication rate becomes low.
  • the means for separating the data and the marker in the offline method temporarily stores everything in the pre-division data storage unit and then performs the separation process in a lump, so writing with offsets can be processed without any problem. Additional storage capacity is required, and it takes time to complete data storage.
  • the storage system 10 has the following configuration in order to suppress the additional storage capacity while further improving the deduplication efficiency.
  • the write processing unit 11 receives a write request from the user application 1. Then, the data / marker search unit 13 temporarily stores in the arrival waiting buffer 30 (temporary buffer) a part of the data constituting the sequentially received file requested by the user application 1. At this time, the data / marker search unit 13 immediately searches whether there is a “data” portion and a “marker” portion corresponding to each other in the partial data stored in the arrival waiting buffer 30.
  • the search for the “data” part and the “marker” part corresponding to each other in the partial data constituting the file is performed in order to distinguish the “data” part from the “marker” part in advance from the predetermined data.
  • a reference is set, and a location corresponding to the reference is specified as a “data” portion and a “marker” portion corresponding to each other. For example, if a specific data format for determining the “marker” portion is set in advance and this data format portion exists in the search range, the portion is determined to be the “marker” portion. To do. Based on the data content of the “marker” portion, the “data” portion associated with the “marker” portion is determined as the “data” portion and the “marker” portion corresponding to each other.
  • the “data” portion is, for example, data corresponding to the data content of the file, that is, data that does not change depending on the storage status, such as a time stamp.
  • the “marker” portion is data that changes according to the situation when the file is saved, for example, data whose value changes depending on the time or the number of updates, such as a time stamp or a passing plate.
  • the data marker search unit 13 searches for the “data” portion and the “marker” portion corresponding to each other, the data / marker search portion 13 passes the data in this range to the data marker separation portion 14. At this time, the data in the range passed to the data / marker separation unit 14 is deleted from the arrival waiting buffer 30.
  • the data marker separation unit 14 Upon receiving this, the data marker separation unit 14 immediately separates the data in the range passed from the data marker separation unit 14 into a “data” portion and a “marker” portion. At this time, as described above, the “data” portion and the “marker” portion are separated based on a preset reference. Then, as described above, in the data writing unit 24, the marker writing unit 25, and the index writing unit 26, the “data” portion, the “marker” portion, and the “index” that links them are used as the content address. And stored in the data storage unit 31 in a distributed manner.
  • the storage system 10 in this embodiment has the following data writing function (data writing means) based on the inline method.
  • data writing function data writing means
  • a part of data constituting the file 1 requested to be written by the user application 1 is sequentially stored in the arrival waiting buffer 30 every time it is received.
  • data that is classified into a data part and a marker part corresponding to each other in accordance with a preset criterion exists in the partial data stored in the arrival waiting buffer 30, sequentially, these are separated.
  • the data is stored in the data storage unit 31 and is deleted from the arrival waiting buffer 30. That is, data that cannot be separated into the “data” portion and the “marker” portion corresponding to each other among the partial data constituting the file 1 requested to be written remains in the arrival waiting buffer 30.
  • the data marker search unit 13 in the present embodiment receives the partial data constituting the file 1 and determines that there is no more space in the arrival waiting buffer 30 for storing the partial data
  • the data marker search unit 13 All the partial data stored in the waiting buffer 30 is transferred to the pre-separation data writing unit 21. Further, the partial data received from the user application 1 is sequentially transferred to the pre-separation data writing unit 21.
  • the pre-separation data writing unit 21 stores the data passed from the data marker searching unit 13 in the pre-separation data storage unit 32. That is, the temporary data constituting the file 1 that cannot be separated stored in the arrival waiting buffer 30 and the remaining partial data constituting the file 1 received from the user application 1 after the arrival waiting buffer 30 runs out of free space Are stored in the pre-separation data storage unit 32.
  • the pre-separation data writing unit 21 stores “effective length information” indicating the amount of partial data stored in the pre-separation data storage unit 32 from the arrival waiting buffer 30 in the storage system 10. Store in the device. For example, a part stored in the pre-separation data storage unit 32 by subtracting the offset on the file corresponding to the head from the offset on the file 1 corresponding to the tail of the temporary data stored in the waiting buffer 30 Store as effective length information of data. Further, the pre-separation data writing unit 21 receives the effective amount of the partial data constituting the file 1 received from the user application 1 and stored in the pre-separation data storage unit 32, that is, the offset on the file 1 as well. The effective length information is updated by adding to the length information.
  • the reprocessing unit 23 receives the pre-separation data after the file processing of the file 1 requested to be written by the user application 1 is closed, that is, after the write processing unit 11 receives all the partial data constituting the file 1.
  • the separation process of the data stored in the storage unit 32 is started. Specifically, the reprocessing unit 23 passes the data stored in the pre-separation data storage unit 32 to the data / marker separation unit 14. At this time, the reprocessing unit 23 deletes the data passed to the data / marker separation unit 14 from the pre-separation data storage unit 32.
  • the data / marker separation unit 14 converts the data stored in the pre-separation data storage unit 32 into a “data” portion and a “marker” portion corresponding to each other according to a preset criterion. And stored in the data storage unit 31 using the content address.
  • the reprocessing unit 23 separates the data stored in the pre-separation data storage unit 32 by the data / marker separation unit 14, and then the value of the separated data amount is stored in the stored effective length. Subtract from information.
  • the storage system 10 has the following data writing function (pre-separation data writing means, re-separation processing means) based on the following offline method.
  • the data in the buffer 30 is stored in the pre-separation data storage unit 32, and the remaining part of the data constituting the file received from the user application 1 is also stored in the arrival waiting buffer.
  • the data is stored in the pre-separation data storage 32 sequentially without being stored in the data 30.
  • the file 1 requested to be written by the user application 1 is closed, the data stored in the pre-separation data storage unit 32 is separated into the “data” part and the “marker” part corresponding to each other.
  • the data address is stored in the data storage unit 31 using the content address.
  • the data marker searching unit 13 described above is configured so that when the “effective length information” becomes “0”, that is, after all the partial data stored in the pre-separation data storage unit 32 is separated, Again, partial data of the file related to the write request received from the user application 1 is sequentially stored in the arrival waiting buffer 30. Then, as described above, separation processing by the inline method is executed until the arrival waiting buffer 30 is full.
  • the read processing unit 12 (data reading unit) receives a file read request from the user application 1
  • the target file is stored in either the pre-separation data storage unit 32 or the data storage unit 31.
  • the temporary data constituting the file is read from the stored storage unit.
  • the data is stored in the pre-separation data storage unit 32
  • the data is read via the pre-separation data reading unit 22.
  • the “data” portion and the “marker” are read from the data storage unit 31 via the index reading unit 27, the data reading unit 28, and the marker reading unit 29. "Portion is read and combined by the data / marker combining unit 15 to restore and read the file.
  • the data marker searching unit 13 performs the processing in an inline manner because the effective length of the reference destination 2 is “0” (step S1: No). Specifically, the empty space in the arrival waiting buffer is confirmed. If there is an empty space (step S2: Yes), the partial data of the file 1 received from the user application 1 is sequentially stored in the arrival waiting buffer 30 ( Step S3).
  • the data marker search unit 13 reads the separable data.
  • the separation range is sequentially designated and transferred to the data / marker separation unit 14 and deleted from the arrival waiting buffer 30 (step S5).
  • a plurality of separable data are found, they are all transferred to the data marker separation unit 14 and deleted from the arrival waiting buffer 30.
  • the data marker separating unit 14 sequentially separates the data stored in the arrival waiting buffer 30 passed from the data marker searching unit 13 into a “data” portion and a “marker” portion corresponding to each other. . Then, as shown in FIGS. 11 and 12, the “data” portion and the “marker” portion are linked with the index data in the data storage unit 31 and stored using the content address. At this time, the reference destination of the file 1 is directed to the index file.
  • step S2 data that cannot be separated remains among the partial data constituting the file 1 in the arrival waiting buffer 30, and then the arrival waiting buffer 30 is not empty (step S2: No). ).
  • the data marker search unit 13 creates the pre-separation data file 1 in the pre-separation data storage unit 32, and “reference destination 2” indicates this ( Step S6).
  • all the data in the arrival waiting buffer 30 is written to the pre-separation data file 1 in the pre-separation data storage unit 32.
  • step S1: No the operation is performed by the offline method.
  • step S1: No the storage system 10 converts the partial data constituting the file received from the user application 1 into the pre-separation data file in the pre-separation data storage unit 32. 1 is written in addition (step S8).
  • the “reference destination 2 effective length” is updated.
  • a part of data that has not arrived which is a corresponding missing part, arrives between the data received so far on the file, it is treated as a file update, and the effective length is not updated.
  • step S11: Yes valid data is stored in “reference destination 2”, and “reference destination 2 effective length” is not “0”
  • step S12: Yes it is checked whether there is data that can be separated from the data in the data file 1 before separation.
  • the reprocessing unit 23 converts the data of the separation unit from the pre-separation data file 1 stored in the pre-separation data storage unit 32 to the data marker separation unit 14. And the corresponding part is deleted from the reference destination 2 (step S13).
  • the data / marker separation unit 14 separates the passed data into a “data” portion and a “marker” portion corresponding to each other as described above. Then, as shown in FIG. 11 and FIG. 12, the data storage unit 31 is linked with index data and stored using a content address. At this time, the reference destination of the file 1 is directed to the index file.
  • the reprocessing unit 23 subtracts the “reference destination 2 effective length” by the separated amount (step S14). In this way, reprocessing is performed until there is no separation, that is, until “reference destination 2 effective length” becomes “0”. As a result, the file is finally stored in the data storage unit 31 using the content address.
  • the “marker” portion is extracted from the file and stored separately in the “data” portion and the “marker” portion. Duplication of stored data can be eliminated.
  • the separation of the “data” part and the “marker” part by the inline method and the offline method is switched when the buffer amount exceeds a certain amount, so that the storage capacity can be suppressed while increasing the throughput. it can.
  • the data stored in the temporary buffer 51 is immediately separated into mutually corresponding data parts and marker parts classified according to preset criteria, and the data parts are associated with the marker parts and stored.
  • Data writing means 52 for storing in means 61 and deleting from said temporary buffer;
  • the pre-separation data writing means 53 for storing in the pre-separation data storage means 62 the data that cannot be separated into the data part and the marker part corresponding to each other;
  • the data stored in the pre-separation data storage means 62 is separated into the data part and the marker part corresponding to each other according to a preset criterion, and the data part and the marker part are associated with each other.
  • Re-separation processing means 54 for storing in the data storage means 61 and deleting from the pre-separation data storage means 62, Storage device 50.
  • the pre-separation data writing means stores the data stored in the temporary buffer in the pre-separation data storage means when the temporary buffer is full, and receives the data received from the outside, Each time it is received, it is sequentially stored in the pre-separation data storage means. Storage device.
  • the storage device (Appendix 4) The storage device according to any one of appendices 1 to 3,
  • the pre-separation data writing means stores effective length information indicating the data amount of the data stored in the pre-separation data storage means. Storage device.
  • the storage device according to any one of appendices 1 to 6, In response to a request for reading the file from the outside, the data constituting the file includes data reading means for reading from the data storage means in which the data is stored or the data storage means before separation. Storage device.
  • the storage device according to any one of appendices 1 to 7,
  • the data portion is data corresponding to the data content of the file,
  • the marker part is data that changes according to the situation when the file is saved. Storage device.
  • Data writing means for storing and deleting from the temporary buffer;
  • the pre-separation data writing means for storing in the pre-separation data storage means,
  • the data stored in the pre-separation data storage means is separated into the data part and the marker part corresponding to each other in accordance with a preset standard, and the data part and the marker part are associated with each other and the data Re-separation processing means for storing in the storage means and deleting from the pre-separation data storage means;
  • the pre-separation data writing means stores the data stored in the temporary buffer in the pre-separation data storage means when the temporary buffer is full, and receives the data received from the outside, Each time it is received, it is sequentially stored in the pre-separation data storage means. program.
  • the data stored in the pre-separation data storage means is separated into the data part and the marker part corresponding to each other in accordance with a preset standard, and the data part and the marker part are associated with each other and the data Storing in the storage means and deleting from the pre-separation data storage means; Data processing method.
  • Storage System 11 Write Processing Unit 12 Read Processing Unit 13 Data Marker Search Unit 14 Data Marker Separation Unit 15 Data Marker Combining Unit 21 Pre-separation Data Writing Unit 22 Pre-separation Data Reading Unit 23 Reprocessing Unit 24 Data Writing Loading unit 25 Marker writing unit 26 Index writing unit 27 Index reading unit 28 Data reading unit 29 Marker reading unit 30 Arrival waiting buffer 31 Data storage unit 32 Pre-separation data storage unit 40 Data set 41 Division data 42 Redundant data 50 Storage device 51 Temporary buffer 52 Data writing means 53 Pre-separation data writing means 54 Re-separation processing means 61 Data storage means 62 Pre-separation data storage means 100 Storage system 101 Accelerator node 102 Storage node 110 Backup system 12 Backup target device

Abstract

 書き込み要求されたファイルを構成するデータを、外部から受信するごとに順次格納する一時バッファと、一時バッファに格納されたデータを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、関連付けてデータ格納手段に記憶すると共に、一時バッファから削除するデータ書込手段と、一時バッファに格納された上記データのうち、データ部分とマーカ部分とに分離できないデータを、分離前データ格納手段に格納する分離前データ書込手段と、分離前データ格納手段に格納されたデータを、予め設定された基準に従って、データ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、分離前データ格納手段から削除する再分離処理手段と、を備える。

Description

ストレージ装置
 本発明は、ストレージ装置にかかり、特に、同一内容のデータの重複記憶を排除するストレージ装置に関する。
 近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
 このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
 そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
 また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される例えばデータのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
 また、コンテンツアドレスストレージシステムでは、ツリー型ファイルシステムが用いられている。これは、格納したデータを参照するコンテンツアドレス自体を、さらに上位階層に位置するコンテンツアドレスにて参照し、コンテンツアドレスをツリー構造に形成して格納する、というものである。これにより、上位階層から下位階層に向かって、コンテンツアドレスの参照先を辿っていくことで、目的の格納データにアクセスすることができる。
 ここで、図1を参照して、ツリー型ファイルシステムに構造型ファイルを格納するときのファイルの特徴について説明する。図1は、一般的な構造型ファイルの様子を示している。ツリー型ファイルシステムを持つコンテンツアドレスストレージシステムでは、図1の上図に示すように、ファイルを重複排除するまとまり(以下、格納単位)毎にフラグメントに分割して格納する。そして、例えば、アーカイブファイルや通信データのようなデータ列は、データにヘッダやトレーラと言われる付属情報が付いており、ひとまとまりのデータとして分離できる(以下、分離単位)。
特開2005-235171号公報
 しかしながら、上述したファイルを構成するデータの一部であるヘッダやトレーラの中に、タイムスタンプや通番などのように時間や回数の違いによって値が変化するものがあると、重複排除の妨げとなる。ここで、図1の下図に示すように、重複排除の妨げとなる部分を特に「マーカ」と示し、時間や回数を経過しても値が変わらない部分を「データ」と示す。そして、図1の上図に示すファイル1の構造を、「マーカ」と「データ」とを用いて下図のように示す。この図に示すように、ファイルの格納単位に「マーカ」が含まれると、同じデータの2回目以降の書き込みであっても、格納単位全体におけるデータ内容が完全に同一とはならないため、データの重複排除ができず、データの格納効率が低下する、という問題が生じる。
 このため、本発明の目的は、上述した課題である、データ格納効率の低下を解決することにある。
 かかる目的を達成するため本発明の一形態であるストレージ装置は、
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファと、
 上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除するデータ書込手段と、
 上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納する分離前データ書込手段と、
 上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する再分離処理手段と、を備えた、
という構成をとる。
 また、本発明の他の形態であるプログラムは、
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
 上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除するデータ書込手段と、
 上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納する分離前データ書込手段と、
 上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する再分離処理手段と、
を実現させるためのプログラムである。
 また、本発明の他の形態であるデータ処理方法は、
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
 上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除し、
 上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納し、
 上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する、
という構成をとる。
 本発明は、以上のように構成されることにより、データ格納効率の向上を図ることができる。
ファイルのデータ構造の一例を示す図である。 本発明の実施形態1におけるストレージシステムを含むシステム全体の構成を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成の概略を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成を示す機能ブロック図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理及び読込処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるファイルの受信時の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。 図4に開示したストレージシステムにおけるデータ記憶処理の動作を示すフローチャートである。 図4に開示したストレージシステムにおけるデータ記憶処理の動作を示すフローチャートである。 付記1におけるストレージシステムの構成を示す機能ブロック図である。
 <実施形態1>
 本発明の第1の実施形態を、図2乃至図14を参照して説明する。図2は、システム全体の構成を示すブロック図である。図3は、ストレージシステムの概略を示すブロック図であり、図4は、構成を示す機能ブロック図である。図5乃至図12は、ストレージシステムにおけるデータ記憶処理の動作を説明するための説明図である。図13乃至図14は、ストレージシステムの動作を示すフローチャートである。
 ここで、本実施形態は、後述する付記に記載のストレージ装置等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
 [構成]
 図2に示すように、本発明におけるストレージシステム100は、ネットワークNを介してバックアップ処理を制御するバックアップシステム110に接続している。そして、バックアップシステム110は、ネットワークNを介して接続されたバックアップ対象装置120に格納されているバックアップ対象データ(ファイル)を取得し、ストレージシステム100に対して記憶するよう要求する。これにより、ストレージシステム100は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
 そして、図3に示すように、本実施形態におけるストレージシステム100は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム100は、ストレージシステム100自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード101と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード102と、を備えている。なお、アクセラレータノード101の数とストレージノード102の数は、図3に示したものに限定されず、さらに多くの各ノード101,102が接続されて構成されていてもよい。
 さらに、本実施形態におけるストレージシステム100は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
 なお、以下では、ストレージシステム100が1つのシステムであるとして、当該ストレージシステム100が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム100が有する構成及び機能は、アクセラレータノード101あるいはストレージノード102のいずれに備えられていてもよい。なお、ストレージシステム100は、図3に示すように、必ずしもアクセラレータノード101とストレージノード102とを備えていることに限定されず、いかなる構成であってもよく、例えば、1台のコンピュータにて構成されていてもよい。さらには、ストレージシステム100は、コンテンツアドレスストレージシステムであることにも限定されない。
 図4に、本実施形態におけるストレージシステム10の構成を示す。この図に示すように、ストレージシステム10は、上述したバックアップ対象装置120やバックアップシステム110に該当するユーザアプリケーション1に接続されており、このユーザアプリケーション1からの要求に応じて、ファイルを記憶したり、読み出す処理を行うものである。
 そして、ストレージシステム10は、データを記憶するハードディスクドライブなどの記憶装置である、データ格納部31と、分離前データ格納部32と、を備えている。また、ストレージシステム10は、フラッシュメモリなどの一時的な記憶装置である到着待ちバッファ30を備えている。さらに、ストレージシステム10は、装備された演算装置にプログラムが組み込まれることによって構築された、書込処理部11と、読込処理部12と、データ・マーカ検索部13と、データ・マーカ分離部14と、データ・マーカ結合部と、分離前データ書込部21と、分離前データ読込部22と、再処理部23と、データ書込部24と、マーカ書込部25と、インデックス書込部26と、インデックス読込部27と、データ読込部28と、マーカ読込部29と、を備えている。
 なお、実際には、上述したストレージシステム10が備える構成は、図3に示したアクセラレータノード101及びストレージノード102が備えているCPU(Central Processing Unit)などの複数の演算装置や記憶装置にて構成されている。
 ここで、上述したように、本実施形態におけるストレージシステム10は、コンテンツアドレスストレージシステムである。このため、上述したデータ格納部31は、コンテンツアドレスを利用してデータが格納される記憶部であり、データ書込部24、マーカ書込部25、インデックス書込部26は、以下のように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、データを格納する。以下、ストレージシステム10にてコンテンツアドレスを利用したデータ記憶処理について、図5乃至図6を参照して説明する。
 まず、図5に示すように、ユーザアプリケーション1から書き込み要求されたファイルAの入力を受けると(矢印Y1)、図5及び図6の矢印Y2に示すように、当該ファイルAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Hを算出する(矢印Y3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
 続いて、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図6の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたブロックデータDのコンテンツアドレスCAとして返却する。これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、書き込み要求されたブロックデータDとして使用されることとなり、当該書き込み要求にかかるブロックデータDを記憶する必要がなくなる。
 また、書き込み要求にかかるブロックデータDがまだ記憶されていないと判断された場合には、かかるブロックデータDを圧縮して、図6の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図5の符号D1~D9に示すように、9つのフラグメントデータ(分割データ41)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ41に追加する。例えば、図5の符号D10~D12に示すように、3つのフラグメントデータ(冗長データ42)を追加する。これにより、9つの分割データ41と、3つの冗長データとにより構成される12個のフラグメントデータからなるデータセット40を生成する。
 続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図5に示すように、12個のフラグメントデータD1~D12を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータD1~D12を1つずつそれぞれ格納する(図6の矢印Y6参照)。
 続いて、ストレージシステム10は、上述したように格納したフラグメントデータD1~D12の格納位置、つまり、当該フラグメントデータD1~D12にて復元されるブロックデータDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム10内のファイルシステムに返却する(図6の矢印Y7)。すると、ストレージシステム10は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理する。
 また、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード102がMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード101やストレージノード102の記憶装置に格納される。
 さらに、ストレージシステム10は、上述したように格納したファイルを読み出す制御を行う。例えば、ユーザアプリケーション1からストレージシステム10に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
 一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
 そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して返却する。
 以上のようにして、本実施形態におけるストレージシステム10はデータの重複を排除しているが、さらにデータ格納効率を高めるための構成をとなっている。かかる構成について詳述する。
 まず、本実施形態におけるストレージシステム10は、上述したようにデータ・マーカ分離部14を備えている。このデータ・マーカ分離部14は、ファイルの実データ部分であり生成された時間や更新回数などによっても値が変化しない「データ」部分と、タイムスタンプや通番などのように時間や更新回数などの違いによって値が変化する「マーカ」部分と、に分離する。そして、データ・マーカ分離部14は、ユーザアプリケーション1から書き込み要求されたファイルを構成する一部データを、所定のタイミングで「データ」部分と「マーカ」部分とに分離する。このとき、後述するように、書き込み要求されたファイルを構成するデータであり順次送信される一部データは、到着待ちバッファ30、あるいは、分離前データ格納部32に格納されるが、データ・マーカ分離部14は、状況に応じて、いずれか一方から読み出して、「データ」部分と「マーカ」部分とに分離する。ここで、データ・マーカ分離部14によるデータ分離処理の基本的な動作を説明する。
 なお、ここでは、ストレージシステム10に構築されたファイルシステムの構成は、例えば、分離前データファイルを格納する一般的なUNIX(登録商標)ファイルシステムUFS1(UFS:Unix File System)と、インデックスで参照可能なように分離されたデータとマーカを格納するコンテンツアドレスファイルシステムCAFS1(CAFS:Content Address File System)と、これらふたつのファイルシステムに格納されたファイルを間接的に参照可能とする仮想FS1と、から構成される。そして、仮想FS1(FS:File System)の配下には、ツリー型ファイルシステムがあり、例えば、ファイル1に対する書き込みのアクセスは、ユーザアプリケーション1からの書き込み要求のことを示している。
 但し、上述したファイルシステムの名称や、マウントしている場所などは、上述したものに限定されない。また、参照先をシンボリックリンクファイルと同様の実装としてもよく、i-node番号のような一意な値を利用し、計算で求めるように実装してもよい。さらに、仮想ファイルシステムは、OS(Operating System)カーネルの変更やカーネルモジュールの追加によって実現しても良いし、FUSE(Filesystem in Userspace)に代表されるユーザ空間でファイルシステムを作成する技術を用いてもよく、これら技術によって本発明の構成が限定されるものではない。
 図7は、到着待ちバッファ30に格納されたファイル1を構成する一部データを、「データ」部分と「マーカ」部分とに分離するときの様子を示している。この場合に、まず、ストレージシステム10は、ファイル1を構成する一部データを順次受信し、到着待ちバッファ30に格納するが、データ・マーカ分離部14は、到着待ちバッファ30に格納された一部データを、当該到着待ちバッファ30に格納されるとすぐに、「データ」部分と「マーカ」部分とに分離する。なお、かかる分離処理を、「インライン方式」と呼ぶこととする。
 そして、ファイルを構成する一部データは、分離した「データ」部分と「マーカ」部分とを読み込み時に結合できるよう、インデックス情報を付け加え、図7の下図に示すように、インデックス情報からリンクされたデータファイルとマーカファイルの3つのファイルに分離して格納される(図9参照)。そして、ファイル1の参照先は、インデックスファイルに向けられる。
 なお、上記3つのファイルのうち、データファイルは重複排除の効果が期待でき、インデックスファイルやマーカファイルは重複排除の効果があまり期待できない。このため、データファイルのみをコンテンツアドレスを利用して格納するデータ格納部31に格納するのが最も効率的である。但し、インデックスファイルやマーカファイルもコンテンツアドレスを利用してデータ格納部31に格納してもよい。
 そして、ユーザアプリケーション1からのファイルの参照は、読込処理部12を経由して行うことができる。例えば、ユーザアプリケーション1から仮想ファイルシステム上のファイル1に対応するインデックス情報と、データと、マーカとを読み出して結合することによって(図9参照)、ファイル1を復元し、ユーザアプリケーション1へ渡す。
 次に、図8は、データ・マーカ分離部14にて、分離前データ格納部32に格納された一部データを分離する処理を示している。なお、かかる分離処理を、「オフライン方式」と呼ぶこととする。
 この場合には、まず、ユーザアプリケーション1からファイル1の書き込み要求があると、当該ファイル1が、図8の下図に示すように、分離前データ格納部32内に分離前データファイル1として格納される。このとき、図8に示すように、仮想ファイルシステム(仮想FS)1上のファイル1は実体を持たず、その参照先だけを持っている。これは、例えば、シンボリックリンクファイルのような実装としても良いし、ファイルのi-node番号を利用し計算によって参照先を求める方式をとってもよい。なお、参照先となっている分離前データ格納部32は、コンテンツアドレスストレージシステムではなく、通常のファイルシステムが望ましい。なぜなら、この時点ではファイル1にマーカが含まれており、そのようなファイルおよびデータは、重複排除が困難であるからである。
 そして、ファイル1がすべて書き込まれ、クローズされたことを契機に、データ・マーカ分離部14にて、分離前データ格納部32に格納された一部データを、「データ」部分と「マーカ」部分とに分離する。このとき、後の読み込みに備え、結合できるようにインデックス情報を付け加える。分離がすべて終了と、上述した図7や図9に示すように、インデックス情報からリンクされたデータファイルとマーカファイルの3つのファイルに分離され、データ格納部31にコンテンツアドレスを利用して格納される。このとき、ファイル1の参照先は、インデックスファイルに向けられる。
 なお、上述したようにファイル1をデータ格納部31に格納した後に、分離前データ格納部32に格納されているファイルを、直ちに消しても良いし、十分な空き容量があるならば、残しておいても良い。そしてさらには、空き容量の不足に対処するために、例えば、LRU(Least Recently Used)制御で使用頻度の低いものから順に消しても良い。これは、ファイルの更新や追加を行うときは、再度、分離前データ格納部32にファイルイメージを作成したのち、再度、データとマーカの分離を行うときのキャッシュイメージとして用いることができるためである。
 また、上述したファイル1の読み込みは、分離前データ格納部32からも可能である。例えば、ユーザアプリケーション1から仮想ファイルシステム上のファイル1に対する読み込みが行われるとは、ファイル1の参照先より、対象のファイルが、分離前データ格納部32にあるか、データ格納部31にあるかを判断する。そして、対象のファイルが分離前データ格納部32にあるときは、当該分離前データ格納部32からファイル1の内容を取得する。また、対象のファイルがデータ格納部31にあるときは、上述したようにインデックス情報を取得し、当該インデックス情報にてリンクされているデータとマーカとを結合することによって(図9参照)、元のファイルに復元される。
 ここで、上述したファイル1の書き込み方法においては、ネットワークを経由して書き込みを行うときの速度を向上させるために、通信の多重度を増やすことがある。特にレイテンシが長いときは、多重度を増やしウインドウ制御を行うことで帯域をかせぐ工夫が行われる。このようなとき、図10に示すように、ファイルの一部が未到着となることがある。例えば、LinuxやSolarisなどUNIX系OSで多く実装されているNFS(Network File System)では、ファイルオフセットを示し、独立してデータが到着する方式をとり、帯域をかせいでいる。一般的なファイルシステムの場合、オフセットをずらし、書き込むことができる。
 しかし、データとマーカを分離し格納する場合は、一般に、マーカは次のマーカを示しているため、ファイルの先頭から順に走査する構造を持つ。このため、データの一部が未到着のときは、バッファリングし、データがそろうまで走査をペンディングする必要がある。
 このとき、データ到着に対する応答を返却しない方法や、リトライを返却する方法で、未到着部分がそろうのを待つ方法が考えられる。ところが、インライン方式でデータとマーカを分離する場合には、全データ格納完了までの時間が伸びてしまい、スループットが低下する。一方で、スループットの低下を避けるために、後続のデータとマーカの分離をあきらめることができるが、かかる場合には重複排除率が低くなる。
 さらに、オフライン方式でデータとマーカを分離する手段では、一旦、すべてを分割前データ格納部に格納し、後に一括して分離処理を行うため、オフセットをずらした書き込みは問題なく処理可能であるが、追加の記憶容量が必要となり、また、データ格納完了までの時間がかかる。
 上述したようなことから、本実施形態におけるストレージシステム10では、さらに、重複排除効率を高めつつ、追加の記憶容量を抑制すべく、以下のような構成をとっている。
 まず、書込処理部11は、ユーザアプリケーション1からの書き込みの要求を受ける。そして、データ・マーカ検索部13は、ユーザアプリケーション1から書き込み要求され順次受信したファイルを構成する一部データを、到着待ちバッファ30(一時バッファ)に一時的に格納する。このとき、データ・マーカ検索部13は、直ちに到着待ちバッファ30に格納された一部データ内に、相互に対応する「データ」部分と「マーカ」部分とが存在するか否かを検索する。
 なお、ファイルを構成する一部データに対する相互に対応する「データ」部分と「マーカ」部分との検索は、所定のデータ内から、予め「データ」部分と「マーカ」部分とを区別するための基準が設定されており、かかる基準に対応する箇所を、相互に対応する「データ」部分と「マーカ」部分として特定する。例えば、予め「マーカ」部分であると判断する特定のデータ形式を設定しておき、このデータ形式部分が検索範囲内に存在していた場合には、かかる部分を「マーカ」部分であると判断する。そして、かかる「マーカ」部分のデータ内容に基づいて、当該「マーカ」部分と関連付けられている「データ」部分を、相互に対応する「データ」部分と「マーカ」部分として判断する。
 ここで、上記「データ」部分とは、例えば、ファイルのデータ内容に応じたデータ、つまり、タイムスタンプなどの保存時の状況によっても変化しないデータである。また、「マーカ」部分は、ファイルの保存時の状況に応じて変化するデータ、例えば、タイムスタンプや通板などのように時間や更新回数などの違いによって値が変化するデータである。
 そして、データ・マーカ検索部13は、相互に対応する「データ」部分と「マーカ」部分とを検索すると、かかる範囲のデータを、データ・マーカ分離部14に渡す。このとき、データ・マーカ分離部14に渡した範囲のデータを、到着待ちバッファ30から削除する。
 これを受けたデータ・マーカ分離部14は、データ・マーカ分離部14から渡された範囲のデータを、直ちに「データ」部分と「マーカ」部分とに分離する。このとき、上述したように、予め設定された基準に基づいて、「データ」部分と「マーカ」部分とに分離する。そして、上述したように、データ書込部24、マーカ書込部25、インデックス書込部26にて、「データ」部分、「マーカ」部分、これらをリンクする「インデックス」を、コンテンツアドレスを利用してデータ格納部31に分散して格納する。
 以上をまとめると、本実施形態におけるストレージシステム10は、以下のインライン方式によるデータ書込機能(データ書込手段)を有する。まず、ユーザアプリケーション1から書き込み要求されたファイル1を構成する一部データを、受信するごとに順次、到着待ちバッファ30に格納する。これと同時に、順次、到着待ちバッファ30に格納された一部データ内に、予め設定された基準に従って相互に対応するデータ部分とマーカ部分とに分類されるデータが存在すると、これらを分離してデータ格納部31に格納すると共に、到着待ちバッファ30から削除する。つまり、到着待ちバッファ30には、書き込み要求されたファイル1を構成する一部データのうち、相互に対応する「データ」部分と「マーカ」部分とに分離できないデータが残ることとなる。
 また、本実施形態におけるデータ・マーカ検索部13は、ファイル1を構成する一部データを受け付けたときに、到着待ちバッファ30にこれ以上一部データを記憶する空きがないと判断すると、当該到着待ちバッファ30に格納されていた一部データを全て分離前データ書込部21に渡す。また、ユーザアプリケーション1から受信した一部データを、順次、分離前データ書込部21に渡す。
 そして、分離前データ書込部21(分離前データ書込手段)は、データ・マーカ検索部13から渡されたデータを、分離前データ格納部32に格納する。つまり、到着待ちバッファ30に格納されていた分離できないファイル1を構成する一時データ、及び、到着待ちバッファ30に空き容量が無くなった後にユーザアプリケーション1から受け付けたファイル1を構成する残りの一部データを、分離前データ格納部32に格納する。
 ここで、分離前データ書込部21は、到着待ちバッファ30から分離前データ格納部32に格納した一部データのデータ量を表す「有効長情報」を、ストレージシステム10に装備されている記憶装置に記憶する。例えば、到着待ちバッファ30内に格納されていた一時データの最後尾に該当するファイル1上のオフセットから先頭に該当するファイル上のオフセットを減算して、分離前データ格納部32に格納した一部データの有効長情報として記憶する。さらに、分離前データ書込部21は、ユーザアプリケーション1から受信して分離前データ格納部32に格納するファイル1を構成する一部データのデータ量、つまり、ファイル上1のオフセットも、上記有効長情報に加算して当該有効長情報を更新する。
 また、再処理部23は、ユーザアプリケーション1から書き込み要求されたファイル1のファイルクローズを契機に、つまり、ファイル1を構成する一部データを全て書込処理部11が受信した後に、分離前データ格納部32に格納されているデータの分離処理を開始する。具体的に、再処理部23は、分離前データ格納部32に格納されているデータをデータ・マーカ分離部14に渡す。このとき、再処理部23は、データ・マーカ分離部14に渡したデータを、分離前データ格納部32から削除する。そして、データ・マーカ分離部14は、上述したように、分離前データ格納部32に格納されているデータを、予め設定された基準に従って、相互に対応する「データ」部分と「マーカ」部分とに分離して、データ格納部31にコンテンツアドレスを利用して格納する。
 このとき、再処理部23は、データ・マーカ分離部14にて分離前データ格納部32に格納されているデータを分離し、その後、当該分離したデータ量の値を、記憶されている有効長情報から減算する。
 以上をまとめると、本実施形態におけるストレージシステム10は、以下のオフライン方式によるデータ書込機能(分離前データ書込手段、再分離処理手段)を有する。まず、到着待ちバッファ30の空きが無くなると、当該バッファ30内のデータを分離前データ格納部32に格納すると共に、ユーザアプリケーション1から受信したファイルを構成する一部データの残りも、到着待ちバッファ30に格納することなく、順次、分離前データ格納部32に格納する。そして、ユーザアプリケーション1から書き込み要求されたファイル1のファイルクローズを契機に、分離前データ格納部32に格納されているデータを、相互に対応する「データ」部分と「マーカ」部分とに分離して、データ格納部31にコンテンツアドレスを利用して格納する。
 なお、上述したデータ・マーカ検索部13は、上記「有効長情報」が「0」になったとき、つまり、分離前データ格納部32に格納された全ての一部データが分離された後に、再度、ユーザアプリケーション1から受信された書き込み要求にかかるファイルの一部データを、順次、到着待ちバッファ30に格納する。そして、上述同様に、到着待ちバッファ30がいっぱいになるまで、インライン方式による分離処理を実行する。
 また、読込処理部12(データ読込手段)は、ユーザアプリケーション1からのファイルの読み込みの要求を受けると、対象となるファイルが、分離前データ格納部32かデータ格納部31のどちらに格納されているかを判断し、格納されている格納部からファイルを構成する一時データを読み込む。そして、分離前データ格納部32に格納されている場合には、分離前データ読込部22を介してデータを読み込む。また、データ格納部31に格納されている場合には、インデックス読込部27、データ読込部28、マーカ読込部29を介して、データ格納部31からインデックス情報を元に「データ」部分と「マーカ」部分を読み込み、データ・マーカ結合部15にて結合して、ファイルを復元させ、読み込む。
 [動作]
 次に、上述したストレージシステム10の動作を、図11乃至図14を参照して説明する。まず、ユーザアプリケーション1からの書き込み要求により、仮想ファイルシステムにファイル1が作成されると、図12に示すように、データファイル1、マーカファイル1、インデックスファイル1が準備される。このとき、図12に示す参照先1、参照先2有効長(有効長情報)、参照先2が初期化される。ここで、参照先2有効長は、「0」で初期化する。また、参照先1は、インデックスファイルを示し、参照先2は、後ほど用意するためブランクとする。
 そして、ファイルの書き込みが行われると、データ・マーカ検索部13は、参照先2有効長が「0」であるため(ステップS1:No)、インライン方式にて処理を行う。具体的には、到着待ちバッファの空きを確認して、空きがあるときは(ステップS2:Yes)、ユーザアプリケーション1から受信したファイル1の一部データを、到着待ちバッファ30へ順次格納する(ステップS3)。
 そして、データ・マーカ検索部13は、到着待ちバッファ30中に相互に対応する「データ」部分と「マーカ」部分とに分離できるデータがあるときは(ステップS4:Yes)、かかる分離できるデータを、順次、分離範囲を指定してデータ・マーカ分離部14に渡し、到着待ちバッファ30内から削除する(ステップS5)。なお、分離可能データが複数みつかったときは、それらをすべてデータ・マーカ分離部14へ渡し、到着待ちバッファ30から削除する。
 その後、データ・マーカ分離部14が、データ・マーカ検索部13から渡された到着待ちバッファ30に格納されたデータを、順次、相互に対応する「データ」部分と「マーカ」部分とに分離する。そして、図11及び図12に示すように、データ格納部31に、「データ」部分と「マーカ」部分とをインデックスデータにてリンクして、コンテンツアドレスを利用して格納する。このとき、ファイル1の参照先は、インデックスファイルに向けられる。
 上述したインライン方式による処理により、到着待ちバッファ30内には、ファイル1を構成する一部データのうち分離できないデータが残り、その後、到着待ちバッファ30に空きがない状態となる(ステップS2:No)。すると、データ・マーカ検索部13は、図11及び図12に示すように、分離前データ格納部32内に分離前データファイル1を作成し、「参照先2」がこれを示すようにする(ステップS6)。そして、到着待ちバッファ30内の全てのデータを、分離前データ格納部32内の分離前データファイル1に書き出す。このとき、到着待ちバッファ30内の最後尾に該当するファイル上のオフセットから先頭に該当するファイル上のオフセットを減算し、「参照先2有効長」として記録する。これにより、以降は、「参照先2有効長」の値が「0」ではなくなるため(ステップS1:No)、オフライン方式による動作となる。
 以上のようにしてオフライン方式の動作となると(ステップS1:No)、ストレージシステム10は、ユーザアプリケーション1から受信したファイルを構成する一部データを、分離前データ格納部32内の分離前データファイル1に追加して書き込む(ステップS8)。このとき、「参照先2」の分離前データファイル1の有効長が増える場合には、当該「参照先2有効長」を更新する。なお、ファイル上のこれまでに受信したデータの間に該当する抜け部分である未到着部分の一部データが到着したときは、ファイルの更新として扱われ、有効長は更新しない。
 その後、ユーザアプリケーション1からのデータ受信が終了つまりファイルの書き込みが終了し、ファイルがクローズされると、再処理部23による再分離処理を開始する。具体的には、まず、「参照先2」には有効なデータが格納されており、「参照先2有効長」が「0」ではないため(ステップS11:Yes)、「参照先2」の分離前データファイル1内のデータから分離可能なデータがあるかどうか調べる。分離可能なデータがある場合には(ステップS12:Yes)、再処理部23は、分離前データ格納部32に格納された分離前データファイル1内から分離単位のデータをデータ・マーカ分離部14へ渡し、該当部分を参照先2から削除する(ステップS13)。
 そして、データ・マーカ分離部14は、上述同様に、渡されたデータを相互に対応する「データ」部分と「マーカ」部分とに分離する。そして、図11及び図12に示すように、データ格納部31に、インデックスデータにてリンクして、コンテンツアドレスを利用して格納する。このとき、ファイル1の参照先は、インデックスファイルに向けられる。
 そして、上述したように、分離前データ格納部32内のデータを分離すると、再処理部23は、分離した分だけ「参照先2有効長」を減算する(ステップS14)。このようにして、分離するものが無くなるまで、つまり、「参照先2有効長」が「0」になるまで、再処理を行う。これにより、最終的には、ファイルを、コンテンツアドレスを利用したデータ格納部31に格納する。
 なお、上述したように「参照先2有効長」が「0」に戻ると、インライン方式による分離処理に戻る。
 以上のように、本実施形態におけるストレージ装置によると、ファイルから「マーカ」部分を抽出し、「データ」部分と「マーカ」部分とに分け格納しているため、重複率の高いデータ部分を効果的に記憶するデータの重複を排除することができる。
 また、インライン方式とオフライン方式とによる「データ」部分と「マーカ」部分との分離を、バッファ量が一定量を超えた場合に切り替えているため、スループットを高めつつ、記憶容量を抑制することができる。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置50の構成の概略について図15を参照して説明する。また、本発明における、プログラム、データ処理方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファ51と、
 前記一時バッファ51に格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段61に記憶すると共に、前記一時バッファから削除するデータ書込手段52と、
 前記一時バッファ51に格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段62に格納する分離前データ書込手段53と、
 前記分離前データ格納手段62に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段61に記憶すると共に、前記分離前データ格納手段62から削除する再分離処理手段54と、を備えた、
ストレージ装置50。
(付記2)
 付記1に記載のストレージ装置であって、
 前記分離前データ書込手段は、前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
ストレージ装置。
(付記3)
 付記2に記載のストレージ装置であって、
 前記再分離処理手段は、前記ファイルを構成する前記データを全て外部から受信した後に作動する、
ストレージ装置。
(付記4)
 付記1乃至3のいずれかに記載のストレージ装置であって、
 前記分離前データ書込手段は、前記分離前データ格納手段に格納した前記データのデータ量を表す有効長情報を記憶する、
ストレージ装置。
(付記5)
 付記4に記載のストレージ装置であって、
 前記再分離処理手段は、前記分離前データ格納手段に格納された前記データを前記データ格納手段に記憶したときに、当該データのデータ量の値を前記有効長情報から減算し、
 前記有効長情報の値に応じて、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
(付記6)
 付記5に記載のストレージ装置であって、
 前記有効長情報の値が0である場合に、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
(付記7)
 付記1乃至6のいずれかに記載のストレージ装置であって、
 外部からの前記ファイルの読み込み要求に応じて、当該ファイルを構成する前記データを、当該データが格納されている前記データ格納手段あるいは前記分離前データ格納手段から読み込むデータ読込手段を備えた、
ストレージ装置。
(付記8)
 付記1乃至7のいずれかに記載のストレージ装置であって、
 前記データ部分は、前記ファイルのデータ内容に応じたデータであり、
 前記マーカ部分は、前記ファイルの保存時の状況に応じて変化するデータである、
ストレージ装置。
(付記9)
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
 前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
 前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納する分離前データ書込手段と、
 前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、
を実現させるためのプログラム。
(付記10)
 付記9に記載のプログラムであって、
 前記分離前データ書込手段は、前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
プログラム。
(付記11)
 書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
 前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除し、
 前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納し、
 前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する、
データ処理方法。
(付記12)
 付記11に記載のデータ処理方法であって、
 前記一時バッファの空きがなくなったときに、当該一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
データ処理方法。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
 なお、本発明は、日本国にて2010年2月10日に特許出願された特願2010-27125の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
10  ストレージシステム
11  書込処理部
12  読込処理部
13  データ・マーカ検索部
14  データ・マーカ分離部
15  データ・マーカ結合部
21  分離前データ書込部
22  分離前データ読込部
23  再処理部
24  データ書込部
25  マーカ書込部
26  インデックス書込部
27  インデックス読込部
28  データ読込部
29  マーカ読込部
30  到着待ちバッファ
31  データ格納部
32  分離前データ格納部
40  データセット
41  分割データ
42  冗長データ
50  ストレージ装置
51  一時バッファ
52  データ書込手段
53  分離前データ書込手段
54  再分離処理手段
61  データ格納手段
62  分離前データ格納手段
100 ストレージシステム
101 アクセラレータノード
102 ストレージノード
110 バックアップシステム
120 バックアップ対象装置
 

Claims (10)

  1.  書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファと、
     前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
     前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納する分離前データ書込手段と、
     前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、を備えた、
    ストレージ装置。
  2.  請求項1に記載のストレージ装置であって、
     前記分離前データ書込手段は、前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
    ストレージ装置。
  3.  請求項2に記載のストレージ装置であって、
     前記再分離処理手段は、前記ファイルを構成する前記データを全て外部から受信した後に作動する、
    ストレージ装置。
  4.  請求項1乃至3のいずれか一項に記載のストレージ装置であって、
     前記分離前データ書込手段は、前記分離前データ格納手段に格納した前記データのデータ量を表す有効長情報を記憶する、
    ストレージ装置。
  5.  請求項4に記載のストレージ装置であって、
     前記再分離処理手段は、前記分離前データ格納手段に格納された前記データを前記データ格納手段に記憶したときに、当該データのデータ量の値を前記有効長情報から減算し、
     前記有効長情報の値に応じて、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
    ストレージ装置。
  6.  請求項5に記載のストレージ装置であって、
     前記有効長情報の値が0である場合に、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
    ストレージ装置。
  7.  請求項1乃至6のいずれか一項に記載のストレージ装置であって、
     外部からの前記ファイルの読み込み要求に応じて、当該ファイルを構成する前記データを、当該データが格納されている前記データ格納手段あるいは前記分離前データ格納手段から読み込むデータ読込手段を備えた、
    ストレージ装置。
  8.  請求項1乃至7のいずれか一項に記載のストレージ装置であって、
     前記データ部分は、前記ファイルのデータ内容に応じたデータであり、
     前記マーカ部分は、前記ファイルの保存時の状況に応じて変化するデータである、
    ストレージ装置。
  9.  書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
     前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
     前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納する分離前データ書込手段と、
     前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、
    を実現させるためのプログラム。
  10.  書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
     前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除し、
     前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納し、
     前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する、
    データ処理方法。
     
PCT/JP2010/006171 2010-02-10 2010-10-19 ストレージ装置 WO2011099099A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011553663A JP5533888B2 (ja) 2010-02-10 2010-10-19 ストレージ装置
US13/577,862 US9021230B2 (en) 2010-02-10 2010-10-19 Storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-027125 2010-02-10
JP2010027125 2010-02-10

Publications (1)

Publication Number Publication Date
WO2011099099A1 true WO2011099099A1 (ja) 2011-08-18

Family

ID=44367413

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/006171 WO2011099099A1 (ja) 2010-02-10 2010-10-19 ストレージ装置

Country Status (3)

Country Link
US (1) US9021230B2 (ja)
JP (1) JP5533888B2 (ja)
WO (1) WO2011099099A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047933A (ja) * 2011-08-29 2013-03-07 Hitachi Ltd 階層ストレージシステムの重複排除効率の向上
JP2014191405A (ja) * 2013-03-26 2014-10-06 Nec Corp 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム
WO2015033416A1 (ja) * 2013-09-05 2015-03-12 株式会社日立製作所 情報処理システム及びそのデータ処理方法
JP2020140647A (ja) * 2019-03-01 2020-09-03 Necソリューションイノベータ株式会社 情報処理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174380A2 (en) * 2013-04-22 2014-10-30 Bacula Systems Sa Creating a universally deduplicatable archive volume
US10692529B2 (en) * 2018-07-23 2020-06-23 Wasabi Technologies, Inc. Systems and methods and systems for reading data sequentially on a media

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0258768A (ja) * 1988-08-23 1990-02-27 Toshiba Corp ディスク制御装置
JP2009070361A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd コンピュータストレージシステムにおいてデータ圧縮並びに整合性を管理する方法および装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JP2504843B2 (ja) 1989-09-06 1996-06-05 シャープ株式会社 バッファ拡張装置
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US20040052501A1 (en) * 2002-09-12 2004-03-18 Tam Eddy C. Video event capturing system and method
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
JP3934569B2 (ja) * 2003-03-12 2007-06-20 株式会社東芝 信号処理装置、プリフェッチ命令方法及びプリフェッチ命令プログラム
JP3857995B2 (ja) * 2003-03-24 2006-12-13 三洋電機株式会社 コンテンツ記録再生装置
US7444389B2 (en) 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
US7200626B1 (en) * 2004-01-22 2007-04-03 Unisys Corporation System and method for verification of a quiesced database copy
US7222133B1 (en) * 2004-02-05 2007-05-22 Unisys Corporation Method for reducing database recovery time
JP4453915B2 (ja) * 2005-03-18 2010-04-21 富士通株式会社 クロスバー装置、制御方法及びプログラム
US7822700B2 (en) * 2006-12-29 2010-10-26 Brooks Roger K Method for using lengths of data paths in assessing the morphological similarity of sets of data by using equivalence signatures
JP4913085B2 (ja) 2008-03-04 2012-04-11 オリンパスイメージング株式会社 マルチ画像ファイル編集装置、マルチ画像ファイル編集プログラム、マルチ画像ファイル編集方法
CN101582064B (zh) 2008-05-15 2011-12-21 阿里巴巴集团控股有限公司 一种大数据量数据处理方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0258768A (ja) * 1988-08-23 1990-02-27 Toshiba Corp ディスク制御装置
JP2009070361A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd コンピュータストレージシステムにおいてデータ圧縮並びに整合性を管理する方法および装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047933A (ja) * 2011-08-29 2013-03-07 Hitachi Ltd 階層ストレージシステムの重複排除効率の向上
JP2014191405A (ja) * 2013-03-26 2014-10-06 Nec Corp 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム
WO2015033416A1 (ja) * 2013-09-05 2015-03-12 株式会社日立製作所 情報処理システム及びそのデータ処理方法
JP2020140647A (ja) * 2019-03-01 2020-09-03 Necソリューションイノベータ株式会社 情報処理方法
JP7456601B2 (ja) 2019-03-01 2024-03-27 Necソリューションイノベータ株式会社 情報処理方法

Also Published As

Publication number Publication date
US9021230B2 (en) 2015-04-28
JP5533888B2 (ja) 2014-06-25
US20120311294A1 (en) 2012-12-06
JPWO2011099099A1 (ja) 2013-06-13

Similar Documents

Publication Publication Date Title
US8386733B1 (en) Method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device
US7827368B2 (en) Snapshot format conversion method and apparatus
JP5533888B2 (ja) ストレージ装置
JP5339432B2 (ja) ストレージシステム
JP5485866B2 (ja) 情報管理方法、及び情報提供用計算機
US20100082529A1 (en) Log Structured Content Addressable Deduplicating Storage
JP2006268829A (ja) ストレージシステム間でオブジェクトをミラー化する方法と装置
JP5464269B2 (ja) ファイルストレージ装置、データ格納方法およびデータ格納プログラム
US20110099343A1 (en) Self-Adjusting Change Tracking for Fast Resynchronization
US20080320062A1 (en) Method of transferring file system, file system transference program, and file system transference device
JP5391705B2 (ja) ストレージシステム
US8612717B2 (en) Storage system
EP2669806B1 (en) Storage system
JP5517224B2 (ja) ストレージ装置
US20220244856A1 (en) Technique for replicating oplog index among nodes of a cluster
JP5660617B2 (ja) ストレージ装置
JP5459388B2 (ja) ストレージ装置
JP2009151397A (ja) 階層記憶制御装置、階層記憶制御システム及びそれらに用いる階層記憶制御方法及びそのプログラム
JP6413792B2 (ja) ストレージシステム
US10712941B2 (en) Leveraging temporal locality to link files together and bypass accessing a central inode list
KR101086392B1 (ko) Wal 기법에서 대용량 객체의 파손 회복 방법
JP6201340B2 (ja) レプリケーションシステム
US20110004750A1 (en) Hierarchical skipping method for optimizing data transfer through retrieval and identification of non-redundant components
JP6343952B2 (ja) ストレージシステム

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: 10845704

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011553663

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13577862

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10845704

Country of ref document: EP

Kind code of ref document: A1