JP5090941B2 - ストレージサブシステム及びストレージシステム - Google Patents

ストレージサブシステム及びストレージシステム Download PDF

Info

Publication number
JP5090941B2
JP5090941B2 JP2008017014A JP2008017014A JP5090941B2 JP 5090941 B2 JP5090941 B2 JP 5090941B2 JP 2008017014 A JP2008017014 A JP 2008017014A JP 2008017014 A JP2008017014 A JP 2008017014A JP 5090941 B2 JP5090941 B2 JP 5090941B2
Authority
JP
Japan
Prior art keywords
page
data
specific pattern
storage subsystem
state
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.)
Expired - Fee Related
Application number
JP2008017014A
Other languages
English (en)
Other versions
JP2009181148A (ja
Inventor
良徳 大平
昇司 児玉
賢太 志賀
賢哲 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008017014A priority Critical patent/JP5090941B2/ja
Priority to US12/050,301 priority patent/US8245007B2/en
Priority to EP08020090A priority patent/EP2085867A3/en
Priority to CN200910003562.0A priority patent/CN101498991B/zh
Publication of JP2009181148A publication Critical patent/JP2009181148A/ja
Priority to US13/568,204 priority patent/US8521985B2/en
Application granted granted Critical
Publication of JP5090941B2 publication Critical patent/JP5090941B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

複数のディスク装置を有するストレージサブシステムに関する。特に、ストレージサブシステムが有する記憶領域を有効に使用するための技術に関する。
計算機システムに用いられる記憶装置システムとして、複数のディスク装置を有するディスクアレイシステム(以下、ストレージサブシステムとも呼ぶ)がある。ディスクアレイシステムでは、複数のディスク装置を並列に動作させることで、ディスク装置を単体で用いた記憶装置システムに比べ高速化を実現している。
ディスクアレイシステム内のディスク容量を効率的に利用するための技術として、仮想ボリューム技術がある。本技術は、仮想的な記憶領域を計算機に提供しておき、仮想的な記憶領域の内ライト要求があった領域にのみ物理的な記憶領域を割り当てる技術である。
また、ディスク容量を効率的に利用するための別の技術として重複排除技術がある。本技術は、ライト要求を受けたデータと同じデータが、当該ライト要求を受信する以前にストレージサブシステムに格納されている場合には、当該既に格納されているデータと同一データである旨のみを記憶し、ライト要求を受けたデータそのものはストレージサブシステムに格納しない技術である。
重複排除技術には、ストレージサブシステムに格納する全てのデータに対して重複排除制御を行うものと、予め登録した特定パターンデータに対してのみ重複排除制御を行うものがある。前者はデータを格納するために必要とされる記憶容量の削減効果(以下容量削減効果と呼ぶ)を高くすることができるが、処理時間が長くなる上に管理情報が多くなる。一方、後者は管理情報を少なくすることができるが、容量削減効果が限定される。
特許文献1では、複数の物理記憶装置の集合からなる物理記憶スペース上の領域をある単位長の物理ブロックで分割し、物理ブロックによって物理記憶スペースを割り当てることにより論理記憶装置を構成するストレージ装置において、前記論理記憶装置上の領域毎に、前記物理ブロックが割り当てられているか又は所定のデータ配置パターンから生成されるデータに従うかを示す識別情報を記録する論理記憶管理テーブルを備え、前記論理記憶装置の領域に対するデータの書き込み要求があった場合、書き込み要求データのデータ配置パターンが予め登録されたデータ配置パターンと一致する場合に、一致するデータ配置パターンの識別情報を、前記論理記憶管理テーブルの書き込み要求のあった領域に対応させて記録し、前記書き込み要求データを破棄する技術が記載されている。
特開2005-135116号公報
特許文献1では、仮想ボリューム技術と重複排除技術の双方が用いられているが、仮想ボリュームの管理サイズと重複排除の管理サイズが同一である。仮想ボリューム技術及び重複排除技術による容量削減効果を高くするために両者の管理サイズを小さくした場合、管理情報が大きくなり、全ての管理情報をキャッシュ等の高速アクセスできる記憶媒体に格納しようとすると、システムが高価になる。一方で、管理サイズを大きくすると管理情報は減るが、容量削減効果は低くなる。すなわち、管理情報量と要領削減効果との間にはトレードオフの関係がある。従って、仮想ボリューム技術及び重複排除技術のための管理情報量を抑えつつ、ストレージサブシステムの記憶容量を効率的に使用するための技術が求められている。
ストレージサブシステムは、プロセッサと、メモリと、仮想ボリュームと、複数の記憶媒体から構成され仮想ボリュームに割り当てられるページ用物理領域を有するページ用ボリュームとを有している。そして、プロセッサは仮想ボリュームのアドレス空間を複数のページに分割し、複数のページ各々を少なくとも第一の状態と第二の状態とを含む複数の状態のうちいずれかの状態に分類して管理する。プロセッサは第二の状態に分類されるページをさらに複数のセグメントに分割して管理している。ここで、第一の状態とは、ページにライトデータを書き込むためのライト要求を受けた結果、当該ページにページ用ボリュームからページ用物理領域が割り当てられ、ライトデータがページ用物理領域に格納された状態を指す。また、第二の状態とは、ページ内のセグメントに予め定められた特定パターンデータと一致するライトデータを書き込むためのライト要求を受けた結果、メモリ内に特定パターンデータとセグメントとが対応付けられて管理されている状態を指す。
ボリューム仮想化技術及び重複排除技術のための管理情報量を抑えつつ、ストレージサブシステムの記憶容量を効率的に使用することができる。
以下に、本発明の実施の形態を説明する。
以下に本発明の実施形態の一例を説明する。尚、本発明は以下に記載する実施形態のみに限定されるものではない。
図1は、本発明を適用するストレージシステムのハード構成の一例を示している。ストレージシステムは、ストレージサブシステム0000、ホストコンピュータ(ホスト)0001を有しており、ストレージサブシステム0000とホスト0001は、ホスト・インタフェース(ホストI/F)0002によって接続される。ストレージサブシステム0000は、ホスト・インタフェース0002、管理インタフェース(管理I/F)0003、メモリとCPUから構成されるコントローラ0004、キャッシュメモリ0005、ディスク・インタフェース(ディスクI/F)0007、複数のハードディスク(HDD)0006から構成され、HDD以外は内部バス0008で接続されている。ストレージサブシステム0000の構成管理は、管理端末0009上で動作する管理ソフトウェア0010によって行われる。管理端末0009とストレージサブシステム0000とは、管理インタフェース0003によって接続される。
尚、図示しないが、管理端末0009及びホスト0001は各々、CPU、メモリ、ストレージサブシステム0000との通信を行うための通信I/F等を有する一般的な計算機であり、上述の管理ソフトウェア0010は管理端末0009内のメモリに格納されて管理端末0009のCPUによって実行される。
図2は、ストレージサブシステム0000の論理的なシステム構成の一例を示している。各種プログラム及び各種テーブルの詳細については後述する。尚、これらのプログラム及びテーブルは図1に示すコントローラ0004内のメモリに格納されており、コントローラ0004のCPUによって実行される。ただし、0113、0114、0117、0118のプログラムについては、実施例1では使用しないため、実施例2以降で詳細に説明する。
0104は通常ボリュームであり、ストレージサブシステム0000は複数の通常ボリューム0104を有する。各通常ボリューム0104は、複数のHDD0006によって構成されるRAIDグループ等のHDDグループ上に構成された記憶領域であって、ホスト0001及び管理端末0009からは1つの論理的な記憶領域として認識される。
0102は仮想ボリュームであり、ストレージサブシステム0000は複数の仮想ボリューム0102を有する。仮想ボリューム0102は通常ボリューム0104と同様のアドレス空間を持ち、ホスト0001からは通常ボリューム0104と同様に1つの論理的な記憶領域として認識され、通常ボリューム0104と同様にデータのリード、またはライトが行われる。仮想ボリューム0102と通常ボリューム0104との相違点は、通常ボリューム0102にはデータのライト前から物理領域が割り当てられているのに対し、仮想ボリューム0104にはデータがライトされたことを契機に物理領域が割り当てられる点である。仮想ボリューム0104を用いれば、ライトがない場合は物理領域を割り当てずに済むため、ストレージに実装する物理領域を少なくすることができ、記憶容量の有効活用が可能となる。尚、仮想ボリュームに割り当てられる物理領域は、ページ用プール0105から確保される。ページ用プール0105にはページ用ボリューム0103が複数含まれる。ページ用ボリューム0103は通常ボリューム0104と同様、複数のHDD0006によって構成されるRAIDグループ等のHDDグループ上に構成された記憶領域である。従って仮想ボリュームには、ページ用プール0105に属するページ用ボリューム0103上の物理領域が割り当てられることとなる。
図3は、仮想ボリューム0102のアドレス空間の一例を示している。仮想ボリューム0102のアドレス空間は複数個のページに分割されて管理される。ページの管理が容易になるため、通常はページのサイズを固定サイズとする。仮想ボリュームのアドレス空間0201上のページには、(a1)(a2)(a3)の3つの状態があり、それぞれの状態に応じて異なる管理が行われる。さらに(a2)の状態であるページは、セグメントという単位で複数個に分割されて管理される。ここで、図3ではページ内を8個のセグメントに分割しているが、ページ内のセグメント数は2個以上であれば個数は問わない。また、セグメントの管理が容易となるため、通常はセグメントのサイズを固定サイズとする。
(a1)(a2)(a3)の状態について、詳細に説明する。(a1)の状態は、ページ内にホスト0001からのライト要求があり、その結果としてページに物理領域が割り当てられた状態である。
(a2)の状態は、ページ内にホスト0001からライト要求があったが、ライトデータがストレージサブシステム0000の管理する特定パターンのデータと一致したため、特定パターンデータである旨のみが管理情報として後述するセグメント管理テーブル0122に記録され、ページに物理領域が割当たっていない状態である。即ちこの状態のページは、先述の重複排除技術によって記憶容量の削減が行われている。また(a2)の状態にあるページをセグメント単位で管理するのは、上述の通り重複排除制御を行う際には管理単位をより小さくした方が重複排除による記憶容量の削減効果が高いからである。即ち、重複排除制御が実施されるページ((a2)状態のページ)についてはよりサイズの小さいセグメントを管理単位とすることでストレージサブシステムにおける記憶容量の削減効果を高め、重複排除制御が実施されないページ((a1)及び後述の(a3)状態のページ)についてはセグメント単位ではなくページ単位で管理を行うことによって管理情報及び処理負荷の増大を防止しているのである。
(a3)の状態は、ページ内に未だホスト0001からのライト要求がないため、物理領域が割当たっていない状態である。この状態のページは先述の仮想ボリューム技術によって記憶容量が削減されている。
以上のように、ホストからライト要求があったかどうか、及びライト要求があった場合にはライト要求に含まれるライトデータが特定パターンのデータであるか否かに応じて、仮想ボリューム0102のアドレス空間上の各ページを(a1)(a2)及び(a3)の状態に分類して管理することにより、管理情報量を抑えつつ容量削減効果を高くすることが可能となる。
図4は、仮想ボリューム0201のアドレス空間を管理するために用いられる、仮想ボリューム管理情報0202の一例を示す。仮想ボリューム管理情報0202は、仮想ボリューム0102の作成時に、仮想ボリューム0102ごとに作成される。各仮想ボリューム管理情報0202は、仮想ボリュームを識別する仮想ボリューム番号(仮想ボリューム#)0211の欄と、1つのページ管理テーブル0121を有しており、更に仮想ボリューム#0211で識別される仮想ボリュームに状態が(a2)であるページが存在する場合には、状態が(a2)であるページの個数分セグメント管理テーブル0122を有する。
ページ管理テーブル0121は、仮想ボリューム0201のアドレス空間上の各ページの状態を管理するテーブルである。セグメント管理テーブル0122は、(a2)の状態であるページ内のセグメントを管理するテーブルであり、(a2)の状態であるページの個数分作成される。
まず、ページ管理テーブル0121の説明をする。ページ管理テーブル0121のページ番号(ページ♯)欄0203には、仮想ボリューム0102が有するページの番号が記録される。状態欄0204には、該ページの状態が記録される。本実施例では、(a1)の状態に対応する値を0、(a2)の状態に対応する値を1、(a3)の状態に対応する値を2とする。領域番号(領域#)欄0205には、当該ページにページ用プール0105内のどの物理領域が割り当てられたかを示す情報が記録される。従って、状態0204が0である場合、すなわちページの状態が(a1)である場合には、該ページに割り当てられた物理領域を示す識別番号が領域#0205に記録されるが、状態0204が1若しくは2である場合、即ちページ状態が(a2)若しくは(a3)である場合には、当該ページには物理領域が割り当てられていないので領域#0205にはnullが記録される。尚、ページ用プール0105内の物理領域は後述するプール管理テーブル0123によって管理されている。テーブル番号(テーブル#)欄0206には、当該ページのセグメントを管理するセグメント管理テーブル0122を示す識別番号が記録される。従って状態0204が1である場合、即ちページの状態が(a2)である場合には当該ページに対応するセグメント管理テーブル0122の識別番号がテーブル#0206に記録されるが、それ以外の場合(ページ状態が(a1)若しくは(a3)の場合)にはページはセグメント単位で管理されていないためセグメント管理テーブル0122も存在せずテーブル#0206にはnullが記録される。特定パターンカウント数欄0207には該ページに対するライト要求の内、ライトデータがストレージサブシステムが管理する特定パターンデータと一致した回数を示す数が記録される。尚、特定パターンカウント数0207は、状態が(a1)であるページについて記録され、状態が(a2)若しくは(a3)であるページについてはnull値が記録される。ページの状態が(a2)である場合、当該ページに書き込まれたライトデータは全て特定パターンデータと一致しているはずであり、ページの状態が(a3)である場合は未だホストからライト要求を受信していないため、特定パターンと一致するデータの数をカウントする必要がないからである。
次にセグメント管理テーブル0122を説明する。セグメント管理テーブル0122のセグメント番号欄(セグメント#)0208には、一つのページ内に存在する各セグメントに付けられた識別番号が記録される。各セグメントは、特定パターンデータをライトするようホストからライト要求を受け特定パターンデータが書き込まれた旨の記録を行っている状態と、ホストから未だライト要求を受けていない状態の2つの状態を取りうる。フラグ欄0209には、上記セグメントの状態を識別する値が記録される。本実施例では特定パターンデータが書き込まれた旨の記録を行っている状態を0、セグメントに対してライト要求を未だ受け取っていない状態を1とする。パターンID0210にはセグメントに対してホストからライト要求のあったデータのパターンを示す識別番号が記録される。従って、フラグ0209が0の場合にのみ、パターンID0210欄に特定データパターンを識別するIDが記録されることとなり、フラグ0209が1の場合にはパターンID0210にはnullが記録される。尚、ホストからライトを要求されたライトデータが特定パターンデータであるか否かを識別するために使用する、特定パターンデータを管理するテーブル0120については後述する。
図5はページ用プール0105を構成する記憶領域(物理領域)を管理するプール管理テーブル0123の一例を示す。領域番号(領域#)1231欄にはページ用プール0105を構成する物理領域の識別番号が記録される。この領域#は先述のページ管理テーブル0121の領域#0205から参照されている。割り当てフラグ1232欄には、当該物理領域が仮想ボリューム0102に割り当てられているか否かを示すフラグが記録される。本実施例では、領域が未割り当ての場合は0を、割り当て済みの場合は1を記録する。
プールLU番号(プールLU#)欄1234には、領域#1231が示す物理領域が属するページ用ボリューム0103の識別番号が記録され、開始アドレス欄1235には当該物理領域のページ用ボリューム0103内における位置を特定するための開始アドレスが記録される。即ち、ページ用プール0105を構成する各物理領域は、プールLU#1234によって識別されるページ用ボリューム0103内の、開始アドレス1235からページサイズと等しいサイズ分の記憶領域に相当する。
図6は仮想ボリューム0102内へライト要求のあったライトデータが特定パターンデータであるか否かを判断する際に使用する、特定パターンデータを管理するための特定パターン管理テーブル0120の一例である。特定パターン管理テーブル0120においては、特定パターンデータを識別するIDがパターンID1201に記録され、パターンデータ1202の列には、該特定パターンのデータが記録される。記録される特定パターンのデータサイズは、セグメントサイズと同一とする。
図7は、ページの状態(a1)から(a2)へ遷移させるか否かを判断する際に用いられる閾値を管理する閾値管理テーブル0124の一例である。尚、ページの状態(a1)から(a2)へ遷移させる処理は図13を用いて後述する。閾値管理テーブル0123では、仮想ボリューム0102を識別する仮想ボリューム番号が仮想ボリューム#1241欄に記録され、仮想ボリュームごとに特定パターンカウント数の閾値γ1242が記録されている。ユーザは管理ソフトウェア0010上で、各々の仮想ボリューム0102に対して閾値γを指定することが可能である。そして、先述のページ管理テーブル0121で管理されている特定パターンカウント数0207が閾値γに達した場合に、ページ状態(a1)にあるページに実際に書き込まれているデータが調べられ、当該データが全て特定パターンデータであると認められた場合に、当該データの状態が(a1)から(a2)へ遷移されることとなる。
図8は、仮想ボリューム作成プログラム0110の処理フロー0301の一例を示す。まずユーザは,管理ソフトウェア0010上で,仮想ボリューム0102の作成をストレージサブシステム0000の仮想ボリューム作成プログラム0110に指示する。仮想ボリューム作成プログラム0110は管理ソフトウェア0010から仮想ボリューム作成コマンドを受領し(ステップ0302)、仮想ボリューム0102を作成し、併せて仮想ボリューム管理情報0202を作成する(ステップ0303)。即ち仮想ボリューム作成プログラム0110は、作成した仮想ボリュームに識別番号を割り当てて、仮想ボリューム管理情報0202の仮想ボリューム#0211に記録する。また、このとき作成された仮想ボリューム0102内のページに対しては未だホストからのライト要求を受け付けていないため、該仮想ボリュームに対して作成されたページ管理テーブル0121の状態0204には、全てのページについて(a3)を示す2を記録し、領域#0205、テーブル#0206、特定パターンカウント数0207にはnull値を記録する。更にセグメント管理テーブル0122は作成しない。次に、仮想ボリューム作成プログラム0110は閾値管理テーブル0124の仮想ボリューム#1241に、作成した仮想ボリューム0102を識別する番号を記録し、ユーザが管理ソフトウェア0010上で任意に指定した閾値を閾値γ1242に記録する(ステップ0304)。そして仮想ボリューム作成プログラム0110は、管理ソフトウェア0010に仮想ボリューム作成終了を応答して(ステップ0305)処理を終了する。
図9は、特定パターン設定プログラム0115の処理フロー0401の一例を示す。ユーザは、管理ソフトウェア0010上で特定パターンとして追加(または削除)するデータを指定し、特定パターン設定プログラム0115に、特定パターン管理テーブル0120への特定パターンデータの追加(または削除)を指示する。特定パターン設定プログラム0115は、管理ソフトウェア0010から特定パターンデータの設定コマンドを受領する(ステップ0402)。設定コマンドが特定パターンデータとして新たなデータを追加するよう指示するものである場合には、特定パターン設定プログラム0115はコマンドで指定されるデータにIDを割り当てて、該IDと共に指定されたデータを特定パターン管理テーブル0120に記録する(ステップ0403)。
設定コマンドが特定パターン管理テーブル0120からの特定パターンデータの削除を指示するものである場合には、特定パターン設定プログラム0115は、設定コマンドで指定されるIDから削除対象の特定パターンデータを識別し、特定パターン管理テーブル0120から該IDと識別された特定パターンデータを削除する(ステップ0403)。
特定パターン管理テーブルの更新が終了すると、特定パターン設定プログラム0115は、設定終了を管理ソフトウェア0010に応答して(ステップ0404)、処理を終了する。
図10は、ページの状態を(a1)から(a2)へと変遷させるか否かを判断する際に用いられる閾値γを変更する閾値変更プログラム0116の処理フロー0116の一例を示す。ユーザは、管理ソフトウェア0010上で閾値を変更したい仮想ボリュームを識別する番号と変更後の閾値を指定し、管理ソフトウェア0010は閾値変更プログラム0116に、閾値管理テーブル0124上の閾値γ1242の変更を指示する。閾値変更プログラム0116は管理ソフトウェア0010から閾値変更コマンドを受領し(ステップ0502)、閾値管理テーブル0124にて指定された仮想ボリュームの閾値を指定された値に変更する(ステップ0503)。閾値変更プログラム0124は閾値の変更が終了すると、閾値変更終了を管理ソフトウェア0110に応答する(ステップ0504)。
図11は、リードプログラム0112の処理フロー1001の一例である。リードプログラム0112はホスト0001から仮想ボリューム0102に対するリード要求を受領すると(ステップ1001)、指定された仮想ボリュームのページ管理テーブル0121を参照し、リード要求があったアドレスに対応するページの状態0204をチェックする(ステップ1002)。尚、リード要求の中にはリード対象の仮想ボリュームを指定するための仮想ボリューム番号と、当該仮想ボリュームにおけるリード対象領域のアドレス情報が含まれている。一方仮想ボリュームを構成する各ページは所定のサイズを有するため、リード要求に含まれるアドレス情報と各ページのサイズからリード対象のページを特定することができる。
ページの状態が(a1)である場合、該ページには物理領域が割り当てられているため、リードプログラム0112はページ管理テーブル0121の領域#0205を参照し、該ページに対応する物理領域の識別番号を特定する。更に特定された物理領域の識別番号に基づいてプール管理テーブル0123を参照し、リードプログラム0012はリード対象のページ用ボリューム0103の番号1234と当該ページ用ボリューム0103内におけるリード対象領域の開始アドレス1235を取得する(ステップ1004)。そして、リードプログラム0112は取得したページ用ボリュームの番号とアドレスで指定される物理領域から、リード対象のデータをリードし、リードしたデータをホスト0001へ送信する(ステップ1005)。
ページの状態が(a2)である場合、該ページはさらにセグメントに分割されて管理されているため、リードプログラム0112は指定された仮想ボリューム0102についてのページ管理テーブル0121のテーブル#0206を参照し、該ページに対応するセグメント管理テーブル0122を取得する(ステップ1006)。そして、リードプログラム0112は取得したセグメント管理テーブル0122を参照してリード対象のセグメントのフラグ0209を確認する(ステップ1007)。尚、ページを構成するセグメントも所定のサイズを有するため、リード要求に含まれるアドレス情報と各セグメントのサイズからリード対象のページを特定することができる。
該フラグが0であった場合、該セグメントには特定パターンのデータが割り当てられているため、リードプログラム0112はパターンID0210を参照し、該IDで識別されるデータを特定パターン管理テーブル0120より取得し該データをホスト0001へ送信する(ステップ1009)。一方、フラグ0209が1であった場合は、該セグメントには未だデータが書き込まれていないため、所定のフォーマットデータをホスト0001へ送信する(ステップ1010)。尚、一般的なストレージサブシステムではフォーマットデータをゼロとすることが多いが、この限りではない。また、フォーマットデータは、仮想ボリュームごとにユーザが指定することも可能である。
ページの状態が(a3)である場合は、該ページには未だデータが書き込まれていない。従ってリードプログラム0112はステップ1010と同様フォーマットデータをホスト0001へ送信する(ステップ1003)。
図12は、ライトプログラム0111の処理フロー0601の一例である。ライトプログラム0111は、仮想ボリューム0102に対するライト要求をホスト0001から受領すると、指定された仮想ボリュームについてのページ管理テーブル0121を参照し、ライト要求があったアドレスに対応するページの状態0204をチェックする(ステップ1002)。尚、ライト対象のページの指定方法は、先述のリード処理の際と同様である。
ライトプログラム0111はページの状態が(a1)である場合はWrite処理(1)(ステップ0604)、ページの状態が(a2)である場合はWrite処理(2)(ステップ0605)、ページの状態が(a3)である場合はWrite処理(3)(ステップ0606)を実行する。Write処理(1)(2)(3)についての詳細は図13、図14、図15を用いて説明する。
図13は、ライトプログラム0111がライト要求を受けた際、ライト対象のページの状態が(a1)である場合に実行される、先述のWrite処理(1)(ステップ0604)の一例を示す。ライトプログラム0111はライト対象の仮想ボリュームについてのページ管理テーブル0121を参照し、ライト対象のページに割り当てられている物理領域の領域#0205を特定する。ライトプログラム0111は、特定された物理領域のプールLU#1234と開始アドレス1235をプール管理テーブル0123から取得する(ステップ0701)。そして、取得したプールLU#1234及び開始アドレス1235で指定される物理領域にライトデータを書き込み(ステップ0702)、ライト完了報告をホスト0001に送信する(ステップ0703)。
その後、ライトプログラム0111は特定パターン管理テーブル0120を参照して、ライト要求のあったライトデータが特定パターンデータのいずれかと一致しているか否かを判定する(ステップ0704)。ライトデータが特定パターンデータ1202と一致しない場合は、ライト処理を終了する。ライトデータが特定パターンデータ1202に一致する場合はステップ0705に進み、ページ管理テーブル0121を参照して、ライト要求を受けたページの特定パターンカウント数0207に1を加える。
ステップ0705の後ステップ0706に進み、ライトプログラム0111は、閾値管理テーブル0124を参照し、ライト対象の仮想ボリュームに対応する閾値γ1242を特定し、ステップ0705にて1を加えた後の特定パターンカウント数0207が該閾値を超えているか否かを判定する。該閾値を超えていない場合はライト処理を終了する。特定パターンカウント数が該閾値を超えている場合にはステップ0707に進み、ライトプログラム0111は該ページ内に書き込まれているデータが全て特定パターンデータと一致するデータであるか否かを判定する。該ページに書き込まれているデータが1つでも特定パターンデータと一致しない場合には、ライト処理を終了する。該ページに書き込まれているライトデータが全て特定パターンデータと一致する場合には、ステップ0708に進み、ライトプログラム0111はライト対象のページについてセグメントテーブル0122を新規に作成する。このとき当該ページについては全データが特定パターンデータであるため、該セグメントテーブル0122のフラグ0209には全て0が設定される。そしてライトプログラム0111は、特定パターン管理テーブル0120を参照して、当該ページの各セグメントに格納されている特定パターンデータを識別するIDを特定してパターンID0210に記録する(ステップ0708)。その後、ライト対象のページに割り当てていたページ用プール0105内の物理領域を開放する(ステップ0709)。ステップ0708、0709により、ライト対象のページの状態を(a1)から(a2)へと遷移させたため、ライトプログラム0111は、ページ管理テーブル01021の該ページに対応する状態0204を0から1に変更する(ステップ0710)。また、ページ管理テーブル0121のテーブル#0206に、ステップ0708で新規に作成されたセグメント管理テーブル0122を識別する番号を記録する(ステップ0711)。
以上Write処理(1)によれば、一旦物理領域が割り当てられていたページであっても、特定パターンデータのみで構成されることになったページについては、割り当てていた物理領域を開放し、どの特定パターンデータがホストから書き込まれたかを示す管理情報だけを記録すれば良く、容量削減効果を高くすることが可能となる。
図14は、ライトプログラム0111が、ライト対象のページの状態が(a2)である場合に実行する、先述のWrite処理(2)(ステップ0605)の一例を示す。ライトプログラム0111は、特定パターン管理テーブル0120を参照して、パターンデータ1202の中にライト要求を受けたライトデータと一致するデータがあるか否かを判定する(ステップ0801)。
ステップ0801にて一致する特定パターンデータが存在する場合はステップ0802に進み、ライトプログラム0111はライトデータと一致する特定パターンデータを識別するIDを、特定パターン管理テーブル0120のパターンID1201から特定する。そしてライト対象のページのセグメント管理テーブル0122を参照し、ライト対象のセグメントのパターンID0210に特定したパターンデータのIDを記録する(ステップ0802)。尚、ライト対象のセグメントはリード対象のセグメントと同様の方法にて特定することができる。その後、ライトプログラム0111は、ライト完了報告をホスト0001に送信して(ステップ0803)、ライトデータを解放し(ステップ0804)、ライト処理を終了する。
ステップ0801にてライトデータが特定パターンデータと一致しない場合はステップ0805に進み、ライトプログラム0111はライト対象のページにページ用プール0105から物理領域を割り当てるため、プール管理テーブル0123を参照する。そして、ライトプログラム0111は未割当の物理領域を示す割り当てフラグ1232が0である領域を確保する(ステップ0805)。即ち、ライトプログラム0111は当該未割当物理領域のフラグ1232を1に変更すると共に、ライト対象の仮想ボリュームのライト対象ページのページ管理テーブル0121に、領域#0205として確保した物理領域の識別番号を記録する。
ステップ0805にて確保した物理領域に、ライトプログラム0111は、ライト対象のページに元々割り当てられている(即ちホストからライト要求を受け、実際の物理領域へのデータの格納は行わずに特定パターンデータが書き込まれた旨の管理のみをしている)特定パターンデータを格納する(ステップ0806)。即ちライトプログラム0111は、ライト対象の仮想ボリュームについてのページ管理テーブル0121を参照し、ライト要求を受けたページに対応するテーブル#0206から該ページのセグメント管理テーブル0122を取得する。そして、該セグメント管理テーブル0122においてパターンID0210が記録されている各セグメントについて、ライトプログラム0111は特定パターン管理テーブル0120を参照し、該パターンIDで識別される特定パターンデータを取得して、該セグメントに対応する確保した物理領域上の記憶領域に該特定パターンデータを格納する。尚この時物理領域上の書き込まれた特定パターンデータの数を、ライトプログラム0111は、当該ページの特定パターンカウント数0207としてページ管理テーブル0121に記録することとしても良い。
さらにライトプログラム0111は、ライト対象セグメントに対応する、確保した物理領域上の記憶領域に、ライトデータを書き込む(ステップ0807)。
ステップ0805〜0807により、ライト要求を受けたページの状態を(a2)から(a1)へと遷移させたため、ライトプログラム0111は、ページ管理テーブル01021の該ページに対応する状態0204を1から0に変更し、テーブル#0206にnullを記録すると共に、当該ページに関するセグメント管理テーブル0122を破棄する(ステップ0808)。その後ライトプログラム0111はホスト0001にライト完了報告を送信して(ステップ0809)ライト処理を終了する。
図15は、ライト要求対象のページの状態が(a3)である場合にライトプログラム0111が実行するWrite処理(3)の一例を示す。ライトプログラム0111は、特定パターン管理テーブル0120を参照して、特定パターンデータ1202の中にホストから受信したライトデータと一致するデータがあるか否かを判定する(ステップ0901)。
ステップ0901にて一致するデータが存在する場合はステップ0902に進み、ライトプログラム0111はライト要求対象のページのセグメントテーブル0122を新規に作成する(ステップ0902)。そしてライト対象のセグメントについてフラグ0209に0を設定し、さらに特定パターン管理テーブル0120を参照して、ライトデータと同じ特定パターンデータを識別するIDを特定し、特定したIDをパターンID0210に記録する(ステップ0903)。ステップ0902、0903によりライト対象のページの状態が(a3)から(a2)へと変遷したため、ライトプログラム0111は該ページのページ管理テーブル0121を参照し、該ページの状態0204を2から1に変更する(ステップ0904)。また、ページ管理テーブル0121のテーブル#0206にステップ0902で新規に作成されたセグメント管理テーブル0122を識別する番号を記録する(ステップ0905)。最後にライトプログラム0111は、ライト完了応答をホスト0001に送信して(ステップ0906)、ライトデータを解放し(ステップ0907)、ライト処理を終了する。
ステップ0901にて一致する特定パターンデータが存在しない場合はステップ0906に進み、ライトプログラム0111はライト対象のページにページ用プール0103から物理領域を割り当てるため、プール管理テーブル0123を参照して、未割当の物理領域を示す割り当てフラグ1232が0である物理領域を確保する(ステップ0906)。物理領域の確保の方法は、先述のWrite処理(2)のステップ0805と同様である。そして、ライト要求に含まれる仮想ボリュームの識別番号とライト対象領域のアドレスに基づいて、対応する物理領域上の記憶領域を割り出し、割り出された記憶領域にライトデータを書き込む(ステップ0907)。ステップ0906、0907によりライト対象のページの状態が(a3)から(a1)へと変遷したため、ライトプログラム0111は該ページのページ管理テーブル0121を参照し、該ページの状態0204を2から0に変更する(ステップ0908)。最後に、ライトプログラム0111はホスト0001にライト完了コ報告を送信して(ステップ0909)ライト処理を終了する。
本実施例では、通常ボリューム0104に格納されているデータを仮想ボリューム0102に移行することによって、通常ボリューム0104に格納されている特定パターンデータの重複を排除し、ストレージサブシステムのデータ量を削減する方法を説明する。
図16は、図2に示す通常ボリュームの重複排除プログラム0114のフローの一例を示す。まず通常ボリュームの重複排除プログラム0114は、通常ボリューム0104と同じ容量を有する仮想ボリューム0102をデータ移行先のボリュームとして選択する(ステップ2401)。尚、重複排除プログラム0114はデータ移行先の仮想ボリューム0102を仮想ボリューム作成プログラム0110に指示して作成させても良い。次に通常ボリュームの重複排除プログラム0114は、通常ボリュームからセグメントサイズと同じサイズ分のデータを順にリードし(ステップ2402)、リードしたデータを実施例1で説明したライトプログラム0111を使って仮想ボリューム0102に対してライトさせる(ステップ2403)。
ライト処理の方法は、実施例1で説明した図12〜図15と同様であるため説明を省略するが、データの移行先仮想ボリューム0102は、ライトプログラム0111の処理によって、先述の状態(a1)、(a2)のいずれかの状態を有するページに分類される。状態(a1)のページについては物理領域が割り当てられ、当該物理領域にデータが書き込まれるが、状態(a2)のページには重複排除技術が用いられて物理領域が割り当てられない。この結果ストレージシステムのデータ容量を削減することができる。
以上のように、本発明によれば通常ボリューム0102内のデータを仮想ボリューム0102に移行する際にも容量削減効果の高い重複排除が可能となる。
本実施例では、図17に示す様に、実施例1で説明したストレージサブシステム0000がネットワーク2101〜2103を介して複数台接続されている場合に、該複数のストレージサブシステム0000間で容量削減効果の高いリモートコピーを行う方法を説明する。
リモートコピーには図2に示すリモートコピー通信プログラム0118を使用し、送信元となるストレージサブシステムではパターン送信プログラム2102とデータ送信プログラム2104を使用し、送信先となるストレージサブシステムではパターン受信プログラム2103とデータ受信プログラム2105を使用してストレージサブシステム0000間におけるリモートコピーを行う。各プログラム(2102〜2105)の詳細は後述する。本実施例では、一方のストレージサブシステムの通常ボリューム0104内のデータを他方のストレージサブシステムの仮想ボリューム0102にリモートコピーする場合を考える。
リモートコピーの事前準備として、まず送信元ストレージサブシステムと送信先ストレージサブシステムがそれぞれ有する特定パターン管理テーブル0120のデータを同期する。このためにパターン送信プログラム2102とパターン受信プログラム2104とが用いられる。
図18(a)は、送信元ストレージサブシステムで使用されるパターン送信プログラムの処理フローの一例を示す。パターン送信プログラム2102は、送信元ストレージサブシステムが有する特定パターンテーブル0120をシリアライズする(ステップ2301)。シリアライズの方法については複数通りの方式が考えられるが、本明細書では詳細な記述は行わない。尚、シリアライズとはソフトウェア内部で扱っているデータを丸ごとファイルで保存したり、ネットワークを介して送受信したりするために変換することをいう。次にパターン送信プログラム2012は、シリアライズ後の特定パターンテーブル0120のシリアルデータを送信先ストレージサブシステムのパターン受信プログラム2014に送信する(ステップ2302)。そして、送信先ストレージサブシステムからの応答を受信して終了する(ステップ2303)。
図18(b)は、送信先ストレージサブシステムで使用されるパターン受信プログラムの処理フローの一例を示す。パターン受信プログラム2104は、パターン送信プログラム2102から送信されたシリアルデータを受信し(ステップ2304)、該シリアルデータを特定パターンテーブル0120のデータに変換する(ステップ2305)。そして、変換後のデータを送信先ストレージサブシステムの特定パターン管理テーブル0120と置き換える(ステップ2306)。置き換えが完了したら送信元ストレージサブシステムに対して完了応答を送信する(ステップ2307)。
次に、複数のストレージサブシステム間においてリモートコピーを実施する際のデータの送受信方法について説明する。図19は、送信元ストレージサブシステムから送信先ストレージサブシステムに送信されるパケットの実装例を示す。パケットは、送信先ストレージサブシステムを特定するアドレス情報を格納するヘッダ部1801と、送信データを格納するデータ部とで構成される。データ部は、データ識別フラグ1802と仮想ボリューム情報1803とデータ格納部1804とで構成されている。データ識別フラグ1802とは、パケットを用いて送信されるデータが、実データであるのかパターンIDであるのかを示すフラグである。本実施例では、該フラグが0の場合、データ格納部1804には実データが格納されているものとする。一方、該フラグが1の場合、データ格納部1804はパターンIDが格納されている。仮想ボリューム情報1803は、送信データが書き込まれる、送信先ストレージサブシステム内の仮想ボリュームの番号とアドレスである。
図20(a)は、送信元ストレージサブシステムで使用されるデータ送信プログラム2103の処理フローの一例を示す。データ送信プログラム2103は、リモートコピーのコピー元である送信元ストレージサブシステムの通常ボリューム(以下コピー元通常ボリュームと呼ぶ)からデータを読み出す(ステップ1701)。そしてステップ1702にて、データ送信プログラム2103は、送信元ストレージサブシステムが有する特定パターン管理テーブル0120を参照し、読み出したデータが特定パターンデータと一致するか否かを判定する。特定パターンデータのいずれとも一致しない場合はステップ1704に進み、データ送信プログラム2103は、読み出した該データをそのままの形式でパケットとして送信先ストレージサブシステムに送信する。一方、ステップ1702にて、特定パターンデータのいずれかとステップ1701で読み出されたデータとが一致した場合、データ送信プログラム2103は、特定パターン管理テーブル0120のパターンID1201に基づいて、該データをパターンIDに変換し(ステップ1703)、該パターンIDを先述のパケットを用いて送信先ストレージサブシステムに送信する(ステップ1710)。
図20(b)は、送信先ストレージサブシステムで使用されるデータ受信プログラム2105の処理フローの一例を示す。データ受信プログラム2105は、送信元ストレージサブシステムからパケットを受信すると(ステップ1705)、該パケット内のデータ識別フラグ1802を確認する(ステップ1706)。該データ識別フラグ1802が0であった場合、ステップ1708に進み、受信パケットの仮想ボリューム情報1803が示す仮想ボリュームの記憶領域に実データをライトするようライトプログラム0111に指示する。この結果、実施例1で図12〜図15を用いて説明したのと同様の処理にてライトプログラム0111によりデータがリモートコピーの送信先であるコピー先仮想ボリュームに格納される。データ受信プログラム2105は、ライト処理が終了すると送信元ストレージサブシステムに完了応答を送信して終了する(ステップ1709)。ステップ1706にて、データ識別フラグ1802が1であった場合、ステップ1708に進み、データ受信プログラム2105は送信先ストレージサブシステムが有する特定パターン管理テーブル0120を参照して、データ格納部1804に格納されているパターンIDを実データに変換する(ステップ1707)。その後、データ受信プログラム2105は、先述と同様ステップ1708、ステップ1709の処理を実行して終了する。
以上の方法によれば、コピー元通常ボリュームから読み出されたデータが特定パターンデータと一致する場合には、送信元ストレージサブシステムから送信先ストレージサブシステムへは実データではなくパターンIDが送信されることになるため、リモートコピーに要するデータのコピー量が低減できる。更に、送信先ストレージサブシステムにおいては、実施例1において説明したライトプログラム0111を用いてコピーデータが送信先仮想ボリュームに書き込まれるため、特定パターンデータについてはデータの重複を排除することができる。このためコピー先ストレージサブシステムの必要記憶容量を削減することができる。
上述した方法では、リモートコピーのコピー元となる送信元ストレージサブシステム内のコピー元ボリュームが通常ボリューム0104であるということを前提として説明した。しかしコピー元ボリュームは仮想ボリューム0102であっても良い。コピー元ボリュームが仮想ボリューム0102であった場合には、送信元ストレージサブシステムにおいて当該コピー元仮想ボリューム0102をページ管理テーブル0121を用いてページ毎に管理しているため、送信元ストレージサブシステムは各ページの状態を把握している。従ってページ状態が(a2)である場合には、図20(a)のステップ1701及び1702の処理を実行せずとも、当該ページには特定パターンデータが対応付けられていることが明らかである。従って、図20(a)のステップ1701、ステップ1702、及びステップ1703を省略することもできる。この場合にはまず、送信元ストレージサブシステムのデータ送信プログラム2103はコピー元仮想ボリューム0102の各ページの状態を送信元ストレージサブシステムが有するページ管理テーブル0121を参照して判定する。判定の結果、該状態が(a1)である場合にはステップ1702に進み、該状態が(a2)である場合にはステップ1702、1703を省略してステップ1710に進み、該状態が(a3)である場合にはステップ1704に進む。それぞれその後のステップは先述のコピー元が通常ボリュームである場合と同様である。
更に上述の方法では、送信先ストレージサブシステムにおいて受信したデータがパターンIDであった場合に(即ち図20(b)のステップ1706でフラグの値が1であった場合に)、一旦パターンIDを実際の実データ(即ち特定パターンデータ)に直してから(図20(b)のステップ1707)、ライトプログラム0111を用いて当該特定パターンデータを仮想ボリュームに書き込んでいる。ライトプログラム0111が特定パターンデータを仮想ボリュームに書き込む際に、この特定パターンデータは再度パターンIDに変換されるため(図14のステップ0801及びステップ0802)、特定パターンデータとパターンIDとの間に無駄な変換処理が発生している。この無駄を省くために、ライトプログラム0111がライトデータの代わりにパターンIDを受け付けることができるようにしても良い。この結果、データ受信プログラム2105は図20(b)のステップ1707においてパターンIDを実データに変換することなくライトプログラム0111にパターンIDを渡せばよく、これを受信したライトプログラム0111は受信したパターンIDで指定される所定の特定パターンデータのライトを要求されたと解釈して、ライト処理を実行すれば良い。
以上のような方法でリモートコピーをすることにより、ネットワークの通信量を削減したデータ送受信を可能とし、さらに複数のストレージサブシステム間で容量削減効果の高い重複排除を行うことが可能となる。
尚、以下のような形態であっても構わない。
送信元ストレージサブシステムと、送信元ストレージサブシステムと通信可能に接続された送信先ストレージサブシステムとを有するストレージシステムにおいて、送信元ストレージサブシステム及び送信先ストレージサブシステムは、論理的な記憶領域を有する。送信元ストレージサブシステムは、ボリュームからリモートコピーの対象であるデータを読み出し、読み出したデータが特定パターンデータと一致する場合には、当該特定パターンデータを識別するIDを送信先ストレージサブシステムに送信する。このような構成により、ネットワークの通信料を削減したデータ送受信が可能となる。
本実施例では、図17に示す構成と同様ストレージサブシステム0000がネットワークを介して複数台接続されている場合に、該複数のストレージサブシステム0000間で容量削減効果の高いデータ移行を行う方法を説明する。
本実施例では、移行元ストレージサブシステムが有するデータ移行プログラム0113を用いて、移行元ストレージサブシステム内の全て又は一部の通常ボリューム0104のデータを移行先ストレージサブシステムの仮想ボリューム0102にコピーする。
本実施例ではまず、移行先ストレージサブシステムが特定パターンの分析プログラム0117を使って、移行元ストレージサブシステム内のコピー元通常ボリューム0104内に格納されているデータを分析し、特定パターンデータとしてどの様なパターンのデータを用いれば容量削減効果が高いかを調べる。後述の通り特定パターンの分析プログラム0117を実行すると、データ移行前に一旦コピー元通常ボリュームからデータを読み出してコピー先ストレージサブシステムへ送信する必要があるため、本プログラム0117の実行は必須でない。しかし、事前にコピー元通常ボリューム0104に格納されているデータを分析することで、移行先ストレージサブシステムが既に管理している特定パターンデータの他にも容量削減効果が高い特定パターンデータを発見することができれば、効率よく重複排除を行うことが可能となる。
図21には、特定パターンの分析プログラム0117が用いるパターンカウントテーブル2001の一例を示す。パターンカウントテーブル2001は、特定パターンの分析プログラム0117が移行元ストレージサブシステム内のコピー元通常ボリューム0104のデータを分析した際、当該データのパターンと当該パターンの出現個数を登録しておくために用いられる。パターンID欄2011には特定パターンの分析プログラム0117がコピー元通常ボリューム0104から読み出されたデータに付与したIDが記録さる。各々のパターンIDに対応するデータパターンがパターンデータ欄2012に記録され、同じデータパターンが移行元ストレージサブシステム内のコピー元通常ボリューム0104の中からいくつ発見されたかをカウントした結果がカウント数欄2013に記録される。パターンID2011には、ハッシュ値などを利用することでパターンカウントテーブル2001の容量を小さくすることができる。
図22は、特定パターンの分析プログラム0117の処理フローの一例を示す。まず、特定パターンの分析プログラム0117は、パターンカウントテーブル2001を作成する(ステップ2207)。そして、特定パターンの分析プログラム0117は、移行元ストレージサブシステムからコピー元通常ボリューム各々についてその構成情報を読み出す(ステップ2208)。コピー元通常ボリュームの構成情報とは、ボリュームのサイズなどの情報を指す。そして各コピー元通常ボリュームに対して、以下に示す処理を実行する。特定パターンの分析プログラム0117は、移行元ボリュームのアドレス空間をセグメントに分割し、各セグメントについて順に移行元ストレージサブシステムへリード要求を出す(ステップ2211)。次に、特定パターンのリード要求の結果移行元ストレージサブシステムからリードされたデータをデータIDに変換する。具体的には、リードしたデータがパターンカウントテーブル2001に存在するかどうかを確認し(ステップ2212)、データがパターンカウントテーブル2001上のパターンデータ2012に存在する場合は、該パターンデータに対応するカウント数2013を1増加させる(ステップ2213)。一方ステップ2212にて、リードしたデータがパターンカウントテーブル2001上に存在しない場合、該データに新しいパターンIDを割り当てて、当該データと当該パターンIDとを共にパターンカウントテーブル2001に新規に追加し、カウント数を1とする(ステップ2214)。
次に、ステップ2208にて特定パターンの分析プログラム0117は、当該コピー元通常ボリューム内の全てのセグメントについてデータをリードしたか否かを判定し(ステップ2215)、全てのセグメントについてリードを終了している場合にはステップ2216に進み、データ移行の対象となっている全てのコピー元通常ボリュームについてステップ2208からステップ2215までの処理が終了しているか否かを判定し(ステップ2216)、終了している場合にはステップ2217に進む。一方、ステップ2215の判定の結果、コピー元通常ボリューム内の全てのセグメントについてリードを終了していない場合には、全てのセグメントについて終了するまでステップ2211〜2214を残りのセグメントについて繰り返す。また、ステップ2216の判定の結果、データ移行対象の全コピー元通常ボリュームについて読み込みが終了していない場合には、全てのコピー元通常ボリュームについてリードを終了するまでステップ2208〜2215を残りのコピー元通常ボリュームについて繰り返す。
ステップ2217では、特定パターンの分析プログラム0117は、パターンカウントテーブル2001を使って容量削減効果の高い特定パターンデータはどれかを分析する。容量削減効果の高い特定パターンデータを分析する方法には複数通り考えられるが、本明細書では閾値δを使用する方法について示す。閾値δはあるパターンのデータが特定パターンデータであるか否かを判断する場合に用いられる閾値である。即ち、特定パターンの分析プログラム0117を実行することによって、ある所定のボリュームの中にある所定のパターンを有するセグメントデータが幾つ格納されているかが、カウント数2013としてパターンカウントテーブル2001に記録される。このカウント数が閾値δを超えた場合には、当該データパターンが特定パターンとして認定され、移行先ストレージサブシステムが有する特定パターン管理テーブル0120に追加される。閾値δを大きく設定した場合は、重複排除する特定パターン数が少なくなるため、容量削減効果が得られにくい。一方、閾値δを小さく設定した場合は、容量削減効果を得られやすいが、識別する特定パターンの個数が大きくなり、管理情報量が大きくなる。
特定パターンの分析が終わると、データ移行プログラム0113は、移行元ストレージサブシステム内のコピー元通常ボリューム0104からデータをリードし、該データをライトプログラム0111を使用して移行先ストレージサブシステム内の仮想ボリューム0102に書き込む。
図23は、データ移行プログラム0113の処理フローの一例である。データ移行プログラム0113は、特定パターンの分析プログラム0117と同様に、移行元ストレージサブシステム内のデータ移行対象の各コピー元通常ボリュームについての構成情報を読み出し(ステップ2201)、当該コピー元通常ボリュームに対して以下に示す処理を実行する。尚、特定パターンの分析プログラム0117を先に実行している場合には、ステップ2201の処理は省略して、特定パターンの分析プログラム0117が読み出した構成情報を用いることとしても良い。
まず、データ移行プログラム0113は、コピー元通常ボリュームと同じサイズの仮想ボリューム0102を移行先ストレージサブシステム内に作成し(ステップ2203)ここで作成された仮想ボリュームをデータの移行先ボリュームとする。次に、移行元通常ボリュームの先頭セグメントから順にデータを読み出すべく、移行元ストレージサブシステムにリード要求を出す(ステップ2205)。リード要求の結果移行元ストレージサブシステムから受信したデータを、データ移行プログラム0113は移行先ボリュームにライトするようライトプログラム0111に指示する(ステップ2206)。この結果、実施例1で図12〜図15を用いて説明したのと同様の処理にて、ライトプログラム0111によりデータが移行先である仮想ボリュームに格納される。次に、ステップ2207に進み、ステップ2201にて構成情報を読み出したコピー元通常ボリューム内のすべてのセグメントに関してステップ2205、2206が終了しているかを判定する(ステップ2207)。当該コピー元通常ボリューム内にまだステップ2205及び2206の処理が実行されていないセグメントが存在する場合には、データ移行プログラム0113はステップ2205に戻って残りのセグメント分も終了するまでステップ2205、2206を繰り返す。当該コピー元通常ボリューム内の全セグメントについてステップ2205及び2206の処理が終了していればステップ2208に進む。ステップ2208では、データ移行対象となっている全てのコピー元通常ボリュームについてステップ2201〜2207が終了したか否かを判定し、終了していない場合には、ステップ2201に戻って残りのコピー元通常ボリューム分も終了するまでステップ2201〜2207を繰り返す。ステップ2208にてデータ移行対象の全てのコピー元ボリュームについてステップ2201〜2207の処理が終了している場合には、データ移行プログラム0113は終了する。
以上の方法によれば、送信先ストレージサブシステムにおいては、実施例1において説明したライトプログラム0111を用いてデータが移行先仮想ボリュームに書き込まれるため、特定パターンデータについてはデータの重複を排除することができ、移行先ストレージサブシステムの必要記憶容量を削減することができる。
尚、特定パターンの分析プログラム0117を実行した後にデータ移行プログラム0113を実行すると、両方のプログラムによって合計2回データがコピー元通常ボリュームから読み出されて移行元ストレージサブシステムから移行先ストレージサブシステムへコピーされることになり、ネットワークにおける通信負荷が増加する。そこでこれを防止するために、特定パターンの分析プログラム0117が図22のステップ2211でコピー元ストレージサブシステムから読み出したデータを、コピー先ストレージサブシステムのキャッシュメモリ0005又は通常ボリューム0104に一旦保存しておいても良い。そうすれば、データ移行プログラム0113は、図23のステップ2205で述べた様にコピー元ストレージサブシステムのコピー元通常ボリュームから再度データを読み出す代わりに、コピー先ストレージサブシステムのキャッシュメモリ0005若しくは通常ボリューム0104に格納されているデータを用いればよく、コピー元ストレージサブシステムからコピー先ストレージサブシステムへのデータ送信量を低減することができる。
本実施例では、実施例1で説明した重複排除機能に加え、状態が(a2)であるページに特定パターンデータ以外のデータ(非特定パターンデータと呼ぶ)も存在させて、ページ内の非特定パターンデータのセグメント数によってページの状態を細かく変遷させることにより、さらに効率的にストレージサブシステムの容量削減を行う方法について説明する。主に、実施例1と異なる点を説明する。
図24は、本実施例における、ストレージサブシステム1111の論理的なシステム構成の一例を示したものである。図24に示すストレージサブシステム1111には、実施例1とは異なり、状態が(a2)であるページに非特定パターンデータを格納するために記憶領域を割り当てる際に用いられるセグメント用プール0107が存在する。セグメント用プール0107には、セグメント用ボリューム0106が複数存在する。セグメント用ボリューム0106は通常ボリューム0104やページ用ボリューム0103と同様、複数のHDD0006で構成されるRAIDグループ等のディスクグループ上に形成された記憶領域である。
本実施例におけるストレージサブシステム1111は更に、ページ用プール0105を管理するプール管理テーブル0123とは別に、セグメント用プール0107を管理するためのセグメント用プール管理テーブル0125を有する。セグメント用プール管理テーブルの構成は、実施例1で図5を用いて説明したプール管理テーブル0123の構成と同様であるため図示はしない。尚、セグメント用プール管理テーブル0125においてプールLU#は当該セグメントに割り当てられる物理領域を有するセグメント用ボリューム0106の識別番号である。また、セグメントに割り当てられる各物理領域のサイズはセグメントのサイズと等しいため、領域#で識別されるセグメントに割り当てられる物理領域は、プールLU#で識別されるセグメント用ボリューム0106の開始アドレスで示されるアドレスからセグメントサイズ分の記憶領域である。
本実施形態におけるストレージサブシステム1111では、セグメント管理テーブル0126の構成が実施例1におけるセグメント管理テーブル0122とは異なる。図25は、本実施例で使用するセグメント管理テーブル0126の一例を示した図である。実施例1で説明した図4のセグメント管理テーブル0122におけるフラグ欄0209には、特定パターンデータが書き込まれた旨の記録を行っている状態「0」と、セグメントに対してライト要求を未だ受け取っていない状態を「1」のいずれかの値が記録されたが、本実施例においてはこれらの状態に加え、セグメントに非特定パターンデータが格納されている状態「2」がセグメント管理テーブル0126のフラグ欄1262に記録され得る。更に本実施形態におけるセグメント管理テーブル0126は領域番号(領域#)欄1263を有する。領域#欄1263はフラグ欄1262に「2」が記録されている場合に用いられ、当該セグメントに割り当てられているセグメント用プール0107内の物理領域の領域番号が記録される。
本実施形態においては、閾値管理テーブル0127も実施例1における閾値管理テーブル0124とは異なる。本実施形態で用いられる図26は閾値管理テーブル0127の一例を示す図である。 本実施例では、ページが(a1)から(a2)、又は(a2)から(a1)に状態遷移する際に、非特定パターンデータ数に関する閾値α、閾値βが用いられる。状態が(a2)であるページにおいて、非特定パターンデータの数が増加して閾値αを超えた場合、ページの状態を(a2)から(a1)へと変遷させる。また、状態が(a1)であるページにおいては、非特定パターンデータの数が減少して閾値βを下回った場合、ページの状態を(a1)から(a2)へと変遷させる。閾値α、閾値βは閾値変更プログラム0116を利用して変更することが可能である。閾値を変更する処理フローについては、実施例1と同様であるため省略する。尚、本実施例における閾値αは2以上であることとする。
次に、本実施例におけるライトプログラム0128の処理フローについて、実施例1との相違点を示す。
まず、ライト対象のページの状態が(a1)である場合に実行される、Write処理(1)が実施例1とは異なる。図27には、本実施形態におけるWrite処理(1)の処理フローの一例を示す。本処理フローでは、(a1)から(a2)へページの状態を遷移させるために、ページ内の非特定パターンデータ数を調べるステップが加わる点で実施例1におけるWrite処理(1)とは異なる。
ステップ0701からステップ0706までは実施例1と同様の処理が行われるので説明を省略する。ステップ1301でライトプログラム0128は、非特定パターンデータの数をチェックして、閾値βを下回っているかを確認する。非特定パターンデータの数は、ライト対象ページに格納されている全データをチェックすることで確認しても良いし、ページ管理テーブルに新たに非特定パターンカウント数を記録するための欄を設け、非特定パターンデータが書き込まれる度にこの欄に記録されているカウンタを1ずつ増加させることで確認しても良い。
非特定パターンデータの数が閾値βを下回った場合、まずライトプログラム0128は、該ページに対応するセグメント管理テーブル0126を作成する(ステップ1302)。そして、以下の手順に従って該ページ内のセグメントの情報を作成したセグメント管理テーブル0126に記録する。
ライトプログラム0128は、特定パターン管理テーブル0120を参照して、セグメント内のデータが特定パターンのいずれかと一致するかどうかをページ内のセグメントデータを順にリードして判定する(ステップ1303)。該セグメントに書き込まれたデータが特定パターンデータのいずれかと一致する場合、該セグメントに対応するフラグ欄1262に0を設定し、対応するIDをパターンID欄1264に記録する(ステップ1304)。ここで、非特定パターンデータではないため領域#1263にはnullが記録される。
ステップ1302にて、リードしたセグメントのデータが特定パターンのいずれとも一致しない場合、ライトプログラム0128はセグメント用プール0107から物理領域を確保し(ステップ1306)、確保した領域に該データを書き込む(ステップ1307)。そして、セグメント管理テーブル0126のフラグ欄1262に2を記録し、確保したセグメント用プール0107の領域#1263を記録する。特定パターンデータではないためパターンID1264にはnullを記録する(ステップ1308)。
ステップ1311では、ページ内の全セグメントについてステップ1303からステップ1308までの処理が終了したか否かを判定し、終了していない場合にはステップ1303に戻って残りのセグメントについて上述の処理を繰り返す。
以上のステップにより、ページの状態が(a1)から(a2)に変遷したため、ページ管理テーブル0121の該ページの状態0204は0から1に変更される(ステップ1309)。
最後に、該ページに割り当てられていたページ用プール0105内の物理領域を解放する(ステップ1310)。
以上の図27のフローによれば、一旦物理領域が割り当てられていたページであっても、該ページ内に特定パターンデータが多く、非特定パターンが少ない状態になれば、非特定パターンデータのみに物理領域を割り当てるようにするため、容量削減効果の高い管理が可能となる。
本実施形態においては、ライト対象のページの状態が(a2)である場合にライトプログラム0128によって実行されるWrite処理(2)も実施例1とは異なる。図28には、本実施形態におけるWrite処理(2)の処理フローの一例を示す。
ライトデータが特定パターンデータのいずれかと一致する場合の処理フロー(ステップ0801からステップ0804まで)は、実施例1と同様であるため説明を省略する。
ステップ0801においてライトデータが特定パターンのいずれとも一致しない場合、ライトプログラム0128は、ライト対象のページ用のセグメント管理テーブル0126を取得し、ライト対象のセグメントのフラグ欄1262を2に設定する(ステップ1404)。そして、ステップ1405に進み、ライトプログラム0128はセグメント管理テーブル0126のフラグ欄1262を参照して、ライト対象のページにフラグが2であるセグメントがいくつ存在するかカウントする。更にライトプログラム0128は閾値管理テーブル0127を参照して該ページに対応する閾値α1272の値を取得し、先にカウントしたフラグが2であるセグメントの数(即ち非特定パターンデータの数)が閾値αの値を超えているか否かを判定する(ステップ1405)。ステップ1405にて、非特定パターンデータの数が閾値αの値を下回っている場合の処理は、ステップ1406〜1408となるが、図27のステップ1306〜1308と同様であるため説明を省略する。
ステップ1405にて、非特定パターンデータの数が閾値αの値を超えている場合には、ライトプログラム0128はステップ1410に進み、ライト対象のページにページ用プール0105から物理領域を割り当てる(ステップ1410)。そして、該ページに対応するセグメント管理テーブル0126を参照し、フラグ1262が0であるセグメントについては、該セグメントに対応するパターンID1264を参照し、パターン管理テーブル0121を取得して対応する特定パターンデータを確保領域の該セグメントに格納する。
フラグ1262が1であるセグメントについては、確保した領域の該セグメントに対応する領域にフォーマットデータを格納する。フラグ1262が2であった場合は、領域#1263を参照し、プール管理テーブル0123から該セグメントに対応するプールLU#1234と開始アドレス1235を取得し、該アドレスに格納されたデータを確保領域の該セグメントにコピーする(ステップ1411)。そして、ライトプログラム0128は、該ページに対応するセグメント管理テーブル0126を解放し(ステップ1412)、該ページに対応するページ管理テーブル0121の状態0204を1から0に変更して終了する(ステップ1413)。
以上の図28のフローによれば、物理領域を割り当てていない領域に非特定パターンデータのライト要求を受けた場合であっても、非特定パターンデータ数が少ないうちはライト要求を受けたページ全体に物理領域を割り当てず、非特定パターンデータにのみ物理領域を割り当てることによって、ストレージの容量削減効果を高くすることが可能となる。
尚状態が(a3)であるページにライト要求を受けた場合のライトプログラム0128の処理フローは、実施例1で説明したWrite処理(3)と同様であるため説明を省略する。
実施例1、実施例2及び実施例5におけるストレージシステムのハード構成の一例を示した説明図である。 ストレージサブシステムの論理的なシステム構成の一例を示した説明図である。 仮想ボリュームのアドレス空間の一例を示した説明図である。 仮想ボリューム管理情報の一例を示した説明図である。 プール管理テーブルの一例を示した説明図である。 特定パターン管理テーブルの一例を示した説明図である。 閾値管理テーブルの一例を示した説明図である。 仮想ボリューム作成プログラムの処理フローの一例を示した説明図である。 特定パターン設定プログラムの処理フローの一例を示した説明図である。 閾値変更プログラムの処理フローの一例を示した説明図である。 リードプログラムの処理フローの一例を示した説明図である。 ライトプログラムの処理フローの一例を示した説明図である。 Write処理(1)の処理フローの一例を示した説明図である。 Write処理(2)の処理フローの一例を示した説明図である。 Write処理(3)の処理フローの一例を示した説明図である。 重複排除プログラムの処理フローの一例を示した説明図である。 実施例3及び実施例4におけるストレージシステムのハード構成の一例を示した説明図である。 (a)パターン送信プログラムの処理フローの一例を示した説明図である。 (b)パターン受信プログラムの処理フローの一例を示した説明図である。 ストレージサブシステムに送信されるパケットの実装例を示した説明図である。 (a)データ送信プログラムの処理フローの一例を示した説明図である。 (b)データ受信プログラムの処理フローの一例を示した説明図である。 パターンカウントテーブルの一例を示した説明図である。 特定パターンの分析プログラムの処理フローの一例を示した説明図である。 データ移行プログラムの処理フローの一例を示した説明図である。 実施例5におけるストレージサブシステムの論理的なシステム構成の一例を示した説明図である。 実施例5におけるセグメント管理テーブルの一例を示した説明図である。 実施例5における閾値管理テーブルの一例を示した説明図である。 実施例5におけるWrite処理(1)の処理フローの一例を示した説明図である。 実施例5におけるWrite処理(2)の処理フローの一例を示した説明図である。
符号の説明
0000 ストレージサブシステム
0110 仮想ボリューム作成プログラム
0111 ライトプログラム
0112 リードプログラム
0113 データ移行プログラム
0114 通常ボリュームの重複排除プログラム
0115 特定パターン設定プログラム
0116 閾値変更プログラム
2001 特定パターンの分析プログラム
0118 リモートコピーデータ通信プログラム
0120 特定パターン管理テーブル
0202 仮想ボリューム管理情報システム本部
0123 プール管理テーブル
0124 閾値管理テーブル
0121 ページ管理テーブル
0122 セグメント管理テーブル
0102 仮想ボリューム
0103 ページ用ボリューム
0104 通常ボリューム

Claims (20)

  1. プロセッサと、
    メモリと、
    仮想ボリュームと、
    複数の記憶媒体から構成され、前記仮想ボリュームに割り当てられるページ用物理領域を有するページ用ボリュームとを有し、
    前記プロセッサは、前記仮想ボリュームのアドレス空間を複数のページに分割し、当該複数のページ各々を少なくとも第一の状態と第二の状態とを含む複数の状態のうちいずれかの状態に分類して管理し、
    前記プロセッサは、前記第二の状態に分類されるページをさらに複数のセグメントに分割して管理しており、
    前記第一の状態とは、ページにライトデータを書き込むためのライト要求を受けた結果、当該ページに前記ページ用ボリュームからページ用物理領域が割り当てられ、ライトデータが当該ページ用物理領域に格納された状態であり、
    前記第二の状態とは、ページ内のセグメントに予め定められた特定パターンデータと一致するライトデータを書き込むためのライト要求を受けた結果、前記メモリ内に当該特定パターンデータと当該セグメントとが対応付けられて管理されている状態であることを特徴とするストレージサブシステム。
  2. 前記複数の状態には、更に第三の状態が含まれ、
    前記第三の状態とは、ページに前記ページ用ボリュームからページ用物理領域が割り当てられておらず、かつ当該ページがセグメントに分割されて管理されていない状態であることを特徴とする請求項1記載のストレージサブシステム。
  3. 前記プロセッサは、受信したライト要求に含まれるアドレスで指定されるページが前記第一の状態である場合には、当該ページに割り当てられているページ用物理領域にライトデータを格納することを特徴とする請求項1記載のストレージサブシステム。
  4. 前記第一の状態にある前記ページ内のデータが全て前記特定パターンデータと一致する場合には、前記プロセッサは、前記ページを前記セグメント単位に分割し、各セグメントについて当該セグメントと前記特定パターンデータとを対応付けて前記メモリ内で管理し、
    前記プロセッサは、前記ページに割り当てられていたページ用物理領域を開放し、当該ページを前記第二の状態のページとして管理することを特徴とする請求項3記載のストレージサブシステム。
  5. 前記プロセッサは、受信したライト要求に含まれるアドレスで指定されるページが前記第二の状態又は前記第三の状態である場合には、ライトデータが前記特定パターンデータと一致するか否かを判定することを特徴とする請求項2記載のストレージサブシステム。
  6. 前記プロセッサは、前記ライト要求に含まれる前記アドレスで指定されるページが前記第二の状態であり、前記ライトデータが前記特定パターンデータと一致する場合、前記特定パターンデータと前記アドレスで指定されるセグメントとを対応付けて前記メモリ内で管理し、前記ライトデータを破棄することを特徴とする請求項5記載のストレージサブシステム。
  7. 前記プロセッサは、前記ライト要求に含まれる前記アドレスで指定されるページが前記第二の状態であり、前記ライトデータが前記特定パターンデータと一致しない場合、前記アドレスで指定されるページに、前記ページ用ボリュームからページ用物理領域を割り当て、前記メモリ内で管理されている前記特定パターンデータと当該ページ内のセグメントとの対応関係に基づいて、前記ページに割り当てられた前記ページ用物理領域内の当該セグメントに対応する物理領域に当該特定パターンデータを格納し、当該ライトデータを当該アドレスを用いて特定される前記ページ用物理領域内の物理領域に格納し、
    前記プロセッサは、前記ページを前記第一の状態のページとして管理することを特徴とする請求項5記載のストレージサブシステム。
  8. 前記プロセッサは、前記ライト要求に含まれるアドレスで指定されるページが前記第三の状態であり、前記ライトデータが前記特定パターンデータと一致する場合、
    前記ページを前記セグメント単位に分割して、前記メモリ内に前記アドレスで指定されるセグメントと前記特定パターンデータとを対応付けて記録し、前記ライトデータを破棄し、
    前記プロセッサは、前記ページを前記第二の状態のページとして管理することを特徴とする請求項5記載のストレージサブシステム。
  9. 前記プロセッサは、前記ライト要求に含まれるアドレスで指定されるページが前記第三の状態であり、前記ライトデータが前記特定パターンデータと一致しない場合、前記ページに、前記ページ用ボリュームからページ用物理領域を割り当て、当該ページ用物理領域に当該ライトデータを格納し、
    前記プロセッサは、前記ページを前記第一の状態のページとして管理することを特徴とする請求項5記載のストレージサブシステム。
  10. 前記プロセッサは、前記第一の状態にある前記ページに格納されているデータの内前記特定パターンデータと一致するデータのデータ数をカウントしており、
    前記プロセッサは、前記ライト要求に従って受信した前記ライトデータが前記特定パターンデータと一致する場合には、当該ライトデータを前記ページに割り当てられている前記ページ用物理領域に格納し、前記データ数を1増加させ、
    前記プロセッサは、前記データ数が予め定められた第一の閾値を超えた場合に、当該ページ内のデータが全て前記特定パターンデータと一致するか否かを判定することを特徴とする請求項4記載のストレージサブシステム。
  11. 前記ストレージサブシステムは更に、複数の記憶媒体から構成され、前記仮想ボリュームに割り当てられるセグメント用物理領域を有するセグメント用ボリュームを有し、
    前記プロセッサは、前記第一の状態のページ内に格納されている前記特定パターンデータと一致するデータの数が予め定められた第一の閾値を超え、かつ前記ページ内に格納されている前記特定パターンデータとは一致しないデータの数が予め定められた第二の閾値以下である場合、当該ページを前記セグメント単位に分割し、
    前記ページ内の各セグメントについて、当該セグメントに前記特定パターンデータと一致するデータが格納されている場合には、前記プロセッサは当該セグメントと当該特定パターンデータを対応付けて前記メモリ内で管理し、当該セグメントに前記特定パターンデータとは一致しないデータが格納されている場合には、前記プロセッサは当該セグメントに対して前記セグメント用ボリュームからセグメント用物理領域を割り当てて当該セグメント用物理領域に当該データを格納し、
    前記プロセッサは、前記ページに割り当てられていた前記ページ用物理領域を開放し、当該ページを前記第二の状態のページとして管理することを特徴とする請求項1記載のストレージサブシステム。
  12. 前記プロセッサは、前記第二の状態のページに対するライト要求を受信した場合に、当該ライト要求に従って受信したライトデータが前記特定パターンデータと一致しないデータであり、かつ当該ページに格納されている前記特定パターンデータと一致しないデータの数が前記第二の閾値以下である場合は、当該ページに新たに前記セグメント用ボリュームからセグメント用物理領域を割り当て、当該セグメント用物理領域に当該ライトデータを格納することを特徴とする請求項11記載のストレージサブシステム。
  13. 前記ストレージサブシステムは更に、複数の記憶媒体から構成される通常ボリュームを有しており、
    前記通常ボリュームに格納されているデータを前記仮想ボリュームに移行する場合、
    前記プロセッサは、前記通常ボリュームから前記セグメントと同サイズ分のデータを順にリードし、当該リードしたデータ前記仮想ボリュームにライトすることを特徴とする請求項1記載のストレージサブシステム。
  14. 前記ストレージサブシステムは、複数の記憶媒体からなる物理ボリュームを有する他のストレージサブシステムに接続され、
    前記ストレージサブシステムは、前記他のストレージサブシステムの前記物理ボリュームの先頭セグメントから順にデータをリードし、当該データを前記仮想ボリュームにライトすることを特徴とする請求項1記載のストレージサブシステム。
  15. 前記ストレージサブシステムは、前記物理ボリュームからリードしたデータのうち同じデータがいくつあるかをカウントし、
    前記ストレージシステムは、当該カウント数の結果が予め設定されている閾値を超えた場合、当該データを特定パターンデータとして前記メモリ内に登録することを特徴とする請求項14のストレージサブシステム。
  16. 送信元ストレージサブシステムと、
    前記送信元ストレージサブシステムと通信可能に接続された送信先ストレージサブシステムとを有するストレージシステムであって、
    前記送信元ストレージサブシステムは、コピー元ボリュームを有し、
    前記送信先ストレージサブシステムは、仮想ボリュームと、複数の記録媒体から構成され当該仮想ボリュームに割り当てられるページ用物理領域を有するコピー先物理ボリュームとを有し、
    前記送信先ストレージサブシステムは、前記仮想ボリュームのアドレス空間を複数のページに分割し、当該複数のページ各々を、少なくとも第一の状態及び第二の状態を含む複数の状態のいずれかに分類して管理し、
    前記送信先ストレージサブシステムは、前記第二の状態にあるページを更に複数のセグメントに分割して管理しており、
    前記第一の状態とは、ページにデータを書き込むための要求を受けた結果、当該ページに前記コピー先物理ボリュームからページ用物理領域が割り当てられ、当該データが当該ページ用物理領域に割り当てられた状態であり、
    前記第二の状態とは、予め定められた特定パターンデータと一致するデータをページ内のセグメントに書き込むための要求を受けた結果、当該セグメントと当該特定パターンデータとが対応付けられて管理されている状態であり、
    前記送信元ストレージサブシステムは、前記コピー元ボリュームからリモートコピーの対象であるデータを読み出し、前記読み出したデータが前記特定パターンデータと一致する場合には、当該特定パターンデータを識別するIDを前記送信先ストレージサブシステムに送信し、
    前記送信先ストレージサブシステムは、前記送信元ストレージサブシステムから前記IDを受信した場合に、当該IDによって識別される前記特定パターンデータの格納先となる前記仮想ボリューム内のページが前記第一の状態又は前記第二の状態のいずれの状態にあるかに応じて、異なる処理を実行することを特徴とするストレージシステム。
  17. 前記IDによって識別される前記特定パターンデータの格納先となる前記仮想ボリューム内のページが前記第一の状態である場合、前記送信先ストレージサブシステムは当該ページに割り当てられているページ用物理領域に当該IDによって識別される前記特定パターンデータを格納することを特徴とする請求項16記載のストレージシステム。
  18. 前記IDによって識別される前記特定パターンデータの格納先となる前記仮想ボリューム内のページが前記第二の状態であった場合、前記送信先ストレージサブシステムは当該IDと前記格納先となる前記セグメントとを対応付けて前記メモリ内で管理することを特徴とする請求項16記載のストレージシステム。
  19. 前記コピー元ボリュームは、前記送信元ストレージサブシステムが有する仮想ボリュームであることを特徴とする請求項16記載のストレージシステム。
  20. 前記コピー元ボリュームは、複数の記憶媒体からなる物理ボリュームであることを特徴とする請求項16記載のストレージシステム。
JP2008017014A 2008-01-29 2008-01-29 ストレージサブシステム及びストレージシステム Expired - Fee Related JP5090941B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008017014A JP5090941B2 (ja) 2008-01-29 2008-01-29 ストレージサブシステム及びストレージシステム
US12/050,301 US8245007B2 (en) 2008-01-29 2008-03-18 Storage subsystem
EP08020090A EP2085867A3 (en) 2008-01-29 2008-11-18 Storage subsystem
CN200910003562.0A CN101498991B (zh) 2008-01-29 2009-01-15 存储子***
US13/568,204 US8521985B2 (en) 2008-01-29 2012-08-07 Storage subsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008017014A JP5090941B2 (ja) 2008-01-29 2008-01-29 ストレージサブシステム及びストレージシステム

Publications (2)

Publication Number Publication Date
JP2009181148A JP2009181148A (ja) 2009-08-13
JP5090941B2 true JP5090941B2 (ja) 2012-12-05

Family

ID=40548021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008017014A Expired - Fee Related JP5090941B2 (ja) 2008-01-29 2008-01-29 ストレージサブシステム及びストレージシステム

Country Status (4)

Country Link
US (2) US8245007B2 (ja)
EP (1) EP2085867A3 (ja)
JP (1) JP5090941B2 (ja)
CN (1) CN101498991B (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938595B2 (en) * 2003-08-05 2015-01-20 Sepaton, Inc. Emulated storage system
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
US8219740B2 (en) * 2008-06-25 2012-07-10 International Business Machines Corporation Flash sector seeding to reduce program times
US8612705B2 (en) * 2009-07-29 2013-12-17 Hewlett-Packard Development Company, L.P. Making a physical copy of data at a remote storage device
US8458233B2 (en) * 2009-11-25 2013-06-04 Cleversafe, Inc. Data de-duplication in a dispersed storage network utilizing data characterization
US8281105B2 (en) * 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8620939B2 (en) * 2010-01-25 2013-12-31 Sepaton, Inc. System and method for summarizing data
WO2011099963A1 (en) * 2010-02-10 2011-08-18 Hewlett-Packard Development Company, L.P. Identifying a location containing invalid data in a storage media
US8427854B2 (en) * 2010-04-15 2013-04-23 Microsoft Corporation Utilization of memory refresh cycles for pattern matching
US9881099B2 (en) 2010-05-24 2018-01-30 International Business Machines Corporation System, method and computer program product for data transfer management
US9135171B2 (en) * 2010-07-13 2015-09-15 Vmware, Inc. Method for improving save and restore performance in virtual machine systems
CN101938516B (zh) * 2010-09-02 2012-11-14 华中科技大学 一种面向用户的动态分配存储资源的方法
JP5623239B2 (ja) * 2010-10-28 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 書込みレコードの重複を排除する記憶装置、及びその書込み方法
US20120137303A1 (en) 2010-11-26 2012-05-31 Hitachi, Ltd. Computer system
US8533407B2 (en) 2010-12-01 2013-09-10 International Business Machines Corporation Capacity management in deduplication storage systems
US9122639B2 (en) 2011-01-25 2015-09-01 Sepaton, Inc. Detection and deduplication of backup sets exhibiting poor locality
JP5712713B2 (ja) 2011-03-18 2015-05-07 富士通株式会社 制御装置、制御方法およびストレージ装置
US9069477B1 (en) * 2011-06-16 2015-06-30 Amazon Technologies, Inc. Reuse of dynamically allocated memory
JP5780067B2 (ja) * 2011-09-01 2015-09-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
WO2013051129A1 (ja) * 2011-10-06 2013-04-11 株式会社 日立製作所 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
JP5981563B2 (ja) * 2012-04-26 2016-08-31 株式会社日立製作所 情報記憶システム及び情報記憶システムの制御方法
WO2013171793A1 (en) * 2012-05-16 2013-11-21 Hitachi, Ltd. Storage apparatus, storage system, and data migration method
JP5995071B2 (ja) * 2012-09-19 2016-09-21 学校法人 中央大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
US9766832B2 (en) 2013-03-15 2017-09-19 Hitachi Data Systems Corporation Systems and methods of locating redundant data using patterns of matching fingerprints
US9256611B2 (en) 2013-06-06 2016-02-09 Sepaton, Inc. System and method for multi-scale navigation of data
CN103473018B (zh) * 2013-09-10 2016-09-14 华为技术有限公司 硬盘和管理方法
US9678973B2 (en) 2013-10-15 2017-06-13 Hitachi Data Systems Corporation Multi-node hybrid deduplication
US9720608B2 (en) 2013-11-07 2017-08-01 Hitachi, Ltd. Storage system
CN106716386B (zh) * 2014-10-07 2020-05-29 谷歌有限责任公司 使用页面过滤器和***mmu的硬件辅助存储器压缩管理
CN104765571A (zh) * 2015-03-17 2015-07-08 深信服网络科技(深圳)有限公司 虚拟数据写入、读取的方法及***
JP6587953B2 (ja) * 2016-02-10 2019-10-09 東芝メモリ株式会社 ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム
US20170255387A1 (en) * 2016-03-04 2017-09-07 Intel Corporation Techniques to Cause a Content Pattern to be Stored to Memory Cells of a Memory Device
WO2017176256A1 (en) 2016-04-05 2017-10-12 Hewlett Packard Enterprise Development Lp Unmap to initialize sectors
JP6782303B2 (ja) * 2016-11-07 2020-11-11 株式会社日立製作所 計算機、計算機システムおよびデータ量制限方法
JP6826287B2 (ja) * 2016-12-28 2021-02-03 富士通株式会社 ストレージ制御装置、ストレージ管理システム、及びプログラム
KR102498668B1 (ko) 2017-05-17 2023-02-09 삼성전자주식회사 플래시-인지 힙 메모리 관리 방법 및 호스트 장치
JP6606235B1 (ja) * 2018-07-13 2019-11-13 株式会社日立製作所 ストレージシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019655A2 (en) 2000-08-31 2002-03-07 Ontrack Data International, Inc. System and method for data management
US7092956B2 (en) * 2001-11-02 2006-08-15 General Electric Capital Corporation Deduplication system
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP2005135116A (ja) * 2003-10-29 2005-05-26 Nec Corp ストレージ装置及びそのアクセス制御方法
JP4723921B2 (ja) * 2005-06-13 2011-07-13 株式会社日立製作所 記憶制御装置及びその制御方法
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
JP4589896B2 (ja) 2006-07-04 2010-12-01 株式会社リコー 画像処理装置と画像処理方法とプログラム

Also Published As

Publication number Publication date
CN101498991B (zh) 2011-07-27
CN101498991A (zh) 2009-08-05
EP2085867A2 (en) 2009-08-05
US20090193219A1 (en) 2009-07-30
JP2009181148A (ja) 2009-08-13
US8521985B2 (en) 2013-08-27
US20120303926A1 (en) 2012-11-29
EP2085867A3 (en) 2012-01-11
US8245007B2 (en) 2012-08-14

Similar Documents

Publication Publication Date Title
JP5090941B2 (ja) ストレージサブシステム及びストレージシステム
US20180173632A1 (en) Storage device and method for controlling storage device
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US10203876B2 (en) Storage medium apparatus, method, and program for storing non-contiguous regions
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US20150127855A1 (en) Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
US20110283046A1 (en) Storage device
WO2015162758A1 (ja) ストレージシステム
WO2017149592A1 (ja) ストレージ装置
WO2017068904A1 (ja) ストレージシステム
EP3346387B1 (en) Storage system and system garbage collection method
US20150363134A1 (en) Storage apparatus and data management
US11144202B2 (en) Volume management apparatus, volume management method, and volume management program
US20120221809A1 (en) Storage apparatus and data processing method of the same
US20190243758A1 (en) Storage control device and storage control method
JP5962140B2 (ja) プログラム、制御方法、制御装置およびシステム
JP5378604B2 (ja) ThinProvisioningが適用された、メインフレーム系のストレージ装置
WO2013061368A1 (en) Storage apparatus and method of controlling storage apparatus
US8566558B2 (en) Storage apparatus and data management method
WO2010119478A1 (en) Storage system and control method therefor
WO2020037982A1 (zh) 一种基于 fat 文件的数据删除方法、数据存储设备及***
JP5691234B2 (ja) ディスクアレイ装置、及び、ミラーリング制御方法
JP2008171311A (ja) データ保存装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100708

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120823

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5090941

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees