JPWO2011129006A1 - ストレージ装置及びストレージ装置の制御方法 - Google Patents

ストレージ装置及びストレージ装置の制御方法 Download PDF

Info

Publication number
JPWO2011129006A1
JPWO2011129006A1 JP2012510517A JP2012510517A JPWO2011129006A1 JP WO2011129006 A1 JPWO2011129006 A1 JP WO2011129006A1 JP 2012510517 A JP2012510517 A JP 2012510517A JP 2012510517 A JP2012510517 A JP 2012510517A JP WO2011129006 A1 JPWO2011129006 A1 JP WO2011129006A1
Authority
JP
Japan
Prior art keywords
volume
storage
primary
discard
secondary volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012510517A
Other languages
English (en)
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
Publication of JPWO2011129006A1 publication Critical patent/JPWO2011129006A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、物理記憶領域を提供する記憶デバイスと、前記記憶デバイスから複数の単位物理記憶領域を生成し、各前記論理ボリュームを、前記外部装置からのデータI/O要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置とを備えている。

Description

この発明は、ストレージ装置及びストレージ装置の制御方法に係わり、特に記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法に関する。
従来、コンピュータが利用することができる論理記憶領域を固定的に割り当てるのではなく、最大限利用可能な記憶容量を有する仮想的な論理記憶領域である仮想ボリュームを規定しておき、コンピュータが要求する都度必要となる物理記憶領域を割り当てることにより論理記憶領域を提供する記憶デバイスの記憶容量を効率的に利用する技術が知られており、一般的にシンプロビジョニング(Thin Provisioning)等の用語で呼ばれている。
例えば、特許文献1では、シンプロビジョニング技術により上位装置(ホスト)に割り当てられている仮想ボリュームについて、その仮想ボリュームに割り当てられた実記憶領域(以下、この実記憶領域から仮想ボリュームへの記憶領域割り当て単位を「ページ」(単位物理記憶領域)という。)を破棄し、その他の仮想ボリュームで利用可能とすることで実記憶領域を有効活用する構成が提案されている。すなわち、ホストから破棄したいページを指定し、そのページ(アドレス)に対して破棄コマンドを発行することで、ストレージ装置に該当ページの破棄処理を実行させる。
特開2007−310861
しかし、特許文献1の構成では、ストレージ装置が正ボリュームと副ボリュームとを備えるコピーペアを有している構成で、正ボリュームのあるページに対してホストから破棄処理を指示された場合、その正ボリュームの該当ページは指示に従って破棄されるが、副ボリュームにコピーされている対応ページについては破棄することができないため、記憶資源の効率的な運用が十分に達成できないという問題があった。
本発明は、上記の及び他の課題を解決するためになされたものであり、記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法を提供することを目的とする。
上記の及び他の目的を達成するために、本発明の一態様は、外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、物理記憶領域を提供する記憶デバイスと、
前記記憶デバイスから複数の単位物理記憶領域を生成し、各前記論理ボリュームを、前記外部装置からのデータI/O要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置とを備えているストレージ装置である。
本発明によれば、記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法を提供することができる。
ストレージシステム1の概略的な構成を示す図である。 チャネル基板11のハードウェア構成の一例である。 プロセッサ基板12のハードウェア構成の一例である。 ドライブ基板13のハードウェア構成の一例である。 コンピュータ30ハードウェア構成の一例である。 ストレージ装置10によって論理記憶領域が提供される構成を示す模式図である。 チャネル制御部110のソフトウェア構成の一例である。 ディスク制御部120のソフトウェア構成の一例である。 シンプロビジョニング機能を提供する構成の概要を示す模式図である。 LU管理テーブル1103の一例である。 仮想LDEV管理テーブル1104の一例である。 プール管理テーブル1105の一例である。 マッピング管理テーブル1106の一例である。 プール構成LDEV管理テーブル1107の一例である。 実記憶領域割当て処理の処理フローの一例である。 ページ破棄処理フローの一例である。 実施例1のストレージシステム1の構成を示す模式図である。 ページ破棄コマンド1800のデータ構造の一例である。 差分ビットマップ1900の一例である。 ページ破棄管理テーブル2000ーの一例である。 ページ破棄管理テーブル2000ーの一例である。 ページ破棄処理フローの一例である。 ペア状態管理テーブル2200の一例である。 ローカルコピー構成(ペア状態)におけるページ破棄処理フローの一例である。 ローカルコピー構成(サスペンド状態)におけるページ破棄処理フローの一例である。 副ボリューム132のみにページが割り当てられた場合のページ破棄処理説明図である。 実施例2のストレージシステム1の構成を示す模式図である。 実施例2のペア状態管理テーブル2700の一例である。 実施例2の通信メッセージ2800のデータ構造の一例である。 副ボリュームページ破棄情報2900の一例である。 同期リモートコピー構成(ペア状態)におけるページ破棄処理フローの一例である。 同期リモートコピー構成(サスペンド状態)におけるページ破棄処理フローの一例である。 同期リモートコピー構成(サスペンド状態)におけるページ破棄処理フローの一例である。 ジャーナルを利用した非同期リモートコピーの構成を示す模式図である。 実施例3のストレージシステム1の構成を示す模式図である。 ジャーナル1300の構成の一例である。 従来のジャーナル制御情報3500の一例である。 実施例3のジャーナル制御情報3500の一例である。 実施例3のペア状態管理テーブル3600の一例である。 ジャーナルを利用した非同期リモートコピー構成(ペア状態)におけるページ破棄処理フローの一例である。 ジャーナルを利用した非同期リモートコピー構成(サスペンド状態)におけるページ破棄処理フローの一例である。 ジャーナルを利用した非同期リモートコピー構成(サスペンド状態)におけるページ破棄処理フローの一例である。
以下、本発明につき、その実施形態に即して説明する。
実施例1
ストレージシステム1の構成
図1に、本発明の実施例1に係るストレージシステム1の構成を示している。同図に示すように、このストレージシステム1は、ホスト装置2(外部装置)、通信ネットワーク5を介してホスト装置2と通信するストレージ装置10、及びストレージ装置10にLAN(Local Area Network)等を介して通信可能に接続する管理装置3を含んで構成されている。図1のストレージシステム1では、通信ネットワーク5を介して2台のストレージ装置10が接続されているが、接続されるストレージ装置10の数は、1あるいは3以上であっても構わない。また、図1では、ストレージ装置10としての構成は同一であるため、一方のストレージ装置10については、内部構成の図示を省略している。図1に示す2台のストレージ装置10は、例えば一方が常時ホスト装置2からのデータI/Oを受け付けて処理するための正ボリュームを備える正制御ユニット(Main Control Unit、以下「MCU」)を構成し、他方のストレージ装置10が、MCUからの指示により正ボリュームからのデータコピー処理の対象となる副ボリュームを制御する副制御ユニット(Remote Control Unit、以下「RCU」)を構成している。以下、MCU内の複数のボリューム間で行われるデータコピー処理をローカルコピーと、MCUの正ボリュームとRCUの副ボリュームとの間で行われるデータコピー処理をリモートコピーという。
通信ネットワーク5は、例えばLAN、SAN(Storage Area Network)、インターネット、公衆通信網等である。ホスト装置2とストレージ装置10との間の通信は、TCP/IP、iSCSI(internet Small Computer System Interface)、ファイバーチャネルプロトコル(Fibre Channel Protocol)、FICON(Fibre Connection)(登録商標)、ESCON(Enterprise System Connection) (登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)等のプロトコルに従って行われる。
ホスト装置2は、ストレージ装置10によって提供される記憶領域を利用する情報処理装置(コンピュータ)である。例えばホスト装置2は、パーソナルコンピュータ、メインフレーム(Mainframe)、オフィスコンピュータ等のハードウェアを用いて構成されている。ホスト装置2は、上記記憶領域へのアクセスに際し、ストレージ装置10にデータI/O要求を送信する。
ストレージ装置10は、一つ以上のチャネル基板11、一つ以上のプロセッサ基板12(Micro Processor)、一つ以上のドライブ基板13、キャッシュメモリ14(Cache Memory)、共有メモリ15(Shared Memory)、内部スイッチ16、記憶装置17、及び保守装置18(Service Processor)を備える。このうちチャネル基板11、プロセッサ基板12、ドライブ基板13、キャッシュメモリ14、及び共有メモリ15は、内部スイッチ16を介して互いに通信可能に接続されている。
チャネル基板11は、ホスト装置2から送られてくるデータI/O要求(データ書き込み要求、データ読み出し要求等)を受け付け、受け付けたデータI/O要求についての処理の応答(例えば読み出したデータ、読み出し完了通知、書き込み完了通知)をホスト装置2に送信する。チャネル基板11は、ホスト装置2と通信するためのプロトコル制御に関する機能を有する。また、本実施例のチャネル基板11は、本実施例の基本的な構成である、ホスト装置2への仮想記憶領域の提供、及び仮想記憶領域に割り当てられたページ破棄機能を実現する機能ブロックであるチャネル制御部110のためのハードウェア基盤を提供している。これについては、後述する。
プロセッサ基板12は、チャネル基板11が受信した上記データI/O要求に応じて、チャネル基板11、ドライブ基板13、及びキャッシュメモリ14の間で行われる、データ転送に関する処理を行う。プロセッサ基板12は、例えばキャッシュメモリ14を介して行われる、チャネル基板11とドライブ基板13の間のデータ(記憶装置17から読み出したデータ、記憶装置17に書き込むデータ)の引き渡し、キャッシュメモリ14に格納されているデータについて、ステージング(記憶装置17からのデータの読み出し)やデステージング(記憶装置17への書き出し)を行う。
キャッシュメモリ14は、例えば高速アクセスが可能なRAM(Random Access Memory)を用いて構成される。キャッシュメモリ14には、記憶装置17に書き込まれるデータ(以下、書き込みデータと称する。)や記憶装置17から読み出されたデータ(以下、読み出しデータと記載する。)が格納される。共有メモリ15には、ストレージ装置10の制御に用いられる各種の情報が格納される。
ドライブ基板13は、記憶装置17からのデータの読み出しもしくは記憶装置17へのデータの書き込みに際し、記憶装置17との間で通信を行う。内部スイッチ16は、例えば高速クロスバースイッチ(Cross Bar Switch)を用いて構成されている。内部スイッチ16を介して行われる通信は、例えば、ファイバーチャネル、iSCSI、TCP/IPなどのプロトコルに従って行われる。ドライブ基板13は、前記のプロセッサ基板12とともに、記憶装置17へのデータI/Oを制御する機能を提供するディスク制御部120(後述)のハードウェア基盤を提供している。
記憶装置17は、複数の記憶媒体(ハードディスクドライブ(Hard Disk Drive、以下「HDD」)、半導体記憶装置(Solid State Drive、以下「SSD」)、フレキシブルディスク、磁気テープ、光ディスク等)を備えて構成されている。以下の説明において、記憶装置17は、例えばSAS(Serial Attached SCSI)、SATA(Serial ATA)、FC(Fibre Channel)、PATA(Parallel ATA)、SCSI等のタイプのHDD、もしくはSSD(以下、HDDやSSD等の記憶媒体を記憶ドライブ171と総称する。)を用いて構成されているものとする。
記憶装置17は、記憶ドライブ171をRAID(Redundant Arrays of Inexpensive (or Independent) Disks)等の制御方式で制御することによって提供される記憶領域(例えばRAIDグループ(パリティグループ(Parity Group)の記憶領域))を用いて構成される論理装置(LDEV172(LDEV: Logical Device))を単位とする記憶領域を提供する。後述するように、ストレージ装置10は、ホスト装置2に対し、LDEV172を用いて構成される論理的な記憶領域(以下、LU(Logical Unit)と称する。)を提供する。
図2にチャネル基板11のハードウェア構成を示している。チャネル基板11は、ホスト装置2と通信するためのポート(通信ポート)を有する外部通信インタフェース111(以下、外部通信I/F111と表記する。)、プロセッサ112(後述するフレーム処理チップ、フレーム転送チップを含む)、メモリ113、プロセッサ基板12と通信するためのポート(通信ポート)を有する内部通信インタフェース(以下、内部通信I/F114と表記する。)を備える。
このうち外部通信I/F111は、例えばNIC(Network Interface Card)やHBA(Host Bus Adaptor)を用いて構成される。プロセッサ112は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)を用いて構成される。メモリ113は、RAM(Random Access Memory)、ROM(Read Only Memory)である。内部通信I/F114は、内部スイッチ16を介して、プロセッサ基板12、ドライブ基板13、キャッシュメモリ14、共有メモリ15と通信を行う。
図3にプロセッサ基板12のハードウェア構成を示している。プロセッサ基板12は、内部通信インタフェース121(以下、内部通信I/F121と表記する。)、プロセッサ122、及び共有メモリ15に比べてプロセッサ122からのアクセス性能が高い(高速アクセスが可能な)メモリ123(ローカルメモリ)を備える。内部通信I/F121は、内部スイッチ16を介してチャネル基板11、ドライブ基板13、キャッシュメモリ14、共有メモリ15と通信を行う。プロセッサ122は、例えばCPU、MPU、DMA(Direct Memory Access)である。メモリ123は、RAM又はROMである。なお、プロセッサ122は、メモリ123及び共有メモリ15の双方にアクセスすることができるが、プロセッサ122から見たアクセス速度はメモリ123の方が共有メモリ15よりも高速であり(アクセス性能が高い)、このためメモリ123の方が共有メモリ15よりもアクセスコストが小さい。
図4にドライブ基板13のハードウェア構成を示している。ドライブ基板13は、内部通信インタフェース131(以下、内部通信I/F131と表記する。)、プロセッサ132、メモリ133、及びドライブインタフェース134(以下、ドライブI/F134と表記する。)を備える。内部通信I/F131は、内部スイッチ16を介して、チャネル基板11、プロセッサ基板12、キャッシュメモリ14、共有メモリ15と通信する。プロセッサ132は、例えばCPU、MPUである。メモリ133は、例えばRAM、ROMである。ドライブI/F134は、記憶装置17と通信する。なお、チャネル基板11、プロセッサ基板12、ドライブ基板13のハードウェアとしての割り付けは一例であり、他の形態の基板構成を採用してもよい。
図1に示した保守装置18(Service Processor、以下「SVP」)は、CPU及びメモリを備えたコンピュータである。保守装置18は、ストレージ装置10の各構成要素の制御や状態監視を行う。保守装置18は、内部スイッチ16又はLANなどの通信手段を介してチャネル基板11、プロセッサ基板12、ドライブ基板13、キャッシュメモリ14、共有メモリ15、及び内部スイッチ16といったストレージ装置10の構成要素と通信する。保守装置18は、ストレージ装置10の構成要素から随時稼働情報等を取得して管理装置3に提供する。保守装置18は、管理装置3から送られてくる情報に従ってLDEV172を備える記憶ドライブ171の閉塞処理等を指示したりすることができる。
図5に管理装置3として利用可能なコンピュータ(情報処理装置)の一例を示している。図5に示すように、コンピュータ30は、CPU31、揮発性又は不揮発性のメモリ32(RAM又はROM)、記憶装置33(例えばHDD、SSD)、キーボードやマウス等の入力装置34、液晶モニタやプリンタ等の出力装置35、及びNICやHBA等の通信インタフェース36(以下、通信I/F36と表記する。)を備える。管理装置3は、例えばパーソナルコンピュータやオフィスコンピュータである。管理装置3は、ストレージ装置10と一体として構成しても(同一筐体に実装されていても)よい。管理装置3は保守装置18とLAN等を介して通信可能に接続されている。管理装置3はストレージ装置10の制御や監視のためのGUI(Graphical User Interface)やCLI(Command Line Interface)等を用いたユーザインタフェースを備える。
ホスト装置2へ提供される論理記憶領域の構成
以上のハードウェア基盤によってストレージシステム1において各ホスト装置2に提供される論理記憶領域の構成について、図6を参照して説明する。図6は、ストレージ装置10によって記憶ドライブ171の実記憶領域がホスト装置2に論理記憶領域として提供される構成を模式的に示す図である。
ディスク制御部120は、ストレージ装置10の記憶装置17に備えられている記憶ドライブ171から、RAIDグループ173を編成し、そのRAIDグループ173からLDEV172を構成する。チャネル制御部110は、LDEV172を複数の単位論理記憶領域である論理ボリューム174(Logical Unit、LU)としてホスト装置2に提供する。
次に、チャネル制御部110及びディスク制御部120の機能についてより具体的に説明する。図7にチャネル制御部110のソフトウェア構成の一例を、図8にディスク制御部120のソフトウェア構成の一例を示している。
チャネル制御部110は、その主要な機能を受け持つ機能ブロックであるデータI/O部1101とチャネルコマンド制御部1102を備える。また、チャネル制御部110は、チャネルコマンド制御部1102がデータ処理を実行する際に参照するテーブルとして、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107を備えている。
データI/O部1101、チャネルコマンド制御部1102の機能を有するプログラムと、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107は、チャネル基板11のメモリ113に格納されている。プロセッサ112が前記プログラムをメモリ113から読み出して実行することにより、データI/O部1101及びチャネルコマンド制御部1102の機能が実現される。なお、管理テーブル類は、共有メモリ14に格納してもよい。
データI/O部1101は、ホスト装置2及びディスク制御部120との間でのデータ入出力処理を実行する。
チャネルコマンド制御部1102は、ホスト装置2に記憶デバイス171から作成されるLU174を提供する。すなわち、チャネルコマンド制御部1102は、ホスト装置2からLU174に対して発行されるコマンドを受信して処理し、実記憶領域の単位であるLDEV172へのアクセスへと変換する。前記のように、LDEV172は、複数の記憶デバイス171から構成されるRAIDグループ173の一部分を論理的に切り出して作成されたボリュームである。
本実施例では、ホスト装置2に提供される論理記憶領域として、記憶デバイス171の物理記憶領域の一部を直接切り出して作成した実記憶領域とともに、ホスト装置2からのアクセスは受け付けるが、ホスト装置2に提供する実記憶領域をあらかじめ用意せず、実際に利用する際に割り当てて提供する仮想LDEVを提供することができる。本実施例では、LU174は実記憶領域を備えたLDEV172あるいは仮想LDEVに割り当てられる。仮想LDEVに割り当てられているLU174を、以下仮想LUと呼ぶ。仮想LDEV及び仮想LUについては後述する。
ディスク制御部120は、RAID制御部1201、HDD制御部1202、及びデータI/O部1203を備えている。ドライブ基板13のメモリ133には、RAID制御部1201、HDD制御部1202、及びデータI/O部1203の機能を有するプログラムが格納されている。プロセッサ132がこれらのプログラムをメモリ133から読み出して実行することにより、RAID制御部1201、HDD制御部1202、及びデータI/O部1203の機能が実現される。
RAID制御部1201は、複数のHDD(記憶ドライブ)171からRAIDグループ173を構成し、チャネル制御部110のチャネルコマンド制御部1102にLDEV172を提供する。HDD制御部1202は、RAID制御部1201の要求に応じて、HDD171に対し、データの読み取り、書き込み処理を実行する。データI/O部1203は、チャネル制御部110及び記憶装置17との間のデータ入出力処理を実行する。
シンプロビジョニング機能の説明
次に、仮想LDEV191を用いて実現されるシンプロビジョニング機能の構成について説明する。図9に、シンプロビジョニング機能を提供する構成の概要を模式的に示している。
前記したように、シンプロビジョニング機能とは、ストレージ装置10において記憶資源を有効利用するための技術である。シンプロビジョニング機能は、ストレージ装置10が実記憶領域をもたない仮想ボリューム190(仮想LU192と仮想LDEV191をあわせたボリューム)を上位装置であるホスト装置2に提供するもので、この仮想LU192にはプールと呼ぶ実記憶領域の集合として構成されるプール領域180を対応させている。
ホスト装置2が仮想LU192にアクセスすると、チャネル制御部110のチャネルコマンド制御部1102が、記憶装置17において、動的にホスト装置2がアクセスした仮想ボリューム190の仮想記憶領域に、プール領域180に含まれるLDEV172によって提供される実記憶領域を割り当てる。前記のように、仮想ボリューム190に対して割り当てられたこのLDEV172に基づく実記憶領域の割り当て単位を「ページ」ということとする。
このシンプロビジョニング機能によれば、1つのプール領域180に複数の仮想ボリューム190を対応させることができるため、ストレージ装置10は見かけ上記憶装置17に実装されている記憶デバイス171の実記憶容量よりも大きな容量を持つ仮想ボリューム190をホスト装置2に提供することができる。プール領域180に含まれる実記憶領域が不足してきた場合には、ストレージシステム1を停止して論理ボリュームを再構築する必要がなく、実記憶領域を提供する記憶デバイス171を増設するだけですむ。したがって、シンプロビジョニング機能によれば、ストレージシステム1導入時に用意しておく実記憶容量に関するコストの削減と増設時の運用管理コストを低減することができるという利点がある。
図9を参照すると、シンプロビジョニング機能を利用した場合、ホスト装置2は仮想LU192を介して仮想LDEV191にアクセスする。仮想LDEV191にはプール領域180を構成するLDEV172によって提供される実記憶領域がページ単位で対応付けられているため、ホスト装置2がアクセスする仮想LU192には、必要に応じて仮想LDEV191を介してLDEV172が提供する実記憶領域がページとして割り当てられることになる。
ホスト装置2にアクセスされる仮想LU192と、仮想LDEV191及びLDEV172の実記憶領域との間は、後述するマッピング情報を格納している管理テーブルによって管理される。ホスト装置2から仮想ボリューム190にアクセスすると、ストレージ装置10では動的にマッピングが実行され、ストレージ装置10はこのマッピング情報を利用し、仮想ボリューム190と実記憶領域の対応関係を判断する。
具体的には、チャネル制御部110のチャネルコマンド制御部1102がシンプロビジョニング機能を担当する。この際に、チャネルコマンド制御部1102は、チャネル基板11のメモリ113に格納されている、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107を参照して仮想ボリューム190と実記憶領域との対応関係を管理する。以下、各管理テーブルについて説明する。
LU管理テーブル1103
LU管理テーブル1103は、ホスト装置2からアクセスを受け付けるLU174の一覧と、そのLDEV172との対応付けを管理するためのテーブルである。図10に、LU管理テーブル1103の一例を示している。
LU管理テーブル1103には、ポート番号11031、LUN11032、LDEV番号11033、及び仮想ボリュームビット11034の各項目が対応付けて格納されている。
ポート番号11031は、チャネル制御部110がホスト装置2と通信するために指定されている通信ポートを示す識別符号である。LUN11032は、ホスト装置2が対応するポート番号11031で指定される通信ポートを介してアクセスするLU174に付与された識別符号であるLUN(Logical Unit Number)である。
CU#:LDEV#として示されているLDEV番号11033は、LUN11032で特定されるLU174に対応付けられている論理制御装置(Control Unit、CU)とLDEV172との組み合わせであり、符号#は「番号」を意味している。CUは、本実施例ではチャネル制御部110とディスク制御部120との組み合わせに相当し、ホスト装置2からのアクセスを受け付けて処理する論理的に捉えた制御装置の一組を示している。
本願では理解を容易にするため、例えば図10に示すように、LU174に仮想LDEV191が対応付けられる場合、LDEV#に符号「*」を付して識別可能としている。仮想ボリュームビット11034は、仮想LDEV番号11033に格納されているLDEVが固定された実記憶領域で構成されるLDEV172(以下必要に応じて「実LDEV172」という。))であるか、仮想LDEV191であるかの区別を示す識別符号である。仮想ボリュームビット11034が0の場合、対応付けられているのが実LDEV172であることを、1の場合、仮想LDEV191であることを示している。図10の例では、第1のレコードは実LDEV172に関し、第2のレコードは仮想LDEV191に関することを示している。
仮想LDEV管理テーブル1104
仮想LDEV管理テーブル1104は、ストレージ装置10が保持している仮想LDEV191の一覧と、その仮想LDEV191とマッピングされるプール領域180との対応付けを管理するためのテーブルである。図11に、仮想LDEV管理テーブル1104の一例を示している。
仮想LDEV管理テーブル1104には、仮想LDEV191を特定するCU#:LDEV#で表された仮想LDEV番号11041と、その仮想LDEV191を構成している実記憶領域が属するプール領域180を識別するための識別符号であるプール番号11042とが対応付けて格納されている。
プール管理テーブル1105
プール管理テーブル1105は、ストレージ装置10が保持しているプール領域180と、そのプール領域180を構成する実LDEV172とを対応付けて管理するためのテーブルである。図12に、プール管理テーブル1105の一例を示している。
プール管理テーブル1105には、プール番号11051と、プール構成LDEVリスト11052とが対応付けて格納されている。プール番号11051は、図11の仮想LDEV管理テーブル1104におけるプール番号11042と同じである。プール構成LDEVリスト11052は、対応するプール番号11051で特定されるプール領域180を構成している実LDEV172(プール構成LDEV)のリストであり、各実LDEV172は、担当する論理制御装置番号(CU#)と含まれる実LDEV172を識別する番号であるLDEV番号(LDEV#)との組み合わせで表されている。
マッピング管理テーブル1106
マッピング管理テーブル1106は、各仮想LDEV191について、仮想LDEV191内のアドレスと割り当てられたプール領域180内のプール構成LDEV172の実記憶領域アドレスとの対応関係を保持するための管理テーブルである。図13に、マッピング管理テーブル1106の一例を示している。
マッピング管理テーブル1106には、各仮想LDEV191について、ページ番号11062、仮想LDEVアドレス11063、プール構成LDEV11064、及び実記憶領域アドレス11065が対応付けて記憶されている。
仮想LDEV11061は、仮想LDEV191を識別符号CU#:LDEV#で特定している。ページ番号11062は、仮想LDEV11061で特定される仮想LDEV191に含まれる単位実記憶領域であるページを識別するための識別符号が記録される。
仮想LDEVアドレス11063は、対応する仮想LDEV191内での、先頭ブロックアドレスである。プール構成LDEV番号11064は、ページ番号11062で特定されるページに対応付けられている実LDEV172を特定する識別符号である。実記憶領域アドレス11065は、対応するプール構成LDEV番号11064により特定される実記憶領域の先頭ブロックアドレスである。
マッピング管理テーブル1106はストレージ装置10に生成されている仮想LDEV191毎に保持されており、各仮想LDEV191に割り当てられているページと実記憶領域とをブロックアドレスレベルで対応付けている。
プール構成LDEV管理テーブル1107
プール構成LDEV管理テーブル1107は、プール構成LDEVに含まれる実記憶領域が、どのように仮想LDEV191の領域にマッピングされているかを示すための管理テーブルである。図14に、プール構成LDEV管理テーブル1107の一例を示している。
プール構成LDEV管理テーブル1107には、プール構成LDEV番号11071と、制御ビット配列へのポインタ11072が対応付けて格納されている。プール構成LDEV番号11071は、図13のマッピング管理テーブル1106のプール構成LDEV番号11064と同じである。制御ビット配列へのポインタ11072は、各プール構成LDEV番号11071のマッピング状態をあらわす制御ビット配列(制御情報)へのポインタを示している。図14に模式的に示すように、制御ビット配列は、ビット配列の先頭をプール構成LDEV11071のアドレス0とし、以降アドレス順に制御ビットが設定されている。制御ビットが0のときは、このプール構成LDEV11071内のアドレスの箇所(記憶領域)は仮想LDEV191にマッピングされていないこと、すなわち新たに仮想LDEV191に割当てが可能であることを示している。一方、制御ビットが1の場合は、そのブロックが仮想LDEV191にマッピング済であることを示している。
図14の例では、プール構成LDEV番号11071が02:01の場合、アドレス0、1の領域は仮想LDEVにマッピング済であり、アドレス2の領域は仮想LDEVにマッピングされていないことを表す。
LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107は、チャネルコマンド制御部110からアクセス可能なメモリ、例えば、共有メモリ15、チャネル制御部110を構成するチャネル基板11に設けられているローカルメモリであるメモリ113に格納される。
ホスト装置2からのアクセスに対する実記憶領域割当て処理
次に、仮想LU192を含むストレージ装置10に対してホスト装置2からアクセス(データI/O要求)が発せられた場合に、ストレージ装置10で実行される実記憶領域割当て処理について説明する。図15に、この実記憶領域割当て処理の処理フローの一例を示している。
ストレージ装置10に実装されているチャネルコマンド制御部1102は、ホスト装置2からのアクセスコマンド(データI/O要求)の受領を待機しており(S1501、No)、受領した場合(S1501、Yes)、LU管理テーブル1103を参照して、コマンドに含まれるLUN11032で特定されるアクセス対象のLU174の仮想ボリュームビット11034が1であるか判定する(S1502)。仮想ボリュームビット11034が1でないと判定した場合(S1502、No)、チャネルコマンド制御部1102は、LU管理テーブル1103で特定された実LDEV172に割り当てられている実記憶領域へマッピングする(S1504)。
ホスト装置2から受領したコマンドに含まれるLUN11032に対する仮想ボリュームビット11034が1であると判定した場合(S1502、Yes)、チャネルコマンド制御部1102は、LU管理テーブル1103を参照して、当該LUN11032をLDEV番号11033に変換する(S1503)。
そして、チャネルコマンド制御部1102は、このLDEV番号11033が、マッピング管理テーブル1106に未登録であるか判定する(S1505)。登録済みであると判定した場合(S1505、No)、チャネルコマンド制御部1102は、仮想LDEV管理テーブル1104、プール管理テーブル1105、及びマッピング管理テーブル1106を参照して、実記憶領域アドレス11065から対応付けを行い、当該実記憶領域に対してホスト装置2からのアクセス処理を実行する(S1508)。
該仮想LDEV191がマッピング管理テーブル1106に未登録であると判定した場合(S1505、Yes)、チャネルコマンド制御部1102は、プール管理テーブル1105に登録されている、仮想LDEV11041に対応するプール番号11042で特定されるプール構成LDEVリスト11052を取得する(S1506)。
次いで、チャネルコマンド制御部1102は、自身の任意のレジスタ等に、ホスト装置2からのアクセスに対応する仮想LDEV11033が存在するか調べるために設定される変数であるLDEV空き容量チェック変数A(Aは1以上の整数とする)に1を設定する初期化処理を実行し(S1507)、プール構成LDEVリスト11052のA番目に記録されているLDEV172の情報を参照する(S1509)。チャネルコマンド制御部1102は、要求されたA番目のプール構成LDEV11071が存在するか判定し(S1510)、存在しないと判定した場合(S1510、No)、アクセス要求に割当て可能なプール構成LDEV11071が不足しているので、管理装置3へプール構成LDEV11071の不足を通知する(S1513)。
プール構成LDEV11071が利用可能であると判定した場合(S1510、Yes)、チャネルコマンド制御部1102は、プール構成LDEV管理テーブル1107を参照して利用可能であるプール構成LDEV11071に対応する制御ビット配列を取得し(S1511)、その取得した制御ビット配列に0が含まれているか判定する(S1512)。制御ビット配列に0が含まれていないと判定した場合(S1512、No)、対象のプール構成仮想LDEV11071に利用可能な実記憶領域(空き領域)が存在しないので、チャネルコマンド制御部1102は、LDEV空き容量チェック変数Aを1増加させて(S1514)、S1509へ処理を戻し、次のプール構成LDEV11071の情報を取得する。
制御ビット配列に0が含まれていると判定した場合(S1512、Yes)、チャネルコマンド制御部1102は、0が記録されている当該制御ビットの値を1へ変更し(S1515)、マッピング管理テーブル1106に記録されているホスト装置2のアクセス先仮想LU192に対応する仮想LDEV191について、割り当てた実記憶領域アドレス11065に対応するページ番号11062、仮想LDEVアドレス11063、プール構成LDEV番号11064を登録(マッピング)する(S1516)。そして、その割り当てた実記憶領域に対して、ホスト装置2のコマンドに指定されている処理(リード、ライト等)を実行する(S1517)。
以上説明したように、シンプロビジョニング機能により、ホスト装置2から仮想LU192へ実際にアクセスがあった場合に実記憶領域を割り当てる構成を実現し、あらかじめストレージ装置10に実装する記憶容量を抑制することができる。
割当て済み実記憶領域破棄処理
次に、上記のようにして仮想LU192に割り当てられた実記憶領域を、再び未割当て領域に戻すための処理について説明する。以下この処理のことをページ破棄処理という。図16に、ページ破棄処理フローの一例を示している。
このページ破棄処理は、一度仮想LU192に割り当てた実記憶領域について、マッピング管理テーブル1106に記録されている対応レコードを削除することで実現される。このページ破棄処理は、チャネル制御部110に実装されているチャネルコマンド制御部1102により実行される。
まず、チャネルコマンド制御部1102は、実記憶領域が割り当て済の仮想ボリューム190に含まれる実記憶領域アドレス(ページ)のうち、破棄対象となるページをホスト装置2から受領する(S1601)。すなわち、例えばストレージシステム1のユーザが、ホスト装置2から破棄対象となるページを特定する情報を含めたコマンドをチャネル制御部110に送る。コマンドを受領したチャネル制御部110のチャネルコマンド制御部1102は、マッピング管理テーブル1106から仮想ボリューム190内のページに対応するプール構成LDEV番号11064と実記憶領域アドレス11065とを取得する(S1602)。
そして、チャネルコマンド制御部1102は、マッピング管理テーブル1106から、対応するページ番号11062、仮想ボリュームアドレス11063、プール構成LDEV番号11064、及び実記憶領域アドレス11065の情報を含むレコードを削除する(S1603)。チャネルコマンド制御部1102は、プール構成LDEV管理テーブル1107において、対象となるプール構成LDEV11071について、仮想LDEV11061に対応するアドレスの制御ビット配列のビットを0に変更する(S1604)。
以上説明した構成により、仮想ボリューム190のプール構成LDEV11064(実記憶領域)への割り当てが破棄され、ホスト装置2が実記憶領域を有効に利用することができる。
コピーペアが構成されている場合のページ破棄処理
次に、2つの論理ボリューム、正ボリュームと副ボリュームとがコピーペアを構成している場合のページ破棄処理について説明する。ここでコピーペアとは、正ボリュームに格納されているデータのコピー先として指定された副ボリュームが組み合わされてなる、論理ボリュームのペア構成を意味している。以下、1台のストレージ装置10内でコピーペアが構成されているローカルコピー構成、少なくとも2台の異なるストレージ装置10間でコピーペアが構成されているリモートコピー構成、及び正ボリュームから副ボリュームへのデータ書き込み順序まで再現すべく、正副ジャーナルボリュームを付加したリモートコピー構成の3つの場合について、順次説明する。
なお、本実施例のページ破棄処理は、コピーペアが置かれている状態によって処理内容を変えるため、上記の各コピーペア構成について、ペア状態とサスペンド状態とに分類して説明することにする。
ペア状態とは、コピーペアを構成している正ボリュームと副ボリュームの間での差分データが、正ボリュームから副ボリュームへ定期的にコピーされる状態である。ペア状態では、ホスト装置2は正ボリュームにのみデータ書き込みを実行できるため、正ボリュームと副ボリュームの格納データには差分が生じる。この差分が、正ボリュームから副ボリュームへの定期的なデータコピーによって解消される。このデータコピーは、ホスト装置2から正ボリュームにデータが書き込まれる都度実行してもよい。
サスペンド状態とは、コピーペアを構成している正ボリュームと副ボリュームのペアが分割されている状態であり、定期的な差分コピーにより正副ボリューム間の同期をとる処理は実行されず、副ボリュームに対してもホスト装置2はデータ書き込みが可能である。この状態でストレージ装置10がホスト装置2から再同期化のコマンドを受領すると、ストレージ装置10では差分データが正ボリュームから副ボリュームへとコピーされ、正ボリュームと副ボリュームの格納データが一致し、コピーペアの状態もサスペンド状態からペア状態へ移行する。
ローカルペア(ペア状態)でのページ破棄処理
ここでのページ破棄処理では、ローカルコピーのコピーペアを構成している正ボリュームから副ボリュームへデータコピー処理を実行するときに、ページ破棄情報を設定することによってページ破棄処理を実行する。
本実施例におけるローカルコピー構成を備えたストレージ装置10の構成の一例を図17に模式的に示している。図1〜図8に関して説明したように、ストレージ装置10は、チャネル制御部110及びディスク制御部120を備え、チャネル制御部110によってホスト装置2からのコマンドを受信する。ローカルコピーのペアを構成している正ボリュームと副ボリュームとの間でのデータコピー処理は、チャネル制御部110のチャネルコマンド制御部1102によって管理される。プール領域180には、仮想LDEV191に実記憶領域であるページを割り当てるために、実LDEV172が作成されている。ここで、各実LDEV172は、プール構成LDEVでもある。
共有メモリ15には、本実施例のページ破棄処理を実行するためにチャネルコマンド制御部1102によって利用される管理テーブル群である、ページ破棄管理テーブル151、差分ビットマップ152、及びペア状態管理テーブル153が保持されている。
ページ破棄コマンド1800
本実施例では、ストレージシステム1のユーザ等が、ホスト装置2から不要となったページのアドレスを含むページ破棄コマンドを、正ボリューム(仮想VOL1)131に対して発行する。図18に、ページ破棄コマンド1800のデータ構造例を示している。ページ破棄コマンド1800は、コマンドの内容が記録されているコマンド部1810と、コマンドによって処理されるデータが格納されているデータ部1820とを備えている。
コマンド部1810は、オペレーションコード1811、ページ破棄ビット1812、書き込み先頭アドレス1813、及びデータ長1814を有する。
オペレーションコード1811は、受信側であるチャネル制御部110あるいはディスク制御部120のプロセッサ112、122に実行させたい命令の種類をあらわすコードである。ページ破棄ビット1812は、コマンドとしてページを破棄する場合は1を、ページを破棄しない場合は0を記録しており、通常のデータ書き込みコマンド等とページ破棄コマンドとを区別する。書き込み先頭アドレス1813は、ライト処理を実行する先頭アドレスを表す。データ長1814は、書き込み先頭アドレス1813からデータ部1820に記録されているデータの内容を書き込むデータ長が記録される。
差分ビットマップ1900(152)
図19に、差分ビットマップ1900の一例を示している。図19の差分ビットマップ1900は、正ボリューム131及び副ボリューム132の最小データ格納領域としてスロット(サイズ:例えば512バイト)を採用した場合を示しており、スロット番号1901、正ボリューム側差分ビット1902、及び副ボリューム側差分ビット1903が対応付けて記録されている。正ボリューム側差分ビット1902、又は副ボリューム側差分ビット1903に1が記録されている場合、対応するスロット番号1901で特定されるスロットには、正副ボリューム間でデータに差分が発生していることを示している。
差分ビットマップ1900による差分管理の単位は、分解能と管理テーブルの容量のトレードオフとなる。スロットと呼ばれる最小の記憶領域単位により差分を管理すれば、分解能を高められ記憶領域の利用効率を高めることができ、シリンダ等のより大きな記憶領域単位を利用すれば分解能は下がるが、管理テーブルの容量を小さくできる。本実施例では、実記憶領域の単位であるページは、複数のスロットから構成される(以下同じ)。
ページ破棄管理テーブル2000(151)
図20A、図20Bに、本実施例のページ破棄管理テーブル2000の一例を示している。ページ破棄管理テーブル2000は、ページ破棄処理を実行する対象となる記憶領域を特定するために利用される。ページ破棄管理テーブル2000には、破棄対象となる記憶領域を示すページ番号2001(図20Aに、論理制御装置番号CU#及びLDEV番号LDEV#とともにCU#:LDEV#:ページ#として記録)又は仮想LDEV番号2001(図20Bに、論理制御装置番号CU#とともにCU#:LDEV#として記録)と、ページ破棄ビット2002とが対応付けて記録されている。ページ破棄ビット2002が1となっている記憶領域(ページ、LDEV2001等)について、後述するページ破棄処理が実行されることを示している。
ページ破棄処理
図21に、本実施例におけるページ破棄処理フローの一例を示している。このページ破棄処理は、ホスト装置2からページ破棄要求を受けた正ボリューム131、副ボリューム132で実行される処理であり、各コピーペア構成におけるページ破棄処理において共通して実行される。ページ破棄処理を実現するプログラムは例えば共有メモリ15に格納され、ホスト装置2からページ破棄要求を受け付けたチャネルコマンド制御部1102によって実行される。
ページ破棄処理は、ホスト装置2からのデータI/O要求とは非同期に実行される。
チャネルコマンド制御部1102によってページ破棄処理が起動されると(S2101)、チャネルコマンド制御部1102は、受信したコマンドから破棄対象となっているページ(他の管理単位であれば、LDEV172等の他の単位)のリストを取得する(S2102)。コマンドを受領したチャネル制御部110のチャネルコマンド制御部1102は、マッピング管理テーブル1106から、破棄対象となっているページについて、仮想ボリューム190内のページに対応するプール構成LDEV番号11064と実記憶領域アドレス11065とを取得する(S2103)。
そして、チャネルコマンド制御部1102は、マッピング管理テーブル1106から、対応するページ番号11062、仮想ボリュームアドレス11063、プール構成LDEV11064、及び実記憶領域アドレス11065の情報を含むレコードを削除する(S2104)。チャネルコマンド制御部1102は、プール構成LDEV管理テーブル1107において、対象となるプール構成LDEV11071について、仮想LDEV11061に対応するアドレスの制御ビット配列のビットを0に変更する(S2105)。
最後に、チャネルコマンド制御部1102は、破棄したページについて、ページ破棄管理テーブル2000のページ破棄ビット2002を0に変更して処理を終了する(S2106)。
以上の構成により、正ボリューム131、副ボリューム132について、ホスト装置2から指定されたページを破棄することができる。
ペア状態管理テーブル2200
図22に、本実施例におけるペア状態管理テーブル2200の一例を示している。ペア状態管理テーブル2200は、コピーペアを構成している正ボリューム131と副ボリューム132との対応関係を表しており、正ボリュームスロット番号2201、副ボリュームスロット番号2202、及びペア状態2203が対応付けて記録されている。正ボリュームスロット番号2201で特定される記憶領域に格納されているデータが、対応する副ボリュームスロット番号2202で特定される記憶領域にコピーされていることが示されている。また、正ボリュームスロット番号2201、副ボリュームスロット番号2202の各対応関係について、そのペア状態が「ペア」であるか「サスペンド」であるか、ペア状態2203に記録されている。ペア状態はスロット毎に管理されており、各スロットは、論理制御装置番号、LDEV番号、及びスロット番号の組み合わせ(CU#:LDEV#:スロット#)で特定される。
ローカルコピー構成(ペア状態)におけるページ破棄処理フロー
以上の構成を踏まえ、ローカルコピー構成(ペア状態)におけるページ破棄処理フローについて説明する。図23に、当該処理フローの一例を示している。
まず、正ボリューム131を管理しているチャネル制御部110に実装されているチャネルコマンド制御部1102は、ホスト装置2からのページ破棄コマンド受信を待機する(S2301、No)。ホスト装置2が発行したページ破棄コマンドは、チャネル制御部110のチャネルコマンド制御部1102によって受信され(S2301、Yes)、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、及びマッピング管理テーブル1106により、コマンドに指定されているページ番号11062に対応するプール領域180内のプール構成LDEV11064のアドレスを取得する(S2302)。
チャネルコマンド制御部1102は、取得したアドレスに対してディスク制御部120へ0データを書き込む指示を発行し、ディスク制御部120により実LDEV172に0データを書き込む(S2303)。
正ボリューム131に対して0データを書き込んだことにより、正ボリューム131と副ボリューム132との間でデータの差分が発生する。そのため、チャネルコマンド制御部1102は、差分ビットマップ1900において、0データの書き込みが実行された箇所の正ボリューム側差分ビット1902に1を設定する(S2304)。
次に、チャネルコマンド制御部1102は、共有メモリ15内のページ破棄管理テーブル2000の対応するページ2001に対するページ破棄ビット2002を1に設定する(S2305)。
次に、チャネルコマンド制御部1102は、図21に示したページ破棄処理を起動させ(S2306)、正ボリューム側のページを破棄し、その時点で、ホスト装置2に対して0データの書き込み完了を通知する(S2307)。
次に、チャネルコマンド制御部1102は、共有メモリ15内のペア状態管理テーブル2200において、該当するスロットのアドレスのペア状態を確認する(S2308)。図23では、該当するスロットのペア状態が「ペア」であった場合についての処理を示している。ペア状態管理テーブル2200においてペア状態2203が「ペア」の場合は、定期的に正ボリューム131から副ボリューム132へ差分データがコピーされる。
チャネルコマンド制御部1102は、共有メモリ15内の差分ビットマップ1900を参照し、正ボリューム側差分ビット1902又は副ボリューム側差分ビット1903のどちらか一方にでも1が設定されているスロットのリストを得る(S2309)。そして、チャネルコマンド制御部1102は、マッピング管理テーブル1106を参照して、そのリストに記録されているスロットに対応するアドレスについて、ページ破棄管理テーブル2000から以下の状態A、状態Bのいずれかの条件が成立しているか判定する(S2310)。
状態A:差分ビットマップ1900の正ボリューム側差分ビット1902又は副ボリューム側差分ビット1903のどちらか一方にでも1が設定されているページについて、ページ破棄管理テーブル2000の対応するページ破棄ビット2002が1、又は当該ページについて全データが0
状態B:差分ビットマップ1900において、正ボリューム側差分ビット1902又は副ボリューム側差分ビット1903のどちらか一方にでも1が設定されている箇所のページが未割り当て
状態Bは、マッピング管理テーブル1106において、正ボリューム側差分ビット1902又は副ボリューム側差分ビット1903のどちらか一方が1のスロットに該当するアドレスを含むページが存在しないことを示している。すなわち、ページ破棄処理が完了し、既にページが破棄済であることを示している。
S2310で状態Aでも状態Bでもないと判定された場合(S2310、No)、ページ破棄対象となるページがないため、チャネルコマンド制御部1102は、正ボリューム131に格納されているデータを副ボリューム132に送信して処理を終了する(S2313)。
S2310で、状態A又は状態Bが成立していると判定した場合(S2310、Yes)、チャネルコマンド制御部1102は、ペア状態管理テーブル2200又はLU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107を検索し、正ボリューム131に対応する副ボリューム132が仮想ボリューム190であるか判定する(S2311)。
副ボリューム132が仮想ボリューム190でないと判定した場合(S2311、No)、副ボリューム132には破棄すべきページがないため、チャネルコマンド制御部1102は、正ボリューム131のデータを副ボリューム132に送信して処理を終了する(S2313)。副ボリューム132が仮想ボリューム190であると判定した場合(S2311、Yes)、まず正ボリューム131から副ボリューム132へ対応するスロット1901間で0データがコピーされる(S2312)。
副ボリューム132では、正ボリューム131から受信した0データを該当するスロット1901に格納する(S2314)。そして、コピー完了後、副ボリューム132を管理するチャネルコマンド制御部1102は、副ボリューム132の0データがコピーされたページ2001に対応するページ破棄管理テーブル2000のページ破棄ビット2002を1に設定し(S2315)、図21に示すページ破棄処理を起動する(S2316)。この後、ページ破棄処理により副ボリューム132側の正ボリューム131に対応するページも破棄される。
なお、正ボリューム131から副ボリューム132へのデータ転送については、本実施例のように、データ長分の0データをすべて転送する方法の他、最小容量単位の0データのみを転送し、ページ破棄ビット2002が1の場合は、副ボリューム132側のチャネルコマンド制御部1102で書き込み先頭アドレスから0データをデータ長分繰り返し書き込む方法、あるいは正ボリューム131側から0データを転送せず、ページ削除ビット2002が1の場合は、副ボリューム132側のチャネルコマンド制御部1102で書き込み先頭アドレスから0データをデータ長分書き込む方法を採用することもできる。
また、正ボリューム131側から副ボリューム132側への破棄対象ページ伝達については、ホスト装置2から正ボリューム131へのページ破棄コマンドを受領した時点で、正ボリューム131側チャネルコマンド制御部1102が対応する副ボリューム132のページをペア状態管理テーブル2200等から求めて副ボリュームページ破棄情報としてメモリ113等に管理し、正ボリューム131から副ボリューム132へのデータコピー時にこの副ボリュームページ削除情報を基にしてページ破棄ビット2002を設定する方法を採用することもできる。
以上の構成により、正ボリューム131と副ボリューム132の両方に対応して格納されているページを、1回のホスト装置2からのページ破棄コマンドによって破棄することができる。
ローカルコピー構成(サスペンド状態)におけるページ破棄処理フロー
次に、ローカルコピー構成において、ペア状態がサスペンドである場合の処理について説明する。図24に、サスペンド状態にあるローカルコピー構成でのページ破棄処理フローの一例を示している。図24に示すサスペンド状態でのページ破棄処理フローは、図23に示したペア状態での処理フローとほぼ同じであるため、対応するステップには同一の符号を付している。ペア状態の場合と異なるのは、図24におけるステップS2308aにおいて、チャネルコマンド制御部1102が、ホスト装置2から再同期化コマンドを受領している点である。
上記したように、サスペンド状態にあるローカルコピーペアでは、正ボリューム131から副ボリューム132への定期的な差分コピーが実行されない。このため、正ボリューム131を管理するチャネルコマンド制御部1102は、ホスト装置2から再同期化コマンドを受領して、正ボリューム131から副ボリューム132へ差分コピーを実行するようにしている。この後、ローカルコピーペアを構成している正ボリューム131と副ボリューム132とは、ペア状態となって引き続き稼働することになる。
以上、ローカルコピー構成で説明したページ破棄方式では、ホスト装置2からページ破棄コマンドが発行された後、チャネルコマンド制御部1102が正ボリューム131側の該当ページに0データを書き込み、正ボリューム131側のページ破棄処理を起動した後の正副ボリュームの再同期化(差分コピー)時に、副ボリューム132へのページ破棄処理命令送信の要否を判断している。チャネルコマンド制御部1102は、ホスト装置2からページ破棄コマンドを受領した時点で、副ボリューム132側のページ破棄情報を作成し、一時的にメモリ等に格納し、正ボリューム131から副ボリューム132へのデータ反映時にページ破棄情報を送信することで副ボリューム側のページ破棄ビットを設定することもできるが、本実施例のように、差分コピー時にコピーするページが破棄対象のページかどうか判定することは以下のメリットがある。
図25に、副ボリューム132のみに割り当てられたページを含む場合のページ破棄処理説明図を示している。コピーペアの正副ボリューム131、132が分割されたサスペンド状態では、ホスト装置2は直接副ボリューム132へのデータ書き込みが可能である。このため、正ボリューム131では仮想ボリューム190に割り当てられていないページに対して、副ボリューム132ではデータ書き込み処理によりページが割り当てられてしまっている事象が起こりうる。
この場合、チャネルコマンド制御部1102がページ破棄コマンドを受領した時点でそのコマンドに含まれている破棄対象ページのアドレスから副ボリューム132側の破棄ページアドレスを求めて破棄処理を実行したとすれば、正ボリューム131側に対応するページを持たない、副ボリューム132側のみに割り当てられたページを破棄することはできないことになる。
図25に示すように、本実施例の構成では、差分ビットマップ1900において、副ボリューム132にホスト装置2からデータ書き込みがあった場合、副ボリューム132側の差分ビット1903が1となる。このため、副ボリューム132だけにデータ書き込みが実行され、ページが割り当てられた場合、そのページに該当する差分ビットマップ1900上の副ボリューム側差分ビット1903に1が設定されているので、チャネルコマンド制御部1102は、当該ページを差分コピーの対象として検出することができる。したがって、正ボリューム131から副ボリューム132へ差分コピーを実行する際に、正ボリューム131側のページを参照したときに当該ページに記録されているデータが全て0であるので、副ボリューム132側のページが破棄対象となる。このため、本実施例のページ破棄処理方式では、副ボリューム132側の仮想ボリューム190だけにページが割り当てられている場合でも、当該副ボリューム132側のページを破棄することができる。
実施例2
リモートコピー構成におけるページ破棄処理
次に、コピーペアを構成する正副ボリューム131、132が、それぞれ異なるストレージ装置10に属する構成を有する同期リモートコピーの場合におけるページ破棄処理について説明する。
図26に、同期リモートコピー構成を含むストレージシステム1の構成の一例を示している。図26において、各ストレージ装置10の構成はほぼ図17に示したローカルコピー構成の場合と同様であるが、主制御装置(MCU)としてのストレージ装置10と、従制御装置(RCU)としてのストレージ装置10とは、チャネル制御部110同士が通信ポート111を介して通信可能に接続されている。通信ポート111間の通信方式としては、例えばLAN、SAN、インターネット、公衆通信網等を用いることができる。この通信可能なチャネル制御部110によって、MCUに作成されている正ボリューム131と、RCUに作成されている副ボリューム132とは、同期リモートコピー方式のコピーペアを構成している。
また、MCU、RCUの各ストレージ装置10にある共有メモリ15には、ページ破棄管理テーブル151、差分ビットマップ152、及びペア状態管理テーブル153が保持されており、MCU側共有メモリ15にはさらに副ボリュームページ破棄情報154が保持されている。
チャネル基板11のメモリ113に格納されているLU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107は、ローカルコピー構成の場合と同様である。また、同様にチャネル基板11のメモリ113又は共有メモリ15に保持されるページ破棄管理テーブル151及び差分ビットマップ152も、ローカルコピー構成の場合と同等の構成を有している。以下、ローカルコピー構成の場合と構成が異なるペア状態管理テーブル2700(153)及び副ボリュームページ破棄情報2900(154)について説明する。
ペア状態管理テーブル2700(153)
図27に、本実施例のペア状態管理テーブル2700の構成の一例を示している。ペア状態管理テーブル2700は、同期リモートコピーペアを構成している正副ボリューム131、132の対応するデータが格納されているスロットの対応関係とそのスロット間でのペアの状態を記録しており、MCU側ストレージ装置10のチャネル基盤11におけるポート番号2701とスロット番号(図22の場合と同様に、CU#:LDEV#:スロット#の書式で記載)2702、及びRCU側ストレージ装置10の装置識別符号である装置番号2703、チャネル基盤11におけるポート番号2704及びスロット番号2705、そして、対応するスロット番号2702、2705間のペア状態2706の各項目が対応付けて記録されている。このペア状態管理テーブル2700により、チャネルコマンド制御部1102は、ペア状態、サスペンド状態に応じて処理を切り替えることになる。
MCU、RCU間の通信メッセージ2800
本実施例においては、正ボリューム131と副ボリューム132がそれぞれ属するストレージ装置10が異なるため、MCU側のストレージ装置10のチャネル制御部110からRCU側のストレージ装置10にあるチャネル制御部110へ、ホスト装置2からのページ破棄コマンドに相当する通信メッセージ2800を送信する。図28に、この通信メッセージ2800のデータ構造例を示している。通信メッセージ2800は、コマンドの内容が記録されているコマンド部2810と、コマンドによって処理されるデータが格納されているデータ部2820とを備えている。それぞれの構成は、図18に示したページ破棄コマンド1800と同等であるが、コマンド部2810に、オペレーションコード2811、ページ破棄ビット2812、書き込み先頭アドレス2814、及びデータ長2815に加え、書き込み先装置番号2813が記録されている点が異なる。書き込み先装置番号2813には、MCU側ストレージ装置10からのデータ書き込み先が、RCU側ストレージ装置10に付されている識別符号である装置番号(ペア状態管理テーブル2700の装置番号2703に相当)によって記録されている。
副ボリュームページ破棄情報2900
図29に、副ボリュームページ破棄情報2900の構成の一例を示している。副ボリュームページ破棄情報2900は、破棄対象となったMCU側正ボリューム131のページに対応するRCU側副ボリューム132についてのページ破棄ビット2906を備えている。
副ボリュームページ破棄情報2900はまた、MCU側ストレージ装置10のチャネル基板11におけるポート番号2901とページ番号2902、及びRCU側ストレージ装置10の装置識別符号である装置番号2903、チャネル制御部110におけるポート番号2904及びページ番号2905の各項目が対応付けて記録されている。
ペア状態がペアの場合、MCU側チャネルコマンド制御部1102は、副ボリューム132にも0データを書き込み、ページ破棄ビット2002を設定しなければ、ホスト装置2に0データの書き込み終了を通知できない。このため、ローカルコピーの場合のように、副ボリューム132への差分コピー時に副ボリューム132のページ破棄を判定すると、ページ破棄管理テーブル2000又は該当ページ内の全データをチェックすることになり、ホスト装置2への0データ書き込み完了通知が遅れる。
本実施例では、ページ破棄コマンド1800を受領した時点で副ボリューム132のページ破棄アドレスを特定し、副ボリューム132へのコピー時には事前に求めたページ破棄情報を利用し、RCU側に破棄情報を伝達する。これにより、ページ破棄管理テーブル2000のチェックやページ内の全データのチェックを不要とし、ホスト装置2に0データ書き込み完了を早期に通知することができる。なお、ローカルコピーの場合と同様に、正ボリューム131から副ボリューム132へのデータコピー時に、副ボリューム132側のページを破棄するか判定し、破棄する場合には副ボリューム132側のページ破棄ビット2002を1に設定してページ破棄を実行する構成としてもよい。これは、実施例3に関して後述する、ジャーナルを使用した非同期リモートコピー構成においても同様である。
同期リモートコピー構成(ペア状態)におけるページ破棄処理フロー
同期リモートコピーの場合、ホスト装置2から正ボリューム131へのページ破棄コマンド受領時に、ペア状態では正ボリューム131に0データを書きこんだ後、次に副ボリューム132側にも0データを書き込む指示と、ページ破棄管理テーブル2000(151)のページ破棄ビット2002を1に設定するための通信を実行し、RCU側のページ破棄処理を起動する。その処理完了後に、正ボリューム131のページ破棄管理テーブル2000のページ破棄ビット2002を1に設定しMCU側のページ破棄処理を起動して、ホスト装置2に書き込み完了を通知する。
図30に、ペア状態にある同期リモートコピーのコピーペア構成におけるページ破棄処理フローの一例を示している。
まず、MCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、ローカルコピー構成の場合と同様、ホスト装置2からMCU側の正ボリューム131に対する破棄対象のアドレスを指定したページ破棄コマンド1800受信を待機する(S3001、No)。ホスト装置2からページ破棄コマンド1800をMCU側チャネルコマンド制御部1102で受信した場合(S3001、Yes)、チャネルコマンド制御部1102は、ホスト装置2からコマンドに指定された仮想ボリューム190のアドレスを、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106を参照して、プール構成LDEV番号11064およびそのアドレス11065に変換する(S3002)。
チャネルコマンド制御部1102は、S3002で求めたアドレス11065に0データを書き込むようにディスク制御部120に指示し、MCU側ディスク制御部120が当該アドレス11065に0データを書き込む(S3003)。
MCU側チャネルコマンド制御部1102は、共有メモリ15内のペア状態管理テーブル2700から正ボリューム131の破棄ページに対応するRCU側副ボリューム132の装置番号2703、ポート番号2704、スロット番号2705、コピーペアの状態2706、及び副ボリュームが仮想ボリュームであるかの情報(LU管理テーブル1103に記録されている仮想ボリュームビット11034の情報等から判定)を取得する(S3004)。図30では、正副ボリューム131、132はペア状態であるとしている。
次に、MCU側チャネルコマンド制御部1102は、S3004で特定した副ボリューム132が仮想ボリューム190であるか判定し(S3005)、仮想ボリューム190でないと判定した場合(S3005、No)、RCU側チャネルコマンド制御部1102への通信メッセージ2800内のページ破棄ビット2812を0(副ボリューム132のページ破棄オフ)として、通常の同期リモートコピー処理を実行する(S3016)。
S3005で副ボリューム132が仮想ボリューム190であると判定した場合(S3005、Yes)、MCU側チャネルコマンド制御部1102は、ページ破棄ビット2812を1(副ボリュームページ破棄オン)として通信メッセージ2800を作成する(S3006)。
次いで、MCU側チャネルコマンド制御部1102は、作成した通信メッセージ2800と0データを、書き込み先装置番号2813で特定されるストレージ装置10に対して送信する(S3007)。このとき、0データをページ容量分(本実施例では42MB)送信すると、チャネル制御部110間の通信回線に負担がかかるため、0データはデータ記憶単位の最小容量分のみ送信することが好ましい(例:512バイト)。なお、通常のデータコピー処理と同じく1ページ分の42MBの0データを転送してもよい。以下説明するリモートコピー構成でも、同様に転送される0データは最小容量分のみでもデータ長分全てでもよい。また、ページ破棄ビット2812が1の時はMCU側からRCU側に0データを転送せず、RCU側でページ破棄ビット2002が1である場合には、RCU側チャネルコマンド制御部1102が書き込み先頭アドレスからデータ長分の0データを書き込むように構成してもよい。
RCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、MCU側チャネル制御部110からの通信メッセージ2800を受信し、その内容を解析する(S3008)。通信メッセージ2800に記録されているページ破棄ビット2812が1である場合、チャネルコマンド制御部1102は、送信された0データをコマンド部2810内の書き込み先頭アドレス2814からデータ長2815分書き込む(S3009)。この際、0データがデータ長分送信された場合はそのデータを書き込み、最小容量分の0データが送信された場合又は0データが送信されなかった場合は、RCU側のチャネルコマンド制御部1102が先頭アドレス2814からデータ長2815分繰り返し書き込みを実行する。
次いで、RCU側のチャネルコマンド制御部1102は、共有メモリ15内のページ破棄管理テーブル2000のページ破棄対象ページのページ破棄ビット2002に1を設定し(S3010)、図21に示したページ破棄処理を起動する(S3011)。
RCU側チャネルコマンド制御部1102は、RCU側の0データ書き込み完了メッセージをMCU側チャネルコマンド制御部1102へ送信する(S3012)。
MCU側チャネルコマンド制御部1102は、RCU側からの0データ書き込み完了メッセージを受信後、MCU側のページ破棄管理テーブル2000のページ破棄箇所のページ破棄ビット2002を1に設定する(S3013)。そして、MCU側チャネルコマンド制御部1102は、図21のページ破棄処理を起動する(S3014)。MCU側チャネルコマンド制御部1102はホスト装置2に0データ書き込み完了メッセージを送信して処理を終了する(S3015)。
以上説明した構成によれば、ホスト装置2から1回ページ破棄コマンドを与えることで、ペア状態にある同期リモートコピーペアの正副ボリューム131、132のページ破棄を実行することができる。
リモートコピーペア(サスペンド状態)でのページ破棄処理フロー
同期リモートコピー構成でのサスペンド状態の場合、正副ボリュームの再同期化が実行されるまで、正副ボリューム間でデータ通信が実行されないので、正ボリューム131と副ボリューム132の格納データの差分および副ボリューム132の破棄ページ情報を管理する必要がある。本実施例では、データの差分情報は、共有メモリ15内に保持される差分ビットマップ1900(152)により管理される。差分ビットマップ1900は、ローカルコピー構成の場合について図19に示したものと同様である。ローカルコピーの場合と同様に、差分ビットマップ1900による差分管理単位は、スロット単位でもよいしその他どのような記憶領域単位でもよい。
MCU側ストレージ装置10のチャネル制御部110がホスト装置2からページ破棄コマンドを受領した際に、チャネルコマンド制御部1102が副ボリューム132側(RCU側)のページ破棄情報(以下「副ボリュームページ破棄情報」(図29))も作成し、例えば共有メモリ15に保持する。そしてチャネルコマンド制御部1102が正副ボリューム間での再同期化のコマンド受領時に、この副ボリュームページ破棄情報2900に基づいて、作成する通信メッセージ2800内にページ破棄ビット2812を設定する。
図31に、サスペンド状態にあるリモートコピーペア構成でのページ破棄処理フローの一例を示している。
まず、MCU側チャネル制御部110のチャネルコマンド制御部1102がホスト装置2からのページ破棄コマンド受信を待機し(S3101)、ページ破棄コマンドを受領した場合(S3101、Yes)、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、及びマッピング管理テーブル1106を参照して、そのページ破棄コマンドに含まれるページ番号11062に対応する仮想LDEVアドレス11063をプール構成仮想LDEV11064に変換し(S3102)、該当アドレスに0データを書き込む(S3103)。
MCU側チャネルコマンド制御部1102は、共有メモリ15内のペア状態管理テーブル2700から正ボリューム131の破棄ページに対応するRCU側副ボリューム132の装置番号2703、ポート番号2704、スロット番号2705、コピーペアの状態2706、及び副ボリュームが仮想ボリュームであるかの情報(LU管理テーブル1103に記録されている仮想ボリュームビット11034の情報等から判定)を取得する(S3104)。図31A、図31Bでは、正副ボリューム131、132はサスペンド状態であるとしている。
次に、MCU側チャネルコマンド制御部1102は、S3104で特定した副ボリューム132が仮想ボリューム190であるか判定し(S3105)、仮想ボリューム190でないと判定した場合(S3105、No)、RCU側チャネルコマンド制御部1102への通信メッセージ2800内のページ破棄ビット2812を0(副ボリューム132のページ破棄オフ)として、通常の同期リモートコピー処理を実行する(S3113)。
S3105で副ボリューム132が仮想ボリューム190であると判定した場合(S3105、Yes)、MCU側チャネルコマンド制御部1102は、共有メモリ15にある差分ビットマップ152(1900)内の書き込みを実行した箇所の正ボリューム側差分ビット1902を1に設定する(S3106)。
次いで、MCU側チャネルコマンド制御部1102は、共有メモリ15にある副ボリュームページ破棄情報154(2900)で、正ボリューム131でページ破棄を実行するページに対応する副ボリューム132のページ破棄ビット2906を1に設定する(S3107)。
MCU側チャネルコマンド制御部1102は、MCU側のページ破棄管理テーブル2000のページ破棄ビット2002を1に設定し(S3108)、図21のページ破棄処理を起動する(S3109)。そして、MCU側チャネルコマンド制御部1102は、ホスト装置2に0データ書き込み完了を通知する(S3110)。
次いで、MCU側チャネルコマンド制御部1102は、ホスト装置2から再同期化コマンドを受領し(S3111)、RCU側チャネル制御部110にRCU側の再同期化のメッセージを送信する(S3112)。
再同期化メッセージを受信したRCU側のチャネルコマンド制御部1102は、RCU側の共有メモリ15に保持されている差分ビットマップ1900(152)をMCU側チャネル制御部110に送信し(S3114)、これを受信したMCU側チャネルコマンド制御部1102は、MCU側、RCU側の両差分ビットマップ1900をマージする(S3115)。MCU側チャネルコマンド制御部1102は、マージした差分ビットマップ1900でMCU側差分ビット1902又はRCU側差分ビット1903が1であるスロットのリストを取得する(S3116)。
さらに、MCU側チャネルコマンド制御部1102は、副ボリュームページ破棄情報2900でページ破棄ビット2906が1であるアドレスのリストを取得する(S3117)。
次いで、MCU側チャネルコマンド制御部1102は、S3116で取得した差分ビット1902、1903が1であるスロットのリストの中で、ページ破棄ビット2906が1であるか判定する(S3118)。ページ破棄ビット2906が1でないと判定された場合(S3118、No)、チャネルコマンド制御部1102は、副ボリューム132のページ破棄をしない(通信メッセージ2800内のページ破棄ビット2806を0とした)通常のコピー処理を実行する(S3125)。
ページ破棄ビット2906が1であると判定した場合(S3118、Yes)、MCU側チャネルコマンド制御部1102は、ページ破棄ビット2812に1を設定した通信メッセージ2800を作成し(S3119)、0データ(最小容量単位分又はデータ長分)とともにMCU側チャネルコマンド制御部1102からRCU側チャネルコマンド制御部1102へ送信する(S3120)。ただし、RCU側でページ破棄ビット2002が1である場合に、MCU側から0データが転送されなくても書き込み先頭アドレスからデータ長分の0データを書き込む場合は、MCU側チャネルコマンド制御部1102は0データを送信しない。RCUへのメッセージ2800送信後、MCU側チャネルコマンド制御部1102は、差分ビットマップ1900および副ボリュームページ破棄情報2900の差分ビット1902、1903とページ破棄ビット2906を1から0に戻す。また、RCU側のチャネルコマンド制御部1102は、RCU側の差分ビットマップ1900の差分ビット1902、1903を1から0に戻す。
RCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、MCU側チャネル制御部110からの通信メッセージ2800を受信し、その内容を解析する(S3121)。通信メッセージ2800に記録されているページ破棄ビット2812が1である場合、チャネルコマンド制御部1102は、送信された0データをコマンド部2810内の書き込み先頭アドレス2814からデータ長2815分繰り返し書き込む(S3122)。なお、0データがデータ長分送信された場合は、RCU側チャネルコマンド制御部1102は、その0データを全て書き込む。また、前記のように、ページ破棄ビット2812が1の時はMCU側からRCU側に0データを転送せず、RCU側でページ破棄ビット2002が1である場合には、RCU側チャネルコマンド制御部1102が書き込み先頭アドレスからデータ長分の0データを書き込むように構成してもよい
次いで、RCU側のチャネルコマンド制御部1102は、共有メモリ15内のページ破棄管理テーブル2000のページ破棄対象ページのページ破棄ビット2002に1を設定し(S3123)、図21に示したページ破棄処理を起動する(S3124)。
以上説明した構成により、同期リモートコピーペアを構成している正副ボリューム131、132がサスペンド状態にある場合に、ホスト装置2からの1回のページ破棄要求によって副ボリューム132でのページ破棄処理を実行することができる。
実施例3
ジャーナルを利用した非同期リモートコピー構成におけるページ破棄処理
次に、ジャーナルを利用した非同期リモートコピー構成におけるページ破棄処理について説明する。
上記した同期リモートコピーでは、MCU側チャネル制御部110からRCU側チャネル制御部110へ送信する通信メッセージ2800内にページ破棄ビット2812を設定することで、通信されているデータが破棄対象ページに関するものかどうかをMCU側からRCU側に伝達していた。非同期リモートコピー構成において、後述するジャーナルを利用する場合、そのジャーナルの制御情報(以下「ジャーナル制御情報」)にページ破棄の可否を示すページ破棄ビットを設定することで、RCU側にページ破棄情報も伝達する。
図32に、ジャーナルを利用した非同期リモートコピーの構成を模式的に示している。本実施例のジャーナルを利用した非同期リモートコピー構成では、ジャーナルグループ200が作成され、運用される。このジャーナルグループ200は、MCU側のデータ格納ボリュームである正ボリューム131、RCU側のデータ格納ボリュームである副ボリューム132、及びMCU側、RCU側それぞれの正副ジャーナルボリューム133、134を備えて構成されている。
以下、図32を参照しながらジャーナルを利用した非同期リモートコピーについて説明する。(i)等の符号は、図中の同一の符号を示している。ホスト装置2からデータ書き込み要求をMCU側チャネル制御部110にあるチャネルコマンド制御部1102が受領すると(i)、チャネルコマンド制御部1102は正ボリューム131にデータを書き込むと共に、ジャーナルを取得する(ii)。このジャーナル取得処理は、ホスト装置2からのデータ書き込みが行われる毎に実行される。ジャーナルは、副ボリューム132側で、正ボリューム131に書き込まれたデータに加え、その書き込み順序まで含めて管理するためにジャーナル1300として作成される。
図34に、ジャーナル1300の構成の一例を示している。ジャーナル1300は、ジャーナル制御情報格納領域1310とジャーナルデータ格納領域1320とを備える。ジャーナル制御情報格納領域1310には、ジャーナル制御情報1311が、ジャーナルデータ格納領域1320にはホスト装置2から書き込まれたデータ(以下「ジャーナルデータ1321」)が格納される。ジャーナル制御情報1311は、1スロット単位に各ストレージ装置10のキャッシュメモリ14上に作成される。このMCU側キャッシュメモリ14上に作成されたジャーナル制御情報1311とジャーナルデータ1321は、正ジャーナルボリューム133に格納される。
図35Aに、従来のジャーナル制御情報1311(3500)の構成の一例を示している。ジャーナル制御情報3500には、MCU側正ボリューム131のLDEV番号3501、スロット番号3502、書き込み先頭アドレス3503、及びデータ長3504、ジャーナルボリューム133のLDEV番号3505、スロット番号3506、及び書き込み先頭アドレス3507、及びジャーナルシーケンス番号3508の各項目が記録されている。
正ボリューム131のLDEV番号3501は、ジャーナルデータ1321を格納している正ボリューム131のLDEVを、既出の論理制御装置番号(CU#)とLDEV番号(LDEV#)との組み合わせで示している。スロット番号3502は、ジャーナルデータ1321を格納しているスロット番号を表す。書き込み先頭アドレス3503は、ジャーナルデータ1321が書き込まれている記憶領域の先頭アドレスを表す。データ長3504は、ジャーナルデータ1321のデータ長を表す。
ジャーナルボリューム133のLDEV番号3505は、ジャーナルデータ1321を格納している正ジャーナルボリューム133のLDEVを、既出の論理制御装置番号(CU#)とLDEV番号(LDEV#)との組み合わせで示している。スロット番号3506は、ジャーナルデータ1321を格納している正ジャーナルボリューム133のスロット番号を表す。書き込み先頭アドレス3507は、ジャーナルデータ1321を格納している正ジャーナルボリューム133の先頭アドレスを表す。
ジャーナルシーケンス番号3508は、ジャーナル取得時に割り当てられたシーケンス番号(例えば1から始まる整数の連続番号)を表す。ジャーナルシーケンス番号3508は、ホスト装置2からのデータ書き込み順序を表し、副ボリューム132側でこのジャーナルシーケンス番号3508で指定される順序に従ってデータを反映することで、正ボリューム131におけるデータ更新の順序を保証する。
図32に戻ると、ペア状態では、ホスト装置2からMCU側ストレージ装置10へのアクセス処理とは非同期に、RCU側からMCU側のジャーナル1300を読み取るためのコマンドが送信される。サスペンド状態では、ホスト装置2からの再同期化コマンドをMCU側ストレージ装置10が受領してMCU側チャネル制御部110からRCU側チャネル制御部110へ再同期化コマンドを送信した際に、RCU側からジャーナル1300の読み取りコマンドが発行される(iii)。
RCU側からの読み取りコマンドを受領すると、MCU側チャネル制御部110からRCU側チャネル制御部110へジャーナル1300が送信され、副ジャーナルボリューム134に格納される(iv)。
RCU側チャネル制御部110は、ディスク制御部120を介して、副ジャーナルボリューム134に格納されたデータを副ボリューム132に反映する(この処理を以下「ジャーナルリストア」という。v)。このとき、副ボリューム132へのデータ反映は、ジャーナルシーケンス番号3508の順序で実行される。
図33に、ジャーナルを利用する非同期リモートコピー構成を含むストレージシステム1の構成の一例を示している。図33において、各ストレージ装置10の構成はほぼ図17に示したローカルコピー構成の場合と同様であり、また図26の同期リモートコピー構成の場合と同様に、MCUとしてのストレージ装置10と、RCUとしてのストレージ装置10とは、チャネル制御部110同士が通信ポート111を介して通信可能に接続されている。
通信ポート111間の通信方式としては、例えばLAN、SAN、インターネット、公衆通信網等を用いることができる。この通信可能なチャネル制御部110によって、MCUに作成されている正ボリューム131と、RCUに作成されている副ボリューム132とは、非同期リモートコピー方式のコピーペアを構成している。また、図32に関して説明したように、MCUには正ジャーナルボリューム133が、RCUには副ジャーナルボリューム134が作成され、運用されており、正副ボリューム131、132とともに、ジャーナルグループ200を構成している。
MCU、RCUの各ストレージ装置10にある共有メモリ15には、ページ破棄管理テーブル151、差分ビットマップ152、及びペア状態管理テーブル153が保持されており、MCU側共有メモリ15にはさらに副ボリュームページ破棄情報154が保持されている。
MCU、RCUのキャッシュメモリ14には、図34に関して説明したように、ジャーナル制御情報1311とジャーナルデータ1321が保持されている。
チャネル制御部110のメモリ113に格納されているLU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、マッピング管理テーブル1106、及びプール構成LDEV管理テーブル1107は、ローカルコピー構成の場合と同様である。また、同様にチャネル基板11のメモリ113又は共有メモリ15に保持されるページ破棄管理テーブル151及び差分ビットマップ152も、ローカルコピー構成の場合と同等の構成を有している。
ホスト装置2からMCU側チャネル制御部110が書き込み要求を受領すると、チャネル制御部110にあるチャネルコマンド制御部1102が、書き込みデータをキャッシュメモリ14上に格納し、対応するジャーナル制御情報1311を同じくキャッシュメモリ14上に作成する。ジャーナルデータ1321は、適宜のタイミングで仮想ボリューム190である正ボリューム131(実際にはプール構成LDEV172)に書き込まれる。また、ジャーナル制御情報1311とジャーナルデータ1321(書き込みデータ)は、正ジャーナルボリューム133に格納される。
次に、同期リモートコピー構成の場合と構成が異なるジャーナル制御情報1311(3500)及びペア状態管理テーブル153(2700)について説明する。
ジャーナル制御情報3500(1311)
図35Bに本実施例におけるジャーナル制御情報3500の構成の一例を示している。本実施例のジャーナル制御情報3500は、基本的に図35Aに示した従来のジャーナル制御情報3500と同じ構成を有し、ジャーナル制御情報3500の各レコードについて、副ジャーナルボリューム134に割り当てられているページを破棄するために使用されるページ破棄ビット3509が付加されている点が異なる。ジャーナル制御情報3500はスロット単位で作成され、ページは複数のスロットから構成されるため、スロット単位でページ破棄ビット3509を設定すれば、ページ破棄情報をMCU側からRCU側へ伝達することができる。
ペア状態管理テーブル3600(153)
図36に、本実施例のペア状態管理テーブル3600の構成の一例を示している。このペア状態管理テーブル3600は、基本的に図27に示した同期リモートコピー構成におけるペア状態管理テーブル2700と同じ構成を有しており、各レコードについて、対応するジャーナルグループ200(正副ジャーナルボリュームペア)を特定するための管理番号であるジャーナルペア番号3601が付加されている点が異なる。
ジャーナルを利用した非同期リモートコピー構成(ペア状態)でのページ破棄処理フロー
図37に、ペア状態にある、ジャーナルを利用した非同期リモートコピーのコピーペア構成におけるページ破棄処理フローの一例を示している。この処理フローでは、図30で説明した同期リモートコピー構成の場合とほぼ同じ処理を実行する。同期リモートコピー構成では通信メッセージ2800にページ破棄ビット2812を格納したが、本処理フローでは、ジャーナル1300がジャーナル制御情報3500をスロット単位で持つため、このジャーナル制御情報3500にページ破棄ビット3509を追加することで、RCU側チャネル制御部110に破棄対象ページを伝達する構成をとっている。なお、ローカルコピーの場合と同様に、正ボリューム131から副ボリューム132へのデータコピー時に、副ボリューム132側のページを破棄するか判定し、破棄する場合には副ボリューム132側のページ破棄ビット2002を1に設定してページ破棄を実行する構成としてもよい。
まず、MCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、同期リモートコピー構成の場合と同様、ホスト装置2からMCU側の正ボリューム131に対する破棄対象のアドレスを指定したページ破棄コマンド1800を待機する(S3701、No)。ホスト装置2からページ破棄コマンド1800をMCU側チャネルコマンド制御部1102で受信した場合(S3701、Yes)、チャネルコマンド制御部1102は、ホスト装置2からコマンドに指定された仮想ボリューム190のアドレスを、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、及びマッピング管理テーブル1106を参照して、プール構成LDEV番号11064およびそのアドレス11065に変換する(S3702)。
チャネルコマンド制御部1102は、S3702で求めたアドレス11065に0データを書き込むようにディスク制御部120に指示し、MCU側ディスク制御部120が当該アドレス11065に0データを書き込む(S3703)。
MCU側チャネルコマンド制御部1102は、対応するページ破棄管理テーブル2000のページ破棄ビット2002に1を設定し(S3704)、図21に示したページ破棄処理を起動する(S3705)。
次に、MCU側チャネルコマンド制御部1102は、ホスト装置2に0データ書き込み完了を通知する(S3706)。
次いで、MCU側チャネルコマンド制御部1102は、共有メモリ15内のペア状態管理テーブル3600(151)から正ボリューム131の破棄ページに対応するRCU側副ボリューム132の装置番号3604、ポート番号3605、スロット番号3606、コピーペアの状態3607、及び副ボリュームが仮想ボリュームであるかの情報(LU管理テーブル1103に記録されている仮想ボリュームビット11034の情報等から判定)を取得する(S3707)。図37では、正副ボリューム131、132はペア状態であるとしている。
次に、MCU側チャネルコマンド制御部1102は、S3707で特定した副ボリューム132が仮想ボリューム190であるか判定し(S3708)、仮想ボリューム190でないと判定した場合(S3708、No)、対応するジャーナル制御情報1311のページ破棄ビット3509を0(副ボリューム132のページ破棄オフ)として、通常の非同期リモートコピー処理を実行する(S3717)。
S3708で副ボリューム132が仮想ボリューム190であると判定した場合(S3708、Yes)、MCU側チャネルコマンド制御部1102は、ページ破棄ビット3509を1(副ボリュームページ破棄オン)としてジャーナル制御情報3500を作成する(S3709)。
次いで、MCU側チャネルコマンド制御部1102は、作成したジャーナル制御情報3500とジャーナルデータ1321を正ジャーナルボリューム133に格納する(S3710)。
RCU側チャネルコマンド制御部1102はMCU側チャネルコマンド制御部1102に正ジャーナルボリューム133の格納データ読み取りコマンドを発行し(S3711)、このコマンドを受信したMCU側チャネルコマンド制御部1102は、正ジャーナルボリューム133の格納データをRCU側チャネルコマンド制御部1102へ送信する(S3712)。
RCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、MCU側チャネル制御部110から受信した正ジャーナルボリューム133の格納データを副ジャーナルボリューム134に格納する(S3713)。そして、RCU側チャネルコマンド制御部1102は、ジャーナルシーケンス番号3508に従って副ボリューム132にデータをコピーする(S3714)。次いで、RCU側チャネルコマンド制御部1102は、ページ破棄管理テーブル2000のページ破棄ビット2002を1に設定し(S3715)、図21に示したページ破棄処理を起動して処理を終了する(S3716)。
以上説明した構成によれば、ホスト装置2から1回ページ破棄コマンドを与えることで、ペア状態にある、ジャーナルを利用した非同期リモートコピーペアの正副ボリューム131、132のページ破棄を実行することができる。
なお、MCUからRCUへ送信される0データはジャーナル制御情報3500では必要データ長(例えば256KB)としておき、実際に送信するデータは最小容量単位(例えば512バイト)として、通信を実行することが、MCU側、RCU側チャネル制御部110間の通信回線に対する負荷を軽減する観点から好ましい。RCU側チャネル制御部110では、転送後、ジャーナル制御情報3500のデータ長3504で指定された長さ分の0データを繰り返し書き込むことができる。また、ページ破棄ビット3509が1の時はMCU側からRCU側に0データを転送せず、RCU側でページ破棄ビット2002が1である場合には、RCU側チャネルコマンド制御部1102が書き込み先頭アドレスからデータ長分の0データを書き込むように構成してもあるいは、0データを必要データ長分送信する構成であってもよい。
ジャーナルを利用した非同期リモートコピー構成(サスペンド状態)でのページ破棄処理フロー
次に、サスペンド状態における、ジャーナルを利用した非同期リモートコピー構成でのページ破棄処理フローについて説明する。図38A、図38Bに、サスペンド状態における処理フローの一例を示している。図38A、図38Bの処理フローは、図37に示したペア状態の処理フローと、差分管理をするために、差分ビットマップ152(ローカルコピー構成のものと同じ構成)を利用していること、正ボリューム131側の共有メモリ15で副ボリュームページ破棄情報154を利用すること、及びRCUがジャーナル読み取りコマンドを発行する前に、ホスト装置2から再同期化コマンドをMCU側のチャネル制御部110で受領し、RCU側のチャネル制御部110に対してそれに基づく再同期化のメッセージを送信することが異なっている。
ペア状態と異なり、サスペンド状態では、ホスト装置2からの再同期化コマンド受領後に、副ボリューム132側にジャーナル1300を送信する。このため、MCU側では副ボリューム132側のページ破棄情報を共有メモリ15内の副ボリュームページ破棄情報2900にもつ。
まず、MCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、同期リモートコピー構成の場合と同様、ホスト装置2からMCU側の正ボリューム131に対する破棄対象のアドレスを指定したページ破棄コマンド1800を待機する(S3801、No)。ホスト装置2からページ破棄コマンド1800をMCU側チャネルコマンド制御部1102で受信した場合(S3801、Yes)、チャネルコマンド制御部1102は、ホスト装置2からコマンドに指定された仮想ボリューム190のアドレスを、LU管理テーブル1103、仮想LDEV管理テーブル1104、プール管理テーブル1105、及びマッピング管理テーブル1106を参照して、プール構成LDEV番号11064およびそのアドレス11065に変換する(S3802)。
チャネルコマンド制御部1102は、S3802で求めたアドレス11065に0データを書き込むようにディスク制御部120に指示し、MCU側ディスク制御部120が当該アドレス11065に0データを書き込む(S3803)。
MCU側チャネルコマンド制御部1102は、対応するページ破棄管理テーブル2000のページ破棄ビット2002に1を設定し(S3804)、図21に示したページ破棄処理を起動する(S3805)。
次いで、MCU側チャネルコマンド制御部1102は、共有メモリ15内のペア状態管理テーブル3600(151)から正ボリューム131の破棄ページに対応するRCU側副ボリューム132の装置番号3604、ポート番号3605、スロット番号3606、コピーペアの状態3607、及び副ボリュームが仮想ボリュームであるかの情報(LU管理テーブル1103に記録されている仮想ボリュームビット11034の情報等から判定)を取得する(S3806)。図38Aでは、正副ボリューム131、132はサスペンド状態であるとしている。
次に、MCU側チャネルコマンド制御部1102は、S3806で特定した副ボリューム132が仮想ボリューム190であるか判定し(S3807)、仮想ボリューム190でないと判定した場合(S3807、No)、対応するジャーナル制御情報3500のページ破棄ビット3509を0(副ボリューム132のページ破棄オフ)として、通常の非同期リモートコピー処理を実行する(S3813)。
S3807で副ボリューム132が仮想ボリューム190であると判定した場合(S3807、Yes)、MCU側チャネルコマンド制御部1102は、共有メモリ15にある差分ビットマップ152(1900)内の書き込みを実行した箇所の正ボリューム側差分ビット1902を1に設定する(S3808)。
次いで、MCU側チャネルコマンド制御部1102は、共有メモリ15にある副ボリュームページ破棄情報2900に正ボリューム131でページ破棄を実行するページに対応する副ボリューム132のページ破棄ビット2906を1に設定する(S3809)。MCU側チャネルコマンド制御部1102は、ホスト装置2に0データ書き込み完了を通知する(S3810)。
次いで、MCU側チャネルコマンド制御部1102は、ホスト装置2から再同期化コマンドを受領し(S3811)、RCU側チャネル制御部110にRCU側の再同期化のメッセージを送信する(S3812)。再同期化メッセージを受信したRCU側のチャネルコマンド制御部1102は、RCU側の共有メモリ15に保持されている差分ビットマップ1900(152)をMCU側チャネル制御部110に送信し(S3814)、これを受信したMCU側チャネルコマンド制御部1102は、MCU側、RCU側の両差分ビットマップ1900をマージする(S3815)。MCU側チャネルコマンド制御部1102は、マージした差分ビットマップ1900でMCU側差分ビット1902又はRCU側差分ビット1903が1であるスロットのリストを取得する(S3816)。
さらに、MCU側チャネルコマンド制御部1102は、副ボリュームページ破棄情報2900でページ破棄ビット2906が1であるアドレスのリストを取得する(S3817)。
次いで、MCU側チャネルコマンド制御部1102は、S3816で取得した差分ビット1902、1903が1であるスロットのリストの中で、副ボリュームページ破棄情報2900のページ破棄ビット2906が1であるか判定する(S3818)。ページ破棄ビット2906が1でないと判定された場合(S3818、No)、チャネルコマンド制御部1102は、副ボリューム132のページ破棄をしない(対応するジャーナル制御情報3500のページ破棄ビット3509を0とした)通常のコピー処理を実行する(S3828)。
S3818で副ボリューム132が仮想ボリューム190であると判定した場合(S3818、Yes)、MCU側チャネルコマンド制御部1102は、ページ破棄ビット3509を1(副ボリュームページ破棄オン)としてジャーナル制御情報3500を作成する(S3819)。
次いで、MCU側チャネルコマンド制御部1102は、作成したジャーナル制御情報3500とジャーナルデータ1321を正ジャーナルボリューム133に格納する(S3820)。
RCU側チャネルコマンド制御部1102は、MCU側チャネルコマンド制御部1102に正ジャーナルボリューム133の格納データ読み取りコマンドを発行し(S3821)、このコマンドを受信したMCU側チャネルコマンド制御部1102は、正ジャーナルボリューム133の格納データをRCU側チャネルコマンド制御部1102へ送信する(S3822)。
RCU側のチャネル制御部110にあるチャネルコマンド制御部1102は、MCU側チャネル制御部110から受信した正ジャーナルボリューム133の格納データを副ジャーナルボリューム134に格納する(S3823)。そして、RCU側チャネルコマンド制御部1102は、ジャーナルシーケンス番号3508に従って副ボリューム132にデータをコピー(0データを書き込み)する(S3824)。次いで、RCU側チャネルコマンド制御部1102は、ページ破棄管理テーブル2000のページ破棄ビット2002を1に設定し(S3825)、図21に示したページ破棄処理を起動して処理を終了する(S3826)。
以上説明した構成によれば、ホスト装置2から1回ページ破棄コマンドを与えることで、サスペンド状態にあるジャーナルを利用した非同期リモートコピーペアの正副ボリューム131、132のページ破棄を実行することができる。
実施例4
カスケード構成が適用されている複数ボリューム間でのページ破棄処理
実施例1〜3では、ローカルコピー・同期リモートコピー・ジャーナル利用非同期リモートコピーの各構成において、1の正ボリューム131に対して1の副ボリューム132が対応付けられている場合の、正副ボリューム131、132におけるページ破棄方式を説明した。
このページ破棄方式を利用すれば、カスケード構成(正副ボリューム131、132を有するコピーペアが有り、その副ボリューム132を正ボリューム131としてさらに他のコピーペアが作成されている構成。この副ボリューム132を正ボリューム131としコピーペアを繰り返し作成することで数に制限なくコピーペアを連鎖させることができる。)であっても、3つ以上の正副ボリューム全てでページ破棄処理を実行することができる。
このカスケード構成での全てのボリュームのページ破棄は、全てのコピー方式、および全てのコピーペア状態で実現可能である。以下、同期リモートコピーで正ボリューム131と副ボリューム132を構成し、さらに前記副ボリューム132を正ボリューム131としてジャーナル利用非同期リモートコピーペアを構成する副ボリューム132が組み合わされている構成を例にとってページ破棄処理の概要を説明する。なお、いずれのコピーペアでも、ペア状態はペアである場合を例とする。
まず、同期リモートコピーペアの正側ボリューム131を管理するチャネルコマンド制御部1102でホスト装置2からページ破棄コマンドを受領する。
MCU側チャネルコマンド制御部1102は、同期リモートコピー正ボリューム131の対応する破棄ページに0データを書き込む。MCU側チャネルコマンド制御部1102は、同期リモートコピーのペア状態管理テーブル2700でペア状態と副ボリューム132のコピー先を確認する。
MCU側チャネルコマンド制御部1102は、ページ破棄ビットを1に設定した通信メッセージ2800と0データを同期リモートコピーの正側ボリューム131から副側ボリューム132へ送信する。なお、実施例1〜3の場合と同様に、前記0データの転送は、データ長分全てを転送する、あるいは最小容量単位の0データのみ送信しRCU側でデータ長分繰り返し0データを書き込む、あるいは0データは送信せずRCU側でページ破棄ビットが1ならば0データをデータ長分書き込む構成のうちのいずれであってもよい。
RCU側チャネル制御部110は、同期リモートコピーの副側ボリューム132で該当ページに0データを書き込む。この際、ジャーナル利用非同期リモートコピーの側から見ると、正ボリューム131に書き込みが発生したことになる。このため、同期リモートコピーのRCU側チャネル制御部110でページ破棄情報を含めたジャーナル制御情報3500を作成し、これと同期リモートコピーで書き込まれた0データをジャーナル利用非同期リモートコピーの副ボリューム132側に送信することで、ジャーナル利用非同期リモートコピーの副ボリューム132側にページ破棄の情報を伝達することができる。
以上の構成によれば、1回のホスト装置2からのページ破棄コマンドにより、同期リモートコピーの正ボリューム131、同期リモートコピーの副ボリューム132(ジャーナル利用非同期リモートコピー正ボリューム131)、及びジャーナル利用非同期リモートコピーの副ボリューム132の3つのボリュームで不要ページを破棄することができ、ストレージ装置10の記憶資源をより有効に利用することができる。
実施例5
マルチターゲット構成
コピーペアの構成として、1つの正ボリューム131に対して複数の副ボリューム132が対応付けられている構成も考えられる。このような構成(マルチターゲット構成)では、実施例1〜3に示した、1つの正ボリューム131と1つの副ボリューム132からなるコピーペアでのページ破棄処理を、全ての副ボリューム132に対して実行することで、1つの正ボリューム131を管理するチャネル制御部110に対してページ破棄コマンドを発行するだけで、対応する複数の副ボリューム132に格納されている対応ページをも破棄することができる。
実施例6
コピーペアの副ボリューム132のみが仮想ボリュームである構成
正ボリューム131が実LDEVに直接割り当てられている実ボリュームであり、副ボリューム132が仮想ボリュームである構成の場合には、以下の処理により、副ボリューム132のページ破棄を実行することができる。
まず、ホスト装置2からページ破棄コマンドを正ボリューム131側のチャネル制御部110が受領すると、チャネル制御部110は、ペア状態管理テーブル2200、2700、3600を用いて、対応する副ボリューム132が仮想ボリューム190であるか判定する。
副ボリューム132が仮想ボリューム190であると判定した場合、正ボリューム131側チャネル制御部110は、そのアドレスを取得し、実施例1〜3で示した正副ボリューム131、132両方のページ破棄処理の内、正ボリューム131のページ破棄処理だけをスキップし、正ボリューム131に対応する副ボリューム132の該当ページを破棄する。
以上詳細に説明した本発明の実施形態によれば、コピーペアを構成している、仮想ボリュームからなる正ボリューム131又は副ボリューム132を備えるストレージ装置10において、ホスト装置2から正ボリューム131を管理しているストレージ装置10に、当該正ボリューム131に割り当てられている実記憶領域の破棄処理を要求することで、対応する副ボリューム132のデータが格納されている実記憶領域も破棄することができ、ストレージ装置10に対する処理負荷を抑制しつつ、記憶資源の有効活用を図ることが可能となる。
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。

Claims (10)

  1. 外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、
    物理記憶領域を提供する記憶デバイスと、
    前記記憶デバイスから複数の単位物理記憶領域を生成し、
    各前記論理ボリュームを、前記外部装置からのデータI/O要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、
    前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、
    前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置と、
    を備えているストレージ装置。
  2. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期状態にあると判定した場合、前記副ボリュームへの前記単位物理領域破棄命令を送信するとともに、前記正ボリュームに格納されているデータを前記副ボリュームに送信し、
    前記記憶制御装置は、前記副ボリュームが前記仮想ボリュームではなく、前記記憶デバイスから作成した固定的な物理記憶領域が対応付けられていると判定した場合、前記単位物理記憶領域破棄命令を前記副ボリュームに送信せず、
    前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期コピーを実行しない分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記副ボリュームへの前記単位物理領域破棄命令を送信するための処理を開始する、ストレージ装置。
  3. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期状態にあると判定した場合、前記副ボリュームへの前記単位物理領域破棄命令を送信するとともに、前記正ボリュームに格納されているデータを前記副ボリュームに送信する、ストレージ装置。
  4. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記副ボリュームが前記仮想ボリュームではなく、前記記憶デバイスから作成した固定的な物理記憶領域が対応付けられていると判定した場合、前記単位物理記憶領域破棄命令を前記副ボリュームに送信しない、ストレージ装置。
  5. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期コピーを実行しない分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記副ボリュームへの前記単位物理領域破棄命令を送信するための処理を開始する、ストレージ装置。
  6. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
    前記副ボリュームが前記他のストレージ装置に生成、保持されており、
    前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態にあると判定した場合、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する、ストレージ装置。
  7. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
    前記副ボリュームが前記他のストレージ装置に生成、保持されており、
    前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが分割状態にあるか判定し、分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信するための処理を開始する、ストレージ装置。
  8. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
    前記副ボリュームが前記他のストレージ装置に生成、保持されており、
    前記記憶制御装置は、前記正ボリュームにデータ書き込み処理が実行された場合に、当該書き込みデータとともに書き込み順序を示す順序情報を格納して保持するジャーナルボリュームを生成し、運用しており、
    前記他の記憶制御装置は、前記ジャーナルボリュームを正ジャーナルボリュームとしてこれとコピーペアを構成する副ジャーナルボリュームを生成し、運用しており、
    前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態にあると判定した場合、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記正ジャーナルボリュームから前記副ジャーナルボリュームへ送信する格納データ及び前記順序情報に、前記正ボリュームの前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を付加して送信する、ストレージ装置。
  9. 請求項1に記載のストレージ装置であって、
    前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
    前記副ボリュームが前記他のストレージ装置に生成、保持されており、
    前記記憶制御装置は、前記正ボリュームにデータ書き込み処理が実行された場合に、当該書き込みデータとともに書き込み順序を示す順序情報を格納して保持するジャーナルボリュームを生成し、運用しており、
    前記他の記憶制御装置は、前記ジャーナルボリュームを正ジャーナルボリュームとしてこれとコピーペアを構成する副ジャーナルボリュームを生成し、運用しており、
    前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態でなく分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記正ジャーナルボリュームから前記副ジャーナルボリュームへ送信する格納データ及び前記順序情報に、前記正ボリュームの前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を付加して送信するための処理を開始する、ストレージ装置。
  10. 外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置の制御方法であって、
    前記ストレージ装置は、物理記憶領域を提供する記憶デバイスと、当該記憶デバイスを管理する記憶制御装置とを備え、当該記憶制御装置が、
    前記記憶デバイスから複数の単位物理記憶領域を生成し、
    各前記論理ボリュームを、前記外部装置からのデータI/O要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、
    前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、
    前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する、
    ストレージ装置の制御方法。
JP2012510517A 2010-04-15 2010-04-15 ストレージ装置及びストレージ装置の制御方法 Pending JPWO2011129006A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/056776 WO2011129006A1 (ja) 2010-04-15 2010-04-15 ストレージ装置及びストレージ装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2011129006A1 true JPWO2011129006A1 (ja) 2013-07-11

Family

ID=44789088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012510517A Pending JPWO2011129006A1 (ja) 2010-04-15 2010-04-15 ストレージ装置及びストレージ装置の制御方法

Country Status (3)

Country Link
US (1) US8713266B2 (ja)
JP (1) JPWO2011129006A1 (ja)
WO (1) WO2011129006A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009438B2 (en) * 2011-06-01 2015-04-14 International Business Machines Corporation Space reclamation in multi-layered and thin provisioned storage systems
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US9244833B2 (en) * 2012-05-30 2016-01-26 Silicon Motion, Inc. Data-storage device and flash memory control method
US9213497B2 (en) * 2012-12-13 2015-12-15 Hitachi, Ltd. Storage apparatus and storage apparatus migration method
US10248320B2 (en) * 2016-10-28 2019-04-02 International Business Machines Corporation Workload-aware thin-provisioning storage-allocation system
US10884884B2 (en) * 2017-03-23 2021-01-05 International Business Machines Corporation Reversal of the direction of replication in a remote copy environment by tracking changes associated with a plurality of point in time copies
US10810086B2 (en) * 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US11194666B2 (en) * 2019-04-26 2021-12-07 EMC IP Holding Company LLC Time addressable storage in a content addressable storage system
US12086409B2 (en) 2022-08-31 2024-09-10 Pure Storage, Inc. Optimizing data deletion in a storage system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
JP2007517290A (ja) * 2003-12-19 2007-06-28 ネットワーク・アプライアンス・インコーポレイテッド 非常に短い更新インターバルで同期データ複製が可能なシステム及び方法
JP2007310861A (ja) * 2006-04-18 2007-11-29 Hitachi Ltd ストレージシステム及びその制御方法
JP2009266120A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd 情報システム及びi/o処理方法
JP2010015301A (ja) * 2008-07-02 2010-01-21 Hitachi Ltd ストレージシステム及びリモートコピー復旧方法
JP2010055557A (ja) * 2008-08-29 2010-03-11 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
JP5042644B2 (ja) * 2007-01-24 2012-10-03 株式会社日立製作所 リモートコピーシステム
JP2009134397A (ja) * 2007-11-29 2009-06-18 Hitachi Ltd 仮想ボリュームに割り当て済みの全ての実記憶領域を解放するか否かを制御する計算機及び方法
JP5159353B2 (ja) * 2008-02-08 2013-03-06 株式会社日立製作所 記憶システム、解除方法及び副側のストレージ装置
JP4762289B2 (ja) * 2008-10-01 2011-08-31 株式会社日立製作所 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
JP2007517290A (ja) * 2003-12-19 2007-06-28 ネットワーク・アプライアンス・インコーポレイテッド 非常に短い更新インターバルで同期データ複製が可能なシステム及び方法
JP2007310861A (ja) * 2006-04-18 2007-11-29 Hitachi Ltd ストレージシステム及びその制御方法
JP2009266120A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd 情報システム及びi/o処理方法
JP2010015301A (ja) * 2008-07-02 2010-01-21 Hitachi Ltd ストレージシステム及びリモートコピー復旧方法
JP2010055557A (ja) * 2008-08-29 2010-03-11 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法

Also Published As

Publication number Publication date
WO2011129006A1 (ja) 2011-10-20
US8713266B2 (en) 2014-04-29
US20110258406A1 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
WO2011129006A1 (ja) ストレージ装置及びストレージ装置の制御方法
US8090923B2 (en) Storage system and control method for the same
US8171217B2 (en) Storage apparatus and data storage method using the same
JP4136501B2 (ja) リモートコピー用初期コピー処理の実行方法
US6754785B2 (en) Switched multi-channel network interfaces and real-time streaming backup
JP4806556B2 (ja) ストレージシステム及び構成変更方法
JP4648751B2 (ja) 記憶制御システム及び記憶制御方法
JP5037952B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP4699808B2 (ja) ストレージシステム及び構成変更方法
US20050216665A1 (en) Storage system and method for controlling block rearrangement
US20080126437A1 (en) File sharing system, file sharing device and file sharing volume migration method
JP2007066192A (ja) ストレージシステム及びその制御方法並びにコンピュータプログラム
US9594421B2 (en) Power management in a multi-device storage array
JP2006139552A (ja) ストレージ装置及びストレージ装置のデータライフサイクル管理方法
JP4574315B2 (ja) ストレージ装置およびストレージ装置における構成管理方法
JP2004185544A (ja) 記憶デバイス制御装置システムの制御方法、及び記憶デバイス制御装置システム
WO2014016872A1 (en) Computer system, data management apparatus, and data management method
JP2005190057A (ja) ディスクアレイ装置及びディスクアレイ装置のリモートコピー制御方法
TW201037510A (en) System to reduce drive overhead using a mirrored cache volume in a storage array
JP2007018539A (ja) ディスクアレイ制御装置およびディスクアレイ制御ユニット
JP7261756B2 (ja) ストレージシステム、処理方法
KR100347527B1 (ko) 단일 광채널 중재루프를 이용한 래이드 시스템의 구조
JP2005346426A (ja) データ共有ディスク装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140218