JP2021009646A - Storage control apparatus, and storage control program - Google Patents

Storage control apparatus, and storage control program Download PDF

Info

Publication number
JP2021009646A
JP2021009646A JP2019124305A JP2019124305A JP2021009646A JP 2021009646 A JP2021009646 A JP 2021009646A JP 2019124305 A JP2019124305 A JP 2019124305A JP 2019124305 A JP2019124305 A JP 2019124305A JP 2021009646 A JP2021009646 A JP 2021009646A
Authority
JP
Japan
Prior art keywords
data
cache
stored
storage
storage device
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2019124305A
Other languages
Japanese (ja)
Other versions
JP7288191B2 (en
Inventor
由嘉莉 土山
Yukari Tsuchiyama
由嘉莉 土山
广宇 周
Guangyu Zhou
广宇 周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019124305A priority Critical patent/JP7288191B2/en
Publication of JP2021009646A publication Critical patent/JP2021009646A/en
Application granted granted Critical
Publication of JP7288191B2 publication Critical patent/JP7288191B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

To reduce time required for rebuilding processing.SOLUTION: According to the present invention, a storage unit 1a has a region of a cache 1c. In response to access request from a host apparatus 3, a processing unit 1b controls, by using the cache 1c, processing of accessing to a logic storage region 2e formed by storage units 2a through 2c. The processing unit 1b, if the storage apparatus 2c does not work correctly, selects data DT2 to be rebuilt from data stored in the storage apparatus 2c, and, if the data DT2 is stored in the cache 1c, reads the data DT2 from the cache 1c to store it in a storage apparatus 2d that is a substitute of the storage apparatus 2c.SELECTED DRAWING: Figure 1

Description

本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。 The present invention relates to a storage control device and a storage control program.

ストレージシステムは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の複数の記憶装置と、記憶装置の制御を行う制御モジュールとを有して、情報処理で扱う大量のデータを記録管理する。記憶装置は、例えば、RAID(Redundant Array of Inexpensive Disks)によってアレイ化されて耐障害性および可用性の確保が図られる。 The storage system has a plurality of storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), and a control module that controls the storage devices, and records and manages a large amount of data handled by information processing. .. The storage device is arrayed by, for example, RAID (Redundant Array of Inexpensive Disks) to ensure fault tolerance and availability.

また、ストレージシステムでは、RAIDグループ内の記憶装置が故障によって使用が中止されると、その記憶装置に記憶されていたデータがRAIDグループ内の他の記憶装置内のデータを基に取得されて代替用の記憶装置に格納されるリビルド(Rebuild)処理が行われる。データの冗長化のためにパリティが使用されていた場合、故障した記憶装置に記憶されていたデータは、RAIDグループ内の他の記憶装置内のデータを基に再構築される。 Further, in the storage system, when the storage device in the RAID group is stopped due to a failure, the data stored in the storage device is acquired based on the data in the other storage devices in the RAID group and replaced. Rebuild processing is performed, which is stored in the storage device for. When parity is used for data redundancy, the data stored in the failed storage device is reconstructed based on the data in other storage devices in the RAID group.

リビルドの関連技術として、例えば、通常運用と障害復旧とでバッファを切替え、障害復旧時にバッファデータを活用して復旧処理を行う技術が提案されている。また、ディスク装置へのエラー検出時のデータをバッファに格納し、エラー復旧処理中のアクセスはバッファに格納されたデータを使用する技術が提案されている。さらに、リビルド中にホストからの書き込み要求のあった領域を補助ディスクに書き込んで同領域をリビルド済として管理する技術が提案されている。 As a technique related to rebuilding, for example, a technique has been proposed in which the buffer is switched between normal operation and failure recovery, and recovery processing is performed by utilizing the buffer data at the time of failure recovery. Further, a technique has been proposed in which data at the time of error detection in a disk device is stored in a buffer, and access during error recovery processing uses the data stored in the buffer. Further, a technique has been proposed in which an area requested to be written by the host during rebuilding is written to an auxiliary disk and the area is managed as rebuilt.

特開平9−274542号公報Japanese Unexamined Patent Publication No. 9-274542 特開平10−289065号公報Japanese Unexamined Patent Publication No. 10-289065 特開2014−96072号公報Japanese Unexamined Patent Publication No. 2014-96072

ホストからのI/O(Input/Output)要求に対する応答性能は、リビルド処理中のRAIDグループに対するI/O要求時の方が、正常なRAIDグループに対するI/O要求時より低下する。リビルド処理にかかる時間が長いほど、応答性能が低くなっている期間が長くなってしまう。 The response performance to the I / O (Input / Output) request from the host is lower when the I / O request is made to the RAID group during the rebuild process than when the I / O request is made to the normal RAID group. The longer the rebuild process takes, the longer the response performance will be low.

1つの側面では、本発明は、リビルド処理時間の短縮化を図ったストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。 In one aspect, it is an object of the present invention to provide a storage control device and a storage control program in which the rebuild processing time is shortened.

1つの案では、記憶部と処理部とを有する次のようなストレージ制御装置が提供される。このストレージ制御装置において、記憶部は、キャッシュの領域を含む。処理部は、ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス処理を、キャッシュを用いて制御する。また、処理部は、複数の記憶装置のうち第1の記憶装置が故障したとき、第1の記憶装置に記憶されていたデータの中からリビルド対象とする第1のデータを選択し、第1のデータがキャッシュに格納されている場合、キャッシュから第1のデータを読み出して、第1の記憶装置を代替する第2の記憶装置に格納する。 In one proposal, the following storage control device having a storage unit and a processing unit is provided. In this storage control device, the storage unit includes a cache area. The processing unit controls the access processing for the logical storage area realized by the plurality of storage devices by using the cache in response to the access request from the host device. Further, when the first storage device among the plurality of storage devices fails, the processing unit selects the first data to be rebuilt from the data stored in the first storage device, and first When the data of is stored in the cache, the first data is read from the cache and stored in the second storage device which substitutes for the first storage device.

また、1つの案では、コンピュータに上記ストレージ制御装置と同様の処理を実行させるストレージ制御プログラムが提供される。 Further, in one proposal, a storage control program for causing a computer to execute the same processing as the storage control device is provided.

1側面によれば、リビルド処理時間を短縮できる。 According to one aspect, the rebuild processing time can be shortened.

第1の実施の形態に係るストレージ制御装置の一例を説明するための図である。It is a figure for demonstrating an example of the storage control apparatus which concerns on 1st Embodiment. 第2の実施の形態に係るストレージシステムの構成例を示す図である。It is a figure which shows the configuration example of the storage system which concerns on 2nd Embodiment. CMの機能ブロックの一例を示す図である。It is a figure which shows an example of the functional block of CM. 2次キャッシュ管理テーブルの構成の一例を示す図である。It is a figure which shows an example of the structure of the secondary cache management table. 論理ボリュームに対して読み出しが要求された場合の制御手順の例を示す第1の図である。FIG. 1 is a first diagram showing an example of a control procedure when a read is requested for a logical volume. 論理ボリュームに対して読み出しが要求された場合の制御手順の例を示す第2の図である。FIG. 2 is a second diagram showing an example of a control procedure when a read is requested for a logical volume. リビルド処理の例を示す第1の図である。It is the first figure which shows the example of the rebuild process. リビルド処理の例を示す第2の図である。It is the 2nd figure which shows the example of the rebuild process. リビルド処理の例を示す第3の図である。It is a 3rd figure which shows the example of the rebuild process. リビルド処理の一例を示すフローチャートである。It is a flowchart which shows an example of a rebuild process. リビルド処理の一例を示すフローチャートである。It is a flowchart which shows an example of a rebuild process. 2次キャッシュへのデータ格納処理の一例を示すフローチャートである。It is a flowchart which shows an example of the data storage process in a secondary cache. 2次キャッシュデータの削除処理の一例を示すフローチャートである。It is a flowchart which shows an example of the deletion process of the secondary cache data.

以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るストレージ制御装置の一例を説明するための図である。図1に示すストレージ制御装置1は、記憶部1aおよび処理部1bを備える。記憶部1aは、例えば、RAM(Random Access Memory)などのストレージ制御装置1が備える記憶装置として実現される。処理部1bは、例えば、ストレージ制御装置1が備えるプロセッサとして実現される。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram for explaining an example of a storage control device according to the first embodiment. The storage control device 1 shown in FIG. 1 includes a storage unit 1a and a processing unit 1b. The storage unit 1a is realized as, for example, a storage device included in the storage control device 1 such as a RAM (Random Access Memory). The processing unit 1b is realized as, for example, a processor included in the storage control device 1.

また、ストレージ制御装置1には、記憶装置2a〜2dが接続されている。記憶装置2a〜2dは、少なくとも記憶部1aを実現する記憶装置よりアクセス性能の低い記憶装置である。例えば、記憶部1aがRAMである場合、記憶装置2a〜2dは、SSDやHDDである。さらに、ストレージ制御装置1には、ホスト装置3が接続されている。 Further, storage devices 2a to 2d are connected to the storage control device 1. The storage devices 2a to 2d are storage devices having lower access performance than the storage devices that realize at least the storage unit 1a. For example, when the storage unit 1a is a RAM, the storage devices 2a to 2d are SSDs and HDDs. Further, a host device 3 is connected to the storage control device 1.

記憶部1aは、キャッシュ1cの領域を含んでいる。処理部1bは、ホスト装置3からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域2eに対するアクセス処理を、キャッシュ1cを用いて制御する。例えば、処理部1bは、1度読み出しが要求されたデータを所定の条件の下でキャッシュ1cに保持しておく。処理部1bは、ホスト装置3からデータの読み出し要求を受けたとき、そのデータがキャッシュ1cに保持されていれば、そのデータをストレージ部2から読み出すことなく、キャッシュ1cから読み出してホスト装置3に送信する。 The storage unit 1a includes an area of the cache 1c. The processing unit 1b controls the access processing for the logical storage area 2e realized by the plurality of storage devices by using the cache 1c in response to the access request from the host device 3. For example, the processing unit 1b holds the data requested to be read once in the cache 1c under a predetermined condition. When the processing unit 1b receives a data read request from the host device 3, if the data is held in the cache 1c, the processing unit 1b reads the data from the cache 1c to the host device 3 without reading the data from the storage unit 2. Send.

また、図1の例では、論理記憶領域2eは記憶装置2a〜2cによって実現される。論理記憶領域2eでは、データが冗長化されるように制御される。すなわち、1つの記憶装置が故障した場合、故障した記憶装置のデータを、他の記憶装置から取得すること、あるいは他の記憶装置のデータを基に再構築することが可能になっている。 Further, in the example of FIG. 1, the logical storage area 2e is realized by the storage devices 2a to 2c. In the logical storage area 2e, the data is controlled to be redundant. That is, when one storage device fails, it is possible to acquire the data of the failed storage device from another storage device or reconstruct it based on the data of the other storage device.

図1では例として、論理記憶領域2eはRAID5によって制御される。記憶装置2aにはデータDT1、DT3が記憶され、記憶装置2bにはパリティPR1とデータDT4が記憶され、記憶装置2cにはデータDT2とパリティPR2が記憶されている。そして、パリティPR1はデータDT1、DT2を冗長化するための冗長データであり、パリティPR2はデータDT3、DT4を冗長化するための冗長データである。 In FIG. 1, as an example, the logical storage area 2e is controlled by RAID 5. Data DT1 and DT3 are stored in the storage device 2a, parity PR1 and data DT4 are stored in the storage device 2b, and data DT2 and parity PR2 are stored in the storage device 2c. The parity PR1 is redundant data for making the data DT1 and DT2 redundant, and the parity PR2 is redundant data for making the data DT3 and DT4 redundant.

処理部1bは、論理記憶領域2eに含まれる記憶装置が故障すると、故障した記憶装置に記憶されていたデータを、その記憶装置を代替する他の記憶装置(図1の例では記憶装置2d)に格納するリビルド処理を実行する。リビルド処理は、次のように実行される。なお、ここでは例として記憶装置2cが故障したとする。 When the storage device included in the logical storage area 2e fails, the processing unit 1b replaces the data stored in the failed storage device with another storage device (storage device 2d in the example of FIG. 1). Execute the rebuild process stored in. The rebuild process is executed as follows. Here, it is assumed that the storage device 2c has failed as an example.

