JP4723921B2 - 記憶制御装置及びその制御方法 - Google Patents

記憶制御装置及びその制御方法 Download PDF

Info

Publication number
JP4723921B2
JP4723921B2 JP2005172092A JP2005172092A JP4723921B2 JP 4723921 B2 JP4723921 B2 JP 4723921B2 JP 2005172092 A JP2005172092 A JP 2005172092A JP 2005172092 A JP2005172092 A JP 2005172092A JP 4723921 B2 JP4723921 B2 JP 4723921B2
Authority
JP
Japan
Prior art keywords
data
pool area
storage
address
real volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005172092A
Other languages
English (en)
Other versions
JP2006350418A (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 JP2005172092A priority Critical patent/JP4723921B2/ja
Priority to US11/214,002 priority patent/US7617371B2/en
Priority to DE602006010481T priority patent/DE602006010481D1/de
Priority to EP06250942A priority patent/EP1736860B1/en
Priority to CNA2006100648058A priority patent/CN1881167A/zh
Publication of JP2006350418A publication Critical patent/JP2006350418A/ja
Priority to US12/568,949 priority patent/US20100017577A1/en
Application granted granted Critical
Publication of JP4723921B2 publication Critical patent/JP4723921B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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)
  • 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)

Description

本発明は、記憶制御装置及びその制御方法に関し、特に記憶領域を仮想化して上位装置に提供する記憶装置に適用して好適なものである。
近年、ストレージ分野では、記憶管理の簡便化や負荷の分散化を図るため、バーチャリゼーションと呼ばれる技術が研究及び提唱されている。
かかるバーチャリゼーションの例として、従来、記憶装置とその記憶装置を使用するホスト装置とを含むSAN(Storage Area Network)に管理サーバを接続し、この管理サーバによってSANに接続された各記憶装置の記憶領域を仮想化して一括管理する方式が提案されている。この方式では、ホスト装置から各記憶装置に対するデータ入出力要求を管理サーバにおいて受け、当該管理サーバがかかる各記憶装置の記憶領域を各ホスト装置にそれぞれ割り当てる。
またSAN内の記憶容量の有効利用を目的として、1つのホスト装置で記憶容量が不足した際に、他のホスト装置に割り当てた未使用の記憶容量を開放し、これを記憶容量が不足したホスト装置に再割当てする技術も提案されている(特許文献1参照)。
ただし、この技術を採用するに際しては管理サーバを導入する必要があり、また将来の必要に備えて予め記憶容量を多めに用意する必要がある。さらに記憶容量の再割当てを行った場合には、ホスト装置側のデータベースや当該ホスト装置に搭載される当該記憶装置内の記憶領域を管理するためのソフトウェア(以下、これを記憶領域管理ソフトウェアと呼ぶ)の再初期化や再設定等を行う必要が生じる問題もある。
特開2005−031929号公報
近年、技術の進歩等により、ハードディスクドライブの性能が日々向上し、その一方で、記憶装置における単位記憶容量当たりのコストは日々下がっている。従って、記憶装置の使用者にとっては、将来的に必要となるであろう記憶容量を予め用意しておくよりも、記憶容量の使用状態を監視しながら最小限のハードディスクドライブを段階的に増設していったほうが、性能的及びコスト的には有利である。
しかしながら、記憶装置にハードディスクドライブを増設するためには記憶装置に対する作業だけでなく、上述のようにデータベースや記憶領域管理ソフトウェアの再初期化、再設定などのホスト装置に対する作業も必要となる。このためハードディスクドライブを増設するインターバルを短くしてハードディスクドライブの増設回数を増やすことは、記憶装置の管理者にとって大きな負担となる問題がある。
本発明は以上の点を考慮してなされたもので、記憶容量への投資を抑えながら、記憶容量の拡張を容易化させ得る記憶制御装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、上位装置と、データを記憶する記憶デバイス部との間のデータの入出力を制御する記憶制御装置において、前記上位装置から与えられるデータ入出力要求に応じて、対応するデータを前記記憶デバイス部に読み書きするアダプタ部と、外部操作により設定された、前記記憶デバイス部の記憶容量でなる実記憶容量よりも大きい記憶容量の仮想ボリュームの定義内容と、前記実記憶容量を分割してなる実ボリューム及びプール領域の少なくとも一方の定義内容とを含むシステム構成情報を記憶するメモリとを備え、前記メモリは、前記プール領域に格納された前記データを管理する管理テーブルをも記憶し、前記アダプタ部は、前記メモリに格納された前記システム構成情報に基づいて、前記上位装置からの記憶容量確認に対して前記仮想ボリュームの記憶容量を応答する一方、当該システム構成情報に基づいて、前記上位装置から与えられる前記実ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記記憶デバイス部の当該アドレス位置に読み書きすると共に、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記プール領域に読み書きし、前記データを前記プール領域に書き込むときに、前記プール領域における当該データの書き込み位置を前記管理テーブルに登録し、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、前記管理テーブルを参照して、対応する前記データを前記プール領域に読み書きし、前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求のうちのデータ書込み要求に応じて、対応する前記データを前記記憶デバイス部の前記プール領域に当該プール領域の先頭アドレスから順番に書き込み、前記実ボリュームが拡張された場合、前記プール領域に格納されている前記データのうちの当該実ボリュームの拡張された部分を書き込み位置として指定された前記データを、前記プール領域から前記実ボリュームに移動させ、前記プール領域から前記実ボリュームにデータを移動させている最中に前記データを更新するためのデータ書き込み要求が前記上位装置から与えられた場合、前記データの移動状況を参照して、移動前であれば移動前のアドレス位置に、対応する前記データを書き込み、移動後であれば移動後のアドレス位置に、対応する前記データを書き込み、前記プール領域から前記実ボリュームに移動させ終えた後は、移動させたデータに関しての書き込み位置の情報を前記管理テーブルから削除することを特徴とする。
この結果、この記憶制御装置では、当初より上位装置に仮想ボリュームの記憶容量を記憶デバイス部の記憶容量として通知するため、記憶デバイス部の記憶容量を仮想ボリュームの記憶容量にまで拡張する場合に、これを上位装置に意識させずに行うことができる。またその間、実ボリューム以外の仮想ボリューム内のアドレスを指定したデータ入出力要求に対しては、記憶デバイス部の記憶容量を拡張するまでのバッファとしてプール領域を使用するため、実ボリューム以外の仮想ボリューム内のアドレスを指定したデータ入出力要求が上位装置から与えられた場合にも不具合が生じない。
また本発明においては、上位装置と、データを記憶する記憶デバイス部との間のデータの入出力を制御する記憶制御装置の制御方法において、前記上位装置から与えられるデータ入出力要求に応じて、対応するデータを前記記憶デバイス部に読み書きするアダプタ部と、外部操作により設定された、前記記憶デバイス部の記憶容量でなる実記憶容量よりも大きい記憶容量の仮想ボリュームの定義内容と、前記実記憶容量を分割してなる実ボリューム及びプール領域の少なくとも一方の定義内容とを含むシステム構成情報を記憶するメモリとを備え、前記メモリが、前記プール領域に格納された前記データを管理する管理テーブルをも記憶する第1のステップと、前記アダプタ部が、前記メモリに格納された前記システム構成情報に基づいて、前記上位装置からの記憶容量確認に対して前記仮想ボリュームの記憶容量を応答する一方、当該システム構成情報に基づいて、前記上位装置から与えられる前記実ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記記憶デバイス部の当該アドレス位置に読み書きすると共に、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記プール領域に読み書きする第2のステップと、前記データを前記プール領域に書き込むときに、前記プール領域における当該データの書き込み位置を前記管理テーブルに登録する第3のステップと、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、前記管理テーブルを参照して、対応する前記データを前記プール領域に読み書きする第4のステップと、前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求のうちのデータ書込み要求に応じて、対応する前記データを前記記憶デバイス部の前記プール領域に当該プール領域の先頭アドレスから順番に書き込む第5のステップと、前記実ボリュームが拡張された場合、前記プール領域に格納されている前記データのうちの当該実ボリュームの拡張された部分を書き込み位置として指定された前記データを、前記プール領域から前記実ボリュームに移動させる第6のステップと、前記プール領域から前記実ボリュームにデータを移動させている最中に前記データを更新するためのデータ書き込み要求が前記上位装置から与えられた場合、前記データの移動状況を参照して、移動前であれば移動前のアドレス位置に、対応する前記データを書き込み、移動後であれば移動後のアドレス位置に、対応する前記データを書き込む第7のステップと、前記プール領域から前記実ボリュームに移動させ終えた後は、移動させたデータに関しての書き込み位置の情報を前記管理テーブルから削除する第8のステップとを備えることを特徴とする。
この結果、この記憶制御装置の制御方法によれば、当初より上位装置に仮想ボリュームの記憶容量を記憶デバイス部の記憶容量として通知するため、記憶デバイス部の記憶容量を仮想ボリュームの記憶容量にまで拡張する場合に、これを上位装置に意識させずに行うことができる。またその間、実ボリューム以外の仮想ボリューム内のアドレスを指定したデータ入出力要求に対しては、記憶デバイス部の記憶容量を拡張するまでのバッファとしてプール領域を使用するため、実ボリューム以外の仮想ボリューム内のアドレスを指定したデータ入出力要求が上位装置から与えられた場合にも不具合が生じない。
本発明によれば、記憶デバイス部の記憶容量を段階的に拡張する場合にも、これに伴う上位装置に対する作業を省略させることができ、このように記憶デバイス部の記憶容量を段階的に拡張することに起因する記憶装置の管理者の負担を低減させることができる。かくするにつき、記憶容量への投資を抑えながら、記憶容量の拡張を容易化させ得る記憶制御装置及びその制御方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態によるネットワークシステム1の構成
図1は、本実施の形態による記憶装置を用いたネットワークシステム1の構成例を示すものである。このネットワークシステム1は、複数のホスト装置2、記憶装置3及び管理コンソール4から構成されている。
上位装置としてのホスト装置2は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト装置は、例えばキーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置(図示せず)と、例えばモニタディスプレイやスピーカ等の情報出力装置(図示せず)とを備えている。
ホスト装置2は、例えばSAN、LAN、インターネット、公衆回線又は専用回線などからなるネットワーク5を介して記憶装置3と接続される。このネットワーク5を介したホスト装置2及び記憶装置3間の通信は、例えばネットワーク5がSANである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク5がLANである場合にはTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
記憶装置3は、それぞれデータを記憶する複数のディスクユニット12からなる記憶デバイス部10と、記憶デバイス部10に対するデータの入出力を制御するコントロール部11とから構成される。
このうち記憶デバイス部10は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスクユニット12、又はSATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクユニット12を複数内蔵して構成される。
これら各記憶デバイス部10の各ディスクユニット12は、コントロール部11によりRAID方式で運用される。1又は複数のディスクユニット12により提供される物理的な記憶領域上に、1又は複数の論理的なボリューム(以下、これを論理ボリュームと呼ぶ)が設定される。そしてデータは、この論理ボリューム内に所定大きさのブロック(以下、これを論理ブロックと呼ぶ)を単位として記憶される。
各論理ボリュームには、それぞれ固有の識別子(以下、これをLU(Logical Unit number)と呼ぶ)が付与される。本実施の形態の場合、データの入出力は、このLUと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号(以下、これをLBA(Logical Block Address)と呼ぶ)との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
一方、コントロール部11は、複数のチャネルアダプタ20、接続部21、共有メモリ22、キャッシュメモリ23、複数のディスクアダプタ24及び管理端末25を備えて構成される。
各チャネルアダプタ20は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、それぞれネットワーク5に接続するためのポートを備える。チャネルアダプタ20は、ホスト装置2からネットワーク5を介して送信される各種コマンドを解釈して実行する。各チャネルアダプタ20のポートには、それぞれを識別するためのネットワークアドレス(例えば、IPアドレスやWWN)が割り当てられており、これにより各チャネルアダプタ20がそれぞれ個別にNAS(Network Attached Storage)として振る舞うことができるようになされている。
接続部21は、チャネルアダプタ20、共有メモリ22、キャッシュメモリ23及びディスクアダプタ24と接続されている。チャネルアダプタ20、共有メモリ22、キャッシュメモリ23及びディスクアダプタ24間でのデータやコマンドの授受は、この接続部21を介して行われる。接続部21は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成される。
共有メモリ22及びキャッシュメモリ23は、チャネルアダプタ20及びディスクアダプタ24により共有される記憶メモリである。共有メモリ22は、主に記憶装置3全体の構成に関するシステム構成情報等の各種制御情報やコマンド等を記憶するために利用される。後述するプール領域管理テーブル30(図3)もこの共有メモリ22に記憶される。またキャッシュメモリ23は、主に記憶装置3に入出力するデータを一時的に記憶するために利用される。
各ディスクアダプタ24は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成され、記憶デバイス部10内のディスクユニット12との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ24は、例えばファイバーチャネルケーブル26を介して各記憶デバイス部10内の対応するディスクユニット12と接続されており、ファイバーチャネルプロトコルに従ってこれらディスクユニット12との間のデータの授受を行う。
管理端末25は、記憶装置3全体の動作を制御するものであり、LAN27を介して各チャネルアダプタ20とそれぞれ接続され、LAN28を介して各ディスクアダプタ24とそれぞれ接続されている。管理端末25は、記憶装置3内の障害の有無を監視し、障害が発生したときにこれを管理コンソール4に通知したり、オペレータ操作に応じて管理コンソール4から与えられる指令に基づいて記憶デバイス部10内の対応するディスクユニット12の閉塞処理を行う。オペレータは管理端末25を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ20又はディスクアダプタ24と接続部21とを経由して、共有メモリ22に格納することができる。
管理コンソール4は、例えばパーソナルコンピュータ、ワークステーション、あるいは携帯情報端末等のコンピュータから構成され、LAN29を介して記憶装置3の管理端末25と接続されている。管理コンソール4は、記憶装置3に対して各種設定を行うためのGUI(Graphical User Interface)や各種情報を表示する表示装置と、オペレータが各種操作や各種設定入力を行うためのキーボードやマウス等の入力装置と、LAN29を介して記憶装置3の管理端末25と通信を行うための通信装置とを備える。そして管理コンソール4は、入力装置を介して入力された各種指令に基づいて各種処理を実行する。例えば管理コンソールは、記憶装置3の管理端末25から通知される障害情報等の各種情報を表示装置に表示させたり、表示装置に表示したGUIを用いて入力された各種設定事項を記憶装置3の管理端末25に送信する。
(2)記憶装置3におけるデータ入出力処理
次に、本実施の形態の記憶装置3におけるデータの入出力処理について説明する。図2は、この記憶装置3において設定可能な記憶容量を概念的に示したものである。この記憶装置3では、管理端末25を用いて、記憶デバイス部10全体の記憶容量として、実際の記憶容量(以下、これを実記憶容量と呼ぶ)よりも大きい、例えば将来的に拡張しようとする大きさの仮想的な論理ボリューム(以下、これを仮想論理ボリュームVOLVと呼ぶ)を定義及び設定することができる。この定義及び設定内容は、管理端末25のもとに、いずれか1つのチャネルアダプタ20又はディスクアダプタ24を介して共有メモリ22に転送され、システム構成情報の一部としてこの共有メモリ22に格納される。
そしてチャネルアダプタ20は、ホスト装置2から当該記憶装置3の記憶容量を確認するためのコマンドが送信されてきたときには、予め設定されているかかる仮想ボリュームVOLVの記憶容量を返答する。例えば、ホスト装置2からSCSI(Small Computer System Interface) で定義されているRead Capacityコマンドが送信されてきた場合、このRead Capacityコマンドを受領したチャネルアダプタ20は、共有メモリ22に格納されているシステム構成情報を参照し、仮想ボリュームVOLVの記憶容量に基づいてステータス情報を生成し、これを対応するホスト装置2に送信する。
またこの記憶装置3では、管理端末25を用いて、実際の記憶デバイス部10全体の記憶容量の一部を通常のデータの読み書きを行うための論理ボリューム(以下、これを実ボリュームと呼ぶ)VOLR、残りをプール領域VOLPとして定義及び設定することができる。このプール領域VOLPは、ホスト装置2から仮想ボリュームVOLVのうちの実ボリュームVOLR内の論理アドレス以外の論理アドレスを書込み位置として指定して送信されてきたデータを、将来的に実ボリュームVOLVが拡張されるまでの間記憶しておくためのバッファ用の記憶領域として用いられる。この定義及び設定内容は、管理端末25のもとに、いずれかのチャネルアダプタ20又はディスクアダプタ24を介して共有メモリ22に転送され、システム構成情報の一部としてこの共有メモリ22に格納される。
さらにこの記憶装置3では、実ボリュームVOLR内の記憶領域については、ホスト装置2がアドレス(LU及びLBA)を指定することによって、直ちに対応する記憶領域にアクセスできるように、ホスト装置2が認識する論理的なアドレス(論理アドレス)と、記憶デバイス部10内の物理的なアドレス(物理アドレス)とが1対1で固定的に対応付けられており、これらを対応付けたアドレス変換テーブルがシステム構成情報の一部として共有メモリ22に格納されている。
そして記憶装置3では、ホスト装置2から与えられる論理アドレスを指定したデータ入出力要求を受信した場合において、そのデータ入出力要求に含まれるデータを読み書きすべき論理アドレスが実ボリュームVOLR内の記憶領域と対応付けられたものであったときには、アドレス変換テーブルを用いてその論理アドレスを物理アドレスに変換し、この物理アドレスの位置にデータを読み書きする。
これに対して、この記憶装置3では、プール領域VOLP内の記憶領域については、ホスト装置2が認識する論理アドレスと、実際にデータが読み書きされる記憶デバイス部10内の物理アドレスとが1対1で固定的に対応付けられておらず、仮想ボリュームVOLVのうちの実ボリュームVOLR以外の記憶領域を指定したデータ書込み要求がホスト装置2から与えられる毎に、データを書き込むべき記憶領域が動的に割当てられる。
このため共有メモリ22には、プール領域VOLPに格納された各データを管理する手段として、図3に示すように、エントリ番号欄(「エントリn(n=1,2,……)」)、アドレス情報欄(「LU,LBA」)、データ長情報欄(「データ長」)及びポインタ情報欄(「ポインタ♯n(n=1,2,……)」)を有するプール領域管理テーブル30が格納されている。
そしてこの記憶装置3は、仮想ボリュームVOLV内であるが実ボリュームVOLRの範囲を超える論理アドレスを指定したデータの書込み要求がホスト装置2から与えられた場合には、そのデータをプール領域VOLPに書き込む一方、そのデータに対して新たなエントリ番号を割り当て、そのエントリ番号をエントリ番号情報としてプール領域管理テーブル30のエントリ番号欄に格納する。
また記憶装置3は、そのデータの書込み位置としてホスト装置2が指定した、つまり対応するデータ書込み要求に含まれていた論理アドレス(LU及びLBA)をアドレス情報としてプール領域管理テーブル30のアドレス情報欄に格納すると共に、そのデータのデータ長をデータ長情報としてプール領域管理テーブル30のデータ長情報欄に格納する。さらに記憶装置3は、そのデータを実際に格納したプール領域VOLP内の記憶領域における先頭の論理アドレスをポインタ情報としてプール領域管理テーブル30のポインタ情報欄に格納する。
そして記憶装置3は、仮想ボリュームVOLV内であるが実ボリュームVOLRの範囲を超える論理アドレスを指定したデータ読出し要求がホスト装置3から与えられた場合には、プール領域VOLPにおける対応するデータの格納位置をこのプール領域管理テーブル30に基づいて検出すると共に、当該検出結果に基づいてそのデータをプール領域VOLPから読み出して対応するホスト装置2に送信する。
なお、仮想ボリュームVOLVの記憶容量に基づき動作するのは、対ホスト装置2のインタフェース上の処理のみであって、記憶装置3におけるフォーマット等の内部処理は、実ボリュームVOLR及びプール領域VOLPを合計した記憶容量に対してのみ実施する。
ここで図4は、このような記憶装置3におけるデータの入出力処理のうち、ホスト装置2からコマンド(特にデータ書込み要求)が送信されてきたときに記憶装置3内において行われる一連の処理手順(以下、これを第1のデータ入出力処理手順RT1と呼ぶ)を示すフローチャートである。
記憶装置3においては、ホスト装置2からのコマンドをチャネルアダプタ20が受信すると、この第1のデータ入出力処理手順RT1に従った処理が開始され、まず当該チャネルアダプタ20によりそのコマンドがデータ書込み要求のコマンドであるか否かが判断される(SP1)。
そのコマンドがデータ書込み要求のコマンドでなかった場合(SP1;NO)、記憶装置3内においてそのコマンドに応じた処理が行われ(SP2)、この後そのコマンドに対する処理が終了する(SP11)。
これに対して、そのコマンドがデータ書込み要求のコマンドであった場合(SP1;YES)、このデータ書込み要求を受信したチャネルアダプタ20は、当該データ書込み要求に含まれるそのデータを書き込むべき記憶領域の論理アドレス(LU及びLBA)を抽出し、この抽出した論理アドレスと、共有メモリ22に格納されているシステム構成情報とに基づいて、その論理アドレスが実ボリュームVOLR内の記憶領域と対応付けられた論理アドレスであるか否かを判断する(SP3)。
そしてチャネルアダプタ20は、その論理アドレスが実ボリュームVOLR内の記憶領域と対応付けられた論理アドレスであった場合には(SP3;YES)、かかるデータ書込み要求を共有メモリ22に格納する一方、当該データ書込み要求と共に与えられた書込み対象のデータをキャッシュメモリ23に書き込む。
このとき各ディスクアダプタ24は、共有メモリ22を常時監視している。そして対応するディスクアダプタ24は、共有メモリ22にデータ書込み要求が書き込まれたことを検出すると、当該データ書込み要求に含まれる論理アドレスに基づいて実ボリュームVOLR内の物理アドレスを算出すると共に(SP4)、キャッシュメモリ23から書込み対象のデータを読み出し、これを記憶デバイス部10内の対応するディスクユニット12に送信する。これによりこのデータが、そのディスクユニット12内の対応するアドレス位置に格納される(SP10)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP11)。
これに対して、かかるチャネルアダプタ20は、ホスト装置2からのデータ書込み要求に含まれるデータを書き込むべき論理アドレスが実ボリュームVOLR内の記憶領域と対応付けられた論理アドレスでなかった場合には(SP3;NO)、データ書込み要求に含まれる論理アドレスと、プール領域管理テーブル30に登録された各エントリのアドレス情報欄にそれぞれ格納されている論理アドレスとを順次比較する(SP5)。
そして、そのチャネルアダプタ20は、かかるデータ書込み要求に含まれる論理アドレスが、プール領域管理テーブル30内のいずれかのエントリのアドレス情報欄に格納された論理アドレスと一致したか否か、つまりかかるデータ書込み要求に含まれる論理アドレスの位置に既にデータが格納されているか否かを判断する(SP6)。
ここで肯定結果を得ることは(SP6;YES)、このホスト装置2からのデータ書込み要求が、既にプール領域VOLPに格納されているデータの更新要求であることを意味する。かくして、このときチャネルアダプタ20は、プール領域管理テーブル30の対応するエントリのポインタ情報欄に格納された論理アドレスを読み出し、ホスト装置2からのデータ書込み要求に含まれるデータを書き込むべき論理アドレスをこの読み出した論理アドレスに置き換えた新たなデータ書込み要求を生成して、これを共有メモリ22に格納する(SP7)。
この結果、このデータ書込み要求に基づいて、対応するディスクアダプタ24により書込み対象のデータがキャッシュメモリ23から読み出されて、対応するディスクユニット12内の対応するアドレス位置に格納される(SP10)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP11)。
これに対して、かかる判断において否定結果を得ることは(SP5;NO)、このホスト装置2からのデータ書込み要求が、新たなデータの書込み要求であることを意味する。かくして、このとき対応するチャネルアダプタ20は、プール領域管理テーブル30の未使用のエントリをそのデータのために新規に確保する(SP8)。
また、かかるチャネルアダプタ20は、この後この新規確保したプール領域管理テーブル30の未使用のエントリの各欄にそのデータについての対応する情報を格納するようにして、当該データをプール領域管理テーブル30に登録する。具体的に、チャネルアダプタ20は、そのデータを格納するためのプール領域VOLP内の未使用の記憶領域を確保して、その先頭の論理アドレスをステップSP8において新規確保した未使用エントリのポインタ情報欄に格納すると共に、当該データについて付与したエントリ番号、ホスト装置2により指定されたそのデータを本来的に格納すべき論理アドレス(そのデータについてホスト装置2から与えられたデータ書込み要求に含まれるデータを格納すべき論理アドレス)及びそのデータのデータ長を、それぞれかかる新規確保した未使用エントリのエントリ番号欄、論理アドレス情報欄又はデータ長情報欄にそれぞれ格納する。
なお、この実施の形態の場合、このときのプール領域VOLP内の記憶領域を確保する手法としては、プール領域VOLPの先頭アドレスから未使用の記憶領域をそのデータ長分だけ確保する方式が用いられる。この方式を用いることにより、隙間をあけてランダムにデータをプール領域VOLPに格納する場合に比べて、記憶領域の無駄を防止して、プール領域VOLPの記憶容量を節約することができる。
チャネルアダプタ20は、この後プール領域管理テーブル30の対応するエントリのポインタ情報欄に格納された論理アドレスを読み出し、ホスト装置2からのデータ書込み要求に含まれるデータの書き込み先の論理アドレスをこの読み出した論理アドレスに置き換えた新たなデータ書込み要求を生成して、これを共有メモリ22に格納する(SP9)。
この結果、このデータ書込み要求に基づいて、対応するディスクアダプタ24により書き込み対象のデータがキャッシュメモリ23から読み出されて、対応するディスクユニット12内の対応するアドレス位置に格納される(SP10)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP11)。
一方、図5は、第1のデータ入出力処理手順RT1のステップSP2において、ホスト装置2からのコマンドがデータ読出し要求であった場合に行われる一連の処理手順(以下、これを第2のデータ入出力処理手順RT2と呼ぶ)を示すフローチャートである。
かかるホスト装置2からのコマンドを受信したチャネルアダプタ20は、第1のデータ入出力処理手順RT1のステップSP2に進むと、この第2のデータ入出力処理手順RT2に従って、まずそのコマンドがデータ読出し要求のコマンドであるか否かを判断する(SP21)。
そしてそのコマンドがデータ読出し要求のコマンドでなかった場合には(SP21;NO)、この後記憶装置3においてそのコマンドに応じた処理が行われ(SP22)、この後そのコマンドに対する一連の処理が終了する(SP31)。
これに対して、そのコマンドがデータ読出し要求のコマンドであった場合には(SP21;YES)、そのコマンドを受信したチャネルアダプタ20は、そのデータ読出し要求に含まれる読出し対象のデータが書き込まれている記憶領域の論理アドレスを抽出し、この抽出した論理アドレスと、共有メモリ22に格納されているシステム構成情報とに基づいて、その論理アドレスが実ボリュームVOLR内の記憶領域と対応付けられたアドレスであるか否かを判断する(SP23)。
この場合、読出し対象のデータが実ボリュームVOLR内に格納されているときには、この判断において肯定結果が得られる(SP23;YES)。かくしてこのときチャネルアダプタ20は、このデータ読出し要求を共有メモリ22に格納する。
このデータ読出し要求は、この後対応するディスクアダプタ24により読み出される。そして、ディスクアダプタ24は、このデータ読出し要求に含まれるかかる論理アドレスと対応付けられた実ボリュームVOLR内の物理アドレスを算出し(SP24)、この算出結果に基づいて対応するディスクユニット12を制御することにより、読出し対象のデータをそのディスクユニット12の対応するアドレス位置から読み出させる(SP28)。さらに、このディスクアダプタ24は、ディスクユニット12から読み出させたデータ(以下、これを読出しデータと呼ぶ)をキャッシュメモリ23に格納すると共に、共有メモリ22に読出しコマンドを格納する。
このとき各チャネルアダプタ20は、共有メモリ22を常時監視している。そして対応するチャネルアダプタ20は、共有メモリ22に読出しコマンドが書き込まれたことを検出すると、この読出しコマンドに基づいて、対応する読出しデータをキャッシュメモリ22から読み出し、これを対応するホスト装置2に送信する(SP30)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP31)。
一方、読出し対象のデータが実ボリュームVOLR内に格納されていないときには、ステップSP23の判断において否定結果が得られる(SP23;NO)。かくしてこのときチャネルアダプタ20は、データ読出し要求に含まれる読出し対象のデータの論理アドレスと、プール領域管理テーブル30に登録された各エントリのアドレス情報欄にそれぞれ格納されている論理アドレスとを順次比較する(SP25)。
この後、そのチャネルアダプタ20は、読出し対象のデータが格納されている論理アドレスが、プール領域管理テーブル30に登録されたいずれかのエントリのアドレス情報欄に格納された論理アドレスと一致したか否かを判断する(SP26)。
ここで肯定結果を得ることは(SP26;YES)、このホスト装置2からのデータ読出し要求がプール領域VOLPに格納されているデータに対するものであることを意味する。かくして、このときチャネルアダプタ20は、プール領域管理テーブル30の対応するエントリのポインタ情報欄に格納された論理アドレスを読み出し、ホスト装置2からのデータ読出し要求に含まれる論理アドレスをこの読み出した論理アドレスに置き換えた新たなデータ読出し要求を生成して、これを共有メモリ22に格納する(SP27)。
この結果、このデータ読出し要求が対応するディスクアダプタ24により共有メモリ22から読み出され、このディスクアダプタ24により、このデータ読出し要求に含まれるかかる論理アドレスと対応するプール領域VOLP内の物理アドレスが算出され(SP27)、この算出結果に基づいて読出し対象のデータが記憶デバイス部11内の対応するディスクユニット12から読み出される(SP28)。また、かかるディスクアダプタ24は、このディスクユニット12から読み出した読出しデータをキャッシュメモリ23に格納すると共に、共有メモリ22に読出しコマンドを格納する。
この結果、上述の場合と同様にして、この読出しデータが対応するチャネルアダプタ20により読み出されて対応するホスト装置2に送信される(SP30)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP31)。
一方、ステップSP26において否定結果を得ることは(SP26;NO)、そのときホスト装置2からデータ読出し要求があったデータが実ボリュームVOLRのみならずプール領域VOLPにも記憶されていないことを意味する。かくして、このときそのチャネルアダプタ20は、オール「0」のダミーデータを対応するホスト装置2に送信する(SP29)。そして記憶装置3は、この後そのコマンドに対する処理を終了する(SP31)。
(3)記憶装置3におけるプール領域アクセス性能表示機能
ところで、かかる構成を有する記憶装置3では、プール領域VOLP内に新たなデータを書き込むべき記憶領域を新規に確保する際の手法として、上述のように書込むべきデータが発生した時点で順次プール領域VOLPの先頭からそのデータ長分だけ記憶領域を割り当てる方式が用いられる。従って、この記憶装置3では、プール領域VOLP内のデータが、そのデータについてホスト装置2が認識している論理アドレス(LU,LBA)の順番で配置されない。
この結果、この記憶装置3では、第1に、プール領域VOLP内に格納されたデータへのアクセスの際に、共有メモリ22上にあるプール領域管理テーブル30のすべてのエントリをサーチする必要がある点、第2に、プール領域VOLP上において、一度のコマンドで読み書きすべきデータが一箇所に連続して格納されずに、離れた複数の記憶領域に分散して格納されることがあるなどの理由から、プール領域VOLPに格納されたデータに対するアクセス性能が実ボリュームVOLR内に格納されたデータに比べて落ちる。特に後者の理由により、離れた複数の記憶領域に分散して格納されたデータを集めるために、複数回のデータ転送を行う必要が生じる場合があり、この場合1回の転送と比べて余分に転送時間が必要となる。
従って、かかる構成を有する本実施の形態による記憶装置3では、実ボリュームVOLRを越える論理アドレスを指定したデータ入出力の頻度が増え、プール領域VOLPに格納されるデータが多くなるにつれて、当該データに対する平均的なアクセス性能が悪くなる。
この場合において、本実施の形態による記憶装置3では、プール領域VOLP内のデータを格納するための記憶領域を確保する手法として、プール領域VOLPの先頭から順次割り当てる方式を採用しているため、プール領域VOLP内の未使用の記憶領域の残量をプール領域管理テーブル30の最終の有効エントリ(データが登録されたエントリ)のアドレス情報欄に格納されているアドレス情報(LU,LBA)から容易に算出することができる。またプール領域VOLP内に格納されたデータへのアクセス性能は、プール領域VOLPへのアクセス(データの書き込み又は読み出し)毎に、処理開始から処理終了までの時間をカウントしてその平均値を求めることにより得ることができる。
そこで、本実施の形態による記憶装置3では、各チャネルアダプタ20が、プール領域VOLPにデータを読み書きすべきデータ入出力要求(データ書込み要求又はデータ読出し要求)を受信する毎に、処理開始から処理終了までの指定されたデータを読み書きするのに要した時間を図示しない内部タイマによって計測すると共に、その処理後のプール領域VOLP内の未使用の記憶領域の残量をプール領域管理テーブル30に基づいて演算し、これら計測結果及び演算結果を管理端末25に送出するようになされている。
そして管理端末25は、このチャネルアダプタ20からの計測結果及び演算結果を管理コンソール4に送信する一方、管理コンソール4は、オペレータ操作に応じて、この計測結果及び演算結果をモニタ表示する。
このようにしてこの記憶装置3においては、オペレータがこの管理コンソール4にモニタ表示されたプール領域VOLPへのアクセス性能及びプール領域VOLPの残量に基づいて、ディスクユニット12を増設すべき時期を適切に判断し得るようになされている。
(4)ディスクユニット増設時におけるデータ再配置処理
次に、ディスクユニット12の増設時におけるデータ再配置処理について説明する。
本実施の形態の記憶装置3は、装置稼動中においても記憶容量の増設作業を行うことが可能である。具体的には、まず、記憶デバイス部11内の物理的なディスク容量(ディスクユニット12)を増設し、その後管理端末25のユーザインタフェースを用いて、増設後の実ボリュームVOLR、プール領域VOLPの記憶容量、必要があれば仮想ボリュームVOLVの記憶容量も含めて、システム構成情報を更新する。そして、この後管理端末25を操作することにより、その新しいシステム構成情報を、データ再配置処理実行コマンドと共に管理端末25からLAN経由で任意の1つのチャネルアダプタ20又はディスクアダプタ24に送信するようにする。
このとき、かかる新しいシステム構成情報を受信したチャネルアダプタ20又はディスクアダプタ24は、共有メモリ22に格納されているシステム構成情報を新しいシステム構成情報と置き換えるようにしてシステム構成情報を更新する。また、かかるチャネルアダプタ20又はディスクアダプタ24は、データ再配置処理実行コマンドに基づいて、管理端末25の制御のもとに、図7に示すように、共有メモリ22に格納されたプール領域管理テーブル30に登録されている全エントリのうちの拡張された実ボリュームVOLR内に書き込まれるべきエントリのデータを、プール領域VOLPから実ボリュームVOLR内の対応するアドレス位置にコピーする。以下においては、このようにプール領域VOLPに格納されているデータを、拡張された実ボリュームVOLR内の対応するアドレス位置に再配置する処理をデータ再配置処理と呼ぶものとする。
図6は、記憶装置3内において行われるこのようなデータの再配置処理の処理手順(以下、これをデータ再配置処理手順RT3と呼ぶ)を示すフローチャートである。
記憶装置3では、実ボリュームVOLRの増設後、オペレータが管理端末25を操作して増設後の実ボリュームVOLRの記憶容量等を含むシステム構成情報を上述のようにして更新した後、この管理端末25を操作してデータ再配置処理を実行すべき指令を入力すると、このデータ再配置処理手順RT3が開始され、まず管理端末25からデータ再配置処理実行コマンドを受信したチャネルアダプタ20又はディスクアダプタ24がプール領域管理テーブル30に登録された各エントリの中から1つのエントリについて、アドレス情報欄に登録されたそのエントリを格納すべき論理アドレスを読み出し(SP41)、その論理アドレスが実ボリュームVOLRにおけるそのとき増設した範囲内のものであるか否かを判断する(SP42)。
かかるチャネルアダプタ20又はディスクアダプタ24は、この判断において否定結果を得ると(SP42;NO)、後述するステップSP45の処理に移り、これに対して肯定結果を得ると(SP42;YES)、プール領域管理テーブル30のそのエントリのポインタ情報欄から、そのエントリのデータが現在格納されているプール領域VOLPの論理アドレスを読み出す(SP43)。
また、かかるチャネルアダプタ20又はディスクアダプタ24は、この後ステップSP41において取得した本来的にそのデータを格納すべき論理アドレスと、ステップSP43において取得したそのデータが現在格納されている論理アドレスとに基づいて、プール領域VOLPからそのデータを論理ブロック単位で順次読み出させ、これを実ボリュームVOLR内の対応するアドレス位置、つまりプール領域管理テーブル30のアドレス情報欄に格納された論理アドレスを先頭アドレスとする位置に順次コピーさせる(SP44)。
具体的に、かかるデータ再配置処理実行コマンドを受信したチャネルアダプタ20又はディスクアダプタ24は、ステップSP41及びステップSP44においてそれぞれ取得した論理アドレスを含むデータ再配置処理コマンドを共有メモリ22に格納する。
このデータ再配置処理コマンドは、この後ステップSP41において取得した本来的にそのデータを格納すべき論理アドレスにデータを読み書きするディスクアダプタ24(以下、これをコピー先ディスクアダプタ24と呼ぶ)と、ステップSP43において取得したそのデータが現在格納されている論理アドレスにデータを読み書きするディスクアダプタ24(以下、これをコピー元ディスクアダプタ24と呼ぶ)とに読み出される。
そしてこのコピー元ディスクアダプタ24は、記憶デバイス部11内における対応するディスクユニット12から再配置すべきデータを読み出し、これをキャッシュメモリ23に格納する。またコピー先ディスクアダプタ24は、このデータをキャッシュメモリ23から読み出し、対応するディスクユニット12における対応するアドレス位置に格納させる。これによりかかるデータの再配置が行われることとなる。
また、このような処理と並行して、かかるデータ再配置処理実行コマンドを受信したチャネルアダプタ20又はディスクアダプタ24は、プール領域管理テーブル30におけるその対応するエントリの情報を削除することにより、当該エントリの設定を無効にする(SP44)。なお、この設定が無効にされたエントリについては、その後新たなエントリの上書きが可能となり、これによりプール領域VOLPにおけるそのデータが格納されていた記憶領域の再利用が可能となる。
続いて、かかるチャネルアダプタ20又はディスクアダプタ24は、その後プール領域管理テーブル30に登録されたすべてのエントリについて、ステップSP41〜ステップSP44について上述した処理を終えたか否かを判断する(SP45)。
このチャネルアダプタ20又はディスクアダプタ24は、この判断において否定結果を得ると(SP45;NO)、ステップSP41に戻り、この後プール領域管理テーブル30に登録されたすべてのエントリについての処理を終えるまで(つまりステップSP45において肯定結果を得るまで)、同様の処理を繰り返す(SP41〜SP45)。
そして、チャネルアダプタ20又はディスクアダプタ24は、この後プール領域管理テーブル30に登録されたすべてのエントリについて上述のステップSP41〜ステップSP44の処理を終えると(ステップSP45において肯定結果を得ると)、この一連のデータ再配置処理を終了する(SP47)。
なお、上述したデータ再配置処理手順RT3のステップSP44において、1つのエントリのデータ再配置(データコピー)を行っている最中に、そのデータを更新するためのデータ書込み要求がホスト装置2から記憶装置3に送信される可能性がある。
この場合、プール領域管理テーブル30における対応するエントリは、その段階では無効に設定(削除)されていない。このため、このデータ書込み要求を受信したチャネルアダプタ20は、第1のデータ入出力処理手順RT1(図4)のステップSP7について上述したように、プール領域管理テーブル30の対応するエントリのポインタ情報欄に格納された論理アドレスを読み出し、ホスト装置2からのデータ書込み要求に含まれるデータの書き込み先の論理アドレスをこの読み出した論理アドレスに置き換えた新たなデータ書込み要求を生成して、これを共有メモリ22に格納する。またかかるチャネルアダプタ20は、これと共に書き込み対象のデータをキャッシュメモリ23に格納する。そして、共有メモリ22に書き込まれたデータ書込み要求は、この後コピー元ディスクアダプタ24により共有メモリ22から読み出される。
このとき、コピー元ディスクアダプタ24は、データコピーの状況を参照して、データの再配置を終えた(すなわちキャッシュメモリ23を介してコピー先ディスクアダプタ24に転送を終えた)論理ブロックのデータについては、これをキャッシュメモリ23を介してコピー先ディスクアダプタ24に転送することにより、当該論理ブロックのデータをコピー先のディスクユニット12における対応するアドレス位置に格納させる。
これに対してコピー元ディスクアダプタ24は、データの再配置を終えていない(すなわちキャッシュメモリ23を介してコピー先ディスクアダプタ24に転送を終えていない)論理ブロックのデータについては、これをキャッシュメモリ23から読み出して、コピー元のディスクユニット12における対応するアドレス位置に格納する。
このようにこの記憶装置3においては、コピー最中のデータに対する更新要求があったときには、そのデータコピーの状況を参照して、論理ブロック単位で書き込み先を切り替えるようになされ、これによりコピー最中のデータの更新が確実にコピー後のデータに反映されるようになされている。
(5)本実施の形態の効果
次に、上述のように記憶装置3を構築することの利点について、図8を参照して説明する。ここでは、データベースのメンテナンスや記憶領域管理ソフトウェアの再定義を2年間隔で行う使用者を標準ケースとして想定する。また図中、「x」は初期の記憶容量を表し、「y」はその記憶容量を得るための投資金額を表すものとする。
この場合において、必要とする記憶容量が6ヶ月毎に20%増加すると共に、単位当たりの記憶容量を用意するために必要なコストが6ヶ月毎に20%コストダウンするものとすると、2年後に必要となる記憶容量は初期時の記憶容量の207.4%になる。このため、最終的に20%の余裕をもたせるためには、従来方式では最初から予め初期時に必要な記憶容量の約2.5倍の記憶容量を用意する必要がある。
そこで、本実施の形態による記憶装置3において、20%のプール領域を設けて6ヶ月毎に記憶容量を拡張する場合と、従来方式により予め将来の必要に備えて記憶容量を用意しておく場合との投資金額を比較すると、図8に示すように、前者の方が投資金額を従来方式よりも24.2%を低減することが可能となる。
この場合において、本実施の形態による記憶装置3では、上述のように当初よりホスト装置2に仮想ボリュームVOLVの記憶容量を記憶装置3の記憶デバイス部10の記憶容量として通知した場合、記憶デバイス部10の記憶容量を仮想ボリュームVOLVの記憶容量にまで拡張する際に、これをホスト装置2に意識させずに行うことができる。またその間、実ボリュームVOLR以外の仮想ボリュームVOLV内のアドレスを指定したデータ入出力要求に対しては、記憶デバイス部10の記憶容量を拡張するまでのバッファとしてプール領域VOLPを使用するため、実ボリュームVOLR以外の仮想ボリュームVOLV内のアドレスを指定したデータ入出力要求がホスト装置2から与えられた場合にも不具合が生じない。
この結果、上述の記憶装置3によれば、記憶容量の拡張に伴うデータベースや記憶領域管理ソフトウェアの再初期化及び再設定等の負担を抑えながら、記憶容量の拡張に要する投資を低減させることが可能となる。従って、この記憶装置3によれば、記憶容量への投資を抑えながら、記憶容量の拡張を容易化させることができる。
(6)他の実施の形態
なお、上述の実施の形態においては、各チャンネルアダプタ20が、プール領域VOLPに対するアクセス性能(プール領域VOLPにデータを読み書きするのに要した時間)及びプール領域VOLPの残量を管理端末25を介して管理コンソール4に送信し、管理コンソール4が、オペレータ操作に応じて、この計測結果及び演算結果をモニタ表示するようにした場合について述べたが、本発明はこれに限らず、かかるプール領域VOLPに対するアクセス性能及びプール領域VOLPの残量をそれぞれ予め定められた所定の閾値と比較し、アクセス性能又はプール領域VOLPの残量のいずれかが対応する閾値以下となったときに、自動的に記憶装置3の管理者に対して警告を発信するようにしても良い。
なお、プール領域VOLPに対するアクセス性能やプール領域VOLPの残量を管理コンソール4でなく、管理端末25に表示するようにしても良く、また上述のように警告を発信する際にもかかる警告を管理端末25にモニタ表示させたり、警告音を管理端末25に出力させるようにしても良い。
また上述の実施の形態においては、ホスト装置2と、データを記憶する記憶デバイス部10との間のデータの入出力を制御する記憶制御装置11としてのコントロール部11を図1のように構成する場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。
本発明は、記憶領域を仮想化して上位装置に提供し得るようになされた記憶装置に適用できる。
本実施の形態による記憶装置を用いたストレージシステムの構成例を示すブロック図である。 本実施の形態による記憶装置における記憶容量の設定の説明に供する概念図である。 プール領域管理テーブルの説明に供する概念図である。 第1のデータ入出力処理手順を示すフローチャートである。 第2のデータ入出力処理手順を示すフローチャートである。 データ再配置処理手順を示すフローチャートである。 データ再配置処理の説明に供する概念図である。 (A)は従来方式により所望の記憶容量を確保する場合に必要となる累積投資金額の説明に供する図表及び概念図、(B)は本実施形態方式により所望の記憶容量を確保する場合に必要となる累積投資金額の説明に供する図表及び概念図である。
符号の説明
2……ホスト装置、 3……記憶装置、10……コントロール部、11……記憶デバイス部、12……記憶デバイス、20……チャネルアダプタ、22……共有メモリ、23……キャッシュメモリ、24……ディスクアダプタ、 25……管理端末、VOLV……仮想ボリューム、VOLR……実ボリューム、VOLP……プール領域。

Claims (6)

  1. 上位装置と、データを記憶する記憶デバイス部との間のデータの入出力を制御する記憶制御装置において、
    前記上位装置から与えられるデータ入出力要求に応じて、対応するデータを前記記憶デバイス部に読み書きするアダプタ部と、
    外部操作により設定された、前記記憶デバイス部の記憶容量でなる実記憶容量よりも大きい記憶容量の仮想ボリュームの定義内容と、前記実記憶容量を分割してなる実ボリューム及びプール領域の少なくとも一方の定義内容とを含むシステム構成情報を記憶するメモリと、
    を備え、
    前記メモリは、
    前記プール領域に格納された前記データを管理する管理テーブルをも記憶し、
    前記アダプタ部は、
    前記メモリに格納された前記システム構成情報に基づいて、前記上位装置からの記憶容量確認に対して前記仮想ボリュームの記憶容量を応答する一方、当該システム構成情報に基づいて、前記上位装置から与えられる前記実ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記記憶デバイス部の当該アドレス位置に読み書きすると共に、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記プール領域に読み書きし、
    前記データを前記プール領域に書き込むときに、前記プール領域における当該データの書き込み位置を前記管理テーブルに登録し、
    前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、前記管理テーブルを参照して、対応する前記データを前記プール領域に読み書きし、
    前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求のうちのデータ書込み要求に応じて、対応する前記データを前記記憶デバイス部の前記プール領域に当該プール領域の先頭アドレスから順番に書き込み、
    前記実ボリュームが拡張された場合、前記プール領域に格納されている前記データのうちの当該実ボリュームの拡張された部分を書き込み位置として指定された前記データを、前記プール領域から前記実ボリュームに移動させ、
    前記プール領域から前記実ボリュームにデータを移動させている最中に前記データを更新するためのデータ書き込み要求が前記上位装置から与えられた場合、前記データの移動状況を参照して、移動前であれば移動前のアドレス位置に、対応する前記データを書き込み、移動後であれば移動後のアドレス位置に、対応する前記データを書き込み、
    前記プール領域から前記実ボリュームにデータを移動させ終えた後は、移動させた前記データに関しての書き込み位置の情報を前記管理テーブルから削除する
    ことを特徴とする記憶制御装置。
  2. 前記プール領域の残容量を取得するプール領域残容量取得部を備え、
    前記プール領域残容量取得部は、
    取得した前記プール領域の残容量を外部機器に通知し、
    前記外部機器は、
    前記プール領域残容量取得部からの通知に基づいて、前記プール領域の残容量をモニタ表示する
    ことを特徴とする請求項1に記載の記憶制御装置。
  3. 前記プール領域に対するアクセス性能を取得するプール領域アクセス性能取得部を備え、
    前記プール領域アクセス性能取得部は、
    取得した前記プール領域に対するアクセス性能を外部機器に通知し、
    前記外部機器は、
    プール領域アクセス性能取得部からの通知に基づいて、前記プール領域に対する前記アクセス性能をモニタ表示する
    ことを特徴とする請求項1に記載の記憶制御装置。
  4. 上位装置と、データを記憶する記憶デバイス部との間のデータの入出力を制御する記憶制御装置の制御方法において、
    前記上位装置から与えられるデータ入出力要求に応じて、対応するデータを前記記憶デバイス部に読み書きするアダプタ部と、
    外部操作により設定された、前記記憶デバイス部の記憶容量でなる実記憶容量よりも大きい記憶容量の仮想ボリュームの定義内容と、前記実記憶容量を分割してなる実ボリューム及びプール領域の少なくとも一方の定義内容とを含むシステム構成情報を記憶するメモリと、
    を備え、
    前記メモリが、
    前記プール領域に格納された前記データを管理する管理テーブルをも記憶する第1のステップと、
    前記アダプタ部が、
    前記メモリに格納された前記システム構成情報に基づいて、前記上位装置からの記憶容量確認に対して前記仮想ボリュームの記憶容量を応答する一方、当該システム構成情報に基づいて、前記上位装置から与えられる前記実ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記記憶デバイス部の当該アドレス位置に読み書きすると共に、前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、対応する前記データを前記プール領域に読み書きする第2のステップと、
    前記データを前記プール領域に書き込むときに、前記プール領域における当該データの書き込み位置を前記管理テーブルに登録する第3のステップと、
    前記上位装置から与えられる前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求に応じて、前記管理テーブルを参照して、対応する前記データを前記プール領域に読み書きする第4のステップと、
    前記実ボリューム以外の前記仮想ボリューム内のアドレスを指定したデータ入出力要求のうちのデータ書込み要求に応じて、対応する前記データを前記記憶デバイス部の前記プール領域に当該プール領域の先頭アドレスから順番に書き込む第5のステップと、
    前記実ボリュームが拡張された場合、前記プール領域に格納されている前記データのうちの当該実ボリュームの拡張された部分を書き込み位置として指定された前記データを、前記プール領域から前記実ボリュームに移動させる第6のステップと、
    前記プール領域から前記実ボリュームにデータを移動させている最中に前記データを更新するためのデータ書き込み要求が前記上位装置から与えられた場合、前記データの移動状況を参照して、移動前であれば移動前のアドレス位置に、対応する前記データを書き込み、移動後であれば移動後のアドレス位置に、対応する前記データを書き込む第7のステップと、
    前記プール領域から前記実ボリュームに移動させ終えた後は、移動させたデータに関しての書き込み位置の情報を前記管理テーブルから削除する第8のステップと
    を備えることを特徴とする記憶制御装置の制御方法。
  5. 前記プール領域の残容量を取得するプール領域残容量取得部を備え、
    前記プール領域残容量取得部が、
    取得した前記プール領域の残容量を外部機器に通知する第9のステップと、
    前記外部機器が、
    前記プール領域残容量取得部からの通知に基づいて、前記プール領域の残容量をモニタ表示する第10のステップと
    を備えることを特徴とする請求項4に記載の記憶制御装置の制御方法。
  6. 前記プール領域に対するアクセス性能を取得するプール領域アクセス性能取得部を備え、
    前記プール領域アクセス性能取得部が、
    取得した前記プール領域に対するアクセス性能を外部機器に通知する第11のステップと、
    前記外部機器が、
    プール領域アクセス性能取得部からの通知に基づいて、前記プール領域に対する前記アクセス性能をモニタ表示する第12のステップと
    を備えることを特徴とする請求項4に記載の記憶制御装置の制御方法。
JP2005172092A 2005-06-13 2005-06-13 記憶制御装置及びその制御方法 Active JP4723921B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005172092A JP4723921B2 (ja) 2005-06-13 2005-06-13 記憶制御装置及びその制御方法
US11/214,002 US7617371B2 (en) 2005-06-13 2005-08-30 Storage controller and method for controlling the same
DE602006010481T DE602006010481D1 (de) 2005-06-13 2006-02-22 Speichersteuerung und Steuerverfahren dafür
EP06250942A EP1736860B1 (en) 2005-06-13 2006-02-22 Storage controller and method for controlling the same
CNA2006100648058A CN1881167A (zh) 2005-06-13 2006-03-14 存储控制装置及其控制方法
US12/568,949 US20100017577A1 (en) 2005-06-13 2009-09-29 Storage controller and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005172092A JP4723921B2 (ja) 2005-06-13 2005-06-13 記憶制御装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2006350418A JP2006350418A (ja) 2006-12-28
JP4723921B2 true JP4723921B2 (ja) 2011-07-13

Family

ID=37067659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005172092A Active JP4723921B2 (ja) 2005-06-13 2005-06-13 記憶制御装置及びその制御方法

Country Status (5)

Country Link
US (2) US7617371B2 (ja)
EP (1) EP1736860B1 (ja)
JP (1) JP4723921B2 (ja)
CN (1) CN1881167A (ja)
DE (1) DE602006010481D1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590666B2 (en) * 2006-06-16 2009-09-15 Microsoft Corporation Predicting capacity consumption in a memory component
US20080183988A1 (en) * 2007-01-30 2008-07-31 Yanling Qi Application Integrated Storage System Volume Copy and Remote Volume Mirror
US20080209032A1 (en) * 2007-02-22 2008-08-28 Inventec Corporation Alarm method for insufficient storage space of network storage system
JP5087309B2 (ja) * 2007-04-24 2012-12-05 株式会社日立製作所 管理装置及び管理方法
JP4961319B2 (ja) * 2007-10-11 2012-06-27 株式会社日立製作所 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP5090941B2 (ja) * 2008-01-29 2012-12-05 株式会社日立製作所 ストレージサブシステム及びストレージシステム
US7870314B2 (en) * 2008-02-15 2011-01-11 International Business Machines Corporation Method and system for implementing store buffer allocation
JP5298594B2 (ja) * 2008-03-26 2013-09-25 富士通株式会社 割当制御プログラム、割当制御装置、および割当制御方法
WO2010089797A1 (en) 2009-02-04 2010-08-12 Hitachi, Ltd. Storage apparatus and method for eliminating redundant data storage using storage apparatus
US7852596B2 (en) * 2009-02-25 2010-12-14 Western Digital Technologies, Inc. Disk drive returning dummy data to a host when reading an unwritten data sector
CN102207905A (zh) * 2010-03-30 2011-10-05 群联电子股份有限公司 系统恢复方法、存储媒体控制器及存储系统
FR2977421B1 (fr) * 2011-06-29 2013-08-02 Bull Sas Procede d'affectation d'adresses logiques aux ports de connexion d'equipements d'une grappe de serveurs, programme d'ordinateur et grappe de serveurs correspondants
WO2013076763A1 (en) * 2011-11-22 2013-05-30 Hitachi, Ltd. Storage system and control method of storage system
US8880792B2 (en) * 2012-01-13 2014-11-04 Lenovo (Singapore) Pte. Ltd. Memory watch
US9606910B2 (en) * 2013-01-17 2017-03-28 Hitachi, Ltd. Method and apparatus for data reduction
KR102088403B1 (ko) 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
US10067882B2 (en) * 2015-01-13 2018-09-04 Hitachi, Ltd. Storage system and storage control method
CN106527959B (zh) * 2015-09-10 2019-07-26 阿里巴巴集团控股有限公司 刷新磁盘输入输出请求的处理方法及设备
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198816A (ja) * 2001-12-26 2003-07-11 Ricoh Co Ltd 画像処理装置
JP2003316589A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd 実記憶利用方法
JP2004078398A (ja) * 2002-08-13 2004-03-11 Nec Corp 仮想ボリューム管理方式
JP2005011316A (ja) * 2003-05-28 2005-01-13 Hitachi Ltd 記憶領域割当方法、システム及び仮想化装置
JP2005056077A (ja) * 2003-08-01 2005-03-03 Hitachi Ltd データベース制御方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US260841A (en) * 1882-07-11 Berlain
US5875456A (en) * 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
JP3686457B2 (ja) * 1995-08-31 2005-08-24 株式会社日立製作所 ディスクアレイサブシステム
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7139873B1 (en) * 2001-06-08 2006-11-21 Maxtor Corporation System and method for caching data streams on a storage media
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
JP2003316713A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 記憶装置システム
WO2004008322A1 (ja) * 2002-07-16 2004-01-22 Fujitsu Limited ネットワークストレージ管理装置、ネットワークストレージ管理プログラムおよびネットワークストレージ管理方法
US7664771B2 (en) * 2002-10-16 2010-02-16 Microsoft Corporation Optimizing defragmentation operations in a differential snapshotter
US6823442B1 (en) * 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US20040260841A1 (en) 2003-06-19 2004-12-23 Mathew Tisson K. Method, apparatus, and system for internet protocol communication over intelligent platform management bus
JP2005031929A (ja) * 2003-07-11 2005-02-03 Hitachi Ltd サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
US7412583B2 (en) * 2003-11-14 2008-08-12 International Business Machines Corporation Virtual incremental storage method
US7409494B2 (en) * 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
JP4870678B2 (ja) * 2004-11-05 2012-02-08 ドロボ, インコーポレイテッド 格納システム状態インジケータおよび方法
JP4684864B2 (ja) * 2005-11-16 2011-05-18 株式会社日立製作所 記憶装置システム及び記憶制御方法
JP4837378B2 (ja) * 2006-01-04 2011-12-14 株式会社日立製作所 データの改竄を防止する記憶装置
JP4890033B2 (ja) * 2006-01-19 2012-03-07 株式会社日立製作所 記憶装置システム及び記憶制御方法
JP4885575B2 (ja) * 2006-03-08 2012-02-29 株式会社日立製作所 記憶領域の割当ての最適化方法及びそれを実現するための管理計算機
JP2007265001A (ja) * 2006-03-28 2007-10-11 Hitachi Ltd ストレージ装置
JP2007280089A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
JP2007286806A (ja) * 2006-04-14 2007-11-01 Hitachi Ltd 記憶システム及びデータ保存方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198816A (ja) * 2001-12-26 2003-07-11 Ricoh Co Ltd 画像処理装置
JP2003316589A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd 実記憶利用方法
JP2004078398A (ja) * 2002-08-13 2004-03-11 Nec Corp 仮想ボリューム管理方式
JP2005011316A (ja) * 2003-05-28 2005-01-13 Hitachi Ltd 記憶領域割当方法、システム及び仮想化装置
JP2005056077A (ja) * 2003-08-01 2005-03-03 Hitachi Ltd データベース制御方法

Also Published As

Publication number Publication date
US7617371B2 (en) 2009-11-10
US20060282641A1 (en) 2006-12-14
US20100017577A1 (en) 2010-01-21
JP2006350418A (ja) 2006-12-28
CN1881167A (zh) 2006-12-20
EP1736860A1 (en) 2006-12-27
DE602006010481D1 (de) 2009-12-31
EP1736860B1 (en) 2009-11-18

Similar Documents

Publication Publication Date Title
JP4723921B2 (ja) 記憶制御装置及びその制御方法
US9785381B2 (en) Computer system and control method for the same
US7299333B2 (en) Computer system with storage system having re-configurable logical volumes
EP2399190B1 (en) Storage system and method for operating storage system
US8312246B2 (en) Storage apparatus and storage area allocation method
JP4818395B2 (ja) ストレージ装置及びデータコピー方法
US7558916B2 (en) Storage system, data processing method and storage apparatus
US9423984B2 (en) Storage apparatus and control method thereof
JP4884041B2 (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP4990828B2 (ja) ストレージ装置及びこれの制御方法
JP2003316618A (ja) コンピュータシステム
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP2008015768A (ja) 記憶システム並びにこれを用いたデータの管理方法
JP2008033911A (ja) 記憶ボリューム間でデータを移行する方法および装置
JP2002082775A (ja) 計算機システム
JP2004259079A (ja) データ処理システム
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
JP2007233896A (ja) ストレージ装置及びその制御方法
JP2009169650A (ja) 計算機システム、管理計算機及びデータ管理方法
JP2011209892A (ja) ストレージシステム、ストレージシステムの制御方法、スイッチ装置およびストレージ装置
US20100082934A1 (en) Computer system and storage system
JP2009252114A (ja) ストレージシステム及びデータ退避方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

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

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

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150