Nothing Special   »   [go: up one dir, main page]

JP2010122761A - Data storage device and replication method in casing - Google Patents

Data storage device and replication method in casing Download PDF

Info

Publication number
JP2010122761A
JP2010122761A JP2008293737A JP2008293737A JP2010122761A JP 2010122761 A JP2010122761 A JP 2010122761A JP 2008293737 A JP2008293737 A JP 2008293737A JP 2008293737 A JP2008293737 A JP 2008293737A JP 2010122761 A JP2010122761 A JP 2010122761A
Authority
JP
Japan
Prior art keywords
data
storage medium
cache memory
state
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008293737A
Other languages
Japanese (ja)
Other versions
JP4908481B2 (en
Inventor
Masaki Kobayashi
正樹 小林
Masao Sakitani
政雄 先谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008293737A priority Critical patent/JP4908481B2/en
Publication of JP2010122761A publication Critical patent/JP2010122761A/en
Application granted granted Critical
Publication of JP4908481B2 publication Critical patent/JP4908481B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To shorten a time required for creating a snap shot in the case of taking back-up in the storage region of a cache memory without sacrificing the storage region. <P>SOLUTION: A table 250 stores data for cache management including a first variable showing the range of dirty data among data cached in a cache memory 104 and a second variable showing the range of snap data to be written in a backup LDISK11b. A cache memory management part 243 copies the first variable included in the data for cache management to the second variable in the case of requesting the creation of a snap shot from host equipment, and shifts the status of replication to a status showing that the snap shot has not been decided as the data of the backup LDISK11b when the copy is completed, and notifies the host equipment of the completion of the creation of the snap shot in response to the request for the creation of the snap shot. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、例えば、マスタディスクのような第1の記憶媒体(一次記憶媒体)とバックアップディスクのような第2の記憶媒体(二次記憶媒体)とをミラーとして運用するデータ記憶装置及び筐体内レプリケーション方法に関する。   The present invention provides, for example, a data storage device that operates as a mirror with a first storage medium (primary storage medium) such as a master disk and a second storage medium (secondary storage medium) such as a backup disk. It relates to the replication method.

昨今、ディスク容量の増大のペースは著しく、それに伴い、データ量増大のペースも著しい。このような状況下、テープ機器へのバックアップは非常に時間を要するため、ディスクをバックアップ先に指定するケースが増えている。   Recently, the pace of increase in disk capacity is remarkable, and accordingly, the pace of increase in data amount is also remarkable. Under such circumstances, backup to a tape device takes a very long time, and there are increasing cases of specifying a disk as a backup destination.

通常、ディスクにバックアップを採るケースでは、マスタディスクとバックアップディスクを常時ミラーとして運用し、バックアップ作成時に、サーバ側にてコミットポイント作成またはファイルシステムアンマウントを実行し、サーバメモリ上のダーティデータを全て吐き出し、データ記憶装置のキャッシュ(キャッシュメモリ)上のデータをマスタディスクとバックアップディスクとの両方に吐き出した(デステージングした)後に、マスタディスクとバックアップディスクを分離(ミラー状態を解除)して、バックアップの生成を行う。このバックアップディスクの分離、つまりミラー状態の解除は、スナップショット作成と称されている。   Normally, when backing up to disk, the master disk and backup disk are always operated as mirrors, and at the time of backup creation, commit point creation or file system unmount is executed on the server side, and all dirty data in the server memory is discharged. After the data on the data storage device's cache (cache memory) has been discharged (destaged) to both the master disk and the backup disk, the master disk and the backup disk are separated (the mirror state is canceled) Generate. This separation of the backup disk, that is, the cancellation of the mirror state is called snapshot creation.

このように、スナップショット作成(ミラー状態の解除)にあたっては、マスタとバックアップの両方に書き込みを実施するために、最悪のケース(例えばデータ記憶装置のキャッシュ上に、ランダム書き込みとなるダーティデータが非常に多く存在する場合)では、多大な時間を要することになる。   In this way, when creating a snapshot (releasing the mirror state), in order to perform writing to both the master and backup, the worst case (for example, dirty data that is randomly written on the cache of the data storage device is very A large amount of time), it takes a lot of time.

そこで、例えば特許文献1には、ディスクにバックアップを採る場合のスナップショット作成に要する時間を短縮することを可能とする技術(先行技術)が記載されている。この特許文献1に記載の先行技術の特徴は、キャッシュに格納されるマスタディスクのダーティデータ(デステージングされるべきデータ)がキャッシュ上に占める総容量を制限(例えばキャッシュの容量の1/2に制限)し、且つ、その総容量分のバッファ(退避エリア)をキャッシュ上に予め確保しておき、スナップショット作成時に、その予め確保されたバッファに対してマスタディスクのダーティデータをコピー(退避)し、そのコピー完了をもって、スナップショット作成を完了とすることにある。
特開2005−31746号公報
Thus, for example, Patent Document 1 describes a technique (prior art) that can shorten the time required to create a snapshot when a backup is taken on a disk. The feature of the prior art described in Patent Document 1 is that the total capacity that the dirty data (data to be destaged) of the master disk stored in the cache occupies on the cache is limited (for example, to 1/2 of the cache capacity). And a buffer (save area) for the total capacity is secured in the cache in advance, and when the snapshot is created, the dirty data on the master disk is copied (save) to the pre-allocated buffer. Then, the snapshot creation is completed upon completion of the copy.
Japanese Patent Laying-Open No. 2005-31746

先行技術においては、ディスクにバックアップを採る場合のスナップショット作成に要する時間を短縮することができる。しかし、先行技術では、マスタディスクのダーティデータがキャッシュ上に占める総容量を制限し、その総容量分のバッファをキャッシュ上に確保する必要がある。この総容量の最大値は、キャッシュの記憶容量の1/2である。このため、先行技術では、キャッシュの記憶領域の高々1/2しかキャッシングのために使用することができない。   In the prior art, it is possible to reduce the time required to create a snapshot when taking a backup on a disk. However, in the prior art, it is necessary to limit the total capacity occupied by the dirty data of the master disk on the cache, and to secure a buffer for the total capacity on the cache. The maximum value of the total capacity is ½ of the cache storage capacity. For this reason, in the prior art, only at most 1/2 of the storage area of the cache can be used for caching.

本発明は上記事情を考慮してなされたものでその目的は、キャッシュ(キャッシュメモリ)の記憶領域を犠牲にすることなく、記憶媒体にバックアップを採る場合のスナップショット作成に要する時間を短縮することができるデータ記憶装置及び筐体内レプリケーション方法を提供することにある。   The present invention has been made in view of the above circumstances, and an object thereof is to reduce the time required for creating a snapshot when a backup is taken on a storage medium without sacrificing the storage area of the cache (cache memory). It is an object of the present invention to provide a data storage device and a replication method within a housing.

本発明の1つの観点によれば、第1の記憶媒体及び第2の記憶媒体と、ホスト機器と前記第1及び第2の記憶媒体との間に介在し、前記第1及び第2の記憶媒体のレプリケーション管理上の状態が第1の状態では、前記第1及び第2の記憶媒体を、前記第1の記憶媒体に記憶されているデータの複製が前記第2の記憶媒体に保存されるミラーとして運用するための制御を行う制御装置とを具備するデータ記憶装置が提供される。このデータ記憶装置において、前記制御装置は、前記第1及び第2の記憶媒体に対して読出しまたは書き込みされるデータを記憶するキャッシュメモリと、前記キャッシュメモリに記憶されたデータのうち前記第1の記憶媒体に対して書き込みが実施されていないダーティデータの範囲を示す第1の変数と、前記第2の記憶媒体に書き込まれるべきデータであるスナップデータの範囲を示す第2の変数とを含む、前記キャッシュメモリに記憶されたデータを管理するためキャッシュ管理用データを記憶する記憶手段と、前記ホスト機器からのスナップショット作成要求に応じて、前記第1の変数を前記第2の変数にコピーし、前記第2の変数へのコピー完了をもって、レプリケーション管理上の状態を、前記第1の状態から前記第1及び第2の記憶媒体が論理的に分離された第2の状態に移行する状態であり、スナップショットが前記第2の記憶媒体のデータとして確定していないことを示す第3の状態に遷移させると共に、前記スナップショット作成要求に対するスナップショット作成の完了を前記ホスト機器に通知するスナップショット作成手段と、前記第1の記憶媒体に対して書き込みが実施されていない前記キャッシュメモリ上のデータを対象とするデステージングを制御するデステージング制御手段と、前記第1の状態において、前記デステージング制御手段によってデステージングが指定された場合、前記第1の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第1及び第2の記憶媒体の双方に書き込むための制御に応じて前記第1の変数を更新し、前記第1の状態以外において、前記デステージング制御手段によってデステージングが指定された場合、前記第1の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第1の記憶媒体に、前記第2の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第2の記憶媒体に、それぞれ書き込むための制御に応じて前記第1及び第2の変数を更新する書き込み制御手段とを含む。   According to one aspect of the present invention, the first storage medium, the second storage medium, a host device, and the first storage medium and the second storage medium are interposed between the first storage medium and the second storage medium. When the replication management state of the medium is the first state, a copy of the data stored in the first storage medium is saved in the second storage medium. A data storage device is provided that includes a control device that performs control to operate as a mirror. In this data storage device, the control device stores a cache memory that stores data to be read from or written to the first and second storage media, and the first of the data stored in the cache memory. Including a first variable indicating a range of dirty data that has not been written to the storage medium, and a second variable indicating a range of snap data that is data to be written to the second storage medium, Storage means for storing cache management data for managing data stored in the cache memory, and copying the first variable to the second variable in response to a snapshot creation request from the host device. Upon completion of copying to the second variable, the replication management status is changed from the first status to the first and second statuses. The storage medium is in a state of transition to a logically separated second state, and a transition is made to a third state indicating that a snapshot is not confirmed as data of the second storage medium, and the snap Snapshot creation means for notifying the host device of completion of snapshot creation in response to a shot creation request, and destaging for data in the cache memory that has not been written to the first storage medium Destaging control means for controlling, and in the first state, when destaging is designated by the destaging control means, data in the cache memory in a range designated by the first variable is stored in the first state. Updating the first variable according to the control for writing to both the second storage medium and the second storage medium; In a case other than the first state, when destaging is designated by the destaging control means, data in the cache memory in a range designated by the first variable is stored in the first storage medium as the second storage medium. Write control means for updating the first and second variables in accordance with the control for writing the data on the cache memory in the range specified by the variable to the second storage medium.

本発明によれば、第1の記憶媒体(マスタ記憶媒体)と第2の記憶媒体(バックアップ記憶媒体)とを論理的に分離するための、ホスト機器からのスナップショット作成要求(スプリットコマンド)の受信時に、第1の記憶媒体及び第2の記憶媒体に対するデステージングを不要とすることができるため、スナップショット作成に要する時間を短縮することができる。しかも、第2の記憶媒体に書き込まれるべきデータであるスナップデータの範囲を示す第2の変数を格納するための記憶領域以外に、特別な記憶領域は必要ないため、従来技術と異なりキャッシュメモリの記憶領域を犠牲にすることがない。   According to the present invention, a snapshot creation request (split command) from the host device for logically separating the first storage medium (master storage medium) and the second storage medium (backup storage medium). Since the destaging of the first storage medium and the second storage medium can be eliminated at the time of reception, the time required for creating the snapshot can be shortened. In addition, a special storage area is not required other than the storage area for storing the second variable indicating the range of the snap data that is the data to be written to the second storage medium. The storage area is not sacrificed.

以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るデータ記憶装置1の概略構成を示すブロック図である。
図1に示されるデータ記憶装置1は、制御装置10と、複数、例えば2つの記憶媒体11a及び11bとから構成される。制御装置10はデータ通信路2を介して接続されるホスト機器と記憶媒体11a及び11bとの間に介在して設けられる。記憶媒体11a及び記憶媒体11bは、それぞれマスタ記憶媒体(一次記憶媒体)及びバックアップ記憶媒体(二次記憶媒体)として用いられるものとする。本実施形態において、記憶媒体11a及び11bは、ディスク、例えば論理ディスク(LDISK)である。そこで以下の説明では、マスタ記憶媒体11a及びバックアップ記憶媒体11bを、それぞれマスタ論理ディスク(マスタLDISK)11a及びバックアップ論理ディスク(バックアップLDISK)11bと呼ぶ。また、単に論理ディスク(LDISK)11a及び11bと呼ぶこともある。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a schematic configuration of a data storage device 1 according to an embodiment of the present invention.
A data storage device 1 shown in FIG. 1 includes a control device 10 and a plurality of, for example, two storage media 11a and 11b. The control device 10 is provided between the host device connected via the data communication path 2 and the storage media 11a and 11b. The storage medium 11a and the storage medium 11b are used as a master storage medium (primary storage medium) and a backup storage medium (secondary storage medium), respectively. In the present embodiment, the storage media 11a and 11b are disks, for example, logical disks (LDISK). Therefore, in the following description, the master storage medium 11a and the backup storage medium 11b are referred to as a master logical disk (master LDISK) 11a and a backup logical disk (backup LDISK) 11b, respectively. Also, they may be simply called logical disks (LDISK) 11a and 11b.

制御装置10は、ホストインタフェース部(HOST I/F)101、CPU102、プログラムメモリ103、キャッシュメモリ104及びHDDインタフェース部(HDD I/F)105を有している。なお、データ通信路2を介してデータ記憶装置1に接続されるものとしては、ホスト機器となるコンピュータまたはその集合体の他、他のデータ記憶装置も想定される。   The control device 10 includes a host interface unit (HOST I / F) 101, a CPU 102, a program memory 103, a cache memory 104, and an HDD interface unit (HDD I / F) 105. In addition, what is connected to the data storage device 1 via the data communication path 2 is assumed to be another data storage device in addition to a computer serving as a host device or an aggregate thereof.

ホストインタフェース部101及びHDDインタフェース部105は、それぞれ外部接続される装置との間の通信を制御する。ホストインタフェース部101はデータ通信路2側の通信を司る。HDDインタフェース部105はLDISK11a及び11b側の通信を司る。   The host interface unit 101 and the HDD interface unit 105 each control communication with an externally connected device. The host interface unit 101 manages communication on the data communication path 2 side. The HDD interface unit 105 manages communication on the LDISK 11a and 11b side.

CPU102は、制御装置10における必要処理を実行するものであり、プログラムメモリ103には、そのための各種プログラムが格納されている。ここで説明する筐体内レプリケーションの手法は、このプログラムメモリ103(コンピュータ読み取り可能な記憶媒体)に格納されているプログラムをCPU102が読み取って実行することによって実現されるものとする。プログラムメモリ103には、上述のプログラムを格納するための領域に加えて、CPU102が利用するデータ等を格納するための領域も確保されている。   The CPU 102 executes necessary processing in the control device 10, and various programs are stored in the program memory 103. The intra-casing replication method described here is realized by the CPU 102 reading and executing a program stored in the program memory 103 (computer-readable storage medium). In the program memory 103, in addition to the above-described area for storing the program, an area for storing data used by the CPU 102 is also secured.

キャッシュメモリ104は、データ通信路2を介して接続されるホスト機器(或いは他のデータ記憶装置)からデータ記憶装置1内のLDISK11i(i=a,b)に対して発行される入出力要求(IO要求)に対するバッファの役目を提供する。図2は、キャッシュメモリ104の構造を示す。キャッシュメモリ104は、ある論理的な単位に分割されて管理されている。この分割された単位で自由にLDISK11i内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ104に格納することができる。この分割された1つの単位をキャッシュブロックと呼ぶ。   The cache memory 104 receives an input / output request issued to a LDISK 11 i (i = a, b) in the data storage device 1 from a host device (or other data storage device) connected via the data communication path 2. Provides a buffer function for (IO request). FIG. 2 shows the structure of the cache memory 104. The cache memory 104 is managed by being divided into certain logical units. The data at the storage location can be stored in the cache memory 104 by freely corresponding to the storage location in the LDISK 11i in this divided unit. This divided unit is called a cache block.

ここで、図2に示されるキャッシュメモリ104は、例えば16KB(キロバイト)単位のキャッシュブロックに分割されている。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理される。キャッシュメモリ104上では、リードキャッシュ(RDC)とライトバックキャッシュ(WBC)の2種類のデータが管理される。ホスト機器からのリード/ライトアクセスに応じて各エントリがサーチされ、対象となるキャッシュブロックとホスト機器またはLDISK11iとの間でデータ転送が行われる。   Here, the cache memory 104 shown in FIG. 2 is divided into cache blocks of, for example, 16 KB (kilobytes). Each cache block is managed by memory mapping using, for example, a set associative method. On the cache memory 104, two types of data are managed: read cache (RDC) and write back cache (WBC). Each entry is searched according to read / write access from the host device, and data transfer is performed between the target cache block and the host device or LDISK 11i.

例えば、ホスト機器からLDISK11iへのデータ書き込み処理は、キャッシュメモリ104を用いて次のように行われる。まず、入出力要求で指定されたデータ(書き込みデータ)がキャッシュメモリ104にエントリされた時点で、要求元のホスト機器に対して書き込み処理完了が通知される。その後に、キャッシュメモリ104からLDISK11iに対する実際のデータ書き込みが実行される。   For example, data write processing from the host device to the LDISK 11 i is performed using the cache memory 104 as follows. First, when the data (write data) designated by the input / output request is entered into the cache memory 104, the requesting host device is notified of the completion of the write process. Thereafter, actual data writing from the cache memory 104 to the LDISK 11i is executed.

一方、LDISK11iからのデータ読み込み処理は、次のように行われる。まず、該当するデータがキャッシュメモリ104にエントリ(キャッシュ)されているか否かが判定され、エントリされていれば、そのデータがキャッシュメモリ104からデータ通信路2を介してホスト機器に返される。これに対し、該当するデータがキャッシュメモリ104にエントリされていないならば、データがLDISK11iからキャッシュメモリ104に読み出されて、しかる後に、要求元のホスト機器に対して読み出されたデータがデータ通信路2を介して返される。   On the other hand, data reading processing from the LDISK 11i is performed as follows. First, it is determined whether or not the corresponding data is entered (cached) in the cache memory 104. If the entry is entered, the data is returned from the cache memory 104 to the host device via the data communication path 2. On the other hand, if the corresponding data is not entered in the cache memory 104, the data is read from the LDISK 11i to the cache memory 104, and then the data read to the requesting host device is the data. Returned via communication path 2.

図3は、図1に示される制御装置10のプログラムメモリ103に格納されるプログラムをCPU102が読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。   FIG. 3 is a block diagram mainly showing a module configuration realized by the CPU 102 reading and executing a program stored in the program memory 103 of the control device 10 shown in FIG.

ホストインタフェース制御部(HOST I/F制御部)210は、ホスト機器(または他のデータ記憶装置)との間のインタフェース処理を担当する。IO管理部(入出力管理部)220は、IOアクセス管理(入出力アクセス管理)及びIOアクセス領域制御(入出力アクセス領域制御)を実行する。レプリケーション管理部230は、レプリケーション処理を行う。   The host interface control unit (HOST I / F control unit) 210 is in charge of interface processing with the host device (or other data storage device). The IO management unit (input / output management unit) 220 executes IO access management (input / output access management) and IO access area control (input / output access area control). The replication management unit 230 performs replication processing.

キャッシュ管理モジュール240は、IOアクセス制御部241、デステージング/ステージング制御部242、キャッシュメモリ管理部243及びLDISKアクセス制御部(論理ディスクアクセス制御部)244から構成される。   The cache management module 240 includes an IO access control unit 241, a destaging / staging control unit 242, a cache memory management unit 243, and an LDISK access control unit (logical disk access control unit) 244.

IOアクセス制御部241は、IO管理部220からIO要求を受け付けるブロックであり、IO要求に基づきリード/ライトアクセスを制御する。特にIOアクセス制御部241は、ホスト機器からのIO要求(ホストIO要求)に基づき、ホスト機器からのリード/ライトアクセスを制御する。IO要求は、アドレスと転送サイズとからなるアドレス情報を含む。   The IO access control unit 241 is a block that receives an IO request from the IO management unit 220 and controls read / write access based on the IO request. In particular, the IO access control unit 241 controls read / write access from the host device based on an IO request (host IO request) from the host device. The IO request includes address information including an address and a transfer size.

IOアクセス制御部241は、このアクセス情報に基づき、キャッシュメモリ管理部243との連携により、該当するキャッシュブロックのエントリをサーチする。IOアクセス制御部241は、このエントリのサーチ(エントリサーチ)に基づき、キャッシュメモリ104とホスト機器との間のデータ転送をホストインタフェース制御部210に対して要求する。またIOアクセス制御部241は、アクセス情報で指定されるデータの格納状態により、ディスク転送(キャッシュメモリ104とLDISK11iとの間のデータ転送)を必要とする場合に、ディスク転送のための情報をLDISKアクセス制御部244に引き渡すことにより、必要なディスクデータの転送を行わせる。   Based on this access information, the IO access control unit 241 searches for an entry of the corresponding cache block in cooperation with the cache memory management unit 243. Based on this entry search (entry search), the IO access control unit 241 requests the host interface control unit 210 to transfer data between the cache memory 104 and the host device. In addition, the IO access control unit 241 transfers information for disk transfer to LDISK when disk transfer (data transfer between the cache memory 104 and the LDISK 11i) is required depending on the storage state of data specified by the access information. By transferring the data to the access control unit 244, necessary disk data is transferred.

キャッシュメモリ管理部243は、キャッシュカラム単位に割り当てられているキャッシュブロックと対象となるLDISK11iの領域とをマッピングし、ホスト機器からライトされたデータまたはディスクからリードされたデータの格納状態を管理する。このキャッシュメモリ管理部243によるデータの格納状態の管理には、キャッシュブロック管理テーブル250と、スナップカウンタ260a及び260bと、レプリケーション管理テーブル270とが用いられる。   The cache memory management unit 243 maps the cache block assigned to each cache column and the target LDISK 11i area, and manages the storage state of the data written from the host device or the data read from the disk. The cache memory management unit 243 uses the cache block management table 250, the snap counters 260a and 260b, and the replication management table 270 to manage the data storage state.

キャッシュブロック管理テーブル250及びレプリケーション管理テーブル270は、例えば、図1に示されるプログラムメモリ103の所定の領域に格納される。つまりプログラムメモリ103は、キャッシュブロック管理テーブル250及びレプリケーション管理テーブル270をそれぞれ記憶する記憶手段を含む。なお、キャッシュブロック管理テーブル250及びレプリケーション管理テーブル270が、それぞれ独立したメモリに格納される構成であっても構わない。   The cache block management table 250 and the replication management table 270 are stored, for example, in predetermined areas of the program memory 103 shown in FIG. That is, the program memory 103 includes storage means for storing the cache block management table 250 and the replication management table 270, respectively. Note that the cache block management table 250 and the replication management table 270 may be stored in independent memories.

スナップカウンタ260i(i=a,b)はLDISK11i毎に設けられる。本実施形態においてスナップカウンタ260iは、プログラムメモリ103内に置かれるソフトウェアカウンタである。なおスナップカウンタ260iがハードウェアカウンタであっても構わない。   A snap counter 260i (i = a, b) is provided for each LDISK 11i. In the present embodiment, the snap counter 260 i is a software counter placed in the program memory 103. The snap counter 260i may be a hardware counter.

デステージング/ステージング制御部242は、ホストIO要求のアクセス情報に基づきシーケンシャルライトまたはシーケンシャルリードの検出を行う。シーケンシャルなアクセスを検出した場合、デステージング/ステージング制御部242は、シーケンシャルライトであれば後追い吐き出し要求を、シーケンシャルリードであればデータ先読み要求を、IO管理部220に領域を指定して発行する。またデステージング/ステージング制御部242は、特定のタイミングで未吐き出しのWBCデータ(ダーティデータ)を抽出し、ストライプグループ単位にまとめてLDISK11iに書き込むための要求をIO管理部220に領域を指定して発行する。   The destaging / staging controller 242 detects sequential write or sequential read based on the access information of the host IO request. When a sequential access is detected, the destaging / staging control unit 242 issues a post-ejecting request if it is a sequential write, and issues a data pre-read request if it is a sequential read, specifying a region to the IO management unit 220. In addition, the destaging / staging control unit 242 extracts undischarged WBC data (dirty data) at a specific timing, and designates an area for the write to the LDISK 11i in units of stripe groups by specifying an area to the IO management unit 220. Issue.

本実施形態において、LDISK11a及び11bはそれぞれ、複数のディスクアレイ、例えば図3に示されるようなRAID(Redundant Arrays of Independent Disks,Redundant Arrays of Inexpensive Disks)構成の2つのディスクアレイ(SDISK)110a及び110bから構成される。つまり、本実施形態の説明において、データ記憶装置1はディスクアレイ装置である。一般にディスクアレイ装置では、ディスクアレイを構成する例えば複数の物理ディスクが一定のサイズに分割して管理される。この分割された単位はストライプと呼ばれる。ストライプグループとは、ディスクアレイを構成する複数の物理ディスクの同一オフセット位置のストライプの集合を指す。   In this embodiment, each of the LDISKs 11a and 11b includes a plurality of disk arrays, for example, two disk arrays (SDISK) 110a and 110b having a RAID (Redundant Arrays of Independent Disks, Redundant Arrays of Inexpensive Disks) configuration as shown in FIG. Consists of That is, in the description of this embodiment, the data storage device 1 is a disk array device. In general, in a disk array device, for example, a plurality of physical disks constituting a disk array are divided into a certain size and managed. This divided unit is called a stripe. A stripe group refers to a set of stripes at the same offset position of a plurality of physical disks constituting a disk array.

RAID制御部280は、LDISKアクセス制御部244からの要求に応じて、LDISK11i内のディスク転送の対象となるSDISK110iとの間のディスクデータの転送を制御する。HDDインタフェース制御部(HDD I/F制御部)290は、RAID制御部280からの要求に応じて、SDISK110i内のディスク転送の対象となる、1つ以上の物理ディスクとの間のディスクデータの転送を制御する。   In response to a request from the LDISK access control unit 244, the RAID control unit 280 controls the transfer of disk data to and from the SDISK 110i that is a disk transfer target in the LDISK 11i. In response to a request from the RAID control unit 280, the HDD interface control unit (HDD I / F control unit) 290 transfers disk data to / from one or more physical disks that are targets of disk transfer in the SDISK 110i. To control.

なお、キャッシュメモリ104を2重化することも可能である。その場合、周知のミラードキャッシュ制御やコンカレントキャッシュ制御が必要となるが、これらについては本発明の本質ではないので説明を省略する。   Note that the cache memory 104 can be duplicated. In that case, well-known mirrored cache control and concurrent cache control are necessary, but these are not the essence of the present invention, and thus description thereof is omitted.

また、LDISK11a及び11bが必ずしもディスクアレイから構成されている必要はなく、したがってデータ記憶装置1がディスクアレイ装置でなくともよい。更に、LDISK11a及び11bに代えて物理ディスクのような他の記憶媒体を用いることも可能である。   Further, the LDISKs 11a and 11b are not necessarily configured from a disk array, and therefore the data storage device 1 may not be a disk array device. Furthermore, other storage media such as a physical disk can be used instead of the LDISKs 11a and 11b.

図4は、キャッシュブロック管理テーブル250のデータ構造例を示す。キャッシュブロック管理テーブル250は、キャッシュメモリ104にエントリされたデータを管理するためキャッシュ管理用データを保持する。キャッシュブロック管理テーブル250の各エントリは、LDISK番号フィールド251、ステートフラグフィールド252、論理アドレスフィールド253、WBCビット(WBCエントリビット)フィールド254、RDCビット(RDCエントリビット)フィールド255及びスナップビットフィールド256から構成される。   FIG. 4 shows an example of the data structure of the cache block management table 250. The cache block management table 250 holds cache management data for managing data entered in the cache memory 104. Each entry of the cache block management table 250 includes an LDISK number field 251, a state flag field 252, a logical address field 253, a WBC bit (WBC entry bit) field 254, an RDC bit (RDC entry bit) field 255, and a snap bit field 256. Composed.

LDISK番号フィールド251は、該当キャッシュブロックが割り当てられているLDISK番号を保持するのに用いられる。ステートフラグフィールド252は、該当キャッシュブロックの状態を示すフラグ情報を保持するのに用いられる。論理アドレスフィールド253は、該当キャッシュブロックが割り当てられているLDISK内の領域の論理アドレスを保持するのに用いられる。   The LDISK number field 251 is used to hold the LDISK number to which the corresponding cache block is allocated. The state flag field 252 is used to hold flag information indicating the state of the corresponding cache block. The logical address field 253 is used to hold a logical address of an area in LDISK to which the corresponding cache block is allocated.

WBCビットフィールド254は、該当キャッシュブロック内のダーティデータ(LDISK番号フィールド251で示されるLDISKに保存されるべきデータ)のエントリ状態をセクタ単位で示すビットマップ(第1の変数)を保持するのに用いられる。RDCビットフィールド255は、該当キャッシュブロック内のリードキャッシュデータのエントリ状態をセクタ単位で示すビットマップを保持するのに用いられる。スナップビットフィールド256は、該当キャッシュブロックにおいてバックアップLDISKに保存されるべきデータ(未保存のスナップデータ)のエントリ状態をセクタ単位で示すビットマップ(第2の変数)を保持するのに用いられる。   The WBC bit field 254 holds a bitmap (first variable) indicating the entry state of dirty data (data to be stored in the LDISK indicated by the LDISK number field 251) in the corresponding cache block in units of sectors. Used. The RDC bit field 255 is used to hold a bitmap indicating the entry state of the read cache data in the corresponding cache block in units of sectors. The snap bit field 256 is used to hold a bitmap (second variable) indicating the entry state of data (unsaved snap data) to be saved in the backup LDISK in the corresponding cache block in units of sectors.

WBCビットフィールド254、RDCビットフィールド255及びスナップビットフィールド256にそれぞれ保持されるビットマップを構成するビットを、それぞれ、WBCビット、RDCビット及びスナップビットと称する。WBCビット、RDCビット及びスナップビットは、例えば“1”のとき該当キャッシュブロック内の該当セクタのデータ(ダーティデータ、リードキャッシュデータ、及び未保存のスナップデータ)がキャッシュメモリ104にエントリされており、“0”のとき該当セクタのデータはキャッシュメモリ104にエントリされていないことを示す。   The bits constituting the bitmap held in the WBC bit field 254, the RDC bit field 255, and the snap bit field 256 are referred to as a WBC bit, an RDC bit, and a snap bit, respectively. For example, when the WBC bit, the RDC bit, and the snap bit are “1”, data of the corresponding sector in the corresponding cache block (dirty data, read cache data, and unstored snap data) is entered in the cache memory 104, When “0”, it indicates that the data of the sector is not entered in the cache memory 104.

本実施形態では、1キャッシュブロックは16KB(キロバイト)であり、1セクタは512B(バイト)である。つまり、1キャッシュブロックのサイズは32セクタ分である。したがって、WBCビットフィールド254、RDCビットフィールド255及びスナップビットフィールド256の各フィールドに保持されるビットマップは、32ビットで構成される。LDISK11i毎の“1”のスナップビットが存在するキャッシュブロックの数(未保存のスナップデータが存在するキャッシュブロックの数)は、スナップカウンタ260iによってカウントされる。   In the present embodiment, one cache block is 16 KB (kilobytes), and one sector is 512 B (bytes). That is, the size of one cache block is 32 sectors. Therefore, the bitmap held in each of the WBC bit field 254, the RDC bit field 255, and the snap bit field 256 is composed of 32 bits. The number of cache blocks having “1” snap bits for each LDISK 11i (the number of cache blocks having unsaved snap data) is counted by the snap counter 260i.

図5は、本実施形態で適用されるレプリケーション(筐体内レプリケーション)の状態遷移の一例を示す。本実施形態のデータ記憶装置1において取り得るレプリケーションの状態、つまりマスタLDISK11a及びバックアップLDISK11bのレプリケーション(レプリケーション管理)の状態は、同期状態(第1の状態)、スプリット状態(第2の状態)及びスプリット移行状態(第3の状態)の3つである。   FIG. 5 shows an example of state transition of replication (intra-cabinet replication) applied in the present embodiment. The replication states that can be taken in the data storage device 1 of this embodiment, that is, the replication (replication management) states of the master LDISK 11a and the backup LDISK 11b are the synchronization state (first state), split state (second state), and split. There are three transition states (third state).

「同期状態」とは、本実施形態のようにLDISK11aがマスタLDISK(一次記憶媒体)で、LDISK11bがバックアップLDISK(二次記憶媒体)である場合、両LDISKがミラーとして同期をとって運用されている状態を指す。「スプリット状態」とは、マスタLDISKとバックアップLDISKとが論理的に分離(切り離)されている状態を指す。   "Synchronized state" means that when LDISK 11a is a master LDISK (primary storage medium) and LDISK 11b is a backup LDISK (secondary storage medium) as in this embodiment, both LDISKs are operated in synchronization as mirrors. Refers to the state of being. The “split state” refers to a state where the master LDISK and the backup LDISK are logically separated (separated).

「スプリット移行状態」とは、「同期状態」から「スプリット状態」へ移行する中間状態であり、スナップショットがバックアップLDISK11bのデータとして確定していない状態を指す。具体的には、マスタLDISK11aに対応付けられているキャッシュブロックの中に、バックアップLDISK11bに保存されるべきデータ(未保存のスナップデータ)を含むキャッシュブロックが1つ以上存在する状態を指す。つまり、「スプリット移行状態」とは、マスタLDISK11aに対応付けられているキャッシュ管理モジュール240のエントリの中に、“1”にセットされているスナップビットを含むエントリが1つ以上存在する状態を指す。   The “split transition state” is an intermediate state in which the “synchronization state” transitions to the “split state”, and indicates a state in which the snapshot is not fixed as data of the backup LDISK 11b. Specifically, this indicates a state in which one or more cache blocks including data (unsaved snap data) to be saved in the backup LDISK 11b exist among the cache blocks associated with the master LDISK 11a. In other words, the “split transition state” refers to a state in which one or more entries including the snap bit set to “1” exist among the entries of the cache management module 240 associated with the master LDISK 11a. .

なお、「スプリット移行状態」はホスト機器からは認識されないものとする。つまりデータ記憶装置1における「スプリット移行状態」は、ホスト機器からは「スプリット状態」として認識されるものとする。   Note that the “split transition state” is not recognized by the host device. That is, the “split transition state” in the data storage device 1 is recognized as a “split state” by the host device.

以下の説明では、レプリケーションが設定されるマスタLDISK11a及びバックアップLDISK11bの両LDISK(論理ディスク)を、メンバLDISK(メンバ論理ディスク)、またはレプリケーションを構成するメンバLDISKと称することがある。   In the following description, the master LDISK 11a and the backup LDISK 11b in which replication is set may be referred to as member LDISK (member logical disk) or member LDISK constituting replication.

レプリケーションの状態は、レプリケーション管理テーブル270によって管理される。図6は、レプリケーション管理テーブル270のデータ構造例を示す。レプリケーション管理テーブル270の各エントリは、マスタLDISK番号フィールド271、バックアップLDISK番号フィールド272及びステータスフィールド273から構成される。   The replication status is managed by the replication management table 270. FIG. 6 shows an example of the data structure of the replication management table 270. Each entry of the replication management table 270 includes a master LDISK number field 271, a backup LDISK number field 272, and a status field 273.

マスタLDISK番号フィールド271及びバックアップLDISK番号フィールド272は、レプリケーションを構成するメンバLDISKのそれぞれLDISK番号(マスタLDISK番号及びバックアップLDISK番号)を保持するのに用いられる。ステータスフィールド273は、フィールド271及び272に保持されているLDISK番号で指定されるメンバLDISKのレプリケーション状態を示すステータス情報を保持するのに用いられる。   The master LDISK number field 271 and the backup LDISK number field 272 are used to hold the LDISK numbers (master LDISK number and backup LDISK number) of the member LDISK constituting the replication. The status field 273 is used to hold status information indicating the replication status of the member LDISK specified by the LDISK number held in the fields 271 and 272.

マスタLDISK11a及びバックアップLDISK11bのレプリケーションの状態が同期状態にあるときに、制御装置10内のホストインタフェース制御部210がホスト機器からスナップショット作成(ミラー状態の解除)を指示するためのスプリットコマンド(スナップショット作成要求)を受信したものとする。IO管理部220は、このスプリットコマンドをホストインタフェース制御部210から受け取ると、キャッシュ管理モジュール240内のIOアクセス制御部241を介してキャッシュメモリ管理部243にスナップショット作成を要求する。すると、キャッシュメモリ管理部243はスナップショット作成手段として機能して、以下に述べるスナップショット作成処理を実行する。   When the replication status of the master LDISK 11a and the backup LDISK 11b is synchronous, the split command (snapshot) for the host interface control unit 210 in the control device 10 to instruct the creation of a snapshot (cancellation of mirror status) from the host device Create request). When the split command is received from the host interface control unit 210, the IO management unit 220 requests the cache memory management unit 243 to create a snapshot via the IO access control unit 241 in the cache management module 240. Then, the cache memory management unit 243 functions as a snapshot creation unit and executes a snapshot creation process described below.

以下、スプリットコマンド受信時のキャッシュメモリ管理部243を中心とする動作について、図7のフローチャートを参照して説明する。
まずキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250を参照し、LDISK番号フィールド251に保持されているLDISK番号がマスタLDISK11aのLDISK番号と一致、且つWBCビットフィールド254に保持されているビットマップに“0”でないWBCビット(つまり、“1”にセットされているWBCビット)を含むエントリ(目的エントリ)をサーチする(ステップS1)。
Hereinafter, an operation centered on the cache memory management unit 243 at the time of split command reception will be described with reference to the flowchart of FIG.
First, the cache memory management unit 243 refers to the cache block management table 250, and the LDISK number held in the LDISK number field 251 matches the LDISK number of the master LDISK 11 a and the bitmap held in the WBC bit field 254 is used. An entry (target entry) including a WBC bit other than “0” (that is, a WBC bit set to “1”) is searched (step S1).

キャッシュメモリ管理部243は、ステップS1でのサーチの結果、目的エントリの有無を判定する(ステップS2)。もし、目的エントリがあったならば(ステップS2がYes)、つまりキャッシュメモリ104上にマスタLDISK11aに保存されるべきデータ(ダーティデータ)が存在するならば、サーチされた全ての目的エントリについて、キャッシュメモリ管理部243は、エントリのWBCビットフィールド254に保持されているビットマップ(WBCビット群)を、エントリ内のスナップビットフィールド256にスナップビット群からなるビットマップとしてコピーする(ステップS3)。このコピーにより、サーチされた各目的エントリのスナップビットフィールド256に保持されるビットマップは、スプリットコマンド受信時における未保存のスナップデータの範囲を示す。   The cache memory management unit 243 determines whether or not there is a target entry as a result of the search in step S1 (step S2). If there is a target entry (Yes in step S2), that is, if there is data (dirty data) to be stored in the master LDISK 11a on the cache memory 104, the cache for all the target entries searched is cached. The memory management unit 243 copies the bitmap (WBC bit group) held in the entry's WBC bit field 254 to the snap bit field 256 in the entry as a bitmap consisting of the snap bit group (step S3). By this copying, the bitmap held in the snap bit field 256 of each searched target entry indicates the range of unsaved snap data when the split command is received.

