JP2010055557A - ストレージシステム及びストレージシステムの制御方法 - Google Patents

ストレージシステム及びストレージシステムの制御方法 Download PDF

Info

Publication number
JP2010055557A
JP2010055557A JP2008222601A JP2008222601A JP2010055557A JP 2010055557 A JP2010055557 A JP 2010055557A JP 2008222601 A JP2008222601 A JP 2008222601A JP 2008222601 A JP2008222601 A JP 2008222601A JP 2010055557 A JP2010055557 A JP 2010055557A
Authority
JP
Japan
Prior art keywords
volume
storage
data
area
command
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.)
Granted
Application number
JP2008222601A
Other languages
English (en)
Other versions
JP5107833B2 (ja
JP2010055557A5 (ja
Inventor
Shunji Kawamura
俊二 川村
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 JP2008222601A priority Critical patent/JP5107833B2/ja
Priority to US12/289,064 priority patent/US8090923B2/en
Publication of JP2010055557A publication Critical patent/JP2010055557A/ja
Publication of JP2010055557A5 publication Critical patent/JP2010055557A5/ja
Priority to US13/308,115 priority patent/US8635424B2/en
Application granted granted Critical
Publication of JP5107833B2 publication Critical patent/JP5107833B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

【課題】本発明のストレージシステムは、プール内に管理されているページを有効に使用する。
【解決手段】メインストレージ1の外部接続ボリューム7は、外部ストレージ2内のAOUボリューム8に対応付けられている。AOUボリューム8には、データの書込みに応じて、プールPL2内の未使用ページが割り当てられる。メインストレージ1内の第1コントローラ4は、外部接続ボリューム7についてフォーマット等が指示された場合、それらのコマンドを外部ストレージ2内のAOUボリューム8に対するフォーマット指示または領域解放指示に変換する。これにより、外部のAOUボリューム8の全体にライト処理が実施されてページが無駄に割り当てられるのを防止できる。
【選択図】図1

Description

本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
例えば、政府、企業、大学等の各種機関では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、ディスクアレイ装置等から構成される。ディスクアレイ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、RAID(Redundant Array of Independent Disks)に基づく記憶領域を提供する。記憶デバイス群が提供する物理的な記憶領域上には少なくとも1つ以上の論理ボリュームが形成され、この論理ボリュームがホストコンピュータ(より詳しくは、ホストコンピュータ上で稼働するデータベースプログラム)に提供される。ホストコンピュータ(以下、「ホスト」と略記)は、所定のコマンドを送信することにより、論理ボリュームに対してデータの書込み、読み出しを行うことができる。
各機関で管理すべきデータは、日々増大する。このため、将来の需要増を見込んで、予めストレージシステムに多めの記憶領域を設けておくことが考えられる。しかし、記憶デバイスの単価は年々低下する傾向にあるため、将来の需要増大に備えて記憶デバイスを多めに購入すると、過大な先行投資になるおそれがある。新たな記憶領域が必要となった時点で、記憶デバイスを適宜購入する方がストレージシステムのコストが低下する。
これに対し、現在の需要に応じた記憶領域だけを用意する場合、新たな需要に即座に対応することができず、ストレージシステムの使い勝手が低下する。そこで、ストレージシステムに存在する各記憶デバイスの記憶領域を仮想化して管理し、必要に応じて使用するようにした技術が提案されている(特許文献1)。
また、既存の記憶資源を有効に利用するために、一方の記憶制御装置が他方の記憶制御装置の有する論理ボリュームを一方の記憶制御装置内部に取り込み、その論理ボリュームがあたかも一方の記憶制御装置の有する論理ボリュームであるかのようにホストに見せかける技術も知られている(特許文献2)。この従来技術では、接続元の論理ボリュームと接続先の論理ボリュームとの対応関係を管理しており、接続元の論理ボリュームへのアクセスに応じて、接続先の論理ボリュームにアクセスする。
特開2005−31929号公報 特開2005−107645号公報
記憶容量を仮想化する技術と記憶制御装置を仮想化する技術とを仮に組合せる場合、接続先の論理ボリュームに不要なライトアクセスが多量に発生し、記憶領域の使用効率が低下する場合がある。接続先の論理ボリュームを、プール内の実記憶領域を必要に応じて使用する形式の論理ボリュームとして構成し、接続元の論理ボリュームについてフォーマット処理を実施する場合を例に挙げる。
この場合、接続先の論理ボリュームの全体についてフォーマットデータを書き込む処理が実行されるため、接続先の論理ボリュームの全体にプール内の記憶領域が割り当てられてしまう。プール内の記憶領域が無駄に接続先の論理ボリュームに割り当てられるため、ストレージシステムの有する記憶領域を効率的に使用できないという問題がある。また、ストレージシステム内に無駄なトラフィックが発生する。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、記憶資源を有効に使用することのできるストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、第2ボリュームへのライトアクセスを抑制できるストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本願で開示する代表的な発明は以下の通りである。第1記憶制御装置と第2記憶制御装置とを通信可能に接続してなるストレージシステムであって、第1記憶制御装置に仮想的に設けられる第1ボリュームと、第2記憶制御装置に仮想的に設けられる第2ボリュームであって、その記憶空間が第1ボリュームの記憶空間に対応付けられており、かつ、第1ボリュームへのアクセス要求に応じてアクセスされる第2ボリュームと、第2ボリュームへのライトアクセス要求に応じて第2ボリュームに割り当てられるための実記憶領域を保持するプール部と、第1記憶制御装置に設けられ、第1ボリュームへのアクセス要求に応じて第2ボリュームにコマンドを発行し、第2ボリュームにデータを読み書きする第1制御部と、第2記憶制御装置に設けられ、第1制御部からのコマンドに応じて第2ボリュームにデータを入出力する第2制御部であって、第1制御部からのライトアクセス要求に応じてプール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を第2ボリュームに割り当てる第2制御部と、を備え、第1制御部は、第1ボリュームについて第1の所定コマンドを受信した場合に、第2ボリュームへのライトアクセスの頻度が相対的に低下するように、第1の所定コマンドを第2の所定コマンドに変換して第2制御部に送信する。
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
図1は、本発明の実施形態の全体概要を示す構成説明図である。本システムは、後述のように、外部接続機能と、AOU(Allocation On Use)機能とを利用する。外部接続機能とは、メインストレージ1の外部に存在するボリューム8を、メインストレージ1の内部のボリュームであるかのようにホスト3に見せかける機能である。外部接続機能は、記憶制御装置を仮想化する機能である。なお、図1は、本発明の一つの側面を模式的に示しており、本発明の範囲を図1に示す構成に限定する意図は無い。
AOU機能とは、実記憶領域をプール内に管理しておき、データが論理ボリュームに書き込まれる場合に、データの書込み対象領域にプール内の実記憶領域を割り当てる機能である。AOU機能は、記憶容量を仮想化する機能である。
本実施形態のストレージシステムは、例えば、少なくとも一つ以上のメインストレージ1と、少なくとも一つ以上の外部ストレージ2と、少なくとも一つ以上のホスト3とを含んでいる。さらに、本ストレージシステムは、管理用の装置(図2の管理サーバ20)を備えることもできる。
メインストレージ1は「第1記憶制御装置」に該当する。メインストレージ1は、ストレージシステム内において主導的な役割を果たす。ホスト3は、メインストレージ1を介して、ストレージシステム内の記憶資源を利用する。メインストレージ1は、例えば、「第1制御部」としての第1コントローラ4と、AOU機能を用いて生成されるAOUボリューム6と、「第1ボリューム」としての外部接続ボリューム7と、AOUプールPL1とを備える。
第1コントローラ4は、メインストレージ1の動作を制御する。第1コントローラ4は、例えば、IO(Input/Output)処理を行う機能4Aと、AOUを制御する機能4Bと、外部接続を制御する機能4Cと、コマンドを変換する機能4Dと、更新管理情報としての更新ビットマップ4E,4Fとを備える。
IO処理機能4Aは、ホスト3から受信したライトコマンドやリードコマンド等に応じて、AOUボリューム6や外部接続ボリューム7にデータを読み書きする。AOU制御機能4Bは、AOUプールPL1及びAOUボリューム6を制御する。AOU制御機能4Bは、新たな領域についてホスト3からデータの書込みが要求された場合に、AOUプールPL1内の未使用ページをAOUボリューム6に割り当てる。そのページは「実記憶領域」に該当する。また、AOU制御部4Bは、所定の場合に、AOUボリューム6に割り当てられたページを解放させて、AOUプールPL1に戻す。
外部接続制御機能4Cは、外部接続ボリューム7と外部ストレージ2内のボリューム8との対応関係に基づいて、外部接続ボリューム7へのコマンドを外部ストレージ2内のボリューム8へのコマンドに変換するものである。
外部接続ボリューム7は、外部ストレージ2内のボリューム8に対応付けられているボリュームである。従って、外部接続ボリューム7は、例えば、接続元ボリューム、または、外部のボリュームに接続された外部接続ボリュームと呼び変えることもできる。外部ストレージ2内のボリュームを外部ボリュームまたは接続先ボリュームと呼ぶ。
外部接続制御機能4Cは、接続元ボリュームとしての外部接続ボリューム7の記憶空間と、接続先ボリュームとしての外部ボリューム8の記憶空間との対応関係や、外部ボリューム8にアクセスするためのアクセス経路情報等を管理している。外部接続制御機能4Cは、例えば、ホスト3から外部接続ボリューム7へのライトコマンドが発行されると、そのライトコマンドを外部ボリューム8へのライトコマンドに変換する。変換されたライトコマンドは、外部ストレージ2内の第2コントローラ5に送信される。ホスト3は、メインストレージ1内の外部接続ボリューム7に書き込んでいるつもりであるが、実際のデータは外部ストレージ2内の外部ボリューム8に記憶される。
コマンド変換機能4Dは、外部接続ボリューム7向けて発行されるコマンドのうち所定のコマンドを、別のコマンドに変換させるものである。例えば、フォーマットコマンド、シュレッドコマンド、ボリュームコピーコマンド、リシンクコマンド、リストアコマンド等は、「第1の所定コマンド」に該当する。
コマンド変換機能4Dは、第1の所定コマンドを、外部ボリューム8へのライトアクセスの頻度が相対的に低下するように、第2の所定コマンドに変換する。変換された第2の所定コマンドは、第2コントローラ5に送信される。コマンド変換機能4Dは、例えば、外部接続ボリューム7のフォーマットを要求するフォーマットコマンドを受信した場合(9A)、もしも可能ならば、そのフォーマットコマンドを、AOU外部ボリューム8のフォーマットを要求するコマンドまたはAOU外部ボリューム8に割当済みのページの解放を要求するコマンドのいずれかに変換する(9C)。
AOU外部ボリューム8のフォーマットやページ解放を第1コントローラ4から指示できない場合、コマンド変換機能4Dは、「代替コマンド」としてフォーマットデータをAOU外部ボリューム8に書き込ませるためのライトコマンドを発行する。そのフォーマットデータは「所定データ」に該当する。
コマンド変換機能4Dは、外部接続ボリューム7とAOU外部ボリューム8の記憶内容を同期させるためのコマンドを受信した場合(9B)、外部接続ボリューム7とAOU外部ボリューム8との差分のみをAOU外部ボリューム8に書き込ませる(9D)。なお、各コマンドの処理の詳細は後述する。
更新ビットマップ4Eは「第1管理情報」に、更新ビットマップ4Fは「第2管理情報」に、該当する。更新ビットマップ4Eは、メインストレージ1内のボリューム6,7について使用状態を管理する。更新ビットマップ4Fは、外部ストレージ2内の外部ボリューム8について使用状態を管理する。IO処理機能4Aは、ホスト3から受信したライトコマンド等に基づいて、各更新ビットマップ4E,4Fを更新させる。
「第2記憶制御装置」としての外部ストレージ2を説明する。外部ストレージ2は、メインストレージ1の外部に存在するストレージであるため、本明細書では「外部ストレージ」と呼ばれる。外部ストレージ2は、例えば、「第2制御部」としての第2コントローラ5と、「第2ボリューム」としてのAOU外部ボリューム8と、「プール部」としてのAOUプールPL2とを備える。
第2コントローラ5は、外部ストレージ2の動作を制御する。第2コントローラ5は、例えば、IO処理機能5Aと、AOU制御機能5Bとを備える。IO処理機能5Aは、第1コントローラ4からの指示に応じて、AOU外部ボリューム8にデータを読み書きし、その読み書きの結果を第1コントローラ4に応答する。AOU制御機能5Bは、第1コントローラ4のAOU制御機能4Bと同様に、AOUプールPL2及びAOU外部ボリューム8について制御する。
AOU外部ボリューム8は、メインストレージ1内のAOUボリューム6と同様に、仮想的に生成されるボリュームである。AOU外部ボリューム8は、外部ストレージ2内に存在する外部ボリュームであって、かつ、AOUにより構成されるボリュームである。AOU外部ボリューム8にデータが書き込まれる場合に、AOUプールPL2内のページがAOU外部ボリューム8に割り当てられる。
このように構成される本実施形態では、メインストレージ1内の外部接続ボリューム7に外部ストレージ2内のAOU外部ボリューム8を対応付けることにより、ストレージシステム内の記憶資源を有効に利用できる。メインストレージ1が外部ストレージ2の有する外部ボリューム8をメインストレージ1内に取り込むことにより、ストレージシステム内に分散する各ボリュームを仮想化して管理することができる。さらに、実際の使用に応じてページが割り当てられるAOUボリューム6,8を用いることにより、実記憶領域(上記のページ)を有効に利用できる。
さらに、本実施例では、外部接続ボリューム7へのコマンドが第1の所定コマンドである場合に、AOU外部ボリューム8へのライトアクセスの頻度が相対的に低下する第2の所定コマンドに変換して、第2コントローラ5に送信する。従って、AOU外部ボリューム8に不要なページが割り当てられるのを未然に抑制することができ、外部ストレージ2内の記憶資源(上記ページ)を有効に利用できる。以下、本実施形態をより詳細に説明する。
図2は、本実施例によるストレージシステムの全体構成を示す説明図である。先に図1との対応関係を明らかにする。ホスト10は図1中のホスト3に、メインストレージ100は図1中のメインストレージ1に、外部ストレージ200は図1中の外部ストレージ2に、第1コントローラ110は図1中の第1コントローラ4に、第2コントローラ210は図1中の第2コントローラ5に、対応する。
ストレージシステムは、例えば、少なくとも一つのホスト10と、少なくとも一つのメインストレージ100と、少なくとも一つ以上の外部ストレージ200と、各ストレージ100,200にそれぞれ接続された管理サーバ20とを含んでいる。
ホスト10は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータ、ワークステーション、メインフレーム、サーバコンピュータ等として構成される。ホスト10は、例えば、SAN(Storage Area Network)やLAN(Local Area Network)等の通信ネットワークCN1を介してメインストレージ100に接続されている。
メインストレージ100は、ストレージシステムの中心的役割を果たすメインストレージである。詳細は後述するが、メインストレージ100は、コントローラ110と記憶デバイス搭載部120とを備えて構成可能である。メインストレージ100は、通信ネットワークCN1を介して各ホスト10にそれぞれ接続されている。メインストレージ100は、別の通信ネットワークCN2を介して、他のストレージ200にそれぞれ接続されている。別の通信ネットワークCN2としては、例えば、IPプロトコルを利用するIP−SANやFC(Fibre Channel)プロトコルを利用するFC−SANを利用できる。
外部ストレージ200は、メインストレージ100の外部に位置する外部ストレージである。外部ストレージ200は、コントローラ210と記憶デバイス搭載部220とを備えて構成される。外部ストレージ200は、後述のように、実ボリュームまたはAOUボリュームを、メインストレージ100に提供することができる。
管理サーバ20は、各ストレージ100,200の状態を管理する。管理サーバ20は、例えば、LAN等の通信ネットワークCN3を介して、各ストレージ100,200に接続されている。管理サーバ20は、各ストレージ100,200から情報を収集したり、各ストレージ100,200に指示を与える。なお、管理サーバ20は、ストレージ間の通信ネットワークCN2を介して、各ストレージ100,200と通信できる構成としてもよい。
図3は、ストレージシステムのブロック図である。紙面の都合上、メインストレージ100の構成を中心に示す。ホスト10は、例えば、メインストレージ100との間の通信を行うためのHBA(Host Bus Adapter)11と、メインストレージ100を管理するための管理プログラム12と、を備えることができる。
メインストレージ100は、例えば、ハードディスクデバイスやフラッシュメモリデバイスを備えるディスクシステムとして構成される。これに限らず、メインストレージ100を、高機能化されたインテリジェントスイッチや、複数のストレージを仮想化するための仮想化アプライアンスとして構成してもよい。
上述のように、メインストレージ100は、コントローラ110と記憶デバイス搭載部120とに大別することができる。コントローラ110は、例えば、複数のチャネルアダプタ111と、複数のディスクアダプタ112と、キャッシュメモリ113と、共有メモリ114と、接続制御部115とを備えている。便宜上、チャネルアダプタをCHAと、ディスクアダプタをDKAと、キャッシュメモリをCMと、共有メモリをSMと、接続制御部をSWと、略して表示している。
各CHA111は、ホスト10との間のデータ通信を行うものである。一つまたは複数のCHA111は、ホスト10と通信を行うための通信ポート111T(ターゲットポート)を備えている。また、別の一つまたは複数のCHA111は、外部のストレージ200と通信を行うための通信ポート111Eを備えている。
各CHA111は、それぞれCPUやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト10から受信した各種コマンドを解釈して実行する。各CHA111には、それぞれを識別するためのネットワークアドレス(例えば、IPアドレスやWWN(World Wide Name))が割り当てられている。
各DKA112は、記憶デバイス搭載部120が有するディスクドライブ121との間でデータ授受を行うものである。各DKA112は、CHA111と同様に、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成される。各DKA112は、例えば、CHA111がホスト10から受信したデータを、所定のディスクドライブ121の所定のアドレスに書込む。また、各DKA112は、所定のディスクドライブ121の所定のアドレスからデータを読み出し、ホスト10または外部ストレージ200に送信させる。
ディスクドライブ121との間でデータ入出力を行う場合、各DKA112は、論理的アドレスを物理的アドレスに変換する。各DKA112は、ディスクドライブ121がRAIDに従って管理されている場合、RAID構成に応じたデータアクセスを行う。例えば、各DKA112は、同一のデータを別々のディスクドライブ群(RAIDグループ)にそれぞれ書き込む。あるいは、各DKA112は、パリティを計算して、データ及びパリティをディスクドライブ群に書き込む。
キャッシュメモリ113は、ホスト10または外部のストレージ200から受信したデータを一時的に記憶したり、あるいは、ディスクドライブ121から読み出されたデータを一時的に記憶する。
共有メモリ(制御メモリとも呼ばれる)114には、メインストレージ100の作動に使用するための各種制御情報等が格納される。また、共有メモリ114には、ワーク領域が設定されるほか、後述する各種テーブルも格納される。テーブルの構成は後述する。テーブルの記憶内容の全部または一部を、CHA111,DKA112内にそれぞれコピーすることもできる。
なお、ディスクドライブ121のいずれか1つあるいは複数を、キャッシュ用のディスクとして使用してもよい。また、キャッシュメモリ113と共有メモリ114とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。
接続制御部115は、各CHA111,各DKA112,キャッシュメモリ113及び共有メモリ114を相互に接続させるものである。接続制御部115は、例えば、高速スイッチング動作によってデータ伝送を行うクロスバスイッチやバスとして構成することができる。
記憶デバイス搭載部120は、複数のディスクドライブ121を備えている。以下、記憶デバイス搭載部をHDU(Hard Disk Unit)と略する。記憶デバイスとしては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。
サービスプロセッサ116は、例えば、LAN等の内部通信ネットワークCN4を介して、メインストレージ100内部から各種情報を収集したり、共有メモリ114に制御情報を書き込んだりする。以下、サービスプロセッサをSVPと略す。図中では、SVP116を各CHA111に接続する場合を示しているが、これに限らず、SVP116と各CHA111及び各DKA112とを通信ネットワークCN4を介して接続することもできる。
管理サーバ20は、LAN等の通信ネットワークを介して、メインストレージ100内のSVP116と外部ストレージ200内のSVP230とに、接続されている。管理サーバ20は、各ストレージ100,200を管理するためのソフトウェアである、ストレージ管理部21Aを備える。管理サーバ20は、SVP116を介して、メインストレージ100内の各種情報を収集したり、または、メインストレージ100に各種の指示を与える。
外部ストレージ200は、上述のように、コントローラ210及びHDU220を備えている。外部ストレージ200は、通信ポート211を介して、メインストレージ100に接続されている。外部ストレージ200は、メインストレージ100とほぼ同様の構成を備えることができる。あるいは、外部ストレージ200は、メインストレージ100よりも簡易な構成としてもよい。外部ストレージ200のHDU220には、複数のディスクドライブ221が設けられている。これら各ディスクドライブ221が提供する物理的な記憶領域は、メインストレージ100の内部記憶領域であるかのようにして扱われる場合がある。
図4は、ストレージシステムの機能構成を示す説明図である。第1コントローラ110は、例えば、第1通信処理部101と、IO処理部102と、外部接続制御部103と、AOU制御部104と、外部ストレージ操作部105と、第2通信処理部106とを、備える。
第1通信処理部101は、上位装置としてのホスト10とデータ通信するための機能である。第2通信処理部106は、下位装置としてのディスクドライブ121とデータ通信するための機能である。IO処理部102は、ホスト10から受領したコマンドに従ってデータを読み書きし、その結果を返す機能である。
外部接続制御部103は、後述のように、メインストレージ100内の仮想的な論理ボリューム(外部接続ボリューム)と、外部ストレージ200内の論理ボリューム(外部ボリューム)とを対応付けて制御する。
AOU制御部104は、メインストレージ100内に設けられるAOUボリューム(内部AOUボリューム)を制御する。外部ストレージ操作部105は、外部ストレージ200にフォーマット指示や領域解放指示等を与えるものである。
第2コントローラ210は、例えば、第1通信処理部201と、IO処理部202と、AOU制御部203と、第2通信処理部204とを備える。第1通信処理部201は、上位装置としてのメインストレージ100とデータ通信するための機能である。第2通信処理部204は、ディスクドライブ221とデータ通信するための機能である。IO処理部202は、第1コントローラ110から受信したコマンドに従って、データを読み書きし、その結果を第1コントローラ110に応答する機能である。AOU制御部203は、外部ストレージ200内に設けられるAOUボリュームを制御する。
図5は、ストレージシステムの記憶構造を模式的に示す説明図である。メインストレージ100の記憶構造は、例えば、物理的記憶階層と論理的記憶階層とに大別される。物理的記憶階層は、物理的なディスクPDEV(Physical DEVice)であるディスクドライブ121により構成される。
論理的記憶階層は、複数の階層から構成可能である。一つの論理的階層は、VDEV(Virtual DEVice)/EDEV(Expand virtural DEVice)層である。他の一つの論理的階層は、LDEV(Logical Device)層である。最後の一つの層は、LU(Logical Unit)層である。
VDEV122Vは、例えば、4個1組(3D+1P)、8個1組(7D+1P)等のような複数のディスクドライブ121をグループ化して構成される。グループに属する各ディスクドライブ121がそれぞれ提供する記憶領域が集合して一つのRAID記憶領域が形成される。このRAID記憶領域がVDEV122Vとなる。
全てのVDEVが物理的な記憶領域(PDEV)上に直接生成されるわけではなく、少なくとも一部のVDEVは、仮想的な中間記憶デバイスEDEV122Eとして構成されているEDEV122Eは、外部ストレージ200のLU(Logical Unit)224をマッピングするための受け皿となっている。
LDEV123は、論理ボリュームであり、VDEV122VまたはEDEV122E上に、それぞれ少なくとも一つ以上設けることができる。また複数のVDEV122VまたはEDEV122Eをまとめて一つのLDEV123に対応付けることもできる。
ホスト10がいわゆるオープン系ホストの場合、LDEV123がLU124にマッピングされることにより、ホスト10は、LDEV123を一つの物理的なディスクとして認識する。オープン系のホストは、LUN(Logical Unit Number )や論理ブロックアドレスを指定することにより、所望のLDEV123にアクセスする。なお、メインフレーム系ホストは、LDEV123を直接認識する。
LDEV123のうち仮想的に生成されるAOUボリューム123A(図6参照)は、AOUプール122Pに関連付けられている。以下、AOUプールをプールと略記する場合がある。LDEV123のうち外部ストレージ200内の論理ボリュームに接続される、外部接続ボリューム123E(図6参照)は、EDEV122Eを介して、外部ストレージ200のLU224に関連付けられる。
LU124は、SCSIの論理ユニットとして認識可能なデバイスである。LU124は、ターゲットポート111Tを介してホスト10に接続される。LU124には、少なくとも一つ以上のLDEV123をそれぞれ関連付けることができる。一つのLU124に複数のLDEV123を関連付けることにより、LUサイズを仮想的に拡張することもできる。
なお、CMD(Command Device)と呼ばれる専用デバイスを設けてもよい。CMDは、ホスト10上で稼働するプログラムとメインストレージ100の第1コントローラ110との間で、コマンドやステータスを受け渡すために使用される。
メインストレージ100の外部接続用のイニシエータポート(External Port)111Eには、通信ネットワークCN2を介して、外部ストレージ200が接続されている。外部ストレージ200は、複数のディスクドライブ221と、ディスクドライブ221の提供する記憶領域上に設定されたVDEV222と、VDEV222上に少なくとも一つ以上設定可能なLDEV223とを備えている。LDEV223は、LU224に関連付けられる。この外部ストレージ200の有するLDEV223は、外部接続ボリューム123Eに関連付けられ、外部接続ボリューム123Eに物理的な記憶領域を提供する。
図6を参照する。図6は、各記憶階層間の関係例を示す説明図である。図6中の左端に示すAOUボリューム123Aは、プール122Pに対応付けられている。
プール122Pは、プールボリューム123Pの有する実記憶領域を管理する。ホスト10がAOUボリューム123Aの未使用部分にデータを書き込む場合に、プール122P内で管理されている未使用ページがAOUボリューム123Aに割り当てられる。ホスト10から受信したライトデータは、その割り当てられたページに記憶される。
プール122Pには、種々のボリューム123P(1)〜123P(3)を収容することができる。第1のプールボリューム123P(1)は、メインストレージ100内の実ボリュームである。つまり、第1のプールボリューム123Pは、メインストレージ100の有するディスクドライブ121に基づいて形成されている。第2のプールボリューム123P(2)は、外部ストレージ200内のLDEV223Rを利用している。つまり、第2のプールボリューム123P(2)は、外部ストレージ200内の外部ボリュームに接続された、外部接続ボリュームである。第3のプールボリューム123P(3)は、外部ストレージ200内のAOUボリューム223Aに接続されるボリュームである。つまり、第3のプールボリューム123P(3)も、外部接続ボリュームである。
プール122Pの右隣には、外部接続ボリューム123Eが示されている。外部接続ボリューム123Eは、EDEV122Eを介して、外部ストレージ200内のAOUボリューム223Aに接続されている。外部接続ボリューム123Eへのライトデータは、外部ストレージ200内の外部ボリュームに記憶される。外部接続ボリューム123Eと外部ストレージ200内の外部ボリューム(例えば、図6の例では、223Rや223A)とは、同一サイズに構成することができる。外部接続ボリューム123Eの所定のアドレスを指定するライトデータは、外部ストレージ200内の外部ボリューム(接続先ボリューム)内の対応するアドレスに記憶される。接続先ボリュームがAOUボリューム223Aの場合、そのライトデータは、AOUボリューム223Aに割り当てられたプール222P内のページに記憶される。
図6の右端には、通常の実ボリューム123Rが示されている。実ボリューム123Rは、VDEV122Vを介して、メインストレージ100内のPDEV121に接続されている。
図6の下側に示すように、外部ストレージ200も、実ボリューム223Rと、AOUボリューム223Aとを備える。実ボリューム223Rは、外部ストレージ200内のPDEV221に対応付けられている。AOUボリューム223Aは、プール222P内のページに対応付けられている。プール222Pは、少なくとも一つ以上のプールボリューム223Pを収容する。
ストレージシステム内で使用される各種テーブルや情報の構造例を説明する。図7は、LDEV管理テーブルT10と、ボリューム種別の組合せテーブルT11と、ボリューム状態管理テーブルT12とを示す。各管理テーブルT10〜T12は、第1コントローラ110内の共有メモリ114に記憶されている。
便宜上、図中では、ボリュームをVOLと略記する。ボリュームとは、LDEVのことである。実VOLとは、物理的記憶デバイスPDEVに結びつけられているボリュームである。AOU−VOLとは、プール内に管理されているページが割り当てられることにより形成されているボリュームである。
内部ボリュームとは、メインストレージ100内に存在するボリュームである。外部ボリュームとは、外部ストレージ200内に存在するボリュームである。外部接続ボリュームとは、メインストレージ100内に設けられているが、実際の記憶先が外部ボリューム内に存在するボリュームである。
LDEV管理テーブルT10は、メインストレージ100が直接的にまたは間接的に管理しているボリューム(LDEV)を、管理するテーブルである。テーブルT10は、例えば、LDEV−IDと、サイズと、ボリューム種別と、ボリューム状態と、ボリュームペアと、対応LUと、対応VDEVの項目を備えている。
「LDEV−ID」は、ストレージシステム内の各LDEVを特定するための識別情報である。「サイズ」は、各LDEVのサイズを示す。「ボリューム種別」は、各LDEVの種類を示す。「ボリューム状態」は、各LDEVの状態を示す。LDEVに対して後述のローカルコピーペアやリモートコピーペアが設定されている場合は、「ボリュームペア」にペアを特定するためのペアIDが設定される。
「対応LU」には、そのLDEVに対応付けられているLUを特定するための識別情報が設定される。「対応VDEV」には、そのLDEVに対応付けられているVDEVまたはEDEVを特定するための識別情報が設定される。
ボリューム種別の組合せテーブルT11は、種々の属性を備える各ボリューム(LDEV)の組合せについて示している。ストレージシステム内のボリュームは、データボリュームと、プールボリュームとに大別される。データボリュームとは、LUを介してホスト10に提供されているボリュームである。プールボリュームとは、AOUボリュームに割り当てられるための記憶領域を提供するためのボリュームであり、プールによって管理される。
データボリューム及びプールボリュームのいずれも、実ボリューム及びAOUボリュームから構成可能である。データボリュームは、実ボリュームまたはAOUボリュームから構成できる。プールボリュームも、実ボリュームまたはAOUボリュームから構成することができる。
実ボリューム及びAOUボリュームのいずれも、内部ボリュームまたは外部接続ボリュームのいずれかに大別される。ストレージ内部のPDEVに対応付けられるボリュームは、内部ボリュームである。ストレージ外部のPDEVに対応付けられるボリュームは、外部接続ボリュームである。
ボリューム状態管理テーブルT12は、各ボリュームの状態を管理する。管理テーブルT12は、例えば、使用状態と、フォーマット状態と、シュレッド状態と、書込み状態との、各項目を管理する。
「使用状態」は、そのボリュームが正常に使用されているか否かを示す。そのボリュームが正常に使用されている場合は、「正常」と設定される。そのボリュームが正常に使用されていない場合は、「閉塞」と設定される。
「フォーマット状態」は、そのボリュームのフォーマットに関する状態を示す。そのボリュームが未だフォーマットされていない場合は、「未フォーマット」と設定される。そのボリュームがフォーマット中の場合は、「フォーマット中」と設定される。そのボリュームがフォーマット済の場合は、「フォーマット済」と設定される。
「シュレッド状態」は、そのボリュームのシュレッドに関する状態を示す。シュレッドとは、ボリュームに記憶されているデータに所定のシュレッドデータを複数回書き込むことにより、そのボリュームに記憶されているデータを完全に消去させる処理である。そのボリュームがシュレッド処理中の場合、「シュレッド中」と設定される。そのボリュームがシュレッド中では無い場合、「非シュレッド中」と設定される。
「書込み状態」は、そのボリュームへのデータ書込み状態を示す。そのボリュームにデータが書き込まれている場合、「有り」と設定される。そのボリュームにデータが書き込まれていない場合、「無し」と設定される。
図8は、VDEV/EDEV管理テーブルT13と、デバイスグループ管理テーブルT14と、PDEV管理テーブルT15とを示す説明図である。VDEV/EDEV管理テーブルT13は、中間的な記憶デバイスVDEV及びEDEVを管理するためのテーブルである。管理テーブルT13は、例えば、VDEV−ID/EDEV−IDと、サイズと、種別と、状態と、RAID構成と、対応LDEVと、対応デバイスグループ/対応接続先ボリュームとの、各項目を管理する。
「VDEV−ID/EDEV−ID」は、VDEVやEDEVを識別するための識別情報である。VDEVは、ストレージ内部の物理的記憶領域に基づいてLDEVを生成するために使用される。EDEVは、ストレージ外部の物理的記憶領域に基づいてLDEVを生成するために使用される。
「サイズ」は、VDEVやEDEVの記憶容量を示す。「種別」は、VDEVやEDEVの種別を示す。種別としては、VDEVやEDEVに対応付けられるPDEVの種別(ATAディスク、フラッシュメモリデバイス等)が挙げられる。「状態」とは、VDEVやEDEVが正常に稼働中であるか否かを示す。
「RAID構成」は、そのVDEVやEDEVがどのようなRAID構成を備えているかを示す。「対応LDEV」には、そのVDEVやEDEVが対応付けられている、LDEVを特定するための情報(LDEV−ID)が設定される。「対応デバイスグループ/対応外部ボリューム」は、そのVDEVやEDEVに対応付けられる、デバイスグループまたは外部ボリュームにアクセスするための情報が設定される。VDEVの場合には、そのVDEVに対応するデバイスグループの情報が設定される。EDEVの場合、そのEDEVに接続されている外部ボリューム(接続先ボリューム)にアクセスするための情報が設定される。アクセスするための情報としては、例えば、ポート番号、WWN、LU番号等を挙げることができる。
デバイスグループ管理テーブルT14は、デバイスグループを管理する。デバイスグループとは、VDEVを構成するPDEVのグループである。管理テーブルT14は、例えば、デバイスグループIDと、状態と、RAID構成と、対応VDEVと、対応PDEVとの、各項目を管理する。
「デバイスグループID」は、各デバイスグループを識別するための情報である。「状態」は、そのデバイスグループが正常に動作中であるか否かを示す。「RAID構成」は、そのデバイスグループのRAID構成を示す。「対応VDEV」は、そのデバイスグループが対応付けられているVDEVを特定する。「対応PDEV」は、そのデバイスグループに含まれている、PDEVを特定する。デバイスグループを構成するPDEVを特定するために、PDEV−IDが設定される。
PDEV管理テーブルT15は、PDEVを管理するテーブルである。管理テーブルT15は、例えば、PDEV−IDと、サイズと、状態と、対応VDEVとの、各項目を管理する。
「PDEV−ID」は、各PDEVを識別するための識別情報である。「サイズ」は、そのPDEVの記憶容量を示す。「状態」は、そのPDEVが正常に動作しているか否かを示す。例えば、正常に動作している場合は「正常」と、異常が生じて居る場合は「異常」と、省電力のために停止している場合は「省電力中」と、設定される。「対応VDEV」は、そのPDEVが対応付けられているVDEVを特定する。
図9は、内部AOUボリューム管理テーブルT16と、内部AOUプール管理テーブルT17と、割当てページ管理テーブルT18と、内部AOUページ管理テーブルT19とを示す説明図である。
内部AOUボリューム管理テーブルT16は、ストレージ内部のAOUボリュームを管理するテーブルである。管理テーブルT16は、例えば、AOUプールIDと、割当てページ情報との各項目を管理する。
「AOUプールID」は、そのAOUボリュームが対応付けられるAOUプールを識別するための情報である。「割当てページ情報」は、そのAOUボリュームに対応付けられるページを管理するための情報である。
内部AOUプール管理テーブルT17は、ストレージ内部のAOUプールを管理するテーブルである。管理テーブルT17は、例えば、AOUプールIDと、プールボリューム情報と、AOUボリュームリストと、ページ情報との、各項目を管理する。
「AOUプールID」は、そのAOUプールを識別するための情報を示す。「プールボリューム情報」は、そのAOUプールに含まれるプールボリュームを示す情報である。プールボリューム情報は、「ボリューム数」と「ボリュームリスト」というサブ項目を含んでいる。「ボリューム数」は、そのAOUプールに含まれるプールボリュームの合計数を示す。「ボリュームリスト」は、そのAOUプールに含まれるプールボリュームのリストを示す。
「AOUボリュームリスト」は、そのAOUプールに対応付けられているAOUボリュームのリストを示す。「ページ情報」は、そのAOUプールに含まれている各ページの情報を示す。ページ情報は、例えば、「サイズ」と、「総ページ数」と、「空ページ数」と、「ポインタ」というサブ項目を含んでいる。
「サイズ」は、各ページの記憶サイズを示す。つまり、AOUボリュームの最小構成単位を示す。「総ページ」は、そのAOUプールが有する総ページ数を示す。「空ページ数」は、そのAOUプールの有する未使用のページ数を示す。「ポインタ」は、割当てページ管理テーブル中の該当箇所を指し示す。
割当てページ管理テーブルT18は、AOUプールに登録されている各ページを管理するテーブルである。管理テーブルT18は、例えば、開始アドレスと、割当て状況と、ページIDとの各項目を管理する。
「開始アドレス」は、そのページの開始アドレスを示す。そのページの終了アドレスは、開始アドレスの値にページサイズを加えることにより求めることができる。「割当て状況」は、そのページがAOUボリュームに割り当てられているか否かを示す。そのページがAOUボリュームに割り当てられていない場合は「未」が設定され、そのページがAOUボリュームに割り当てられている場合は「済」が設定される。「ページID」は、そのページを特定するための識別情報である。
内部AOUページ管理テーブルT19は、ストレージ内部のAOUボリュームを構成する各ページを管理するテーブルである。管理テーブルT19は、例えば、ページIDと、ページ状態と、プールボリュームと、AOUボリュームとの各項目を管理する。
「ページID」は、AOUボリュームに割り当てられているページを特定するための識別情報である。「ページ状態」は、そのページの状態を示す。ページ状態は、「割当て状態」と「初期化状態」のサブ項目を備える。図10に示すように、「割当て状態」には、そのページがAOUボリュームに割り当てられている場合に「済」と設定され、そのページがAOUボリュームに割り当てられていない場合に「未」と設定される。「初期化状態」は、そのページが初期化されているか否かを示す。図10に示すように、初期化処理(フォーマット処理)が完了している場合に「済」と設定され、初期化処理が行われていない場合に「未」と設定される。
図9に戻る。「プールボリューム」は、そのページの提供元であるプールボリュームを管理する。プールボリュームは、「LDEV−ID」と、「開始アドレス」とのサブ項目を含む。「LDEV−ID」は、そのページを提供するプールボリュームを識別するための情報である。「開始アドレス」は、そのページがプールボリューム内のどの位置から始まるのかを示す。
「AOUボリューム」は、そのページが割り当てられるAOUボリュームを管理する項目である。AOUボリュームは、「LDEV−ID」と、「開始アドレス」とのサブ項目を含む。「LDEV−ID」は、そのページが割り当てられるAOUボリュームを特定するための情報である。「開始アドレス」は、そのページが割り当てられてる、AOUボリューム内のアドレスを示す。つまり、そのページがストレージ内部のAOUボリュームのどの領域を担当しているかを示す。
図10は、ページ状態の組合せテーブルT20と、ページの状態遷移テーブルT21とを示す説明図である。図9に示す管理テーブルT19について述べたように、ページの割当て状態には「済」と「未」の2つの状態があり、ページの初期化状態にも「済」と「未」の2つの状態がある。従って、ページ割当て状態とページ初期化状態の組合せパターンは、合計4つとなる。
未だ割当てされておらず、かつ、初期化もされていない場合、そのページの状態は「初期化中」となる。未だ割当てされていないが、初期化は完了している場合、そのページの状態は「空き」となる。既に割り当てられているが、未だ初期化されていない状態は、本実施例では、存在しない。本実施例では、後述のように、AOUボリュームに割り当てられるページは、事前に初期化処理される。既に割り当てられており、かつ、初期化処理も終了している場合、そのページの状態は「使用中」となる。
ページの状態遷移テーブルT21には、各ページ状態の関係が示されている。例えば、「000・・・」等の所定のフォーマットパターンをページに書き込んで初期化させる初期化中状態のページは、その初期化処理が完了すると、空き状態に遷移する。空き状態のページがAOUボリュームに割り当てられると、使用中状態に遷移する。使用中状態のページがAOUボリュームへの割当てから解放されると、初期化状態に遷移する。
図11は、プールボリュームを管理するテーブルT22を示す。管理テーブルT22は、AOUプールIDと、AOUプール内に含まれるボリュームのLDEV−IDとを管理する。
図12は、ローカルコピーペアを管理するテーブルT23を示す。ローカルコピーペアとは、同一ストレージ内の複数ボリューム間で、データをコピーすることである。図中、正ボリュームをPVOLと示し、副ボリュームをSVOLと示す。また、ビットマップをBMと示す。
管理テーブルT23は、例えば、ペアIDと、正ボリュームのLDEV−IDと、副ボリュームのLDEV−IDと、コンシステンシグループIDと、ペア状態と、差分ビットマップへのポインタとの、各項目を管理する。
「ペアID」は、ローカルコピーペアを識別するための情報である。「正ボリュームのLDEV−ID」は、正ボリュームを特定するための情報である。「副ボリュームのLDEV−ID」は、副ボリュームを特定するための情報である。「コンシステンシグループID」は、関連性のあるボリュームをグループ化して管理するためのコンシステンシグループを特定する情報である。「ペア状態」は、例えば、「スプリット」や「リシンク」等のような、ローカルコピーペアの状態を示す。「差分ビットマップへのポインタ」は、正ボリュームの記憶内容と副ボリュームの記憶内容との差分を管理するための差分ビットマップを特定する。各コピーペア毎にそれぞれ差分ビットマップが用意される。
図13は、リモートコピーペアを管理するテーブルT24を示す。リモートコピーペアとは、それぞれ異なるストレージに設けられている複数のボリューム間で、データをコピーすることである。
管理テーブルT24は、例えば、ペアIDと、正ボリュームと、副ボリュームと、コンシステンシグループIDと、ペア状態と、差分ビットマップへのポインタとの、各項目を管理する。
「ペアID」は、リモートコピーペアを識別するための情報である。「正ボリューム」は、リモートコピーペアの正ボリュームに関する情報を示し、「DKC−ID」と「LDEV−ID」とのサブ項目を含む。「DKC−ID」は、正ボリュームが存在するストレージを特定するための情報である。「LDEV−ID」は、正ボリュームを特定するための情報である。
「副ボリューム」は、リモートコピーペアの副ボリュームに関する情報を示し、上記同様に、「DKC−ID」と「LDEV−ID」とのサブ項目を含む。「DKC−ID」は、副ボリュームが存在するストレージを特定する情報である。「LDEV−ID」は、副ボリュームを特定する情報である。
「コンシステンシグループID」は、上述の通り、関連性のあるボリューム群をグループ管理するためのコンシステンシグループを特定する情報である。「ペア状態」は、リモートコピーペアの状態を示す。「差分ビットマップへのポインタ」は、正ボリュームの記憶内容と副ボリュームの記憶内容との差分を管理する差分ビットマップを特定するための情報である。各リモートコピーペア毎に差分ビットマップがそれぞれ用意される。
図14は、外部ストレージ200の有する機能を管理するテーブルT25と、その機能の詳細を管理するテーブルT26とを示す。図中では、インターフェースをI/Fと略記する。各テーブルT25,T26は、例えば、ストレージシステムの管理者によって手動で設定される。自動的にテーブルT25,T26の全部または一部を作成可能な場合、そのようにしてもよい。
管理テーブルT25は、DKAC−IDと、機能情報との項目を管理する。「DKC−ID」は、外部ストレージ200をストレージシステム内で特定する情報である。「機能情報」には、その外部ストレージ200が備えている各機能を特定するための値が設定される。
管理テーブルT26は、例えば、機能名と、詳細と、値との各項目を管理する。「機能名」は、外部ストレージ200の有する機能の名称である。機能名としては、例えば、「LDEVフォーマット」、「シュレッド」、「AOU」が挙げられる。
「LDEVフォーマット」とは、ボリュームを初期化させる機能である。LDEVフォーマットの詳細には、例えば、「フォーマットパターン」と、「フォーマット指示I/F」と、「ボリューム全体のフォーマット」と、「範囲指定フォーマット」と、「パターン指定フォーマット」とが含まれる。
「フォーマットパターン」とは、ボリュームをフォーマットするために使用されるデータのパターンである。例えば、「0」または「1」のいずれかのビット列からなるパターンや「0101」のような特定のビット列からなるパターンなどが使用される。「フォーマット指示I/F」とは、メインストレージ100からのフォーマット指示を受け付けるためのI/Fの有無を示す。フォーマット指示I/Fが有る場合、メインストレージ100は、そのフォーマット指示I/Fを介して、外部ストレージ200に外部ストレージ内のボリュームのフォーマットを指示することができる。「ボリューム全体のフォーマット」とは、外部ストレージ200が外部ストレージ内のボリュームの全体をフォーマットできるか否かを示す。「範囲指定フォーマット」は、外部ストレージ200が、外部ストレージ内のボリュームの全体のうち特定の範囲についてのみフォーマット可能か否かを示す。「パターン指定フォーマット」は、外部ストレージ200が、メインストレージ100から指定されたフォーマットパターン(0または1など)で、外部ストレージ内のボリュームをフォーマット可能か否かを示す。
「シュレッド」とは、ボリュームの記憶内容を再現不能なレベルまで消去させる機能である。シュレッドの詳細には、例えば、「シュレッド指示I/F」と、「デフォルトシュレッドパターン」と、「ボリューム全体のシュレッド」と、「範囲指定シュレッド」と、「パターン指定シュレッド」が含まれる。
「シュレッド指示I/F」は、メインストレージ100からのシュレッド指示を受け付けるためのI/Fの有無を示す。シュレッド指示I/Fが有る場合、メインストレージ100は、そのフォーマット指示I/Fを介して、外部ストレージ200に外部ストレージ内のボリュームのシュレッドを指示することができる。
「デフォルトシュレッドパターン」とは、外部ストレージがシュレッド処理を行う場合の、デフォルトのシュレッドパターンを示す。シュレッドパターンとしては、例えばシュレッド時に行う書き込み回数と各書き込みのデータ列パターンで表現される。データ列としては、例えば、ビット0のデータ列、ビット1のデータ列、「0101」のような特定のビット列、ビット0とビット1がランダムに出現するデータ列を挙げることができる。シュレッドパターンとして例えば、書き込み回数が3回、各回のデータ列が「0」→「1」→「0」などになる。
「ボリューム全体のシュレッド」とは、外部ストレージ200が外部ストレージ内のボリュームの全体をシュレッドできるか否かを示す。「範囲指定シュレッド」は、外部ストレージ200が、外部ストレージ内のボリュームの全体のうち特定の範囲についてのみシュレッド可能か否かを示す。「パターン指定シュレッド」とは、外部ストレージ200がメインストレージ100から指定されたシュレッドパターンでシュレッドできるか否かを示す。
「AOU」とは、ライトアクセスに応じてプール内のページを動的に割り当てることにより、仮想的にボリュームを生成する機能である。AOUの詳細には、例えば、「AOU機能」、「ページサイズ」、「領域解放I/F」、「パターン指定領域解放」が含まれる。
「AOU機能」は、外部ストレージ200がAOUボリュームを制御するための機能を備えているか否かを示す。「ページサイズ」は、AOUボリュームを構成する各ページのサイズを示す。「領域解放I/F」は、メインストレージ100からの領域解放指示を受け付けるためのI/Fの有無を示す。領域解放I/Fが有る場合、メインストレージ100は、その領域解放I/Fを介して、外部ストレージ200に外部ストレージ内のAOUボリュームに割り当てられている各ページの解放を指示できる。「パターン指定領域解放」は、領域解放した領域をリードした際に、領域解放時に指定されたデータパターン(「0」や「1」や特定のデータ列など)で応答することをできるか否かを示す。
図15〜図30に基づいてストレージシステムの動作を説明する。なお、以下に述べる各フローチャートは、それぞれの処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、いわゆる当業者であれば、図示されたステップの変更、削除、追加を行うことができるであろう。
図15は、メインストレージ100と外部ストレージ200とを外部接続させるための処理を示す。本処理は、第1コントローラ110により実行される。第1コントローラ110は、ストレージシステム内の各ポートをスキャンすることにより、ストレージシステム内に存在する各ボリュームを検索する(S10)。
第1コントローラ110は、検索された各ボリュームについて、Inquiryコマンドをそれぞれ発行することにより、ボリューム種別等を問い合わせる(S11)。さらに、第1コントローラ110は、「READ
Capacity」コマンドを発行することにより、各ボリュームのサイズをそれぞれ取得する(S12)。
第1コントローラ110は、検索された各ボリュームについて、そのボリューム種別が実ボリュームなのかAOUボリュームなのかを判別する(S13)。第1コントローラ110は、各ボリュームからのInquiryコマンドに対する応答に基づいて、各ボリュームの種別を判定する。実ボリュームであると判定された場合、第1コントローラ110は、EDEV122Eの種別とLDEV123の種別とを、「外部の実ボリューム」であると設定する(S14)。外部の実ボリュームとは、外部ストレージ200内の実ボリュームという意味である。AOUボリュームであると判定された場合、第1コントローラ110は、EDEV122Eの種別とLDEV123の種別とを、「外部のAOUボリューム」であると設定する(S15)。外部のAOUボリュームとは、外部ストレージ200内のAOUボリュームという意味である。
第1コントローラ110は、S12で取得したサイズに基づいて、EDEV122EのサイズとLDEV123のサイズをそれぞれ設定する(S16)。第1コントローラ110は、LDEV123のボリューム状態を「フォーマット済」かつ「書込み無し」に設定する(S17)。
図16は、プールボリュームを設定するための処理を示すフローチャートである。第1コントローラ110は、対象ボリュームが既にプールボリュームとして設定されているか否かを判定する(S20)。対象ボリュームが既にプールボリュームとして使用されている場合(S20:YES)、エラー処理を行う(S26)。エラー処理では、例えば、エラーメッセージを出力させる。
対象ボリュームがプールボリュームとして使用されていない場合(S20:NO)、第1コントローラ110は、さらに、対象ボリュームがLUに対応付けられているか否かを判定する(S21)。対象ボリュームがLUに対応付けられている場合(S21:YES)、第1コントローラ110はエラー処理を行う(S26)。
対象ボリュームがLUに対応付けられていない場合(S21:NO)、第1コントローラ110は、対象ボリュームをフォーマットし(S22)、さらに、対象ボリュームの種別を「プールボリューム」に設定する(S23)。第1コントローラ110は、プールボリューム管理テーブルT22を設定し(S24)、さらに、プール管理テーブルT17を更新させる(S25)。
図17は、フォーマット処理を示すフローチャートである。第1コントローラ110は、対象ボリュームがフォーマット可能な状態か否かを判定する(S30)。対象ボリュームがフォーマット不可な状態(例えばシュレッド中など)の場合(S30:NO)、第1コントローラ110は、エラー処理を行う(S35)。エラー処理では、例えば、エラーメッセージを管理者に向けて出力させる。
対象ボリュームがフォーマット可能な状態の場合(S30:YES)、第1コントローラ110は、ボリューム状態を「フォーマット中(テーブルT21に示す「初期化中」)」に変更させる(S31)。
続けて、第1コントローラ110は、対象ボリュームが内部ボリュームであるか、それとも外部接続ボリュームであるかを判定する(S32)。内部ボリュームであると判定された場合、第1コントローラ110は、その内部ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S33)。
その内部ボリュームが実ボリュームの場合、第1コントローラ110は、図18に示す内部実ボリュームのフォーマット処理を実行する(S40)。その内部ボリュームがAOUボリュームの場合、第1コントローラ110は、図19に示す内部AOUボリュームのフォーマット処理を実行する(S50)。
ところで、対象ボリュームが外部接続ボリュームであると判定された場合(S32)、第1コントローラ110は、その外部接続ボリュームに接続されている外部ボリュームが、実ボリュームなのかAOUボリュームなのかを判定する(S34)。その外部ボリュームが実ボリュームの場合、第1コントローラ110は、図20に示す外部実ボリュームのフォーマット処理を実行する(S60)。その外部ボリュームがAOUボリュームの場合、第1コントローラ110は、図21に示す外部AOUボリュームのフォーマット処理を実行する(S70)。
図18は、ストレージ内部の実ボリュームをフォーマットする処理を示すフローチャートである。第1コントローラ110は、処理対象の内部実ボリュームの全体について、所定のフォーマットパターンを書き込む(S41)。第1コントローラ110は、その内部実ボリュームのフォーマット状態(初期化状態)を、「済」に変更させる(S42)。さらに、第1コントローラ110は、書込み状態を「無し」に変更させる(S43)。
図19は、内部AOUボリュームのフォーマット処理を示すフローチャートである。第1コントローラ110は、内部AOUボリュームに割り当てられているページを解放させて、そのページ状態を「初期化中」に変更させる(S51)。
さらに、第1コントローラ110は、その内部AOUボリュームのフォーマット状態を「済(フォーマット済)」に変更させ(S52)、その内部AOUボリュームの書込み状態を「無し(書き込み無し)」に変更させる(S53)。
ページの初期化は、S51〜S53と非同期で実施される。第1コントローラ110は、AOUプール内に管理されている各ページのうち初期化中に変更されたページ(即ち、解放されたページ)に、所定のフォーマットパターンを書き込む(S54)。第1コントローラ110は、フォーマットパターンの書き込まれたページの状態を「初期化中」から「空き」に変更させる(S55)。
図20は、外部実ボリュームをフォーマット処理するフローチャートである。第1コントローラ110は、テーブルT25,T26に基づいて、外部ストレージ200がフォーマット指示I/Fを備えているか否かを判定する(S61)。
外部ストレージ200がフォーマット指示I/Fを備えている場合(S61:YES)、第1コントローラ110は、外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定フォーマットが可能か否かを判定する(S66)。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合(S66:YES)、第1コントローラ110は、外部ストレージ200に(第2コントローラ210に)、外部実ボリュームについてのフォーマットを指示する(S62)。その指示を出した後、第1コントローラ110は、フォーマット状態を「済」に変更させ(S63)、さらに、書込み状態を「無し」に変更させる(S64)。外部ストレージ200がフォーマット指示I/Fを備えない場合(S61:NO)や、フォーマットパターンが異なりかつパターン指定フォーマットが不可の場合(S66:NO)、第1コントローラ110は、外部ストレージ200にライトコマンドを発行し、フォーマット対象の外部実ボリュームの全体に所定のフォーマットパターンを書き込ませる(S65)。
図21は、外部AOUボリュームのフォーマット処理を示すフローチャートである。第1コントローラ110は、外部ストレージ200がフォーマット指示I/Fを備えているか否かを判定する(S71)。外部ストレージ200がフォーマット指示I/Fを備えている場合(S71:YES)、第1コントローラ110は、外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定フォーマットが可能か否かを判定する(S78)。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合(S78:YES)、第1コントローラ110は、外部ストレージ200に外部AOUボリュームのフォーマットを指示する(S72)。そして、第1コントローラ110は、外部AOUボリュームのフォーマット状態を「済」に変更させ(S73)、さらに、その書込み状態を「無し」に変更させる(S74)。
これに対し、外部ストレージ200がフォーマット指示I/Fを備えていない場合(S71:NO)や、フォーマットパターンが異なりかつパターン指定フォーマットが不可の場合(S78:NO)、第1コントローラ110は、外部ストレージ200が領域解放I/Fを備えているか否かを判定する(S75)。外部ストレージ200が領域解放I/Fを備えている場合(S75:YES)、第1コントローラ110は、外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定の領域解放が可能か否かを判定する(S79)。フォーマットパターンが同一またはパターン指定の領域解放が可能な場合(S79:YES)、第1コントローラ110は、外部ストレージ200に対して、外部AOUボリュームに割り当てられているページの解放を要求する(S76)。そして、第1コントローラ110は、S73,S74を実行する。
ところで、外部ストレージ200が領域解放I/Fをも備えていない場合(S75:NO)や、フォーマットパターンが異なりかつパターン指定の領域解放が不可の場合(S79:NO)、第1コントローラ110は、外部ストレージ200にライトコマンドを発行し、フォーマット対象の外部AOUボリュームの全体に、所定のフォーマットパターンを書き込ませる(S77)。
図22は、シュレッド処理のフローチャートである。シュレッド処理とは、ビット0のデータ列やビット1のデータ列などの特定パターンのデータ列、あるいは、ビット0とビット1とがランダムに出現するデータ列を所定回数だけボリュームに書き込むことにより、ボリュームに記憶されたデータを消去させる処理である。
第1コントローラ110は、対象ボリュームがプールボリュームとして設定されているか否かを判定する(S90)。対象ボリュームがプールボリュームとして設定されている場合(S90:YES)、第1コントローラ110は、エラー処理を実行する(S96)。対象ボリュームがプールボリュームでは無い場合(S90:NO)、第1コントローラ110は、対象ボリュームがシュレッド可能な状態か否かを判定する(S91)。対象ボリュームがシュレッド不可の状態(例えばフォーマット中など)の場合(S91:YES)、第1コントローラ110は、エラー処理を実行する(S96)。
対象ボリュームがシュレッド可能な状態の場合(S91:NO)、第1コントローラ110は、対象ボリュームの状態を「シュレッド中」に変更させ(S92)、対象ボリュームが内部ボリュームなのか外部接続ボリュームなのかを判別する(S93)。
内部ボリュームであると判定された場合、第1コントローラ110は、その内部ボリュームが実ボリュームなのかAOUボリュームなのかを判別する(S94)。その内部ボリュームが実ボリュームであると判定された場合、図23に示す内部実ボリュームのシュレッド処理が実行される(S100)。その内部ボリュームがAOUボリュームであると判定された場合、図24に示す内部AOUボリュームのシュレッド処理が実行される(S110)。
対象ボリュームが外部接続ボリュームであると判定された場合(S93)、第1コントローラ110は、その外部接続ボリュームに対応付けられている外部ボリュームが実ボリュームなのかAOUボリュームなのかを判別する(S95)。その外部ボリュームが実ボリュームであると判定された場合、図25に示す外部実ボリュームのシュレッド処理が実行される(S120)。その外部ボリュームがAOUボリュームであると判定された場合、図26に示す外部AOUボリュームのシュレッド処理が実行される(S130)。
図23は、内部実ボリュームのシュレッド処理を示すフローチャートである。第1コントローラ110は、内部実ボリュームの全体に、所定のシュレッドパターンを書込み(S101)、その内部実ボリュームのシュレッド状態を「済(シュレッド済)」に変更させる(S102)。
図24は、内部AOUボリュームのシュレッド処理を示すフローチャートである。第1コントローラ110は、内部AOUボリュームに割り当てられている各ページに所定のシュレッドパターンを書き込む(S111)。
第1コントローラ110は、最終のシュレッドパターンがフォーマットパターンと一致するか否かを判定する(S112)。最終のシュレッドパターンとは、ボリュームに複数回書き込まれるシュレッドパターンのうち、最後に書き込まれるデータ列のパターンを意味する。内部AOUボリュームに書き込まれる最後のシュレッドパターンが、その内部AOUボリュームのフォーマットパターンと一致する場合(S112:YES)、その内部AOUボリュームに割り当てられていた各ページをフォーマットする必要はない。そこで、第1コントローラ110は、その内部AOUボリュームに割り当てられていた各ページを解放し、そのページ状態を「空き」に変更させる(S113)。第1コントローラ110は、その内部AOUボリュームのシュレッド状態を「済」に変更させる(S114)。
図25は、外部実ボリュームのシュレッド処理を示すフローチャートである。第1コントローラ110は、外部ストレージ200がシュレッド指示I/Fを備えているか否かを判定する(S121)。
外部ストレージ200がシュレッド指示I/Fを備えている場合(S121:YES)、第1コントローラ110は、外部ストレージ200のシュレッドパターンが所定のシュレッドパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定シュレッドが可能か否かを判定する(S125)。シュレッドパターンが同一またはパターン指定シュレッドが可能な場合(S125:YES)、第1コントローラ110は、外部ストレージ200に、外部実ボリュームのシュレッド処理の実行を指示する(S124)。
外部ストレージ200がシュレッド指示I/Fを備えていない場合(S121:NO)や、シュレッドパターンが異なりかつパターン指定シュレッドが不可の場合(S125:NO)、第1コントローラ110は、外部ストレージ200にライトコマンドを発行し、外部実ボリュームの全体に所定のシュレッドパターンを所定回数だけ書き込ませる(S122)。そして、第1コントローラ110は、外部実ボリュームのシュレッド状態を「済」に変更させる(S123)。
図26は、外部AOUボリュームのシュレッド処理を示すフローチャートである。第1コントローラ110は、外部ストレージ200がシュレッド指示I/Fを備えているか否かを判定する(S131)。外部ストレージ200がシュレッド指示I/Fを備えている場合(S131:YES)、第1コントローラ110は、外部ストレージ200のシュレッドパターンが所定のシュレッドパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定シュレッドが可能か否かを判定する(S133)。シュレッドパターンが同一またはパターン指定シュレッドが可能な場合(S133:YES)、第1コントローラ110は、外部ストレージ200に、外部AOUボリュームのシュレッド処理の実行を指示する(S137)。第1コントローラ110は、外部AOUボリュームのシュレッド状態を「済」に変更させる(S136)。
これに対し、外部ストレージ200がシュレッド指示I/Fを備えていない場合(S131:NO)、第1コントローラ110は、外部ストレージ200にライトコマンドを発行し、外部AOUボリュームの全体に所定のシュレッドパターンを所定回数だけ書き込ませる(S132)。
第1コントローラ110は、外部ストレージ200がフォーマット指示I/Fを備えているか否かを判定する(S134)。
外部ストレージ200がフォーマット指示I/Fを備えている場合(S134:YES)、第1コントローラ110は、外部ストレージ200のフォーマットパターンが最終シュレッドパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定フォーマットが可能か否かを判定する(S140)。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合(S140:YES)、第1コントローラ110は、外部ストレージ200に外部AOUボリュームのフォーマット処理の実行を指示する(S135)。第1コントローラ110は、外部AOUボリュームのシュレッド状態を「済」に変更させ(S136)、本処理を終了する。
外部ストレージ200がフォーマット指示I/Fを備えていない場合(S134:NO)や、フォーマットパターンが最終シュレッドパターンと異なりかつパターン指定フォーマットが不可の場合(S140:NO)、第1コントローラ110は、外部ストレージ200が領域解放I/Fを備えているか否かを判定する(S138)。外部ストレージ200が領域解放I/Fを備えていない場合(S138:NO)、第1コントローラ110は、外部ストレージ200のフォーマットパターンが最終シュレッドパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定の領域解放が可能か否かを判定する(S141)。フォーマットパターンが最終シュレッドパターンと同一またはパターン指定の領域解放が可能な場合(S141:YES)、第1コントローラ110は、外部AOUボリュームのシュレッド状態を「済」に変更させて(S136)、本処理を終了する。
外部ストレージ200が領域解放I/Fを備えている場合(S138:YES)や、フォーマットパターンが最終シュレッドパターンと異なりかつパターン指定の領域解放が不可の場合(S141:NO)、第1コントローラ110は、外部ストレージ200に、外部AOUボリュームに割り当てられている各ページの解放を要求する(S139)。第1コントローラ110は、外部AOUボリュームのシュレッド状態を「済」に変更させて(S136)、本処理を終了する。
図27は、データボリュームにライトデータを書き込むためのライト処理を示すフローチャートである。まず最初に、第1コントローラ110は、書込み対象のデータボリュームについて、LDEV管理テーブルT10のボリューム状態を「書込み有り」に設定する(S150)。
次に、第1コントローラ110は、書込み対象データボリュームについてコピーペアが形成されており、かつ、差分管理中であるか否かを判定する(S151)。コピーペア形成中かつ差分管理中の場合(S151:YES)、第1コントローラ110は、差分管理用のビットマップを更新させる(S152)。書込み対象のデータボリュームについてコピーペアが形成されていない場合、または、コピーペアは形成されているが差分管理が停止されている場合の、いずれかの場合(S151:NO)、S152はスキップされる。
第1コントローラ110は、書込み対象データボリュームが内部ボリュームなのか外部接続ボリュームなのかを判定する(S153)。書込み対象データボリュームが内部ボリュームの場合、第1コントローラ110は、書込み対象データボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S154)。
書込み対象データボリュームがAOUボリュームの場合、第1コントローラ110は、書込み対象データボリューム内の書込み対象領域に、ページが割り当てられているか否かを判定する(S155)。
書込み対象領域に未だページが割り当てられていない場合(S155:NO)、第1コントローラ110は、空いているページをプール内から選択して、書込み対象データボリュームの書込み対象領域に割り当てる(S156)。つまり、新たな書込みの場合は、先にページを割り当てる。一方、書込み対象領域にページが既に割り当てられている場合(S155:YES)、S156はスキップされる。
第1コントローラ110は、ホスト10からライトデータを受領し(S157)、キャッシュメモリ113に格納する。次に、第1コントローラ110は、書込み対象領域が、メインストレージ100内に有るのか、それとも外部ストレージ200内に有るのかを判別する(S158)。書込み対象領域とは書込み対象データボリューム(LDEV123A)が内部実ボリュームまたは外部ボリュームの場合はLDEV123Aに対応するVDEV122VまたはEDEV122Eであるし、書込み対象ボリューム(LDEV123)が内部AOUボリュームの場合は対応する割り当てられたプールページが対応するプールボリューム123PのVDEV122VまたはEVDEV122Eである。書込み対象データボリューム123Aが内部AOUボリュームの場合は、対応するページのプールボリューム123Pが内部ボリュームか外部ボリュームかによって処理が異なる。
書込み対象領域がメインストレージ100内に存在する場合、第1コントローラ110は、キャッシュメモリ113からその書込み対象領域に対応するPDEV121にライトデータを書込み(デステージ)、ホスト10に書込み完了を報告する(S159)。書込み対象領域が外部ストレージ200内に存在する場合、第1コントローラ110は、ライトデータを外部ストレージ200に転送して外部ボリュームに書き込ませる(S160)。
一方、書込み対象データボリュームがメインストレージ100内の実ボリュームである場合(S154)、第1コントローラ110は、ホスト10からライトデータを受信し(S161)、そのライトデータをデステージさせる(S162)。
書込み対象データボリュームが外部接続ボリュームの場合(S153)、第1コントローラ110は、ホスト10からライトデータを受領して(S163)、そのライトデータを外部ストレージ200に転送して外部ボリュームに書き込ませる(S164)。
なお、本実施例のように第1コントローラ110がキャッシュメモリ113を備えている場合は、ホスト10から受信したライトデータをキャッシュメモリ113に格納させた後で、ホスト10にライトコマンドの処理完了を報告できる。その後、適当なタイミングで、デステージや外部ストレージ200への書込みを行うことができる。このように、ホスト10から受信したライトコマンドの処理と、デステージや外部ストレージ200への書込みを非同期で行うことができる。これに対し、デステージや外部ストレージ200への書込みを完了させてから、ホスト10にライトコマンドの処理完了を報告することもできる。このような処理を同期処理と呼ぶ。
図28は、ペア形成コピー処理を示すフローチャートである。ペア形成コピー処理とは、ボリューム(正ボリューム)の複製(副ボリューム)を作成するためにコピーペアを形成する正副のボリューム間で初期コピーを完了させる処理である。第1コントローラ110は、副ボリュームの書込み状態を「有り」に設定し(S170)、正ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S171)。
正ボリュームが実ボリュームの場合、第1コントローラ110は、正ボリュームの全体を副ボリュームコピーさせる(S172)。続いて、第1コントローラ110は、副ボリュームへの書込み対象領域(コピー対象領域)がメインストレージ100内に有るのか外部ストレージ200内に有るのかを判定する(S173)。
メインストレージ100内に書込み対象領域が有る場合、第1コントローラ110はデステージする(S174)。外部ストレージ200内に書込み対象領域が有る場合、第1コントローラ110は、コピーデータ(正ボリュームのデータ)を外部ストレージ200に転送して書き込ませる(S175)。
正ボリュームがAOUボリュームの場合(S171)、第1コントローラ110は、副ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S176)。副ボリュームが実ボリュームの場合、第1コントローラ110は、正ボリューム(AOUボリューム)においてページが割り当てられていない領域に対応する、副ボリュームの領域に所定のフォーマットパターンを書き込む(S177)。つまり、正ボリューム内でデータの書き込まれていない領域については、副ボリューム内の対応する領域に「0」を書き込む(フォーマットパターンが0の場合)。
そして、第1コントローラ110は、正ボリュームにおいてページの割り当てられている領域のデータを、副ボリュームにコピーし(S178)、S173に移る。
副ボリュームがAOUボリュームの場合(S176)、第1コントローラ110は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判別する(S179)。副ボリュームが内部ボリュームの場合、つまり、内部AOUボリュームの場合、第1コントローラ110は、正ボリューム(AOUボリューム)内においてページの割り当てられていない領域に対応する、副ボリューム(AOUボリューム)の割当済みページを解放させる(S180)。即ち、第1コントローラ110は、正ボリュームにデータの書き込まれていない領域について、副ボリュームの対応する領域に割り当てられているページをプールに戻す。その後、第1コントローラ110は、S178を実行する。
副ボリュームが外部接続ボリュームの場合(S179)、第1コントローラ110は、外部接続ボリュームに対応する外部ストレージが、領域解放I/Fまたはフォーマット指示I/Fのいずれかを備えているか否か、フォーマットパターンが所定のフォーマットパターンと同一か否か、パターンが同一でない場合はパターン指定フォーマットやパターン指定領域解放が可能か否かを判定する(S181)。
外部ストレージ200が領域解放I/Fまたはフォーマット指示I/Fのいずれかを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合(S181:YES)、第1コントローラ110は、外部ストレージ200に領域解放またはフォーマットのいずれか一つを指示し(S182)、S178に移る。なお、キャッシュメモリ113を利用して、デステージや外部ストレージへのコピーを、ペア形成コピーと非同期で処理可能な点は前記と同様である。同期処理とするか非同期処理とするかは以下も同様であるため、特に言及しない。
図29は、ペアリシンクコピー処理を示すフローチャートである。ペアリシンクコピーとは、ボリュームペアを形成している正ボリュームの記憶内容と副ボリュームの記憶内容とを同期させるために、両ボリューム間に生じた差分を正ボリュームから副ボリュームにコピーする処理である。両ボリューム間に生じる差分は、差分管理用のビットマップ(差分ビットマップ)によって管理される。正ボリュームと副ボリュームとの間に差分が生じた場合、その差分の発生した領域に対応する、差分ビットマップの領域はオン状態に設定される。
第1コントローラ110は、正ボリュームが実ボリュームなのかAOUボリュームなのかを判別する(S191)。正ボリュームが実ボリュームの場合、第1コントローラ110は、差分ビットマップ内のオン領域について、正ボリュームから副ボリュームにデータをコピーさせる(S192)。
そして、第1コントローラ110は、副ボリューム内の書込み対象領域(コピー先対象領域)が内部ボリュームに存在するのか、それとも外部ボリュームに存在するのかを判別する(S193)。コピー先対象領域が内部ボリュームに存在する場合、第1コントローラ110は、デステージを実行する(S194)。コピー先対象領域が外部ボリュームに存在する場合、第1コントローラ110は、コピーデータを外部ストレージ200に転送して書き込ませる(S195)。
正ボリュームがAOUボリュームの場合(S191)、第1コントローラ110は、副ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S196)。副ボリュームが実ボリュームの場合、第1コントローラ110は、差分ビットマップがオンになっている領域であって、かつ、正ボリュームにページが割り当てられていない領域、つまり前回ボリューム間でデータを同期させた以降に正ボリュームでページが解放された領域(以下、本処理において所定領域と呼ぶ)について、副ボリュームに所定のフォーマットパターンを書き込ませる(S197)。その後、S192に移る。
副ボリュームがAOUボリュームの場合(S196)、第1コントローラ110は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する(S198)。副ボリュームが内部ボリュームの場合、第1コントローラ110は、所定領域について、副ボリュームに割り当てられているページを解放させる(S199)。
副ボリュームが外部接続ボリュームの場合、第1コントローラ110は、外部ストレージ200が領域解放I/Fを備えているか否か、領域解放I/Fを備えている場合は外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する(S200)。外部ストレージ200が領域解放I/Fを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合(S200:YES)、第1コントローラ110は、外部ストレージ200に、副ボリュームに割り当てられているページの解放を指示する(S201)。領域解放指示には、ボリュームを識別する情報(LUN等)と解放する領域のボリューム内の範囲(先頭LBAとサイズ等)が含まれる。外部ストレージ200は、外部ストレージ200が管理するAOUページのうち、領域解放指示された範囲に全て含まれるページを解放する。領域解放指示された範囲が外部ストレージ200の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。そして、第1コントローラ110はS192に移る。一方、外部ストレージ200が領域解放I/Fを備えていない場合(S200:NO)、第1コントローラ110はS192に移る。
図30は、ペアリストアコピー処理を示すフローチャートである。ペアリストアコピー処理とは、正ボリュームの記憶内容を復元させるために、両ボリューム間に生じた差分を副ボリュームから正ボリュームにコピーする処理である。
第1コントローラ110は、副ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S211)。副ボリュームが実ボリュームの場合、第1コントローラ110は、差分ビットマップ内のオン領域について、副ボリュームから正ボリュームにデータをコピーさせる(S212)。
そして、第1コントローラ110は、正ボリュームの書込み対象領域(コピー先対象領域)が内部ボリュームに有るのか、外部ボリュームに有るのかを判定する(S213)。コピー先対象領域が内部ボリュームにある場合、デステージが実施される(S214)。コピー先対象領域が外部ボリュームにある場合、コピーデータが外部ストレージ200に転送されて書き込まれる(S215)。
コピー元となる副ボリュームがAOUボリュームの場合(S211)、第1コントローラ110は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する(S216)。副ボリュームが外部AOUボリュームの場合、S212に移る。
副ボリュームが内部AOUボリュームの場合、第1コントローラ110は、コピー先となる正ボリュームが実ボリュームなのか、AOUボリュームなのかを判定する(S217)。正ボリュームが実ボリュームの場合、第1コントローラ110は、差分ビットマップがオンの領域であって、かつ、副ボリュームにページが割り当てられていない領域(以下、本処理において所定領域)について、正ボリュームに所定のフォーマットパターンを書き込ませる(S218)。
正ボリュームがAOUボリュームの場合(S217)、第1コントローラ110は、正ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する(S218)。正ボリュームが内部AOUボリュームの場合、第1コントローラ110は、所定領域について正ボリュームに割当済みのページを解放させる(S220)。そして、第1コントローラ110は、S212に移る。
正ボリュームが外部AOUボリュームの場合、第1コントローラ110は、外部ストレージ200が領域解放I/Fを備えているか否か、領域解放I/Fを備えている場合は外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する(S221)。外部ストレージ200が領域解放I/Fを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合(S221:YES)、第1コントローラ110は、所定領域についての領域解放を外部ストレージ200に指示し(S222)、S212に移る。領域解放指示を受けた外部ストレージ200の処理はペアリシンクコピー処理と同様であるので省略する。外部ストレージ200が領域解放I/Fを備えていない場合(S221:NO)、S212に移る。
以上詳述した通り、本実施例によれば、メインストレージ100内の外部接続ボリュームに外部ストレージ200内の外部AOUボリュームを対応付けることにより、ストレージシステム内の記憶資源を有効に利用できる。
さらに、本実施例では、フォーマットコマンド、シュレッドコマンド、ペア形成コピーコマンド、ペアリシンクコマンド、ペアリストアコマンドが発行される場合に、できるだけ外部ボリュームへのライトアクセスが低減するように、コマンドを変換して外部ストレージ200に指示する。
例えば、外部ストレージ200がフォーマット指示I/Fや領域解放I/Fを備えている場合、それらのI/Fを利用するコマンドを発行することにより、外部ボリュームの全体についてのライト処理が発生するのを未然に防止できる。この結果、外部ボリュームがAOUボリュームの場合に、不要なページが割り当てられるのを防止することができ、ページを有効に使用することができる。
図31〜図45に基づいて、本発明の第2実施例を説明する。本実施例を含む以下の実施例は、上述した第1実施例の変形例に相当する。そこで、以下の各実施例では第1実施例との相違点を中心に説明する。本実施例では、内部ボリュームに関する更新と外部ボリュームに関する更新とを、第1コントローラ110内で管理する。
図31は、本実施例によるストレージシステムの要部を示す説明図である。第1コントローラ110は、内部ボリュームの更新を管理するための更新管理テーブルT30Aと、外部ボリュームの更新を管理するための更新管理テーブルT30Bとを備える。以下、両テーブルを区別しない場合、更新管理テーブルT30と呼ぶ。
図32は、更新管理テーブルT30は、例えば、更新管理サイズと更新情報との各項目を管理する。「更新管理サイズ」とは、ボリュームの更新を管理する単位である。更新管理サイズは、ページサイズと同一に設定するのが好ましい。しかし、これに限らず、ページサイズと異なるサイズで更新の有無を管理する構成でもよい。「更新情報」は、各更新管理領域毎に、その状態を管理する項目である。
更新情報の詳細はテーブルT31に示されている。テーブルT30,T31は、更新された領域を管理するための更新ビットマップに該当する。テーブルT31には、更新管理領域IDと、書込み状態と、フォーマット状態との各項目が含まれる。「更新管理領域ID」とは、更新を管理する各領域を識別するための情報である。例えば、更新管理サイズとページサイズが同一の場合、各ボリュームを構成する総ページ数に等しい更新管理領域が設定される。
「書込み状態」は、その更新管理領域についての書込みの有無を示す。「フォーマット状態」は、その更新管理領域についてフォーマットがされているか否かを示す。
図33は、本実施例によるVDEV/EDEV管理テーブルT32を示す。図8に示すテーブルT13との相違は、その右端に示すように「フォーマットパターン」という項目を新たに備える点にある。「フォーマットパターン」は、各VDEVやEDEVのフォーマットパターンを管理する項目である。
図34は、本実施例による外部接続設定処理のフローチャートである。図15に示すフローチャートと異なり、第1コントローラ110は、Inquiryコマンドを発行することにより、各ボリュームの種別、ページサイズ、フォーマットパターンを各ボリュームに問い合わせる(S11A)。即ち、本実施例のInquiryコマンドは、第1実施例のそれよりも拡張されている。さらに、第1コントローラ110は、AOUボリュームの場合に(S13)、S11Aで取得したページサイズやフォーマットパターンを、テーブルT32に登録させる(S18)。
図35は、本実施例による外部接続ボリュームへのライト処理を示すフローチャートである。第1コントローラ110は、ホスト10からライトデータを受領すると、そのライトデータをキャッシュメモリ113に格納させる(S300)。
第1コントローラ110は、更新管理テーブルT30Bを参照することにより、既に更新されている領域内での上書きであるか否かを判定する(S301)。上書きの場合(S301:YES)、第1コントローラ110は、外部ストレージ200にライトコマンドを発行し、外部ボリュームにライトデータを書き込ませる(S302)。
これに対し、上書きではない場合(S301:NO)、つまり、初めて更新される領域の場合、第1コントローラ110は、更新情報テーブルT31内の更新対象領域について、その書込み状態を「有り」に変更する(S303)。
さらに、第1コントローラ110は、テーブルT31に基づいて、書込み対象領域(更新対象領域)がフォーマット済であるか否かを判定する(S304)。書込み対象領域がフォーマット済の場合(S304:YES)、S302に移る。書込み対象領域がフォーマットされていない場合(S304:NO)、第1コントローラ110は、更新管理サイズの領域において、ライトデータ以外の部分をフォーマットパターンで埋めて、更新対象領域のフォーマット状態を「フォーマット済」に変更してS302に移る。なお更新情報T31で書込み状態のみ管理し、フォーマット状態を管理しない実施例も可能である。その場合、フォーマットは書き込み契機で行うため、書き込み状態が「無し」領域は必ず未フォーマット状態になる。図35では、ステップS304がスキップされる(必ずフォーマット状態が「未」のフローになる)ことと、S305のフォーマット状態の変更処理がなくなることが異なる。更新情報T31で書き込み状態と別にフォーマット状態を管理することで、書込みとは非同期のフォーマット処理(書込みとは独立して書込みより前にフォーマット処理)を行うことができるようになる。非同期のフォーマット処理については後述する。
図36は、S305の処理を模式的に示す。更新管理サイズ内の所定位置にライトデータが格納される。ライトデータの前後に存在する空白領域には、テーブルT32で管理されているフォーマットパターンが書き込まれる。つまり、本実施例では、外部ストレージ200によるフォーマット処理を信頼しておらず、メインストレージ100内で更新管理サイズ単位でデータを作成する。
図37は、外部接続ボリュームからデータを読み出す処理を示す。第1コントローラ110は、テーブルT30B,T31を参照することにより、リード対象領域が既に更新されているか否かを判定する(S310)。
リード対象領域が更新されている場合(S310:YES)、第1コントローラ110は、外部ストレージ200にリードコマンドを発行して、外部ボリュームからデータを読出し、読み出したデータをホスト10に送信する(S311)。
リード対象領域が未更新の場合(S310:NO)、第1コントローラ110は、外部ボリュームにアクセスすることなく(外部ストレージにリードコマンドを発行することなく)、外部接続ボリュームに対応付けられているフォーマットパターンを、ホスト10に送信する(S312)。
図38は、外部AOUボリュームのフォーマット処理を示す。図21に示すフローチャートとの相違は、最後に、第1コントローラ110は、外部AOUボリュームに接続されている外部接続ボリュームの全体について、テーブルT31内の書込み状態を「無し」に変更させる(S320)。
図39は、外部実ボリュームを非同期でフォーマットする処理を示す。第1コントローラ110は、外部実ボリュームの各更新管理領域(更新管理サイズを有する領域)毎に、それぞれフォーマットパターンを設定する(S330)。第1コントローラ110は、フォーマットパターンの格納されたデータを、外部ストレージ200に送信して、外部実ボリュームに書き込ませる(S331)。
図40は、内部実ボリュームへのライト処理を示すフローチャートである。図35との相違は、外部ストレージ200へのライトデータ転送(図35のS302)に代えて、デステージさせる点である(S340)。図35の外部ボリュームへのライト処理と同様に、更新情報Tでフォーマット状態を管理しない場合は、ステップS304がスキップされ(必ずフォーマット状態が「未」のフローになる)、S305のフォーマット状態の変更処理がなくなる。
図41は、内部実ボリュームからデータを読み出す処理を示す。図37との相違は、外部ボリュームからのデータ読出しに代えて(図37のS311)、リード対象データをステージングし、ホスト10に送信する点である(S350)。つまり、内部実ボリュームに対応するPDEV121からデータを読み出してキャッシュメモリ113に格納し、キャッシュメモリ113に格納されたデータをホスト10に送信する。
図42は、内部実ボリュームのフォーマット処理を示すフローチャートである。図18に示すフローチャートとの相違は、最後に、第1コントローラ110は、内部実ボリュームの全体について、更新情報テーブルT31の書込み状態を「無し」に変更させる点である(S360)。
図43は、内部実ボリュームを非同期でフォーマット処理する様子を示すフローチャートである。図39に示すフローチャートとの相違は、フォーマットパターンの設定された更新管理領域データを外部ストレージ200に転送して書き込ませるのではなく(図39のS331)、デステージする点である(S331A)。
図44は、ペア形成コピー処理を示すフローチャートである。リシンクコピー処理も形成コピー処理に類似するため、形成コピー処理との相違点のみ説明する。またリストアコピー処理は、実施例1で説明したようにリシンクコピー処理の正ボリュームと副ボリュームを逆転させた処理に相当するため、説明を省略する。第1コントローラ110は、LDEV管理テーブルT10において、副ボリュームの書込み状態を「有り」に設定する(S370)。さらに、第1コントローラ110は、副ボリュームの更新情報テーブルT31ボリューム全体の書込み状態を「無し」、フォーマット状態を「未」に設定する(S371)。なお、リシンクコピー処理の場合は、正ボリューム内の書き込み無し領域について、副ボリュームの更新情報を書込み状態を「無し」、フォーマット状態を「未」に変更する。
第1コントローラ110は、正ボリュームが実ボリュームなのか、AOUボリュームなのかを判定する(S372)。正ボリュームがAOUボリュームの場合、図28で述べたS176〜S182のステップを適宜実行する(S373)。第1コントローラ110は、正ボリュームにおいてデータの書き込まれた領域について、副ボリュームの更新情報テーブルT31の書込み状態を「有り(書込み有り)」に変更する(S374)。その後、結合子4を介して、後述のS383に移る(図45)。
正ボリュームが実ボリュームの場合、第1コントローラ110は、副ボリュームが実ボリュームなのかAOUボリュームなのかを判定する(S375)。副ボリュームが実ボリュームの場合、後述のS383に移る(図45)。なお、副ボリュームが外部の実ボリュームの場合第1コントローラ110は、正ボリュームにデータが書き込まれていない領域について、フォーマットパターンを副ボリュームに書き込んでもよい。フォーマットパターンを書き込むことで、メインストレージ100を介さずに外部ボリュームをアクセスした場合でも所定のフォーマットパターンをリードすることができる。
副ボリュームがAOUボリュームの場合、第1コントローラ110は、副ボリュームが内部ボリュームなのか、外部接続ボリュームなのかを判定する(S377)。副ボリュームが内部AOUボリュームの場合、第1コントローラ110は、正ボリュームにデータが書き込まれていない領域について、副ボリュームに割り当てられているページを解放させる(S378)。
副ボリュームが外部接続ボリュームの場合、第1コントローラ110は、外部ストレージ200がフォーマット指示I/Fまたは領域解放I/Fを備えているか否か、フォーマットI/Fまたは領域解放I/Fを備えている場合は外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定のフォーマット化領域解放が可能か否かを判定する(S379)。外部ストレージ200がフォーマットI/Fまたは領域解放I/Fを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定が可能な場合(S379:YES)、第1コントローラ110は、フォーマットまたは領域の解放を外部ストレージ200に指示する(S380)。外部ストレージ200が領域解放I/Fを備えていない場合(S379:NO)、S376に移る。なお、リシンクコピー処理の場合は、正ボリュームが未書込みの領域について、副ボリュームの外部ストレージ200へ領域解放指示を行う。
図45は、図44に続くフローチャートである。第1コントローラ110は、正ボリュームにデータの書き込まれている領域について、副ボリュームの更新情報テーブルT31の書込み状態を「有り」に変更させる(S381)。第1コントローラ110は、正ボリュームにデータの書き込まれている領域について、正ボリュームのデータを副ボリュームにコピーさせ、副ボリュームの更新情報テーブルT31のフォーマット状態を「済み」に変更する。(S382)。リシンクコピー処理では、正ボリュームの書込み「有り」の領域のうち、差分ビットマップ内のオン領域について、副ボリュームへのコピーおよび副ボリュームの更新情報テーブルT31の変更を行う。なお、差分ビットマップの管理単位が更新情報(更新ビットマップ)の管理単位より大きい場合で、差分ビットマップがONの領域内に正ボリュームの書込み「無し」の領域が含まれる場合、差分ビットマップがON領域内の書込み「有り」の領域のみ副ボリュームへのコピーおよび更新情報の変更を行えばよい。
第1コントローラ110は、副ボリュームにデータを書き込むべき領域(コピー先対象領域)が、内部ボリュームに有るのか、それとも外部ボリュームにあるのかを判定する(S383)。コピー先対象領域が内部ボリュームに存在する場合、第1コントローラ110は、デステージを実行する(S384)。コピー先対象領域が外部ボリュームに存在する場合、第1コントローラ110は、外部ストレージ200にコピーデータを送信しコピーデータを外部ボリュームに書き込ませる(S385)。
このように構成される本実施例も、前記第1実施例と同様の効果を奏する。さらに、本実施例では、ボリュームコピーペアの正ボリューム(リストアでは副ボリューム)が実ボリュームであっても、副ボリュームへのコピー処理(リストアでは正ボリュームへのコピー処理)で副ボリュームへ不要なページが割り当てられるの防止することができ、ページを有効に使用することができる。さらに、本実施例では、更新管理サイズ毎にライトデータの周辺をフォーマットパターンで埋めて、外部ボリュームに書き込ませる。従って、外部ストレージ200が外部ボリュームのフォーマット処理を実行しているか否かを問わずに、データを外部ボリュームに正常に格納させることができる。即ち、本実施例では、外部ストレージ200が、メインストレージ100と同様のパターンでフォーマット処理を実行できない場合でも、メインストレージ100のフォーマット処理と同様のフォーマット処理を外部ボリュームに対して実施可能である。また本実施例では、フォーマット指示を受けた時点でフォーマットパターンを書き込むのではなく、ホストからのライト契機で更新管理領域内のライトデータ以外の部分をフォーマットパターンで埋めることで、フォーマット指示時の完了応答を高速にすることができる。
本実施例では、外部ボリュームに接続されているボリューム(外部接続ボリューム)にデータが書き込まれていない領域について、ホスト10からデータの読出しを要求された場合に、外部ボリュームにアクセスすることなく、フォーマットパターンを応答することができる。従って、データ未書込み領域に関する応答パターンが、メインストレージ100と外部ストレージ200とで異なる場合でも、メインストレージ100と同様の応答をホスト10に返すことができる。
図46に基づいて、第3実施例を説明する。本実施例では、管理サーバ20からの指示に応じて、LDEV管理テーブルT10に情報を設定する。図46は、本実施例による、メインストレージ100と外部ストレージ200とを外部接続させるための処理のフローチャートである。
第1コントローラ110は、ストレージシステム内の各ポートをスキャンすることにより、ストレージシステム内に存在する各ボリュームを検索する(S390)。第1コントローラ110は、検索された各ボリュームについて、Inquiryコマンドをそれぞれ発行することにより、ボリューム種別等を問い合わせる(S391)。さらに、第1コントローラ110は、「READ
Capacity」コマンドを発行することにより、各ボリュームのサイズをそれぞれ取得する(S392)。
第1コントローラ110は、各ボリュームから収集された情報を管理サーバ20に送信する(S392)。ストレージシステムの管理者は、管理サーバ20を介して、外部ボリュームの種別やマッピング先のボリュームを指定する。
第1コントローラ110は、管理サーバ20から外部ボリュームの種別やマッピング先についての指示を受領すると(S394)、各ボリューム毎に、そのボリューム種別が実ボリュームなのかAOUボリュームなのかを判別する(S395)。
実ボリュームの場合、第1コントローラ110は、EDEV122Eの種別とLDEV123の種別とを、「外部実ボリューム」であると設定する(S396)。AOUボリュームの場合、第1コントローラ110は、EDEV122Eの種別とLDEV123の種別とを、「外部AOUボリューム」であると設定する(S397)。第1コントローラ110は、S392で取得したサイズに基づいて、EDEV122EのサイズとLDEV123のサイズをそれぞれ設定する(S398)。
このように構成される本実施例も第1実施例と同様の効果を奏する。
図47〜図53に基づいて第4実施例を説明する。本実施例では、ボリュームに書き込まれるデータが所定のフォーマットパターンに一致するか否かを事前に判定し、フォーマットパターンに一致するライトデータは、実際に書き込まずにページを解放させる。
図47は、データボリュームにライトデータを書き込む処理を示す。本フローチャートと図27に示すフローチャートとの相違は、ホスト10からライトデータを受信した後(S157)、第1コントローラ110は、そのライトデータを内部AOUボリュームに書き込むために新規ページの割当てが必要か否かを判定する(S500)。
新ページの割当てが必要な場合(S500:YES)、第1コントローラ110は、ライトデータが所定のフォーマットパターンに一致するか否かを判定する(S501)。ライトデータとフォーマットパターンとが一致する場合(S501:YES)、第1コントローラ110は、S500で割り当てられた新規ページを解放させる(S502)。そして、第1コントローラ110は、S158に移る。実施例2に本実施例を適用した場合は、外部AOUボリュームに対しても、フォーマットパターンに一致するライトデータは、実際に書き込まずにページを解放させることができる。実施例2の更新情報でボリュームの更新情報のうち書込み状態が「無し」の領域へのホストライトがフォーマットパターンと一致する場合は、第1コントローラ110内のキャッシュメモリに格納されたライトデータの属性を、ダーティ状態からクリーン状態に変更させ、書込み状態を「無し」のままにする。ここで、ダーティ状態とは、デステージや外部ストレージへのデータ転送が完了していない状態である。クリーン状態とは、デステージや外部ストレージへのデータ転送の完了している状態である。外部ストレージ200内へ転送される前にの第1コントローラ110内のキャッシュメモリに記憶されたデータの属性をクリーン状態に変更することにより、そのデータが外部ストレージ200へ転送されないため、格納するためのページが外部ストレージで割り当てられるのを防止できる。
なお、新規ページの割当てが不要な場合(S500:NO)、S501,S502はスキップされてS158に移る。ライトデータとフォーマットパターンとが不一致の場合(S501:NO)、S502はスキップされて、S158に移る。
図48は、内部AOUボリュームのページをホスト10からのコマンドと非同期で解放させる処理を示すフローチャートである。第1コントローラ110は、内部AOUボリュームにページが割り当てられている領域からデータを読出し(S510)、読み出されたデータと所定のフォーマットパターンとが一致するか否かを判定する(S511)。
内部AOUボリュームから読み出されたデータとフォーマットパターンとが一致する場合(S511:YES)、第1コントローラ110は、フォーマットパターンと同一のデータを記憶するページを内部AOUボリュームへの割り当てから解放させる(S512)。内部AOUボリュームから読み出されたデータとフォーマットパターンとが不一致の場合(S511:NO)、S512はスキップされて終了する。
図49は、外部AOUボリュームのページをホスト10からのコマンドと非同期で解放させる処理を示すフローチャートである。第1コントローラ110は、図14に示すテーブルT25,T26を参照することにより、外部AOUボリュームを備える外部ストレージ200が領域解放I/Fを備えるか否か、領域解放I/Fを備えている場合は外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する(S520)。
外部ストレージ200が領域解放I/Fを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定領域解放が可能な場合(S520:YES)、第1コントローラ110は、外部AOUボリュームにページが割り当てられている領域からデータを読出し(S521)、その読み出されたデータとフォーマットパターンとが一致するか否かを判定する(S522)。
読み出されたデータとフォーマットパターンとが一致する場合(S522:YES)、第1コントローラ110は、フォーマットパターンに一致するデータを記憶しているページの解放を外部ストレージ200に指示する(S523)。なお、領域解放指示された範囲が外部ストレージ200の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。外部ストレージが管理するページ単位もしくはページサイズの倍数単位でデータ比較処理および解放指示処理を行うのが望ましい。
外部ストレージ200が領域解放I/Fを備えない場合やフォーマットパターンが異なりかつパターン指定領域解放が不可の場合(S520:NO)、及び、外部AOUボリュームから読み出されたデータとフォーマットパターンとが不一致の場合(S522:NO)、本処理は終了する。ホストからのコマンドと非同期に外部AOUボリュームのページ解放処理をデータ比較をメインストレージ100が主体となって行う説明を行ったが、外部ストレージ200がAOUボリュームの非同期データ比較およびページ解放機能を有する場合は、外部ストレージ200が主体となって解放処理を行っても良い。その場合、メインストレージ100や管理サーバからの指示で外部ストレージ200が処理を行っても良いし、外部ストレージ200が自動的に処理を行っても良い。
図50は、ペア形成コピー処理を示すフローチャートである。図28に示すフローチャートとの相違は、正ボリュームから副ボリュームにデータをコピーさせた後で(S172またはS178)、データ比較処理を行う点である(S550)。リシンクコピー処理やリストアコピー処理でもデータコピー後に、ボリュームの種別や外部ストレージ200の機能に応じてデータ比較処理を行い、領域解放処理を行う点は同じであるので説明を省略する。
図51は、図50中に示すデータ比較処理(S550)の詳細を示す。第1コントローラ110は、副ボリュームが実ボリュームなのか、それともAOUボリュームなのかを判定する(S551)。副ボリュームが実ボリュームであると判定された場合、図50のフローチャートに戻る。
副ボリュームがAOUボリュームであると判定された場合、第1コントローラ110は、その副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する(S552)。
副ボリュームが内部ボリュームの場合、即ち、副ボリュームが内部AOUボリュームの場合、第1コントローラ110は、正ボリュームから副ボリュームにコピーされたコピーデータと所定のフォーマットパターンとが一致するか否かを判定する(S553)。
コピーデータとフォーマットパターンとが一致する場合(S553:YES)、第1コントローラ110は、コピーデータを記憶するために副ボリューム(内部AOUボリューム)に割り当てられたページを解放させる(S554)。なお、コピーデータが新規割当ページではなくかつページの一部のみの場合は、ページ内に有効なデータが含まれている場合があるため、そのページを解放しない。コピーデータとフォーマットパターンとが不一致の場合、S52のフローチャートに戻る。
副ボリュームが外部接続ボリュームの場合、第1コントローラ110は、外部ストレージ200が領域解放I/Fを備えているか否か、外部ストレージ200のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ200がパターン指定の領域解放が可能か否かを判定する(S555)。外部ストレージ200が領域解放I/Fを備えており、フォーマットパターンが一致するパターン指定領域解放が可能な場合(S555:YES)、第1コントローラ110は、コピーデータとフォーマットパターンとが一致するか否かを判定する(S556)。
コピーデータとフォーマットパターンとが一致する場合(S556:YES)、第1コントローラ110は、そのコピーデータを記憶するために副ボリュームに割り当てられた領域の解放を、外部ストレージに指示する(S557)。なお、領域解放指示された範囲が外部ストレージ200の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。
S557では、領域解放指示とともに第1コントローラ110内のキャッシュメモリに格納されたコピーデータの属性を、ダーティ状態からクリーン状態に変更させる。外部ストレージ200内へ転送される前にの第1コントローラ内のキャッシュメモリに記憶されたコピーデータの属性をクリーン状態に変更することにより、そのコピーデータを格納するためのページが外部AOUボリュームに割り当てられるのを防止できる。
なお、外部ストレージ200が領域解放I/Fを備えない場合(S555:NO)や、フォーマットパターンが異なりかつパターン指定の領域解放が不可の場合、及び、コピーデータがフォーマットパターンとが不一致の場合(S556:NO)、図50のフローチャートに戻る。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、ホストからのライトデータやコピーデータがフォーマットパターンと一致するか否かを事前に判定し、一致する場合にページを解放させたり、外部ストレージにデータ転送しない。従って、無駄なページがAOUボリュームに割り当てられるのをより効果的に防止することができる。なお、本実施例では主として第1実施例に適用する場合を説明したが、第2実施例や第3実施例にも適用可能である。
図52,図53に基づいて第5実施例を説明する。本実施例では、メインストレージ100に代えて、仮想化アプライアンス50を使用する。つまり、本実施例では、ストレージシステム内の記憶資源を仮想化するための専用コンピュータ装置50を用いる。
図52は、本実施例のストレージシステムを示す。仮想化アプライアンス50は、ターゲットポート51T及び通信ネットワークCN1を介して、ホスト10に接続される。仮想化アプライアンス50は、イニシエータポート51I及び通信ネットワークCN2を介して、外部ストレージ200に接続される。さらに、仮想化アプライアンス50は、通信ネットワークCN3を介して、管理サーバ20に接続されている。
仮想化アプライアンス50は、例えば、マッピング機能52と、キャッシュメモリ53とを備えている。図53は、本実施例による記憶構造を示す。仮想化アプライアンス50は、LU層と、LDEV層と、EDEV層とを備える。マッピング機能52は、LDEV124EとEDEV122Eとの対応付けを管理する。なお、図53では仮想化アプライアンス50内のLDEV124と外部ストレージ200内のLU224が1対1に対応している図になっているが、1対1に限定するものではない。例えば外部ストレージ200の複数のLU224を仮想化アプライアンス50内で連結して1つのLDEV124にすることや、LU224を仮想化アプライアンス50内でプールボリュームとして使用するなどの構成もとりうる。
このように構成される本実施例も第1実施例と同様の効果を奏する。
図54,図55に基づいて第6実施例を説明する。本実施例では、メインストレージ100に代えて、仮想化スイッチ60を使用する。
図54は、本実施例のストレージシステムを示す。仮想化スイッチ60は、ターゲットポート61T及び通信ネットワークCN1を介して、ホスト10に接続される。仮想化スイッチ60は、イニシエータポート61I及び通信ネットワークCN2を介して、外部ストレージ200に接続される。さらに、仮想化スイッチ60は、通信ネットワークCN3を介して、管理サーバ20に接続されている。仮想化スイッチ60は、マッピング機能62を備えているが、キャッシュメモリは備えていない。
図55は、本実施例による記憶構造を示す。仮想化スイッチ60は、LU層と、LDEV層と、EDEV層とを備える。マッピング機能62は、LDEV124EとEDEV122Eとの対応付けを管理する。図55では仮想化スイッチ60内のLDEV124と外部ストレージ200内のLU224が1対1に対応している図になっているが、実施例5と同様に1対1に限定するものではない。
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
本発明の実施形態の概要を示す説明図である。 ストレージシステムの全体構成を示す説明図である。 ストレージシステムのブロック図である。 各コントローラの機能を示す説明図である。 ストレージシステムの記憶構造を示す説明図である。 各記憶構造の各階層の関係を示す説明図である。 LDEV管理テーブル等を示す説明図である。 VDEV/EDEV管理テーブル等を示す説明図である。 内部AOUボリューム管理テーブル等を示す説明図である。 ページ状態の組合せテーブル等を示す説明図である。 プールボリューム管理テーブルを示す説明図である。 ローカルコピーペア管理テーブルを示す説明図である。 リモートコピーペア管理テーブルを示す説明図である。 外部ストレージの有する機能を管理するテーブルを示す説明図である。 外部接続を設定する処理のフローチャートである。 プールボリュームを設定する処理のフローチャートである。 フォーマット処理のフローチャートである。 内部実ボリュームのフォーマット処理を示すフローチャートである。 内部AOUボリュームのフォーマット処理を示すフローチャートである。 外部実ボリュームのフォーマット処理を示すフローチャートである。 外部AOUボリュームのフォーマット処理を示すフローチャートである。 シュレッド処理のフローチャートである。 内部実ボリュームのシュレッド処理を示すフローチャートである。 内部AOUボリュームのシュレッド処理を示すフローチャートである。 外部実ボリュームのシュレッド処理を示すフローチャートである。 外部AOUボリュームのシュレッド処理を示すフローチャートである。 データボリュームへのライト処理を示すフローチャートである。 ペア形成コピー処理を示すフローチャートである。 ペアリシンクコピー処理を示すフローチャートである。 ペアリストアコピー処理を示すフローチャートである。 第2実施例に係るストレージシステムのコントローラ構成を示す説明図である。 更新管理テーブルを示す説明図である。 VDEV/EDEV管理テーブルを示す説明図である。 外部接続を設定するための処理を示すフローチャートである。 外部接続ボリュームへのライト処理を示すフローチャートである。 更新管理サイズ内のライトデータ以外の部分にフォーマットパターンを埋め込む様子を示す説明図である。 外部ボリュームからデータを読み出す処理を示すフローチャートである。 外部AOUボリュームのフォーマット処理を示すフローチャートである。 外部実ボリュームのフォーマット処理を示すフローチャートである。 内部実ボリュームへのライト処理を示すフローチャートである。 内部実ボリュームからデータを読み出す処理を示すフローチャートである。 内部実ボリュームのフォーマット処理を示すフローチャートである。 内部実ボリュームのフォーマット処理を示すフローチャートである。 ペア形成コピー処理のフローチャートである。 図44に続くフローチャートである。 第3実施例に係るストレージシステムで実行される、外部接続設定処理を示すフローチャートである。 第4実施例に係るストレージシステムで実行される、データボリュームへのライト処理を示すフローチャートである。 内部AOUボリュームのページを解放させる処理を示すフローチャートである。 外部AOUボリュームのページを解放させる処理を示すフローチャートである。 ペア形成コピー処理のフローチャートである。 データ比較処理のフローチャートである。 第5実施例に係るストレージシステムの全体図である。 ストレージシステムの記憶構造を示す説明図である。 第6実施例に係るストレージシステムの全体図である。 ストレージシステムの記憶構造を示す説明図である。
符号の説明
1:メインストレージ、2:外部ストレージ、3:ホスト、4:第1コントローラ、4A:IO処理機能、4B:AOU制御機能、4C:外部接続制御機能、4D:コマンド変換機能、4E,4F:更新ビットマップ、5:第2コントローラ、5A:IO処理機能、5B:制御機能、6:AOUボリューム、7:外部接続ボリューム、8:AOUボリューム、PL1,PL2:AOUプール、10:ホスト、11:HBA、12:管理プログラム、20:管理サーバ、21A:ストレージ管理部、50:仮想化アプライアンス、52:マッピング機能、53:キャッシュメモリ、60:仮想化スイッチ、62:マッピング機能、100:メインストレージ、101:第1通信処理部、102:IO処理部、103:外部接続制御部、104:AOU制御部、105:外部ストレージ操作部、106:第2通信処理部、110:第1コントローラ、111:チャネルアダプタ、112:ディスクアダプタ、113:キャッシュメモリ、114:共有メモリ、115:接続制御部、116:サービスプロセッサ、120:記憶デバイス搭載部、121:ディスクドライブ、122P:プール、123A:AOUボリューム、123E:外部接続ボリューム、123P:プールボリューム、123R:実ボリューム、200:外部ストレージ、201:第1通信処理部、202:IO処理部、203:AOU制御部、204:第2通信処理部、210:第2コントローラ、220:記憶デバイス搭載部、221:ディスクドライブ、222P:プール、223A:AOUボリューム、223P:プールボリューム、223R:実ボリューム

