説明

ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム

【課題】効率的にデータの複製を行うことを可能とするストレージシステム等を提供する。
【解決手段】ストレージシステム1は、第1のストレージ装置10が、あらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリューム150をプール140から構築して各々のブロックに実記憶領域を割り当てる第1の領域割当手段112と、複製作成要求に応じて第1のストレージ装置上の仮想ボリュームの記憶内容を第2のストレージ装置上の仮想ボリュームに複製する第1の複製作成手段113と、各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段114と、実記憶領域が割り当てられていないブロックの実記憶領域を解放してゼロデータ通知を第2のストレージ装置20に送信する第1の領域解放手段111とを有し、第2のストレージ装置が、ゼロデータ通知を受けて当該ブロックの実記憶領域を解放する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージ装置に関し、特にシンプロビジョニング(Thin Provisioning)によって記憶領域を割り当てているストレージ装置でレプリケーション(Replication)を行うことに関する。
【背景技術】
【0002】
ストレージ装置内の容量を効率的に管理する技術の1つとして、シンプロビジョニング技術が知られている。シンプロビジョニングは、ハードディスクの物理容量の総和以上に、仮想的に大きな容量の論理ディスクをホスト計算機に割り当てておき、実際にホスト計算機から書き込み要求があったタイミングで、実際の記憶領域を割り当てる技術である。また、ストレージベンダによっては、割り当てられた記憶領域のブロック内のデータが全てゼロ(これをゼロデータ領域という)かどうかを定期的にチェックして、ゼロの場合はその領域を解放することで、記憶領域の効率的な利用を実現しているベンダもある。この場合、ホスト計算機から解放済みの領域へ読み出し(Read I/O)要求があればストレージ装置はゼロを返却し、書き込み(Write I/O)要求があれば、ストレージ装置は再度新しい記憶領域を割り当てる。
【0003】
一方、ストレージのデータ複製に関する技術として、レプリケーション技術が知られている。これは、あるボリュームのデータをマスターとし、これと全く同じ内容の複製(レプリカ)を作成する技術である。この際、マスターボリュームとレプリカボリュームの配置方法は、同一のストレージ装置内に存在する場合と、別々のストレージ装置に分かれている場合の2種類がある。
【0004】
これらに関連する技術文献として、次の各々の特許文献がある。特許文献1には、シンプロビジョニング技術で、割り当てが不要と判断できた領域を解放する方法の一例が記載されている。特許文献2には、メモリの記憶データを引き継ぐ方法として、新旧のメモリでデータのブロック長を統一するという技術が記載されている。特許文献3には、シンプロビジョニングを行っているストレージ装置でデータのバックアップおよび復元を行う時の容量の浪費を少なくするため、復元の際にボイドデータであるセグメントに物理ストレージ域を割り付けないという技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−011316号公報
【特許文献2】特開2000−137604号公報
【特許文献3】特開2008−130080号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、シンプロビジョニング機能とレプリケーション機能は本来別々の技術であり、したがってストレージ装置ではこの両者は独立した別々の機能として提供されている。このため、シンプロビジョニング機能とレプリケーション機能とを併用している場合、同一の領域に対して、この両者が別個かつ非同期的にデータの読み出し処理を行うことになる。即ち、データの読み書きおよび領域の解放が効率的でない。
【0007】
しかも、シンプロビジョニング機能とレプリケーション機能とで、扱う記憶領域のブロック長は一般に同じではない。このため、コピー元にゼロデータ領域が存在した場合には、レプリケーション機能が該ゼロデータ領域をそのままコピー先にコピーして、シンプロビジョニング機能がコピー先の側で該領域がゼロデータ領域であるか否かを判定して該領域を削除することとなり、その判定および削除の処理が効率的とはいえない。また、ストレージ装置にも余分な負荷がかかる結果となる。
【0008】
ちなみに前述の特許文献1〜3に記載された技術では、いずれもシンプロビジョニング機能とレプリケーション機能とを連携させたものではないので、この両者を組み合わせることによって発生する上記の問題を解決していない。
【0009】
本発明の目的は、シンプロビジョニング機能とレプリケーション機能とを併用している環境にあっても、効率的にデータの複製を行うことを可能とするストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明に係るストレージシステムは、レイド(RAID、Redundant Arrays of Inexpensive Disks)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムであって、第1のストレージ装置が、あらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームをプールから構築して各々のブロックに実記憶領域を割り当てる第1の領域割当手段と、複製作成要求に応じて第1のストレージ装置上の仮想ボリュームの記憶内容を第2のストレージ装置上の仮想ボリュームに複製する第1の複製作成手段と、仮想ボリュームの記憶内容を複製する際に、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段と、実記憶領域が割り当てられていないブロックの実記憶領域を解放する第1の領域解放手段とを有すると共に、第1の複製作成手段が、実記憶領域が割り当てられていないブロックについて実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を第2のストレージ装置に送信する機能を有し、第2のストレージ装置が、あらかじめ与えられた第1のストレージ装置と同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームをプールから構築して各々のブロックに実記憶領域を割り当てる第2の領域割当手段と、ゼロデータ通知を受けて当該ブロックの実記憶領域を解放する第2の領域解放手段とを有することを特徴とする。
【0011】
上記目的を達成するため、本発明に係るストレージ装置は、レイド(RAID、Redundant Arrays of Inexpensive Disks)によって物理ディスクから構築されたプールを有するストレージ装置であって、あらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームをプールから構築して各々のブロックに実記憶領域を割り当てる領域割当手段と、複製作成要求に応じて仮想ボリュームの記憶内容を他のストレージ装置上の仮想ボリュームに複製する複製作成手段と、仮想ボリュームの記憶内容を複製する際に、仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段と、実記憶領域が割り当てられていないブロックの実記憶領域を解放する領域解放手段とを有すると共に、複製作成手段が、実記憶領域が割り当てられていないブロックについて実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を他のストレージ装置に送信する機能を有することを特徴とする。
【0012】
上記目的を達成するため、本発明に係るストレージ装置の記憶内容複製方法は、レイド(RAID、Redundant Arrays of Inexpensive Disks)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムにあって、第1のストレージ装置の記憶内容を第2のストレージ装置に複製する方法であって、第1および第2のストレージ装置がそれぞれ、あらかじめ与えられた同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームをプールから構築すると共に各々のブロックに実記憶領域を割り当て、第1のストレージ装置が複製作成要求を受けたことに反応して、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックし、ブロックに実記憶領域が割り当てられていなければ当該ブロックの実記憶領域を解放すると共に、第1のストレージ装置が当該ブロックが実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を第2のストレージ装置に送信し、このゼロデータ通知を受けた第2のストレージ装置が、当該ブロックの実記憶領域を解放することを特徴とする。
【0013】
上記目的を達成するため、本発明に係るストレージ装置の記憶内容複製プログラムは、レイド(RAID、Redundant Arrays of Inexpensive Disks)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムにあって、第1のストレージ装置が備えるコンピュータに、あらかじめ与えられた同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームをプールから構築すると共に各々のブロックに実記憶領域を割り当てる手順と、複製作成要求を受けたことに反応して、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックする手順と、ブロックに実記憶領域が割り当てられていなければ当該ブロックの実記憶領域を解放すると共に、当該ブロックが実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を第2のストレージ装置に送信する手順とを実行させることを特徴とする。
【発明の効果】
【0014】
本発明は上述したように、複製作成要求に応じて実記憶領域が割り当てられていないブロックの有無をチェックして、そのようなブロックの実記憶領域を解放するように構成したので、シンプロビジョニング機能とレプリケーション機能で別個に行われていた読み出し処理を1回に削減することができる。これによって、シンプロビジョニング機能とレプリケーション機能とを能とを併用している環境にあっても、効率的にデータの複製を行うことを可能とするという、優れた特徴を持つストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラムを提供することができる。
【図面の簡単な説明】
【0015】
【図1】本実施形態に係るストレージシステム全体の構成例を示す説明図である。
【図2】図1で示した第1(第2)のストレージ装置のより詳細な構成を示す説明図である。
【図3】図1に示した第1(第2)のストレージ装置で行われる仮想ボリュームの構築について観念的に示す説明図である。
【図4】図1で示したペア設定管理テーブルの一例を示す説明図である。
【図5】図1で示した割り当て管理テーブルの一例を示す説明図である。
【図6】図1に示したMV(Master Volume)側のストレージ装置が、管理コンソールからの複製作成要求を受けて行う処理について書き表したフローチャートである。
【図7】図6のステップS309として示した実領域解放処理をより詳しく示すフローチャートである。
【図8】図1に示したMV側ストレージ装置の複製作成手段からイベントを受け取ったRV(Replica Volume)側ストレージ装置の複製作成手段が行う処理について書き表したフローチャートである。
【発明を実施するための形態】
【0016】
(第1の実施形態)
以下、本発明の実施形態の構成について添付図1〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るストレージシステム1は、レイド(RAID、Redundant Arrays of Inexpensive Disks)によって物理ディスク12および22から構築されたプール140および240をそれぞれ有する第1および第2のストレージ装置10および20と、第1および第2のストレージ装置に複製作成要求を送信する管理コンソール40とを含むストレージシステムである。第1のストレージ装置は、プールからあらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを構築して各々のブロックに実記憶領域を割り当てる第1の領域割当手段112と、複製作成要求に応じて第1のストレージ装置上の仮想ボリュームの記憶内容を第2のストレージ装置上の仮想ボリュームに複製する第1の複製作成手段113と、仮想ボリュームの記憶内容を複製する際に、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段114と、実記憶領域が割り当てられていないブロックの実記憶領域を解放する第1の領域解放手段111とを有する。そして第1の複製作成手段は、実記憶領域が割り当てられていないブロックについて実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を第2のストレージ装置に送信する機能を有する。一方の第2のストレージ装置は、プールからあらかじめ与えられた第1のストレージ装置と同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを構築して各々のブロックに実記憶領域を割り当てる第2の領域割当手段212と、ゼロデータ通知を受けて当該ブロックの実記憶領域を解放する第2の領域解放手段211とを有する。
【0017】
また第1の複製作成手段は、第1のストレージ装置の仮想ボリュームの内容を第2のストレージ装置に複製する際に、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられていれば第2のストレージ装置に当該ブロックのコピー要求を送信する機能を有する。これに対して第2のストレージ装置は、コピー要求を受信したら第1のストレージ装置上の当該ブロックの記憶内容を第2のストレージ装置上の対応するブロックに複製する第2の複製作成手段213を有する。
【0018】
そして第1および第2のストレージ装置がそれぞれ、各々のブロックに実記憶領域が割り当てられているか否かを示す割り当て状態フラグと、第1および第2のストレージ装置上で対応するブロックにコピー差分が存在するか否かを示す差分フラグとを含む割り当て管理テーブル121および221を記憶している。
【0019】
この構成を備えることにより、ストレージシステム1は、高速にデータの複製を行うことが可能となる。
以下、これをより詳細に説明する。
【0020】
図1は、本実施形態に係るストレージシステム1全体の構成例を示す説明図である。ストレージシステム1では、第1のストレージ装置10と第2のストレージ装置20が、いずれも同一のLAN(Local Area Network)50に接続されていると共に、同一のSAN60にも接続されている。LAN50およびSAN60には、第1および第2のストレージ装置10および20以外にも、第1および第2のストレージ装置10および20にSAN60を経由してデータを読み書きするk台のホスト計算機31、32…3k(kは自然数)が接続されている。
【0021】
それに加えてLAN50には、第1および第2のストレージ装置10および20に管理コマンドを発行する管理コンソール40も接続されている。管理コンソール40から第1および第2のストレージ装置10および20への接続はLAN50だけであり、SAN60では接続されない。管理コンソール40の備えているCPU41(Central Processing Unit)では、第1および第2のストレージ装置10および20にレプリケーションのコマンドを発行するコンピュータプログラムである複製作成要求手段42が実行される。
【0022】
そして、第1および第2のストレージ装置10および20は、LAN50およびSAN60の他に、これらのストレージ装置間を直接相互に接続するレプリケーションリンク70でも接続されている。レプリケーションリンク70は、ストレージ装置10および20を直結し、レプリケーションを実行する場合に、コピーするデータの転送経路となる。なお、図2では、第1および第2のストレージ装置10および20が物理的に別々の装置である例を示しているが、これが同一の装置であってもよい。
【0023】
第1のストレージ装置10は、マイクロコンピュータ11と物理ディスク12とを備える。第2のストレージ装置20も同様に、マイクロコンピュータ21と物理ディスク22とを備える。ここで、第1のストレージ装置10と第2のストレージ装置20とは、同一の構成で、同一の機能手段が動作するので、以後は第1のストレージ装置10についてまず説明する。
【0024】
図2は、図1で示した第1のストレージ装置10のより詳細な構成を示す説明図である。マイクロコンピュータ11は、コンピュータプログラムを実行する主体であるCPU101と、作業中のプログラムおよびデータを一時的に記憶するRAM(Random Access Memory)102と、プログラムおよびデータを記憶する不揮発性記憶装置であるROM(Read Only Memory)103と、LAN50とSAN60とレプリケーションリンク70を介して他装置とのデータの交換を行うNIC(Network Interface Card)104とを備える。
【0025】
物理ディスク12は、n台(nは自然数)のハードディスク(HDD)装置12a、12b、…、12nから構成され、これらのHDD装置を総称していうものである。物理ディスク22についても同様に、m台(mは自然数)のハードディスク(HDD)装置22a、22b、…、22mから構成され、これらのHDD装置を総称していうものである。なお、mとn、および前述のホスト計算機の台数kは、同じ値であっても異なる値であってもよい。
【0026】
CPU101では、領域解放手段111、領域割当手段112、複製作成手段113、ゼロデータ解析手段114、ホストI/O制御手段115が、各々コンピュータプログラムとして実行される。そして、RAM102では、割り当て管理テーブル121、ペア設定管理テーブル122といった作業データが記憶される。これらの機能手段およびデータの詳細については後述する。
【0027】
第2のストレージ装置20についても、以上で説明した第1のストレージ装置10と同一の構成を有する。第2のストレージ装置20のマイクロコンピュータ21が備えるコンピュータ資源、およびそこで動作する機能手段およびデータは、第1のストレージ装置10について説明した以上のものと名称および動作は同一で、参照番号を各々+100したものとする。
【0028】
図3は、図1に示した第1のストレージ装置10(もしくは第2のストレージ装置20)で行われる仮想ボリュームの構築について観念的に示す説明図である。第1のストレージ装置10では、領域割当手段112が物理ディスク12からRAID(Redundant Arrays of Inexpensive Disks)によってプール140を構築し、その上に仮想ボリューム150を割り当てている。第2のストレージ装置20でも同様に、領域割当手段212が物理ディスク22からRAIDによってプール240を構築し、その上に仮想ボリューム250を割り当てている。以後、仮想ボリューム150をMV(Master Volume)、仮想ボリューム250をRV(Replica Volume)ということがある。また、仮想ボリューム150の側、もしくは仮想ボリューム250の側という意味で、それぞれMV側、RV側ということがある。
【0029】
仮想ボリューム150および250は、シンプロビジョニングにより、プール140および240上に物理的に割り当てられた実容量よりも大きな容量を仮想的に持つことができる。仮想ボリューム150および250は、構築当初の実容量はゼロである。実際にホスト計算機31〜3nから書き込み(Write I/O)要求があったタイミングで、プール140および240上に実記憶領域が割り当てられていく。
【0030】
また、仮想ボリューム内の各ブロックは、領域が割り当てられていれば、仮想ボリュームを構成するプール内のブロックに1:1でマッピングされる。例えば、仮想ボリューム150内の最初のブロックは、プール140内の最初のブロックにマッピングされていることを矢印により示している。
【0031】
そして、仮想ボリューム150と250は、レプリケーション機能によりペア設定されている。ペア設定に関する情報は、ペア設定管理テーブル122および222で管理される。図4は、図1で示したペア設定管理テーブル122および222の一例を示す説明図である。ペア設定管理テーブル122および222は、MV側とRV側とで同一の内容であり、いずれもコピー元の装置名122a(222a)とコピー元の装置番号122b(222b)、そしてコピー先の装置名122c(222c)とコピー先の装置番号122d(222d)とを記憶している。
【0032】
図4の例に示すデータは、ストレージ装置10(MV)の仮想ボリューム150(MV01)をコピー元、ストレージ装置20(RV)の仮想ボリューム250(RV01)をコピー先として、ペア設定されていることを示している。
【0033】
ここで、ストレージ装置10および20では、レプリケーション機能の管理するデータブロックの管理単位(ブロック長と開始アドレス)と、シンプロビジョニング機能の管理するデータブロックの管理単位(ブロック長と開始アドレス)とは、必ず一致している。言い換えれば、仮想ボリュームおよびプールの各ブロックを元に、レプリケーション機能やシンプロビジョニング機能が動作する。
【0034】
このとき、仮想ボリューム150をコピー元、仮想ボリューム250をコピー先としてレプリケーションを行う場合、仮想ボリューム150内の最初のブロックに対応するのは、仮想ボリューム250内の最初のブロックである。同様に、仮想ボリューム150内の2番目のブロックと仮想ボリューム250内の2番目のブロックが対応する。以降も同様である。
【0035】
図5は、図2で示した割り当て管理テーブル121および221の一例を示す説明図である。割り当て管理テーブル121は、仮想ボリューム番号121a、仮想ボリューム内アドレス121b、割り当て状態121c、プール番号121d、プール内アドレス121e、差分有無フラグ121fの各カラムを持つ。割り当て管理テーブル221も、割り当て管理テーブル121と同一のデータ構造を有するので、各カラムの参照番号を割り当て管理テーブル121の各カラムの参照番号を各々+100したものとする。
【0036】
仮想ボリューム番号121aは、仮想ボリュームを一意に特定する識別子である。仮想ボリューム番号121aは、ペア設定管理テーブル122(222)のコピー元ボリューム122b(222b)に対応する。仮想ボリューム内アドレス121bは、仮想ボリューム内の当該ブロックの開始アドレスである。
【0037】
割り当て状態121cは、仮想ボリューム内の当該ブロックに対して、プール内の実記憶領域が割り当てられているかどうかを示すフラグである。割り当て状態には、「1(=割り当て済み)」、「0(=未割り当て)」の2種類の値が存在する。「1」は、実記憶領域が割り当てられていることを示し、「0」は、実記憶領域が割り当てられていないことを示す。
【0038】
プール番号121dは、プールを一意に特定する識別子である。プール内アドレス121eは、プール内の当該ブロック(すなわち実記憶領域)の開始アドレスである。差分有無フラグ121fは、コピー元ブロック(割り当て管理テーブル121の各行が該当する)に対して、コピー先ブロックとのコピー差分が存在するかどうかを示すフラグである。
【0039】
差分有無フラグ121fには、「1(=有)」、「0(=無)」の2種類の値が存在する。コピー元ブロックのデータに更新があった場合、更新がコピー先ブロックに反映されるまでの間、差分有無フラグの値は「1」となる。更新がコピー先ブロックに反映されると「0」となる。
【0040】
図5に示した例では、例えば、仮想ボリューム150の最初のブロック(アドレス0x0000000)には、プール140の最初のブロック(アドレス0x0000000)が割り当てられ、コピー先ブロックとの間にはコピー差分が存在(差分有無フラグが「有」)することが示されている。
【0041】
複製作成手段113は、管理コンソール40から複製作成要求を受けつけ、ペア設定管理テーブル122からペア情報を取得し、このペア情報と割り当て管理テーブル121の情報から、コピー先ボリュームが存在するストレージ装置の複製作成手段に通知を送り、またその通知を受け取り、ゼロデータ解析手段114および領域解放手段111を呼び出しつつ、コピー元ボリュームの複製作成手段から受け取ったデータをコピー先ボリュームへコピーする。複製作成手段213も、複製作成手段113と同様の機能を有する。
【0042】
ゼロデータ解析手段114は、複製作成手段113から呼び出され、指定された仮想ボリュームのブロックに対応するデータがゼロデータ(null)かどうかを解析して、解析結果を複製作成手段113に返却する。また、ゼロデータ解析手段214も、ゼロデータ解析手段114と同様の機能を有する。
【0043】
領域解放手段111は、複製作成手段113から呼び出され、指定された仮想ボリュームのブロックに対応するプールに割り当てられた実記憶領域を解放し、領域解放後に割り当て管理テーブル121のデータを更新し、領域解放処理の実行結果を複製作成手段113に返却する。また、領域解放手段211も、領域解放手段111と同様の機能を有する。
【0044】
ホストI/O制御手段115および215は、各ホスト計算機31〜3kからの読み出し(Read I/O)要求や書き込み(Write I/O)要求を処理する。
【0045】
領域割当手段112は、ホストI/O制御手段115から呼び出され、指定された仮想ボリュームのブロックの割り当て状態が「未割り当て」の場合にプールから実記憶領域を割り当て、その領域の割り当て後に割り当て管理テーブル121のデータを更新し、その領域割り当て処理の実行結果をホストI/O制御手段115に返却する。また、領域割当手段212も、領域割当手段112と同様の機能を有する。
【0046】
今、管理コンソール40で、複製作成要求手段42が仮想ボリューム150から250への複製作成(レプリケーション)要求を発行した。この時、複製作成要求手段42は、コピー元およびコピー先のボリュームを一意に特定する情報と、複製作成方法(フルコピーまたは差分コピー)を特定する情報を、複製作成要求と一緒に送信する。
【0047】
複製作成手段113は、管理コンソール40から仮想ボリューム150(MV)から250(RV)への複製作成要求を受け取ると、割り当て管理テーブル121を参照し、仮想ボリューム150を構成する各ブロックに対して、ゼロデータ解析手段114を呼び出す。
【0048】
ゼロデータ解析手段114は、当該ブロックに実記憶領域が割り当てられているか否かをチェックする。割り当てられていれば、次に実記憶領域中のデータをチェックする。データが全てゼロデータである場合、ゼロデータであるとの情報を複製作成手段113に返却する。複製作成手段113は、ゼロデータであるとの情報を受け取ると、MV側の当該ブロックに対して、領域解放手段111を呼び出す。
【0049】
領域解放手段111は、当該ブロックに対応するデータを格納する実記憶領域を解放する。次に、割り当て管理テーブル121の当該ブロックに対する割り当て状態を、「割り当て済み」から「未割り当て」に変更する。次に、コピー元の複製作成手段113は、ペア設定管理テーブル122のペア情報を元に、コピー先の複製作成手段213へ、RV側の当該ブロックに対応するMV側の当該ブロックは、未割り当てである旨の通知を送る。
【0050】
コピー先の複製作成手段213は、この未割り当てである旨の通知を受け取ると、RV側の当該ブロックの割り当て状態221cをチェックする。1(割り当て済み)の場合、RV側の当該ブロックに対して領域解放手段211を呼び出す。
【0051】
領域解放手段211は、当該ブロックに対応するデータを格納する実記憶領域を解放する。次に、割り当て管理テーブル221の当該ブロックに対する割り当て状態221cを、1(割り当て済み)から0(未割り当て)に更新し、複製作成手段213に制御を返却する。
【0052】
複製作成手段213は、割り当て管理テーブル221の当該ブロックに対する差分有無フラグ221fの値を0に更新する。その後、複製作成手段213は、複製作成手段113に、RV側の当該ブロックに対する領域解放完了の通知を送る。複製作成手段113は、通知を受け取ると、割り当て管理テーブル121の当該ブロックに対する差分有無フラグ221fの値を0に更新する。
【0053】
このようにして、レプリケーションを契機として、コピー元(MV側)の各ブロックがゼロデータであるか否かを解析し、ゼロデータのブロックが存在すれば、MV側、RV側両方のブロックに対して実記憶領域を解放する。
【0054】
図6は、図1に示したMV側のストレージ装置10が、管理コンソール40からの複製作成要求を受けて行う処理について書き表したフローチャートである。まず管理コンソール40の複製作成要求手段42が、複製作成要求をストレージ装置10に対して発行する(ステップS301)。ストレージ装置10の複製作成手段113がこの要求を受け取ると、複製作成手段113は割り当て管理テーブル121を参照し、コピー元ボリューム(MV)を構成する全てのブロックに対して、ステップS302〜S310の各ステップを繰り返し処理する。
【0055】
複製作成手段113は、次のブロックに進んだ後(ステップS302)、複製作成要求に含まれる複製作成方法をチェックし(ステップS303)、差分コピーの場合(ステップS303:NO)、割り当て管理テーブル121の差分有無フラグを参照し、当該ブロックにコピー差分があるかをチェックする(ステップS308)。差分がない、即ち差分有無フラグ121f=0である場合には(ステップS308:NO)、次のブロックが存在するかチェックして(ステップS310)、存在する場合はステップS302に戻って処理を繰り返す。
【0056】
差分があった場合(ステップS308:YES)もしくは複製作成方法がフルコピーの場合(ステップS303:YES)は、MV側の当該ブロックに対して、実記憶領域が割当済みであるか、即ち割り当て状態121c=1であるか否かをチェックする(ステップS304)。この時、複製作成手段113は、仮想ボリューム番号121aおよび仮想ボリューム内アドレス121bの情報をゼロデータ解析手段114に渡す。
【0057】
MV側の当該ブロックに対する実記憶領域が割当済み(ステップS304:YES)の場合、ゼロデータ解析手段114は、割り当て管理テーブル121の仮想ボリューム番号121aおよび仮想ボリューム内アドレス121bの情報を元に、当該ブロック内のデータが全てゼロ(ゼロデータ)であるか解析し(ステップS305)、その結果を複製作成手段113に返却する。
【0058】
ゼロデータであった場合(ステップS305:YES)、複製作成手段113は領域解放手段111を呼び出し、当該ブロックの実領域解放処理を行う(ステップS306)。この時、複製作成手段113は、コピー元ボリュームの当該ブロックを一意に特定する情報として、仮想ボリューム番号121aおよび仮想ボリューム内アドレス121bの情報を領域解放手段111に渡す。
【0059】
MV側の当該ブロックに対する実記憶領域が未割り当て(ステップS304:NO)の場合および領域解放処理(ステップS306)終了後は、複製作成手段113は、複製作成手段213に対して、コピー先(RV)の仮想ボリューム番号221aおよび仮想ボリューム内アドレス221bの情報と、イベント種別(ここではゼロデータ通知)を通知する(ステップS307)。
【0060】
図7は、図6のステップS306として示した実領域解放処理をより詳しく示すフローチャートである。まず、領域解放手段111は、指定された仮想ボリュームの当該ブロックに対して、実領域解放処理を行う(ステップS351)。続いて、割り当て管理テーブル121を参照し、仮想ボリュームの当該ブロック行の割り当て状態121cの値を「未割り当て」に変更する(ステップS352)。その後、複製作成手段113に制御を返却する。
【0061】
図6のステップS305で、ゼロデータでなかった場合(ステップS305:NO)には、複製作成手段113は、コピー先ストレージ装置20の複製作成手段213に対して、コピー先仮想ボリューム(RV)の情報およびコピー先仮想ボリューム内アドレスの情報と、コピー対象データ、イベント種別(ここではコピー処理要求)を送信し、コピー処理要求イベントを通知する(ステップS309)。ここで、コピー先仮想ボリュームの情報はペア設定管理テーブル222から取得可能である。また、コピー先仮想ボリューム内アドレスの情報は、コピー元仮想ボリューム内アドレスと同じであるという特性を利用して求めている。
【0062】
図8は、図1に示したMV側ストレージ装置10の複製作成手段113からイベントを受け取ったRV側ストレージ装置20の複製作成手段213が行う処理について書き表したフローチャートである。ここで、複製作成手段213が複製作成手段113から受信するイベントは、コピー処理要求(図6のステップS309)およびゼロデータ通知(図6のステップS307)のうちのいずれかである。
【0063】
複製作成手段213は、複製作成手段113からイベントを受信すると(ステップS401)、そのイベントが何であるかをチェックする(ステップS402)。ゼロデータ通知である場合については後述する。このイベント種別がコピー処理要求の場合(ステップS402:NO)、複製作成手段213は、複製作成手段113から渡されたコピー先仮想ボリュームの情報とアドレス情報とから、割り当て管理テーブル221を参照し、該当ブロックに対して実記憶領域が未割り当てか否かをチェックする(ステップS411)。
【0064】
未割り当てであれば(ステップS411:YES)、複製割当手段212は該当ブロックに対して実記憶領域を割り当てると共に、割り当て管理テーブル221の割り当て状態221cを「割り当て済み」(=1)に設定する(ステップS412)。領域割り当て終了後、または既に割り当て済みの場合(ステップS411:NO)は、該当ブロックに対してデータのコピー処理を行う(ステップS413)。
【0065】
ステップS413のコピー処理は、例えばコピー元仮想ボリューム410の先頭ブロック(仮想ボリューム内アドレス:0x0000000)に対応するコピー先仮想ボリューム250の先頭ブロック(仮想ボリューム内アドレス:0x0000000)に対して、コピー処理を行う。コピー処理完了後、複製作成手段213は割り当て管理テーブル221を参照し、該当ブロックに対する差分有無フラグを「無」に設定する(ステップS414)。その後、複製作成手段213は、複製作成手段113にコピー完了を返却する(ステップS415)。
【0066】
ステップS402で、イベント種別がゼロデータ通知の場合(ステップS402:YES)、複製作成手段213は、複製作成手段113から渡されたコピー先仮想ボリュームの情報とアドレス情報とから、割り当て管理テーブル221を参照し、該当ブロックに対して実記憶領域が割り当て済みかをチェックする(ステップS403)。未割り当ての場合(ステップS403:NO)には、そのまま後述のステップS406に進む。
【0067】
実記憶領域が割り当て済みである場合(ステップS403:YES)、当該ブロックに対する実領域解放処理を行う(ステップS404)。ステップS404で示す処理の詳細は、図7で示す処理と同一である。その後、複製作成手段213は割り当て管理テーブル221を参照し、当該ブロックに対する差分有無フラグを「無」に設定し(ステップS405)、複製作成手段113に領域解放完了を返却する(ステップS406)。
【0068】
本実施形態ではこのように、複製作成要求を契機として、コピー元ボリューム(MV側)のゼロデータブロックが存在するか解析し、ゼロデータブロックが存在すれば、MV側とRV側の両方の当該ブロックに対して、同時に実記憶領域を解放している。
【0069】
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るストレージシステムの記憶内容複製方法は、RAIDによって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムにあって、第1のストレージ装置の記憶内容を第2のストレージ装置に複製する方法である。この記憶内容複製方法は、第1および第2のストレージ装置がそれぞれ、プールからあらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを構築すると共に各々のブロックに実記憶領域を割り当て、第1のストレージ装置が複製作成要求を受けたことに反応して(図6:ステップS301)、第1のストレージ装置上の仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェック(図6:ステップS304)し、ブロックに実記憶領域が割り当てられていなければ当該ブロックの実記憶領域を解放する(図6:ステップS306)と共に、第1のストレージ装置が当該ブロックが実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を第2のストレージ装置に送信し(図6:ステップS307)、このゼロデータ通知を受けた第2のストレージ装置が、当該ブロックの実記憶領域を解放する(図8:ステップS404)。
【0070】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータである各ストレージ装置のマイクロコンピュータに実行させるようにしてもよい。また、本実施形態では割り当て済み領域がゼロデータの場合で説明したが、ゼロ以外のデータ(例:データが全て1)の場合でも同様に適用可能である。
この構成および動作により、本実施形態は以下のような効果を奏する。
【0071】
第1の効果は、レプリケーション機能による複製作成とシンプロビジョニング機能によるゼロデータ領域解放のために実施する、同じ実記憶領域に対する読み出し回数を、従来の2回から1回へと削減できることにある。
【0072】
その理由は、本発明では、シンプロビジョニング機能とレプリケーション機能の管理するデータブロックの管理単位を一致させておくことと、複製作成のタイミングでゼロデータ領域解放を行うことにより、1回のデータ読み出しで、ゼロデータ領域解放のためのチェック処理と複製作成のためのコピー処理の両方に利用できるためである。
【0073】
第2の効果は、複製作成のタイミングでブロック内がゼロデータかどうか解析することにより、シンプロビジョニング機能の公知技術によるゼロデータ解析処理と比べて、ゼロデータ解析処理のオーバヘッドを削減できることにある。
【0074】
その理由は、本発明では、シンプロビジョニング機能とレプリケーション機能の管理するデータブロックの管理単位を一致させておくことにより、ブロック内のデータが全てゼロであれば必ず領域解放ができるためである。
【0075】
第3の効果は、レプリケーション機能と組み合わせて使用する場合、コピー元にゼロデータのブロックが存在すれば、コピー先の当該ブロックに対しても即座に領域解放できることにある。
【0076】
その理由は、本発明では、コピー元にゼロデータブロックの存在を検出した場合、レプリケーション処理の過程でコピー先の当該ブロックの領域も即座に解放するためであり、ゼロデータ領域をそのままコピーして、コピー先で領域解放処理が行われるのを待つ必要がないためである。
【0077】
本実施形態では、図1に示したように第1および第2のストレージ装置10および20が、LAN50およびSAN60の他にレプリケーションリンク70でも接続されており、このレプリケーションリンク70を経由して第1のストレージ装置10から第2のストレージ装置20へのデータのコピーを高速に行えるようにしている。しかしながら、レプリケーションリンク70の利用そのものは本発明の範囲ではないので、たとえばSAN60を経由してデータのコピーを行うようにしてもよい。
【0078】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【0079】
本発明は、シンプロビジョニング(Thin Provisioning)によって記憶領域を割り当てているストレージ装置に適用可能であり、特にそのようなストレージ装置でレプリケーション(Replication)を行う場合に優れた効果を発揮する。
【符号の説明】
【0080】
1 ストレージシステム
10 第1のストレージ装置
20 第2のストレージ装置
11、21 マイクロコンピュータ
12、12a、12b、12m、22、22a、22b、22n 物理ディスク
31、32、3k ホスト計算機
40 管理コンソール
41 CPU
42 複製作成要求手段
50 LAN
60 SAN
70 レプリケーションリンク
101、201 CPU
102、202 RAM
103、203 ROM
104、204 NIC
111、211 領域解放手段
112、212 領域割当手段
113、213 複製作成手段
114、214 ゼロデータ解析手段
115、215 ホストI/O制御手段
121、221 割り当て管理テーブル
122、222 ペア設定管理テーブル
140、240 プール
150、250 仮想ボリューム

【特許請求の範囲】
【請求項1】
レイド(RAID)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、前記第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムであって、
前記第1のストレージ装置が、
あらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを前記プールから構築して各々の前記ブロックに実記憶領域を割り当てる第1の領域割当手段と、
前記複製作成要求に応じて前記第1のストレージ装置上の前記仮想ボリュームの記憶内容を前記第2のストレージ装置上の前記仮想ボリュームに複製する第1の複製作成手段と、
前記仮想ボリュームの記憶内容を複製する際に、前記第1のストレージ装置上の前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段と、
実記憶領域が割り当てられていない前記ブロックの前記実記憶領域を解放する第1の領域解放手段とを有すると共に、
前記第1の複製作成手段が、実記憶領域が割り当てられていない前記ブロックについて実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を前記第2のストレージ装置に送信する機能を有し、
前記第2のストレージ装置が、
あらかじめ与えられた前記第1のストレージ装置と同一のブロック長と開始アドレスとを持ったブロックによって構成された仮想ボリュームを前記プールから構築して各々の前記ブロックに実記憶領域を割り当てる第2の領域割当手段と、
前記ゼロデータ通知を受けて当該ブロックの実記憶領域を解放する第2の領域解放手段と
を有することを特徴とするストレージシステム。
【請求項2】
前記第1の複製作成手段が、前記第1のストレージ装置の前記仮想ボリュームの内容を前記第2のストレージ装置に複製する際に、前記第1のストレージ装置上の前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられていれば前記第2のストレージ装置に当該ブロックのコピー要求を送信する機能を有し、
前記第2のストレージ装置が、前記コピー要求を受信したら前記第1のストレージ装置上の当該ブロックの記憶内容を前記第2のストレージ装置上の対応するブロックに複製する第2の複製作成手段を有することを特徴とする、請求項1に記載のストレージシステム。
【請求項3】
前記第1および第2のストレージ装置がそれぞれ、各々の前記ブロックに実記憶領域が割り当てられているか否かを示す割り当て状態フラグと、前記第1および第2のストレージ装置上で対応する前記ブロックにコピー差分が存在するか否かを示す差分フラグとを含む割り当て管理テーブルを記憶していることを特徴とする、請求項1もしくは2に記載のストレージシステム。
【請求項4】
レイド(RAID)によって物理ディスクから構築されたプールを有するストレージ装置であって、
あらかじめ与えられたブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを前記プールから構築して各々の前記ブロックに実記憶領域を割り当てる領域割当手段と、
前記複製作成要求に応じて前記仮想ボリュームの記憶内容を他のストレージ装置上の前記仮想ボリュームに複製する複製作成手段と、
前記仮想ボリュームの記憶内容を複製する際に、前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックするゼロデータ解析手段と、
実記憶領域が割り当てられていない前記ブロックの前記実記憶領域を解放する領域解放手段とを有すると共に、
前記複製作成手段が、実記憶領域が割り当てられていない前記ブロックについて実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を前記他のストレージ装置に送信する機能を有することを特徴とするストレージ装置。
【請求項5】
前記領域解放手段が、他のストレージ装置から前記ゼロデータ通知を受けたことに反応して前記ゼロデータ通知に該当するブロックの実記憶領域を解放する機能を有することを特徴とする、請求項4に記載のストレージ装置。
【請求項6】
前記複製作成手段が、前記仮想ボリュームの内容を複製する際に前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられていれば前記他のストレージ装置に当該ブロックのコピー要求を送信する機能と、他のストレージ装置から前記コピー要求を受けたことに反応してこのコピー要求に該当するブロックの記憶内容を対応するブロックに複製する機能とを有することを特徴とする、請求項4もしくは5に記載のストレージ装置。
【請求項7】
レイド(RAID)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、前記第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムにあって、前記第1のストレージ装置の記憶内容を前記第2のストレージ装置に複製する方法であって、
前記第1および第2のストレージ装置がそれぞれ、あらかじめ与えられた同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを前記プールから構築すると共に各々の前記ブロックに実記憶領域を割り当て、
前記第1のストレージ装置が前記複製作成要求を受けたことに反応して、前記第1のストレージ装置上の前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックし、
前記ブロックに実記憶領域が割り当てられていなければ当該ブロックの実記憶領域を解放すると共に、前記第1のストレージ装置が当該ブロックが実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を前記第2のストレージ装置に送信し、
このゼロデータ通知を受けた第2のストレージ装置が、当該ブロックの実記憶領域を解放することを特徴とするストレージシステムの記憶内容複製方法。
【請求項8】
レイド(RAID)によって物理ディスクから構築されたプールをそれぞれ有する第1および第2のストレージ装置と、前記第1および第2のストレージ装置に複製作成要求を送信する管理コンソールとを含むストレージシステムにあって、前記第1のストレージ装置が備えるコンピュータに、
あらかじめ与えられた同一のブロック長と開始アドレスを持ったブロックによって構成された仮想ボリュームを前記プールから構築すると共に各々の前記ブロックに実記憶領域を割り当てる手順と、
前記複製作成要求を受けたことに反応して、前記第1のストレージ装置上の前記仮想ボリュームを構成する各ブロックに実記憶領域が割り当てられているか否かをチェックする手順と、
前記ブロックに実記憶領域が割り当てられていなければ当該ブロックの実記憶領域を解放すると共に、当該ブロックが実記憶領域が割り当てられていないブロックであることを示すゼロデータ通知を前記第2のストレージ装置に送信する手順と
を実行させることを特徴とするストレージシステムの記憶内容複製プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−76572(P2011−76572A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−230494(P2009−230494)
【出願日】平成21年10月2日(2009.10.2)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】