処理部1bは、故障した記憶装置2cに記憶されていたデータの中からリビルド対象とするデータを選択し、まず、故障したデータがキャッシュ1cに格納されているかを判定する。図1の例では、リビルド対象としてデータDT2が選択されたとき、データDT2がキャッシュ1cに格納されていたとする。この場合、処理部1bは、キャッシュ1cからデータDT2を読み出して、代替用の記憶装置2dに格納する(ステップS1)。 The processing unit 1b selects the data to be rebuilt from the data stored in the failed storage device 2c, and first determines whether the failed data is stored in the cache 1c. In the example of FIG. 1, it is assumed that the data DT2 is stored in the cache 1c when the data DT2 is selected as the rebuild target. In this case, the processing unit 1b reads the data DT2 from the cache 1c and stores it in the alternative storage device 2d (step S1).

これにより、処理部1bは、データDT1とパリティPR1をそれぞれ記憶装置2a、2bから読み出し、データDT1とパリティPR1を基にデータDT2を再構築する必要がなくなる。このように、処理部1bは、ストレージ部2の記憶装置にアクセスしなくてよくなるので、リビルド対象のデータDT2を記憶装置2dに格納するのにかかる時間を短縮できる。 As a result, the processing unit 1b does not need to read the data DT1 and the parity PR1 from the storage devices 2a and 2b, respectively, and reconstruct the data DT2 based on the data DT1 and the parity PR1. As described above, since the processing unit 1b does not have to access the storage device of the storage unit 2, the time required to store the data DT2 to be rebuilt in the storage device 2d can be shortened.

また、処理部1bは、リビルド対象として選択したデータがキャッシュ1cに格納されていなかった場合、そのデータを再構築するためのデータがキャッシュ1cに格納されているかを判定してもよい。図1の例では、リビルド対象としてパリティPR2が選択されたとき、パリティPR2はキャッシュ1cに格納されていないが、パリティPR2を再構築するためのデータDT3、DT4がキャッシュ1cに格納されていたとする。この場合、処理部1bは、データDT3、DT4をキャッシュ1cから読み出し、読み出したデータDT3、DT4を基にパリティPR2を再構築して、代替用の記憶装置2dに格納する(ステップS2)。 Further, when the data selected as the rebuild target is not stored in the cache 1c, the processing unit 1b may determine whether the data for reconstructing the data is stored in the cache 1c. In the example of FIG. 1, when the parity PR2 is selected as the rebuild target, the parity PR2 is not stored in the cache 1c, but the data DT3 and DT4 for reconstructing the parity PR2 are stored in the cache 1c. .. In this case, the processing unit 1b reads the data DT3 and DT4 from the cache 1c, reconstructs the parity PR2 based on the read data DT3 and DT4, and stores the data DT3 and DT4 in the alternative storage device 2d (step S2).

これにより、処理部1bは、リビルド対象のパリティPR2を再構築するために必要なデータDT3、DT4をそれぞれ記憶装置2a、2bから読み出す必要がなくなる。このように、処理部1bは、ストレージ部2の記憶装置にアクセスしなくてよくなるので、リビルド対象データであるパリティPR2を記憶装置2dに格納するのにかかる時間を短縮できる。 As a result, the processing unit 1b does not need to read the data DT3 and DT4 required for reconstructing the parity PR2 to be rebuilt from the storage devices 2a and 2b, respectively. As described above, since the processing unit 1b does not have to access the storage device of the storage unit 2, the time required to store the parity PR2 which is the data to be rebuilt in the storage device 2d can be shortened.

以上のように、処理部1bは、リビルド対象のデータ、またはそのデータを再構築するためのデータがキャッシュ1cに存在している場合には、キャッシュ1cからデータを読み出して利用する。このようなケースでは、ストレージ部2の記憶装置にアクセスしなくてよくなる分だけ、リビルド対象のデータを代替用の記憶装置2dに格納するのにかかる時間を短縮できる。その結果、リビルド処理時間を短縮できる。 As described above, when the data to be rebuilt or the data for reconstructing the data exists in the cache 1c, the processing unit 1b reads the data from the cache 1c and uses it. In such a case, the time required to store the data to be rebuilt in the alternative storage device 2d can be shortened by the amount that the storage device of the storage unit 2 does not need to be accessed. As a result, the rebuild processing time can be shortened.

[第2の実施の形態]
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置50を含む。ストレージ装置50は、CM(Controller Module)100とドライブ部200を有する。また、CM100には、ホスト装置300が接続されている。CM100とホスト装置300とは、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)を介して接続される。
[Second Embodiment]
FIG. 2 is a diagram showing a configuration example of the storage system according to the second embodiment. The storage system shown in FIG. 2 includes a storage device 50. The storage device 50 has a CM (Controller Module) 100 and a drive unit 200. Further, a host device 300 is connected to the CM 100. The CM 100 and the host device 300 are connected via, for example, a SAN (Storage Area Network) using Fiber Channel (FC) or iSCSI (Internet Small Computer System Interface).

CM100は、ホスト装置300からの要求に応じて、ドライブ部200に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。ドライブ部200には、ホスト装置300からのアクセス対象となる記憶装置が複数台搭載されている。本実施の形態では例として、ドライブ部200は、記憶装置として複数台のHDDが搭載されたディスクアレイ装置である。 The CM 100 is a storage control device that controls access to a storage device mounted on the drive unit 200 in response to a request from the host device 300. The drive unit 200 is equipped with a plurality of storage devices to be accessed from the host device 300. In the present embodiment, as an example, the drive unit 200 is a disk array device in which a plurality of HDDs are mounted as storage devices.

CM100は、ホスト装置300からの要求に応じたドライブ部200に対する読み書きを、RAIDによって制御する。CM100は、ドライブ部200内の複数台のHDDを含むRAIDグループを作成する。RAIDグループは、所定のRAIDレベルによって複数台のHDDによる物理記憶領域の読み書きが制御される論理記憶領域である。図3の例では、ドライブ部200内のHDD201、202、203、・・・を含むRAIDグループRG1と、ドライブ部200内のHDD211、212、213、・・・を含むRAIDグループRG2とが設定されている。 The CM 100 controls reading and writing to the drive unit 200 in response to a request from the host device 300 by RAID. The CM 100 creates a RAID group including a plurality of HDDs in the drive unit 200. A RAID group is a logical storage area in which reading and writing of a physical storage area by a plurality of HDDs is controlled by a predetermined RAID level. In the example of FIG. 3, the RAID group RG1 including the HDDs 201, 202, 203, ... In the drive unit 200 and the RAID group RG2 including the HDDs 211, 212, 213, ... In the drive unit 200 are set. ing.

CM100はさらに、1つのRAIDグループに対して1つ以上の論理ボリュームを割り当てる。論理ボリュームは、ホスト装置300からのアクセス対象となる論理記憶領域である。論理ボリュームの実体的な記憶領域は、対応するRAIDグループに含まれるHDDによって実現される。CM100は、ホスト装置300から論理ボリュームに対するアクセス要求を受けることによって、対応するRAIDグループに含まれるHDDにアクセスする。 The CM100 further allocates one or more logical volumes for one RAID group. The logical volume is a logical storage area to be accessed from the host device 300. The actual storage area of the logical volume is realized by the HDD included in the corresponding RAID group. The CM 100 accesses the HDD included in the corresponding RAID group by receiving an access request to the logical volume from the host device 300.

また、ドライブ部200は、ホットスペア(Hot Spare)221、222を備えている。ホットスペア221、222は、予備用のHDDであり、RAIDグループRG1、RG2に含まれるいずれかのHDDが故障したとき、そのHDDの代わりに使用される。 Further, the drive unit 200 includes hot spares (Hot Spare) 221 and 222. The hot spares 221 and 222 are spare HDDs, and are used in place of the HDDs when any of the HDDs included in the RAID groups RG1 and RG2 fails.

次に、図2を用いてCM100のハードウェア構成例について説明する。図2に示すように、CM100は、プロセッサ101、RAM102、SSD103、CA(Channel Adapter)104およびDI(Drive Interface)105を有する。これらの構成要素は、バス106を介して接続されている。 Next, a hardware configuration example of the CM100 will be described with reference to FIG. As shown in FIG. 2, the CM 100 has a processor 101, a RAM 102, an SSD 103, a CA (Channel Adapter) 104, and a DI (Drive Interface) 105. These components are connected via bus 106.

プロセッサ101は、CM100全体を統括的に制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。 The processor 101 controls the entire CM 100 in an integrated manner. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device). Further, the processor 101 may be a combination of two or more elements of the CPU, MPU, DSP, ASIC, and PLD.

RAM102は、CM100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。例えば、RAM102には、ホスト装置300からの要求に応じたドライブ部200へのアクセス制御の際に用いられる1次キャッシュの領域が確保される。また、RAM102には、バッファの領域が確保され、さらに各種の管理テーブルが格納される。 The RAM 102 is used as the main storage device of the CM 100. At least a part of an OS (Operating System) program or an application program to be executed by the processor 101 is temporarily stored in the RAM 102. Further, the RAM 102 stores various data necessary for processing by the processor 101. For example, the RAM 102 secures a primary cache area used for access control to the drive unit 200 in response to a request from the host device 300. In addition, a buffer area is secured in the RAM 102, and various management tables are further stored.

SSD103は、CM100の補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。また、SSD103には、ホスト装置300からの要求に応じてドライブ部200へのアクセス制御の際に用いられる2次キャッシュの領域が確保される。 SSD 103 is used as an auxiliary storage device for CM100. The OS program, application program, and various data are stored in the SSD 103. Further, the SSD 103 secures a secondary cache area used for access control to the drive unit 200 in response to a request from the host device 300.

CA104は、ホスト装置300と通信するためのインタフェースである。DI105は、ドライブ部200と通信するためのインタフェースである。DI105は、例えば、SAS(Serial Attached SCSI)インタフェースである。 The CA 104 is an interface for communicating with the host device 300. The DI 105 is an interface for communicating with the drive unit 200. The DI105 is, for example, a SAS (Serial Attached SCSI) interface.

以上のハードウェア構成によってCM100の処理機能が実現される。
図3は、CMの機能ブロックの一例を示す図である。CM100は、制御部10、1次キャッシュ21、2次キャッシュ22、バッファ23および管理情報記憶部30を備える。
The processing function of CM100 is realized by the above hardware configuration.
FIG. 3 is a diagram showing an example of a CM functional block. The CM 100 includes a control unit 10, a primary cache 21, a secondary cache 22, a buffer 23, and a management information storage unit 30.

制御部10の処理は、例えば、プロセッサが所定のプログラムを実行することで実現される。1次キャッシュ21およびバッファ23は、RAM102に確保される記憶領域である。2次キャッシュ22は、SSD103に確保される記憶領域である。管理情報記憶部30は、例えば、RAM102の記憶領域によって実現される。 The processing of the control unit 10 is realized, for example, by the processor executing a predetermined program. The primary cache 21 and the buffer 23 are storage areas reserved in the RAM 102. The secondary cache 22 is a storage area secured in the SSD 103. The management information storage unit 30 is realized, for example, by the storage area of the RAM 102.

制御部10は、I/O制御部11、リビルド制御部12および2次キャッシュデータ管理部13を含む。
I/O制御部11は、ホスト装置300からのデータ読み出し(Read I/O)およびデータ書き込み(Write I/O)の要求に応じて、ドライブ部200内のHDDに対するI/O制御を行う。I/O制御部11は、このようなI/O制御を1次キャッシュ21と2次キャッシュ22を用いて行う。
The control unit 10 includes an I / O control unit 11, a rebuild control unit 12, and a secondary cache data management unit 13.
The I / O control unit 11 performs I / O control on the HDD in the drive unit 200 in response to a request for data read (Read I / O) and data write (Write I / O) from the host device 300. The I / O control unit 11 performs such I / O control using the primary cache 21 and the secondary cache 22.

リビルド制御部12は、ドライブ部200においてHDDの故障が発生した場合、故障したHDD(以下、「故障HDD」と記載する場合がある)に記憶されていたデータをホットスペアに格納するリビルド処理を行う。このリビルド処理において、リビルド制御部12は、リビルド処理の対象データが2次キャッシュ22に格納されている場合、そのデータを2次キャッシュ22からバッファ23に読み出して、バッファ23からホットスペアにデータを格納する。 When an HDD failure occurs in the drive unit 200, the rebuild control unit 12 performs a rebuild process of storing the data stored in the failed HDD (hereinafter, may be referred to as “failed HDD”) in a hot spare. .. In this rebuild process, when the target data of the rebuild process is stored in the secondary cache 22, the rebuild control unit 12 reads the data from the secondary cache 22 into the buffer 23 and stores the data from the buffer 23 into the hot spare. To do.