Claims (15)

  1. 第1記憶制御装置と第2記憶制御装置とを通信可能に接続してなるストレージシステムであって、
    前記第1記憶制御装置に仮想的に設けられる第1ボリュームと、
    前記第2記憶制御装置に仮想的に設けられる第2ボリュームであって、その記憶空間が前記第1ボリュームの記憶空間に対応付けられており、かつ、前記第1ボリュームへのアクセス要求に応じてアクセスされる第2ボリュームと、
    前記第2ボリュームへのライトアクセス要求に応じて前記第2ボリュームに割り当てられるための実記憶領域を保持するプール部と、
    前記第1記憶制御装置に設けられ、前記第1ボリュームへのアクセス要求に応じて前記第2ボリュームにコマンドを発行し、前記第2ボリュームにデータを読み書きする第1制御部と、
    前記第2記憶制御装置に設けられ、前記第1制御部からのコマンドに応じて前記第2ボリュームにデータを入出力する第2制御部であって、前記第1制御部からのライトアクセス要求に応じて前記プール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を前記第2ボリュームに割り当てる第2制御部と、を備え、
    前記第1制御部は、前記第1ボリュームについて第1の所定コマンドを受信した場合に、前記第2ボリュームへのライトアクセスの頻度が相対的に低下するように、前記第1の所定コマンドを第2の所定コマンドに変換して前記第2制御部に送信する、ストレージシステム。
  2. 前記第1制御部は、前記第1ボリュームの有する各領域の使用状態を管理するための第1管理情報と、前記第2ボリュームの有する各領域の使用状態を管理するための第2管理情報とを備えている、請求項1に記載のストレージシステム。
  3. 前記第1管理情報及び前記第2管理情報は、前記各領域にデータが書き込まれているか否かを示す情報を含んでいる、請求項2に記載のストレージシステム。
  4. 前記第1制御部は、要求元からのリードアクセス要求に応じて前記第2ボリュームからデータを読み出す場合、前記第1管理情報及び前記第2管理情報に基づいて、リード対象として指定された領域が前記第1ボリューム内で更新されているか否かを判定し、前記リード対象領域が前記第2ボリューム内で更新されていないと判定した場合、前記第2ボリュームにアクセスせずに所定のフォーマットデータを前記要求元に返信する、請求項3に記載のストレージシステム。
  5. 前記第1の所定コマンドは、前記第1ボリュームについてフォーマット処理を指示するためのフォーマットコマンドであり、
    前記第2の所定コマンドは、前記第2ボリュームについてフォーマット処理の実行を指示するための別のフォーマットコマンド、または、前記第2ボリュームに割り当てられている前記実記憶領域を前記第2ボリュームへの割当てから解放させるための解放コマンドのいずれか一方である、請求項1に記載のストレージシステム。
  6. 前記第1の所定コマンドは、前記第1ボリュームについてシュレッド処理を指示するためのシュレッドコマンドであり、
    前記第2の所定コマンドは、前記第2ボリュームについてシュレッド処理の実行を指示するための別のシュレッドコマンド、または、前記第2ボリュームに割り当てられている前記実記憶領域に所定パターンを書き込むライトコマンドのいずれか一方である、請求項1に記載のストレージシステム。
  7. 前記第1の所定コマンドは、前記第1記憶制御装置に設けられる第3ボリュームと前記第1ボリュームとでコピーペアを形成させて、前記第3ボリュームから前記第1ボリュームに初期コピーを行わせるためのコマンドであり、
    前記第2の所定コマンドは、前記第2ボリュームに割り当てられている前記実記憶領域を前記第2ボリュームへの割当てから解放させるための解放コマンドと、前記第1ボリュームにデータが記憶されている領域についてのみ前記第3ボリュームから前記第1ボリュームにデータを格納させるライトコマンドとを含んでいる、請求項1に記載のストレージシステム。
  8. 前記第1の所定コマンドは、前記第1記憶制御装置に設けられる第3ボリュームと前記第1ボリュームとがコピーペアを形成する場合において、前記第3ボリュームの記憶内容と前記第1ボリュームの記憶内容とを同期させるためのペアリシンクあるいはペアリストアコマンドであり、
    前記第2の所定コマンドは、前記第3ボリュームにデータの書き込まれていない未使用領域について、前記第2ボリュームに割り当てられている前記実記憶領域を前記第2ボリュームへの割当てから解放させるための解放コマンドと、前記第1ボリュームでデータが更新されている領域について前記第1ボリュームから前記第2ボリュームにデータを格納させるライトコマンドとを含んでいる、請求項1に記載のストレージシステム。
  9. 前記第2制御部が前記第2の所定コマンドを処理できない場合、前記第1制御部は、前記第1の所定コマンドについて予め用意されている代替コマンドを前記第2制御部に送信する、請求項1に記載のストレージシステム
  10. 前記第2制御部が前記第2の所定コマンドを処理できない場合、前記第1制御部は、予め用意されている所定データを前記第2ボリュームに書き込ませるためのライトコマンドを前記第2制御部に送信する、請求項5または請求項6に記載のストレージシステム。
  11. 前記第1制御部は、前記第2ボリュームの構成を問い合わせるためのInquiryコマンドを発行することができ、前記第2制御部からの前記Inquiryコマンドの応答に基づいて、前記第1ボリュームと前記第2ボリュームとの関係を設定する、請求項1に記載のストレージシステム。
  12. 前記第1制御部は、前記第1ボリュームにデータが書き込まれた場合に、予め設定されているサイズの管理領域単位で前記第2ボリュームに前記データを書き込ませるように構成されており、前記管理領域内の前記データ以外の部分について、予め設定されているフォーマットデータを格納させる、請求項1に記載のストレージシステム。
  13. 前記第1制御部は、前記第1ボリュームにデータを書き込ませる場合に、前記データが予め設定されているフォーマットデータと同一であるか否かを判定し、前記データが前記フォーマットデータと同一の場合には、前記データの属性を破棄可能な状態に設定させる、請求項1に記載のストレージシステム。
  14. 第1記憶制御装置と第2記憶制御装置とを通信可能に接続してなるストレージシステムを制御するための方法であって、
    前記ストレージシステムは、前記第1記憶制御装置に仮想的に設けられる第1ボリュームと、前記第2記憶制御装置に仮想的に設けられる第2ボリュームであって、その記憶空間が前記第1ボリュームの記憶空間に対応付けられており、かつ、前記第1ボリュームへのアクセス要求に応じてアクセスされる第2ボリュームと、前記第2ボリュームへのライトアクセス要求に応じて前記第2ボリュームに割り当てられるための実記憶領域を保持するプール部と、を備えており、
    前記第1ボリュームへのアクセス要求に応じて前記第2ボリュームにアクセスを要求し、前記第2ボリュームにデータを読み書きするステップと、
    前記第2ボリュームへのアクセス要求のうち未だデータの書き込まれていない未書込み領域についてのライトアクセス要求に応じて、前記プール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を前記第2ボリュームに割り当てさせるステップと、
    前記第1ボリュームについて第1の所定コマンドを受信した場合に、前記第2ボリュームへのライトアクセスの頻度が相対的に低下するように、前記第1の所定コマンドを第2の所定コマンドに変換して前記第2制御部に送信させるステップと、
    を含むストレージシステムの制御方法。
  15. 第1記憶制御装置と第2記憶制御装置とを通信可能に接続してなるストレージシステムであって、
    前記第1記憶制御装置に仮想的に設けられる第1ボリュームと、
    前記第2記憶制御装置に仮想的に設けられる第2ボリュームであって、その記憶空間が前記第1ボリュームの記憶空間に対応付けられており、かつ、前記第1ボリュームへのアクセス要求に応じてアクセスされる第2ボリュームと、
    前記第2記憶制御装置に設けられ、前記第2ボリュームへのライトアクセス要求に応じて前記第2ボリュームに割り当てられるための複数の実記憶領域を保持するプール部とを、備えており、
    前記第1記憶制御装置から前記第2記憶制御装置に、前記第2ボリュームに関する情報を問合せ、第2記憶制御装置から返信される問合せ結果に基づいて、前記第1ボリュームと前記第2ボリュームとの関係を前記第1記憶制御装置内に設定させるステップと、
    前記第1ボリュームへライトアクセス要求が発行された場合に、所定の管理領域単位内のライトデータ以外の部分について所定のフォーマットデータを格納させて、前記第2ボリュームに前記管理領域単位でライトアクセス要求を発行させるステップと、
    前記第2ボリュームへのライトアクセス要求が発行された場合に、前記ライトアクセス要求された前記管理領域に対応する領域に、前記複数の実記憶領域のうち未使用の実記憶領域を前記第2ボリュームに割り当てさせ、その割り当てられる実記憶領域に前記ライトデータを格納させるステップと、
    前記第1ボリュームをフォーマット処理させるためのフォーマットコマンドを受信した場合において、
    (1)前記第2記憶制御装置が、前記第1記憶制御装置からの指示に応じて、前記第2ボリュームをフォーマット処理できる場合は、前記第2ボリュームに関する前記フォーマット処理を前記第2記憶制御装置に実行させるためのフォーマットコマンドを、前記第1記憶制御装置から前記第2記憶制御装置に送信させるステップと、
    (2)前記第2記憶制御装置が前記第1記憶制御装置からの指示に応じて前記第2ボリュームをフォーマット処理できない場合であって、かつ、前記第2記憶制御装置が、前記第1記憶制御装置からの指示に応じて、前記第2ボリュームに割り当てられている前記実記憶領域を前記第2ボリュームへの割当てから解放できる場合は、前記実記憶領域の解放を指示するための解放コマンドを前記第1記憶制御装置から前記第2記憶制御装置に送信させるステップと、
    (3)前記第2記憶制御装置が、前記第1記憶制御装置からの指示に応じて前記第2ボリュームをフォーマット処理することができず、かつ、前記第1記憶制御装置からの指示に応じて前記第2ボリュームに割り当てられている前記実記憶領域を解放させることができない場合は、前記第1記憶制御装置から前記第2記憶制御装置に所定のフォーマットデータを送信させ、前記第2ボリュームに前記所定のフォーマットデータを書き込ませるステップと、
    を実行する、ストレージシステム。
JP2008222601A 2008-08-29 2008-08-29 ストレージシステム及びストレージシステムの制御方法 Expired - Fee Related JP5107833B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008222601A JP5107833B2 (ja) 2008-08-29 2008-08-29 ストレージシステム及びストレージシステムの制御方法
US12/289,064 US8090923B2 (en) 2008-08-29 2008-10-20 Storage system and control method for the same
US13/308,115 US8635424B2 (en) 2008-08-29 2011-11-30 Storage system and control method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008222601A JP5107833B2 (ja) 2008-08-29 2008-08-29 ストレージシステム及びストレージシステムの制御方法

Publications (3)

Publication Number Publication Date
JP2010055557A true JP2010055557A (ja) 2010-03-11
JP2010055557A5 JP2010055557A5 (ja) 2011-03-31
JP5107833B2 JP5107833B2 (ja) 2012-12-26

Family

ID=41727017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008222601A Expired - Fee Related JP5107833B2 (ja) 2008-08-29 2008-08-29 ストレージシステム及びストレージシステムの制御方法

Country Status (2)

Country Link
US (2) US8090923B2 (ja)
JP (1) JP5107833B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012049711A1 (en) 2010-10-14 2012-04-19 Hitachi, Ltd. Data migration system and data migration method
JPWO2011129006A1 (ja) * 2010-04-15 2013-07-11 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
KR20140005280A (ko) * 2011-03-11 2014-01-14 마이크로소프트 코포레이션 가상 디스크 저장 기술
JPWO2016194199A1 (ja) * 2015-06-04 2017-10-12 株式会社日立製作所 ストレージ装置
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9990141B1 (en) 2016-12-01 2018-06-05 Fujitsu Limited Storage control device, storage system and method
JP2021043757A (ja) * 2019-09-12 2021-03-18 富士通株式会社 ストレージシステム、ストレージ制御装置および割当解放プログラム

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134922B2 (en) 2009-03-12 2015-09-15 Vmware, Inc. System and method for allocating datastores for virtual machines
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
WO2010111694A2 (en) * 2009-03-27 2010-09-30 Sandforce Inc. Storage system logical block address de-allocation management and data hardening
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
WO2011125132A1 (en) * 2010-04-09 2011-10-13 Hitachi, Ltd. Information processing device and data shredding method for avoiding multiple shredding of a same data block
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9047351B2 (en) * 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
KR20120096212A (ko) * 2011-02-22 2012-08-30 삼성전자주식회사 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8839275B1 (en) 2011-06-06 2014-09-16 Proximal Data, Inc. Method for intercepting input/output requests and responses
US9323668B2 (en) * 2011-06-10 2016-04-26 International Business Machines Corporation Deconfigure storage class memory command
US9058275B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US9116788B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Using extended asynchronous data mover indirect data address words
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9021179B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Store storage class memory information command
US9058243B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Releasing blocks of storage class memory
US9021180B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Clearing blocks of storage class memory
US9116789B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Chaining move specification blocks
US8595460B2 (en) 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
US8775773B2 (en) 2011-08-26 2014-07-08 Vmware, Inc. Object storage system
US8775774B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Management system and methods for object storage system
US8677085B2 (en) 2011-08-29 2014-03-18 Vmware, Inc. Virtual machine snapshotting in object storage system
US8769174B2 (en) 2011-08-29 2014-07-01 Vmware, Inc. Method of balancing workloads in object storage system
JP2013114624A (ja) * 2011-11-30 2013-06-10 Hitachi Ltd ストレージシステム及びプール容量縮小の制御方法
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9442859B1 (en) 2012-06-17 2016-09-13 Samsung Electronics Co., Ltd. Method for asynchronous population of data caches used with mass storage devices
US9104552B1 (en) 2012-06-23 2015-08-11 Samsung Electronics Co., Ltd. Method for the use of shadow ghost lists to prevent excessive wear on FLASH based cache devices
JP5953433B2 (ja) * 2013-06-14 2016-07-20 株式会社日立製作所 ストレージ管理計算機及びストレージ管理方法
IN2014CH01331A (ja) 2014-03-13 2015-09-18 Infosys Ltd
WO2015162634A1 (en) * 2014-04-21 2015-10-29 Hitachi, Ltd. Information storage system
JP6525507B2 (ja) * 2014-05-14 2019-06-05 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
WO2016067388A1 (ja) 2014-10-29 2016-05-06 株式会社日立製作所 ストレージ装置およびストレージシステム
US20160266802A1 (en) * 2015-03-10 2016-09-15 Kabushiki Kaisha Toshiba Storage device, memory system and method of managing data
CN110737483B (zh) * 2019-10-12 2023-02-24 重庆邮电大学 一种基于Windows USB MassStorage类的信令、数据传输方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031929A (ja) * 2003-07-11 2005-02-03 Hitachi Ltd サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005107645A (ja) * 2003-09-29 2005-04-21 Hitachi Ltd 記憶システム及び記憶制御装置
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
JP2007034877A (ja) * 2005-07-29 2007-02-08 Hitachi Ltd ストレージシステム、フォーマット方法及びコンピュータプログラム
JP2007199922A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd 記憶システム及びそのデータ復元方法
JP2007257246A (ja) * 2006-03-23 2007-10-04 Hitachi Ltd 記憶システム及びデータ管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809285A (en) * 1995-12-21 1998-09-15 Compaq Computer Corporation Computer system having a virtual drive array controller
US6880052B2 (en) * 2002-03-26 2005-04-12 Hewlett-Packard Development Company, Lp Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
JP4646574B2 (ja) * 2004-08-30 2011-03-09 株式会社日立製作所 データ処理システム
JP4945118B2 (ja) * 2005-11-14 2012-06-06 株式会社日立製作所 記憶容量を効率的に使用する計算機システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031929A (ja) * 2003-07-11 2005-02-03 Hitachi Ltd サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005107645A (ja) * 2003-09-29 2005-04-21 Hitachi Ltd 記憶システム及び記憶制御装置
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
JP2007034877A (ja) * 2005-07-29 2007-02-08 Hitachi Ltd ストレージシステム、フォーマット方法及びコンピュータプログラム
JP2007199922A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd 記憶システム及びそのデータ復元方法
JP2007257246A (ja) * 2006-03-23 2007-10-04 Hitachi Ltd 記憶システム及びデータ管理方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011129006A1 (ja) * 2010-04-15 2013-07-11 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
US8984248B2 (en) 2010-10-14 2015-03-17 Hitachi, Ltd. Data migration system and data migration method
WO2012049711A1 (en) 2010-10-14 2012-04-19 Hitachi, Ltd. Data migration system and data migration method
US8645653B2 (en) 2010-10-14 2014-02-04 Hitachi, Ltd Data migration system and data migration method
JP2017045477A (ja) * 2011-03-11 2017-03-02 マイクロソフト テクノロジー ライセンシング,エルエルシー 仮想ディスクストレージ技術
JP2014512593A (ja) * 2011-03-11 2014-05-22 マイクロソフト コーポレーション 仮想ディスクストレージ技術
KR20140005280A (ko) * 2011-03-11 2014-01-14 마이크로소프트 코포레이션 가상 디스크 저장 기술
KR102047558B1 (ko) * 2011-03-11 2019-11-21 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 가상 디스크 저장 기술
US11614873B2 (en) 2011-03-11 2023-03-28 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
JPWO2016194199A1 (ja) * 2015-06-04 2017-10-12 株式会社日立製作所 ストレージ装置
US9990141B1 (en) 2016-12-01 2018-06-05 Fujitsu Limited Storage control device, storage system and method
JP2021043757A (ja) * 2019-09-12 2021-03-18 富士通株式会社 ストレージシステム、ストレージ制御装置および割当解放プログラム
JP7283317B2 (ja) 2019-09-12 2023-05-30 富士通株式会社 ストレージシステム、ストレージ制御装置および割当解放プログラム

Also Published As

Publication number Publication date
US8090923B2 (en) 2012-01-03
JP5107833B2 (ja) 2012-12-26
US20100058021A1 (en) 2010-03-04
US8635424B2 (en) 2014-01-21
US20120072691A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
JP5107833B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP5538362B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US8402234B2 (en) Storage system and storage migration method
JP5438827B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US7673107B2 (en) Storage system and storage control device
US7415593B2 (en) Storage control system
JP5057656B2 (ja) ストレージシステム及びストレージシステムの運用方法
EP2399190B1 (en) Storage system and method for operating storage system
JP4648751B2 (ja) 記憶制御システム及び記憶制御方法
US7900013B2 (en) Method and computer for determining storage device
US20080104343A1 (en) Storage control device and data migration method for storage control device
JP2008134712A (ja) ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
WO2010084522A1 (en) Storage system and method for controlling the same
JP7054001B2 (ja) 情報処理システム、管理装置および制御方法
JP2006031694A (ja) 1次ミラーシャドウを有するストレージシステム
JP2003345514A (ja) 計算機システム
JP4783086B2 (ja) ストレージシステム、ストレージアクセス制限方法、及びコンピュータプログラム
JP2012198639A (ja) 制御装置、制御方法およびストレージ装置
JP2005165444A (ja) ディスクアレイ装置、及びディスクアレイ装置の制御方法
JP5052257B2 (ja) 記憶システム及び記憶制御装置
EP1632842B1 (en) Storage device system
JP2015501959A (ja) ストレージシステムおよび記憶制御方法
JP2020027433A (ja) 情報システム
JP2011141900A (ja) ストレージシステム及びストレージシステムの運用方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees