WO2010086922A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2010086922A1
WO2010086922A1 PCT/JP2009/003962 JP2009003962W WO2010086922A1 WO 2010086922 A1 WO2010086922 A1 WO 2010086922A1 JP 2009003962 W JP2009003962 W JP 2009003962W WO 2010086922 A1 WO2010086922 A1 WO 2010086922A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
fragment
stored
storage system
Prior art date
Application number
PCT/JP2009/003962
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 CN200980154991.6A priority Critical patent/CN102282545B/zh
Priority to EP09839114.7A priority patent/EP2393010A4/en
Priority to US13/139,606 priority patent/US8683121B2/en
Publication of WO2010086922A1 publication Critical patent/WO2010086922A1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/061Improving I/O performance
    • 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 system, and more particularly to a storage system that distributes data and stores it in a plurality of storage devices.
  • 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 is generated so as to be unique depending on the data content. 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.
  • predetermined data is divided into a plurality of fragments and stored in a plurality of storage devices. For this reason, when reading predetermined data, it is necessary to specify and access the storage positions of the fragments obtained by dividing the data. As a result, there is a problem that it takes time to specify the storage location to be accessed and the reading efficiency is lowered.
  • an object of the present invention is to provide a high-performance storage system capable of reading data at high speed while maintaining redundancy, which is the above-described problem.
  • a storage system provides: A plurality of storage means; and data processing means for reading data stored in the storage means while storing data in the plurality of storage means.
  • the data processing means includes The storage target data is divided into a plurality of pieces to generate divided data, and redundant data for restoring the storage target data is generated.
  • a data set including a plurality of fragment data that is the divided data and the redundant data is generated
  • a data set generating means for generating Distributed storage control means for distributing and storing the fragment data in the storage means.
  • the distributed storage control means stores the fragment data constituting the data set at the same position in each storage area formed in each storage means. The structure is taken.
  • the program which is the other form of this invention is: In an information processing apparatus provided with a plurality of storage means, A program for realizing data processing means for storing data in the plurality of storage means and for reading data stored in the storage means.
  • the data processing means includes The storage target data is divided into a plurality of pieces to generate divided data, and redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated.
  • the distributed storage control means stores the fragment data constituting the data set at the same position in each storage area formed in each storage means. The structure is taken.
  • a data processing method includes: An information processing apparatus provided with a plurality of storage means Data is stored in the plurality of storage means, and the data stored in the storage means is read out.
  • the storage target data is divided into a plurality of pieces to generate divided data, redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated.
  • Generate The fragment data is distributed and stored in the storage means.
  • the fragment data constituting the data set is stored in the same position in the storage areas formed in the storage means. Store each in The structure is taken.
  • the present invention configured as described above can realize a high-performance storage system that can read data at high speed while maintaining redundancy.
  • 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. It is explanatory drawing for demonstrating the mode of the data storage process in the storage system disclosed in FIG. It is explanatory drawing for demonstrating the mode of the data storage process in the storage system disclosed in FIG.
  • FIG. 4 is an explanatory diagram for explaining a state of data read processing in the storage system disclosed in FIG. 3;
  • FIG. 5 is a diagram showing how data is stored in a storage device in the storage system disclosed in FIG. 4.
  • FIG. 5 is a diagram showing how data is stored in a storage device in the storage system disclosed in FIG. 4.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • It is a functional block diagram which shows the structure of the storage system in Embodiment 2 of this invention.
  • It is a figure which shows the mode of the data storage with respect to the memory
  • It is a figure which shows the mode of the data storage with respect to the memory
  • FIG. It is a figure which shows the mode of the data storage with respect to the memory
  • It is a figure which shows the mode of the data storage with respect to the memory
  • FIG. 1 is a block diagram showing the configuration of the entire system.
  • FIG. 2 is a block diagram showing an outline of the storage system, and
  • FIG. 3 is a functional block diagram showing the configuration.
  • 4 to 6 are explanatory diagrams for explaining the operation of the storage system.
  • 7 to 8 are diagrams showing data storage states in the storage system.
  • FIG. 9 is a flowchart showing the operation of the storage system.
  • the present embodiment shows a specific example of the storage system disclosed in the third embodiment 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.
  • a storage system 10 As shown in FIG. 1, a storage system 10 according to the present invention is connected to a backup system 11 that controls backup processing via a network N. Then, the backup system 11 acquires backup target data (storage target data) stored in the backup target device 12 connected via the network N, and requests the storage system 10 to store it. Thereby, the storage system 10 stores the backup target data requested to be stored for backup.
  • backup target data storage target data
  • the storage system 10 in this embodiment has a configuration in which a plurality of server computers are connected.
  • the storage system 10 includes an accelerator node 10A that is a server computer that controls storage and reproduction operations in the storage system 10 itself, and a storage node 10B that is a server computer including a storage device that stores data. Yes.
  • the number of accelerator nodes 10A and the number of storage nodes 10B are not limited to those shown in FIG. 2, and more nodes 10A and 10B may be connected.
  • the storage system 10 divides and redundantly stores the data, distributes and stores the data in a plurality of storage devices, and stores the data by a unique content address specified according to the content of the data.
  • This is a content address storage system for specifying the storage location. A specific configuration will be described in detail.
  • the configuration and functions of the storage system 10 will be described assuming that the storage system 10 is a single system. That is, the configuration and function of the storage system 10 described below may be provided in either the accelerator node 10A or the storage node 10B. As shown in FIG. 2, the storage system 10 is not necessarily limited to including the accelerator node 10A and the storage node 10B, and may have any configuration. Further, the storage system 10 is not limited to being a content address storage system.
  • FIG. 3 shows the configuration of the storage system 10.
  • the storage system 10 includes a data storage device 30 that stores data, and a data processing device 20 that controls data storage and reading operations with respect to the data storage device 30.
  • the data processing device 20 is composed of a plurality of arithmetic devices such as CPUs (Central Processing Unit) provided in the accelerator node 10A and the storage node 10B shown in FIG.
  • the storage device 30 is configured by a storage device such as a hard disk included in the accelerator node 10A and the storage node 10B shown in FIG.
  • the data processing device 20 includes a block generation unit 21, a duplication check unit 22, a fragment generation unit 23, a distributed storage control unit 24, which are constructed by incorporating a program. And a storage location management unit 25.
  • the data storage device 30 includes a plurality of storage devices 31 that store backup target data, and a storage position information storage unit 32 that stores the position of the stored data.
  • each configuration will be described in detail.
  • the state of data processing by each of the above configurations will be described with reference to FIGS.
  • the program is provided to the storage system 10 in a state of being stored in a storage medium such as a CD-ROM.
  • the program may be stored in a storage device of another server computer on the network and provided to the storage system 10 from the other server computer via the network.
  • the block generation unit 21 converts the backup target data A to a predetermined capacity as indicated by an arrow Y2 in FIGS.
  • the data is divided into block data D (for example, 64 KB).
  • a unique hash value H representing the data content is calculated (arrow Y3).
  • the hash value H is calculated based on the data content of the block data D, for example, using a preset hash function.
  • the processing by the block generation unit 21 is executed by the accelerator node 10A.
  • the duplication check unit 22 checks whether the block data D is already stored in the storage device 31 by using the hash value H of the block data D of the backup target data A. Specifically, first, the block data D that has already been stored has its hash value H and a content address CA representing the storage position associated with each other and registered in an MFI (Main Fragment Index) file. Therefore, if the hash value H of the block data D calculated before storage is present in the MFI file, the duplication check unit 22 can determine that the block data D having the same contents has already been stored (see FIG. 5 arrow Y4).
  • MFI Main Fragment Index
  • the content address CA associated with the hash value H in the MFI file that matches the hash value H of the block data D before storage is acquired from the MFI file. Then, this content address CA is returned as the content address CA of the block data D relating to the storage request. As a result, the already stored data referred to by the content address CA is used as the block data D requested to be stored, and the block data D related to the storage request need not be stored.
  • the fragment generation unit 23 compresses the block data D determined not yet stored by the duplication check unit 22 as described above, and is indicated by an arrow Y5 in FIG.
  • the data is divided into a plurality of fragment data having a predetermined capacity. For example, as shown by symbols D1 to D9 in FIG. 4, the data is divided into nine fragment data (divided data 41).
  • the fragment generation unit 23 generates redundant data so that the original block data can be restored even if some of the divided fragment data is missing, and adds the redundant data to the divided fragment data 41. .
  • three fragment data redundant data 42
  • a data set 40 composed of twelve fragment data composed of nine divided data 41 and three redundant data is generated.
  • the processing by the fragment generator 23 is executed by one storage node called WI described above.
  • the distributed storage control unit 24 distributes each fragment data constituting the data set generated by the fragment generation unit 23 to each storage area formed in the storage device 31. And store. For example, as shown in FIG. 4, when 12 pieces of fragment data D1 to D12 are generated, each piece of fragment data is stored in data storage files F1 to F12 (data storage areas) formed in 12 storage devices 31, respectively. Each of D1 to D12 is stored one by one (see arrow Y6 in FIG. 6).
  • the distributed storage control unit 24 stores the fragment data D1 to D12 constituting one data set 40 at the same position in the data storage files F1 to F12, respectively.
  • all the fragment data D1 to D12 are stored at the same position based on the head position of each data storage file F1 to F12.
  • the top of the figure is the beginning of the file.
  • the distributed storage control unit 24 does not set the storage positions for the data storage files F1 to F12 in advance, and the storage positions that are free next to the data stored in the data storage files F1 to F12.
  • the fragment data D1 to D12 are stored respectively.
  • the distributed storage control means 25 stores the fragment data D1 to D12 constituting one data set 40 in the data storage files F1 to F12 at the same timing.
  • the distributed storage control unit 24 assigns the same identification information (WriteRecordSeqNum) to each of the fragment data D1 to D12 constituting the data set 40 in order to identify that the same data set 40 is constituted. And stored in each of the data storage files F1 to F12. Then, the distributed storage control unit 24 examines the identification information at an arbitrary timing such as when resources of the storage system 10 are available, so that each piece of fragment data constituting the same data set 40 becomes each data It can be checked whether they are stored in the same storage location in the storage files F1 to F12. Therefore, the distributed storage control unit 24 determines that each fragment data stored in the same storage location in each data storage file F1 to F12 does not include the same identification information (WriteRecordSeqNum). The storage position is corrected so that the data is stored in the same storage position, and the data is stored again.
  • the distributed storage control unit 24 stores the fragment data D1 to D12 constituting the data set 40 at the same position in each logical storage area such as a data storage file.
  • Each storage device 31 may be physically stored at the same position.
  • the storage location management unit 24 stores the storage locations of the fragment data D1 to D12 stored in the storage device 31 as described above, that is, blocks restored by the fragment data D1 to D12.
  • a content address CA representing the storage location of the data D is generated and managed. Specifically, a part of the hash value H (short hash) calculated based on the contents of the stored block data D (for example, the top 8B (bytes) of the hash value H), information indicating the logical storage position, Are combined to generate a content address CA. Then, this content address CA is returned to the file system in the storage system 10, that is, the accelerator node 10A (arrow Y7 in FIG. 5). Then, the accelerator node 10A associates the identification information such as the file name of the backup target data with the content address CA and manages it in the file system.
  • the storage location management unit 25 associates the content address CA of the block data D with the hash value H of the block data D, and each storage node 10B manages it with the MFI file.
  • the content address CA is stored in the storage device 30 of the accelerator node 10A or the storage node 10B in association with information specifying the file, the hash value H, or the like (storage position information storage unit 32).
  • the storage location management unit 25 performs control to read the backup target data stored as described above. For example, when there is a read request specifying a specific file to the storage system 10 (see arrow Y11 in FIG. 6), first, based on the file system, one hash value corresponding to the file related to the read request is stored. A content address CA composed of a short hash that is a part and logical position information is designated (see arrow Y12 in FIG. 6). Then, the storage location management unit 25 checks whether or not the content address CA is registered in the MFI file (see arrow 13 in FIG. 6). 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 the requested data (see arrow Y14 in FIG. 6).
  • the storage position of other fragment data is specified from the same storage position. be able to.
  • the storage location management unit 26 restores the block data D from each fragment data read in response to the read request (see arrow Y15 in FIG. 6). Furthermore, the storage location management unit 25 concatenates a plurality of restored block data D, restores them to a group of data such as file A, and returns them to the accelerator node 10A that is performing the read control (see arrow Y16 in FIG. 6). ).
  • the storage system 10 that is, the accelerator node 10A divides the backup target data A into block data D having a predetermined capacity (for example, 64 KB) (step S1). Based on the data content of the block data D, a unique hash value H (content identification information) representing the data content is calculated (step S2). Then, it is checked whether or not this hash value H is registered in the MFI file.
  • a predetermined capacity for example, 64 KB
  • the content address CA associated with the hash value H of the data block D in the MFI file is returned to the file system as the storage location of the data block D. That is, since the same data as the backup target data is already stored, the backup target data is stored using the same stored data. Therefore, when the backup target data is read later, the file system reads the data at the storage position indicated by the content address CA, so that the same data can be read.
  • the process of storing the block data D is performed. Proceed to At this time, first, the storage node 10B that actually stores the data is specified based on a part of the hash value calculated as described above, and one of the storage nodes 10B is blocked as described below. This is determined as Write Initiator (WI) for executing pre-storage processing for data D.
  • WI Write Initiator
  • the storage node 10B determined as WI as described above compresses the block data D and then divides it into, for example, nine fragment data (step S3). Further, for example, three pieces of redundant data are added to the fragment data so that the block data D can be restored even if some of the divided data is missing. And the data set by 12 fragment data comprised by 9 division
  • the storage node 10B determined as the WI gives an ID for identifying the data set to each fragment (step S5). That is, the same ID is assigned to each fragment data constituting a data set generated by dividing from one block data D.
  • the storage node 10B includes a plurality of data storage files F1 to F1 that are storage destinations of data in the storage device 31 provided in the storage node 10B and the storage device 31 provided in the other storage node 10B. It is confirmed whether or not F12 exists, and the fragment data D1 to D12 are stored in the data storage files F1 to F12 (step S6, distributed storage control step). At this time, one fragment data is stored in one data storage file.
  • the storage node 10B stores the fragment data D1 to D12 constituting one data set 40 at the same position in the data storage files F1 to F12, respectively. For example, as shown in FIG. 7, all the fragment data D1 to D12 are stored at the same position with reference to the head of each data storage file F1 to F12.
  • the storage node 10B stores the fragment data D1 to D12 included in one data set 40 in the data storage files F1 to F12 at the same timing.
  • the fragment data D1 is set at the next empty storage position after the data stored in the data storage files F1 to F12 without setting the storage positions for the data storage files F1 to F12 in advance.
  • To D12 are stored (step S6).
  • the data has already been stored up to the shaded portion of each of the data storage files F1 to F12, but each fragment data D1 to D12 is stored in the next area to store the data set. 40 positions are aligned.
  • the storage node 10B combines a part of the hash value H (first 8B) calculated based on the contents of the stored block data D and information indicating the logical storage position, and stores the fragment stored in the storage device 31.
  • a content address CA representing the storage location of the data D1 to D12 is generated.
  • the storage node 10B returns this content address CA to the accelerator node 10A.
  • the accelerator node 10A manages the returned content address CA in the file system in association with the file name of the backup target data actually stored.
  • the storage node 10B associates the content address CA of the generated block data D with the hash value H of the block data D, and each storage node 10B manages with the MFI file.
  • the MFI file that manages the hash value H and the content address CA is used to check whether data with the same content has already been stored when new backup target data is stored. It is done.
  • each of the fragment data D1 to D12 is stored in each of the data storage files F1 to F12, that is, when fragment data is stored from the storage node 10B determined as WI to each of the other storage nodes 10B.
  • communication between the storage nodes 10B may be down or a communication delay may occur.
  • a situation may occur in which all the fragment data D1 to D12 included in one data set 40 are not stored at the same position in each of the data storage files F1 to F12.
  • the storage system 10 refers to the identification information (WriteRecordSeqNum) for each data set included in each of the fragment data D1 to D12 that is already stored at any timing such as when resources are available. Then, the re-storing process is performed so that all the fragment data D1 to D12 constituting one data set 40 are stored at the same position in each of the data storage files F1 to F12.
  • the accelerator node 10A designates a content address CA consisting of short hash and logical position information corresponding to the file related to the read request. Then, the storage node 10B that has received this content address CA checks whether or not the content address CA is registered in the MFI file, and if it is not registered, the requested data is not stored, so an error occurs. return.
  • each fragment data constituting the data related to the read request is specified based on the content address CA.
  • the storage position of other fragment data is specified from the same storage position. be able to.
  • the storage node 10B restores the block data D from each fragment data read in response to the read request. Furthermore, the storage node 10B concatenates a plurality of restored block data D, restores it to a group of data such as file A, and returns it to the accelerator node 10A that performs read control.
  • the storage position of one fragment data in the data set constituting the data is specified, whereby the storage position of the other fragment data is specified. Can also be easily identified. Therefore, when reading data, it is not necessary to specify the positions of all fragments constituting the data set, and data can be read at high speed. As a result, a high-performance storage system capable of reading data at high speed while maintaining redundancy can be realized.
  • FIG. 10 is a functional block diagram showing the configuration of the storage system.
  • 11 to 16 are explanatory diagrams for explaining the operation of the storage system.
  • FIG. 17 is a flowchart showing the operation of the storage system.
  • the storage system 10 in the present embodiment has a configuration that is substantially the same as that in the first embodiment described above.
  • the stream processing apparatus 20 further includes a stream ID assigning unit 26 constructed by incorporating a program into the data processing device 20. Accordingly, the configuration of the distributed storage control unit 24 and the like is different.
  • the program is provided to the storage system 10 via a storage medium such as a CD-ROM, or is provided to the storage system 10 from another server computer via a network.
  • the stream ID may be information that distinguishes not only the backup target data but also the backup target device 12 that is the output source of the backup target data A. That is, the stream ID assigning unit 21 assigns a different stream ID to each backup target data grouped according to a predetermined rule.
  • the block generation unit 21 divides the backup target data A into block data D having a predetermined capacity (for example, 64 KB), and based on the data content of the block data D, as in the first embodiment. A hash value H is calculated.
  • the block generation unit 21 divides the backup target data A into the block data D
  • the block ID assigned to the backup target data A as described above is also provided to each block data D.
  • the stream ID assigning unit 21 is not limited to assigning a stream ID to the backup target data A as described above. For example, when the block generation unit 22 divides the backup target data A into block data D, the same stream ID for identifying the backup target data A may be assigned to each block data D.
  • the duplicate check unit 22 has substantially the same configuration as that of the first embodiment described above, and a description thereof will be omitted.
  • the fragment generation unit 23 generates a data set 40 including 12 fragment data composed of divided data obtained by dividing the block data D and redundant data.
  • the fragment generation unit 23 further adds to all the generated fragment data D1 to D12 block data D that is the original of the fragment data, that is, block data D restored from the fragment data D1 to D12. Each stream ID is assigned.
  • the distributed storage control unit 24 basically has one data set 40 at the same position in each of the data storage files F1 to F12 formed in the storage device 31, as in the first embodiment. Each piece of fragment data D1 to D12 that constitutes is stored.
  • each data storage file F1 to F12 has a stream ID (ST1). , ST2, ST3) may occur in which the fragment data constituting each data set are stored alternately.
  • ST1 stream ID
  • ST2, ST3 stream ID
  • the distributed storage control unit 24 in the present embodiment distinguishes each fragment data D1 to D12 for each stream ID and temporarily stores them in different buffer memories before storing them in the data storage files F1 to F12. Thereafter, the fragment data D1 to D12 in the buffer memory are stored in the data storage files F1 to F12. Specific examples thereof will be described with reference to FIGS.
  • the distributed storage control unit 24 sets a buffer memory for each stream ID for each of the data storage files F1 to F12. For example, when setting buffer memories BF1, BF2, and BF3 corresponding to three stream IDs (ST1, ST2, and ST3), as shown in FIG. 12, three buffer memories are used for one data storage file F1. BF1, BF2, and BF3 are set, and 12 sets are set.
  • the distributed storage control unit 24 stores the fragment data D1 to D12 in the buffer memories BF1, BF2, and BF3 corresponding to the stream IDs included in the fragment data D1 to D12, respectively.
  • the data set 40 of the original block data D backup target data A
  • the fragment data D1 is stored in the buffer memory BF1 of the data storage file F1
  • the fragment data D2 is stored in the buffer memory BF2 of the data storage file F2
  • the fragment data is stored in the buffer memory of all the data storage files. Is stored. At this time, all the fragment data D1 to D12 are stored at the same time in a storage area that is empty next to the data already stored in the buffer memories BF1 to BF3.
  • the fragment data of the corresponding stream ID is successively located and stored in each of the buffer memories BF1 to BF3.
  • the fragment data D1 to D12 constituting the same data set are stored in the same position in the buffer memories BF1 to BF3.
  • the last data at the same position in the buffer memory BF1 is stored.
  • Stored in the storage location by distributing each fragment data for each stream ID and storing it in each buffer memory corresponding to the stream ID, each of the specific stream IDs corresponding to all of the data storage files F1 to F12, respectively.
  • the buffer memories all have the same capacity at any timing. For example, in the example of FIG. 13, each buffer memory BF1 has the same capacity, and the other buffer memories BF2 and BF3 have the same capacity for each corresponding stream ID.
  • the distributed storage control unit 24 transfers all the fragment data in the buffer memories BF1 to BF3 to the data storage files F1 to F3 when the capacity of each of the buffer memories BF1 to BF3 becomes a predetermined capacity, for example, full.
  • the distributed storage control unit 24 stores the fragment data D1 to D12 in vacant storage positions after the data stored in the data storage files F1 to F12, respectively. For example, in the example shown in FIG. 14, when each data storage file F1 to F12 is empty, fragment data is stored from the head of each data storage file F1 to F12.
  • the data storage files F1 to F12 are stored so that the storage positions of the fragment data D1 to D12 constituting the same data set 40 are aligned. At this time, data sets to which the same stream ID is assigned are stored continuously.
  • the buffer memory BF2 corresponding to another stream ID (ST2) is full, and the fragment data in the buffer memory BF2 is stored in the data storage files F1 to F12. Is shown.
  • the distributed storage control unit 24 in the present embodiment is not only used to store fragment data in the data storage file as described above, but also to fragment data having the same stream ID for already stored fragment data. It also has a function of changing the storage position afterwards so that data is continuously arranged. For example, when the resource of the storage system 10 itself is vacant at a predetermined value or more, the storage position of the fragment data stored in each of the data storage files F1 to F12 is moved so that the same stream IDs continue. Specifically, as shown in FIG. 11, the storage positions of all the fragment data stored in the same storage position (horizontal line) of each of the data storage files F1 to F12 are configured by the fragment data. Each data set 40 can be changed. Thus, as shown in FIG.
  • the fragment generation unit 23 when the fragment generation unit 23 generates the data set 40 by dividing the block data D, the same stream ID is assigned to each of the fragment data D1 to D12 constituting the data set 40.
  • the fragment data F1 to F12 constituting the data set 40 generated from the block data D in the data buffers BF1 to BF3 corresponding to the stream ID assigned to the block data D, for each stream ID Fragment data can be stored continuously. Thereafter, the fragment data D1 to D12 constituting the same data set 40 are stored in the same storage position in each of the buffer memories BF1 to BF3 and the data storage files F1 to F12. It is possible to change the storage position for each data set by collectively changing the storage positions of all fragment data at the storage position.
  • the storage location management unit 25 manages the data storage location with the content address CA, as in the second embodiment. The description is omitted.
  • the storage system 10 upon receiving the backup target data A, the storage system 10, that is, the accelerator node 10A, assigns a stream ID that is identification information for distinguishing the backup target data A that is a group of data (step S11, identification). Information grant process).
  • the accelerator node 10A divides the backup target data A into block data D having a predetermined capacity (for example, 64 KB) (step S12). Based on the data content of the block data D, a unique hash value H (content identification information) representing the data content is calculated (step S13). Then, it is checked whether or not this hash value H is registered in the MFI file. If registered, the content address CA associated with the hash value H of the data block D in the MFI file is returned to the file system as the storage location of the data block D. On the other hand, when the hash value of the block data D is not registered in the MFI file, a process for storing the block data D is performed.
  • a unique hash value H content identification information
  • the stream ID assigned to the backup target data A as described above is also inherited and assigned to each block data D.
  • the storage node 10B divides it into, for example, nine fragment data (step S14), and adds, for example, three redundant data to the fragment data. And the data set by 12 fragment data comprised by nine division
  • the storage node 10B sets a buffer memory for each stream ID for each of the data storage files F1 to F12. Then, the fragment data D1 to D12 are respectively stored in the buffer memories BF1, BF2, and BF3 corresponding to the stream IDs included in the fragment data D1 to D12 (step S17). At this time, each of the fragment data D1 to D12 is stored at the same time in a storage area that is free next to the data already stored in the buffer memories BF1 to BF3.
  • the fragment data of the corresponding stream ID is successively located and stored in each of the buffer memories BF1 to BF3.
  • the fragment data D1 to D12 constituting the same data set are stored in the same storage location in the buffer memories BF1 to BF3.
  • the fragment data in the buffer memories BF1 to BF3 are stored in the data storage files F1 to F12 when the capacity of each of the buffer memories BF1 to BF3 becomes a predetermined capacity, for example, when the capacity becomes full (Yes in step S18).
  • Step S19 distributed storage control step.
  • the fragment data D1 to D12 are stored in the empty storage positions next to the data stored in the data storage files F1 to F12, respectively.
  • the timing of storing fragment data from the buffer memory to the data storage file is not necessarily limited to the above timing. For example, it may be executed at a timing when a set time has elapsed from a certain reference time.
  • the storage node 10B can store all the fragment data D1 to D12 constituting one data set 40 at the same position in each of the data storage files F1 to F12. Further, data of the same stream ID is continuously stored in each of the data storage files F1 to F12.
  • the storage node 10B combines a part of the hash value H (first 8B) calculated based on the contents of the stored block data D and information indicating the logical storage position, and stores the fragment stored in the storage device 31.
  • a content address CA representing the storage location of the data D1 to D12 is generated.
  • the storage node 10B returns this content address CA to the accelerator node 10A.
  • the accelerator node 10A manages the returned content address CA in the file system in association with the file name of the backup target data actually stored.
  • the storage node 10B associates the generated content address CA of the block data D with the hash value H of the block data D and manages them in the MFI file.
  • the MFI file that manages the hash value H and the content address CA is used to check whether data with the same content has already been stored when new backup target data is stored. It is done.
  • step S20 Thereafter, for example, when the resource of the storage system 10 itself is vacant at a predetermined value or more (Yes in step S20), the fragment data with the same stream ID continues to the already stored fragment data. Thereafter, a process of changing the storage position is executed afterwards (step S21). In this process, the stream IDs in the fragment data stored in the same storage position of each of the data storage files F1 to F12 are checked, and the fragment data of the same stream ID, that is, the storage positions of the data sets are continued as much as possible. The storage position of the fragment data is changed.
  • the storage position of one fragment data in the data set constituting the data is specified, whereby the storage position of the other fragment data is specified. Can also be easily identified.
  • a plurality of storage target data constituting a group of data is continuously stored, related contents data are collectively stored. Therefore, when reading data stored in the storage system, related data can be read together. As a result, the data reading speed and efficiency can be improved, and the performance of the storage system can be improved.
  • FIG. 18 is a functional block diagram showing the configuration of the storage system. In this embodiment, an outline of a storage system will be described.
  • the storage system 1 in this embodiment A plurality of storage means 5 and a data processing means 2 for storing data in the plurality of storage means 5 and reading data stored in the storage means 5 are provided.
  • the data processing means 2 The storage target data is divided into a plurality of pieces to generate divided data, redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated.
  • Data set generation means 3 to be generated;
  • Distributed storage control means 4 for distributing the fragment data and storing the fragment data in the storage means.
  • the distributed storage control means 4 stores the fragment data constituting the data set at the same position in the storage areas formed in the storage means 5, respectively. The structure is taken.
  • the distributed storage control means stores the fragment data constituting the data set at the same position based on the head of the data storage area of each file generated in each storage means, respectively. The structure is taken.
  • the storage system accepts storage target data in response to a data storage request from a host. Then, the storage target data is divided into a plurality of divided data, redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated. . Subsequently, the storage system stores each fragment data constituting one data set in a distributed manner in each storage means. At this time, the storage system stores each fragment data constituting one data set in each storage area formed in each storage means, for example, at the same position from the top of the data storage area of each file.
  • the storage position of one fragment data in the data set constituting the data can be specified, so that the storage position of other fragment data can be easily specified. Can do. Therefore, when reading data, it is not necessary to specify the positions of all fragments constituting the data set, and data can be read at high speed. As a result, a high-performance storage system capable of reading data at high speed while maintaining redundancy can be realized.
  • the distributed storage control means stores the fragment data constituting the data set in storage positions next to data already stored in the files generated in the storage means, respectively. The structure is taken.
  • the distributed storage control means stores the fragment data constituting the data set in the storage means at the same timing. The structure is taken.
  • each fragment data constituting the data set can be stored at the same position by simple processing. Therefore, the data storage process can be speeded up.
  • the distributed storage control means assigns the same identification information for identifying the data set to the fragment data constituting the data set, and the fragment data constituting the data set is assigned to the fragment data.
  • the distributed storage control unit assigns to each fragment data whether each of the fragment data constituting the data set is stored at the same position in each of the storage areas formed in each of the storage units. If the fragment data is not stored at the same position in the storage area, the fragment data constituting the data set is searched at the same position in the storage area. Change the storage position of each fragment data to be stored in The structure is taken.
  • each fragment data constituting the data set is assigned to each fragment data constituting the data set and stored in a plurality of storage means. Therefore, by examining the identification information given to the fragment data that has already been stored, it is possible to determine whether or not each fragment data constituting one data set is stored at the same position in each storage means. And based on the identification information contained in each fragment data, the storage position of the fragment data stored in each storage means can be changed. As a result, as described above, each fragment data constituting one data set can be stored in the same position in the storage area formed in each storage means, and the data can be read at high speed. Become.
  • the data processing means includes storage position information management means for generating and managing storage position information representing a storage position of the storage target data stored in the storage means by the distributed storage control means,
  • the storage location information management means stores the data stored in the storage location in each storage means represented by the storage location information based on the storage location information of the data specified at the time of the data read request. read out, The structure is taken.
  • the data processing unit generates content identification information unique to the content of the storage target data, and compares the content identification information specific to the content of the storage target data already stored in each storage unit with A duplication check means for checking whether or not the storage target data having the same content is stored in each storage means,
  • the duplication check means does not store the storage target data in the storage means when data having the same content as the storage target data is already stored in the storage means, and stores the storage target data. Use the storage location information of the same content data as information, The structure is taken.
  • the above-described configuration can be applied to a content address storage system that specifies storage location information indicating a location where the data is stored based on the content of the storage target data. Therefore, it is possible to suppress the storage target data having the same contents as the data already stored from being stored repeatedly, the data storage usage can be reduced, and the cost of the system itself can be reduced.
  • the data processing means includes identification information providing means for assigning identification information for distinguishing the group of data requested to be stored to the group of data. Then, the distributed storage control means, the fragment data constituting each of the plurality of data sets corresponding to the plurality of storage target data included in the group of data to which the same identification information is assigned, the fragment data, The storage area is stored in each storage area so that the storage positions are continuous.
  • the distributed storage control unit is configured to store a plurality of the data sets corresponding to the plurality of storage target data included in the group of data to which the same identification information is assigned before being stored in the storage unit.
  • Each of the fragment data constituting each is stored so that the storage positions in the buffer memory are continuous, and each of the fragment data stored in the buffer memory is stored in each storage means. The structure is taken.
  • the distributed storage control means assigns each of the fragment data constituting each of the plurality of data sets corresponding to the plurality of storage target data included in the group of data to which the same identification information is assigned, to the identification number Storing each of the fragment data stored in each of the buffer memories provided for each of the identification numbers in each of the storage means. The structure is taken.
  • the distributed storage control means stores the fragment data stored in the buffer memory in the storage means at a timing when the capacity of the buffer memory reaches a predetermined capacity. The structure is taken.
  • the storage system temporarily stores the group of data in the buffer memory so as to be continuous, and then stores them in the storage means. Therefore, it is possible to simplify the process of storing related content data collectively, and to improve the performance of the storage system.
  • the distributed storage control means respectively stores a plurality of the data sets corresponding to a plurality of the storage target data included in the group of data that is already stored in the storage means and is given the same identification information. Re-storing each of the fragment data to be configured in each storage area so that the storage position in each storage area is continuous; The structure is taken.
  • the storage system later stores the data to be stored constituting the group of data so as to be continuous. Therefore, the subsequent data reading speed and efficiency can be improved.
  • the data set generation means configures the data set corresponding to a plurality of the storage target data included in the group of data, with the identification information given to the group of data by the identification information giving means. Included in each fragment data, The structure is taken.
  • the above-described storage system can be realized by incorporating a program in an information processing apparatus (system).
  • the program which is another embodiment of the present invention is: In an information processing apparatus provided with a plurality of storage means, A program for realizing data processing means for storing data in the plurality of storage means and reading data stored in the storage means.
  • the data processing means includes The storage target data is divided into a plurality of pieces to generate divided data, redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated.
  • the distributed storage control means stores the fragment data constituting the data set in the same position in each storage area formed in each storage means, The structure is taken.
  • the distributed storage control means stores the fragment data constituting the data set at the same position with reference to the head of the data storage area of each file generated in each storage means, respectively. The structure is taken.
  • a data processing method which is executed when the above-described storage system operates, An information processing apparatus provided with a plurality of storage means Data is stored in the plurality of storage means, and the data stored in the storage means is read out.
  • the storage target data is divided into a plurality of pieces to generate divided data, redundant data for restoring the storage target data is generated, and a data set including a plurality of fragment data that is the divided data and the redundant data is generated. Generate The fragment data is distributed and stored in the storage means.
  • the information processing apparatus stores the fragment data in the storage means
  • the fragment data constituting the data set is stored in the same position in the storage areas formed in the storage means. Store each in The structure is taken.
  • the fragment data constituting the data set is placed at the same position with reference to the top of the data storage area of each file generated in the storage means. Store each, The structure is taken.
  • the present invention can be used in a storage system configured by connecting a plurality of computers, and has industrial applicability.

