JP2011242840A - ThinProvisioningが適用されたストレージ装置 - Google Patents

ThinProvisioningが適用されたストレージ装置 Download PDF

Info

Publication number
JP2011242840A
JP2011242840A JP2010111892A JP2010111892A JP2011242840A JP 2011242840 A JP2011242840 A JP 2011242840A JP 2010111892 A JP2010111892 A JP 2010111892A JP 2010111892 A JP2010111892 A JP 2010111892A JP 2011242840 A JP2011242840 A JP 2011242840A
Authority
JP
Japan
Prior art keywords
pool
virtual
pools
allocated
physical
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
JP2010111892A
Other languages
English (en)
Other versions
JP5080611B2 (ja
Inventor
Masahiko Tamura
優彦 田村
Tomofumi Sugata
智文 菅田
Minori Awakura
顧譲 粟倉
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 JP2010111892A priority Critical patent/JP5080611B2/ja
Priority to US12/835,240 priority patent/US20110283078A1/en
Publication of JP2011242840A publication Critical patent/JP2011242840A/ja
Application granted granted Critical
Publication of JP5080611B2 publication Critical patent/JP5080611B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

【課題】プールの使用効率が低下せず、且つ、プールの空き容量が枯渇しても業務が停止しないようにする。
【解決手段】少なくとも1つのプールに、複数の仮想ボリュームのうちの2以上の仮想ボリュームが関連付けられる。各仮想ボリュームに、複数のプールのうちの2以上のプールが関連付けられる。各仮想ボリュームについて、関連付けられている2以上のプールに優先順位がある。記憶制御装置は、ライトコマンド及びライト対象データをホスト装置から受信し、そのライトコマンドから特定されるライト先の仮想領域が未割当ての仮想領域であれば、そのライトコマンドから特定されるライト先の仮想ボリュームに関連付けられている2以上のプールの優先順位を基に、それら2以上のプールから1つのプールを選択する。記憶制御装置は、選択したプール内の未割当ての物理領域をライト先の仮想領域に割り当て、割り当てた物理領域に、ライト対象データを書き込む。
【選択図】図3

Description

本発明は、Thin Provisioningが適用された記憶制御に関する。
従来、ストレージ装置では、一般に、複数のデータ記憶媒体がRAID(Redundant Array Of Independent/Inexpensive Disks)技術を用いて管理されている。複数のデータ記憶媒体は、RAIDグループという単位で管理されている。RAIDグループが提供する記憶領域は、論理的に区切られることがある。ストレージ装置は、この論理的に区切られた記憶領域(又は、RAIDグループが提供する記憶領域全体)を、「論理ボリューム」として、ホスト装置(例えば、1以上の物理的又は仮想的なコンピュータで構成されたシステム)に提供する。
近年、情報量の増大に伴い、Thin Provisioning(Dynamic Provisioningとも呼ばれる)が適用されたストレージ装置に注目が集まっている。このストレージ装置は、一般に、複数の仮想ページで構成された仮想的な論理ボリューム(以下、仮想VOL)を提供し、複数の物理ページで構成されたプールを有する。ストレージ装置は、仮想ページに対するデータの書込みの際に、書込み先の仮想ページが未割当ての仮想ページであれば、その仮想ページに物理ページをプールから割当て、割り当てた物理ページに書込み対象のデータを書き込む。「未割当ての仮想ページ」とは、物理ページが割り当てられていない仮想ページ、又は、実質的に物理ページが割り当てられていない仮想ページ(例えば、所定のデータが書き込まれた所定の物理ページが割り当てられている仮想ページ)である。
このように、Thin Provisioningによれば、ホスト装置からのデータの書き込みを契機に、仮想VOLに、プールの記憶領域の一部(物理ページ)が動的に割り当てられる。仮想VOLは、物理的な記憶領域ではなく、ユーザが使用できるように定義された仮想的な記憶領域である。仮想VOLの記憶容量は、ストレージ装置の物理的な記憶容量を超えていても良い。
ところで、プールから物理ページを割り当てるためには、プールの空き容量がゼロより大きいことが必要になる。「プールの空き容量」とは、プールにおける、1以上の空き物理ページ(仮想ページに割り当て可能な物理ページ)の総記憶容量である。
プールの空き容量を増やす方法として、例えば、プール容量の拡張、或いは、ゼロデータ削除がある。
プール容量の拡張とは、プールを構成する物理ページの数を増やすことにより、プール容量を拡張することである。
ゼロデータ削除とは、仮想VOLに割り当てられている物理ページのうち、ゼロデータ(全てのビットの値が“0”であるデータ)を記憶している物理ページを仮想VOLから解放することである。解放された物理ページは、空き物理ページとなるので、プールの空き容量が増える。
プール空き容量を増やす方法として、さらに、特許文献1に開示の方法がある。特許文献1によれば、複数のプールが存在している環境において、或るプール内の容量が枯渇する恐れがある場合には、そのプールから別のプールにデータをコピーさせる。データのコピー元の物理ページが、空き物理ページとなるので、当該プールの空き容量が増える。
特開2008−186172号公報
一般に、1つのプールに、複数の仮想VOLが関連付けられる(仮想VOLとプールはN対1である)。しかし、この場合、用途が異なる複数のホスト装置が複数の仮想VOLに対してI/O(Input/Output)が行われることに伴い、1つのプールにI/Oが集中することになる。それ故、そのプールの基になっている記憶媒体にI/Oが集中する。さらに、プールで障害が発生すると(例えば、プールの基になっているいずれかの記憶媒体で障害が発生すると)、当該プールに関連付けられているすべての仮想VOLが影響を受けてしまう。従って、上記を考慮すると、プールを用途毎に分けることが考えられる。
しかしながら、プールを用途毎に複数に分けた場合、複数のホスト装置からのデータが複数のプールに分散してしまうため、プールの使用効率が良くない。
また、プールを用途毎に複数に分けた場合、仮想VOLには、その仮想VOLの用途に対応したプールのみから物理ページが割り当てられる。そのため、或る用途のプールにI/Oが集中して突発的にそのプールの空き容量が減少した場合、他の用途のプールの空き容量が十分あっても、当該プールの空き容量が枯渇してしまうおそれがある。当該プールの空き容量が枯渇すると、そのプールの用途に対応した業務(例えば、仮想VOLに対するI/O)が停止してしまう。
本発明の目的は、プールの使用効率が低下せず、且つ、プールの空き容量が枯渇しても業務が停止しないようにすることにある。
複数の仮想ボリュームと、複数の仮想ボリュームに関連付けられた複数のプールがある。各仮想ボリュームは、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想領域で構成される。各プールは、前記複数の物理記憶デバイスに基づく複数の物理領域で構成された記憶領域である。複数のプールのうちの少なくとも1つのプールに、複数の仮想ボリュームのうちの2以上の仮想ボリュームが関連付けられる。各仮想ボリュームに、複数のプールのうちの2以上のプールが関連付けられる。各仮想ボリュームについて、関連付けられている2以上のプールに優先順位がある。記憶制御装置は、ライトコマンド及びライト対象データをホスト装置から受信し、そのライトコマンドから特定されるライト先の仮想領域が未割当ての仮想領域であれば、そのライトコマンドから特定されるライト先の仮想ボリュームに関連付けられている2以上のプールの優先順位を基に、それら2以上のプールから1つのプールを選択する。記憶制御装置は、選択したプール内の未割当ての物理領域をライト先の仮想領域に割り当て、割り当てた物理領域に、ライト対象データを書き込む。
記憶制御装置は、ストレージ装置が有するコントローラであっても良いし、ストレージ装置とホスト装置との間の通信を中継する装置(例えば、サーバ装置、或いは、インテリジェントなスイッチ装置)であっても良い。
本発明によれば、プールの使用効率が低下せず、且つ、プールの空き容量が枯渇しても業務が停止しないようにすることができる。
本発明の一実施例における計算機システムの構成例を示す図である。 ストレージ装置の詳細な構成例を示す図である。 複数の仮想ボリュームと複数のプールとの関係の一例を示す概念図である。 1つのプールを構成する複数のプールVOLと、それら複数のプールVOLとRAIDグループとの関係の一例を示す概念図である。 仮想VOLとその仮想VOLに関連付けられたプールとの関係の一例を示す図である。 メモリ内のプログラム及び情報を示す図である。 仮想VOL構成管理テーブルの構成例を示す図である。 プール構成管理テーブルの構成例を示す図である。 プールVOL構成管理テーブルの構成例を示す図である。 RAIDグループ構成管理テーブルの構成例を示す図である。 仮想VOLマップ情報テーブルの構成例を示す図である。 プールマップ情報テーブルの構成例を示す図である。 ライト処理手順を示すフローチャートである。 空きプール検索処理手順を示すフローチャートである。 配置最適化処理手順を示すフローチャートである。 カレントプール変更処理手順を示すフローチャートである。 図11に示した仮想VOLマップ情報テーブル22800に従って、仮想ページと物理ページとの対応関係を具体的に示した図である。 図12に示したプールマップ情報テーブル22900に従って、各プールの構成を具体的に示した図である。 ホスト装置(用途)の重要度に基づいてプールの優先順位を決定する方法を説明するための図である。
以下、本発明の一実施例を説明する。なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造(例えば、キュー)で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、種々の対象の識別情報として、番号が使用されるが、他種の識別情報(例えば、英字、数字、或いは他の符号、又は、それらの組合せ)も採用可能である。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、ストレージ装置のコントローラが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
また、本実施例で言う「用途」は、例えば、以下の(A)及び(B)、
(A)ホスト装置で実行される一つ以上のアプリケーションプログラム、
(B)(b1)当該プログラムの設定情報、(b2)当該プログラムが処理対象とするデータ、(b3)当該プログラムが受信する処理要求の内容、及び(b4)当該プログラムが処理要求を受信する頻度、のうちの少なくとも1つ、
によって定められる、ホスト装置が行う一連のオペレーションである。
図1は、本発明の一実施例における計算機システムの構成例を示す。
計算機システムにおいて、ストレージ装置20000と、ホスト装置10000が、ネットワーク30000によって接続される。ホスト装置10000は、例えば、サーバ、ワークステーション、メインフレームなどの1以上の物理的なコンピュータ、或いは、物理的なコンピュータが有するハードウェア資源(例えば、プロセッサ、メモリ)が割り当てられた1以上の仮想的なコンピュータである。ネットワーク30000は、例えば、SAN(Storage Area Network)、LAN(Local Area Network)などである。
図2は、ストレージ装置20000の詳細な構成例を示す。
ストレージ装置20000は、コントローラ10と、コントローラ10に接続されたストレージユニット23000とを有する。
コントローラ10は、例えば、下記の要素、
(*)ネットワーク30000を介してホスト装置10000に接続するためのインタフェース装置(ホスト装置I/F)25000、
(*)ストレージユニット23000内のハードディスクドライブ(以下、HDD)24000に接続されるインタフェース装置(HDD I/F)11、
(*)ストレージ装置20000内の制御を行うプロセッサ21000、
(*)プロセッサ21000が使用するメモリ22000、
を有する。これらの要素は、すべて内部バス等で接続される。
ストレージユニット23000は、データ記憶媒体が格納されるユニットであり、具体的には、複数のHDD24000を有する。複数のHDD24000は、複数のRAIDグループ(図示せず)の構成要素で良い。各RAIDグループは、2以上のHDDで構成されており、所定のRAIDレベルで、データを記憶する。
HDD24000は、例えばFC(Fibre Channel)ディスクドライブ、SAS(Serial Attached SCSI)ディスクドライブ、SATA(Serial Advanced Technology Attachment)ディスクドライブなどである。
本実施例では、データ記憶媒体として、HDD24000を用いているが、フラッシュメモリドライブ等の他のデータ記憶媒体を用いてもよい。また、ストレージ装置20000に接続された外部のストレージ装置が、ストレージユニット23000の全部又は一部であってよい。
図3は、複数の仮想VOL26000と複数のプール27000との対応関係の一例を示す概念図である。なお、以下の説明では、論理ボリュームを「VOL」と略す。また、以下の説明では、同種の複数の要素を、要素の識別番号を用いて区別することがある。例えば、複数の要素Aを区別する場合、「A#x」と記載することがある。「A#x」は、識別番号がxの要素Aであることを意味する。“x”は、0以上の整数である。
各仮想VOL26000は、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想ページで構成されている。仮想ページは、仮想的な記憶領域であり、例えば、アドレス範囲である。アドレスは、例えば、LBA(Logical Block Address)である。
一般的に、各プール27000は、複数の物理ページ(物理的な記憶領域)で構成される。本実施例では、各プール27000は、1以上のプールVOL28000で構成され、各プールVOL28000が、2以上の物理ページで構成されている。すなわち、各プール27000は、複数の物理ページより構成される物理ページ群である。各プールVOL28000は、ストレージユニット23000に基づくVOL(実体的なVOL)である。
複数のプール27000のうちの少なくとも1つのプール27000に、複数の仮想VOL26000のうちの1以上の仮想VOL26000が関連付けられる。
一方、各仮想VOL26000には、複数のプール27000のうちの1以上のプール27000が関連付けられる。少なくとも1つの仮想VOLには、2以上のプールが関連付けられる。そして、各仮想VOL26000について、関連付けられているプールには、優先順位がある。優先順位は、高い方から順に、「プライマリ」、「セカンダリ」、「サード」、…、となる。
プールの優先順位は、絶対的な順位ではなく、関連付けられる仮想VOLによって異なることがある。すなわち、2以上の仮想VOLが関連付けられるプールの優先順位は、その関連付けられている仮想VOLによって異なることがある。具体的には、例えば、図3に示すように、仮想VOL#0について、プール#1の優先順位はサードであるが、仮想VOL#1について、プール#1の優先順位はプライマリである。
以下、優先順位がkであるプールを「kプール」と言うことがある。具体的には、例えば、優先順位がプライマリのプールを「プライマリプール」と言い、優先順位がセカンダリのプールを「セカンダリプール」と言い、優先順位がサードのプールを「サードプール」と言うことがある。例えば、仮想VOL#0については、プール#0がプライマリプールであり、プール#2がセカンダリプールであり、プール#1がサードプールである。
各仮想VOL26000について、関連付けられている2以上のプールのうちのいずれか1つが、カレントプールである。「カレントプール」は、物理ページの現在の割当て元である。仮想VOL26000内の仮想ページには、その仮想VOL26000にとってのカレントプールから、物理ページが割り当てられる。
各仮想VOL26000について、カレントプールは、最初、その仮想VOL26000について優先順位の最も高いプール(つまりプライマリプール)である。従って、最初、例えば、仮想VOL#0のカレントプールは、プール#0であり、仮想VOL#Nのカレントプールは、プール#Nである。
各仮想VOL26000について、カレントプールの空き容量が枯渇した場合、そのカレントプールより優先順位が1つ低いプールが、カレントプールとなる。従って、例えば、仮想VOL#0について言えば、カレントプールは、プール#0(プライマリプール)からプール#2(セカンダリプール)に変わり、その後、プール#2(セカンダリプール)からプール#1(サードプール)に変わる。つまり、各仮想VOLについて、カレントプールは、プールの優先順位に基づいて変わる。
図3の説明によれば、プールは、用途毎に分けられておらず、複数の仮想VOLが関連付けられる。このため、プールの使用効率の低下を避けることができる。
また、図3の説明によれば、仮想VOL内の仮想ページに物理ページを割り当てる必要がある場合、その仮想VOLにとってのカレントプールの空き容量が枯渇していても(空き物理ページ数がゼロであっても)、その仮想VOLに関連付けられている別のプールがカレントプールとされ、その別のプールから物理ページが割り当てられる。このため、プールの空き容量が枯渇しても業務が停止しないようにすることができる。
なお、仮想VOL26000とプール27000とを関連付ける際や、各仮想VOLについてプールの優先順位を決定する際に、ホスト装置10000(用途)の重要度を参酌することができる。その具体例は、例えば、下記の通りである。仮想VOLをプールに関連付けること、及び/又は、各仮想VOLについてプールの優先順位を決定することは、人間(例えば管理者)が行っても良いし、コントローラ10が行っても良い。
(具体例1)重要度が高い(例えば重要度が最も高い)ホスト装置からアクセスされる(I/Oが行われる)仮想VOL26000に関連付けられるプライマリプールは、その仮想VOL26000の専用のプールとするため、他の仮想VOL26000に関連付けないこともできる。具体的には、例えば、メモリ22000が、ホスト装置毎に重要度とアクセス先の仮想VOLの識別番号とを有するホスト管理テーブル(図示せず)を記憶して良い。コントローラ10は、ホスト管理テーブルを基に、どの重要度のホスト装置がどの仮想VOLにアクセスするかを特定し、特定された仮想VOLに関連付けられたプライマリプールには、他の仮想VOLを関連付けないよう制御することができる。図3の例によれば、プール#0が、仮想VOL#0以外の仮想VOLに関連付けられていないため、仮想VOL#0の専用のプールである。
(具体例2)図19に示すように、各仮想VOLについて、まず、関連付けられる2以上のプールのうちの1つのプールの優先順位がプライマリとされる。その後、ホスト装置の重要度を基に、各仮想VOLについて、プライマリ以外の1以上の優先順位が決定される。具体的には、各仮想VOLについて、プライマリプール以外のプールの優先順位は、そのプールがプライマリプールとして関連付けられている他の仮想VOLにアクセスするホスト装置の重要度が低いほど、高い。図19の例によれば、仮想VOL#0はプール#0〜#3に関連付けられており、プライマリプール#0以外のプール#1〜#3の優先順位は、例えば、コントローラ10によって、前述のホスト管理テーブルを基に、以下のように決定される。なお、以下の説明では、重要度は、「高」、「中」、「低」の3段階であるが、重要度は、3段階未満であっても3段階より多くても良い。また、以下の説明では、重要度が「高」に分類されるホスト装置(用途)を「高ホスト装置」と言い、重要度が「中」に分類されるホスト装置を「中ホスト装置」と言い、重要度が「低」に分類されるホスト装置を「低ホスト装置」と言う。
(*)コントローラ10が、低ホスト装置からアクセスされる仮想VOL#2を特定し、且つ、その仮想VOL#2に関連付けられているプール#1を特定する。コントローラ10は、仮想VOL#0について、プール#1の優先順位を、セカンダリに決定する。
(*)コントローラ10が、中ホスト装置からアクセスされる仮想VOL#1を特定し、且つ、その仮想VOL#1に関連付けられているプール#2及び#3を特定する。コントローラ10は、ホスト装置の重要度が同一である2以上のプール(#2及び#3)のそれぞれの優先順位を、それら2以上のプール(#2及び#3)の属性を基に決定する。その属性は、例えば、プールのアクセス性能(データの入出力の速度)又はそれに影響する属性(例えば、プールの基になっているHDDの種類)であっても良い。具体的には、例えば、アクセス性能のより優れているプールがより高い優先順位とされて良い。図19の例によれば、プール#2が、SAS HDDに基づいていて、プール#3が、SAS HDDよりアクセス性能の低いSATA HDDに基づいている。このため、プール#3の優先順位がフォースとされ、プール#2の優先順位が、プール#3の優先順位より高いサードとされる。
具体例2によれば、仮想VOL#0について、低ホスト装置からアクセスされる仮想VOLに関連付けられているプール#1の優先順位の方が、中ホスト装置からアクセスされる仮想VOLに関連付けられているプール#2の優先順位よりも、高くされる。その理由は、重要度が低いホスト装置からアクセスされる仮想VOLに関連付けられているプールの空き容量が枯渇することは、重要度が高いホスト装置からアクセスされる仮想VOLに関連付けられているプールの空き容量が枯渇することに比べて、影響は小さいからである。
図4は、1つのプール27000を構成する複数のプールVOL28000と、それら複数のプールVOL28000とRAIDグループ29000との関係の一例を示す概念図である。
1つ以上のRAIDグループ29000を基に、1つ以上のVOLが作成される。つまり、1つのVOLは、1つのRAIDグループを基に作成されても良いし、複数のRAIDグループを基に作成されても良い。また、1つのRAIDグループを基に、複数のVOLが作成されても良い。
例えば、図4において、1つのプール27000が、4つのプールVOL#0〜#3で構成されている。1つのRAIDグループ#0を基に、1つのプールVOL#0が作成されている。また、1つのRAIDグループ#1を基に、2つのプールVOL#1及び#2が作成されている。また、2つのRAIDグループ#2及び#3を基に、1つのプールVOL#3が作成されている。プールVOL#3は、例えば、RAIDグループ#2を基に作成されたVOLとRAIDグループ#3を基に作成されたVOLとが連結されたVOL(拡張論理VOL)で良い。
図5は、仮想VOL26000とその仮想VOL26000に関連付けられたプール27000との関係の一例を示す図である。
1つの仮想VOL26000に対して、プール#0(プライマリプール),プール#1(サードプール),プール#2(セカンダリプール)の合計3つのプールが関連付けられている。
仮想VOL26000は、初めに仮想VOL容量(仮想VOLの記憶容量)が定義された時点では、物理ページが割り当てられていない。ホスト装置10000から仮想VOL26000へのデータの書き込みを契機に、書込み先の未割当ての仮想ページに、3つのプール27000のうちのカレントプールから、物理ページが割り当てられる。
すなわち、「ページ」とは、記憶領域の割り当てを行う際の最小単位であり、仮想VOL26000内の書込み先の仮想ページに対して、プール27000内の物理ページが動的に割り当てられる。ここで、仮想VOL26000における割り当て済みの仮想ページ(物理ページが割り当てられている仮想ページ)の総和を容量に変換した数値が、「仮想VOL使用容量」である。
仮想VOL26000に関連付けられているプール27000のうち、優先順位の高いプールから優先的にカレントプールとされる。このため、初め、プライマリプール#0が、カレントプールであり、プライマリプール#0の空き容量が枯渇した場合、セカンダリプール#2が、カレントプールとされる。その後、セカンダリプール#2の空き容量が枯渇した場合、サードプール#1が、カレントプールとされる。
しかしながら、前述の環境において、プライマリプール#0の空き容量が枯渇した場合、仮想VOL#0に無制限にセカンダリプール#2及び/又はサードプール#1から物理ページが割り当てられるとすると、セカンダリプール#2又はサードプール#1をプライマリプールとする他の仮想VOL(その仮想VOLを利用するホスト装置)に影響を与えることになる。
そこで、本実施例では、「判定基準値」がプール毎に付与される。カレントプールがプライマリプール以外のプールであって、そのプールの使用率がそのプールの判定基準値以上の場合、そのプールから仮想VOLに物理ページが割り当てられない。つまり、プライマリプール以外のプールから仮想VOLへの物理ページの割り当てに制限がかけられる。そのプールをプライマリプールとしている他の仮想VOLに割り当てるための物理ページを確保しておくためである。この詳細な方法については、後に図8を参照して詳しく説明する。なお、プールの使用率とは、プール容量に対するプールの使用容量の割合である。プールの使用容量とは、そのプールにおける、仮想VOLに割り当てられている物理ページの総容量である。
図6は、メモリ22000内のプログラム及び情報を示す。
メモリ22000は、下記のコンピュータプログラム及び情報、
(*)ホスト装置10000からのI/O要求(書込み要求、読出し要求)を処理するためのI/O処理プログラム22100、
(*)カレントプールの空き容量が枯渇している場合に空き容量を有するプールを検索する空きプール検索処理プログラム22200、
(*)空き容量が枯渇したプライマリプールの空き容量を増加させた後に、プライマリプール以外のプール内のデータをプライマリプールに戻すための配置最適化処理プログラム22300、
(*)カレントプールを変更するカレントプール変更処理プログラム22350、
(*)各仮想VOLに関する情報を有する仮想VOL構成管理テーブル22400、
(*)各プールに関する情報を有するプール構成管理テーブル22500、
(*)各プールVOLに関する情報を有するプールVOL構成管理テーブル22600、
(*)各RAIDグループに関する情報を有するRAIDグループ構成管理テーブル22700、
(*)仮想ページと物理ページとの対応関係を表す情報を有する仮想VOLマップ情報テーブル22800、
(*)各物理ページのステータス(割当て済みか否か)に関する情報を有するプールマップ情報テーブル22900、
を記憶する。但し、プールVOL構成管理テーブル22600、RAIDグループ構成管理テーブル22700については、前記の各プログラムでは直接利用されないで良い。
図7は、仮想VOL構成管理テーブル22400の構成を示す。
仮想VOL構成管理テーブル22400は、仮想ボリューム毎に、下記の情報、
(*)仮想ボリュームの識別番号である仮想VOL番号22410、
(*)仮想ボリュームの容量を表す値である仮想VOL容量22420、
(*)仮想ボリュームの使用容量を表す値である仮想VOL使用容量22430、
(*)仮想ボリュームに関連付けられているプールの数を表す値である関連付けプール数22440、
(*)仮想ボリュームについて現在採用されているプール優先順位を表す値であるカレントプール22450、
(*)仮想ボリュームに関連付けられているプールとその優先順位を表すプール番号22460、
を有する。
仮想ボリュームの「使用容量」とは、前述したように、物理ページが割り当てられている仮想ページの総和を容量に変換した数値、すなわち、物理ページが割り当てられている仮想ページの総容量である。
関連付けプール数22440は、プール番号22460に登録されているプールの合計数(例えばN/A以外の合計数)を表す。
プール番号22460は、q個のカラムで構成されている(qは1以上の整数)。各カラムは、優先順位qを表す値である「Pq」と(PqのPは「Priority」の略)、Pqに対応するプールの識別番号とを有する。例えば、P1、P2及びP3は、それぞれ、プライマリプール、セカンダリプール及びサードプールを示す。各仮想VOLには、最大q個のプールを関連付けることができる。仮想VOLに関連付けられるプールの数がq未満の場合、少なくとも最下位の優先順位に対応したカラムには、プールが関連付けられていないことを表す値(例えばN/A)が登録される。
図7の例によれば、仮想VOL#0について、下記のこと、
(*)関連付けられているプールの数が3(プライマリプール、セカンダリプール、サードプール)であること、
(*)仮想VOL#0の容量が1000GBであること、
(*)仮想VOL#0の使用容量が625GBであること、
(*)プライマリプールがプール#0であり(P1が「0」)、セカンダリプールがプール#2であり(P2が「2」)、サードプールがプール#1(P3が「1」)であること、
(*)カレントプールが、セカンダリプールであること(カレントプール22450が「P2」)、
が分かる。
図8は、プール構成管理テーブル22500の構成を示す。
プール構成管理テーブル22500は、プール毎に、下記情報、
(*)プールの識別番号であるプール番号22510、
(*)プール容量を表す値であるプール容量22520、
(*)プールの空き容量を表す値であるプール空き容量22530、
(*)プールの使用率を表す値であるプール使用率22540、
(*)プライマリプール以外のプールの使用率と比較される閾値(判定基準値)である判定基準値22550、
(*)プールを構成するプールVOL28000の識別番号であるプールVOL番号22560、
を有する。
「プール容量22520」は、プールの容量であるが、具体的には、プールを構成するプールVOLの容量の総和から特定の領域(例えば、特定の情報が格納される管理領域のような、ホスト装置からのデータが格納されない領域)の容量が減算された値である。
「プールの空き容量22530」は、プールにおける未割り当ての物理ページ(空き物理ページ)の総和を容量に変換した数値である。
判定基準値22500は、0%から100%の任意の値で良い。ここで、0%は、例えばN/Aなど、0%に相当する別の値で表されてもよい。判定基準値22540が「0%」であるプールが、プライマリプール以外のプールであれば、そのプールが空き容量を有していても、そのプールから物理ページが割り当てられない。一方、判定基準値22540が「100%」であるプールが、プライマリプール以外のプールであっても、そのプールが空き容量を有してさえいれば、そのプールから物理ページが割り当てられる。
判定基準値22550は、例えば、それに対応するプールがプライマリプールとして関連付けられている仮想VOLにアクセスするホスト装置(用途)の重要度に応じて決定されて良い。具体的には、例えば、下記のように決定されて良い。以下の説明では、重要度が「高」に分類されるホスト装置(業務)を「高ホスト装置」と言い、重要度が「中」に分類されるホスト装置(業務)を「中ホスト装置」と言い、重要度が「低」に分類されるホスト装置(業務)を「低ホスト装置」と言う。
(*)高ホスト装置からアクセスされる仮想VOLのプライマリプール(この段落において「プールX」と言う)は、仮想VOLに専用のプールとして利用されることが好ましい。換言すれば、中ホスト装置又は低ホスト装置からアクセスされる仮想VOLにプールXから物理ページが割り当てられることは好ましくない。このため、プールXの判定基準値22550は、「0%」とされる。これにより、中ホスト装置又は低ホスト装置からアクセスされる仮想VOLには、プールXから物理ページが割り当てられず、プールX内の物理ページは、高ホスト装置からアクセスされる仮想VOLにのみ割り当てられる。
(*)低ホスト装置からアクセスされる仮想VOLのプライマリプール(この段落において「プールY」と言う)は、その仮想VOLに専用のプールとする必要がない。換言すれば、高ホスト装置及び中ホスト装置からアクセスされる仮想VOLにプールYから物理ページが無制限に割り当てられて良い。このため、プールYの判定基準値22550は、「100%」とされる。これにより、高ホスト装置又は中ホスト装置からアクセスされる仮想VOLに、プール容量が枯渇するまで、プールYから無制限に物理ページが割り当てられる。
(*)中ホスト装置からアクセスされる仮想VOLのプライマリプール(この段落において「プールZ」と言う)の容量のうち、将来の或る時点までに中ホスト装置が最低限使用することが予想される容量以外の容量については、高ホスト装置又は低ホスト装置からのデータの格納に使用されても良い。つまり、プールZの判定基準値22550は、将来のある時点までに予想されるプール使用容量を基に、決定されて良い。例えば、プールZの容量が500GBで、プールZのプール使用率が60%(使用容量=300GB)であり、1年後に400GBまで中ホスト装置によって消費されることが予想されるケースにおいては、プールZの判定基準値22550は、「80%」とされる。これにより、プールZのプール使用率22540が80%を超えた場合には、高ホスト装置又は低ホスト装置からアクセスされる仮想VOLに物理ページが割り当てられない。その後は、プールZの使用率が80%未満にならない限り、プールZからは、中ホスト装置からアクセスされる仮想VOLにのみ物理ページが割り当てられる。これにより、高ホスト装置又は低ホスト装置からアクセスされる仮想VOLにプールZから物理ページが割り当てられる場合でも、中ホスト装置への影響を低減することができる。
なお、第1のホスト装置からアクセスされる仮想VOLに関連付けられるプライマリプール(以下、この段落において「プールJ」)の判定基準値に関わらず、以下の制御が行われて良い。すなわち、プールJからは、第2のホスト装置(第1のホスト装置の重要度より高い重要度のホスト装置)からアクセスされる仮想VOLに物理ページが割当て可能であって、第3のホスト装置(第1のホスト装置の重要度より低い重要度のホスト装置)からアクセスされる仮想VOLに物理ページが割当て不可能とされて良い。これにより、第1のホスト装置より重要度が低い第3のホスト装置からのデータがプールJに書き込まれたせいで第1のホスト装置からのデータをプールJに書き込めないことを回避することができる。
上記のような観点を基に判定基準値を決定することは、人間(例えば管理者)が行っても良いし、コントローラ10が行っても良い。後者の場合、コントローラ10は、前述したホスト管理テーブル(どの仮想VOLがどの重要度に分類されているホスト装置からアクセスされるかを表す情報)を基に、各プールの判定基準値を決定することができる。
図9は、プールVOL構成管理テーブル22600の構成を示す。
プールVOL構成管理テーブル22600は、プールVOL毎に、下記情報、
(*)プールVOLの識別番号であるプールVOL番号22610、
(*)プールVOLの容量を表すプールVOL容量22620、
(*)プールVOLの基になっているRAIDグループの識別番号であるRG番号22630、
を有する。
図9の例によれば、プールVOL#0について、下記のこと、
(*)プールVOL#0の容量が250GBであること、
(*)プールVOL#0がRAIDグループ#0に基づいていること、
が分かる。
図10は、RAIDグループ構成管理テーブル22700の構成を示す。
RAIDグループ構成管理テーブル22700は、RAIDグループ毎に、下記情報、
(*)RAIDグループの識別番号であるRG番号22710、
(*)RAIDグループの容量(VOLとして利用可能な容量)を示す値であるRG容量22720、
(*)RAIDグループのRAIDレベルを示すRAIDレベル22730、
(*)RAIDグループを構成しているHDD24000の識別番号であるHDD番号22740、
(*)RAIDグループを構成している各HDD24000の容量を示す値であるHDD容量22750、
を有する。
図10の例によれば、RAIDグループ#0について、下記のこと、
(*)RAIDグループ#0のRAIDレベルが「1+0」であること、
(*)RAIDグループ#0を構成するHDDが4つであり、各HDDのHDD番号が「0」、「1」、「2」及び「3」であること、
(*)RAIDグループ#0を構成する各HDDの容量が125GBであること、
(*)RAIDグループ#0を構成するHDDの総容量は、500GB(125GB(HDD容量)×4(HDD数))であるが、RAIDレベルが「1+0」であるため、VOLとして利用可能な容量が、250GB(500GBの半分)であること、
が分かる。
図11は、仮想VOLマップ情報テーブル22800の構成を示す。
仮想VOLマップ情報テーブル22800は、仮想ページ毎に、下記情報、
(*)仮想ページを有する仮想VOLの識別番号である仮想VOL番号22810、
(*)仮想ページを有する仮想VOLにおける、仮想ページの識別番号、である仮想VOL内ページ番号22820、
(*)仮想ページを有する仮想VOLにおける、仮想ページのアドレス範囲、を示す仮想VOLアドレス22830、
(*)仮想ページに割り当てられている物理ページを有するプールの識別番号であるプール番号22840、
(*)仮想ページに割り当てられている物理ページの、その物理ページを有するプール内での識別番号、を示すプール内ページ番号22850、
を有する。
プール番号22840(プール内ページ番号22850)は、仮想ページに物理ページが割り当てられていない場合、割り当てられている物理ページがないことを意味する値(例えばN/A)を示す。
図11に示す仮想VOLマップ情報テーブル22800によれば、図17に示す対応関係となる。すなわち、例えば、仮想VOL#0内の仮想ページ#0(アドレス範囲:0−999)には、プール#0内の物理ページ#0が割り当てられていることが分かる。また、例えば、仮想ページ#4(アドレス範囲:4000−4999)には、プール#2内の物理ページ#1が割り当てられていることが分かる。また、例えば、プール#1からは仮想VOL#0に物理ページが1つも割り当てられていないことも分かる。
図12は、プールマップ情報テーブル22900の構成を示す。
プールマップ情報テーブル22900は、物理ページ毎に、下記情報、
(*)物理ページを有するプールの識別番号であるプール番号22910、
(*)物理ページを有するプール内での、物理ページの識別番号、であるプール内ページ番号22920、
(*)物理ページを有するプールVOLの識別番号であるプールVOL番号22930、
(*)物理ページを有するプールVOLでの、物理ページのアドレス範囲、を示すプールVOLアドレス22940、
(*)物理プールが仮想VOLへ割り当てられているかどうかを示す仮想VOL割当有無22950、
を有する。
図12に示すプールマップ情報テーブル22900によれば、図18に示す構成となる。すなわち、例えば、プール#0内の物理ページ#0は、プールVOL#0のアドレス範囲:0−999における領域であり、プール#2内の物理ページ#0は、プールVOL#4のアドレス範囲:0−999における領域であることが分かる。
次に、図13〜図16に示されるフローチャートを参照して、本実施例の処理手順について説明する。
図13は、I/O処理プログラム22100により実行されるライト処理手順のフローチャートを示す。
ステップ22101では、コントローラ10(ホスト装置I/F25000)が、ライトコマンド及びライト対象データをホスト装置から受信する。ライトコマンドは、例えば、ライト先のVOLの識別番号(例えばLUN(Logical Unit Number))と、ライト先の領域のアドレス(例えばLBA(Logical Block Address))とを含んだライト先情報を有する。
ステップ22102では、I/O処理プログラム22100が、受信したライトコマンドが有するライト先情報を基に、ライト先の仮想VOL及びライト先の仮想ページを特定する。
ステップ22103では、プロセッサ21000が、仮想VOLマップ情報テーブル22800を基に、ステップ22102で特定した仮想ページが割当て済みの仮想ページあるか否かを判断する。その仮想ページに「N/A」ではないプール番号22840及びプール内ページ番号22850が対応付けられていれば、ライト先の仮想ページは割当て済みの仮想ページである。この判断の結果が肯定的の場合(ステップ22103:Yes)、ステップ22104が行われる。一方、この判断の結果が否定的の場合(ステップ22103:No)、すなわち、ライト先の仮想ページが未割当ての仮想ページの場合、ステップ22105が行われる。
ステップ22104では、プロセッサ21000が、ライト先の仮想ページに割り当てられている物理ページに、ライト対象データを書き込み、ホスト装置10000に実行結果(ライト成功)を返す。なお、前述のステップ22101で、プロセッサ21000が、受信したライト対象データをメモリ22000(キャッシュメモリ領域)に書き込んで良く、そのときに、ライト成功という実行結果をホスト装置に返しても良い。
ステップ22105では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照し、ライト先の仮想VOLに対応したカレントプール22450及びプール番号22460から、ライト先の仮想VOLのカレントプールと、ライト先仮想VOLについての、カレントプールの優先順位とを、特定する。
ステップ22106では、プロセッサ21000が、プールマップ情報テーブル22900を基に、ステップ22105で特定したカレントプール27000に空き物理ページがあるかどうかを確認する。
そして、カレントプールに空き物理ページが存在する場合(ステップ22107:Yes)、ステップ22108が行われる。カレントプールに空き物理ページが存在しない場合(ステップ22107:No)、ステップ22109が行われる。
ステップ22108では、プロセッサ21000が、ライト先の仮想VOL(ライト先の仮想ページ)に、カレントプール内の空き物理ページを割り当てる。その後ステップ22104が行われる。
ステップ22109では、カレントプールに空き物理ページが存在しないので、プロセッサ21000が、空きプール検索処理プログラム22200を実行する(詳しくは、図14のフローチャート参照)。ライト先の仮想VOLに関連付けられている他の1以上のプールから空きプール(空き物理ページを有するプール)を探すためである。その後、ステップ22110が行われる。
ステップ22110では、プロセッサ21000が、空きプール検索処理プログラム22200の実行結果をもとに、ライト先の仮想VOLについて、カレントプール以外の1以上のプールに空きプールが存在するか否かを判断する。
空きプールが存在する場合(ステップ22110:Yes)、ステップ22108が行われる。すなわち、I/O処理プログラム22100が、空きプール(変更後のカレントプール)からライト先の仮想ページに物理ページを割り当てる。
空きプールが存在しない場合(ステップ22110:No)、ステップ22111が行われる。すなわち、プロセッサ21000が、ホスト装置10000にエラーを返す。
図14は、空きプール検索処理プログラム22200により実行される空きプール検索処理手順のフローチャートを示す。これは、図13のステップ22109の詳細である。
ステップ22201では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照し、関連付けプール数22440とカレントプール22450を確認する。
ステップ22202では、プロセッサ21000が、ステップ22201で確認した関連付けプール数22440とカレントプール22450の数値部分とを比較し、それらが互いに一致しているか否かを判断する。それらが一致しているということは、ライト先の仮想VOLに割り当てられているプールに、ステップ22203以降の処理を必要とするプールが1つも無いことを意味する。一致している場合(ステップ22202:Yes)、ステップ22209が行われる。一致していない場合(ステップ22202:No)、ステップ22203が行われる。
ステップ22203では、プロセッサ21000が、ライト先の仮想VOLに対応したカレントプール22450が表す優先順位を1つ下げる(優先順位Pqのqに1を加算する)。これにより、そのカレントプール22450が更新される。プロセッサ21000は、ライト先の仮想VOLに対応したプール番号22460における、更新後のカレントプール22450に対応したプール(つまり、新たにカレントプールとされたプール)27000を特定する。
ステップ22204では、プロセッサ21000が、プール構成管理テーブル22500を参照し、ステップ22203で特定したプール27000に対応するプール使用率22540と判定基準値22550とを確認する。
ステップ22205では、プロセッサ21000が、ステップ22204で確認したプール使用率22540と判定基準値22550とを比較し、プール使用率22540が判定基準値22550を超えているか否かを判断する。超えている場合(ステップ22205:Yes)、ステップ22202が再度行われる。つまり、プロセッサ21000は、ステップ22203で特定したプールに空き物理ページがあるとしても、そのプールから空き物理ページをライト先の仮想ページに割り当てない。一方、超えていない場合(ステップ22205:No)、ステップ22206が行われる。
ステップ22206では、プロセッサ21000が、プールマップ情報テーブル22900を参照し、ステップ22203で特定したプール27000に空き物理ページがあるか否かを判断する。
空き物理ページが存在する場合(ステップ22207:Yes)、ステップ22208が行われる。一方、空き物理ページが存在しない場合(ステップ22207:No)、ステップ22202が行われる。
ステップ22208では、プロセッサ21000が、ライト先の仮想VOL26000について空きプールが存在することを、処理結果として、実行元(I/O処理プログラム22100)に返す。
ステップ22209では、プロセッサ21000が、空きプールが存在しないことを、処理結果として、実行元に返す。
図15は、配置最適化処理プログラム22300により実行される配置最適化処理手順のフローチャートを示す。この処理手順は、例えば、定期的に開始される。
配置最適化処理プログラム22300は、各仮想VOLについて、プライマリプール以外のプール27000内の物理ページ(コピー元ページ)から、プライマリプール内の空き物理ページ(コピー先ページ)に、データをコピーする(つまりデータを再配置する)。そして、そのプログラム22300は、コピーページが割り当てられている仮想ページに、コピー元ページに代えてコピー先ページを割り当てるよう、仮想VOLマップ情報テーブル22800を更新する。
配置最適化処理プログラム22300は、各仮想VOLについて、プライマリプールの空き容量を増やす処理を行う。空き容量を増やす処理としては、例えば、プライマリプールにプールVOL28000を追加することによりプライマリプールの容量を拡張すること、又は、プライマリプールについてゼロデータ削除を行うことがある。ゼロデータ削除とは、割当て済みの物理ページのうち、ゼロデータ(全てのビットの値が“0”であるデータ)を記憶している物理ページを仮想VOLから解放することである。解放された物理ページは、空き物理ページとなるので、プールの空き容量が増える。
プライマリプールの空き容量が枯渇している状態では、プライマリプールに空きの物理ページが無いので、プライマリプール以外のプール内の物理ページからプライマリプール内の物理ページへのデータのコピーは行われない。
ステップ22301では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照し、仮想VOL番号22410がX(初期値:0)のプライマリプール(P1)のプール番号22460を確認する。つまり、プロセッサ21000は、仮想VOL#Xに対応したプライマリプールを特定する。
ステップ22302では、プロセッサ21000が、仮想VOLマップ情報テーブル22800を参照し、仮想VOL番号22410がXの仮想VOL26000内の仮想ページに対応するプール番号22840を確認する。つまり、プロセッサ21000は、仮想VOL#Xに割り当てられている物理ページを有するプールを特定する。
ステップ22303では、プロセッサ21000が、ステップ22301で確認したプール番号22460(プライマリプール)と、ステップ22302で確認したプール番号22840とが一致しているか否かを判断する。つまり、プロセッサ21000は、ステップ22301で特定したプールと、ステップ22302で特定したプールが同じであるか否かを判断する。
一致している場合(ステップ22303:Yes)、ステップ22307が行われる。一致していない場合(ステップ22303:No)、ステップ22304が行われる。
ステップ22304では、プロセッサ21000が、プールマップ情報テーブル22900を参照し、プライマリプールから空き物理ページを探す。ここで、参照先を、プール構成管理テーブル22500とし、プロセッサ21000は、プール空き容量22530を確認してもよい。以降は、プールマップ情報テーブル22900を参照した場合の処理について説明する。
プライマリプールに空き物理ページが存在する場合(ステップ22305:Yes)、ステップ22306が行われる。空き物理ページが存在しない場合(ステップ22305:No)、ステップ22307が行われる。
ステップ22306では、プロセッサ21000が、仮想VOL#Xについて、プライマリプール以外のプール内の物理ページに存在しているデータを、プライマリプール内の空き物理ページにコピーする。コピー完了後に、プロセッサ21000が、仮想VOLマップ情報テーブル22800のコピー元ページのプール番号22840と、プール内ページ番号22850とを、コピー先ページ(プライマリプールのページ)のプール番号22840とプール内ページ番号22850に変更する。これにより、コピー元ページは、空き物理ページとされる。なお、この時点で、コピー元ページにゼロデータ(全てのビットの値が“0”であるデータ)を書き込むようにして良い(コピー元ページの初期化)。
ステップ22307では、プロセッサ21000が、仮想VOLマップ情報テーブル22800の仮想VOL内ページ番号を参照し、処理対象の仮想ページが、仮想VOL#Xの最終ページであるか否かを判断する。最終ページである場合(ステップ22307:Yes)、ステップ22308が行われる。最終ページ以外の場合(ステップ22307:No)、ステップ22302が再度行われる。
ステップ22308では、プロセッサ21000が、Xの値に1を加算して、仮想VOL番号22410がX+1の仮想VOL(仮想VOL#X(X=(X+1))を確認する。ステップ22308では、プロセッサ21000が、仮想VOL構成管理テーブル22400の仮想VOL番号22410を参照し、仮想VOL番号22410がX+1の仮想VOLが存在するかを判断する。ここで、参照先は、仮想VOLマップ情報テーブル22800の仮想VOL番号22810でもよい。以降は、仮想VOL構成管理テーブル22400を参照した場合の処理について説明する。
仮想VOL番号22410がX+1の仮想VOLが存在する場合(ステップ22309:Yes)、ステップ22301が行われる。存在しない場合(ステップ22309:No)、ステップ22310が行われる。
ステップ22310では、プロセッサ21000が、カレントプール変更処理プログラム22350を実行する(具体的には、図16のフローチャートを参照)。つまり、各仮想VOLについて、カレントプールより優先順位の高いプールに空き物理ページがある場合、カレントプールは、その優先順位の高いプールに変更される。
図16は、カレントプール変更処理プログラム22350により実行されるカレントプール変更処理手順のフローチャートを示す。
カレントプール変更処理プログラム22350は、カレントプールを、より優先順位の高いプール(例えば、サードプールの上位プールはプライマリプール或いはセカンダリプール)に変更する処理を行う。
カレントプール変更処理プログラム22350は、例えば、プライマリプールの空き容量が増えた場合に実行されても良いし、配置最適化処理手順の中で実行されても良い。
ステップ22351では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照し、仮想VOL番号22410がX(初期値:0)のカレントプール22450を確認する。
ステップ22352では、プロセッサ21000が、ステップ22351で確認したカレントプール22450がP1であるか(カレントプールがプライマリプールであるか)否かを判断する。プライマリプールである場合(ステップ22352:Yes)、ステップ22357が行われる。プライマリプール以外の場合(ステップ22352:No)、ステップ22353が行われる。
ステップ22353では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照して、仮想VOL#Xについて、優先順位がカレントプールより高い1以上のプール#Yを特定する。
ステップ22354では、プロセッサ21000が、プール構成管理テーブル22500を参照し、ステップ22353で特定した1以上のプール#Yのプール空き容量22530を確認する。ここで、参照先をプールマップ情報テーブル22900とし、仮想VOL割当有無22950が確認されてもよい。以降は、前記プール構成管理テーブル22500を参照した場合の処理について説明する。
ステップ22355では、プロセッサ21000が、ステップ22354で特定した1以上のプール#Yの空き容量22530が0GBか否かを判断する。0GBの場合(ステップ22355:Yes)、ステップ22357が行われる。0GB以外の場合(ステップ22355:No)、ステップ22356が行われる。
ステップ22356では、プロセッサ21000が、仮想VOL構成管理テーブル22400を参照し、仮想VOL番号22410がXのカレントプール22450を、プール空き容量22530が0GB以外の1以上のプール#Yのうち、優先順位が最も高いプールの優先順位に更新する。
ステップ22357では、プロセッサ21000が、Xの値に1を加算する。
ステップ22358では、プロセッサ21000が、仮想VOL構成管理テーブル22400の仮想VOL番号22410を参照し、仮想VOL番号22410がX+1の仮想VOLが存在するか否かを判断する。ここで、参照先は、仮想VOLマップ情報テーブル22800の仮想VOL番号22810でもよい。以降は、前記仮想VOL構成管理テーブル22400を参照した場合の処理について説明する。
仮想VOL番号22410がX+1の仮想VOLが存在する場合(ステップ22358:Yes)、ステップ22351が再度行われる。存在しない場合(ステップ22358:No)、カレントプール変更処理が終了する。
以上、本発明の一実施例で説明したが、本発明は上述した実施例に限らず他の様々な形態に適用可能である。
10…コントローラ、11…HDD I/F、10000…ホスト装置、20000…ストレージ装置、21000…プロセッサ、22000…メモリ、22100…I/O処理プログラム、22200…空きプール検索処理プログラム、22300…配置最適化処理プログラム、22350…カレントプール変更処理プログラム、22400…仮想VOL構成管理テーブル、22500…プール構成管理テーブル、22600…プールVOL構成管理テーブル、22700…RAIDグループ構成管理テーブル、22800…仮想VOLマップ情報テーブル、22900…プールマップ情報テーブル、23000…ストレージユニット、24000…ハードディスクドライブ(HDD)、25000…ホスト装置I/F、26000…仮想VOL、27000…プール、28000…プールVOL、29000…RAIDグループ、30000…ネットワーク

Claims (15)

  1. 複数の物理記憶デバイスと、
    ホスト装置と前記複数の物理記憶デバイスとに接続されたコントローラと
    を有し、
    複数の仮想ボリュームと、前記複数の仮想ボリュームに関連付けられた複数のプールがあり、
    各仮想ボリュームは、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想領域で構成され、
    各プールは、前記複数の物理記憶デバイスに基づく複数の物理領域で構成された記憶領域であり、
    前記複数のプールのうちの少なくとも1つのプールに、前記複数の仮想ボリュームのうちの2以上の仮想ボリュームが関連付けられており、
    各仮想ボリュームに、前記複数のプールのうちの2以上のプールが関連付けられており、
    各仮想ボリュームについて、関連付けられている2以上のプールに優先順位があり、
    前記コントローラは、
    (A)ライトコマンド及びライト対象データを前記ホスト装置から受信し、
    (B)前記ライトコマンドから特定されるライト先の仮想領域が未割当ての仮想領域であれば、そのライトコマンドから特定されるライト先の仮想ボリュームに関連付けられている2以上のプールの優先順位を基に、それら2以上のプールから1つのプールを選択し、選択したプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記ライト対象データを書き込む、
    ストレージ装置。
  2. 請求項1記載のストレージ装置であって、
    各プールについて、プールの使用率と比較される閾値である使用率閾値があり、
    プールの使用率は、そのプールの容量に対する、そのプールにおける割当て済みの物理領域の総容量の割合であり、
    前記(B)において、前記選択されたプールが、前記ライト先の仮想ボリュームについて最も優先順位が高いプール以外のプールである場合、前記選択されたプールは、前記ライト先の仮想ボリューム以外の仮想ボリュームに優先順位が最も高いプールとして関連付けられており、前記コントローラは、
    (b1)前記選択されたプールの使用率が、そのプールの使用率閾値を超えているか否かを判断し、
    (b2)前記(b1)の判断の結果が否定的の場合、前記選択されたプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記ライト対象データを書き込み、
    (b3)前記(b1)の判断の結果が肯定的の場合、前記選択されたプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当てない、
    ストレージ装置。
  3. 請求項2記載のストレージ装置であって、
    前記コントローラは、前記(b3)において、前記ライト先の仮想ボリュームに関連付けられている2以上のプールから、前記選択されたプールの優先順位より優先順位が低いプールを選択し、その選択したプールについて、前記(b1)を行う、
    ストレージ装置。
  4. 請求項3記載のストレージ装置であって、
    各仮想ボリュームについて、関連付けられている2以上のプールのうちの1つが、物理領域の現在の割当て元であるカレントプールであり、
    前記(B)において、前記選択されたプールは、カレントプールであり、
    前記(b3)が行われた場合、前記コントローラは、前記ライト先の仮想ボリュームについてのカレントプールを、前記(b3)で選択したプールに変更する、
    ストレージ装置。
  5. 請求項4記載のストレージ装置であって、
    各仮想ボリュームについて、カレントプールは、最初、優先順位が最も高いプールである、
    ストレージ装置。
  6. 請求項1記載のストレージ装置であって、
    前記コントローラは、前記(B)において、
    (x1)前記選択したプールに未割当ての物理領域があるか否かを判断し、
    (x2)前記(x1)の判断の結果が肯定的であれば、前記選択したプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記ライト対象データを書き込み、
    (x3)前記(x1)の判断の結果が否定的であれば、前記選択したプールの優先順位より低い優先順位のプールを選択し、その後、前記(x1)を行う、
    ストレージ装置。
  7. 請求項6記載のストレージ装置であって、
    各仮想ボリュームについて、関連付けられている2以上のプールのうちの1つが、物理領域の現在の割当て元であるカレントプールであり、
    前記(x1)における前記選択したプールは、カレントプールであり、
    前記(x3)が行われた場合、前記コントローラは、前記ライト先の仮想ボリュームについてのカレントプールを、前記(x3)で選択されたプールに変更する、
    ストレージ装置。
  8. 請求項7記載のストレージ装置であって、
    前記コントローラは、仮想ボリュームについて、その仮想ボリュームのカレントプールより優先順位が高いプールに、割当て可能な物理ページが存在するか否かを判断し、その判断の結果が肯定的の場合に、そのプールを、カレントプールとする、
    ストレージ装置。
  9. 請求項6記載のストレージ装置であって、
    各プールについて、プールの使用率と比較される閾値である使用率閾値があり、
    プールの使用率は、そのプールの容量に対する、そのプールにおける割当て済みの物理領域の総容量の割合であり、
    前記(B)において、前記選択されたプールが、前記ライト先の仮想ボリュームについて最も優先順位が高いプール以外のプールである場合、前記選択されたプールは、前記ライト先の仮想ボリューム以外の仮想ボリュームに優先順位が最も高いプールとして関連付けられており、前記コントローラは、前記(x2)において、
    (x21)前記選択されたプールの使用率が、そのプールの使用率閾値を超えているか否かを判断し、
    (x22)前記(x21)の判断の結果が否定的の場合に、前記選択されたプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記ライト対象データを書き込み、
    (x23)前記(x21)の判断の結果が肯定的の場合、前記選択したプールの優先順位より低い優先順位のプールを選択し、その後、前記(x1)を行う、
    ストレージ装置。
  10. 請求項1記載のストレージ装置であって、
    前記コントローラは、前記複数の仮想ボリュームから1つの仮想ボリュームを選択し、選択した仮想ボリュームについて、下記(f1)乃至(f3)を行う、
    (f1)前記選択した仮想ボリュームに関連付けられている2以上のプールから、最も優先順位が高いプール以外のプールを選択する、
    (f2)前記(f1)で選択したプールより優先順位が高いプールに割当て可能な物理領域があるか否かを判断する、
    (f3)前記(f2)の判断の結果が肯定的の場合、前記(f1)で選択したプールにおける割当て済みの物理領域のうちの、前記選択した仮想ボリュームに割り当てられている物理領域から、前記(f1)で選択したプールより優先順位が高いプール内の物理領域に、データをコピーする、
    ストレージ装置。
  11. 請求項1記載のストレージ装置であって、
    各仮想ボリュームについての、関連付けられている2以上のプールの優先順位は、前記複数の仮想ボリュームにアクセスする複数のホスト装置の重要度を基に決定された順位である、
    ストレージ装置。
  12. 請求項11記載のストレージ装置であって、
    各仮想ボリュームについて、関連付けられている3以上のプールの優先順位のうち、最も優先順位以外の優先順位は、その仮想ボリュームが関連付けられているプールに関連付けられている他の仮想ボリュームにアクセスするホスト装置の重要度が低いほど、高い、
    ストレージ装置。
  13. 請求項12記載のストレージ装置であって、
    各仮想ボリュームについて、最も優先順位が高いプール以外の2以上のプールに関連付けられている2以上の他の仮想ボリュームにアクセスする2以上のホスト装置の重要度が同じ場合、それら2以上のプールの優先順位は、プールの基になっている物理記憶デバイスのアクセス性能が高いほど、高い、
    ストレージ装置。
  14. 複数の仮想ボリュームと前記複数の仮想ボリュームに関連付けられた複数のプールとを有するシステムでの記憶制御方法であって、
    (A)ライトコマンド及びライト対象データを前記ホスト装置から受信し、
    (B)前記ライトコマンドから特定されるライト先の仮想領域が未割当ての仮想領域であれば、そのライトコマンドから特定されるライト先の仮想ボリュームに関連付けられている2以上のプールの優先順位を基に、それら2以上のプールから1つのプールを選択し、選択したプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記ライト対象データを書き込み、
    各仮想ボリュームは、Thin Provisioningが適用された、複数の仮想領域で構成された仮想的な論理ボリュームであり、
    各プールは、前記複数の物理記憶デバイスに基づく複数の物理領域で構成された記憶領域であり、
    前記複数のプールのうちの少なくとも1つのプールに、前記複数の仮想ボリュームのうちの2以上の仮想ボリュームが関連付けられており、
    各仮想ボリュームに、前記複数のプールのうちの2以上のプールが関連付けられており、
    各仮想ボリュームについて、関連付けられている2以上のプールに優先順位がある、
    記憶制御方法。
  15. ホスト装置に対する第1のインタフェース装置と、
    複数の物理記憶デバイスに対する第2のインタフェース装置と、
    記憶資源と、
    前記第1のインタフェース装置、前記第2のインタフェース装置及び前記記憶資源に接続されたプロセッサと
    を有し、
    複数の仮想ボリュームと、前記複数の仮想ボリュームに関連付けられた複数のプールがあり、
    各仮想ボリュームは、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想領域で構成され、
    各プールは、前記複数の物理記憶デバイスに基づく複数の物理領域で構成された記憶領域であり、
    前記複数のプールのうちの少なくとも1つのプールに、前記複数の仮想ボリュームのうちの2以上の仮想ボリュームが関連付けられており、
    各仮想ボリュームに、前記複数のプールのうちの2以上のプールが関連付けられており、
    前記記憶資源は、ボリューム管理情報を記憶し、
    前記ボリューム管理情報は、各仮想ボリュームについて、関連付けられている2以上のプールの優先順位を表し、
    (A)前記第1のインタフェース装置が、ライトコマンド及びライト対象データを前記ホスト装置から受信し、
    (B)前記プロセッサが、前記ライトコマンドから特定されるライト先の仮想領域が未割当ての仮想領域であれば、前記ボリューム管理情報が表す、そのライトコマンドから特定されるライト先の仮想ボリュームに関連付けられている2以上のプールの優先順位、を基に、それら2以上のプールから1つのプールを選択し、選択したプール内の未割当ての物理領域を前記ライト先の仮想領域に割り当て、割り当てた物理領域に、前記第2のインタフェースを介して、前記ライト対象データを書き込む、
    記憶制御装置。
JP2010111892A 2010-05-14 2010-05-14 ThinProvisioningが適用されたストレージ装置 Expired - Fee Related JP5080611B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010111892A JP5080611B2 (ja) 2010-05-14 2010-05-14 ThinProvisioningが適用されたストレージ装置
US12/835,240 US20110283078A1 (en) 2010-05-14 2010-07-13 Storage apparatus to which thin provisioning is applied

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010111892A JP5080611B2 (ja) 2010-05-14 2010-05-14 ThinProvisioningが適用されたストレージ装置

Publications (2)

Publication Number Publication Date
JP2011242840A true JP2011242840A (ja) 2011-12-01
JP5080611B2 JP5080611B2 (ja) 2012-11-21

Family

ID=44912757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010111892A Expired - Fee Related JP5080611B2 (ja) 2010-05-14 2010-05-14 ThinProvisioningが適用されたストレージ装置

Country Status (2)

Country Link
US (1) US20110283078A1 (ja)
JP (1) JP5080611B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016129053A1 (ja) * 2015-02-10 2016-08-18 株式会社日立製作所 ストレージ装置の管理計算機
CN112988051A (zh) * 2019-12-17 2021-06-18 株式会社日立制作所 存储系统和存储管理方法
US11163476B2 (en) 2019-10-04 2021-11-02 International Business Machines Corporation Dynamic rebalancing of free space between storage pools

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612776B2 (en) * 2011-01-13 2013-12-17 Hitachi, Ltd. Storage control apparatus to which thin provisioning is applied
US8972694B1 (en) * 2012-03-26 2015-03-03 Emc Corporation Dynamic storage allocation with virtually provisioned devices
WO2014076743A1 (en) * 2012-11-19 2014-05-22 Hitachi, Ltd. Storage system
US10452280B2 (en) * 2014-10-03 2019-10-22 International Business Machines Corporation Hybrid storage system employing reconfigurable memory
US10248320B2 (en) * 2016-10-28 2019-04-02 International Business Machines Corporation Workload-aware thin-provisioning storage-allocation system
CN110199265B (zh) * 2017-06-20 2022-11-01 株式会社日立制作所 存储装置和存储区域管理方法
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
CN108330484B (zh) * 2018-04-23 2020-04-07 中国人民解放军陆军装甲兵学院 一种激光熔覆成形难熔元素高熵合金涂覆层的制备方法

Citations (10)

* 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 サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005339299A (ja) * 2004-05-28 2005-12-08 Hitachi Ltd ストレージ装置のキャッシュ制御方法
JP2007140728A (ja) * 2005-11-16 2007-06-07 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007265270A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ストレージシステム及び記憶領域割当て方法
JP2007304794A (ja) * 2006-05-10 2007-11-22 Hitachi Ltd ストレージシステム及びストレージシステムにおける記憶制御方法
JP2008186172A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd ストレージモジュール及び容量プール空き容量調整方法
JP2008269338A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd ストレージ装置及び管理単位設定方法
JP2009251970A (ja) * 2008-04-07 2009-10-29 Hitachi Ltd 複数のストレージシステムモジュールを備えたストレージシステム
JP2010086424A (ja) * 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US7062628B2 (en) * 2004-09-28 2006-06-13 Hitachi, Ltd. Method and apparatus for storage pooling and provisioning for journal based storage and recovery
JP2008097502A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd 容量監視方法及び計算機システム
US7822939B1 (en) * 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US8051243B2 (en) * 2008-04-30 2011-11-01 Hitachi, Ltd. Free space utilization in tiered storage systems

Patent Citations (10)

* 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 サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005339299A (ja) * 2004-05-28 2005-12-08 Hitachi Ltd ストレージ装置のキャッシュ制御方法
JP2007140728A (ja) * 2005-11-16 2007-06-07 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007193573A (ja) * 2006-01-19 2007-08-02 Hitachi Ltd 記憶装置システム及び記憶制御方法
JP2007265270A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ストレージシステム及び記憶領域割当て方法
JP2007304794A (ja) * 2006-05-10 2007-11-22 Hitachi Ltd ストレージシステム及びストレージシステムにおける記憶制御方法
JP2008186172A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd ストレージモジュール及び容量プール空き容量調整方法
JP2008269338A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd ストレージ装置及び管理単位設定方法
JP2009251970A (ja) * 2008-04-07 2009-10-29 Hitachi Ltd 複数のストレージシステムモジュールを備えたストレージシステム
JP2010086424A (ja) * 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016129053A1 (ja) * 2015-02-10 2016-08-18 株式会社日立製作所 ストレージ装置の管理計算機
US11163476B2 (en) 2019-10-04 2021-11-02 International Business Machines Corporation Dynamic rebalancing of free space between storage pools
CN112988051A (zh) * 2019-12-17 2021-06-18 株式会社日立制作所 存储系统和存储管理方法

Also Published As

Publication number Publication date
US20110283078A1 (en) 2011-11-17
JP5080611B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
JP5080611B2 (ja) ThinProvisioningが適用されたストレージ装置
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
US10977124B2 (en) Distributed storage system, data storage method, and software program
US7415573B2 (en) Storage system and storage control method
JP5079841B2 (ja) ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
JP5685676B2 (ja) 計算機システム及びデータ管理方法
JP5303066B2 (ja) プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置
US8768883B2 (en) Storage apparatus and control method of the same
WO2012049711A1 (en) Data migration system and data migration method
JP6067819B1 (ja) 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
JP2010170411A (ja) 計算機システム、ストレージプール管理方法
JP2009116783A (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US20180267713A1 (en) Method and apparatus for defining storage infrastructure
JP5890268B2 (ja) ストレージサブシステムのシンプロビジョニングプールにおけるボリュームコピー管理方法
JP5957520B2 (ja) データ管理システム及び方法
US7676644B2 (en) Data processing system, storage apparatus and management console
WO2015001620A1 (ja) ストレージシステム、記憶制御方法、及び計算機システム
US9547450B2 (en) Method and apparatus to change tiers
US8732422B2 (en) Storage apparatus and its control method
US20120254583A1 (en) Storage control system providing virtual logical volumes complying with thin provisioning
JPWO2016103356A1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム
US20140244958A1 (en) Storage system and management method therefor
JP5355764B2 (ja) ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

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

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

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

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees