JP2010122761A - Data storage device and replication method in casing - Google Patents
Data storage device and replication method in casing Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
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に制限)し、且つ、その総容量分のバッファ(退避エリア)をキャッシュ上に予め確保しておき、スナップショット作成時に、その予め確保されたバッファに対してマスタディスクのダーティデータをコピー(退避)し、そのコピー完了をもって、スナップショット作成を完了とすることにある。
先行技術においては、ディスクにバックアップを採る場合のスナップショット作成に要する時間を短縮することができる。しかし、先行技術では、マスタディスクのダーティデータがキャッシュ上に占める総容量を制限し、その総容量分のバッファをキャッシュ上に確保する必要がある。この総容量の最大値は、キャッシュの記憶容量の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
A
制御装置10は、ホストインタフェース部(HOST I/F)101、CPU102、プログラムメモリ103、キャッシュメモリ104及びHDDインタフェース部(HDD I/F)105を有している。なお、データ通信路2を介してデータ記憶装置1に接続されるものとしては、ホスト機器となるコンピュータまたはその集合体の他、他のデータ記憶装置も想定される。
The
ホストインタフェース部101及びHDDインタフェース部105は、それぞれ外部接続される装置との間の通信を制御する。ホストインタフェース部101はデータ通信路2側の通信を司る。HDDインタフェース部105はLDISK11a及び11b側の通信を司る。
The
CPU102は、制御装置10における必要処理を実行するものであり、プログラムメモリ103には、そのための各種プログラムが格納されている。ここで説明する筐体内レプリケーションの手法は、このプログラムメモリ103(コンピュータ読み取り可能な記憶媒体)に格納されているプログラムをCPU102が読み取って実行することによって実現されるものとする。プログラムメモリ103には、上述のプログラムを格納するための領域に加えて、CPU102が利用するデータ等を格納するための領域も確保されている。
The
キャッシュメモリ104は、データ通信路2を介して接続されるホスト機器(或いは他のデータ記憶装置)からデータ記憶装置1内のLDISK11i(i=a,b)に対して発行される入出力要求(IO要求)に対するバッファの役目を提供する。図2は、キャッシュメモリ104の構造を示す。キャッシュメモリ104は、ある論理的な単位に分割されて管理されている。この分割された単位で自由にLDISK11i内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ104に格納することができる。この分割された1つの単位をキャッシュブロックと呼ぶ。
The
ここで、図2に示されるキャッシュメモリ104は、例えば16KB(キロバイト)単位のキャッシュブロックに分割されている。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理される。キャッシュメモリ104上では、リードキャッシュ(RDC)とライトバックキャッシュ(WBC)の2種類のデータが管理される。ホスト機器からのリード/ライトアクセスに応じて各エントリがサーチされ、対象となるキャッシュブロックとホスト機器またはLDISK11iとの間でデータ転送が行われる。
Here, the
例えば、ホスト機器からLDISK11iへのデータ書き込み処理は、キャッシュメモリ104を用いて次のように行われる。まず、入出力要求で指定されたデータ(書き込みデータ)がキャッシュメモリ104にエントリされた時点で、要求元のホスト機器に対して書き込み処理完了が通知される。その後に、キャッシュメモリ104からLDISK11iに対する実際のデータ書き込みが実行される。
For example, data write processing from the host device to the LDISK 11 i is performed using the
一方、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
図3は、図1に示される制御装置10のプログラムメモリ103に格納されるプログラムをCPU102が読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。
FIG. 3 is a block diagram mainly showing a module configuration realized by the
ホストインタフェース制御部(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
キャッシュ管理モジュール240は、IOアクセス制御部241、デステージング/ステージング制御部242、キャッシュメモリ管理部243及びLDISKアクセス制御部(論理ディスクアクセス制御部)244から構成される。
The
IOアクセス制御部241は、IO管理部220からIO要求を受け付けるブロックであり、IO要求に基づきリード/ライトアクセスを制御する。特にIOアクセス制御部241は、ホスト機器からのIO要求(ホストIO要求)に基づき、ホスト機器からのリード/ライトアクセスを制御する。IO要求は、アドレスと転送サイズとからなるアドレス情報を含む。
The IO
IOアクセス制御部241は、このアクセス情報に基づき、キャッシュメモリ管理部243との連携により、該当するキャッシュブロックのエントリをサーチする。IOアクセス制御部241は、このエントリのサーチ(エントリサーチ)に基づき、キャッシュメモリ104とホスト機器との間のデータ転送をホストインタフェース制御部210に対して要求する。またIOアクセス制御部241は、アクセス情報で指定されるデータの格納状態により、ディスク転送(キャッシュメモリ104とLDISK11iとの間のデータ転送)を必要とする場合に、ディスク転送のための情報をLDISKアクセス制御部244に引き渡すことにより、必要なディスクデータの転送を行わせる。
Based on this access information, the IO
キャッシュメモリ管理部243は、キャッシュカラム単位に割り当てられているキャッシュブロックと対象となるLDISK11iの領域とをマッピングし、ホスト機器からライトされたデータまたはディスクからリードされたデータの格納状態を管理する。このキャッシュメモリ管理部243によるデータの格納状態の管理には、キャッシュブロック管理テーブル250と、スナップカウンタ260a及び260bと、レプリケーション管理テーブル270とが用いられる。
The cache
キャッシュブロック管理テーブル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
デステージング/ステージング制御部242は、ホストIO要求のアクセス情報に基づきシーケンシャルライトまたはシーケンシャルリードの検出を行う。シーケンシャルなアクセスを検出した場合、デステージング/ステージング制御部242は、シーケンシャルライトであれば後追い吐き出し要求を、シーケンシャルリードであればデータ先読み要求を、IO管理部220に領域を指定して発行する。またデステージング/ステージング制御部242は、特定のタイミングで未吐き出しのWBCデータ(ダーティデータ)を抽出し、ストライプグループ単位にまとめてLDISK11iに書き込むための要求をIO管理部220に領域を指定して発行する。
The destaging /
本実施形態において、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
RAID制御部280は、LDISKアクセス制御部244からの要求に応じて、LDISK11i内のディスク転送の対象となるSDISK110iとの間のディスクデータの転送を制御する。HDDインタフェース制御部(HDD I/F制御部)290は、RAID制御部280からの要求に応じて、SDISK110i内のディスク転送の対象となる、1つ以上の物理ディスクとの間のディスクデータの転送を制御する。
In response to a request from the LDISK
なお、キャッシュメモリ104を2重化することも可能である。その場合、周知のミラードキャッシュ制御やコンカレントキャッシュ制御が必要となるが、これらについては本発明の本質ではないので説明を省略する。
Note that the
また、LDISK11a及び11bが必ずしもディスクアレイから構成されている必要はなく、したがってデータ記憶装置1がディスクアレイ装置でなくともよい。更に、LDISK11a及び11bに代えて物理ディスクのような他の記憶媒体を用いることも可能である。
Further, the
図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
LDISK番号フィールド251は、該当キャッシュブロックが割り当てられているLDISK番号を保持するのに用いられる。ステートフラグフィールド252は、該当キャッシュブロックの状態を示すフラグ情報を保持するのに用いられる。論理アドレスフィールド253は、該当キャッシュブロックが割り当てられているLDISK内の領域の論理アドレスを保持するのに用いられる。
The
WBCビットフィールド254は、該当キャッシュブロック内のダーティデータ(LDISK番号フィールド251で示されるLDISKに保存されるべきデータ)のエントリ状態をセクタ単位で示すビットマップ(第1の変数)を保持するのに用いられる。RDCビットフィールド255は、該当キャッシュブロック内のリードキャッシュデータのエントリ状態をセクタ単位で示すビットマップを保持するのに用いられる。スナップビットフィールド256は、該当キャッシュブロックにおいてバックアップLDISKに保存されるべきデータ(未保存のスナップデータ)のエントリ状態をセクタ単位で示すビットマップ(第2の変数)を保持するのに用いられる。
The
WBCビットフィールド254、RDCビットフィールド255及びスナップビットフィールド256にそれぞれ保持されるビットマップを構成するビットを、それぞれ、WBCビット、RDCビット及びスナップビットと称する。WBCビット、RDCビット及びスナップビットは、例えば“1”のとき該当キャッシュブロック内の該当セクタのデータ(ダーティデータ、リードキャッシュデータ、及び未保存のスナップデータ)がキャッシュメモリ104にエントリされており、“0”のとき該当セクタのデータはキャッシュメモリ104にエントリされていないことを示す。
The bits constituting the bitmap held in the
本実施形態では、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
図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
「同期状態」とは、本実施形態のようにLDISK11aがマスタLDISK(一次記憶媒体)で、LDISK11bがバックアップLDISK(二次記憶媒体)である場合、両LDISKがミラーとして同期をとって運用されている状態を指す。「スプリット状態」とは、マスタLDISKとバックアップLDISKとが論理的に分離(切り離)されている状態を指す。
"Synchronized state" means that when
「スプリット移行状態」とは、「同期状態」から「スプリット状態」へ移行する中間状態であり、スナップショットがバックアップ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
なお、「スプリット移行状態」はホスト機器からは認識されないものとする。つまりデータ記憶装置1における「スプリット移行状態」は、ホスト機器からは「スプリット状態」として認識されるものとする。
Note that the “split transition state” is not recognized by the host device. That is, the “split transition state” in the
以下の説明では、レプリケーションが設定されるマスタLDISK11a及びバックアップLDISK11bの両LDISK(論理ディスク)を、メンバLDISK(メンバ論理ディスク)、またはレプリケーションを構成するメンバLDISKと称することがある。
In the following description, the
レプリケーションの状態は、レプリケーション管理テーブル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番号フィールド271及びバックアップLDISK番号フィールド272は、レプリケーションを構成するメンバLDISKのそれぞれLDISK番号(マスタLDISK番号及びバックアップLDISK番号)を保持するのに用いられる。ステータスフィールド273は、フィールド271及び272に保持されているLDISK番号で指定されるメンバLDISKのレプリケーション状態を示すステータス情報を保持するのに用いられる。
The master
マスタLDISK11a及びバックアップLDISK11bのレプリケーションの状態が同期状態にあるときに、制御装置10内のホストインタフェース制御部210がホスト機器からスナップショット作成(ミラー状態の解除)を指示するためのスプリットコマンド(スナップショット作成要求)を受信したものとする。IO管理部220は、このスプリットコマンドをホストインタフェース制御部210から受け取ると、キャッシュ管理モジュール240内のIOアクセス制御部241を介してキャッシュメモリ管理部243にスナップショット作成を要求する。すると、キャッシュメモリ管理部243はスナップショット作成手段として機能して、以下に述べるスナップショット作成処理を実行する。
When the replication status of the
以下、スプリットコマンド受信時のキャッシュメモリ管理部243を中心とする動作について、図7のフローチャートを参照して説明する。
まずキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250を参照し、LDISK番号フィールド251に保持されているLDISK番号がマスタLDISK11aのLDISK番号と一致、且つWBCビットフィールド254に保持されているビットマップに“0”でないWBCビット(つまり、“1”にセットされているWBCビット)を含むエントリ(目的エントリ)をサーチする(ステップS1)。
Hereinafter, an operation centered on the cache
First, the cache
キャッシュメモリ管理部243は、ステップS1でのサーチの結果、目的エントリの有無を判定する(ステップS2)。もし、目的エントリがあったならば(ステップS2がYes)、つまりキャッシュメモリ104上にマスタLDISK11aに保存されるべきデータ(ダーティデータ)が存在するならば、サーチされた全ての目的エントリについて、キャッシュメモリ管理部243は、エントリのWBCビットフィールド254に保持されているビットマップ(WBCビット群)を、エントリ内のスナップビットフィールド256にスナップビット群からなるビットマップとしてコピーする(ステップS3)。このコピーにより、サーチされた各目的エントリのスナップビットフィールド256に保持されるビットマップは、スプリットコマンド受信時における未保存のスナップデータの範囲を示す。
The cache
そしてキャッシュメモリ管理部243は、マスタLDISK11aに対応したスナップカウンタ260aを、例えばサーチできたエントリの数だけインクリメントする(ステップS4)。スナップカウンタ260aの値は、キャッシュメモリ104に存在する、バックアップLDISK11bに保存されるべきスナップデータを含むキャッシュブロックの数を示す。なお、本実施形態と異なって、LDISK11aがバックアップLDSIK、LDISK11bがマスタLDISKとして用いられる場合には、キャッシュメモリ104に存在する、バックアップLDISKに保存されるべきスナップデータを含むキャッシュブロックの数を示すのに、スナップカウンタ260bが用いられる。
Then, the cache
ステップ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
キャッシュメモリ管理部243は、ステップS5の実行後、ホスト機器からのスプリットコマンド(スプリット要求)に対し、レプリケーション管理部230によりIO管理部220を介してホスト機器にスプリット完了を通知させる(ステップS7)。
After executing step S5, the cache
このように本実施形態においては、ホスト機器からのスプリットコマンドの受信時に、マスタ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
一方、目的エントリが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
キャッシュメモリ管理部243は、ステップS6の実行後、ホスト機器からのスプリットコマンドに対し、レプリケーション管理部230によりIO管理部220を介してホスト機器にスプリット完了を通知させる(ステップS7)。
After executing step S6, the cache
その後、マスタ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
次に、メンバ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
ホスト機器からの第1の書き込み要求は、制御装置10内のホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は書き込み制御手段として機能して、図8のフローチャートに従う処理を次のように実行する。
The first write request from the host device is received by the host
まずキャッシュメモリ管理部243は、ホスト機器からの第1の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって示されるマスタLDISK11a内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS11)。
First, the cache
次にキャッシュメモリ管理部243は、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの“1”にセットされているスナップビットの範囲と、アクセス範囲とが重複しているかを判定する(ステップS12)。つまりキャッシュメモリ管理部243は、スナップ時のダーティデータの範囲とアクセス範囲とが重複しているかを判定する。
Next, the cache
もし、両範囲が重複しているならば(ステップS12がYes)、その重複を解消するために、キャッシュメモリ管理部243は、キャッシュメモリ104に格納されている、その重複範囲に対応するキャッシュブロック内のデータ(未保存のスナップ時のデータ)をバックアップLDISK11bに書き込むための書き込みリクエスト(をLDISKアクセス制御部244に発行し、バックアップLDISK11bに重複範囲に対応するスナップ時のデータを保存する(ステップS13)。
If both ranges overlap (Yes in step S12), the cache
書き込みリクエストの発行によりLDISKアクセス制御部244は、RAID制御部280及びHDDインタフェース制御部290を介して、重複範囲に対応するキャッシュブロック内のデータを、バックアップLDISK11bの該当するアクセス範囲に書き込むためのライトアクセス制御を開始する。このバックアップLDISK11bへのライトアクセス制御により、バックアップLDISK11bに重複範囲に対応するスナップ時のデータが保存される。
When the write request is issued, the LDISK
もし本実施形態と異なって、ステップS11〜S13が実行されずに、ホスト機器からの第1の書き込み要求に従ってマスタLDISK11aに対するデータの書き込みが行われたならば、重複範囲に対応するキャッシュメモリ104の領域のデータが、第1の書き込み要求で指定される新たなデータで上書きされるため、重複範囲に対応するスナップ時のデータが失われてしまう。そのため従来技術では、ホスト機器からのスプリットコマンドの受信時に、キャッシュメモリ104上のダーティデータをマスタディスクとバックアップディスクの両方に吐き出すデステージングを必要とする。本実施形態では、このようなデステージングを行うことなく、重複範囲に対応するスナップ時のデータが失われてしまう不具合を防止することができる。
Unlike the present embodiment, if data is written to the
さて、キャッシュメモリ管理部243は、ステップS13の後、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの重複範囲のスナップビットを“0”にリセットする(ステップS14)。これにより、スナップ時より後に重複範囲に対応するマスタLDISK11aの領域に書き込まれるデータが、未保存のスナップデータとしてバックアップLDISK11bに保存される不具合を防止できる。
Now, after step S13, the cache
次にキャッシュメモリ管理部243は、重複範囲のスナップビットをリセットしたことにより、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となっているかを判定する(ステップS15)。もし、全スナップビットが “0”となっているならば(ステップS15がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応して設けられているスナップカウンタ260aを、重複範囲に対応するキャッシュブロックの数だけディクリメントする(ステップS16)。
Next, the cache
次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS17)。もし、スナップカウンタ260aの値が0となったならば(ステップS17がYes)、キャッシュメモリ管理部243は、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によってスプリット移行状態からスプリット状態に遷移させる(ステップS18)。即ちレプリケーション管理部230は、キャッシュメモリ管理部243からの要求に応じて、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、スプリット状態を示すステータス情報に更新する。
Next, the cache
すると、IO管理部220は、ホスト機器からの第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータ(ライトデータ)を、ホスト機器に要求する(ステップS19)。以降の動作は従来と同様であり、まず、IO管理部220からホスト機器に要求されたデータ(第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータ)が、ホスト機器から制御装置10に転送される。ホスト機器から制御装置10に転送されたライトデータは、制御装置10で受信される。
Then, the
本実施形態において、ホスト機器から転送されたデータの「受信」とは、データがキャッシュメモリ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
一方、ステップ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
このときキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250内の空きエントリを確保して、確保されたエントリに、キャッシュブロックをマスタLDISK11aのアクセス範囲に対応付けて管理するためのエントリ情報を設定する。このエントリ情報のLDISK番号フィールド251にはマスタLDISK11aのLDISK番号が保持され、WBCビットフィールド254にはデータの範囲を示すビットマップ(WBCビット群)が保持される。
At this time, the cache
次に、レプリケーションが設定されているマスタ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
ホスト機器からの第2の書き込み要求は、ホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は書き込み制御手段として機能して、図9のフローチャートに従う処理を次のように実行する。
The second write request from the host device is received by the host
まずキャッシュメモリ管理部243は、ホスト機器からの第2の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって指定されるバックアップLDISK11b内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS21)。
First, the cache
するとIO管理部220は、ホスト機器からの第2の書き込み要求で指定されたバックアップLDISK11bに書き込むべきデータを、ホスト機器に要求する(ステップS22)。これにより、第2の書き込み要求で指定されたバックアップLDISK11bに書き込むべきデータがホスト機器から転送されて、制御装置10で受信される。つまり、バックアップLDISK11bに書き込むべきデータは、ステップS11でサーチされたキャッシュブロック管理テーブル250の目的エントリに対応付けられているキャッシュメモリ104内のキャッシュブロックにエントリされる。
Then, the
なお、図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
次にキャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照し、バックアップLDISK11bをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS23)。このレプリケーションの状態は、バックアップLDISK11bのLDISK番号が保持されているバックアップLDISK番号フィールド272を含むレプリケーション管理テーブル270のエントリを探して、エントリ内のステータスフィールド273を参照することによって判定することができる。
Next, the cache
もし、レプリケーションの状態がスプリット移行状態にある場合(ステップ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
キャッシュメモリ管理部243は、ステップS24でのサーチの結果、キャッシュブロック管理テーブル250内の該当するキャッシュブロックの目的エントリがサーチできたかを判定する(ステップS25)。もし、目的エントリがサーチできたならば(ステップS25がYes)、つまりアクセス範囲にヒットしたならば、キャッシュメモリ管理部243は、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちのアクセス範囲に対応するスナップビットの範囲に“1”にセットされているスナップビットが存在するかを判定する(ステップS26)。
The cache
ここで、アクセス範囲に対応するスナップビットの範囲に、“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
このことは、バックアップ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
そこで本実施形態においキャッシュメモリ管理部243は、ステップS24でサーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうち、アクセス範囲に対応するスナップビットを“0”にリセットする(ステップS27)。これにより、第2の書き込み要求で指定されたデータのバックアップLDISK11bへの書き込みが実行されても、そのデータが重複範囲に対応するマスタLDISK11aの古いデータで上書きされることを防止できる。
Therefore, in this embodiment, the cache
次にキャッシュメモリ管理部243は、アクセス範囲に対応するスナップビットをリセットしたことにより、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となっているかを判定する(ステップS28)。もし、全スナップビットが “0”となっているならば(ステップS28がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応したスナップカウンタ260aを、アクセス範囲に対応するキャッシュブロックの数だけディクリメントする(ステップS29)。
Next, the cache
次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS30)。もし、スナップカウンタ260aの値が0となったならば(ステップS30がYes)、キャッシュメモリ管理部243は、ステップS18と同様に、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によってスプリット移行状態からスプリット状態に遷移させる(ステップS31)。
Next, the cache
次に、ホスト機器から制御装置10に対して、マスタLDISK11aからデータを読み込むことを要求するための読み込み要求(第1の読み込み要求)が発行されたものとする。この場合、全てのレプリケーション状態で処理の内容に差異はないため、説明を省略する。
Next, it is assumed that a read request (first read request) for issuing a request to read data from the
次に、ホスト機器から制御装置10に対して、バックアップLDISK11bからデータを読み込むことを要求するための読み込み要求(第2の読み込み要求)が発行された場合の動作について、図10のフローチャートを参照して説明する。
Next, the operation when a read request (second read request) for requesting the
ホスト機器からの第2の読み込み要求は、制御装置10内のホストインタフェース制御部210で受信されて、IO管理部220を介してキャッシュ管理モジュール240に渡される。するとキャッシュ管理モジュール240内のキャッシュメモリ管理部243は読み込み制御手段として機能して、図10のフローチャートに従う処理を次のように実行する。
The second read request from the host device is received by the host
まずキャッシュメモリ管理部243は、ステップS23と同様に、レプリケーション管理テーブル270を参照し、バックアップLDISK11bをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS41)。
First, similarly to step S23, the cache
もし、レプリケーションの状態がスプリット移行状態にある場合(ステップS41がYes)、キャッシュメモリ管理部243は、第2の読み込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報よって示されるバックアップLDISK11b内のアクセス範囲(読み込み範囲)と同一のマスタLDISK11a内の範囲(領域)に対応するキャッシュブロックのエントリをサーチする(ステップS42)。
If the replication state is the split transition state (Yes in step S41), the cache
キャッシュメモリ管理部243は、ステップS42でのサーチの結果、キャッシュブロック管理テーブル250内の該当するキャッシュブロックの目的エントリがサーチできたかを判定する(ステップS43)。もし、目的エントリがサーチできたならば(ステップS43がYes)、つまりアクセス範囲にヒットしたならば、キャッシュメモリ管理部243は、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)のうちの“1”にセットされているスナップビットの範囲と、アクセス範囲(読み込み範囲)に対応するスナップビットの範囲とが重複しているかを判定する(ステップS44)。つまりキャッシュメモリ管理部243は、スナップ時のダーティデータ(未保存のスナップデータ)とアクセス範囲とが重複しているかを判定する。
The cache
もし、両範囲が重複しているならば(ステップS44がYes)、その重複範囲に関しては、キャッシュメモリ管理部243は、キャッシュメモリ104に格納されている、重複範囲に対応するキャッシュブロック内のデータ、つまり未保存のスナップ時のマスタLDISK11aのデータを、IOアクセス制御部241により、バックアップLDISK11bのデータとしてホスト機器に転送させる(ステップS45)。
If both ranges overlap (Yes in step S44), for the overlap range, the cache
一方、バックアップ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
一方、ステップ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
次に、デステージング時の動作について、図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 /
まずキャッシュメモリ管理部243は、キャッシュブロック管理テーブル250を参照し、WBCビットフィールド254に保持されているビットマップ(WBCビット群)内に“1”にセットされているWBCビットが存在するキャッシュブロックのエントリをサーチする(ステップS51)。
First, the cache
キャッシュメモリ管理部243は、ステップS51でサーチされた各キャッシュブロックのエントリについて、エントリのスナップビットフィールド256に保持されているビットマップ(スナップビット群)内に“1”にセットされているスナップビットが存在するかを判定する(ステップS52)。
The cache
キャッシュメモリ管理部243は、“1”にセットされているスナップビットが存在するエントリ(ステップS52の判定がYesのエントリ)について、エントリのスナップビットフィールド256及びWBCビットフィールド254を比較し、“1”であるスナップビットの範囲とWBCビットの範囲が一致しているかを判定する(ステップS53)。
The cache
もし、一致している場合(ステップS53がYes)、キャッシュメモリ管理部243は、キャッシュブロック内のその範囲のデータをマスタLDISK11a及びバックアップLDISK11bの双方に書き込むことを、LDISKアクセス制御部244に対して要求する(ステップS54)。
If they match (Yes in step S53), the cache
これに対し、一致していない場合(ステップ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
なお、ステップ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
次にキャッシュメモリ管理部243は、書き込み範囲のスナップビットをリセットしたことにより、キャッシュブロック管理テーブル250内の該当エントリの中に、スナップビットフィールド256に保持されているビットマップ中の全スナップビットが全て“0”となったエントリが存在するかを判定する(ステップS57)。もし、該当するエントリが存在するならば(ステップS57がYes)、キャッシュメモリ管理部243はマスタLDISK11aに対応して設けられているスナップカウンタ260aを、対応するキャッシュブロックの数だけディクリメントする(ステップS58)。
Next, the cache
次にキャッシュメモリ管理部243は、スナップカウンタ260aをディクリメントした結果、スナップカウンタ260aの値が0となったかを判定する(ステップS59)。もし、スナップカウンタ260aの値が0となったならば(ステップS59がYes)、キャッシュメモリ管理部243は、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によって、スプリット移行状態からスプリット状態に遷移させる(ステップS60)。即ちレプリケーション管理部230は、キャッシュメモリ管理部243からの要求に応じて、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータスを、スプリット状態を示すステータスに更新する。
Next, the cache
一方、ステップ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
もし、同期状態にある場合(ステップS61がYes)、キャッシュメモリ管理部243は、ステップS52の判定がNoのエントリのWBCビットフィールド254に基づき、エントリに対応するキャッシュブロック内のWBCビットが“1”の範囲のデータをマスタLDISK11a及びバックアップLDISK11bの双方に書き込む(筐体内レプリケーションの)ための書き込みリクエストをLDISKアクセス制御部244に発行する(ステップS62)。
If the cache
キャッシュメモリ管理部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
これに対し、同期状態にないならば(ステップ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
キャッシュメモリ管理部243は、書き込みリクエストに基づく書き込みが行われると、ステップS52の判定がNoのエントリのWBCビットフィールド254を対象に、書き込み範囲に対応するWBCビットをリセットする(ステップS64)。
When the write based on the write request is performed, the cache
このように本実施形態においては、ホスト機器からのスプリットコマンドの受信時に、キャッシュブロック管理テーブル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
つまり、本実施形態によれば、スプリットコマンドの受信時に、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わないため、従来と比較して同期状態からスプリット状態への移行が短時間で完了し、高速にスナップショットを作成できる。しかも本実施形態では、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わずに、ミラー状態からスプリット状態へ移行しているにも拘わらず、キャッシュブロック管理テーブル250内での上述のコピー処理により、バックアップLDISK11bを正しくスプリット状態で運用させることができる。
That is, according to the present embodiment, when the split command is received, the
[変形例]
次に、実施形態の変形例について説明する。この変形例の第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
まず、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態が同期状態にあるときに、ホスト機器から制御装置10に対してスナップショット作成を指示するためのスプリットコマンドが発行された場合の動作について、図12のフローチャートを参照して説明する。制御装置10内のキャッシュメモリ管理部243は、スプリットコマンドを受信すると、スナップショット作成手段として機能する。
First, the operation when the split command for instructing the
まずキャッシュメモリ管理部243は、マスタLDISK11aに対応して設けられているスナップカウンタ260aの値が0であるかを判定する(ステップS71)。スナップカウンタ260aの値が0でない場合(ステップS71がNo)、キャッシュメモリ管理部243は、レプリケーション管理テーブル270内でマスタLDISK11a及びバックアップLDISK11bのLDISK番号に対応付けて保持されているステータス情報を、レプリケーション管理部230によって、スプリット移行状態を示すステータス情報に更新させる(ステップS72)。そしてキャッシュメモリ管理部243は、ホスト機器からのスプリットコマンド(スプリット要求)に対して、IO管理部220によりホスト機器にスプリット完了を通知させる(ステップS73)。
First, the cache
このように本変形例においては、ホスト機器からのスプリットコマンド受信時に、上記実施形態と異なって、キャッシュブロック管理テーブル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
次に、レプリケーションが設定されているマスタLDISK11a及びバックアップLDISK11bのうちの、マスタLDISK11aにデータを書き込むことを要求するための第1の書き込み要求が、ホスト機器から制御装置10に対して発行された場合の動作について、図13のフローチャートを参照して説明する。
Next, when a first write request for requesting to write data to the
キャッシュメモリ管理部243は、ステップS11と同様に、ホスト機器からの第1の書き込み要求に含まれているアクセス情報に基づいてキャッシュブロック管理テーブル250を参照し、アクセス情報によって示されるマスタLDISK11a内のアクセス範囲(書き込み範囲)に対応するキャッシュブロックのエントリをサーチする(ステップS81)。
Similarly to step S11, the cache
次にキャッシュメモリ管理部243は、レプリケーション管理テーブル270を参照し、マスタLDISK11aをメンバLDISKとするレプリケーションの状態がスプリット移行状態にあるかを判定する(ステップS82)。もし、レプリケーションの状態がスプリット移行状態にあるならば(ステップS82がYes)、キャッシュメモリ管理部243はステップS12と同様に、サーチされたキャッシュブロック管理テーブル250内のエントリのスナップビットフィールド256に保持されているビットマップのうちの“1”にセットされているスナップビットの範囲と、アクセス範囲とが重複しているかを判定する(ステップS83)。
Next, the cache
もし、スナップビットの範囲とアクセス範囲とが重複しているならば(ステップ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
次にキャッシュメモリ管理部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
もし、スナップカウンタ260aの値が0となったならば(ステップS88がYes)、キャッシュメモリ管理部243はステップS18と同様に、マスタLDISK11a及びバックアップLDISK11bのレプリケーション状態を、レプリケーション管理部230によって、スプリット移行状態からスプリット状態に遷移させる(ステップS89)。マスタLDISK11a及びバックアップLDISK11bがスプリット状態に遷移すると、IO管理部220は、ホスト機器からの第1の書き込み要求で指定されたマスタLDISK11aに書き込むべきデータを、ホスト機器に要求する(ステップS90)。これにより、要求されたデータがホスト機器から転送されて、制御装置10で受信される。
If the value of the
するとキャッシュメモリ管理部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
一方、ステップ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
これに対し、レプリケーションの状態がスプリット状態にないならば(ステップ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
するとキャッシュメモリ管理部243は、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254及びスナップビットフィールド256にそれぞれ保持されているビットマップのうち、第1の書き込み要求で指定されたアクセス範囲(書き込み範囲)に対応するWBCビット及びスナップビットを“1”にセットする(ステップS94)。つまりキャッシュメモリ管理部243は、第1の書き込み要求で指定された書き込み範囲を、サーチされたキャッシュブロック管理テーブル250内のエントリのWBCビットフィールド254及びスナップビットフィールド256の双方に反映する。
Then, the cache
このように本変形例においては、レプリケーションの状態が同期状態にある場合に、第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
次にキャッシュメモリ管理部243は、ステップS94の実行前の、サーチされたキャッシュブロック管理テーブル250内のエントリにおける書き込み範囲に対応するスナップビットが“0”であったかを判定する(ステップS95)。つまりキャッシュメモリ管理部243は、書き込み範囲に対応するスナップビットが“0”から“1”に更新されたかを判定する。ステップS95の判定がYesの場合、キャッシュメモリ管理部243は、スナップカウンタ260aを書き込み範囲に対応するキャッシュブロックの数だけインクリメントする(ステップS96)。これに対し、ステップS95の判定がNoの場合、ステップS96は行われない。
Next, the cache
次に、レプリケーションが設定されているマスタLDISK11a及びバックアップLDISK11bのうちのバックアップLDISK11bにデータを書き込むことを要求するための第2の書き込み要求が、ホスト機器から制御装置10に対して発行されたものとする。この場合、実施形態と同様に、図9のフローチャートに従って処理が行われる。
Next, a second write request for requesting to write data to the backup LDISK 11b of the
次に、ホスト機器から制御装置10に対して、マスタLDISK11aからデータを読み込むことを要求するための第1の読み込み要求が発行されたものとする。この場合、全てのレプリケーション状態で処理の内容に差異はないため、説明を省略する。
Next, it is assumed that a first read request for requesting the host device to read data from the
次に、ホスト機器から制御装置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
次に、本変形例におけるデステージング時の動作について、図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
また、図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
また、図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
本変形例においても、ホスト機器からのスプリットコマンドの受信時に、マスタLDISK11a及びバックアップLDISK11bに対するデステージングを行わないため、ミラー状態からスプリット状態への移行が従来技術と比較して大幅に短時間で完了することができる。
Also in this modified example, when the split command is received from the host device, the
なお、本発明は、実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。 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…データ記憶装置、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
Claims (5)
ホスト機器と前記第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の記憶媒体との間に介在し、前記第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.
重複している場合、その重複している範囲のデータを前記第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の状態から、前記第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:
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)
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)
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 |
-
2008
- 2008-11-17 JP JP2008293737A patent/JP4908481B2/en active Active
Patent Citations (3)
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)
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 |