また、リビルド制御部12は、対象データが2次キャッシュ22に格納されていないが、対象データに対応する冗長データが2次キャッシュ22に格納されている場合、冗長データを2次キャッシュ22からバッファ23へ読み出す。そして、リビルド制御部12は、冗長データを基にバッファ23上でデータの再構築を行い、再構築したデータをバッファ23からホットスペアに格納する。 Further, when the target data is not stored in the secondary cache 22, but the redundant data corresponding to the target data is stored in the secondary cache 22, the rebuild control unit 12 buffers the redundant data from the secondary cache 22. Read to 23. Then, the rebuild control unit 12 reconstructs the data on the buffer 23 based on the redundant data, and stores the reconstructed data in the hot spare from the buffer 23.

このように、リビルド制御部12は、2次キャッシュ22上のデータを活用することで、リビルド処理中におけるドライブ部200内のHDDからの読み出し回数を抑制し、リビルド処理にかかる時間を短縮する。 In this way, the rebuild control unit 12 suppresses the number of times of reading from the HDD in the drive unit 200 during the rebuild process by utilizing the data on the secondary cache 22, and shortens the time required for the rebuild process.

また、リビルド制御部12は、対象データおよび冗長データが2次キャッシュ22に格納されていない場合、対象データが属するRAIDグループ内の正常なHDDからバッファ23へ冗長データを読み出す。そして、リビルド制御部12は、冗長データを基にバッファ23上でデータの再構築を行い、再構築したデータをホットスペアに格納する。 Further, when the target data and the redundant data are not stored in the secondary cache 22, the rebuild control unit 12 reads the redundant data from the normal HDD in the RAID group to which the target data belongs to the buffer 23. Then, the rebuild control unit 12 reconstructs the data on the buffer 23 based on the redundant data, and stores the reconstructed data in the hot spare.

2次キャッシュデータ管理部13は、2次キャッシュ22上のデータのうち、リビルド処理に伴って書き込まれたデータを管理するための処理を行う。2次キャッシュデータ管理部13は、書き込み処理部13aと削除処理部13bを含む。 The secondary cache data management unit 13 performs a process for managing the data written in the rebuild process among the data on the secondary cache 22. The secondary cache data management unit 13 includes a write processing unit 13a and a deletion processing unit 13b.

書き込み処理部13aは、リビルド処理によってドライブ部200内のHDDから読み出されたデータや、読み出されたデータを基に再構築されたデータを、2次キャッシュ22に格納する。書き込み処理部13aは、2次キャッシュ22の使用率や2次キャッシュ22上のデータのアクセス頻度を用いた所定の条件が満たされる場合に、これらのデータを2次キャッシュ22に格納する。 The write processing unit 13a stores the data read from the HDD in the drive unit 200 by the rebuild process and the data reconstructed based on the read data in the secondary cache 22. The write processing unit 13a stores these data in the secondary cache 22 when a predetermined condition using the usage rate of the secondary cache 22 and the access frequency of the data on the secondary cache 22 is satisfied.

削除処理部13bは、次のような条件にしたがって、書き込み処理部13aによって2次キャッシュ22に格納されたデータを削除して、2次キャッシュ22の領域を解放する。削除処理部13bは、書き込み処理部13aによって2次キャッシュ22に格納されたデータのうち、対応するRAIDグループのリビルド処理の完了から一定時間が経過したデータについて、アクセス頻度が規定値を下回るか否かを判定する。そして、削除処理部13bは、アクセス頻度が規定値を下回る場合には当該データを2次キャッシュ22から削除する。 The deletion processing unit 13b deletes the data stored in the secondary cache 22 by the writing processing unit 13a according to the following conditions, and releases the area of the secondary cache 22. The deletion processing unit 13b determines whether or not the access frequency of the data stored in the secondary cache 22 by the writing processing unit 13a is less than the specified value for the data for which a certain time has passed since the completion of the rebuild processing of the corresponding RAID group. Is determined. Then, the deletion processing unit 13b deletes the data from the secondary cache 22 when the access frequency is lower than the specified value.

管理情報記憶部30には、2次キャッシュ管理テーブル31とボリューム管理テーブル32が記憶される。
2次キャッシュ管理テーブル31は、2次キャッシュ22に格納されているデータを管理するための管理情報を保持する。2次キャッシュ管理テーブル31には、各データについて、2次キャッシュ22における格納位置情報、論理ボリュームにおける論理位置情報、アクセス頻度情報、リビルド処理に伴って格納されたデータか否かを識別する情報が登録される。
The secondary cache management table 31 and the volume management table 32 are stored in the management information storage unit 30.
The secondary cache management table 31 holds management information for managing the data stored in the secondary cache 22. In the secondary cache management table 31, each data contains storage position information in the secondary cache 22, logical position information in the logical volume, access frequency information, and information for identifying whether or not the data is stored in the rebuild process. be registered.

ボリューム管理テーブル32は、論理ボリュームおよびRAIDグループを管理するための管理情報を保持する。ボリューム管理テーブル32には、RAIDグループごとに、RAIDグループに含まれるHDDの識別情報、RAIDレベル、ストリップの設定情報などのRAIDグループの構成情報や、リビルド処理が実行された実行時刻情報が登録される。また、ボリューム管理テーブル32には、論理ボリュームごとに、容量、RAIDグループの割り当て先、論理ボリューム上の論理アドレスとRAIDグループ上の論理アドレスとの対応関係などの、論理ボリュームの構成情報が登録される。 The volume management table 32 holds management information for managing logical volumes and RAID groups. In the volume management table 32, the configuration information of the RAID group such as the identification information of the HDD included in the RAID group, the RAID level, and the setting information of the strip, and the execution time information in which the rebuild process is executed are registered for each RAID group. To. Further, in the volume management table 32, the configuration information of the logical volume such as the capacity, the allocation destination of the RAID group, the correspondence between the logical address on the logical volume and the logical address on the RAID group is registered for each logical volume. Or.

次に、2次キャッシュ管理テーブル31について説明する。
図4は、2次キャッシュ管理テーブルの構成の一例を示す図である。2次キャッシュ22の領域は、所定サイズ(例えば1MB)を有するページごとに管理される。2次キャッシュ管理テーブル31は、2次キャッシュ22の全ページにそれぞれ対応するレコードを有する。各レコードには、「物理位置」、「論理位置」、「アクセス頻度」および「格納契機フラグ」の各情報が含まれる。
Next, the secondary cache management table 31 will be described.
FIG. 4 is a diagram showing an example of the configuration of the secondary cache management table. The area of the secondary cache 22 is managed for each page having a predetermined size (for example, 1 MB). The secondary cache management table 31 has records corresponding to all pages of the secondary cache 22. Each record contains information of "physical position", "logical position", "access frequency", and "storage trigger flag".

「物理位置」は、2次キャッシュ22におけるページのアドレス情報である。各レコードの「物理位置」の項目には、あらかじめ対応するページのアドレス情報が登録されている。一方、「論理位置」、「アクセス頻度」および「格納契機フラグ」には、ページにデータが格納されていない場合、無効値(NULL)が登録される。 The "physical position" is the address information of the page in the secondary cache 22. The address information of the corresponding page is registered in advance in the "physical position" item of each record. On the other hand, in the "logical position", "access frequency", and "storage trigger flag", an invalid value (Null) is registered when no data is stored on the page.

「論理位置」は、ページに格納されたデータの論理アドレス情報である。この論理アドレス情報とは、論理ボリュームの識別情報と、論理ボリュームにおけるアドレス情報を含む。「論理位置」には、ページにデータが格納されると論理アドレス情報が登録される。 The "logical position" is the logical address information of the data stored in the page. The logical address information includes the identification information of the logical volume and the address information in the logical volume. Logical address information is registered in the "logical position" when data is stored on the page.

「アクセス頻度」は、ページに格納されたデータのアクセス頻度情報である。「アクセス頻度」には、ページにデータが格納されている場合にのみ情報が登録される。そして、「アクセス頻度」には、ページにデータが格納されたときに初期値「0」が登録され、ホスト装置300からのアクセスがあった場合にその値がインクリメントされて更新される。 The "access frequency" is the access frequency information of the data stored in the page. Information is registered in "access frequency" only when data is stored on the page. Then, an initial value "0" is registered in the "access frequency" when the data is stored on the page, and the value is incremented and updated when there is an access from the host device 300.

「格納契機フラグ」は、ページに格納されたデータがリビルド処理に伴って格納されたデータか否かを示すフラグ情報である。ここでは例として、「1」のときリビルド処理に伴って格納されたデータを示し、「0」のときそれ以外のデータ(I/O制御に伴って格納されたデータ)を示す。「格納契機フラグ」には、ページにデータが格納されたときに「0」または「1」が登録される。 The "storage trigger flag" is flag information indicating whether or not the data stored in the page is the data stored in the rebuild process. Here, as an example, when it is "1", the data stored in the rebuild process is shown, and when it is "0", the other data (data stored in the I / O control) is shown. In the "storage opportunity flag", "0" or "1" is registered when the data is stored on the page.

なお、図示しないが、2次キャッシュ管理テーブル31の各レコードには、上記情報の他、例えば、最終アクセス時刻やダーティフラグが登録されていてもよい。最終アクセス時刻は、ページに格納されたデータに対してホスト装置300からの要求に応じてアクセスされた最終時刻である。ダーティフラグは、ページに格納されたデータがライトバック済みでないダーティデータであるか否かを示すフラグ情報である。 Although not shown, in addition to the above information, for example, the last access time and the dirty flag may be registered in each record of the secondary cache management table 31. The last access time is the last time when the data stored in the page is accessed in response to a request from the host device 300. The dirty flag is flag information indicating whether or not the data stored in the page is dirty data that has not been written back.

次に、図5、図6を用いて、1次キャッシュ21と2次キャッシュ22を用いた論理ボリュームに対するアクセス制御処理の基本的な手順について説明する。図5、図6では例として、RAIDグループRG1に割り当てられた論理ボリュームに対して読み出しが要求された場合について説明する。 Next, the basic procedure of the access control process for the logical volume using the primary cache 21 and the secondary cache 22 will be described with reference to FIGS. 5 and 6. 5 and 6 show, as an example, a case where a read is requested for the logical volume assigned to the RAID group RG1.

図5は、論理ボリュームに対して読み出しが要求された場合の制御手順の例を示す第1の図である。図5において、ホスト装置300は、論理ボリューム上のデータD1の読み出しをCM100に要求する(ステップS11)。CM100のI/O制御部11は、まず、データD1が1次キャッシュ21に存在するかを判定する。 FIG. 5 is a first diagram showing an example of a control procedure when a read is requested for a logical volume. In FIG. 5, the host device 300 requests the CM 100 to read the data D1 on the logical volume (step S11). The I / O control unit 11 of the CM 100 first determines whether the data D1 exists in the primary cache 21.

ここで、図示しないが、データD1が1次キャッシュ21に存在する、すなわち、1次キャッシュヒットの場合、I/O制御部11は、データD1を1次キャッシュ21から読み出して、ホスト装置300に送信する。これにより、読み出し要求に対する応答時間が短縮される。 Here, although not shown, when the data D1 exists in the primary cache 21, that is, when the primary cache hits, the I / O control unit 11 reads the data D1 from the primary cache 21 and sends the data D1 to the host device 300. Send. As a result, the response time to the read request is shortened.

一方、図5では、データD1が1次キャッシュ21に存在していなかった、すなわち、1次キャッシュミスであったとする(ステップS12)。すると、I/O制御部11は次に、データD1が2次キャッシュ22に存在するかを判定する。この判定は、2次キャッシュ管理テーブル31に、「論理位置」に読み出し対象の論理アドレスが含まれるレコードが存在するか否かによって行われる。 On the other hand, in FIG. 5, it is assumed that the data D1 does not exist in the primary cache 21, that is, it is a primary cache miss (step S12). Then, the I / O control unit 11 then determines whether the data D1 exists in the secondary cache 22. This determination is made based on whether or not there is a record in the secondary cache management table 31 that includes the logical address to be read in the "logical position".

図5では、データD1が2次キャッシュ22に存在していた、すなわち、2次キャッシュヒットであったとする(ステップS13)。この場合、I/O制御部11は、2次キャッシュ22からデータD1を読み出して1次キャッシュ21にコピー(ステージング)し(ステップS14)、さらに1次キャッシュ21からデータD1を読み出してホスト装置300に送信する(ステップS15)。 In FIG. 5, it is assumed that the data D1 exists in the secondary cache 22, that is, it is a secondary cache hit (step S13). In this case, the I / O control unit 11 reads the data D1 from the secondary cache 22 and copies (staging) it to the primary cache 21 (step S14), and further reads the data D1 from the primary cache 21 to host device 300. (Step S15).

