JP2015501959A - ストレージシステムおよび記憶制御方法 - Google Patents

ストレージシステムおよび記憶制御方法 Download PDF

Info

Publication number
JP2015501959A
JP2015501959A JP2014528731A JP2014528731A JP2015501959A JP 2015501959 A JP2015501959 A JP 2015501959A JP 2014528731 A JP2014528731 A JP 2014528731A JP 2014528731 A JP2014528731 A JP 2014528731A JP 2015501959 A JP2015501959 A JP 2015501959A
Authority
JP
Japan
Prior art keywords
area
data
write
pvol
svol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014528731A
Other languages
English (en)
Other versions
JP5829753B2 (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
Publication of JP2015501959A publication Critical patent/JP2015501959A/ja
Application granted granted Critical
Publication of JP5829753B2 publication Critical patent/JP5829753B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

ストレージシステムは、プール及び正ボリュームの基になる複数の記憶デバイスと、複数の記憶デバイス及びホスト計算機に接続されキャッシュ領域を有するコントローラとを有する。(A)コントローラは、正ボリュームのスナップショットである副ボリュームを指定したライト要求を前記ホスト計算機から受け付けた場合、(a1)ライト要求に従うデータであるライトデータを前記キャッシュ領域の第1のキャッシュサブ領域に格納し、(a2)前記(a1)の後、そのライト要求に対する応答を前記ホスト計算機に送信する。(B)コントローラは、(b1)ライトデータのライト先の仮想領域にプール内のページが未割り当ての場合、その仮想領域にページを割り当て、(b2)割り当てたページに、第1のキャッシュサブ領域内のライトデータを格納する。【選択図】図23

Description

本発明は、論理ボリュームのスナップショットを管理するストレージシステムの記憶制御に関する。
従来、ストレージシステムが有する論理ボリューム(以下、単に「ボリューム」と言うことがある)のデータをバックアップすることが行われている。バックアップとしては、例えば、スナップショットがある。
スナップショット管理の第1の方法によれば、ストレージシステムは、退避元のボリューム(正ボリューム)にライトアクセスが発生した際には、正ボリュームのライト先の領域内のデータを退避先のボリューム(副ボリューム)に退避し、その後、正ボリュームにライト対象のデータを書込み、ライトアクセス元にライト完了の応答を返す。この方法によれば、ライトレスポンスが悪い、すなわち、ライトアクセスが発生してからライトアクセス元に応答が返るまでに長時間を要するという問題がある。
これに対して、スナップショット管理の第2の方法、具体的には、コピーアフターライト(CAW)技術が知られている(例えば、特許文献1参照)。この技術によれば、ストレージシステムは、ライトアクセス発生した際に、ライト対象のデータをストレージシステムのキャッシュメモリに書き込んでライトアクセス元にライト完了の応答を返す。その後で(つまり、ライトアクセスと非同期で)、ストレージシステムは、正ボリュームのライト先領域内のデータを副ボリュームに退避し、キャッシュメモリ内のライト対象データを正ボリュームに書き込む。CAW技術によれば、上記第1の方法よりもライトレスポンスが速い。
米国特許出願公開第2006/0143412号明細書
副ボリュームが、正ボリュームのスナップショットであり、具体的には、仮想的な論理ボリュームである。副ボリュームに退避されたデータ(正ボリュームとの差分に相当するデータである差分データ)は、実際には、1以上の記憶デバイスに基づく記憶領域であって正ボリュームとは異なる領域(以下、プール)に格納される。副ボリュームから読み出されるデータは、実際には、正ボリューム或いはプールに格納されている。
ところで、スナップショット(副ボリューム)が取得される目的は、正ボリュームのバックアップに限られない。例えば、その目的としては、例えば、アクセス性能のテスト、或いは、OS(Operating System)のイメージの配布がある。スナップショット取得の目的によっては、スナップショットに対するアクセスレスポンスが高速であることが望ましい。
しかし、特許文献1には、スナップショットに対するアクセスレスポンスを高速化するための技術は開示されていない。
本発明は、上記課題に鑑みなされたものであり、その目的は、スナップショットのアクセスレスポンスを向上することにある。
ストレージシステムは、ホスト計算機と通信可能に接続され、プール及び正ボリュームの基になる複数の記憶デバイスと、複数の記憶デバイス及びホスト計算機に接続されキャッシュ領域を有するコントローラとを有する。前記プールは、複数のページで構成されており、前記コントローラは、前記正ボリュームのスナップショットである副ボリュームを生成する。前記正ボリュームは、前記ホスト計算機による処理に利用されるデータが格納される複数の論理領域で構成された論理ボリュームであり、前記副ボリュームは、前記正ボリュームのスナップショットイメージを保持するための、複数の仮想領域で構成された仮想的な論理ボリュームである。(A)前記コントローラは、前記副ボリュームを指定したライト要求を前記ホスト計算機から受け付けた場合、(a1)前記ライト要求に従うデータであるライトデータを前記キャッシュ領域の第1のキャッシュサブ領域に格納し、(a2)前記(a1)の後、そのライト要求に対する応答を前記ホスト計算機に送信する。(B)前記コントローラは、(b1)前記ライトデータのライト先の仮想領域に前記プール内のページが未割り当ての場合、その仮想領域にページを割り当て、(b2)前記(a2)および(b1)の後に、割り当てたページに、前記第1のキャッシュサブ領域内のライトデータを格納する。
図1は、実施形態に係る計算機システムの全体構成図である。 図2は、実施形態に係る正ボリュームと副ボリュームとの関係の一例を説明する図である。 図3は、実施形態に係るコントローラの構成図である。 図4は、実施形態に係るペア情報管理テーブルを説明する図である。 図5は、実施形態に係るPVOL管理テーブルを説明する図である。 図6は、実施形態に係るSVOL管理テーブルを説明する図である。 図7は、実施形態に係るストレージ装置におけるPVOLライト処理の概要を説明する図である。 図8は、実施形態に係るPVOLライト処理の第1のフローチャートである。 図9は、実施形態に係るPVOLライト処理の第2のフローチャートである。 図10は、実施形態に係るPVOLライト処理の第3のフローチャートである。 図11は、実施形態に係るPVOLライト処理の第4のフローチャートである。 図12は、実施形態に係るPVOLライト処理の第5のフローチャートである。 図13は、実施形態に係るPVOLライト処理の第6のフローチャートである。 図14は、実施形態に係るPVOLライト処理の第7のフローチャートである。 図15は、実施形態に係るPVOLライト処理の第8のフローチャートである。 図16は、実施形態に係るPVOLライト処理の第9のフローチャートである。 図17は、実施形態に係るPVOLライト処理の第10のフローチャートである。 図18は、実施形態に係るPVOLリード処理の第1のフローチャートである。 図19は、実施形態に係るPVOLリード処理の第2のフローチャートである。 図20は、実施形態に係るPVOLリード処理の第3のフローチャートである。 図21は、実施形態に係るPVOLリード処理の第4のフローチャートである。 図22は、実施形態に係るPVOLリード処理の第5のフローチャートである。 図23は、実施形態に係るストレージ装置におけるSVOLライト処理の概要を説明する図である。 図24は、実施形態に係るSVOLライト処理の第1のフローチャートである。 図25は、実施形態に係るSVOLライト処理の第2のフローチャートである。 図26は、実施形態に係るSVOLリード処理のフローチャートである。 図27は、実施形態に係るバックエンド処理のフローチャートである。 図28は、実施形態に係るSVOL退避コピー処理のフローチャートである。 図29は、実施形態に係るSnapshot取得処理のフローチャートである。 図30は、実施形態に係るSnapshot削除処理のフローチャートである。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせのすべてが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、種々の対象(例えば、ボリューム、チャンク、ページ等)の識別情報の種類として、番号が採用されるが、他種の識別情報が採用されても良い。
また、以下の説明において、後述するコントローラが行う処理の少なくとも一部は、プロセッサ(例えばCPU(Central Processing Unit))がコンピュータプログラムを実行することによって行われる。プロセッサは、CPUそれ自体であっても良いし、CPUが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
以下、実施形態を詳細に説明する。
図1は、実施形態に係る計算機システムの全体構成図である。
計算機システムは、ストレージシステムの一例としてのストレージ装置1と、ホスト計算機(以下、単に「ホスト」ということもある)2と、管理端末3とを有する。ストレージ装置1、ホスト2、管理端末3の数は、1以上とすることができる。ストレージ装置1と、ホスト2とは、通信ネットワーク(例えば、SAN(Storage Area Network))5を介して相互に接続されている。また、ストレージ装置1と、管理端末3は、通信ネットワーク(例えば、LAN(Local Area Network))6を介して相互に接続されている。ストレージ装置1は、ホスト2で利用されるデータを記憶する。ホスト2は、各種処理を実行し、ストレージ装置1からデータを読み出したり、ストレージ装置1へデータを書き込んだりする。管理端末3は、図示しないCPUが管理プログラム31を実行することにより各種処理を行う。管理端末3は、表示装置を有し、その表示装置にストレージ装置1の管理用の画面を表示することができる。管理端末3は、管理操作リクエストをユーザー(例えば、管理端末3のオペレーター)から受け付け、管理操作リクエストをストレージ装置1に対して送信する。
ストレージ装置1は、コントローラ11と、複数のディスク装置12とを有する。各コントローラ11は、図示しない内部バスを介して各ディスク装置12に接続されている。また、本実施形態では、複数のディスク装置12に基づく記憶領域(以下、プール)14が形成されている。
ディスク装置12は、ディスク型の記憶メディアのドライブであり、ホスト2からのライト要求に従うデータを記憶する。ストレージ装置1においては、ディスク装置12に加えて、又は、ディスク装置12に代えて、他種の記憶メディアを有する記憶デバイス(例えばフラッシュメモリドライブ)を備えても良い。
図2は、実施形態に係る正ボリュームと副ボリュームとの関係の一例を説明する図である。
正ボリューム(PVOL)301は、ホスト2が処理に利用するデータが書き込まれるボリュームである。PVOL301は、複数のディスク装置12で構成されたRAIDグループ(所定のRAID(Redundant Array of Independent (or Inexpensive) Disks)レベルでデータを記憶するディスク装置群)に基づく実体的な論理ボリュームであっても良いし、RAIDグループに基づかない仮想的な論理ボリューム(例えば、シンプロビジョニングに従うボリューム、或いは、外部のストレージ装置の記憶資源(例えば論理ボリューム)がマッピングされたボリューム)であっても良い。一方、各副ボリューム(SVOL)15は、PVOL301のスナップショット、すなわち、PVOL301に対するスナップショット取得時点におけるスナップショットイメージ(PVOL301のイメージ)を記憶するボリュームである。SVOL15は、仮想的な論理ボリュームであり、SVOL15が記憶するデータは、実際には、PVOL301又はプール14に記憶される。本実施形態においては、SVOL15に、世代番号(世代#)が関連付けられる。世代#は、スナップショットの取得時点に相当する。つまり、SVOL15に関連付けられている世代#は、そのSVOL15(スナップショット)の世代を意味する。世代#は、古い世代から順に、世代#1、世代#2、世代#3・・・となっている(つまり、旧い世代ほど世代番号が若い)。
世代#2と世代#3の間において、PVOL301内の領域R9に更新(データの書き込み)が発生した場合には、PVOL301内の領域R9のデータはプール14内の領域R6に退避される。このため、世代#3のSVOL15内の領域R10は、PVOL301内の領域R9を参照するように設定され、世代#3のSVOL15内の領域R10に対応する、世代#1のSVOL15内の領域R7、及び、世代#2のSVOL15内の領域R8は、プール14内の領域R6を参照するように設定される。
また、世代#1のSVOL15内の領域R2、及び、世代#2のSVOL15内の領域R3は、PVOL301内の領域R1を参照するように設定されている。このとき、世代#1のSVOL15内の領域R2、及び、世代#2のSVOL15内の領域R3に対応する、世代#3のSVOL内の領域R4に対して、更新(データの書き込み)が発生した場合には、世代#3のSVOL15内の領域R4は、プール14内の領域R5を参照するように設定される。またこの場合、世代#3と世代#4の間にPVOL301内の領域R1に対して更新が行われず、かつ、世代#3内のSVOL15内の領域R4に対応する世代#4の領域(図示なし)に対して更新が行われない場合は、その世代#4の領域は、PVOL301内の領域R1を参照するように設定される。
図3は、実施形態に係るコントローラの構成図である。
コントローラ11は、通信インタフェースデバイスと、記憶デバイスと、それらに接続された制御デバイスとを有する。通信インタフェースデバイスは、例えば、上位インターフェース(上位I/F)113と、下位インターフェース(下位I/F)114と、インターフェース(I/F)115とである。記憶デバイスは、例えば、メモリ111である。制御デバイスは、例えば、CPU112である。コントローラ11は、更に、ブリッジ116を有する。ブリッジ116は、メモリ111と、CPU112と、上位I/F113と、下位I/F114と、I/F115とを相互に通信可能に接続する。
メモリ111は、1以上の同種或いは異種のメモリで構成される。メモリ111は、制御に必要なデータ及びプログラムを記憶する。具体的には、例えば、メモリ111は、管理プログラム117と、コピー処理プログラム119と、I/O処理プログラム120とを記憶する。管理プログラム117は、ペア情報管理テーブル1171と、PVOL管理テーブル1172と、SVOL管理テーブル1173とを管理し、スナップショット及び/又はプール14の管理処理を実行する。コピー処理プログラム119は、データのコピー処理を実行する。I/O処理プログラム120は、他のプログラムを適宜呼び出して、データの入出力処理を実行する。
また、メモリ111は、キャッシュ領域121を有する。キャッシュ領域121は、例えば、SRAMやEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性メモリ、あるいは、バッテリーバックアップされたDRAM等で構成され、ストレージ装置1がシャットダウン状態であっても揮発させないようにするデータを格納する。
CPU112は、メモリ111に格納されたプログラムを実行することにより、各部を制御して各種処理を実行する。上位I/F113は、ホスト2との通信を仲介する。上位I/F113は、例えば、Fibre Channel(FC),iSCSI等であってもよい。下位I/F114は、ディスク装置12との通信を仲介する。下位I/F114は、例えば、FC、SAS、SATA等のディスクI/Fである。I/F115は、管理端末3との通信を仲介する。
図4は、実施形態に係るペア情報管理テーブルを説明する図である。なお、以下の説明では、適宜、論理ボリュームを「VOL」と記載する。
ペア情報管理テーブル1171は、PVOL番号(PVOL#)と、最新世代番号(最新世代#)と、ペアIDと、SVOL番号(SVOL#)と、世代番号(世代#)と、ステータスとを対応付けたレコードを管理する。
PVOL#は、コピー元となるボリューム(PVOL)をストレージ装置1内で一意に特定する番号である。最新世代#は、対応するPVOLにおける最新のスナップショットの世代番号である。ペアIDは、PVOLとSVOLとのペア(コピーペア)を一意に特定する番号である。SVOL#は、コピー先となるボリューム(SVOL)をストレージ装置1内で一意に特定する番号である。世代#は、対応するSVOLが格納するスナップショットの世代番号である。ステータスは、対応するコピーペアの状態である。ステータスとしては、スナップショットを保持している状態を示すSnapshot保持と、Snapshotを取得していない状態を示すSnapshot未取得と、対応する世代のPVOLのリストアを実行している状態を示すリストア中がある。PVOLのリストアでは、そのPVOLの世代に対応するSVOL内のデータが、そのSVOL以外のVOLであるリストア先VOL(例えばPVOL)にコピーされる。これにより、リストア先VOLは、SVOLの複製、言い換えれば、或る時点のPVOLとなる。
例えば、同図における一番上のレコードは、VOL#0のVOLがPVOLであり、その最新世代番号は、3であり、VOL#6のSVOLと、コピーペアが構成され、そのペアIDが0であり、このSVOLは、世代番号が1であり、スナップショットを保持していることを示している。
図5は、実施形態に係るPVOL管理テーブルを説明する図である。
PVOL管理テーブル1172は、PVOL番号(PVOL#)と、領域IDと、退避状態と、リストア状態と、CAW属性と、世代番号(世代#)とを対応付けたレコードを管理する。
PVOL#は、コピー元となるVOL(PVOL)をストレージ装置1内で一意に特定する番号である。領域IDは、領域特定情報の一例であり、VOLにおいて区分されている領域(スロット)を特定する番号である。退避状態は、PVOLにおける領域に書き込まれるデータがプール14に退避されているか否かを示す情報である。退避状態としては、例えば、データを退避していることを示す「退避済み」と、データを退避していないことを示す「未退避」とがある。例えば、PVOLにおける領域について、少なくとも1のSVOLが参照している場合には、「未退避」が設定されるようにしてもよい。リストア状態は、PVOLに対するリストアが実行された際のリストアの状態を示す情報である。リストア状態としては、PVOLのリストアが実行されていない場合には、「−」が設定され、PVOLのリストアが実行されている場合であって、対応する領域のリストアが済んでいる場合には「済み」が設定され、対応する領域のリストアが済んでいない場合には「未」が設定される。CAW属性は、当該領域についてライトされた際に、対応するPVOLの領域からデータを退避させるコピーを実行する必要がある場合には、「ON」が設定され、対応するPVOLの領域からデータを退避させる必要がない場合には、「OFF」が設定される。世代#は、該当する領域に書き込むべきデータ(キャッシュ領域121内のデータ(データ要素))に対応するスナップショットの世代番号を識別するための情報である。本実施形態では、最新のスナップショット取得時点以降に書き込まれたデータ要素の世代#としては、書き込まれた時点のスナップショットの最新世代#+1が設定される。ここで、この世代番号が、PVOLに対するスナップショット取得時点との時間的関係を示す時間関係情報の一例である。なお、世代#に代えて、スナップショット取得時間が管理されてもよく、要は、データ要素について、各スナップショットの取得時点との一致又は前後等の時間関係を把握できる情報であればよい。
例えば、同図における2番目のレコードは、VOL#が0のVOL内の領域#が1の領域においては、データ要素が未退避であり、リストアは実行されておらず、当該領域のキャッシュに書き込まれたデータがディスクに書き込まれる前に、データの退避が必要であることを示し、当該領域のデータは、世代#は、2であることを示している。
図6は、実施形態に係るSVOL管理テーブルを説明する図である。
SVOL管理テーブル1173は、VOL番号(VOL#)と、領域IDと、退避状態と、SVOL更新属性と、更新位置ビットマップ(BM)と、ページIDとを対応付けたレコードを管理する。
VOL#は、SVOLをストレージ装置1内で一意に特定する番号である。領域IDは、VOLにおいて区分されている領域を特定する番号である。退避状態は、SVOLにおける領域に書き込まれるデータがプール14に退避されているか否かを示す情報である。退避状態としては、例えば、データを退避している(すなわち、対象となる領域がプール内の領域を参照している)ことを示す「退避済み」と、データを退避していない(すなわち、対象となる領域がPVOL内の領域を参照している)ことを示す「未退避」とがある。加えて、退避済みとなったデータが格納されたプール14内の領域を2つ以上のSVOLが参照している場合には、共有状態を示す「共有」が設定される。SVOL更新属性は、対象のSVOL領域(SVOL内の領域)が参照するPVOL領域(PVOL内の領域)からデータを退避させる必要があるか否かを意味する。SVOL更新属性としては、PVOL領域からデータを退避させる必要がある場合には、「ON」が設定され、その必要がない場合には、「OFF」が設定される。更新位置BMは、対象のSVOL領域(スロット)におけるデータ更新位置を表す。例えば、スロット(例えば256KB)は、複数のサブブロック(例えば512byte)に分割されていて、更新位置BMは、複数のサブブロックにそれぞれ対応した複数のビットで構成されている。サブブロック内のデータが更新された場合、ビットは例えば「1」とされ、サブブロック内のデータが未更新の場合、ビットは例えば「0」である。具体的には、例えば、図7の上から2番目のレコードは、VOL#0のSVOLの領域#1のスロットについて、更新位置BMは「00111000・・・」である。これは、スロットの3〜5番目のサブブロックのデータが更新されており、スロットの1〜2及び6〜8番目のサブブロックのデータは更新されていないことを意味する。ページIDは、対象の領域のデータが格納されるプール14内の領域(ページ)を特定する番号である。ページは、対象の領域(SVOL内の領域)に参照されるページである。例えば、同図の一番上のレコードは、VOL#0のVOLの領域#0の領域について、割り当てられたプール内のページIDが10であることを示している。
次に、ストレージ装置1で行われる動作を説明する。
図7は、実施形態に係るストレージ装置におけるPVOLライト処理の概要を説明する図である。
コントローラ11は、PVOL301を指定したライト(WR)要求(ライト要求)をホスト2から受領した時に、CAW(Copy after write)実行の可否を判断する(図中(1))。コントローラ11は、PVOL301内の書き込み先の領域(スロット)からデータを未退避であって、キャッシュ領域121に確保されたキャッシュサブ領域(以下、「確保領域」と言うことがある)内がホストダーティでない場合には、PVOL301内のライト先領域について、CAW属性をONにし、世代#として、最新世代番号(最新世代#)+1(つまり最新世代番号に1を加算した値)を登録する(図中(2))。ここで、「確保領域がホストダーティでない」とは、確保領域内に保持されたデータが、PVOL301に格納されていないデータ(ダーティデータ)でないことをいう。また、CAW属性のONは、ディスクへ書き込む前にデータの退避が必要であることを意味し、CAW属性のOFFは、ディスクへ書き込む前にデータの退避が必要ではないことを意味する。スロットとは、キャッシュ領域121またはディスク領域における管理単位である所定の容量単位の領域である。スロットサイズは、例えば、ホスト2からのライト要求時のライトデータのサイズよりも大きくてもよい。なお、本実施形態では、PVOLがスロットと同じサイズの領域に分割して管理されており、PVOLにおける分割された領域もスロットと言うこととする。
次いで、コントローラ11は、ライト要求に従うライト対象のデータ(WRデータ:ライトデータ)をホスト2から受けとって、確保領域におけるライト面(W面)(ボリュームに書き込むデータを記憶する領域)にライトデータを書き込む。次いで、コントローラ11は、ホスト2にライト要求に対するレスポンスを送信する(図中(4))。
これとは、非同期で(バックエンドで)、コントローラ11は、PVOL301内のライト先領域についてのCAW属性を検出する(図中(5))。コントローラ11は、CAW属性がONの場合には、確保領域におけるリード面(R面)(ボリュームから読み出されたデータを記憶する領域)に、その確保領域におけるW面が記憶するデータのライト先領域(PVOL内の領域(スロット))の更新前のデータがキャッシュされているかを判定する。コントローラ11は、キャッシュミスの場合には、ステージング、すなわち、PVOL301内のライト先領域からデータを確保領域内のR面に読み出す(図中(6))。次いで、コントローラ11は、ライト先領域(PVOL301内の領域)に対応する、SVOL15内の領域に、プール14から領域(ページ)を割り当て(図中(7))、当該ページに、R面に読み出したデータを退避する(以下、このデータを退避データという)(図中(8))。ここで、ページとは、プール14において割り当てを行う単位領域をいう。ページのサイズは、例えば、スロットと同じサイズでよい。なお、この処理の後、コントローラ11は、ライトデータをライト要求に従うPVOL301内の領域に格納する。このとき、例えば、PVOL301の基となるRAIDグループ(例えば、RAIDレベルが5の場合)において、退避データを含むデータ(例えば、PVOL301内におけるパリティデータを生成するために必要な連続する複数のスロット(以下、パリティ列という)に格納されたデータ)によって生成されたパリティデータ(以下、旧パリティという)を格納している場合には、旧パリティ、退避データ及びライトデータによりリードモディファイライトを行うことによって(これらについてXOR演算を行うことによって)新たなパリティデータを生成しPVOL301内に反映しても良い。
図8は、実施形態に係るPVOLライト処理の第1のフローチャートである。
図8に示すように、PVOLライト処理においては、ストレージ装置1のコントローラ11は、ホスト2からライト要求を受領すると(ステップS1)、ペア情報管理テーブル1171におけるライト要求のライト対象のPVOL#のステータスを参照することにより、ライト要求に対応するPVOLがリストア中であるか否かを判定する(ステップS2)。ここで、ライト要求には、例えば、ライトデータを書き込むPVOLを示すLUN(論理ユニット番号)と、PVOLにおけるライト先領域に属するLBA(論理ブロックアドレス)とが含まれており、LUN及びLBAにより、PVOLのVOL#及びライト先領域の領域IDとを特定することができる。
ステップ2の判定の結果、リストア中である場合(ステップS2でYes)には、コントローラ11は、ポイントP(図13参照)に処理を進める。一方、リストア中でない場合(ステップS2でNo)、又は、ポイントRから進んできた場合には、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト要求のライト対象の領域を含むスロットについてステータスが「Snapshot保持あり」であるか否かを判定する(ステップS3)。
この結果、「スナップショット保持あり」でない場合(ステップS3でNo)には、コントローラ11は、ポイントN(図10参照)に処理を進める。一方、「スナップショット保持あり」である場合(ステップS3でYes)には、コントローラ11は、PVOL管理テーブル1172を参照し、当該スロットが未退避であるか否か、すなわち、当該スロットに書き込むべきキャッシュ領域121のデータ要素が未退避であるか否かを判定する(ステップS4)。この結果、当該スロットが未退避でない場合(ステップS4でNo)には、コントローラ11は、ポイントN(図10参照)に処理を進める。一方、当該スロットが未退避である場合(ステップS4でYes)には、PVOL管理テーブル1172を参照し、当該スロットのCAW属性がONであるか否かを判定する(ステップS5)。
この結果、CAW属性がONではない場合(ステップS5でNo)には、コントローラ11は、キャッシュ領域121のキャッシュ状態がホストダーティであるか、すなわち、当該スロットに対応するキャッシュ領域121のW面に、データがあるか否かを判定し(ステップS6)、ホストダーティでない場合(ステップS6でNo)には、ポイントA(図9参照)に処理を進める一方、ホストダーティである場合(ステップS6でYes)には、ポイントB(図11参照)に処理を進める。
一方、ステップS5の結果、CAW属性がONの場合(ステップS5でYes)には、コントローラ11は、当該領域の世代#が最新世代#より大きいか否かを判定する(ステップS7)。この結果、当該領域の世代#が最新世代#より大きい場合(ステップS7でYes)には、当該領域に書き込むべきキャッシュ領域121のデータは、最新のスナップショットを取得した時点よりも後に更新されたデータであって、スナップショットを構成するデータ(スナップショット構成要素)ではないことを意味しているので、コントローラ11は、ポイントN(図10参照)に処理を進める。一方、当該領域の世代#が最新世代#以下の場合(ステップS7でNo)には、当該領域に書き込むべきキャッシュ領域121のデータが書き込まれた時点よりも後で、次のスナップショットの取得がされていることを示し、当該キャッシュ領域121のデータは、スナップショット構成要素であることを意味しているので、ポイントC(図12参照)に処理を進める。
図9は、実施形態に係るPVOLライト処理の第2のフローチャートである。
ポイントAに処理を進めると、図9に示すように、コントローラ11は、PVOL管理テーブル1172のライト要求に対応する領域のCAW属性をONに設定し(ステップS11)、当該領域の世代#に、ペア情報管理テーブル1171の対応するPVOLの最新世代#に1を加算した値を設定する(ステップS12)。これにより、当該領域に格納すべきキャッシュ領域121のデータが、最新のスナップショット取得時よりも後に更新されたデータであることが把握できるようになる。次いで、コントローラ11は、当該領域に書き込むべきライトデータをメモリ111のキャッシュ領域121に格納し(ステップS13)、ライト要求に対する応答をホスト2に対して送信する(ステップS14)。
図10は、実施形態に係るPVOLライト処理の第3のフローチャートである。
ポイントNに処理を進めると、図10に示すように、コントローラ11は、ライトデータをメモリ111のキャッシュ領域121に格納し(ステップS21)、ライト要求に対する応答をホスト2に対して送信する(ステップS22)。これにより、キャッシュ領域121のデータは、新たなライトデータに更新される。
図11は、実施形態に係るPVOLライト処理の第4のフローチャートである。
ポイントBに処理を進めると、図11に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14から領域を割り当て、SVOL管理テーブル1173を、割り当てに従って更新する(ステップS31)。すなわち、SVOLの該当する領域に割り当てたページのページIDを設定する。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLのデータを割り当てられた領域(ページ)にコピーする(ステップS32)。なお、キャッシュ領域121に格納されているデータが、スロットの一部のデータのみである場合には、PVOLの対応するスロットのデータをキャッシュ領域121のR面に読み出し、スロットの足りない部分のデータをR面に読み出したデータで補充した後に、割り当てられたページにコピーする。
次いで、コントローラ11は、PVOL管理テーブル1172の当該領域に対応する退避状態に退避済みを設定し(ステップS33)、ライトデータをメモリ111のキャッシュ領域121に格納し(ステップS34)、ライト要求に対する応答をホスト2に対して送信する(ステップS35)。
図12は、実施形態に係るPVOLライト処理の第5のフローチャートである。
ポイントCに処理を進めると、図12に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、ひとつ前の世代のSVOL、すなわち、当該世代#−1のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS41)。次いで、コントローラ11は、PVOLに格納されている対応する領域のデータ(旧データ:現在よりひとつ前の世代のスナップショットを構成するデータ)を割り当てられたページにコピーし(ステップS42)、PVOL管理テーブル1172の対応する領域のCAW属性をOFFに設定する(ステップS43)。これにより、ひとつ前の世代のスナップショット構成要素を適切にひとつ前の世代のスナップショットイメージを管理するSVOLに退避することができる。
次いで、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS44)。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLに書き込むべきデータ(現在の世代のスナップショット構成要素)を割り当てられたページにコピーし(ステップS45)、PVOL管理テーブル1172の対応する領域の退避状態を退避済みに設定し、世代#を削除する(ステップS46)。これにより、現在の世代のスナップショット構成要素を適切に現在の世代のスナップショットイメージを管理するSVOLに退避することができる。また、PVOLの一つの領域に対応するキャッシュ領域121のデータ要素についての退避処理であるので、比較的短時間で処理を終了することができる。
コントローラ11は、ライトデータをメモリ111のキャッシュ領域121に格納し(ステップS47)、ライト要求に対する応答をホスト2に対して送信する(ステップS48)。この処理によると、PVOLの一つの領域に対応するデータ要素についての退避処理を2回行なうことになるが、2回目はキャッシュ領域のデータを使用できるのでレスポンス時間の悪化を最小限に抑えることができる。
図13は、実施形態に係るPVOLライト処理の第6のフローチャートである。
ポイントPに処理を進めると、図13に示すように、コントローラ11は、PVOL管理テーブル1172を参照し、ライト要求に対応するPVOLの領域におけるリストアが未実行であるか否かを判定し(ステップS51)、リストアが実行されて完了している場合(ステップS51でNo)には、ポイントR(図8参照)に処理を進める。一方、リストアが未実行の場合(ステップS51でYes)には、コントローラ11は、PVOL管理テーブル1172を参照し、対応する領域に格納すべきキャッシュ領域121のデータ要素が未退避であるか否かを判定する(ステップS52)。この結果、未退避でない場合(ステップS52でNo)には、ポイントS(図14参照)に進む。一方、対応する領域が未退避である場合(ステップS52でYes)には、PVOL管理テーブル1172を参照し、当該スロットのCAW属性がONであるか否かを判定する(ステップS53)。
この結果、CAW属性がONではない場合(ステップS53でNo)には、コントローラ11は、キャッシュ状態がホストダーティであるか、すなわち、キャッシュ領域121のW面にデータがあるか否かを判定し(ステップS54)、ホストダーティでない場合には、ポイントT(図15参照)に処理を進める(ステップS54でNo)一方、ホストダーティである場合(ステップS54でYes)には、ポイントU(図16参照)に処理を進める。
一方、ステップS53の結果、CAW属性がONの場合(ステップS53でYes)には、コントローラ11は、当該領域の世代#が最新世代#より大きいか否かを判定し(ステップS55)、当該領域の世代#が最新世代#より大きい場合(ステップS55でYes)には、処理をポイントS(図14参照)に進める一方、当該領域の世代#が最新世代#以下の場合(ステップS55でNo)には、ポイントW(図17参照)に処理を進める。
図14は、実施形態に係るPVOLライト処理の第7のフローチャートである。
ポイントSに処理を進めると、図14に示すように、コントローラ11は、対応する領域について、SVOLからPVOLへのリストアコピーを実行し(ステップS61)、PVOL管理テーブル1172の対応する領域のリストア状態をリストア済みに設定する(ステップS62)。次いで、コントローラ11は、ライトデータをメモリ111のキャッシュ領域121に格納し(ステップS63)、ライト要求に対する応答をホスト2に対して送信する(ステップS64)。
図15は、実施形態に係るPVOLライト処理の第8のフローチャートである。
ポイントTに処理を進めると、図15に示すように、コントローラ11は、PVOL管理テーブル1172のライト要求に対応する領域のCAW属性をONに設定し(ステップS71)、当該領域の世代#に、ペア情報管理テーブル1171の対応するPVOLの最新世代#に1を加算した値を設定する(ステップS72)。これにより、当該領域に格納すべきキャッシュ領域121のデータが、最新のスナップショット取得時よりも後に更新されたデータであることが把握できるようになる。次いで、コントローラ11は、対応する領域について、SVOLからPVOLへのリストアコピーを実行し(ステップS73)、PVOL管理テーブル1172の対応する領域のリストア状態をリストア済みに設定する(ステップS74)。次いで、コントローラ11は、ライトデータをメモリ111のキャッシュ領域121に格納し(ステップS75)、ライト要求に対する応答をホスト2に対して送信する(ステップS76)。
図16は、実施形態に係るPVOLライト処理の第9のフローチャートである。
ポイントUに処理を進めると、図16に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS81)。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLのデータを割り当てられた領域にコピーする(ステップS82)。なお、キャッシュ領域121に格納されているデータが、スロットの一部のデータのみである場合には、PVOLの対応するスロットのデータをキャッシュ領域のR面に読み出し、スロットの足りない部分のデータをR面に読み出したデータで補充した後に、割り当てられたページにコピーする。次いで、PVOL管理テーブル1172の当該領域に対応する退避状態に退避済みを設定し(ステップS83)、処理をポイントS(図14参照)に進める。
図17は、実施形態に係るPVOLライト処理の第10のフローチャートである。
ポイントWに処理を進めると、図17に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、ひとつ前の世代のSVOL、すなわち、当該世代#−1のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14から領域を割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS91)。次いで、コントローラ11は、PVOLに格納されている対応する領域のデータ(旧データ:現在よりひとつ前の世代のスナップショットのデータ)を割り当てられた領域にコピーし(ステップS92)、PVOL管理テーブル1172の対応する領域のCAW属性をOFFに設定し、世代#を削除する(ステップS93)。これにより、ひとつ前の世代のスナップショット構成要素を適切にひとつ前の世代のスナップショットイメージを管理するSVOLに退避することができる。
次いで、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、ライト対象の領域に対応する当該SVOLの領域に対してプール14から領域を割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS94)。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLに対応する領域のデータ(現在の世代のスナップショットのデータ)を割り当てられた領域にコピーし(ステップS95)、PVOL管理テーブル1172の対応する領域の退避状態を退避済みに設定し(ステップS96)、処理をポイントS(図14参照)に進める。これにより、現在の世代のスナップショット構成要素を適切に現在の世代のスナップショットイメージを管理するSVOLに退避することができる。また、PVOLの一つの領域に対応するキャッシュ領域121のデータ要素についての退避処理であるので、比較的短時間で処理を終了することができる。
図18は、実施形態に係るPVOLリード処理の第1のフローチャートである。
PVOLリード処理においては、コントローラ11は、ホスト2からリード要求を受領すると(ステップS111)、ペア情報管理テーブル1171におけるリード要求のリード対象のPVOLのステータスを参照することにより、リード要求に対応するPVOLがリストア中であるか否かを判定する(ステップS112)。この結果、リストア中でない場合(ステップS112でNo)には、コントローラ11は、対応するPVOLの領域(又は、当該領域のデータを格納するキャッシュ領域121)からデータを読み出す通常リード処理を実行する(ステップS113)。一方、リストア中である場合(ステップS112でYes)には、コントローラ11は、PVOL管理テーブル1172を参照し、リード要求に対応するPVOLのスロットにおけるリストアが未実行であるか否かを判定し(ステップS114)、リストアが完了している場合(ステップS114でYes)には、通常リード処理を実行する(ステップS115)。
一方、リストアが未実行である場合(ステップS114でNo)には、コントローラ11は、PVOL管理テーブル1172を参照し、対応するスロットが未退避であるか否か、すなわち、当該スロットに書き込むべきキャッシュ領域121のデータ要素が未退避であるか否かを判定する(ステップS116)。この結果、未退避でない場合(ステップS116でNo)には、処理をポイントD(図19参照)に進める。一方、未退避である場合(ステップS116でYes)には、PVOL管理テーブル1172を参照し、当該スロットのCAW属性がONであるか否かを判定する(ステップS117)。
この結果、CAW属性がONではない場合(ステップS117でNo)には、コントローラ11は、キャッシュ状態がホストダーティであるか、すなわち、キャッシュ領域121のW面にデータがあるか否かを判定し(ステップS118)、ホストダーティでない場合には、ポイントE(図20参照)に処理を進める(ステップS118でNo)一方、ホストダーティである場合(ステップS118でYes)には、ポイントF(図21参照)に処理を進める。
一方、ステップS117の結果、CAW属性がONの場合(ステップS117でYes)には、当該スロットの世代#が最新世代#より大きいか否かを判定し(ステップS119)、当該スロットの世代#が最新世代#より大きい場合(ステップS119でYes)には、処理をポイントD(図19参照)に進める一方、当該領域の世代#が最新世代#以下の場合(ステップS119でNo)には、ポイントG(図22参照)に処理を進める。
図19は、実施形態に係るPVOLリード処理の第2のフローチャートである。
ポイントDに処理を進めると、図19に示すように、コントローラ11は、対応するスロットについて、SVOLからPVOLへのリストアコピーを実行し(ステップS121)、PVOL管理テーブル1172の対応するスロットのリストア状態をリストア済みに設定する(ステップS122)。次いで、コントローラ11は、PVOLの対応する領域を読み出してホスト2へ送信する(ステップS123)。
図20は、実施形態に係るPVOLリード処理の第3のフローチャートである。
ポイントEに処理を進めると、図20に示すように、コントローラ11は、PVOL管理テーブル1172のリード要求に対応する領域を含むスロットのCAW属性をONに設定し(ステップS131)、当該領域の世代#に、ペア情報管理テーブル1171の対応するPVOLの最新世代#に1を加算した値を設定する(ステップS132)。次いで、コントローラ11は、対応する領域について、SVOLからPVOLへのリストアコピーを実行し(ステップS133)、PVOL管理テーブル1172の対応する領域のリストア状態をリストア済みに設定する(ステップS134)。次いで、コントローラ11は、PVOLの対応する領域を読み出してホスト2へ送信する(ステップS135)。
図21は、実施形態に係るPVOLリード処理の第4のフローチャートである。
ポイントFに処理を進めると、図21に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、リード対象のPVOLの領域を含むスロットに対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、リード対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS141)。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLに書き込むべきデータを割り当てられたページにコピーする(ステップS142)。なお、キャッシュ領域121に格納されているデータが、スロットの一部のデータのみである場合には、PVOLの対応するスロットのデータをキャッシュ領域のR面に読み出し、スロットの足りない部分のデータをR面に読み出したデータで補充した後に、割り当てられたページにコピーする。次いで、PVOL管理テーブル1172の当該スロットに対応する退避状態に退避済みを設定し(ステップS143)、処理をポイントD(図19参照)に進める。
図22は、実施形態に係るPVOLリード処理の第5のフローチャートである。
ポイントGに処理を進めると、図22に示すように、コントローラ11は、PVOL管理テーブル1172に基づいて、リード対象のPVOLの領域を含むスロットに対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、ひとつ前の世代のSVOL、すなわち、当該世代#−1のSVOLを特定し、リード対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、ページ管理テーブル1182を割り当てに従って更新する(ステップS151)。次いで、コントローラ11は、PVOLに格納されている対応する領域のデータ(旧データ:現在よりひとつ前の世代のスナップショットを構成するデータ)を割り当てられた領域にコピーし(ステップS152)、PVOL管理テーブル1172の対応する領域のCAW属性をOFFに設定削除する(ステップS152)。これにより、ひとつ前の世代のスナップショット構成要素を適切にひとつ前の世代のスナップショットイメージを管理するSVOLに退避することができる。また、PVOLの一つの領域のデータ要素についての退避処理であるので、比較的短時間で処理を終了することができる。
次いで、コントローラ11は、PVOL管理テーブル1172に基づいて、リード対象のPVOLの領域に対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#のSVOLを特定し、リード対象の領域に対応する当該SVOLの領域に対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS154)。次いで、コントローラ11は、キャッシュ領域121に格納されているPVOLに対応する領域のデータ(現在の世代のスナップショット構成要素)を割り当てられたページにコピーし(ステップS155)、PVOL管理テーブル1172の対応する領域の退避状態を退避済みに設定し(ステップS156)、処理をポイントD(図19参照)に進める。これにより、現在の世代のスナップショット構成要素を適切に現在の世代のスナップショットイメージを管理するSVOLに退避することができる。
なお、キャッシュ領域121に格納されているデータが、スロットの一部のデータのみである場合には、PVOLの対応するスロットのデータをキャッシュ領域121のR面に読み出し、スロットの足りない部分のデータをR面に読み出したデータで補充した後に、割り当てられたページにコピーする。
図23は、実施形態に係るストレージ装置におけるSVOLライト処理の概要を説明する図である。なお、以下の説明では、PVOL内のスロット(領域)を「PVOLスロット」と言い、SVOL内のスロット(領域)を「SVOLスロット」と言う。
コントローラ11は、SVOLスロットのアドレスを指定したライト(WR)要求(ライト要求)をホスト2から受領し(図中(1))、そのライト先SVOLスロットに対応したPVOLスロットからデータが未退避であれば、ライト先SVOLにプール14からページを割り当て、そのライト先スロットに対応したSVOL更新属性をONに設定する(図中(2))。ここでは、SVOLスロットを指定したライト要求を受領した(後に、SVOLの更新を行う)場合に、SVOL更新属性にONが設定されるようにしている。
なお、SVOL更新属性は、例えば、図に示すように、ライト要求に従うデータ(ライトデータ)の容量がスロットの容量よりも小さい場合にONが設定されてもよい。ライトデータは、キャッシュサブ領域(キャッシュ領域121における確保された領域)に格納されるが、ライトデータの容量がスロットの容量よりも小さい場合には、SVOL更新属性「ON」は、ライト先SVOLスロットに対応したキャッシュサブ領域(W面)に、ライトデータで満たされた領域(以下、ライト領域)の他に、ライトデータで満たされない領域(以下、非対象領域)が生じることを意味する。この場合、ライト先SVOLスロットに対応するPVOLスロット全域のデータ(旧データ)の一部分(以下、旧データ部分)が、ライトデータが格納されているキャッシュサブ領域(ライト先SVOLに対応したキャッシュサブ領域(W面))の非対象領域に格納される。この結果、ライト先SVOLに対応したキャッシュサブ領域(W面)は、旧データ部分とライトデータによって満たされることになる。ただし、そのライト先SVOLスロットからデータをページに退避する前に、複数のライト要求によって、そのライト先SVOLスロットの全サブブロックが更新された場合には(すなわち、ライト先SVOLスロットに対応した更新位置BMを構成する全てのビットが「1」であれば)、キャッシュサブ領域(W面)に非対象領域は無い。ページとは、プール14において割り当てを行う単位領域をいう。ページのサイズは、例えば、スロットと同じサイズでよい。
コントローラ11は、SVOL15を指定した上記ライト要求に従いライトデータをホスト2から受け、キャッシュ領域121に、ライト先SVOLに(割り当てられたページに)対応したキャッシュサブ領域(以下、「SVOL確保領域」と言うことがある)を確保し、SVOL確保領域(W面)(ライト先SVOLスロットにライトされるデータが格納される、キャッシュ領域における領域)にライトデータを書き込む。次いで、コントローラ11は、ライト先SVOLスロット内におけるライト先位置(ライト要求で指定されたアドレスに従うサブブロックの位置)を特定し、そのライト先位置を記憶する(図中(3))。具体的には、コントローラ11は、ライト先SVOLに対応する更新位置BM(図6参照)における、ライト先位置のサブブロックに対応したビットが未更新(例えば0)であれば、そのビットを更新済み(例えば1)に更新する。次いで、コントローラ11は、ホスト2にライト要求に対するレスポンスを送信する(図中(4))。
これとは非同期で(バックエンドで)、コントローラ11は、ライト先SVOLスロットについてのSVOL更新属性を検出する(図中(5))。コントローラ11は、SVOL更新属性がONの場合には、PVOL確保領域(R面)(ライト先SVOLスロットに対応したPVOLスロット(以下、対応PVOLスロット)から読み出されたデータを記憶するための、キャッシュ領域内の領域)についてキャッシュヒット(対応PVOLスロット内のデータ(旧データ)がPVOL確保領域(R面)に記憶されている)か否かを判定する。コントローラ11は、キャッシュミスの場合には、ステージング、すなわち、対応PVOLスロット領域から旧データをPVOL確保領域(R面)に読み出す(図中(6))。そして、コントローラ11は、SVOL確保領域(W面)に、PVOL確保領域(R面)に記憶されている旧データのうち、非対象領域に対応する部分(旧データ部分)をコピーする(図中(7))。ここで、SVOL確保領域(W面)における「非対象領域」は、そのSVOL確保領域(W面)に対応した更新位置BM(図6参照)において未更新のサブブロック(例えばビット0)に対応した領域である。つまり、SVOLスロットにおける未更新領域にデータが書き込まれる都度に、SVOL更新領域(W面)にダーティデータが増え、SVOL更新領域(W面)から非対象領域が減る。次いで、コントローラ11は、ライト先SVOLスロットに対応する退避状態(SVOL管理テーブル1173における退避状態)として「退避済み」を設定し、SVOL更新属性を「OFF」にする(図中(8))。
その後、コントローラ11は、SVOL確保領域(W面)の全データ(ライトデータと旧データ部分とのセット)を、ライト先SVOLスロットに割り当てられたページに書き込む。
図23に示した流れによれば、ライトデータと旧データ部分がキャッシュ領域でマージされ、ライトデータと旧データ部分のセットが、ページに書き込まれる。これにより、対応PVOLスロット内のデータをライト先SVOLスロットに割り当てられたページに退避しその後にライトデータをそのページに書き込むよりも、ページに対する書き込みの回数を減らすことができる。
また、図23の(6)及び(7)に示した流れによれば、SVOL確保領域(W面)に、まず、ライトデータが書き込まれ、ライト要求のレスポンスが返され、その後で、SVOL確保領域(W面)における非対象領域に、PVOL確保領域(R面)から旧データ部分がコピーされる。ライト先SVOLスロットに割り当てられたページに書き込まれるデータは、ホストから受けたデータであってもPVOLから読み出されたデータであってもSVOL確保領域(W面)に書き込まれるが、図23の(6)及び(7)に示した処理により、ライトデータが旧データで更新されてしまうことを回避することができる。
なお、図23の(6)及び(7)の処理は、ライトデータの容量がスロットの容量より小さい場合の処理であるが、ライトデータの容量とスロットの容量が同じであれば、それらの処理は、不要である。
図24は、実施形態に係るSVOLライト処理の第1のフローチャートである。
SVOLライト処理においては、コントローラ11は、ホスト2からSVOLスロットを指定したライト要求を受領すると(ステップS211)、ペア情報管理テーブル1171におけるライト要求に従うライト先SVOLに対応付けられたステータスを参照することにより、そのライト先SVOLがリストア中であるか否かを判定する(ステップS212)。この結果、リストア中である場合(ステップS212でYes)には、コントローラ11は、ライトを実行しない(ステップS213)。
一方、リストア中でない場合(ステップS212でNo)には、コントローラ11は、SVOL管理テーブル1173を参照し、ライト先SVOLスロット(領域)がPVOL301を参照している(すなわち、参照元のPVOL内のデータが未退避)か否かを判定する(ステップS214)。この結果、PVOL301を参照していない(退避済み)場合(ステップS214でNo)には、コントローラ11はポイントH(図25参照)に処理を進める。
一方、PVOL301を参照している場合(ステップS214でYes)には、コントローラ11は、ライト先SVOLスロットに対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS215)。次いで、コントローラ11は、SVOL管理テーブル1173のライト先SVOLスロットについて、SVOL更新属性をONに設定する(ステップS216)。次いで、コントローラ11は、ライトデータをSVOL確保領域(W面)に格納し、ライト先SVOL内におけるライト先位置に従いSVOL管理テーブル1173を更新し(ステップS217)、ホスト2に応答を送信する(ステップS218)。上記処理により、ライトデータをキャッシュ領域のSVOL確保領域(W面)に受領した後ホストに応答を返すので、SVOLの応答性能を向上することができる。
図25は、実施形態に係るSVOLライト処理の第2のフローチャートである。
ポイントHに処理を進めると、図25に示すように、コントローラ11は、SVOL管理テーブル1173を参照し、ライト先SVOLスロットに対応づけられたプール14内のページが、他のSVOLスロットにも対応づけられていない(共有でない)か否か、すなわち、ライト先SVOLスロットに対応づけられたページが自ページであるか否かを判定する(ステップS221)。自ページの場合(ステップS221でYes)には、ライト先SVOLスロットが参照する自ページのデータについて退避を行わずに更新できるので、コントローラ11は、ライトデータをその自ページに書き込み(ステップS222)、ホスト2に応答を送信する(ステップS226)。ここで、ライトデータがライト先SVOLスロットの一部である場合は、そのデータが格納される領域について(ライト領域)のみデータの更新が行われる。
一方、該当ライト先SVOLスロットに対応づけられたページが自ページでない場合(ステップS221でNo)には、コントローラ11は、PVOL管理テーブル1172に基づいて、ライト先SVOLスロットに対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新し(ステップS223)、対応するライト先SVOLスロットの更新属性にONを設定する(ステップS224)。次いで、コントローラ11は、ライトデータをSVOL確保領域(W面)に格納し、SVOL確保領域(W面)内のライト先位置に従いSVOL管理テーブル1173を更新し(ステップS225)、ホスト2に応答を送信する(ステップS226)。上記処理により、ライトデータをキャッシュ領域のSVOL確保領域(W面)に受領した後、ホストに応答を返すSVOLの応答性能を向上することができる。
図26は、実施形態に係るSVOLリード処理のフローチャートである。
SVOLリード処理においては、コントローラ11は、ホスト2からSVOLの領域とそのSVOLの世代#を指定したリード要求を受領すると(ステップS231)、SVOL管理テーブル1173を参照することにより、リード要求に対応するSVOL15の領域(リード先SVOLスロット)のSVOL更新属性がONであるか否かを判定する(ステップS232)。この結果、SVOL更新属性がONである場合(ステップS232でYes)には、図28のSVOL退避コピー処理へ進む(ステップS233)。
一方、SVOL更新属性がONでない場合(ステップS232でNO)には、コントローラ11は、SVOL管理テーブル1173を参照し、リード先SVOLスロットがPVOL301を参照している(未退避)か否かを判定する(ステップS234)。この結果、PVOL301を参照していない(退避済み)場合(ステップS234でNo)には、リード先SVOLスロットに対応付けられているプール14内のページからデータを読み出し、ホスト2にデータを送信する(ステップS235)。
一方、PVOL301を参照している(未退避)場合(ステップS234でYes)には、コントローラ11は、PVOL管理テーブル1172を参照し、リード先SVOLスロットに対応するPVOLスロットのCAW属性がONであるか否かを判定する(ステップS236)。この結果、CAW属性がONではない場合(ステップS236でNo)には、コントローラ11は、リード先SVOLスロットに対応するPVOLスロットからデータをリードし、ホスト2にデータを送信する(ステップS237)。
一方、CAW属性がONである場合(ステップS236でYes)には、コントローラ11は、ペア管理テーブル1171を参照し、リード先SVOLスロットの世代#が最新世代#より大きいか否かを判定し(ステップS238)、リード先SVOLスロットの世代#が最新世代#以下の場合(ステップS238でNo)には、リード先SVOLスロットに対応するPVOLスロットのPVOL確保領域(R面)に格納されているデータがSVOL15のスナップショットの取得後のデータ要素であるので、PVOL確保領域(R面)に格納されているデータをリードし、ホスト2にデータを送信する(ステップS239)。
一方、リード先SVOLスロットの世代#が最新世代#より大きい場合(ステップS238でYes)には、リード先SVOLスロットに対応するPVOLスロットのPVOL確保領域(R面)格納されているデータがSVOLのスナップショットの取得以前のデータ要素であるので、コントローラ11は、リード先SVOLスロットに対してプール14からページを割り当て、SVOL管理テーブル1173を割り当てに従って更新する(ステップS240)。次いで、コントローラ11は、PVOL301に格納されている対応するスロットのデータ(現在よりひとつ前の世代のスナップショットを構成するデータ)をリード先SVOLスロットに対応づけられたページにコピーし(ステップS241)、PVOL管理テーブル1172の対応する領域のCAW属性をOFFに設定し(ステップS242)、リード先SVOLスロットに対応付けられているページからデータをリードし、ホスト2にデータを送信する(ステップS243)。
図27は、実施形態に係るバックエンド処理のフローチャートである。
このバックエンド処理は、例えば、任意のタイミング、例えば、所定の時間毎や、アクセス頻度が低い時間において実行される。バックエンド処理は、1つの処理に対して、コントローラ11が、PVOL管理テーブル1172又はSVOL管理テーブル1173に基づき、対象となるPVOLスロット又はSVOLスロット(以下、対象スロットという)を選出して行うものとする。1つの処理が終了した後、コントローラ11は、次の対象スロットを選出し処理を進める。対象スロットの選出は、PVOL管理テーブル1172又はSVOL管理テーブル1173における番号順に行ってもよい。
コントローラ11は、PVOL管理テーブル1172(又はSVOL管理テーブル1173)を参照し、対象スロットのCAW属性又はSVOL更新属性のいずれかの属性がONであるか否かの判定を行う(ステップS251)。判定の結果、対象領域のCAW属性及びSVOL更新属性のいずれの属性もONでない場合(ステップS251でNo)には、処理を終了する。
一方、対象領域のCAW属性又はSVOL更新属性のずれかの属性がONの場合(ステップS251でYes)には、コントローラ11は、対象スロットへのライトがシーケンシャルか否かを判定する(ステップS252)。シーケンシャルか否かの判定は、PVOL管理テーブル1172(又はSVOL管理テーブル1173)に基づいて、対象スロットを含む、領域IDが続き番の所定個数(例えば10個)のスロットのCAW属性(又はSVOL更新属性)がすべてONか否かで行われてもよいし、対象スロットへのライトがシーケンシャルであるか否かの情報(例えば、ライト要求に含まれメモリに確保された情報)を確認することで行われてもよい。判定の結果、シーケンシャルライトであった場合(S252でYes)には、コントローラ11は、対象スロットがパリティ列の最終スロットか否かを判定し(ステップS260)、対象スロットがパリティ列の最終スロットでない場合(ステップS260でNo)には、処理を終了する。
一方、対象スロットがパリティ列の最終スロットである場合(ステップS260でYes)、又は、ステップS252においてシーケンシャルライトでないと判定された場合(ステップS252でNo)には、コントローラ11は、PVOL管理テーブル1172(又はSVOL管理テーブル1173)を参照し、対象スロットには隣接するスロットがあるか否かを判定する(ステップS252)。ここで、対象スロットに隣接スロットがあるとは、対象スロットを含む、当該対象スロットと領域IDが続き番でありかつ当該対象スロットと同じくCAW属性ON(又はSVOL更新属性ON)である複数のスロット(スロット群)が存在することをいう。判定の結果、隣接するスロットがある場合には、そのスロット群のデータをまとめて処理対象とする(ステップS261)。これらの処理により、スロット群のデータをまとめて処理対象することができるので、処理の回数を少なくディスクに対する負荷を軽減できる。加えて、パリティ列のデータをまとめて処理対象とした場合には、リードモディファイライトを行う必要なく(すなわち、旧パリティデータが必要なく、パリティ列のデータのみで)新たなパリティデータを生成することができるため、処理時間を比較的短くすることができる。
一方、隣接するスロットがない場合(ステップS252でNo)には、コントローラ11は、SVOL管理テーブル1173を参照し、対象スロットの更新属性がONか否かを判定する(ステップS255)。判定の結果、対象スロットの更新属性がONの場合(ステップS254でYes)は、対象スロットがSVOLスロットであり、かつそのSVOL更新属性がONであるので、SVOL退避コピー処理を行う(図28)。
一方、SVOL更新属性がONではない場合(ステップS254でNo)は、対象スロットがPVOLスロットであり、かつそのCAW属性がONであるので、コントローラ11は、PVOL管理テーブル1172に基づいて、対象PVOLスロットに対応付けられている世代#を特定し、ペア情報管理テーブル1171に基づいて、当該世代#−1のSVOLを特定し、特定されたSVOL内の対象スロットに対してプール14からページを割り当て、ページ管理テーブル1182を割り当てに従って更新する(ステップS255)。次いで、コントローラ11は、対象PVOLスロット内のデータをステップS255で割り当てたページにコピーする(ステップS256)。
次いで、コントローラ11は、対象PVOLスロットの世代#が最新世代#+1であるか否かを判定し(ステップS257)、対象PVOLスロットの世代#が最新世代#+1である場合(ステップS257でYes)には、PVOL管理テーブル1172の対象PVOLスロットに対応する退避状態に、退避済みを設定する(ステップS258)一方対象PVOLスロットの世代#が最新世代#+1でない場合(ステップS258でNo)には、何もしない。次いで、コントローラ11は、PVOL管理テーブル1172の対象PVOLスロットに対応するCAW属性をOFFに設定する(ステップS259)。上記処理により、PVOL301のCAW属性がONとなっているPVOLスロットのデータ、又はSVOL15のSVOL更新属性がONになっているSVOLスロットのデータについて、ホスト2に対するライト要求(又はリード要求)と非同期で、SVOL15へと退避することができる。また、PVOLスロットのデータをSVOL15へと退避することができるので、PVOLライト処理及びSVOLライト処理において、ライトデータをキャッシュ領域121に格納する前に、PVOL301に格納されたデータをSVOL15へと退避しなければならない状況、例えば、ステップS7のNoに該当するような状況を低減することができ、ライトレスポンスを向上することができる。
図28は、実施形態に係るSVOL退避コピー処理のフローチャートである。
SVOL退避コピー処理においては、コントローラ11は、対象SVOLスロットが参照するPVOLスロットのデータ(参照元データ)をPVOL確保領域(R面)にステージングさせる(ステップS261)。次いで、コントローラ11は、SVOL管理テーブル1173の更新位置BMに基づき、SVOL確保領域(W面)における更新位置を特定し、特定結果に基づいて、SVOL確保領域(W面)の参照元データよりSVOL確保領域(W面)における非対象領域に対応するデータ(旧データ)取得する。次いで、コントローラ11は、キャッシュ領域121内(具体的にはSVOL確保領域(W面))において、取得した旧データとライトデータをマージして、マージされたデータセットをプール14内のページにコピーする(ステップS262)。次いで、コントローラ11は、対象領域の退避状態を「退避済み」にするようSVOL管理テーブル1173を更新する。次いで、コントローラ11は、対象PVOLスロットのスロットのCAW属性をOFFにするようPVOL管理テーブル1172を更新する。上記処理により、対応PVOLスロット内のデータをライト先SVOLスロットに割り当てられたページに退避しその後にライトデータをそのページに書き込むよりも、ページに対する書き込みの回数を減らすことができる。
図29は、実施形態に係るスナップショット取得処理のフローチャートである。
スナップショット取得処理は、例えば、予め設定された時刻や、ホスト2等からスナップショット取得要求があった場合に実行される。
コントローラ11は、ペア情報管理テーブル1171において、スナップショット取得対象のPVOLの次のスナップショットの管理用のSVOLに対応するステータスをSnapshot保持に設定し(ステップS271)、対応する最新世代#をカウントアップし(ステップS272)、当該SVOLの世代#に最新世代#を設定する(ステップS273)。このように、本実施形態においては、次のスナップショットを取得処理においては、PVOLの領域のデータを退避等する処理を行う必要がなく、短時間でPVOLに対するアクセスを行うことができる。
図30は、実施形態に係るスナップショット削除処理のフローチャートである。
スナップショット削除処理は、例えば、ホスト2等からスナップショット削除要求があった場合に実行される。
コントローラ11は、PVOL管理テーブル1172から、スナップショット削除対象となるSVOLに対応するPVOLについてのCAW属性がONの領域を検出し(ステップS281)、当該CAW属性がONの領域に対して、必要に応じて退避コピーを実行する(ステップS282)。具体的には、削除するSVOLが記憶している領域であって、他のスナップショットにより参照されている領域のデータについては、参照しているSVOLの領域に退避コピーをする。
次いで、コントローラ11はPVOLの退避した領域について、PVOL管理テーブル1172のCAW属性をOFFに設定し(ステップS283)、ペア情報管理テーブル1171の対応するSVOLのステータスをSnapshot未取得に設定する(ステップS284)。
以上、実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
例えば、スロットへのデータのライト及びリードのいずれのときでも、キャッシュサブ領域(W面)及び(R面)の両方が確保されても良いし、スロットへのデータのライトのときは、キャッシュサブ領域(W面)のみが確保され、スロットへのデータのリードのときは、キャッシュサブ領域(R面)のみが確保されても良い。また、キャッシュサブ領域は、予め、W面とR面に区別されていて、キャッシュサブ領域(W面)は、キャッシュ領域におけるW面から確保され、キャッシュサブ領域(R面)は、キャッシュ領域におけるR面から確保されても良い。
また、例えば、実施形態では、対応PVOLスロットの全域から旧データがPVOL確保領域(R面)に読み出されるが、対応PVOLスロットにおける、非対象領域に対応したスロット部分のみから、データ(旧データ部分)がPVOL確保領域(R面)に読み出されても良い。
1…ストレージ装置、11…コントローラ、111…メモリ、112…CPU、121…キャッシュ領域、12…ディスク装置、14…プール