Abstract

 複数の記憶手段と、これら複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段と、を備え、上記データ処理手段は、記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、上記各フラグメントデータを分散して上記各記憶手段に記憶する分散記憶制御手段と、を備え、上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する。

Description

ストレージシステム
 本発明は、ストレージシステムにかかり、特に、データを分散して複数の記憶装置に記憶するストレージシステムに関する。
 近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
 このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
 そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
 また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
特開2005-235171号公報
 しかしながら、コンテンツアドレスストレージシステムでは、上述したように、所定のデータを複数のフラグメントに分割して、複数の記憶装置にそれぞれ格納している。このため、所定のデータを読み出す際には、当該データを分割した各フラグメントの格納位置をそれぞれ特定してアクセスする必要がある。すると、アクセスする格納位置を特定する処理に時間がかかり、読み出し効率が低下する、という問題が生じる。
 このため、本発明の目的は、上述した課題である、冗長性を維持しつつ、高速にデータを読み出すことが可能な高性能のストレージシステムを提供することにある。
 かかる目的を達成するため本発明の一形態であるストレージシステムは、
 複数の記憶手段と、これら複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段と、を備える。
 そして、上記データ処理手段は、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する分散記憶制御手段と、を備える。
 さらに、上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 また、本発明の他の形態であるプログラムは、
 複数の記憶手段を備えた情報処理装置に、
 上記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現するプログラムである。
 そして、上記データ処理手段は、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する分散記憶制御手段と、を備える。
 さらに、上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 また、本発明の他の形態であるデータ処理方法は、
 複数の記憶手段を備えた情報処理装置が、
 上記複数の記憶手段に対してデータを記憶し、上記記憶手段に記憶されているデータを読み出す。
 そして、上記情報処理装置は、上記複数の記憶手段に対してデータを記憶するときに、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成し、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する。
 さらに、上記情報処理装置は、上記各フラグメントデータを上記各記憶手段に記憶するときに、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 本発明は、以上のように構成されることにより、冗長性を維持しつつ、高速にデータを読み出すことが可能な高性能のストレージシステムを実現することができる。