2次キャッシュ22が実装されるSSDは、論理ボリュームが割り当てられたRAIDグループRG1に含まれるHDDよりアクセス性能が高い。そのため、図5のように、1次キャッシュミスの場合でも2次キャッシュヒットとなれば2次キャッシュ22からデータD1を読み出すことで、データD1をRAIDグループRG1内のHDDから読み出す場合よりもホスト装置300に対する読み出し応答時間を短縮できる。 The SSD on which the secondary cache 22 is mounted has higher access performance than the HDD included in the RAID group RG1 to which the logical volume is assigned. Therefore, as shown in FIG. 5, even in the case of a primary cache miss, if a secondary cache hit occurs, the data D1 is read from the secondary cache 22, and the data D1 is read from the HDD in the RAID group RG1 rather than the host device. The read response time to 300 can be shortened.

なお、ステップS14の実行直前において1次キャッシュ21の空き領域がない場合、I/O制御部11は、例えば、1次キャッシュ21のデータのうち最終アクセス時刻が最も早いデータを1次キャッシュ21から削除する。そして、I/O制御部11は、1次キャッシュ21に生じた空き領域にデータD1をコピーする。 If there is no free area in the primary cache 21 immediately before the execution of step S14, the I / O control unit 11 selects, for example, the data having the earliest final access time from the primary cache 21 among the data in the primary cache 21. delete. Then, the I / O control unit 11 copies the data D1 to the free area generated in the primary cache 21.

図6は、論理ボリュームに対して読み出しが要求された場合の制御手順の例を示す第2の図である。図6において、ホスト装置300は、論理ボリューム上のデータD2の読み出しをCM100に要求する(ステップS21)。CM100のI/O制御部11は、図5の場合と同様に、データD2が1次キャッシュ21および2次キャッシュ22に存在するかを判定する。 FIG. 6 is a second diagram showing an example of a control procedure when a read is requested for the logical volume. In FIG. 6, the host device 300 requests the CM 100 to read the data D2 on the logical volume (step S21). The I / O control unit 11 of the CM 100 determines whether the data D2 exists in the primary cache 21 and the secondary cache 22 as in the case of FIG.

図6では、1次キャッシュミス(ステップS22)、かつ2次キャッシュミス(ステップS23)であったとする。この場合、I/O制御部11は、RAIDグループRG1に含まれるHDDからデータD2を読み出し、1次キャッシュ21にコピー(ステージング)する(ステップS24)。そして、I/O制御部11は、1次キャッシュ21からデータD2を読み出してホスト装置300に送信する(ステップS25)。 In FIG. 6, it is assumed that there is a primary cache miss (step S22) and a secondary cache miss (step S23). In this case, the I / O control unit 11 reads the data D2 from the HDD included in the RAID group RG1 and copies (staging) it to the primary cache 21 (step S24). Then, the I / O control unit 11 reads the data D2 from the primary cache 21 and transmits it to the host device 300 (step S25).

このとき、I/O制御部11は、データD2のブロックが2次キャッシュミスしたことを所定の管理テーブル(図示せず)に記録しておく。そして、I/O制御部11は、例えば、その後の非同期のタイミングで、管理テーブルに基づいてデータD2をRAIDグループRG1に含まれるHDDから読み出し、2次キャッシュ22にコピー(ステージング)する(ステップS26)。これにより、HDDから2次キャッシュ22へのデータD2のコピー(ステージング)は、ホスト装置300からのI/O要求の受信処理およびその応答処理の実行中に、バックグラウンドで実行されることになる。 At this time, the I / O control unit 11 records in a predetermined management table (not shown) that the block of the data D2 has made a secondary cache miss. Then, the I / O control unit 11 reads the data D2 from the HDD included in the RAID group RG1 based on the management table at the subsequent asynchronous timing, and copies (staging) it to the secondary cache 22 (step S26). ). As a result, the copy (staging) of the data D2 from the HDD to the secondary cache 22 is executed in the background during the reception processing of the I / O request from the host device 300 and the response processing thereof. ..

以上のように、1次キャッシュミスかつ2次キャッシュミスの場合には、読み出しが要求されたデータD2は1次キャッシュ21に配置される。これにより、その後に同じデータD2の読み出しが要求された場合にも、I/O制御部11は、データD2を1次キャッシュ21から短時間に読み出し、ホスト装置300に送信できる。 As described above, in the case of the primary cache miss and the secondary cache miss, the data D2 requested to be read is arranged in the primary cache 21. As a result, even when the same data D2 is subsequently requested to be read, the I / O control unit 11 can read the data D2 from the primary cache 21 in a short time and transmit it to the host device 300.

なお、ステップS26での2次キャッシュ22へのステージングは、次のように行われる。I/O制御部11は、2次キャッシュ管理テーブル31を参照して空きページを探索する。空きページが存在する場合、I/O制御部11は、2次キャッシュ22上の空きページにデータD2を格納するとともに、2次キャッシュ管理テーブル31における当該空きページに対応するレコードの「論理位置」の項目に、データD2に関する論理アドレス情報を登録する。また、I/O制御部11は、当該レコードの「アクセス頻度」の項目に「0」を登録し、「格納契機フラグ」の項目に「0」を登録する。 The staging to the secondary cache 22 in step S26 is performed as follows. The I / O control unit 11 searches for empty pages with reference to the secondary cache management table 31. When a vacant page exists, the I / O control unit 11 stores the data D2 in the vacant page on the secondary cache 22, and the "logical position" of the record corresponding to the vacant page in the secondary cache management table 31. Register the logical address information related to the data D2 in the item of. Further, the I / O control unit 11 registers "0" in the "access frequency" item of the record, and registers "0" in the "storage trigger flag" item.

一方、空きページが存在しない場合、I/O制御部11は、2次キャッシュ管理テーブル31から「最終アクセス時刻」の時刻が最も早いレコードを特定する。I/O制御部11は、特定したレコードに対応するページからデータを削除し、そのページに対して上記の手順でデータD2を格納するとともに当該レコードの内容を更新する。 On the other hand, when there is no empty page, the I / O control unit 11 identifies the record having the earliest "last access time" from the secondary cache management table 31. The I / O control unit 11 deletes data from the page corresponding to the specified record, stores the data D2 for the page in the above procedure, and updates the contents of the record.

ところで、HDDの故障に伴うリビルド処理中においては、ホスト装置300からのI/O要求に対する応答性能が低下する。これは、リビルド処理と、ホスト装置300からの要求に応じたI/O制御とが並列に実行されるからである。特に、リビルド処理ではドライブ部200内のHDDからのデータ読み出しが発生する。そのため、リビルド処理によるドライブ部200からのデータ読み出しと、I/O制御でのキャッシュミス発生に伴うドライブ部200からのデータ読み出しとが並列に実行されることで、I/O要求に対する応答時間が長くなってしまう。また、リビルド処理中のRAIDグループに含まれる論理ボリュームからの読み出し要求が発生した場合には、要求されたデータの再構築が必要になる場合があり、その場合にはさらに応答時間が長くなる。 By the way, during the rebuilding process due to the failure of the HDD, the response performance to the I / O request from the host device 300 deteriorates. This is because the rebuild process and the I / O control according to the request from the host device 300 are executed in parallel. In particular, in the rebuild process, data is read from the HDD in the drive unit 200. Therefore, the data read from the drive unit 200 by the rebuild process and the data read from the drive unit 200 due to the occurrence of a cache miss in the I / O control are executed in parallel, so that the response time to the I / O request is timed. It will be long. Further, when a read request is generated from a logical volume included in the RAID group during the rebuild process, it may be necessary to rebuild the requested data, and in that case, the response time becomes longer.

このように、リビルド処理中においてはI/O要求に対する応答性能が低下する。リビルド処理にかかる時間が長いほど、応答性能が低くなっている期間が長くなる。このため、リビルド処理にかかる時間が長いほど、ホスト装置300からはCM100全体のI/O処理性能が低いように見えてしまう。 As described above, the response performance to the I / O request deteriorates during the rebuild process. The longer the rebuild process takes, the longer the response performance will be low. Therefore, the longer it takes for the rebuild process, the lower the I / O processing performance of the entire CM 100 appears to the host device 300.

そこで、本実施の形態のCM100は、リビルド処理時に2次キャッシュ22に格納されているデータを利用することで、ドライブ部200内のHDDへのアクセス回数を減少させる。これにより、リビルド処理にかかる時間を短縮する。さらに、CM100は、リビルド処理に伴ってドライブ部200内のHDDから読み出されたデータや、そのデータを基に再構築されたデータを、可能な限りバッファ23から2次キャッシュ22に格納する。これにより、これらのデータに対してその後にホスト装置300からアクセスが要求された際に、アクセスにかかる時間を短縮する。その結果として、ホスト装置300からの要求に応じたアクセス性能を向上させる。 Therefore, the CM 100 of the present embodiment reduces the number of accesses to the HDD in the drive unit 200 by using the data stored in the secondary cache 22 at the time of the rebuild process. This reduces the time required for the rebuild process. Further, the CM 100 stores the data read from the HDD in the drive unit 200 in the rebuild process and the data reconstructed based on the data in the buffer 23 to the secondary cache 22 as much as possible. As a result, when the host device 300 subsequently requests access to these data, the time required for access is shortened. As a result, the access performance in response to the request from the host device 300 is improved.

以下、図7〜図9を用いてリビルド処理について説明する。なお、図7〜図9では例として、RAIDグループRG1にHDD201〜204が含まれ、これらのうちHDD204が故障したものとする。また、RAIDグループRG1のRAIDレベルはRAID5であるものとする。 Hereinafter, the rebuild process will be described with reference to FIGS. 7 to 9. In addition, in FIGS. 7 to 9, as an example, it is assumed that the RAID group RG1 includes HDDs 201 to 204, and HDD204 has failed. Further, it is assumed that the RAID level of the RAID group RG1 is RAID5.

図7は、リビルド処理の例を示す第1の図である。図7では、HDD204に格納されたデータD3をホットスペア221にリビルドする場合を示している。CM100のリビルド制御部12は、2次キャッシュ管理テーブル31を参照して、リビルド対象のデータD3が2次キャッシュ22に存在するかを判定する。図7では、データD3が2次キャッシュ22に存在したとする。この場合、リビルド制御部12は、データD3を2次キャッシュ22から読み出してバッファ23に格納し(ステップS31)、データD3をバッファ23から読み出してホットスペア221に格納する(ステップS32)。 FIG. 7 is a first diagram showing an example of the rebuild process. FIG. 7 shows a case where the data D3 stored in the HDD 204 is rebuilt into a hot spare 221. The rebuild control unit 12 of the CM 100 refers to the secondary cache management table 31 and determines whether the data D3 to be rebuilt exists in the secondary cache 22. In FIG. 7, it is assumed that the data D3 exists in the secondary cache 22. In this case, the rebuild control unit 12 reads the data D3 from the secondary cache 22 and stores it in the buffer 23 (step S31), and reads the data D3 from the buffer 23 and stores it in the hot spare 221 (step S32).

図8は、リビルド処理の例を示す第2の図である。図8では、HDD204に格納されたパリティP1をホットスペア221にリビルドする場合を示している。CM100のリビルド制御部12は、リビルド対象のパリティP1が2次キャッシュ22に存在するかを判定するが、2次キャッシュ22にはパリティは格納されない。そのため、リビルド制御部12は次に、2次キャッシュ管理テーブル31とボリューム管理テーブル32を参照して、パリティP1を再構築するのに必要なデータ(再構築用データ)が2次キャッシュ22に存在するかを判定する。 FIG. 8 is a second diagram showing an example of the rebuild process. FIG. 8 shows a case where the parity P1 stored in the HDD 204 is rebuilt into a hot spare 221. The rebuild control unit 12 of the CM 100 determines whether the parity P1 to be rebuilt exists in the secondary cache 22, but the parity is not stored in the secondary cache 22. Therefore, the rebuild control unit 12 then refers to the secondary cache management table 31 and the volume management table 32, and the data (reconstruction data) necessary for reconstructing the parity P1 exists in the secondary cache 22. Determine if you want to.

図8では、パリティP1に対応する再構築用データであるデータD4、D5、D6が2次キャッシュ22に存在したとする。この場合、リビルド制御部12は、データD4、D5、D6を2次キャッシュ22から読み出してバッファ23に格納する(ステップS41)。リビルド制御部12は、バッファ23内のデータD4、D5、D6を用いてパリティP1を再構築し、バッファ23に格納する(ステップS42)。そして、リビルド制御部12は、再構築したパリティP1をバッファ23から読み出してホットスペア221に格納する(ステップS43)。 In FIG. 8, it is assumed that the data D4, D5, and D6, which are the reconstruction data corresponding to the parity P1, exist in the secondary cache 22. In this case, the rebuild control unit 12 reads the data D4, D5, and D6 from the secondary cache 22 and stores them in the buffer 23 (step S41). The rebuild control unit 12 reconstructs the parity P1 using the data D4, D5, and D6 in the buffer 23 and stores it in the buffer 23 (step S42). Then, the rebuild control unit 12 reads the reconstructed parity P1 from the buffer 23 and stores it in the hot spare 221 (step S43).

以上の図7、図8のいずれの場合も、リビルド制御部12は、リビルド対象データを再構築するためのデータをドライブ部200のHDD201〜203から読み出すことなく、リビルド対象データをホットスペア221に格納することができる。このため、リビルド対象データのリビルド処理にかかる時間を短縮できる。 In both cases of FIGS. 7 and 8 above, the rebuild control unit 12 stores the rebuild target data in the hot spare 221 without reading the data for rebuilding the rebuild target data from the HDDs 201 to 203 of the drive unit 200. can do. Therefore, the time required for the rebuild process of the data to be rebuilt can be shortened.

なお、図8では故障HDD内のパリティがリビルド対象となった場合を示したが、故障HDD内の実データがリビルド対象となった場合には、再構築用データには2つの実データと1つのパリティとが含まれる。リビルド制御部12は、これらのうち実データが2次キャッシュ22に存在した場合には、実データを2次キャッシュ22からバッファ23に読み出すことができる。ただし、パリティは2次キャッシュ22に格納されていないので、リビルド制御部12は、パリティをHDD201〜203のいずれかからバッファ23に読み出す。リビルド制御部12は、バッファ23に読み出した実データとパリティを用いてリビルド対象データを再構築し、図8と同様に再構築したデータをバッファ23に書き込んだ後、ホットスペア221に格納することができる。 Note that FIG. 8 shows the case where the parity in the failed HDD is the target of rebuilding, but when the actual data in the failed HDD is the target of rebuilding, the reconstruction data includes two actual data and one. Includes one parity. When the actual data exists in the secondary cache 22, the rebuild control unit 12 can read the actual data from the secondary cache 22 into the buffer 23. However, since the parity is not stored in the secondary cache 22, the rebuild control unit 12 reads the parity from any of the HDDs 201 to 203 into the buffer 23. The rebuild control unit 12 may reconstruct the data to be rebuilt using the actual data read into the buffer 23 and the parity, write the reconstructed data to the buffer 23 in the same manner as in FIG. 8, and then store the reconstructed data in the hot spare 221. it can.

このようなケースでは、パリティのみドライブ部200から読み出されるが、再構築用データのすべてをドライブ部200から読み出す場合と比較して、ドライブ部200からの読み出し回数が抑制される。このため、リビルド処理に伴うドライブ部200からの読み出しが、ホスト装置300からのI/O要求に伴うドライブ部200からの読み出し性能に与える影響を低減できる。その結果として、ホスト装置300からのI/O要求に対する応答性能を向上させることができる。 In such a case, only the parity is read from the drive unit 200, but the number of times of reading from the drive unit 200 is suppressed as compared with the case where all the reconstruction data is read from the drive unit 200. Therefore, it is possible to reduce the influence of the read from the drive unit 200 due to the rebuild process on the read performance from the drive unit 200 due to the I / O request from the host device 300. As a result, the response performance to the I / O request from the host device 300 can be improved.

図9は、リビルド処理の例を示す第3の図である。図9では、リビルド対象データであるデータD9も、これに対応する再構築用データであるデータD7、D8およびパリティP2も、2次キャッシュ22に存在しなかったとする。この場合、リビルド制御部12は、データD7、D8およびパリティP2をそれぞれHDD201、202、203から読み出してバッファ23に格納する(ステップS51)。リビルド制御部12は、バッファ23内のデータD7、D8およびパリティP2を用いてデータD9を再構築し、バッファ23に格納する(ステップS52)。そして、リビルド制御部12は、再構築したデータD9をバッファ23から読み出してホットスペア221に格納する(ステップS53)。 FIG. 9 is a third diagram showing an example of the rebuild process. In FIG. 9, it is assumed that neither the data D9, which is the data to be rebuilt, nor the data D7, D8, and the parity P2, which are the corresponding reconstruction data, exist in the secondary cache 22. In this case, the rebuild control unit 12 reads the data D7, D8 and the parity P2 from the HDDs 201, 202 and 203, respectively, and stores them in the buffer 23 (step S51). The rebuild control unit 12 reconstructs the data D9 using the data D7, D8 and the parity P2 in the buffer 23, and stores the data D9 in the buffer 23 (step S52). Then, the rebuild control unit 12 reads the reconstructed data D9 from the buffer 23 and stores it in the hot spare 221 (step S53).

ここで、2次キャッシュデータ管理部13の書き込み処理部13aは、バッファ23内のデータD7〜D9を2次キャッシュ22に格納することができるかを判定する。書き込み処理部13aは少なくとも、2次キャッシュ22の使用率に基づいてこの判定を行う。使用率とは、直近の単位時間において2次キャッシュ22がアクセスを受け付けている時間の割合を示す。これは、2次キャッシュ22全体に対するアクセス負荷を示す指標であり、「ビジー率」とも呼ばれる。使用率が高い場合、ホスト装置300からの要求に応じたI/O制御において2次キャッシュ22が頻繁に使用されていることを示し、I/O制御での2次キャッシュ22へのアクセスを優先すべき状況と考えられる。このため、書き込み処理部13aは、使用率が所定の規定値(第1の規定値とする)以上の場合には、I/O制御の性能低下を防止するために、2次キャッシュ22への格納を行わず、データD7〜D9をバッファ23から削除する。このとき、パリティP2もバッファ23から削除される。 Here, the write processing unit 13a of the secondary cache data management unit 13 determines whether the data D7 to D9 in the buffer 23 can be stored in the secondary cache 22. The write processing unit 13a makes this determination at least based on the usage rate of the secondary cache 22. The usage rate indicates the ratio of the time during which the secondary cache 22 is accepting access in the latest unit time. This is an index showing the access load for the entire secondary cache 22, and is also called "busy rate". When the usage rate is high, it indicates that the secondary cache 22 is frequently used in the I / O control in response to the request from the host device 300, and priority is given to the access to the secondary cache 22 in the I / O control. It is considered that the situation should be. Therefore, when the usage rate is equal to or higher than a predetermined specified value (set as the first specified value), the write processing unit 13a feeds the secondary cache 22 in order to prevent deterioration in I / O control performance. Data D7 to D9 are deleted from the buffer 23 without being stored. At this time, the parity P2 is also deleted from the buffer 23.

一方、書き込み処理部13aは、使用率が第1の規定値未満の場合には、データD7〜D9をバッファ23から読み出して2次キャッシュ22に格納する(ステップS54)。ただし、2次キャッシュ22に空き領域がない場合には、書き込み処理部13aは、2次キャッシュ22からアクセス頻度が低いデータを追い出して空き領域を確保し、その空き領域にバッファ23から読み出したデータD7〜D9を格納する。本実施の形態では例として、書き込み処理部13aは、2次キャッシュ22にアクセス頻度が所定の規定値(第2の規定値とする)以下のデータがある場合、それらのデータを2次キャッシュ22から追い出して空き領域を確保する。 On the other hand, when the usage rate is less than the first specified value, the write processing unit 13a reads the data D7 to D9 from the buffer 23 and stores them in the secondary cache 22 (step S54). However, when there is no free area in the secondary cache 22, the write processing unit 13a expels data having a low access frequency from the secondary cache 22 to secure a free area, and the data read from the buffer 23 in the free area. Stores D7 to D9. In the present embodiment, as an example, when the write processing unit 13a has data whose access frequency is equal to or less than a predetermined specified value (set as the second specified value) in the secondary cache 22, those data are stored in the secondary cache 22. Get rid of it and secure free space.

このように、書き込み処理部13aは、リビルド処理に伴ってバッファ23に格納されたデータを、可能な限り2次キャッシュ22に格納しておく。これにより、その後にホスト装置300からこれらのデータに対するアクセスが要求されたとき、データを2次キャッシュ22から1次キャッシュ21にステージングしてホスト装置300に送信できる。このため、ホスト装置300からの要求に応じたI/O処理性能を向上させることができる。 In this way, the write processing unit 13a stores the data stored in the buffer 23 in association with the rebuild process in the secondary cache 22 as much as possible. As a result, when the host device 300 subsequently requests access to these data, the data can be staged from the secondary cache 22 to the primary cache 21 and transmitted to the host device 300. Therefore, the I / O processing performance in response to the request from the host device 300 can be improved.

次に、CM100の処理について、図10〜図13のフローチャートを用いて説明する。
図10、図11は、リビルド処理の一例を示すフローチャートである。なお、ここでは例として、RAID3〜6など、パリティが用いられるRAIDレベルが設定されたRAIDグループについてのリビルド処理を示す。
Next, the processing of CM100 will be described with reference to the flowcharts of FIGS. 10 to 13.
10 and 11 are flowcharts showing an example of the rebuild process. Here, as an example, a rebuild process is shown for a RAID group in which a RAID level in which parity is used, such as RAID 3 to 6, is set.

〔ステップS61〕リビルド制御部12は、ドライブ部200内のHDDの故障が発生すると、故障HDDを特定する。
〔ステップS62〕リビルド制御部12は、ボリューム管理テーブル32に基づいて、故障HDDを含むRAIDグループを特定する。
[Step S61] When the HDD in the drive unit 200 fails, the rebuild control unit 12 identifies the failed HDD.
[Step S62] The rebuild control unit 12 identifies a RAID group including a failed HDD based on the volume management table 32.

〔ステップS63〕リビルド制御部12は、ボリューム管理テーブル32に基づいて、故障HDDに格納されていた、リビルド処理の対象データを選択する。リビルド制御部12は、例えば、ボリューム管理テーブル32から、ステップS62で特定されたRAIDグループに割り当てられた論理ボリュームにおける対象データの論理アドレス、RAIDグループに含まれるHDDの構成、RAIDレベル、ストリップサイズなどを読み出す。リビルド制御部12は、読み出したこれらの情報から対象データを選択できる。 [Step S63] The rebuild control unit 12 selects the target data for the rebuild process stored in the failed HDD based on the volume management table 32. The rebuild control unit 12 may, for example, from the volume management table 32, the logical address of the target data in the logical volume assigned to the RAID group specified in step S62, the configuration of the HDD included in the RAID group, the RAID level, the strip size, and the like. Is read. The rebuild control unit 12 can select the target data from the read information.

〔ステップS64〕リビルド制御部12は、2次キャッシュ管理テーブル31に基づいて、対象データが2次キャッシュ22に存在するか否かを判定する。この判定は、2次キャッシュ管理テーブル31に、「論理位置」に対象データの論理アドレスが含まれるレコードが存在するか否かによって行われる。2次キャッシュ22に対象データが存在する場合(キャッシュヒットの場合)はステップS65へ処理が進み、存在しない場合(キャッシュミスの場合)は図11のステップS71へ処理が進む。 [Step S64] The rebuild control unit 12 determines whether or not the target data exists in the secondary cache 22 based on the secondary cache management table 31. This determination is made based on whether or not there is a record in the secondary cache management table 31 that includes the logical address of the target data in the "logical position". If the target data exists in the secondary cache 22 (in the case of a cache hit), the process proceeds to step S65, and if it does not exist (in the case of a cache miss), the process proceeds to step S71 in FIG.

〔ステップS65〕リビルド制御部12は、対象データのデータ容量分の領域をバッファ23上に確保する。
〔ステップS66〕リビルド制御部12は、対象データを2次キャッシュ22から読み出してバッファ23に格納する。
[Step S65] The rebuild control unit 12 secures an area corresponding to the data capacity of the target data on the buffer 23.
[Step S66] The rebuild control unit 12 reads the target data from the secondary cache 22 and stores it in the buffer 23.

〔ステップS67〕リビルド制御部12は、バッファ23から対象データを読み出してホットスペアに格納する。リビルド制御部12は、格納が完了すると、バッファ23における対象データの記憶領域を解放する。 [Step S67] The rebuild control unit 12 reads the target data from the buffer 23 and stores it in a hot spare. When the storage is completed, the rebuild control unit 12 releases the storage area of the target data in the buffer 23.

〔ステップS68〕リビルド制御部12は、リビルド処理が完了か否か、すなわち故障HDD内の対象データすべてについてホットスペアへの格納処理が完了か否かを判定する。リビルド処理が未完了の場合はステップS63へ処理が戻り、リビルド処理が完了の場合はステップS69へ処理が進む。 [Step S68] The rebuild control unit 12 determines whether or not the rebuild process is completed, that is, whether or not the storage process of all the target data in the failed HDD is completed in the hot spare. If the rebuild process is not completed, the process returns to step S63, and if the rebuild process is completed, the process proceeds to step S69.

〔ステップS69〕リビルド制御部12は、現時刻をリビルド完了時刻として、ステップS62で特定したRAIDグループに対応付けてボリューム管理テーブル32に記録する。 [Step S69] The rebuild control unit 12 records the current time as the rebuild completion time in the volume management table 32 in association with the RAID group specified in step S62.

以下、図11を用いて説明を続ける。
〔ステップS71〕リビルド制御部12は、対象データに対応する再構築用データを1つ特定して選択する。リビルド制御部12は、例えば、ボリューム管理テーブル32から、ステップS62で特定されたRAIDグループに割り当てられた論理ボリュームにおける対象データの論理アドレス、RAIDグループに含まれるHDDの構成、RAIDレベル、ストリップサイズなどを読み出す。リビルド制御部12は、読み出したこれらの情報から再構築用データを特定できる。
Hereinafter, the description will be continued with reference to FIG.
[Step S71] The rebuild control unit 12 identifies and selects one reconstruction data corresponding to the target data. The rebuild control unit 12 may, for example, from the volume management table 32, the logical address of the target data in the logical volume assigned to the RAID group specified in step S62, the configuration of the HDD included in the RAID group, the RAID level, the strip size, and the like. Is read. The rebuild control unit 12 can identify the rebuild data from the read information.

〔ステップS72〕リビルド制御部12は、2次キャッシュ管理テーブル31に基づいて、選択した再構築用データが2次キャッシュ22に存在するか否かを判定する。この判定は、2次キャッシュ管理テーブル31に、「論理位置」に再構築用データの論理アドレスが含まれるレコードが存在するか否かによって行われる。2次キャッシュ22に再構築用データが存在する場合(キャッシュヒットの場合)はステップS73へ処理が進み、存在しない場合(キャッシュミスの場合)はステップS74へ処理が進む。なお、再構築用データがパリティの場合、無条件でステップS74へ処理が進められる。 [Step S72] The rebuild control unit 12 determines whether or not the selected reconstruction data exists in the secondary cache 22 based on the secondary cache management table 31. This determination is made based on whether or not there is a record in the secondary cache management table 31 that includes the logical address of the reconstruction data in the "logical position". If the reconstruction data exists in the secondary cache 22 (in the case of a cache hit), the process proceeds to step S73, and if it does not exist (in the case of a cache miss), the process proceeds to step S74. If the reconstruction data is parity, the process unconditionally proceeds to step S74.

〔ステップS73〕リビルド制御部12は、再構築用データを2次キャッシュ22から読み出すことを決定する。
〔ステップS74〕リビルド制御部12は、再構築用データを、ステップS62で特定されたRAIDグループに含まれるいずれかの正常HDDから読み出すことを決定する。このとき、リビルド制御部12は、例えば、ボリューム管理テーブル32から、ステップS62で特定されたRAIDグループに割り当てられた論理ボリュームにおける対象データの論理アドレス、RAIDグループに含まれるHDDの構成、RAIDレベル、ストリップサイズなどを読み出す。リビルド制御部12は、読み出したこれらの情報から、再構築用データが格納されているHDDや、そのHDDにおける再構築用データの物理位置を特定する。
[Step S73] The rebuild control unit 12 determines to read the rebuild data from the secondary cache 22.
[Step S74] The rebuild control unit 12 determines to read the rebuilding data from any of the normal HDDs included in the RAID group specified in step S62. At this time, the rebuild control unit 12 determines, for example, from the volume management table 32, the logical address of the target data in the logical volume assigned to the RAID group specified in step S62, the configuration of the HDD included in the RAID group, the RAID level, and so on. Read the strip size etc. The rebuild control unit 12 identifies the HDD in which the rebuild data is stored and the physical position of the rebuild data in the HDD from the read information.

〔ステップS75〕リビルド制御部12は、対象データに対応する再構築用データをすべて選択したか否かを判定する。すべて選択済みの場合はステップS76へ処理が進み、未選択の再構築データがある場合はステップS71へ処理が戻る。 [Step S75] The rebuild control unit 12 determines whether or not all the rebuilding data corresponding to the target data has been selected. If all have been selected, the process proceeds to step S76, and if there is unselected reconstruction data, the process returns to step S71.

〔ステップS76〕リビルド制御部12は、ステップS71〜S75のループ処理において読み出し元が決定されたすべての再構築用データと、再構築されるすべての対象データとを含む容量分の領域をバッファ23上に確保する。 [Step S76] The rebuild control unit 12 buffers an area for a capacity including all the reconstruction data whose read source is determined in the loop processing of steps S71 to S75 and all the target data to be reconstructed. Secure on top.

〔ステップS77〕リビルド制御部12は、すべての再構築データを、ステップS71〜S75のループ処理において決定された読み出し元から読み出し、ステップS76で確保されたバッファ23上の領域に格納する。ステップS73で決定された再構築用データは2次キャッシュ22から読み出され、ステップS74で決定された再構築用データは正常HDDから読み出される。このとき、2次キャッシュ22からの読み出しや1以上のHDDのそれぞれからの読み出しは並列に実行される。 [Step S77] The rebuild control unit 12 reads all the rebuild data from the read source determined in the loop processing of steps S71 to S75, and stores it in the area on the buffer 23 secured in step S76. The reconstruction data determined in step S73 is read from the secondary cache 22, and the reconstruction data determined in step S74 is read from the normal HDD. At this time, reading from the secondary cache 22 and reading from each of one or more HDDs are executed in parallel.

〔ステップS78〕リビルド制御部12は、バッファ23に格納された再構築用データを用いて排他的論理和の計算を行うことで、対象データを再構築し、バッファ23に格納する。 [Step S78] The rebuild control unit 12 reconstructs the target data and stores it in the buffer 23 by calculating the exclusive OR using the reconstruction data stored in the buffer 23.

〔ステップS79〕リビルド制御部12は、再構築したデータをバッファ23から読み出してホットスペアに格納する。
〔ステップS80〕リビルド制御部12は、2次キャッシュへのデータ格納処理を2次キャッシュデータ管理部13の書き込み処理部13aに実行させる(2次キャッシュへのデータ格納処理については図12で後述)。
[Step S79] The rebuild control unit 12 reads the reconstructed data from the buffer 23 and stores it in a hot spare.
[Step S80] The rebuild control unit 12 causes the write processing unit 13a of the secondary cache data management unit 13 to execute the data storage process in the secondary cache (the data storage process in the secondary cache will be described later in FIG. 12). ..

なお、例えば、RAIDレベルがRAID1であるRAIDグループについてのリビルド処理では、ステップS64で「NO」と判定された場合、次のような処理が実行される。リビルド制御部12は、ステップS76のようにバッファ23の領域を確保し、RAIDグループ内の正常HDDから対象データのミラーデータを読み出してバッファ23に格納する。そして、リビルド制御部12は、ミラーデータをバッファ23からホットスペアに格納し、処理をステップS80に進める。 For example, in the rebuild process for the RAID group whose RAID level is RAID 1, if "NO" is determined in step S64, the following process is executed. The rebuild control unit 12 secures the area of the buffer 23 as in step S76, reads the mirror data of the target data from the normal HDD in the RAID group, and stores it in the buffer 23. Then, the rebuild control unit 12 stores the mirror data in the hot spare from the buffer 23, and proceeds to the process in step S80.

以上の図10、図11の処理によれば、リビルド処理の対象データ、または対象データを再構築するためのデータが2次キャッシュ22に格納されている場合には、そのデータが2次キャッシュ22から読み出されたリビルド処理に利用される。リビルド処理の1つの対象データに対応するすべての再構築用データを2次キャッシュ22から読み出すことができた場合、リビルド処理におけるドライブ部200内のHDDからの読み出し回数を抑制でき、その結果、リビルド処理にかかる時間を短縮できる。 According to the processes of FIGS. 10 and 11 above, when the target data of the rebuild process or the data for reconstructing the target data is stored in the secondary cache 22, the data is stored in the secondary cache 22. It is used for the rebuild process read from. When all the rebuilding data corresponding to one target data of the rebuild process can be read from the secondary cache 22, the number of reads from the HDD in the drive unit 200 in the rebuild process can be suppressed, and as a result, the rebuild can be performed. The processing time can be shortened.

図12は、2次キャッシュへのデータ格納処理の一例を示すフローチャートである。以下の図12の説明において、バッファ23から読み出して2次キャッシュ22に格納する対象のデータを「格納対象データ」と記載する。図11の処理ですべての再構築用データがステップS74で2次キャッシュ22から読み出された場合、格納対象データには、ステップS78で再構築された対象データのみが含まれる。また、図11でステップS76の処理が実行された場合、格納対象データには、ステップS76でHDDから読み出されたデータ(ただし、パリティを除く)と、ステップS78で再構築された対象データとが含まれる。 FIG. 12 is a flowchart showing an example of data storage processing in the secondary cache. In the following description of FIG. 12, the target data read from the buffer 23 and stored in the secondary cache 22 is referred to as “storage target data”. When all the reconstruction data is read from the secondary cache 22 in step S74 in the process of FIG. 11, the storage target data includes only the target data reconstructed in step S78. When the process of step S76 is executed in FIG. 11, the storage target data includes the data read from the HDD in step S76 (however, excluding parity) and the target data reconstructed in step S78. Is included.

〔ステップS81〕2次キャッシュデータ管理部13の書き込み処理部13aは、2次キャッシュ22の使用率と第1規定値とを比較する。使用率が第1規定値以上の場合はステップS88へ処理が進み、使用率が第1規定値未満の場合はステップS82へ処理が進む。なお、前述のように、使用率とは単位時間内で2次キャッシュ22がアクセスを受け付けている時間の割合を示す。また、このステップS81では、2次キャッシュ22のアクセス負荷を示す他の指標と、第1の規定値とが比較されてもよい。 [Step S81] The write processing unit 13a of the secondary cache data management unit 13 compares the usage rate of the secondary cache 22 with the first specified value. If the usage rate is equal to or higher than the first specified value, the process proceeds to step S88, and if the usage rate is less than the first specified value, the process proceeds to step S82. As described above, the usage rate indicates the ratio of the time during which the secondary cache 22 is accepting access within a unit time. Further, in this step S81, another index indicating the access load of the secondary cache 22 may be compared with the first specified value.

ここで、使用率が第1規定値以上の場合とは、ホスト装置300のI/O要求時に2次キャッシュ22に頻繁にアクセスが生じて使用率が高い状態を意味する。また、使用率が第1規定値未満の場合とは、2次キャッシュ22へのアクセス頻度が少なく使用率が低い状態を意味する。前者の場合、2次キャッシュ22の負荷を抑えてI/O処理性能の低下を防止するため、リビルド処理の対象データを2次キャッシュ22に格納しないように制御される。 Here, the case where the usage rate is equal to or higher than the first specified value means a state in which the secondary cache 22 is frequently accessed at the time of an I / O request of the host device 300 and the usage rate is high. Further, when the usage rate is less than the first specified value, it means that the access frequency to the secondary cache 22 is low and the usage rate is low. In the former case, in order to suppress the load on the secondary cache 22 and prevent the deterioration of the I / O processing performance, the data to be rebuilt is controlled not to be stored in the secondary cache 22.

〔ステップS82〕書き込み処理部13aは、2次キャッシュ22に格納対象データの容量分の空き領域があるか否かを判定する。空き領域がない場合はステップS83へ処理が進み、空き領域がある場合はステップS85へ処理が進む。 [Step S82] The write processing unit 13a determines whether or not there is a free area corresponding to the capacity of the data to be stored in the secondary cache 22. If there is no free area, the process proceeds to step S83, and if there is a free area, the process proceeds to step S85.

〔ステップS83〕書き込み処理部13aは、2次キャッシュ管理テーブル31に基づき、2次キャッシュ22に格納されているデータの中にアクセス頻度が第2規定値以下のデータがあるか否かを判定する。アクセス頻度が第2規定値以下のデータがある場合はステップS84へ処理が進み、アクセス頻度が第2規定値以下のデータがない場合はステップS88へ処理が進む。 [Step S83] Based on the secondary cache management table 31, the write processing unit 13a determines whether or not there is data whose access frequency is equal to or less than the second specified value among the data stored in the secondary cache 22. .. If there is data whose access frequency is equal to or less than the second specified value, the process proceeds to step S84, and if there is no data whose access frequency is equal to or less than the second specified value, the process proceeds to step S88.

なお、この第2規定値は、ホスト装置300からの読み出しアクセス頻度が少ないデータを2次キャッシュ22から優先的に追い出すために使用される値である。例えば、第2規定値を「0」とした場合、一定時間においてホスト装置300からまったくアクセスの無かったデータを追い出すことになる。 The second specified value is a value used to preferentially expel data from the host device 300 with low read access frequency from the secondary cache 22. For example, when the second specified value is set to "0", data that has not been accessed at all from the host device 300 in a certain period of time is expelled.

〔ステップS84〕書き込み処理部13aは、2次キャッシュ22のデータの中からアクセス頻度が第2規定値以下のデータを1つ選択し、選択したデータを2次キャッシュ22から追い出して該データが格納されていた領域を解放する。なお、2次キャッシュ22から追い出されるデータがダーティデータの場合、そのデータはドライブ部200内の対応するRAIDグループ内のHDDにライトバックされる。また、リビルド処理にかかる時間を短縮するために、ステップS84ではダーティデータを選択しないようにしてもよい。 [Step S84] The write processing unit 13a selects one data whose access frequency is equal to or less than the second specified value from the data in the secondary cache 22, expels the selected data from the secondary cache 22, and stores the data. Release the area that was being used. If the data expelled from the secondary cache 22 is dirty data, the data is written back to the HDD in the corresponding RAID group in the drive unit 200. Further, in order to shorten the time required for the rebuild process, dirty data may not be selected in step S84.

ステップS84の実行後、ステップS82が再度実行される。
〔ステップS85〕書き込み処理部13aは、格納対象データの容量分の領域を2次キャッシュ22上に確保する。なお、ステップS83、S84の実行によりアクセス頻度が第2規定値以下であるすべてのデータが2次キャッシュ22から削除されても、2次キャッシュ22上に格納対象データの容量分の空き領域を確保できない場合がある。この場合、書き込み処理部13aは、ステップS85での領域確保をスキップしてステップS88へ処理を進める。
After the execution of step S84, step S82 is executed again.
[Step S85] The write processing unit 13a secures an area corresponding to the capacity of the data to be stored on the secondary cache 22. Even if all the data whose access frequency is equal to or less than the second specified value is deleted from the secondary cache 22 by executing steps S83 and S84, a free area corresponding to the capacity of the data to be stored is secured on the secondary cache 22. It may not be possible. In this case, the writing processing unit 13a skips securing the area in step S85 and proceeds to step S88.

〔ステップS86〕書き込み処理部13aは、バッファ23から格納対象データを読み出して2次キャッシュ22に格納する。
〔ステップS87〕書き込み処理部13aは、2次キャッシュ管理テーブル24のレコードのうち、ステップS86でデータを書き込んだページに対応するレコードを更新する。この更新処理では、「論理位置」にデータの論理アドレス情報が登録され、「アクセス頻度」に初期値「0」が登録され、「格納契機フラグ」にリビルド処理に伴う格納であることを示す「1」が登録される。
[Step S86] The write processing unit 13a reads the data to be stored from the buffer 23 and stores it in the secondary cache 22.
[Step S87] The write processing unit 13a updates the record corresponding to the page to which the data is written in step S86 among the records in the secondary cache management table 24. In this update process, the logical address information of the data is registered in the "logical position", the initial value "0" is registered in the "access frequency", and the "storage trigger flag" indicates that the storage is associated with the rebuild process. 1 ”is registered.

〔ステップS88〕書き込み処理部13aは、バッファ23における格納対象データの記憶領域を解放する。また、図11のステップS76でHDDから読み出されたパリティがバッファ23に格納されていた場合、書き込み処理部13aはこのパリティの領域も解放する。 [Step S88] The write processing unit 13a releases the storage area of the data to be stored in the buffer 23. Further, when the parity read from the HDD in step S76 of FIG. 11 is stored in the buffer 23, the write processing unit 13a also releases the parity area.

以上の図12の処理により、I/O制御における2次キャッシュ22へのアクセス負荷が大きくないと推定される状況では、リビルド処理に伴ってバッファ23に格納されたデータが2次キャッシュ22に格納される。これにより、その後にホスト装置300からこれらのデータに対するアクセスが要求されたとき、データを2次キャッシュ22から1次キャッシュ21にステージングしてホスト装置300に送信できる。このため、ホスト装置300からの要求に応じたI/O処理性能を向上させることができる。 In the situation where it is estimated that the access load to the secondary cache 22 in the I / O control is not large by the above processing of FIG. 12, the data stored in the buffer 23 accompanying the rebuild processing is stored in the secondary cache 22. Will be done. As a result, when the host device 300 subsequently requests access to these data, the data can be staged from the secondary cache 22 to the primary cache 21 and transmitted to the host device 300. Therefore, the I / O processing performance in response to the request from the host device 300 can be improved.

図13は、2次キャッシュデータの削除処理の一例を示すフローチャートである。
〔ステップS91〕2次キャッシュデータ管理部13の削除処理部13bは、ボリューム管理テーブル32に基づいて、リビルド完了時刻から一定時間経過したRAIDグループがあるかを判定する。この判定は、図10のステップS69でボリューム管理テーブル32に記録したリビルド完了時刻に基づいて行われる。該当するRAIDグループが存在する場合、このRAIDグループが処理対象として選択されてステップS92に処理が進む。また、該当するRAIDグループが存在しない場合、ステップS91の処理は一定時間間隔で繰り返し実行される。
FIG. 13 is a flowchart showing an example of the process of deleting the secondary cache data.
[Step S91] The deletion processing unit 13b of the secondary cache data management unit 13 determines whether or not there is a RAID group for which a certain period of time has elapsed from the rebuild completion time, based on the volume management table 32. This determination is made based on the rebuild completion time recorded in the volume management table 32 in step S69 of FIG. If the corresponding RAID group exists, this RAID group is selected as the processing target and the processing proceeds to step S92. If the corresponding RAID group does not exist, the process of step S91 is repeatedly executed at regular time intervals.

〔ステップS92〕削除処理部13bは、ボリューム管理テーブル32に基づいて、処理対象のRAIDグループに割り当てられた論理ボリュームを1つ選択する。
〔ステップS93〕削除処理部13bは、ステップS92で選択した論理ボリューム上のデータのうち、2次キャッシュ22に記憶されており、なおかつリビルド処理に伴って2次キャッシュ22に格納されたデータを選択する。この処理では、2次キャッシュ管理テーブル31に基づき、「論理位置」に選択した論理ボリュームの識別情報が登録され、なおかつ「格納契機フラグ」が「1」であるレコードに対応するデータが1つ選択される。なお、図示しないが、ステップS93で該当するデータが存在しないと判定された場合、処理はステップS97に進められる。
[Step S92] The deletion processing unit 13b selects one logical volume assigned to the RAID group to be processed based on the volume management table 32.
[Step S93] Of the data on the logical volume selected in step S92, the deletion processing unit 13b selects the data stored in the secondary cache 22 and stored in the secondary cache 22 during the rebuilding process. To do. In this process, based on the secondary cache management table 31, the identification information of the selected logical volume is registered in the "logical position", and one data corresponding to the record whose "storage trigger flag" is "1" is selected. Will be done. Although not shown, if it is determined in step S93 that the corresponding data does not exist, the process proceeds to step S97.

〔ステップS94〕削除処理部13bは、2次キャッシュ管理テーブル31のレコードのうちステップS93で選択したデータに対応するレコードから、当該データのアクセス頻度を取得する。削除処理部13bは、取得したアクセス頻度が第2規定値以下かを判定する。アクセス頻度が第2規定値以下の場合はステップS95へ処理が進み、アクセス頻度が第2規定値より大きい場合はステップS96へ処理が進む。 [Step S94] The deletion processing unit 13b acquires the access frequency of the data from the record corresponding to the data selected in step S93 among the records in the secondary cache management table 31. The deletion processing unit 13b determines whether the acquired access frequency is equal to or less than the second specified value. If the access frequency is equal to or less than the second specified value, the process proceeds to step S95, and if the access frequency is greater than the second specified value, the process proceeds to step S96.

〔ステップS95〕削除処理部13bは、ステップS93で選択したデータを2次キャッシュ22から削除して、当該データが格納されていた領域を解放する。このとき、削除処理部13bは、2次キャッシュ管理テーブル31における当該データに対応するレコードにおいて、「物理位置」以外の登録値を無効値に更新する。 [Step S95] The deletion processing unit 13b deletes the data selected in step S93 from the secondary cache 22 to release the area in which the data is stored. At this time, the deletion processing unit 13b updates the registered value other than the "physical position" to an invalid value in the record corresponding to the data in the secondary cache management table 31.

〔ステップS96〕削除処理部13bは、ステップS92で選択した論理ボリューム上のデータのうち、2次キャッシュ22に記憶されており、なおかつリビルド処理に伴って2次キャッシュ22に格納されたすべてのデータを選択済みかを判定する。未選択のデータがある場合はステップS93に処理が戻り、次の該当データが選択される。すべてのデータを選択済みの場合はステップS97へ処理が進む。 [Step S96] Of the data on the logical volume selected in step S92, the deletion processing unit 13b stores all the data stored in the secondary cache 22 and stored in the secondary cache 22 during the rebuilding process. To determine if is selected. If there is unselected data, the process returns to step S93, and the next corresponding data is selected. If all the data have been selected, the process proceeds to step S97.

〔ステップS97〕削除処理部13bは、ステップS91で選択したRAIDグループに含まれるすべての論理ボリュームを選択済みかを判定する。未選択の論理ボリュームがある場合はステップS92に処理が戻り、次の論理ボリュームが選択される。すべての論理ボリュームを選択済みの場合、処理が終了する。 [Step S97] The deletion processing unit 13b determines whether all the logical volumes included in the RAID group selected in step S91 have been selected. If there is an unselected logical volume, the process returns to step S92, and the next logical volume is selected. If all logical volumes have been selected, the process ends.

以上の図13の処理によれば、リビルド処理が完了してから一定時間後に、そのリビルド処理に伴って2次キャッシュ22に格納されたデータのうち、アクセス頻度が低いと判断されるデータが2次キャッシュ22から削除される。リビルド処理に伴って2次キャッシュ22に格納されたデータは、I/O要求の状況に伴って2次キャッシュ22に格納された訳ではない。このため、アクセス頻度が第2規定値以下であれば、たとえ同じアクセス頻度であったとしても、I/O要求に伴って2次キャッシュ22に格納されたデータよりも、リビルド処理に伴って2次キャッシュ22に格納されたデータの方が必要性が低いと推定される。図13の処理では、このような判断に基づいて、リビルド処理に伴って2次キャッシュ22に格納されたもののアクセス頻度が第2規定値以下であるデータを、2次キャッシュ22から削除する。これにより、2次キャッシュ22の領域を有効活用できるようになり、ホスト装置300からの要求に応じたI/O処理性能を向上させることができる。 According to the process of FIG. 13 above, after a certain period of time after the rebuild process is completed, of the data stored in the secondary cache 22 due to the rebuild process, 2 data are determined to have low access frequency. It is deleted from the next cache 22. The data stored in the secondary cache 22 due to the rebuild process is not stored in the secondary cache 22 according to the status of the I / O request. Therefore, if the access frequency is equal to or less than the second specified value, even if the access frequency is the same, the data stored in the secondary cache 22 due to the I / O request is more than the data stored in the secondary cache 22 due to the rebuild process. It is presumed that the data stored in the next cache 22 is less necessary. In the process of FIG. 13, based on such a determination, the data stored in the secondary cache 22 with the rebuild process but whose access frequency is equal to or less than the second specified value is deleted from the secondary cache 22. As a result, the area of the secondary cache 22 can be effectively used, and the I / O processing performance in response to the request from the host device 300 can be improved.

