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

ストレージシステム Download PDF

Info

Publication number
WO2010092634A1
WO2010092634A1 PCT/JP2009/003963 JP2009003963W WO2010092634A1 WO 2010092634 A1 WO2010092634 A1 WO 2010092634A1 JP 2009003963 W JP2009003963 W JP 2009003963W WO 2010092634 A1 WO2010092634 A1 WO 2010092634A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
journal
data
storage means
fragment
Prior art date
Application number
PCT/JP2009/003963
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 US13/147,670 priority Critical patent/US8555007B2/en
Publication of WO2010092634A1 publication Critical patent/WO2010092634A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

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.
  • Patent Document 1 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.
  • the dividing unit 101 of the storage server 100 divides a data block that is data to be stored into a plurality of fragments, and further adds fragments that become redundant data. Append.
  • the plurality of fragments are stored in a plurality of storage devices such as the storage device 102 in the storage server 100 and the storage devices 103 and 104 installed in other storage servers. Then, by designating the content address later, it is possible to read out the data stored at the storage location specified by the content address, that is, the fragment, and restore the predetermined data before the division from the plurality of fragments.
  • 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.
  • fragments when writing two or more fragment data (hereinafter referred to as “fragments”) divided from the same data block to the same server, in order to maintain disk fault tolerance. In order not to write two or more fragments on the same disk, they are distributed and stored in each disk. On the other hand, when it is necessary to write two or more fragments belonging to different data blocks to the same disk, the fragments waiting for writing are stored in a queue before writing. The process of writing one or a plurality of fragments from the queue to the disk is processed by a transaction method, and data representing the processing status of the transaction is recorded as a journal.
  • FIG. 2 shows how the transaction status described above is stored as a journal.
  • the journal (J) has a start entry written immediately before the start of writing data (D), a commit entry written immediately after the end of data writing, and a delete entry for the used start / commit entry. , Composed of.
  • journal 110 is fixed in an OS (Operating System) area 120 of a disk area constituting a hardware RAID (Redundant Arrays of Inexpensive Disks) as shown in FIG. Placed in. That is, the journal is arranged in the OS area 120 that is duplicated on two disks.
  • OS Operating System
  • Patent Document 2 discloses a technique of switching a file for storing a journal when there is no free space for storing the journal.
  • disk 0 disk 1 the remaining capacity of the disk (disk 0, disk 1) with the OS area 120 as the data area 130.
  • the OS area is relatively small in the present day when the capacity of a single disk is increasing. Therefore, it is necessary to form the data area 130 for storing the data itself on the disk provided with the OS area 120 and other disks, that is, all the disks (disk 0 to disk n).
  • JP 2005-235171 A Japanese Patent Laid-Open No. 2-54346
  • an object of the present invention is to provide a storage system that can improve the write performance while improving the redundancy, which is the above-mentioned problem.
  • a storage system provides: A plurality of storage means and data processing means for storing data in the plurality of storage means are provided.
  • the data processing means includes Among the plurality of storage means, a journal storage means for storing a journal representing a data processing status in the storage system is set, and a plurality of other storage means different from the set journal storage means are stored.
  • Storage destination setting means for setting each of the plurality of fragment data forming the target data as fragment storage means for distributing and storing the fragment data;
  • the journal is stored in the storage means set as the journal storage means by the storage destination setting means, and the plurality of fragment data are distributed to the plurality of storage means set as the fragment storage means.
  • the distributed storage control means for storing is provided.
  • 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.
  • the data processing means includes Among the plurality of storage means, a journal storage means for storing a journal representing a data processing status in the information processing apparatus is set, and a plurality of other storage means different from the set journal storage means are set, Storage destination setting means for setting each of the plurality of fragment data forming the storage target data as fragment storage means for distributing and storing the fragment data;
  • the journal is stored in the storage means set as the journal storage means by the storage destination setting means, and the plurality of fragment data are distributed to the plurality of storage means set as the fragment storage means.
  • the distributed storage control means for storing is provided.
  • a data processing method includes: A storage system having a plurality of storage means When storing data in the plurality of storage means, Among the plurality of storage means, a journal storage means for storing a journal representing a data processing status in the storage system is set, and a plurality of other storage means different from the set journal storage means are stored.
  • Each of the plurality of fragment data forming the target data is set as a fragment storage means for distributing and storing, respectively,
  • the journal is stored in the storage unit set as the journal storage unit, and the plurality of fragment data is distributed and stored in the plurality of storage units set as the fragment storage unit.
  • the present invention which is configured as described above, can improve the write performance while improving the redundancy of data to be stored in the storage system.
  • FIG. 7 is a functional block diagram illustrating a configuration of the storage system disclosed in FIG. 6.
  • FIG. 8 is an explanatory diagram for explaining a data storage operation by the storage system disclosed in FIG. 7; It is a figure which shows the storage area of the disk with which the storage system was equipped. It is a figure which shows an example of the data memorize
  • FIG. 5 is a block diagram showing the configuration of the entire system.
  • FIG. 6 is a block diagram showing an outline of the storage system
  • FIG. 7 is a functional block diagram showing the configuration.
  • FIG. 8 is an explanatory diagram for explaining a data storing operation by the storage system.
  • FIG. 9 is a diagram showing a storage area of a disk equipped in the storage system.
  • FIG. 10 is a diagram illustrating an example of data stored in the storage system. 11 to 12 are explanatory diagrams showing data storage operations in the storage system. 13 to 14 are flowcharts showing the operation of the storage system.
  • the present embodiment shows a specific example of the storage system disclosed in the second 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.
  • the storage system 10 of 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 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. 6, 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 storage system 10 is one system, the configuration and functions of the storage system 10 will be described. 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. 6, 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. 7 shows the configuration of the storage system 10 in this embodiment.
  • the storage system 10 includes a data storage device 30 that stores data, and a data processing device 20 (data processing means) 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 fragment generation unit 21, a distributed storage control unit 22, a journal storage control unit 23, and a storage destination setting unit that are constructed by incorporating a program. 24.
  • the data storage device 30 includes a volatile memory 32 for storing a journal in addition to a plurality of storage devices 31 (storage means) such as a hard disk drive.
  • storage means such as a hard disk drive.
  • 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 fragment generation unit 21 divides the backup target data A into block data D having a predetermined capacity (for example, 64 KB). Further, the block data D is divided into a plurality of fragment data of a predetermined capacity. For example, as shown by symbols D1 to D9, 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, as shown by reference numerals D10 to D12, three fragment data (redundant data 42) are added. As a result, a data set 40 composed of twelve fragment data composed of nine divided data 41 and three redundant data is generated.
  • a predetermined capacity for example, 64 KB.
  • the block data D is divided into a plurality of fragment data of a predetermined capacity. For example, as shown by symbols D1 to D9, the data is divided into nine fragment data (divided data 41). Further, even if some of the divided fragment data is missing, redundant
  • the distributed storage control unit 22 stores each fragment data constituting the data set generated as described above in a distributed manner in each storage area formed in each storage device 31. To do. For example, when 12 pieces of fragment data D1 to D12 are generated, the pieces of fragment data D1 to D12 are stored one by one in the data storage files F1 to F12 formed in the 12 storage devices 31, respectively.
  • the distributed storage control unit 22 further stores a journal representing a history of the data processing status in the storage system, for example, a journal representing a record of the data storage processing status, the data deletion processing status, etc. It has a function to store in.
  • the distributed storage control unit 22 stores the journal and fragment data in each storage device 31 set by the storage destination setting unit 24. That is, the journal is stored in the storage device 31 set as the journal storage device, and each fragment data is stored in the storage device set as the fragment storage device.
  • the storage destination setting unit 24 (storage destination setting means) will be described.
  • the storage destination setting unit 24 has a function of setting the storage device 31 that is a storage destination of journals and fragment data stored in the distributed storage control unit 22.
  • the storage device 31 includes n + 1 disks (0 to n). Of these disks, disk 0 and disk 1 are provided with a duplicated OS (Operating System) area 52.
  • OS Operating System
  • a journal storage area 51 for storing journals and a data area 53 for storing fragment data are formed on all the disks 0 to n. That is, the journal storage area 51 and the data area 53 are formed on all of the disks 0 and 1 including the OS area 52 and the other disks 2 to n.
  • the storage destination setting unit 24 sets one disk as a journal storage device, and sets all other disks different from the disk set as the journal storage device as fragment storage devices. To do. Specifically, the storage destination setting unit 24 first sets a disk having the smallest free space in the data area 53 as a journal storage device in the initial state. At this time, if there are a plurality of disks with the smallest free capacity, any one of them is stored as a journal storage device. The reason why the disk with the smallest free capacity is set as the journal storage device is that the journal data amount is relatively small. Other disks are set as fragment storage devices.
  • the storage destination setting unit 24 sets each disk as described above, stores data for each disk number in the disk usage information table as shown in FIG. 10 formed in the data storage device 30.
  • the free space in the data area is stored.
  • the data processing device 20 always checks the free capacity of the data area 53 of each disk at a fixed time interval and stores it in the table corresponding to each disk (D0 to Dn).
  • the distributed storage control unit 22 distributes and stores journals and fragment data on each disk, but the free capacity of each disk changes.
  • the storage destination setting unit 24 changes and sets a disk as a journal storage device. Specifically, based on the free capacity of the data area in the disk usage information table that is constantly updated as described above, ⁇ (Free capacity of the data area of the disk set as a journal storage device) ⁇ (Free capacity of the data area of the disk having the smallest free capacity among other disks) ⁇ > ⁇ ( ⁇ : preset value) Always check whether it meets the requirements at regular time intervals. Then, at the timing when the above conditions are satisfied, the disk with the smallest free space in the data area 53 is changed and set as a new journal storage device. In other words, if the free space of the disk of the fragment storage device changes so as to decrease, the above conditional expression is satisfied. Change and set as a journal storage device that stores fewer journals.
  • the storage destination setting unit 24 performs change setting so that all the disks are sequentially set as journal storage devices. Note that the storage destination setting unit 24 does not necessarily have to be changed so that all the disks are set as journal storage devices.
  • the timing for changing the journal storage device is not limited to when the above-described conditions are satisfied. For example, even if the journal storage device is set to change at a timing that satisfies other conditional expressions based on the free space of the data area of the disk set as the journal storage device and the free space of another disk, Good.
  • journal storage control unit 23 (journal storage control means) separately stores the journal stored in the disk set as the journal storage device by the distributed storage control unit 22 in the memory 32 as well. Control to hold.
  • the journal storage control unit 23 stores the new journal storage device in the memory 32. Write journals held in.
  • journal storage control unit 23 stores the journal stored in the memory 32 on the disk when a failure occurs in the storage system 10, for example, when a failure occurs in the storage device 31, depending on the operation status of the storage system 10. Write out.
  • the journal is stored in another disk set as the fragment storage device.
  • the divided data of the storage target data, the fragment data that is redundant data, and the journal are stored in each disk.
  • the disk 2 is set as a journal storage device, as shown in FIG. 11A
  • the journal is stored in the disk 2 via the memory 32, and the fragment data is stored in the other disk. To be distributed and stored. Note that the memory 32 retains the journal.
  • FIG. 12 illustrates functions related to the process of storing a journal built in the data processing device 20.
  • the journal is first held in the memory 32 and is always held in the memory 32.
  • the journal writer 41 stores the journal stored in the memory 32 on the disk switched as the journal storage device by the journal disk switch 42.
  • step S6 it waits for all the data files on the disk newly set as a journal storage device, that is, fragment areas to be closed (closed) (step S6 in FIG. 13).
  • step S7 the use of the disk as the journal storage device is started (step S7 in FIG. 13).
  • step S8 the journal held in the memory 32 is written to the disk of the new journal storage device (step S8 in FIG. 13).
  • the journal is also held in the memory 32.
  • a data file is created on a disk set as a fragment storage device other than the journal storage device, and an area for storing fragment data is secured (step S2 in FIG. 13).
  • the divided data of the storage target data, the fragment data which is redundant data, and the journal are stored in each disk (distributed storage control step). For example, when the disk 0 is set as a new journal storage device from the state of FIG. 11A, the journal is stored in the disk 0 via the memory 32 as shown in FIG. In addition, the fragment data is distributed and stored on other disks. Note that the memory 32 retains the journal.
  • a failure has occurred in the storage system 10 when an event such as “Expected Error” including a server shutdown or a disk failure occurs.
  • an event such as “Expected Error” including a server shutdown or a disk failure occurs.
  • Such a failure is detected by, for example, the shutdown detector 46, the disk failure detector 47, and the error detector 48 shown in FIG. 12 (step S11 in FIG. 14).
  • journal writing process and the journal disk switching process are stopped (step S12 in FIG. 14). Thereafter, a process of writing the journal in the memory 32 to the disk is performed. Specifically, the journal held in the memory 32 is written to all disks other than the disk set as the journal storage device and operating normally (see FIG. 14). No in step S13, Yes in step S14, step S15). Note that the journal writing process is executed by the journal replicator 45 shown in FIG.
  • the journal is not stored on a specific disk in a fixed manner, and even if a failure occurs in the disk, the fragment data and the journal are It can suppress disappearing simultaneously.
  • the journal and the fragment data are not stored simultaneously on one disk, it is possible to suppress contention of data write processing on the disk. As a result, it is possible to improve the writing performance while improving the redundancy of stored data.
  • a journal having a relatively small data capacity can be efficiently stored by sequentially changing and setting the disk storing the journal.
  • journal is stored in the disk and held in the memory, redundancy is ensured. Further, by storing the journal on any disk in the event of a storage system failure, it is possible to further improve redundancy.
  • FIG. 15 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 are provided.
  • the data processing means 2 Among the plurality of storage means 5, a journal storage means for storing a journal representing a data processing status in the storage system is set, and a plurality of other storage means different from the set journal storage means are Storage destination setting means 3 for setting each of the plurality of fragment data forming the storage target data as fragment storage means for distributing and storing the fragment data;
  • the journal is stored in the storage means 5 set as the journal storage means by the storage destination setting means 3, and the plurality of fragment data is distributed to the plurality of storage means 5 set as the fragment storage means.
  • Distributed storage control means 4 for storing each of them.
  • the journal storage unit that stores the journal and the fragment storage unit that stores the fragment data forming the storage target data are set so as not to overlap. Therefore, the journal is not stored in a specific storage unit, and even if a failure occurs in the storage unit, it is possible to prevent the fragment data and the journal from being lost simultaneously. Furthermore, since the journal and the fragment data are not stored in one storage unit, it is possible to suppress contention of data write processing with respect to the storage unit. As a result, it is possible to improve the writing performance while improving the redundancy of stored data.
  • the storage system adopts a configuration in which the storage destination setting means sequentially changes and sets the journal storage means to different storage means. Further, the storage system adopts a configuration in which the storage destination setting unit sequentially changes and sets the journal storage unit, with all the storage units being changed.
  • the storage destination setting means is based on a change in the values of the free capacity of the storage means set as the journal storage means and the free capacity of the other storage means,
  • the journal storage means is changed and set.
  • the storage destination setting means is ⁇ (free capacity of the storage means set as the journal storage means) ⁇ (free capacity of the storage means with the smallest available capacity among other storage means) ⁇ > ⁇ ( ⁇ : A preset value) is changed and set at a timing when the journal storage means is satisfied.
  • the storage destination setting means sets the storage means having the smallest free capacity as the journal storage means.
  • the storage system includes journal storage control means for storing the journal in the storage means by the distributed storage control means and also storing the journal in a volatile memory provided in the storage system. Take the configuration.
  • journal storage control unit when the journal storage control unit changes and sets the journal storage unit by the storage destination setting unit, the journal storage unit stores the journal stored in the volatile memory. As described above, the information is stored in the storage unit newly changed and set.
  • the journal storage control means stores the journal stored in the volatile memory in the storage means set as the fragment storage means in accordance with the operation status of the storage system.
  • the configuration of “Yes” is adopted.
  • the journal storage control unit stores the journal stored in the volatile memory in all the storage units set as the fragment storage unit when a failure of the storage system occurs. The configuration is taken.
  • journal This allows the journal to be stored in any storage means in the event of a storage system failure. Therefore, even if a failure occurs in the journal storage means, the journal is held in another storage means, and can be recovered later by referring to this. As a result, it is possible to further improve the redundancy.
  • the above-described storage system can be realized by incorporating a program into the information processing apparatus.
  • 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.
  • the data processing means includes Among the plurality of storage means, a journal storage means for storing a journal representing a data processing status in the information processing apparatus is set, and a plurality of other storage means different from the set journal storage means are set, Storage destination setting means for setting each of the plurality of fragment data forming the storage target data as fragment storage means for distributing and storing the fragment data;
  • the journal is stored in the storage means set as the journal storage means by the storage destination setting means, and the plurality of fragment data are distributed to the plurality of storage means set as the fragment storage means.
  • the distributed storage control means for storing is provided.
  • the storage destination setting means adopts a configuration in which the journal storage means is sequentially changed to the different storage means and set.
  • a storage system having a plurality of storage means When storing data in the plurality of storage means, Among the plurality of storage means, a journal storage means for storing a journal representing a data processing status in the storage system is set, and a plurality of other storage means different from the set journal storage means are stored.
  • Each of the plurality of fragment data forming the target data is set as a fragment storage means for distributing and storing, respectively,
  • the journal is stored in the storage unit set as the journal storage unit, and the plurality of fragment data is distributed and stored in the plurality of storage units set as the fragment storage unit.
  • the data processing method adopts a configuration in which when the journal storage unit is set among the plurality of storage units, the journal storage unit is sequentially changed to a different storage unit.
  • the present invention can be used in a storage system configured by connecting a plurality of computers, and has industrial applicability.

Landscapes

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

Abstract

 複数の記憶手段と、これら複数の記憶手段に対してデータを記憶するデータ処理手段と、を備え、上記データ処理手段は、上記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、上記記憶先設定手段にて上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた。

Description

ストレージシステム
 本発明は、ストレージシステムにかかり、特に、データを分散して複数の記憶装置に記憶するストレージシステムに関する。
 近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
 このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。
 具体的に、コンテンツアドレスストレージシステムでは、図1に示すように、ストレージサーバ100の分割部101にて、記憶対象データであるデータブロックを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加する。そして、これら複数のフラグメントを、ストレージサーバ100内の記憶装置102や、他のストレージサーバに装備された記憶装置103,104など、複数の記憶装置にそれぞれ格納する。そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
 また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
 そして、上述したようなストレージシステムにおいて、同一のデータブロックから分割された2個以上のフラグメントデータ(以下、「フラグメント」と呼ぶ)を同一のサーバに書き込む場合は、耐ディスク障害性を保つために、同じディスクに2個以上のフラグメントを書き込まないように各ディスクに分散して記憶する。一方、同じディスクに異なるデータブロックに属した2個以上のフラグメントの書き込みを行う必要がある場合には、書き込み待ちのフラグメントをキューに溜めてから書き込む。そして、キューから1または複数のフラグメントをディスクに書き込む処理は、トランザクション方式で処理され、当該トランザクションの処理状況を表すデータをジャーナルとして記録する。
 ここで、図2に、上述したトランザクションの処理状況をジャーナルとして記憶する様子を示す。この図に示すように、ジャーナル(J)は、データ(D)の書込み開始直前に書かれるスタートエントリー、データ書込み終了直後に書かれるコミットエントリー、用済みのスタート・コミットエントリーに対しての削除エントリー、で構成される。
 そして、上述したジャーナル110は、冗長性を保つために、図3に示すように、ハードウェアRAID(Redundant Arrays of Inexpensive Disks)を構成するディスク領域のOS(Operating System)領域120内に、固定的に配置される。つまり、ジャーナルは、2つのディスクに2重化されたOS領域120内に配置される。なお、関連する技術として、特許文献2には、ジャーナルを記憶する空きスペースがなくなった場合には、当該ジャーナルを記憶するファイルを切り替える、という技術が開示されている。
 一方で、ディスク容量を最大に活用するためには、OS領域120があるディスク(ディスク0、ディスク1)の残容量もデータ領域130として使う、ことが必要である。これは、ディスク単体が大容量化している今日においては、OS領域が相対的に小さいため、極めて重要である。従って、OS領域120が設けられたディスク及び他のディスク、つまり、全てのディスク(ディスク0~ディスクn)に、データそのものを記憶するデータ領域130を形成する必要がある。
特開2005-235171号公報 特開平2-54346号公報
 しかしながら、OS領域120を有するディスクにも、フラグメントデータといった記憶対象データを分散記憶すると、ストレージシステムにおける書き込み性能の低下、という問題が生じる。具体的には、図4に示すように、OS領域が形成されたディスクにフラグメントデータを格納すると、当該フラグメントデータとジャーナルとが同一ディスク(ディスク0,1)に格納されることとなる。すると、かかるディスクにおいて書き込む処理の競合が発生し、書き込みが遅れ、フラグメント化された元のデータブロック全体の書き込み完了も遅れる。その結果、書き込み性能が低下する、という問題が生じる。さらに、ディスク障害が生じた場合には、データとジャーナルの双方が消失する場合が生じるため、信頼性も低下する、という問題が生じる。
 このため、本発明の目的は、上述した課題である、冗長性の向上を図りつつ、書き込み性能の向上を図ることができるストレージシステムを提供する、ことにある。
 かかる目的を達成するため本発明の一形態であるストレージシステムは、
 複数の記憶手段と、これら複数の記憶手段に対してデータを記憶するデータ処理手段と、を備えている。
 そして、上記データ処理手段は、
 上記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、
 上記記憶先設定手段にて上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた、という構成を採る。
 また、本発明の他の形態であるプログラムは、
 複数の記憶手段を備えた情報処理装置に、
 上記複数の記憶手段に対してデータを記憶するデータ処理手段を実現させるプログラムである。
 そして、上記データ処理手段は、
 上記複数の記憶手段のうち、情報処理装置におけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、
 上記記憶先設定手段にて上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた、という構成を採る。
 また、本発明の他の形態であるデータ処理方法は、
 複数の記憶手段を備えたストレージシステムが、
 上記複数の記憶手段に対してデータを記憶するときに、
 上記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定し、
 上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する、という構成を採る。
 本発明は、以上のように構成されることにより、ストレージシステムにおいて、記憶するデータの冗長性の向上を図りつつ、書き込み性能の向上を図ることができる。