本発明の実施形態1におけるストレージシステムを含むシステム全体の構成を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成の概略を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成を示す機能ブロック図である。 図3に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。 図3に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。 図3に開示したストレージシステムにおけるデータ読み出し処理の様子を説明するための説明図である。 図4に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図4に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図3に開示したストレージシステムの動作を示すフローチャートである。 本発明の実施形態2におけるストレージシステムの構成を示す機能ブロック図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムにおける記憶装置に対するデータの格納の様子を示す図である。 図10に開示したストレージシステムの動作を示すフローチャートである。 本発明の実施形態3におけるストレージシステムの構成を示す機能ブロック図である。
 <実施形態1>
 本発明の第1の実施形態を、図1乃至図9を参照して説明する。図1は、システム全体の構成を示すブロック図である。図2は、ストレージシステムの概略を示すブロック図であり、図3は、構成を示す機能ブロック図である。図4乃至図6は、ストレージシステムの動作を説明するための説明図である。図7乃至図8は、ストレージシステムにおけるデータの格納状態を示す図である。図9は、ストレージシステムの動作を示すフローチャートである。
 ここで、本実施形態は、後述する実施形態3にて開示するストレージシステムの具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
 [構成]
 図1に示すように、本発明におけるストレージシステム10は、ネットワークNを介してバックアップ処理を制御するバックアップシステム11に接続している。そして、バックアップシステム11は、ネットワークNを介して接続されたバックアップ対象装置12に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム10に対して記憶するよう要求する。これにより、ストレージシステム10は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
 そして、図2に示すように、本実施形態におけるストレージシステム10は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム10は、ストレージシステム10自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード10Aと、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード10Bと、を備えている。なお、アクセラレータノード10Aの数とストレージノード10Bの数は、図2に示したものに限定されず、さらに多くの各ノード10A,10Bが接続されて構成されていてもよい。
 さらに、本実施形態におけるストレージシステム10は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。具体的な構成については詳述する。
 また、以下では、ストレージシステム10が1つのシステムであるとして、当該ストレージシステム10が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム10が有する構成及び機能は、アクセラレータノード10Aあるいはストレージノード10Bのいずれに備えられていてもよい。なお、ストレージシステム10は、図2に示すように、必ずしもアクセラレータノード10Aとストレージノード10Bとを備えていることに限定されず、いかなる構成であってもよい。また、ストレージシステム10は、コンテンツアドレスストレージシステムであることにも限定されない。
 図3に、ストレージシステム10の構成を示す。この図に示すように、ストレージシステム10は、データを記憶するデータ記憶装置30と、当該データ記憶装置30に対するデータの記憶及び読み出し動作を制御するデータ処理装置20と、を備えている。なお、実際には、データ処理装置20は、図2に示したアクセラレータノード10A及びストレージノード10Bが備えているCPU(Central Processing Unit)などの複数の演算装置にて構成されている。また、記憶装置30は、図2に示したアクセラレータノード10A及びストレージノード10Bが備えているハードディスクなどの記憶装置にて構成されている。
 そして、図3に示すように、上記データ処理装置20は、プログラムが組み込まれることにより構築された、ブロック生成部21と、重複チェック部22と、フラグメント生成部23と、分散記憶制御部24と、格納位置管理部25と、を備えている。また、データ記憶装置30は、バックアップ対象データを格納する複数の記憶装置31と、格納したデータの位置を記憶する格納位置情報記憶部32と、を備えている。以下、各構成について詳述する。同時に、上記各構成によるデータの処理の様子を、図4乃至図8を参照して説明する。なお、上記プログラムは、例えば、CD-ROMなどの記憶媒体に格納された状態でストレージシステム10に提供される。あるいは、上記プログラムは、ネットワーク上の他のサーバコンピュータの記憶装置に記憶され、当該他のサーバコンピュータからネットワークを介してストレージシステム10に提供されてもよい。
 まず、上記ブロック生成部21は、図5の矢印Y1に示すようにバックアップ対象データAの入力を受けると、図4及び図5の矢印Y2に示すように、当該バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値H(内容識別情報)を算出する(矢印Y3)。なお、ハッシュ値Hは、例えば、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容に基づいて算出する。なお、このブロック生成部21による処理は、アクセラレータノード10Aにて実行される。
 また、上記重複チェック部22(重複チェック手段)は、バックアップ対象データAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に記憶装置31に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、重複チェック部22は、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図5の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFIファイル内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、記憶要求にかかるブロックデータDのコンテンツアドレスCAとして返却する。これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、記憶要求されたブロックデータDとして使用されることとなり、当該記憶要求にかかるブロックデータDは記憶する必要がなくなる。
 なお、ストレージノード10Bが複数存在する場合には、ブロックデータDから上述したように算出したハッシュ値Hに基づいて、Write Initiator(WI)と呼ばれる、データ格納時の初期処理(後述する、圧縮処理やフラグメント化処理)を担当する1つのストレージノードが決定される。
 また、上記フラグメント生成部23(データセット生成手段)は、上述したように重複チェック部22にてまだ記憶されていないと判断されたブロックデータDを、圧縮して、図5の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図4の符号D1~D9に示すように、9つのフラグメントデータ(分割データ41)に分割する。さらに、フラグメント生成部23は、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ41に追加する。例えば、図4の符号D10~D12に示すように、3つのフラグメントデータ(冗長データ42)を付加する。これにより、9つの分割データ41と、3つの冗長データとにより構成される12個のフラグメントデータからなるデータセット40を生成する。なお、上記フラグメント生成部23による処理は、上述したWIと呼ばれる1つのストレージノードによって実行される。
 また、上記分散記憶制御部24(分散記憶制御手段)は、上記フラグメント生成部23にて生成されたデータセットを構成する各フラグメントデータを、記憶装置31に形成された各記憶領域に、それぞれ分散して格納する。例えば、図4に示すように、12個のフラグメントデータD1~D12を生成した場合には、12個の記憶装置31にそれぞれ形成したデータ格納ファイルF1~F12(データ格納領域)に、各フラグメントデータD1~D12を1つずつそれぞれ格納する(図6の矢印Y6参照)。
 このとき、分散記憶制御部24は、各データ格納ファイルF1~F12内においてそれぞれ同一位置に、1つのデータセット40を構成する各フラグメントデータD1~D12をそれぞれ格納する。例えば、図7に示すように、各データ格納ファイルF1~F12の先頭位置を基準とした同一位置に、全てのフラグメントデータD1~D12を格納する。なお、図7の例では、図の上端をファイルの先頭としている。
 具体的に、分散記憶制御部24は、各データ格納ファイルF1~F12に対する格納位置を予め設定することなく、当該各データ格納ファイルF1~F12に格納されているデータの次に空いている格納位置に、それぞれフラグメントデータD1~D12を格納する。例えば、図8に示す例では、各データ格納ファイルF1~F12の網掛け部分までそれぞれデータが既に格納されているが、その次の領域に、各フラグメントデータD1~D12を格納して、データセット40の格納位置が揃うようにする。また、特に、分散記憶制御手段25は、一のデータセット40を構成する各フラグメントデータD1~D12を、同一のタイミングで各データ格納ファイルF1~F12に格納する。
 さらに、分散記憶制御部24は、データセット40を構成する各フラグメントデータD1~D12に、同一のデータセット40を構成していることを識別するために、同一の識別情報(WriteRecordSeqNum)を付与して、各データ格納ファイルF1~F12にそれぞれ格納する。そして、分散記憶制御部24は、ストレージシステム10のリソースが空いているときなど任意のタイミングで、上記識別情報を調べることで、同一のデータセット40を構成している各フラグメントデータが、各データ格納ファイルF1~F12内の同一の格納位置に格納されているか、ということを調べることができる。従って、分散記憶制御部24は、各データ格納ファイルF1~F12内の同一の格納位置に格納されている各フラグメントデータが、全て同一の識別情報(WriteRecordSeqNum)を含んでいなければ、当該各フラグメントデータが同一の格納位置に格納されるよう当該格納位置を修正して、データを再格納する。
 なお、上記では、分散記憶制御部24が、データ格納ファイルといった論理的な各記憶領域内における同一位置に、データセット40を構成する各フラグメントデータD1~D12を格納することを説明したが、複数の各記憶装置31内において物理的に同一位置に格納してもよい。
 また、上記格納位置管理部24(格納位置情報管理手段)は、上述したように記憶装置31に格納したフラグメントデータD1~D12の格納位置、つまり、当該フラグメントデータD1~D12にて復元されるブロックデータDの格納位置を表す、コンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム10内のファイルシステム、つまり、アクセラレータノード10Aに返却する(図5の矢印Y7)。すると、アクセラレータノード10Aは、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理しておく。
 また、上記格納位置管理部25は、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード10BがMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード10Aやストレージノード10Bの記憶装置30に格納される(格納位置情報記憶部32)。
 さらに、上記格納位置管理部25は、上述したように格納したバックアップ対象データを読み出す制御を行う。例えば、ストレージシステム10に対して、特定のファイルを指定して読み出し要求があると(図6の矢印Y11参照)、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する(図6の矢印Y12参照)。そして、格納位置管理部25は、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる(図6の矢印13参照)。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
 一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す(図6の矢印Y14参照)。このとき、各フラグメントが格納されているデータ格納ファイルF1~F12と、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
 そして、格納位置管理部26は、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する(図6の矢印Y15参照)。さらに、格納位置管理部25は、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して、読み出し制御を行っているアクセラレータノード10Aに返却する(図6の矢印Y16参照)。
 [動作]
 次に、上述したストレージシステムの動作を、図9のフローチャートを参照して説明する。
 はじめに、ストレージシステム10が、所定のバックアップ対象装置12からバックアップシステム11を介してバックアップ対象データを受け、当該バックアップ対象データを記憶装置31に記憶する動作(データ記憶工程)について説明する。
 まず、ストレージシステム10、つまり、アクセラレータノード10Aは、バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割する(ステップS1)。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値H(内容識別情報)を算出する(ステップS2)。そして、このハッシュ値Hが、MFIファイルに登録されているか否かを調べる。
 このとき、登録されている場合には、当該データブロックDのハッシュ値HにMFIファイル内で関連付けられているコンテンツアドレスCAを、このデータブロックDの格納位置として、ファイルシステムに返却する。つまり、バックアップ対象データと同一のデータが既に記憶されているため、この既に記憶されている同一のデータを用いて、バックアップ対象データを記憶したこととする。従って、後にこのバックアップ対象データを読み出す際には、ファイルシステムが上記コンテンツアドレスCAが表す格納位置のデータを読み出すことで、同一のデータを読み出すことができる。
 一方、ブロックデータDのハッシュ値がMFIファイルに登録されていなかった場合、つまり、ブロックデータDと同一のデータが記憶装置31に記憶されていなかった場合には、当該ブロックデータDを記憶する処理に進む。このとき、まず、上述したように算出したハッシュ値の一部に基づいて、実際にデータを格納するストレージノード10Bを特定し、また、そのうちの1つのストレージノード10Bを、以下に説明するようブロックデータDに対する記憶前処理を実行するWrite Initiator(WI)として決定する。
 続いて、上述したようにWIとして決定されたストレージノード10Bは、ブロックデータDを圧縮した後に、例えば、9つのフラグメントデータに分割する(ステップS3)。また、この分割データがいくつかが欠けた場合であっても、上記ブロックデータDを復元できるよう、上記フラグメントデータに冗長データを例えば3つ付加する。そして、9つの分割データと3つの冗長データとにより構成される12個とのフラグメントデータによるデータセットを生成する(ステップS4、データセット生成工程)。
 続いて、WIとして決定されたストレージノード10Bは、上記各フラグメントにデータセットを識別するためのIDを付与する(ステップS5)。つまり、一のブロックデータDから分割されて生成されたデータセットを構成する各フラグメントデータには、全て同一のIDが付与される。そして、ストレージノード10Bは、当該ストレージノード10Bが装備している記憶装置31や、他のストレージノード10Bが装備している記憶装置31内に、データの記憶先となる複数のデータ格納ファイルF1~F12が存在するか確認し、各データ格納ファイルF1~F12に、各フラグメントデータD1~D12を格納する(ステップS6、分散記憶制御工程)。このとき、1つのフラグメントデータを1つのデータ格納ファイルに格納する。
 そして、上述した分散記憶の際には、ストレージノード10Bは、各データ格納ファイルF1~F12内における同一位置に、1つのデータセット40を構成する各フラグメントデータD1~D12をそれぞれ格納する。例えば、図7に示すように、各データ格納ファイルF1~F12の先頭を基準とした同一位置に、全てのフラグメントデータD1~D12を格納する。
 具体的な処理として、ストレージノード10Bは、1つのデータセット40の構成する各フラグメントデータD1~D12を、同一のタイミングで各データ格納ファイルF1~F12にそれぞれ格納する。そして、このとき、各データ格納ファイルF1~F12に対する格納位置を予め設定することなく、当該各データ格納ファイルF1~F12に格納されているデータの次に空いている格納位置に、それぞれフラグメントデータD1~D12を格納する(ステップS6)。例えば、図8に示す例では、各データ格納ファイルF1~F12の網掛け部分までそれぞれデータが既に格納されているが、その次の領域に、各フラグメントデータD1~D12を格納して、データセット40の位置が揃うようにする。
 そして、ストレージノード10Bは、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(先頭8B)と、論理格納位置を表す情報と、を組み合わせて、記憶装置31に格納したフラグメントデータD1~D12の格納位置を表す、コンテンツアドレスCAを生成する。そして、ストレージノード10Bは、このコンテンツアドレスCAを、アクセラレータノード10Aに返却する。すると、アクセラレータノード10Aでは、返却されたコンテンツアドレスCAを、実際に記憶したバックアップ対象データのファイル名などと関連付けて、ファイルシステムにて管理する。
 また、ストレージノード10Bは、上記生成したブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード10BがMFIファイルにて管理する。このハッシュ値HとコンテンツアドレスCAとを管理するMFIファイルは、上述したように、新たにバックアップ対象データを格納する際に、すでに同一内容のデータが格納されているか否かを確認するために用いられる。
 ここで、上述した各フラグメントデータD1~D12を各データ格納ファイルF1~F12に格納する際、つまり、WIとして決定されたストレージノード10Bから、他の各ストレージノード10Bにフラグメントデータを格納する際には、当該ストレージノード10B間で通信がダウンしたり、通信遅延が発生する場合が生じうる。その場合には、1つのデータセット40の構成する全てのフラグメントデータD1~D12が、各データ格納ファイルF1~F12内の同一位置に格納されない事態が生じうる。このような事態を想定して、ストレージシステム10では、リソースが空いているなど任意のタイミングで、すでに記憶されている各フラグメントデータD1~D12に含まれるデータセット毎の識別情報(WriteRecordSeqNum)を参照して、一つのデータセット40の構成する全てのフラグメントデータD1~D12が、各データ格納ファイルF1~F12内の同一位置に格納されるよう、再格納処理を行う。
 次に、ストレージシステム10が、バックアップシステム11を介してデータの読み出し要求を受け、記憶装置31からデータを読み出す動作(データ読み出し工程)について説明する。
 ストレージシステム10に読み出し要求があると、まず、アクセラレータノード10Aが読み出し要求にかかるファイルに対応するショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、このコンテンツアドレスCAを受けたストレージノード10Bは、当該コンテンツアドレスCAがMFIファイルに登録されているか否かを調べ、登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
 一方、登録されている場合には、上記コンテンツアドレスCAに基づいて、読み出し要求にかかるデータを構成する各フラグメントデータの格納位置を特定する。このとき、各フラグメントが格納されているデータ格納ファイルF1~F12と、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
 そして、ストレージノード10Bは、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、ストレージノード10Bは、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して、読み出し制御を行っているアクセラレータノード10Aに返却する。
 なお、仮に、記憶装置31の障害により、1つのデータセットを構成する12個のフラグメントデータのうち3つのフラグメントデータを読み取ることができなかった場合であっても、上述した3つの冗長データを付加している場合であれば、元のブロックデータを復元することができる。特に、12個のフラグメントデータをそれぞれ異なる記憶装置31(ディスク)に格納した場合には、3つの記憶装置31の同時障害までは対応可能である。
 以上により、本実施形態におけるストレージシステム10によると、記憶したデータを読み出す際に、当該データを構成するデータセットのうち1つのフラグメントデータの格納位置を特定することで、他のフラグメントデータの格納位置も容易に特定することができる。従って、データ読み出し時に、データセットを構成する全てのフラグメントの位置を特定する必要がなく、高速にデータを読み出すことができる。その結果、冗長性を維持しつつ、高速にデータを読み出すことが可能な高性能のストレージシステムを実現することができる。
 <実施形態2>
 次に、本発明の第2の実施形態を、図10乃至図17を参照して説明する。図10は、ストレージシステムの構成を示す機能ブロック図である。図11乃至図16は、ストレージシステムの動作を説明するための説明図である。図17は、ストレージシステムの動作を示すフローチャートである。
 [構成]
 図10に示すように、本実施形態におけるストレージシステム10は、上述した実施形態1におけるものとほぼ同様の構成を採っている。そして、本実施形態では、さらに、データ処理装置20にプログラムが組み込まれることによって構築された、ストリームID付与部26を備えている。また、これに伴い、分散記憶制御部24などの構成が異なっている。以下、主に実施形態1と異なる点について詳述する。なお、上記プログラムは、CD-ROMなどの記憶媒体にてストレージシステム10に提供されたり、他のサーバコンピュータからネットワークを介してストレージシステム10に提供される。
 まず、上記ストリームID付与部26(識別情報付与手段)は、バックアップ対象データAの入力を受けると、一群のデータである当該バックアップ対象データAを区別する識別情報であるストリームIDを付与する。例えば、バックアップ対象データAに対してストリームID=ST1を付与し、バックアップ対象データB(図示せず)に対してストリームID=ST2を付与する。
 なお、ストリームIDは、バックアップ対象データを区別するのみならず、当該バックアップ対象データAの出力元であるバックアップ対象装置12を区別する情報であってもよい。つまり、ストリームID付与部21は、所定のルールによりまとめられたバックアップ対象データ毎に、異なるストリームIDを付与する。
 また、上記ブロック生成部21は、上述した実施形態1のものと同様に、バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割し、このブロックデータDのデータ内容に基づくハッシュ値Hを算出する。そして、上記ブロック生成部21は、バックアップ対象データAをブロックデータDに分割する際に、上述したようにバックアップ対象データAに付与したストリームIDを、各ブロックデータDにも引き継いで付与する。なお、上記ストリームID付与部21は、上述したように、バックアップ対象データAに対してストリームIDを付与することに限定されない。例えば、ブロック生成部22にてバックアップ対象データAをブロックデータDに分割する際に、当該ブロックデータD毎にバックアップ対象データAを識別する同一のストリームIDを付与してもよい。
 なお、上記重複チェック部22は上述した実施形態1とほぼ同じ構成であるため、説明は省略する。また、上記フラグメント生成部23は、上述同様に、ブロックデータDを分割した分割データと、冗長データと、により構成される12個のフラグメントデータからなるデータセット40を生成する。
 そして、上記フラグメント生成部23は、さらに、生成した全てのフラグメントデータD1~D12に、当該フラグメントデータの元となるブロックデータD、つまり、フラグメントデータD1~D12から復元されるブロックデータDに付与されたストリームIDを、それぞれ付与する。
 また、上記分散記憶制御部24は、上述した実施形態1と同様に、基本的には、記憶装置31内に形成された各データ格納ファイルF1~F12内における同一位置に、1つのデータセット40を構成する各フラグメントデータD1~D12を格納する。
 ここで、上述したように、フラグメントデータを格納した場合には、同時に複数のバックアップ対象データの記憶要求があると、図11に示すように、各データ格納ファイルF1~F12に、ストリームID(ST1,ST2,ST3)が異なる各データセットを構成する各フラグメントデータが交互に格納される事態が生じうる。なお、図11では、ストリームIDが同一のデータセットを、同一の模様にて図示している。
 このため、本実施形態における分散記憶制御部24では、各データ格納ファイルF1~F12に格納する前に、各フラグメントデータD1~D12をストリームID毎に区別して異なるバッファメモリに一旦格納する。そして、その後、バッファメモリ内のフラグメントデータD1~D12を各データ格納ファイルF1~F12に格納する。その具体例を、図12乃至図16を参照して説明する。
 まず、分散記憶制御部24は、各データ格納ファイルF1~F12毎に、それぞれストリームID毎のバッファメモリを設定する。例えば、3つのストリームID(ST1,ST2,ST3)に対応するバッファメモリBF1,BF2,BF3を設定する場合には、図12に示すように、1つのデータ格納ファイルF1に対して3つのバッファメモリBF1,BF2,BF3を設定し、これを12セット設定する。
 そして、分散記憶制御部24は、フラグメントデータD1~D12に含まれているストリームIDに対応するバッファメモリBF1,BF2,BF3に、当該各フラグメントデータD1~D12をそれぞれ格納する。例えば、図12に示す例では、元となるブロックデータD(バックアップ対象データA)のデータセット40がストリームID=ST1であるとする。この場合には、データセット40を構成する各フラグメントデータD1~D12を、それぞれ後に格納先となる各データ格納ファイルF1~F12にそれぞれ設定されたストリームID=ST1の各バッファメモリBF1に格納する。つまり、フラグメントデータD1をデータ格納ファイルF1のバッファメモリBF1に格納し、フラグメントデータD2をデータ格納ファイルF2のバッファメモリBF2に格納し、同様に、全てのデータ格納ファイルのバッファメモリに対してフラグメントデータを格納する。このとき、各フラグメントデータD1~D12を、各バッファメモリBF1~BF3内に既に格納されているデータの次に空いている格納領域に、全てを同時のタイミングで格納する。
 これにより、各バッファメモリBF1~BF3内には、対応するストリームIDのフラグメントデータが連続して位置して格納される。また、このとき、同一のデータセットを構成する各フラグメントデータD1~D12は、各バッファメモリBF1~BF3内において同一の位置に格納される。例えば、図12に示すように、データセット40のフラグメントデータD1,D2を各バッファメモリBF1に格納した場合には、図13に示すように、当該バッファメモリBF1のそれぞれ同一の位置である最後の格納位置に格納される。このように、各フラグメントデータをストリームID毎に振り分けて、当該ストリームIDに対応する各バッファメモリに格納していくことで、全てのデータ記憶ファイルF1~F12にそれぞれ対応する特定のストリームIDの各バッファメモリが、どのタイミングにおいても全て同一の容量となる。例えば、図13の例では、各バッファメモリBF1は全ての同じ容量であり、その他のバッファメモリBF2,BF3も、対応するストリームID毎に、全て同じ容量である。
 そして、分散記憶制御部24は、上記各バッファメモリBF1~BF3の容量が所定容量、例えば、満杯となったタイミングで、そのバッファメモリBF1~BF3内の全てのフラグメントデータを、データ格納ファイルF1~F12に格納する。例えば、図13の例では、ストリームID=ST1の全てのバッファメモリBF1が同時に満杯となるため、当該各バッファメモリBF1内のフラグメントデータを同一のタイミングで各データ格納ファイルF1~F12に格納する。このとき、分散記憶制御部24は、各データ格納ファイルF1~F12に格納されているデータの次に空いている格納位置に、それぞれフラグメントデータD1~D12を格納する。例えば、図14に示す例では、各データ格納ファイルF1~F12が空の状態である場合に、当該各データ格納ファイルF1~F12の先頭からフラグメントデータを格納した様子を示している。
 すると、図14に示すように、各データ格納ファイルF1~F12では、同一のデータセット40を構成する各フラグメントデータD1~D12の格納位置が揃うよう格納される。このとき、さらに、同じストリームIDが付与されたデータセットが連続して格納されることとなる。なお、図15には、その後、さらに別のストリームID(ST2)に対応するバッファメモリBF2が満杯となり、当該バッファメモリBF2内のフラグメントデータが、データ格納ファイルF1~F12に格納されたときの様子を示している。
 また、本実施形態における分散記憶制御部24は、上述したようにフラグメントデータをデータ格納ファイルに格納する時のみならず、さらに、すでに格納されたフラグメントデータに対しても、同一のストリームIDのフラグメントデータが連続して配置されるよう、事後的に格納位置を変更する機能も有する。例えば、ストレージシステム10自体のリソースが所定値以上空いているときに、各データ格納ファイルF1~F12に格納されているフラグメントデータを、ストリームIDが同一のものが連続するよう格納位置を移動する。具体的には、図11に示すように、各データ格納ファイルF1~F12の同一の格納位置(横一列)に格納されている全てのフラグメントデータの格納位置を、当該各フラグメントデータにて構成されるデータセット40ごと、変更することができる。これにより、図11に示すように、ストリームIDが異なるデータセットが交互に格納された状態から、図16に示すように、同一のストリームID(ST1,ST2,ST3)のものが連続する格納状態にすることができる。なお、分散記憶制御装置24が有するその他の機能は、上記実施形態1とほぼ同じである。
 ここで、上記では、フラグメント生成部23にて、ブロックデータDを分割してデータセット40を生成する際に、当該データセット40を構成する各フラグメントデータD1~D12にそれぞれ同一のストリームIDを付与したが、必ずしも各フラグメントデータD1~D12に付与する必要はない。例えば、ブロックデータDから生成したデータセット40を構成する各フラグメントデータF1~F12を、当該ブロックデータDに付与されたストリームIDに対応するデータバッファBF1~BF3に格納することで、ストリームID毎にフラグメントデータを連続させて格納することができる。そして、その後は、同じデータセット40を構成する各フラグメントデータD1~D12は、各バッファメモリBF1~BF3内及びデータ格納ファイルF1~F12内で同一の格納位置に格納されているため、当該同一の格納位置にある全てのフラグメントデータの格納位置をまとめて変更することで、データセット毎の格納位置の変更が可能となる。
 また、上記格納位置管理部25は、上述した実施形態2と同様に、データの格納位置をコンテンツアドレスCAで管理する。なお、その説明は省略する。
 [動作]
 次に、上述したストレージシステムの動作を、図17のフローチャートを参照して説明する。
 ここで、以下では、ストレージシステム10が、所定のバックアップ対象装置12からバックアップシステム11を介してバックアップ対象データを受け、当該バックアップ対象データを記憶装置31に記憶する動作(データ記憶工程)について説明する。なお、上述した実施形態と同様の動作については、説明を省略する。
 まず、ストレージシステム10、つまり、アクセラレータノード10Aは、バックアップ対象データAの入力を受けると、一群のデータである当該バックアップ対象データAを区別する識別情報であるストリームIDを付与する(ステップS11、識別情報付与工程)。
 そして、アクセラレータノード10Aは、バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割する(ステップS12)。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値H(内容識別情報)を算出する(ステップS13)。そして、このハッシュ値Hが、MFIファイルに登録されているか否かを調べる。登録されている場合には、当該データブロックDのハッシュ値HにMFIファイル内で関連付けられているコンテンツアドレスCAを、このデータブロックDの格納位置として、ファイルシステムに返却する。一方、ブロックデータDのハッシュ値がMFIファイルに登録されていなかった場合には、当該ブロックデータDを記憶する処理を行う。
 なお、上述したようにバックアップ対象データAをブロックデータDに分割する際には、上述したようにバックアップ対象データAに付与したストリームIDを、各ブロックデータDにも引き継いで付与する。
 続いて、ストレージノード10Bは、ブロックデータDを圧縮した後に、例えば、9つのフラグメントデータに分割し(ステップS14)、上記フラグメントデータに冗長データを例えば3つ付加する。そして、9つの分割データと3つの冗長データとにより構成される12個のフラグメントデータによるデータセットを生成する(ステップS15、データセット生成工程)。続いて、ストレージノード10Bは、上記各フラグメントにデータセットを識別するためのIDを付与する(ステップS16)。
 そして、ストレージノード10Bは、各データ格納ファイルF1~F12毎に、それぞれストリームID毎のバッファメモリを設定する。そして、フラグメントデータD1~D12に含まれているストリームIDに対応するバッファメモリBF1,BF2,BF3に、当該各フラグメントデータD1~D12をそれぞれ格納する(ステップS17)。このとき、各フラグメントデータD1~D12を、各バッファメモリBF1~BF3内に既に格納されているデータの次に空いている格納領域に、全て同時のタイミングで格納する。
 これにより、各バッファメモリBF1~BF3内には、対応するストリームIDのフラグメントデータが連続して位置して格納される。また、このとき、同一のデータセットを構成する各フラグメントデータD1~D12は、各バッファメモリBF1~BF3内において同一の格納位置に格納される。
 その後、上記各バッファメモリBF1~BF3の容量が所定容量、例えば、満杯となったタイミングで(ステップS18でYes)、そのバッファメモリBF1~BF3内のフラグメントデータを、データ格納ファイルF1~F12に格納する(ステップS19、分散記憶制御工程)。このとき、各データ格納ファイルF1~F12に格納されているデータの次に空いている格納位置に、それぞれフラグメントデータD1~D12を格納する。なお、バッファメモリからデータ格納ファイルにフラグメントデータを格納するタイミングは、必ずしも上記タイミングに限定されない。例えば、ある基準時間から設定された時間が経過したタイミングで実行してもよい。
 これにより、ストレージノード10Bは、各データ格納ファイルF1~F12内において同一位置に、1つのデータセット40を構成する全てのフラグメントデータD1~D12を格納することができる。さらに、各データ格納ファイルF1~F12内には、同一のストリームIDのデータが連続して格納されることとなる。
 そして、ストレージノード10Bは、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(先頭8B)と、論理格納位置を表す情報と、を組み合わせて、記憶装置31に格納したフラグメントデータD1~D12の格納位置を表す、コンテンツアドレスCAを生成する。そして、ストレージノード10Bは、このコンテンツアドレスCAを、アクセラレータノード10Aに返却する。すると、アクセラレータノード10Aでは、返却されたコンテンツアドレスCAを、実際に記憶したバックアップ対象データのファイル名などと関連付けて、ファイルシステムにて管理する。
 また、ストレージノード10Bは、上記生成したブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、MFIファイルにて管理する。このハッシュ値HとコンテンツアドレスCAとを管理するMFIファイルは、上述したように、新たにバックアップ対象データを格納する際に、すでに同一内容のデータが格納されているか否かを確認するために用いられる。
 その後、例えば、ストレージシステム10自体のリソースが所定値以上空いているときなどの任意のタイミングで(ステップS20でYes)、すでに格納されたフラグメントデータに対して、同一のストリームIDのフラグメントデータが連続して配置されるよう、事後的に格納位置を変更する処理を実行する(ステップS21)。この処理は、各データ格納ファイルF1~F12の同一の格納位置に格納されている各フラグメントデータ内のストリームIDを調べ、なるべく多くの同じストリームIDのフラグメントデータつまりデータセットの格納位置が連続するよう、当該フラグメントデータの格納位置を変更する。
 以上により、本実施形態におけるストレージシステム10によると、記憶したデータを読み出す際に、当該データを構成するデータセットのうち1つのフラグメントデータの格納位置を特定することで、他のフラグメントデータの格納位置も容易に特定することができる。また、一群のデータを構成する複数の記憶対象データが連続して記憶されるため、関連する内容のデータがまとまって記憶されることとなる。従って、ストレージシステムが記憶したデータを読み出す際に、関連するデータをまとめて読み出すことが可能となる。その結果、データ読み出し速度及び効率の向上を図ることができ、ストレージシステムの性能の向上を図ることができる。
 <実施形態3>
 本発明の第3の実施形態を、図18を参照して説明する。図18は、ストレージシステムの構成を示す機能ブロック図である。なお、本実施形態では、ストレージシステムの概略を説明する。
 図18に示すように、本実施形態におけるストレージシステム1は、
 複数の記憶手段5と、これら複数の記憶手段5に対してデータを記憶すると共に当該記憶手段5に記憶されているデータを読み出すデータ処理手段2と、を備えている。
 そして、上記データ処理手段2は、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段3と、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する分散記憶制御手段4と、を備える。
 さらに、上記分散記憶制御手段4は、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段5に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、上記データセットを構成する上記各フラグメントデータをそれぞれ格納する、
という構成を採る。
 上記発明によると、まず、ストレージシステムは、上位ホストからのデータ記憶要求により記憶対象データを受け付ける。そして、記憶対象データを複数の分割データに分割すると共に、当該記憶対象データを復元するための冗長データを生成し、これら分割データと冗長データとである複数のフラグメントデータから成るデータセットを生成する。続いて、ストレージシステムは、1つのデータセットを構成する各フラグメントデータを各記憶手段に分散して記憶する。このとき、ストレージシステムは、一のデータセットを構成する各フラグメントデータを、各記憶手段内に形成された各記憶領域内、例えば、各ファイルのデータ格納領域の先頭から同一位置に格納する。
 これにより、ストレージシステムが記憶したデータを読み出す際には、当該データを構成するデータセットのうち1つのフラグメントデータの格納位置を特定することで、他のフラグメントデータの格納位置も容易に特定することができる。従って、データ読み出し時に、データセットを構成する全てのフラグメントの位置を特定する必要がなく、高速にデータを読み出すことができる。その結果、冗長性を維持しつつ、高速にデータを読み出すことが可能な高性能のストレージシステムを実現することができる。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記各記憶手段に生成された各ファイルに既に格納されているデータの次に空いている格納位置に、上記データセットを構成する上記各フラグメントデータをそれぞれ格納する、
という構成を採る。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータを、同一のタイミングで上記各記憶手段にそれぞれ格納する、
という構成を採る。
 上述したように、分散記憶制御手段にて各フラグメントデータを各記憶手段内にそれぞれ格納することで、簡易な処理にてデータセットを構成する各フラグメントデータを同一位置にそれぞれ格納することができる。従って、データ記憶処理も高速化することができる。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータに、当該データセットを識別するための同一の識別情報をそれぞれ付与して、当該データセットを構成する上記各フラグメントデータを上記各記憶手段にそれぞれ格納する、
という構成を採る。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータが上記各記憶手段に形成された上記各記憶領域内のそれぞれ同一位置に格納されているか否かを、当該各フラグメントデータに付与された上記識別情報に基づいて調べ、当該各フラグメントデータが上記各記憶領域内の同一位置に格納されていない場合に、上記データセットを構成する上記各フラグメントデータが上記各記憶領域内の同一位置にそれぞれ格納されるよう当該各フラグメントデータの格納位置を変更する、
という構成を採る。
 これにより、データセットを構成する各フラグメントデータには、同一の識別情報が付与されて複数の記憶手段に格納される。従って、既に記憶されているフラグメントデータに付与されている識別情報を調べることで、一のデータセットを構成する各フラグメントデータが各記憶手段の同一位置に格納されているか否かを判別できる。そして、各フラグメントデータに含まれる識別情報に基づいて、各記憶手段に格納された当該フラグメントデータの格納位置を変更することができる。その結果、上述同様に、一のデータセットを構成する各フラグメントデータを、各記憶手段内に形成された記憶領域内においてそれぞれ同一位置に格納することができ、高速にデータを読み出すことが可能となる。
 また、上記ストレージシステムでは、
 上記データ処理手段は、上記分散記憶制御手段にて上記各記憶手段に格納した上記記憶対象データの格納位置を表す格納位置情報を生成して管理する格納位置情報管理手段を備え、
 この格納位置情報管理手段は、データの読み出し要求時に特定された当該データの上記格納位置情報に基づいて、当該格納位置情報にて表される上記各記憶手段内の格納位置に格納されたデータを読み出す、