なお、以上の第2の実施の形態では、リビルド処理の際に2次キャッシュ22を利用することを示したが、例えば2次キャッシュ22だけでなく1次キャッシュ21を利用することも可能である。ただし、1次キャッシュ21は2次キャッシュ22より容量が小さいので、リビルド処理の対象データや再構築用データが1次キャッシュ21に格納されている確率は、2次キャッシュ22より低い。また、1次キャッシュ21にはアクセス頻度の高いデータが格納されるので、I/O処理における1次キャッシュ21に対するアクセス負荷は2次キャッシュ22に対するアクセス負荷より高い。このため、リビルド処理の際に1次キャッシュ21にアクセスした場合には、2次キャッシュ22にアクセスした場合よりもI/O処理性能に与える影響が大きい。このような理由から、リビルド処理では1次キャッシュ21ではなく2次キャッシュ22が利用されることが適していると考えられる。換言すると、本実施の形態の処理手順によって得られる、リビルド処理時間の短縮によるI/O処理性能の向上効果は、2次キャッシュ22を備えるストレージ制御装置においてより大きくなる。 In the second embodiment described above, it is shown that the secondary cache 22 is used in the rebuild process, but for example, not only the secondary cache 22 but also the primary cache 21 can be used. .. However, since the primary cache 21 has a smaller capacity than the secondary cache 22, the probability that the data to be rebuilt and the data for reconstruction are stored in the primary cache 21 is lower than that of the secondary cache 22. Further, since the data having a high access frequency is stored in the primary cache 21, the access load to the primary cache 21 in the I / O processing is higher than the access load to the secondary cache 22. Therefore, when the primary cache 21 is accessed during the rebuild process, the effect on the I / O processing performance is greater than when the secondary cache 22 is accessed. For this reason, it is considered appropriate that the secondary cache 22 is used instead of the primary cache 21 in the rebuild process. In other words, the effect of improving the I / O processing performance by shortening the rebuild processing time obtained by the processing procedure of the present embodiment becomes greater in the storage control device including the secondary cache 22.

なお、上記の各実施の形態に示した装置(ストレージ制御装置1およびCM100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。 The processing functions of the devices (storage control device 1 and CM100) shown in each of the above embodiments can be realized by a computer. In that case, a program describing the processing content of the function that each device should have is provided, and the above processing function is realized on the computer by executing the program on the computer. The program describing the processing content can be recorded on a computer-readable recording medium. Computer-readable recording media include magnetic storage devices, optical disks, optical magnetic recording media, semiconductor memories, and the like. Magnetic storage devices include hard disk devices (HDD), flexible disks (FD), magnetic tapes, and the like. Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like. The magneto-optical recording medium includes MO (Magneto-Optical disk) and the like.

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When a program is distributed, for example, a portable recording medium such as a DVD or a CD-ROM on which the program is recorded is sold. It is also possible to store the program in the storage device of the server computer and transfer the program from the server computer to another computer via the network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。 The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes the processing according to the program. The computer can also read the program directly from the portable recording medium and execute the processing according to the program. In addition, the computer can sequentially execute processing according to the received program each time the program is transferred from the server computer connected via the network.

1 ストレージ制御装置
1a 記憶部
1b 処理部
1c キャッシュ
2 ストレージ部
2a〜2d 記憶装置
2e 論理記憶領域
3 ホスト装置
DT1〜DT4 データ
PR1、PR2 パリティ
1 Storage control device 1a Storage unit 1b Processing unit 1c Cache 2 Storage unit 2a to 2d Storage device 2e Logical storage area 3 Host device DT1 to DT4 Data PR1, PR2 Parity

Claims (7)

キャッシュの領域を含む記憶部と、
ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス処理を、前記キャッシュを用いて制御し、
前記複数の記憶装置のうち第1の記憶装置が故障したとき、前記第1の記憶装置に記憶されていたデータの中からリビルド対象とする第1のデータを選択し、前記第1のデータが前記キャッシュに格納されている場合、前記キャッシュから前記第1のデータを読み出して、前記第1の記憶装置を代替する第2の記憶装置に格納する、処理部と、
を有するストレージ制御装置。
A storage unit that includes a cache area and
In response to an access request from the host device, access processing to the logical storage area realized by a plurality of storage devices is controlled by using the cache.
When the first storage device among the plurality of storage devices fails, the first data to be rebuilt is selected from the data stored in the first storage device, and the first data is stored. When stored in the cache, a processing unit that reads the first data from the cache and stores the first data in a second storage device that substitutes for the first storage device.
Storage control device with.
前記処理部はさらに、
前記第1のデータが前記キャッシュに格納されていない場合、前記複数の記憶装置のうち前記第1の記憶装置以外の記憶装置に記憶されている、前記第1のデータを再構築するための第2のデータが、前記キャッシュに格納されているかを判定し、
前記第2のデータが前記キャッシュに格納されている場合、前記キャッシュから前記第2のデータを読み出し、読み出した前記第2のデータを基に前記第1のデータを再構築し、再構築された前記第1のデータを前記第2の記憶装置に格納する、
請求項1記載のストレージ制御装置。
The processing unit further
When the first data is not stored in the cache, a first for reconstructing the first data stored in a storage device other than the first storage device among the plurality of storage devices. It is determined whether the data of 2 is stored in the cache, and
When the second data is stored in the cache, the second data is read from the cache, and the first data is reconstructed and reconstructed based on the read second data. The first data is stored in the second storage device.
The storage control device according to claim 1.
前記記憶部はバッファの領域を含み、
再構築された前記第1のデータの前記第2の記憶装置に対する格納では、前記第1のデータを前記バッファに格納した後、前記バッファから読み出して前記第2の記憶装置に格納し、
前記処理部はさらに、再構築された前記第1のデータが前記第2の記憶装置に格納された後、前記キャッシュのアクセス負荷を示す指標が所定の閾値未満の場合には、再構築された前記第1のデータを前記バッファから読み出して前記キャッシュに格納する、
請求項2記載のストレージ制御装置。
The storage unit includes a buffer area.
In the storage of the reconstructed first data in the second storage device, the first data is stored in the buffer, then read from the buffer and stored in the second storage device.
The processing unit is further reconstructed when the index indicating the access load of the cache is less than a predetermined threshold value after the reconstructed first data is stored in the second storage device. The first data is read from the buffer and stored in the cache.
The storage control device according to claim 2.
前記処理部はさらに、
前記第1の記憶装置に記憶されていたすべてのデータを前記第2の記憶装置に格納する処理が完了してから一定時間以上経過した後、前記バッファから前記キャッシュに格納した前記第1のデータのアクセス頻度が所定の判定閾値以下である場合には、前記第1のデータを前記キャッシュから削除する、
請求項3記載のストレージ制御装置。
The processing unit further
The first data stored in the cache from the buffer after a certain period of time or more has elapsed since the process of storing all the data stored in the first storage device in the second storage device is completed. When the access frequency of is equal to or less than a predetermined determination threshold value, the first data is deleted from the cache.
The storage control device according to claim 3.
前記記憶部はバッファの領域を含み、
前記処理部はさらに、
前記第2のデータが前記キャッシュに格納されていない場合、前記複数の記憶装置のうち前記第1の記憶装置以外の記憶装置から前記第2のデータを読み出して前記バッファに格納し、
前記バッファから読み出した前記第2のデータを基に前記第1のデータを再構築して前記バッファに格納し、
前記第1のデータを前記バッファから読み出して前記第2の記憶装置に格納し、
前記キャッシュのアクセス負荷を示す指標が所定の閾値未満の場合には、前記第1のデータと前記第2のデータとを前記バッファから読み出して前記キャッシュに格納する、
請求項2記載のストレージ制御装置。
The storage unit includes a buffer area.
The processing unit further
When the second data is not stored in the cache, the second data is read from a storage device other than the first storage device among the plurality of storage devices and stored in the buffer.
The first data is reconstructed based on the second data read from the buffer and stored in the buffer.
The first data is read from the buffer and stored in the second storage device.
When the index indicating the access load of the cache is less than a predetermined threshold value, the first data and the second data are read from the buffer and stored in the cache.
The storage control device according to claim 2.
前記処理部はさらに、
前記第1の記憶装置に記憶されていたすべてのデータを前記第2の記憶装置に格納する処理が完了してから一定時間以上経過した後、前記バッファから前記キャッシュに格納した前記第1のデータおよび前記第2のデータのうち、アクセス頻度が所定の判定閾値以下であるデータを前記キャッシュから削除する、
請求項5記載のストレージ制御装置。
The processing unit further
The first data stored in the cache from the buffer after a certain period of time or more has passed since the process of storing all the data stored in the first storage device in the second storage device is completed. And, among the second data, the data whose access frequency is equal to or less than a predetermined determination threshold is deleted from the cache.
The storage control device according to claim 5.
コンピュータに、
ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス処理を、前記コンピュータ上のキャッシュを用いて制御し、
前記複数の記憶装置のうち第1の記憶装置が故障したとき、前記第1の記憶装置に記憶されていたデータの中からリビルド対象とする第1のデータを選択し、前記第1のデータが前記キャッシュに格納されている場合、前記キャッシュから前記第1のデータを読み出して、前記第1の記憶装置を代替する第2の記憶装置に格納する、
処理を実行させるストレージ制御プログラム。
On the computer
In response to an access request from a host device, access processing to a logical storage area realized by a plurality of storage devices is controlled by using a cache on the computer.
When the first storage device among the plurality of storage devices fails, the first data to be rebuilt is selected from the data stored in the first storage device, and the first data is stored. When stored in the cache, the first data is read from the cache and stored in a second storage device that replaces the first storage device.
A storage control program that executes processing.
JP2019124305A 2019-07-03 2019-07-03 Storage controller and storage control program Active JP7288191B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019124305A JP7288191B2 (en) 2019-07-03 2019-07-03 Storage controller and storage control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019124305A JP7288191B2 (en) 2019-07-03 2019-07-03 Storage controller and storage control program

Publications (2)

Publication Number Publication Date
JP2021009646A true JP2021009646A (en) 2021-01-28
JP7288191B2 JP7288191B2 (en) 2023-06-07

Family

ID=74199312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019124305A Active JP7288191B2 (en) 2019-07-03 2019-07-03 Storage controller and storage control program

Country Status (1)

Country Link
JP (1) JP7288191B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234763A (en) * 1994-02-25 1995-09-05 Fujitsu Ltd Processing method for disk array device
JPH08137629A (en) * 1994-11-11 1996-05-31 Hitachi Ltd Array disk system and control method for array disk system
JP2001022534A (en) * 1999-07-08 2001-01-26 Nec Corp Operating method when disk array device fails and computer readable recording medium
JP2009238094A (en) * 2008-03-28 2009-10-15 Hitachi Ltd Storage system and data storage method
JP2010026812A (en) * 2008-07-18 2010-02-04 Hitachi Computer Peripherals Co Ltd Magnetic disk device
JP2016530637A (en) * 2013-08-27 2016-09-29 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ RAID parity stripe reconstruction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234763A (en) * 1994-02-25 1995-09-05 Fujitsu Ltd Processing method for disk array device
JPH08137629A (en) * 1994-11-11 1996-05-31 Hitachi Ltd Array disk system and control method for array disk system
JP2001022534A (en) * 1999-07-08 2001-01-26 Nec Corp Operating method when disk array device fails and computer readable recording medium
JP2009238094A (en) * 2008-03-28 2009-10-15 Hitachi Ltd Storage system and data storage method
JP2010026812A (en) * 2008-07-18 2010-02-04 Hitachi Computer Peripherals Co Ltd Magnetic disk device
JP2016530637A (en) * 2013-08-27 2016-09-29 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ RAID parity stripe reconstruction

Also Published As

Publication number Publication date
JP7288191B2 (en) 2023-06-07

Similar Documents

Publication Publication Date Title
US9304901B2 (en) System and method for handling I/O write requests
US7975168B2 (en) Storage system executing parallel correction write
US9015434B2 (en) Storage system, and apparatus and method for controlling storage
CN106445405B (en) Data access method and device for flash memory storage
US8019937B2 (en) Applying storage device commit-cached-data-to-media functionality to improve data security in systems that allow storage devices to cache writes
KR20120115012A (en) Data storage device and operating method thereof
JP2013156977A (en) Elastic cache of redundant cache data
US9319067B2 (en) Storage control apparatus, storage system, and storage control method
US9703695B2 (en) Control device, storage device, and computer-readable recording medium having stored therein control program
US9158478B2 (en) Storage system and storage control method
US20190042134A1 (en) Storage control apparatus and deduplication method
US9514052B2 (en) Write-through-and-back-cache
JP6652647B2 (en) Storage system
US8605560B2 (en) Storage system and storage control method
US11474750B2 (en) Storage control apparatus and storage medium
US20180307427A1 (en) Storage control apparatus and storage control method
US20230244385A1 (en) Storage apparatus and control method
JP7288191B2 (en) Storage controller and storage control program
JP4430092B2 (en) RAID device, RAID device controller, and RAID device write-back control method
CN115087962A (en) Preemptive upgrade for full-span demotion
JP5924117B2 (en) Computer, data storage method, data storage program, and information processing system
JP2018190192A (en) Storage device and storage control program
US9639417B2 (en) Storage control apparatus and control method
US20220222015A1 (en) Storage system, storage control device, and storage control method
US20230418798A1 (en) Information processing apparatus and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R150 Certificate of patent or registration of utility model

Ref document number: 7288191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150