JP2019191801A - Storage system and control device - Google Patents
Storage system and control device Download PDFInfo
- Publication number
- JP2019191801A JP2019191801A JP2018082203A JP2018082203A JP2019191801A JP 2019191801 A JP2019191801 A JP 2019191801A JP 2018082203 A JP2018082203 A JP 2018082203A JP 2018082203 A JP2018082203 A JP 2018082203A JP 2019191801 A JP2019191801 A JP 2019191801A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- area
- buffer
- recording medium
- 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.)
- Pending
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
本発明は、ストレージシステムおよび制御装置に関する。 The present invention relates to a storage system and a control device.
ストレージ装置に記録されたデータをバックアップのために他のストレージ装置にコピーするリモートコピーの方法として、同期コピーと非同期コピーとが知られている。同期コピーでは、コピー元装置は、ホスト装置から書き込みが要求されたデータを記憶するとともに、そのデータをコピー先装置にコピーし、コピーが完了した後にホスト装置に書き込みの完了を通知する。一方、非同期コピーでは、コピー元装置は、書き込みが要求されたデータを記憶した段階でホスト装置に対して書き込みの完了を通知し、これとは非同期のタイミングでデータをコピー先装置にコピーする。 Synchronous copying and asynchronous copying are known as remote copy methods for copying data recorded in a storage device to another storage device for backup. In synchronous copy, the copy source device stores data requested to be written by the host device, copies the data to the copy destination device, and notifies the host device of the completion of writing after the copy is completed. On the other hand, in the asynchronous copy, the copy source device notifies the host device of the completion of writing at the stage where the data requested to be written is stored, and copies the data to the copy destination device at a timing asynchronous with this.
同期コピーは、データを常に二重化できる反面、装置間の距離が長いほどRTT(Round-Trip Time)が増加して書き込みの応答性能が悪化するという特性を有する。このため、広範囲に及ぶ大規模な災害を想定してコピー先装置を遠距離に配置する用途には、非同期コピーが適している。 Synchronous copying has the property that data can always be duplicated, but the longer the distance between the devices, the longer the RTT (Round-Trip Time) and the worse the write response performance. For this reason, asynchronous copying is suitable for applications in which a copy destination apparatus is arranged at a long distance assuming a large-scale disaster over a wide area.
これに関連して、ホスト装置からデータの書き込み要求を受け付けて書き込み制御処理を行う第1装置から、第2装置に対して同期コピーを行うとともに、第1装置から第3装置に対して非同期コピーを行うようにしたストレージシステムが提案されている。このストレージシステムでは、第1装置の動作が停止すると、ホスト装置からの要求に応じた書き込み制御処理を第2装置が引き継ぐとともに、第2装置から第3装置に対して非同期コピーが行われる。 In this connection, the first device that receives a data write request from the host device and performs the write control process performs a synchronous copy to the second device and an asynchronous copy from the first device to the third device. There has been proposed a storage system that performs the above. In this storage system, when the operation of the first device stops, the second device takes over the write control process according to the request from the host device, and asynchronous copy is performed from the second device to the third device.
また、このストレージシステムでは、書き込みの順序性を保証した非同期コピーが行われる。非同期コピーのコピー元装置は、第1記録媒体のデータを第1の記録専用バッファに格納し、このバッファが満杯になるとバッファ内のデータをまとめてコピー先装置に送信する。コピー先装置は、受信したデータを第2の記録専用バッファに格納し、データの受信を完了するとこのバッファ内のデータを第2記録媒体に展開する。 Also, in this storage system, asynchronous copying is performed in which the order of writing is guaranteed. The copy source apparatus for asynchronous copying stores the data of the first recording medium in the first recording-dedicated buffer, and when this buffer becomes full, the data in the buffer are collectively transmitted to the copy destination apparatus. The copy destination apparatus stores the received data in the second recording-dedicated buffer, and when the reception of the data is completed, the data in this buffer is expanded on the second recording medium.
なお、上記に関連する他の技術として、第1ボリュームと第3ボリュームによる非同期コピーペアの形成命令を受信したとき、第1ボリュームとの間で高可用性ペアが形成された第2ボリュームと、第3ボリュームとによるスタンバイペアが形成されていない場合、形成命令を拒否するようにしたストレージシステムが提案されている。 As another technique related to the above, when an instruction for forming an asynchronous copy pair using the first volume and the third volume is received, a second volume in which a high availability pair is formed with the first volume, There has been proposed a storage system that rejects a formation command when a standby pair with three volumes is not formed.
第1装置から第2装置に対して同期コピーを行い、第1装置から第3装置に対して非同期コピーを行うようにした上記のストレージシステムでは、非同期コピーによる第1装置から第3装置へのデータ転送中に、第1装置の動作が停止する場合がある。この場合、第2装置が保持するデータと第3装置が保持するデータとが一致しなくなる。そのため、第2装置が書き込み制御処理を引き継ぐ際に、第2装置が保持するデータを用いて第2装置と第3装置との間でできるだけ短時間でデータを等価にしたいという課題がある。 In the above storage system in which the first device performs the synchronous copy from the second device and the first device performs the asynchronous copy from the third device, the first device to the third device by asynchronous copy. During the data transfer, the operation of the first device may stop. In this case, the data held by the second device does not match the data held by the third device. Therefore, when the second device takes over the write control process, there is a problem that it is desired to make the data equivalent between the second device and the third device in the shortest possible time using the data held by the second device.
1つの側面では、本発明は、フェイルオーバの際にコピー元装置とコピー先装置の各データを短時間で等価にできるストレージシステムおよび制御装置を提供することを目的とする。 In one aspect, an object of the present invention is to provide a storage system and a control device that can equalize each data of a copy source device and a copy destination device in a short time at the time of failover.
1つの案では、第1の制御装置と、第2の制御装置と、第3の制御装置とを有するストレージシステムが提供される。このストレージシステムにおいて、第1の制御装置は、第1の領域と第2の領域とを有するバッファと、上位装置から書き込みが要求されたデータを、第1の記録媒体に書き込むとともに第2の制御装置に送信し、上位装置に書き込み完了を通知する同期コピー処理と、第1の記録媒体に書き込まれたデータを第1の領域に格納し、所定の条件が満たされると、バッファ切り替えを第2の制御装置に通知するとともに、その通知後に第1の記録媒体に書き込まれるデータのバッファにおける格納先を第2の領域に切り替える格納処理と、第1の領域に格納された第1のデータをまとめて第3の制御装置に送信し、第2の領域に格納された第2のデータをまとめて第3の制御装置に送信する非同期コピー処理と、を実行し、第3の制御装置に対する第1のデータの送信が完了すると、完了通知を第2の制御装置に送信する第1の制御部と、を有する。 In one scheme, a storage system having a first control device, a second control device, and a third control device is provided. In this storage system, the first control device writes a buffer having a first area and a second area, and data requested to be written by the host device to the first recording medium and performs a second control. Synchronous copy processing for transmitting to the device and notifying the host device of the completion of writing, and storing the data written to the first recording medium in the first area, and switching the buffer when the predetermined condition is satisfied. And a storage process for switching the storage destination in the buffer of data written to the first recording medium after the notification to the second area, and the first data stored in the first area. And asynchronous copy processing for transmitting the second data stored in the second area together to the third control device, to the third control device. That has the transmission of the first data is completed, the first control unit for transmitting a completion notice to the second control device.
第2の制御装置は、第1の領域に対応付けられた第3の領域と、第2の領域に対応付けられた第4の領域とを有する制御情報記憶部と、第1の制御部から送信された第1のデータを第2の記録媒体に格納するとともに、第1のデータを示す第1の制御情報を第3の領域に格納し、バッファ切り替えが通知されると、その通知後に第1の制御部から送信された第2のデータを第2の記録媒体に格納するとともに、第2のデータを示す第2の制御情報を第4の領域に格納し、完了通知を受信すると、第3の領域から第1の制御情報を消去し、バッファ切り替えの通知後に第1の制御装置が停止すると、上位装置からの書き込み要求の受信処理を第1の制御部から引き継いで、書き込みが要求された第3のデータを第2の記録媒体に格納し、その後の所定のタイミングで第3のデータを第3の制御装置に送信する第2の制御部と、を有する。 The second control device includes a control information storage unit having a third region associated with the first region and a fourth region associated with the second region, and a first control unit. The transmitted first data is stored in the second recording medium, the first control information indicating the first data is stored in the third area, and when the buffer switching is notified, the first data is notified after the notification. When the second data transmitted from the first control unit is stored in the second recording medium, the second control information indicating the second data is stored in the fourth area, and the completion notification is received, When the first control information is erased from the area 3 and the first control device stops after notification of buffer switching, the write request reception processing from the host device is taken over from the first control unit, and the write is requested. The third data is stored in the second recording medium, and then Having a second control unit for transmitting a third data at a predetermined timing to the third control device.
第3の制御装置は、第1の制御装置から第1のデータを受信すると第1のデータを第3の記録媒体に格納し、第1の制御装置から第2のデータを受信すると第2のデータを第3の記録媒体に格納し、第2の制御装置から第3のデータを受信すると第3のデータを第3の記録媒体に格納する第3の制御部を有する。 The third control device stores the first data in the third recording medium when receiving the first data from the first control device, and receives the second data from the first control device when receiving the second data. Data is stored in the third recording medium, and when the third data is received from the second control device, the third control unit stores the third data in the third recording medium.
第2の制御部はさらに、バッファ切り替えの通知後に第1の制御装置が停止したとき、第3の領域に第1の制御情報が残っている場合には、第1の制御情報に基づいて第2の記録媒体から第1のデータを読み出し、読み出した第1のデータを第3の制御装置に送信し、第3の制御部はさらに、第2の制御装置から第1のデータを受信すると第1のデータを第3の記録媒体に格納する。 The second control unit further determines the first control information based on the first control information when the first control device is stopped after the buffer switching notification and the first control information remains in the third area. The first data is read from the second recording medium, the read first data is transmitted to the third control device, and the third control unit further receives the first data from the second control device. 1 data is stored in the third recording medium.
また、1つの案では、バッファと、制御部とを有する制御装置が提供される。この制御装置において、バッファは、第1の領域と第2の領域とを有する。制御部は、上位装置から書き込みが要求されたデータを、記録媒体に書き込むとともに第1の他の制御装置に送信し、上位装置に書き込み完了を通知する同期コピー処理と、記録媒体に書き込まれたデータを第1の領域に格納し、所定の条件が満たされると、バッファ切り替えを第1の他の制御装置に通知するとともに、その通知後に記録媒体に書き込まれるデータのバッファにおける格納先を第2の領域に切り替える格納処理と、第1の領域に格納された第1のデータをまとめて第2の他の制御装置に送信し、第2の領域に格納された第2のデータをまとめて第2の他の制御装置に送信する非同期コピー処理と、を実行し、第2の他の制御装置に対する第1のデータの送信が完了すると、完了通知を第1の他の制御装置に送信する。 In one proposal, a control device having a buffer and a control unit is provided. In this control device, the buffer has a first area and a second area. The control unit writes the data requested to be written from the host device to the recording medium and transmits it to the first other control device, and notifies the host device of the completion of writing, and the data is written to the recording medium. When the data is stored in the first area and the predetermined condition is satisfied, the buffer switching is notified to the first other control device, and the storage destination in the buffer of the data to be written in the recording medium after the notification is set to the second area. Storage processing for switching to the first area and the first data stored in the first area are collectively transmitted to the second other control device, and the second data stored in the second area are collectively Asynchronous copy processing to be transmitted to two other control devices is executed, and when the transmission of the first data to the second other control device is completed, a completion notification is transmitted to the first other control device.
また、第1のデータの書き込み先領域の少なくとも一部が第2のデータの書き込み先領域と重複している場合、制御部は、第2のデータを記録媒体に格納する際に、第1のデータを記録媒体から第1の領域に格納する処理が完了しているかを判定し、当該処理が完了していない場合、当該処理が完了した後に第2のデータを記録媒体に格納する。 When at least a part of the first data writing destination area overlaps with the second data writing destination area, the control unit sets the first data when storing the second data in the recording medium. It is determined whether the process of storing data from the recording medium into the first area is completed. If the process is not completed, the second data is stored in the recording medium after the process is completed.
1つの側面では、フェイルオーバの際にコピー元装置とコピー先装置の各データを短時間で等価にできる。 In one aspect, the data of the copy source device and the copy destination device can be equivalent in a short time during failover.
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図1に示すストレージシステムは、制御装置10,20,30を有する。また、制御装置10,20は、上位装置1と通信可能になっている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating a configuration example and a processing example of the storage system according to the first embodiment. The storage system shown in FIG. 1 includes control devices 10, 20, and 30. In addition, the control devices 10 and 20 can communicate with the host device 1.
制御装置10,20,30は、記録媒体11,21,31をそれぞれ有する。なお、図1では例として、記録媒体11,21,31はそれぞれ制御装置10,20,30の内部に搭載されているが、それぞれ制御装置10,20,30の外部に接続されていてもよい。
The control devices 10, 20, and 30 have
制御装置10は、上位装置1からの要求に応じて記録媒体11へのアクセスを制御する。また、制御装置10は、記録媒体11に書き込まれたデータを、バックアップのために制御装置20,30の記録媒体21,31にコピーする機能を備える。制御装置10から制御装置20へは同期コピーが実行され、制御装置10から制御装置30へは非同期コピーが実行される。
The control device 10 controls access to the
制御装置20は、記録媒体11への書き込みが要求されたデータを制御装置10から受信し、記録媒体21に書き込む。また、制御装置20は、障害の発生などによって制御装置10の動作が停止すると、上位装置1からの書き込み要求に応じた書き込み制御処理を制御装置10から引き継ぐ。すなわち、この状態では、制御装置20は、上位装置1からの要求に応じて記録媒体21へのアクセスを制御する。これとともに、制御装置20は、記録媒体21に書き込まれたデータを、非同期コピーによって制御装置30の記録媒体31にバックアップする。
The control device 20 receives data requested to be written to the
制御装置30は、制御装置10または制御装置20から送信されたデータを記録媒体31に書き込む。
また、制御装置10はさらに、バッファ12と制御部13を有する。バッファ12は、例えば、制御装置10が備えるRAM(Random Access Memory)に確保される。制御部13は、例えば、制御装置10が備えるプロセッサとして実現される。制御装置20はさらに、制御情報記憶部22と制御部23を有する。制御情報記憶部22の記憶領域は、例えば、制御装置20が備えるRAMに確保される。制御部23は、例えば、制御装置20が備えるプロセッサとして実現される。制御装置30はさらに、制御部33を有する。制御部33は、例えば、制御装置30が備えるプロセッサとして実現される。
The control device 30 writes the data transmitted from the control device 10 or the control device 20 in the
The control device 10 further includes a
バッファ12には、記録媒体11から制御装置30に送信されるデータが一時的に格納される。バッファ12は、複数の分割バッファ領域を有している。図1の例では、バッファ12は、分割バッファ領域12a,12bを有する。
In the
制御情報記憶部22には、バッファ12の分割バッファ領域にそれぞれ対応付けられた分割領域を有する。図1の例では、制御情報記憶部22は、分割バッファ領域12a,12bにそれぞれ対応付けられた分割領域22a,22bを有する。制御情報記憶部22の分割領域には、制御情報が記憶される。制御情報とは、対応する分割バッファ領域に格納されるデータそれぞれについて、記録媒体11,21,31に格納するために必要となる情報である。例えば、制御情報は、対応する分割バッファ領域に格納されたデータそれぞれについての書き込み先領域を示す。
The control information storage unit 22 has divided areas respectively associated with the divided buffer areas of the
制御部13は、次に示す「同期コピー処理」、「格納処理」および「非同期コピー処理」を実行する。
同期コピー処理では、制御部13は、上位装置1から書き込みが要求されたデータを、記録媒体11に書き込むとともに制御装置20に送信し、上位装置1に書き込み完了を通知する。制御部23は、制御部13から送信されたデータを記録媒体21に格納するとともに、そのデータを示す制御情報を制御情報記憶部22に格納する。なお、制御部13による上位装置1に対する書き込み完了の通知は、記録媒体21へのデータの格納および制御情報記憶部22への制御情報の格納が完了した後に行われる。以上の同期コピー処理により、少なくとも、記録媒体11に格納されたデータと記録媒体21に格納されたデータとは常に等価となる。
The
In the synchronous copy process, the
格納処理では、制御部13は、記録媒体11に書き込まれたデータを分割バッファ領域12aに格納する。そして、制御部13は、所定の条件が満たされると、バッファ切り替えを制御装置20に通知するとともに、上位装置1から記録媒体11に書き込まれるデータの格納先を分割バッファ領域12aから分割バッファ領域12bに切り替える。したがって、バッファ切り替えの通知後における格納処理では、記録媒体11に書き込まれたデータが分割バッファ領域12bに格納される。
In the storage process, the
ここで、制御部23は、バッファ切り替えが通知される前に、制御部13からのデータを受信して記録媒体21に格納したとき、そのデータに対応する制御情報24aを制御情報記憶部22の分割領域22aに格納する。一方、制御部23は、バッファ切り替えが通知された後に、制御部13からのデータを受信して記録媒体21に格納したとき、そのデータに対応する制御情報24bを制御情報記憶部22の分割領域22bに格納する。このように、制御装置20は、バッファ切り替えの通知を受けることで、その前後で記録媒体21に格納したデータに対応する制御情報を、区別して保持できる。
Here, when the
非同期コピー処理では、制御部13は、分割バッファ領域12aに格納されたデータをまとめて制御装置30に送信する。すなわち、制御部13は、分割バッファ領域12aに対するデータの格納が完了した後、分割バッファ領域12a内のデータを制御装置30に送信する。また、制御部13は、分割バッファ領域12bに格納されたデータをまとめて制御装置30に送信する。
In the asynchronous copy process, the
制御部33は、制御部13から送信された分割バッファ領域12aのデータを受信し、受信したデータを記録媒体31に格納する。また、制御部33は、制御部13から送信された分割バッファ領域12bのデータを受信し、記録媒体31に格納する。
The
このような非同期コピーによれば、分割バッファ領域単位でデータがコピーされる。したがって、制御装置10と制御装置30との間では、上位装置1からの書き込みの順序性が保証された非同期コピーが実行される。 According to such asynchronous copy, data is copied in units of divided buffer areas. Therefore, asynchronous copy in which the order of writing from the host device 1 is guaranteed is executed between the control device 10 and the control device 30.
制御部13は、非同期コピー処理での制御装置30に対するデータの送信が完了すると、完了通知を制御装置20に送信する。制御部23は、完了通知を受信すると、制御情報24aを分割領域22aから消去する。このように、制御部23は、完了通知を受信することにより、制御情報24aに対応するデータ、すなわち分割バッファ領域12aに格納されたデータについての非同期コピー処理が完了したことを認識できる。
When the transmission of data to the control device 30 in the asynchronous copy process is completed, the
次に、制御装置10が停止した場合について説明する。
制御部23は、例えば、上記のバッファ切り替えが通知された後に制御装置10が停止した場合、上位装置1からの書き込み要求の受信処理を制御部13から引き継いで、書き込みが要求されたデータを記録媒体21に格納する。そして、制御部23は、その後の所定のタイミングで、記録媒体21に格納したデータを制御装置30に送信する。
Next, the case where the control apparatus 10 stops will be described.
For example, when the control device 10 is stopped after notification of the buffer switching described above, the
これとともに、制御部23は、バッファ切り替えが通知された後に制御装置10が停止したとき、分割領域22aに制御情報24aが残っている場合には、この制御情報24aに基づいて記録媒体21からデータを読み出し、読み出したデータを制御装置30に送信する。制御部33は、制御部23からこのデータを受信し、記録媒体31に格納する。
At the same time, when the control device 10 is stopped after the buffer switching is notified, the
ここで、分割バッファ領域12aのデータを制御装置10から制御装置30に送信している途中で制御装置10が停止した場合、記録媒体11のデータと記録媒体31のデータとが一致しなくなる可能性がある。一方、制御部23は、バッファ切り替えが通知された後に制御装置10が停止したとき、分割領域22aに制御情報24aが残っていることで、分割領域22aに対応する分割バッファ領域12aのデータが制御装置30に送信されていない可能性があると判定できる。このように判定した場合、制御部23は、制御情報24aに基づいて、分割バッファ領域12aのデータと同一のデータを記録媒体21から読み出し、制御装置30に送信する。送信されたデータを制御部33が記録媒体31に格納することで、記録媒体31のデータが記録媒体21のデータと等価になる。
Here, if the control device 10 stops while the data in the divided
このような処理により、制御部23は、記録媒体21に格納されているデータのうち、記録媒体31に格納されていない可能性のあるデータだけを、記録媒体21から記録媒体31にコピーすることができる。これにより、制御装置20が書き込み制御処理を引き継ぐフェイルオーバの際に、非同期コピーのコピー元装置である制御装置20と、コピー先装置である制御装置30の各データを短時間で等価にすることができる。
By such processing, the
なお、上位装置1からの書き込み要求に応じてデータを記録媒体21に格納する処理は、例えば、制御情報24aに基づくデータを記録媒体21から制御装置30へ送信する処理が完了した後に実行されてもよい。あるいは、これらの処理は並行して実行されてもよい。後者の場合、制御装置10が停止してから上位装置1からの要求に応じた書き込み制御処理が再開されるまでの時間を短縮できる。
The process of storing data in the
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置100,200,300およびホスト装置400を含む。ホスト装置400とストレージ装置100,200とは、例えば、SAN(Storage Area Network)51を介して接続されている。ストレージ装置100とストレージ装置200とは、例えば、専用の通信回線を介して接続され、ストレージ装置100,200とストレージ装置300とは、例えば、WAN(Wide Area Network)52を介して接続されている。ストレージ装置100とストレージ装置200との距離と比較して、ストレージ装置300は遠距離に配置されている。
[Second Embodiment]
FIG. 2 is a diagram illustrating a configuration example of a storage system according to the second embodiment. The storage system shown in FIG. 2 includes
ストレージ装置100は、CM(Controller Module)110,110aとドライブ部120,120aを有する。ドライブ部120,120aのそれぞれには、複数の記憶装置が搭載されている。それらの記憶装置は、例えばHDD(Hard Disk Drive)であり、その場合、ドライブ部120,120aはディスクアレイ装置である。CM110は、ドライブ部120内の記憶装置に対するアクセスを制御する制御装置であり、CM110aは、ドライブ部120a内の記憶装置に対するアクセスを制御する制御装置である。
The
同様に、ストレージ装置200は、CM210,210aとドライブ部220,220aを有しており、ストレージ装置300は、CM310,310aとドライブ部320,320aを有している。なお、図2のストレージシステムにおいては、CM110,110a,210,210a,310,310aが相互に接続されている。
Similarly, the
CM110は、ホスト装置400からの要求に応じて、ドライブ部120内の記憶装置によって実現される論理ボリュームに対するアクセスを制御できるようになっている。同様に、CM110aは、ホスト装置400からの要求に応じて、ドライブ部120a内の記憶装置によって実現される論理ボリュームに対するアクセスを制御できるようになっている。CM110,110aは、対応する論理ボリュームに対するアクセス時に利用するキャッシュをそれぞれが保持する分散キャッシュ方式でアクセス制御を行う。
The
ストレージ装置200は、ストレージ装置100がアクティブ状態(運用状態)のとき、スタンバイ状態(待機状態)になっている。この状態では、CM210,210aは、それぞれCM110,110a内のキャッシュのデータを受信してバックアップする。ストレージ装置100内のキャッシュのデータは、同期コピーによってストレージ装置200にバックアップされる。そして、ストレージ装置100に障害が発生したとき、ストレージ装置200はスタンバイ状態からアクティブ状態に遷移し(すなわちフェイルオーバし)、ホスト装置400からの要求に応じた論理ボリュームへのアクセス制御を短時間で引き継ぐ。
The
ストレージ装置300も、ストレージ装置100がアクティブ状態のとき、ストレージ装置100内のキャッシュのデータを受信してバックアップする。具体的には、CM310,310aは、それぞれCM110,110a内のキャッシュのデータを受信してバックアップする。ただし、ストレージ装置100内のキャッシュのデータは、非同期コピーによってストレージ装置300にバックアップされる。そして、ストレージ装置100に障害が発生したとき、ストレージ装置300は,アクティブ状態に遷移したストレージ装置200内のキャッシュのデータをバックアップする。このときも、ストレージ装置200内のキャッシュのデータは、非同期コピーによってストレージ装置300にバックアップされる。
The
このように、図2に示すストレージシステムでは、ストレージ装置100,200,300が正常に動作しているとき、キャッシュのデータに対応するバックアップデータが二重に記憶され、これによってキャッシュのデータが失われるリスクが低減されている。また、遠隔地に配置されたストレージ装置300に同期コピーによってデータをバックアップした場合、RTTが増大してホスト装置400に対する応答速度が大きく低下してしまう。しかし、図2のストレージシステムによれば、ストレージ装置300には非同期コピーによってデータがバックアップされるので、このような応答速度の低下を防止できる。換言すると、ホスト装置400に対する応答性能を落とさずに、ストレージ装置300を遠隔地に配置することができるので、例えば、影響が広範囲に及ぶ大きな災害が発生した場合にデータが失われるリスクを低減できる。
As described above, in the storage system shown in FIG. 2, when the
図3は、CMのハードウェア構成例を示す図である。この図3では、CM110を例示する。
CM110は、プロセッサ111、RAM112、SSD(Solid State Drive)113、ホストインタフェース114、ドライブインタフェース115およびリモートアダプタ116,117を有する。これらの構成要素は、バス118を介して接続されている。
FIG. 3 is a diagram illustrating a hardware configuration example of the CM. In FIG. 3, the
The
プロセッサ111は、CM110全体を統括的に制御する。プロセッサ111は、マルチプロセッサであってもよい。プロセッサ111は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ111は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
The
RAM112は、CM110の主記憶装置として使用される。RAM112には、プロセッサ111に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM112には、プロセッサ111による処理に必要な各種データが格納される。
The
SSD113は、CM110の補助記憶装置として使用される。SSD113には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、HDDなどの他の種類の記憶装置が用いられてもよい。
The
ホストインタフェース114は、ホスト装置400と通信するためのインタフェースである。ドライブインタフェース115は、ドライブ部120内の記憶装置と通信するためのインタフェースである。ドライブインタフェース115は、例えば、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)インタフェースである。リモートアダプタ116は、ストレージ装置200と通信するためのインタフェースであり、リモートアダプタ117は、ストレージ装置300と通信するためのインタフェースである。
The
以上のハードウェア構成によってCM110の処理機能が実現される。なお、CM110a,210,210a,310,310aについても、図3と同様のハードウェア構成によって実現される。
The processing functions of the
図4は、各CMが備える処理機能の構成例を示すブロック図である。
まず、CM110は、制御部130、キャッシュ140、バッファ150および管理情報記憶部160を有する。制御部130の処理は、プロセッサ111が所定のプログラムを実行することで実現される。キャッシュ140およびバッファ150は、RAM112の記憶領域の一部によって実現される。管理情報記憶部160は、RAM112またはSSD113の記憶領域の一部によって実現される。
FIG. 4 is a block diagram illustrating a configuration example of processing functions included in each CM.
First, the
制御部130は、ホスト装置400からの要求に応じた論理ボリュームに対するアクセスを、キャッシュ140を用いて制御する。例えば、制御部130は、論理ボリュームに対するアクセスを、ライトバック方式を用いて制御する。また、制御部130は、キャッシュ140に書き込んだデータのCM210,310に対するコピー処理を実行する。制御部130は、CM210に対しては同期コピーを行い、CM310に対しては非同期コピーを行う。
The
例えば、ライトバック方式が用いられる場合、制御部130は、論理ボリュームに対するライト要求を受けると、ライトが要求されたデータ(ライトデータ)をキャッシュ140に格納する。これとともに、制御部130は、ライトデータをCM210に送信し、CM210のキャッシュ(後述するキャッシュ240)にも格納する。制御部130は、以上の処理が完了すると、ホスト装置400にライト完了通知を送信する。制御部130は、その後の非同期のタイミングで、キャッシュ140に格納されたライトデータをドライブ部120内の記憶装置に書き込む。さらに、制御部130は、ライト完了通知の送信後の非同期のタイミングで、キャッシュ140に格納されたライトデータをCM310に送信し、CM310のキャッシュ(後述するキャッシュ340)に書き込む。
For example, when the write back method is used, when the
キャッシュ140には、ホスト装置400からのアクセス対象の論理ボリュームに含まれる少なくとも一部のデータが、一時的に格納される。バッファ150には、キャッシュ140からCM210,310に転送されるライトデータが一時的に格納される。バッファ150は、複数の分割領域に区分されており、書き込みの順序性を保ったまま非同期コピーを実行するために利用される。
The
管理情報記憶部160には、コピー処理で参照される各種の情報が格納される。例えば、管理情報記憶部160には、バッファ150の各分割領域に対応する制御情報領域が設定される。制御情報領域には、キャッシュ240に格納した各ライトデータに対応するライト制御情報が登録される。ライト制御情報は、ライトデータの書き込み先を示す情報であり、論理ボリュームを識別するLUN(Logical Unit Number)、論理ボリュームにおける書き込み先の先頭アドレスを示すLBA(Logical Block Address)、データ長をブロック単位で示すブロックカウントを含む。このようなライト制御情報は、ライトデータをキャッシュ140への格納後の非同期のタイミングでバッファ150に格納するために利用される。
The management
なお、図示しないが、CM110aもCM110と同様の処理機能を備える。ただし、後述するバッファの世代管理などのリモートコピー処理全体の制御に関しては、CM110はマスタとして動作し、CM110aはスレーブとして動作する。
Although not shown, the
CM210は、制御部230、キャッシュ240、バッファ250および管理情報記憶部260を有する。制御部230の処理は、CM210が備えるプロセッサが所定のプログラムを実行することで実現される。キャッシュ240およびバッファ250は、CM210が備えるRAMの記憶領域の一部によって実現される。管理情報記憶部260は、CMが備えるRAMまたはSSDの記憶領域の一部によって実現される。
The
制御部230は、ストレージ装置100が運用状態のとき、CM110から転送されるライトデータをキャッシュ240に格納する処理を実行する。このとき、制御部230は、キャッシュ240に格納したライトデータについてのライト制御情報を管理情報記憶部260に登録する。登録されたライト制御情報は、フェイルオーバ後に、キャッシュ240に格納されたライトデータのうち、CM310のキャッシュに格納されていないライトデータをCM310に送信するために利用される。
The
また、障害発生によりストレージ装置100が停止して、ストレージ装置200がアクティブ状態に遷移すると(フェイルオーバ)、制御部230は、論理ボリュームに対するアクセス制御をCM110の制御部130から引き継ぐ。このとき、制御部230は、ホスト装置400からの要求に応じた論理ボリュームに対するアクセスを、キャッシュ240を用いて制御する。これとともに、制御部230は、キャッシュ240のライトデータを非同期でCM310のキャッシュにコピーする非同期コピー処理を実行する。
Further, when the
バッファ250には、ストレージ装置200がアクティブ状態のとき、キャッシュ240からCM310に転送されるライトデータが一時的に格納される。管理情報記憶部260には、コピー処理で参照される各種の情報が格納される。
The
なお、図示しないが、CM210aもCM210と同様の処理機能を備える。
CM310は、制御部330、キャッシュ340、バッファ350および管理情報記憶部360を有する。制御部330の処理は、CM310が備えるプロセッサが所定のプログラムを実行することで実現される。キャッシュ340およびバッファ350は、CM310が備えるRAMの記憶領域の一部によって実現される。管理情報記憶部360は、CMが備えるRAMまたはSSDの記憶領域の一部によって実現される。
Although not shown, the CM 210a also has the same processing function as the
The
制御部330は、CM110,210のうち運用状態のCMから転送されたライトデータを、キャッシュ340に格納する。キャッシュ340には、CM110のキャッシュ140またはCM210のキャッシュ240に格納されたライトデータに対応するコピーデータが格納される。バッファ350には、CM110またはCM210から転送されたライトデータが一時的に格納される。管理情報記憶部360には、コピー処理、すなわち受信したライトデータをキャッシュ340に格納する処理において参照される各種の情報が格納される。
The
なお、図示しないが、CM310aもCM310と同様の処理機能を備える。
次に、上記のストレージシステムで実行される非同期コピー処理について説明する。本実施の形態では、ストレージ装置100がアクティブ状態のとき、ストレージ装置100とストレージ装置300との間において、順序性が保証された非同期コピーが実行される。
Although not shown, the
Next, asynchronous copy processing executed in the above storage system will be described. In the present embodiment, when the
図5は、非同期コピーの基本的な処理手順を説明するための図である。なお、図5では、ストレージ装置100とストレージ装置200との間の同期コピーに関する処理については省略している。
FIG. 5 is a diagram for explaining a basic processing procedure of asynchronous copying. In FIG. 5, processing related to synchronous copying between the
ストレージ装置100がアクティブ状態のとき、ストレージ装置100は非同期コピーにおけるコピー元装置となり、ストレージ装置300が非同期コピーにおけるコピー先装置となる。前述のように、ストレージ装置100のCM110は、コピー元となるキャッシュ140と、非同期コピーの際に利用されるバッファ150を備える。ストレージ装置100のCM110aも同様に、コピー元となるキャッシュ140aと、非同期コピーの際に利用されるバッファ150aを備える。
When the
また、前述のように、ストレージ装置300のCM310は、コピー先となるキャッシュ340と、非同期コピーの際に利用されるバッファ350を備える。ストレージ装置300のCM310aも同様に、コピー先となるキャッシュ340aと、非同期コピーの際に利用されるバッファ350aを備える。
Further, as described above, the
バッファ150,150a,350,350aは、それぞれ同数の分割領域に区分されている。図5において、各分割領域に記載された数字は、各分割領域のID(Identification)を示す。以下の説明では、IDが「xxxx」の分割領域を「分割領域(xxxx)」と表記する。
The
非同期コピー処理においては、バッファ150,150a,350,350aのそれぞれから分割領域が1つずつ選択され、選択された分割領域が、ホスト装置400から同一期間に書き込まれたライトデータの格納に利用される。そこで、以下の説明では、各分割領域を「世代」という概念で識別する場合がある。図5の例では、分割領域(0000),(0100),(2000),(2100)が同一世代に属する。また、分割領域(0001),(0101),(2001),(2101)が同一世代に属する。また、分割領域(0002),(0102),(2002),(2102)が同一世代に属する。また、分割領域(0003),(0103),(2003),(2103)が同一世代に属する。また、同一世代に属する分割領域の組み合わせを「バッファセット」と呼ぶ。
In the asynchronous copy process, one divided area is selected from each of the
CM110は、ホスト装置400からライト要求を受信すると、ホスト装置400から送信されたライトデータをキャッシュ140に書き込み(ステップS11a)、ホスト装置にライト完了通知を送信する。CM110aも同様に、ホスト装置400から送信されたライトデータをキャッシュ140aに書き込み(ステップS11b)、ホスト装置400にライト完了通知を送信する。
When the
CM110は、キャッシュ140への書き込みとは非同期のタイミングで、キャッシュ140に書き込まれたライトデータを分割領域(0000)に格納(コピー)する(ステップS12a)。CM110aも同様に、キャッシュ140aへの書き込みとは非同期のタイミングで、キャッシュ140aに書き込まれたライトデータを分割領域(0100)に格納(コピー)する(ステップS12b)。
The
その後、コピー元のストレージ装置100では、分割領域(0000),(0100)の少なくとも一方の残容量がなくなるか、または一定時間が経過すると、バッファセットの切り替えが行われる。バッファセットの切り替えとは、ライトデータの格納先とする分割領域を切り替えることを指す。バッファセットの切り替え発生により、キャッシュ140,140aに書き込まれたライトデータの格納先は、次世代のバッファセットに属する分割領域(0001),(0101)にそれぞれ切り替えられる。これとともに、前世代のバッファセットに属する分割領域(0000),(0100)は、コピー先装置への転送の対象となる。
Thereafter, in the copy
CM110は、分割領域(0000)の残容量がなくなるか、または一定時間が経過すると、分割領域(0000)に格納されたライトデータをまとめてCM310に転送する(ステップS13a)。CM110aも同様に、分割領域(0100)に格納されたライトデータをまとめてCM310aに転送する(ステップS13b)。
When the remaining capacity of the divided area (0000) runs out or a certain time elapses, the
CM310は、CM110から受信したライトデータを分割領域(2000)に一時的に格納し、すべてのライトデータが格納されると、分割領域(2000)に格納されたライトデータをキャッシュ340に書き込む(ステップS14a)。CM310aも同様に、CM110aから受信したライトデータを分割領域(2100)に一時的に格納し、すべてのライトデータが格納されると、分割領域(2100)に格納されたライトデータをキャッシュ340aに書き込む(ステップS14b)。以下、バッファ350,350aからキャッシュ340,340aへの書き込みを「展開」と呼ぶ。
The
分割領域(2000),(2100)に格納されたデータの展開が完了すると、分割領域(0000),(0100),(2000),(2100)が属するバッファセットは未使用領域に戻される。このように分割領域が未使用領域に戻されることを「解放」と呼ぶ。 When the expansion of the data stored in the divided areas (2000) and (2100) is completed, the buffer set to which the divided areas (0000), (0100), (2000), and (2100) belong is returned to the unused area. This return of the divided area to the unused area is called “release”.
以上のように、コピー用のバッファを用い、バッファセット単位で装置間のライトデータの転送およびバッファからキャッシュへのライトデータの展開を行うことで、バッファセット単位での書き込みの順序性が保証される。 As described above, by using a buffer for copying and transferring write data between devices in units of buffer sets and developing write data from buffers to cache, the order of writing in units of buffer sets is guaranteed. The
ところで、前述のように、ストレージ装置100に障害が発生した場合には、ホスト装置400からの要求に応じたアクセス制御をストレージ装置200が引き継ぐ(フェイルオーバ)。ここで、ストレージ装置100とストレージ装置200との間では、同期コピーにより常に同じデータがキャッシュに保持されており、ストレージ装置100に障害が発生した場合でもこの点に変わりはない。一方、ストレージ装置100とストレージ装置300との間で非同期コピーによるデータの転送中にストレージ装置100に障害が発生すると、ストレージ装置200とストレージ装置300との間ではキャッシュのデータが等価にならない。このため、フェイルオーバの際に、ストレージ装置200とストレージ装置300との間でキャッシュの等価性を保ちつつ、ホスト装置400からの要求に応じたアクセス制御を短時間で再開することが、このストレージシステムでの1つの課題となる。
Incidentally, as described above, when a failure occurs in the
本実施の形態では、同期コピー先のストレージ装置200において、コピー元からのライトデータをキャッシュ240に書き込むとともに、そのライトデータを示すライト制御情報を管理情報記憶部に記憶しておく。また、バッファセットの切り替えおよび解放の処理をストレージ装置100,200,300で同期させ、ストレージ装置200が切り替え前、切り替え後かつ未解放のそれぞれのバッファセットに対応するライト制御情報を識別できるようにする。
In the present embodiment, in the synchronous copy
そして、ストレージ装置100に障害が発生したとき、ストレージ装置200は、未解放のバッファセットに対応するライト制御情報に基づいて、そのライト制御情報に対応するライトデータをキャッシュから読み出し、ストレージ装置300に転送する。ストレージ装置300は、転送されたライトデータをキャッシュに書き込む。これにより、ストレージ装置200とストレージ装置300との間でキャッシュのデータを等価にする。その際に、ストレージ装置100からストレージ装置300への転送が完了していない可能性のあるライトデータだけが、ストレージ装置200からストレージ装置300に転送されるので、データが等価になるまでの時間が短縮される。
When a failure occurs in the
また、ストレージ装置200は、上記のようなキャッシュからストレージ装置300へのデータ転送をバックグラウンドで実行しながら、ホスト装置400からの要求に応じた論理ボリュームへのアクセス制御をストレージ装置100から引き継ぐ。これにより、ホスト装置400からの要求に応じたアクセス制御を短時間で再開する。
Further, the
図6は、各CMの管理情報記憶部に記憶される情報を示す図である。
CM110の管理情報記憶部160には、セッション管理テーブル161、バッファセット管理テーブル162、バッファ管理テーブル163、切り替え状態情報164、格納バッファセット情報165、切り替え待ちキュー166、格納完了待ちキュー167およびコピービットマップ168が記憶される。なお、図示しないが、CM110aの管理情報記憶部にも同様の情報が記憶される。
FIG. 6 is a diagram illustrating information stored in the management information storage unit of each CM.
The management
また、CM210の管理情報記憶部260には、セッション管理テーブル261、バッファセット管理テーブル262、バッファ管理テーブル263、切り替え状態情報264、格納バッファセット情報265、切り替え待ちキュー266、格納完了待ちキュー267およびコピービットマップ268が記憶される。なお、図示しないが、CM210aの管理情報記憶部にも同様の情報が記憶される。
The management
さらに、CM310の管理情報記憶部360には、セッション管理テーブル361、バッファセット管理テーブル362およびバッファ管理テーブル363が記憶される。なお、図示しないが、CM310aの管理情報記憶部にも同様の情報が記憶される。
Further, the management
セッション管理テーブル161,261,361には、ストレージ装置間で設定されるコピーセッションに関する設定情報が登録される。本実施の形態では、ストレージ装置100とストレージ装置200との間では、同期コピーセッションが設定される。また、ストレージ装置100とストレージ装置300との間では、非同期コピーセッションが設定される。さらに、ストレージ装置200とストレージ装置300との間では、非同期コピーセッションが設定される。
In the session management tables 161, 261, and 361, setting information related to a copy session set between storage apparatuses is registered. In the present embodiment, a synchronous copy session is set between the
セッション管理テーブル161,261,361には、例えば、各コピーセッションにおける同期コピー、非同期コピーの種別、コピー元装置およびコピー先装置を示す情報、セッションステータスが登録される。セッションステータスは、コピーセッションの状態を示す情報が登録される。 In the session management tables 161, 261, and 361, for example, synchronous copy and asynchronous copy types in each copy session, information indicating a copy source device and a copy destination device, and a session status are registered. In the session status, information indicating the status of the copy session is registered.
ストレージ装置100が正常に運用されている状態では、CM110とCM210との間の同期コピーセッションと、CM110とCM310との間の非同期コピーセッションの各セッションステータスが「アクティブ」となる。この状態では、同期コピーと、書き込みの順序性が保証された非同期コピーとが正常に実行されている。また、CM210とCM310との間の非同期コピーセッションのセッションステータスは、起動していないことを示す「スタンバイ」となる。
In a state where the
フェイルオーバが発生すると、CM210とCM310との間の非同期コピーセッションのセッションステータスが、まず「コピーイング」に変更される。この状態では、CM210は、未解放のバッファセットに対応するライト制御情報に基づいて、そのライト制御情報に対応するコピー箇所をコピービットマップ268に記録する。そして、CM210は、コピービットマップ268に記録されたコピー箇所に対応するデータをキャッシュ240から読み出し、CM310に送信する。これにより、ボリュームのデータのうち、フェイルオーバの前にCM110からCM310に対して転送が済んでいなかった差分データがCM310に転送される。そして、コピービットマップ268に記録されたすべてのコピー箇所についてのデータ転送が完了すると、セッションステータスは「アクティブ」に変更される。
When a failover occurs, the session status of the asynchronous copy session between the
なお、セッションステータスが「コピーイング」の状態でホスト装置400からのライト要求を受信した場合、次のような処理が行われる。CM210は、ライトデータをキャッシュ240に書き込むとともに、ライト要求に対応するコピー箇所をコピービットマップ268に記録する。このコピー箇所はCM310への転送が済んでいないデータの位置として取り扱われ、上記のようなコピービットマップ268に基づく差分データの転送処理により、このコピー箇所に対応するデータがCM310に送信される。コピービットマップ268を用いることにより、CM210は、ライト要求を受信してライトデータをキャッシュ240に書き込む処理と、差分データをCM310に転送する処理とを並列に実行することができる。その結果、ストレージ装置100が停止してからホスト装置400からの要求に応じた書き込み制御処理が再開されるまでの時間を短縮できる。
When a write request is received from the
そして、差分データの転送が完了し、セッションステータスが「アクティブ」になると、CM210とCM310との間で書き込みの順序性が保証された非同期コピーが開始される。すなわち、CM210は、CM110と同等の非同期コピーを再開する。
Then, when the transfer of the difference data is completed and the session status becomes “active”, the asynchronous copy in which the order of writing is guaranteed between the
バッファセット管理テーブル162,262,362には、非同期コピーセッションにおいて利用されるバッファセットを示す情報が登録される。バッファ管理テーブル163,263には、バッファセット内の各分割領域に格納するライトデータを示すライト制御情報が登録される。バッファ管理テーブル363には、バッファセット内の各分割領域に格納されたライトデータを示すライト制御情報が登録される。 Information indicating the buffer set used in the asynchronous copy session is registered in the buffer set management tables 162, 262, and 362. In the buffer management tables 163 and 263, write control information indicating write data to be stored in each divided area in the buffer set is registered. In the buffer management table 363, write control information indicating the write data stored in each divided area in the buffer set is registered.
ここで、図7は、バッファセット管理テーブルについて説明するための図である。
CM110のバッファ150には、CM110がアクティブ状態のとき、CM110からCM310に転送されるライトデータが一時的に格納される。CM210のバッファ250には、CM210がアクティブ状態のとき、CM210からCM310に転送されるライトデータが一時的に格納される。CM310のバッファ350には、CM110またはCM210から転送されたライトデータが一時的に格納される。バッファ150,250,350は、それぞれ同数の分割領域に分割されている。なお、図7において各分割領域に記載された数字は、分割領域のIDを示す。
Here, FIG. 7 is a diagram for explaining the buffer set management table.
The
CM110のバッファセット管理テーブル162には、非同期コピーセッションの処理において利用されるバッファセットを示す情報が登録される。バッファセットを示す情報は、コピー元の分割領域のIDとコピー先の分割領域のIDを含む。例えば図7では、コピー元が分割領域(0000)、コピー先が分割領域(2000)の組み合わせと、コピー元が分割領域(0100)、コピー先が分割領域(2100)の組み合わせとが、同一世代のバッファセットとして登録されている。
In the buffer set management table 162 of the
CM210のバッファセット管理テーブル262には、非同期コピーセッションの処理において利用されるバッファセットを示す情報が登録される。例えば図7では、コピー元が分割領域(1000)、コピー先が分割領域(2000)の組み合わせと、コピー元が分割領域(1100)、コピー先が分割領域(2100)の組み合わせとが、同一世代のバッファセットとして登録されている。
In the buffer set management table 262 of the
バッファセット管理テーブル162とバッファセット管理テーブル262との間では、コピー先として同じIDの分割領域が登録されたバッファセットが登録されており、このようなバッファセットが同一世代のバッファセットとして利用される。このような情報登録方法によれば、CM110からCM210に対してコピー先の分割領域のIDを送信することで、世代を通知できる。これにより、CM110とCM210との間で世代(バッファセット)の切り替えや解放の処理を同期させることができる。
Between the buffer set management table 162 and the buffer set management table 262, a buffer set in which a divided area having the same ID is registered as a copy destination is registered, and such a buffer set is used as a buffer set of the same generation. The According to such an information registration method, the generation can be notified by transmitting the ID of the copy-destination divided area from the
なお、図示しないが、CM110aの管理情報記憶部にも、バッファセット管理テーブル162と同一の情報が登録されたバッファセット管理テーブルが保持される。また、CM210aの管理情報記憶部にも、バッファセット管理テーブル262と同一の情報が登録されたバッファセット管理テーブルが保持される。
Although not shown, the
図8は、バッファ管理テーブルの構成例を示す図である。図8では、CM110のバッファ管理テーブル163を例示している。
バッファ管理テーブル163は、制御情報領域163a〜163dに区分されている。制御情報領域163a,163b,163c,163dは、バッファ150の分割領域(0000),(0001),(0002),(0003)にそれぞれ対応付けられている。制御情報領域163a〜163dのそれぞれには、対応する分割領域に格納するライトデータを示すライト制御情報163−1が、格納状態情報163−2を付加した状態で登録される。
FIG. 8 is a diagram illustrating a configuration example of the buffer management table. FIG. 8 illustrates the buffer management table 163 of the
The buffer management table 163 is divided into
ライト制御情報163−1は、対応するライトデータをキャッシュ140からバッファ150内の対応する分割領域に格納するために参照される。格納状態情報163−2は、ライト制御情報163−1に対応するライトデータがキャッシュ140からバッファ150に対して格納済みか否かを示すフラグ情報である。ライト制御情報163−1が制御情報領域に登録されたとき、「未格納」を示す格納状態情報163−2がライト制御情報163−1に付加される。
The write control information 163-1 is referred to store the corresponding write data from the
CM210のバッファ管理テーブル263も、CM110のバッファ管理テーブル163と同様に、バッファ250の各分割領域に対応する制御情報領域に区分されている。バッファ管理テーブル263の制御情報領域には、バッファ管理テーブル163における同じ世代の制御情報領域と同じライト制御情報が、格納状態情報を付加した状態で登録される。CM110がアクティブ状態、CM210がスタンバイ状態のとき、制御情報領域に登録されたライト制御情報は、フェイルオーバした場合に、対応するライトデータをキャッシュ240からCM310に転送するために参照される。一方、CM210がアクティブ状態に遷移した後に制御情報領域に登録されたライト制御情報は、対応するライトデータをキャッシュ240からバッファ150内の対応する分割領域に格納するために参照される。
Similarly to the buffer management table 163 of the
CM310のバッファ管理テーブル363も、CM110のバッファ管理テーブル163と同様に、バッファ350の各分割領域に対応する制御情報領域に区分されている。バッファ管理テーブル363の制御情報領域には、対応する分割領域に格納されたライトデータを示すライト制御情報が登録される。ライト制御情報は、対応するライトデータをバッファ350内の対応する分割領域からキャッシュ340に格納する(展開する)ために参照される。
Similarly to the buffer management table 163 of the
以下、図6に戻って説明を続ける。
切り替え状態情報164,264は、バッファセットの切り替え処理が実行中か否かを示す情報である。切り替え状態情報164は、CM110がアクティブ状態の場合に利用され、切り替え状態情報264は、CM210がアクティブ状態の場合に利用される。
Hereinafter, returning to FIG.
The switching
格納バッファセット情報165,265は、現在格納予約対象となっているバッファセットを示す情報である。「格納予約」とは、バッファの分割領域に格納すべきライトデータを示すライト制御情報を、その分割領域に対応する、バッファ管理テーブルの制御情報領域に登録することを指す。格納バッファセット情報165,265が示すバッファセットは、それぞれバッファ150,250に含まれる分割領域に対応付けられている。なお、CM110のバッファ150を例に示すと、本実施の形態では、格納予約対象となるバッファセットは、分割領域(0000),(0001),(0002),(0003),(0000),・・・の順で切り替えられる。
The storage buffer set
切り替え待ちキュー166,266は、切り替え処理の実行中にホスト装置400からライト要求を受信した場合に、切り替え処理が完了するまでの間、そのライト要求を示すライト制御情報を一時的に保持するためのFIFO(First In First Out)方式のキューである。切り替え待ちキュー166は、CM110がアクティブ状態の場合に利用され、切り替え待ちキュー266は、CM210がアクティブ状態の場合に利用される。
The switching wait
格納完了待ちキュー167,267は、ライト制御情報を一時的に保持するキューである。格納完了待ちキュー167,267には、ホスト装置400からライト要求を受信したとき、書き込み先領域と重複する領域に対して以前の世代でライトが要求され、かつバッファへの格納が済んでないライトデータがある場合に、格納が完了するまで受信したライト要求を示すライト制御情報を一時的に保持する。格納完了待ちキュー167は、CM110がアクティブ状態の場合に利用され、格納完了待ちキュー267は、CM210がアクティブ状態の場合に利用される。
The storage
コピービットマップ268は、フェイルオーバしてCM210がアクティブ状態に遷移したときに、未解放のバッファセットのライトデータをキャッシュ240からCM310に転送するために利用される。コピービットマップ268は、論理ボリューム内のコピー処理単位のブロックごとのビットを有する。ビットに対応するブロックについて転送すべきライトデータがある場合、そのビットに「1」が設定される。このコピービットマップ268を用いることで、フェイルオーバの際にキャッシュ240,340のデータを等価にする場合に、差分データのみをキャッシュ240からCM310に転送できるようになる。
The
コピービットマップ168は、フェイルバック後にCM110の動作を再開させる際に、コピービットマップ268と同様の用途で使用される。
次に、図9〜図12を用いて、ストレージ装置100が正常に動作している状態(アクティブ状態)でのコピー処理の概要を説明する。
The
Next, an overview of copy processing in a state where the
まず、図9は、ホスト装置からのライト要求に応じたライトI/O(Input/Output)処理例を示す図である。
図9に示すように、初期状態では、ホスト装置400はライト要求をCM110に送信する。また、バッファ150の分割領域(0000)およびバッファ250の分割領域(1000)が、格納対象に設定されているとする。すなわち、分割領域(0000),(1000)が、現世代のバッファセットに属している。
First, FIG. 9 is a diagram illustrating an example of a write I / O (Input / Output) process in response to a write request from the host device.
As shown in FIG. 9, in the initial state, the
CM110は、ホスト装置400からライト要求およびライトデータを受信すると(ステップS11a)、ライトデータをキャッシュ140に格納するとともに、ライトデータをCM210に送信する(ステップS11b)。送信されたライトデータは、CM210のキャッシュ240に格納される。
When the
また、CM110は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル163の制御情報領域のうち、分割領域(0000)に対応する制御情報領域に登録する(ステップS12a)。このとき、ライト制御情報には「未格納」を示す格納状態情報が付加される。CM220は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル263の制御情報領域のうち、分割領域(1000)に対応する制御情報領域に登録する(ステップS12b)。
Further, the
以上の処理が完了すると、CM110は、ホスト装置400にライト完了通知を送信する。このようにしてCM110とCM210との間での同期コピーが実現され、キャッシュ140,240にそれぞれ書き込まれたデータは常に等価となる。これとともに、CM110,210において、バッファ管理テーブルへのライト制御情報の登録、すなわちバッファ格納のための格納予約が行われる。
When the above processing is completed, the
CM110では、キャッシュ140へのライトデータの書き込みとは非同期のタイミングで、次のような処理が実行される。CM110は、非同期コピーセッションの処理として、ステップS12aで登録したライト制御情報に基づいて、キャッシュ140に書き込まれたライトデータをバッファ150の分割領域(0000)に格納(コピー)する(ステップS13)。格納が完了すると、CM110は、ライト制御情報に付加された格納状態情報を「格納済み」に更新する。このように、バッファ150への格納処理がキャッシュ140への書き込み処理とは非同期で実行されることで、ホスト装置400からのライト要求に対する応答時間を短縮できる。
In the
一方、CM210では、バッファ250へのライトデータの格納は行われない。すなわち、CM210がスタンバイの状態では、バッファ250は使用されず、バッファ250の領域をCM210のRAMに確保しておく必要がない。
On the other hand, the
なお、図示しないが、ホスト装置400はCM110aに対してもライト要求を送信できる。このライト要求に応じて、CM110a,210aは、それぞれCM110,210と同様の処理を実行する。
Although not shown, the
図10は、バッファセットの切り替え処理例を示す図である。
図9の処理が継続されると、バッファ150の分割領域(0000)に格納すべきライトデータが増加していく。そして、CM110は、ホスト装置400からデータのライト要求を受信したとき(ステップS21)に、分割領域(0000)に空き領域がなく、そのデータを格納できないと判定したとする。なお、この判定は、バッファ管理テーブル163の分割領域(0000)に対応する制御情報領域に登録されたライト制御情報に基づいて行われる。
FIG. 10 is a diagram illustrating an example of buffer set switching processing.
When the process of FIG. 9 is continued, the write data to be stored in the divided area (0000) of the
このとき、CM110は、CM210に対してバッファセットの切り替えを通知する(ステップS22)。これにより、これ以後にホスト装置400から受信したライトデータの格納先となる分割領域が、CM110とCM210とで同期して切り替えられる。換言すると、バッファセットの世代がCM110とCM210とで同期して切り替えられる。
At this time, the
切り替え通知の後、ステップS21で受信されたライトデータは、キャッシュ140に格納されるとともに、CM210に送信されてキャッシュ240に格納される(ステップS23)。また、切り替え前とは異なり、CM110は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル163の制御情報領域のうち、分割領域(0001)に対応する制御情報領域に登録する(ステップS24a)。このとき、ライト制御情報には「未格納」を示す格納状態情報が付加される。また、CM220は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル263の制御情報領域のうち、分割領域(1001)に対応する制御情報領域に登録する(ステップS24b)。以上の処理が完了すると、CM110は、ホスト装置400にライト完了通知を送信する。
After the switching notification, the write data received in step S21 is stored in the
また、CM110は、上記とは非同期のタイミングで、ステップS24aで登録したライト制御情報に基づいて、キャッシュ140に書き込まれたライトデータをバッファ150の分割領域(0001)に格納(コピー)する(ステップS25)。格納が完了すると、CM110は、ライト制御情報に付加された格納状態情報を「格納済み」に更新する。
Further, the
このようにして、ライトデータの格納予約先となる分割領域が切り替えられる。また、バッファセットの切り替え通知はCM110a,210aにも通知され、CM110a,210aでもデータの格納予約先となる分割領域が切り替えられる。これにより、データの格納予約先のバッファセットの世代が、ストレージ装置100,200との間で同期して切り替えられる。
In this way, the divided area that is the storage reservation destination of the write data is switched. Further, the notification of switching of the buffer set is also notified to the
なお、図10の処理において、CM110がホスト装置400からのライトデータをキャッシュ140に格納する際に、そのライトデータと書き込み先が重複する、以前の世代における古いライトデータについて、バッファ150への格納が済んでない場合がある。この場合、CM110は、新たなライトデータのキャッシュ140への格納を保留して、そのライトデータを示すライト制御情報を格納完了待ちキュー167に登録する。これにより、新たなライトデータによるライトI/O処理は待ち状態となる。その後、古いライトデータのバッファ150への格納が完了すると、CM110は、格納完了待ちキュー167からライト制御情報を読み出して、そのライト制御情報に基づいてライトデータをキャッシュ140に格納し、ライト制御情報をバッファ管理テーブル163の制御情報領域に登録する。このような処理により、世代間でライトデータの書き込みの順序性を正確に保つことができる。
In the processing of FIG. 10, when the
一方、前世代のバッファセットについては、次の図11に示す処理が実行される。
図11は、ライトデータの転送およびバッファセットの展開処理例を示す図である。
CM110は、切り替えの発生前までにキャッシュ140に書き込まれたすべてのデータがバッファ150の分割領域(0000)に格納されると、分割領域(0000)内のデータをCM310に転送する(ステップS31)。すなわち、CM110は、分割領域単位でデータをまとめてCM310に転送する。このとき、CM110は、バッファ350における格納先の分割領域のID「2000」を、ライトデータとともに転送する。CM310は、受信したライトデータをバッファ350の分割領域(2000)に一時的に格納するとともに、そのライトデータを示すライト制御情報を、バッファ管理テーブル363における分割領域(2000)に対応する制御情報領域に登録する。これらの処理が完了すると、CM310は、分割領域(2000)に格納されたライトデータをキャッシュ340に書き込む(ステップS32)。すなわち、バッファ350内のライトデータがキャッシュ340に展開される。
On the other hand, for the previous generation buffer set, the following processing shown in FIG. 11 is executed.
FIG. 11 is a diagram illustrating an example of a write data transfer and buffer set expansion process.
When all the data written in the
なお、実際には、CM110とCM310との間だけでなく、CM110aとCM310aとの間でも、上記の処理が実行される。すなわち、CM110aのバッファからライトデータが転送され、CM310aのバッファに一旦格納された後、CM310aのキャッシュに展開される。
Actually, the above processing is executed not only between the
また、上記の転送および展開処理と並行して、CM110によるライトI/O処理が継続される。すなわち、CM110は、ホスト装置400からライト要求およびライトデータを受信すると(ステップS33a)、ライトデータをキャッシュ140に格納するとともに、ライトデータをCM210に送信する(ステップS33b)。送信されたライトデータは、CM210のキャッシュ240に格納される。
Further, the write I / O processing by the
また、CM110は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル163の制御情報領域のうち、分割領域(0001)に対応する制御情報領域に登録する(ステップS34a)。一方、CM210は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル263の制御情報領域のうち、分割領域(1001)に対応する制御情報領域に登録する(ステップS34b)。
Further, the
以上の処理が完了すると、CM110は、ホスト装置400にライト完了通知を送信する。また、CM110は、その後の非同期のタイミングで、制御情報領域に登録したライト制御情報に基づいて、対応するライトデータをバッファ150の分割領域(0001)に格納する(ステップS35)。
When the above processing is completed, the
図12は、バッファセットの解放処理例を示す図である。分割領域(2000)に格納された全ライトデータについて図11のステップS32に示した展開処理が完了すると、図12に示すような処理が実行される。 FIG. 12 is a diagram illustrating an example of buffer set release processing. When the development process shown in step S32 of FIG. 11 is completed for all the write data stored in the divided area (2000), the process shown in FIG. 12 is executed.
CM310は、バッファセットの解放をCM110に通知する(ステップS41a)。通知を受けたCM310は、バッファセットの解放をCM210に通知する(ステップS41b)。CM310は、分割領域(2000)を解放し(ステップS42a)、解放通知を受けたCM110,210も、それぞれ分割領域(0000),(1000)を解放する(ステップS42b,42c)。分割領域の解放とは、分割領域を未使用の空き領域に戻すことである。上記処理により、同じ世代のバッファセットに属する分割領域(0000),(1000),(2000)が同期して解放される。
The
なお、実際の処理では、CM310だけでなく、CM310aでもキャッシュへの展開が完了した場合に、バッファセットの解放が通知される。解放通知は、CM310からCM310a、CM110からCM110a、CM210からCM210aにそれぞれ送信され、これによってCM310a,110a,210aでも同じ世代のバッファセットに属する分割領域が解放される。
In actual processing, not only the
以上の図9〜図12に示した処理により、CM110とCM210との間で同期コピーが実行されるとともに、CM110とCM310との間で非同期コピーが実行される。また、CM110,210,310の間でバッファセットの解放が同期して行われる。そして、CM210では、バッファセットが解放されるまでの間、そのバッファセットの世代においてキャッシュ240に書き込まれたライトデータを示すライト制御情報が、バッファ管理テーブル263に保持される。このようにしてバッファ管理テーブル263に保持されたライト制御情報は、CM110からCM310へのデータ転送中にフェイルオーバが発生した場合に、CM210とCM310との間でキャッシュのデータの整合をとるために使用される。
9 to 12, the synchronous copy is executed between the
図13は、フェイルオーバが発生した場合の処理例を示す図である。図13では、図11のようにバッファ150の分割領域(0000)からバッファ350の分割領域(2000)へデータが転送されている途中で、ストレージ装置100の動作が停止した場合の処理例を示す。
FIG. 13 is a diagram illustrating a processing example when a failover occurs. FIG. 13 shows a processing example when the operation of the
ストレージ装置100の動作が停止すると、ホスト装置400が備えるアクセス先制御機能により、ホスト装置400からの書き込みの要求先は、ストレージ装置100からストレージ装置200へ自動的に変更される。このとき、ホスト装置400が認識する論理的な書き込み先ボリュームが変更されることなく、物理的な書き込み先が変更される。
When the operation of the
また、ストレージ装置200は、ストレージ装置300との間に設定されていた非同期コピーセッションのセッションステータスを「コピーイング」に変更し、ホスト装置400からのライト要求の受信を開始する。このとき、ライト要求に応じた処理と並行して、前世代のバッファセット、すなわち分割領域(1000),(2000)に関する次のような処理が、バックグラウンドで実行される。
In addition, the
ストレージ装置100の動作が停止した時点では、バッファ管理テーブル263における分割領域(1000)に対応する制御情報領域に、ライト制御情報が登録されている。これらのライト制御情報に対応するライトデータは、CM110からCM310に対する転送が完了していない可能性があるデータである。そこで、CM210は、これらのライト制御情報に対応するライトデータをキャッシュ240から読み出して、CM310に転送する(ステップS51)。
When the operation of the
CM310は、転送されたライトデータをキャッシュ340に格納する。キャッシュ340への格納が完了すると、バッファセットの解放が通知され、分割領域(1000),(2000)が未使用の空き領域に戻される。
The
このような処理により、フェイルオーバの前に分割領域(0000)から分割領域(2000)へのデータ転送が未完了であっても、転送が未完了の可能性があるライトデータを示すライト制御情報がCM210のバッファ管理テーブル263に保持されている。このため、CM210は、保持されたライト制御情報に基づいて、転送が未完了の可能性があるライトデータをキャッシュ240から読み出し、CM310に転送することができる。これによって、キャッシュ240,340の各データを等価にすることができる。
By such processing, even if data transfer from the divided area (0000) to the divided area (2000) is not completed before failover, the write control information indicating the write data that may not be transferred is obtained. It is held in the buffer management table 263 of the
また、CM210は、保持されたライト制御情報に基づいて、キャッシュ240に格納されているライトデータのうち、CM310に転送されていない可能性のある差分データだけを抽出して、CM310に転送することができる。これにより、キャッシュ240,340の各データを等価にするためにCM210からCM310に転送されるデータ量を抑制でき、キャッシュ240,340の各データが等価になるまでの時間を短縮できる。
Also, the
一方、このような処理と並行して、CM210は、ホスト装置400からのライト要求に応じた処理を実行する。CM210は、ホスト装置400からライト要求を受け付けると、ホスト装置400から受信したライトデータをキャッシュ240に書き込み、ホスト装置400に書き込み完了通知を送信する(ステップS52)。また、CM210はその後、キャッシュ240に書き込んだライトデータをCM310に転送する(ステップS53)。CM310は、転送されたライトデータをキャッシュ340に格納する。
On the other hand, in parallel with such processing, the
このように、フェイルオーバ時点でCM110からCM310への転送が未完了の可能性があるライトデータのCM310への転送処理と、ホスト装置400からのライト要求に応じた処理とが、並列に実行される。これにより、ストレージ装置100の動作が停止したとき、CM210は、ホスト装置400からのライト要求に応じたアクセス制御を短時間で引き継ぐことができるとともに、そのバックグラウンドで、前世代のバッファセットに関する残りの処理を実行できる。
As described above, the transfer processing of the write data that may not be completely transferred from the
なお、実際の処理では、上記の処理はコピービットマップ268を用いて実行される。フェイルオーバが発生すると、CM210は、コピービットマップ268のビットのうち、バッファ管理テーブル263の制御情報領域に登録されているライト制御情報に対応するビットを「1」にする。これにより、キャッシュ240からCM310にコピーすべきライトデータの位置がコピービットマップ268に記録される。CM210は、キャッシュ240のライトデータのうち、コピービットマップ268においてビット値が「1」とされたビットが示すライトデータを、キャッシュ240から読み出してCM310に転送する(ステップS51の処理に対応)。CM210は、コピービットマップ268の全ビットが「0」になるまで、コピービットマップ268に基づくデータ転送を実行する。
In the actual process, the above process is executed using the
一方、CM210は、ホスト装置400からライト要求を受信し、ライトデータをキャッシュ240に書き込んだとき、コピービットマップ268のビットのうち、ライトデータの書き込み先に対応するビットも「1」にする。上記のように、CM210は、コピービットマップ268の全ビットが「0」になるまでコピービットマップ268に基づくデータ転送を実行する。このため、ライト要求に応じてキャッシュ240に書き込まれたライトデータも、コピービットマップ268に基づいてキャッシュ240からCM310に転送される。
On the other hand, when the
このように、実際には、コピービットマップ268に基づくCM310へのデータ転送処理と、ホスト装置400からのライト要求に応じたライトデータの書き込みおよびコピービットマップ268の更新の処理とが、並列に実行される。これにより、ストレージ装置100の動作が停止したとき、CM210は、ホスト装置400からのライト要求に応じたアクセス制御を時間を空けずに引き継ぐことができる。
As described above, actually, the data transfer process to the
そして、コピービットマップ268の全ビットが「0」になると、CM210は、CM310との間の非同期コピーセッションのセッションステータスを「アクティブ」にする。これにより、CM110と同等の非同期コピーがCM210で再開される。すなわち、CM210は、ホスト装置400からのライト要求を受け付けつつ、書き込みの順序性が保証された非同期コピーを実行する。
When all the bits of the
図13の例では、CM210は、セッションステータスが「アクティブ」になった後にライト要求を受信すると、ライトデータをキャッシュ240に書き込む。これとともに、CM210は、ライトデータの書き込み先を示すライト制御情報を、バッファ管理テーブル263の制御情報領域のうち、分割領域(1001)に対応する制御情報領域に登録する。以上の処理が完了すると、CM210は、ホスト装置400にライト完了通知を送信する。
In the example of FIG. 13, when the
また、その後の非同期のタイミングにおいて、CM210は、制御情報領域に登録したライト制御情報に基づいて、キャッシュ240に書き込まれたライトデータをバッファ250の分割領域(1001)に格納(コピー)する。そして、バッファセットの切り替えが行われた後、CM210は、分割領域(1001)に格納されたライトデータをCM310に転送する。転送されたライトデータは、バッファ350の分割領域(2001)を介してキャッシュ340に格納される。
Further, at the subsequent asynchronous timing, the
このような処理により、セッションステータスが「アクティブ」のとき、CM210は、フェイルオーバ前のCM110と同等の非同期コピーを実行できる。
なお、CM210aとCM310aとの間でも、上記と同様の処理が実行される。
By such processing, when the session status is “active”, the
Note that the same processing as described above is executed between the CM 210a and the
ところで、特許文献1に記載された処理によれば、CM110がアクティブ状態である間に、CM210とCM310との通信が発生する。例えば、特許文献1では、CM110でバッファ150に対してライトデータが格納される際(例えば、図9のステップS13に対応)に、CM210でもバッファ250に対してライトデータが格納される。また、CM110から転送されたライトデータがCM310のバッファ350に格納されたとき、CM210からCM310に対してライト制御情報が送信される。CM310では、受信したライト制御情報を用いて、バッファ350に格納されたライトデータの照合が行われる。この照合によりCM110,210,310の同世代のバッファセットのデータ一致が確認されると、ライトデータがCM310のキャッシュ340に展開され、バッファセットの解放が通知される。この解放通知は、CM310からCM110に対してだけでなく、CM310からCM210へも直接送信される。
By the way, according to the process described in Patent Document 1, communication between the
これに対して、図9〜図12に示したように、本実施の形態では、CM110がアクティブ状態である間、CM210とCM310との間の通信は一切行われない。このため、CM110がアクティブの状態におけるCM間の通信量を削減できる。特に、CM310はCM110,210に対して遠隔地に設定される場合が多く、CM110,210とCM310との間の通信路における通信料金が割高になる場合が多い。本実施の形態では、CM210とCM310との間の通信が一切行われなくなることで、必要な通信料金を削減できる。
On the other hand, as shown in FIGS. 9 to 12, in the present embodiment, no communication is performed between the
また、本実施の形態では、CM310においてバッファ350に格納されたライトデータをキャッシュ340に展開する際に、CM210からの送信情報を待つ必要がなく、その送信情報に基づく照合処理も行われない。そのため、バッファ150からバッファ350へのデータ転送を開始してから、キャッシュ340へのデータ展開を行い、バッファセットが解放されるまでの時間を短縮できる。このような転送・展開・解放の処理時間の短縮により、次のような効果も得られる。
Further, in the present embodiment, when the write data stored in the
図10のようにバッファセットの切り替えが行われる際に、バッファ150に空き分割領域がない場合には、分割領域(0001)が解放されるまで待ち状態となり、切り替え処理は一時停止される。上記のように分割領域(0001)が解放されるまでの時間が短縮されることで、切り替え処理が再開されるまでの時間も短縮される。その結果、切り替えにかかる全体の処理時間を短縮できる。
When the buffer set is switched as shown in FIG. 10, if there is no empty divided area in the
また、図10のケースのように、ホスト装置400からのライト要求を受信したときに、格納予約対象の分割領域(0000)の空きがないことから切り替えが必要となった場合には、ライト要求に対応するライト制御情報が切り替え待ちキュー166に登録される。そして、切り替えが完了するまでライト要求に応じたライトI/O処理が一時停止される。この場合、上記のように、切り替え処理時間が短縮されることで、ライトI/O処理が再開されるまでの時間も短縮される。その結果、ホスト装置400からのライト要求に対する応答時間を短縮できる。
Also, as shown in the case of FIG. 10, when a write request is received from the
次に、ストレージシステムにおける処理手順をシーケンス図およびフローチャートを用いて説明する。
まず、図14〜図17を用いて、ストレージ装置100,200,300が正常に動作しており、ストレージ装置100がアクティブ状態、ストレージ装置200がスタンバイ状態である場合の処理を説明する。
Next, a processing procedure in the storage system will be described with reference to a sequence diagram and a flowchart.
First, processing when the
図14は、ライトI/O処理の手順を示すシーケンス図の例である。
CM110の制御部130は、ホスト装置400からライト要求およびライトデータを受信する(ステップS101)。制御部130は、切り替え状態情報164を参照して、現在バッファセットの切り替え処理を実行中かを判定する(ステップS102)。ステップS102で実行中であると判定された場合、制御部130は、ライト要求を示すライト制御情報を切り替え待ちキュー166に登録し(ステップS103)、ライトI/O処理を終了する。このとき、ライトデータはRAM112に一時的に保持される。後述するように、切り替え処理が完了すると、切り替え待ちキュー166からライト制御情報が取り出される。そして、このライト制御情報および対応するライトデータについて、ステップS102以降の処理が実行される(図15のステップS130に対応)。
FIG. 14 is an example of a sequence diagram showing the procedure of the write I / O process.
The
一方、ステップS102で切り替え処理が実行中でないと判定された場合、制御部130は、バッファ150における格納先の分割領域(ここでは例として、分割領域(0001)とする)に、受信したライトデータを格納できるだけの空き領域があるかを判定する(ステップS104)。この判定では、制御部130は、バッファ管理テーブル163における分割領域(0001)に対応する制御情報領域に登録されたライト制御情報に基づいて、対応するライトデータの合計サイズを算出する。制御部130は、算出された合計サイズに受信したライトデータのサイズを加算した値が、分割領域のサイズより大きい場合に、空き領域がないと判定する。
On the other hand, if it is determined in step S102 that the switching process is not being executed, the
ステップS104で空き領域がないと判定された場合、制御部130は、ライト要求を示すライト制御情報を切り替え待ちキュー166に登録し、バッファセットの切り替え処理を起動する(ステップS105)。これにより、図15に示す切り替え処理が開始される。なお、ライトデータはRAM112に一時的に保持される。また、上記と同様に、切り替え処理が完了すると、切り替え待ちキュー166からライト制御情報が取り出され、このライト制御情報および対応するライトデータについて、ステップS102以降の処理が実行される(図15のステップS130に対応)。
When it is determined in step S104 that there is no free space, the
一方、ステップS104で空き領域があると判定された場合、制御部130は、ライトデータの書き込み先領域と重複する領域に対して以前の世代でライトが要求され、かつバッファ150に対して未格納のライトデータがあるかを判定する(ステップS106)。この判定では、制御部130は、バッファ管理テーブル163の制御情報領域のうち、現在より前の世代であり、かつ解放されていないバッファセットに対応する制御情報領域を参照する。制御部130は、参照した制御情報領域に、書き込み先領域がステップS101で受信した新たなライトデータの書き込み先と重複し、かつ、格納状態情報が「未格納」を示すライト制御情報が存在する場合に、ステップS106の条件を満たすと判定する。
On the other hand, if it is determined in step S104 that there is a free area, the
この条件を満たす場合、新たなライトデータをキャッシュ140に格納してしまうと、ステップS106の条件を満たす古いライトデータの少なくとも一部が上書きされてしまう。このため、古いライトデータを以前の世代に属する分割領域に正しく残せなくなり、書き込みの順序性を維持できなくなる。そこで、ステップS106の条件を満たす場合、制御部130は、ライト要求を示すライト制御情報を格納完了待ちキュー167に登録し(ステップS107)、ライトI/O処理を終了する。このとき、新たなライトデータはRAM112に一時的に保持される。後述するように、上記の古いライトデータがバッファ150の分割領域に格納されると、格納完了待ちキュー167からライト制御情報が取り出される。そして、このライト制御情報および対応するライトデータについて、ステップS102以降の処理が実行される(図16のステップS137に対応)。
When this condition is satisfied, if new write data is stored in the
一方、ステップS106の条件を満たさない場合、制御部130は、同期コピー処理および格納予約処理を実行する。すなわち、制御部130は、受信したライトデータを示すライト制御情報を、バッファ管理テーブル163における分割領域(0001)に対応する制御情報領域に登録する(ステップS108)。また、制御部130は、ライトデータをライト制御情報とともにCM210に送信する(ステップS109)。このとき、例えば、バッファ250における格納先の分割領域(1001)を示す識別情報が、ライトデータに付加されて送信される。あるいは、分割領域の識別情報の代わりに、世代番号やバッファセットの識別番号が付加されてもよい。
On the other hand, when the condition of step S106 is not satisfied, the
CM210の制御部230は、受信したライト制御情報を、バッファ管理テーブル263における分割領域(1001)に対応する制御情報領域に登録するとともに、受信したライトデータをキャッシュ240に書き込む(ステップS110)。これらの処理が完了すると、制御部230は、CM110に完了通知を送信する(ステップS111)。
The
CM110の制御部130は、ライトデータをキャッシュ140に書き込む(ステップS112)。そして、制御部130は、ライト完了通知をホスト装置400に送信して、ライト要求に対する応答を行う(ステップS113)。
The
図15は、バッファセットの切り替え処理の手順を示すシーケンス図の例である。バッファセットの切り替え条件が満たされると、図15の処理が開始される。切り替え条件が満たされる場合とは、図14のステップS104で空き領域がないと判定された場合か、または、直近の切り替え処理が実行されてから一定時間が経過した場合である。なお、図15の処理は、図14の処理と並列に実行される。 FIG. 15 is an example of a sequence diagram illustrating a procedure of buffer set switching processing. When the buffer set switching condition is satisfied, the processing of FIG. 15 is started. The case where the switching condition is satisfied is a case where it is determined in step S104 in FIG. 14 that there is no free space, or a case where a certain time has elapsed since the most recent switching process was executed. The process of FIG. 15 is executed in parallel with the process of FIG.
CM110の制御部130は、切り替え状態情報164を、切り替え処理中を示すように更新する(ステップS121)。そして、制御部130は、バッファ150内の分割領域の空き状態を確認し、次のような判定を行う(ステップS122)。制御部130は、空きの分割領域(解放された分割領域)が1つもない場合、分割領域の解放完了待ち状態となる(ステップS123)。この場合、制御部130は、一定時間後にステップS121の処理を再度実行する。
The
ステップS121において、空きの分割領域がある場合、具体的には、次の世代に対応する分割領域が解放されている場合には、制御部130は、バッファセットを切り替える(ステップS124)。具体的には、制御部130は、格納バッファセット情報165を、次の世代のバッファセットを示すように更新する。また、制御部130は、CM210に対してバッファセットの切り替えを通知する(ステップS125)。
In step S121, if there is an empty divided area, specifically, if a divided area corresponding to the next generation is released, the
CM210の制御部230は、バッファセットを切り替える(ステップS126)。具体的には、制御部230は、格納バッファセット情報265を、次の世代のバッファセットを示すように更新する。そして、制御部230は、完了通知をCM110に送信する(ステップS127)。
The
CM110の制御部130は、切り替え状態情報164を、切り替え処理中でないことを示すように更新する(ステップS128)。そして、制御部130は、切り替え待ちキュー166にライト制御情報が登録されているかを判定する(ステップS129)。ライト制御情報が登録されている場合、制御部130は、そのライト制御情報を切り替え待ちキュー166から取り出し、そのライト制御情報について、図14のステップS102からのライトI/O処理を起動する(ステップS130)。これにより、取り出されたライト制御情報についてのライトI/O処理が再開される。なお、切り替え待ちキュー166にライト制御情報が複数登録されている場合、それらを順番に選択してライトI/O処理を起動する。一方、ステップS129でライト制御情報が登録されていないと判定された場合、切り替え処理は終了される。
The
図16は、バッファ格納処理の手順を示すフローチャートの例である。図15に示した切り替え処理が完了すると、切り替え後のバッファセットについて図16に示すバッファ格納処理が開始される。なお、図16の処理は、図14の処理や、他のバッファセットについての図15の処理と並列に実行される。 FIG. 16 is an example of a flowchart illustrating the procedure of buffer storage processing. When the switching process shown in FIG. 15 is completed, the buffer storage process shown in FIG. 16 is started for the buffer set after the switching. The process of FIG. 16 is executed in parallel with the process of FIG. 14 and the process of FIG. 15 for other buffer sets.
CM110の制御部130は、バッファ管理テーブル163における処理対象のバッファセットに対応する制御情報領域に、ライト制御情報が登録されているかを判定する(ステップS131)。ライト制御情報が登録されていない場合、制御部130は、バッファセットの切り替え処理が実行されたかを判定する(ステップS132)。制御部130は、格納バッファセット情報165が示すバッファセットの世代が、処理対象のバッファセットと一致しない場合に、切り替え処理が実行されたと判定する。この場合、切り替えが行われたバッファセットに対応する制御情報領域に登録されたすべてのライト制御情報を処理済みの状態となるので、バッファ格納処理は完了する。一方、切り替え処理が実行されていない場合、制御部130は、一定時間後にステップS131の処理を実行する。
The
ステップS131でライト制御情報が登録されていた場合、制御部130は、制御情報領域に登録されたライト制御情報のうち最も先に登録されたライト制御情報を選択する(ステップS133)。次に、制御部130は、選択されたライト制御情報が示すライトデータをキャッシュ140から読み出し、バッファ150における処理対象のバッファセットに対応する分割領域に格納(コピー)する(ステップS134)。そして、制御部130は、選択されたライト制御情報に付加された格納状態情報を、格納済みを示すように更新する(ステップS135)。
When the light control information is registered in step S131, the
次に、制御部130は、格納完了待ちキュー167を参照し、書き込み先領域が重複する新たなライトデータを示すライト制御情報が登録されているかを判定する(ステップS136)。この新たなライトデータとは、その書き込み先領域の少なくとも一部が、ステップS133で選択されたライトデータの書き込み先領域と重複するデータである。
Next, the
ステップS136で該当するライト制御情報が登録されている場合、制御部130は、そのライト制御情報を格納完了待ちキュー167から取り出す。そして、制御部130は、取り出したライト制御情報について、図14のステップS102からのライトI/O処理を起動する(ステップS137)。これにより、取り出されたライト制御情報についてのライトI/O処理が再開される。その後、制御部130は、ステップS131の処理を実行する。
If the corresponding write control information is registered in step S136, the
一方、ステップS136で該当するライト制御情報が登録されていない場合、制御部130は、ステップS131の処理を実行する。
図17は、転送・展開・解放処理の手順を示すシーケンス図の例である。図16のステップS132で「Yes」と判定されてバッファ格納処理が完了すると、その処理が完了したバッファセット(すなわち、切り替え済みかつバッファ格納済みのバッファセット)について図17に示す処理が開始される。なお、図17の処理は、図14の処理や、他のバッファセットについての図15、図16の処理と並列に実行される。
On the other hand, when the corresponding write control information is not registered in step S136, the
FIG. 17 is an example of a sequence diagram illustrating a procedure of transfer / development / release processing. When it is determined “Yes” in step S132 of FIG. 16 and the buffer storage process is completed, the process shown in FIG. 17 is started for the buffer set for which the process has been completed (that is, the buffer set that has been switched and the buffer has been stored). . The process of FIG. 17 is executed in parallel with the process of FIG. 14 and the processes of FIGS. 15 and 16 for other buffer sets.
CM110の制御部130は、バッファ150の分割領域(ここでは例として、分割領域(0001)とする)に格納されたすべてのライトデータを、対応するライト制御情報とともにCM310に転送する(ステップS141)。このとき、例えば、バッファ350における格納先の分割領域(2001)を示す識別情報が、ライトデータに付加されて送信される。あるいは、分割領域の識別情報の代わりに、世代番号やバッファセットの識別番号が付加されてもよい。
The
CM310の制御部330は、受信したライトデータをバッファ350の分割領域(2001)に格納するとともに、受信したライト制御情報を、バッファ管理テーブル363における分割領域(2001)に対応する制御情報領域に登録する(ステップS142)。これらの処理が完了すると、制御部330は、分割領域(2001)に格納されたライトデータをキャッシュ340に書き込む(ステップS143)。これにより、ライトデータがキャッシュ340に展開される。
The
制御部330は、バッファセットの解放をCM110に通知する(ステップS144)。CM110の制御部130は、解放通知を受けると、バッファセットの解放をCM210に通知する(ステップS145)。これとともに、制御部130は、処理対象のバッファセットを解放する処理を行う(ステップS146)。具体的には、制御部130は、分割領域(0001)を空き領域に戻し、バッファ管理テーブル163における分割領域(0001)に対応する制御情報領域に登録されたライト制御情報を消去する。
The
CM210の制御部230は、解放通知を受けると、処理対象のバッファセットを解放する処理を行う(ステップS147)。具体的には、制御部230は、分割領域(1001)を空き領域に戻し、バッファ管理テーブル263における分割領域(1001)に対応する制御情報領域に登録されたライト制御情報を消去する。
Upon receiving the release notification, the
制御部230は、バッファセットの解放完了をCM110に通知する(ステップS148)。CM110の制御部130は、解放完了通知を受けると、バッファセットの解放完了をCM310に通知する(ステップS149)。CM310の制御部330は、処理対象のバッファセットを解放する処理を行う(ステップS150)。具体的には、制御部330は、分割領域(2001)を空き領域に戻し、バッファ管理テーブル363における分割領域(2001)に対応する制御情報領域に登録されたライト制御情報を消去する。
The
このような処理により、CM110,210,310における同世代のバッファセットが同期して解放される。
以上の図17の処理では、特許文献1と比較した場合、ステップS143での展開の際に、CM210からの送信情報を待つ必要がなく、その送信情報に基づく照合処理も行われない。このため、図17の転送・展開・解放の全体の処理時間を短縮できる。
By such processing, the buffer sets of the same generation in the
In the process of FIG. 17 described above, when compared with Patent Document 1, it is not necessary to wait for transmission information from the
そして、このような転送・展開・解放の処理時間が短縮されることで、例えば、図15のステップS123における解放完了待ち時間を短縮でき、それによって、バッファセットの切り替え処理時間を短縮できる。その結果、例えば、図14のステップS103,S105で切り替え待ちキュー166に登録されたライト制御情報についてのライトI/O処理を、短時間で再開でき、それによって、ホスト装置400からのライト要求に対する応答時間を短縮できる。
Further, by shortening the transfer / development / release processing time, for example, the release completion waiting time in step S123 of FIG. 15 can be shortened, thereby reducing the buffer set switching processing time. As a result, for example, the write I / O processing for the write control information registered in the
次に、図18〜図20を用いて、障害などによってストレージ装置100の動作が停止した場合の処理について説明する。なお、図18、図19の説明では、例として、フェイルオーバの発生時点でバッファ250における分割領域(1000),(1001)が解放されていないものとする。
Next, processing when the operation of the
図18は、フェイルオーバ後の再同期処理の手順を示すシーケンス図の例である。再同期とは、CM210のキャッシュ240とCM310のキャッシュ340とを等価にする処理である。
FIG. 18 is an example of a sequence diagram illustrating a procedure of resynchronization processing after failover. Resynchronization is a process of making the
CM210の制御部230は、ストレージ装置100が停止したことを検知すると(ステップS151)、CM310に対してフェイルオーバの発生を通知する(ステップS152)。これとともに、制御部230は、ストレージ装置300との間の非同期コピーセッションのセッションステータスを「コピーイング」に変更する(ステップS153)。一方、CM310の制御部330は、フェイルオーバの発生通知を受けると、ストレージ装置200との間の非同期コピーのセッションステータスを「コピーイング」に変更する(ステップS154)。
When the
CM210の制御部230は、バッファ管理テーブル263の制御情報領域を参照し、ライト制御情報が登録されているかを確認する。ライト制御情報が登録されている場合、以下の処理が実行される。ここでは、(1000),(1001)に対応する制御情報領域にライト制御情報が登録されているものとする。制御部230は、これらの制御情報領域に登録されたライト制御情報に基づいて、コピービットマップ268を作成する(ステップS155)。コピービットマップ268は、書き込み対象の論理ボリュームにおける、コピー処理単位のブロックごとのビットを有する。各ビットの初期値は「0」とする。
The
制御部230は、上記制御情報領域からライト制御情報を1つずつ取得し、コピービットマップ268のビットのうち、取得したライト制御情報によって指定された書き込み先領域に含まれるブロックに対応するビットを「1」に更新する。上記制御情報領域に登録されたライト制御情報は、CM110のバッファ150からCM310に対する転送が完了していない可能性のあるライトデータを示す。上記処理により、コピービットマップ268には、このようなライトデータが存在する論理ボリューム上の位置が登録される。
The
なお、このようにしてコピービットマップ268が作成されると、ホスト装置400からのアクセス要求の受け付けが開始される。例えば、ホスト装置400からライト要求を受信したとき、後の図19に示すライトI/O処理が、図18における以下の処理と並行して実行される。
Note that when the
制御部230は、作成されたコピービットマップ268からビット値が「1」のビットを1つ選択する。制御部230は、選択されたビットに対応するライトデータをキャッシュ240から読み出し、対応するライト制御情報とともにCM310に転送する(ステップ156)。
The
CM310の制御部330は、受信したライトデータをキャッシュ340に格納する(ステップS157)。CM210の制御部230は、ライトデータの格納完了通知をCM310から受信すると、コピービットマップ268における、このライトデータに対応するビットを「0」に更新する(ステップS158)。そして、制御部230は、コピービットマップ268の全ビットが「0」かを判定する(ステップS159)。
The
ビット値が「1」のビットが残っている場合、制御部330は、コピービットマップ268からビット値が「1」のビットを新たに選択して、ステップS156の処理を実行する。このようにして、コピービットマップ268の全ビットが「0」になるまでステップS156〜S158の処理が繰り返される。
When the bit having the bit value “1” remains, the
そして、ステップS159においてコピービットマップ268の全ビットが「0」になると、CM210のキャッシュ240とCM310のキャッシュ340とが同期した状態(すなわち、互いのデータが等価の状態)となる。このとき、CM210の制御部230は、バッファセットの解放をCM310に通知する(ステップS160)。これとともに、制御部230は、未解放のバッファセットを解放する処理を行う(ステップS161)。具体的には、制御部230は、分割領域(1000),(1001)を空き領域に戻し、バッファ管理テーブル263における分割領域(1000),(1001)に対応する制御情報領域に登録されたライト制御情報を消去する。
When all the bits in the
CM310の制御部330は、解放通知を受けると、未解放のバッファセットを解放する処理を行う(ステップS162)。具体的には、制御部230は、分割領域(2000),(2001)を空き領域に戻す処理を実行する。解放処理が完了すると、制御部330は、バッファセットの解放完了をCM210に通知する(ステップS163)。
When receiving the release notification, the
以上の処理により、分割領域(1000),(1001),(2000),(2001)が、同期して解放される。このとき、すべてのバッファセットが解放された状態となる。 Through the above processing, the divided areas (1000), (1001), (2000), and (2001) are released synchronously. At this time, all buffer sets are released.
CM210の制御部230は、ストレージ装置300との間の非同期コピーセッションのセッションステータスを「アクティブ」に変更する(ステップS164)。また、制御部230は、CM310に対してステータスの変更を指示し、CM310の制御部330は、指示に応じてストレージ装置200との間の非同期コピーセッションのセッションステータスを「アクティブ」に変更する(ステップS165)。セッションステータスが「アクティブ」に変更されることで、CM210とCM310との間で、書き込みの順序性が確保された非同期コピーが開始される。
The
なお、セッションステータスが「アクティブ」に変更された時点では、すべてのバッファセットが解放された状態となっている。このため、ホスト装置400からのライト要求に応じたライトI/O処理を開始する際には、どのバッファセットが現世代のバッファセット(格納対象のバッファセット)として選択されてもよい。例えば、CM210,310は、セッションステータスを「アクティブ」に変更すると、あらかじめ決められたバッファセットを現世代のバッファセットとして選択する。
Note that when the session status is changed to “active”, all the buffer sets are released. For this reason, when a write I / O process corresponding to a write request from the
ここで、上記の図18では、コピービットマップ268を用いてデータ転送を行う処理について説明した。しかし、他の方法として、ステップS155で参照した制御情報領域から1つずつライト制御情報を取得し、取得したライト制御情報が示すライトデータをキャッシュ240からCM310に転送する方法が用いられてもよい。ただし、コピービットマップ268を用いることで、CM210からCM310へのデータ転送量を削減できる可能性が生じる。
Here, in FIG. 18 described above, the process of performing data transfer using the
例えば、未解放のバッファセットが複数存在し、それらのバッファセット間で書き込み先領域が同一のライトデータを示すライト制御情報があった場合でも、CM210のキャッシュ240には、それらのライトデータのうち最新のライトデータしか格納されていない。このため、このようなライトデータを示すライト制御情報が存在していたとしても、対応するライトデータをCM310に1回だけ転送すれば済む。
For example, even when there are a plurality of unreleased buffer sets and there is write control information indicating the write data with the same write destination area between the buffer sets, the
コピービットマップ268を用いることで、このように書き込み先領域が同一のライトデータを、1回の転送処理によってCM210からCM310に転送できるようになる。これにより、CM210からCM310へのデータ転送量を削減でき、キャッシュ240のデータとキャッシュ340のデータとが等価になるまでの時間を短縮できる。
By using the
なお、コピービットマップ268には、上記のように未転送の可能性があるライトデータの位置に加えて、次の図19で示すライトI/O処理において新たにライトデータが書き込まれた位置も記録される。このため、ステップS156〜S158の処理では、ライトI/O処理において新たに書き込まれたライトデータも、CM310に転送される。
In the
これにより、キャッシュの再同期と並行して、ホスト装置400からのライト要求に応じたライトI/O処理を実行できるようになる。このため、CM210は、フェイルオーバの発生から短時間で、ホスト装置400からの新たなライト要求の受け付けを開始できる。したがって、CM210は、ホスト装置400からのライト要求に応じたライトI/O処理を、CM110から短時間で引き継ぐことができる。
Thus, in parallel with the cache resynchronization, the write I / O processing according to the write request from the
また、ライトI/O処理においてコピービットマップ268が用いられることで、ライト要求によって新たに書き込まれたデータを、キャッシュ240への書き込みとは非同期に(すなわち、ライトバック方式によって)CM310に転送できる。このため、ライト要求に対する応答性能を向上させることができる。
Further, by using the
図19は、コピーイング状態でのライトI/O処理の手順を示すフローチャートの例である。前述のように、図18のステップS153,S154でセッションステータスが「コピーイング」となり、ステップS155でコピービットマップ268が作成されると、ホスト装置400からのアクセス要求の受け付けが開始される。セッションステータスが「コピーイング」の状態においてホスト装置400からライト要求を受信すると、図19の処理が実行される。
FIG. 19 is an example of a flowchart showing the procedure of write I / O processing in the copying state. As described above, when the session status becomes “copying” in steps S153 and S154 in FIG. 18 and the
CM210の制御部230は、ホスト装置400からライト要求およびライトデータを受信する(ステップS171)。すると、制御部230は、ライトデータをキャッシュ240に書き込む(ステップS172)。また、制御部230は、コピービットマップ268のビットのうち、ライトデータの書き込み先領域に含まれるブロックに対応するビットを「1」に更新する(ステップS173)。そして、制御部230は、ライト完了通知をホスト装置400に送信して、ライト要求に対する応答を行う(ステップS174)。
The
以上の図19では、ステップS173の処理により、新たにライトデータが書き込まれた位置がコピービットマップ268に記録される。これにより、図18のステップS156〜S158の処理が実行されることで、新たにキャッシュ240に書き込まれたライトデータが、ライト要求に対する応答とは非同期でCM310に転送されるようになる。
In FIG. 19 described above, the position where the new write data is written is recorded in the
次に、図18のステップS164,S165で非同期コピーセッションのセッションステータスが「アクティブ」になった後に、ホスト装置400からライト要求を受信した場合のCM210の処理について、図20を用いて説明する。
Next, processing of the
図20は、アクティブ状態でのライトI/O処理の手順を示すフローチャートの例である。以下に示すように、CM210において実行されるライトI/O処理は、基本的に、図14に示したCM110でのライトI/O処理から、CM210との通信に関する処理(ステップS109〜S111)を除いた処理と同様である。
FIG. 20 is an example of a flowchart showing the procedure of the write I / O process in the active state. As shown below, the write I / O process executed in the
すなわち、CM210の制御部230は、ホスト装置400からライト要求およびライトデータを受信する(ステップS181)。制御部230は、切り替え状態情報264を参照して、現在バッファセットの切り替え処理が実行中かを判定する(ステップS182)。ステップS182で実行中であると判定された場合、制御部230は、ライト要求を示すライト制御情報を切り替え待ちキュー266に登録し(ステップS183)、ライトI/O処理を終了する。このとき、ライトデータはCM210のRAMに一時的に保持される。なお、切り替え処理が完了すると、切り替え待ちキュー266からライト制御情報が取り出される。そして、このライト制御情報および対応するライトデータについて、ステップS172以降の処理が実行される(図15のステップS130に対応)。
That is, the
一方、ステップS182で切り替え処理が実行中でないと判定された場合、制御部230は、バッファ250における格納先の分割領域(ここでは例として、分割領域(1001)とする)に、受信したライトデータを格納できるだけの空き領域があるかを判定する(ステップS184)。空き領域がないと判定された場合、制御部230は、ライト要求を示すライト制御情報を切り替え待ちキュー266に登録し、バッファセットの切り替え処理を起動する(ステップS185)。これにより、図15と同様の手順で切り替え処理が開始される。なお、ライトデータはCM210のRAMに一時的に保持される。また、上記と同様に、切り替え処理が完了すると、切り替え待ちキュー266からライト制御情報が取り出され、このライト制御情報および対応するライトデータについて、ステップS182以降の処理が実行される(図15のステップS130に対応)。
On the other hand, when it is determined in step S182 that the switching process is not being executed, the
一方、ステップS184で空き領域があると判定された場合、制御部230は、ライトデータの書き込み先領域と重複する領域に対して以前の世代でライトが要求され、かつバッファ250に対して未格納のライトデータがあるかを判定する(ステップS186)。この条件を満たす場合、制御部230は、ライト要求を示すライト制御情報を格納完了待ちキュー267に登録し(ステップS187)、ライトI/O処理を終了する。このとき、新たなライトデータはCM210のRAMに一時的に保持される。なお、上記の古いライトデータがバッファ150の分割領域に格納されると、格納完了待ちキュー267からライト制御情報が取り出される。そして、このライト制御情報および対応するライトデータについて、ステップS182以降の処理が実行される(図16のステップS137に対応)。
On the other hand, if it is determined in step S184 that there is an empty area, the
一方、ステップS186の条件を満たさない場合、制御部230は、受信したライトデータを示すライト制御情報を、バッファ管理テーブル263における分割領域(1001)に対応する制御情報領域に登録する(ステップS188)。そして、制御部230は、ライトデータをキャッシュ240に書き込む(ステップS189)。制御部230は、ライト完了通知をホスト装置400に送信して、ライト要求に対する応答を行う(ステップS190)。
On the other hand, when the condition of step S186 is not satisfied, the
なお、図示を省略するが、CM210の制御部230は、図20の処理を1回でも実行すると、図15におけるCM110の処理(CM210への切り替え通知を除く)、図16に示す処理、図17におけるCM110の処理(CM210へのバッファセット解放の通知を除く)と同様の処理を実行する。例えば、図20で例示した分割領域(1001)には、ライトデータがキャッシュ240からコピーされる。また、分割領域(1001)の空きがなくなるなどの条件が満たされると、バッファセットの切り替えが行われ、その後、分割領域(1001)に格納されたライトデータがCM310に送信される。このような処理により、フェイルオーバ前のCM110と同様に、書き込みの順序性が保証された非同期コピーが行われる。
Although illustration is omitted, when the
なお、上記の各実施の形態に示した装置(例えば、制御装置10,20,30、CM110,110a,210,210a,310,310a)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
Note that the processing functions of the devices (for example, the control devices 10, 20, and 30, the
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When distributing the program, for example, a portable recording medium such as a DVD or a CD on which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a 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 processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing according to the received program.
1 上位装置
10,20,30 制御装置
11,21,31 記録媒体
12 バッファ
12a,12b 分割バッファ領域
13,23,33 制御部
22 制御情報記憶部
22a,22b 分割領域
24a,24b 制御情報
DESCRIPTION OF SYMBOLS 1 High-order apparatus 10, 20, 30
Claims (7)
前記第1の制御装置は、
第1の領域と第2の領域とを有するバッファと、
上位装置から書き込みが要求されたデータを、第1の記録媒体に書き込むとともに前記第2の制御装置に送信し、前記上位装置に書き込み完了を通知する同期コピー処理と、前記第1の記録媒体に書き込まれたデータを前記第1の領域に格納し、所定の条件が満たされると、バッファ切り替えを前記第2の制御装置に通知するとともに、その通知後に前記第1の記録媒体に書き込まれるデータの前記バッファにおける格納先を前記第2の領域に切り替える格納処理と、前記第1の領域に格納された第1のデータをまとめて前記第3の制御装置に送信し、前記第2の領域に格納された第2のデータをまとめて前記第3の制御装置に送信する非同期コピー処理と、を実行し、前記第3の制御装置に対する前記第1のデータの送信が完了すると、完了通知を前記第2の制御装置に送信する第1の制御部と、
を有し、
前記第2の制御装置は、
前記第1の領域に対応付けられた第3の領域と、前記第2の領域に対応付けられた第4の領域とを有する制御情報記憶部と、
前記第1の制御部から送信された前記第1のデータを第2の記録媒体に格納するとともに、前記第1のデータを示す第1の制御情報を前記第3の領域に格納し、前記バッファ切り替えが通知されると、その通知後に前記第1の制御部から送信された前記第2のデータを前記第2の記録媒体に格納するとともに、前記第2のデータを示す第2の制御情報を前記第4の領域に格納し、前記完了通知を受信すると、前記第3の領域から前記第1の制御情報を消去し、前記バッファ切り替えの通知後に前記第1の制御装置が停止すると、前記上位装置からの書き込み要求の受信処理を前記第1の制御部から引き継いで、書き込みが要求された第3のデータを前記第2の記録媒体に格納し、その後の所定のタイミングで前記第3のデータを前記第3の制御装置に送信する第2の制御部と、
を有し、
前記第3の制御装置は、
前記第1の制御装置から前記第1のデータを受信すると前記第1のデータを第3の記録媒体に格納し、前記第1の制御装置から前記第2のデータを受信すると前記第2のデータを前記第3の記録媒体に格納し、前記第2の制御装置から前記第3のデータを受信すると前記第3のデータを前記第3の記録媒体に格納する第3の制御部、
を有し、
前記第2の制御部はさらに、前記バッファ切り替えの通知後に前記第1の制御装置が停止したとき、前記第3の領域に前記第1の制御情報が残っている場合には、前記第1の制御情報に基づいて前記第2の記録媒体から前記第1のデータを読み出し、読み出した前記第1のデータを前記第3の制御装置に送信し、
前記第3の制御部はさらに、前記第2の制御装置から前記第1のデータを受信すると前記第1のデータを前記第3の記録媒体に格納する、
ストレージシステム。 A storage system having a first control device, a second control device, and a third control device,
The first control device includes:
A buffer having a first region and a second region;
The data requested to be written by the host device is written to the first recording medium and transmitted to the second control device, and the host device is notified of the completion of writing, and the first recording medium The written data is stored in the first area, and when a predetermined condition is satisfied, the buffer switching is notified to the second control device, and the data written to the first recording medium after the notification is notified. The storage process for switching the storage destination in the buffer to the second area and the first data stored in the first area are collectively transmitted to the third control device and stored in the second area. Asynchronous copy processing for collectively transmitting the second data thus transmitted to the third control device, and when the transmission of the first data to the third control device is completed, A first control unit that transmits a notification to the second controller,
Have
The second control device includes:
A control information storage unit having a third region associated with the first region and a fourth region associated with the second region;
The first data transmitted from the first control unit is stored in a second recording medium, and first control information indicating the first data is stored in the third area, and the buffer When the switching is notified, the second data transmitted from the first control unit after the notification is stored in the second recording medium, and second control information indicating the second data is stored. When storing in the fourth area and receiving the completion notification, the first control information is erased from the third area, and when the first control device stops after notification of the buffer switching, Taking over the reception process of the write request from the apparatus from the first control unit, the third data requested to be written is stored in the second recording medium, and the third data is transmitted at a predetermined timing thereafter. The third system A second control unit for transmitting device,
Have
The third control device includes:
When the first data is received from the first control device, the first data is stored in a third recording medium, and when the second data is received from the first control device, the second data is stored. Is stored in the third recording medium, and upon receiving the third data from the second control device, a third control unit stores the third data in the third recording medium,
Have
The second control unit may further include the first control information if the first control information remains in the third area when the first control device is stopped after the buffer switching notification. Reading the first data from the second recording medium based on the control information, transmitting the read first data to the third control device;
The third control unit further stores the first data in the third recording medium when receiving the first data from the second control device.
Storage system.
請求項1記載のストレージシステム。 The second control unit stores the third data in the second recording medium when the first control device stops after notification of the buffer switching, and then stores the third data in the second recording medium. Based on the first control information remaining in the third area, the first data from the second recording medium is read out, and processing to be transmitted to the third control device is performed. Executing in parallel with the process of transmitting data to the third control unit;
The storage system according to claim 1.
前記第2の制御部は、
前記バッファ切り替えの通知後に前記第1の制御装置が停止したとき、前記第2の制御情報に基づき、前記ビットマップのビットのうち、前記第2の記録媒体における前記第2のデータの記憶領域に対応するビットを、データの存在を示す第1の値に設定し、
書き込みが要求された前記第3のデータを前記第2の記録媒体に格納したとき、前記ビットマップのビットのうち、前記第2の記録媒体における前記第3のデータの記憶領域に対応するビットを、前記第1の値に設定し、
前記ビットマップを参照し、前記所定値が設定されたビットに対応する、前記第2の記録媒体の記憶領域からデータを読み出して前記第3の制御装置へ送信し、当該ビットを第2の値に更新する処理を、前記ビットマップの全ビットが前記第2の値になるまで実行する、
請求項1記載のストレージシステム。 The second control device stores a bitmap having a bit for each storage area of the second recording medium,
The second controller is
When the first control device stops after the notification of the buffer switching, the second data storage area of the second recording medium among the bits of the bitmap is based on the second control information. Set the corresponding bit to the first value indicating the presence of data,
When the third data requested to be written is stored in the second recording medium, the bit corresponding to the storage area of the third data in the second recording medium among the bits of the bitmap , Set to the first value,
The bit map is referenced, data is read from the storage area of the second recording medium corresponding to the bit for which the predetermined value is set, is transmitted to the third control device, and the bit is set to the second value. To update all the bits of the bitmap until the second value,
The storage system according to claim 1.
請求項1乃至3のいずれか1項に記載のストレージシステム。 When at least a part of the write destination area for the first data overlaps with the write destination area for the second data, the first control unit transfers the second data to the first recording medium. When storing the first data in the first area from the first recording medium, the process is completed if the process is not completed. And then storing the second data in the first recording medium,
The storage system according to any one of claims 1 to 3.
請求項1乃至4のいずれか1項に記載のストレージシステム。 When the predetermined condition is satisfied, the first control unit is requested to write from the host device before that and is stored in the second area, and is transferred to the third control device. If there is third data that has not been completed, and if there is the third data, the buffer switching is performed after the transfer of the third data to the third control device is completed. Notify the second controller;
The storage system according to any one of claims 1 to 4.
請求項1乃至4のいずれか1項に記載のストレージシステム。 The first control unit is requested to write the second data from the host device as the predetermined condition, and there is no free space in the first area to store the second data. When the above condition is satisfied, the third data that has been requested to be written by the host device and stored in the second area before the transfer to the third control device is completed. If there is the third data, after the transfer of the third data to the third control device is completed, the buffer switching is notified to the second control device, and After the second data is written to the first recording medium and transmitted to the second control device, the second device is notified of the completion of the writing of the second data, and then the second data is sent to the second recording device. Store in the area of
The storage system according to any one of claims 1 to 4.
上位装置から書き込みが要求されたデータを、記録媒体に書き込むとともに第1の他の制御装置に送信し、前記上位装置に書き込み完了を通知する同期コピー処理と、前記記録媒体に書き込まれたデータを前記第1の領域に格納し、所定の条件が満たされると、バッファ切り替えを前記第1の他の制御装置に通知するとともに、その通知後に前記記録媒体に書き込まれるデータの前記バッファにおける格納先を前記第2の領域に切り替える格納処理と、前記第1の領域に格納された第1のデータをまとめて第2の他の制御装置に送信し、前記第2の領域に格納された第2のデータをまとめて前記第2の他の制御装置に送信する非同期コピー処理と、を実行し、前記第2の他の制御装置に対する前記第1のデータの送信が完了すると、完了通知を前記第1の他の制御装置に送信する制御部と、
を有し、
前記第1のデータの書き込み先領域の少なくとも一部が前記第2のデータの書き込み先領域と重複している場合、前記制御部は、前記第2のデータを前記記録媒体に格納する際に、前記第1のデータを前記記録媒体から前記第1の領域に格納する処理が完了しているかを判定し、当該処理が完了していない場合、当該処理が完了した後に前記第2のデータを前記記録媒体に格納する、
制御装置。 A buffer having a first region and a second region;
The data requested to be written by the host device is written to the recording medium and transmitted to the first other control device, and the host device is notified of the completion of writing, and the data written to the recording medium is transmitted. When it is stored in the first area and a predetermined condition is satisfied, the buffer switching is notified to the first other control device, and the storage destination in the buffer of the data written to the recording medium after the notification is notified. The storage process for switching to the second area and the first data stored in the first area are collectively transmitted to the second other control device, and the second data stored in the second area is stored. Asynchronous copy processing for collectively transmitting data to the second other control device, and when the transmission of the first data to the second other control device is completed, a completion notification And a control unit which transmits to said first other control device,
Have
When at least a part of the write destination area of the first data overlaps with the write destination area of the second data, the control unit, when storing the second data in the recording medium, It is determined whether the process of storing the first data from the recording medium into the first area is completed. If the process is not completed, the second data is stored after the process is completed. Store in a recording medium,
Control device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018082203A JP2019191801A (en) | 2018-04-23 | 2018-04-23 | Storage system and control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018082203A JP2019191801A (en) | 2018-04-23 | 2018-04-23 | Storage system and control device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019191801A true JP2019191801A (en) | 2019-10-31 |
Family
ID=68390368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018082203A Pending JP2019191801A (en) | 2018-04-23 | 2018-04-23 | Storage system and control device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019191801A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415934A (en) * | 2020-10-28 | 2022-04-29 | 上海川源信息科技有限公司 | Data access system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003122509A (en) * | 2001-08-08 | 2003-04-25 | Hitachi Ltd | Remote copy control method, storage sub-system using it, and wide area data storage system using them |
JP2007066154A (en) * | 2005-09-01 | 2007-03-15 | Hitachi Ltd | Storage system for copying data to be stored in multiple storages |
JP2008243138A (en) * | 2007-03-29 | 2008-10-09 | Hitachi Ltd | Storage system and data restoration method |
JP2012003621A (en) * | 2010-06-18 | 2012-01-05 | Nec System Technologies Ltd | Remote copy processing system, processing method and processing program for use between disk array devices |
WO2012090370A1 (en) * | 2010-12-28 | 2012-07-05 | Necカシオモバイルコミュニケーションズ株式会社 | Remote operation system, user terminal and remote operation method |
JP2017167602A (en) * | 2016-03-14 | 2017-09-21 | 富士通株式会社 | Storage system |
-
2018
- 2018-04-23 JP JP2018082203A patent/JP2019191801A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003122509A (en) * | 2001-08-08 | 2003-04-25 | Hitachi Ltd | Remote copy control method, storage sub-system using it, and wide area data storage system using them |
JP2007066154A (en) * | 2005-09-01 | 2007-03-15 | Hitachi Ltd | Storage system for copying data to be stored in multiple storages |
JP2008243138A (en) * | 2007-03-29 | 2008-10-09 | Hitachi Ltd | Storage system and data restoration method |
JP2012003621A (en) * | 2010-06-18 | 2012-01-05 | Nec System Technologies Ltd | Remote copy processing system, processing method and processing program for use between disk array devices |
WO2012090370A1 (en) * | 2010-12-28 | 2012-07-05 | Necカシオモバイルコミュニケーションズ株式会社 | Remote operation system, user terminal and remote operation method |
JP2017167602A (en) * | 2016-03-14 | 2017-09-21 | 富士通株式会社 | Storage system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415934A (en) * | 2020-10-28 | 2022-04-29 | 上海川源信息科技有限公司 | Data access system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4915775B2 (en) | Storage system and storage system remote copy control method | |
JP4942418B2 (en) | Computer system and snapshot creation method thereof | |
JP4958739B2 (en) | A storage system for repairing data stored in a storage device in which a failure has occurred | |
JP5192226B2 (en) | Method for adding standby computer, computer and computer system | |
US9213490B2 (en) | Computer system and data migration method | |
JP5286212B2 (en) | Remote copy control method and system in storage cluster environment | |
JP6024296B2 (en) | Information processing apparatus, copy control program, and copy control method | |
US10191685B2 (en) | Storage system, storage device, and data transfer method | |
JP2005309550A (en) | Remote copying method and system | |
US9471449B2 (en) | Performing mirroring of a logical storage unit | |
US9342418B2 (en) | Storage system, storage control device and data transfer method | |
JP2010282324A (en) | Storage control apparatus, storage system, and storage control method | |
JP6069962B2 (en) | Information processing apparatus, area release control program, and area release control method | |
US10007467B2 (en) | Storage system | |
JP6230707B2 (en) | Storage system | |
JP2019191801A (en) | Storage system and control device | |
US20160036653A1 (en) | Method and apparatus for avoiding performance decrease in high availability configuration | |
US9304876B2 (en) | Logical volume migration in single server high availability environments | |
WO2016084156A1 (en) | Storage system | |
JP4294692B2 (en) | Information processing system | |
JP5924117B2 (en) | Computer, data storage method, data storage program, and information processing system | |
JP4704463B2 (en) | Storage control device, storage control program, and storage control method | |
JP7050707B2 (en) | Storage control device, storage system, storage control method, and storage control program | |
US20170060478A1 (en) | Storage system and data write method | |
JP5731665B2 (en) | Computer system and replication control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210113 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210122 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20210122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210824 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220301 |