という構成を採る。
 また、上記ストレージシステムでは、
 上記データ処理手段は、上記記憶対象データの内容に固有の内容識別情報を生成すると共に、上記各記憶手段に既に格納されている記憶対象データの内容に固有の内容識別情報と比較して、上記各記憶手段に同一内容の上記記憶対象データが記憶されているか否かを調べる重複チェック手段を備え、
 当該重複チェック手段は、上記記憶対象データと同一内容のデータが既に上記各記憶手段に記憶されている場合に、当該記憶対象データを上記各記憶手段に格納せず、当該記憶対象データの格納位置情報として上記同一内容のデータの格納位置情報を用いる、
という構成を採る。
 これにより、記憶対象データの内容に基づいて当該データの格納した位置を表す格納位置情報を特定するコンテンツアドレスストレージシステムに、上述した構成を適用することができる。従って、既に記憶されているデータと同一内容の記憶対象データを重複して記憶することを抑制することができ、データ記憶使用量を低減でき、システム自体の低コスト化を図ることができる。
 また、上記ストレージシステムでは、
 さらに、上記データ処理手段が、記憶要求された一群のデータを区別する識別情報を、当該一群のデータに付与する識別情報付与手段を備えている。
 そして、上記分散記憶制御手段は、同一の上記識別情報が付与された上記一群のデータに含まれる複数の上記記憶対象データに対応する複数の上記データセットをそれぞれ構成する上記各フラグメントデータを、上記各記憶領域内における格納位置が連続するよう当該各記憶領域に格納する、という構成を採る。
 これにより、記憶手段には、一群のデータを構成する複数の記憶対象データが連続して記憶されるため、関連する内容のデータがまとまって記憶されることとなる。従って、ストレージシステムが記憶したデータを読み出す際に、関連するデータをまとめて読み出すことが可能となる。その結果、データ読み出し速度及び効率の向上を図ることができ、ストレージシステムの性能の向上を図ることができる。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記記憶手段に格納される前であって、同一の上記識別情報が付与された上記一群のデータに含まれる複数の上記記憶対象データに対応する複数の上記データセットをそれぞれ構成する上記各フラグメントデータを、バッファメモリ内の格納位置が連続するよう格納し、当該バッファメモリに格納された上記各フラグメントデータを上記各記憶手段に格納する、