Claims (6)

  1. ホスト計算機と通信可能に接続されるストレージシステムであって、
    プール及び正ボリュームの基になる複数の記憶デバイスと、
    前記複数の記憶デバイス及び前記ホスト計算機に接続されキャッシュ領域を有するコントローラと
    を有し、
    前記プールは、複数のページで構成されており、
    前記コントローラは、正ボリュームのスナップショットである副ボリュームを生成し、
    前記正ボリュームは、前記ホスト計算機による処理に利用されるデータが格納される複数の論理領域で構成された論理ボリュームであり、
    前記副ボリュームは、前記正ボリュームのスナップショットイメージを保持するための、複数の仮想領域で構成された仮想的な論理ボリュームであり、
    (A)前記コントローラは、前記副ボリュームを指定したライト要求を前記ホスト計算機から受け付けた場合、
    (a1)前記ライト要求に従うデータであるライトデータを前記キャッシュ領域の第1のキャッシュサブ領域に格納し、
    (a2)前記(a1)の後、そのライト要求に対する応答を前記ホスト計算機に送信し、
    (B)前記コントローラは、
    (b1)前記ライトデータのライト先の仮想領域に前記プール内のページが未割り当ての場合、その仮想領域にページを割り当て、
    (b2)割り当てたページに、前記第1のキャッシュサブ領域内のライトデータを格納する、
    ストレージシステム。
  2. 前記コントローラは、前記(b1)で、前記第1のキャッシュサブ領域における、ライトデータ以外の範囲に、前記ライト先仮想領域に対応した論理領域内のデータ部分を書込み、
    前記(b2)でページに書き込まれるデータは、前記ライトデータと前記データ部分とで構成されたデータである、
    請求項1に記載のストレージシステム。
  3. 前記コントローラは、メモリ領域を有し、
    前記メモリ領域は、仮想領域に対応した論理領域からデータの退避が必要か否かの表す属性値を仮想領域毎に記憶し、
    前記コントローラは、前記(a1)において、
    (a11)前記ライトデータのライト先仮想領域に対応した論理領域からデータを未退避であれば、前記ライト先仮想領域に対応した前記属性値を、退避の必要があることを示す第1の値とし、
    前記コントローラは、前記(b1)において、
    (b11)前記属性値が前記第1の値であるライト先仮想領域に対応した論理領域からデータ又は前記データ部分を読み出し、そのデータ又は前記データ部分を前記キャッシュ領域の第2のサブキャッシュ領域に格納し、
    (b12)前記第2のサブキャッシュ領域から前記第1のサブキャッシュ領域に前記データ部分をコピーする、
    請求項2に記載のストレージシステム。
  4. 前記メモリ領域は、仮想領域毎に、仮想領域のどの位置のデータが更新されたかを表す更新管理情報を記憶し、
    前記コントローラは、前記(a1)で、前記ライト先仮想領域に対応した前記更新管理情報を、前記ライト先仮想領域における、前記ライト要求に従う位置、のデータが更新されたことを表す情報に、更新し、
    前記データ部分は、前記仮想領域に対応する更新管理情報が未更新を表す位置に対応したデータ要素の集合である、
    請求項3に記載のストレージシステム。
  5. 前記コントローラは、前記(b11)において、
    (b111)前記ライト先仮想領域を含む連続する複数の仮想領域の各々について、前記属性値が前記第1の値である仮想領域群がある場合には、前記仮想領域群の各々の論理領域からデータ又は前記データ部分を読み出し、読み出した前記データ又は前記データ部分をまとめて前記キャッシュ領域の第2のサブキャッシュ領域に格納する、
    請求項3に記載のストレージシステム。
  6. ホスト計算機と通信可能に接続され
    プール及び正ボリュームの基になる複数の記憶デバイスと、前記複数の記憶デバイス及び前記ホスト計算機に接続されるキャッシュ領域
    を有するストレージシステムが行う記憶制御方法であって、
    前記プールは、複数のページで構成されており、
    前記正ボリュームのスナップショットである副ボリュームが生成され、
    前記正ボリュームは、前記ホスト計算機による処理に利用されるデータが格納される複数の論理領域で構成された論理ボリュームであり、
    前記副ボリュームは、前記正ボリュームのスナップショットイメージを保持するための、複数の仮想領域で構成された仮想的な論理ボリュームであり、
    (A)前記副ボリュームが指定さたライト要求を前記ホスト計算機から受け付けた場合、
    (a1)前記ライト要求に従うデータであるライトデータを前記キャッシュ領域の第1のキャッシュサブ領域に格納し、
    (a2)前記(a1)の後、そのライト要求に対する応答を前記ホスト計算機に送信し、
    (B)前記(a2)の後に、
    (b1)前記ライトデータのライト先の仮想領域に前記プール内のページが未割り当ての場合、その仮想領域にページを割り当て、
    (b2)割り当てたページに、前記第1のキャッシュサブ領域内のライトデータを格納する、
    制御方法。
JP2014528731A 2012-01-26 2012-01-26 ストレージシステムおよび記憶制御方法 Expired - Fee Related JP5829753B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/000507 WO2013111193A1 (en) 2012-01-26 2012-01-26 Storage system and storage control method

Publications (2)

Publication Number Publication Date
JP2015501959A true JP2015501959A (ja) 2015-01-19
JP5829753B2 JP5829753B2 (ja) 2015-12-09

Family

ID=48871341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014528731A Expired - Fee Related JP5829753B2 (ja) 2012-01-26 2012-01-26 ストレージシステムおよび記憶制御方法

Country Status (3)

Country Link
US (1) US8935488B2 (ja)
JP (1) JP5829753B2 (ja)
WO (1) WO2013111193A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013005245A1 (en) * 2011-07-01 2013-01-10 Hitachi, Ltd. Storage system and controlling method of the same
US9135119B1 (en) * 2012-09-28 2015-09-15 Emc Corporation System and method for data management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215940A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP2010218485A (ja) * 2009-03-19 2010-09-30 Fujitsu Ltd ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム
JP2011175616A (ja) * 2010-02-24 2011-09-08 Hitachi Ltd 書込み可能コピーオンライト・スナップショット機能のためのi/oレイテンシーの削減

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143412A1 (en) 2004-12-28 2006-06-29 Philippe Armangau Snapshot copy facility maintaining read performance and write performance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215940A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP2010218485A (ja) * 2009-03-19 2010-09-30 Fujitsu Ltd ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム
JP2011175616A (ja) * 2010-02-24 2011-09-08 Hitachi Ltd 書込み可能コピーオンライト・スナップショット機能のためのi/oレイテンシーの削減