本発明に関連するストレージシステムにおけるデータの記録時の様子を示す図である。 本発明に関連するストレージシステムにおけるジャーナルの記憶の様子を示す図である。 本発明に関連するストレージシステムにおけるディスクの構成を示す図である。 本発明に関連するストレージシステムにおけるフラグメントデータとジャーナルの記録の様子を示す図である。 本発明の実施形態1におけるシステム全体の構成を示すブロック図である。 本発明の実施形態1におけるストレージシステムの概略を示すブロック図である。 図6に開示したストレージシステムの構成を示す機能ブロック図である。 図7に開示したストレージシステムによるデータの記憶動作を説明するための説明図である。 ストレージシステムに装備されたディスクの記憶領域を示す図である。 ストレージシステムに記憶されたデータの一例を示す図である。 ストレージシステムにおけるデータの記憶動作を示す説明図である。 ストレージシステムにおけるデータの記憶動作を示す説明図である。 ストレージシステムの動作を示すフローチャートである。 ストレージシステムの動作を示すフローチャートである。 本発明の実施形態2におけるストレージシステムの構成を示す機能ブロック図である。
 <実施形態1>
 本発明の第1の実施形態を、図5乃至図14を参照して説明する。図5は、システム全体の構成を示すブロック図である。図6は、ストレージシステムの概略を示すブロック図であり、図7は、構成を示す機能ブロック図である。図8は、ストレージシステムによるデータの記憶動作を説明するための説明図である。図9は、ストレージシステムに装備されたディスクの記憶領域を示す図である。図10は、ストレージシステムに記憶されたデータの一例を示す図である。図11乃至図12は、ストレージシステムにおけるデータの記憶動作を示す説明図である。図13乃至図14は、ストレージシステムの動作を示すフローチャートである。
 ここで、本実施形態は、後述する実施形態2にて開示するストレージシステムの具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
 [構成]
 図5に示すように、本発明におけるストレージシステム10は、ネットワークNを介してバックアップ処理を制御するバックアップシステム11に接続している。そして、バックアップシステム11は、ネットワークNを介して接続されたバックアップ対象装置12に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム10に対して記憶するよう要求する。これにより、ストレージシステム10は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
 そして、図6に示すように、本実施形態におけるストレージシステム10は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム10は、ストレージシステム10自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード10Aと、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード10Bと、を備えている。なお、アクセラレータノード10Aの数とストレージノード10Bの数は、図6に示したものに限定されず、さらに多くの各ノード10A,10Bが接続されて構成されていてもよい。
 さらに、本実施形態におけるストレージシステム10は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。具体的な構成については詳述する。
 なお、以下では、ストレージシステム10が1つのシステムであるとして、当該ストレージシステム10が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム10が有する構成及び機能は、アクセラレータノード10Aあるいはストレージノード10Bのいずれに備えられていてもよい。なお、ストレージシステム10は、図6に示すように、必ずしもアクセラレータノード10Aとストレージノード10Bとを備えていることに限定されず、いかなる構成であってもよい。また、ストレージシステム10は、コンテンツアドレスストレージシステムであることにも限定されない。
 図7に、本実施形態におけるストレージシステム10の構成を示す。この図に示すように、ストレージシステム10は、データを記憶するデータ記憶装置30と、当該データ記憶装置30に対するデータの記憶及び読み出し動作を制御するデータ処理装置20(データ処理手段)と、を備えている。なお、実際には、データ処理装置20は、図6に示したアクセラレータノード10A及びストレージノード10Bが備えているCPU(Central Processing Unit)などの複数の演算装置にて構成されている。また、記憶装置30は、図6に示したアクセラレータノード10A及びストレージノード10Bが備えているハードディスクなどの記憶装置にて構成されている。
 そして、図6に示すように、上記データ処理装置20は、プログラムが組み込まれることにより構築された、フラグメント生成部21と、分散記憶制御部22と、ジャーナル記憶制御部23と、記憶先設定部24と、を備えている。また、データ記憶装置30には、ハードディスクドライブなど複数の記憶装置31(記憶手段)の他に、ジャーナルを格納する揮発性のメモリ32を備えている。以下、各構成について詳述する。なお、上記プログラムは、例えば、CD-ROMなどの記憶媒体に格納された状態でストレージシステム10に提供される。あるいは、上記プログラムは、ネットワーク上の他のサーバコンピュータの記憶装置に記憶され、当該他のサーバコンピュータからネットワークを介してストレージシステム10に提供されてもよい。
 まず、上記データ処理装置20の基本的な構成、つまり、フラグメント生成部21と分散記憶制御部22とによる分散記憶機能について、図8を参照して説明する。
 フラグメント生成部21は、まず、バックアップ対象データAの入力を受けると、当該バックアップ対象データAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、さらに、ブロックデータDを複数の所定の容量のフラグメントデータに分割する。例えば、符号D1~D9に示すように、9つのフラグメントデータ(分割データ41)に分割する。さらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ41に追加する。例えば、符号D10~D12に示すように、3つのフラグメントデータ(冗長データ42)を付加する。これにより、9つの分割データ41と、3つの冗長データとにより構成される12個のフラグメントデータからなるデータセット40を生成する。
 そして、分散記憶制御部22(分散記憶制御手段)は、上述したように生成されたデータセットを構成する各フラグメントデータを、各記憶装置31に形成された各記憶領域に、それぞれ分散して格納する。例えば、12個のフラグメントデータD1~D12を生成した場合には、12個の記憶装置31にそれぞれ形成したデータ格納ファイルF1~F12に、各フラグメントデータD1~D12を1つずつそれぞれ格納する。
 また、本実施形態における分散記憶制御部22は、さらに、ストレージシステム内におけるデータ処理状況の履歴を表すジャーナル、例えば、データ格納処理状況やデータ削除処理状況などの記録を表すジャーナルを、記憶装置31に格納する機能を有する。このとき、分散記憶制御部22は、記憶先設定部24によって設定された各記憶装置31に対して、それぞれジャーナルとフラグメントデータとを記憶する。つまり、ジャーナル用記憶装置として設定された記憶装置31にジャーナルを記憶し、フラグメント用記憶装置として設定された記憶装置に各フラグメントデータを記憶する。
 次に、記憶先設定部24(記憶先設定手段)について説明する。記憶先設定部24は、上述したように、分散記憶制御部22にて記憶されるジャーナルやフラグメントデータの記憶先となる記憶装置31を設定する機能を有する。
 ここで、本実施形態では、図9に示すように、記憶装置31として、n+1台のディスク(0~n)を備えていることとする。そして、これらディスクのうち、ディスク0とディスク1には、二重化されたOS(Operating System)領域52を備えている。また、本実施形態では、全てのディスク0~nに、ジャーナルを記憶するジャーナル記憶領域51と、フラグメントデータを記憶するデータ領域53と、を形成している。つまり、OS領域52を備えるディスク0,1及び他のディスク2~nの全てに、ジャーナル記憶領域51とデータ領域53とがそれぞれ形成されている。
 上述した状況において、記憶先設定部24は、1つのディスクをジャーナル用記憶装置として設定すると共に、このジャーナル用記憶装置として設定したディスクとは異なる他の全てのディスクを、フラグメント用記憶装置として設定する。具体的に、記憶先設定部24は、まず、初期状態では、データ領域53の空き容量が最も少ないディスクをジャーナル用記憶装置として設定する。このとき、空き容量が最も少ないディスクが複数存在する場合には、そのうち任意の1つのディスクをジャーナル用記憶装置として記憶する。なお、空き容量が最も少ないディスクをジャーナル用記憶装置として設定する理由は、ジャーナルのデータ量が比較的少ないためである。そして、その他のディスクを、フラグメント用記憶装置として設定する。
 なお、記憶先設定部24は、上述したように各ディスクを設定すると、データ記憶装置30内に形成された図10に示すようなディスク利用情報テーブルに、ディスク番号毎に、記憶するデータと、データ領域の空き容量と、を記憶する。例えば、ディスク2をジャーナル用記憶装置として設定した場合には、ディスク2に、「ジャーナル書き込み用」という情報を記憶し、その他のフラグメント用記憶装置として設定されたディスクに対しては、「データ書き込み用」という情報を記憶する。また、データ処理装置20は、一定の時間間隔にて、常に各ディスクのデータ領域53の空き容量を調べ、当該各ディスクに対応して上記テーブルに記憶しておく(D0~Dn)。
 そして、上述したように、分散記憶制御部22にて、各ディスクにジャーナルやフラグメントデータが分散記憶されるが、当該各ディスクの空き容量が変化する。この空き容量の変化に応じて、上記記憶先設定部24は、ジャーナル用記憶装置としてのディスクを変更して設定する。具体的には、上述したように常に更新されているディスク利用情報テーブル内のデータ領域の空き容量に基づいて、
{(ジャーナル用記憶装置として設定されたディスクのデータ領域の空き容量)-(他のディスクのうち最も空き容量の少ないディスクのデータ領域の空き容量)}>α(α:予め設定された値)
を満たすかどうかを、一定の時間間隔で常に調べる。そして、上記条件を満たしたタイミングで、そのときにデータ領域53の空き容量が最も少ないディスクを、新たなジャーナル用記憶装置として変更設定する。つまり、フラグメント用記憶装置のディスクの空き容量が小さくなるよう変化すると、上記条件式を満たすこととなり、当該条件式を満たすようになったタイミングで、当該空き容量の最も小さいディスクを、データ量の少ないジャーナルを記憶するジャーナル用記憶装置として変更設定する。
 以上のようにして、記憶先設定部24は、全てのディスクが、順次、ジャーナル用記憶装置として設定されるよう、変更設定を行う。なお、記憶先設定部24は、必ずしも全てのディスクがジャーナル用記憶装置として設定されるよう変更する必要はない。また、ジャーナル用記憶装置を変更するタイミングは、上述した条件を満たすようになったときに限定されない。例えば、ジャーナル用記憶装置として設定されたディスクのデータ領域の空き容量と、他のディスクの空き容量と、に基づく他の条件式を満たしたタイミングで、ジャーナル用記憶装置の変更設定を行ってもよい。
 また、上記ジャーナル記憶制御部23(ジャーナル記憶制御手段)は、上述したように、分散記憶制御部22にてジャーナル用記憶装置として設定されたディスクに記憶するジャーナルを、別途、メモリ32にも記憶保持するよう制御する。そして、ジャーナル記憶制御部23は、上述したように記憶先設定部24にて新たにジャーナル用記憶装置としてのディスクが設定されると、当該新たなジャーナル用記憶装置としてのディスクに、メモリ32内に保持されているジャーナルを書き出す。
 さらに、ジャーナル記憶制御部23は、ストレージシステム10の作動状況に応じて、例えば、記憶装置31に障害が発生するなどストレージシステム10の障害発生時に、メモリ32に記憶しているジャーナルを、ディスクに書き出す。このとき、特に、ジャーナル用記憶装置として設定されているディスクとは異なり、フラグメント用記憶装置として設定されている他のディスクにジャーナルを記憶する。
 [動作]
 次に、上述した構成のストレージシステム1の動作(データ処理工程)を、図11乃至図14を参照して説明する。まず、初期状態では、データ領域の空き容量が最も少ないディスクを、ジャーナル用記憶装置に設定する(図13のステップS1)。そして、設定状況を、ディスク利用情報テーブルに記憶する。また、このテーブルを参照して、ジャーナル用記憶装置以外のフラグメント用記憶装置として設定されたディスク上に、データファイルを作成し、フラグメントデータを記憶する領域を確保する(図13のステップS2)。
 その後、上述したディスクの設定に基づいて、記憶対象データの分割データ及び冗長データであるフラグメントデータと、ジャーナルと、をそれぞれ各ディスクに記憶していく。例えば、ディスク2がジャーナル用記憶装置として設定されている場合には、図11(A)に示すように、ジャーナルをメモリ32を介してディスク2に記憶し、また、フラグメントデータを、その他のディスクに分散して記憶する。なお、メモリ32は、ジャーナルを保持したままである。
 ここで、ジャーナルの記憶処理について、さらに図12を参照して説明する。なお、図12は、データ処理装置20内に構築されたジャーナルを記憶する処理に関連する機能を図示したものである。この図に示すように、ジャーナルは、まず、メモリ32に保持され、当該メモリ32には、常に保持される。そして、ジャーナル書き込み器41が、ジャーナル用ディスク切り替え器42にてジャーナル用記憶装置として切り替えられたディスクに、メモリ32に記憶されたジャーナルを記憶する。
 続いて、上述したように、ジャーナルとフラグメントデータが各ディスクに分散記憶されている間は、常に各ディスクのデータ領域(図9の符号53参照)の空き容量を更新する(図13のステップS3、図12の空き容量監視器44)。
 そして、上述した条件、つまり、
{(ジャーナル用記憶装置として設定されたディスクのデータ領域の空き容量)-(他のディスクのうち最も空き容量の少ないディスクのデータ領域の空き容量)}>α(α:予め設定された値)
を満たすと(図13のステップS4でYes)、そのときにデータ領域53の空き容量が最も少ないディスクを、新たなジャーナル用記憶装置として変更設定し(図13のステップ5)、ディスクの設定状況をディスク利用情報テーブルに記憶する(記憶先設定工程)。なお、空き容量が最も少ないディスクが複数存在する場合には、そのうち任意の1つのディスクをジャーナル用記憶装置として記憶する。
 その後、新たにジャーナル用記憶装置として設定されたディスク上のデータファイル、つまり、フラグメント用の領域が全て閉じられる(クローズされる)ことを待つ(図13のステップS6)。そして、新たにジャーナル用記憶装置として設定されたディスクのデータファイルが全て閉じられた直後に、当該ディスクのジャーナル用記憶装置としての利用を開始する(図13のステップS7)。このとき、まず、メモリ32に保持されているジャーナルを、新たなジャーナル記憶装置のディスクに書き出す(図13のステップS8)。なお、このとき、メモリ32内にもジャーナルを保持しておく。これにより、ジャーナルの移動中にクラッシュなどの障害が発生した場合であっても、ディスク内のジャーナルとメモリ内のジャーナルとを用いて、リカバリすることができる。
 その後は、上述同様に、ジャーナル用記憶装置以外のフラグメント用記憶装置として設定されたディスク上に、データファイルを作成し、フラグメントデータを記憶する領域を確保する(図13のステップS2)。そして、上記テーブルの設定に基づいて、記憶対象データの分割データ及び冗長データであるフラグメントデータと、ジャーナルと、をそれぞれ各ディスクに記憶していく(分散記憶制御工程)。例えば、図11(A)の状態から、ディスク0が新たなジャーナル用記憶装置として設定された場合には、図11(B)に示すように、ジャーナルをメモリ32を介してディスク0に記憶し、また、フラグメントデータを、その他のディスクに分散して記憶する。なお、メモリ32は、ジャーナルを保持したままである。
 続いて、ストレージシステムに障害が発生した時の動作を、図14を参照して説明する。まず、サーバのシャットダウンやディスク障害を含む「Expected Error」などのイベンの発生を契機に、ストレージシステム10に障害が発生したことを検出する。なお、かかる障害の検出は、例えば、図12に示す、シャットダウン検出器46、ディスク障害検出器47、エラー検出器48にて行う(図14のステップS11)。
 そして、ストレージシステム10の障害を検出すると、ジャーナル書き込み処理及びジャーナル用ディスクの切り替え処理を停止する(図14のステップS12)。その後、メモリ32内のジャーナルを、ディスクに書き出す処理を行う。具体的には、ジャーナル用記憶装置として設定されたディスク以外の他の全てのディスクであって、かつ、正常動作中のディスクに対して、メモリ32に保持されているジャーナルを書き出す(図14のステップS13でNo、ステップS14でYes、ステップS15)。なお、図12に示すジャーナルレプリケート器45にて上記ジャーナルの書き出し処理が実行される。
 そして、書き込みの対象となった全てのディスクに対して、ジャーナルの書き出し処理が完了すると(図14のステップ13でYes)、ストレージ・サービスの停止あるいはストレージシステムのシャットダウン継続命令を出す。
 以上のように、本実施形態におけるストレージシステム10によると、ジャーナルが特定のディスクに固定的に記憶されることなく、また、ディスクに障害が発生した場合であっても、フラグメントデータとジャーナルとが同時に消失することを抑制できる。特に、ジャーナルとフラグメントデータが1つのディスクに同時に記憶されることがないため、ディスクに対するデータの書き込み処理の競合を抑制することができる。その結果、記憶するデータの冗長性の向上を図りつつ、書き込み性能の向上を図ることができる。そして、ャーナルを格納するディスクを順次変更設定することで、比較的、小さいデータ容量であるジャーナルを効率的に記憶することができる。
 また、ジャーナルをディスクに記憶すると共に、メモリにも保持しているため、冗長性が確保される。さらに、ストレージシステムの障害時などに、ジャーナルをいずれかのディスクに記憶させることで、さらなる冗長性の向上を図ることができる。
 <実施形態2>
 本発明の第2の実施形態を、図15を参照して説明する。図15は、ストレージシステムの構成を示す機能ブロック図である。なお、本実施形態では、ストレージシステムの概略を説明する。
 図15に示すように、本実施形態におけるストレージシステム1は、
 複数の記憶手段5と、これら複数の記憶手段5に対してデータを記憶するデータ処理手段2と、を備えている。
 そして、上記データ処理手段2は、
 上記複数の記憶手段5のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段3と、
 上記記憶先設定手段3にて上記ジャーナル用記憶手段として設定した上記記憶手段5に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段5に上記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段4と、を備えている。
 上記構成のストレージシステムによると、ジャーナルを記憶するジャーナル用記憶手段と、記憶対象データを形成する各フラグメントデータを記憶するフラグメント用記憶手段とが、重複しないよう設定される。従って、ジャーナルが特定の記憶手段に固定的に記憶されることなく、また、記憶手段に障害が発生した場合であってもフラグメントデータとジャーナルとが同時に消失することを抑制できる。さらに、ジャーナルとフラグメントデータが1つの記憶手段に記憶されることがないため、記憶手段に対するデータの書き込み処理の競合を抑制することができる。その結果、記憶するデータの冗長性の向上を図りつつ、書き込み性能の向上を図ることができる。
 また、上記ストレージシステムでは、上記記憶先設定手段は、上記ジャーナル用記憶手段を順次異なる上記記憶手段に変更して設定する、という構成を採る。また、上記ストレージシステムでは、上記記憶先設定手段は、全ての上記記憶手段を変更対象として、上記ジャーナル用記憶手段を順次変更して設定する、という構成を採る。
 また、上記ストレージシステムでは、上記記憶先設定手段は、上記ジャーナル用記憶手段として設定された上記記憶手段の空き容量と、他の上記記憶手段の空き容量と、の値の変化に基づくタイミングで、上記ジャーナル用記憶手段を変更して設定する、という構成を採る。例えば、上記記憶先設定手段は、{(上記ジャーナル用記憶手段として設定された記憶手段の空き容量)-(他の記憶手段のうち最も空き容量の少ない記憶手段の空き容量)}>α(α:予め設定された値)、を満たすようになったタイミングで、上記ジャーナル用記憶手段を変更して設定する。
 また、上記ストレージシステムでは、上記記憶先設定手段は、空き容量が最も少ない上記記憶手段を、上記ジャーナル用記憶手段として設定する、という構成を採る。
 このように、ジャーナルを格納する領域を順次変更設定することで、比較的、小さいデータ容量であるジャーナルを効率的に記憶することができる。
 また、上記ストレージシステムでは、上記分散記憶制御手段にて上記ジャーナルを上記記憶手段に記憶すると共に、当該ジャーナルをストレージシステムに装備された揮発性メモリにも記憶するジャーナル記憶制御手段を備えた、という構成とる。
 そして、上記ストレージシステムでは、上記ジャーナル記憶制御手段は、上記記憶先設定手段にて上記ジャーナル用記憶手段を変更設定したときに、上記揮発性メモリに記憶されているジャーナルを、上記ジャーナル用記憶手段として新たに変更設定された上記記憶手段に記憶する、という構成を採る。
ストレージシステム
 さらに、上記ストレージシステムでは、上記ジャーナル記憶制御手段は、上記揮発性メモリに記憶しているジャーナルを、ストレージシステムの作動状況に応じて、上記フラグメント用記憶手段として設定されている上記記憶手段に記憶する、という構成を採る。このとき、例えば、上記ジャーナル記憶制御手段は、上記ストレージシステムの障害発生時に、上記揮発性メモリに記憶しているジャーナルを上記フラグメント用記憶手段として設定されている全ての上記記憶手段にそれぞれ記憶する、という構成を採る。
ストレージシステム
 これにより、ストレージシステムの障害時などに、ジャーナルをいずれかの記憶手段に記憶させておくことができる。従って、仮にジャーナル用記憶手段に障害が発生した場合であっても、ジャーナルが他の記憶手段に保持され、これを参照して後に復旧が可能となる。その結果、さらなる冗長性の向上を図ることができる。
 また、上述したストレージシステムは、情報処理装置に、プログラムが組み込まれることで実現できる。
 具体的に、本発明の他の形態であるプログラムは、
 複数の記憶手段を備えた情報処理装置に、
 上記複数の記憶手段に対してデータを記憶するデータ処理手段を実現させるプログラムである。
 そして、上記データ処理手段は、
 上記複数の記憶手段のうち、情報処理装置におけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、
 上記記憶先設定手段にて上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた、という構成を採る。
 また、上記プログラムでは、上記記憶先設定手段は、上記ジャーナル用記憶手段を順次異なる上記記憶手段に変更して設定する、という構成を採る。
 また、上述したストレージシステムが作動することにより実行される、本発明の他の形態であるデータ処理方法は、
 複数の記憶手段を備えたストレージシステムが、
 上記複数の記憶手段に対してデータを記憶するときに、
 上記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の上記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定し、
 上記ジャーナル用記憶手段として設定した上記記憶手段に上記ジャーナルを記憶すると共に、上記フラグメント用記憶手段として設定した複数の上記記憶手段に上記複数のフラグメントデータを分散してそれぞれ記憶する、という構成を採る。
 そして、上記データ処理方法では、上記複数の記憶手段のうちジャーナル用記憶手段を設定するときに、上記ジャーナル用記憶手段を順次異なる上記記憶手段に変更して設定する、という構成を採る。
 上述した構成を有する、プログラム、又は、データ処理方法、の発明であっても、上記ストレージシステムと同様の作用を有するために、上述した本発明の目的を達成することができる。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
 なお、本発明は、日本国にて2009年2月16日に特許出願された特願2009-032335の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
 本発明は、複数のコンピュータを接続して構成されるストレージシステムに利用することができ、産業上の利用可能性を有する。
1 ストレージシステム
2 データ処理手段
3 記憶先設定手段
4 分散記憶制御手段
5 記憶手段
10 ストレージシステム
10A アクセラレータノード
10B ストレージノード
11 バックアップシステム
12 バックアップ装置
21 フラグメント生成部
22 分散記憶制御部
23 ジャーナル記憶制御部
24 記憶先設定部
31 記憶装置
32 メモリ
 

Claims (14)

  1.  複数の記憶手段と、これら複数の記憶手段に対してデータを記憶するデータ処理手段と、を備え、
     前記データ処理手段は、
     前記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の前記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、
     前記記憶先設定手段にて前記ジャーナル用記憶手段として設定した前記記憶手段に前記ジャーナルを記憶すると共に、前記フラグメント用記憶手段として設定した複数の前記記憶手段に前記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた、
    ストレージシステム。
  2.  請求項1に記載のストレージシステムであって、
     前記記憶先設定手段は、前記ジャーナル用記憶手段を順次異なる前記記憶手段に変更して設定する、
    ストレージシステム。
  3.  請求項2に記載のストレージシステムであって、
     前記記憶先設定手段は、全ての前記記憶手段を変更対象として、前記ジャーナル用記憶手段を順次変更して設定する、
    ストレージシステム。
  4.  請求項2又は3に記載のストレージシステムであって、
     前記記憶先設定手段は、前記ジャーナル用記憶手段として設定された前記記憶手段の空き容量と、他の前記記憶手段の空き容量と、の値の変化に基づくタイミングで、前記ジャーナル用記憶手段を変更して設定する、
    ストレージシステム。
  5.  請求項4に記載のストレージシステムであって、
     前記記憶先設定手段は、
    {(前記ジャーナル用記憶手段として設定された記憶手段の空き容量)-(他の記憶手段のうち最も空き容量の少ない記憶手段の空き容量)}>α(α:予め設定された値)
    を満たすようになったタイミングで、前記ジャーナル用記憶手段を変更して設定する、
    ストレージシステム。
  6.  請求項1乃至5のいずれか一項に記載のストレージシステムであって、
     前記記憶先設定手段は、空き容量が最も少ない前記記憶手段を、前記ジャーナル用記憶手段として設定する、
    ストレージシステム。
  7.  請求項1乃至6のいずれか一項に記載のストレージシステムであって、
     前記分散記憶制御手段にて前記ジャーナルを前記記憶手段に記憶すると共に、当該ジャーナルをストレージシステムに装備された揮発性メモリにも記憶するジャーナル記憶制御手段を備えた、
    ストレージシステム。
  8.  請求項7に記載のストレージシステムであって、
     前記ジャーナル記憶制御手段は、前記記憶先設定手段にて前記ジャーナル用記憶手段を変更設定したときに、前記揮発性メモリに記憶されているジャーナルを、前記ジャーナル用記憶手段として新たに変更設定された前記記憶手段に記憶する、
    ストレージシステム。
  9.  請求項7又は8に記載のストレージシステムであって、
     前記ジャーナル記憶制御手段は、前記揮発性メモリに記憶しているジャーナルを、ストレージシステムの作動状況に応じて、前記フラグメント用記憶手段として設定されている前記記憶手段に記憶する、
    ストレージシステム。
  10.  請求項9に記載のストレージシステムであって、
     前記ジャーナル記憶制御手段は、前記ストレージシステムの障害発生時に、前記揮発性メモリに記憶しているジャーナルを前記フラグメント用記憶手段として設定されている全ての前記記憶手段にそれぞれ記憶する、
    ストレージシステム。
  11.  複数の記憶手段を備えた情報処理装置に、
     前記複数の記憶手段に対してデータを記憶するデータ処理手段を実現させると共に、
     前記データ処理手段は、
     前記複数の記憶手段のうち、情報処理装置におけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の前記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定する記憶先設定手段と、
     前記記憶先設定手段にて前記ジャーナル用記憶手段として設定した前記記憶手段に前記ジャーナルを記憶すると共に、前記フラグメント用記憶手段として設定した複数の前記記憶手段に前記複数のフラグメントデータを分散してそれぞれ記憶する分散記憶制御手段と、を備えた、
    プログラム。
  12.  請求項11に記載のプログラムであって、
     前記記憶先設定手段は、前記ジャーナル用記憶手段を順次異なる前記記憶手段に変更して設定する、
    プログラム。
  13.  複数の記憶手段を備えたストレージシステムが、
     前記複数の記憶手段に対してデータを記憶するときに、
     前記複数の記憶手段のうち、ストレージシステムにおけるデータ処理状況を表すジャーナルを記憶するジャーナル用記憶手段を設定すると共に、当該設定されたジャーナル用記憶手段とは異なる他の複数の前記記憶手段を、記憶対象データを形成する複数のフラグメントデータをそれぞれ分散して記憶するフラグメント用記憶手段としてそれぞれ設定し、
     前記ジャーナル用記憶手段として設定した前記記憶手段に前記ジャーナルを記憶すると共に、前記フラグメント用記憶手段として設定した複数の前記記憶手段に前記複数のフラグメントデータを分散してそれぞれ記憶する、
    データ処理方法。
  14.  請求項13に記載のデータ処理方法であって、
     前記複数の記憶手段のうちジャーナル用記憶手段を設定するときに、当該ジャーナル用記憶手段を順次異なる前記記憶手段に変更して設定する、
    データ処理方法。
     
PCT/JP2009/003963 2009-02-16 2009-08-20 ストレージシステム WO2010092634A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/147,670 US8555007B2 (en) 2009-02-16 2009-08-20 Storage system with journal disks dynamically assigned

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009032335A JP5365236B2 (ja) 2009-02-16 2009-02-16 ストレージシステム
JP2009-032335 2009-02-16

Publications (1)

Publication Number Publication Date
WO2010092634A1 true WO2010092634A1 (ja) 2010-08-19

Family

ID=42561488

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/003963 WO2010092634A1 (ja) 2009-02-16 2009-08-20 ストレージシステム

Country Status (3)

Country Link
US (1) US8555007B2 (ja)
JP (1) JP5365236B2 (ja)
WO (1) WO2010092634A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6078984B2 (ja) * 2012-05-23 2017-02-15 富士通株式会社 処理装置,処理方法,処理プログラム及び管理装置
AU2013403132B2 (en) 2013-10-18 2016-11-24 Huawei Technologies Co., Ltd. Data storage method, data storage apparatus, and storage device
JP6376626B2 (ja) * 2017-06-30 2018-08-22 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. データ格納方法、データストレージ装置、及びストレージデバイス
US10936446B2 (en) * 2018-02-05 2021-03-02 Vmware, Inc. Efficient handling of block write atomicity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282211A (ja) * 1996-04-08 1997-10-31 Nec Corp 更新後ジャーナル採取方式
JP2001184176A (ja) * 1999-12-27 2001-07-06 Toshiba Corp ディスク制御装置
JP2007286860A (ja) * 2006-04-17 2007-11-01 Hitachi Ltd データ転送方法及び情報処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0254346A (ja) 1988-08-18 1990-02-23 Fujitsu Ltd ファイル切替処理方法
US5787242A (en) * 1995-12-29 1998-07-28 Symbios Logic Inc. Method and apparatus for treatment of deferred write data for a dead raid device
US5778393A (en) * 1996-05-20 1998-07-07 International Business Machines Corporation Adaptive multitasking for dataset storage
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
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
US7062628B2 (en) * 2004-09-28 2006-06-13 Hitachi, Ltd. Method and apparatus for storage pooling and provisioning for journal based storage and recovery
US7685378B2 (en) * 2007-02-15 2010-03-23 Hitachi, Ltd. Methods and apparatus for adjusting a journal area for continuous data protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282211A (ja) * 1996-04-08 1997-10-31 Nec Corp 更新後ジャーナル採取方式
JP2001184176A (ja) * 1999-12-27 2001-07-06 Toshiba Corp ディスク制御装置
JP2007286860A (ja) * 2006-04-17 2007-11-01 Hitachi Ltd データ転送方法及び情報処理装置

Also Published As

Publication number Publication date
JP2010191499A (ja) 2010-09-02
JP5365236B2 (ja) 2013-12-11
US8555007B2 (en) 2013-10-08
US20110296126A1 (en) 2011-12-01

Similar Documents

Publication Publication Date Title
EP2400382B1 (en) Storage system
JP5285610B2 (ja) グローバルホットスペアディスクが存在するときに、故障したドライブを復元、及びコピーバックする最適化された方法
US7529965B2 (en) Program, storage control method, and storage system
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
KR100275900B1 (ko) 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
JP5285611B2 (ja) グローバルホットスペアディスクが存在するときに、切断されたドライブを復元、及びコピーバックする最適化された方法
US8725969B2 (en) Distributed content storage system supporting different redundancy degrees
US8930663B2 (en) Handling enclosure unavailability in a storage system
US9081697B2 (en) Storage control apparatus and storage control method
EP0657801A1 (en) System and method for supporting reproduction of full motion video on a plurality of playback platforms
JP2006331076A (ja) データ記憶システム及び記憶方法
JP5365236B2 (ja) ストレージシステム
JP5556192B2 (ja) ストレージシステム
JP2006268420A (ja) ディスクアレイ装置、ストレージシステムおよび制御方法
JPH07261945A (ja) ディスクアレイ装置およびディスクアレイの区分け方法
KR20030073982A (ko) 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
JP2002278706A (ja) ディスクアレイ装置
JP5891842B2 (ja) ストレージシステム
JP6175771B2 (ja) ディスクアレイ装置、バッドセクタ修復方法および修復プログラム
JPH08286844A (ja) パリティ生成制御方法およびディスク制御装置
JP4893180B2 (ja) 記憶装置の故障回復方法、故障回復プログラムおよび制御装置
JP5598124B2 (ja) データ記録再生装置、データ記録方法、及び、データ記録プログラム
JP2010224803A (ja) ディスクアレイ装置
JP3874019B2 (ja) 記憶装置システム
JP2011159150A (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: 09839957

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13147670

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

Country of ref document: EP

Kind code of ref document: A1