JP2016162245A - ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム Download PDF

Info

Publication number
JP2016162245A
JP2016162245A JP2015040777A JP2015040777A JP2016162245A JP 2016162245 A JP2016162245 A JP 2016162245A JP 2015040777 A JP2015040777 A JP 2015040777A JP 2015040777 A JP2015040777 A JP 2015040777A JP 2016162245 A JP2016162245 A JP 2016162245A
Authority
JP
Japan
Prior art keywords
cow
information
unit
volume
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015040777A
Other languages
English (en)
Inventor
吾郎 山田
Goro Yamada
吾郎 山田
義勝 御宿
Yoshimasa Mishuku
義勝 御宿
友明 佐々木
Tomoaki Sasaki
友明 佐々木
新菜 塚本
Nina Tsukamoto
新菜 塚本
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.)
Fujitsu Ltd
Fujitsu Broad Solution and Consulting Inc
Original Assignee
Fujitsu Ltd
Fujitsu Broad Solution and Consulting Inc
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 Fujitsu Ltd, Fujitsu Broad Solution and Consulting Inc filed Critical Fujitsu Ltd
Priority to JP2015040777A priority Critical patent/JP2016162245A/ja
Priority to US15/012,064 priority patent/US20160259579A1/en
Publication of JP2016162245A publication Critical patent/JP2016162245A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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

Landscapes

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

Abstract

【課題】世代数の増加に伴うアクセス性能の低下を抑制するためのスナップショットの取得技術を提供する。【解決手段】ストレージ制御装置は、生成部、第1関係付け部、及び、第2関係付け部を含む。生成部は、記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた差分情報に基づいて、複数世代の差分情報を集約した集約情報を生成する。第1関係付け部は、集約情報を最古の静止点でのボリュームの状態に関係付ける。第2関係付け部は、直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、集約情報に関係付ける。【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラムに関する。
データの記録方式の一つにスナップショットがある。スナップショットでは、所定の静止点におけるデータが保持されながら、新規のInput / Output(I/O)が受け付けられる。これによりスナップショットは、最新のデータの参照及び更新と、静止点におけるデータの参照とを可能にする。
スナップショットの一例として、静止点のデータと最新のデータとの差分(以下の説明では、COW(Copy-On-Write)と記す)を保持することで、記憶容量や処理オーバヘッドを削減する方式がある。このようなスナップショットのデータの管理方法は以下の2種類に大別される。すなわち、1つのデータ管理方法は、最新のデータについては、所定の記憶領域(以下、ベースLogical Unit Number(LUN)と記す)に全てのボリュームのデータが保持され、静止点毎に差分としてCOWが保持される方法である。この管理方法では、COWにはベースLUNの更新に伴い変更されたデータの変更前のデータが保持される。他の1つのデータ管理方法は、ボリュームの最古のデータについてはベースLUNに全て保持され、静止点毎に差分としてCOWが保持される方法である。この管理方法では、COWにはベースLUNの更新に伴い変更されたデータの変更後のデータが保持される。
上記のいずれの方式も、1つのボリュームに対して複数回のスナップショットの採取が可能である。以下の説明では、同一ボリューム(以下、対象ボリュームと記す)から採取された一連のスナップショットの中から1つのスナップショットを指定するときの単位を、「世代」として記す。
特開2014−6845号公報 特開2002−278819号公報
しかしながら、スナップショットの取得が繰り返されることにより、世代数が多くなると、アクセス性能が低下する。
そこで、1つの側面では、本発明は、世代数の増加に伴うアクセス性能の低下を抑制するためのスナップショットの取得技術を提供することを目的とする。
一態様によるストレージ制御装置は、生成部、第1関係付け部、及び、第2関係付け部を含む。生成部は、記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた差分情報に基づいて、複数世代の差分情報を集約した集約情報を生成する。第1関係付け部は、集約情報を最古の静止点でのボリュームの状態に関係付ける。第2関係付け部は、直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、集約情報に関係付ける。
一側面によれば、世代数の増加に伴うアクセス性能の低下を抑制するためのスナップショットの取得技術を提供することができる。
実施形態に係るストレージ制御装置の構成の一例を示す。 第1の比較例におけるCOWの作成に関する説明図である。 第1の比較例におけるデータの書き込みに関する説明図である。 第1の比較例におけるデータの読み出しに関する説明図である。 第2の比較例におけるCOWの作成に関する説明図である。 第2の比較例におけるデータの書き込みに関する説明図である。 第2の比較例におけるデータの読み出しに関する説明図である。 実施形態に係るストレージ装置の構成の一例を示す。 実施形態に係るスナップショットの管理構造の一例を示す。 COWのデータ構造の一例を示す。 差分情報の構成の一例を示す。 実施形態におけるデータの書き込みに関する説明図である。 実施形態におけるデータの読み出しに関する説明図である。 比較例と実施形態の読み出し及び書き込みの性能の比較図である。 実施形態に係るCOWの作成に関する説明図である。 COW作成処理の詳細を図解したフローチャートの一例である。 実施形態に係るリストアに関する説明図である。 実施形態に係るリストアにおけるマージ処理の説明図である。 リストア処理の詳細を図解したフローチャートの一例である。 リストア処理におけるマージ処理の詳細を図解したフローチャートの一例である。 実施形態に係る、管理形態2から管理形態1への切り替え処理の説明図である。 管理形態2から管理形態1への切り替え処理の詳細を図解したフローチャートの一例である。 実施形態に係る、管理形態1から管理形態2への切り替え処理の説明図である。 管理形態1から管理形態2への切り替え処理の詳細を図解したフローチャートの一例である。 実施形態に係る読み出し処理の詳細を図解したフローチャートの一例である。 実施形態に係るストレージ装置のハードウェア構成の一例を示す。
図1は、実施形態に係るストレージ制御装置の構成の一例を示す。図1において、ストレージ制御装置1は、生成部2、第1関係付け部3、第2関係付け部4、統合部5、第3関係付け部6、リストア部7、削除部8、及び、読み出し部9を含む。
生成部2は、記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた差分情報に基づいて、複数世代の差分情報を集約した集約情報を生成する。第1関係付け部3は、集約情報を最古の静止点でのボリュームの状態に関係付ける(紐付ける)。第2関係付け部4は、直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、集約情報に関係付ける。
これにより、実施形態に係るストレージ制御装置1は、スナップショットの世代数が多い場合でも、運用世代のデータに対するアクセス性能の低下を抑制することができる。
統合部5は、新規の静止点におけるスナップショットの取得指示を受信した場合、集約情報に更新情報をマージする。第3関係付け部6は、マージ済みの更新情報を最新世代の差分情報に関係付ける。生成部2は、さらに、新規の静止点のボリュームの状態から更新されたボリュームの更新情報を生成する。第2関係付け部4は、生成した更新情報を集約情報に関係付ける。
これにより、実施形態に係るストレージ制御装置1は、スナップショットの世代数が増加した場合でも、アクセス性能の低下を抑制できるデータ構造を保ったまま、スナップショットの取得が可能となる。
生成部2は、新規の静止点におけるスナップショットの取得指示を受信した場合、新規の静止点のボリュームの状態から更新されたボリュームの更新情報である第1の更新情報を生成する。そして生成部2は、第1の更新情報を、スナップショットの取得指示の受信前に存在した更新情報である第2の更新情報に関係付けるとともに、第2の更新情報を読み取り専用に設定する。統合部5は、読み取り専用に設定された第2の更新情報を、集約情報にマージする。第2関係付け部4は、マージが完了すると、第1の更新情報と第2の更新情報の関係付けを解除して、第1の更新情報を集約情報に関係付ける。第3関係付け部6は、マージが完了すると、第2の更新情報と集約情報の関係付けを解除して、最新世代の差分情報に関係付ける。
これにより、実施形態に係るストレージ制御装置1は、世代数の増加に伴うアクセス性能の低下を防ぎつつ、運用を停止せずに、スナップショットの取得が可能となる。
リストア部7は、所定の世代へのリストア指示を受信した場合、先ず、リストアの対象世代のボリュームの状態からリストア指示の受信以降に更新されたボリュームの更新情報である第3の更新情報を作成する。次に、リストア部7は、第3の更新情報をリストア対象世代の差分情報に関係付けるとともに、リストア指示の受信前における更新情報と集約情報とを削除する。次に、リストア部7は、リストア対象世代以前の全ての差分情報に基づいて、リストア対象世代以前の全ての世代の差分情報を集約した集約情報を生成する。そして、リストア部7は、生成した集約情報を最古の静止点でのボリュームの状態に関係付け、第3の更新情報を、生成した集約情報に関係付ける。
これにより、実施形態に係るストレージ制御装置1は、世代数の増加に伴うアクセス性能の低下を防ぎつつ、運用を停止せずに、リストアが可能となる。
差分情報は、ボリュームの変更前のデータが記憶されている記憶領域を示す領域情報と、記憶領域の変更後のデータとを含む。リストア部7は、リストア対象世代以前の差分情報から、世代の新しい順に差分情報を抽出する。そして、リストア部7は、抽出した差分情報に含まれる変更後のデータのうち、抽出した差分情報よりも新しい世代の差分情報に含まれる変更後のデータが集約情報に存在しない記憶領域の変更後のデータを、集約情報に格納する。
これにより、実施形態に係るストレージ制御装置1は、集約情報の生成にかかる処理負荷を軽減することができる。
削除部8は、差分情報の数が2つであって、最古の静止点でのボリュームの状態に関係付けられている差分情報の削除指示を受信した場合、2つの差分情報を削除する。生成部2は、差分情報の数が1つであり更新情報が差分情報に関係付けられている場合に、新規の静止点におけるスナップショットの取得指示を受信すると、以下の処理を行う。すなわち、生成部2は、先ず、新規の静止点のボリュームの状態から更新されたボリュームの更新情報である第1の更新情報を生成する。次に、生成部2は、第1の更新情報を、スナップショットの取得指示の受信前に存在した更新情報である第2の更新情報に関係付けるとともに、第2の更新情報を読み取り専用に設定する。そして、生成部2は、第2の更新情報を含む全ての差分情報に基づいて、第2の更新情報を含む全ての世代の差分情報を集約した集約情報を生成する。その後、第2関係付け部4は、第1の更新情報と第2の更新情報の関係付けを解除し、第1の更新情報を集約情報に関係付ける。
これにより、実施形態に係るストレージ制御装置1は、スナップショットの管理において使用する記憶容量を抑制することができる。そして、ストレージ制御装置1は、記憶容量を抑制しつつ、スナップショットの作成および削除を可能にする。
読み出し部9は、現在のボリュームに対する読み出し要求を受信した場合、更新情報、集約情報、及び最古の静止点でのボリュームの状態を用いて、データを読み出す。また、読み出し部9は、直近の静止点のボリュームに対する読み出し要求を受信した場合、集約情報及び最古の静止点でのボリュームの状態を用いて、データを読み出す。
これにより、実施形態に係るストレージ制御装置1は、現在のボリューム及び、最新世代のボリュームに対する読み出しの性能を向上させることができる。
以下、実施形態に係るスナップショットのデータ管理について詳細に説明する。先ず実施形態の効果を説明するために2つの比較例に係るスナップショットのデータ管理方法について説明する。その後、実施形態に係るスナップショットのデータ管理方法について説明し、比較例と比較した場合の実施形態の効果を記載する。
(第1の比較例の管理方法)
第1の比較例に係る管理方法は、ベースLUNに運用ボリュームの全ての最新のデータが格納され、COWに静止点における差分情報が格納される管理方法である。
先ず第1の比較例におけるCOWの作成について説明する。COWの作成は、所定の静止点におけるスナップショットの取得の際に行われる。図2は、第1の比較例におけるCOWの作成に関する説明図である。図2は、COW#3が作成される例を示している。図2(A)は、COW作成前のスナップショットの管理構造の状態を示す図である。図2(B)は、COW作成後のスナップショットの状態を示す図である。
図2(A)では、既に2つの静止点1、2におけるCOWが取得されている。静止点1、2にそれぞれ対応するCOWは、COW#1、COW#2である。尚、以下の説明においては、静止点x(xは正の整数)のxの値が大きいほど、その静止点の時刻は後であるとする。また、静止点xに対応するCOWをCOW#xと記す。
図2(A)において、ベースLUN、COW#2、COW#1が順に紐づいている。ベースLUNには運用ボリュームの最新のデータが全て格納されている。ベースLUNに紐付けられている(関係付けられている)COW#2には、静止点2におけるデータと、最新のデータとの差分情報が格納されている。すなわち、COW2には、静止点2における対象ボリュームのデータであって、ベースLUNに格納されているデータとは異なるデータが格納されている。COW#2に紐付けられるCOW#1には、静止点1におけるデータと、COW2のデータとの差分情報が格納されている。すなわち、COW1には、静止点1における対象ボリュームのデータであって、静止点2におけるデータとは異なるデータが格納されている。
図2(A)において、静止点3に対応するCOW#3が作成される場合を考える。その場合、図2(B)に示すように、最も世代の新しいCOW(図2(A)の場合、COW#2)とベースLUNとの間に、新規作成されたCOW#3が挿入される。すなわち新規のCOW#3は、ベースLUNに紐付けられる。また、COW#2は、ベースLUNへの紐付けが解除され、COW#3に紐付けられる。新規作成されたCOW#3には、作成直後にはデータは格納されていない。COW#3には、後ほど説明する書き込み処理時にデータが格納されることになる。またCOW2は、読み取り専用(Read Only)領域に変更される。尚、COW#1とCOW#2の紐付けは変更されない。
次に、第1の比較例におけるデータの書き込み(WRITE)について説明する。図3は、第1の比較例におけるデータの書き込みに関する説明図である。図3において、データが更新される場合、先ず、ベースLUNの領域のうち、変更対象の領域(チャンク)に格納されている変更前のデータが、ベースLUNに直接紐づいている最新世代のCOW(図3の場合、COW#4)に退避(格納)される。そして、ベースLUNの変更対象領域に、変更後のデータが格納される。このようにすることで、各静止点における運用ボリュームのデータの保存が可能となる。
次に、第1の比較例におけるデータの読み出し(READ)について説明する。図4は、第1の比較例におけるデータの読み出しに関する説明図である。図4において最新のデータが読み出される場合は、ベースLUNから直接データの読み出しが行われる。一方、所定の世代の静止点におけるデータが読み出される場合は、参照世代の静止点に対応するCOWから新しい世代方向に順に走査が行われ、読み出し対象データの特定が行われる。このような走査は、読み出し対象のデータが、走査したCOWもしくはベースLUNに格納されていることが確認されるまで行われることとなる。そして特定された読み出し対象データの読み出しが行われる。
第1の比較例においては、現在の運用ボリュームからのデータの読み出し速度は不変であるが、古い世代のスナップショットに対する読み出し速度が低下する傾向にある。これは以下の理由による。すなわち、データの読み出しにおいては、参照世代に対応するCOWから新しい世代方向へ該当領域の更新差分がないかの走査が行われる。このため、参照世代から現在までに更新がなければ、参照世代から現在までの全世代のCOWが走査されることになる。よって、古い世代に対する読み出しの速度が低下することとなる。
(第2の比較例の管理方法)
第2の比較例の管理方法は、ベースLUNに最古のデータが格納され、COWに静止点における差分情報が格納される管理方法である。この管理方法では、COWにはベースLUNの更新に伴い変更されたデータの変更後のデータが保持される。第1の比較例では、ベースLUNに最新のデータが格納されていたが、第2の比較例では最古のデータが格納される。また、第1の比較例では、COWには、対象ボリュームに対する変更前のデータが格納されていたが、第2の比較例では変更後のデータが格納される。
先ず第2の比較例におけるCOWの作成について説明する。図5は、第2の比較例におけるCOWの作成に関する説明図である。図5は、COW#2が作成される例を示している。図5(A)は、COW作成前のスナップショットの管理構造の状態を示す図である。図5(B)は、COW作成後のスナップショットの管理構造の状態を示す図である。図5(A)では、既に、2世代のスナップショットが取得済みである。すなわち、静止点1に対応するCOW#1、及び運用COWが作成されている。
図5(A)において、ベースLUN、COW#1、運用COWが順に紐づいている。ベースLUNには最古のデータが格納されている。ベースLUNに紐付けられているCOW#1には、静止点1における対象ボリュームのデータと、最古のデータとの差分情報が格納されている。すなわち、COW1には、静止点1におけるデータであって、ベースLUNに格納されたデータとは異なるデータが格納されている。COW#1に紐付けられる運用COWには、静止点1における対象ボリュームのデータと、最新のデータとの差分情報が格納されている。すなわち、運用COWには、最新のデータであって、静止点1におけるデータと異なるデータが格納されている。
図5(A)において、静止点2に対応するCOW#2が作成される場合を考える。その場合、図5(B)に示すように、図5(A)における運用COWがCOW#2として設定され、設定されたCOW#2に新規作成された運用COWが紐付けられる。図5(A)における運用COWと図5(B)におけるCOW#2は、実体は同一であるが、COW#2は読み取り専用領域に設定される。尚、新規作成された運用COWには、最新のデータであって、静止点2におけるデータと異なるデータが格納されることとなる。すなわち、運用COWには、静止点2以降に対象ボリュームに対して加えられた変更の変更後のデータが格納される。
次に、第2の比較例におけるデータの書き込みについて説明する。図6は、第2の比較例におけるデータの書き込みに関する説明図である。図6において、データが更新される場合、変更対象のデータの変更後のデータが運用COWに書き込まれる。直近の静止点(図6においては、静止点3)以降のデータは、運用COWに書き込まれ、各静止点に対応するCOWにはデータの書き込みは行われないため、各静止点における対象ボリュームの情報が保持される。
次に、第2の比較例におけるデータの読み出しについて説明する。図7は、第2の比較例におけるデータの読み出しに関する説明図である。図7において、最新のデータが読み出される場合は、運用COWからベースLUNまで順に走査され、読み出し対象データの特定が行われる。そして特定した読み出し対象データの読み出しが行われる。また、所定の世代の静止点におけるデータが読み出される場合は、参照世代の静止点に対応するCOWからベースLUNまで順に走査され、読み出し対象データの特定が行われる。そして特定した読み出し対象データの読み出しが行われる。第2の比較例において各COWには、変更後の差分情報が記憶され、変更がないデータについては保存されない。従って、変更がないデータに対するアクセスの場合には、ベースLUNからの読み出しとなる場合もある。
第2の比較例においては、最も古い世代への読み出し速度は不変であるが、新しい世代に対する読み出し速度が低下する傾向にある。これは以下の理由による。すなわち、データの読み出しにおいては、参照世代に対応するCOWから古い世代方向へ該当領域の更新差分がないかの走査が行われる。このため、参照世代のデータが最古のデータから更新されていなければ、参照世代からベースLUNまでのすべてのCOWが走査されることになる。よって、新しい世代に対する読み出しの速度が低下する。
第2の比較例は、運用世代に対する書き込み性能が第1の比較例よりも優れている。これは、第1の比較例では図3を参照して説明したように、運用世代への書き込みが発生した場合、更新元のデータをCOWへ退避する処理が発生するためである。一方、第2の比較例では、更新元データの退避処理は発生せず、運用COWへの書き込みで処理が完了する。例えば、第2の比較例では、チャンク(COWのデータ管理単位)への全面書き込みが発生した場合でも、更新元データの退避処理をスキップすることができる。
また、第2の比較例に比べて第1の比較例の方が、旧データの扱いや、スナップショット作成時のCOWの再配置といった点で、複雑な処理となっている。
しかしながら、第2の比較例では、最古の世代から参照世代間の世代数が多くなるにつれて、走査されるCOWの数が増加するため、より新しい世代に対する読み出しの速度は低下する傾向にある。最悪時は、参照世代のCOWからベースLUNまでの全世代のCOWに対して読み出し対象領域の差分があるかが走査されることとなる。これは運用世代においての性能劣化リスクが大きい。つまり、読み出し対象領域に因って、読み出しの性能が大きく変化し、安定しない。さらに、スナップショットがバックアップ用途に使われることを考えると、世代数が大きな値になることは十分想定される。世代数の増加により運用ボリュームの性能が劣化することは望ましくない。
(実施形態)
次に、実施形態に係るスナップショットのデータ管理について詳細に説明する。先ず、実施形態に係るストレージ装置の構成について説明する。図8は、実施形態に係るストレージ装置の構成の一例を示す。図8において、ストレージ装置21は、業務サーバ22に通信ネットワーク等を介して接続する。業務サーバ22は、対象ボリュームに対してデータの読み書き、及び、スナップショットの取得を指示するサーバである。
ストレージ装置21は、割当部31、記憶部32、スナップショット管理部33、書き込み部34、及び、読み出し部35を含む。
ストレージ装置21は、ストレージ制御装置1の一例である。スナップショット管理部33は、生成部2、第1関係付け部3、第2関係付け部4、統合部5、第3関係付け部6、リストア部7、削除部8の一例である。読み出し部35は、読み出し部9の一例である。
割当部31は、データの書き込みに応じて、対象ボリューム(ベースLUN)、及びCOW等に、ストレージ装置21に接続された物理記憶領域の集合体であるストレージプールから実際の物理領域を割り当てるシンプロビジョニングの機能を提供する。記憶部32は、割当部31により割り当てられた物理記憶領域を含み、スナップショットの各データを記憶する。ここでスナップショットのデータとは、後ほど説明する図9に示すデータである。尚、記憶部32は、ストレージ装置21の外部の記憶領域に確保されてもよい。スナップショット管理部33は、スナップショットの管理構造の管理を行う。スナップショット管理部33は、作成部41、リストア部42、及び切替部43を含む。スナップショット管理部33に含まれる各部の詳細については後ほど説明する。書き込み部34は、運用ボリュームに対してデータの書き込みを行う。読み出し部35は、運用ボリューム、または、所定の静止点における対象ボリュームのデータの読み出しを行う。
図9は、実施形態に係るスナップショットの管理構造の一例を示す。図9に示すように、実施形態においては、ベースLUN、1以上のCOW#x、集約COW、及び、運用COWが、以下のように紐付けて管理される。すなわち、ベースLUNとCOW#1が紐付けられ、COW#x(xは正の整数、x≠1)とCOW#(x−1)が紐付けられる。また、ベースLUNと集約COWが紐付けられ、集約COWと運用COWが紐付けられる。ベースLUN、1以上のCOW#x、集約COW、及び、運用COWは、それぞれ、割当部31により割り当てられた記憶部32に格納される。
ベースLUNは、最古の静止点でのボリュームの状態の一例である。COW#xは、差分情報の一例である。集約COWは、集約情報の一例である。運用COWは、更新情報の一例である。
以下の説明では、説明の便宜上、実施形態に係るスナップショットの管理構造をtree構造として説明する。すなわち、スナップショットの管理構造は、ベースLUN、1以上の各COW#x、集約COW、及び運用COWをノードとし、紐付けられているノード間がリンクにより結ばれる。ベースLUNは根ノードである。COW#1の親ノードは、ベースLUNである。COW#x(x≠1)の親ノードは、COW#(x−1)である。集約COWの親ノードは、ベースLUNである。運用COWの親ノードは、集約COWである。また、COW#xのうち、特に最新世代のCOW(直近の静止点に対応するCOW)を指す場合、COW#Xと記し、COW#Xに対応する静止点を静止点Xと記す。尚、運用COWに差分情報が取得中の世代は、運用世代と記す場合がある。
ベースLUNは最古のデータを記憶する。ベースLUNに紐付けられるCOW#1は、静止点1における対象ボリュームのデータと、最古のデータとの差分情報を記憶する。すなわち、COW1は、静止点1における対象ボリュームのデータであって、ベースLUNに格納されたデータとは異なるデータを記憶する。COW#x(x≠1)は、静止点xにおける対象ボリュームのデータと、静止点x−1におけるデータとの差分情報を記憶する。集約COWは、過去に作成されたCOW#X〜COW#1を集約したデータを記憶する。すなわち、集約COWは、静止点Xにおける対象ボリュームのデータと、最古のデータとの差分情報を記憶する。言い換えると、集約COWは、静止点Xにおけるデータであって、ベースLUNのデータとは異なるデータを記憶する。運用COWは、静止点Xにおける対象ボリュームのデータと、最新のデータとの差分情報を記憶する。以下の説明では、COW#1〜COW#Xをまとめて旧世代ツリーと記す。また、COW#x、集約COW、及び運用COWを特に区別しない場合には、単にCOWと記す。
なお、各COWは、記憶部に格納されるが、各COWが記憶される記憶領域は、連続領域でなくてもよく、COW毎に、異なる記憶装置の異なる記憶領域に格納されてもよい。
ここで、実施形態のスナップショットの管理構造を第2の比較例と比較する。実施形態では、第2の比較例と比べると、旧世代ツリーの全てのCOWを一つに集約した集約COWが追加されている。また、第2の比較例では、旧世代ツリーに運用COWが紐付けられている。これに対して実施形態では、運用COWは集約COWに紐付けられている。つまり実施形態の管理構造は、第2の比較例の旧世代ツリーと、新たに追加した集約COWとを併用した構成となる。
図10は、COW(COW#x、集約COW、及び運用COW)のデータ構造の一例を示す。各COWは、ストレージ装置21のOperating System(OS)からは、1つのデバイス(記憶デバイス)として認識されてもよい。また、各COWは、割当部31のシンプロビジョニング機能により、OSが認識するCOWの容量と、実際に割り当てられている物理記憶容量とが制御されてもよい。COWは、親ノード識別情報45、及び差分情報46を含む。
親ノード識別情報45は、親ノードの識別情報である。具体的には例えば、COW#1の場合、親ノード識別情報45には、ベースLUNの識別情報が格納される。COW#x(x≠1)の場合、親ノード識別情報45には、COW#(x−1)の識別情報が格納される。集約COWの場合、親ノード識別情報45には、ベースLUNの識別情報が格納される。運用COWの場合、親ノード識別情報45には、集約COWの識別情報が格納される。尚、親ノード識別情報45は、ノードを1つのデバイスとして扱うシステムの場合、親ノードのメジャー番号とマイナー番号の組としてもよい。また、親ノード識別情報45は、親ノードのCOWのデータが記憶される記憶領域へのポインタ等としてもよい。
差分情報46は、親ノードの静止点における対象ボリュームに対する、自ノードの静止点における対象ボリュームの差分情報である。具体的には例えば、COW#1の場合、差分情報46は、ベースLUNに対する静止点1における対象ボリュームの差分情報である。COW#x(x≠1)の場合、差分情報46は、COW#(x−1)に対する、静止点xにおける対象ボリュームの差分情報である。集約COWの場合、差分情報46は、ベースLUNに対する静止点Xにおける対象ボリュームの差分情報である。運用COWの場合、差分情報46は、集約COWに対する現在の対象ボリュームの差分情報である。
図11は、差分情報46の構成の一例を示す。差分情報46は、「割当済みチャンク情報」、及び、「変更後データ」のデータ項目を含み、各データ項目はレコード毎に対応付けて記憶される。「割当済みチャンク情報」は、親ノードの静止点から変更されたデータのチャンク(ブロック)を示す識別情報である。「割当済みチャンク情報」は、例えば、チャンク(ブロック)のボリュームの開始アドレスからのオフセット位置や、チャンク(ブロック)のアドレスなどで表現される。「変更後データ」は、対応する「割当済みチャンク情報」で示されるチャンクの変更後のデータである。差分情報46に格納されたチャンクは、以下の説明では、割当済みチャンクと記す場合がある。
尚、「変更後データ」には、変更後のデータが直接格納されなくてもよく、例えば、変更後のデータは他の記憶領域に格納され、「変更後データ」には、変更後のデータが格納された他の記憶領域のアドレスを示す情報が格納されてもよい。
ボリュームのデータに対して変更が加えられるに従って、差分情報46のサイズは増加する。差分情報46の増加に従って、割当部31は、シンプロビジョニング機能により、COWに割り当てる物理領域のサイズを増加させる。
次に、実施形態におけるデータの書き込みについて説明する。図12は、実施形態におけるデータの書き込みに関する説明図である。図12において、対象ボリュームのデータが更新される場合、書き込み部34は、変更対象のデータの変更後のデータを運用COWに書き込む。データの書き込みは運用COWに対して実行されるものであり、他のCOWへのアクセスは発生しない。
次に、実施形態におけるデータの読み出しについて説明する。図13は、実施形態におけるデータの読み出しに関する説明図である。実施形態におけるデータの読み出しは3通りに分けられる。3通りの読み出しとは、すなわち、運用世代のデータの読み出し、運用世代の直前の世代のデータの読み出し、及び、運用世代の2世代前以前の世代のデータの読み出しである。
運用世代のデータの読み出しでは、読み出し部35は、運用COWからベースLUNまで順に走査し(図13(a))、読み出し対象データを特定する。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。ここで、運用COWとベースLUNの間には、集約COWだけが存在するため、最悪時でも高々2回のCOW操作で読み出し処理が完了する。これにより読み出し処理性能の高速化と安定化を図ることができる。
運用世代の直前の世代のデータの読み出しでは、読み出し部35は、集約COWからベースLUNまで順に走査し(図13(b))、読み出し対象データを特定する。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。ここで、運用世代の直前の世代のデータの読み出しでは、最悪時でも高々1回のCOW操作で読み出し処理が完了する。これにより読み出し処理性能の高速化と安定化を図ることができる。
運用世代の2世代前以前の世代のデータの読み出しでは、読み出し部35は、参照世代の静止点に対応するCOWからベースLUNまで順に走査し(図13(c))、読み出し対象データを特定する。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。
ここで、読み出し及び書き込みの性能に関して、比較例と実施形態を比較する。図14は、比較例と実施形態の読み出し及び書き込みの性能の比較図である。図14では、読み出しまたは書き込み処理において、走査されるCOW及びベースLUNの最悪値を比較している。読み出しまたは書き込み処理において、走査されるCOW及びベースLUNの数が少ないほど、処理性能はよくなる。
まず、運用世代の読み出し性能について比較する。図14に示すように、第1の比較例において走査対象となるのはベースLUNである。また、第2の比較例において走査対象となるのは、全てのCOW及びベースLUNである。実施形態において走査対象となるのは、運用COW、集約COW、及びベースLUNである。以上より、実施形態は、運用世代の読み出し性能については、第1の比較例よりも劣っている。一方、実施形態の運用世代の読み出し性能は、スナップショットの取得世代数が3以上の場合、第2の比較例よりも優れている。
次に、運用世代の直前の世代のデータの読み出しについて比較する。図14に示すように、第1の比較例において走査対象となるのは、最新世代のCOW、及びベースLUNである。また、第2の比較例において走査対象となるのは、運用世代の直前の世代以前の世代のすべてのCOW、及びベースLUNである。実施形態において走査対象となるのは、集約COW、及びベースLUNである。以上より、実施形態は、運用世代の直前の世代のデータの読み出し性能については、第1の比較例と同じである。一方、実施形態の読み出し性能は、スナップショットの取得世代数が3以上の場合、第2の比較例よりも優れている。
次に、データの書き込みについて比較する。図14に示すように、第1の比較例においてアクセス対象となるのは、ベースLUN、及び、最新世代のCOWである。また、第2の比較例においてアクセス対象となるのは、運用COWである。実施形態においてアクセス対象となるのは、運用COWである。以上より、実施形態は、運用世代の読み出し性能については、第1の比較例よりも優れている。一方、実施形態の書き込み性能は、第2の比較例と同じとなる。
実施形態においては、運用世代、及び、運用世代の直前の世代の読み出しでは、旧世代ツリーのCOWを参照することはない。そのため、例えば、旧世代ツリーに含まれる世代への読み出し頻度が少ない場合には、旧世代ツリーに含まれるCOWの一部または全部を、例えばテープ等の低速な記憶媒体又は記憶装置の領域に確保することも可能である。これにより、柔軟なディスク管理が可能となる。一方、第2の比較例においては、運用世代、及び、運用世代の直前の世代の読み出しにおいて、全てのCOWが走査される可能性がある。そのため、第2の比較例においては、旧世代ツリーに含まれるCOWの一部または全部を、例えばテープ等の低速な記憶媒体又は記憶装置の領域に確保するような構成とすると、運用世代、及び、運用世代の直前の世代の読み出しも遅くなってしまう。
次に、実施形態におけるスナップショットの管理構造の管理について説明する。スナップショットの管理構造の管理はスナップショット管理部33が行う。図8に示したように、スナップショット管理部33は、作成部41、リストア部42、及び切替部43を含む。
作成部41は、所定の静止点に対応する新たなCOWを作成する。リストア部42は、スナップショットのリストアを実行する。切替部43は、取得されたCOWの世代数に応じて、スナップショットの管理構造の管理形態を切り替える。以下、スナップショット管理部33の各部の動作について順に説明する。
作成部41によるCOWの作成の詳細を説明する。実施形態のCOWの作成処理は、業務サーバ22からみて対象ボリュームの運用を停止することなく実行することができる。図15は、実施形態に係るCOWの作成に関する説明図である。
図15(A)は、COW作成前のスナップショットの管理構造の状態を示す。図15(A)においては、すでに2つのCOW#1、COW#2が作成されている。業務サーバ22からスナップショットの取得指示を受信すると、作成部41は、COWの作成処理を開始する。COWの作成処理が開始されると、先ず図15(B)の状態に遷移する。
図15(B)において、作成部41は、新運用COWを作成し、作成した新運用COWを旧運用COW(図15(A)の運用COW)に紐付ける。新運用COWは、作成時にはデータが格納されていないため、作成部41は、瞬時に新運用COWの作成が可能である。これ以降、業務サーバ22からのデータの書き込みは新運用COWに対して行われる。紐付けが完了すると、図15(C)の状態に遷移する。
図15(C)において、先ず作成部41は、旧運用COWの業務サーバ22からのアクセスを読み取り専用に設定する。そして作成部41は、旧運用COWの内容を集約COWにマージする。旧運用COWは読み取り専用に設定されているため、業務サーバ22からのアクセスと、マージ処理によるアクセスとが競合することはない。従って、マージ処理のバックグラウンドでの実行が可能となる。尚、読み取り専用設定は、例えば、作成部41が、COW自体に属性として設定してもよいし、書き込み部34が書き込み処理時に、旧運用COWへのアクセスをしないように制御することで実現してもよい。マージが完了すると、図15(D)の状態に遷移する。
図15(D)においては、旧運用COWについての紐付けの変更処理を行う。具体的には作成部41は先ず、旧運用COWと集約COWとの紐付け、及び、旧運用COWと新運用COWとの紐付けを解除する。そして作成部41は、旧運用COWを、COW#3としてCOW#2に紐付けする。尚、COW#3と旧運用COWの差分情報46は同じである。これにより、旧運用COWの内容は、静止点の対象ボリュームの差分情報として保存される。また、作成部41は、新運用COWを集約COWに紐付けする。このように制御することで、集約COWの内容は、旧世代ツリーに含まれるCOW#1〜COW#3をマージした内容となる。
尚、図15(D)においては、厳密には作成部41は、紐付けの変更処理の間は、業務サーバ22からの対象ボリュームに対するI/Oを停止させる。ただし紐付けの変更処理は非常に短い時間で完了できる。このため、業務サーバ22からは対象ボリュームが運用停止したようには認識されない。
新運用COWを作成して旧運用COWに紐付けることにより、旧運用COW及び集約COWの業務サーバ22からのアクセスを読み取り専用に設定することができ、バックグラウンドでマージを行うことができる。また、新運用COWは瞬時に作成でき、業務サーバ22からのデータの書き込み先は新運用COWとなる。そのため、運用無停止でスナップショットを採取でき、業務サーバ22からのデータの書き込み処理と集約COWへのマージ処理の競合を防ぐことができる。
データの読み出し処理に関しては、以下の理由でマージ処理と競合することはない。すなわち、マージ先のチャンクと同一の論理アドレスからデータの読み出しをする場合、集約COWからのデータの読み出しとはならず、旧運用COWからの読み出しとなる。よって、集約COWへのマージ処理中であっても、マージ先のチャンクからの読み出しが発生することはない。
図16は、COW作成処理の詳細を図解したフローチャートの一例である。図16のフローは、例えばスナップショットの指示を業務サーバ22から受信した場合に開始される。
図16において、作成部41は、先ず、新運用COWを作成する(S101)。作成直後の新運用COWには情報は格納されていないため、作成部41は、瞬時に新運用COWを作成することができる。
次に、作成部41は、新運用COWを旧運用COWに紐付けする(S102)。すなわち作成部41は、新運用COWの親ノード識別情報45に、旧運用COWの識別情報を格納する。この紐付けとともに、作成部41は、旧運用COWの業務サーバ22からのアクセスを読み取り専用に設定する。これ以降、対象ボリュームに対する書き込み処理は、新運用COWに対して行われる。
次に、作成部41は、旧運用COWの内容を集約COWにマージする(S103)。すなわち作成部41は、集約COWの差分情報46に、旧運用COWの差分情報46の内容を追加する。
次に、作成部41は、S104とS105の内容を並列して実行する。S104において、作成部41は、旧運用COWと集約COWとの紐付け、及び、旧運用COWと新運用COWとの紐付けを解除する。具体的には作成部41は、旧運用COWの親ノード識別情報45に格納された集約COWの識別情報を削除する。また作成部41は、新運用COWの親ノード識別情報45に格納された旧運用COWの識別情報を削除する。そして、作成部41は、旧運用COWを世代が最も新しいCOW#Xに紐付けする。具体的には作成部41は、旧運用COWの親ノード識別情報45にCOW#Xの識別情報を格納する。図15の例では、世代が最も新しいCOW#XはCOW#2である。
S104と並行して、S105において、作成部41は、新運用COWを集約COWに紐付ける。具体的には、作成部41は、新運用COWの親ノード識別情報45に集約COWの識別情報を格納する。
S104及びS105の処理が完了すると、COW作成処理は終了する。
次に、リストア部42によるリストア処理の詳細を説明する。リストアは、運用世代の内容を、過去に取得したスナップショットの内容で置き換える処理である。実施形態のスナップショットのリストアは、業務サーバ22からみて対象ボリュームの運用を停止することなく実行することができる。図17は、実施形態に係るリストアに関する説明図である。図17では、リストア対象世代のCOWをCOW#2として説明する。
図17(A)は、リストア前のスナップショットの管理構造の状態を示す。図17(A)においては、すでに3つのCOW#1、COW#2、COW#3が作成されている。業務サーバ22からCOW#2へのリストア指示を受信すると、リストア部42は、リストア処理を開始する。リストア処理が開始されると、先ず図17(B)の状態に遷移する。
図17(B)において、リストア部42は、新運用COWを作成し、作成した新運用COWをリストア対象世代のCOW#2に紐付ける。これ以降、業務サーバ22からのデータの書き込みは新運用COWに対して行われる。次に、リストア部42は、旧運用COWと、旧集約COWを削除する。削除が完了すると、図17(C)の状態に遷移する。
図17(C)において、先ずリストア部42は、新集約COWを作成し、作成した新集約COWをベースLUNに紐付ける。そして、リストア部42は、リストア対象世代のCOW#2、及び、リストア対象世代よりも古い世代のCOWの内容を1つずつ順に新集約COWへマージする。このマージの詳細については、後ほど図18を参照して説明する。マージが完了すると、図17(D)の状態に遷移する。
図17(D)においては、リストア部42は、新運用COWの紐付けの変更処理を行う。すなわち、リストア部42は、新運用COWとリストア対象世代のCOWとの紐付けを解除し、新運用COWを新集約COWに紐付ける。このようにしてリストア処理が完了する。
尚、図17(D)においては、厳密にはリストア部42は、新運用COWの紐付けの変更処理の間は、業務サーバ22からの対象ボリュームに対するI/Oを停止させる。ただし紐付けの変更処理は非常に短い時間で完了できる。このため、業務サーバ22からは対象ボリュームが運用停止したようには認識されない。よって、リストア処理において、新運用COWを作成して、リストア対象世代のCOWに紐付けることにより、運用無停止でリストアが可能となる。
図17(C)におけるリストア時のマージ処理について、詳しく説明する。リストア時のマージは、マージ処理のデータ量を削減するために、世代の新しいCOWから実行される。そして、既に、世代の新しいCOWのマージによりマージ済のチャンクは、世代の古いCOWのマージにおいては、マージ対象外とする。図18は、実施形態に係るリストアにおけるマージ処理の説明図である。図18では、リストア対象世代のCOWをCOW#2として説明する。
図18(A)は、図17(C)におけるマージ処理の直前のスナップショットの管理構造の状態を示す。図18(A)においては、COW#2の割当済みチャンクとして{3, 12}が格納されている。またCOW#1の割当済みチャンクとして{5, 12, 100}が格納されている。新規作成された直後の新集約COWには、割当済みチャンク情報は格納されていない。マージ処理が開始されると、先ず図18(B)の状態に遷移する。
図18(B)において、リストア部42は、リストア対象世代のCOWから、新集約COWへのマージ処理を開始する。図18(B)の例では、リストア対象世代のCOWは、COW#2である。すなわち、リストア部42は、COW#2の割当済みチャンクである{3, 12}を、新集約COWへマージする。具体的には、リストア部42は、リストア対象世代のCOWの差分情報46の「割当済みチャンク情報」が{3, 12}のレコードを、新集約COWの差分情報46に追加する。この結果、新集約COWには、割当済みチャンクとして{3, 12}が格納される。COW#2のマージが完了すると、図18(C)の状態に遷移する。
図18(C)において、リストア部42は、リストア対象世代のCOWよりも世代の古いCOWのうちで、最も世代が新しく、且つ、マージ未実行のCOWを選択する。ここで選択されるCOWは、図18(C)の例では、COW#1である。そして、リストア部42は、選択したCOWの内容を新集約COWへマージする。ここで、選択したCOWの割当済みチャンクのうち、既にマージ済みのチャンクについては、マージの対象外とする。すなわち、リストア部42は、COW#1の割当済みチャンクである{5, 12, 100}のうち、既に、COW#2においてマージ済みのチャンク{12}については、マージの対象外とする。よってリストア部42は、マージ対象外のチャンクを除いたCOW#1の割当済みチャンク{5, 100}を、新集約COWへマージする。具体的には、リストア部42は、COW#1の差分情報46のうち、「割当済みチャンク情報」が{5, 100}のレコードを、新集約COWの差分情報46に追加する。この結果、新集約COWには、割当済みチャンクとして{3, 5, 12, 100}が格納される。
このように、リストア部42は、新しい世代のCOWから順にマージを行い、既にマージ済みのチャンクについてはマージの対象外とすることで、マージされるデータの量を削減することができる。
図19は、リストア処理の詳細を図解したフローチャートの一例である。図19のフローは、例えば所定の世代へのリストアの指示を業務サーバ22から受信した場合に開始される。
図19において、リストア部42は、先ず、新運用COWを作成する(S201)。作成直後の新運用COWには情報は格納されていないため、リストア部42は、瞬時に新運用COWを作成することができる。
次に、リストア部42は、新運用COWをリストア対象世代のCOWに紐付けする(S202)。すなわち作成部41は、新運用COWの親ノード識別情報45に、リストア対象世代のCOWの識別情報を格納する。
次に、リストア部42は、旧運用COW、及び、旧集約COWを削除する(S203)。
次に、リストア部42は、新集約COWを作成する(S204)。
次に、リストア部42は、新集約COWをベースLUNに紐付けする(S205)。具体的にはリストア部42は、新集約COWの親ノード識別情報45に、ベースLUNの識別情報を格納する。
次に、リストア部42は、変数nに、リストア対象世代のCOWの世代数を示す値を代入する(S206)。図17の例では、リストア対象世代の世代数は「2」であるので、nには「2」が代入される。
次に、リストア部42は、変数nが「0」であるか否かを判定する(S207)。変数nが「0」でないと判定した場合(S207でNo)、リストア部42は、世代が変数nに対応するCOW、すなわち、COW#nの内容を新集約COWへマージする(S208)。新集約COWへのマージ処理の詳細については、後ほど図20を用いて説明する。
次に、リストア部42は、変数nの値をデクリメントする(S209)。そして、処理は再度S207に遷移する。
S207において、変数nが「0」であると判定した場合(S207でYes)、リストア部42は、新運用COWの現在の紐付けを解除し、新運用COWを新集約COWに紐付ける(S210)。具体的には、先ず、リストア部42は、新運用COWの親ノード識別情報45に格納されているリストア対象世代のCOWの識別情報を削除する。そして、リストア部42は、新運用COWの親ノード識別情報45に、新集約COWの識別情報を格納する。
そして、新運用COWと新集約COWの紐付けが完了すると、リストア処理は終了する。
図20は、リストア処理におけるマージ処理の詳細を図解したフローチャートの一例である。このマージ処理は、図19のS208で実行される処理の詳細を示すものである。図20では、COW#nの内容を新集約COWへマージする処理を示している。
図20において、リストア部42は、先ず、COW#nの割当済みチャンクのうち、1つの割当済みチャンクを選択する(S301)。具体的には例えば、リストア部42は、COW#nの差分情報46のレコードを1つ選択する。
次に、リストア部42は、S301で選択した割当済みチャンクと同一のチャンクが、新集約COWに既に存在するか否かを判定する(S302)。具体的には例えば、リストア部42は、新集約COWの差分情報46に含まれるレコードのうち、「割当済みチャンク情報」が、S301で選択したレコードの「割当済みチャンク情報」と一致するレコードが存在するか否かを判定する。選択した割当済みチャンクと同一のチャンクが新集約COWに既に存在すると判定された場合(S302でYes)、処理はS304に遷移する。
一方、選択した割当済みチャンクと同一のチャンクが新集約COWに存在しないと判定した場合(S302でNo)、リストア部42は、選択したチャンクの情報を、集約COWへコピーする(S303)。具体的には例えば、リストア部42は、S301で選択したレコードを、新集約COWの差分情報46に追加する。
次に、リストア部42は、COW#nの全ての割当済みチャンクをS301で選択済みか否かを判定する(S304)。COW#nの割当済みチャンクのうち、未選択のチャンクが存在する場合(S304でNo)、処理は再度S301に遷移する。そしてリストア部42は、S301において、COW#nの割当済みチャンクのうち、選択済みでない割当済みチャンクを1つ選択し、S302以降の処理を繰り返す。
一方、COW#nの全ての割当済みチャンクが選択済みであると判定された場合(S304でYes)、マージ処理は終了する。
次に、スナップショットの管理構造の切り替えについて説明する。
切替部43は、取得されたスナップショットの世代数に応じて、スナップショットの管理構造の管理形態を切り替える。具体的には、切替部43は、図9で示した管理形態(以下、管理形態1と記す)と、第2の比較例に係る管理形態(以下、管理形態2と記す)とを切り替える。図14を用いて説明したように、実施形態の管理形態1が第2の比較例の管理形態2と比べて性能が向上するのは、3世代以上のスナップショットが取得されたときである。取得されたスナップショットが2世代以下の場合は性能の向上が見込めず、集約COWにより余分な記憶容量を消費してしまう。従って、切替部43は、取得されたスナップショットが2世代以下である場合には、管理形態2とし、取得されたスナップショットが3世代以上である場合には、管理形態1となるように管理形態の切り替えを行う。これにより、最適なスナップショットの管理構造を維持し、使用される記憶容量を抑制することができる。
以下、管理形態2から管理形態1への切り替え処理と、管理形態1から管理形態2への切り替え処理について順に説明する。
先ず、管理形態2から管理形態1への切り替えについて説明する。この切り替えは、2世代のスナップショットを取得済みの状態から3世代目のスナップショットを取得するときに実行される。
図21は、実施形態に係る、管理形態2から管理形態1への切り替え処理の説明図である。管理形態2から管理形態1への切り替えは、一部の処理は、図17を参照して説明したリストアと同様の処理により実現する。
図21(A)は、切り替え前のスナップショットの管理構造の状態を示す。図21(A)においては、2世代のスナップショットが取得済みとなっている。すなわち、既に2つのCOW#1、運用COWが作成されている。このとき、業務サーバ22からスナップショットの取得指示を受信すると、切替部43は、切り替え処理を開始する。切り替え処理が開始されると、先ず図21(B)の状態に遷移する。
図21(B)において、切替部43は、新運用COWを作成し、作成した新運用COWを旧運用COWに紐付ける。紐付けとともに、切替部43は、旧運用COWをCOW#2として、業務サーバ22からのアクセスを読み取り専用に設定する。これ以降、業務サーバ22からのデータの書き込みは新運用COWに対して行われる。COW#2は、読み取り専用に設定されているため、以下の処理はバックグラウンドでの処理が可能である。次に図21(C)の状態に遷移する。
図21(C)において、先ず切替部43は、集約COWを作成し、作成した集約COWをベースLUNに紐付ける。そして、切替部43は、COW#2、及び、COW#1の内容を1つずつ順に集約COWへマージする。このマージの詳細は、図18、及び図20を参照して説明したものと同様である。マージが完了すると、図21(D)の状態に遷移する。
図21(D)においては、切替部43は、新運用COWの紐付けの変更処理を行う。すなわち、切替部43は、新運用COWのCOW#2への紐付けを解除し、新運用COWを集約COWに紐付ける。このようにして管理形態2から管理形態1への切り替え処理が完了する。
尚、図21(D)においては、厳密には切替部43は、新運用COWの紐付けの変更処理の間は、業務サーバ22からの対象ボリュームに対するI/Oを停止させる。ただし紐付けの変更処理は非常に短い時間で完了できる。このため、業務サーバ22からは対象ボリュームが運用停止したようには認識されない。よって、管理形態2から管理形態1への切り替え処理において、新運用COWを作成して、COW#2に紐付けることにより、運用無停止で切り替えが可能となる。
図22は、管理形態2から管理形態1への切り替え処理の詳細を図解したフローチャートの一例である。図22のフローは、図21(A)に示したように、既に2つのCOW#1、運用COWが作成されている状態において、例えばスナップショットの取得指示を業務サーバ22から受信した場合に開始される。
図22において、切替部43は、先ず、新運用COWを作成する(S401)。作成直後の新運用COWには情報は格納されていないため、切替部43は、瞬時に新運用COWを作成することができる。
次に、切替部43は、新運用COWを旧運用COWに紐付けする(S402)。すなわち作成部41は、新運用COWの親ノード識別情報45に、旧運用COWの識別情報を格納する。この紐付けとともに、切替部43は、旧運用COWの業務サーバ22からのアクセスを読み取り専用に設定し、旧運用COWをCOW#2として設定する。
次に、切替部43は、新集約COWを作成する(S403)。
次に、切替部43は、新集約COWをベースLUNに紐付けする(S404)。具体的には切替部43は、新集約COWの親ノード識別情報45に、ベースLUNの識別情報を格納する。
次に、切替部43は、変数nに、「2」を代入する(S405)。
次に、切替部43は、変数nが「0」であるか否かを判定する(S406)。変数nが「0」でないと判定した場合(S406でNo)、切替部43は、世代が変数nに対応するCOW、すなわち、COW#nの内容を新集約COWへマージする(S407)。新集約COWへのマージ処理の詳細については、図20を用いて説明したものと同様である。
次に、切替部43は、変数nの値をデクリメントする(S408)。そして、処理は再度S406に遷移する。
S406において、変数nが「0」であると判定した場合(S406でYes)、切替部43は、新運用COWの現在の紐付けを解除し、新運用COWを新集約COWに紐付ける(S409)。具体的には、先ず、切替部43は、新運用COWの親ノード識別情報45に格納されている旧運用COW(COW#2)の識別情報を削除する。そして、切替部43は、新運用COWの親ノード識別情報45に、新集約COWの識別情報を格納する。
そして、新運用COWと新集約COWの紐付けが完了すると、管理形態2から管理形態1への切り替え処理は終了する。
次に、管理形態1から管理形態2への切り替えについて説明する。この切り替えは、3世代のスナップショットを取得済みの状態から、中間世代を削除した結果、スナップショットの世代数が2世代に減少する場合に実行される。図23は、実施形態に係る、管理形態1から管理形態2への切り替え処理の説明図である。図23においては、COW#1を削除することにより、スナップショットの世代数が2世代に減少する場合の例を示している。
図23(A)は、切り替え前のスナップショットの管理構造の状態を示す。図23(A)においては、3世代のスナップショットが取得済みとなっている。すなわち、既にCOW#1、COW#2、及び、集約COWと運用COWが作成されている。業務サーバ22からCOW#1の削除指示を受信すると、切替部43は、切り替え処理を開始する。切り替え処理が開始されると、先ず図23(B)の状態に遷移する。
図23(B)において、切替部43は、COW#1及びCOW#2を削除する。削除が完了すると、図23(C)の状態に遷移する。
図23(C)において、切替部43は、集約COWを新COW#1として扱う。このようにして管理形態2から管理形態1への切り替え処理が完了する。
管理形態1から管理形態2への切り替え処理において、運用COWの状態は変化しないため、運用無停止で切り替えが可能となる。
尚、運用COWの直前世代、すなわち、COW#2を削除する場合は、管理形態1から管理形態2への切り替えはできない。これは、以下の理由による。すなわち、中間世代のCOWを削除する場合は、削除されたCOWが有する差分情報46を子ノードにマージしなければ、削除されたCOWが有する差分情報46が消失してしまう。管理形態2においては、COW#2の子ノードは運用COWとなる。よって、COW#2を削除する場合は、運用COWへのマージによるI/Oが発生することとなる。これは、マージによるI/Oと、業務サーバ22からのI/Oとの競合を引き起こす。したがって、このような競合の発生を防ぐために、実施形態においては、切替部43は、COW#2を削除する場合には管理形態1から管理形態2への切り替えの実行は行わずに、管理形態1のまま運用を継続する。
図24は、管理形態1から管理形態2への切り替え処理の詳細を図解したフローチャートの一例である。図24のフローは、図23(A)に示したように、既にCOW#1、COW#2、及び、集約COWと運用COWが作成されている状態において、例えばCOW#1の削除指示を業務サーバ22から受信した場合に開始される。
図24において、切替部43は、先ず、COW#1及びCOW#2を削除する(S501)。次に、切替部43は、集約COWをCOW#1として管理する(S502)。そして、管理形態1から管理形態2への切り替え処理は終了する。
次に、実施形態に係る読み出し処理のフローについて説明する。図25は、実施形態に係る読み出し処理の詳細を図解したフローチャートの一例である。図25のフローは、例えば、所定の世代の対象ボリュームからのデータの読み出し指示を業務サーバ22から受信した場合に開始される。
図25において、業務サーバ22から読み出し要求を受信すると、読み出し部35は、先ず、読み出し対象の世代が運用世代か否かを判定する(S601)。読み出し対象の世代が運用世代であると判定すると(S601でYes)、読み出し部35は、運用COW、集約COW、及びベースLUNを用いて、データの読み出しを行う(S602)。すなわち、読み出し部35は、運用COWから集約COW、ベースLUNの順に走査し、読み出し対象データを特定する。尚、読み出し部35は、各COWの親ノード識別情報45に基づいて親ノードを特定することで、順に走査を行う。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。そして、読み出し処理は終了する。
S601において、読み出し対象の世代が運用世代でないと判定すると(S601でNo)、読み出し部35は、読み出し対象の世代が運用世代の直前の世代(取得済みの静止点のうちで最新の世代)か否かを判定する(S603)。読み出し対象の世代が運用世代の直前の世代であると判定すると(S603でYes)、読み出し部35は、集約COW、及びベースLUNを用いて、データの読み出しを行う(S604)。すなわち、読み出し部35は、集約COW、ベースLUNの順に走査し、読み出し対象データを特定する。尚、読み出し部は、集約COWの親ノード識別情報45に基づいて、ベースLUNを特定する。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。そして、読み出し処理は終了する。
S603において、読み出し対象の世代が運用世代の直前の世代でないと判定すると(S603でNo)、読み出し部35は、読み出し対象世代以前のCOW、及びベースLUNを用いて、データの読み出しを行う(S605)。すなわち、読み出し部35は、読み出し対象世代の静止点を静止点nとすると、COW#n、読み出し対象世代以前のCOW#(n−1)〜COW#1、及びベースLUNを用いて、データの読み出しを行う(S605)。具体的には、読み出し部35は、読み出し対象世代のCOW#nからベースLUNまで、親ノード識別情報45に基づいて子ノードから親ノードへ順に走査し、読み出し対象データを特定する。そして読み出し部35は、特定した読み出し対象データの読み出しを行う。そして、読み出し処理は終了する。
次に、実施形態に係るストレージ装置21のハードウェア構成の一例を説明する。図25は、実施形態に係るストレージ装置21のハードウェア構成の一例を示す。
ストレージ装置21は、1以上のコントローラモジュール(以下、CMと記す)51(51a、51b)、及び1以上の記憶装置52(52a〜52d)を含む。また、ストレージ装置21は、例えば通信ネットワークを介して業務サーバ22に接続される。
CM51は、ストレージシステムにおける種々の制御を行なうものであり、業務サーバ22から受信したコマンドに基づいて、記憶装置52に対するアクセス制御を行なう。尚、図25の例ではCMの数は2つであるが、CMの数は2に限定されない。
CM51は、Central Processing Unit(CPU)61(61a、61b)、メモリ62(62a、62b)、読取装置63(63a、63b)、及び通信インターフェース64(64a、64b)を含む。CPU61、メモリ62、読取装置63、及び通信インターフェース64はバス等を介して接続される。
CPU61は、メモリ62を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、割当部31、スナップショット管理部33、書き込み部34、及び読み出し部35の一部または全部の機能を提供する。
メモリ62は、例えば半導体メモリであり、Random Access Memory(RAM)領域およびRead Only Memory(ROM)領域を含んで構成される。メモリ62は、フラッシュメモリ等の半導体メモリであってもよい。
読取装置63は、CPU61の指示に従って着脱可能記憶媒体80(80a、80b)にアクセスする。着脱可能記憶媒体80は、たとえば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。尚、読取装置63はストレージ装置21に含まれなくてもよい。
通信インターフェース64は、CPU61の指示に従ってバス、インターコネクト、またはネットワーク等を介して、記憶装置52、または、業務サーバ22と通信する。記憶装置52と通信をおこなう通信インターフェースは具体的には、例えばSerial Attached SCSI(SAS)インターフェースである。
実施形態のプログラムは、例えば、下記の形態でストレージ装置21に提供される。
(1)記憶装置52に予めインストールされている。
(2)着脱可能記憶媒体80により提供される。
(3)プログラムサーバ(図示せず)から通信インターフェース64を介して提供される。
記憶装置52は、例えばハードディスクである。なお、記憶装置52は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置52は、外部記録装置であってもよい。記憶装置52は、記憶部32の一部または全部の機能を提供する。
ストレージ装置21は、複数のストレージ装置21がインターコネクトを介して接続された構成としてもよい。その場合、各ストレージ装置21の1以上の記憶装置52を組み合わせて1つのストレージプールを構成してもよい。
また、ストレージ装置21は、CPU61、メモリ62、読取装置63(省略可)、通信インターフェース64、記憶装置52を1つの筐体に含む情報処理装置としてもよい。
さらに、実施形態のストレージ装置21の一部は、ハードウェアで実現してもよい。或いは、実施形態のストレージ装置21は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成する生成部と、
前記集約情報を最古の静止点での前記ボリュームの状態に関係付ける第1関係付け部と、
直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける第2関係付け部と
を備えることを特徴とするストレージ制御装置。
(付記2)
前記ストレージ制御装置は、さらに、
新規の静止点におけるスナップショットの取得指示を受信した場合、前記集約情報に前記更新情報をマージする統合部と、
マージ済みの前記更新情報を最新世代の前記差分情報に関係付ける第3関係付け部と、
を備え、
前記生成部は、前記新規の静止点のボリュームの状態から更新されたボリュームの更新情報を生成し、
前記第2関係付け部は、生成された前記更新情報を前記集約情報に関係付ける
ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)
前記生成部は、新規の静止点におけるスナップショットの取得指示を受信した場合、前記新規の静止点のボリュームの状態から更新されたボリュームの更新情報である第1の更新情報を生成して、前記取得指示の受信前における前記更新情報である第2の更新情報に関係付けるとともに、前記第2の更新情報を読み取り専用に設定し、
前記統合部は、読み取り専用に設定された前記第2の更新情報を、前記集約情報にマージし、
前記第2関係付け部は、前記マージが完了すると、前記第1の更新情報と前記第2の更新情報の関係付けを解除して、前記第1の更新情報を前記集約情報に関係付け、
前記第3関係付け部は、前記マージが完了すると、前記第2の更新情報と前記集約情報の関係付けを解除して、前記最新世代の差分情報に関係付ける
ことを特徴とする付記2に記載のストレージ制御装置。
(付記4)
前記ストレージ制御装置は、さらに、
所定の世代へのリストア指示を受信した場合、前記所定の世代のボリュームの状態から前記リストア指示の受信以降に更新されたボリュームの更新情報である第3の更新情報を作成して、前記所定の世代の差分情報に関係付けるとともに、前記リストア指示の受信前における更新情報と前記集約情報とを削除し、前記所定の世代以前の全ての差分情報に基づいて、前記所定の世代以前の全ての世代の差分情報を集約した集約情報を生成して、前記最古の静止点での前記ボリュームの状態に関係付け、前記第3の更新情報を、生成した前記集約情報に関係付けるリストア部
を備えることを特徴とする付記1〜3のうちいずれか1項に記載のストレージ制御装置。
(付記5)
前記差分情報は、前記ボリュームの変更前のデータが記憶されている記憶領域を示す領域情報と、該記憶領域の変更後のデータとを含み、
前記リストア部は、前記所定の世代以前の差分情報から、世代の新しい順に差分情報を抽出し、前記抽出した差分情報に含まれる前記変更後のデータのうち、該抽出した差分情報よりも新しい世代の差分情報に含まれる前記変更後のデータが前記集約情報に存在しない前記記憶領域の変更後のデータを、前記集約情報に格納する
ことを特徴とする付記4に記載のストレージ制御装置。
(付記6)
前記ストレージ制御装置は、
前記差分情報の数が2つであって、前記最古の静止点での前記ボリュームの状態に関係付けられている差分情報の削除指示を受信した場合、2つの前記差分情報を削除する削除部
を備え、
前記生成部は、前記差分情報の数が1つであり前記更新情報が前記差分情報に関係付けられている場合に、新規の静止点におけるスナップショットの取得指示を受信すると、前記新規の静止点のボリュームの状態から更新されたボリュームの更新情報である第1の更新情報を生成して、前記取得指示の受信前に存在した前記更新情報である第2の更新情報に関係付けるとともに、前記第2の更新情報を読み取り専用に設定し、前記第2の更新情報を含む全ての差分情報に基づいて、前記第2の更新情報を含む全ての世代の差分情報を集約した集約情報を生成し、
前記第2関係付け部は、前記第1の更新情報と前記第2の更新情報の関係付けを解除し、前記第1の更新情報を前記集約情報に関係付ける
ことを特徴とするストレージ制御装置。
(付記7)
前記ストレージ制御装置は、さらに、
現在のボリュームに対する読み出し要求を受信した場合、前記更新情報、前記集約情報、及び前記最古の静止点での前記ボリュームの状態を用いて、データを読み出し、直近の静止点のボリュームに対する読み出し要求を受信した場合、前記集約情報及び前記最古の静止点での前記ボリュームの状態を用いて、データを読み出す、読み出し部
を備えることを特徴とする付記1〜6に記載のストレージ制御装置。
(付記8)
記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成し、
前記集約情報を最古の静止点での前記ボリュームの状態に関係付け、
直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける
処理をコンピュータが実行することを特徴とするストレージ制御方法。
(付記9)
コンピュータに、
記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成し、
前記集約情報を最古の静止点での前記ボリュームの状態に関係付け、
直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける
処理を実行させることを特徴とするストレージ制御プログラム。
1 ストレージ制御装置
2 生成部
3 第1関連付け部
4 第2関連付け部
5 統合部
6 第3関連付け部
7 リストア部
8 削除部
9 読み出し部
21 ストレージ装置
22 業務サーバ
31 割当部
32 記憶部
33 スナップショット管理部
34 書き込み部
35 読み出し部
41 作成部
42 リストア部
43 切替部
45 親ノード識別情報
46 差分情報
51 CM
52 記憶装置
61 CPU
62 メモリ
63 読取装置
64 通信インターフェース
80 着脱可能記憶媒体

Claims (7)

  1. 記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成する生成部と、
    前記集約情報を最古の静止点での前記ボリュームの状態に関係付ける第1関係付け部と、
    直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける第2関係付け部と
    を備えることを特徴とするストレージ制御装置。
  2. 前記ストレージ制御装置は、さらに、
    新規の静止点におけるスナップショットの取得指示を受信した場合、前記集約情報に前記更新情報をマージする統合部と、
    マージ済みの前記更新情報を最新世代の前記差分情報に関係付ける第3関係付け部と、
    を備え、
    前記生成部は、前記新規の静止点のボリュームの状態から更新されたボリュームの更新情報を生成し、
    前記第2関係付け部は、生成された前記更新情報を前記集約情報に関係付ける
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記生成部は、新規の静止点におけるスナップショットの取得指示を受信した場合、前記新規の静止点のボリュームの状態から更新されたボリュームの更新情報である第1の更新情報を生成して、前記取得指示の受信前に存在した前記更新情報である第2の更新情報に関係付けるとともに、前記第2の更新情報を読み取り専用に設定し、
    前記統合部は、読み取り専用に設定された前記第2の更新情報を、前記集約情報にマージし、
    前記第2関係付け部は、前記マージが完了すると、前記第1の更新情報と前記第2の更新情報の関係付けを解除して、前記第1の更新情報を前記集約情報に関係付け、
    前記第3関係付け部は、前記マージが完了すると、前記第2の更新情報と前記集約情報の関係付けを解除して、前記最新世代の差分情報に関係付ける
    ことを特徴とする請求項2に記載のストレージ制御装置。
  4. 前記ストレージ制御装置は、さらに、
    所定の世代へのリストア指示を受信した場合、前記所定の世代のボリュームの状態から前記リストア指示の受信以降に更新されたボリュームの更新情報である第3の更新情報を作成して、前記所定の世代の差分情報に関係付けるとともに、前記リストア指示の受信前に存在した前記更新情報と前記集約情報とを削除し、前記所定の世代以前の全ての差分情報に基づいて、前記所定の世代以前の全ての世代の差分情報を集約した集約情報を生成して、前記最古の静止点での前記ボリュームの状態に関係付け、前記第3の更新情報を、生成した前記集約情報に関係付けるリストア部
    を備えることを特徴とする請求項1〜3のうちいずれか1項に記載のストレージ制御装置。
  5. 前記差分情報は、前記ボリュームの変更前のデータが記憶されている記憶領域を示す領域情報と、該記憶領域の変更後のデータとを含み、
    前記リストア部は、前記所定の世代以前の差分情報から、世代の新しい順に差分情報を抽出し、前記抽出した差分情報に含まれる前記変更後のデータのうち、該抽出した差分情報よりも新しい世代の差分情報に含まれる前記変更後のデータが前記集約情報に存在しない前記記憶領域の変更後のデータを、前記集約情報に格納する
    ことを特徴とする請求項4に記載のストレージ制御装置。
  6. 記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成し、
    前記集約情報を最古の静止点での前記ボリュームの状態に関係付け、
    直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける
    処理をコンピュータが実行することを特徴とするストレージ制御方法。
  7. コンピュータに、
    記憶領域の管理単位を示すボリュームの静止点間の差分を示す差分情報であって複数世代に関連付けられた該差分情報に基づいて、該複数世代の差分情報を集約した集約情報を生成し、
    前記集約情報を最古の静止点での前記ボリュームの状態に関係付け、
    直近の静止点のボリュームの状態から更新されたボリュームの更新情報を、前記集約情報に関係付ける
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2015040777A 2015-03-02 2015-03-02 ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム Pending JP2016162245A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015040777A JP2016162245A (ja) 2015-03-02 2015-03-02 ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
US15/012,064 US20160259579A1 (en) 2015-03-02 2016-02-01 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015040777A JP2016162245A (ja) 2015-03-02 2015-03-02 ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2016162245A true JP2016162245A (ja) 2016-09-05

Family

ID=56847046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015040777A Pending JP2016162245A (ja) 2015-03-02 2015-03-02 ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム

Country Status (2)

Country Link
US (1) US20160259579A1 (ja)
JP (1) JP2016162245A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659297A (zh) * 2019-08-13 2020-01-07 上海陆家嘴国际金融资产交易市场股份有限公司 数据处理方法、装置、计算机设备和存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540241B2 (en) * 2016-10-19 2020-01-21 International Business Machines Corporation Storing log snapshots in an automated data storage library
US10585758B2 (en) 2016-10-19 2020-03-10 International Business Machines Corporation Selecting log snapshots for export in an automated data storage library

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334709A (ja) * 2006-06-16 2007-12-27 Fujitsu Ltd ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
JP2008015768A (ja) * 2006-07-05 2008-01-24 Hitachi Ltd 記憶システム並びにこれを用いたデータの管理方法
JP5156518B2 (ja) * 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
WO2014115314A1 (ja) * 2013-01-25 2014-07-31 株式会社 東芝 データをバックアップするバックアップストレージシステム、バックアップストレージ装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659297A (zh) * 2019-08-13 2020-01-07 上海陆家嘴国际金融资产交易市场股份有限公司 数据处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
US20160259579A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
EP2821925B1 (en) Distributed data processing method and apparatus
US9501241B2 (en) Storage system and object management method
US9218141B2 (en) Managing write operations to an extent of tracks migrated between storage devices
US10229006B1 (en) Providing continuous data protection on a storage array configured to generate snapshots
US8578112B2 (en) Data management system and data management method
US20210004166A1 (en) Data writing method, client server, and system
JP2016529633A (ja) スナップショットおよびクローンの複製
KR20140042430A (ko) 컴퓨팅 시스템 및 그 데이터 관리 방법
US9965473B2 (en) System, information processing apparatus, method for controlling the same, and non-transitory computer-readable medium
JP2020510905A (ja) フラッシュメモリファイルシステム及びそのデータ管理方法
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
CN107798063B (zh) 快照处理方法和快照处理装置
JP2016162245A (ja) ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
EP2669806B1 (en) Storage system
JP7215971B2 (ja) 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体
US10969970B2 (en) Storage optimization of database in volatile and non-volatile storing unit
WO2017020757A1 (en) Rebalancing and elastic storage scheme with elastic named distributed circular buffers
CN114297196B (zh) 元数据存储方法、装置、电子设备及存储介质
JP2021009561A (ja) データ処理システム、データ処理装置及びデータ処理プログラム
JP2013088920A (ja) 計算機システム及びデータ管理方法
JP6733214B2 (ja) 制御装置、ストレージシステム、制御方法及びプログラム
JP2013058133A (ja) データ書き込み装置
JP2020095549A (ja) 産業用コントローラ
CN114415980B (zh) 多云集群数据管理系统、方法及装置
US11886299B2 (en) Techniques for providing incremental backup progress indications