という構成を採る。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、同一の上記識別情報が付与された上記一群のデータに含まれる複数の上記記憶対象データに対応する複数の上記データセットをそれぞれ構成する上記各フラグメントデータを、上記識別番号毎にそれぞれ異なる上記バッファメモリに格納し、当該識別番号毎にそれぞれ設けられた上記各バッファメモリに格納された上記各フラグメントデータを上記各記憶手段に格納する、
という構成を採る。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記バッファメモリの容量が所定容量に達したタイミングで、当該バッファメモリに格納された上記各フラグメントデータを上記各記憶手段に格納する、
という構成を採る。
 これにより、ストレージシステムは、一旦、バッファメモリに、一群のデータが連続するよう格納し、その後、記憶手段に格納する。従って、関連する内容のデータをまとめて格納する処理が簡易となり、ストレージシステムの性能の向上を図ることができる。
 また、上記ストレージシステムでは、
 上記分散記憶制御手段は、上記各記憶手段に既に格納されている、同一の上記識別情報が付与された上記一群のデータに含まれる複数の上記記憶対象データに対応する複数の上記データセットをそれぞれ構成する上記各フラグメントデータを、上記各記憶領域内における格納位置が連続するよう当該各記憶領域に再格納する、
という構成を採る。
 これにより、ストレージシステムは、すでに記憶手段に格納したデータであっても、後に、一群のデータを構成する記憶対象データが連続するよう再格納する。従って、その後のデータ読み出し速度及び効率の向上を図ることができる。
 また、上記ストレージシステムでは、
 上記データセット生成手段は、上記識別情報付与手段にて上記一群のデータに付与された上記識別情報を、当該一群のデータに含まれる複数の上記記憶対象データに対応する上記データセットを構成する上記各フラグメントデータに含める、
という構成を採る。
 これにより、各記憶領域に格納する各フラグメントデータが、どの一群のデータに属しているものであるかを容易に把握することができる。従って、各フラグメントデータに含まれる識別情報に基づいて、一群のデータに含まれる記憶対象データを連続して格納する処理を容易に実行することができる。
 また、上述したストレージシステムは、情報処理装置(システム)に、プログラムが組み込まれることで実現できる。
 具体的に、本発明の他の形態であるプログラムは、
 複数の記憶手段を備えた情報処理装置に、
 上記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現させるプログラムである。
 そして、上記データ処理手段は、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する分散記憶制御手段と、を備える。
 さらに、上記分散記憶制御手段は、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 また、上記プログラムでは、
 上記分散記憶制御手段は、上記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、上記データセットを構成する上記各フラグメントデータをそれぞれ格納する、
という構成を採る。
 また、上述したストレージシステムが作動することにより実行される、本発明の他の形態であるデータ処理方法は、
 複数の記憶手段を備えた情報処理装置が、
 上記複数の記憶手段に対してデータを記憶し、上記記憶手段に記憶されているデータを読み出す。
 そして、上記情報処理装置は、
 上記複数の記憶手段に対してデータを記憶するときに、
 記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、上記分割データと上記冗長データとである複数のフラグメントデータからなるデータセットを生成し、
 上記各フラグメントデータを分散して上記各記憶手段に記憶する。
 さらに、上記情報処理装置は、上記各フラグメントデータを上記各記憶手段に記憶するときに、上記データセットを構成する上記各フラグメントデータを、上記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
という構成を採る。
 また、上記データ処理方法では、
 上記各フラグメントデータを上記各記憶手段に記憶するときに、上記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、上記データセットを構成する上記各フラグメントデータをそれぞれ格納する、
という構成を採る。
 上述した構成を有する、プログラム、又は、データ処理方法、の発明であっても、上記ストレージシステムと同様の作用を有するために、上述した本発明の目的を達成することができる。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
 なお、本発明は、日本国にて2009年1月27日に特許出願された特願2009-015261の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
 本発明は、複数のコンピュータを接続して構成されるストレージシステムに利用することができ、産業上の利用可能性を有する。
1 ストレージシステム
2 データ処理手段
3 識別情報付与手段
4 データセット生成手段
5 分散記憶制御手段
6 記憶手段
10 ストレージシステム
10A アクセラレータノード
10B ストレージノード
11 バックアップシステム
12 バックアップ対象装置
20 データ処理装置
21 ブロック生成部
22 重複チェック部
23 フラグメント生成部
24 分散記憶制御部
25 格納位置管理部
26 ストリームID付与部
30 データ記憶装置
31 記憶装置
32 格納位置記憶部
40 データセット
41 分割データ
42 冗長データ
A バックアップ対象データ
BF1,BF2,BF3 バッファメモリ
CA コンテンツアドレス
D ブロックデータ
D1~D12 フラグメントデータ
F1~F12 データ格納ファイル
H ハッシュ値
 

