JP7304215B2 - ストレージシステムおよび履歴情報管理方法 - Google Patents

ストレージシステムおよび履歴情報管理方法 Download PDF

Info

Publication number
JP7304215B2
JP7304215B2 JP2019112575A JP2019112575A JP7304215B2 JP 7304215 B2 JP7304215 B2 JP 7304215B2 JP 2019112575 A JP2019112575 A JP 2019112575A JP 2019112575 A JP2019112575 A JP 2019112575A JP 7304215 B2 JP7304215 B2 JP 7304215B2
Authority
JP
Japan
Prior art keywords
volume
period
data
history information
target protection
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.)
Active
Application number
JP2019112575A
Other languages
English (en)
Other versions
JP2020204932A (ja
Inventor
愛 里山
智大 川口
貴記 松下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019112575A priority Critical patent/JP7304215B2/ja
Priority to US16/807,317 priority patent/US11269550B2/en
Publication of JP2020204932A publication Critical patent/JP2020204932A/ja
Application granted granted Critical
Publication of JP7304215B2 publication Critical patent/JP7304215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/0614Improving the reliability of 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0673Single storage device
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

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

Description

本発明は、ストレージシステムに関し、特にストレージシステムの履歴情報管理方法に関する。
ストレージシステムの障害発生、人的ミス、及び、ランサムウェアなどによるデータ改ざんなどにより、データを喪失してしまった場合、正常な状態に速やかに復旧することが要求される。
CDP(Continuous Data Protection)は、指定された過去のどの時点(リカバリポイント)へも復旧できる技術である(特許文献1)。CDPでは、業務データが格納された本番ボリュームへのライト処理では更新される前のデータを退避し、継続的に履歴情報を保管する。障害等が検出されると、リカバリポイントを指定して、退避したデータに戻していくリストア処理を実施する。履歴情報はプールに格納され、古い履歴からパージしてストレージ空き容量を確保している。
特許文献1では、ジャーナルグループ(1つのジャーナルボリュームで履歴が管理される論理ボリューム群)に設定した目標保護期間を超過した履歴は基底ボリュームに書き込んで基底ボリュームの記憶内容を更新させ、ジャーナルボリュームからパージされることが開示されている。目標保護期間とは、保護対象のボリュームの記憶内容を過去に戻すことが可能な期間を意味し、例えば、「3時間」のように予め設定される。これをメタ情報と呼び、更新前データ、更新時刻、更新データ格納位置(アドレス情報)が主な要素である。
米国特許第8046549号明細書
CDPでは、CDP対象ボリュームの記憶内容を過去に戻すことが可能な期間である目標保護期間を設定する。例えばボリュームごとに「3日」のように予め設定される。ここで、複数ボリュームをグループ化し、グループ全体として保護することとする場合、グループ単位でリストア制御を行う。グループ内の全てのボリュームは同一時刻の記憶内容に復元され、復元後の業務の再開も同時に実施される。
前記複数のグループが1つのプールを利用する場合、どのグループからどれだけの容量分パージすべきかを決定する必要がある。
しかしながら、上記特許文献1には、目標保護期間の異なる複数のグループが一つのプールに入っていることは想定されていない。
本発明の目的は、全てのグループが目標保護期間を満たし、かつ、必要となる空き容量を確保できるストレージシステムおよび履歴情報管理方法を提供することである。
上記目的を達成するため、本発明のストレージシステムの一態様は、ストレージコントローラと、ストレージコントローラによって構成される、複数のボリュームと、複数のボリュームの論理的記憶領域に物理的記憶領域を割り当てるプールと、を有するストレージシステムにおいて、ストレージコントローラは、複数のボリュームの内、第1の目標保護期間が設定される1以上の第1のプライマリボリュームと、第1のプライマリボリュームの所定時刻のコピーを格納する第1のコピー用ボリュームと、第1のプライマリボリュームへ更新に関する履歴情報を格納する第1の履歴情報用ボリュームとを含む第1のグループと、複数のボリュームの内、第2の目標保護期間が設定される1以上の第2のプライマリボリュームと、第2のプライマリボリュームの所定時刻のコピーを格納する第2のコピー用ボリュームと、第2のプライマリボリュームへ更新に関する履歴情報を格納する第2の履歴情報用ボリュームとを含む第2のグループとを構成し、第1のグループと第2のグループに含まれるボリュームは、同一のプールの物理的記憶領域を利用するものであり、第1の履歴情報用ボリュームに格納された第1のプライマリボリュームへ更新に関する履歴情報が、第1の目標保護期間及び第1の保護可能期間を提供でき、第2の履歴情報用ボリュームに格納された第2のプライマリボリュームへ更新に関する履歴情報が第2の目標保護期間より長い期間に相当する第2の保護可能期間を提供できる状態から、プールの空き容量増加させる場合、第1の保護可能期間と第2の保護可能期間が所定の関係となるように、第1の保護可能期間および第2の保護可能期間からパージ対象となる履歴情報を決定する。
本発明によれば、プール内の各グループで目標保護期間と実際の保護期間の差が小さくなるようにパージ期間を算出するため、グループ間で保護可能な期間の履歴情報を平等に残しつつ、プールが満杯にならないようにする。
プール容量回収方法の概要を示すフローチャートである。 ストレージシステムを含むシステムの構成例を示す図である。 メモリの構成と、メモリ内のプログラム及び管理情報との例を示す図である。 CDP構成の一例を示す図である。 VOL管理テーブルの例を示す図である。 アドレス変換テーブルの例を示す図である。 ページ割当管理テーブルの例を示す図である。 プール管理テーブルの例を示す図である。 CDP管理テーブルの例を示す図である。 CDPグループ管理テーブルの例を示す図である。 CDPの実施の一例を示す図である。 CDP対象のボリュームの書き込み履歴のデータ量の変化の様子を示す図である。 プール容量の回収の考え方を説明する図である。 必要とするプールの容量を予測し算出する処理のフローチャートである。 保護可能期間の書き込みデータ量を算出する処理を示すフローチャートである。 プールの保護可能期間のデータのうち、どのデータをパージするかを決定する処理を示すフローチャートである。 保護可能期間のデータの中からパージするデータを選択する処理を示したフローチャートである。 目標保護期間のデータの内、どのデータをパージするか決定する処理を示したフローチャートである。 プール容量を回収する処理を起動する処理を示すフローチャートである。 ストレージシステムにおけるスナップショット構成を説明図である。 他のアドレス変換テーブルの例を示す図である。 スナップショットを取得する場合のボリュームへのライト処理を説明する図である。 スナップショットを取得する場合のボリュームへのライト処理を説明する図である。 二つのスナップショットを取得する場合のボリュームへのライト処理を説明する図である。 二つのスナップショットを取得する場合のボリュームへのライト処理を説明する図である。 コンシステンシグループを示す図である。
以下の説明において、「インターフェース部」は、1以上のインターフェースでよい。この1以上のインターフェースは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし、2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明において、「メモリ部」は、1以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明において、「PDEV部」は、1以上のPDEVであり、典型的には補助記憶デバイスでよい。「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)である。もしくは、フラッシュパッケージでもよい。
フラッシュパッケージは不揮発性記憶媒体を含む記憶デバイスである。フラッシュパッケージの構成例としては、コントローラと、計算機システムからのライトデータを記憶するための記憶媒体であるフラッシュメモリを有する。コントローラは、ドライブI/F、プロセッサ、メモリ、フラッシュI/F、圧縮機能を有する論理回路を有し、これらは内部ネットワークを介して相互接続されている。圧縮機能は無くてもよい。
また、以下の説明において、「記憶部」は、メモリ部とPDEV部の少なくとも1つ(典型的には少なくともメモリ部)である。
また、以下の説明において、「プロセッサ部」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。
また、少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
また、以下の説明において、「xxxテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及び/又はインターフェース部などを用いながら行うため、処理の主語が、プロセッサ部(或いは、そのプロセッサ部を有するコントローラのようなデバイス)とされてもよい。
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明において、「計算機システム」は、1以上の物理的な計算機を含んだシステムである。物理的な計算機は、汎用計算機でも専用計算機でもよい。物理的な計算機は、I/O(Input/Output)要求を発行する計算機(例えばホスト計算機やサーバシステムと呼ぶ)として機能してもよいし、I/O要求に応答してデータのI/Oを行う計算機(例えばストレージ装置)として機能してもよい。
すなわち、計算機システムは、I/O要求を発行する1以上のサーバシステム、及び、I/O要求に応答してデータのI/Oを行う1以上のストレージ装置であるストレージシステムのうちの少なくとも1つでよい。少なくとも1つの物理的な計算機において、1以上の仮想的な計算機(例えばVM(Virtual Machine))が実行されてもよい。仮想的な計算機は、I/O要求を発行する計算機でもよいし、I/O要求に応答してデータのI/Oを行う計算機でもよい。
また、計算機システムは、1以上(典型的には複数)の物理的なノード装置で構成された分散システムでよい。物理的なノード装置は、物理的な計算機である。
また、物理的な計算機(例えばノード装置)が所定のソフトウェアを実行することにより、その物理的な計算機、又は、その物理的な計算機を含んだ計算機システムに、SDx(Software-Defined anything)が構築されてもよい。SDxとしては、例えば、SDS(Software Defined Storage)又はSDDC(Software-defined Datacenter)が採用されてもよい。
例えば、ストレージ機能を有するソフトウェアが物理的な汎用の計算機で実行されることにより、SDSとしてのストレージシステムが構築されてもよい。
また、少なくとも1つの物理的な計算機(例えばストレージ装置)が、サーバシステムとしての1以上の仮想的な計算機と、ストレージシステムのストレージコントローラ(典型的には、I/O要求に応答してデータをPDEV部に対して入出力する装置)としての仮想的な計算機とが実行されてもよい。
言い換えれば、このような少なくとも1つの物理的な計算機は、サーバシステムの少なくとも一部としての機能と、ストレージシステムの少なくとも一部としての機能の両方を有してもよい。
また、計算機システム(典型的にはストレージシステム)は、冗長構成グループを有してよい。冗長構成は、Erasure Coding、RAIN(Redundant Array of Independent Nodes)及びノード間ミラーリングのように複数のノード装置での構成でもよいし、PDEV部の少なくとも一部としての1以上のRAID(Redundant Array of Independent (or Inexpensive) Disks)グループのように単一の計算機(例えばノード装置)での構成でもよい。
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報(例えば、英字や符号を含んだ識別子)が採用されてもよい。
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
例えば、記憶領域の単位である「ページ」を特に区別しないで説明する場合には、「ページ51」と記載し、個々のページを区別して説明する場合には、ページの番号を用いて「ページ#0」、「ページ#1」のように記載したり、参照符号を用いて「単独ページ51P」、「共通ページ51C」のように記載したりすることがある。
<動作概要>
以下、図面を参照して、実施例1を説明する。
まず、実施例1に係るプール容量回収方法の概要を説明する。
図1は、実施例1に係るプール容量回収方法の概要を示すフローチャートである。
プール毎に処理を行う。将来必要とするプールの空き容量を現在の書き込み処理数を参考に予測して算出する(S11)。現在の空き容量と、S11で算出した必要とする空き容量を比較し(S12)、現在の空き容量で十分足りていれば処理を終了する。空き容量が足りていない場合は、プール容量回収可能な容量を算出し(S13)、各グループのパージする履歴情報を決定し(S14)、パージを実行する(S15)。尚、Sはステップを表す。
S11からS14は、後述するプール容量回収プログラム413によって実行され、S15は、リードライトプログラム411によって実行される。
<システム構成>
ストレージシステム200は、図2に示すようにストレージコントローラ101を有する。ストレージコントローラ101は、プロセッサ部211を含むコントローラの一例である。ストレージコントローラ101は、CDP機能やCDPで使用する仮想的に論理ボリュームをコピーする機能としてボリューム複製機能を有する。
図2は、ストレージシステム200を含むシステムの構成例を示す図である。ストレージシステム200は、複数(又は1つ)の物理的記憶デバイスであるPDEV220と、PDEV220に接続されたストレージコントローラ101とを有する。
ストレージコントローラ101は、I/F214と、I/F215と、I/F213と、メモリ212と、それらに接続されたプロセッサ211とを有する。I/F214、I/F215、及びI/F213が、インターフェース部の一例である。メモリ212が、記憶部の一例である。プロセッサ211が、プロセッサ部の一例である。
I/F214は、サーバシステム201とストレージコントローラ101との間のデータのやり取りを仲介する通信インターフェースデバイスである。I/F214に、FC(Fibre Channel)ネットワーク203を介して、サーバシステム201が接続される。
サーバシステム201は、ストレージコントローラ101に対して、I/O先(例えばLUN(Logical Unit Number)のような論理ボリューム番号や、LBA(Logical Block Address)のような論理アドレス)を指定したI/O要求(ライト要求又はリード要求)を送信する。
I/F215は、管理システム205とストレージコントローラ101の間のデータのやり取りを仲介する通信インターフェースデバイスである。I/F215に、IP(Internet Protocol)ネットワーク204を介して、管理システム205が接続される。
ネットワーク203及びネットワーク204は、同一の通信ネットワークでもよい。管理システム205は、ストレージシステム200を管理する。
I/F213は、複数のPDEV220とストレージコントローラ101の間のデータのやり取りを仲介する通信インターフェースデバイスである。I/F213には、複数のPDEV220が接続される。
メモリ212は、プロセッサ211が実行するプログラムと、プロセッサ211が使用するデータを記憶する。プロセッサ211は、メモリ212に格納されているプログラムを実行する。例えば、メモリ212及びプロセッサ211の組が二重化されている。
ストレージシステムの障害発生、人的ミス、及び、ランサムウェアなどによるデータ改ざんなどにより、データを喪失してしまう事態に備えて、元データをバックアップする技術がいくつかある。
バックアップ技術の一つに、或る限られた期間については任意の時点の元データを復元可能とするCDP(Continuous Data Protection)技術が知られている。本技術では、元データの更新の際に、元データの更新に関する履歴を表す情報(以下、ジャーナル)を取得し、そのジャーナルを、元データが記憶されている記憶領域(プライマリの論理ボリューム、以下、プライマリボリューム「PVOL」という)とは別の記憶領域(例えば、論理ボリューム、以下、ジャーナルボリューム「JVOL」、或いは、プライマリボリュームの更新に関する履歴情報を格納するため、履歴情報用ボリュームと言う)に保存しておく。また、ジャーナル取得前の元データの複製(以下、「基底データ」)を作成しておき、それを、元データやジャーナルが記憶されている記憶領域とはまた別の記憶領域(例えば、論理ボリューム、以下、基底ボリューム「BVOL」、或いはプライマリボリュームのコピーを格納するため、コピー用ボリュームと言う)に保存しておく。
任意の指定時刻を指定したデータ復元要求を受けた場合には、BVOL作成時刻(基底データの取得時刻)からその指定時刻までに取得されたジャーナルをBVOLに反映することで、BVOL内に、指定時刻における元データが復元される(すなわち、基底データが、指定時刻における元データに更新される)。
以下、CDP技術に従うバックアップ技術を用いて説明するが、本発明では、バックアップ技術は、データを復旧させる方法であれば良く、CDP技術に従うバックアップ技術である必要はない。CDP技術に必要な要素を用いて説明するが発明の本質ではない。例えばBVOLやJVOLがあることが必須ではない。過去のある時点に戻るための情報があればよい。例えば、過去の書き込み時刻と書き込みアドレスと書き込みデータからなる履歴情報と、現在のボリュームに格納されたデータがあればよい。
図3は、メモリ212の構成と、メモリ212内のプログラム及び管理情報との例を示す図である。メモリ212は、ローカルメモリ401、キャッシュメモリ402、及び共有メモリ404というメモリ領域を含む。これらのメモリ領域のうちの少なくとも1つは、独立したメモリであってもよい。ローカルメモリ401は、このローカルメモリ401を含むメモリ212と同一組に属するプロセッサ211により使用される。
ローカルメモリ401には、リードライトプログラム411、CDP制御プログラム412、及び、プール容量回収プログラム413、スナップショットプログラム414が格納される。これらのプログラムについては後述する。
キャッシュメモリ402には、PDEV220に対してライト又はリードされるデータセットが一時的に格納される。
共有メモリ404は、この共有メモリ404を含むメモリ212と同一組に属するプロセッサ211、及び異なる組に属するプロセッサ211の両方により使用される。共有メモリ404には、管理情報が格納される。
管理情報は、VOL管理テーブル421、アドレス変換テーブル422、ページ割当管理テーブル423、プール管理テーブル424、CDP管理テーブル425、CDPグループ管理テーブル426を含む。
<CDP構成>
図4は、ストレージシステム200におけるCDP構成を示す説明図である。ストレージシステム200内には、CDP制御プログラム412によって、複数種類のボリューム501P、501B、501Jがそれぞれ少なくとも一つ以上設けられる。これらの各ボリューム501P、501B、501Jは、それぞれPDEV220の有する物理的記憶領域を仮想化することにより生成される。ボリューム501PはPDEVから生成されるプールを使用し、ボリューム501Pの論理的記憶領域であるページにプール503の物理的記憶領域であるページ51を割り付ける。ページ51内の記憶領域単位Bにマッピングされた物理的記憶領域にデータを格納する。以下、説明はボリュームで行うが、記憶領域の部分的な領域でもよい。
ボリューム501Pは、CDP機能によって保護されるボリュームである。ボリューム501Pはその記憶内容がジャーナルデータによって連続的に保護されるPVOLボリューム(プライマリボリューム)である。ボリューム501Pはサーバシステム201と接続され、サーバシステム201から書き込まれるデータを記憶する、業務に使用される本番ボリュームである。サーバシステム201はボリューム501Pにデータを書き込み、ボリューム501Pからデータを読み出すことができる。
ボリューム501Bは、ボリューム501Pの過去の所定時点の記憶内容を維持する基底ボリュームBVOL、即ち、コピー用ボリュームである。基底ボリュームBVOLはPVOLの最新の記憶内容から前の記憶内容が記憶されたボリュームである。BVOLとPVOLの記憶内容の時間差は常に一定になるように制御する。但し、必ずしも一定時間となる必要はない。例えば、BVOLにジャーナルデータを順番に書きこむ場合、PVOLの記憶内容から遅れて追随することになる。別の方法として、BVOLを新たな時刻に取り直す方法がある。また、BVOLは、フルバックアップで複製を取る方法、スナップショット、クローンでとる等の方法がある。
ボリューム501Jは、ボリューム501Pの更新時に生成されるジャーナルデータを記憶するためのジャーナルボリュームJVOLであり、履歴情報を格納する履歴情報用ボリュームである。ジャーナルデータは、サーバシステム201によってPVOLが更新された履歴を管理するためのデータである。
実施例1では、一つまたは複数のボリューム501PをCDP対象として保護することができる。つまり、一つのボリューム501Pだけを単独で保護することもできるし、あるいは、複数のボリューム501PをCDPグループ520_nによりグループ化し、グループ全体として保護することもできる。例えば、互いに関連するデータを記憶する複数のボリューム501Pをグループ化し、CDPによる保護動作を同期させることができる。即ち、グループは、ストレージコントローラ101によって構成される、保護期間を同一に設定されるデータ、ボリュームやボリューム群で、例えば、図4に示すCDPグループ520_nでは、1又は複数のボリューム501P、1又は複数のジャーナルボリューム501J、1又は複数の基底ボリュームから構成される。
基底ボリュームBVOLは、PVOLに一対一で対応付けられる。これに対し、一つのジャーナルボリューム501Jは、複数のボリューム501Pにそれぞれ対応付けることができる。
複数のボリューム501PがCDPグループとしてグループ化されている場合、2つの方法のいずれかでリカバリさせることができる。第1の方法は、グループ単位でリストア制御を実施する方法である。第1の方法では、CDPグループ内の全てのボリューム501Pについて、各保護期間がそれぞれ一致するように、同期して制御する。第2方法は、ボリューム単位でリストア制御を実施する方法である。第2方法では、CDPグループ内の各正ボリューム501Pは、それぞれ個別にリストア処理を実施する。本発明では第1方法のリストア制御を実施する。
<管理情報>
次に、管理情報である各テーブルの例を説明する。
図5は、VOL管理テーブル421の例を示す図である。ボリューム501Pのようにサーバシステム201に提供される論理ボリュームも、基底ボリューム501B及びジャーナルボリューム501Jのようにサーバシステム201に提供されない論理ボリュームも、「VOL」と総称してもよい。
VOL管理テーブル421は、VOLに関する情報を保持する。例えば、VOL管理テーブル421は、VOL毎にエントリを有する。各エントリは、VOL#801、VOL容量802、プール#803、及び、グループ#804といった情報を格納する。以下、1つのVOL(「対象VOL」と呼ぶ)を例に取って説明する。
VOL#801は、対象VOLの番号(識別番号)の情報である。VOL容量802は、対象VOLの容量の情報である。プール#803は、対象VOLに関連付けられているプール503の番号の情報である。グループ#804は、対象ボリュームが属するCDPグループ番号(識別番号)である。ここではPVOLのみを登録しているが、VOL属性情報を設け、対象VOLの属性の情報を持つことで、例えば、基底ボリュームは“基底”、ジャーナルボリュームは“ジャーナル”、というように全てのVOLを管理してもよい。
図6は、アドレス変換テーブル422の例を示す図である。アドレス変換テーブル422は、ボリューム501毎に設定される。アドレス変換テーブル422は、参照元の論理アドレス(VOL内アドレス)と参照先の論理アドレスとの関係に関する情報を保持する。
例えば、アドレス変換テーブル422は、ページ又はブロック毎にエントリを有する。各エントリは、VOL内アドレス901、参照先ページ#902、及びデータサイズ903といった情報を格納する。以下、1つのブロック601(「対象ブロック」と呼ぶ)を例に取って説明する。
VOL内アドレス901は、ボリューム501における対象ブロックの論理アドレス(例えば先頭論理アドレス)の情報である。参照先ページ#902は、対象ブロックの参照先のプールのページにおける対象ブロックの論理アドレスに対応する論理アドレス(参照先プール内の論理アドレス)の情報である。データサイズ903は、対象ブロックのサイズの情報である。
図7は、ページ割当管理テーブル423の例を示す図である。ページ割当管理テーブル423は、プール503毎に設定される。ページ割当管理テーブル423は、ページ51とその割当先との関係に関する情報を保持する。例えば、ページ割当管理テーブル423は、ページ51毎にエントリを有する。
各エントリは、ページ#1201、割当フラグ1202、割当先VOL#1203、及び割当先VOL内アドレス1204といった情報を格納する。以下、1つのページ51(「対象ページ」と呼ぶ)を例に取って説明する。ページ#1201は、対象ページの番号の情報である。割当フラグ1202は、対象ページが割り当てられているか(“割当済”)、割り当てられていないか(“未割当”)の情報である。
割当先VOL#1203は、対象ページの割当先VOL(ボリューム501)の番号の情報である。割当先VOL内アドレス1204は、対象ページの割当先VOLにおける領域の論理アドレス(例えば先頭論理アドレス)の情報である。
図8は、プール管理テーブル424の例を示す図である。プール管理テーブル424は、プール503に関する情報を保持するテーブルである。
プール管理テーブル424は、例えば、プール503毎に、プール#1101、容量1102、空き容量1103、グループ#1104、書き込み要求頻度1105といった情報を格納する。プール#1101は、対象プール503を識別する情報、例えばプール番号等である。容量1102は、対象となるプールの総容量である。空き容量1103は、容量1102のうち、使用可能な容量である。プール容量のうち割り当て済みのページの総容量をプールの容量から除いた値である。グループ#1104は当該プールに属するCDPグループ番号の情報を示す。書き込み要求頻度1105はプールへの書き込み要求数を処理した数を単位時間当たりに換算した値のものである。
図9は、CDP管理テーブル425の例を示す図である。図9のCDP管理テーブル425は、ジャーナルボリューム501Jの記憶構成を模式的に示す説明図である。ジャーナルボリューム501Jの記憶領域は、ジャーナルデータを管理するためのデータと、ジャーナルデータのデータ本体が記憶される。
CDP管理データ425としては、例えば、VOL#601に各ボリューム(PVOL)のジャーナルデータを格納するボリューム番号を登録する。ジャーナルデータの管理データは、ボリューム番号601(図中「VOL#」)、データ総量612、メタ情報格納先613等を挙げることができる。
ボリューム番号601とは、ボリューム501Pを特定するための情報である。データ総量612は、メタ情報格納先613につながっているメタ情報620のデータ格納先625にポイントされるデータ量の全容量が格納される。メタ情報格納先613は、メタ情報620の先頭アドレスが格納される。
メタ情報620は、時刻621、アドレス622、長さ623、容量624、データ格納先アドレス625、フラグ626等を挙げることができる。
時刻621とは、ボリューム501Pに書き込み要求が発生した時刻の情報である。アドレス622とは、ボリューム501Pに書き込まれるライトデータの先頭を示す論理ブロックアドレス(LBA)である。長さ623とは、ライトデータのデータサイズを示す情報である。容量624とは、書き込まれるライトデータの容量である。データ格納先625とは、データ本体のプール上での格納位置を示すアドレスである。フラグ626とは、そのジャーナルデータを有効なものとして扱うか無効として扱うかを示すための制御情報である。
図10は、CDPグループ管理テーブル426の例を示す図である。CDPグループ管理テーブル426は、CDPグループの情報を保持し、プール毎に持つ。
複数のボリュームのうち、同一の目標保護期間が設定されるボリュームにCDPグループを設定する。例えば、あるアプリケーションで使用されるデータは、一つあるいはそれ以上のボリュームに保存される。そこでジャーナリングが保証されるデータボリュームの最小ユニットであるCDPグループを設定する。CDPを適用するVOLは一つ以上のVOLからグループが組める。
例えば、グループ番号701は、対象CDPグループの番号の情報である。VOL#702は、対象CDPグループに属するPVOLのVOL#の情報である。目標保護期間703は、CDPグループに属する全てのボリュームの目標保護期間の情報である。目標保護期間とは、保護対象のボリュームの記憶内容を過去に戻すことが可能な期間を意味し、例えば、「3時間」のように予め設定される。
CDPグループ管理テーブル426はモニタ情報も持つ。モニタ情報もグループ毎に持ち、プールの単位時間当たりの書き込みデータ量を算出するためのデータを蓄積する。
例えば、書き込み回数704は、グループ番号701に属するVOL#702(PVOL)のボリュームが書き込み要求を受けて書き込み処理をプールに対して実施した回数である。書き込みデータ量705は前記書き込み処理をした時に書き込んだデータ量である。モニタ開始時刻706は書き込み要求回数や書き込みデータ量のモニタを開始する時刻であり、モニタ終了時刻707は前記モニタを終了する時刻である。平均書き込み回数は、書き込み回数704/(モニタ終了時刻-モニタ開始時刻)で算出できる。
図8に示す、書き込み要求頻度(単位時間当たりの書き込みデータ量)1105はサーバシステム201からPVOLへの書き込み要求のモニタしたものである。予め設定されたモニタ期間内の書き込み要求を参照し、書き込みの頻度と書き込み要求のデータサイズを算出し登録している。予め設定されたモニタ期間とは、例えば現在時刻から1日前までなどとする。書き込み要求頻度1105は、例えば数時間毎などに算出しなおし適宜データを書き換える。書き込み要求頻度1105は、複数モニタ期間のデータを格納してもよい。書き込み要求頻度1105は、管理システム205が書き込みの頻度と書き込み要求のデータサイズを算出し管理システム205内のメモリに登録してもよい。
書き込み要求頻度1105は、プールに属するCDPグループをグループ#1104から参照し、参照したグループ#に対応するグループ番号701の書き込み回数704と書き込みデータ量705から算出した値を使って算出する。プールに属するグループ全ての単位時間当たりの書き込みデータ量を算出し、グループ間で平均した値をプールの単位時間当たりの書き込みデータ量として書き込み要求頻度1105に登録する。
以上が各テーブルの説明である。
<CDP技術を用いたバックアップ動作>
ここで、一例としてCDP技術を用いたバックアップを説明する。通常運用時のCDP動作の一例を説明する。最初に、ユーザは、保護対象となるボリューム501P及び目標保護期間を指定する。ストレージコントローラ101は、ボリューム501Pに記憶されている全データを基底ボリューム501Bにコピーする。例えば、9時の時点におけるデータが基底ボリューム502Bにコピーされたものとすると、CDP開始時刻は9時であることを示す。
サーバシステム201は、ボリューム501Pにアクセスし、データを読み書きする。サーバシステム201から送信されたライトデータがボリューム501Pに書き込まれた場合、つまり、ボリューム501Pを対象とするライト要求がサーバシステム201から発行された場合、ストレージコントローラ101は、そのライト要求に基づいてジャーナルデータ(メタ情報)620を生成する。生成されたジャーナルデータ620は、ジャーナルボリューム501Jに保存される。ライトデータはボリューム501Pに書き込まれる。
なお、ボリューム501Pのある時点の記憶内容を基底ボリューム501Bにコピーさせている最中に、サーバシステム201がボリューム501Pにデータを書き込む場合もある。ボリューム501Pから基底ボリューム501Bへのコピーが完了していない未コピー領域について、サーバシステム201が新たなデータの書込みを要求した場合を説明する。
この場合、一つの例として、ストレージコントローラ101は、未コピー領域に記憶されているデータ(旧データ)をボリューム501Pから基底ボリューム501Bにコピーさせた後で、サーバシステム201からの新たなデータをボリューム501Pに書き込む。
別の一つの例として、ボリューム501Pから基底ボリューム501Bへのコピー中に発行された新たなライト要求のライトデータを、「新データ」のような属性をつけてキャッシュメモリ上で管理し、未コピー領域に記憶されている旧データと別に管理する方法もある。この例では、ボリューム501Pから基底ボリューム501Bへの旧データのコピーと、サーバシステム201からのライト要求の処理(新データの上書き)とを非同期で行うことができる。なお、さらに別の方法もある。
サーバシステム201によってボリューム501Pが更新された位置は、ライト要求の発行時刻が含まれる期間(区間)を担当する差分ビットマップに記憶される。更新位置は、例えば、スロット単位やブロック単位等のように予め設定される所定サイズ単位で管理することができる。
時間が経過して、最初の差分ビットマップの担当期間を過ぎた場合、ストレージコントローラ101は、別の新たな差分ビットマップに切り替えて、サーバシステム201によってボリューム501Pが更新された位置を管理する。
CDP開始時刻から目標保護期間を経過すると、目標保護期間を経過したジャーナルデータ620は、基底ボリューム501Bに順番に書き込まれる。つまり、現在時刻が12時を過ぎた場合、現在時刻(12時)よりも目標保護期間(3時間)だけ前に生成されたジャーナルデータは、生成された順番で基底ボリューム501Bに書き込まれる。基底ボリューム501Bに書き込まれたジャーナルデータ620は、破棄される。
<リストア動作>
リストア時の動作を説明する。例えば、サーバシステム201上のアプリケーションプログラムで発生した障害やユーザの誤操作等により、ボリューム501Pの記憶内容に誤りを生じる可能性がある。
ボリューム501Pの記憶内容に誤りを生じた場合、ユーザは、ボリューム501Pの記憶内容を所望の時点まで復元させるための指示を発行する。ユーザは、保護期間内の任意の時刻を復元点(リストア点)として選択することができる。
任意の指定時刻を指定したデータ復元要求を受けた場合には、BVOL作成時刻(基底データの取得時刻)からその指定時刻までに取得されたジャーナルを順次にBVOLに反映することで、BVOL内に、指定時刻における元データが復元される(すなわち、基底データが、指定時刻における元データに更新される)。
また、ランサムウェア等によるデータ改ざんが発生する可能性がある。改ざんがされた時刻を特定可能であれば改ざん時刻を復元点として選択しリストアする。改ざんされた時刻が特定不可能な場合は、データが正常であることが確認できた最も現在時刻に近い書き込み要求があった時刻を復元点として選択しリストアする。
<他のCDP動作>
通常運用時のCDP動作の別の一例を説明する。最初に、ユーザは、保護対象となるボリューム501P及び目標保護期間を指定する。ストレージコントローラ101は、ボリューム501Pに記憶されている全データを基底ボリューム501Bにコピーする。
サーバシステム201から送信されたライトデータがボリューム501Pに書き込まれた場合、つまり、ボリューム501Pを対象とするライト要求がサーバシステム201から発行された場合、ストレージコントローラ101は、そのライト要求のあったボリューム501Pのアドレスに既にデータが格納されているデータ(旧データ)に基づいてジャーナルデータ(メタ情報)620を生成する。生成されたジャーナルデータ620は、ジャーナルボリューム501Jに保存される。ジャーナルデータ620が登録されてから、ライト要求のあったデータをボリューム501Pの対象箇所へ書き込む。
なお、ボリューム501Pのある時点の記憶内容を基底ボリューム501Bにコピーさせている最中に、サーバシステム201がボリューム501Pにデータを書き込む場合もある。ボリューム501Pから基底ボリューム501Bへのコピーが完了していない未コピー領域について、サーバシステム201が新たなデータの書込みを要求した場合を説明する。
<CDP構成>
図11はCDP構成の一例である。ここでは、ボリューム501Pを対象とするライト要求がサーバシステム201から発行された場合、ストレージコントローラ101は、そのライト要求先に基づいてジャーナルデータ(メタ情報)620を生成する。生成されたジャーナルデータ620は、ジャーナルボリューム501Jに保存される。
CDP対象ボリューム501Pにはボリューム内のアドレスaにデータA1が、アドレスbにデータB1が、アドレスcにデータC1が、アドレスdにデータD1が格納されている。これらは全てサーバシステム201から送信されたライトデータである。送信された時刻tは0である。ボリューム501Pは仮想ボリュームであるため、データA1、B1、C1、D1は実際にはプール503内に格納されている。
図11のメタ情報620は、図9のメタ情報620のテーブル情報のうち一部を示している。メタ情報620に時刻t621に0、ボリューム501Pのデータ格納場所であるアドレス622に、それぞれa、b、c、dを格納し、実際のデータ格納先のアドレス情報をデータ格納先(データ格納アドレス#))625に格納する。データ格納先625に格納されたアドレスはプール上のデータの格納先である。
ボリューム501Pのスナップショットを取得し、基底ボリューム501Bを生成する(S21)。基底ボリュームも仮想ボリュームであり、実際のデータはプール内に格納さている。
時刻t1に、サーバシステム201からボリューム501Pのアドレスaへの書き込み要求を受ける。ライトデータA2を旧データA1に上書きされる(S22)。メタ情報620にジャーナルを追加する。データA2はプールの新しいところに格納する。これにより、データA2の前にデータA1が書き込まれていた履歴が管理できる。
時刻t2に、サーバシステム201からボリューム501Pのアドレスdへの書き込み要求を受ける。ライトデータD2を旧データD1に上書きする(S23)。メタ情報620にジャーナルを追加する。
時刻t3に、サーバシステム201からボリューム501Pのアドレスcへの書き込み要求を受ける。ライトデータC2を旧データC1に上書きする(S24)。メタ情報620にジャーナルを追加する。
リストア動作は、例えば、時刻t1の時点にボリューム501Pを復元したい場合、ボリューム501Bが時刻t0時点の状態であるので、ボリューム501Bに時刻t0~t1の期間に受信したライト要求を対象とする。具体的には、ボリューム501Pのメタ情報620の時刻622が時刻t0から順に時刻t1まで、メタ情報620のデータ格納アドレス625に格納されたプール上のアドレスに格納されているデータを書き込む処理を実行する。ボリューム501Pの故障した部分のデータをボリュームBからコピーすることで修復する。ボリューム501Pの故障したデータのうち、自分で修復できるものは修復する。
図12は、CDP対象のボリュームの書き込み履歴のデータ量の変化の様子を示す図である。書き込みデータはメタ情報620内でポイントされているプールのアドレスに格納されている。ボリュームの書き込み履歴のデータ量とは、過去の時点から現在までの書き込みデータの総容量である。
データ量510n[i]は、VOL#iの時刻nに書き込み処理を受け取り、プールに格納された書き込みデータ量の総和である。データ量510n-1[i]は、時刻n-1に書き込み処理によりプールに格納されたデータ量の総和である。時刻n-1は時刻nより過去であり、時刻n+1は時刻nより現在の時刻に近い時刻である。
図12(a):現在時刻が時刻n+1
VOL#iの目標保護期間が3日であり、n=1日単位だとすると、VOL#iの目標保護期間のデータ量は、時刻情報n-1から時刻n+1のデータ量510の合計値である。時刻n-2のデータはVOL#iの目標保護期間を過ぎた過去の履歴データであるため、時刻n+1になったタイミングで不要な情報となる。時刻n+1の時点で時刻n-2以前の履歴データがパージ可能である。CDPでは目標保護期間に含まれるデータは必ず保持するし、時刻が変化していくと目標保護期間も変化していくため、保護の対象となるデータも変化していく。例えば目標保護期間を1週間と指定された場合、1週間前までのどの時点にも戻せるように1週間分のデータを保持する。図12に示すように、現在時刻が時刻nから時刻n+1に進んだ時、時刻n-2は目標保護期間を過ぎるため、時刻n-2のデータはパージしてプールの空き容量にすることが可能となる。
図12(b):現在時刻がn+2
現在時刻がn+1から時刻n+2に進んだ時、時刻n-1以前の履歴データはパージしてプールの空き容量にすることが可能な履歴データとなる。
図12(c):現在時刻がn+3
現在時刻がn+2から時刻n+3に進んだ時、時刻n以前の履歴データはパージしてプールの空き容量にすることが可能な履歴データとなる。
但し、プールの空き容量が十分大きく、すぐにはプールが枯渇することがないと予測された場合(プールの容量に余裕がある)、目標保護期間より以前の時刻のデータも保持したままにすることができる。これにより、ユーザに目標保護期間以前の状態を提供することができる。目標保護期間以前を「保護可能期間」と呼ぶ。保護可能期間は図12(d)に示されている。保護可能期間はユーザに保護を保証する期間ではないが履歴情報が残っていれば保護が可能であることを示す。
図13は、プール容量の回収の考え方を説明する図を示す。あるプールに属するCDPグループ#1とCDPグループ#2がある。以下、CDPグループを単にグループと呼ぶ場合がある。プールの空き容量が不足を防止するため、プールの空き容量として確保することが必要な空き容量は100GBとする。即ち、100GBだけ、プールの空き容量増加させる。
グループ#1は、目標保護期間が7日である。現在から過去7日分の合計データ量は140GBである。7日前より前のデータは保護可能期間2日分の合計データ量40GBを持つ。グループ#2は、目標保護期間が3日である。現在から過去3日分の合計データ量は300GBである。3日前より前のデータは保護可能期間1日分の合計データ量100GBを持つ。
同じプールに属するグループ#1とグループ#2の保護可能期間のデータ量の合計量は40GB+100GB=140GBである。この140GBのデータ量のうち100GBをパージして必要な空き容量を確保する。140GBの中からグループ#1とグループ#2のパージ量の割合は、パージ後の保護可能期間が同一となるよう、残すデータ量を決定する。図13の例では、グループ#1のパージするデータ量は33.3GBであり、グループ#1の保護可能期間の残すデータ量は8時間分の6.67GBである。グループ#2のパージするデータ量は66.7GBであり、グループ#2の保護可能期間の残すデータ量は8時間分の33.3GBである。なお、パージ後の保護可能期間は同一ではなく、所定の関係になるようにすることも可能である。所定の関係とは、例えば、データの重要やSLA(Service Level Agreement)に基づく比率(重要データは通常データの2倍など)や、目標保護期間に比例した関係(保護可能期間も7対3の長さにする)である。また、保護可能期間の長さではなく保護可能期間のデータ量で定まる所定の関係にしてもよい。
上記のように目標保護期間が異なる複数のグループが同一プールに存在する場合でも、プール満杯を回避しつつ、保護期間を出来る限り長く保つことができる。複数のグループが同一プールに存在する場合、どのグループからどの程度の容量をパージすべきか決めることは難しい。目標保護期間を全グループで満たすようにパージしたとしても、プールの空きを十分に確保できない場合も考慮する必要がある。グループの目標保護期間を考慮したパージ量を決めることで、目標保護期間をグループ間で均等に守ることができる。目標保護期間を保てない場合でもグループ間で均等に目標保護期間の短縮期間を均等になるように各グループがパージする量を決定する。
<動作フロー>
図14は、図1のS11の詳細処理を示すフローチャート図である。必要とするプールの容量を予測し算出する処理である。プール毎に本処理を実行する。
ストレージコントローラ101はプール容量回収プログラム413を実行する。まず、ストレージコントローラ101は、必要とするプール容量を予測すべき期間を決定する。例えば現在から3日分の空き容量を算出するとする(S1110)。ストレージコントローラ101は、書き込み要求頻度(単位時間あたりの書き込みデータ量)1105を参照する。書き込みデータ量1105が1日単位の書き込みデータ量の場合、3倍することで3日分が必要なプールの容量を算出する(S1112)。
単位時間あたりの書き込みデータ量は、グループ毎やプールボリューム毎に取得してもよい。
S1110にて算出した必要な空き容量と現在の空き容量を比較して(S12)、現在の空き容量が必要な空き容量より多い場合は空き容量は既に十分確保できているとして処理を終了する。必要な空き容量が不足している場合は、空き容量を確保するために、S13の処理へ進む。具体的には、保護可能期間のデータのうち一部を破棄(パージ)して空き容量を増やす。パージする容量は必要な空き容量の不足分として、必要な空き容量から現在の空き容量を減算することで算出できる。
また別の実施例として、PDEVがフラッシュメディアの場合、プール内のガベージの総量を求め、S1110にて算出した必要な空き容量とガベージの総量を比較してガベージを空き容量にすれば空き容量が足りる場合はガベージコレクションを実行してもよい。その際には、ガベージコレクションを実行するためにかかる時間を考慮し、ガベージコレクションにかかる時間とパージ時間が予め決めた閾値以下であればガベージコレクションを選択する。なお、フラッシュメディアの場合パージ後はガベージとなり、ガベージコレクションが完了すると空き領域として使用可能となる。
単位時間当たりの書き込みデータ量を予測するために、書き込み要求を受信する頻度と前記書き込み要求の書き込みデータサイズ(容量)をモニタする。モニタはプール内のグループ毎に行う。一例としてボリューム毎にモニタを行い、グループに属する全ボリュームのモニタを行った結果から、グループの書き込み要求頻度を算出してもよい。一例としてボリュームより小さい記憶単位で行ってもよい。
モニタを実行するときには、モニタ時間帯を指定する。もしくは、ストレージシステムでCDP機能が稼動している間は常にモニタし、モニタ開始時刻とモニタ終了時刻までの予め決めたモニタ期間の書き込み要求数をカウントし、モニタ終了時刻になったら、モニタ終了時刻をモニタ開始時刻に設定を新たな期間のモニタを行い、モニタ処理を継続する。
図15は、図1のS13の処理で、プール全体の回収可能容量を算出する処理である。
つまり、プールに格納された書き込みデータのうち、目標保護期間を過ぎた保護可能期間に書き込みされたデータ全体の容量を算出する。
ストレージコントローラ101はプール容量回収プログラム413を実行する。図8に示したプール管理テーブル424を参照し、プール番号から対応するグループ番号を取得する。取得したグループ番号を図10に示したCDPグループ管理テーブル426からプールを使用するグループ、即ちグループ701の対象となるグループの目標保護期間703を参照する(S1310)。容量はプールのグループに属するボリュームのメタ情報620の時刻621を参照し、グループ#iに属するVol#jの保護可能期間の総容量算出、つまり、目標保護期間703の時刻より過去の時刻をもつメタ情報を抽出し、メタ情報のデータ量である容量624を合算していく(S1312)。
次に、グループ#iのVolの保護可能期間内の累計、つまり、これをボリューム毎に行い、グループでの保護可能期間のデータ量の総容量を算出する(S1314)。次に、プールに属する前記グループ#iの保護可能期間内の累計、つまり、プールを使用する全グループの保護可能期間のデータ量の総容量を合算し、プール内の目標保護期間外の容量を算出する(S1316)。
保護可能期間の容量は一定時間間隔に算出し、算出した結果をテーブルに保持してもよい。
図16は、グループ毎にパージする情報を決定するS14の処理である。つまり、S13で求めたプールの保護可能期間のデータのうち、どのデータをパージするかを決定する処理を示すフローチャート図である。
ストレージコントローラ101はプール容量回収プログラム413を実行する。確保すべき容量は、必要な空き容量の不足分として、必要な空き容量-現在の空き容量により、算出できる。確保すべき容量と前記プールに属する全グループの保護可能期間のデータ量の総容量(パージ可能容量)を比較し(S1410)、確保すべき容量が小さい場合はS1412へ進む。それ以外はS1416へ進む。確保すべき容量が小さい場合、パージするデータを選択する処理する(S1412)。前記パージするデータを報告して終了する(S1414)。パージの結果、保護可能期間が短縮されるため、ストレージコントローラ101は、実際にリストアする際にS1414で教示された保護可能期間を管理システム205の表示装置などに表示するよう制御する。
S1410で確保すべき容量の方が大きい場合(S1416)、保護可能期間のデータ全てをパージしても容量が足りないことから、目標保護期間のデータからパージするデータを選択する(S1418)。S1418にて選択したデータと保護可能期間のデータを教示する(S1420)。さらに、目標保護期間の変更を管理システム205の表示装置などに表示するよう制御することで教示する(S1422)。目標保護期間の変更を教示された場合、管理者が変更を許す場合、パージS15を実行するようにする。即ち、ストレージコントローラは、管理者から目標保護期間を短縮することを承認する信号が入力された場合に、パージ処理を実行する。パージの結果、目標保護期間が短縮されるため、ストレージコントローラ101は、実際にリストアする際に、教示された目標保護期間を表示装置などに表示するよう制御する。確保すべき容量を満たすために、ジャーナルの殆どをパージしなければならない場合、或いは、パージによっても確保すべき容量に満たない場合には、プールの容量を拡張しても良い。
S1424で確保すべき容量とパージ可能容量が等しい場合、保護可能期間のデータ全てのジャーナルをパージデータとして教示する(S1426)。パージにより保護可能期間の変更は管理システム205の表示装置などに表示するよう制御する。
確保すべき容量と現在の空き容量が同じ場合は、保護可能期間のデータを全てパージすることを教示する。
図17は、S1412の処理の一例を示すフローチャート図である。保護可能期間のデータの中からパージするデータを選択する。
保護可能期間のデータをパージする場合、メタ情報の時刻621の古い時刻のメタ情報から順に選択し、データ格納先625に示されるアドレスに格納されたデータをパージする。プールに属する各グループの目標保護期間から同じ期間分の保護可能期間のデータが残るように各グループのパージするデータ量を決める。
目標保護期間からデータを残す期間をxとする。例えば、あるプールのグループ#1の目標保護期間を3日間、グループ#2の目標保護期間を1週間、xを16時間とすると、グループ#1は現在時刻から3日+16時間より前の時刻のメタ情報に示されるデータをパージする。グループ#2は1週間+16時間より前の時刻のメタ情報に示されるデータをパージする。
パージすべき容量(不足容量)を以下の式により算出する(S1510)。
パージする容量=必要な空き容量-現在の空き容量
次に、保護可能期間のメタ情報の時刻が一番過去であるものからメタ情報のある時刻までの書き込みデータの合計容量が前記パージする容量分となる時刻を求める。
図14と同様に、プールに属するグループ毎に単位時間あたりの書き込みデータ量であるグループ[i]の単位時間あたりの書き込みデータ量をs_wdata[i]を求める(S1512)。グループ[i]の単位時間あたりの書き込みデータ量をs_wdata[i]と、グループ[i]の過去一番古い時刻[i]とすると、グループ[i]のパージ終了時刻t_p_end[i]は、
パージする期間=前記パージする容量/Σs_wdata[i]
パージ終了時刻t_p_end[i]=過去一番古い時刻[i]+パージする期間
(S1514)
保護可能期間の書き込みデータのうち、メタ情報の時刻の一番古いものからt_p_end[i]までの書き込みデータをパージする。
以上のことから、プールに属するグループ[i]のパージを順次実施する。グループ[i]のメタ情報の時刻の一番古いものから順にデータに格納されるアドレスに格納されるデータをパージしていく。データが格納された場所は解放され空き領域となる。メタ情報も削除する。パージしたデータの容量は合算して保持しておく(S1516)。プール内全グループのパージ処理が終了し、前記パージしたデータの容量の合算がパージする容量を超えていれば処理を終了し、パージする容量に満たない場合は更なる保護可能期間の書き込みデータのパージを続ける(S1518)。パージを続ける場合は、パージ終了時刻を早めてパージする。
図18は、S1418の処理を示すフローチャート図を示す。保護可能期間のデータをパージしただけでは不足する場合、目標保護期間のデータもパージする必要があるため、どのデータをパージするか決定する。プールに属する複数のグループの目標保護期間の短縮時間が同じになるようにパージするデータを選択する。
前記プールの不足容量を、確保すべき容量-保護可能期間のデータ総容量により、算出する(S1610)。
プールにおける、目標保護期間から単位時間あたりの書き込みデータ量を参照する(S1612)。
目標保護期間の最古の時刻から順にメタ情報の書き込みデータをパージしそのパージ量の累積量がS1610で求めたプール不足容量より大きくなる、パージ終了時刻を求める。
パージする期間=前記パージする容量/Σs_wdata[i]
パージ終了時刻t_p_end[i]=過去一番古い時刻[i]+パージする期間
(S1614)
目標保護期間の書き込みデータのうち、メタ情報の時刻の一番古いものからt_p_end[i]までの書き込みデータをパージする。
以上のことから、プールに属するグループ[i]のパージを順次実施する。グループ[i]のメタ情報の時刻の一番古いものから順にデータに格納されるアドレスに格納されるデータをパージしていく。データが格納された場所は解放され空き領域となる。メタ情報も削除する。パージしたデータの容量は合算して保持しておく(S1616)。プール内全グループのパージ処理が終了し、前記パージしたデータの容量の合算がパージする容量を超えていれば処理をS1620へ進み、パージする容量に満たない場合は更なる保護可能期間の書き込みデータのパージを続ける(S1618)。パージを続ける場合は、パージ終了時刻を繰り上げてパージする。
パージが終了したら、目標保護期間が変更になったこと、現在の目標保護期間について報告する(S1620)。
別の実施例では、目標保護期間が1日未満のグループがあった場合、そのグループの目標保護期間は変更しない。即ち前記グループの目標保護期間のメタ情報の書き込みデータは削除しない。
別の実施例ではグループ毎に保護可能期間の設定できる。また保護可能期間は目標保護期間のグループ間の比率に合わせることもできる。例えばグループ#1が目標保護期間2日でグループ#2が4日の場合、本パージ処理により、グループ#1は1日分の履歴を保護し、グループ#2は2日分の履歴を保護する。
図19はプール容量を回収する処理を起動する処理を示すフローチャート図である。
プールの空き容量を定期的に監視する。予め設定した閾値とプールの空き容量を比較し(S1810)、空き容量が閾値を下回った場合は、S10のプール容量回収処理を起動する(S1812)。
定期的な監視以外に、他の処理でプール容量をチェックし空き容量が少ないと判断された場合には起動する。
他には、ユーザやシステム管理者が指示をしてプール容量回収処理を起動することもできる。その際には、管理システム201経由、または、ストレージシステムに接続された端末(図示せず)から指示する。
別の実施例において、ストレージシステム200にスナップショットを取得することでデータ保護を実現する方法がある。スナップショット技術は特許公報5657801号公報に記載されている。
以上のように、復旧処理するための履歴情報を格納する必要なプールの空き容量を算出し、目標保護期間を過ぎた余剰期間である履歴情報の容量を算出し、目標保護期間を過ぎた余剰期間である履歴情報のうちどの情報をパージするかを決定する。
プール内の各グループで目標保護期間と実際の保護期間の差が小さくなるようにパージ期間を算出するため、グループ間で保護可能な期間の履歴情報を平等に残しつつ、プールが満杯にならないようにすることができる。
図20は、ストレージシステム200におけるスナップショット構成の説明図である。ストレージシステム200内には、ローカルメモリ401にあるスナップショット制御プログラム414によって、ボリューム511Pの複製のボリューム511Sが少なくとも一つ以上設けられる。ボリューム511P及びボリューム511Sは、PDEV220の有する物理的記憶領域を仮想化することにより生成される。ボリューム511Pの仮想化は図4で説明したものと同様である。また、ボリューム511Pは仮想化せずにPDEV220の有する物理的記憶領域から直接生成してもよい。また、ボリューム511P及びボリューム511Sはボリュームでなく記憶領域でもよい。以下、ボリュームを用いて説明するが発明の本質は変わらない。
ボリューム511Pは、スナップショット制御プログラム414により、スナップショットボリュームが作成される。ボリューム511Pはその記憶内容がスナップショットボリューム511Sによって保護されるPVOLボリュームである。ボリューム511Pはサーバシステム201と接続され、サーバシステム201から書き込まれるデータを記憶する、業務に使用される本番ボリュームである。サーバシステム201はボリューム511Pにデータを書き込み、ボリューム511Pからデータを読み出すことができる。
ボリューム511Sは、ボリューム511Pのスナップショットボリュームであり、ボリューム511Pの過去の所定時点の記憶内容を維持するボリュームである。ある時点にボリューム511Pのスナップショットを取ったらその時点の状態としてボリューム511Sが保護される。スナップショットは複数取ることができる。ある時点t0でスナップショットSSVOL#11を取り、時点t0から将来の時点t1にスナップショットSSVOL#12を取った場合、時点t0の時点及びt1の時点のボリューム511Pは保護可能である。例えば、時点t0と時点t1の間の時点txに障害が発生した場合、時点t0に復元可能である。
図4の説明したとおり、ボリューム511Pのページにプール503のページ51を割り付ける。図20に示す通り、スナップショット取得後においては、ページ51はボリューム511Pのコピー先のボリューム511Sはボリューム511Pのページ51を参照するようにする。すなわち、ボリューム#1を複製した後においては、ページ51Pとは、ボリューム#1から参照され、また、ボリューム#1のスナップショットであるボリューム#11からも、ボリューム#1を介して間接的に参照されるようになる。
図21は、アドレス変換テーブル422_1の例を示す図である。アドレス変換テーブル422_1は、ボリューム511毎に設定される。アドレス変換テーブル422_1は、参照元の論理アドレス(VOL内アドレス)と参照先の論理アドレスとの関係に関する情報を保持する。
例えば、アドレス変換テーブル422_1は、ページ又はブロック毎にエントリを有する。各エントリは、VOL内アドレス911、参照先ページ#912、参照VOL913、及びデータサイズ914といった情報を格納する。以下、1つのブロック601(「対象ブロック」と呼ぶ)を例に取って説明する。
VOL内アドレス911は、ボリューム511Pにおける対象ブロックの論理アドレス(例えば先頭論理アドレス)の情報である。参照先ページ#912は、対象ブロックの参照先のプールのページにおける対象ブロックの論理アドレスに対応する論理アドレス(参照先プール内の論理アドレス)の情報である。参照VOL913は、ボリューム511Pのスナップショットボリューム511Sのうち、VOL内アドレス911を参照しているボリュームの番号である。データサイズ914は、対象ブロックのサイズの情報である。
図22は、図20の構成におけるボリューム511Pへのライト処理を説明する図である。図20を適宜参照して説明する。
ボリューム#1のデータセットAは、プールに格納された実データへマッピングされている。ボリューム#1のスナップショットである別のボリューム#11は、スナップショットが取られた時、スナップショット元であるボリューム#1をボリューム#11の全アドレスが参照する。即ち、ボリューム#11はボリューム#1を介してプールに格納されるデータセットを参照する。
データセットAを更新する処理を図22に示す。ボリューム#1のデータセットAは、別のボリューム#11から参照されているため、データセットAを更新する前にデータセットAをプール領域内の新たな領域、例えば、新たに確保したページ#2に退避コピーを行う。ボリューム#11は、ボリューム#1のデータセットAへのポイント先を、データセットAの退避先領域に切り替える。そして、ボリューム#11のアドレス変換テーブル422_1の参照先ページ912を切り替えたポイント先に更新する。その後、データセットAが格納されていた領域に新たな書き込みデータであるデータセットEを上書きする。
同じ領域へ更に書き込み処理をする場合、例えば、データセットEが他のボリュームから参照されていなければ、データセットEが格納されていた領域にデータセットFを上書きする(図23)。
ボリューム#1のスナップショットが複数個取られていた場合、スナップショットボリューム#11_0~nの中で、スナップショット取得時刻の最古のボリューム#11_0を退避先のデータセットAへポイントし、他のスナップショットのボリューム#11_nはボリューム#11_0を参照する(図24~図25)。図24に示すように、ボリューム#1のスナップショットをボリューム#11_0とボリューム#11_1に2つ取る場合、ボリューム#11_0とボリューム#11_1ともにボリューム#1をポイントする。図25に示すように、データセットAにデータセットEが上書きされると、ボリューム#11_0は退避して格納されたデータセットAをポイントし、ボリューム#11_1はボリューム11_0をポイントする。ボリューム#11_1はボリューム#11_0を介してデータセットAを参照する。
別の実施例として、プール503を仮想ボリューム用の領域とスナップショット用の領域とに分けて使用量を管理してもよい。
実施例2では、一つまたは複数のボリューム511PをCDP対象として保護することができる。つまり、一つのボリューム511Pだけを単独で保護することもできるし、あるいは、複数のボリューム511Pをコンシステンシグループ521_nによりグループ化し、グループ全体として保護することもできる。即ち、グループとは、保護期間を同一に設定されるデータ、ボリュームやボリューム群で、コンシステンシグループ521_nである。実施例1で説明した図4に示すCDPグループ520_nに相当する。
図26に、図20の構成におけるコンシステンシグループを示す。
コンシステンシグループ521は、ボリューム511のスナップショットであるボリューム511Sの同じ世代を含む。例えば、ボリューム511P_1のスナップショットボリュームであるボリューム511S_1_1と、ボリューム511P_2のスナップショットボリュームであるボリューム511S_2_1がコンシステンシグループ521_1に属する。コンシステンシグループ521ごとに目標保護期間を設定する。例えばコンシステンシグループ521_1は目標保護期間3日、コンシステンシグループ521_2は目標保護期間1日というように、コンシステンシグループ521ごとに目標保護期間を設ける。コンシステンシグループ521の目標保護期間に基づいて図1の処理を実施する。
別の実施例として、図1のS11の必要とするプールの容量を予測し算出する処理(図14)のS1112の処理の詳細を示す。実施例2の場合、既に書き込みされたデータに対し再度書き込みする上書き処理について、スナップショットを取った他のボリュームが上書き処理される旧データ参照していれば、旧データを退避するための新たな領域が必要となる。
他のボリュームが上書き処理される旧データを参照していなければ、旧データに上書きするため新たな領域は必要ないの。このことから、データへの1度の上書きの頻度と2度目以降の上書きの頻度をモニタし必要な容量を予測する。例えば、図20のボリューム#1のAはボリューム#11から参照されている。図23のボリューム#1のEはどのスナップショット世代からも参照されていない。ストレージコントローラ101はプール容量回収プログラム413を実行し、単位時間当たりの書き込み要求数と、そのうちの上書き要求数をモニタし、1回目の書き込み頻度、2回目の書き込み頻度、3回目以降の書き込み頻度を予測する。1回目の書き込みではデータ格納容量が必要であり、2回目の書き込みでも退避する分のデータ格納容量が必要となる。3回目以降はデータが格納された領域に上書きするのみのため、新たな容量は必要としない。書き込み頻度から単位時間当たりの書き込みデータ量を算出し必要なプール容量を予測する。
別の方法として、業務ボリュームの容量と同じ容量をスナップショットで必要なプール容量として設定してもよい。
以上のように、プールに属する各グループの目標保護期間と保護可能期間の期間が同じようになるように、過去の書き込み要求があったデータをパージするため、期待するデータ保護期間を達成できるグループを増やしつつ、プールが満杯にならないように制御する。
以上、一実施形態を説明したが、これは1つの例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。
本発明は、他の種々の形態でも実施することが可能である。例えば、ライト要求のようなI/O要求の送信元(I/O元)は、上述の実施形態では、サーバシステム201であるが、ストレージシステム200における図示しないプログラム(例えば、VM上で実行されるアプリケーションプログラム)であってもよい。
100:計算機システム、
101:ストレージコントローラ、
200:ストレージシステム、
201:サーバシステム、
203:ネットワーク、
204:ネットワーク、
205:管理システム、
211:プロセッサ、
212:メモリ、
213:I/F、
214:I/F、
215:I/F、
220:PDEV、
401:ローカルメモリ、
402:キャッシュメモリ、
404:共有メモリ、
411:リードライトプログラム、
412:CDP制御プログラム、
413:プール容量回収プログラム、
414:スナップショットプログラム、
501P:プライマリボリューム、
501B:基底ボリューム、
501J:ジャーナルボリューム、
503:プール、
520:CDPグループ。

Claims (9)

  1. ストレージコントローラと、前記ストレージコントローラによって構成される、複数のボリュームと、前記複数のボリュームの論理的記憶領域に物理的記憶領域を割り当てるプールと、を有するストレージシステムにおいて、
    前記ストレージコントローラは、
    前記複数のボリュームの内、第1の目標保護期間が設定される1以上の第1のプライマリボリュームと、前記第1のプライマリボリュームの所定時刻のコピーを格納する第1のコピー用ボリュームと、前記第1のプライマリボリューム更新に関する履歴情報を格納する第1の履歴情報用ボリュームとを含む第1のグループと、
    前記複数のボリュームの内、第2の目標保護期間が設定される1以上の第2のプライマリボリュームと、前記第2のプライマリボリュームの所定時刻のコピーを格納する第2のコピー用ボリュームと、前記第2のプライマリボリューム更新に関する履歴情報を格納する第2の履歴情報用ボリュームとを含む第2のグループとを構成し、
    前記第1のグループと前記第2のグループに含まれるボリュームは、同一の前記プールの物理的記憶領域を利用するものであり、
    前記第1の履歴情報用ボリュームに格納された前記第1のプライマリボリューム更新に関する履歴情報が、前記第1の目標保護期間及び前記第1の目標保護期間より以前の履歴情報に対応する第1の保護可能期間を提供でき、前記第2の履歴情報用ボリュームに格納された前記第2のプライマリボリューム更新に関する履歴情報が、前記第2の目標保護期間と前記第2の目標保護期間より以前の履歴情報に対応する第2の保護可能期間を提供できる状態から、前記プールの空き容量増加させる場合、前記第1の保護可能期間と前記第2の保護可能期間が所定の関係となるように、前記第1の保護可能期間および前記第2の保護可能期間からパージ対象となる履歴情報を決定することを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムにおいて、
    前記所定の関係は、前記第1の保護可能期間と前記第2の保護可能期間とが同一になることであることを特徴とするストレージシステム。
  3. 請求項1に記載のストレージシステムにおいて、
    前記パージ対象となる履歴情報を、前記第1のコピー用ボリュームおよび前記第2のコピー用ボリュームとにそれぞれ反映させることを特徴とするストレージシステム。
  4. 請求項1に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記パージ対象となる前記履歴情報をパージすることによって短縮する前記第1の保護可能期間及び前記第2の保護可能期間を、表示するよう制御することを特徴とするストレージシステム。
  5. 請求項1に記載のストレージシステムにおいて、
    前記プールの空き容量増加させるため、前記第1の目標保護期間を構成する前記第1の履歴情報用ボリュームに格納された前記第1のプライマリボリューム更新に関する履歴情報の一部と、前記第2の目標保護期間を構成する前記第2の履歴情報用ボリュームに格納された前記第2のプライマリボリューム更新に関する履歴情報の一部をパージする場合、前記第1の目標保護期間と前記第2の目標保護期間とで短縮される期間が同一となるようにパージ対象となる履歴情報を決定することを特徴とするストレージシステム。
  6. 請求項5に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記パージ対象となる前記履歴情報をパージすることによって短縮する前記第1の目標
    保護期間及び前記第2の目標保護期間を、表示するよう制御することを特徴とするストレージシステム。
  7. 請求項6に記載のストレージシステムにおいて、
    前記ストレージコントローラは、表示した目標保護期間の短縮を承認する信号を入力に応答して、前記パージ対象となる履歴情報のパージ処理を実行することを特徴とするストレージシステム。
  8. 請求項1に記載のストレージシステムにおいて、
    前記ストレージコントローラは、
    前記第1のグループを、前記複数のボリュームの内、前記第1の目標保護期間が設定される前記第1のプライマリボリュームの第1の世代のスナップショットを格納する第1のスナップショットボリュームと、前記第2の目標保護期間が設定される前記第2のプライマリボリュームの第1の世代のスナップショットを格納する第2のスナップショットボリュームとで構成し、
    前記第2のグループを、前記複数のボリュームの内、前記第2の目標保護期間が設定される前記第1のプライマリボリュームの第2の世代のスナップショットを格納する第3のスナップショットボリュームと、前記第2の目標保護期間が設定される前記第2のプライマリボリュームの第2の世代のスナップショットを格納する第4のスナップショットボリュームとで構成することを特徴とするストレージシステム。
  9. ストレージコントローラと、前記ストレージコントローラによって構成される、複数のボリュームと、前記複数のボリュームの論理的記憶領域に物理的記憶領域を割り当てるプールと、を有するストレージシステムの履歴情報管理方法において、
    前記ストレージコントローラは、
    前記複数のボリュームの内、第1の目標保護期間が設定される1以上の第1のプライマリボリュームと、前記第1のプライマリボリュームの所定時刻のコピーを格納する第1のコピー用ボリュームと、前記第1のプライマリボリュームへ更新に関する履歴情報を格納する第1の履歴情報用ボリュームとを含む第1のグループと、
    前記複数のボリュームの内、第2の目標保護期間が設定される1以上の第2のプライマリボリュームと、前記第2のプライマリボリュームの所定時刻のコピーを格納する第2のコピー用ボリュームと、前記第2のプライマリボリューム更新に関する履歴情報を格納する第2の履歴情報用ボリュームとを含む第2のグループとを構成し、
    前記第1のグループと前記第2のグループに含まれるボリュームは、同一の前記プールの物理的記憶領域を利用するものであり、
    前記第1の履歴情報用ボリュームに格納された前記第1のプライマリボリュームの更新に関する履歴情報が、前記第1の目標保護期間及び前記第1の目標保護期間より以前の履歴情報に対応する第1の保護可能期間を提供でき、前記第2の履歴情報用ボリュームに格納された前記第2のプライマリボリュームの更新に関する履歴情報が、前記第2の目標保護期間と前記第2の目標保護期間より以前の履歴情報に対応する第2の保護可能期間を提供できる状態から、前記プールの空き容量増加させる場合、前記第1の保護可能期間と前記第2の保護可能期間が所定の関係となるように、前記第1の保護可能期間および前記第2の保護可能期間からパージ対象となる履歴情報を決定することを特徴とするストレージシステムの履歴情報管理方法。
JP2019112575A 2019-06-18 2019-06-18 ストレージシステムおよび履歴情報管理方法 Active JP7304215B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019112575A JP7304215B2 (ja) 2019-06-18 2019-06-18 ストレージシステムおよび履歴情報管理方法
US16/807,317 US11269550B2 (en) 2019-06-18 2020-03-03 Storage system and history information management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019112575A JP7304215B2 (ja) 2019-06-18 2019-06-18 ストレージシステムおよび履歴情報管理方法

Publications (2)

Publication Number Publication Date
JP2020204932A JP2020204932A (ja) 2020-12-24
JP7304215B2 true JP7304215B2 (ja) 2023-07-06

Family

ID=73837033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019112575A Active JP7304215B2 (ja) 2019-06-18 2019-06-18 ストレージシステムおよび履歴情報管理方法

Country Status (2)

Country Link
US (1) US11269550B2 (ja)
JP (1) JP7304215B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356240B (zh) * 2021-12-30 2023-09-26 重庆市紫建电子股份有限公司 一种快速高效检验容量流程的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243956A1 (en) 2007-03-27 2008-10-02 Hitachi, Ltd. Management device and method for storage device executing cdp-based recovery
JP2008282239A (ja) 2007-05-11 2008-11-20 Hitachi Ltd 記憶制御装置、記憶制御装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
JP4972457B2 (ja) 2007-05-11 2012-07-11 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
US10866869B2 (en) * 2019-01-16 2020-12-15 Vmware, Inc. Method to perform crash and failure recovery for a virtualized checkpoint protected storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243956A1 (en) 2007-03-27 2008-10-02 Hitachi, Ltd. Management device and method for storage device executing cdp-based recovery
JP2008242744A (ja) 2007-03-27 2008-10-09 Hitachi Ltd Cdpに従うリカバリを実行するストレージ装置の管理装置及び方法
JP2008282239A (ja) 2007-05-11 2008-11-20 Hitachi Ltd 記憶制御装置、記憶制御装置の制御方法

Also Published As

Publication number Publication date
US20200401348A1 (en) 2020-12-24
US11269550B2 (en) 2022-03-08
JP2020204932A (ja) 2020-12-24

Similar Documents

Publication Publication Date Title
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US8805902B2 (en) Managing snapshot storage pools
US7685378B2 (en) Methods and apparatus for adjusting a journal area for continuous data protection
KR101137299B1 (ko) 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리
US9081690B2 (en) Storage system and management method of control information therein
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
JP5366480B2 (ja) 計算機システム及びそのバックアップ方法
US9031911B2 (en) Preserving past states of file system nodes
US8972350B2 (en) Preserving a state using snapshots with selective tuple versioning
US8352426B2 (en) Computing system and data management method
US20180267856A1 (en) Distributed storage system, data storage method, and software program
US20090216973A1 (en) Computer system, storage subsystem, and data management method
JP6600698B2 (ja) 計算機システム
JP2004342050A (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
EP1605356B1 (en) Storage system and method for acquisition and utilisation of snapshots
US20110246731A1 (en) Backup system and backup method
KR20150081810A (ko) 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치
US20130325810A1 (en) Creation and expiration of backup objects in block-level incremental-forever backup systems
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP7304215B2 (ja) ストレージシステムおよび履歴情報管理方法
JP7190421B2 (ja) ストレージシステム及びボリューム複製方法
US20210232466A1 (en) Storage system and restore control method
JP5275691B2 (ja) ストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230626

R150 Certificate of patent or registration of utility model

Ref document number: 7304215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150