そしてキャッシュメモリ管理部243は、マスタLDISK11aに対応したスナップカウンタ260aを、例えばサーチできたエントリの数だけインクリメントする(ステップS4)。スナップカウンタ260aの値は、キャッシュメモリ104に存在する、バックアップLDISK11bに保存されるべきスナップデータを含むキャッシュブロックの数を示す。なお、本実施形態と異なって、LDISK11aがバックアップLDSIK、LDISK11bがマスタLDISKとして用いられる場合には、キャッシュメモリ104に存在する、バックアップLDISKに保存されるべきスナップデータを含むキャッシュブロックの数を示すのに、スナップカウンタ260bが用いられる。   Then, the cache memory management unit 243 increments the snap counter 260a corresponding to the master LDISK 11a by, for example, the number of entries that can be searched (step S4). The value of the snap counter 260a indicates the number of cache blocks that exist in the cache memory 104 and include snap data to be stored in the backup LDISK 11b. Unlike the present embodiment, when the LDISK 11a is used as a backup LDSIK and the LDISK 11b is used as a master LDISK, the number of cache blocks that exist in the cache memory 104 and that include snap data to be stored in the backup LDISK is shown. In addition, a snap counter 260b is used.

ステップS4が実行された場合、スナップカウンタ260aの値は0でなく、1より大きい。このことは、バックアップLDISK11bに保存されるべきスナップデータを含むキャッシュブロックがキャッシュメモリ104内に存在することを示す。この場合、キャッシュメモリ管理部243は、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、レプリケーション管理部230によって、同期状態を示すステータス情報からスプリット移行状態を示すステータス情報に更新させる(ステップS5)。これにより、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態は、図5において矢印501で示されるように、同期状態からスプリット移行状態に遷移する。   When step S4 is executed, the value of the snap counter 260a is not 0 but larger than 1. This indicates that a cache block including snap data to be stored in the backup LDISK 11 b exists in the cache memory 104. In this case, the cache memory management unit 243 splits the status information held in the replication management table 270 in association with the LDISK numbers of the master LDISK 11a and the backup LDISK 11b from the status information indicating the synchronization state by the replication management unit 230. The status information indicating the transition state is updated (step S5). As a result, the replication state of the master LDISK 11a and the backup LDISK 11b transitions from the synchronization state to the split transition state as indicated by an arrow 501 in FIG.

キャッシュメモリ管理部243は、ステップS5の実行後、ホスト機器からのスプリットコマンド(スプリット要求)に対し、レプリケーション管理部230によりIO管理部220を介してホスト機器にスプリット完了を通知させる(ステップS7)。   After executing step S5, the cache memory management unit 243 causes the replication management unit 230 to notify the host device of the completion of splitting via the IO management unit 220 in response to the split command (split request) from the host device (step S7). .

このように本実施形態においては、ホスト機器からのスプリットコマンドの受信時に、マスタLDISK11a及びバックアップLDISK11bに対するデステージングが行われない。キャッシュメモリ管理部243(スナップショット作成手段)は、キャッシュブロック管理テーブル250内の、“1”にセットされているWBCビットを含むエントリを対象に、エントリのWBCビットフィールド254に保持されているビットマップを、エントリ内のスナップビットフィールド256にコピーする動作の完了をもって、ホスト機器にスプリット完了を通知する。ホスト機器は、このスプリット完了通知により、マスタLDISK11a及びバックアップLDISK11bのレプリケーションの状態が、同期状態からスプリット状態に遷移したと認識する。つまり本実施形態では、データ記憶装置1におけるスプリット移行状態は、ホスト機器からは、前述のにようにスプリット状態として認識される。   As described above, in this embodiment, when the split command is received from the host device, destaging is not performed on the master LDISK 11a and the backup LDISK 11b. The cache memory management unit 243 (snapshot creation means) sets the bit held in the WBC bit field 254 of the entry for the entry including the WBC bit set to “1” in the cache block management table 250. When the operation of copying the map to the snap bit field 256 in the entry is completed, the host device is notified of the completion of splitting. The host device recognizes that the replication state of the master LDISK 11a and the backup LDISK 11b has changed from the synchronization state to the split state by this split completion notification. That is, in this embodiment, the split transition state in the data storage device 1 is recognized as a split state from the host device as described above.

一方、目的エントリが1つもなかった場合(ステップS2がNo)、つまりキャッシュメモリ104上にダーティデータが存在せず、スナップカウンタ260aの値が0の場合には、キャッシュメモリ管理部243は、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、レプリケーション管理部230によって、スプリット状態を示すステータス情報に更新させる(ステップS6)。つまりマスタLDISK11aに保存されるべきダーティデータが存在せず、したがってバックアップLDISK11bに保存されるべきスナップデータも存在しない場合、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態は、同期状態から、スプリット移行状態を経由することなく、スプリット状態に遷移する。しかし、このような状態遷移の例は希である。通常は、後述するようにスプリット完了通知後に、図5において矢印502で示されるように、スプリット移行状態からスプリット状態に遷移する。   On the other hand, when there is no target entry (No in step S2), that is, when there is no dirty data on the cache memory 104 and the value of the snap counter 260a is 0, the cache memory management unit 243 performs replication. The status information held in association with the LDISK numbers of the master LDISK 11a and backup LDISK 11b in the management table 270 is updated by the replication management unit 230 to status information indicating the split state (step S6). That is, when there is no dirty data to be stored in the master LDISK 11a, and therefore there is no snap data to be stored in the backup LDISK 11b, the replication state of the master LDISK 11a and the backup LDISK 11b passes from the synchronization state to the split transition state. Without making a transition to the split state. However, examples of such state transition are rare. Normally, as will be described later, after the split completion notification, the transition from the split transition state to the split state is made as indicated by an arrow 502 in FIG.

キャッシュメモリ管理部243は、ステップS6の実行後、ホスト機器からのスプリットコマンドに対し、レプリケーション管理部230によりIO管理部220を介してホスト機器にスプリット完了を通知させる(ステップS7)。   After executing step S6, the cache memory management unit 243 causes the replication management unit 230 to notify the host device of the completion of splitting via the IO management unit 220 in response to the split command from the host device (step S7).

その後、マスタLDISK11a及びバックアップLDISK11bがスプリット状態にあるときに、ホスト機器から制御装置10に対してシンクコマンドが発行されたものとする。この場合、ホスト機器からのマスタLDISK11aに対するI/O要求及びバックアップLDISK11bに対するI/O要求が一時止められる。ここで、マスタLDISK11aの内容とバックアップLDISK11bの内容とが相違しているならば、その相違しているマスタLDISK11aのデータの複製(コピー)がバックアップLDISK11bに保存される。そして、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報が、スプリット状態から同期状態に更新される。これにより、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態が、図5において矢印503で示されるように、スプリット状態から同期状態に遷移する。   Thereafter, it is assumed that when the master LDISK 11a and the backup LDISK 11b are in a split state, a sync command is issued from the host device to the control device 10. In this case, the I / O request for the master LDISK 11a and the I / O request for the backup LDISK 11b from the host device are temporarily stopped. If the contents of the master LDISK 11a are different from the contents of the backup LDISK 11b, a copy (copy) of the data of the different master LDISK 11a is stored in the backup LDISK 11b. The status information held in the replication management table 270 in association with the LDISK numbers of the master LDISK 11a and the backup LDISK 11b is updated from the split state to the synchronous state. As a result, the replication state of the master LDISK 11a and the backup LDISK 11b transitions from the split state to the synchronous state as indicated by an arrow 503 in FIG.

次に、メンバLDISKのうちの、例えばマスタLDISK11aにデータを書き込むことを要求するための書き込み要求(第1の書き込み要求)が、ホスト機器から制御装置10に対して発行された場合の動作について、図8のフローチャートを参照して説明する。   Next, regarding the operation when a write request (first write request) for requesting to write data to, for example, the master LDISK 11a among the member LDISKs is issued from the host device to the control device 10, This will be described with reference to the flowchart of FIG.

ホスト機器からの第1の書き込み要求は、制御装置10内のホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は書き込み制御手段として機能して、図8のフローチャートに従う処理を次のように実行する。   The first write request from the host device is received by the host interface control unit 210 in the control device 10 and passed to the cache management module 240 via the IO management unit 220. Then, the cache memory management unit 243 in the cache management module 240 functions as a write control unit, and executes the processing according to the flowchart of FIG. 8 as follows.

まずキャッシュメモリ管理部243は、ホスト機器からの第1の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって示されるマスタLDISK11a内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS11)。   First, the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the first write request from the host device, and accesses the access range (write range) in the master LDISK 11a indicated by the access information. ) Is searched for an entry of the cache block corresponding to ().

次にキャッシュメモリ管理部243は、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの“1”にセットされているスナップビットの範囲と、アクセス範囲とが重複しているかを判定する(ステップS12)。つまりキャッシュメモリ管理部243は、スナップ時のダーティデータの範囲とアクセス範囲とが重複しているかを判定する。   Next, the cache memory management unit 243 sets the snap bit set to “1” in the bitmap (snap bit group) held in the snap bit field 256 of the entry in the searched cache block management table 250. It is determined whether the range and the access range overlap (step S12). That is, the cache memory management unit 243 determines whether the dirty data range and the access range at the time of snapping overlap.

もし、両範囲が重複しているならば(ステップS12がYes)、その重複を解消するために、キャッシュメモリ管理部243は、キャッシュメモリ104に格納されている、その重複範囲に対応するキャッシュブロック内のデータ(未保存のスナップ時のデータ)をバックアップLDISK11bに書き込むための書き込みリクエスト(をLDISKアクセス制御部244に発行し、バックアップLDISK11bに重複範囲に対応するスナップ時のデータを保存する(ステップS13)。   If both ranges overlap (Yes in step S12), the cache memory management unit 243 stores the cache block corresponding to the overlap range stored in the cache memory 104 in order to eliminate the overlap. Is issued to the LDISK access control unit 244 and the data at the time of snap corresponding to the overlapping range is stored in the backup LDISK 11b (step S13). ).

書き込みリクエストの発行によりLDISKアクセス制御部244は、RAID制御部280及びHDDインタフェース制御部290を介して、重複範囲に対応するキャッシュブロック内のデータを、バックアップLDISK11bの該当するアクセス範囲に書き込むためのライトアクセス制御を開始する。このバックアップLDISK11bへのライトアクセス制御により、バックアップLDISK11bに重複範囲に対応するスナップ時のデータが保存される。   When the write request is issued, the LDISK access control unit 244 writes the data in the cache block corresponding to the overlapping range to the corresponding access range of the backup LDISK 11b via the RAID control unit 280 and the HDD interface control unit 290. Start access control. By this write access control to the backup LDISK 11b, the data at the time of snapping corresponding to the overlapping range is stored in the backup LDISK 11b.

もし本実施形態と異なって、ステップS11〜S13が実行されずに、ホスト機器からの第1の書き込み要求に従ってマスタLDISK11aに対するデータの書き込みが行われたならば、重複範囲に対応するキャッシュメモリ104の領域のデータが、第1の書き込み要求で指定される新たなデータで上書きされるため、重複範囲に対応するスナップ時のデータが失われてしまう。そのため従来技術では、ホスト機器からのスプリットコマンドの受信時に、キャッシュメモリ104上のダーティデータをマスタディスクとバックアップディスクの両方に吐き出すデステージングを必要とする。本実施形態では、このようなデステージングを行うことなく、重複範囲に対応するスナップ時のデータが失われてしまう不具合を防止することができる。   Unlike the present embodiment, if data is written to the master LDISK 11a according to the first write request from the host device without executing steps S11 to S13, the cache memory 104 corresponding to the overlap range is stored. Since the data in the area is overwritten with new data specified by the first write request, the data at the time of snapping corresponding to the overlapping range is lost. Therefore, in the prior art, destaging is required to discharge dirty data on the cache memory 104 to both the master disk and the backup disk when a split command is received from the host device. In the present embodiment, it is possible to prevent a problem that data at the time of snapping corresponding to the overlapping range is lost without performing such destaging.

さて、キャッシュメモリ管理部243は、ステップS13の後、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの重複範囲のスナップビットを“0”にリセットする(ステップS14)。これにより、スナップ時より後に重複範囲に対応するマスタLDISK11aの領域に書き込まれるデータが、未保存のスナップデータとしてバックアップLDISK11bに保存される不具合を防止できる。   Now, after step S13, the cache memory management unit 243, after step S13, the snap bits in the overlapping range of the bitmap (snap bit group) held in the snap bit field 256 of the entry in the searched cache block management table 250. Is reset to "0" (step S14). As a result, it is possible to prevent a problem that data written in the area of the master LDISK 11a corresponding to the overlapping range after snapping is saved in the backup LDISK 11b as unsaved snap data.

次にキャッシュメモリ管理部243は、重複範囲のスナップビットをリセットしたことにより、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となっているかを判定する(ステップS15)。もし、全スナップビットが “0”となっているならば(ステップS15がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応して設けられているスナップカウンタ260aを、重複範囲に対応するキャッシュブロックの数だけディクリメントする(ステップS16)。   Next, the cache memory management unit 243 resets the overlapping range snap bits, so that all the snap bits in the bitmap held in the snap bit field 256 of the entry in the searched cache block management table 250 are all stored. It is determined whether it is “0” (step S15). If all the snap bits are “0” (Yes in step S15), the cache memory management unit 243 sets the snap counter 260a provided corresponding to the master LDISK 11a to the cache block corresponding to the overlapping range. Is decremented by the number (step S16).

次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS17)。もし、スナップカウンタ260aの値が0となったならば(ステップS17がYes)、キャッシュメモリ管理部243は、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によってスプリット移行状態からスプリット状態に遷移させる(ステップS18)。即ちレプリケーション管理部230は、キャッシュメモリ管理部243からの要求に応じて、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、スプリット状態を示すステータス情報に更新する。   Next, the cache memory management unit 243 determines whether or not the value of the snap counter 260a becomes 0 as a result of decrementing the snap counter 260a (step S17). If the value of the snap counter 260a becomes 0 (Yes in step S17), the cache memory management unit 243 changes the replication state of the master LDISK 11a and the backup LDISK 11b from the split transition state to the split state by the replication management unit 230. A transition is made (step S18). That is, in response to a request from the cache memory management unit 243, the replication management unit 230 displays status information that is stored in the replication management table 270 in association with the LDISK numbers of the master LDISK 11a and the backup LDISK 11b. Update to information.

すると、IO管理部220は、ホスト機器からの第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータ(ライトデータ)を、ホスト機器に要求する(ステップS19)。以降の動作は従来と同様であり、まず、IO管理部220からホスト機器に要求されたデータ(第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータ)が、ホスト機器から制御装置10に転送される。ホスト機器から制御装置10に転送されたライトデータは、制御装置10で受信される。   Then, the IO management unit 220 requests data (write data) to be written to the master LDISK 11a designated by the first write request from the host device (step S19). The subsequent operations are the same as in the prior art. First, data requested from the IO management unit 220 to the host device (data to be written to the master LDISK 11a specified by the first write request) is transferred from the host device to the control device 10. Transferred. The write data transferred from the host device to the control device 10 is received by the control device 10.

本実施形態において、ホスト機器から転送されたデータの「受信」とは、データがキャッシュメモリ104にエントリされることを含む。つまり、ホスト機器から制御装置10に転送された、マスタLDISK11aに書き込むべきライトデータは、ステップS11でサーチされたキャッシュブロック管理テーブル250の目的エントリに対応付けられているキャッシュメモリ104内のキャッシュブロックに、IO管理部220からの要求に基づくIOアクセス制御部241の制御の下で、キャッシュメモリ管理部243によってエントリされる。すると、IO管理部220からホスト機器に対して書き込み処理完了が通知される。このときキャッシュメモリ管理部243は、サーチされた目的エントリのWBCビットフィールド254に保持されているビットマップのうち、第1の書き込み要求で指定されたアクセス範囲に対応するWBCビットを“1”にセットする。   In the present embodiment, “reception” of data transferred from a host device includes entry of data into the cache memory 104. That is, the write data to be written to the master LDISK 11a transferred from the host device to the control device 10 is stored in the cache block in the cache memory 104 associated with the target entry of the cache block management table 250 searched in step S11. The entry is made by the cache memory management unit 243 under the control of the IO access control unit 241 based on the request from the IO management unit 220. Then, the completion of the writing process is notified from the IO management unit 220 to the host device. At this time, the cache memory management unit 243 sets the WBC bit corresponding to the access range specified by the first write request among the bitmaps held in the WBC bit field 254 of the searched target entry to “1”. set.

一方、ステップS12、S15またはS17の判定がNoの場合には、ステップS12、S15またはS17に続いてステップS19が実行される。   On the other hand, if the determination in step S12, S15, or S17 is No, step S19 is executed subsequent to step S12, S15, or S17.

なお、図8のフローチャートでは省略されているが、ステップS11で目的エントリをサーチできなかった場合、つまりアクセス範囲にヒットしなかった場合にも、ステップS19が実行される。但し、目的エントリをサーチできなかった場合、キャッシュメモリ管理部243は、キャッシュメモリ104上のキャッシュブロック(空きキャッシュブロック)を確保して、確保されたキャッシュブロックに、ライトデータをエントリする。すると、IO管理部220からホスト機器に対して書き込み処理完了が通知される。   Although omitted in the flowchart of FIG. 8, step S19 is also executed when the target entry cannot be searched in step S11, that is, when the access range is not hit. However, if the target entry cannot be searched, the cache memory management unit 243 secures a cache block (free cache block) on the cache memory 104 and enters write data in the secured cache block. Then, the completion of the writing process is notified from the IO management unit 220 to the host device.

このときキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250内の空きエントリを確保して、確保されたエントリに、キャッシュブロックをマスタLDISK11aのアクセス範囲に対応付けて管理するためのエントリ情報を設定する。このエントリ情報のLDISK番号フィールド251にはマスタLDISK11aのLDISK番号が保持され、WBCビットフィールド254にはデータの範囲を示すビットマップ(WBCビット群)が保持される。   At this time, the cache memory management unit 243 secures a free entry in the cache block management table 250, and sets entry information for managing the cache block in association with the access range of the master LDISK 11a in the secured entry. . The LDISK number field 251 of this entry information holds the LDISK number of the master LDISK 11a, and the WBC bit field 254 holds a bit map (WBC bit group) indicating the data range.

次に、レプリケーションが設定されているマスタLDISK11a及びバックアップLDISK11bのうちの、バックアップLDISK11bにデータを書き込むための書き込み要求(第2の書き込み要求)が、ホスト機器から制御装置10に対して発行された場合の動作について、図9のフローチャートを参照して説明する。   Next, when a write request (second write request) for writing data to the backup LDISK 11b out of the master LDISK 11a and the backup LDISK 11b in which replication is set is issued to the control device 10 This operation will be described with reference to the flowchart of FIG.

ホスト機器からの第2の書き込み要求は、ホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は書き込み制御手段として機能して、図9のフローチャートに従う処理を次のように実行する。   The second write request from the host device is received by the host interface control unit 210 and passed to the cache management module 240 via the IO management unit 220. Then, the cache memory management unit 243 in the cache management module 240 functions as a write control unit, and executes the processing according to the flowchart of FIG. 9 as follows.

まずキャッシュメモリ管理部243は、ホスト機器からの第2の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって指定されるバックアップLDISK11b内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS21)。   First, the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the second write request from the host device, and accesses the access range (write) in the backup LDISK 11b specified by the access information. The cache block entry corresponding to (range) is searched (step S21).

するとIO管理部220は、ホスト機器からの第2の書き込み要求で指定されたバックアップLDISK11bに書き込むべきデータを、ホスト機器に要求する(ステップS22)。これにより、第2の書き込み要求で指定されたバックアップLDISK11bに書き込むべきデータがホスト機器から転送されて、制御装置10で受信される。つまり、バックアップLDISK11bに書き込むべきデータは、ステップS11でサーチされたキャッシュブロック管理テーブル250の目的エントリに対応付けられているキャッシュメモリ104内のキャッシュブロックにエントリされる。   Then, the IO management unit 220 requests the host device for data to be written to the backup LDISK 11b specified by the second write request from the host device (step S22). As a result, data to be written to the backup LDISK 11b designated by the second write request is transferred from the host device and received by the control device 10. That is, data to be written to the backup LDISK 11b is entered in the cache block in the cache memory 104 associated with the target entry of the cache block management table 250 searched in step S11.

なお、図9のフローチャートでは省略されているが、ステップS21で目的エントリをサーチできなかった場合、つまりアクセス範囲にヒットしなかった場合にも、ステップS22が実行される。但し、目的エントリをサーチできなかった場合、キャッシュメモリ管理部243は、キャッシュメモリ104上のキャッシュブロックを確保して、確保されたキャッシュブロックに、上記データを格納する。このときキャッシュメモリ管理部243は、キャッシュメモリ104内のエントリを確保して、確保されたエントリに、キャッシュブロックをバックアップLDISK11bのアクセス範囲に対応付けて管理するためのエントリ情報を設定する。このエントリ情報のLDISK番号フィールド251にはバックアップLDISK11bのLDISK番号が保持され、WBCビットフィールド254にはデータの範囲を示すビットマップ(WBCビット群)が保持される。   Although omitted in the flowchart of FIG. 9, step S22 is executed even when the target entry cannot be searched in step S21, that is, when the access range is not hit. However, if the target entry cannot be searched, the cache memory management unit 243 secures a cache block on the cache memory 104 and stores the data in the secured cache block. At this time, the cache memory management unit 243 secures an entry in the cache memory 104, and sets entry information for managing the cache block in association with the access range of the backup LDISK 11b in the secured entry. The LDISK number field 251 of this entry information holds the LDISK number of the backup LDISK 11b, and the WBC bit field 254 holds a bit map (WBC bit group) indicating the data range.

次にキャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照し、バックアップLDISK11bをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS23)。このレプリケーションの状態は、バックアップLDISK11bのLDISK番号が保持されているバックアップLDISK番号フィールド272を含むレプリケーション管理テーブル270のエントリを探して、エントリ内のステータスフィールド273を参照することによって判定することができる。   Next, the cache memory management unit 243 refers to the replication management table 270 and determines whether the replication state in which the backup LDISK 11b is the member LDISK is in the split transition state (step S23). The replication status can be determined by searching for an entry in the replication management table 270 including the backup LDISK number field 272 in which the LDISK number of the backup LDISK 11b is stored, and referring to the status field 273 in the entry.

もし、レプリケーションの状態がスプリット移行状態にある場合(ステップS23がYes)、キャッシュメモリ管理部243は、第2の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報よって示されるバックアップLDISK11b内のアクセス範囲(書き込み範囲)と同一のマスタLDISK11a内の範囲(領域)に対応するキャッシュブロックのエントリをサーチする(ステップS24)。このステップS24は、例えばステップS22でホスト機器に要求されたデータ(バックアップLDISK11bに書き込まれるべきデータ)がホスト機器から転送されて制御装置10で受信された後に実行される。   If the replication state is the split transition state (Yes in step S23), the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the second write request, The cache block entry corresponding to the same range (area) in the master LDISK 11a as the access range (write range) in the backup LDISK 11b indicated by the access information is searched (step S24). This step S24 is executed after the data requested to the host device in step S22 (data to be written to the backup LDISK 11b) is transferred from the host device and received by the control device 10, for example.

キャッシュメモリ管理部243は、ステップS24でのサーチの結果、キャッシュブロック管理テーブル250内の該当するキャッシュブロックの目的エントリがサーチできたかを判定する(ステップS25)。もし、目的エントリがサーチできたならば(ステップS25がYes)、つまりアクセス範囲にヒットしたならば、キャッシュメモリ管理部243は、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちのアクセス範囲に対応するスナップビットの範囲に“1”にセットされているスナップビットが存在するかを判定する(ステップS26)。   The cache memory management unit 243 determines whether or not the target entry of the corresponding cache block in the cache block management table 250 has been searched as a result of the search in step S24 (step S25). If the target entry can be searched (Yes in step S25), that is, if the access range is hit, the cache memory management unit 243 stores the bitmap (snap bit group) stored in the snap bit field 256 of the entry. ) In the snap bit range corresponding to the access range is determined whether there is a snap bit set to "1" (step S26).