Claims (12)

  1.  複数の記憶手段と、これら複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段と、を備え、
     前記データ処理手段は、
     記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、前記分割データと前記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、
     前記各フラグメントデータを分散して前記各記憶手段に記憶する分散記憶制御手段と、を備え、
     前記分散記憶制御手段は、前記データセットを構成する前記各フラグメントデータを、前記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
    ストレージシステム。
  2.  請求項1に記載のストレージシステムであって、
     前記分散記憶制御手段は、前記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、前記データセットを構成する前記各フラグメントデータをそれぞれ格納する、
    ストレージシステム。
  3.  請求項1又は2に記載のストレージシステムであって、
     前記分散記憶制御手段は、前記各記憶手段に生成された各ファイルに既に格納されているデータの次に空いている格納位置に、前記データセットを構成する前記各フラグメントデータをそれぞれ格納する、
    ストレージシステム。
  4.  請求項1乃至3のいずれか一項に記載のストレージシステムであって、
     前記分散記憶制御手段は、前記データセットを構成する前記各フラグメントデータを、同一のタイミングで前記各記憶手段にそれぞれ格納する、
    ストレージシステム。
  5.  請求項1乃至4のいずれか一項に記載のストレージシステムであって、
     前記分散記憶制御手段は、前記データセットを構成する前記各フラグメントデータに、当該データセットを識別するための同一の識別情報をそれぞれ付与して、当該データセットを構成する前記各フラグメントデータを前記各記憶手段にそれぞれ格納する、
    ストレージシステム。
  6.  請求項5に記載のストレージシステムであって、
     前記分散記憶制御手段は、前記データセットを構成する前記各フラグメントデータが前記各記憶手段に形成された前記各記憶領域内のそれぞれ同一位置に格納されているか否かを、当該各フラグメントデータに付与された前記識別情報に基づいて調べ、当該各フラグメントデータが前記各記憶領域内の同一位置に格納されていない場合に、前記データセットを構成する前記各フラグメントデータが前記各記憶領域内の同一位置にそれぞれ格納されるよう当該各フラグメントデータの格納位置を変更する、
    ストレージシステム。
  7.  請求項1乃至6のいずれか一項に記載のストレージシステムであって、
     前記データ処理手段は、前記分散記憶制御手段にて前記各記憶手段に格納した前記記憶対象データの格納位置を表す格納位置情報を生成して管理する格納位置情報管理手段を備え、
     この格納位置情報管理手段は、データの読み出し要求時に特定された当該データの前記格納位置情報に基づいて、当該格納位置情報にて表される前記各記憶手段内の格納位置に格納されたデータを読み出す、
    ストレージシステム。
  8.  請求項7に記載のストレージシステムであって、
     前記データ処理手段は、前記記憶対象データの内容に固有の内容識別情報を生成すると共に、前記各記憶手段に既に格納されている記憶対象データの内容に固有の内容識別情報と比較して、前記各記憶手段に同一内容の前記記憶対象データが記憶されているか否かを調べる重複チェック手段を備え、
     当該重複チェック手段は、前記記憶対象データと同一内容のデータが既に前記各記憶手段に記憶されている場合に、当該記憶対象データを前記各記憶手段に格納せず、当該記憶対象データの格納位置情報として前記同一内容のデータの格納位置情報を用いる、
    ストレージシステム。
  9.  複数の記憶手段を備えた情報処理装置に、
     前記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現すると共に、
     前記データ処理手段は、
     記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、前記分割データと前記冗長データとである複数のフラグメントデータからなるデータセットを生成するデータセット生成手段と、
     前記各フラグメントデータを分散して前記各記憶手段に記憶する分散記憶制御手段と、を備え、
     前記分散記憶制御手段は、前記データセットを構成する前記各フラグメントデータを、前記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
    プログラム。
  10.  請求項9に記載のプログラムであって、
     前記分散記憶制御手段は、前記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、前記データセットを構成する前記各フラグメントデータをそれぞれ格納する、
    プログラム。
  11.  複数の記憶手段を備えた情報処理装置が、
     前記複数の記憶手段に対してデータを記憶し、前記記憶手段に記憶されているデータを読み出すと共に、
     前記複数の記憶手段に対してデータを記憶するときに、
     記憶対象データを複数に分割して分割データを生成すると共に、この記憶対象データを復元するための冗長データを生成し、前記分割データと前記冗長データとである複数のフラグメントデータからなるデータセットを生成し、
     前記各フラグメントデータを分散して前記各記憶手段に記憶し、
     前記各フラグメントデータを前記各記憶手段に記憶するときに、前記データセットを構成する前記各フラグメントデータを、前記各記憶手段に形成された各記憶領域内の同一位置にそれぞれ格納する、
    データ処理方法。
  12.  請求項11に記載のデータ処理方法であって、
     前記各フラグメントデータを前記各記憶手段に記憶するときに、前記各記憶手段に生成された各ファイルのデータ格納領域の先頭を基準とした同一位置に、前記データセットを構成する前記各フラグメントデータをそれぞれ格納する、
    データ処理方法。
     
PCT/JP2009/003962 2009-01-27 2009-08-20 ストレージシステム WO2010086922A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200980154991.6A CN102282545B (zh) 2009-01-27 2009-08-20 存储系统
EP09839114.7A EP2393010A4 (en) 2009-01-27 2009-08-20 STORAGE SYSTEM
US13/139,606 US8683121B2 (en) 2009-01-27 2009-08-20 Storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009015261A JP5391705B2 (ja) 2009-01-27 2009-01-27 ストレージシステム
JP2009-015261 2009-01-27

Publications (1)

Publication Number Publication Date
WO2010086922A1 true WO2010086922A1 (ja) 2010-08-05

Family

ID=42395192

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/003962 WO2010086922A1 (ja) 2009-01-27 2009-08-20 ストレージシステム

Country Status (5)

Country Link
US (1) US8683121B2 (ja)
EP (1) EP2393010A4 (ja)
JP (1) JP5391705B2 (ja)
CN (1) CN102282545B (ja)
WO (1) WO2010086922A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012101983A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 ストレージシステム
JP2013532853A (ja) * 2010-10-26 2013-08-19 株式会社日立製作所 ストレージ装置及びデータ制御方法
CN104572679A (zh) * 2013-10-16 2015-04-29 北大方正集团有限公司 舆情数据存储方法和装置
CN105159603A (zh) * 2015-08-18 2015-12-16 福建省海峡信息技术有限公司 一种分布式数据存储系统的修复方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5500257B2 (ja) * 2010-09-30 2014-05-21 日本電気株式会社 ストレージシステム
JP5998517B2 (ja) * 2012-02-24 2016-09-28 日本電気株式会社 ストレージシステム
CN112799584B (zh) * 2019-11-13 2023-04-07 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290681A (ja) * 2000-04-05 2001-10-19 Nec Corp ファイルデータ格納装置及び方法並びに記録媒体
JP2005084771A (ja) * 2003-09-05 2005-03-31 Hitachi Ltd バックアップシステム及び方法
JP2005235171A (ja) 2003-12-09 2005-09-02 Emc Corp 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置
WO2007089502A1 (en) * 2006-01-26 2007-08-09 Network Appliance, Inc. Content addressable storage array element
JP2009015261A (ja) 2007-07-09 2009-01-22 Sharp Corp トナーおよびそのトナーの製造方法、二成分現像剤、現像装置ならびに画像形成装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2786899B2 (ja) * 1989-09-08 1998-08-13 富士通株式会社 超高速ディスク装置
AU7182701A (en) * 2000-07-06 2002-01-21 David Paul Felsher Information record infrastructure, system and method
JP4254178B2 (ja) * 2002-09-11 2009-04-15 富士ゼロックス株式会社 分散格納制御装置及び方法
US7159150B2 (en) * 2002-12-31 2007-01-02 International Business Machines Corporation Distributed storage system capable of restoring data in case of a storage failure
JP4536383B2 (ja) * 2004-01-16 2010-09-01 株式会社エヌ・ティ・ティ・ドコモ データ受信装置およびデータ受信方法
JP2007141668A (ja) 2005-11-18 2007-06-07 Molex Inc ロータリコネクタ
JP5339432B2 (ja) * 2009-02-25 2013-11-13 日本電気株式会社 ストレージシステム
JP5516575B2 (ja) * 2009-03-30 2014-06-11 日本電気株式会社 データ挿入システム
US20120311113A1 (en) * 2010-02-10 2012-12-06 Nec Corporation Storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290681A (ja) * 2000-04-05 2001-10-19 Nec Corp ファイルデータ格納装置及び方法並びに記録媒体
JP2005084771A (ja) * 2003-09-05 2005-03-31 Hitachi Ltd バックアップシステム及び方法
JP2005235171A (ja) 2003-12-09 2005-09-02 Emc Corp 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置
WO2007089502A1 (en) * 2006-01-26 2007-08-09 Network Appliance, Inc. Content addressable storage array element
JP2009015261A (ja) 2007-07-09 2009-01-22 Sharp Corp トナーおよびそのトナーの製造方法、二成分現像剤、現像装置ならびに画像形成装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2393010A4

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532853A (ja) * 2010-10-26 2013-08-19 株式会社日立製作所 ストレージ装置及びデータ制御方法
WO2012101983A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 ストレージシステム
JP5477927B2 (ja) * 2011-01-28 2014-04-23 日本電気株式会社 ストレージシステム
CN104572679A (zh) * 2013-10-16 2015-04-29 北大方正集团有限公司 舆情数据存储方法和装置
CN105159603A (zh) * 2015-08-18 2015-12-16 福建省海峡信息技术有限公司 一种分布式数据存储系统的修复方法
CN105159603B (zh) * 2015-08-18 2018-01-12 福建省海峡信息技术有限公司 一种分布式数据存储系统的修复方法

Also Published As

Publication number Publication date
US20110271050A1 (en) 2011-11-03
US8683121B2 (en) 2014-03-25
CN102282545A (zh) 2011-12-14
EP2393010A1 (en) 2011-12-07
EP2393010A4 (en) 2013-07-10
JP5391705B2 (ja) 2014-01-15
CN102282545B (zh) 2014-07-02
JP2010176181A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
JP5413948B2 (ja) ストレージシステム
US10977124B2 (en) Distributed storage system, data storage method, and software program
JP4464279B2 (ja) 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法
JP5391705B2 (ja) ストレージシステム
KR20200027413A (ko) 데이터 저장 방법, 장치 및 시스템
CN102317923B (zh) 存储系统
JP5561425B2 (ja) ストレージシステム
EP1272931A2 (en) Multi-device storage system with differing fault tolerant methodologies
TW201805815A (zh) 固態儲存器容量管理系統與方法
JP2006331076A (ja) データ記憶システム及び記憶方法
JP5533887B2 (ja) ストレージ装置
JP5517224B2 (ja) ストレージ装置
JP5459388B2 (ja) ストレージ装置
JP5660617B2 (ja) ストレージ装置
JP6269120B2 (ja) ストレージシステム
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks
WO2014077451A1 (ko) Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
JP6853506B2 (ja) ストレージシステム、データソート方法及びプログラム
CN115454331A (zh) 一种用于追加对象的存储方法及存储系统
JP6343952B2 (ja) ストレージシステム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980154991.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09839114

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13139606

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009839114

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE