JP4993913B2 - 記憶制御装置及びそのデータ管理方法 - Google Patents

記憶制御装置及びそのデータ管理方法 Download PDF

Info

Publication number
JP4993913B2
JP4993913B2 JP2006005580A JP2006005580A JP4993913B2 JP 4993913 B2 JP4993913 B2 JP 4993913B2 JP 2006005580 A JP2006005580 A JP 2006005580A JP 2006005580 A JP2006005580 A JP 2006005580A JP 4993913 B2 JP4993913 B2 JP 4993913B2
Authority
JP
Japan
Prior art keywords
data
storage
data unit
update
storage area
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.)
Expired - Fee Related
Application number
JP2006005580A
Other languages
English (en)
Other versions
JP2007188277A (ja
Inventor
克雄 茂木
幸司 永田
昇司 児玉
育哉 八木沢
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006005580A priority Critical patent/JP4993913B2/ja
Priority to US11/358,051 priority patent/US7565501B2/en
Priority to EP06255659A priority patent/EP1814035B1/en
Priority to CN200910148827.6A priority patent/CN101571822B/zh
Priority to CN200610168703.0A priority patent/CN100524236C/zh
Priority to US11/822,253 priority patent/US7509467B2/en
Publication of JP2007188277A publication Critical patent/JP2007188277A/ja
Priority to US12/292,991 priority patent/US7765372B2/en
Priority to US12/457,622 priority patent/US8370590B2/en
Priority to US12/822,874 priority patent/US7925852B2/en
Priority to US13/039,122 priority patent/US8266401B2/en
Application granted granted Critical
Publication of JP4993913B2 publication Critical patent/JP4993913B2/ja
Priority to US13/754,299 priority patent/US8769227B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶制御装置及びそのデータ管理方法に関し、例えば、ホストシステムから送信されるデータが記憶された記憶制御装置のボリュームを、他の記憶制御装置に複製するストレージシステムに適用して好適なものである。
従来、記憶システムに対する被災対策(ディザスタリカバリ)として、あるサイトにおいて運用されている、ホストシステムから送信されるデータを記憶する記憶制御装置(以下、正側の記憶制御装置と呼ぶ)のボリュームのバックアップを、これと遠隔したサイトに設置された記憶制御装置(以下、副側の記憶制御装置と呼ぶ)のボリュームにおいて管理する技術(以下、この技術を「リモートコピー」と呼ぶ)が知られており、これに関する種々の技術が提案されている。
例えば、特開平11−259348号公報では、正側の記憶制御装置は、少なくとも1つのボリュームを有しており、当該ボリュームの少なくとも一部のスナップショットを取得する要求を副側の記憶制御装置に送信し、副側の記憶制御装置は、スナップショットを取得する要求に応答し、正側の記憶制御装置のボリュームの複製コピーであるボリュームを有しており、対応する部分のスナップショットを取得することによって、正側の記憶制御装置のボリュームを、副側の記憶制御装置のボリュームに複製するようになされている。
また、例えば、特開2005−267569号公報では、記憶制御装置は、第1のボリュームへのデータの読書きを制御し、当該ボリュームに新たに記憶されたデータを、世代ごとの差分データとして第2のボリュームに書き込むように制御し、当該第2のボリュームに記憶されている世代ごとの差分データの関係を管理するスナップショット管理テーブルをメモリの領域に設けることによって差分データを管理する。そして、記憶制御装置は、スナップショット管理テーブルにより、特定の世代の仮想ボリュームを生成し、当該仮想ボリュームを用いてリモートコピーを行うようになされている。
さらに、例えば、特開2005−275494号公報では、副側の記憶制御装置は、正側の記憶制御装置から差分関連情報を受信し、当該受信された差分関連情報に基づいて、世代管理情報を生成し、生成された世代管理情報及び副側の記憶制御装置のボリュームに基づいて、指定された世代の記憶内容を復元するようになされている。
特開平11−259348号公報 特開2005−267569号公報 特開2005−275494号公報
ところで、このようなストレージシステムでは、正側の記憶制御装置においてスナップショットにより取得したボリュームのデータを管理するための管理ビットが不足しないように、当該管理ビットを、ホストシステムから正側の記憶制御装置に転送されるデータに比して十分大きな差分管理単位のデータサイズで管理するようになされている。
しかしながら、このようなストレージシステムでは、差分管理単位のデータサイズに比して、ホストシステムから正側の記憶制御装置に転送されるデータのデータサイズのほうが小さくなるため、ホストシステムから転送されるデータを、正側の記憶制御装置から副側の記憶制御装置に転送する場合には、ホストシステムから正側の記憶制御装置に転送されるデータのデータサイズが小さいにもかかわらず、差分管理単位のデータサイズで転送しなければならないこととなる。
このため、このようなストレージシステムでは、ホストシステムから正側の記憶制御装置へのデータ転送に比して、正側の記憶制御装置から副側の記憶制御装置へのデータ転送のほうが遅くなり、正側の記憶制御装置において、正側の記憶制御装置から副側の記憶制御装置への転送待ちの差分データが蓄積されるおそれがある。
一方、このようなストレージシステムでは、差分管理単位のデータサイズを小さくした場合には、差分データを管理するための管理ビット数を増加させなければならず、当該管理ビットを保持するために、膨大なメモリ容量が必要となることとなる。
本発明は以上の点を考慮してなされたもので、メモリ容量の増加を有効に防止し得ると共に、データの転送効率を格段的に向上させ得る記憶制御装置及びデータ管理方法を提案するものである。
かかる課題を解決するために本発明においては、上位装置から送信されるデータを記憶するためのボリュームを提供する記憶制御装置であって、ボリュームに書き込まれたデータを、第1のデータ単位、又は当該第1のデータ単位内における第1のデータ単位に比して小さい第2のデータ単位で管理する管理部と、所定のタイミングで、ボリュームのスナップショットを取得するスナップショット取得部と、スナップショット取得部によるスナップショットにより取得されたボリュームのデータを、第1のデータ単位又は第2のデータ単位で、外部機器に転送する転送部とを備えるようにした。
従って、第1のデータ単位内における、外部機器に転送するデータが少ない場合には、第2のデータ単位でデータを転送することによりデータの転送量を少なくすることができ、第1のデータ単位内における外部機器に転送するデータが多い場合には、第1のデータ単位でデータを転送することにより第2のデータ単位の管理数を少なくすることができる。
また、本発明においては、上位装置から送信されるデータを記憶するためのボリュームを提供する記憶制御装置のデータ管理方法であって、ボリュームに書き込まれたデータを、第1のデータ単位、又は当該第1のデータ単位内における第1のデータ単位に比して小さい第2のデータ単位で管理する第1のステップと、所定のタイミングで、ボリュームのスナップショットを取得する第2のステップと、第2のステップにおけるスナップショットにより取得されたボリュームのデータを、第1のデータ単位又は第2のデータ単位で、外部機器に転送する第3のステップとを備えるようにした。
従って、第1のデータ単位内における、外部機器に転送するデータが少ない場合には、第2のデータ単位でデータを転送することによりデータの転送量を少なくすることができ、第1のデータ単位内における外部機器に転送するデータが多い場合には、第1のデータ単位でデータを転送することにより第2のデータ単位の管理数を少なくすることができる。
本発明によれば、上位装置から送信されるデータを記憶するためのボリュームを提供する記憶制御装置であって、ボリュームに書き込まれたデータを、第1のデータ単位、又は当該第1のデータ単位内における第1のデータ単位に比して小さい第2のデータ単位で管理し、所定のタイミングで、ボリュームのスナップショットを取得するスナップショット取得して、スナップショットにより取得したボリュームのデータを、第1のデータ単位又は第2のデータ単位で、外部機器に転送することにより、外部機器に転送するデータが少ない場合には、第2のデータ単位でデータを転送することによりデータの転送量を少なくすることができ、第1のデータ単位内における外部機器に転送するデータが多い場合には、第1のデータ単位でデータを転送することにより第2のデータ単位の管理数を少なくすることができ、かくして、メモリ容量の増加を有効に防止し得ると共に、データの転送効率を格段的に向上させ得る記憶制御装置及びデータ管理方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態におけるストレージシステムの構成
図1は、本実施形態に係るストレージシステム10のシステム構成を示す。ストレージシステム10は、第1の記憶制御装置20と第2の記憶制御装置50とを備える。第1の記憶制御装置20、第2の記憶制御装置50、正ホストシステム100、及び副ホストシステム110は、SAN(Storage Area Network)120を介して相互に接続されている。
正ホストシステム100は、常用系のホストシステムであり、主として、システムが正常なときに、第1の記憶制御装置20にI/O処理を要求する。副ホストシステム110は、待機系のホストシステムであり、主として、システムに障害が発生したときに、第2の記憶制御装置50にI/O処理を要求し、障害発生時に正ホストシステム100が行っていた処理を引き継ぐ。正ホストシステム100、及び副ホストシステム110は、例えば、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。
ストレージシステム10は、第1の記憶制御装置20に書き込まれたデータが第2の記憶制御装置50にリモートコピーされるように構成されている。第2の記憶制御装置50は、第1の記憶制御装置20が過去に保持していたデータイメージと同一のデータイメージを保持する。
これにより、第1の記憶制御装置20に障害が生じた場合でも、第2の記憶制御装置50を用いて、システムを稼動させることができる。
リモートコピーとしては、第1の記憶制御装置20と第2の記憶制御装置50との両方にデータを書き込んだことを条件として、正ホストシステム100にライト完了を報告する同期コピーでもよく、或いは第1の記憶制御装置20にデータが書き込まれた段階で、正ホストシステム100にライト完了を報告し、適当な時期にそのデータを第2の記憶制御装置50に転送する非同期コピーでもよい。
以下の説明では、第1の記憶制御装置20を稼働系の正記憶制御装置として運用し、第2の記憶制御装置50を待機系の副記憶制御装置として運用する例を示す。
第1の記憶制御装置20は、主に、コントローラ30と、記憶装置40とを備える。コントローラ30は、信頼性向上のため、コントローラ30A、30Bの2つのコントローラから構成されている。
コントローラ30Aは、LAN(Local Area Network)インターフェース21A、フロントエンドインターフェース22A、CPU23A、データ転送コントローラ24A、キャッシュメモリ25A、ローカルメモリ26A、及びバックエンドインターフェース27Aを備える。コントローラ30Bの詳細構成は、上述したコントローラ30Aの詳細構成と同様である。なお、添え字「A」及び「B」を付さずに表記する場合には、コントローラ30A、30Bのどちらでも良く、どちらか一方であることを示している。
コントローラ30は、複数のディスクドライブ41をいわゆるRAID方式に規定されるRAIDレベル(例えば、0、1、5)で制御することができる。RAID方式においては、複数のディスクドライブ41が一つのRAIDグループとして管理される。RAIDグループ上には、正ホストシステム100からのアクセス単位である複数の論理ボリューム42が定義されている。それぞれの論理ボリューム42には、LUN(Logical Unit Number)がアサインされる。
CPU23は、正ホストシステム100からのデータ入出力要求に応答して、複数のディスクドライブ41へのI/Oコマンド(ライトコマンド、又はリードコマンド)の処理を制御するプロセッサである。
ローカルメモリ26には、各種マイクロプログラム、ボリューム管理テーブル、及びハッシュ管理テーブルなどが格納されている。各種マイクロプログラム、ボリューム管理テーブル、及びハッシュ管理テーブルの詳細については、後述する。ローカルメモリ26は、リード/ライトについて高速にアクセス可能な揮発性メモリとして構成されている。
キャッシュメモリ25は、ディスクドライブ41に書き込むためのライトデータ、又はディスクドライブ41から読み出したリードデータを一時的に格納するバッファメモリである。キャッシュメモリ25は、電源バックアップされており、第1の記憶制御装置20に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
データ転送コントローラ24は、キャッシュメモリ25、フロントエンドインターフェース22、バックエンドインターフェース27、及びCPU23を相互に接続し、正ホストシステム100とディスクドライブ41との間のデータ転送を制御する。
また、データ転送コントローラ24は、他方のデータ転送コントローラ24と通信可能に接続されており、当該他方のデータ転送コントローラ24との間でライトコマンド、リードコマンド、ライトデータ及びリードデータを転送する。
正ホストシステム100からのライトコマンド送信要求がされると、データ転送コントローラ24は、フロントエンドインターフェース22を介して正ホストシステム100から受け取ったデータをキャッシュメモリ25に書き込み、その後、そのライトデータをディスクドライブ41へ非同期書き込みすることを目的として、そのライトデータをバックエンドインターフェース27へ転送する。
また、データ転送コントローラ24は、フロントエンドインターフェース22を介して正ホストシステム100から受け取ったデータを他方のデータ転送コントローラ24に転送する。そして、他方のデータ転送コントローラ24は、受け取ったデータを当該コントローラのキャッシュメモリ25に書き込む。
このように、正ホストシステム100からのライトコマンドを受信したときに、正ホストシステム100から受け取ったライトデータをキャッシュメモリ25に二重書きすることによって、コントローラ30のうち、一方のコントローラに障害が発生した場合にも、他方のコントローラが引き続き処理を行うことができるようになされている。
また、正ホストシステム100からのリードコマンドを受信すると、バックエンドインターフェース27を介してディスクドライブ41から読みとったリードデータをキャッシュメモリ25に書き込むとともに、フロントエンドインターフェース22にそのリードデータを転送する。
フロントエンドインターフェース22は、正ホストシステム100とのインターフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づく正ホストシステム100からのブロックアクセス要求を受信する機能を有する。
バックエンドインターフェース27は、ディスクドライブ41とのインターフェースを制御するコントローラであり、例えば、ディスクドライブ41を制御するプロトコルに基づくディスクドライブ41へのデータ入出力要求を制御する機能を有する。
LANインターフェース21は、LAN90に接続するインターフェースであり、TCP/IPに基づいて管理端末80との間でデータ及び制御信号の送受信を制御する。
記憶装置40は、複数のディスクドライブ41を備える。ディスクドライブ41は、FC(Fibre Channel)ディスクドライブ、SATA(Serial Advanced Technology Attachment)ディスクドライブ、PATA(Parallel Advanced Technology Attachment)ディスクドライブ、FATA(Fibre Attached Technology Adapted)ディスクドライブ、SAS(Serial Attached SCSI)ディスクドライブ或いはSCSI(Small Computer System Interface)ディスクドライブ等のストレージデバイスである。
第1の記憶制御装置20は、LAN(Local Area Network)90を介して管理端末80に接続されている。管理端末80は、例えば、CPU、メモリ及びディスプレイ等のハードウェア資源を備えるコンピュータシステムである。システム管理者は、管理端末80を入力操作することにより、第1の記憶制御装置20を管理するためのコマンドを第1の記憶制御装置20に送信する。
第1の記憶制御装置20を管理するためのコマンドとして、例えば、記憶デバイス41の増設或いは減設、又はRAID構成の変更を指示するためのコマンド、正ホストシステム100と第1の記憶制御装置20との間の通信パスを設定するためのコマンド、CPU23のマイクロプログラムをメモリ26にインストールするためのコマンド、第1の記憶制御装置20の動作状態の確認や故障部位を特定するためのコマンド等がある。
第2の記憶制御装置50は、主に、コントローラ60と、記憶装置70とを備える。コントローラ60の詳細構成は、上述したコントローラ30の詳細構成と同様である。コントローラ60は、信頼性向上のため、コントローラ60A、60Bの2つのコントローラから構成されている。
コントローラ60Aは、LANインターフェース61A、フロントエンドインターフェース62A、CPU63A、データ転送コントローラ64A、キャッシュメモリ65A、ローカルメモリ66A、及びバックエンドインターフェース67Aを備える。コントローラ30Bの詳細構成は、上述したコントローラ60Aの詳細構成と同様である。なお、添え字「A」及び「B」を付さずに表記する場合には、コントローラ60A、60Bのどちらでも良く、どちらか一方であることを示している。記憶装置70は、複数のディスクドライブ71を備える。
コントローラ60は、複数のディスクドライブ71をいわゆるRAID方式に規定されるRAIDレベル(例えば、0、1、5)で制御することができる。RAID方式においては、複数のディスクドライブ71が一つのRAIDグループとして管理される。RAIDグループ上には、副ホストシステム110からのアクセス単位である複数の論理ボリューム72が定義されている。それぞれの論理ボリューム72には、LUNがアサインされる。
図2は、各種マイクロプログラム、ボリューム管理テーブル、及びハッシュ管理テーブルを示す。ローカルメモリ26は、内部コピー実行プログラム200、リモートコピー実行プログラム210、制御プログラム220、ボリューム管理テーブル230、ハッシュ管理テーブル240、コマンドジョブ優先実行プログラム250、及びまとめ通信実行プログラム260を格納する。なお、ローカルメモリ66には、ハッシュ管理テーブル240、及びコマンドジョブ優先実行プログラム250が格納されていない。
内部コピー実行プログラム220は、内部コピー処理、及びスナップショット更新処理を実行する。リモートコピー実行プログラム210は、リモートコピーを実行する。制御プログラム220は、内部コピー実行プログラム200、リモートコピー実行プログラム210、を制御する。ボリューム管理テーブル230は、複数の論理ボリューム42に関する情報を格納する。なお、ハッシュ管理テーブル240、コマンドジョブ優先実行プログラム250、及びまとめ通信実行プログラム260については後述する。
図3は、ボリューム管理テーブル230のテーブル構造を示す。ボリューム管理テーブル230には、複数の論理ボリューム42の各々について、論理ボリューム(以下、「VOL」と略記することがある。)を識別するためのVOL−IDと、その論理ボリュームへのアクセスパスを示すパス情報と、その論理ボリュームの種類(以下、「VOL種類」と記す。)と、その論理ボリュームがプールVOLであるか否かを示すフラグ(以下、「プールVOL」フラグと記す。)と、その論理ボリュームを含んだVOLペアに関する情報(以下、「ペア情報」と記す。)と、が対応付けられて格納される。ボリューム管理テーブル230に格納される情報のうちの少なくとも一つの情報要素(例えば、VOL−ID、VOL種類、プールVOLフラグ)は、管理端末80又は正ホストシステム100などから入力できる。
VOL種類としては、例えば、「プライマリ」、「セカンダリ」、「プール」がある。「プライマリ」という種類のVOL(以下、「プライマリVOL」又は「PVOL」と記す。)は、コピー処理(例えば、リモートコピー処理)において、コピー元となるVOLである。「セカンダリ」という種類のVOL(以下、「セカンダリVOL」又は「SVOL」と記す。)は、コピー処理(例えば、リモートコピー処理)において、コピー先となるVOLである。
セカンダリVOLは、少なくともプライマリVOLの容量以上の記憶容量を有する。プライマリVOLもセカンダリVOLも、パス情報は定義されている。但し、「プール」という種類のVOL(以下、「プールVOL」と記す。)は、パス情報が未定義である。プールVOLの詳細については、後述する。
プールVOLフラグは、それに対応する論理ボリュームがプールVOLであるか否かを示す。具体的には、例えば、プールVOLフラグが「1」であれば、それに対応する論理ボリュームは、プールVOLであり、プールVOLフラグが「0」であれば、それに対応する論理ボリュームは、プールVOLでない。
ペア情報には、例えば、ペア相手情報、及びペア状態が含まれている。ペア相手情報には、例えば、ペア相手となる論理ボリューム(以下、ペア相手VOL)に関する情報として、ペア相手VOLを有する記憶制御装置のID、ペア相手VOLのVOL−ID、及びパス情報などがある。ペア状態としては、例えば、「SMPL」、「COPY」、「PAIR」、「PSUS」、「SPLIT」、「SSWS」などがある。
「SMPL」とは、ペア生成前の正副関係のない状態を示す。
「COPY」は、プライマリVOLのデータをセカンダリVOLにコピーする形成コピー中の状態を示す。「COPY」では、セカンダリVOLへのライトは禁止される。
「PAIR」は、プライマリVOLからセカンダリVOLへ非同期コピーを行っている状態を示す。「PAIR」では、セカンダリVOLへのライトは禁止される。
「PSUS」は、プライマリVOLからセカンダリVOLへ非同期コピーを停止している状態を示す。「PSUS」では、セカンダリVOLへのリード/ライトは禁止される。
「SPLIT」は、プライマリVOLとセカンダリVOLとを論理的に分離して、プライマリVOLの更新前後の差分データのみをセカンダリVOLにコピーする状態を示す。
「SSWS」は、セカンダリVOLがリード/ライト可能な状態を示す。「SSWS」では、セカンダリVOLのデータは、前回の確定内容にリストアされ、プライマリVOLは、「PSUS」に遷移する。
CPU23は、ボリューム管理テーブル230を参照することにより、アクセスすべき論理ボリューム42の種類、及びペア情報を特定することができる。また、CPU23は、プールVOLが後述のバーチャルVOLに割りアサインされた場合には、そのプールVOLへのパスを表す情報を定義し、定義されたパス情報をボリューム管理テーブル230に登録することができる。
また、CPU23は、アサインされなくなったプールVOLについてのパス情報を消去することにより、プールVOLを未使用状態にすることができる。CPU23は、各プールVOLについて、パス情報が登録されているか否かにより、各プールVOLが使用中であるか、或いは未使用状態であるかを判別することができる。
図4は、第1の記憶制御装置20が実行する非同期リモートコピーの処理概要を示す。第1の記憶制御装置20は、CPU23、キャッシュメモリ25、プライマリVOL600、バーチャルVOL610、複数のプールVOL620、スナップショット管理情報300、及び転送差分ビットマップテーブル510を備える。
プールVOL620は、プライマリVOL600とバーチャルVOL610とのペア状態がスプリットされた時点以降にプライマリVOL600のデータイメージが更新されたときに、更新前後の差分データを退避させるための論理ボリュームである。
バーチャルVOL610は、ある時刻にプライマリVOL600に格納されているデータと、ある時刻以降にプライマリVOL600からプールVOL620に退避されたデータとから、ある時刻におけるプライマリVOL600のデータイメージを復元するための仮想的な論理ボリュームである。
バーチャルVOL610は、プライマリVOL600のスナップショットを論理的に保持することができる。バーチャルVOL610は、プライマリVOL600又はセカンダリVOL700とペアを形成することができる。
本実施の形態では、バーチャルVOL610は、キャッシュメモリ25の記憶領域に形成される場合を例示するが、ディスクドライブ41の記憶領域に形成されていてもよい。説明の便宜上、バーチャルVOL610をP_VVOLと略記する場合がある。
CPU23は、バーチャルVOL610に、複数のプールVOL620の中から一以上のプールVOL620(例えば、どのVOLにも対応付けられていない未使用のプールVOL)を選択し、選択された一以上のプールVOL620をバーチャルVOL610にアサインできる。CPU23は、バーチャルVOL610にアサインされるプールVOL620の数を、記憶資源の消費状況に応じて、適宜に増減することができる。
スナップショット管理情報300は、ある時刻におけるプライマリVOL600のデータイメージを、スナップショットを用いて復元するための情報である。CPU23は、スナップショット管理情報300を参照することにより、ある時刻におけるプライマリVOL600のデータイメージを構成する各データがプールVOL620に存在するのか、或いはプライマリVOL600に存在するのかを判別し、判別された方からデータを取得することにより、ある時刻におけるプライマリVOL600のデータイメージをバーチャルVOL610に復元できる。スナップショット管理情報300は、プライマリVOL600のデータ更新位置を示す差分ビットマップテーブル310を含む。
転送差分ビットマップテーブル510は、プライマリVOL600のデータがセカンダリVOLにイニシャルコピーされた後において、プライマリVOL600のデータが更新されたときに、セカンダリVOL700にリモートコピーされるべき差分データの位置(言い換えれば、プライマリVOL600のデータ更新位置)を示す。
CPU23は、プライマリVOL600とバーチャルVOL610との間のペア状態をコピー状態にすることができる。プライマリVOL600とバーチャルVOL610との間のペア状態がコピー状態になっているときに、プライマリVOL600にデータが書き込まれると、CPU23は、そのデータをバーチャルVOL610又はプールVOL620に書き込む。
CPU23は、プライマリVOL600とバーチャルVOL610との間のペア状態をスプリット状態にすることができる。プライマリVOL600とバーチャルVOL610との間のペア状態がスプリット状態になっているときに、プライマリVOL600にデータが書き込まれると、CPU23は、内部コピープログラム200を動作させて、内部コピー処理及びスナップショット更新処理を実行する。
第2の記憶制御装置50は、CPU63、キャッシュメモリ65、セカンダリVOL700、複数のバーチャルVOL710A,710B、複数のプールVOL720、スナップショット管理情報400、及び転送差分ビットマップテーブル520を備える。
プールVOL720は、セカンダリVOL700とバーチャルVOL710A又はバーチャルVOL710Bとのペア状態がスプリットされた時点以降にセカンダリVOL700のデータイメージが更新されたときに、更新前後の差分データを退避させるための論理ボリュームである。
バーチャルVOL710A,710Bは、ある時刻にセカンダリVOL700に格納されているデータと、ある時刻以降にセカンダリVOL700からバーチャルVOL710A,710Bに退避されたデータとから、ある時刻におけるセカンダリVOL700のデータイメージを復元するための仮想的な論理ボリュームである。バーチャルVOL710A,710Bは、セカンダリVOL700のスナップショットを論理的に保持することができる。
本実施の形態では、バーチャルVOL710A,710Bは、キャッシュメモリ65の記憶領域に形成される場合を例示するが、ディスクドライブ71の記憶領域に形成されていてもよい。説明の便宜上、バーチャルVOL710A,710BをS_VVOLと略記する場合がある。
スナップショット管理情報400は、ある時刻におけるセカンダリVOL700のデータイメージを、スナップショットを用いて復元するための情報である。CPU63は、スナップショット管理情報400を参照することにより、ある時刻におけるセカンダリVOL700のデータイメージを構成する各データがプールVOL720に存在するのか、或いはセカンダリVOL700に存在するのかを判別し、判別された方からデータを取得することにより、ある時刻におけるセカンダリVOL700のデータイメージをバーチャルVOL710A,710Bに復元できる。スナップショット管理情報400は、セカンダリVOL700のデータ更新位置を示す差分ビットマップテーブル410A,410Bを含む。
転送差分ビットマップテーブル520は、プライマリVOL600のデータがセカンダリVOLにイニシャルコピーされた後において、プライマリVOL600のデータが更新されたときに、リモートコピーによりセカンダリVOL700のデータが更新された位置を示す。
次に、内部コピー処理、スナップショット更新処理、及びリモートコピー処理の詳細について説明を加える。以降の説明では、プライマリVOL600とバーチャネルVOL610との間のペア状態がスプリット状態にあることを前提とする。
第1の記憶制御装置20は、正ホストシステム100からライトコマンドを受信すると(S101)、ライトデータをキャッシュメモリ25に格納し(S102)、ライト完了を正ホストシステム100に報告する(S103)。
CPU23は、キャッシュメモリ25に書き込まれたライトデータを読み出し、プライマリVOL600に書き込む(S104)。このとき、CPU23は、更新前データ(ライトデータによって更新(上書き)される前のデータであって、且つプライマリVOL600に書かれていた過去のデータ)をプライマリVOL600からプールVOL620に移動させる(S105)。本明細書では、更新前データをプールVOLに移動させる処理を「スナップショット更新処理」と称する。
プライマリVOL600とバーチャネルVOL610との間のペア状態がスプリット状態にあるときに、内部コピーを実行すると、ある時刻におけるプライマリVOL600のデータイメージを構成する各データは、プライマリVOL600とプールVOL620とに分散される。
次に、CPU23は、スナップショット管理情報300を、プライマリVOL600とバーチャネルVOL610との間のペア状態がスプリットされた時点(以下、「スプリット時点」と称する。)にプライマリVOL600に格納されているデータと、そのスプリット時点以降にプライマリVOL600からプールVOL620に移動されたデータとから、そのスプリット時点におけるプライマリVOL600のデータイメージを復元するための情報に更新する(S106)。このスナップショット更新処理により、バーチャルVOL610は、プライマリVOL600のスナップショットを論理的に保持することができる。
CPU23は、プライマリVOL600とバーチャネルVOL610との間のペア状態がスプリット状態にあるときに、正ホストシステム100からライトコマンドを受信する都度に、上述したS102〜S106の処理を繰り返し実行する。
CPU23は、スプリット時点から所定時間経過後にリモートコピー実行プログラム210を動作させ、リモートコピー処理を実行する。リモートコピー実行プログラム210は、差分ビットマップテーブル310を転送差分ビットマップテーブル510にマージする。
そして、リモートコピー実行プログラム210は、転送差分ビットマップテーブル510に基づいて、スプリット時点におけるプライマリVOL600のデータイメージを復元するための各データがプライマリVOL600に存在するのか、或いはプールVOL620に存在するのかを判別し、判別された方からデータを取得して、そのデータを第2の記憶制御装置50に転送する(S107)。このリモートコピー処理により、スプリット時点におけるプライマリVOL600のデータイメージがセカンダリVOL700に再現される。
第2の記憶制御装置50は、第1の記憶制御装置20からデータを受信すると、第1の記憶制御装置20にライト完了を報告する(S108)。
なお、第1の記憶制御装置20では、バーチャルVOL610、スナップショット管理情報300、及び転送差分ビットマップテーブル510をキャッシュメモリ25A、25Bに二重書きすることによって、コントローラ30のうち、一方のコントローラに障害が発生した場合にも、他方のコントローラのCPUが引き続き内部コピー処理、スナップショット更新処理、及びリモートコピー処理を実行することができるようになされている。
以後、CPU63は、第1の記憶制御装置20から受信したデータをセカンダリVOL700に書き込む際に、更新前データ(ライトデータによって更新(上書き)される前のデータであって、且つセカンダリVOL700に書かれていた過去のデータ)をセカンダリVOL700からプールVOL720に移動させる(S109)。
更に、CPU63は、スナップショット管理情報400を、スプリット時点にセカンダリVOL700に格納されているデータと、スプリット時点以降にセカンダリVOL700からプールVOL720に移動されたデータとから、スプリット時点におけるセカンダリVOL700のデータイメージを復元するための情報に更新する(S110)。
尚、CPU63は、バーチャルVOL710A,710Bを交互に切り替えて使用する。これにより、例えば、CPU63は、バーチャルVOL710AにセカンダリVOL700のスナップショットを論理的に作成しつつ、差分ビットマップテーブル410Bをクリアすることができる。差分ビットマップテーブル410A,410Bをクリアするには、長時間を要する。バーチャルVOL710A,710Bを交互に切り替えて使用することで、スナップショットの作成と、差分ビットマップテーブル410A,410Bのクリアを並行処理できるので、効率がよいこととなる。
なお、第2の記憶制御装置50では、バーチャルVOL710A、710B、スナップショット管理情報400、及び転送差分ビットマップテーブル520をキャッシュメモリ65A、65Bに二重書きすることによって、コントローラ60のうち、一方のコントローラに障害が発生した場合にも、他方のコントローラのCPUが引き続き内部コピー処理、スナップショット更新処理、及びリモートコピー処理を実行することができるようになされている。
図5は、第1の記憶制御装置20において実行される非同期リモートコピーの処理シーケンスを示す。時刻t0は、プライマリVOL600とバーチャルVOL610との間のペア状態がスプリットされたスプリット時点を示す。この時刻t0におけるプライマリVOL600のデータイメージを「イメージT0」と称する。イメージT0は、プライマリVOL600の第一のブロック領域にデータブロックAが格納されているデータイメージとする。この時刻t0の時点では、プールVOL620に更新前データは格納されていない。スナップショット管理情報300は、イメージT0を復元するための情報になっている。
時刻t1で(つまり、スプリット状態の期間中に)、プライマリVOL600の第一のブロック領域にデータブロックBが上書きされると、プライマリVOL600のデータイメージがイメージT0からイメージT1に変化する。このとき、内部コピー実行プログラム200は、データブロックA(更新前データ)をプライマリVOL600からバーチャルVOL620に書き込み、スナップショット管理情報300を、プライマリVOL600の第一のブロック領域に更新があり、且つその第一のブロック領域に存在していたデータブロックA(更新前データ)がバーチャルVOL620に格納されたことを示す情報に更新する。
また、時刻t1で、制御プログラム220がリモートコピー処理の実行をリモートコピー実行プログラム210に命じる。リモートコピー実行プログラム210は、転送差分ビットマップテーブル510を参照することにより、イメージT0を構成するデータブロックAがバーチャルVOL610に存在することを特定し、バーチャルVOL610からデータブロックAを取得し、データブロックAを第2の記憶制御装置50に送信する。
時刻t2は、リモートコピー処理が完了した時点である。この結果、時刻t0の時点でプライマリVOL600に形成されていたイメージT0が、セカンダリVOL700に複製される。
また、時刻t2で(つまり、スプリット状態の期間中に)、プライマリVOL600の第二のブロック領域にデータブロックCが書かれると、プライマリVOL600のデータイメージがイメージT1からイメージT2に変化する。このとき、内部コピー実行プログラム200は、スナップショット管理情報300を、プライマリVOL600第二のブロック領域に更新があったことを示す情報に更新する。
例えば、時刻t2の後であって時刻t3の前に、プライマリVOL600の第二のブロック領域にデータブロックDが上書きされると、プライマリVOL600のデータイメージがイメージT2からイメージT3(第一のブロック領域にデータブロックBが存在し、第二のブロック領域にデータブロックDが存在するデータイメージ)に変化する。
このとき、内部コピー実行プログラム200は、データブロックC(更新前データ)をプライマリVOL600からプールVOL620に移動させ、スナップショット管理情報300を、プライマリVOL600の第二のブロック領域に更新があり、その第二のブロック領域に存在していたデータブロックCがプールVOL620に格納されたことを示す情報に更新する。
その後、プライマリVOL600の更新が行われる前に、時刻t3で、再び、プライマリVOL600とバーチャルVOL610とがスプリット状態にされる。
この時刻t3の時点で、換言すれば、スプリット状態にされた場合に、CPU23は、その時刻t3におけるプライマリVOL600のイメージT3をバーチャルVOL610に論理的に保持することを目的として、プールVOL620に格納されている全ての更新前データを消去する。
また、CPU23は、スナップショット管理情報300を、イメージT0を復元するための情報からイメージT3を復元するための情報に更新する。具体的には、例えば、時刻t3の時点では、プライマリVOL600において、未だ更新が行われていない状態なので、CPU23は、スナップショット管理情報300を、プライマリVOL600で更新が行われていないことを示す情報に更新する。
時刻t4の時点でプライマリVOL600の第二のブロック領域にデータブロックEが上書きされると、プライマリVOL600のデータイメージがイメージT3からイメージT4に変化する。このとき、内部コピー実行プログラム200は、データブロックD(更新前データ)をプライマリVOL600からバーチャルVOL610に書き込み、スナップショット管理情報300を、プライマリVOL600の第二のブロック領域で更新があり、且つその第二のブロック領域に存在していたデータブロックDがプールVOL620に移動したことを示す情報に更新する。
時刻t4の時点でリモートコピー処理が行われる。リモートコピー実行プログラム210は、転送差分ビットマップテーブル510を参照することにより、プライマリVOL600の第一のブロック領域に更新が無いので、イメージT3を構成するデータブロックBがプライマリVOL600に存在することを把握し、更にプライマリVOL600の第二のブロック領域に更新があったので、イメージT3を構成する別のデータブロックDがプールVOL620に存在することを把握する。リモートコピー実行プログラ210は、プライマリVOL600からデータブロックBを取得し、更にプールVOL620からデータブロックDを取得し、データブロックB及びデータブロックDを第2の記憶制御装置50に転送する。
時刻t5の時点は、リモートコピー処理が完了した時点である。この結果、セカンダリVOL700におけるイメージT0が、時刻t3におけるプライマリVOL600のイメージT3に更新される。つまり、セカンダリVOL700の第一ブロック領域のデータブロックAにデータブロックBが上書きされ、更にセカンダリVOL700の第二のブロック領域にデータブロックDが書き込まれる。
尚、これ以降、第2の記憶制御装置50は、次のスプリット時点t6のイメージT6を構成するデータを受信するまでの期間、イメージT3を保存する。
以後、時刻t3乃至時刻t5において実行された上述の処理が繰り返される。
つまり、第1の記憶制御装置20では、定期的に又は不定期的に、プライマリVOL600とバーチャルVOL610とがスプリット状態にされる。そのスプリット状態にされている期間中であって、次にスプリット状態にされる時点までに(換言すれば、内部コピー処理及びスナップショット更新処理に並行して)、リモートコピー処理が実行される。そのリモートコピー処理が完了した時点以降に、再び、プライマリVOL600とバーチャルVOL610とがスプリット状態にされ、プールVOL620から更新前データが消去される。
このような処理が繰り返されることにより、定期的に又は不定期的になされたスプリット時点におけるプライマリVOL600のデータイメージ(図5の例では、時刻t0におけるイメージT0、時刻t3におけるイメージT3、時刻t6におけるイメージT6)をバーチャルVOL610に論理的に保持し、そのデータイメージをセカンダリVOL700にコピーできる。
図6は、本実施形態に係るスナップショット更新処理の概要を示し、より詳細には、プライマリVOL600のデータイメージがイメージT3からイメージT4に変化し、バーチャルVOL610によってイメージT3が論理的に保持される様子を示す。
スナップショット管理情報300は、差分ビットマップテーブル310、アドレステーブル320、及び差分データ制御ブロック(Differential Data Control Block)330を含む。
差分ビットマップテーブル310は、プライマリVOL600内の複数のブロック領域(例えば、1ブロック領域は64Kバイト)にそれぞれ対応する複数のビットを有する。例えば、イメージT3からイメージT4に変わる場合、図6に示すように、プライマリVOL600の第一のブロック領域は、更新されないので、その第一のブロック領域に対応するビットは「0」のままであり、第二のブロック領域のデータブロックDにデータブロックEが上書きされたので、その第二のブロック領域に対応するビットが「0」から「1」に更新される。
アドレステーブル320は、プライマリVOL600の複数のブロック領域にそれぞれ対応したアドレス領域を有する。あるブロック領域に対応する更新前データが存在していれば、そのあるブロック領域に対応するアドレス領域には、そのアドレス領域に対応するアドレスであって、差分データ制御ブロック330上のアドレスが格納される。
差分データ制御ブロック330は、例えば、プールVOL620内の複数のブロック領域にそれぞれ対応する管理領域を有する。各管理領域には、プールVOL620内のブロック領域に対応する位置に格納された更新前データがどの世代のスナップショットのデータであるかが記録される。CPU23は、管理領域を辿ることによって、複数世代の更新前データを取得することができる。
尚、差分データ制御ブロック330の使用されていない領域は、空きキューとして管理される。空きキューは、空きキューカウンタ340によって管理される。
上述の構成により、スナップショット作成時点におけるプライマリVOL600のデータイメージを論理的にバーチャルVOL610に複写できる。そして、バーチャルVOL610内のデータがどの世代の更新前データであるかは、差分データ制御ブロック330によって管理される。
(2)本実施の形態によるライトデータの処理
(2−1)本実施の形態による差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの管理処理
次に、本実施の形態によるストレージシステム10における差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの管理処理について説明する。本実施の形態によるストレージシステム10は、ブロック領域(第1のデータ管理単位)と、当該ブロック領域に比して小さい領域(第2のデータ管理単位)とにより、ライトデータを管理することを特徴の1つとしている。
図7は、ハッシュ管理テーブル240のテーブル構造を示す。ハッシュ管理テーブル240は、ブロック領域に比して小さい領域(以下、これを小ブロック領域と呼ぶ)(例えば、1小ブロック領域の最小単位は512バイト)でライトデータを管理する管理情報241が、当該管理情報241を検索するための先頭アドレス部242の先頭アドレスから順に結び付けられることにより構成されている。
図8は、管理情報241の構造を示す。管理情報241には、プライマリVOL600のLUNを表すPLUN2411、バーチャルVOL610のLUNを表すP_VLUN2412、差分ビットマップテーブル310におけるビットの位置を表す差分ビット位置2413、次に結び付けられる管理情報241のブロック領域内における小ブロック領域の先頭LBA(Logical Brock Address)を表す次管理情報先頭LBA2414、プライマリVOL600のコンシステンシグループ(Consistency Group)を表すCTG2415、ハッシュ管理テーブル240の差分管理ID(Identification)を表す差分管理ID2416、ブロック領域内における小ブロック領域の先頭LBAを表す先頭LBA2417、及び先頭LBA2417からの小ブロック領域の大きさを表す小ブロック領域レングス2418が格納されている。
このハッシュ管理テーブル240では、差分ビットマップテーブル310のビット位置の番号に対応させることにより、先頭アドレス部242の先頭アドレスが構成されている。
また、ハッシュ管理テーブル240は、管理情報241を結び付けるときに、当該管理情報を結び付ける先頭アドレス部242の先頭アドレスを、管理情報241の差分ビット位置2413から検索する。
そして、ハッシュ管理テーブル240は、当該管理情報241を、管理情報241の差分ビット位置2413から検索された先頭アドレス部242の先頭アドレスに結び付けることにより管理する。
なお、ハッシュ管理テーブル240は、先頭アドレス部242の先頭アドレスに管理情報241が結び付けられている状態において、管理情報241の差分ビット位置2413から同一の先頭アドレス部242の先頭アドレスが検索された場合には、当該管理情報241を、先頭アドレス部242の先頭アドレスに結び付けられている管理情報241に結び付けることにより管理する。
また、ハッシュ管理テーブル240は、その後、管理情報241の差分ビット位置2413から同一の先頭アドレス部242の先頭アドレスが検索された場合には、当該管理情報241を、一番最後に結び付けられている管理情報241に結び付けることにより管理する。
このようにして、ハッシュ管理テーブル240では、差分ビットマップテーブル310のビット位置の番号に、先頭アドレス部242の先頭アドレスを対応させることにより、差分ビットマップテーブル310のビット位置の番号で、管理情報241をハッシュ管理することができ、この結果、管理情報241を効率的に負荷分散することができ、一段と検索性の良いハッシュ管理を行うことができる。
また、ハッシュ管理テーブル240では、先頭LBA2417、及び小ブロック領域レングス2418で小ブロック領域を管理することにより、小ブロック領域のビットマップテーブルで管理する場合に比して、一段と少ないメモリ容量でライトデータを管理することができるようになされている。
ここで、図9及び図10は、このストレージシステム10における差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの管理処理に関する第1の記憶制御装置20の具体的な処理手順を示したフローチャートである。
CPU23は、初期時、図9及び図10に示すライトデータ管理処理手順RT1に従って、正ホストシステム100からライトデータを受信するのを待機モードで待ち受ける(S201)。
やがて、CPU23は、正ホストシステム100からライトデータを受信すると(S201:YES)、受信したライトデータをプライマリVOL600に書き込み、書き込まれたライトデータのブロック領域に対応する差分ビットマップテーブル310のビットを「0」から「1」に更新する(S202)。
続いて、CPU23は、ハッシュ管理テーブル240の容量を調査して、ハッシュ管理テーブル240に、新たに書き込まれたライトデータの管理情報241を格納する容量があるか否かをチェックする(S203)。
そして、CPU23は、ハッシュ管理テーブル240に、新たに書き込まれたライトデータの管理情報241を格納する容量がない場合(S203:NO)には、書き込まれたライトデータのブロック領域に対応する差分ビットマップ310のビットで、書き込まれたライトデータを管理し(S204)、この後、再び、正ホストシステム100からライトデータを受信するのを待ち受ける待機モードに戻る(S201)。
これに対して、CPU23は、新たに管理情報241を格納する容量がある場合(S203:YES)には、書き込まれたライトデータの管理情報241(以下、これをライト管理情報241と呼ぶ)を作成する(S205)。
この場合、例えば、ライト管理情報241は、図11に示すように、PLUN2411が「3」であり、P_VLUN2412が「3」であり、差分ビット位置2413が「4」であり、次管理情報先頭LBA2414が「0x00」であり、CTG2415が「5」であり、差分管理ID2416が「15」であり、先頭LBA2417が「64」(先頭から32Kバイトの位置)であり、小ブロック領域レングス2418が「32」(16Kバイト)であるものとする。
なお、ライト管理情報241の次管理情報先頭LBA2414における「0x00」は、ハッシュ管理テーブル240における先頭アドレス部242の先頭アドレスに結び付けられる一番最後の管理情報241であり、次の管理情報241が結び付けられていないことを示している。
続いて、CPU23は、ライト管理情報241を結び付ける先頭アドレス部242の先頭アドレスを、当該ライト管理情報241の差分ビット位置2413から検索する(S206)。
続いて、CPU23は、ライト管理情報241の差分ビット位置2413に基づいて検索された先頭アドレス部242の先頭アドレスに、すでに別の管理情報241が結び付けられているか否かをチェックする(S207)。
そして、CPU23は、先頭アドレス部242の先頭アドレスに、別の管理情報241が結び付けられていない場合(S207:NO)には、当該ライト管理情報241を先頭アドレス部242の先頭アドレスに結び付けて、ハッシュ管理テーブル240におけるライト管理情報241の先頭アドレス2417及び小ブロック領域レングス2418で、書き込まれたライトデータを管理し(S208)、この後、再び、正ホストシステム100からライトデータを受信するのを待ち受ける待機モードに戻る(S201)。
これに対して、CPU23は、先頭アドレス部242の先頭アドレスに、すでに別の管理情報241が結び付けられている場合(S207:YES)には、別の管理情報241の先頭LBA2417、及び小ブロック領域レングス2418を調査して、書き込まれたライトデータが別の管理情報241で管理されているライトデータと重なっているか否かをチェックする(S209)。
そして、CPU23は、書き込まれたライトデータが別の管理情報241で管理されているライトデータと重なっている場合(S209:YES)には、結び付けられている別の管理情報241の先頭LBA2417、及び小ブロック領域レングス2418を調査して、ライト管理情報241、及び別の管理情報241を1つの管理情報241にまとめるように変更して、引き続きハッシュ管理テーブル240におけるライト管理情報241の先頭アドレス2417及び小ブロック領域レングス2418で、書き込まれたライトデータを管理する(S210)。
例えば、先頭アドレス部242の先頭アドレスに、すでに結び付けられている別の管理情報241の先頭LBA2417が「32」であり、小ブロック領域レングス2418が「48」である場合には、図12に示すように、当該管理情報241が管理しているライトデータに、書き込まれたライトデータが重なることとなる。
このとき、CPU23は、図13に示すように、先頭アドレス部242の先頭アドレスに、すでに結び付けられている別の管理情報241の小ブロック領域レングス2418を「48」から「64」に変更することにより、先頭アドレス部242の先頭アドレスに、すでに結び付けられている別の管理情報241と、ライト管理情報241とをまとめて、1つの管理情報241として管理することができる。
このようにして、CPU23では、ハッシュ管理テーブル240において、書き込まれたライトデータが別の管理情報241で管理されているライトデータと重なっている場合に、重複したライトデータを別々の管理情報241で管理することなく、1つの管理情報241で管理することにより、一段と少ないハッシュ管理テーブル240のメモリ容量でライトデータを管理することができ、この結果、ハッシュ管理テーブル240のメモリ容量を有効に用いて、ライトデータの転送効率を向上することができるようになされている。
これに対して、CPU23は、書き込まれたライトデータが別の管理情報241で管理されているライトデータと重なっていない場合には(S209:NO)、先頭アドレス部242の先頭アドレスにすでに結び付けられている別の管理情報241の数を調査して、先頭アドレス部242の先頭アドレスに、すでに別の管理情報241が4つ結び付けられているか否かをチェックする(S211)。
そして、CPU23は、先頭アドレス部242の先頭アドレスにすでに結び付けられている別の管理情報241が4つより少ない場合(S211:NO)には、先頭アドレス部242の先頭アドレスにすでに結び付けられている別の管理情報241、及びライト管理情報241の小ブロック領域レングス2418の合計値を調査して、当該合計値が所定の閾値(例えば、閾値は48Kバイト)より大きいか否かをチェックする(S212)。
そして、CPU23は、小ブロック領域レングス2418の合計値が閾値より大きい場合(S212:YES)、又は先頭アドレス部242の先頭アドレスにすでに結び付けられている別の管理情報241が4つである場合(S211:YES)には、先頭アドレス部242の先頭アドレスにすでに結び付けられている管理情報241をすべて削除して、書き込まれたライトデータのブロック領域に対応する差分ビットマップ310のビットで、書き込まれたライトデータを管理し(S204)、この後、再び、正ホストシステム100からライトデータを受信するのを待ち受ける待機モードに戻る(S201)。
このようにして、CPU23では、ブロック領域で第2の記憶制御装置50にライトデータを転送しても転送効率がさほど変わらないライトデータの管理情報241を管理することなく、すべて削除することにより、一段と少ないハッシュ管理テーブル240のメモリ容量でライトデータを管理することができ、この結果、ハッシュ管理テーブル240のメモリ容量を有効に用いて、ライトデータの転送効率を向上することができるようになされている。
これに対して、CPU23は、小ブロック領域レングス2418の合計値が閾値以下である場合(S212:NO)には、先頭アドレス部242の先頭アドレスに結び付けられている一番最後の管理情報241に、ライト管理情報241を結び付け、ハッシュ管理テーブル240におけるライト管理情報241の先頭アドレス2417及び小ブロック領域レングス2418で、書き込まれたライトデータを管理する(S214)。
この場合、例えば、CPU23は、先頭アドレス部242の先頭アドレスに結び付けられている一番最後の管理情報241の次管理情報先頭LBA2414を、「0x00」から、ライト管理情報241の先頭LBA2417である「16」に変更することにより、先頭アドレス部242の先頭アドレスに結び付けられている一番最後の管理情報241に、ライト管理情報241を結び付けるようになされている。
そして、CPU23は、この後、再び、正ホストシステム100からライトデータを受信するのを待ち受ける待機モードに戻る(S201)。
(2−2)本実施の形態による差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの転送処理
次に、本実施の形態によるストレージシステム10における差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの転送処理について説明する。本実施の形態によるストレージシステム10は、ブロック領域(第1のデータ管理単位)、又は当該ブロック領域に比して小さい領域(第2のデータ管理単位)で、ライトデータを第2の記憶制御装置50に転送するようになされている。
ここで、図14及び図15は、このストレージシステム10における差分ビットマップテーブル310及びハッシュ管理テーブル240を用いたライトデータの転送処理に関する第1の記憶制御装置20及び第2の記憶制御装置50の具体的な処理手順を示したフローチャートである。
CPU23は、初期時、図14に示すライトデータ転送処理手順RT2に従って、スプリット時点から所定時間が経過するのを待機モードで待ち受ける(S301)。
やがて、CPU23は、スプリット時点から所定時間が経過すると(S301:YES)、リモートコピー実行プログラム210を動作させ、差分ビットマップテーブル310を転送差分ビットマップテーブル510にマージする(S302)。
続いて、CPU23は、転送差分ビットマップテーブル510のビットが「1」に更新されているビットを検索することにより、「1」に更新されているビットに対応した転送すべきブロック領域を検索する(S303)。
続いて、CPU23は、転送差分ビットマップテーブル510のビットが「1」に更新されているビットを検索した検索結果として、「1」に更新されているビットに対応した転送すべきブロック領域があるか否かをチェックする(S304)。
そして、CPU23は、「1」に更新されているビットに対応した転送すべきブロック領域がない場合(S304:NO)には、この後、再び、スプリット時点から所定時間が経過するのを待ち受ける待機モードに戻る(S301)。
これに対して、CPU23は、「1」に更新されているビットに対応した転送すべきブロック領域がある場合(S304:YES)には、転送差分ビットマップテーブル510のビットが「1」に更新されているビット位置に対応するハッシュ管理テーブル240の先頭アドレス部の先頭アドレスに結び付けられている管理情報241を検索することにより、「1」に更新されているビットに対応した転送すべきブロック領域内における転送すべきブロック領域を検索する(S305)。
続いて、CPU23は、転送差分ビットマップテーブル510のビットが「1」に更新されているビット位置に対応するハッシュ管理テーブル240の先頭アドレス部の先頭アドレスに結び付けられている管理情報241を検索した検索結果として、転送すべきブロック領域内における転送すべき小ブロック領域があるか否かをチェックする(S306)。
そして、CPU23は、転送すべきブロック領域内における転送すべき小ブロック領域がある場合(S306:YES)には、転送すべきブロック領域内における転送すべき小ブロック領域で上述のリモートコピー処理を実行して、転送すべきブロック領域内における転送すべき小ブロック領域を転送すると、転送した小ブロック領域に対応する管理情報241を削除する(S307)。
この場合、例えば、CPU23は、削除した管理情報241の1つ前に結び付けられていた次管理情報先頭LBA2414を、削除した管理情報241の1つ後に結び付けられていた次管理情報先頭LBA2414に変更することにより、削除した管理情報241の1つ前に結び付けられていた管理情報241に、削除した管理情報241の1つ後に結び付けられていた管理情報241を結び付けるようになされている。
続いて、CPU23は、転送差分ビットマップテーブル510のビットが「1」に更新されているビット位置に対応するハッシュ管理テーブル240の先頭アドレス部の先頭アドレスに結び付けられている管理情報241を検索することにより、転送すべきブロック領域内における転送すべき小ブロック領域をすべて転送したか否かをチェックする(S308)。
そして、CPU23は、転送すべきブロック領域内における転送すべき小ブロック領域をすべて転送していない場合(S308:NO)には、転送すべきブロック領域内における転送すべき小ブロック領域で上述のリモートコピー処理を実行して、転送すべきブロック領域内における転送すべき小ブロック領域を転送すると、転送した小ブロック領域に対応する管理情報241を削除する(S307)。
これに対して、CPU23は、転送すべきブロック領域内における転送すべき小ブロック領域がない場合(S306:NO)には、転送すべきブロック領域で上述のリモートコピー処理を実行する(S309)。
そして、CPU23は、転送すべきブロック領域内における転送すべき小ブロック領域をすべて転送した場合(S308:YES)、又は転送すべきブロック領域で上述のリモートコピー処理を実行した場合には、転送したブロック領域に対応する転送差分ビットマップテーブル510のビットを「1」から「0」に更新する(S310)。
続いて、CPU23は、「1」に更新されているビットに対応した転送すべきブロック領域内における転送すべきブロック領域を検索することにより、転送すべきブロック領域をすべて転送したか否かをチェックする(S311)。
そして、CPU23は、転送すべきブロック領域をすべて転送していない場合(S311:NO)には、転送すべきブロック領域内における転送すべき小ブロック領域があるか否かをチェックする(S306)。
これに対して、CPU23は、転送すべきブロック領域をすべて転送した場合(S311:YES)には、この後、再び、スプリット時点から所定時間が経過するのを待ち受ける待機モードに戻る(S301)。
この後、CPU63は、上述のリモートコピー処理により、スプリット時点におけるプライマリVOL600のデータイメージをセカンダリVOL700に再現し、CPU23にライト完了を報告する。
また、CPU63は、CPUから受信したデータをセカンダリVOL700に書き込む際に、更新前データ(ライトデータによって更新(上書き)される前のデータであって、且つセカンダリVOL700に書かれていた過去のデータ)をセカンダリVOL700からプールVOL720に移動させる。
そして、CPU63は、スナップショット管理情報400を、スプリット時点にセカンダリVOL700に格納されているデータと、スプリット時点以降にセカンダリVOL700からプールVOL720に移動されたデータとから、スプリット時点におけるセカンダリVOL700のデータイメージを復元するための情報に更新するようになされている。
なお、第1の記憶制御装置20では、バーチャルVOL610、スナップショット管理情報300、及び転送差分ビットマップテーブル510については、キャッシュメモリ25A、25Bにおいて、二重書きされるようになされているが、ハッシュ管理テーブル240については、ローカルメモリ26に格納されているため、二重書きされるようになされていない。
従って、第1の記憶制御装置20では、リモートコピー処理時に一方のコントローラに障害が発生した場合には、他方のコントローラのCPUが引き続きリモートコピー処理を実行するが、この場合、他方のコントローラのCPUにおいては、ハッシュ管理テーブル240を参照せず、転送差分ビットマップテーブル310のみを参照することにより、転送するブロック領域で上述のリモートコピー処理を実行するようになされている。
また、第1の記憶制御装置20では、リモートコピー処理時に一方のコントローラに障害が発生した場合において、正ホストシステム100から新たに他方のコントローラのCPUに、ライトデータを受信した場合には、ハッシュ管理テーブル240に管理情報241が格納されている場合には、すべての管理情報241を削除して、その時点から、他方のコントローラのCPUにおいて、差分ビットマップテーブル310及びハッシュ管理テーブル240を用いた管理処理及び転送処理を実行するようになされている。
一方、第1の記憶制御装置20では、その後、一方のコントローラの障害が回復した場合においては、障害発生後から回復までの矛盾を防止するため、一方のコントローラのCPUにおいて、ハッシュ管理テーブル240を参照せず、転送差分ビットマップテーブル310のみを参照することにより、転送するブロック領域で上述のリモートコピー処理を実行するようになされている。
また、第1の記憶制御装置20では、一方のコントローラの障害が回復した場合において、正ホストシステム100から新たに当該コントローラのCPUに、ライトデータを受信した場合には、ハッシュ管理テーブル240に管理情報241が格納されている場合には、すべての管理情報241を削除して、その時点から、一方のコントローラのCPUにおいて、差分ビットマップテーブル310及びハッシュ管理テーブル240を用いた管理処理及び転送処理を実行するようになされている。
このようにして、ストレージシステム10では、差分ビットマップテーブル310のビットにより、ブロック領域のライトデータを管理すると共に、ハッシュ管理テーブル240の管理情報241により、ブロック領域に比して小さい領域のライトデータを管理する。
従って、ストレージシステム10では、ブロック領域内における、第2の記憶制御装置50に転送するライトデータが少ない場合には、小ブロック領域でリモートコピー処理を実行することによりライトデータの転送量を少なくすることができ、ブロック領域内における第2の記憶制御装置50に転送するライトデータが多い場合には、ブロック領域でリモートコピー処理を実行することによりハッシュ管理テーブル240のメモリ容量を小さくすることができ、かくして、メモリ容量の増加を有効に防止することができると共に、データの転送効率を格段的に向上させることができる。
なお、本実施の形態においては、ブロック領域(第1のデータ管理単位)と、当該ブロック領域に比して小さい領域(第2のデータ管理単位)とにより、ライトデータを管理した場合について述べたが、本発明はこれに限らず、例えば、3つ以上のデータ管理単位によって、ライトデータを管理するようにしても良い。
また、本実施の形態においては、1ブロック領域を「64Kバイト」、1小ブロック領域の最小単位を「512バイト」とした場合について述べたが、本発明はこれに限らず、例えば、1ブロック領域を「64Kバイト」、1小ブロック領域の最小単位を「8Kバイト」としても良く、この他種々の大きさのブロック領域、及び小ブロック領域で管理することができる。
さらに、本実施の形態においては、先頭アドレス部242の先頭アドレスにすでに結び付けられている管理情報241をすべて削除して、書き込まれたライトデータのブロック領域に対応する差分ビットマップ310のビットで、書き込まれたライトデータを管理する閾値を「48Kバイト」とした場合について述べたが、本発明はこれに限らず、例えば、閾値を「32Kバイト」としても良く、この他種々の大きさの閾値にすることができる。
さらに、本実施の形態においては、先頭アドレス部242の先頭アドレスにすでに結び付けられている別の管理情報241が4つである場合に、先頭アドレス部242の先頭アドレスにすでに結び付けられている管理情報241をすべて削除して、書き込まれたライトデータのブロック領域に対応する差分ビットマップ310のビットで、書き込まれたライトデータを管理した場合について述べたが、本発明はこれに限らず、例えば、別の管理情報241が4つ以下であっても良く、又は4つより大きい数であっても良く、この他種々の数にすることができる。
(3)本実施の形態によるコマンドジョブの優先実行処理
次に、本実施の形態によるストレージシステム10におけるコマンドジョブの優先実行処理について説明する。本実施の形態によるストレージシステム10は、コマンドジョブの優先度を設定し、当該優先度ごとにコマンドジョブを並べて格納し、優先度に基づく設定に従って、並べられた順にコマンドジョブを実行することを特徴の1つとしている。
図16は、CPU23によるコマンドジョブ優先実行プログラム250の実行により行われるコマンドジョブ優先実行処理の概略図を示す。CPU23は、コマンドジョブ優先実行プログラム250を実行することにより、ジョブ生成部2501、高優先格納部2502、ノーマル格納部2503、コマンドジョブスケジューラ2504、コマンドジョブ実行部2505、コマンドジョブ振り分け情報2506、及びコマンドジョブ実行設定情報2507をローカルメモリ26に展開する。
ここで、図17は、このストレージシステム10におけるコマンドジョブの格納処理に関する第1の記憶制御装置20の具体的な処理手順を示したフローチャートである。
CPU23は、初期時、図17に示すコマンドジョブの格納処理手順RT3に従って、正ホストシステム100からのリードコマンドやライトコマンド、リモートコピー処理の実行要求、内部コピー処理の実行要求等に基づいて、CPU23がこれらの動作を実行するためのジョブであるコマンドジョブの生成要求がジョブコマンド生成部2501に受信
したか否かをチェックする(S401)。
そして、CPU23は、コマンドジョブの生成要求がジョブコマンド生成部2501に受信していない場合(S401:NO)には、コマンドジョブの生成要求がジョブコマンド生成部2501に受信するのを待機モードで待ち受ける。
これに対して、CPU23は、コマンドジョブの生成要求がジョブコマンド生成部2501に受信した場合(S401:YES)には、ジョブコマンド生成部2501において、上述のアクセスや要求等に対応するコマンドジョブを生成する(S402)。
続いて、CPU23は、ジョブコマンド生成部2501において、コマンドジョブ振り分け情報2506を参照することにより、生成したコマンドジョブを、高優先格納部2502に格納するのか否かをチェックする(S403)。
この場合、高優先格納部2502は、コマンドジョブのうち、優先度「高」のコマンドジョブを格納するようになされており、コマンドジョブを古い順に並べて格納するようになされている。
また、ノーマル格納部2503は、コマンドジョブのうち、優先度「中」のコマンドジョブを格納するようになされており、コマンドジョブを古い順に並べて格納するようになされている。
具体的に、高優先格納部2502及びノーマル格納部2503は、格納したコマンドジョブを、古く格納した順に取り出すようにする方式であり、一番新しく格納されたコマンドジョブが一番最後に取り出される、FIFO(First In First Out)型のバッファのような機能を有している。
さらに、コマンドジョブ振り分け情報2506は、コマンドジョブの優先度を設定するようになされており、コマンドジョブのうち、どのコマンドジョブを高優先格納部2502に振り分けて格納し、どのコマンドジョブをノーマル格納部2503に振り分けて格納するのかを表す情報である。
具体的に、コマンドジョブ振り分け情報2506は、例えば、コマンドジョブのうち、リモートコピー処理を行うための「データ転送ジョブ(転送ジョブ)」、及びデータ転送ジョブの「ステージングジョブ(STGジョブ)」については、優先度「高」のコマンドジョブであり、それ以外のコマンドジョブについては、優先度「中」のコマンドジョブである旨が書き込まれている。
そして、CPU23は、ジョブコマンド生成部2501において、コマンドジョブ振り分け情報2506を参照することにより、生成したコマンドジョブを高優先格納部2502に格納する場合(S403:YES)には、生成したコマンドジョブを、すでに高優先格納部2502に古い順に並べられているコマンドジョブの一番後ろに並べるようにして、高優先格納部2502に格納する(S404)。
これに対して、CPU23は、ジョブコマンド生成部2501において、コマンドジョブ振り分け情報2506を参照することにより、生成したコマンドジョブをノーマル格納部2503に格納する場合(S403:NO)には、生成したコマンドジョブを、すでにノーマル優先格納部2503に古い順に並べられているコマンドジョブの一番後ろに並べるようにして、ノーマル格納部2503に格納する(S405)。
例えば、CPU23は、生成したコマンドジョブが「データ転送ジョブ」である場合には、「データ転送ジョブ」を、すでに高優先格納部2502に古い順に並べられているコマンドジョブの一番後ろに並べるようにして、高優先格納部2502に格納し、生成したコマンドジョブが「まとめジョブ」である場合には、「まとめジョブ」を、すでにノーマル格納部2503に古い順に並べられているコマンドジョブの一番後ろに並べるようにして、ノーマル格納部2503に格納するようになされている。
やがて、CPU23は、この後、再び、コマンドジョブの生成要求がジョブコマンド生成部2501に受信したか否かをチェックする(S401)。
また、図18は、このストレージシステム10におけるコマンドジョブの優先実行処理に関する第1の記憶制御装置20の具体的な処理手順を示したフローチャートである。
CPU23は、初期時、図18に示すコマンドジョブの優先実行処理手順RT4に従って、コマンドジョブスケジューラ2504において、高優先格納部2502、又はノーマル格納部2503にコマンドジョブが格納されているか否かをチェックする(S501)。
そして、CPU23は、高優先格納部2502、又はノーマル格納部2503にコマンドジョブが格納されていない場合(S501:NO)には、高優先格納部2502、又はノーマル格納部2503にコマンドジョブが格納されるのを待機モードで待ち受ける。
これに対して、CPU23は、高優先格納部2502、又はノーマル格納部2503にコマンドジョブが格納されている場合(S501:YES)には、コマンドジョブスケジューラ2504において、コマンドジョブ実行設定情報2507を参照することにより、高優先格納部2502、又はノーマル格納部2503のどちらからコマンドジョブを取り出すのかを選択して、格納されたのが一番古いコマンドジョブを、コマンドジョブ実行部2505に送る(S502)。
この場合、コマンドジョブスケジューラ2504は、高優先格納部2502、又はノーマル格納部2503のどちらからコマンドジョブを取り出すのかを選択して、選択した格納部に格納されたのが一番古いコマンドジョブを、コマンドジョブ実行部2505に送るようになされている。
また、コマンドジョブスケジューラ2504は、コマンドジョブ実行部2505でのコマンドジョブの実行が終了するたびに、上述と同様に高優先格納部2502、又はノーマル格納部2503を選択して、コマンドジョブをコマンドジョブ実行部2505に送るようになされている。
コマンドジョブ実行設定情報2507は、高優先格納部2502に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのか、ノーマル格納部2503に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのかを表す情報である。
具体的に、コマンドジョブ実行設定情報2507は、例えば、高優先格納部2502に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのと、ノーマル格納部2503に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのとを「2:1」で実行させる旨が書き込まれている。
すなわち、CPU23は、コマンドジョブスケジューラ2504において、高優先格納部2502に格納されているコマンドジョブを古い順から2つ送ると、ノーマル格納部2503に格納されている一番古いコマンドジョブを1つ送るようになされている。
続いて、CPU23は、コマンドジョブ実行部2505において、コマンドジョブスケジューラ2504から送られたコマンドジョブを実行する(S503)。
続いて、CPU23は、コマンドジョブスケジューラ2504において、高優先格納部2502、又はノーマル格納部2503にまだ未実行のコマンドジョブが格納されているか否かをチェックする(S504)。
そして、CPU23は、高優先格納部2502、又はノーマル格納部2503にまだ未実行のコマンドジョブが格納されている場合(S504:YES)には、この後、再び、コマンドジョブスケジューラ2504において、コマンドジョブ実行設定情報2507を参照することにより、高優先格納部2502、又はノーマル格納部2503からコマンドジョブを選択して、コマンドジョブ実行部2505に送る(S502)。
これに対して、CPU23は、高優先格納部2502、又はノーマル格納部2503にまだ未実行のコマンドジョブが格納されていない場合(S504:NO)には、この後、このコマンドジョブの優先実行処理手順RT4を終了する(S505)。
なお、CPU23は、コマンドジョブスケジューラ2504において、高優先格納部2502にコマンドジョブが格納されていない場合には、新しく高優先格納部2502にコマンドジョブが格納されるまでは、ノーマル格納部2503のコマンドジョブを取り出してコマンドジョブ実行部2505に送り、ノーマル格納部2503にコマンドジョブが格納されていない場合には、新しくノーマル格納部2503にコマンドジョブが格納されるまでは、高優先格納部2502のコマンドジョブを取り出してコマンドジョブ実行部2505に送るようになされている。
そして、CPU23は、高優先格納部2502、及びノーマル格納部2503にコマンドジョブが格納されている場合には、コマンドジョブスケジューラ2504において、コマンドジョブ実行設定情報2507を参照するようになされている。
このようにして、ストレージシステム10では、高優先格納部2502を設け、コマンドジョブの優先度を設定して、優先度「高」のコマンドジョブを高優先格納部2502に格納し、コマンドジョブ実行設定情報2507に従って、優先度「高」のコマンドジョブを優先的に実行することにより、CPU23が過負荷状態であっても、第1の記憶制御装置20の処理性能を維持するために優先的に実行しなければならないコマンドジョブが実行されないといった事態を未然かつ有効に防止し、この結果、第1の記憶制御装置20の処理性能をバランス良く維持することができる。
また、ストレージシステム10では、「データ転送ジョブ」及びその「ステージングジョブ」を高優先格納部2502に格納し、コマンドジョブ実行設定情報2507に従って、「データ転送ジョブ」及びその「ステージングジョブ」を優先的に実行することにより、CPU23が過負荷状態であっても、正ホストシステム100からのアクセス処理性能と第2の記憶制御装置50へのデータ転送性能をバランス良く維持することができる。
なお、本実施の形態においては、コマンドジョブ振り分け情報2506を、「データ転送ジョブ(転送ジョブ)」、及びデータ転送ジョブの「ステージングジョブ(STGジョブ)」を優先度「高」のコマンドジョブとし、それ以外のコマンドジョブを優先度「中」のコマンドジョブのコマンドとした場合について述べたが、本発明はこれに限らず、例えば、「コピージョブ」を優先度「高」のコマンドジョブとする等、この他種々に、コマンドジョブの優先度を自由に設定、又は変更することができる。
また、本実施の形態においては、コマンドジョブ振り分け情報2506により、優先度「高」のコマンドジョブ、又は優先度「中」のコマンドジョブの2つのコマンドジョブにより、対応する格納部に振り分けた場合について述べたが、本発明はこれに限らず、優先度「高」のコマンドジョブ、優先度「中」のコマンドジョブ、又は優先度「低」のコマンドジョブの3つのコマンドジョブにより、対応する格納部に振り分けても良く、優先後の振り分け、及び対応する格納部の数を3つ以上にして、それぞれ対応する格納部に振り分けるようにしても良い。
さらに、本実施の形態においては、コマンドジョブ実行設定情報2507を参照することにより、高優先格納部2502に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのと、ノーマル格納部2503に格納されているコマンドジョブを取り出してコマンドジョブ実行部2505に送るのとを「2:1」で実行させた場合について述べたが、本発明はこれに限らず、例えば、「3:1」や「5:2」等の「2:1」以外の比率で実行するようにしても良く、また、比率以外にも、種々の方法で、高優先格納部2502、又はノーマル格納部2503のどちらからコマンドジョブを取り出すのかを選択することができる。
このように、ストレージシステム10では、コマンドジョブ振り分け情報2506及びコマンドジョブ実行設定情報2507を自由に設定、又は変更することにより、一段と第1の記憶制御装置20の処理性能をバランス良く維持することができる。
(4)本実施の形態によるまとめ通信コマンドの送受信処理
次に、本実施の形態によるストレージシステム10におけるまとめ通信コマンドの送受信処理について説明する。本実施の形態によるストレージシステム10は、通信元の記憶制御装置において、同種の通信コマンドを1つのまとめ通信コマンドにまとめて、通信先の記憶制御装置に送信して、通信先の記憶制御装置において、まとめ通信コマンドを個々の通信コマンドに分割し、個々に通信コマンドに対する処理を実行して、まとめ通信コマンドの処理結果を通信元の記憶制御装置に送信し、通信元の記憶制御装置において、送信された処理結果に対する処理を実行することを特徴の1つとしている。
ここで、図19は、CPU23及びCPU63によるまとめ通信実行プログラム260の実行により行われるまとめ通信コマンドの送受信処理に関する第1の記憶制御装置20及び第2の記憶制御装置50の具体的な処理手順を示したフローチャートである。
CPU23は、初期時、図19に示すまとめ通信コマンドの送受信処理RT5に従って、正ホストシステム100から第2の記憶制御装置50との通信制御に関する複数の通信コマンドを受信する(S601)。
続いて、CPU23は、複数の通信コマンドのうち、通信コマンドA,通信コマンドB、通信コマンドC、及び通信コマンドDが同種の通信コマンドであった場合、図20に示すように、これら個々の通信コマンドA,通信コマンドB、通信コマンドC、及び通信コマンドDを並べてリスト化することにより、同種の通信コマンドA〜Dを1つのまとめ通信コマンドMにまとめる(S602)。
この場合、例えば、通信コマンドA〜Dとしては、プライマリVOL600とペア状態である4つのセカンダリVOL700をすべてスプリット状態にするための4つのスプリットコマンドである。
続いて、CPU23は、まとめ通信コマンドMを送信する旨の通知コマンドを生成し、当該通知コマンドを第2の記憶制御装置50に送信する(S603)。
続いて、CPU63は、第1の記憶制御装置20から通知コマンドを受信すると、次に受信する通信コマンドがまとめ通信コマンドである旨を認識し、次に受信する通信コマンドがまとめ通信コマンドである旨を認識した応答コマンドを生成して、当該応答コマンドを第2の記憶制御装置50に送信する(S604)。
続いて、CPU23は、第2の記憶制御装置50から応答コマンドを受信すると、まとめ通信コマンドMを第2の記憶制御装置50に送信する(S605)。
続いて、CPU63は、第1の記憶制御装置20からまとめ通信コマンドMを受信すると、まとめ通信コマンドMを個々の通信コマンドA〜Dに分割し、これら個々の通信コマンドA〜Dに対する処理を実行し、当該各処理の処理結果を得て、まとめ通信コマンドMに対する処理結果を送信する(S606)。
この場合、CPU63は、図21に示すように、例えば、当該各処理の処理結果A〜Dがすべて正常終了した場合には、まとめ通信コマンドMに対する処理結果として、まとめ通信コマンドMのうちの最後の通信コマンドである通信コマンドDに対する処理結果である、「正常終了」した処理結果Dを第2の記憶制御装置50に送信するようになされている。
また、CPU63は、図22に示すように、例えば、通信コマンドCに対する処理結果である処理結果Cが異常終了した場合には、未実行の通信コマンドDの処理を破棄し、まとめ通信コマンドMに対する処理結果として、「異常終了」した処理結果Cを第2の記憶制御装置50に送信するようになされている。
続いて、CPU63は、第2の記憶制御装置50からまとめ通信コマンドMに対する処理結果を受信すると、受信した処理結果に対する処理を実行する(S607)。
この場合、CPU63は、例えば、当該各処理の処理結果A〜Dがすべて正常終了し、まとめ通信コマンドMに対する処理結果として、「正常終了」した処理結果Dを受信した場合には、まとめ通信コマンドMのうちの最後の通信コマンドを確認し、当該通信コマンドが通信コマンドDであることから、まとめ通信コマンドMが正常に終了したと判断し、例えば、次のまとめ通信コマンドの送受信処理を実行するようになされている。
また、CPU63は、例えば、通信コマンドCに対する処理結果である処理結果Cが異常終了し、まとめ通信コマンドMに対する処理結果として、「異常終了」した処理結果Cを受信した場合には、まとめ通信コマンドMのうちの最後の通信コマンドを確認し、当該通信コマンドが通信コマンドDであることから、まとめ通信コマンドMが通信コマンドCで異常に終了したと判断し、例えば、通信コマンドC及び通信コマンドDについて、再び、まとめ通信コマンドの送受信処理を実行するようになされている。
このようにして、ストレージシステム10では、第1の記憶制御装置20において、同種の通信コマンドA〜Dを1つのまとめ通信コマンドMにまとめて、第2の記憶制御装置50に送信し、第2の記憶制御装置50において、まとめ通信コマンドMを個々の通信コマンドA〜Dに分割し、個々に通信コマンドA〜Dに対する処理を実行して、まとめ通信コマンドMに対する処理結果を第1の記憶制御装置20に送信し、第1の記憶制御装置20において、送信された処理結果に対する処理を実行することにより、同種の通信コマンドを1回ごとに通信することによるデータ転送性能の低下を未然かつ有効に防止することができ、かくして、データ転送性能を向上することができる。
また、例えば、通信コマンドCに対する処理結果である処理結果Cが異常終了した場合には、未実行の通信コマンドDの処理を破棄し、まとめ通信コマンドMに対する処理結果として、「異常終了」した処理結果Cを第2の記憶制御装置50に送信することにより、障害が発生した時点で、障害が発生したことを即時に報告して、障害に対応する処理を実行することができ、かくして、ストレージシステム10の処理性能を向上することができる。
なお、本実施の形態においては、通信コマンドA〜Dとして、プライマリVOL600とペア状態である4つのセカンダリVOL700をすべてスプリット状態にするための4つのスプリットコマンドを例としてあげたが場合について述べたが、本発明はこれに限らず、例えば、プライマリVOL600とペア状態である4つのセカンダリVOL700のペア状態を確認する4つのペア状態確認コマンドや、所定の時間ごとのプライマリVOL600からセカンダリVOL700への更新コピー時における4つの更新コピー通信コマンド、所定の時間ごとのプライマリVOL600からセカンダリVOL700への更新コピー時にコピー処理が完了しなかった4つの更新コピー通信コマンド等でも良く、この他種々の同種の通信コマンドに適用することができる。
また、本実施の形態においては、複数の通信コマンドのうち、通信コマンドA,通信コマンドB、通信コマンドC、及び通信コマンドDが同種の通信コマンドであった場合について述べたが、本発明はこれに限らず、例えば、同種の通信コマンドであれば、4つ以下の通信コマンドを、1つのまとめ通信コマンドにまとめるようにしても良く、又は4つより多い通信コマンドを、1つのまとめ通信コマンドにまとめるようにしても良い。
本発明は、ディスクアレイ装置間においてデータを管理するストレージシステムのほか、この他種々のデータ転送の管理を伴う機器に適用することができる。
本実施の形態によるストレージシステムの構成を示す略線図である。 ローカルメモリの構成を示す略線図ある。 ボリューム管理テーブルの説明に供する概念図である。 非同期リモートコピーの処理概要の説明に供する概念図である。 非同期リモートコピーの処理シーケンスの説明に供する概念図である。 スナップショット更新処理の概要の説明に供する概念図である。 ハッシュ管理テーブルの説明に供する概念図である。 管理情報の説明に供する概念図である。 ライトデータの管理処理手順の説明に供するフローチャートである。 ライトデータの管理処理手順の説明に供するフローチャートである。 管理情報の説明に供する概念図である。 管理情報のまとめの説明に供する概念図である。 管理情報のまとめの説明に供する概念図である。 ライトデータの転送処理手順の説明に供するフローチャートである。 ライトデータの転送処理手順の説明に供するフローチャートである。 コマンドジョブの優先実行処理の説明に供する概念図である。 コマンドジョブの格納処理手順の説明に供するフローチャートである。 コマンドジョブの優先実行処理手順の説明に供するフローチャートである。 まとめ通信コマンドの送受信処理手順の説明に供するフローチャートである。 通信コマンドまとめ処理の説明に供する概念図である。 通信コマンドまとめ処理の説明に供する概念図である。 通信コマンドまとめ処理の説明に供する概念図である。
符号の説明
10……ストレージシステム、20……第1の記憶制御装置、23……CPU、26……ローカルメモリ、30、60……コントローラ、40、70……記憶装置、41、71……ディスクドライブ、42、72……論理ボリューム、50……第2の記憶制御装置、80……管理端末、100……正ホストシステム、200……内部コピー実行プログラム、210……リモートコピー実行プログラム、220……制御プログラム、230……ボリューム管理テーブル、240……ハッシュ管理テーブル、241……管理情報、2411……PLUN、2412……P_VLUN、2413……差分ビット位置、2414……次管理情報先頭LBA、2415……CTG、2416……差分管理ID、2417……先頭LBA、2418……小ブロック領域レングス、242……先頭アドレス、250……コマンドジョブ実行プログラム、2501……コマンドジョブ生成部、2502……高優先格納部、2503……ノーマル格納部、2504……ジョブコマンドコントローラ、2505……ジョブコマンド実行部、2506……コマンドジョブ振り分け情報、2507……コマンドジョブ実行設定情報、260……まとめ通信実行プログラム

Claims (17)

  1. データを記憶する記憶デバイスと、
    前記記憶デバイスから構成され、上位装置から送信されるデータを記憶し、第1のデータ単位の複数の記憶領域を有する正ボリュームと、前記記憶デバイスから構成され、所定のタイミング以降に更新された前記正ボリューム内の前記複数の記憶領域に当該更新の前に格納されていた更新前データを格納する更新前データボリュームとを前記上位装置に提供する制御部と
    を備え、
    前記所定のタイミングにおける前記正ボリュームの複製を記憶する副ボリュームを提供する副記憶制御装置と接続された記憶制御装置であって、
    前記制御部は、
    前記正ボリュームの前記複数の記憶領域に対する更新に応じて、
    前記正ボリュームの前記複数の記憶領域の前記更新前データを、前記第1のデータ単位、または、前記第1のデータ単位及び当該第1のデータ単位より小さい第2のデータ単位で管理し、
    前記正ボリュームの前記複数の記憶領域のうち、当該記憶領域の前記更新前データを前記第2のデータ単位で管理すると、当該記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値より大きくなる第1の記憶領域を前記第1のデータ単位で管理し、
    前記正ボリュームの前記複数の記憶領域のうち、当該記憶領域の前記更新前データを前記第2のデータ単位で管理すると、当該記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値以下となる第2の記憶領域を前記第1のデータ単位及び前記第2のデータ単位で管理し、
    前記所定のタイミングにおける前記正ボリューム内のデータを前記副ボリュームに転送する場合、
    前記第1の記憶領域については前記第1のデータ単位で、前記第2の記憶領域については前記第2のデータ単位で、前記正ボリュームの当該記憶領域のデータまたは当該記憶領域に対応する前記更新前データボリューム内の前記更新前データのいずれかを前記副ボリュームに転送する
    ことを特徴とする記憶制御装置。
  2. 前記制御部は、
    前記第1のデータ単位での前記更新前データの管理に基づき、前記第1の記憶領域及び前記第2の記憶領域に対応する前記更新前データまたは前記データの副ボリュームへの転送の要否を判断する
    ことを特徴とする請求項1に記載の記憶制御装置。
  3. 前記制御部は、
    ビットマップテーブルにより前記第1のデータ単位を管理し、前記第2のデータ単位の先頭位置及び大きさにより前記第2のデータ単位を管理する
    ことを特徴とする請求項1に記載の記憶制御装置。
  4. 前記制御部は、
    前記ビットマップテーブルのビット位置に対応したアドレスから順に前記第2のデータ単位を結び付けて管理する
    ことを特徴とする請求項3に記載の記憶制御装置。
  5. 前記制御部は、
    前記更新前データの前記第2のデータ単位の領域が、すでに管理されている更新前データの第2のデータ単位の領域と重なっているときに、当該すでに管理されている更新前データの第2のデータ単位を変更して、1つの第2のデータ単位の領域にまとめて管理する
    ことを特徴とする請求項1に記載の記憶制御装置。
  6. 前記制御部は、
    前記第2の記憶領域内のデータが更新される前は、前記第2の記憶領域の前記更新前データを前記第2のデータ単位で管理せず、
    前記第2の記憶領域へのデータの更新を契機に、前記第2のデータ単位での前記第2の記憶領域の前記更新前データの管理を開始する
    ことを特徴とする請求項1に記載の記憶制御装置。
  7. 前記制御部は、
    前記第2の記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値より大きいときに、当該第2の記憶領域に対応する前記第2のデータ単位の前記更新前データの管理情報をすべて削除する
    ことを特徴とする請求項1に記載の記憶制御装置。
  8. 前記制御部は、
    前記第2の記憶領内に含まれる前記第2のデータ単位の領域の数が所定の数より大きいときに、当該第2の記憶領域に対応する前記第2のデータ単位の前記更新前データの管理情報をすべて削除する
    ことを特徴とする請求項1に記載の記憶制御装置。
  9. 前記制御部は、
    前記第2のデータ単位の前記更新前データの管理情報が削除された前記第2の記憶領域の前記正ボリューム内のデータまたは当該記憶領域に対応する前記更新前データボリューム内の前記更新前データのいずれかを、前記第1のデータ単位で前記副ボリュームに転送する
    ことを特徴とする請求項7または8のいずれかに記載の記憶制御装置。
  10. データを記憶する記憶デバイスと、
    前記記憶デバイスから構成され、上位装置から送信されるデータを記憶し、第1のデータ単位の複数の記憶領域を有する正ボリュームと、前記記憶デバイスから構成され、所定のタイミング以降に更新された前記正ボリューム内の前記複数の記憶領域に当該更新前に格納されていた更新前データを格納する更新前データボリュームとを提供する制御部と
    を備え、
    前記所定のタイミングにおける前記正ボリュームの複製を記憶する副ボリュームを提供する副記憶制御装置と接続された記憶制御装置のデータ管理方法であって、
    前記正ボリュームの前記複数の記憶領域に対する更新に応じて、前記正ボリュームの前記複数の記憶領域の前記更新前データを、前記第1のデータ単位で管理する第1のステップと、前記第1のデータ単位及び当該第1のデータ単位より小さい第2のデータ単位で管理する第2のステップとを備え、
    前記第1のステップでは、
    前記正ボリュームの前記複数の記憶装置のうち、当該記憶領域の前記更新前データを前記第2のデータ単位で管理すると、当該記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値より大きくなる第1の記憶領域を前記第1のデータ単位で管理し、
    前記第2のステップでは、
    前記正ボリュームの前記複数の記憶領域のうち、当該記憶領域の前記更新前データを前記第2のデータ単位で管理すると、当該記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値以下となる第2の記憶領域を前記第1のデータ単位及び前記第2のデータ単位で管理し、
    前記所定のタイミングにおける前記正ボリューム内のデータを前記副ボリュームに転送する場合、
    前記第1の記憶領域については前記第1のデータ単位で、前記第2の記憶領域については前記第2のデータ単位で、前記正ボリュームの当該記憶領域のデータまたは当該記憶領域に対応する前記更新前データボリューム内の前記更新前データのいずれかを前記副ボリュームに転送する第3のステップと
    を備えることを特徴とする記憶制御装置のデータ管理方法。
  11. 前記第3のステップでは、
    前記第1のデータ単位での前記更新前データの管理に基づき、前記第1の記憶領域及び前記第2の記憶領域に対応する前記更新前データまたは前記データの副ボリュームへの転送の要否を判断する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  12. 前記第1のステップでは、
    ビットマップテーブルにより前記第1のデータ単位を管理し、
    前記第2のステップでは、
    前記第2のデータ単位の先頭位置及び大きさにより前記第2のデータ単位を管理する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  13. 前記第2のステップでは、
    前記データの前記第2のデータ単位の領域が、すでに管理されているデータの第2のデータ単位の領域と重なっているときに、すでに管理されているデータの第2のデータ単位の領域を変更して、1つの第2のデータ単位の領域にまとめて管理する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  14. 前記第2のステップでは、
    前記第2の記憶領域内のデータが更新される前は、前記第2の記憶領域の前記更新前データを前記第2のデータ単位で管理せず、
    前記第2の記憶領域へのデータの更新を契機に、前記第2のデータ単位での前記第2の記憶領域の前記更新前データの管理を開始する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  15. 前記第2のステップでは、
    前記第2の記憶領域内に含まれる前記第2のデータ単位の領域の合計値が所定の閾値より大きいときに、当該第2の記憶領域に対応する前記第2のデータ単位の前記更新前データの管理情報をすべて削除する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  16. 前記第2のステップでは、
    前記第2の記憶領内に含まれる前記第2のデータ単位の領域の数が所定の数より大きいときに、当該第2の記憶領に対応する前記第2のデータ単位の前記更新前データの管理情報をすべて削除する
    ことを特徴とする請求項10に記載の記憶制御装置のデータ管理方法。
  17. 前記第2のステップでは、
    前記第2のデータ単位の前記更新前データの管理情報が削除された前記第2の記憶領域の前記正ボリューム内のデータまたは当該記憶領域に対応する前記更新前データボリューム内の前記更新前データのいずれかを、前記第1のデータ単位で前記副ボリュームに転送する
    ことを特徴とする請求項15または16のいずれかに記載の記憶制御装置のデータ管理方法。
JP2006005580A 2006-01-13 2006-01-13 記憶制御装置及びそのデータ管理方法 Expired - Fee Related JP4993913B2 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP2006005580A JP4993913B2 (ja) 2006-01-13 2006-01-13 記憶制御装置及びそのデータ管理方法
US11/358,051 US7565501B2 (en) 2006-01-13 2006-02-22 Storage controller and data management method
EP06255659A EP1814035B1 (en) 2006-01-13 2006-11-02 Storage controller and data management method
CN200910148827.6A CN101571822B (zh) 2006-01-13 2006-12-19 存储控制装置及其数据管理方法
CN200610168703.0A CN100524236C (zh) 2006-01-13 2006-12-19 存储控制装置及其数据管理方法
US11/822,253 US7509467B2 (en) 2006-01-13 2007-07-03 Storage controller and data management method
US12/292,991 US7765372B2 (en) 2006-01-13 2008-12-02 Storage controller and data management method
US12/457,622 US8370590B2 (en) 2006-01-13 2009-06-17 Storage controller and data management method
US12/822,874 US7925852B2 (en) 2006-01-13 2010-06-24 Storage controller and data management method
US13/039,122 US8266401B2 (en) 2006-01-13 2011-03-02 Storage controller and data management method
US13/754,299 US8769227B2 (en) 2006-01-13 2013-01-30 Storage controller and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006005580A JP4993913B2 (ja) 2006-01-13 2006-01-13 記憶制御装置及びそのデータ管理方法

Publications (2)

Publication Number Publication Date
JP2007188277A JP2007188277A (ja) 2007-07-26
JP4993913B2 true JP4993913B2 (ja) 2012-08-08

Family

ID=38121300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006005580A Expired - Fee Related JP4993913B2 (ja) 2006-01-13 2006-01-13 記憶制御装置及びそのデータ管理方法

Country Status (4)

Country Link
US (3) US7565501B2 (ja)
EP (1) EP1814035B1 (ja)
JP (1) JP4993913B2 (ja)
CN (2) CN100524236C (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4920979B2 (ja) * 2006-01-25 2012-04-18 株式会社日立製作所 ストレージ装置及びその制御方法
JP4901316B2 (ja) * 2006-06-06 2012-03-21 株式会社日立製作所 ストレージシステム及び記憶制御装置
JP4842720B2 (ja) * 2006-06-29 2011-12-21 株式会社日立製作所 ストレージシステム及びデータ複製方法
US7487383B2 (en) * 2006-06-29 2009-02-03 Dssdr, Llc Data transfer and recovery process
US8990613B2 (en) 2006-06-29 2015-03-24 Dssdr, Llc Data transfer and recovery
US9015520B2 (en) 2006-06-29 2015-04-21 Dssdr, Llc Data transfer and recovery
US8307129B2 (en) * 2008-01-14 2012-11-06 International Business Machines Corporation Methods and computer program products for swapping synchronous replication secondaries from a subchannel set other than zero to subchannel set zero using dynamic I/O
US7761610B2 (en) * 2008-01-25 2010-07-20 International Business Machines Corporation Methods and computer program products for defining synchronous replication devices in a subchannel set other than subchannel set zero
JP5156518B2 (ja) * 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
US8516173B2 (en) * 2008-07-28 2013-08-20 International Business Machines Corporation Swapping PPRC secondaries from a subchannel set other than zero to subchannel set zero using control block field manipulation
WO2010095275A1 (en) * 2009-02-23 2010-08-26 Hitachi, Ltd. Storage system and method using snapshots involving little metadata
JP5555260B2 (ja) * 2009-12-24 2014-07-23 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
JP2011170589A (ja) * 2010-02-18 2011-09-01 Nec Corp ストレージ制御装置、ストレージ装置およびストレージ制御方法
WO2011145138A1 (ja) * 2010-05-18 2011-11-24 株式会社日立製作所 ストレージ装置及びデータ管理方法
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
CN102096616B (zh) * 2011-02-15 2014-06-25 华为数字技术(成都)有限公司 逻辑对象数据的复制方法以及相关装置
JP5772443B2 (ja) * 2011-09-22 2015-09-02 富士通株式会社 ストレージ装置及びプログラム
US20130151888A1 (en) * 2011-12-12 2013-06-13 International Business Machines Corporation Avoiding A Ping-Pong Effect On Active-Passive Storage
JP5393813B2 (ja) * 2012-01-27 2014-01-22 京セラドキュメントソリューションズ株式会社 メモリー管理装置および画像処理装置
US9104607B2 (en) * 2012-10-31 2015-08-11 International Business Machines Corporation Simulation engine for use in disaster recovery virtualization
WO2014115184A1 (en) * 2013-01-24 2014-07-31 Hitachi, Ltd. Storage system and control method for storage system
CN103412798B (zh) * 2013-07-18 2016-03-23 记忆科技(深圳)有限公司 混合存储快照的实现方法及系统
JP6194784B2 (ja) * 2013-12-13 2017-09-13 富士通株式会社 ストレージ制御装置、制御方法および制御プログラム
WO2016008094A1 (zh) * 2014-07-15 2016-01-21 华为技术有限公司 一种数据复制方法、装置以及系统
CN105302664B (zh) * 2015-09-22 2019-01-04 上海爱数信息技术股份有限公司 一种存储快照管理方法及系统
CN105278522B (zh) * 2015-10-16 2018-09-14 浪潮(北京)电子信息产业有限公司 一种远程复制方法及系统
CN106844234B (zh) * 2015-12-04 2020-01-03 成都华为技术有限公司 数据写入方法及装置、双活系统
US10445235B2 (en) * 2016-07-29 2019-10-15 Seagate Technology Llc Weighted data striping
CN107197022B (zh) * 2017-06-02 2020-01-10 华南理工大学 OpenStack存储优化方法及系统
CN108984335B (zh) 2017-06-02 2022-04-29 伊姆西Ip控股有限责任公司 备份和恢复数据的方法和系统
US11449329B2 (en) * 2018-02-16 2022-09-20 Hitachi Astemo, Ltd. Vehicle control device and program update system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131148A (en) 1998-01-26 2000-10-10 International Business Machines Corporation Snapshot copy of a secondary volume of a PPRC pair
JP2000036823A (ja) * 1998-07-21 2000-02-02 Oki Electric Ind Co Ltd データi/o装置
JPH11288387A (ja) * 1998-12-11 1999-10-19 Fujitsu Ltd ディスクキャッシュ装置
US6397308B1 (en) * 1998-12-31 2002-05-28 Emc Corporation Apparatus and method for differential backup and restoration of data in a computer storage system
JP4326061B2 (ja) * 1999-04-01 2009-09-02 三菱電機株式会社 メモリ管理方法及びコンピュータ
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6934822B2 (en) * 2002-08-06 2005-08-23 Emc Corporation Organization of multiple snapshot copies in a data storage system
US6981114B1 (en) * 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
JP2004303122A (ja) 2003-04-01 2004-10-28 Hitachi Ltd データ転送制御システム
JP4386694B2 (ja) 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
CN100358320C (zh) * 2003-12-24 2007-12-26 华为技术有限公司 一种数据包存储的管理方法和装置
JP4439960B2 (ja) * 2004-03-22 2010-03-24 株式会社日立製作所 ストレージ装置
US7343449B2 (en) * 2004-03-22 2008-03-11 Hitachi, Ltd. Storage subsystem and storage system
JP2005275494A (ja) 2004-03-23 2005-10-06 Hitachi Ltd ストレージシステム及びストレージシステムのリモートコピー方法
JP2005293469A (ja) * 2004-04-05 2005-10-20 Nippon Telegr & Teleph Corp <Ntt> データコピーシステムおよびデータコピー方法
JP4455927B2 (ja) * 2004-04-22 2010-04-21 株式会社日立製作所 バックアップ処理方法及び実施装置並びに処理プログラム
JP4011041B2 (ja) 2004-06-16 2007-11-21 Necエレクトロニクス株式会社 アナログ・デジタル変換システムと補正回路及び補正方法
JP2006011811A (ja) 2004-06-25 2006-01-12 Hitachi Ltd 記憶制御システム及び記憶制御方法
US7284019B2 (en) * 2004-08-18 2007-10-16 International Business Machines Corporation Apparatus, system, and method for differential backup using snapshot on-write data
JP2006099440A (ja) 2004-09-29 2006-04-13 Hitachi Ltd リモートコピーシステム

Also Published As

Publication number Publication date
CN100524236C (zh) 2009-08-05
EP1814035A2 (en) 2007-08-01
EP1814035A3 (en) 2010-08-18
CN101571822A (zh) 2009-11-04
JP2007188277A (ja) 2007-07-26
CN101000571A (zh) 2007-07-18
US7565501B2 (en) 2009-07-21
US20090259818A1 (en) 2009-10-15
EP1814035B1 (en) 2012-01-04
US20130145110A1 (en) 2013-06-06
US8370590B2 (en) 2013-02-05
US8769227B2 (en) 2014-07-01
US20070168629A1 (en) 2007-07-19
CN101571822B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
JP4993913B2 (ja) 記憶制御装置及びそのデータ管理方法
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
JP4800056B2 (ja) ストレージシステム及びその制御方法
US7266718B2 (en) Computer system for recovering data based on priority of the data
US8001344B2 (en) Storage control apparatus, storage control program, and storage control method
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US7509467B2 (en) Storage controller and data management method
US20050166023A1 (en) Remote storage disk control device and method for controlling the same
JP2004252686A (ja) 情報処理システム
JP2006023889A (ja) リモートコピーシステム及び記憶装置システム
US20080294858A1 (en) Storage system and data management method
JP4790283B2 (ja) ストレージサブシステム及びストレージシステム
JP4518485B2 (ja) データベースの再編成方法、ストレージ装置及びストレージシステム
JP4294692B2 (ja) 情報処理システム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120314

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

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

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees