JP2021009646A - Storage control apparatus, and storage control program - Google Patents
Storage control apparatus, and storage control program Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 112
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 113
- 239000000872 buffer Substances 0.000 claims description 64
- 238000007726 management method Methods 0.000 description 45
- 238000012217 deletion Methods 0.000 description 14
- 230000037430 deletion Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000013523 data management Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000007630 basic procedure Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
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.
ホストからの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の実施の形態]
図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
また、ストレージ制御装置1には、記憶装置2a〜2dが接続されている。記憶装置2a〜2dは、少なくとも記憶部1aを実現する記憶装置よりアクセス性能の低い記憶装置である。例えば、記憶部1aがRAMである場合、記憶装置2a〜2dは、SSDやHDDである。さらに、ストレージ制御装置1には、ホスト装置3が接続されている。
Further,
記憶部1aは、キャッシュ1cの領域を含んでいる。処理部1bは、ホスト装置3からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域2eに対するアクセス処理を、キャッシュ1cを用いて制御する。例えば、処理部1bは、1度読み出しが要求されたデータを所定の条件の下でキャッシュ1cに保持しておく。処理部1bは、ホスト装置3からデータの読み出し要求を受けたとき、そのデータがキャッシュ1cに保持されていれば、そのデータをストレージ部2から読み出すことなく、キャッシュ1cから読み出してホスト装置3に送信する。
The storage unit 1a includes an area of the
また、図1の例では、論理記憶領域2eは記憶装置2a〜2cによって実現される。論理記憶領域2eでは、データが冗長化されるように制御される。すなわち、1つの記憶装置が故障した場合、故障した記憶装置のデータを、他の記憶装置から取得すること、あるいは他の記憶装置のデータを基に再構築することが可能になっている。
Further, in the example of FIG. 1, the
図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
処理部1bは、論理記憶領域2eに含まれる記憶装置が故障すると、故障した記憶装置に記憶されていたデータを、その記憶装置を代替する他の記憶装置(図1の例では記憶装置2d)に格納するリビルド処理を実行する。リビルド処理は、次のように実行される。なお、ここでは例として記憶装置2cが故障したとする。
When the storage device included in the
処理部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
これにより、処理部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
また、処理部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
これにより、処理部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
以上のように、処理部1bは、リビルド対象のデータ、またはそのデータを再構築するためのデータがキャッシュ1cに存在している場合には、キャッシュ1cからデータを読み出して利用する。このようなケースでは、ストレージ部2の記憶装置にアクセスしなくてよくなる分だけ、リビルド対象のデータを代替用の記憶装置2dに格納するのにかかる時間を短縮できる。その結果、リビルド処理時間を短縮できる。
As described above, when the data to be rebuilt or the data for reconstructing the data exists in the
[第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
CM100は、ホスト装置300からの要求に応じて、ドライブ部200に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。ドライブ部200には、ホスト装置300からのアクセス対象となる記憶装置が複数台搭載されている。本実施の形態では例として、ドライブ部200は、記憶装置として複数台のHDDが搭載されたディスクアレイ装置である。
The
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
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
また、ドライブ部200は、ホットスペア(Hot Spare)221、222を備えている。ホットスペア221、222は、予備用のHDDであり、RAIDグループRG1、RG2に含まれるいずれかのHDDが故障したとき、そのHDDの代わりに使用される。
Further, the
次に、図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
プロセッサ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
RAM102は、CM100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。例えば、RAM102には、ホスト装置300からの要求に応じたドライブ部200へのアクセス制御の際に用いられる1次キャッシュの領域が確保される。また、RAM102には、バッファの領域が確保され、さらに各種の管理テーブルが格納される。
The
SSD103は、CM100の補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。また、SSD103には、ホスト装置300からの要求に応じてドライブ部200へのアクセス制御の際に用いられる2次キャッシュの領域が確保される。
CA104は、ホスト装置300と通信するためのインタフェースである。DI105は、ドライブ部200と通信するためのインタフェースである。DI105は、例えば、SAS(Serial Attached SCSI)インタフェースである。
The
以上のハードウェア構成によって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
制御部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
制御部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 /
The I /
リビルド制御部12は、ドライブ部200においてHDDの故障が発生した場合、故障したHDD(以下、「故障HDD」と記載する場合がある)に記憶されていたデータをホットスペアに格納するリビルド処理を行う。このリビルド処理において、リビルド制御部12は、リビルド処理の対象データが2次キャッシュ22に格納されている場合、そのデータを2次キャッシュ22からバッファ23に読み出して、バッファ23からホットスペアにデータを格納する。
When an HDD failure occurs in the
また、リビルド制御部12は、対象データが2次キャッシュ22に格納されていないが、対象データに対応する冗長データが2次キャッシュ22に格納されている場合、冗長データを2次キャッシュ22からバッファ23へ読み出す。そして、リビルド制御部12は、冗長データを基にバッファ23上でデータの再構築を行い、再構築したデータをバッファ23からホットスペアに格納する。
Further, when the target data is not stored in the
このように、リビルド制御部12は、2次キャッシュ22上のデータを活用することで、リビルド処理中におけるドライブ部200内のHDDからの読み出し回数を抑制し、リビルド処理にかかる時間を短縮する。
In this way, the
また、リビルド制御部12は、対象データおよび冗長データが2次キャッシュ22に格納されていない場合、対象データが属するRAIDグループ内の正常なHDDからバッファ23へ冗長データを読み出す。そして、リビルド制御部12は、冗長データを基にバッファ23上でデータの再構築を行い、再構築したデータをホットスペアに格納する。
Further, when the target data and the redundant data are not stored in the
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
書き込み処理部13aは、リビルド処理によってドライブ部200内のHDDから読み出されたデータや、読み出されたデータを基に再構築されたデータを、2次キャッシュ22に格納する。書き込み処理部13aは、2次キャッシュ22の使用率や2次キャッシュ22上のデータのアクセス頻度を用いた所定の条件が満たされる場合に、これらのデータを2次キャッシュ22に格納する。
The
削除処理部13bは、次のような条件にしたがって、書き込み処理部13aによって2次キャッシュ22に格納されたデータを削除して、2次キャッシュ22の領域を解放する。削除処理部13bは、書き込み処理部13aによって2次キャッシュ22に格納されたデータのうち、対応するRAIDグループのリビルド処理の完了から一定時間が経過したデータについて、アクセス頻度が規定値を下回るか否かを判定する。そして、削除処理部13bは、アクセス頻度が規定値を下回る場合には当該データを2次キャッシュ22から削除する。
The
管理情報記憶部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
ボリューム管理テーブル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
「物理位置」は、2次キャッシュ22におけるページのアドレス情報である。各レコードの「物理位置」の項目には、あらかじめ対応するページのアドレス情報が登録されている。一方、「論理位置」、「アクセス頻度」および「格納契機フラグ」には、ページにデータが格納されていない場合、無効値(NULL)が登録される。
The "physical position" is the address information of the page in the
「論理位置」は、ページに格納されたデータの論理アドレス情報である。この論理アドレス情報とは、論理ボリュームの識別情報と、論理ボリュームにおけるアドレス情報を含む。「論理位置」には、ページにデータが格納されると論理アドレス情報が登録される。 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
「格納契機フラグ」は、ページに格納されたデータがリビルド処理に伴って格納されたデータか否かを示すフラグ情報である。ここでは例として、「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
次に、図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
図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
ここで、図示しないが、データD1が1次キャッシュ21に存在する、すなわち、1次キャッシュヒットの場合、I/O制御部11は、データD1を1次キャッシュ21から読み出して、ホスト装置300に送信する。これにより、読み出し要求に対する応答時間が短縮される。
Here, although not shown, when the data D1 exists in the
一方、図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
図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
2次キャッシュ22が実装されるSSDは、論理ボリュームが割り当てられたRAIDグループRG1に含まれるHDDよりアクセス性能が高い。そのため、図5のように、1次キャッシュミスの場合でも2次キャッシュヒットとなれば2次キャッシュ22からデータD1を読み出すことで、データD1をRAIDグループRG1内のHDDから読み出す場合よりもホスト装置300に対する読み出し応答時間を短縮できる。
The SSD on which the
なお、ステップS14の実行直前において1次キャッシュ21の空き領域がない場合、I/O制御部11は、例えば、1次キャッシュ21のデータのうち最終アクセス時刻が最も早いデータを1次キャッシュ21から削除する。そして、I/O制御部11は、1次キャッシュ21に生じた空き領域にデータD1をコピーする。
If there is no free area in the
図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
図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 /
このとき、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 /
以上のように、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
なお、ステップ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
一方、空きページが存在しない場合、I/O制御部11は、2次キャッシュ管理テーブル31から「最終アクセス時刻」の時刻が最も早いレコードを特定する。I/O制御部11は、特定したレコードに対応するページからデータを削除し、そのページに対して上記の手順でデータD2を格納するとともに当該レコードの内容を更新する。
On the other hand, when there is no empty page, the I /
ところで、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
このように、リビルド処理中においては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
そこで、本実施の形態のCM100は、リビルド処理時に2次キャッシュ22に格納されているデータを利用することで、ドライブ部200内のHDDへのアクセス回数を減少させる。これにより、リビルド処理にかかる時間を短縮する。さらに、CM100は、リビルド処理に伴ってドライブ部200内のHDDから読み出されたデータや、そのデータを基に再構築されたデータを、可能な限りバッファ23から2次キャッシュ22に格納する。これにより、これらのデータに対してその後にホスト装置300からアクセスが要求された際に、アクセスにかかる時間を短縮する。その結果として、ホスト装置300からの要求に応じたアクセス性能を向上させる。
Therefore, the
以下、図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
図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
図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
図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
以上の図7、図8のいずれの場合も、リビルド制御部12は、リビルド対象データを再構築するためのデータをドライブ部200のHDD201〜203から読み出すことなく、リビルド対象データをホットスペア221に格納することができる。このため、リビルド対象データのリビルド処理にかかる時間を短縮できる。
In both cases of FIGS. 7 and 8 above, the
なお、図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
このようなケースでは、パリティのみドライブ部200から読み出されるが、再構築用データのすべてをドライブ部200から読み出す場合と比較して、ドライブ部200からの読み出し回数が抑制される。このため、リビルド処理に伴うドライブ部200からの読み出しが、ホスト装置300からのI/O要求に伴うドライブ部200からの読み出し性能に与える影響を低減できる。その結果として、ホスト装置300からのI/O要求に対する応答性能を向上させることができる。
In such a case, only the parity is read from the
図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
ここで、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
一方、書き込み処理部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
このように、書き込み処理部13aは、リビルド処理に伴ってバッファ23に格納されたデータを、可能な限り2次キャッシュ22に格納しておく。これにより、その後にホスト装置300からこれらのデータに対するアクセスが要求されたとき、データを2次キャッシュ22から1次キャッシュ21にステージングしてホスト装置300に送信できる。このため、ホスト装置300からの要求に応じたI/O処理性能を向上させることができる。
In this way, the
次に、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
〔ステップS61〕リビルド制御部12は、ドライブ部200内のHDDの故障が発生すると、故障HDDを特定する。
〔ステップS62〕リビルド制御部12は、ボリューム管理テーブル32に基づいて、故障HDDを含むRAIDグループを特定する。
[Step S61] When the HDD in the
[Step S62] The
〔ステップS63〕リビルド制御部12は、ボリューム管理テーブル32に基づいて、故障HDDに格納されていた、リビルド処理の対象データを選択する。リビルド制御部12は、例えば、ボリューム管理テーブル32から、ステップS62で特定されたRAIDグループに割り当てられた論理ボリュームにおける対象データの論理アドレス、RAIDグループに含まれるHDDの構成、RAIDレベル、ストリップサイズなどを読み出す。リビルド制御部12は、読み出したこれらの情報から対象データを選択できる。
[Step S63] The
〔ステップS64〕リビルド制御部12は、2次キャッシュ管理テーブル31に基づいて、対象データが2次キャッシュ22に存在するか否かを判定する。この判定は、2次キャッシュ管理テーブル31に、「論理位置」に対象データの論理アドレスが含まれるレコードが存在するか否かによって行われる。2次キャッシュ22に対象データが存在する場合(キャッシュヒットの場合)はステップS65へ処理が進み、存在しない場合(キャッシュミスの場合)は図11のステップS71へ処理が進む。
[Step S64] The
〔ステップS65〕リビルド制御部12は、対象データのデータ容量分の領域をバッファ23上に確保する。
〔ステップS66〕リビルド制御部12は、対象データを2次キャッシュ22から読み出してバッファ23に格納する。
[Step S65] The
[Step S66] The
〔ステップS67〕リビルド制御部12は、バッファ23から対象データを読み出してホットスペアに格納する。リビルド制御部12は、格納が完了すると、バッファ23における対象データの記憶領域を解放する。
[Step S67] The
〔ステップS68〕リビルド制御部12は、リビルド処理が完了か否か、すなわち故障HDD内の対象データすべてについてホットスペアへの格納処理が完了か否かを判定する。リビルド処理が未完了の場合はステップS63へ処理が戻り、リビルド処理が完了の場合はステップS69へ処理が進む。
[Step S68] The
〔ステップS69〕リビルド制御部12は、現時刻をリビルド完了時刻として、ステップS62で特定したRAIDグループに対応付けてボリューム管理テーブル32に記録する。
[Step S69] The
以下、図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
〔ステップS72〕リビルド制御部12は、2次キャッシュ管理テーブル31に基づいて、選択した再構築用データが2次キャッシュ22に存在するか否かを判定する。この判定は、2次キャッシュ管理テーブル31に、「論理位置」に再構築用データの論理アドレスが含まれるレコードが存在するか否かによって行われる。2次キャッシュ22に再構築用データが存在する場合(キャッシュヒットの場合)はステップS73へ処理が進み、存在しない場合(キャッシュミスの場合)はステップS74へ処理が進む。なお、再構築用データがパリティの場合、無条件でステップS74へ処理が進められる。
[Step S72] The
〔ステップS73〕リビルド制御部12は、再構築用データを2次キャッシュ22から読み出すことを決定する。
〔ステップS74〕リビルド制御部12は、再構築用データを、ステップS62で特定されたRAIDグループに含まれるいずれかの正常HDDから読み出すことを決定する。このとき、リビルド制御部12は、例えば、ボリューム管理テーブル32から、ステップS62で特定されたRAIDグループに割り当てられた論理ボリュームにおける対象データの論理アドレス、RAIDグループに含まれるHDDの構成、RAIDレベル、ストリップサイズなどを読み出す。リビルド制御部12は、読み出したこれらの情報から、再構築用データが格納されているHDDや、そのHDDにおける再構築用データの物理位置を特定する。
[Step S73] The
[Step S74] The
〔ステップS75〕リビルド制御部12は、対象データに対応する再構築用データをすべて選択したか否かを判定する。すべて選択済みの場合はステップS76へ処理が進み、未選択の再構築データがある場合はステップS71へ処理が戻る。
[Step S75] The
〔ステップS76〕リビルド制御部12は、ステップS71〜S75のループ処理において読み出し元が決定されたすべての再構築用データと、再構築されるすべての対象データとを含む容量分の領域をバッファ23上に確保する。
[Step S76] The
〔ステップS77〕リビルド制御部12は、すべての再構築データを、ステップS71〜S75のループ処理において決定された読み出し元から読み出し、ステップS76で確保されたバッファ23上の領域に格納する。ステップS73で決定された再構築用データは2次キャッシュ22から読み出され、ステップS74で決定された再構築用データは正常HDDから読み出される。このとき、2次キャッシュ22からの読み出しや1以上のHDDのそれぞれからの読み出しは並列に実行される。
[Step S77] The
〔ステップS78〕リビルド制御部12は、バッファ23に格納された再構築用データを用いて排他的論理和の計算を行うことで、対象データを再構築し、バッファ23に格納する。
[Step S78] The
〔ステップS79〕リビルド制御部12は、再構築したデータをバッファ23から読み出してホットスペアに格納する。
〔ステップS80〕リビルド制御部12は、2次キャッシュへのデータ格納処理を2次キャッシュデータ管理部13の書き込み処理部13aに実行させる(2次キャッシュへのデータ格納処理については図12で後述)。
[Step S79] The
[Step S80] The
なお、例えば、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
以上の図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
図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
〔ステップS81〕2次キャッシュデータ管理部13の書き込み処理部13aは、2次キャッシュ22の使用率と第1規定値とを比較する。使用率が第1規定値以上の場合はステップS88へ処理が進み、使用率が第1規定値未満の場合はステップS82へ処理が進む。なお、前述のように、使用率とは単位時間内で2次キャッシュ22がアクセスを受け付けている時間の割合を示す。また、このステップS81では、2次キャッシュ22のアクセス負荷を示す他の指標と、第1の規定値とが比較されてもよい。
[Step S81] The
ここで、使用率が第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
〔ステップS82〕書き込み処理部13aは、2次キャッシュ22に格納対象データの容量分の空き領域があるか否かを判定する。空き領域がない場合はステップS83へ処理が進み、空き領域がある場合はステップS85へ処理が進む。
[Step S82] The
〔ステップS83〕書き込み処理部13aは、2次キャッシュ管理テーブル31に基づき、2次キャッシュ22に格納されているデータの中にアクセス頻度が第2規定値以下のデータがあるか否かを判定する。アクセス頻度が第2規定値以下のデータがある場合はステップS84へ処理が進み、アクセス頻度が第2規定値以下のデータがない場合はステップS88へ処理が進む。
[Step S83] Based on the secondary cache management table 31, the
なお、この第2規定値は、ホスト装置300からの読み出しアクセス頻度が少ないデータを2次キャッシュ22から優先的に追い出すために使用される値である。例えば、第2規定値を「0」とした場合、一定時間においてホスト装置300からまったくアクセスの無かったデータを追い出すことになる。
The second specified value is a value used to preferentially expel data from the
〔ステップS84〕書き込み処理部13aは、2次キャッシュ22のデータの中からアクセス頻度が第2規定値以下のデータを1つ選択し、選択したデータを2次キャッシュ22から追い出して該データが格納されていた領域を解放する。なお、2次キャッシュ22から追い出されるデータがダーティデータの場合、そのデータはドライブ部200内の対応するRAIDグループ内のHDDにライトバックされる。また、リビルド処理にかかる時間を短縮するために、ステップS84ではダーティデータを選択しないようにしてもよい。
[Step S84] The
ステップ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
〔ステップS86〕書き込み処理部13aは、バッファ23から格納対象データを読み出して2次キャッシュ22に格納する。
〔ステップS87〕書き込み処理部13aは、2次キャッシュ管理テーブル24のレコードのうち、ステップS86でデータを書き込んだページに対応するレコードを更新する。この更新処理では、「論理位置」にデータの論理アドレス情報が登録され、「アクセス頻度」に初期値「0」が登録され、「格納契機フラグ」にリビルド処理に伴う格納であることを示す「1」が登録される。
[Step S86] The
[Step S87] The
〔ステップS88〕書き込み処理部13aは、バッファ23における格納対象データの記憶領域を解放する。また、図11のステップS76でHDDから読み出されたパリティがバッファ23に格納されていた場合、書き込み処理部13aはこのパリティの領域も解放する。
[Step S88] The
以上の図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
図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
〔ステップS92〕削除処理部13bは、ボリューム管理テーブル32に基づいて、処理対象のRAIDグループに割り当てられた論理ボリュームを1つ選択する。
〔ステップS93〕削除処理部13bは、ステップS92で選択した論理ボリューム上のデータのうち、2次キャッシュ22に記憶されており、なおかつリビルド処理に伴って2次キャッシュ22に格納されたデータを選択する。この処理では、2次キャッシュ管理テーブル31に基づき、「論理位置」に選択した論理ボリュームの識別情報が登録され、なおかつ「格納契機フラグ」が「1」であるレコードに対応するデータが1つ選択される。なお、図示しないが、ステップS93で該当するデータが存在しないと判定された場合、処理はステップS97に進められる。
[Step S92] The
[Step S93] Of the data on the logical volume selected in step S92, the
〔ステップS94〕削除処理部13bは、2次キャッシュ管理テーブル31のレコードのうちステップS93で選択したデータに対応するレコードから、当該データのアクセス頻度を取得する。削除処理部13bは、取得したアクセス頻度が第2規定値以下かを判定する。アクセス頻度が第2規定値以下の場合はステップS95へ処理が進み、アクセス頻度が第2規定値より大きい場合はステップS96へ処理が進む。
[Step S94] The
〔ステップS95〕削除処理部13bは、ステップS93で選択したデータを2次キャッシュ22から削除して、当該データが格納されていた領域を解放する。このとき、削除処理部13bは、2次キャッシュ管理テーブル31における当該データに対応するレコードにおいて、「物理位置」以外の登録値を無効値に更新する。
[Step S95] The
〔ステップS96〕削除処理部13bは、ステップS92で選択した論理ボリューム上のデータのうち、2次キャッシュ22に記憶されており、なおかつリビルド処理に伴って2次キャッシュ22に格納されたすべてのデータを選択済みかを判定する。未選択のデータがある場合はステップS93に処理が戻り、次の該当データが選択される。すべてのデータを選択済みの場合はステップS97へ処理が進む。
[Step S96] Of the data on the logical volume selected in step S92, the
〔ステップS97〕削除処理部13bは、ステップS91で選択したRAIDグループに含まれるすべての論理ボリュームを選択済みかを判定する。未選択の論理ボリュームがある場合はステップS92に処理が戻り、次の論理ボリュームが選択される。すべての論理ボリュームを選択済みの場合、処理が終了する。
[Step S97] The
以上の図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
なお、以上の第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
なお、上記の各実施の形態に示した装置(ストレージ制御装置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 (
プログラムを流通させる場合には、例えば、そのプログラムが記録された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
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.
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)
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 |
-
2019
- 2019-07-03 JP JP2019124305A patent/JP7288191B2/en active Active
Patent Citations (6)
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 |