Also Published As

Publication number Publication date
US20130198469A1 (en) 2013-08-01
WO2013111193A1 (en) 2013-08-01
JP5829753B2 (ja) 2015-12-09
US8935488B2 (en) 2015-01-13

Similar Documents

Publication Publication Date Title
JP5657801B2 (ja) ストレージシステムおよび記憶制御方法
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
JP4990066B2 (ja) 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP6000376B2 (ja) 特性の異なる複数種類のキャッシュメモリを有する情報処理装置
US7650480B2 (en) Storage system and write distribution method
US9946616B2 (en) Storage apparatus
US7660946B2 (en) Storage control system and storage control method
JP5937697B2 (ja) ストレージシステム
US8909848B2 (en) Method for managing storage system using flash memory, and computer
JP5722500B2 (ja) リモートコピーシステム、及びリモートコピー制御方法
JP4681247B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
JP2007156597A (ja) ストレージ装置
WO2015097751A1 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
US11740823B2 (en) Storage system and storage control method
JP5829753B2 (ja) ストレージシステムおよび記憶制御方法
JPWO2018142622A1 (ja) 計算機
JP6163588B2 (ja) ストレージシステム
JP5873545B2 (ja) ストレージシステムおよび記憶制御方法
JP6605762B2 (ja) 記憶ドライブの故障により消失したデータを復元する装置
US11221790B2 (en) Storage system
JP2020027433A (ja) 情報システム
WO2017046871A1 (ja) 情報処理装置、拡張メモリおよび情報処理装置のメモリ制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150508

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151022

R150 Certificate of patent or registration of utility model

Ref document number: 5829753

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees