JP6197816B2 - ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム - Google Patents

ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム Download PDF

Info

Publication number
JP6197816B2
JP6197816B2 JP2015060431A JP2015060431A JP6197816B2 JP 6197816 B2 JP6197816 B2 JP 6197816B2 JP 2015060431 A JP2015060431 A JP 2015060431A JP 2015060431 A JP2015060431 A JP 2015060431A JP 6197816 B2 JP6197816 B2 JP 6197816B2
Authority
JP
Japan
Prior art keywords
storage area
volume
data
specific
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015060431A
Other languages
English (en)
Other versions
JP2016181078A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2015060431A priority Critical patent/JP6197816B2/ja
Priority to US15/060,842 priority patent/US10114583B2/en
Publication of JP2016181078A publication Critical patent/JP2016181078A/ja
Application granted granted Critical
Publication of JP6197816B2 publication Critical patent/JP6197816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0689Disk arrays, e.g. RAID, JBOD

Description

本発明は、記憶領域を効率的に利用可能なストレージシステム等に関する。
近年、情報通信システムの運用或いは管理を容易にし、それらに要するコストを低減可能な技術として、各種仮想化技術が普及している。係る仮想化技術は、情報処理装置等(或いはその周辺機器等)を仮想化した仮想マシンを提供することが可能であり、係る仮想マシンを利用した情報システムを構築することが可能である。
ストレージシステム(あるいはストレージ装置)を仮想化する技術の一つとしてリンクドクローン(Linked Clone)機能と呼ばれる技術がある。Linked Clone機能が実装されたストレージシステムは、クローンボリュームと呼ばれるボリューム(記憶領域)と、エンティティボリュームと呼ばれるボリュームとを用いて、仮想的なストレージ(記憶領域)を提供する。クローンボリュームは、例えば、各仮想マシンにおいて個別に使用されるデータ等を保持する(含む)ボリュームである。また、エンティティボリュームは、例えば、各仮想マシンにおいて共通に使用される(共有可能な)データを含むボリュームである。
より具体的には、Linked Clone機能が実装されたストレージシステムにおいては、クローンボリューム毎に、エンティティボリュームとの間の差分を表すデータ(差分データ)が、物理ディスクに記憶される。係る物理ディスクは、例えば、ハードディスクドライブ(Hard Disk Drive:HDD)や、半導体記憶装置等の、任意の記憶デバイスを有する記憶装置である。係るストレージシステムにおいては、上記した差分データが、物理ディスクにおいて確保された記憶領域(記憶容量)に格納される。これより、係るストレージシステムにおいては、差分データを効率よく管理可能であり、また、ストレージ容量を効率的に利用可能な技術が求められている。
ストレージ容量の効率的な利用に関連する技術が、例えば、以下の特許文献に開示されている。
特許文献1(特開2011−248742号公報)は、仮想マシンが占有するストレージ容量を削減する技術を開示する。特許文献1に開示された技術は、既存の仮想マシンが使用するディスクイメージと、マスタとして使用するマスタディスクイメージとの差分を抽出する。特許文献1に開示された技術は、係る差分を保存した差分ディスクイメージを用いて、仮想マシンのディスクイメージを置き換えることにより、仮想マシンが使用するストレージ容量を削減する。
特許文献2(特開2013−054416号公報)は、バックアップデータの複製先に求められる物理的な記憶容量を削減する技術を開示する。特許文献2に開示された技術は、複製元のデータ領域に含まれる部分領域毎に、それらの領域に含まれるデータの同一性を判定可能なコードを生成して保存する。特許文献2に開示された技術は、同一のデータが格納された部分領域を複製先のデータ領域に複製する際、それらの部分領域に対して同一の物理記憶領域を割り当てることにより、物理記憶領域における重複を排除する。
特許文献3(特開2006−011811号公報)は、ホスト装置に接続されたストレージシステムにおいて、不要なデータを管理対象から除外する技術を開示する。特許文献3に開示されたストレージシステムは、プライマリボリュームと、当該プライマリボリュームに対する差分が蓄積された差分ボリュームとを有する。係る技術は、ホスト装置におけるファイルシステムにおいて参照されない領域に関連付けられた、プライマリボリュームの記憶領域を特定する。そして、係る技術は、特定されたプライマリボリュームの記憶領域に関連付けられた差分ボリュームの記憶領域を削除する。
なお、ストレージ容量の効率的な利用と直接関係する技術ではないが、ストレージの管理或いは運用等に関連する技術が、以下の特許文献に開示されている。
例えば、特許文献4(特開2014−032515号公報)は、ネットワークを介してデータを複製するストレージシステムにおいて、データの複製中に、複製対象のデータを含む一部の記憶領域を解放する技術を開示する。
また、例えば、特許文献5(特開2008−158570号公報)は、複数のストレージ装置が、それぞれ自装置に記憶されたデータのチェックコードを作成して相互に交換することにより、それぞれの装置に記憶されたデータの同一性を検証する技術を開示する。これにより、特許文献5に開示された技術は、同一データの転送を低減し、通信回線の使用率を低減することが可能である。
特開2011−248742号公報 特開2013−054416号公報 特開2006−011811号公報 特開2014−032515号公報 特開2008−158570号公報
Linked Clone機能を備えたストレージシステムにおいて、仮想マシンがデータの更新を行う場合、以下のような処理が実行される。即ち、係るストレージシステムは、物理ディスクからクローンボリュームに用いられる記憶領域(差分データっを記憶する領域)を確保する。係るストレージシステムは、確保された記憶領域に記憶されるデータ(差分データ)を更新する。そして、係るストレージシステムは、エンティティボリュームとクローンボリュームとの間に差分データがあることを表す情報を、例えば任意の管理情報(例えば、管理テーブル等)を用いて管理する。
例えば、更新したデータが消去された場合など、クローンボリュームにおける特定の記憶領域と、エンティティボリュームにおいて対応する特定の記憶領域とが同一のデータを含む場合がある。この場合、クローンボリュームに含まれるデータと、エンティティボリュームに含まれるデータとは同一のものであるにも関わらず、これらに対して、物理ディスクから記憶領域が重複して割り当てられる可能性がある。
ストレージシステムの運用が継続され、仮想マシンにおけるファイルの作成と削除が繰り返された場合、エンティティボリュームとクローンボリュームとにおいて、同一のデータを含む領域が多数作成される可能性がある。上記のようにクローンボリュームにおいて差分データが生成された場合、そのクローンボリューム自体を削除するまで、当該差分データを記憶する物理ディスク容量が確保されたままになる場合がある。即ち、この場合、同一のデータが重複して複数の領域に記憶されることから、ストレージの効率的な利用が十分に実現されない可能性がある。即ち、この場合、Linked Clone技術を採用しているにも関わらず、クローンボリュームとエンティティボリュームとの差分データにのみ物理ディスクの記憶領域を割り当てる効率的な運用管理が、十分に実行できないという問題が発生する可能性がある。
これに対して、上記特許文献1に開示された技術は、既存の仮想マシンを、リンクドクローン機能を利用した仮想マシンに変換する方法を開示するにすぎない。また、特許文献2に開示された技術は、バックアップ処理等において複製データを作成する際に、データの重複を排除する技術である。特許文献3は、ホスト装置のファイルシステムにおいて参照されない空き領域を、ストレージシステムにおける管理対象から除外する技術を開示するにすぎない。特許文献4は、ストレージに格納されたデータを解放する具体的な一手段を開示するにすぎない。また、特許文献5は、複数のストレージにおけるデータの同一性を検証可能な技術を開示するのみである。即ち、上記各特許文献に開示された技術はいずれも、上記説明した課題を解決可能な技術ではない。
本発明は上記のような事情を鑑みてなされたものである。即ち、本発明は、記憶されるデータの重複を排除することにより、記憶領域を効率的に利用可能なストレージシステム等を提供することを主たる目的の一つとする。
上記の目的を達成すべく、本発明の一態様に係るストレージシステムは、以下の構成を備える。即ち、本発明の一態様に係るストレージシステムは、記憶領域を提供する第1のボリュームと、上記第1のボリュームに対する差分を含む他の記憶領域を提供する第2のボリュームと、特定のデータに対する削除要求を受け付けた場合、当該特定のデータを含む、上記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分領域と関連付けされた、上記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとの間の同一性を確認した結果に基づいて、上記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放するボリューム管理手段と、を備える。
また、本発明の一態様に係るストレージの管理方法は、以下の構成を備える。即ち、本発明の一態様に係るストレージの管理方法は、記憶領域を提供する第1のボリュームと、上記第1のボリュームに対する差分を含む記憶領域を提供する第2のボリュームとを有するストレージに含まれる特定のデータに対する削除要求を受け付け、当該特定のデータを含む、上記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分領域と関連付けされた、上記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとの間の同一性を確認した結果に基づいて、上記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する。
また、同目的は、上記構成を有するストレージシステム、あるいはストレージの設定方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記録媒体等によっても達成される。
本発明によれば、記憶されるデータの重複を排除することにより、記憶領域を効率的に利用可能である。
図1は、本発明の第1の実施形態におけるストレージシステムの機能的な構成を例示するブロック図である。 図2は、本発明の第1の実施形態におけるストレージシステムの構成要素(リンクドクローン機能制御部)の機能的な構成を例示するブロック図である。 図3は、本発明の第1の実施形態における記憶領域間の関連を模式的に表す図である。 図4は、本発明の第1の実施形態におけるストレージシステムにおいて用いられる管理情報(エンティティボリューム差分管理テーブル)の構成例を示すブロック図である。 図5は、本発明の第1の実施形態におけるストレージシステムにおいて用いられる管理情報(クローンボリューム差分管理テーブル)の構成例を示すブロック図である。 図6は、本発明の第1の実施形態におけるストレージシステムの構成要素(差分情報管理部)の機能的な構成を例示するブロック図である。 図7は、本発明の第1の実施形態におけるストレージシステムの動作(データの参照処理)を例示するフローチャートである。 図8Aは、本発明の第1の実施形態において、各記憶領域に含まれるデータの関連を模式的に表す図(1/2)である。 図8Bは、本発明の第1の実施形態において、各記憶領域に含まれるデータの関連を模式的に表す図(1/2)である。 図9は、本発明の第1の実施形態におけるストレージシステムの動作(データの更新処理)を例示するフローチャートである。 図10は、本発明の第1の実施形態におけるストレージシステムの動作(データの削除処理)を例示するフローチャートである。 図11は、本発明の第1の実施形態におけるストレージシステムの動作(物理記憶領域の解放)を例示するフローチャートである。 図12は、本発明の第2の実施形態におけるストレージシステム1200の機能的な構成を例示するブロック図である。 図13は、本発明の各実施形態に係るストレージシステム、あるいは、その構成要素を実現可能なハードウェアの構成を例示する図である。
以下、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は例示であり、本発明の技術範囲はそれらには限定されない。
まず、本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景等について具体的に説明する。
Linked Clone機能を提供するストレージシステムにおいては、マスターデータであるエンティティボリュームと、各仮想マシンが使用するクローンボリュームとは、それぞれ複数の部分領域から構成される。係る部分領域は、例えば、特定のアドレス範囲(例えば、LBA(Logical Block Addressing)によるアドレス等)を用いて規定されてもよい。
Linked Clone機能を提供するストレージシステムにおいては、エンティティボリュームの部分領域と、クローンボリュームの部分領域とが関連付けられる。具体的には、例えば、エンティティボリュームの部分領域と、クローンボリュームの部分領域とは、特定のアドレス範囲毎に関連付けられてもよい。ストレージシステムは、各仮想マシンが使用するクローンボリュームにおけるそれぞれの部分領域について、マスターデータとなるエンティティボリュームとの差分を管理する。
Linked Clone機能を提供するストレージシステムは、ホスト装置(例えば、仮想マシンや、仮想マシンを実行する情報処理装置等)からのアクセス要求に対応して、クローンボリューム又はエンティティボリュームに記憶されたデータを提供する。より具体的には、クローンボリュームとエンティティボリュームとの間に差分がない場合、ホスト装置がクローンボリュームのデータを参照すると、エンティティボリュームのデータが参照される。具体的には、例えば、ホスト装置がクローンボリュームにおける特定の記憶領域に記憶されたデータを参照すると、当該特定の記憶領域に関連付けされたエンティティボリュームの記憶領域が特定される。そして、その特定されたエンティティボリュームにおける記憶領域に含まれるデータが、ホスト装置に提供される。
ホスト装置から、クローンボリュームに対して書き込み処理が行われた場合、エンティティボリュームとクローンボリュームとの間に差分が発生する。この場合、ストレージシステムは、例えば、書き込みが行われたクローンボリュームにおける部分領域と、当該部分領域に関連付けされたエンティティボリュームにおける部分領域との間の差分を、物理ディスクに書き込む。そして、ストレージシステムは、その部分領域に差分があることを示す情報(例えばフラグ等)を管理情報(例えば、部分領域毎に差分の有無を表す管理テーブルや差分マップ等)にセットする。これ以降、係る差分が存在する部分領域に対するアクセスは、書き込みが行われたデータ(即ち、クローンボリュームに書き込まれ、物理ディスクに記憶されたデータ)に対して行われる。
このように、Linked Clone機能を提供するストレージシステムは、物理ディスクに記憶されるデータを、エンティティボリュームとクローンボリュームとの間の差分データに限定するよう制御する。これにより、係るストレージシステムは、多数の仮想マシンが作成された場合でも、仮想マシン毎に全データを物理ディスクに格納する場合と比較して、使用される物理ディスクの容量(記憶領域)を削減することができる。即ち、係るストレージシステムは、各仮想マシンに共通するエンティティボリュームのデータを、仮想マシン毎に重複して物理ディスクに記録する必要がないことから、使用される物理ディスクの記憶容量を低減可能である。
上記したように、例えば、クローンボリュームにおいて更新されたデータを消去した場合等、クローンボリュームにおける特定の部分領域に含まれるデータと、それに関連付けされたエンティティボリュームにおける部分領域に含まれるデータとが同一となる場合がある。即ち、それらの部分領域については、同一のデータが重複して物理ディスクに記憶されることから、物理ディスクの記憶領域が無用に消費されている。ストレージシステムの運用が継続され、仮想マシンにおけるファイルの作成と削除とが繰り返された場合、物理ディスクにおいて同一のデータを含む(即ち、同一のデータを保持する)記憶領域が重複して複数確保される可能性がある。物理ディスクにおいて、上記したような同一のデータを含む重複した記憶領域を低減可能であれば、記憶領域をより効率的に利用可能である。
以下の各実施形態を用いて説明する本発明は、クローンボリュームとエンティティボリュームの差分データのうち、不要なデータを削減することにより、物理ディスク容量を効率的に管理可能なストレージシステム等を提供可能である。
なお、以下の各実施形態に記載するストレージシステムは1以上の専用のハードウェア装置、あるいは、コンピュータ等の汎用のハードウェア装置を用いて実現可能である。以下の各実施形態におけるストレージシステムは単体の装置(ストレージ装置)として実現されてもよく、複数のハードウェア装置により構成されたシステムとして実現されてもよい。なお、係るストレージシステムを実現可能なハードウェア構成例(例えば図13)については後述する。
<第1の実施形態>
本発明の第1の実施形態について、図面を参照して説明する。
(構成)
図1は、本実施形態におけるストレージシステム100の機能的な構成を例示するブロック図である。本実施形態におけるストレージシステム100は1つ又は複数のホスト装置(図1における101)に接続されている。ストレージシステム100は、ホスト装置101から各種コマンドを受信し、係るコマンドに従い各種処理を実行する。なお、図1にはホスト1乃至ホスト3が例示されているが、本ストレージシステムに接続可能なホストの数は、任意に定められてよい。
それぞれのホスト装置101には、仮想マシン101aが配置される。図1に示す具体例では、各ホスト装置101に対して仮想マシン101aが2台配置されている。各ホスト装置101には任意の台数の仮想マシンが配置されてよい。なお、係る仮想マシン101a及び仮想マシン101aの実行環境(仮想化基盤)は、周知の任意の仮想化技術を用いて実現可能であることから、詳細な説明を省略する。
ストレージシステム100は、大別して、ホスト制御部102と、ディスク制御部103と、リンクドクローンボリューム管理部105と、リンクドクローン機能制御部106と、論理ボリューム管理部107と、差分情報管理部108と、を含む。ストレージシステム100は、更に、物理ディスク群104を含んでもよい。ストレージシステム100を構成するこれらの構成要素の間は、任意の通信手段を用いて通信可能に接続されていてもよい。以下、ストレージシステム100を構成する各構成要素について説明する。
ストレージシステム100は、ホスト装置101からの各種コマンドを受信するホスト制御部102を備える。ホスト制御部102は、各ホスト装置101から受信したコマンドを解析して、当該コマンド毎に実行する処理を決定する。係るコマンドは、例えば、ストレージに対する各種アクセスを実行するコマンドであってもよい。係るコマンドは、例えば、SCSI(Small Computer System Interface)インタフェース規格により規定されたコマンドであってもよいが、これには限定されない。
また、ストレージシステム100は、物理ディスク群104を制御するディスク制御部103を備える。物理ディスク群104を構成する物理ディスクは、例えば、HDDや半導体記憶装置等の、物理的な記憶デバイスを有する記憶装置である。物理ディスク群104は、図1に例示するように、ストレージシステム100の内部に搭載されてもよい。また、物理ディスク群104は、ストレージシステム100の外部に設けられるとともに、ストレージシステム100と通信可能に接続されてもよい。なお、係る物理ディスク群104を構成する物理ディスク(図1における物理ディスク00乃至物理ディスクN)の数は、任意に定められてよい。リンクドクローンボリューム(Linked Clone Volume)管理部105(後述)により管理されるエンティティボリューム、あるいは、クローンボリュームに含まれる(保持される)データは、それぞれ関連付けされた物理ディスクにおける記憶領域(物理記憶領域)に記憶される。ディスク制御部103は、係る物理ディスク群104に対する、記憶領域の確保及び解放、確保された記憶領域に対する各種アクセス(参照、更新、削除等)を制御する。なお、ディスク制御部103は、物理ディスク群104における記憶領域を解放する際、当該開放された記憶領域に対して特定の値(例えば「0」)を書き込むことが可能である。
また、ストレージシステム100は、リンクドクローンボリューム管理部105を備える。リンクドクローンボリューム管理部105は、ディスク制御部103を通じて、物理ディスク群104から、データを格納する記憶領域(物理記憶領域)を確保する。そして、リンクドクローンボリューム管理部105は、確保した物理記憶領域を用いて、エンティティボリューム(「第1のボリューム」と称する場合がある)あるいはクローンボリューム(「第2のボリューム」と称する場合がある)を構成する。リンクドクローンボリューム管理部105は、例えば、エンティティボリューム、あるいは、クローンボリュームに対する各種アクセス処理を実行してもよい。なお、リンクドクローンボリューム管理部105は、ホスト装置101及び仮想マシン101aの数等に応じて、任意の数のエンティティボリュームあるいはクローンボリュームを構成してよい。
また、ストレージシステム100は、リンクドクローン(Linked Clone)機能制御部106を備える。リンクドクローン機能制御部106は、上記リンクドクローンボリューム管理部105により構成されたエンティティボリュームと、クローンボリュームとに基づいて、後述する論理ボリューム管理部107に対して、論理的な記憶ボリュームを識別可能なLUN(Logical Unit Number)を提供する。例えば、ホスト装置101(仮想マシン101a)からは、係るLUN毎に一つの論理的なストレージデバイスが認識される。仮想マシン101aは、LUN毎に提供される論理ボリュームにアクセスする。
リンクドクローン機能制御部106及び論理ボリューム管理部107(後述)は、エンティティボリュームと、クローンボリュームと、論理ボリュームとを、例えば、図3に例示するように、特定の部分領域毎に関連付けてもよい。この場合、上記各ボリュームにおける部分領域は他のボリュームにおける部分領域と関連付けされる。例えば、ホスト装置101(仮想マシン101a)が、論理ボリュームにおける特定の領域に含まれる(保持される)データにアクセスした場合、クローンボリューム或いはエンティティボリュームにおいて関連する領域のデータがアクセスされる。上記各ボリュームにおける部分領域は、例えば、図3に例示するように、アドレスの範囲毎に区切られてもよい。これらの各ボリュームは、例えば、それぞれのボリュームに含まれる部分領域を識別可能な識別情報(ID:Identifier)等を用いて、相互に関連付けられてもよい。なお、以下、それぞれのボリュームにおいて関連付けされた部分領域を、「関連する領域(関連領域)」あるいは「関連する部分領域(関連部分領域)」と称する場合がある。例えば、図3に示す具体例の場合、符号301が付された「エンティティボリューム000」における領域に対して、符号302が付された「クローンボリューム001」における領域を、「関連する領域(関連領域)」と称する場合がある。同様に、符号302が付された「クローンボリューム001」における領域に対して、符号301が付された「エンティティボリューム000」における領域を「関連する領域(関連領域)」と称する場合がある。それぞれのボリュームにおける関連領域(関連する部分領域)は、例えば、同じアドレスの範囲に存在する部分領域であってもよく、同じ識別情報が付与された部分領域であってもよい。
リンクドクローン機能制御部106は、図2に例示するように、差分管理テーブル201を有する。差分管理テーブル201は、エンティティボリュームに関する情報を保持するエンティティボリューム差分管理テーブル201a(「第1のボリューム管理情報」と称する場合がある)を含む。また、差分管理テーブル201は、クローンボリュームに関する情報を保持するクローンボリューム差分管理テーブル201b(「第2のボリューム管理情報」と称する場合がある)を含む。
エンティティボリューム差分管理テーブル201aは、図4に例示するように、各エンティティボリューム毎に、差分領域ID401と、範囲情報402と、差分データチェックコード403とを関連付けて保持する。
差分領域ID401は、例えば、エンティティボリュームを構成する部分領域である差分領域を識別(特定)可能な識別情報であってもよい。なお、エンティティボリューム差分管理テーブル201aは、差分領域ID401を含まなくともよい。
範囲情報402は、例えば、特定の差分領域401を構成する記憶領域の範囲を表す情報である。範囲情報402は、例えば、特定の差分領域を構成するアドレスの範囲を表す情報であってもよい。この場合、範囲情報402は、例えば、各差分範囲の開始LBAと、終了LBAとを保持してもよい。なお、範囲情報402は、アドレス範囲に限定されず、例えば、特定の差分領域を構成するブロック数と、ストレージの先頭からのオフセットとを保持してもよい。
差分データチェックコード403は、特定の差分領域に保持されるデータと、他のデータとが同一であるか否かを判定可能なコードである。係るチェックコードは、例えば、特定の差分領域に含まれるデータから算出されたハッシュ値であってもよい。係るハッシュは、例えば、MD5(Message Digest Algorithm 5)、SHA(Secure Hash Algorithm)等の周知の技術を用いて算出されてもよい。
エンティティボリューム差分管理テーブル201aは、上記以外にも、例えば、エンティティボリュームに含まれる差分領域に割り当てられた、物理ディスク群104における記憶領域(物理記憶領域)を特定可能な情報を保持してもよい。
クローンボリューム差分管理テーブル201bは、図5に例示するように、各クローンボリューム毎に、差分領域ID501と、範囲情報502と、差分有効フラグ503と、差分データチェック要求フラグ504とを関連付けて保持する。
差分領域ID501は、クローンボリュームを構成する部分領域である差分領域を識別(特定)可能な識別情報である。差分領域ID501は、図4に例示する差分領域ID401と同様としてもよい。エンティティボリュームにおける差分領域と、クローンボリュームにおける差分領域とは、差分領域ID401と、差分領域ID501とを用いて関連付けされてもよい。
範囲情報502は、特定の差分領域501を構成する記憶領域の範囲を表す情報である。範囲情報502は、例えば、特定の差分領域を構成するアドレスの範囲を表してもよく、各差分範囲の開始LBAと、終了LBAとを保持してもよい。なお、範囲情報502は、図4に例示する範囲情報402と同様としてもよい。
差分有効フラグ503は、クローンボリュームにおけるある差分領域が、当該差分領域に関するエンティティボリュームにおける関連領域から更新されたか否かを表す情報(「差分有効性情報」と称する場合がある)である。なお、差分有効フラグ503は、係る更新により差分が生じたか否かを表してもよい。図5に示す具体例においては、差分有効フラグが「1」(有効)の場合、更新が発生した(差分が存在する)ことを表し、差分有効フラグが「0」(無効)の場合、更新されていない(差分が存在しない)ことを表す。図5に示す具体例では、差分領域IDが「0000」である差分領域に関する差分有効フラグが「1」に設定されている。この場合、クローンボリュームにおける差分領域「0000」に含まれるデータは、エンティティボリュームにおける差分領域「0000」に含まれるデータから更新されたことを表す。なお、差分有効フラグに関する処理については、後述する。
差分データチェック要求フラグ504は、クローンボリュームにおけるある差分領域と、当該差分領域に関するエンティティボリュームにおける関連領域との間に差分が存在するか否かを確認する処理を実行するか否か表す情報である。換言すると、差分データチェック要求フラグ504は、クローンボリュームにおける特定の差分領域に含まれるデータと、エンティティボリュームにおける関連領域に含まれるデータとの同一性を判定する処理を実行するか否かを表す情報である。以下、差分データチェック要求フラグ504を、「差分チェック要求情報」と称する場合がある。
本実施形態においては、リンクドクローン機能制御部106が、クローンボリュームに含まれるデータの削除要求を受け付けた際、当該データを含む差分領域に関する差分データチェック要求フラグ504を設定する。なお、差分データチェック要求フラグ504に関する処理については、後述する。
クローンボリューム差分管理テーブル201bは、上記以外にも、例えば、クローンボリュームに含まれる差分領域に割り当てられた、物理ディスク群104における記憶領域(物理記憶領域)を特定可能な情報を保持してもよい。
また、ストレージシステム100は、論理ボリューム管理部107を備える。論理ボリューム管理部107は、ホスト制御部102を通じて、各ホスト装置101にLUNを論理ボリュームとして提供する。論理ボリューム管理部107は、また、各ホスト装置101から、論理ボリュームに関する各種コマンドを受け付ける。論理ボリューム管理部107は、受け付けたコマンドを解析し、リンクドクローンボリューム管理部105に対して、エンティティボリューム、又は、クローンボリュームに対する各種アクセス処理の実行を要求してもよい。
また、ストレージシステム100は、差分情報管理部108を備える。差分情報管理部108は、リンクドクローン機能制御部106を監視する。より具体的には、差分情報管理部108は、リンクドクローン機能制御部106が保持する差分情報(差分管理テーブル201が保持する情報)の状態を監視してもよい。差分情報管理部108は、図6に例示するように、差分情報管理部108は、差分データ比較部601とチェックコード生成部602と、差分データ解放部603とを有する。
差分データ比較部601はクローンボリューム差分管理テーブル201bの差分データチェック要求フラグ(図5の504)を監視し、フラグが有効な場合、チェックコード生成部602にデータの比較(コンペア)を指示する。
チェックコード生成部602は、エンティティボリュームにおける各差分領域のチェックコードを生成する。また、チェックコード生成部602は、差分データチェック要求フラグに「有効」が設定されている、クローンボリュームにおける差分領域のチェックコードを生成する。
差分データ比較部601は、チェックコード生成部602により生成された、クローンボリュームにおける差分領域のチェックコードと、エンティティボリュームにおける関連領域のチェックコードと比較する。差分データ比較部601は、それらが同値(同一)であった場合、それぞれのボリュームにおける同じ差分領域に含まれる全データのコンペアチェックを行う。係るコンペアチェックは、例えば、クローンボリュームにおける差分領域に含まれるデータと、当該差分領域に関連するエンティティボリュームにおける関連領域に含まれるデータとを、バイト単位やビット単位で比較する処理であってもよい。
チェックコードの生成方法によっては、異なるデータに対して同じチェックコードが生成される場合(コリジョン)がある。例えば、あるデータに対するチェックコードとして、係るデータのハッシュを算出する場合、異なるデータから同一のハッシュ値が算出される可能性がある(ハッシュ・コリジョン)。即ち、同一のデータからは同一のチェックコードが生成されるが、チェックコードが同一であっても、生成元のデータが必ずしも同一ではない場合がある。差分データ比較部601は、2つの差分領域のチェックコードが同一である場合、更にそれぞれの領域に含まれる全データをコンペアすることにより、係るコリジョンの影響を排除し、データの同一性を判定可能である。なお、チェックコード生成部602が係るコンペアチェックを実行し、その結果を、差分データ比較部601あるいは、差分データ解放部603に通知してもよい。
差分データ解放部603は、上記コンペアチェックの結果が同一であることが確認された場合、ディスク制御部103に対して、当該差分領域のデータを記憶するために確保されている物理ディスク群における記憶領域の解放を指示する。また、差分データ解放部603は、上記コンペアチェックの結果が同一であることが確認された場合、クローンボリューム差分管理テーブル201bの差分データ有効フラグを無効に設定する。
なお、図1、図2、図6に例示した本実施形態におけるストレージシステムの構成は、一つの具体例にすぎず、それぞれの構成要素の区分けは任意に変更可能である。即ち、本実施形態におけるストレージシステム100は、図1、図2、図6に例示した構成に限定されず、上記説明した各構成要素と同様の機能を実現可能な任意の構成により実現可能である。例えば、図1の具体例における、リンクドクローンボリューム管理部105、リンクドクローン機能制御部106、論理ボリューム管理部107、及び、差分情報管理部108は、その一部又は全部が統合された任意の構成要素を用いて実現されてもよい。同様に、図6に例示する差分データ比較部601、チェックコード生成部602、及び、差分データ解放部603は、その一部又は全部が統合された任意の構成要素を用いて実現されてもよい。
(動作)
次に、上記のように構成された本実施形態におけるストレージシステム100の動作について説明する。
上記したように、ストレージシステム100には、一つ又は複数のホスト装置101が接続されている。またそれぞれのホスト装置101には一つ又は複数の仮想マシン101aが配置される。ストレージシステム100は、それぞれの仮想マシン101aに対して、ストレージ(論理ボリューム)を提供する。
まず、ストレージシステム100においてLinked Clone機能を提供可能とする処理について説明する。
Linked Clone機能を提供するにあたり、まず、ストレージシステム100のリンクドクローンボリューム管理部105が、エンティティボリュームを作成する。この際、リンクドクローンボリューム管理部105は、ディスク制御部103に対して、物理ディスク群104から必要なディスク容量を取得(確保)するよう依頼してもよい。なお、エンティティボリュームが作成された際、リンクドクローン機能制御部106が、エンティティボリューム差分管理テーブル201aを生成してもよい。
上記作成されたエンティティボリュームに対して、仮想マシン101aが使用する各種システムデータが、ホスト装置101により書き込まれる。係るシステムデータは、例えば、複数の仮想マシン101aにおいて共通する、システムを構成する各種データ(例えば、OS(Operating System)や、各種ミドルウェア等)であってもよい。ホスト装置101がシステムデータを書き込むことにより、仮想マシン101aの基盤(ベース)となる環境が構築される。
係る環境の構築が完了した後、差分情報管理部108は、エンティティボリューム差分管理テーブル201aに設定されたエンティティボリュームの全差分領域について、チェックコードを生成する。なお、差分情報管理部108は、チェックコード生成部602を用いて、係るチェックコードを生成してもよい。差分情報管理部108は、エンティティボリューム差分管理テーブル201aの差分データチェックコード領域(図4の402)に、生成したチェックコードを書き込む。なお、差分情報管理部108は、生成したチェックコードをリンクドクローン機能制御部106に通知し、リンクドクローン機能制御部106が、エンティティボリューム差分管理テーブル201aに対して当該チェックコードを書き込んでもよい。
次にリンクドクローンボリューム管理部105は、各仮想マシン101aの初期的なクローンボリュームを作成する。初期状態において、係るクローンボリュームは、エンティティボリュームに対する差分を含まない。クローンボリュームが作成された際、リンクドクローン機能制御部106が、クローンボリューム差分管理テーブル201bを生成してもよい。
次に、Linked Clone機能を提供可能なストレージシステム100に対して、ホスト装置101(より具体的には、仮想マシン101a)からアクセス要求があった場合の処理について説明する。
まず、仮想マシン101aから、ストレージシステム100に対してデータのリード(参照)要求が通知された場合の処理について、図7に例示するフローチャートを参照して説明する。
まず、仮想マシン101aからストレージシステム100に対してデータのリード(参照)要求が通知される(ステップS701)。より具体的には、例えば、仮想マシン101aが、ホスト制御部102に対して、論理ボリューム管理部107が提供する論理ボリュームにおける特定のデータ(あるいは領域)に対する参照要求を通知する。係る参照要求は、例えば、特定のコマンドにより表されてもよい。ホスト制御部102は、例えば、係る参照要求を解析し、リンクドクローンボリューム管理部105に対して当該特定のデータに関する参照アクセスを要求する。この場合、ホスト制御部102は、当該特定のデータが格納されたアドレス領域に対する参照アクセスを要求してもよい。
リンクドクローンボリューム管理部105は、リンクドクローン機能制御部106の差分管理テーブル201(特にはクローンボリューム差分管理テーブル201b)を参照し、当該特定のデータが格納された差分領域に対する差分有効フラグ(図5の503)を確認する。具体的には、リンクドクローンボリューム管理部105は、係る差分有効フラグに「有効」が設定されているか否かを判定する(ステップS702)。リンクドクローンボリューム管理部105は、例えば、差分有効フラグに設定された値が「1」の場合、差分有効フラグに「有効」を表す情報が設定されていると判定してもよい。また、リンクドクローンボリューム管理部105は、例えば、差分有効フラグに設定された値が「0」の場合、差分有効フラグに「無効」を表す情報が設定されていると判定してもよい。
差分有効フラグが無効であった場合(ステップS702においてNO)、リンクドクローンボリューム管理部105は、エンティティボリュームに割り当てられている物理ディスク群104の記憶領域からデータを読み出す(参照する)(ステップS703)。
一方、差分有効フラグが有効であった場合(ステップS702においてYES)、リンクドクローンボリューム管理部105は、クローンボリュームに割り当てられている物理ディスク群(16)からデータを読み出す(参照する)(ステップS704)。
上記ステップS703あるいはステップS704において、リンクドクローンボリューム管理部105は、ディスク制御部103を介して、物理ディスク群104に記憶されたデータを読み出してもよい。
リンクドクローンボリューム管理部105は、読み出したデータをホスト制御部102に通知し、ホスト制御部102が、係るデータを仮想マシン101aに応答してもよい。
図8Aに示す具体例を参照して、上記処理について説明する。例えば、仮想マシン101aが、論理ボリュームにおける領域801aに含まれるデータに対するアクセス要求を通知したことを想定する。図8Aに例示するように、クローンボリューム001における領域802aと、エンティティボリューム000における領域803aとは異なるデータを含む(保持する)。よって、クローンボリューム差分管理テーブル201bにおいて、領域802aに関する差分有効フラグには「有効(例えば「1」)」が設定されている。この場合、仮想マシン101aに対する応答として、領域802a(クローンボリューム001)に含まれるデータが通知される。
次に、例えば、仮想マシン101aが、論理ボリュームにおける領域801bに含まれるデータに対するアクセス要求を通知したことを想定する。図8Aに例示するように、クローンボリューム001における領域802bと、エンティティボリュームにおける領域803bとの間には差分が存在しない。即ち、この場合、クローンボリューム差分管理テーブル201bにおいて、領域802bに関する差分有効フラグには「無効(例えば「0」)」が設定されている。この場合、仮想マシン101aに対する応答として、領域803b(エンティティボリューム000)に含まれるデータが通知される。
次に、仮想マシン101aから、ストレージシステム100に対してデータライト(更新)要求が通知された場合の処理について、図9に例示するフローチャートを参照して説明する。
まず、まず、仮想マシン101aからストレージシステム100に対してデータのライト(更新)要求が通知される(ステップS901)。より具体的には、例えば、仮想マシン101aが、ホスト制御部102に対して、論理ボリューム管理部107が提供する論理ボリュームにおける特定のデータ(あるいは領域)に対する更新要求を通知する。係る更新要求は、例えば、特定のコマンドにより表されてもよい。ホスト制御部102は、例えば、係る更新要求を解析し、リンクドクローンボリューム管理部105に対して、当該データに対する更新アクセスを要求する。この場合、ホスト制御部102は、当該データが格納されたアドレス領域に対する更新アクセスを要求してもよい。
リンクドクローンボリューム管理部105は、リンクドクローン機能制御部106の差分管理テーブル201を参照し、当該データが格納された差分領域に対する差分有効フラグ(図5の503)を確認する。そして、リンクドクローンボリューム管理部105は、係る差分有効フラグに「有効」が設定されているか否かを判定する(ステップS902)。
差分有効フラグが有効であった場合(ステップS902においてYES)、仮想マシン101aから通信されたデータを用いて、更新対象のデータを含む(保持する)クローンボリュームの差分領域を更新する(ステップS905)。これにより、更新対象のデータを含むクローンボリュームの差分領域に割り当てられている、物理ディスク群104の記憶領域のデータが更新される。
一方差分有効フラグが無効であった場合(ステップS902においてNO)、リンクドクローンボリューム管理部105は、物理ディスク群104における物理記憶領域を確保する(ステップS903)。この場合、リンクドクローンボリューム管理部105は、ディスク制御部103に対して、物理ディスク群104における物理記憶領域の確保を依頼してもよい。確保される物理記憶領域のサイズ(記憶容量)は、更新対象のデータのサイズに応じて定められてもよく、差分領域のサイズに応じて定められてもよい。リンクドクローンボリューム管理部105が確保する物理記憶領域は、更新対象のデータを含むクローンボリュームの差分領域に割り当てられる。
リンクドクローンボリューム管理部105は、当該更新対象のデータを含む(保持する)エンティティボリュームの差分領域から、更新対象のデータを読み込み、クローンボリュームにおける関連領域に複製する(ステップS904)。複製されたデータは、上記ステップS903において確保された物理記憶領域に記憶される。
次に、リンクドクローンボリューム管理部105は、ステップS903、S904においてエンティティボリュームから複製されたクローンボリュームの差分領域を、仮想マシン101aから通知されたデータを用いて更新する(ステップS905)。これにより、更新対象のデータを含むクローンボリュームの差分領域に割り当てられている、物理ディスク群104の記憶領域のデータが更新される。ステップS905において、リンクドクローンボリューム管理部105は、ディスク制御部103に対して、物理ディスク群104における特定の物理記憶領域に対するデータの更新を依頼してもよい。
係る更新処理の後、リンクドクローン機能制御部106は、クローンボリューム差分管理テーブル201bにおいて、上記更新されたデータを含む差分領域に関する差分有効フラグに「有効」を表す情報を設定する(ステップS906)。より具体的には、リンクドクローン機能制御部106は、例えば、係る差分有効フラグに「1」を設定してもよい。この場合、リンクドクローンボリューム管理部105が、クローンボリューム差分管理テーブル201bにおける差分有効フラグを直接設定してもよい。また、リンクドクローンボリューム管理部105が上記更新処理の終了をリンクドクローン機能制御部106に通知し、リンクドクローン機能制御部106が差分有効フラグを設定してもよい。
次に、仮想マシン101aから、クローンボリュームが含む(保持する)データの削除要求を通知された場合の処理について、図10に例示するフローチャートを参照して説明する。
本実施形態におけるストレージシステム100は、SCSIコマンドにおけるUNMAPコマンドに対応しており、仮想マシン101aに対して、UNMAPコマンドをサポートすることを通知する。なお、仮想マシン101aは、例えば、ストレージシステム100に関する設定情報等を参照することにより、ストレージシステム100がUNMAPコマンドをサポートすることを認識してもよい。なお、UNMAPコマンドは、物理ディスクにおける未使用の領域を解放するコマンドである。より具体的には、例えば、仮想マシン101aが特定のデータを削除する際、UNMAPコマンドを発行する。UNMAPコマンドに対応したストレージシステムは、UNMAPコマンドが発行された物理記憶領域が不使用になった場合、当該物理記憶領域を解放可能である。
まず、仮想マシン101aはクローンボリュームのデータを削除する際、ストレージシステム100に対して削除要求を通知する。この際、仮想マシン101aは、ストレージシステム100に対してUNMAPコマンドを発行する。
ホスト制御部102は、仮想マシン101aから通知されたデータの削除要求を受信する(ステップS1001)。より具体的には、ホスト制御部102は、LUNが付与された論理ボリュームに対するUNMAPコマンドを受け付ける。ホスト制御部102は、係る削除要求をリンクドクローン機能制御部106に通知する。
リンクドクローン機能制御部106は、クローンボリューム差分管理テーブル201bを参照し、当該削除要求が通知されたデータを含む差分領域に関する差分有効フラグ(図5の503)を確認する(ステップS1002)。
差分有効フラグ有効である場合(ステップS1002においてYES)、リンクドクローン機能制御部106は、クローンボリューム差分管理テーブル201bにおける当該差分領域に関する差分データチェック要求フラグを有効化する(ステップS1003)。リンクドクローン機能制御部106は、この場合、リンクドクローンボリューム管理部105に、係るデータの削除を通知してもよい。
差分有効フラグ無効である場合(ステップS1002においてNO)、クローンボリュームにおける当該差分領域についてはデータの更新が実行されていない。これより、リンクドクローン機能制御部106は、リンクドクローンボリューム管理部105に対して、上記データ更新処理と同様の処理を実行するよう通知する。この場合、リンクドクローンボリューム管理部105は、物理ディスク群104から物理記憶領域を確保する(ステップS1004)。リンクドクローンボリューム管理部105が確保する物理記憶領域は、削除対象のデータを含むクローンボリュームの差分領域に割り当てられる。そして、リンクドクローンボリューム管理部105は、当該削除対象のデータを含むエンティティボリュームの差分領域からデータを読み込み、クローンボリュームにおける関連領域に複製する(ステップS1005)。複製されたデータは、上記ステップS1004において確保された物理記憶領域に記憶される。
上記ステップS1003、あるいは、ステップS1005が完了した際、リンクドクローンボリューム管理部105は、クローンボリュームから、当該削除対象のデータを削除する(ステップS1006)。この際、リンクドクローンボリューム管理部105は、ディスク制御部103に対して、クローンボリュームに割り当てられた物理記憶領域から、削除対象のデータを削除するよう依頼してもよい。ディスク制御部103は、上記依頼に基づいて、当該物理記憶領域に含まれるデータを削除する。より具体的にはディスク制御部103は、物理記憶領域から削除対象のデータを削除し、係る物理記憶領域に「0」データを設定する。リンクドクローンボリューム管理部105は、上記削除処理の完了を、リンクドクローン機能制御部106に通知してもよい。
次に、リンクドクローン機能制御部106は、削除対象のデータを含むクローンボリュームにおける差分領域に関する差分有効フラグを「有効」に設定する(ステップS1007)。リンクドクローン機能制御部106は、上記ステップS1002乃至S1007の処理の終了後、ホスト制御部102に対して、処理終了を通知してもよい。係る通知を受け付けたホスト制御部102は、削除要求(UNMAPコマンド)を発行した仮想マシン101aに対して、削除終了を応答してもよい。
次に、物理ディスク群104において確保された物理記憶領域の解放処理について、図11に例示するフローチャートを参照して説明する。
差分情報管理部108は、例えば、特定のタイミングで、各クローンボリュームに関するクローンボリューム差分管理テーブル201bを監視する。係る特定のタイミングは、例えば、上記した特定のデータに対する削除要求を受け付けたタイミングよりも後の任意のタイミングであってもよい。差分情報管理部108は、例えば、所定の時間間隔毎に、クローンボリューム差分管理テーブル201bを監視してもよい。
差分情報管理部108は、クローンボリューム差分管理テーブル201bに含まれる全てのクローンボリュームに関する差分管理テーブルについて、下記処理を実行する。
まず、差分情報管理部108は、クローンボリューム差分管理テーブル201bを参照する(ステップS1101)。この場合、差分情報管理部108は、リンクドクローン機能制御部106を介して、クローンボリューム差分管理テーブル201bを参照してもよい。
次に、差分情報管理部108は、クローンボリューム差分管理テーブル201bにおいてn番目(nは0以上の整数)の差分領域に関する情報を確認する(S1103)。なお、nは0に初期化される(ステップS1102)。0番目の差分領域は、クローンボリューム差分管理テーブル201bの先頭に登録された差分領域であってもよい。以下において、n番目の差分領域を、単に差分領域nと称する場合がある。
次に、差分情報管理部108は、差分領域nに関する差分有効フラグ(図5の503)に「有効」が設定されているか確認する(ステップS1104)。
差分有効フラグが「有効」ではない場合(ステップS1104においてNO)、差分情報管理部108は、クローンボリューム差分管理テーブル201bに次の差分領域があるか確認する(ステップS1112)。差分情報管理部108は、次の差分領域があれば(ステップS1112においてYES)、nをインクリメントし(ステップS1113)、ステップS1103から処理を続行する。差分情報管理部108は、次の差分領域がなければ(ステップS1112においてNO)、処理を終了する。
次に、差分有効フラグが「有効」である場合(ステップS1104においてYES)、差分情報管理部108は、差分領域nに関する差分データチェック要求フラグ(図5の504)に「有効」が設定されているか確認する(ステップS1105)。
差分データチェック要求フラグが「有効」ではない場合(ステップS1105においてNO)、差分情報管理部108は、ステップS112から処理を続行する。
差分データチェック要求フラグが「有効」である場合(ステップS1105においてYES)、差分情報管理部108は、差分領域nに含まれる(保持されている)データのチェックコードを生成する(ステップS1106)。この場合、差分情報管理部108は、チェックコード生成部602を用いて、当該チェックコードを生成してもよい。
次に、差分情報管理部108は、クローンボリュームにおける差分領域nのチェックコードと、差分領域nに関連するエンティティボリュームにおける関連領域のチェックコードとが同一か否かを比較する(ステップS1107)。この際、差分情報管理部108は、エンティティボリューム差分管理テーブル201aを参照することにより、上記差分領域に関する差分データチェックコードを参照してもよい。
これらのチェックコードが同一ではない場合(ステップS1107においてNO)、差分情報管理部108は、ステップS1112から処理を続行する。
これらのチェックコードが同一である場合(ステップS1107においてYES)、差分情報管理部108は、以下の処理を実行する。即ち、差分情報管理部108は、差分領域nに含まれるデータと、差分領域nに関連するエンティティボリュームにおける関連領域に含まれるデータとを比較する(ステップS1108)。より具体的には、差分情報管理部108は、差分領域nに含まれる全データと、差分領域nに関連するエンティティボリュームにおける関連領域に含まれる全データとについてコンペア処理を実行する。なお、上記の場合における差分領域nに含まれる全データは、差分領域nにおいて削除対象のデータ(ステップS1001において受け付けた削除要求の対象であるデータ)が削除された後のデータである。
係る比較の結果、これらのデータが一致しない(同一ではない)場合(ステップS1109においてNO)、差分情報管理部108は、ステップS1112から処理を続行する。
係る比較の結果、これらのデータが一致する場合(ステップS1109においてYES)、差分情報管理部108は、物理ディスク群104において当該差分領域nに割り当てられた物理記憶領域(記憶容量)を解放する(ステップS1110)。この場合、差分情報管理部108が、ディスク制御部103に対して差分領域nに割り当てられた物理記憶領域の解放を通知し、ディスク制御部103が、係る物理記憶領域の解放処理を実行してもよい。
そして、差分情報管理部108は、クローンボリューム差分管理テーブル201bにおいて、差分領域nに関する差分有効フラグを無効化する(ステップS1111)。この場合、差分情報管理部108は、差分有効フラグに「無効(例えば「0」)」を設定してもよい。
上記処理より、当該差分領域nに関する差分有効フラグが無効に設定される。これより、次回以降、当該差分領域nにアクセスが発生した場合、当該差分領域nに関するエンティティボリュームにおける関連領域がアクセスされる。また、物理ディスク群104において解放された物理記憶領域は、新たにクローンボリュームを更新した際に、更新された差分領域に関するデータを保存する記憶領域として使用可能である。
上記ステップS1111の後、差分情報管理部108は、ステップS1112から処理を続行する。
図8Bに示す具体例を参照して、上記処理について説明する。図8Bに示す具体例では、例えば、仮想マシン101aが、図8Aに示す具体例の状況から、論理ボリュームにおける領域801cに含まれるデータの削除要求を通知したことを想定する。図8Bに示すように、領域801cに含まれるデータを削除した結果、クローンボリューム002における記憶領域802cと、エンティティボリューム000における領域803aとは、同一のデータを含む。この場合、差分情報管理部108は、クローンボリューム002における記憶領域802cに割り当てられた物理ディスク群104の記憶領域を解放する(ステップS1101乃至ステップS1111)。これにより、ストレージシステム100は、物理ディスク群104において、同一のデータを重複して保持する不要な記憶領域を解放可能である。
なお、上記したように、差分情報管理部108は、データに対する削除要求を受け付けたタイミングと異なるタイミングで、上記説明したステップS1101乃至ステップS1113に係る処理を実行可能である。上記説明したステップS1101乃至ステップS1113に係る処理には、比較的長い処理時間が必要となる場合がある。ストレージシステム100は、ホスト装置101からの削除要求を受信したタイミングで素早くレスポンスを返し、その後の任意のタイミングで比較的長い処理時間を要する上記処理を実行してもよい。これにより、ストレージシステム100は、ホスト装置101に対する応答性能の低下させずに、物理ディスク群104における不要な記憶領域を解放可能である。
(効果)
ストレージシステム100は、クローンボリュームにおける差分領域に含まれるデータが削除された際に、係る差分領域に含まれるデータと、エンティティボリュームにおける関連領域に含まれるデータとの同一性を確認する。そして、これらの領域に含まれるデータが同一である場合、クローンボリュームにおける差分領域に割り当てられた物理記憶領域を解放する。これにより、本実施形態におけるストレージシステム100は、Linked Clone機能を使用した仮想マシン環境において、物理ディスク群104に確保される記憶領域を効率よく管理及び運用することが可能である。換言すると、本実施形態におけるストレージシステム100は、物理ディスク群104において確保される記憶容量(使用される物理記憶領域の容量)を効率よく利用することが可能である。より具体的には、ストレージシステム100は、仮想マシン101aからのUNMAPコマンドの発行通知を契機に、エンティティボリュームとクローンボリュームとにおいて関連する差分領域に含まれるデータが同一であるか否かをチェックする。そして、係るチェックの結果、これらの差分領域に含まれるデータが同一であることが確認できた場合、ストレージシステム100は、物理ディスク群104においてクローンボリュームの差分領域に割り当てられた物理ディスク容量を解放する。これにより、ストレージシステム100は、同一のデータが物理ディスク群104に重複して記憶されたままにならないよう、物理ディスク群104における記憶領域を解放可能である。
以上より、本実施形態におけるストレージシステム100によれば、記憶されるデータの重複を排除することにより、記憶領域を効率的に利用可能である。また、これにより、ストレージシステム100は、より多数の仮想マシン環境を構築することができる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。図12は、本発明の第2の実施形態におけるストレージシステム1200の機能的な構成を例示するブロック図である。
図12に例示するように、本実施形態におけるストレージシステム1200は、第1のボリューム1201と、第2のボリューム1202と、ボリューム管理部1203と、を備える。ストレージシステム1200を構成するこれらの構成要素の間は、任意の通信手段を用いて通信可能に接続されている。以下、それぞれの構成要素について説明する。
第1のボリューム1201は、記憶領域(例えば、論理的な記憶領域)を提供する。第1のボリューム1201が提供する記憶領域は、複数の部分的な記憶領域を含んでいてもよい。なお、第1のボリューム1201は、例えば、上記第1の実施形態におけるエンティティボリュームと同様としてもよい。
第2のボリューム1202は、第1のボリューム1201に対する差分を含む記憶領域を提供する。第2のボリューム1202が提供する記憶領域は、複数の部分的な記憶領域を含んでいてもよい。なお、第2のボリューム1202は、例えば、上記第1の実施形態におけるクローンボリュームと同様としてもよい。また、上記第2のボリュームにおける部分的な記憶領域は、第1のボリュームにおける部分的な記憶領域と関連付けられてもよい。
ボリューム管理部1203は、ストレージシステム1200に対する、特定のデータの削除を要求する削除要求を受け付ける。そして、ボリューム管理部1203は、第2のボリューム1202における第2の特定部分記憶領域に含まれるデータと、第1のボリューム1201における第1の特定部分記憶領域に含まれるデータとの間の同一性を確認する。ここで、第2の特定部分記憶領域は、第2のボリューム1202が提供する記憶領域に含まれる部分的な記憶領域であり、当該特定のデータ(削除対象であるデータ)を含む。また、第1の特定部分記憶領域は、第1のボリューム1201が提供する記憶領域に含まれる部分的な記憶領域であり、上記第2の特定部分領域と関連付けされる。第2のボリューム1202が提供する記憶領域に含まれる部分的な記憶領域は、例えば、上記第1の実施形態におけるクローンボリュームにおける差分領域と同様としてもよい。この場合、第2の特定部分記憶領域は、クローンボリュームにおける削除対象のデータを含む部分領域に相当する。また、第1のボリューム1201が提供する記憶領域に含まれる部分的な記憶領域は、例えば、上記第1の実施形態におけるエンティティボリュームにおける差分領域と同様としてもよい。この場合、第1の特定部分記憶領域は、第2の特定部分記憶領域に関する関連領域に相当する。
ボリューム管理部1203は、上記同一性を確認した結果に基づいて、第2のボリューム1202に含まれるデータを記憶する記憶デバイスの記憶領域のうち、第2の特定部分記憶領域に割り当てられた領域を解放する。ボリューム管理部1203は、例えば、上記第2の特定部分記憶領域に含まれるデータと、上記第1の特定部分記憶領域に含まれるデータとが同一である場合、上記第2の特定部分記憶領域に割り当てられた記憶デバイスの領域を解放してもよい。
なお、係る記憶デバイスは、例えば、物理的な記憶デバイスであってもよく、論理的な記憶デバイスであってもよい。また、係る記憶デバイスは、仮想化されていてもよい。係る記憶デバイスは、例えば、上記第1の実施形態における物理ディスク群104と同様としてもよい。
ボリューム管理部1203は、例えば、上記第1の実施形態における、ストレージシステム100を構成する各構成要素において実現される機能を提供可能であってもよい。即ち、ボリューム管理部1203は、上記第1の実施形態におけるディスク制御部103、リンクドクローンボリューム管理部105、リンクドクローン機能制御部106、差分情報管理部108等において実現される機能を提供してもよい。
上記のように構成されたストレージシステム1200は、第1のボリューム及び第2のボリュームを含むストレージに対して特定のデータの削除が通知された場合、当該特定のデータを含む第2のボリュームにおける部分的な記憶領域を特定する。ストレージシステム1200は、係る第2のボリュームにおける部分的な記憶領域(第2の特定部分記憶領域)に関連する、第1のボリュームにおける部分的な記憶領域(第1の特定部分記憶領域)を特定する。ストレージシステム1200は、それらの部分的な記憶領域に含まれるデータが同一であるか否かを判定する。そして、ストレージシステム1200は、その判定結果に基づいて、第2の特定部分記憶領域に割り当てられた、記憶デバイスにおける記憶領域を解放するか否かを判定可能である。これにより、例えば、第1の特定部分記憶領域と、第2の特定部分記憶領域が、同一のデータを含む場合、ストレージシステム1200は、そのデータが物理ディスク群104に重複して記憶されたままにならないよう制御可能である。
以上より、本実施形態におけるストレージシステム1200によれば、記憶されるデータの重複を排除することにより、記憶領域を効率的に利用可能である。また、これにより、ストレージシステム1200は、より多数の仮想マシン環境を構築することができる。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
以下の説明において、上記各実施形態において説明したストレージシステム(100、1200)をまとめて、単に「ストレージシステム」と称する。またストレージシステムの各構成要素を、単に「ストレージシステムの構成要素」と称する。
上記各実施形態において説明したストレージシステムは、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路あるいは記憶デバイス等)として実現されてもよい。
例えば、ストレージシステムを専用のハードウェアにより実現する場合、係るストレージシステムの構成要素は、それぞれの機能を提供可能な集積回路をSoC(System on a Chip)等により実装されてもよい。この場合、例えば、ストレージシステムの構成要素が保持するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。また、この場合、ストレージシステムの各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。ストレージシステムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、任意の通信手段(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
また、上述したストレージシステム又はその構成要素は、図13に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、ストレージシステムは、任意の数の、汎用のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。
図13における演算装置1301は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置1301は、例えば後述する不揮発性記憶装置1303に記憶された各種ソフトウェア・プログラムを記憶装置1302に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるストレージシステムの構成要素は、演算装置1301により実行されるソフトウェア・プログラムとして実現可能である。
記憶装置1302は、演算装置1301から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置1302は、揮発性のメモリ装置であってもよい。例えば、上記各実施形態におけるメモリ部204は、記憶装置1302を用いて実現可能である。
不揮発性記憶装置1303は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置1303は、各種ソフトウェア・プログラムやデータ等を記憶可能である。例えば、上記各実施形態における物理ディスク群104に含まれる各物理ディスクは、不揮発性記憶装置1303を用いて実現可能である。
ネットワークインタフェース1306は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。記各実施形態におけるストレージシステムは、ネットワークインタフェース1306を介して、ホスト装置(例えばホスト装置101)と通信可能に接続されていてもよい。
ドライブ装置1304は、例えば、後述する記録媒体1305に対するデータの読み込みや書き込みを処理する装置である。
記録媒体1305は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
入出力インタフェース1307は、外部装置との間の入出力を制御する装置である。
なお、上記各実施形態におけるストレージシステムは、ネットワークインタフェース1306、ドライブ装置1304、及び、入出力インタフェース1307を備えてもよく、備えなくともよい。
上述した各実施形態を例に説明した本発明におけるストレージシステムは、例えば、図13に例示するハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、係る装置に対して供給したソフトウェア・プログラムを、演算装置1301が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
更に、上記ソフトウェア・プログラムは記録媒体1305に記録されてもよい。この場合、上記ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置1304を通じて不揮発性記憶装置1303に格納されるよう構成されてもよい。
なお、上記の場合において、上記ストレージシステムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
また、上述したストレージシステムは、図13に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図13に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図13に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
なお、上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうる。なお、以下の付記は本発明をなんら限定するものではない。
(付記1)
記憶領域を提供する第1のボリュームと、
上記第1のボリュームに対する差分を含む他の記憶領域を提供する第2のボリュームと、
特定のデータに対する削除要求を受け付けた場合、当該特定のデータを含む、上記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分領域と関連付けされた、上記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとの間の同一性を確認した結果に基づいて、上記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する
ボリューム管理手段と、を備える
ストレージシステム。
(付記2)
上記ボリューム管理手段は、
上記特定のデータを含む上記第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた上記第1の特定部分記憶領域に含まれるデータとが同一である場合に、上記記憶デバイスの記憶領域のうち、上記第2の特定部分記憶領域に割り当てられた領域を解放する
付記1に記載のストレージシステム。
(付記3)
上記ボリューム管理手段は、
上記削除要求を受け付けた際、上記第2の特定部分記憶領域に含まれるデータが、当該第2の特定部分記憶領域と関連付けされた上記第1の特定部分記憶領域に含まれるデータから更新されたか否かを確認し、
当該確認の結果、上記第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた上記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し
これらの部分領域に含まれるデータが同一であると判定した場合、上記記憶デバイスにおいて上記第2の特定部分記憶領域に割り当てられた領域を解放する
付記1又は付記2に記載のストレージシステム。
(付記4)
上記ボリューム管理手段は、
上記ボリューム管理手段は、上記削除要求を受け付けた場合、
上記第2のボリュームに含まれる1以上の部分的な記憶領域毎に、当該記憶領域に含まれるデータが、当該部分的な記憶領域と関連付けされた上記第1のボリュームに含まれる部分的な記憶領域に含まれるデータから更新されたか否かを表す差分有効性情報を含む、第2のボリューム管理情報を参照することにより、上記第2の特定部分記憶領域に含まれるデータが更新されたか否かを判定し、
当該第2の特定部分記憶領域が更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた上記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し、
これらの部分領域に含まれるデータが同一であると判定した場合、上記記憶デバイスにおいて当該第2の特定部分記憶領域に割り当てられた領域を解放するとともに、当該第2の特定部分記憶領域に関する上記差分有効性情報に、データの更新が発生していないことを表す情報を設定する、
付記3に記載のストレージシステム。
(付記5)
上記第2のボリューム管理情報が、上記第2のボリュームに含まれる1以上の部分的な記憶領域毎に、当該記憶領域に含まれるデータと、当該記憶領域と関連付けされた上記第1のボリュームに含まれる部分的な記憶領域に含まれるデータとの間の同一性の判定要否を表す差分チェック要求情報を更に含み、
上記ボリューム管理手段は、
上記削除要求を受け付けたタイミングにおいて、上記第2の特定部分記憶領域に関する上記差分有効性情報に基づいて、当該第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合には、当該第2の特定部分記憶領域に関する上記差分チェック要求情報に、同一性の判定が必要であることを表す情報を設定し、
上記削除要求を受け付けたタイミングよりも後の任意のタイミングにおいて、上記差分チェック要求情報に同一性の判定が必要であることを表す情報が設定されている場合、上記第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた上記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認する
付記4に記載のストレージシステム。
(付記6)
上記ボリューム管理手段は、上記第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータから生成された、当該データと他のデータとが同一であるか否かを判定可能な情報であるチェックコードと、当該第2の特定部分記憶領域と関連付けされた上記第1の特定部分領域に含まれるデータから生成された上記チェックコードとを比較することにより、当該第2の特定部分記憶領域に含まれるデータと、当該第1の特定部分記憶領域に含まれるデータとの間の同一性を判定する、
付記3乃至付記5のいずれかに記載のストレージシステム。
(付記7)
上記ボリューム管理手段は、上記第2の特定部分記憶領域に含まれるデータから生成された上記チェックコードと、当該第2の特定部分記憶領域と関連付けされた上記第1の特定部分領域から生成された上記チェックコードとが同一であると判定した場合、当該第2の特定部分領域に含まれる全データと、当該第1の特定部分領域に含まれる全データとを更に比較することにより、当該第2の特定部分記憶領域に含まれるデータと、当該第1の特定部分記憶領域に含まれるデータとの間の同一性を判定する、
付記6に記載のストレージシステム。
(付記8)
上記ボリューム管理手段は、
上記第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた上記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し、
これらデータが同一であると判定した場合、上記記憶デバイスにおいて上記第2の特定部分記憶領域に割り当てられた領域に特定の値を設定する
付記1乃至付記7のいずれかに記載のストレージシステム。
(付記9)
記憶領域を提供する第1のボリュームと、上記第1のボリュームに対する差分を含む記憶領域を提供する第2のボリュームとを有するストレージに含まれる特定のデータに対する削除要求を受け付け、
当該特定のデータを含む、上記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分領域と関連付けされた、上記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとの間の同一性を確認した結果に基づいて、上記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する
ストレージの管理方法。
(付記10)
記憶領域を提供する第1のボリュームと、上記第1のボリュームに対する差分を含む記憶領域を提供する第2のボリュームとを有するストレージに含まれる特定のデータに対する削除要求を受け付ける処理と、
当該特定のデータを含む、上記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分領域と関連付けされた、上記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとの間の同一性を確認した結果に基づいて、上記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する処理と、をコンピュータに実行させる
コンピュータ・プログラム。
(付記11)
上記ボリューム管理手段は、
上記特定のデータが上記第1のボリュームが提供する記憶領域に含まれる場合、当該特定のデータを含む部分的な記憶領域と関連付けされた上記第2のボリュームにおける部分的な記憶領域に割り当てられる領域を、上記記憶デバイスにおいて新たに確保し、
上記第1のボリュームにおける部分的な記憶領域に含まれるデータを、上記第2のボリュームにおける部分的な記憶領域に複製し、
上記第2のボリュームにおける部分的な記憶領域おいて、上記特定のデータを削除し、
上記第2のボリュームにおける部分的な記憶領域おいて、上記特定のデータを削除した後のデータと、上記第1のボリュームにおける部分的な記憶領域に含まれるデータとの間の差分を判定した結果に基づいて、上記記憶デバイスにおいて上記第2のボリュームにおける部分的な記憶領域に割り当てられた領域を解放するか否かを判定する
付記1に記載のストレージシステム。
(付記12)
上記ボリューム管理手段は、
上記第1のボリュームに含まれる部分的な記憶領域毎に、当該部分的な記憶領域に含まれるデータに基づいて算出され、当該データと、他のデータとが同一であるか否かを判定可能な情報であるチェックコードを含む第1のボリューム管理情報を参照し、
上記削除要求を受け付けた際、上記第2の特定部分記憶領域に関するデータの更新が発生したと判定した場合に、上記第1のボリューム管理情報に含まれる、当該第2の特定部分記憶領域と関連付けされた上記第1の特定部分領域に関する上記チェックコードと、当該第2の特定部分記憶領域に含まれるデータから算出した上記チェックコードとを比較することにより、当該第2の特定部分記憶領域に保持されたデータと、当該第1の特定部分記憶領域に保持されたデータとの間の同一性を判定する、
付記3に記載のストレージシステム。
(付記13)
上記第1のボリューム及び上記第2のボリュームに関連付けされた記憶領域を有する論理ボリュームをホスト装置に提供するとともに、当該ホスト装置から通知される、上記論理ボリュームに対するアクセス要求を処理するホスト制御部を更に備え、
上記記憶デバイスは、物理的な記憶装置により構成される物理記憶手段であり、
上記ボリューム管理手段は、
上記ホスト制御部からアクセス要求を通知された際、当該アクセス要求が通知された上記論理ボリュームと関連付けされた上記第2のボリュームにおける部分的な記憶領域に関する上記差分有効性情報を確認し、
当該第2のボリュームにおける部分的な記憶領域に含まれるデータが、当該第2のボリュームにおける部分的な記憶領域と関連付けされた第1のボリュームにおける部分的な記憶領域に含まれるデータから更新されていない場合には、当該第1のボリュームにおける部分的な記憶領域に含まれるデータを上記ホスト制御部に提供し、
当該第2のボリュームにおける部分的な記憶領域に含まれるデータが、当該第2のボリュームにおける部分的な記憶領域と関連付けされた第1のボリュームにおける部分的な記憶領域に含まれるデータから更新されている場合には、第2のボリュームが提供する部分的な記憶領域に含まれるデータを上記ホスト制御部に提供する、
付記1に記載のストレージシステム。
100 ストレージシステム
101 ホスト装置
102 ホスト制御部
103 ディスク制御部
104 物理ディスク群
105 リンクドクローンボリューム管理部
106 リンクドクローン機能制御部
107 論理ボリューム管理部
108 差分情報管理部
601 差分データ比較部
602 チェックコード生成部
603 差分データ解放部
1200 ストレージシステム
1201 第1のボリューム
1202 第2のボリューム
1203 ボリューム管理部
1301 演算装置
1302 記憶装置
1303 不揮発性記憶装置
1304 ドライブ装置
1305 記録媒体
1306 ネットワークインタフェース
1307 入出力インタフェース

Claims (9)

  1. 記憶領域を提供する第1のボリュームと、
    前記第1のボリュームに対する差分を含む他の記憶領域を提供する第2のボリュームと、
    特定のデータに対する削除要求を受け付けた場合、当該特定のデータを含む、前記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域と関連付けされた、前記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとが同一である場合に、前記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する
    ボリューム管理手段と、を備える
    ストレージシステム。
  2. 前記ボリューム管理手段は、
    前記削除要求を受け付けた際、前記第2の特定部分記憶領域に含まれるデータが、当該第2の特定部分記憶領域と関連付けされた前記第1の特定部分記憶領域に含まれるデータから更新されたか否かを確認し、
    当該確認の結果、前記第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた前記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し
    これらの部分記憶領域に含まれるデータが同一であると判定した場合、前記記憶デバイスにおいて前記第2の特定部分記憶領域に割り当てられた領域を解放する
    請求項1に記載のストレージシステム。
  3. 前記ボリューム管理手段は、前記削除要求を受け付けた場合、
    前記第2のボリュームに含まれる1以上の部分的な記憶領域毎に、当該記憶領域に含まれるデータが、当該部分的な記憶領域と関連付けされた前記第1のボリュームに含まれる部分的な記憶領域に含まれるデータから更新されたか否かを表す差分有効性情報を含む、第2のボリューム管理情報を参照することにより、前記第2の特定部分記憶領域に含まれるデータが更新されたか否かを判定し、
    当該第2の特定部分記憶領域が更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた前記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し、
    これらの部分記憶領域に含まれるデータが同一であると判定した場合、前記記憶デバイスにおいて当該第2の特定部分記憶領域に割り当てられた領域を解放するとともに、当該第2の特定部分記憶領域に関する前記差分有効性情報に、データの更新が発生していないことを表す情報を設定する、
    請求項に記載のストレージシステム。
  4. 前記第2のボリューム管理情報が、前記第2のボリュームに含まれる1以上の部分的な記憶領域毎に、当該記憶領域に含まれるデータと、当該記憶領域と関連付けされた前記第1のボリュームに含まれる部分的な記憶領域に含まれるデータとの間の同一性の判定要否を表す差分チェック要求情報を更に含み、
    前記ボリューム管理手段は、
    前記削除要求を受け付けたタイミングにおいて、前記第2の特定部分記憶領域に関する前記差分有効性情報に基づいて、当該第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合には、当該第2の特定部分記憶領域に関する前記差分チェック要求情報に、同一性の判定が必要であることを表す情報を設定し、
    前記削除要求を受け付けたタイミングよりも後の任意のタイミングにおいて、前記差分チェック要求情報に同一性の判定が必要であることを表す情報が設定されている場合、前記第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた前記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認する
    請求項に記載のストレージシステム。
  5. 前記ボリューム管理手段は、前記第2の特定部分記憶領域に含まれるデータが更新されたと判定した場合、当該第2の特定部分記憶領域に含まれるデータから生成された、当該データと他のデータとが同一であるか否かを判定可能な情報であるチェックコードと、当該第2の特定部分記憶領域と関連付けされた前記第1の特定部分記憶領域に含まれるデータから生成された前記チェックコードとを比較することにより、当該第2の特定部分記憶領域に含まれるデータと、当該第1の特定部分記憶領域に含まれるデータとの間の同一性を判定する、
    請求項乃至請求項のいずれかに記載のストレージシステム。
  6. 前記ボリューム管理手段は、前記第2の特定部分記憶領域に含まれるデータから生成された前記チェックコードと、当該第2の特定部分記憶領域と関連付けされた前記第1の特定部分記憶領域から生成された前記チェックコードとが同一であると判定した場合、当該第2の特定部分記憶領域に含まれる全データと、当該第1の特定部分記憶領域に含まれる全データとを更に比較することにより、当該第2の特定部分記憶領域に含まれるデータと、当該第1の特定部分記憶領域に含まれるデータとの間の同一性を判定する、
    請求項に記載のストレージシステム。
  7. 前記ボリューム管理手段は、
    前記第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域が関連付けされた前記第1の特定部分記憶領域に含まれるデータとの間の同一性を確認し、
    これらデータが同一であると判定した場合、前記記憶デバイスにおいて前記第2の特定部分記憶領域に割り当てられた領域に特定の値を設定する
    請求項1乃至請求項のいずれかに記載のストレージシステム。
  8. 記憶領域を提供する第1のボリュームと、前記第1のボリュームに対する差分を含む記憶領域を提供する第2のボリュームとを有するストレージに含まれる特定のデータに対する削除要求を受け付け、
    当該特定のデータを含む、前記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域と関連付けされた、前記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとが同一である場合に、前記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する
    ストレージの管理方法。
  9. 記憶領域を提供する第1のボリュームと、前記第1のボリュームに対する差分を含む記憶領域を提供する第2のボリュームとを有するストレージに含まれる特定のデータに対する削除要求を受け付ける処理と、
    当該特定のデータを含む、前記第2のボリュームにおける部分的な記憶領域である第2の特定部分記憶領域に含まれるデータと、当該第2の特定部分記憶領域と関連付けされた、前記第1のボリュームにおける部分的な記憶領域である第1の特定部分記憶領域に含まれるデータとが同一である場合に、前記第2のボリュームに割り当てられた記憶デバイスの記憶領域のうち、当該第2の特定部分記憶領域に割り当てられた領域を解放する処理と、をコンピュータに実行させる
    コンピュータ・プログラム。
JP2015060431A 2015-03-24 2015-03-24 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム Active JP6197816B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015060431A JP6197816B2 (ja) 2015-03-24 2015-03-24 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
US15/060,842 US10114583B2 (en) 2015-03-24 2016-03-04 Storage system, storage management method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015060431A JP6197816B2 (ja) 2015-03-24 2015-03-24 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2016181078A JP2016181078A (ja) 2016-10-13
JP6197816B2 true JP6197816B2 (ja) 2017-09-20

Family

ID=56975338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015060431A Active JP6197816B2 (ja) 2015-03-24 2015-03-24 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム

Country Status (2)

Country Link
US (1) US10114583B2 (ja)
JP (1) JP6197816B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6197816B2 (ja) * 2015-03-24 2017-09-20 日本電気株式会社 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine
US10528488B1 (en) * 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
WO2019038897A1 (ja) * 2017-08-25 2019-02-28 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP7265821B2 (ja) 2018-01-19 2023-04-27 キヤノン株式会社 ズームレンズ及びそれを有する撮像装置
US10802725B2 (en) * 2019-03-07 2020-10-13 Vmware, Inc. Management of unmap processing rates in distributed and shared data storage volumes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011811A (ja) 2004-06-25 2006-01-12 Hitachi Ltd 記憶制御システム及び記憶制御方法
JP5037881B2 (ja) * 2006-04-18 2012-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
JP5105856B2 (ja) 2006-12-20 2012-12-26 Necシステムテクノロジー株式会社 ストレージシステム、論理ボリュームのレプリケーション方法・プログラム
JP2009251725A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
DE102010011344B4 (de) * 2010-03-12 2015-08-27 Artec Computer Gmbh Verfahren zur Herstellung und Verwaltung eines großvolumigen Langzeitarchivs
US9811662B2 (en) * 2010-05-03 2017-11-07 Panzura, Inc. Performing anti-virus checks for a distributed filesystem
JP2011248742A (ja) 2010-05-28 2011-12-08 Hitachi Solutions Ltd ストレージ管理システム、及び管理計算機、並びにプログラム
US8645950B2 (en) * 2011-06-28 2014-02-04 Microsoft Corporation Virtual machine image analysis
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
JP5780067B2 (ja) * 2011-09-01 2015-09-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP6011125B2 (ja) 2012-08-02 2016-10-19 富士通株式会社 ストレージ装置及びストレージシステム
JP6089855B2 (ja) * 2013-03-26 2017-03-08 日本電気株式会社 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム
US9633056B2 (en) * 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
JP6197816B2 (ja) * 2015-03-24 2017-09-20 日本電気株式会社 ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム

Also Published As

Publication number Publication date
US20160283162A1 (en) 2016-09-29
JP2016181078A (ja) 2016-10-13
US10114583B2 (en) 2018-10-30

Similar Documents

Publication Publication Date Title
JP6197816B2 (ja) ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
US10977124B2 (en) Distributed storage system, data storage method, and software program
CN102521010B (zh) 虚拟化以及卸载读和写
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
WO2018040591A1 (zh) 一种远程数据复制方法及系统
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US10191685B2 (en) Storage system, storage device, and data transfer method
JP2009116783A (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US20060253681A1 (en) Dynamic allocation of storage for hierarchical copies
US7549029B2 (en) Methods for creating hierarchical copies
US20150278246A1 (en) Wireless access device and wireless access system
CN113220729A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
JP4937863B2 (ja) 計算機システム、管理計算機及びデータ管理方法
WO2018158808A1 (ja) 情報システム、管理プログラム及び情報システムのプログラム交換方法
JP2007058286A (ja) 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法
WO2012101983A1 (ja) ストレージシステム
JP5923913B2 (ja) ストレージ装置、ストレージ装置の制御方法及びストレージシステム
JP5355603B2 (ja) ディスクアレイ装置及び論理ボリュームアクセス方法
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
US9762671B2 (en) Wireless access device and wireless access system
WO2018055686A1 (ja) 情報処理システム
JP6089855B2 (ja) 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム
WO2015141219A1 (ja) ストレージシステム、制御装置、記憶装置、データアクセス方法及びプログラム記録媒体
JP4122724B2 (ja) データの複製方法及び情報処理システム
JP2017151857A (ja) ストレージ装置の制御装置、ストレージ装置の制御方法、およびストレージ装置の制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170807

R150 Certificate of patent or registration of utility model

Ref document number: 6197816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113