ここで、アクセス範囲に対応するスナップビットの範囲に、“1”にセットされているスナップビットが存在するものとする(ステップS26がYes)。つまり、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの“1”にセットされているスナップビットの範囲と、アクセス範囲(書き込み範囲)に対応するスナップビットの範囲とが重複しているものとする。   Here, it is assumed that there is a snap bit set to “1” in the snap bit range corresponding to the access range (Yes in step S26). That is, the snap bit range set to “1” in the bitmap (snap bit group) held in the snap bit field 256 of the entry in the searched cache block management table 250 and the access range ( It is assumed that the snap bit range corresponding to the (write range) overlaps.

このことは、バックアップLDISKにおける重複しているスナップデータの領域に、第2の書き込み要求で指定されたデータが上書きされることとなるため、重複領域に対応するキャッシュブロック内のデータ(未保存のスナップ時のデータ)をバックアップLDISKに書き込む必要がなくなることを意味する。逆に、第2の書き込み要求で指定されたデータのバックアップLDISK11bへの書き込みが実行されたとしても、重複領域に対応するキャッシュブロック内のデータ(未保存のスナップ時のデータ)をバックアップLDISKに書き込む動作が行われるならば、第2の書き込み要求で指定されたデータはマスタLDISK11aの古いデータで上書きされる可能性がある。   This is because the data specified in the second write request is overwritten in the overlapping snap data area in the backup LDISK, and therefore the data in the cache block corresponding to the overlapping area (unsaved) This means that it is not necessary to write the data at the time of snapping to the backup LDISK. Conversely, even if the data specified by the second write request is written to the backup LDISK 11b, the data in the cache block corresponding to the overlapping area (data at the time of unsaved snap) is written to the backup LDISK. If the operation is performed, the data specified in the second write request may be overwritten with the old data of the master LDISK 11a.

そこで本実施形態においキャッシュメモリ管理部243は、ステップS24でサーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうち、アクセス範囲に対応するスナップビットを“0”にリセットする(ステップS27)。これにより、第2の書き込み要求で指定されたデータのバックアップLDISK11bへの書き込みが実行されても、そのデータが重複範囲に対応するマスタLDISK11aの古いデータで上書きされることを防止できる。   Therefore, in this embodiment, the cache memory management unit 243 corresponds to the access range of the bitmap (snap bit group) held in the snap bit field 256 of the entry in the cache block management table 250 searched in step S24. The snap bit to be reset is reset to “0” (step S27). As a result, even if the data specified by the second write request is written to the backup LDISK 11b, the data can be prevented from being overwritten with old data of the master LDISK 11a corresponding to the overlapping range.

次にキャッシュメモリ管理部243は、アクセス範囲に対応するスナップビットをリセットしたことにより、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となっているかを判定する(ステップS28)。もし、全スナップビットが “0”となっているならば(ステップS28がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応したスナップカウンタ260aを、アクセス範囲に対応するキャッシュブロックの数だけディクリメントする(ステップS29)。   Next, the cache memory management unit 243 resets the snap bits corresponding to the access range, so that all snap bits in the bitmap held in the snap bit field 256 of the entry in the searched cache block management table 250 are displayed. Are all “0” (step S28). If all the snap bits are “0” (Yes in step S28), the cache memory management unit 243 decrements the snap counter 260a corresponding to the master LDISK 11a by the number of cache blocks corresponding to the access range. (Step S29).

次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS30)。もし、スナップカウンタ260aの値が0となったならば(ステップS30がYes)、キャッシュメモリ管理部243は、ステップS18と同様に、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によってスプリット移行状態からスプリット状態に遷移させる(ステップS31)。   Next, the cache memory management unit 243 determines whether the value of the snap counter 260a has become 0 as a result of decrementing the snap counter 260a (step S30). If the value of the snap counter 260a becomes 0 (Yes in step S30), the cache memory management unit 243 splits the replication statuses of the master LDISK 11a and the backup LDISK 11b by the replication management unit 230 in the same manner as in step S18. The transition state is changed to the split state (step S31).

次に、ホスト機器から制御装置10に対して、マスタLDISK11aからデータを読み込むことを要求するための読み込み要求(第1の読み込み要求)が発行されたものとする。この場合、全てのレプリケーション状態で処理の内容に差異はないため、説明を省略する。   Next, it is assumed that a read request (first read request) for issuing a request to read data from the master LDISK 11a is issued from the host device to the control apparatus 10. In this case, there is no difference in processing contents in all replication states, and thus the description is omitted.

次に、ホスト機器から制御装置10に対して、バックアップLDISK11bからデータを読み込むことを要求するための読み込み要求(第2の読み込み要求)が発行された場合の動作について、図10のフローチャートを参照して説明する。   Next, the operation when a read request (second read request) for requesting the controller 10 to read data from the backup LDISK 11b is issued from the host device to the control apparatus 10 will be described with reference to the flowchart of FIG. I will explain.

ホスト機器からの第2の読み込み要求は、制御装置10内のホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は読み込み制御手段として機能して、図10のフローチャートに従う処理を次のように実行する。   The second read request from the host device is received by the host interface control unit 210 in the control device 10 and passed to the cache management module 240 via the IO management unit 220. Then, the cache memory management unit 243 in the cache management module 240 functions as a read control unit, and executes the processing according to the flowchart of FIG. 10 as follows.

まずキャッシュメモリ管理部243は、ステップS23と同様に、レプリケーション管理テーブル270を参照し、バックアップLDISK11bをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS41)。   First, similarly to step S23, the cache memory management unit 243 refers to the replication management table 270, and determines whether the replication state in which the backup LDISK 11b is the member LDISK is in the split transition state (step S41).

もし、レプリケーションの状態がスプリット移行状態にある場合(ステップS41がYes)、キャッシュメモリ管理部243は、第2の読み込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報よって示されるバックアップLDISK11b内のアクセス範囲(読み込み範囲)と同一のマスタLDISK11a内の範囲(領域)に対応するキャッシュブロックのエントリをサーチする(ステップS42)。   If the replication state is the split transition state (Yes in step S41), the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the second read request, The cache block entry corresponding to the same range (area) in the master LDISK 11a as the access range (reading range) in the backup LDISK 11b indicated by the access information is searched (step S42).

キャッシュメモリ管理部243は、ステップS42でのサーチの結果、キャッシュブロック管理テーブル250内の該当するキャッシュブロックの目的エントリがサーチできたかを判定する(ステップS43)。もし、目的エントリがサーチできたならば(ステップS43がYes)、つまりアクセス範囲にヒットしたならば、キャッシュメモリ管理部243は、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの“1”にセットされているスナップビットの範囲と、アクセス範囲(読み込み範囲)に対応するスナップビットの範囲とが重複しているかを判定する(ステップS44)。つまりキャッシュメモリ管理部243は、スナップ時のダーティデータ(未保存のスナップデータ)とアクセス範囲とが重複しているかを判定する。   The cache memory management unit 243 determines whether the target entry of the corresponding cache block in the cache block management table 250 has been searched as a result of the search in step S42 (step S43). If the target entry can be searched (Yes in step S43), that is, if the access range is hit, the cache memory management unit 243 stores the bitmap (snap bit group) held in the snap bit field 256 of the entry. ) Of the snap bit set to “1” and the range of the snap bit corresponding to the access range (reading range) are determined (step S44). That is, the cache memory management unit 243 determines whether the dirty data (unsaved snap data) at the time of snapping and the access range overlap.

もし、両範囲が重複しているならば(ステップS44がYes)、その重複範囲に関しては、キャッシュメモリ管理部243は、キャッシュメモリ104に格納されている、重複範囲に対応するキャッシュブロック内のデータ、つまり未保存のスナップ時のマスタLDISK11aのデータを、IOアクセス制御部241により、バックアップLDISK11bのデータとしてホスト機器に転送させる(ステップS45)。   If both ranges overlap (Yes in step S44), for the overlap range, the cache memory management unit 243 stores the data in the cache block corresponding to the overlap range stored in the cache memory 104. That is, the master LDISK 11a data at the time of unsaved snap is transferred to the host device as the data of the backup LDISK 11b by the IO access control unit 241 (step S45).

一方、バックアップLDISK11b内のアクセス範囲のうち重複範囲以外の範囲(非重複範囲)に関しては、キャッシュメモリ管理部243はキャッシュブロック管理テーブル250を参照し、バックアップLDISK11bの非重複範囲に対応するキャッシュブロックのエントリをサーチする(ステップS46)。キャッシュメモリ管理部243は、バックアップLDISK11bの非重複範囲に対応するキャッシュブロックのエントリがサーチできたか否かによって、キャッシュブロックのデータ、またはバックアップLDISK11b内の非重複範囲のデータを、IOアクセス制御部241によってホスト機器に転送させる(ステップS47)。   On the other hand, for a range other than the overlapping range (non-overlapping range) in the access range in the backup LDISK 11b, the cache memory management unit 243 refers to the cache block management table 250 and stores cache blocks corresponding to the non-overlapping range of the backup LDISK 11b. The entry is searched (step S46). The cache memory management unit 243 determines whether or not the cache block entry corresponding to the non-overlapping range of the backup LDISK 11b has been searched, and the data in the non-overlapping range in the backup LDISK 11b is transferred to the IO access control unit 241. To transfer to the host device (step S47).

一方、ステップS41、S43またはS44の判定がNoの場合、キャッシュメモリ管理部243は、第2の読み込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって示されるバックアップLDISK11b内のアクセス範囲に対応するキャッシュブロックのエントリをサーチする(ステップS46)。このアクセス範囲は、重複範囲が0の場合の非重複範囲に相当する。キャッシュメモリ管理部243は、バックアップLDISK11bのアクセス範囲に対応するキャッシュブロックのエントリがサーチできたか否かによって、キャッシュブロックのデータ、またはバックアップLDISK11b内のアクセス範囲のデータを、IOアクセス制御部241によってホスト機器に転送させる(ステップS47)。   On the other hand, when the determination in step S41, S43, or S44 is No, the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the second read request and indicates the access information. The cache block entry corresponding to the access range in the backup LDISK 11b to be searched is searched (step S46). This access range corresponds to a non-overlapping range when the overlapping range is zero. Depending on whether or not the cache block entry corresponding to the access range of the backup LDISK 11b can be searched, the cache memory management unit 243 uses the IO access control unit 241 to transfer the cache block data or the access range data in the backup LDISK 11b to the host. Transfer to the device (step S47).

次に、デステージング時の動作について、図11のフローチャートを参照して説明する。今、デステージング/ステージング制御部242が、マスタLDISK11aまたはバックアップLDISK11bに対して未だ書き込みが実施されていないキャッシュメモリ104上のデータを対象とするデステージングを、IO管理部220に対して要求したものとする。このデステージング要求はIO管理部220からIOアクセス制御部241を介してキャッシュメモリ管理部243に通知される。するとキャッシュメモリ管理部243は書き込み制御手段として機能して、図11のフローチャートに従う処理を次のように実行する。   Next, the operation at the time of destaging will be described with reference to the flowchart of FIG. The destaging / staging control unit 242 requested the IO management unit 220 to destage the data on the cache memory 104 that has not yet been written to the master LDISK 11a or the backup LDISK 11b. And This destaging request is notified from the IO management unit 220 to the cache memory management unit 243 via the IO access control unit 241. Then, the cache memory management unit 243 functions as a write control unit and executes the process according to the flowchart of FIG. 11 as follows.

まずキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250を参照し、WBCビットフィールド254に保持されているビットマップ(WBCビット群)内に“1”にセットされているWBCビットが存在するキャッシュブロックのエントリをサーチする(ステップS51)。   First, the cache memory management unit 243 refers to the cache block management table 250, and a cache block having a WBC bit set to “1” in the bitmap (WBC bit group) held in the WBC bit field 254 exists. Are searched for (step S51).

キャッシュメモリ管理部243は、ステップS51でサーチされた各キャッシュブロックのエントリについて、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)内に“1”にセットされているスナップビットが存在するかを判定する(ステップS52)。   The cache memory management unit 243 sets the snap bit set to “1” in the bitmap (snap bit group) held in the snap bit field 256 of the entry for each cache block searched in step S51. Is determined (step S52).

キャッシュメモリ管理部243は、“1”にセットされているスナップビットが存在するエントリ(ステップS52の判定がYesのエントリ)について、エントリのスナップビットフィールド256及びWBCビットフィールド254を比較し、“1”であるスナップビットの範囲とWBCビットの範囲が一致しているかを判定する(ステップS53)。   The cache memory management unit 243 compares the snap bit field 256 and the WBC bit field 254 of the entry for the entry having the snap bit set to “1” (the entry in which the determination in step S52 is Yes), and sets “1 It is determined whether the snap bit range “” and the WBC bit range match (step S 53).

もし、一致している場合(ステップS53がYes)、キャッシュメモリ管理部243は、キャッシュブロック内のその範囲のデータをマスタLDISK11a及びバックアップLDISK11bの双方に書き込むことを、LDISKアクセス制御部244に対して要求する(ステップS54)。   If they match (Yes in step S53), the cache memory management unit 243 informs the LDISK access control unit 244 that the data in that range in the cache block is written to both the master LDISK 11a and the backup LDISK 11b. A request is made (step S54).

これに対し、一致していない場合(ステップS53がNo)、キャッシュメモリ管理部243は、キャッシュブロック内のWBCビットが“1”の範囲のデータをマスタLDISK11aに書き込み、キャッシュブロック内のスナップビットが“1”の範囲のデータをバックアップLDISK11bに書き込むことを、LDISKアクセス制御部244に対して要求する(ステップS55)。   On the other hand, if they do not match (No in step S53), the cache memory management unit 243 writes the data in the range where the WBC bit in the cache block is “1” to the master LDISK 11a, and the snap bit in the cache block is The LDISK access control unit 244 is requested to write data in the range of “1” to the backup LDISK 11b (step S55).

なお、ステップS54は、ステップS55と等価である。よって、ステップS53の判定を省略して、常にステップS54あるいはステップS55が行われる構成であっても構わない。   Step S54 is equivalent to step S55. Thus, the determination in step S53 may be omitted, and step S54 or step S55 may always be performed.

キャッシュメモリ管理部243は、ステップS54またはS55(に基づく書き込み)が行われると、“1”にセットされているスナップビットが存在するキャッシュブロック管理テーブル250内の該当エントリのWBCビットフィールド254及びスナップビットフィールド256を対象に、それぞれ、LDISKアクセス制御部244に対して要求された書き込み範囲に対応するWBCビット及びスナップビットをクリアする(ステップS56)。   When step S54 or S55 (write based on) is performed, the cache memory management unit 243 performs the WBC bit field 254 and the snap of the corresponding entry in the cache block management table 250 in which the snap bit set to “1” exists. For the bit field 256, the WBC bit and the snap bit corresponding to the write range requested to the LDISK access control unit 244 are cleared (step S56).

次にキャッシュメモリ管理部243は、書き込み範囲のスナップビットをリセットしたことにより、キャッシュブロック管理テーブル250内の該当エントリの中に、スナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となったエントリが存在するかを判定する(ステップS57)。もし、該当するエントリが存在するならば(ステップS57がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応して設けられているスナップカウンタ260aを、対応するキャッシュブロックの数だけディクリメントする(ステップS58)。   Next, the cache memory management unit 243 resets the snap bit of the write range, so that all snap bits in the bitmap held in the snap bit field 256 are included in the corresponding entry in the cache block management table 250. It is determined whether there is an entry that is all “0” (step S57). If the corresponding entry exists (Yes in step S57), the cache memory management unit 243 decrements the snap counter 260a provided corresponding to the master LDISK 11a by the number of corresponding cache blocks (step S57). S58).

次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS59)。もし、スナップカウンタ260aの値が0となったならば(ステップS59がYes)、キャッシュメモリ管理部243は、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によって、スプリット移行状態からスプリット状態に遷移させる(ステップS60)。即ちレプリケーション管理部230は、キャッシュメモリ管理部243からの要求に応じて、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータスを、スプリット状態を示すステータスに更新する。   Next, the cache memory management unit 243 determines whether the value of the snap counter 260a has become 0 as a result of decrementing the snap counter 260a (step S59). If the value of the snap counter 260a becomes 0 (Yes in step S59), the cache memory management unit 243 changes the replication status of the master LDISK 11a and the backup LDISK 11b by the replication management unit 230 from the split transition state to the split state. (Step S60). That is, in response to a request from the cache memory management unit 243, the replication management unit 230 changes the status held in the replication management table 270 in association with the LDISK numbers of the master LDISK 11a and the backup LDISK 11b to a status indicating a split state. Update.

一方、ステップS57の判定がNoの場合、ステップS58以降の処理は行われない。また、ステップS59の判定がNoの場合、ステップS60の処理は行われない。   On the other hand, when the determination in step S57 is No, the processes after step S58 are not performed. If the determination in step S59 is No, the process in step S60 is not performed.

さて、キャッシュメモリ管理部243は、“1”にセットされているWBCビットは存在するが、“1”にセットされているスナップビットは存在しないエントリ(ステップS52の判定がNoのエントリ)に対応するキャッシュブロックについて、次のように処理する。まずキャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照して、レプリケーションの状態が同期状態にあるかを判定する(ステップS61)。   Now, the cache memory management unit 243 corresponds to an entry in which there is a WBC bit set to “1” but there is no snap bit set to “1” (an entry in which the determination in step S52 is No). The cache block to be processed is processed as follows. First, the cache memory management unit 243 refers to the replication management table 270 to determine whether the replication state is in a synchronous state (step S61).

もし、同期状態にある場合(ステップS61がYes)、キャッシュメモリ管理部243は、ステップS52の判定がNoのエントリのWBCビットフィールド254に基づき、エントリに対応するキャッシュブロック内のWBCビットが“1”の範囲のデータをマスタLDISK11a及びバックアップLDISK11bの双方に書き込む(筐体内レプリケーションの)ための書き込みリクエストをLDISKアクセス制御部244に発行する(ステップS62)。   If the cache memory management unit 243 is in a synchronized state (Yes in step S61), the cache memory management unit 243 determines that the WBC bit in the cache block corresponding to the entry is “1” based on the WBC bit field 254 of the entry in which the determination in step S52 is No. Is issued to the LDISK access control unit 244 in order to write the data in the range "" to both the master LDISK 11a and the backup LDISK 11b (intra-box replication) (step S62).

キャッシュメモリ管理部243は、書き込みリクエストに基づく書き込み(ここでは筐体内レプリケーション)が行われると、ステップS52の判定がNoのエントリ(“1”にセットされているスナップビットが存在しないエントリ)のWBCビットフィールド254を対象に、書き込みリクエストで指定した書き込み範囲に対応するWBCビットをリセットする(ステップS64)。   When the write based on the write request (in this case, replication within the case) is performed, the cache memory management unit 243 performs the WBC of the entry in which the determination in step S52 is No (the entry having no snap bit set to “1”). For the bit field 254, the WBC bit corresponding to the write range designated by the write request is reset (step S64).

これに対し、同期状態にないならば(ステップS61がNo)、キャッシュメモリ管理部243は、ステップS52の判定がNoのエントリのWBCビットフィールド254に基づき、エントリに対応するキャッシュブロック内のWBCビットが“1”の範囲のデータをマスタLDISK11a及びバックアップLDISK11bのいずれか一方に書き込むための書き込みリクエストをLDISKアクセス制御部244に発行する(ステップS63)。マスタLDISK11a及びバックアップLDISK11bのいずれにデータを書き込むかは、ステップS52の判定がNoのエントリのLDISK番号フィールド251に保持されているLDISK番号が、マスタLDISK11aまたはバックアップLDISK11bのいずれ対応付けられているかによって決定される。   On the other hand, if it is not in the synchronized state (No in step S61), the cache memory management unit 243 determines the WBC bit in the cache block corresponding to the entry based on the WBC bit field 254 of the entry in which the determination in step S52 is No. Is issued to the LDISK access control unit 244 to write data in the range of “1” to either the master LDISK 11a or the backup LDISK 11b (step S63). Whether to write data in the master LDISK 11a or the backup LDISK 11b is determined depending on whether the LDISK number held in the LDISK number field 251 of the entry whose determination in step S52 is No is associated with the master LDISK 11a or the backup LDISK 11b. Is done.

キャッシュメモリ管理部243は、書き込みリクエストに基づく書き込みが行われると、ステップS52の判定がNoのエントリのWBCビットフィールド254を対象に、書き込み範囲に対応するWBCビットをリセットする(ステップS64)。   When the write based on the write request is performed, the cache memory management unit 243 resets the WBC bit corresponding to the write range for the WBC bit field 254 of the entry whose determination in step S52 is No (step S64).

このように本実施形態においては、ホスト機器からのスプリットコマンドの受信時に、キャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254に保持されているビットマップ(キャッシュメモリ104にキャッシングされたデータのうちマスタLDISK11aに対して書き込みが実施されていないダーティデータの範囲を示すビットマップ)が、エントリのスナップビットフィールド256に保持されているビットマップ(バックアップLDISK11bに書き込まれるべきデータであるスナップデータの範囲を示すビットマップ)にコピーされる。そして、このコピー完了をもって、レプリケーションの状態が、同期状態からスプリット移行状態に遷移されて、スプリットコマンドに対するスナップショット作成の完了がホスト機器に通知される。ダーティデータのマスタLDISK11a及びバックアップLDISK11bへの書き出しは、スナップショット作成の完了の通知後に行われる。   As described above, in this embodiment, when the split command is received from the host device, the bitmap (of the data cached in the cache memory 104) held in the WBC bit field 254 of the entry in the cache block management table 250 is used. A bitmap indicating the range of dirty data that has not been written to the master LDISK 11a is a bitmap (snap data range that is data to be written to the backup LDISK 11b) held in the snap bit field 256 of the entry. Copied bitmap). Upon completion of this copy, the replication state is changed from the synchronization state to the split transition state, and the completion of snapshot creation for the split command is notified to the host device. The writing of dirty data to the master LDISK 11a and the backup LDISK 11b is performed after notification of completion of snapshot creation.

つまり、本実施形態によれば、スプリットコマンドの受信時に、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わないため、従来と比較して同期状態からスプリット状態への移行が短時間で完了し、高速にスナップショットを作成できる。しかも本実施形態では、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わずに、ミラー状態からスプリット状態へ移行しているにも拘わらず、キャッシュブロック管理テーブル250内での上述のコピー処理により、バックアップLDISK11bを正しくスプリット状態で運用させることができる。   That is, according to the present embodiment, when the split command is received, the master LDISK 11a and the backup LDISK 11b are not destaged, so that the transition from the synchronization state to the split state is completed in a short time compared to the conventional case, and at high speed. Snapshots can be created. In addition, in the present embodiment, the backup LDISK 11b is not copied by the above-described copy processing in the cache block management table 250 even though the master LDISK 11a and the backup LDISK 11b are not destaged and the mirror state is shifted to the split state. Can be operated in a split state correctly.

[変形例]
次に、実施形態の変形例について説明する。この変形例の第1の特徴は、実施形態と異なり、スプリットコマンドの受信時のスナップショット作成処理において、“1”にセットされているWBCビットを含むエントリをサーチして、エントリのWBCビットフィールド254に保持されているビットマップを、エントリ内のスナップビットフィールド256にコピーする動作を行わずに、レプリケーションの状態を同期状態からスプリット移行状態に遷移するだけで、スプリットコマンドに対するスプリット完了がホスト機器に通知される点にある。本変形例の第2の特徴は、マスタLDISK11aにデータを書き込むことを要求するための第1の書き込み要求が、ホスト機器から制御装置10に対して発行された場合の動作が、レプリケーションの状態(スプリット移行状態、スプリット状態または同期状態のいずれであるか)によって異なる点にもある。
[Modification]
Next, a modification of the embodiment will be described. The first feature of this modification is that, unlike the embodiment, in the snapshot creation process upon reception of the split command, an entry including the WBC bit set to “1” is searched for, and the WBC bit field of the entry The host device can complete the split for the split command only by changing the replication state from the synchronous state to the split transition state without performing the operation of copying the bitmap held in 254 to the snap bit field 256 in the entry. Is to be notified. The second feature of this modification is that the operation when the first write request for requesting to write data to the master LDISK 11a is issued from the host device to the control device 10 is the replication state ( There are also differences depending on whether the state is split transition state, split state, or synchronization state.

まず、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態が同期状態にあるときに、ホスト機器から制御装置10に対してスナップショット作成を指示するためのスプリットコマンドが発行された場合の動作について、図12のフローチャートを参照して説明する。制御装置10内のキャッシュメモリ管理部243は、スプリットコマンドを受信すると、スナップショット作成手段として機能する。   First, the operation when the split command for instructing the controller 10 to create a snapshot is issued from the host device when the replication state of the master LDISK 11a and the backup LDISK 11b is in the synchronous state is the flowchart of FIG. Will be described with reference to FIG. When the cache memory management unit 243 in the control apparatus 10 receives the split command, it functions as a snapshot creation unit.

まずキャッシュメモリ管理部243は、マスタLDISK11aに対応して設けられているスナップカウンタ260aの値が0であるかを判定する(ステップS71)。スナップカウンタ260aの値が0でない場合(ステップS71がNo)、キャッシュメモリ管理部243は、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、レプリケーション管理部230によって、スプリット移行状態を示すステータス情報に更新させる(ステップS72)。そしてキャッシュメモリ管理部243は、ホスト機器からのスプリットコマンド(スプリット要求)に対して、IO管理部220によりホスト機器にスプリット完了を通知させる(ステップS73)。   First, the cache memory management unit 243 determines whether the value of the snap counter 260a provided corresponding to the master LDISK 11a is 0 (step S71). If the value of the snap counter 260a is not 0 (No in step S71), the cache memory management unit 243 replicates the status information held in the replication management table 270 in association with the LDISK numbers of the master LDISK 11a and the backup LDISK 11b. The management unit 230 updates the status information indicating the split transition state (step S72). In response to the split command (split request) from the host device, the cache memory management unit 243 notifies the host device of the completion of splitting by the IO management unit 220 (step S73).

このように本変形例においては、ホスト機器からのスプリットコマンド受信時に、上記実施形態と異なって、キャッシュブロック管理テーブル250におけるWBCビットをスナップビットとしてコピーする処理を行わずに、レプリケーションの状態が同期状態からスプリット移行状態に遷移され、この状態遷移をもって、ホスト機器にスプリット完了が通知される。   As described above, in this modified example, when the split command is received from the host device, the replication status is synchronized without performing the process of copying the WBC bit as the snap bit in the cache block management table 250 unlike the above embodiment. The state is shifted to the split transition state, and with this state transition, the completion of split is notified to the host device.

但し、スナップカウンタ260aの値が0の場合には(ステップS71がYes)、キャッシュメモリ管理部243は、レプリケーション管理部230によって、スプリット状態を示すステータス情報に更新させる(ステップS74)。そしてキャッシュメモリ管理部243は、ホスト機器からのスプリットコマンドに対して、IO管理部220によりホスト機器にスプリット完了を通知させる(ステップS73)。   However, when the value of the snap counter 260a is 0 (Yes in Step S71), the cache memory management unit 243 causes the replication management unit 230 to update the status information indicating the split state (Step S74). In response to the split command from the host device, the cache memory management unit 243 causes the IO management unit 220 to notify the host device of the completion of splitting (step S73).

次に、レプリケーションが設定されているマスタLDISK11a及びバックアップLDISK11bのうちの、マスタLDISK11aにデータを書き込むことを要求するための第1の書き込み要求が、ホスト機器から制御装置10に対して発行された場合の動作について、図13のフローチャートを参照して説明する。   Next, when a first write request for requesting to write data to the master LDISK 11a out of the master LDISK 11a and the backup LDISK 11b in which replication is set is issued to the control device 10 Will be described with reference to the flowchart of FIG.

キャッシュメモリ管理部243は、ステップS11と同様に、ホスト機器からの第1の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって示されるマスタLDISK11a内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS81)。   Similarly to step S11, the cache memory management unit 243 refers to the cache block management table 250 based on the access information included in the first write request from the host device, and stores in the master LDISK 11a indicated by the access information. The cache block entry corresponding to the access range (write range) is searched (step S81).

次にキャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照し、マスタLDISK11aをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS82)。もし、レプリケーションの状態がスプリット移行状態にあるならば(ステップS82がYes)、キャッシュメモリ管理部243はステップS12と同様に、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップのうちの“1”にセットされているスナップビットの範囲と、アクセス範囲とが重複しているかを判定する(ステップS83)。   Next, the cache memory management unit 243 refers to the replication management table 270 and determines whether the replication state in which the master LDISK 11a is the member LDISK is in the split transition state (step S82). If the replication state is the split transition state (Yes in step S82), the cache memory management unit 243 holds the snap bit field 256 of the entry in the searched cache block management table 250 in the same manner as in step S12. It is determined whether the snap bit range set to “1” in the bitmap that is set overlaps the access range (step S83).

もし、スナップビットの範囲とアクセス範囲とが重複しているならば(ステップS83がYes)、キャッシュメモリ管理部243はステップS13と同様に、キャッシュメモリ104に格納されている、その重複範囲に対応するキャッシュブロック内のデータをバックアップLDISK11bに書き込むための書き込みリクエストをLDISKアクセス制御部244に発行する(ステップS84)。これにより、バックアップLDISK11bに、重複範囲に対応するスナップ時のデータが反映される。   If the snap bit range and the access range overlap (Yes in step S83), the cache memory management unit 243 responds to the overlap range stored in the cache memory 104 as in step S13. A write request for writing data in the cache block to be written to the backup LDISK 11b is issued to the LDISK access control unit 244 (step S84). As a result, the data at the time of snapping corresponding to the overlapping range is reflected in the backup LDISK 11b.

次にキャッシュメモリ管理部243はステップS14及びS15と同様に、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップのうちの重複範囲のスナップビットをクリアし、しかる後にビットマップ中の全スナップビットが全て“0”となっているかを判定する(ステップS85及びS86)。もし、全スナップビットが “0”となっているならば(ステップS86がYes)、キャッシュメモリ管理部243はステップS16及びS17と同様に、スナップカウンタ260aを重複範囲に対応するキャッシュブロックの数だけディクリメントし(ステップS87)、ディクリメント後のスナップカウンタ260aの値が0となったかを判定する(ステップS88)。   Next, as in steps S14 and S15, the cache memory management unit 243 clears the snap bits in the overlapping range in the bitmap held in the snap bit field 256 of the entry in the searched cache block management table 250. Thereafter, it is determined whether all the snap bits in the bitmap are all “0” (steps S85 and S86). If all the snap bits are “0” (Yes in step S86), the cache memory management unit 243 sets the snap counter 260a as many as the number of cache blocks corresponding to the overlapping range as in steps S16 and S17. Decrement (step S87), it is determined whether the value of the decremented snap counter 260a has become 0 (step S88).

もし、スナップカウンタ260aの値が0となったならば(ステップS88がYes)、キャッシュメモリ管理部243はステップS18と同様に、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によって、スプリット移行状態からスプリット状態に遷移させる(ステップS89)。マスタLDISK11a及びバックアップLDISK11bがスプリット状態に遷移すると、IO管理部220は、ホスト機器からの第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータを、ホスト機器に要求する(ステップS90)。これにより、要求されたデータがホスト機器から転送されて、制御装置10で受信される。   If the value of the snap counter 260a becomes 0 (Yes in step S88), the cache memory management unit 243 splits the replication status of the master LDISK 11a and the backup LDISK 11b by the replication management unit 230 in the same manner as in step S18. The transition state is changed to the split state (step S89). When the master LDISK 11a and the backup LDISK 11b transition to the split state, the IO management unit 220 requests the host device for data to be written to the master LDISK 11a designated by the first write request from the host device (step S90). As a result, the requested data is transferred from the host device and received by the control device 10.

するとキャッシュメモリ管理部243は、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254に保持されているビットマップのうち、第1の書き込み要求で指定されたアクセス範囲(書き込み範囲)に対応するWBCビットを“1”にセットする(ステップS91)。つまりキャッシュメモリ管理部243は、第1の書き込み要求で指定された書き込み範囲を、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254のみに反映する。ステップS83、S86またはS88の判定がNoの場合には、ステップS83、S86またはS88に続いて、ステップS90及びS91が実行される。   Then, the cache memory management unit 243 has an access range (write range) designated by the first write request in the bitmap held in the WBC bit field 254 of the entry in the searched cache block management table 250. The corresponding WBC bit is set to “1” (step S91). That is, the cache memory management unit 243 reflects the write range specified by the first write request only in the WBC bit field 254 of the entry in the searched cache block management table 250. If the determination in step S83, S86, or S88 is No, steps S90 and S91 are executed following step S83, S86, or S88.

一方、ステップS82の判定がNoの場合、つまりレプリケーションの状態がスプリット移行状態でない場合には、キャッシュメモリ管理部243は、レプリケーションの状態がスプリット状態にあるかを判定する(ステップS92)。もし、レプリケーションの状態がスプリット状態にあるならば(ステップS92がYes)、ステップS90及びS91が実行されて、第1の書き込み要求で指定された書き込み範囲が、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254のみに反映される。   On the other hand, if the determination in step S82 is No, that is, if the replication state is not the split transition state, the cache memory management unit 243 determines whether the replication state is in the split state (step S92). If the replication state is the split state (Yes in Step S92), Steps S90 and S91 are executed, and the write range specified by the first write request is stored in the searched cache block management table 250. It is reflected only in the WBC bit field 254 of the entry.

これに対し、レプリケーションの状態がスプリット状態にないならば(ステップS92がNo)、つまりレプリケーションの状態が同期状態にあるならば、IO管理部220はステップS90と同様に、ホスト機器からの第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータを、ホスト機器に要求する(ステップS93)。これにより、要求されたデータがホスト機器から転送されて、制御装置10で受信される。   On the other hand, if the replication state is not in the split state (No in step S92), that is, if the replication state is in the synchronous state, the IO management unit 220 performs the first operation from the host device as in step S90. The host device is requested for data to be written to the master LDISK 11a designated by the write request (step S93). As a result, the requested data is transferred from the host device and received by the control device 10.

するとキャッシュメモリ管理部243は、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254及びスナップビットフィールド256にそれぞれ保持されているビットマップのうち、第1の書き込み要求で指定されたアクセス範囲(書き込み範囲)に対応するWBCビット及びスナップビットを“1”にセットする(ステップS94)。つまりキャッシュメモリ管理部243は、第1の書き込み要求で指定された書き込み範囲を、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254及びスナップビットフィールド256の双方に反映する。   Then, the cache memory management unit 243 accesses the access specified by the first write request among the bitmaps held in the WBC bit field 254 and the snap bit field 256 of the entry in the searched cache block management table 250, respectively. The WBC bit and snap bit corresponding to the range (write range) are set to “1” (step S94). That is, the cache memory management unit 243 reflects the write range specified by the first write request in both the WBC bit field 254 and the snap bit field 256 of the entry in the searched cache block management table 250.

このように本変形例においては、レプリケーションの状態が同期状態にある場合に、第1の書き込み要求で指定された書き込み範囲に対応するキャッシュメモリ104上のデータが、書き込み範囲に対応するWBCビットにより、マスタLDISK11aに書き込むべきダーティデータとして指定されるだけでなく、書き込み範囲に対応するスナップビットにより、バックアップLDISK11bに書き込むべきスナップデータとして指定される。このことは、上記実施形態におけるスナップショット作成処理で実行される上述のコピー動作を、同期状態において逐次行うことと等価である。   As described above, in the present modification, when the replication state is in the synchronous state, the data on the cache memory 104 corresponding to the write range specified by the first write request is represented by the WBC bit corresponding to the write range. In addition to being designated as dirty data to be written to the master LDISK 11a, it is designated as snap data to be written to the backup LDISK 11b by a snap bit corresponding to the write range. This is equivalent to sequentially performing the above-described copy operation executed in the snapshot creation process in the above embodiment in a synchronized state.

次にキャッシュメモリ管理部243は、ステップS94の実行前の、サーチされたキャッシュブロック管理テーブル250内のエントリにおける書き込み範囲に対応するスナップビットが“0”であったかを判定する(ステップS95)。つまりキャッシュメモリ管理部243は、書き込み範囲に対応するスナップビットが“0”から“1”に更新されたかを判定する。ステップS95の判定がYesの場合、キャッシュメモリ管理部243は、スナップカウンタ260aを書き込み範囲に対応するキャッシュブロックの数だけインクリメントする(ステップS96)。これに対し、ステップS95の判定がNoの場合、ステップS96は行われない。   Next, the cache memory management unit 243 determines whether or not the snap bit corresponding to the write range in the entry in the searched cache block management table 250 before the execution of Step S94 is “0” (Step S95). That is, the cache memory management unit 243 determines whether the snap bit corresponding to the write range has been updated from “0” to “1”. When the determination in step S95 is Yes, the cache memory management unit 243 increments the snap counter 260a by the number of cache blocks corresponding to the write range (step S96). On the other hand, if the determination in step S95 is No, step S96 is not performed.

次に、レプリケーションが設定されているマスタLDISK11a及びバックアップLDISK11bのうちのバックアップLDISK11bにデータを書き込むことを要求するための第2の書き込み要求が、ホスト機器から制御装置10に対して発行されたものとする。この場合、実施形態と同様に、図9のフローチャートに従って処理が行われる。   Next, a second write request for requesting to write data to the backup LDISK 11b of the master LDISK 11a and the backup LDISK 11b for which replication is set is issued from the host device to the control device 10. To do. In this case, similarly to the embodiment, the processing is performed according to the flowchart of FIG.

次に、ホスト機器から制御装置10に対して、マスタLDISK11aからデータを読み込むことを要求するための第1の読み込み要求が発行されたものとする。この場合、全てのレプリケーション状態で処理の内容に差異はないため、説明を省略する。   Next, it is assumed that a first read request for requesting the host device to read data from the master LDISK 11a is issued to the control apparatus 10. In this case, there is no difference in processing contents in all replication states, and thus the description is omitted.

次に、ホスト機器から制御装置10に対して、バックアップLDISK11bからデータを読み込むことを要求するための第2の読み込み要求が発行されたものとする。この場合、実施形態と同様に、図10のフローチャートに従って処理が行われる。   Next, it is assumed that a second read request for issuing a request to read data from the backup LDISK 11b is issued from the host device to the control apparatus 10. In this case, similarly to the embodiment, the processing is performed according to the flowchart of FIG.

次に、本変形例におけるデステージング時の動作について、図11のフローチャートと相違する点を中心に、図14のフローチャートを参照して説明する。なお、図14において、図11と等価な処理ステップには、同一参照符号を付してある。   Next, the operation at the time of destaging in the present modification will be described with reference to the flowchart of FIG. 14, focusing on the differences from the flowchart of FIG. In FIG. 14, the same reference numerals are assigned to the processing steps equivalent to those in FIG.

図14のフローチャートが図11のそれと相違する点は、ステップS59の判定がYesの場合に、ステップS60ではなくて、ステップS100が実行されることにある。このステップS100において、キャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照し、バックアップLDISK11bをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する。キャッシュメモリ管理部243は、レプリケーションの状態がスプリット移行状態にある場合だけ(ステップS100がYes)、ステップ60を実行する。即ちキャッシュメモリ管理部243は、スナップカウンタ260aの値が0となり(ステップS59がYes)、レプリケーションの状態がスプリット移行状態にある場合だけ(ステップS100がYes)、レプリケーションの状態を、レプリケーション管理部230によってスプリット移行状態からスプリット状態に遷移させる(ステップS60)。   The flowchart of FIG. 14 differs from that of FIG. 11 in that step S100 is executed instead of step S60 when the determination in step S59 is Yes. In step S100, the cache memory management unit 243 refers to the replication management table 270 and determines whether the replication state in which the backup LDISK 11b is the member LDISK is in the split transition state. The cache memory management unit 243 executes Step 60 only when the replication state is the split transition state (Yes in Step S100). That is, the cache memory management unit 243 changes the replication status to the replication management unit 230 only when the value of the snap counter 260a is 0 (Yes in Step S59) and the replication status is in the split transition status (Yes in Step S100). To shift from the split transition state to the split state (step S60).

また、図14のフローチャートにおけるステップS54は、筐体内レプリケーションの制御が実行されることと等価である。その理由は、第1の書き込み要求で指定された書き込み範囲が、同期状態におけるステップS93及びS94の処理(図13のフローチャート参照)により、ステップS81でサーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254だけでなく、エントリのスナップビットフィールド256にも反映されているからである。   Further, step S54 in the flowchart of FIG. 14 is equivalent to executing intra-box replication control. The reason is that the write range specified by the first write request is determined by the entry in the cache block management table 250 searched in step S81 by the processing in steps S93 and S94 in the synchronized state (see the flowchart in FIG. 13). This is because it is reflected not only in the WBC bit field 254 but also in the snap bit field 256 of the entry.

また、図14のフローチャートが図11のそれと相違する他の点は、“1”にセットされているスナップビットが存在しないエントリ(ステップS52の判定がNoのエントリ)について、キャッシュメモリ管理部243が、常にステップS63及びS64のみを実行することである。その理由は、上述のように、図14のフローチャートにおけるステップS54により、実質的な筐体内レプリケーションの制御が実行されるからである。   In addition, the flowchart of FIG. 14 differs from that of FIG. 11 in that the cache memory management unit 243 sets the entry for which there is no snap bit set to “1” (the entry for which the determination in step S52 is No). It is always to execute only steps S63 and S64. The reason is that, as described above, substantial intra-box replication control is executed by step S54 in the flowchart of FIG.

本変形例においても、ホスト機器からのスプリットコマンドの受信時に、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わないため、ミラー状態からスプリット状態への移行が従来技術と比較して大幅に短時間で完了することができる。   Also in this modified example, when the split command is received from the host device, the master LDISK 11a and the backup LDISK 11b are not destaged, so the transition from the mirror state to the split state is completed in a significantly shorter time than in the prior art. can do.

なお、本発明は、実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。   Note that the present invention is not limited to the embodiment or its modification as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modifications. For example, you may delete a some component from all the components shown by embodiment or its modification.

本発明の一実施形態に係るデータ記憶装置の概略構成を示すブロック図。1 is a block diagram showing a schematic configuration of a data storage device according to an embodiment of the present invention. 同実施形態におけるキャッシュメモリの構造を説明するための図。The figure for demonstrating the structure of the cache memory in the embodiment. 同実施形態における制御装置のモジュール構成を主として示すブロック図。The block diagram which mainly shows the module structure of the control apparatus in the embodiment. 同実施形態において制御装置に含まれるキャッシュブロック管理テーブルのデータ構造例を示す図。3 is a diagram showing an example of the data structure of a cache block management table included in the control device in the embodiment. FIG. 同実施形態におけるレプリケーションの状態遷移の一例を示す図。4 is a diagram showing an example of replication state transition in the embodiment. FIG. 同実施形態において制御装置に含まれるレプリケーション管理テーブルのデータ構造例を示す図。3 is a diagram showing an example of the data structure of a replication management table included in the control device in the embodiment. FIG. 同実施形態におけるスプリットコマンド受信時の処理手順を示すフローチャート。6 is a flowchart showing a processing procedure when a split command is received in the embodiment. 同実施形態においてマスタ論理ディスクにデータを書き込むことを要求するための書き込み要求(第1の書き込み要求)がホスト機器から発行された場合の処理手順を示すフローチャート。6 is an exemplary flowchart showing a processing procedure when a write request (first write request) for requesting to write data to the master logical disk is issued from the host device in the embodiment. 同実施形態においてバックアップ論理ディスクにデータを書き込むことを要求するための書き込み要求(第2の書き込み要求)がホスト機器から発行された場合の処理手順を示すフローチャート。6 is an exemplary flowchart showing a processing procedure when a write request (second write request) for requesting to write data to a backup logical disk is issued from the host device in the embodiment. 同実施形態においてバックアップ論理ディスクからデータを読み込むことを要求するための読み込み要求がホスト機器から発行された場合の処理手順を示すフローチャート。6 is an exemplary flowchart illustrating a processing procedure when a read request for requesting to read data from a backup logical disk is issued from the host device in the embodiment. 同実施形態におけるデステージング時の処理手順を示すフローチャート。The flowchart which shows the process sequence at the time of destaging in the embodiment. 同実施形態の変形例におけるスプリットコマンド受信時の処理手順を示すフローチャート。The flowchart which shows the process sequence at the time of the split command reception in the modification of the embodiment. 同変形例において第1の書き込み要求がホスト機器から発行された場合の処理手順を示すフローチャート。9 is a flowchart showing a processing procedure when a first write request is issued from a host device in the modification. 同変形例におけるデステージング時の処理手順を示すフローチャート。The flowchart which shows the process sequence at the time of destaging in the modification.

符号の説明Explanation of symbols

1…データ記憶装置、2…データ通信路、10…制御装置、11a…論理ディスク(LDISK、マスタ論理ディスク、マスタLDISK、第1の記憶媒体)、11b…論理ディスク(LDISK、バックアップ論理ディスク、バックアップLDISK、第2の記憶媒体)、102…CPU、103…プログラムメモリ、104…キャッシュメモリ、210…ホストインタフェース制御部、220…IO管理部、230…レプリケーション管理部、240…キャッシュ管理モジュール、241…IOアクセス制御部、242…デステージング/ステージング制御部、243…キャッシュメモリ管理部、244…LDISKアクセス制御部、250…キャッシュブロック管理テーブル、260a,260b…スナップカウンタ、270…レプリケーション管理テーブル。   DESCRIPTION OF SYMBOLS 1 ... Data storage device, 2 ... Data communication path, 10 ... Control apparatus, 11a ... Logical disk (LDISK, master logical disk, master LDISK, 1st storage medium), 11b ... Logical disk (LDISK, backup logical disk, backup) LDISK, second storage medium), 102 ... CPU, 103 ... program memory, 104 ... cache memory, 210 ... host interface control unit, 220 ... IO management unit, 230 ... replication management unit, 240 ... cache management module, 241 ... IO access control unit, 242 ... Destaging / staging control unit, 243 ... Cache memory management unit, 244 ... LDISK access control unit, 250 ... Cache block management table, 260a, 260b ... Snap counter, 270 ... Replication Shon management table.

Claims (5)

第1の記憶媒体及び第2の記憶媒体と、
ホスト機器と前記第1及び第2の記憶媒体との間に介在し、前記第1及び第2の記憶媒体のレプリケーション管理上の状態が第1の状態では、前記第1及び第2の記憶媒体を、前記第1の記憶媒体に記憶されているデータの複製が前記第2の記憶媒体に保存されるミラーとして運用するための制御を行う制御装置とを具備し、
前記制御装置は、
前記第1及び第2の記憶媒体に対して読出しまたは書き込みされるデータを記憶するキャッシュメモリと、
前記キャッシュメモリに記憶されたデータのうち前記第1の記憶媒体に対して書き込みが実施されていないダーティデータの範囲を示す第1の変数と、前記第2の記憶媒体に書き込まれるべきデータであるスナップデータの範囲を示す第2の変数とを含む、前記キャッシュメモリに記憶されたデータを管理するためキャッシュ管理用データを記憶する記憶手段と、
前記ホスト機器からのスナップショット作成要求に応じて、前記第1の変数を前記第2の変数にコピーし、前記第2の変数へのコピー完了をもって、レプリケーション管理上の状態を、前記第1の状態から前記第1及び第2の記憶媒体が論理的に分離された第2の状態に移行する状態であり、スナップショットが前記第2の記憶媒体のデータとして確定していないことを示す第3の状態に遷移させると共に、前記スナップショット作成要求に対するスナップショット作成の完了を前記ホスト機器に通知するスナップショット作成手段と、
前記第1の記憶媒体に対して書き込みが実施されていない前記キャッシュメモリ上のデータを対象とするデステージングを制御するデステージング制御手段と、
前記第1の状態において、前記デステージング制御手段によってデステージングが指定された場合、前記第1の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第1及び第2の記憶媒体の双方に書き込むための制御に応じて前記第1の変数を更新し、前記第1の状態以外において、前記デステージング制御手段によってデステージングが指定された場合、前記第1の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第1の記憶媒体に、前記第2の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第2の記憶媒体に、それぞれ書き込むための制御に応じて前記第1及び第2の変数を更新する書き込み制御手段とを含む
ことを特徴とするデータ記憶装置。
A first storage medium and a second storage medium;
The first and second storage media are interposed between the host device and the first and second storage media, and the replication management status of the first and second storage media is the first status. A control device that performs control for operating a replica of data stored in the first storage medium as a mirror stored in the second storage medium,
The control device includes:
A cache memory for storing data to be read from or written to the first and second storage media;
The first variable indicating the range of dirty data that has not been written to the first storage medium among the data stored in the cache memory, and the data to be written to the second storage medium Storage means for storing cache management data for managing data stored in the cache memory, including a second variable indicating a range of snap data;
In response to a snapshot creation request from the host device, the first variable is copied to the second variable, and upon completion of copying to the second variable, the replication management status is changed to the first variable. A third state in which the first and second storage media are shifted from a state to a second state in which the first and second storage media are logically separated, and a snapshot is not determined as data of the second storage medium; And a snapshot creation means for notifying the host device of completion of snapshot creation in response to the snapshot creation request,
Destaging control means for controlling destaging for the data on the cache memory that has not been written to the first storage medium;
In the first state, when destaging is designated by the destaging control means, data in the cache memory in a range designated by the first variable is stored in both the first and second storage media. The first variable is updated according to the control for writing to, and when destaging is designated by the destaging control means in a state other than the first state, the range of the range designated by the first variable The data on the cache memory is written to the first storage medium, and the data on the cache memory in the range specified by the second variable is written to the second storage medium according to the control for writing to the first storage medium, respectively. A data storage device comprising: a write control means for updating the first and second variables.
前記書き込み制御手段は、前記ホスト機器からの前記第1の記憶媒体に対するデータ書き込み要求に応じ、当該データ書き込み要求で指定されたアクセス範囲が前記第2の変数の示す範囲と重複しているかを判定し、重複している場合、その重複している範囲のデータを前記第2の記憶媒体に書き込むための制御を行い、当該書き込み制御に応じて前記第2の変数を更新することを特徴とする請求項1記載のデータ記憶装置。   In response to a data write request from the host device to the first storage medium, the write control unit determines whether the access range specified by the data write request overlaps the range indicated by the second variable. If there is an overlap, control is performed to write the data in the overlap range to the second storage medium, and the second variable is updated according to the write control. The data storage device according to claim 1. 第1の記憶媒体及び第2の記憶媒体と、
ホスト機器と前記第1及び第2の記憶媒体との間に介在し、前記第1及び第2の記憶媒体のレプリケーション管理上の状態が第1の状態では、前記第1及び第2の記憶媒体を、前記第1の記憶媒体に記憶されているデータの複製が前記第2の記憶媒体に保存されるミラーとして運用するための制御を行う制御装置とを具備し、
前記制御装置は、
前記第1及び第2の記憶媒体に対して読出しまたは書き込みされるデータを記憶するキャッシュメモリと、
前記キャッシュメモリに記憶されたデータのうち前記第1の記憶媒体に対して書き込みが実施されていないダーティデータの範囲を示す第1の変数と、前記第2の記憶媒体に書き込まれるべきデータであるスナップデータの範囲を示す第2の変数とを含む、前記キャッシュメモリに記憶されたデータを管理するためキャッシュ管理用データを記憶する記憶手段と、
前記ホスト機器からのスナップショット作成要求に応じて、前記レプリケーション管理上の状態を、前記第1の状態から前記第1及び第2の記憶媒体とが論理的に分離された第2の状態に移行する状態であり、スナップショットが前記第2の記憶媒体のデータとして確定していないことを示す第3の状態に遷移させ、当該第3の状態への遷移をもって前記スナップショット作成要求に対するスナップショット作成の完了を前記ホスト機器に通知するスナップショット作成手段と、
前記第1の記憶媒体または前記第2の記憶媒体に対して書き込みが実施されていない前記キャッシュメモリ上のデータを対象とするデステージングを制御するデステージング制御手段と、
前記第1の状態における前記ホスト機器からの前記第1の記憶媒体に対するデータ書き込み要求に応じ、当該データ書き込み要求で指定されたデータを前記キャッシュメモリに記憶すると共に、前記第1及び第2の変数の示す範囲に当該データ書き込み要求で指定されたアクセス範囲が含まれるように前記第1及び第2の変数を更新する書き込み制御手段であって、前記デステージング制御手段によって、前記第1の記憶媒体に対して書き込みが実施されていない前記キャッシュメモリ上のデータを対象とするデステージングが指定された場合、前記第1の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第1の記憶媒体に、前記第2の変数で指定される範囲の前記キャッシュメモリ上のデータを前記第2の記憶媒体に、それぞれ書き込むための制御を行い、当該書き込み制御に応じて前記第1及び第2の変数を更新する書き込み制御手段とを含む
ことを特徴とするデータ記憶装置。
A first storage medium and a second storage medium;
The first and second storage media are interposed between the host device and the first and second storage media, and the replication management status of the first and second storage media is the first status. A control device that performs control for operating a replica of data stored in the first storage medium as a mirror stored in the second storage medium,
The control device includes:
A cache memory for storing data to be read from or written to the first and second storage media;
The first variable indicating the range of dirty data that has not been written to the first storage medium among the data stored in the cache memory, and the data to be written to the second storage medium Storage means for storing cache management data for managing data stored in the cache memory, including a second variable indicating a range of snap data;
In response to a snapshot creation request from the host device, the replication management state is shifted from the first state to a second state in which the first and second storage media are logically separated. To the third state indicating that the snapshot is not determined as data of the second storage medium, and the snapshot creation in response to the snapshot creation request is made with the transition to the third state Snapshot creation means for notifying the host device of completion of
Destaging control means for controlling destaging for data in the cache memory that is not written to the first storage medium or the second storage medium;
In response to a data write request from the host device to the first storage medium in the first state, the data specified by the data write request is stored in the cache memory, and the first and second variables Write control means for updating the first and second variables so that the access range specified by the data write request is included in the range indicated by the first storage medium by the destaging control means When destaging for the data on the cache memory that has not been written to is specified, the data on the cache memory in the range specified by the first variable is stored in the first storage. In the medium, data in the cache memory in a range specified by the second variable is stored in the second storage medium. It performs control for writing Re, data storage device which comprises a writing control means for updating the first and second variable in response to the write control.
前記書き込み制御手段は、前記第3の状態における前記ホスト機器からの前記第1の記憶媒体に対するデータ書き込み要求に応じ、当該データ書き込み要求で指定されたアクセス範囲が前記第2の変数の示す範囲と重複しているかを判定し、
重複している場合、その重複している範囲のデータを前記第2の記憶媒体に書き込むための制御を行い、当該書き込み制御に応じて前記第2の変数を更新する一方、重複の有無に無関係に当該データ書き込み要求で指定されたデータを前記キャッシュメモリに記憶すると共に、前記第1の変数の示す範囲に当該データ書き込み要求で指定されたアクセス範囲が含まれるように前記第1の変数を更新し、前記第2の状態における前記ホスト機器からの前記第1の記憶媒体に対するデータ書き込み要求に応じ、当該データ書き込み要求で指定されたデータを前記キャッシュメモリに記憶すると共に、前記第1の変数の示す範囲に当該データ書き込み要求で指定されたアクセス範囲が含まれるように前記第1の変数を更新することを特徴とする請求項4記載のデータ記憶装置。
In response to a data write request from the host device to the first storage medium in the third state, the write control means determines that the access range specified by the data write request is the range indicated by the second variable Determine if they overlap,
If there is an overlap, control is performed to write the overlapping range of data to the second storage medium, and the second variable is updated in accordance with the write control, regardless of whether there is overlap. The data specified by the data write request is stored in the cache memory, and the first variable is updated so that the range indicated by the first variable includes the access range specified by the data write request. In response to a data write request from the host device to the first storage medium in the second state, the data specified by the data write request is stored in the cache memory, and the first variable The first variable is updated so that the access range specified by the data write request is included in the indicated range. 4 The data storage device according.
第1の記憶媒体及び第2の記憶媒体と、ホスト機器と前記第1及び第2の記憶媒体との間に介在し、前記第1及び第2の記憶媒体のレプリケーション管理上の状態が第1の状態では、前記第1及び第2の記憶媒体を、前記第1の記憶媒体に記憶されているデータの複製が前記第2の記憶媒体に保存されるミラーとして運用するための制御を行う制御装置であって、キャッシュメモリと、前記キャッシュメモリに記憶されたデータのうち前記第1の記憶媒体に対して書き込みが実施されていないダーティデータの範囲を示す第1の変数と、前記第2の記憶媒体に書き込まれるべきデータであるスナップデータの範囲を示す第2の変数とを含む、前記キャッシュメモリに記憶されたデータを管理するためキャッシュ管理用データを記憶する記憶手段と、前記第1の記憶媒体に対して書き込みが実施されていない前記キャッシュメモリ上のデータを対象とするデステージングを制御するデステージング制御手段と、スナップショット作成手段と、書き込み制御手段とを含む制御装置とを備えたデータ記憶装置に適用される筐体内レプリケーション方法において、
前記ホスト機器からのスナップショット作成要求に応じて、前記レプリケーション管理上の状態を、前記第1の状態から、前記第1の記憶媒体と前記第2の記憶媒体とが論理的に分離された第2の状態に変更するに際し、前記スナップショット作成手段が、前記第1の変数を前記第2の変数にコピーするステップと、
前記コピーするステップの完了をもって、前記スナップショット作成手段が、前記レプリケーション管理上の状態を、前記第1の状態から前記第2の状態に移行する状態であり、スナップショットが前記第2の記憶媒体のデータとして確定していないことを示す第3の状態に遷移させると共に、前記スナップショット作成要求に対するスナップショット作成の完了を前記ホスト機器に通知するステップと、
前記第1の状態において、前記デステージング制御手段によって前記デステージングが指定された場合、前記書き込み制御手段が、前記第1の変数で指定される範囲のデータを前記第1及び第2の記憶媒体の双方に書き込むための制御を行い、当該書き込み制御に応じて前記第1の変数を更新するステップと、
前記第1の状態以外において、前記デステージング制御手段によって前記デステージングが指定された場合、前記書き込み制御手段が、前記第1の変数で指定される範囲のデータを前記第1の記憶媒体に、前記第2の変数で指定される範囲のデータを前記第2の記憶媒体に、それぞれ書き込むための制御を行い、当該書き込み制御に応じて前記第1及び第2の変数を更新するステップと
を具備することを特徴とする筐体内レプリケーション方法。
The first storage medium and the second storage medium are interposed between the host device and the first and second storage media, and the replication management state of the first and second storage media is the first. In this state, control for controlling the first and second storage media to operate as a mirror in which a copy of the data stored in the first storage medium is stored in the second storage medium An apparatus, a cache memory, a first variable indicating a range of dirty data that has not been written to the first storage medium among data stored in the cache memory, and the second variable A storage unit for storing cache management data for managing the data stored in the cache memory, including a second variable indicating a range of snap data that is data to be written to the storage medium And destaging control means for controlling destaging for the data in the cache memory that has not been written to the first storage medium, snapshot creation means, and write control means. In the in-casing replication method applied to a data storage device comprising a control device,
In response to a snapshot creation request from the host device, the replication management state is changed from the first state to the first storage medium and the second storage medium logically separated from each other. When changing to the state of 2, the snapshot creation means copies the first variable to the second variable;
Upon completion of the copying step, the snapshot creation means is in a state of shifting the replication management state from the first state to the second state, and the snapshot is in the second storage medium. Transitioning to a third state indicating that the data has not been confirmed, and notifying the host device of completion of snapshot creation in response to the snapshot creation request;
In the first state, when the destaging is designated by the destaging control means, the write control means sends the data in the range designated by the first variable to the first and second storage media. Performing a control for writing to both of them, and updating the first variable in accordance with the write control;
In a case other than the first state, when the destaging is specified by the destaging control unit, the write control unit stores data in a range specified by the first variable in the first storage medium. Performing control for writing data in a range specified by the second variable to the second storage medium, respectively, and updating the first and second variables according to the write control. A replication method within a cabinet, characterized by:
JP2008293737A 2008-11-17 2008-11-17 Data storage device and in-casing replication method Active JP4908481B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008293737A JP4908481B2 (en) 2008-11-17 2008-11-17 Data storage device and in-casing replication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008293737A JP4908481B2 (en) 2008-11-17 2008-11-17 Data storage device and in-casing replication method

Publications (2)

Publication Number Publication Date
JP2010122761A true JP2010122761A (en) 2010-06-03
JP4908481B2 JP4908481B2 (en) 2012-04-04

Family

ID=42324073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008293737A Active JP4908481B2 (en) 2008-11-17 2008-11-17 Data storage device and in-casing replication method

Country Status (1)

Country Link
JP (1) JP4908481B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365742A (en) * 2012-03-30 2013-10-23 伊姆西公司 Method, equipment and computer program for increasing speed of allowing snap service to be on-line again
JP2014199583A (en) * 2013-03-29 2014-10-23 富士通株式会社 Storage control device, control program, and control method
JP2015046164A (en) * 2013-08-28 2015-03-12 バイオセンス・ウエブスター・(イスラエル)・リミテッドBiosense Webster (Israel), Ltd. Double buffering with atomic transactions for persistent storage of real-time data flow
JP2015084234A (en) * 2014-11-26 2015-04-30 株式会社日立製作所 Storage system and storage control method
US9262091B2 (en) 2012-09-28 2016-02-16 Fujitsu Limited Storage control apparatus for copying volume, and copying method
US9501231B2 (en) 2011-05-31 2016-11-22 Hitachi, Ltd. Storage system and storage control method
US20220228948A1 (en) * 2021-01-20 2022-07-21 Nec Laboratories America, Inc Dofs self-anomaly detection system for safer infrastructures

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166974A (en) * 1999-09-30 2001-06-22 Fujitsu Ltd Copy processing method between data areas of storage device and storage system and storage medium
US20020112133A1 (en) * 1999-04-30 2002-08-15 Mathieu Gagne Method and apparatus for independent and simultaneous access to a common data set
JP2004536360A (en) * 2000-09-29 2004-12-02 イーエムシー コーポレイション Method and apparatus for reconfiguring a striping logical device in a disk array storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020112133A1 (en) * 1999-04-30 2002-08-15 Mathieu Gagne Method and apparatus for independent and simultaneous access to a common data set
JP2001166974A (en) * 1999-09-30 2001-06-22 Fujitsu Ltd Copy processing method between data areas of storage device and storage system and storage medium
JP2004536360A (en) * 2000-09-29 2004-12-02 イーエムシー コーポレイション Method and apparatus for reconfiguring a striping logical device in a disk array storage device

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501231B2 (en) 2011-05-31 2016-11-22 Hitachi, Ltd. Storage system and storage control method
CN103365742A (en) * 2012-03-30 2013-10-23 伊姆西公司 Method, equipment and computer program for increasing speed of allowing snap service to be on-line again
CN103365742B (en) * 2012-03-30 2017-06-23 伊姆西公司 Accelerate method, equipment and computer program that snapshot service goes up linear velocity again
US9262091B2 (en) 2012-09-28 2016-02-16 Fujitsu Limited Storage control apparatus for copying volume, and copying method
JP2014199583A (en) * 2013-03-29 2014-10-23 富士通株式会社 Storage control device, control program, and control method
JP2015046164A (en) * 2013-08-28 2015-03-12 バイオセンス・ウエブスター・(イスラエル)・リミテッドBiosense Webster (Israel), Ltd. Double buffering with atomic transactions for persistent storage of real-time data flow
US10684986B2 (en) 2013-08-28 2020-06-16 Biosense Webster (Israel) Ltd. Double buffering with atomic transactions for the persistent storage of real-time data flows
JP2015084234A (en) * 2014-11-26 2015-04-30 株式会社日立製作所 Storage system and storage control method
US20220228948A1 (en) * 2021-01-20 2022-07-21 Nec Laboratories America, Inc Dofs self-anomaly detection system for safer infrastructures
US12051309B2 (en) * 2021-01-20 2024-07-30 Nec Corporation DFOS self-anomaly detection system for safer infrastructures

Also Published As

Publication number Publication date
JP4908481B2 (en) 2012-04-04

Similar Documents

Publication Publication Date Title
US11461202B2 (en) Remote data replication method and system
RU2596585C2 (en) Method for sending data, data receiving method and data storage device
US9344498B2 (en) Policy-based management of storage functions in data replication environments
US7860836B1 (en) Method and apparatus to recover data in a continuous data protection environment using a journal
US7783850B2 (en) Method and apparatus for master volume access during volume copy
US7516287B2 (en) Methods and apparatus for optimal journaling for continuous data replication
US7840536B1 (en) Methods and apparatus for dynamic journal expansion
US7089384B2 (en) Appliance for asynchronous data storage mirroring
CN102012852B (en) Method for implementing incremental snapshots-on-write
JP4908481B2 (en) Data storage device and in-casing replication method
US9933948B2 (en) Tiered storage system, computer using tiered storage device, and method of correcting count of accesses to file
US20050268054A1 (en) Instant virtual copy to a primary mirroring portion of data
JPH08305500A (en) Storage controller,data storage system containing it and double-pair suppression method
JP2007200114A (en) Database recovery method and computer system
JP3606797B2 (en) Copy processing method between data areas of storage device, storage system, and storage medium thereof
JP2005301590A (en) Storage system and data copying method
JP2009251725A (en) Storage controller and duplicated data detection method using storage controller
US7853769B2 (en) Computer system for managing number of writes for storage medium and control method therefor
JP7472341B2 (en) STORAGE SYSTEM AND METHOD FOR CONTROLLING STORAGE SYSTEM - Patent application
JP2010282324A (en) Storage control apparatus, storage system, and storage control method
US20120131287A1 (en) Storage control apparatus and logical volume size setting method
JP2010186285A (en) Mirroring controller, storage device, and mirroring control method
WO2015198449A1 (en) Storage system
US9003129B1 (en) Techniques for inter-storage-processor cache communication using tokens
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110523

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4908481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350