JP5793196B2 - 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法 - Google Patents

仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法 Download PDF

Info

Publication number
JP5793196B2
JP5793196B2 JP2013533389A JP2013533389A JP5793196B2 JP 5793196 B2 JP5793196 B2 JP 5793196B2 JP 2013533389 A JP2013533389 A JP 2013533389A JP 2013533389 A JP2013533389 A JP 2013533389A JP 5793196 B2 JP5793196 B2 JP 5793196B2
Authority
JP
Japan
Prior art keywords
vvol
tier
performance
pool
usage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013533389A
Other languages
English (en)
Other versions
JPWO2013038510A1 (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
Publication of JPWO2013038510A1 publication Critical patent/JPWO2013038510A1/ja
Application granted granted Critical
Publication of JP5793196B2 publication Critical patent/JP5793196B2/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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

本発明は、仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理の技術に関する。
複数の物理記憶デバイスを有するストレージ装置や、1以上のストレージ装置で構成されたストレージシステムが知られている。物理記憶デバイスとしては、例えば、ハードディスクドライブ、フラッシュメモリデバイスなどがある。ストレージ装置は、一般に、RAID(Redundant Array of Independent(or Inexpensive)Disks)技術に従うRAIDグループを有する。RAIDグループは、複数の物理記憶デバイスで構成されている。RAIDグループには、所定のRAIDレベルに従ってデータが格納される。RAIDグループの記憶空間を基に、1又は複数の論理的な記憶デバイス(論理ボリューム)が作成される。論理ボリュームは、ストレージ装置に接続されたホスト計算機に提供される。ホスト計算機は、提供された論理ボリュームを指定したアクセスコマンド(例えば、ライトコマンド又はリードコマンド)をストレージ装置に送信する。これにより、その論理ボリュームに対して、データのアクセスが行われる。
ストレージ装置として、シンプロビジョニング(ダイナミックプロビジョニングと呼ばれることもある)技術が適用されたストレージ装置が知られている(特許文献1)。シンプロビジョニングによれば、記憶容量が固定された論理ボリュームに代えて、仮想的な論理ボリュームである仮想ボリューム(以下、VVOLと言う)がホスト計算機に提供される。VVOLは、複数の仮想領域(仮想的な記憶領域)の集合である。ホスト計算機からVVOLに対する書込みが発生した場合、仮想領域にプールからページが割り当てられる。なお、プールは、複数のページで構成された記憶領域である。ページは、実領域(実体的な記憶領域)であり、具体的には、例えば、プールを構成する論理ボリュームをLBA(Logical Block Address)等によって分割することにより得られた記憶領域である。ここで、「LBA」とは、ホスト計算機がストレージ装置との間でデータを読み書きする場合に、論理ボリューム上の位置を指定するために用いるアドレスである。
また、アクセス性能の異なる複数のページ群が混在するプールが知られている(特許文献2)。例えば、高性能なページ群は、高性能の論理ボリュームで構成されており、低性能のページ群は、低性能の論理ボリュームで構成されている。論理ボリュームのアクセス性能は、その論理ボリュームの基になっている物理記憶デバイスのアクセス性能(及び/又は、RAIDグループのRAIDレベル)に依存する。或る論理ボリューム内の或るページから別の論理ボリューム内のページへの再配置(以下、ページ再配置)を行うことができる。
なお、一般的に、プールを構成する論理ボリュームの中で、同等のアクセス性能を持った論理ボリュームの集合は、ティアと呼ばれている。つまり、プールは、複数のティア、すなわち、アクセス性能の異なる複数のページ群で構成される。
また、特許文献2では、各VVOLの要求性能に応じて、各VVOLに割り当てるティアを指定することができる。ここで、VVOLの要求性能とは、そのVVOLに対して要求される性能、例えば、スループット或いはレスポンスタイム等のアクセス性能を示す。
この場合、例えば、要求性能の高いVVOLに対しては、高性能のティアを割り当て、アクセス頻度が低いVVOLに対しては、低性能のティアを割り当てることが望ましい。
特許文献3には、VVOLに割り当てるページが不足した場合に、プールに追加する記憶容量を決定する方法が開示されている。つまり、特許文献3には、定期的にプールの容量枯渇を予測し、プールの容量枯渇に備える技術が開示されている。
特開2003−001591号公報 特開2007−066259号公報 特開2008−097502号公報
複数のVVOLで1つのプールを共有すること、言い換えれば、1つのプールに複数のVVOLが関連付けられることがある。一般的に、VVOLの仮想領域には、そのVVOLが関連付けられているプールからページが割り当てられ、そのVVOLが関連付けられていないプールからはページが割り当てられない。
このため、特定のVVOLに、プールから高性能ページ(高性能なティアを構成するページ)が優先的に割り当てられると、高性能ページが枯渇してしまい、そのVVOLと同一のプールを共有する他のVVOL(既存のVVOL、及び/又は新たに追加するVVOL)に対して高性能ページが割り当てられなくなることがある。つまり、特定のVVOLに対して高性能ページが優先的に割り当てられることにより、特定のVVOLの要求性能を満たすことができるが、他のVVOLの要求性能を満たすことができない場合が生じることがある。
この課題を解決するための方法として、プールにおける高性能なティアに高性能ページ群を追加する方法が考えられる。しかし、高性能ページ群の基になる高性能の物理記憶デバイスを追加する必要があるためコスト高となってしまうという課題がある。
また、他の方法として、特定のVVOLに割り当てられている高性能ページ内のデータを低性能ページ(低性能なティアを構成するページ)に移動しその移動先の低性能ページを移動元の高性能ページに代えて特定のVVOLに割り当てるページ再配置を行う方法が考えられる。これにより、他のVVOLに割当て可能な高性能ページが増える。しかし、割当て可能な高性能ページを増やすためにわざわざページ再配置を行うと、ストレージ装置に余計な負荷がかかるという課題がある。
従って、本発明の目的は、複数のVVOLが1つのプールを共有する環境において、上記のようなページ再配置を行ったり高性能な物理記憶デバイスを追加したりすることなく、1つのプールに関連付けられている各VVOLの要求性能を満足できるようにすることにある。
ストレージシステムは、1以上のストレージ装置で構成されており、プールと、そのプールに関連付けられている複数のVVOL(Thin Provisioningに従う仮想的な論理ボリューム)とを有する。プールは、複数のティアで構成されている。複数のティアは、アクセス性能の異なる複数の実領域群である。
ストレージシステムは、上位装置(例えばホスト計算機又は他のストレージシステム)からライトコマンドを受信し、そのライトコマンドを基に特定されたライト先のVVOLを構成している複数の仮想領域のうちのライト先の仮想領域に、ライト先のVVOLに関連付けられている使用ティアパタンにおけるいずれかのティアから、実領域を割り当て、そのライトコマンドに従うデータを、割り当てた実領域に書き込むようになっている。また、ストレージシステムは、仮想領域に割り当てられた実領域のアクセス状況を基にその実領域内のデータをその実領域を有するティアとは別のティアの実領域に移動する再配置処理を行うようになっている。アクセス状況は、典型的には、アクセス頻度であるが、アクセス頻度に代えて又は加えて、他種のアクセス状況(例えば、最終アクセス時刻)であっても良い。
このようなストレージシステムを管理する管理システムは、要求性能と使用ティアパタンとをVVOL毎に表す情報であるVVOL管理情報を含んだ管理情報を記憶する。VVOLの要求性能は、そのVVOLに要求される性能である。VVOLの使用ティアパタンは、そのVVOLへの実領域の割当て元となることが許可されている1以上のティアである。
管理システムは、複数のVVOLのうちの1つである対象VVOLの使用ティアパタンから第1の特定のティアを外し第1の特定のティアから対象VVOLに割り当てられている実領域内のデータを対象VVOLの使用ティアパタンにおける別のティア内の実領域にマイグレーションしたと仮定して、対象VVOL及び対象VVOLが関連付けられているプールに関連付けられている他の全てのVVOLの性能を予測する。管理システムは、VVOLに対応する要求性能をVVOL管理情報から特定し、その要求性能と予測された性能とを比較することを各VVOLについて行うことにより、上記予測された性能が要求性能より低いVVOLがあるか否かを判断する。この判断の結果が否定的であれば、管理システムは、対象VVOLの使用ティアパタンから第1の特定のティアを外すことをストレージシステムに指示する。
ここでいう「要求性能」は、例えば、後述の実施例1〜3で述べるSLOであっても良いし、SLOと係数gとの積であっても良い。
また、管理システムは、ストレージシステムの外にあっても良いし、ストレージシステムの中にあっても良い。
本発明によれば、複数のVVOLが1つのプールを共有する環境において、そのプールを共有する複数のVVOLが要求性能を満たす範囲で、それぞれのVVOLに対して使用可能なティアを変更することができる。
図1は、実施例1に係るストレージシステム103の一例を示す。 図2は、実施例1に係るホスト計算機101、管理計算機201及びストレージ装置203の構成の一例を示す。 図3は、実施例1に係るコントローラ251のメモリ243に記憶されるプログラム及び情報の一例を示す。 図4は、実施例1に係るページ状態管理テーブル302の一例を示す。 図5は、実施例1に係るプール管理テーブル303の一例を示す。 図6は、実施例1に係るメディア状態管理テーブル304の一例を示す。 図7は、実施例1に係るVOL管理テーブル305の一例を示す。 図8は、実施例1に係る管理計算機201内の記憶資源211に記憶されるプログラム及び情報の一例を示す。 図9は、実施例1に係るVVOL管理テーブル804の一例を示す。 図10は、実施例1に係るティア定義テーブル805の一例を示す。 図11は、実施例1に係るVVOL作成/割り当てインタフェース1101の一例を示す。 図12は、実施例1に係るVVOL状態監視処理の流れを示すフローチャートの一例である。 図13は、実施例1に係るVVOL一覧表示インタフェースの一例を示す。 図14は、実施例1に係るVVOL状態監視アラートインタフェースの一例を示す。 図15は、実施例1に係るVVOL性能管理処理の流れを示すフローチャートの一例の一部である。 図16は、実施例1に係るVVOL性能管理処理の流れを示すフローチャートの一例の残りである。 図17は、実施例1に係るVVOL性能計測管理テーブルの一例を示す。 図18は、実施例1に係るVVOL性能劣化警告インタフェースの一例を示す。 図19は、実施例2に係るコントローラ251のメモリ243に記憶されるプログラム及び情報の一例を示す。 図20は、実施例2に係るVOL管理テーブル305の一例を示す。 図21は、実施例2に係るホスト使用傾向管理テーブル306の一例を示す。 図22は、実施例2に係るプール使用傾向管理テーブル307の一例を示す。 図23は、実施例2に係る管理計算機201のメモリに記憶されるプログラム及び情報の一例を示す。 図24は、実施例2に係るVVOL管理テーブル804の一例の一部を示す。 図25は、実施例2に係るVVOL管理テーブル804の一例の残りを示す。 図26は、実施例2に係るホスト使用傾向計測結果管理テーブル807の一例を示す。 図27は、実施例2に係るプール使用傾向計測結果管理テーブル808の一例を示す。 図28は、実施例2に係るティア枯渇時点予測管理処理の流れを示すフローチャートの一例の一部である。 図29は、実施例2に係るティア枯渇時点予測管理処理の流れを示すフローチャートの一例の残りである。 図30は、実施例2に係るプール使用状況インタフェース3001の一例を示す。 図31は、実施例3に係るティア枯渇時点予測処理の流れを示すフローチャートの一例の一部をである。 図32は、実施例3に係るティア枯渇時点予測処理の流れを示すフローチャートの一例の残りである。 図33は、実施例3に係るVVOL作成/割り当てインタフェースの一例を示す。
本発明の幾つかの実施例を説明する。なお、本発明の技術的範囲は各実施例に限定されない。
なお、以後の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信制御装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。また、プログラムを主語として説明された処理は、管理システムが行う処理としても良い。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。このため、プログラムを主語として説明された処理は、コントローラが行う処理としても良い。コントローラは、プロセッサと、プロセッサに実行されるコンピュータプログラムを記憶する記憶資源とを含んでも良いし、上記の専用ハードウェアを含んでも良い。また、コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
なお、管理システムは、一以上の計算機、例えば、管理計算機、又は、管理計算機と表示用計算機との組み合わせである。具体的には、例えば、管理計算機が表示用情報を表示する場合は、管理計算機が管理システムである。また、処理の高速化や高信頼化のために、複数の計算機で管理計算機と同等の機能が実現されてもよく、この場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
まず、本発明の実施例1の概略を説明する。
シンプロビジョニング技術とデータ再配置技術が適用されたストレージ装置において、複数のVVOLが同じプールを共有している環境では、あるVVOLの性能を向上させるためにそのVVOLが使用できるティアを変更すると、そのVVOLと同じプールを共有する他のVVOLの性能が劣化し、各VVOLの要求性能を満足できなくなることがある。本実施例では、性能を向上させたいVVOLの使用ティアを変更するだけでなく、そのVVOLとプールを共有する他のVVOLの使用ティアも変更することで、複数のVVOLが要求性能を満足できる。
以下、図面を参照して、実施例1を詳細に説明する。
図1は、本発明の実施例1に係るストレージシステム103の一例を示す。
ストレージシステム103に、ホスト計算機101と、管理計算機201が接続されている。ストレージシステム103は、1以上のストレージ装置で構成されている。1以上のストレージ装置のうちの少なくとも1つが、シンプロビジョニング技術が適用されたストレージ装置である。ストレージシステム103は、性能の異なる複数のメディア群を有する。メディア群は、1以上のメディアの集合である。なお、以下の説明において、「メディア」とは、論理ボリュームのことである。
複数のメディア群として、本実施例では、3つのメディア群、具体的には、SSD(Solid State Drive)メディア群109Aと、SAS(Serial Attached SCSI)メディア群109Bと、SATA(Serial ATA(Advanced Technology Attachment))メディア群109Cとがある。
SSDメディア群109Aは、SSDメディア(SSDに基づく論理ボリューム)で構成されている。SASメディア群109Bは、SASメディア(SAS−HDD(Hard Disk Drive)に基づく論理ボリューム)で構成されている。また、SATAメディア群109Cは、SATAメディア(SATA−HDDに基づく論理ボリューム)で構成されている。
なお、これら3つのメディア群は、全て異なるメディア群でなくても良い。例えば、これら3つのメディア群のうちの少なくとも1つが別種のメディア群であっても良い。また、メディア群の数は、2以上であれば良い。例えば、同種のメディア群が、アクセス性能に応じて2以上の異なるメディア群に分けられても良い。例えば、SASメディア群109Bは、SAS[10K/rpm](回転数が10,000[回転/分]のSAS)に基づくメディア群と、SAS[15K/rpm](回転数が15,000[回転/分]のSAS)に基づくメディア群とに分けられても良い。また、メディア群は、プール107を有するストレージ装置とは別のストレージ装置から提供されたメディア群(外部メディア群)であっても良い。
ストレージシステム103は、1以上のプール107(図では、プールA及びB)を有する。各プール107は、性能の異なる複数のメディアで構成されている。具体的には、例えば、各プール107は、SSDメディア群109Aのうちの1以上のSSDメディアと、SASメディア群109Bのうちの1以上のSASメディアと、SATAメディア群109Cのうちの1以上のSATAメディアとで構成されている。各メディアが、複数のページに区切られている。このため、各プール107は、SSDページ群と、SASページ群と、SATAページ群とで構成されていることになる。各メディアは、1つのプールの構成要素となり、2以上のプールの共通の構成要素とならないで良い。なお、図1における、プール107と各メディア群109との間の結線は、物理的な接続を意味するものではなく、上述の通りプール107が各メディア群109から構成されていることを示している。
なお、1つのプール107には、複数のティアがある。1つのティアは、同じ性能の1以上のメディアで構成される。このため、例えば、上位のティアとして、SSDメディアで構成されたティアがあり、中位のティアとして、SASメディアで構成されたティアがあり、下位のティアとして、SATAメディアで構成されたティアがある。なお、「同じ性能」とは、完全に同じ性能であっても良いし、実質的に同じ性能(例えば、アクセス性能の差が所定の差以下である)であっても良い。
各ティアには、アクセス頻度範囲(アクセス頻度の範囲)が関連付けられる。アクセス頻度は、単位時間当りのアクセスの数であり、例えば、IOPS(Input Output Per Second)で表される。なお、IOPSは、1秒間当たりに行われるアクセス(I/O)の数の単位である。ストレージシステム103は、複数のVVOL(例えばVVOL1〜VVOL5)105を有する。
VVOL105は、複数のホスト計算機101のうちのいずれか1つのホスト計算機101に提供される。本実施例では、VVOL105とホスト計算機101が1対1で対応している。なお、図1における、ホスト計算機101とVVOL105との間の結線は、物理的な接続を意味するものではなく、ホスト計算機101からVVOL105が認識されていること(ホスト計算機101にVVOL105が提供されていること)を示す。同様に、プール107とVVOL105との間の結線も、物理的な接続を意味するものではなく、VVOL105がプール107に関連付けられていることを示す。
VVOL105は、シンプロビジョニング技術に従う仮想的な論理ボリュームであり、複数の仮想領域(仮想的な記憶領域)で構成されている。仮想領域は、例えば、アドレス(例えばLBA)である。ストレージシステム103は、ホスト計算機101からVVOL105を指定したライトコマンドを受信した場合、そのライトコマンドから特定されるライト先の仮想領域にページ(実領域)が割り当てられていなければ、そのライト先のVVOL105が関連付けられているプールから、未使用のページを割り当て、その割り当てたページに、そのライトコマンドに従うライト対象のデータを書き込む。
ホスト計算機101は、アクセス元の一例である。ホスト計算機101は、提供されたVVOL105にアクセスする。具体的には、ホスト計算機101は、アクセス先情報を有するアクセスコマンドを、ストレージシステム103に送信する。アクセス先情報は、アクセス先を表す情報であり、例えば、VVOL105のID(例えばLUN(Logical Unit Number))と、仮想領域のID(例えばLBA)とを含んでいる。
図2は、ホスト計算機101、管理計算機201及びストレージ装置203の構成の一例を示す。
ストレージ装置203が、第1の通信ネットワーク(例えばLAN(Local Area Network))231を介して、管理計算機201及びホスト計算機101に接続されている。また、ストレージ装置203が、第2の通信ネットワーク(例えばSAN232)を介して、ホスト計算機101に接続されている。なお、第1の通信ネットワーク231、及び第2の通信ネットワーク232は一体に形成されても良い。
ストレージ装置203は、物理記憶デバイス群と、物理記憶デバイス群に接続されたコントローラ251とを有する。
物理記憶デバイス群は、1以上の物理記憶デバイスより構成される。物理記憶デバイス群としては、SSD群309A、SAS群309B及びSATA群309Cがある。SSD群309Aは、1以上のSSDであり、SAS群309Bは、1以上のSAS−HDDであり、SATA群309Cは、1以上のSATA−HDDである。このように、ストレージ装置203は、性能の異なる複数の物理記憶デバイスが混在している。なお、物理記憶デバイス群は、ストレージ装置203の外部から提供されるものであっても良い。
コントローラ251は、管理I/F(図では、M−I/Fと記載)241と、通信I/F242(図では、C−I/Fと記載)242と、デバイスI/F(図では、D−I/F)245と、メモリ243と、それらに接続されたプロセッサ244とを有する。
M−I/F241は、第1のプロトコルで通信するための通信インタフェース装置(例えば、NIC(Network Interface Card))である。C−I/F242は、第2のプロトコルで通信するための通信インタフェース装置である。
D−I/F245は、第3のプロトコルで物理記憶デバイスと通信するための通信インタフェース装置である。D−I/F245は、物理記憶デバイスの種類毎に有していても良い。コントローラ251は、D−I/F245を介して、物理記憶デバイスに対してアクセスをする。
メモリ243は、プロセッサ244で実行されるコンピュータプログラムや、種々の情報を記憶する。また、メモリ243は、キャッシュメモリ領域を有する。キャッシュメモリ領域には、ホスト計算機101から受けたライトコマンドに従うデータや、ホスト計算機101から受けたリードコマンドに応答してページ(つまりは、ページに割り当てられている物理記憶デバイス)から読み出されたデータが一時格納される。
キャッシュメモリ領域内のライト対象のデータは、ライト先の仮想領域に割り当てられた物理記憶デバイスに格納される。キャッシュメモリ領域内のリード対象のデータは、ホスト計算機101に提供される。
ホスト計算機101は、M―I/F(例えばNIC)224と、C―I/F(例えばHBA(Host Bus Adapter))226と、記憶資源221と、それら接続されたプロセッサ222とを有する。記憶資源221は、例えば、メモリ(ハードディスクドライブ等の補助記憶装置を含んでも良い)である。記憶資源221は、例えば、アプリケーションプログラム(例えば業務プログラム)やOS(Operating System)を記憶し、プロセッサ222が、そのアプリケーションプログラムやOSを実行する。
管理計算機201は、M−I/F(例えばNIC)214と、記憶資源211と、それらに接続されたプロセッサ212とを有する。記憶資源211は、例えば、メモリ(ハードディスクドライブ等の補助記憶装置を含んでも良い)である。記憶資源211は、コンピュータプログラムや種々の情報を記憶する。コンピュータプログラムは、プロセッサ212で実行される。
以上が、本実施例に係る計算機システムのハードウェア構成の一例である。なお、前述の通信インタフェースデバイス(M−I/F及びC−I/F)は、例えば、そのI/Fが接続されるネットワークの種類や、そのI/Fを有する装置の種類によって異なる。
図3は、メモリ243に記憶されるプログラム及び情報の一例を示す。
メモリ243には、プール管理プログラム301、ページ状態管理テーブル302、プール管理テーブル303、メディア状態管理テーブル304及びVOL管理テーブル305が記憶される。
プール管理プログラム301は、ストレージシステム103が有するプール107を管理するためのプログラムである。プール管理プログラム301は、プロセッサ244に実行され、各種テーブル(302〜305)に基づき、各種処理が実現される。まず、各種テーブル(302〜305)について説明する。
図4は、ページ状態管理テーブル302の一例を示す。
ページ状態管理テーブル302は、ページ毎の状態を表す。ページ状態管理テーブル302により、プールを構成する各ページが、VVOLの仮想領域に割り当てられているか否かが分かる。
具体的に、例えば、テーブル302は、ページ毎に、下記の情報を有する。
(*)プールID401:ページを有するプールを識別するための情報。
(*)ページID402:ページを識別するための情報。
(*)VVOL ID403:ページの割当先の仮想領域を有するVVOLを識別するための情報。「N/A(Not/Assigned)」は、ページがどの仮想領域にも割り当てられていないことを示す。
(*)最近アクセス時刻404:ページに最近アクセスされた時刻を表す情報。
(*)アクセス頻度405:ページに対するアクセスの頻度を示す情報。
なお、最近アクセス時刻404は、「ページに対する最近のライトの時刻」と、「ページからの最近のリードの時刻」とに分けて管理されても良い。
また、アクセス頻度405は、「ライトの頻度」と、「リードの頻度」とに分けて管理されても良い。アクセス頻度405は、ページに対するアクセスが行われた場合に更新され、アクセスコマンドを受けたもののページに対するアクセスが行われなかった場合には、更新されない。
図5は、プール管理テーブル303の一例を示す。
プール管理テーブル303は、プールを構成する各ページと仮想領域との対応関係を表す。プール管理テーブル303により、プールを構成する各ページが、どの種類のメディアのどの範囲から構成されているのかが分かる。
具体的には、例えば、テーブル303は、ページ毎に、下記情報を有する。
(*)プールID501:ページを有するプールを識別するための情報。
(*)ページID502:ページを識別するための情報。
(*)メディアID503:ページを有するメディアを識別するための情報。
(*)メディアLBA504:メディアにおけるページの位置(例えば、ページの先頭のLBAとそのページの末端のLBA)を示す情報。
(*)VVOL ID505:ページの割当先であるVVOLを識別するための情報。「N/A」とは、ページがどの仮想領域にも割り当てられていないことを示す。
(*)VVOL LBA506は、ページの割当先の仮想領域の位置(例えば、仮想領域の先頭のLBAとその仮想領域の末端のLBA)を示す情報である。
図6は、メディア状態管理テーブル304の一例を示す。
メディア状態管理テーブル304は、メディアの状態に関する情報を有する。メディア状態管理テーブル304により、プールを構成する各メディアと、その各メディアが属するティアのレベルが分かる。
具体的には、例えば、テーブル304は、メディア毎に、下記の情報を有する。
(*)プールID601:メディアを有するプールを識別するための情報。
(*)メディアID602:メディアを識別するための情報。
(*)ティアレベル603:メディアが属するティアのレベルを表す情報。
(*)アクセス頻度限界604:メディアに対するアクセス頻度の上限値を示す情報。図においては、アクセス頻度限界604は、単位時間内にメディアにアクセスすることのできるページの数の上限として示されている。
(*)アクセス頻度605:メディアのアクセス頻度を示す情報である。図においては、アクセス頻度605は、単位時間内にメディアにアクセスされたページの数を示す。
図7は、VOL管理テーブル305の一例を示す。
VOL管理テーブル305は、ストレージ装置203が有するボリューム(例えば全てのボリューム)に関する情報を有する。VOL管理テーブル305により、ボリュームがVVOLである場合、そのVVOLが仮想領域を提供しているホスト計算機、そのVVOLにページを割り当てているプール、及びVVOLが使用可能なティアの種類が分かる。
具体的には、例えば、VOL管理テーブル305は、ボリューム毎に、下記の情報を有する。
(*)VOL ID701:VVOL又はメディアを識別するための情報。
(*)容量702:VVOL又はメディアの記憶容量を示す。
(*)ボリュームタイプ703:ボリュームタイプを示す。ボリュームのタイプは、VVOLまたはメディアであるかを示す。ボリュームがメディアである場合、ボリュームタイプ703は、SSD、SAS、或いはSATAを示す。
(*)ホストID704:ボリュームの提供先のホスト計算機を識別するための情報。
(*)プールID705:VVOLに関連付けられたプールを識別するための情報。
(*)使用ティア706:VVOLが使用可能なティアを示す情報。
「VVOLが使用可能なティア」とは、そのVVOLに割り当てられるページの割当て元として選択されて良いティアである。VVOLには、そのVVOLに関連付けられている使用ティア706が示すティア(使用可能なティア)以外のティアからはページが割り当てられない。使用可能なティアは、プールが、ティア1(上位ティア)、ティア2(中位のティア)、ティア3(下位ティア)の3ティアで構成されている場合、典型的には、下記パタンから選ばれる。
(パタン1)ティア1
(パタン2)ティア2
(パタン3)ティア3
(パタン4)ティア1、ティア2
(パタン5)ティア1、ティア3
(パタン6)ティア2、ティア3
(パタン7)ティア1、ティア2、ティア3。
例えば「(パタン1)ティア1」が使用ティア706として選択されたVVOLは、優先的にティア1からページが割り当てられる。「(パタン6)ティア2、ティア3」が使用ティアとして選択されたVVOLは、ティア2またはティア3のいずれかのティアからページが割り当てられ、いくらアクセス頻度が高いページがあろうとも、ティア1からページが割り当てられることはない。
また、使用ティア706のパタンは、例えば「(パタン5)ティア1、ティア3」に示すように、他のティア(この場合ティア2)を除き、離散的に選択することもできる。
以上が、テーブル302〜305についての説明である。なお、それらのテーブルに加えて、どのページが割り当てられているかを仮想領域毎に表すマッピング管理テーブル(図示せず)が用意されても良い。仮想領域にページが割り当てられているか否かは、そのマッピング管理テーブルを基に判断されても良い。
プール管理プログラム301(図2参照)は、前述したテーブル302〜305を基に、プロセッサ244により実行され、例えば、次の処理が行われる。
(A)プロセッサ244は、プログラム301を実行することにより、以下の(a1)〜(a9)の処理を含んだライト処理を行う。
(a1)プログラム301は、ライトコマンドをホスト計算機101から受信する。
(a2)プログラム301は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。
(a3)プログラム301は、ライトコマンドに従うライト対象のデータをキャッシュメモリ領域に格納する。なお、プログラム301は、この段階で、ホスト計算機101にライト完了を応答して良い。
(a4)プログラム301は、ページ状態管理テーブル302(又は前述のマッピング管理テーブル)を基に、上記(a2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、プログラム301は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ領域内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、プログラム301は、VOL管理テーブル305を基に、ライト先VVOLが使用可能なティアを特定する。そして、プログラム301は、VOL管理テーブル305と、ページ状態管理テーブル302又はプール管理テーブル303と、メディア状態管理テーブル304を基に、ライト先VVOLに関連付けられているプールの中から、ライト先VVOLが使用可能なティアに属する未使用のページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム301は、メディア状態管理テーブル304を基に、ライト先VVOLが使用可能なティアの中でなるべく上位のティアに属するメディアから未使用のページを特定して良い。
(a7)プログラム301は、上記(a6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム301は、プール管理テーブル303に、割り当てたページに対応するVVOL LBA506として、ライト先仮想領域の先頭LBA及び末端LBAを書き込む。
(a8)プログラム301は、上記(a6)で特定したページに、キャッシュメモリ領域内のライト対象のデータを書き込む(プログラム301は、この段階で、ホスト計算機101にライト完了を応答して良い)。
(a9)プログラム301は、上記(a5)又は(a8)において、ページ状態管理テーブル302における、データの書込み先のページの最近アクセス時刻404及びアクセス頻度405を更新する。また、それに伴い、プログラム301は、メディア状態管理テーブル304における、そのページを有するメディアのアクセス頻度605を更新する。
なお、容量不足などの理由により、所望のティアからページが割り当てられなかった場合は、近傍ティアからページを割り当てるようにすることで、ページ割り当ての失敗を回避したりすることもできる。
(B)プログラム301は、以下の(b1)〜(b8)の処理を含んだリード処理を行う。
(b1)プログラム301は、リードコマンドをホスト計算機101から受信する。
(b2)プログラム301は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(b3)プログラム301が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、プログラム301は、キャッシュメモリ領域内のリード対象データを、ホスト計算機101に送信する。この場合、リード元仮想領域に割り当てられているページの最終アクセス時刻404及びアクセス頻度405(及び、そのページを有するメディアのアクセス頻度605)は、更新されない。
(b5)上記(b3)の判断の結果が否定的の場合、プログラム301は、ページ状態管理テーブル302(又は前述のマッピング管理テーブル)を基に、上記(b2)で特定されたリード元仮想領域にページが割り当てられているかを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、プログラム301は、所定のデータ(例えばエラー)をホスト計算機101に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、プログラム301は、リード元仮想領域に割り当てられているページからデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム301は、キャッシュメモリ領域内のそのデータをホスト計算機101に送信する。
(b8)プログラム301は、上記(b6)において、ページ状態管理テーブル302における、データの書込み先のページの最近アクセス時刻404及びアクセス頻度405を更新する。また、それに伴い、プログラム301は、メディア状態管理テーブル304における、そのページを有するメディアのアクセス頻度605を更新する。
(C)プログラム301は、以下の(c1)〜(c3)の処理を含んだメディア追加処理を行う。なお、(c3)の後に、後述の(E)ページ再配置処理が行われて良い。
(c1)プログラム301は、追加対象のメディアにIDを付与する。
(c2)プログラム301は、追加対象のメディアをページに分割し、分割により得られた各ページにIDを付与する。
(c3)プログラム301は、追加対象のメディアに関する情報(メディアの追加先のプールのID、(c1)で付与されたメディアID、(c2)で付与されたページID等)を、テーブル302〜305に追加する。
(D)プログラム301は、以下の(d1)及び(d2)の処理を含んだメディア削除処理を行う。
(d1)プログラム301は、削除対象のメディア内の全ての使用ページ(いずれかの仮想領域に割り当てられているページ)内のデータを他のメディアに再配置するページ再配置処理を実行する。
(d2)プログラム301は、削除対象のメディアに関する情報を、テーブル302〜305から削除する。
(E)プログラム301は、以下の(e1)〜(e4)の処理を含んだページ再配置処理を行うことができる。その場合、例えば、メモリ243は、管理計算機201が有する後述のティア定義テーブルを有していて良い。このページ再配置処理は、定期的に行われて良い。また、このページ再配置処理は、上記(d1)でのページ再配置処理に適用されて良い。また、ページ再配置処理は、後述する使用ティアの変更に伴って行われても良い。
(e1)プログラム301は、再配置元のページを見つける。再配置元のページは、不適切に配置されているデータが記憶されているページである。基本的には、再配置元のページとは、ページのアクセス頻度405がそのページを有するティアのアクセス頻度範囲に属していないページである。ただし、VVOLが使用できるティアが特定ティアに限定されている場合はその限りではなく、その場合の処理は後述する。なお、再配置元のページは、上記(d1)のページ再配置処理では、削除対象のメディア内の使用ページである。
(e2)プログラム301は、上記(e1)で見つけた再配置元ページのアクセス頻度405が属するアクセス頻度範囲に対応したティアを特定する。
(e3)プログラム301は、上記(e2)で特定したティアから、未使用のページを特定する。ここで特定された未使用のページが、再配置先のページである。
(e4)プログラム301は、上記(e1)で特定した再配置元ページ内のデータを、上記(e3)で特定した再配置先ページに再配置する。また、プログラム301は、再配置元ページが割り当てられている仮想領域に、再配置元ページに代えて、再配置先ページを割り当てる(テーブル302及び303が更新される)。
プログラム301は、(e1)〜(e4)のページ再配置処理の対象となるVVOLに対し,例えば、プログラム301は、下記(x1)及び(x2)、
(x1)上位のティアから下位のティアにかけて順次に選択し、
(x2)上記(x1)で選択したティアの優先ティアパタン(優先度が高いティアパタン)が使用ティアとして関連付けられているVVOLを、上記(x1)で選択したティアの優先ティアパタンが使用ティアとして関連付けられていないVVOLよりも優先的に選択する、
を行なって良い。ここで、上記(x1)で選択したティアの優先ティアパタンとは、上記(x1)で選択したティアがティアパタン内で最下位ティアであるティアパタンである。
ここでは、ティア1(上位ティア)、ティア2(中位ティア)、ティア3(下位ティア)の3ティアで構成されるプールにおいて、以下の6つのティアパタンを使用ティアとして適用できる場合を例として説明する。
(パタン1)ティア1
(パタン2)ティア2
(パタン3)ティア3
(パタン4)ティア1、ティア2
(パタン5)ティア2、ティア3
(パタン6)ティア1、ティア2、ティア3
この場合、ティア1の優先ティアパタンは、ティア1が最下位ティアである(パタン1)であり、ティア2の優先ティアパタンは、ティア2が最下位ティアである(パタン2)及び(パタン4)である。
この例でのページ再配置処理は、例えば、以下(m1)〜(m4)で説明する通りである。
(m1)まず、プログラム301は、ティア1の優先ティアパタン(パタン1)が使用ティアとして関連付けられているVVOLを特定し、そのVVOLに割り当てられているページ内のデータをティア1に配置する。これにより、VVOLに割り当てられているページがティア1以外のティアにある場合、そのページに代えて、そのページからのデータの配置先である、ティア1内のページが、VVOLに割り当てられる。
(m2)次に、プログラム301は、優先ティアパタン(パタン1)以外のパタンのうち、ティア1を含むティアパタン((パタン4)或いは(パタン6))が使用ティアとして関連付けられているVVOLを特定する。
(m3)プログラム301は、(m2)で特定したVVOLに割り当てられているページ群の中で、アクセス頻度(IOPS)が高い仮想領域に割り当てられているページから順に、ページ内のデータをティア1に配置する。プログラム301は、ティア1を含まないパタン2、3又は5が使用ティアとして関連付けられているVVOLに割り当てられているページ内のデータを、ページの割当先の仮想領域のアクセス頻度がどんなに高くても、ティア1には配置しない。
(m4)プログラム301は、(m1)〜(m3)と同様の処理を、ティア2の優先ティアパタン((パタン2)及び(パタン4))のうち、ページ再配置処理を未実行なティアパタン(パタン2)にも適用する。具体的には、プログラム301は、(m1)と同様の処理によって、パタン2が使用ティアとして関連付けられているVVOLに割り当てられているページについて、ページ再配置処理を実施する。そして、プログラム301は、(m2)及び(m3)と同様の処理によって、パタン5(ティア2の優先ティアパタンではないが、ティア2を含んでいるティアパタン)が使用ティアとして関連付けられているVVOLに割り当てられているページについて、ページ再配置処理を実行する。
(m5)プログラム301は、残りのティアパタン(パタン3)が使用ティアとして関連付けられているVVOLに割り当てられているページについて、ページ再配置処理を実施する。
本実施例の1つの特徴は、優先ティアパタン以外のパタンが関連付けられているVVOLには優先順位を設けず、そのVVOLに割り当てられているページ内のデータの配置先を、そのページの割当先の仮想領域のアクセス頻度に基づいて決定する。このような方法をとることで、アクセス頻度の高いページ内のデータをできるだけ上位ティアに配置することができる。
なお、(E)のページ再配置処理は、アクセス頻度とアクセス頻度範囲との比較に代えて又は加えて、各ページの最近アクセス時刻404からどのぐらい経過したかを基に行われても良い。すなわち、ページ内のデータの配置先は、アクセス頻度に代えて又は加えて、他種のアクセス情報、例えば、最近アクセス時刻からの経過時間に基づいて決定されても良い。
このように、VVOLに関連付けられた使用ティアに基づき、そのVVOLに割り当てられるページを決定することによって、そのVVOLの要求性能を満たすようなページ割り当てができる。
使用ティアが限定されなければ、アクセス頻度が高い仮想領域ほど高性能ページ(高性能のティアにあるページ)が割り当てられ、アクセス頻度が低い仮想領域ほど低性能ページ(低性能なティアにあるページ)が割り当てられる。しかし、本実施例の様に、VVOLの使用ティアとして、高性能なティアのみを含んだパタンが、そのVVOLに関連付けられていれば、各仮想領域のアクセス頻度がどれだけ小さくても、仮想領域に高性能ページが割り当てられる。VVOLには、そのVVOLの使用ティアとして関連付けられたティア以外のティアからは、ページが割り当てられないからである。このため、仮想領域のアクセス頻度が低くても、その仮想領域についてリードコマンドがあった場合には、高レスポンスを期待することができる。
図8は、管理計算機201内の記憶資源211に記憶されるプログラム及び情報の一例を示す。
プログラムとして、VVOL構成管理プログラム801、VVOL性能管理プログラム802、及びVVOL状態管理プログラム803が記憶される。情報として、VVOL管理テーブル804及びティア定義テーブル805が記憶される。
図9は、VVOL管理テーブル804の一例を示す。
VVOL管理テーブル804は、VVOLに関する情報を有する。
VVOL管理テーブル804により、各VVOLに要求される要求性能、及び各VVOLの仮想領域にページを提供しているプール、及びそのプールを構成しているティアの種類が分かる。
具体的には、例えば、VVOL管理テーブル804は、VVOL毎に、下記情報を有する。
(*)VVOL ID901:VVOLを識別するための情報。
(*)サブシステムID902:VVOLを有するストレージ装置203を識別するための情報。
(*)ホストID903:VVOLが割り当てられているホスト計算機を識別するための情報。
(*)プールID904:VVOLに関連付けられているプールを識別するための情報。
(*)SLO905:VVOLのSLO(Service Level Objective)、つまり、VVOLの要求性能を示す情報。SLO905はとしては、VVOLのレスポンスタイム、及びスループット等のアクセス性能に関する要求性能がある。以後、SLO905は、レスポンスタイムとする。
(*)使用ティア906:VVOLが使用可能なTireを示す情報。
(*)容量907:VVOLの容量を表す情報。
(*)使用容量908:ページが割り当てられている仮想領域の総記憶容量を表す情報。
(*)性能909:VVOLの性能(典型的にはアクセス性能)を表す情報。
(*)アクセス分布910:アクセス頻度範囲毎に、そのアクセス頻度範囲に該当するページの総数及びページの割合を表す情報。ページの割合は、VVOLに割り当てられているページの総数に対する、アクセス頻度範囲に該当するページの総数の割合である。図では、アクセス頻度範囲のサイズは、250であるが、アクセス頻度範囲のサイズは、例えば、1以上で整数であればこれに限定されない。VVOL構成管理プログラム801が、ページ状態管理テーブル302を基に、VVOL毎のアクセス分布910を算出することができる。
ところで、SLO905は、本実施例においては、性能909(計算値)と比較される閾値又はその閾値の基になる値である。
性能909は、例えば、VVOLの平均のレスポンスタイムである。ここで言う「レスポンスタイム」とは、例えば、VVOLを指定したアクセスコマンドがストレージ装置203に入ってから応答がホスト計算機101に返されるまでの時間長である。
VVOLの平均レスポンスタイムは、下記の(1)式により算出することができる。
(VVOLの平均レスポンスタイム)
=(VVOLに割り当てられている全てのページについての、アクセス頻度とレスポンスタイムの積の和)/(VVOLに割り当てられている全てのページについてのアクセス頻度の和)・・・(1)。
ここで、アクセス頻度の単位は、前述したように、例えば、IOPSである。例えば、VVOLにページ1〜6が割り当てられているとする。ページ1〜6のそれぞれについて、「ページが属するティア/そのティアでのアクセス速度/ページのアクセス頻度」は、次の通りであるとする。
ページ1:上位ティア(SSD)/1/100、
ページ2:中位ティア(SAS)/10/50、
ページ3:中位ティア(SAS)/10/20、
ページ4:下位ティア(SATA)/20/10、
ページ5:下位ティア(SATA)/20/5、
ページ6:下位ティア(SATA)/20/0。
この場合、(1)式によれば、VVOLの平均レスポンスタイムKは、
K=(100×1+50×10+20×10+10×20+5×20+0×20)/(100+50+20+10+15)
=約5.37
となる。アクセス速度は、後に説明するティア定義テーブル805から分かる。
このようにして求められた平均レスポンスタイム(性能)は、SLO(又はSLOの所定割合(例えば80%))と比較される。
なお、以下の説明では「SLO905が大きい/小さい」とは、単にSLOの値が大きい/小さい、という意味を示す。また「性能909が大きい/小さい」とは、単に性能909の値が大きい/小さい、という意味を示す。
例えば、性能909が平均レスポンスタイムの場合、性能909(及びSLO)が大きいということは、性能が低い(例えば、レスポンスタイムが長い)ことを意味する。また、性能909(及びSLO)が小さいということは、性能が高い(例えば、レスポンスタイムが短い)ことを意味する。
図10は、ティア定義テーブル805の一例を示す。
ティア定義テーブル805は、ティアの定義を表す。ティア定義テーブル805により、各ティアを構成するメディアの種類、そのメディアの性能、及びそのメディアに対する最大のアクセス頻度が分かる。
具体的には、例えば、ティア定義テーブル805は、ティア毎に、下記の情報を有する。
(*)ティアレベル1001:ティアのレベルを表す情報。「ティアのレベル」とは、ティアの高さを表す数値である。本実施例では、数値が小さいティアほど、高いティアである。
(*)メディアタイプ1002:ティアに属するメディアのタイプを表す情報。
(*)速度1003:ティアに対するアクセスの速度を表す情報。
(*)最大アクセス頻度1004:ティアに対応するアクセス頻度の最大値を示す情報。
各ティアの最大アクセス頻度1004により、各ティアのアクセス頻度範囲が表されている。具体的には、図10の例によれば、上位ティア(SSD)のアクセス頻度範囲は、25000〜2500(2500を含まない)である。中位ティア(SAS)のアクセス頻度範囲は、2500〜1250(1250を含まない)である。下位ティア(SATA)のアクセス頻度範囲は、1250〜0である。
以下、本実施例で行われる処理を詳細に説明する。
<仮想ボリューム作成/割り当て管理>。
プロセッサ214が、VVOL構成管理プログラム801を実行することにより、VVOLが管理される。
まず、VVOL構成管理プログラム801は、管理者からVVOLの作成、及び割り当ての指示を受ける。VVOLの作成、及び割り当ての指示には、VVOL割り当て先ホストの識別情報、VVOLの容量及びSLO等が含まれる。また、VVOLに関連づけるプールの識別情報が含まれていてもよい。
その後、VVOL構成管理プログラム801は、VVOLの作成指示に応答して、VVOLの作成先のストレージ装置203、VVOLに関連付けるプール、VVOL IDを決定する。そして、VVOL構成管理プログラム801は、その決定に従う情報と、VVOLの容量及びSLOとを含んだエントリ(レコード)を、VVOL管理テーブル804に追加する。なお、使用ティア906については、すべてのティアが使用できるものとして登録される。例えば、プールがティア1、ティア2、ティア3の3ティアであれば、ティア1、ティア2、及びティア3で構成されたパタンが使用ティアとして登録される。VVOLに関連づけるプールは、ランダムに選択してもよいし、ストレージ装置203からプール管理テーブル303に基づくプールの使用状況(ページの割り当て率など)を取得し、未割当ページが一定基準よりも多いプールの中から選択してもよい。管理者がVVOLに関連づけるプールを指定した場合は指定されたプールを選択する。
次に、VVOL構成管理プログラム801は、VVOL追加指示をストレージ装置203に送信する。VVOL追加指示は、VVOL ID、VVOLの容量、VVOL割り当て先ホストID、VVOLに関連づけるプールID、使用ティアを含む。その指示を受け取ったストレージ装置203のプール管理プログラム301は、受け取った指示に基づいてVOL管理テーブル305を更新し、VVOL追加完了をVVOL構成管理プログラム801に通知する。VVOL構成管理プログラム801は、プール管理プログラムからの完了通知をもって処理を終了する。
なお、本実施例では、VVOL作成及び割り当ての時点で使用ティアが特定ティアのみに限定されることはなく、後述するVVOL性能管理処理によって、そのVVOLの要求性能に応じて使用ティアが適宜調整される。しかし、別の実施例として、VVOL作成及び割り当て時に、VVOLに関連付ける使用ティアを管理者が指定するようにしても良い。この場合、使用ティア欄906には、管理者が指定した使用ティアが登録される。また、VVOLの要求性能を満足しているか否かの確認は、使用ティアとして指定されたティアからページが正しく割り当てられているかによって判断されて良い。
図11は、VVOL作成/割り当てインタフェース1101の一例を示す。
VVOL構成管理プログラム801に対する、管理者からのVVOL作成及び割り当ての指示は、図11に示すような管理インタフェース1101を介して行われて良い。インタフェース1101は、例えば、管理計算機201によって表示されるGUI(Graphical User Interface)である。
管理インタフェース1101には、作成するVVOLの容量指定欄1102、作成したVVOLの割り当て先のホスト計算機を指定する指定欄1103、作成したVVOLの要求性能(例えばレスポンスタイム)を指定するSLO指定欄1104、及び、各種指定欄1102〜1104に入力された指定に従い、VVOLの作成及び割り当てをVVOL構成管理プログラム801に指示するOKボタン1105がある。VVOL構成管理プログラム801は、このインタフェース1101に対して入力された指定に従って、VVOLの作成及び割り当てを行う。
<仮想ボリューム状態監視>。
図12は、VVOL状態監視処理の流れを示すフローチャートの一例である。
この処理は、例えば、プロセッサ212がVVOL状態監視プログラム803を定期的に実行することにより行われる。VVOL状態監視プログラム803は、この処理により、要求性能を(SLO)満たしていないVVOLを検出する。
VVOL状態監視プログラム803は、各VVOLの性能を計測する(S12001)。1つのVVOLを例に採れば、具体的には、下記処理が行われる。
(*)VVOL状態監視プログラム803は、VVOLに割り当てられている全てのページについての総記憶容量を、VVOL管理テーブル804の、そのVVOLに対応した使用容量908の欄に書き込む。
(*)VVOL状態監視プログラム803は、どのティアから幾つのページがVVOLに割り当てられているかと、各ティアの速度とを基に、VVOLの性能を算出する。VVOL状態監視プログラム803は、算出された性能を表す情報を、VVOL管理テーブル804の、VVOLに対応した性能909の欄に書き込む。性能909は、例えば、上記の平均レスポンスタイムKである。
VVOL状態監視プログラム803は、不適切なVVOLがあるかどうかを判断する(S12002)。不適切なVVOLは、性能909がSLO905を満たしていないVVOL(つまり要求性能を満たしていないVVOL)である。具体的には、例えば、不適切なVVOLは、性能909が、SLO905と係数gとの積より大きいVVOL(例えば、平均レスポンスタイムがSLO905と係数gとの積より長いVVOL)である。なお、係数gは0より大きく1以下の数である。g=1の場合、性能1007はSLO905それ自体と比較される。この係数gは、必ずしも「1」である必要はない。つまり、性能909は、単純にSLO905と比較することだけではなく、「SLO905と係数gとの積」と比較することもできる。
S12002の判断の結果が肯定的であれば、VVOL状態監視プログラム803は、アラート1を出力する(S12003)。このアラート1は、ユーザが要求するSLO905よりも性能909が低いこと、つまり、不適切なVVOLが存在することを意味する。アラート1は、例えば、S12002で不適切と判断されたVVOLのIDを含んで良い。
S12002の判断の結果が否定的であれば、つまり、不適切なVVOLが見つからなければ、処理が終了する。
図13及び図14は、S12003で管理者にアラートを通知するインタフェースの一例を示す。具体的には、図13は、VVOL一覧インタフェース1301の一例を示す。図14は、VVOL状態監視アラートインタフェースの一例を示す。
VVOLの状態監視処理(図12参照)によって、要求性能を満足しないVVOL(不適切なVVOL)が発見されると、VVOL状態監視プログラム803は、管理者に対して、例えば、図13に示すようなアラートを出力する。図13に示すアラートには、警告文1302、及びアラートの対象となるVVOLの性能1303が含まれている。
なお、警告文1302と、図14に示す管理インタフェース1401を連動させ、管理者が警告文1302をクリックした際に、管理計算機201のプロセッサ212が、図14に示す管理インタフェース1401を表示しても良い。管理インタフェース1401により、管理者は、要求性能を満足しないVVOLを認識することができる。
管理インタフェース1401には、VVOL一覧1402が含まれて良い。VVOL一覧1402に、例えば、SLO1403、及び性能1404を表示すると、管理者は、要求性能を満足していないVVOLの性能が、要求性能に対してどの位、満足していないかを把握することができる。
<仮想ボリューム性能管理>。
図15及び16は、VVOL性能管理処理の流れを示すフローチャートの一例である。
例えば、VVOL性能管理プログラム802は、管理者からVVOL性能調整指示を受信したときにVVOL性能管理処理を実行する。VVOL性能調整指示は、VVOL状態監視処理(図12を参照)によって要求性能を満足していないVVOLを管理者が発見した場合などに管理者によって発行される。この他に、VVOL性能調整指示は、VVOL性能管理プログラム802が、定期的にVVOLを監視し、要求性能を満たしていないVVOLが発見された場合に発行されても良い。VVOL性能調整指示には、調整対象とするVVOL(以降、対象VVOLと言う)のIDが含まれる。対象VVOLは、典型的には、要求性能を満たしていないVVOLである。
VVOL性能管理プログラム802は、VVOL管理テーブル804に基づき、現時点において対象VVOLが使用できることになっているティアを特定する(S15001)。ここで、対象VVOLが使用できるようになっているティアとは、VOL管理テーブル305の使用ティア706にて示されているティアを示す。
次に、VVOL性能管理プログラム802は、対象VVOLの性能が向上しうる使用ティアパタンに基づいて、下記のS15003の処理が行われていないパタンがあるか否かを判断する(S15002)。ここで、「対象VVOLの性能が向上しうる使用ティアパタン」とは、例えば、S15001で取得したティアが、ティア1、ティア2及びティア3だった場合は、性能の低いティアを順に(この場合ティア3、またはティア2)を除いた、下記パタン、
(パタンA)ティア1、ティア2
(パタンB)ティア1
のいずれかである。つまり、「対象VVOLの性能が向上しうる使用ティアパタン」とは、デフォルトの使用ティア(全てのティアが使用可能なティアとされたパタン)から、性能が或る基準性能より低いティア(上記の例では、性能の一番低いティア3、またはその次に低いティア2)を除くことにより、対象VVOLの性能向上が期待できるパタンである。
対象VVOLが使用できるティアを(パタンA)または(パタンB)に変更すると、ティア3、あるいはティア2内のページに格納されているデータが、性能の高い上位ティアに再配置されるため、対象VVOLの性能向上が見込める。
S15002の判断の結果が否定的であれば、VVOL性能管理プログラム802は、アラートを発行して処理を終了する(S15007)。なぜなら、使用可能なティアを変更してもSLOを満足するような性能向上が見込めないためである。この場合、高性能なメディアを追加するなどの対策を行う必要がある。アラートは、SLOを満足するための措置を表すメッセージ(例えば、メディア追加指示を促すメッセージ)を含んでも良い。
S15002の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、S15002でS15003が実施されていないと判断されたパタンのうちの一つを、対象VVOLの使用ティアとして、対象VVOL及び対象VVOLとプールを共有する各VVOLの予測される性能(以下、予測性能と言う)を計測する(S15003)。ここで、VVOL性能管理プログラム802は、使用可能なティアの数が多いパタンから性能を計測する。例えば、S15001で取得したティアが、ティア1、ティア2、ティア3であり、性能が向上しうるパタンが下記2パタンあった場合を例として説明する。
(パタンA)ティア1、ティア2
(パタンB)ティア1
パタンAの使用可能なティアは2つであり、パタンBの使用可能なティアは1つである。この場合、パタンAから予測性能が計測される。これは、使用可能なティアの数が減るほど、性能不均衡が発生し易くなる傾向があるからである。要求性能が満たせる範囲であるならば使用可能なティアの数は多い方が良い。
上記のように、対象VVOLの使用可能なティアが上位ティアに変更されたことで、対象VVOL以外のVVOLにおいて、変更前は上位ティアから割り当てられていたページが下位ティアに落とされることがあり、対象VVOL以外のVVOLの性能が劣化することがあり得る。
次に、VVOL性能管理プログラム802は、VVOL性能計測管理テーブル806を基に、対象VVOLの予測性能がSLOと係数gとの積以下かどうかを判断する(S15004)。
S15004の判断の結果が否定的であれば、対象VVOLの予測性能が、SLOと係数gとの積を超えてしまう(つまり、予測されるレスポンスタイムが許容値を超えてしまう)ということである。このため、VVOL性能管理プログラム802により、S15002の処理が再度行われる。すなわち、異なる使用ティアパタンに基づいて、対象VVOLの予測性能の計測が再度行われる。
S15004の判断の結果が肯定的であれば、対象VVOLについて予測されるレスポンスタイムが許容値以下であるということである。この場合、VVOL性能管理プログラム802は、VVOL性能計測管理テーブル806(図17参照)を基に、対象VVOLとプールを共有するVVOLの予測性能がSLOと係数gとの積以下かどうかを判断する(S15005)。
S15005の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、対象VVOLの使用ティアを、S15003での性能予測で仮定した使用ティアに変更する指示をストレージ装置203に送信し、処理を終了する(S15006)。使用ティア変更指示は、対象VVOLの識別子及び使用ティアを含む。使用ティア変更指示を受け取ったストレージ装置203は、プール管理プログラム301によりVOL管理テーブルを更新し、ページ再配置処理を実行する。なお、ページ再配置処理は使用ティア変更指示受信に伴って即時実行しても良いし、任意のタイミングで実行しても良い。
一方、S15005の判断の結果が否定的であれば、図16に示すように、VVOL性能管理プログラム802は、対象VVOLとプールを共有するVVOLの中で、S15009の処理が行われておらず、かつ要求性能を満足していないVVOL(以下、影響VVOL)があるか否かを判断する(S15008)。
S15008の判断の結果が否定的であれば、VVOL性能管理プログラム802は、アラートを発行して処理を終了する(S15014)。この場合、対象VVOLとプールを共有する他のVVOLの性能劣化を回避するには、メディアを追加するなどの対策が必要となる。このため、例えば、図18に示す性能劣化警告インタフェース1801が管理計算機に表示されても良い。性能劣化警告インタフェース1801は、例えば、警告文1802として、メディアを追加しない場合にはVVOLがどの程度要求性能を満足できなくなる可能性があるかを示しても良く、以下の情報を、VVOL性能計測管理テーブル806に従って表示しても良い
(*)SLO1803:VVOLのSLO(要求性能)。
(*)現行性能1804:設定変更前のVVOLの性能。
(*)変更後1805:設定を変更後のVVOLの性能。
また、性能劣化警告インタフェース1801は、要求性能を満足できなくなるVVOLがあっても設定を継続する設定ボタン1806、及び、設定をキャンセルするキャンセルボタン1807を有していても良い。「設定を継続する」が選択された場合は、後述するS15013と同様、VVOL性能管理プログラム802は、使用するティア変更をストレージ装置203に指示し、処理を終了する(図示省略)。一方、「設定をキャンセルする」が選択された場合は、VVOL性能管理プログラム802は、設定を中止する(図示省略)。
S15008の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、影響VVOLの性能が向上しうる使用ティアパタンでS15010が行われていないパタンがあるか否かを判断する(S15009)。
S15009の判断の結果が否定的であれば、VVOL性能管理プログラム802は、アラートを発行して処理を終了する(S15014)。なお、本アラートも性能劣化警告インタフェース1802により通知しても良い。
S15009の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、影響VVOLの使用ティアを、影響VVOLの性能が向上しうる使用ティアパタンでS15010が行われていないいずれかのパタンを選択し、その選択したパタンを影響VVOLの使用ティアと仮定した場合の、影響VVOL及び影響VVOLとプールを共有する他のVVOLの予測性能を計測する(S15010)。ここでも、VVOL性能管理プログラム802は、S15003と同様に、使用可能なティアの数が多いパタンから予測性能を計測する。
VVOL性能管理プログラム802は、VVOL性能計測管理テーブル806(図17参照)を基に、影響VVOLの予測性能がSLOと係数gとの積以下か否かを判断する(S15011)。
S15011の判断の結果が否定的であれば、S15009の処理が再度行われる。
S15011の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、VVOL性能計測管理テーブル806を基に、影響VVOLとプールを共有するVVOL(対象VVOL含む)の予測性能がSLOと係数gとの積以下か否かを判断する(S15012)。
S15012の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、VVOL性能計測管理テーブル806に基づき、使用ティアを変更する指示をストレージ装置203に送信し、処理を終了する(S15013)。使用ティア変更指示には、対象VVOL、及び使用ティア変更対象の影響VVOLの識別子及び各VVOLの変更後の使用ティアを含む。使用ティア変更指示を受け取ったストレージ装置203は、プール管理プログラム401によりページ再配置処理を実行する。
S15012の判断の結果が否定的であれば、VVOL性能管理プログラム802は、影響VVOLとプールを共有する複数のVVOLのうち、処理済の影響VVOL及び対象VVOLのうちの少なくとも1つについて、予測性能がSLOと係数gとの積より大きいVVOLがあるか否かを判定する(S15015)。すなわち、ここでは、影響VVOLの使用ティアを変更することにより、処理済みの影響VVOL(前回影響VVOLであったVVOL)及び対象VVOLに悪影響が出るか否かがチェックされる。
S15015の判断の結果が肯定的であれば、VVOL性能管理プログラム802は、アラートを発行して処理を終了する(S15014)
S15015の判断の結果が否定的であれば、S15008の処理が再度行われる。
以上、VVOL性能管理処理によって、要求性能を満足していない対象VVOLがあっても、対象VVOLの使用ティアを変更することにより、対象VVOLの要求性能を満足させることができる。このとき、対象VVOLだけでなく、対象VVOLとプールを共有する別のVVOLについても使用ティアを変更することで、そのプールを共有する複数のVVOLのそれぞれについて要求性能を満足することができる。
なお、S15008で選択されS15009以降の処理が行なわれるVVOLは、要求性能の高いVVOLから行う、或いは対象VVOLの使用ティアの変更に伴い要求性能と予測性能との乖離が大きくなるVVOLから行ったりする等、要求性能を満足させたいVVOLの優先度に基づき実行しても良い。
VVOL性能管理処理の契機としては、上記のように要求性能を満足していないVVOLを管理者が発見し、管理者が性能調整を指示した場合に行われても良いが、この他に、例えば、管理者がVVOLの要求性能を変更する場合に行われても良い。この場合、VVOL性能管理プログラム802は、管理者からVVOL要求性能変更指示を受ける。VVOL要求性能変更指示には、VVOLのSLO等も含まれる。VVOL性能管理プログラム802は、VVOL要求性能変更指示に応答して、S15001以降の処理を実行する。
図17は、VVOL性能計測管理テーブル806の一例を示す。
以下、S15003にて説明した、各VVOLの性能の計測について詳細に説明する。1つの使用ティアパタンを例にとれば、具体的には以下の処理が行われる。
(j1)VVOL性能管理プログラム802が、管理計算機201内の記憶資源211に、図17に示すテーブル806を用意する。テーブル806は、対象VVOLと、対象VVOLとプールを共有するVVOL毎に、下記の情報を有する。
(*)VVOL ID1701:VVOLを識別するための情報。
(*)アクセス分布1702:VVOLのアクセス分布910(図9参照)と同じ情報。
(*)合計1703:VVOLに割り当てられているページ(使用ページ)の総数を示す情報。
(*)メディア比1704:合計1703に対する、ティア毎の使用ページの総数の割合を示す情報。
(*)性能1705:VVOLの性能909(図9参照)と同じ情報。
(*)SLO1706:VVOLに関連付けられたSLO905(図9参照)と同じ情報。(*)使用ティア(変更前)1707:VVOLについて変更前の使用ティアを示す情報。(*)使用ティア(変更後)1708:VVOLについて変更後の使用ティアを示す情報。
(j2)VVOL性能管理プログラム802が、対象VVOLが使用するプールにおけるティア毎のページ群を、アクセス頻度範囲毎の総使用ページ数に応じて、割り振る。その際、プログラム802は、優先ティアパタンが使用ティアとして指定されているVVOLのページを優先的に割り当ててから、アクセス頻度範囲に応じた割り当てを行う。具体的には、例えば、3ティアからなるプールであって、
(*)ティア1(上位ティア)を構成するページの数が30000、
(*)ティア2(中位ティア)を構成するページの数が400000、
(*)ティア3(下位ティア)を構成するページの数が500000、
であるとする。
(j2−1)まず、プログラム802は、ティア1が優先ティアパタンとなっているVVOLのページ内のデータをティア1に配置する。図17の例では、ティア1が優先ティアパタンとなっているVVOLは「VVOL2」である。この場合、まず、プログラム802は、VVOL2に対して、優先的にティア1からページを割り当てる。そして、VVOL2に対してティア1からページを割り当ててもティア1のページが残っている場合、プログラム802は、その残りのページを、各VVOLのアクセス頻度に基づいて、VVOL2以外の各VVOLに振り分ける。
(j2−2)VVOL2に割り当てられている15000ページ分のデータがティア1に格納されると仮定する。図17の例では、VVOL2以外にティア1の優先ティアパタンが指定されているVVOLはないので、ティア1の残りのページ(30000−15000=15000ページ)は、使用ティアにティア1が含まれるVVOLが有するページに対して、アクセス頻度に基づく振り分けを行う。
(j2−3)図17の例では、VVOL1、VVOL3が有するページの振り分けが行われる。例えば、1番目に高いアクセス頻度範囲「2500以上」の総ページ数が5000ページの場合、ティア1の残りの15000ページのうちの5000ページに、アクセス頻度範囲「2500以上」に属するアクセス頻度の5000ページ内のデータが格納されると仮定される。2番目に高いアクセス頻度範囲「2250以上2449以下」の総使用ページ数が12000の場合、ティア1の残りのページ(30000−15000−5000=10000ページ)に、アクセス頻度範囲「2250以上2449以下」に属するアクセス頻度の12000ページのうちの10000ページ内のデータが格納されると仮定される。以上で、ティア1へのページ振り分けが完了する。
(j2−4)次に、プログラム802は、ティア2が優先ティアパタンとなっているVVOLのページをティア2に配置する。図17の例では、ティア2の優先ティアパタンであるティア1及びティア2を使用ティアとしているVVOLは「VVOL1」である。このため、まず、VVOL1に割り当てられているページのうち、ティア1へのページ振り分けが行われなかったページをティア2に配置する。
(j2−5)そして、図17の例では、VVOL1以外にティアの優先ティアパタンが指定されているVVOLは他にないので、ティア2の残りのページは、使用ティアにティア2が含まれるVVOLが有するページに対して、アクセス頻度に基づく振り分けが行われる。ティア2への振り分けが完了したら、ティア3に対して同様の処理を行う。
(j3)VVOL性能管理プログラム802が、上記(j2)の結果を基に、VVOL1〜3についてメディア比1704を更新する。更新後の値が、図17に、記号「->」の後に示されている。
(j4)VVOL性能管理プログラム802が、VVOL1〜3について、更新後のメディア比1704を基に、対象VVOLの使用可能なティアが変更されたと仮定した場合の性能1705を算出する。その性能1705の値が、図17に、記号「->」の後に示されている。
以上、実施例1により、あるVVOLに対する性能調整または要求性能変更が指示された場合に、性能調整または要求性能変更が指示されたVVOLの使用ティアだけでなく、そのVVOLとプールを共有するVVOLの使用ティアを変更することによって、複数のVVOLの要求性能を満足することができる。
まず、本発明の実施例2の概略を説明する。
シンプロビジョニング技術とデータ再配置技術が適用されたストレージ装置において、あるVVOLに対して特定ティアが優先的に割り当てられると、その特定ティアのページが枯渇することがある。そうすると、このVVOLとプールを共有している他のVVOLは、特定ティアからページが割り当てられなくなる場合がある。特定ティアが上位のティアである場合、他のVVOLに対しては上位のティアからページが割り当てられなくなってしまうことがある。結果、他のVVOLが要求する性能を満足できなくなることがある。
ページ再配置処理を実行することによってVVOLの性能のリバランスを行うことができるが、ページ再配置処理はストレージ装置に負荷がかかるため、ページ再配置処理が発生しないように、ページを初めから配置することが望ましい。
本実施例では、複数のVVOLに供されるプールを構成する全てのティアについて、ページが枯渇する時間が予測される。そして、枯渇時点(枯渇時刻)が規定時点(規定時刻)よりも早いティアである枯渇ティアについては、プールを共有する全VVOLの要求性能が満たされる範囲で、各VVOLについて、その枯渇ティアを除いた残りのティアで、使用ティアが構成される。
以下、図面を参照して、実施例2を詳細に説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
実施例2におけるホスト計算機101、ストレージ装置203及び管理計算機201の構成は実施例1と同じであるため、説明を省略する。
図19は、コントローラ251内のメモリ243に記憶されるプログラム及び情報の一例を示す。
プログラムとして、プール管理プログラム301が記憶される。情報として、ページ状態管理テーブル302、プール管理テーブル303、メディア状態管理テーブル304、VOL管理テーブル305、ホスト使用傾向管理テーブル306及びプール使用傾向管理テーブル307が記憶される。
ページ状態管理テーブル302、プール管理テーブル303、メディア状態管理テーブル304については、実施例1と同じため、説明を省略する。プール管理プログラム301は、前述したテーブル302〜307を基に、プロセッサ244により実行され、後述の処理が実現される。
図20は、VOL管理テーブル305の一例を示す。
VOL管理テーブル305は、ストレージ装置203が有するボリュームに関する情報を有する。このテーブル305は、図7に示したテーブルに、使用候補ティア707の情報が追加されている。使用候補ティア707は、VVOLにページ割り当て可能なティアの候補を示す情報である。使用ティア706で指定されるティアは、使用候補ティア707に登録されたティアの中から選択される。
図21は、ホスト使用傾向管理テーブル306の一例を示す。
ホスト使用傾向管理テーブル306は、ストレージ装置203が有する全てのVVOLについての使用傾向に関する情報を有する。具体的には、例えば、ホスト使用傾向管理テーブル306は、下記の情報を有する。
(*)ホストID2104:ホスト計算機を識別するための情報。
(*)ティア2105:ティアを識別するための情報。
(*)時間2106:ティアの使用傾向を計測する計測時間帯を示す情報。
(*)新規使用容量2107:計測時間帯にホスト計算機101(対応するホストID2104から識別されるホスト計算機)に対して新規に割り当てられたページの総容量を示す情報。
(*)計測中使用容量2108:計測時間帯にホスト計算機101(対応するホストID2104から識別されるホスト計算機)に対して割り当てられたページの総容量を示す情報であって、計測中の場合に更新される情報。
図21の例では、「10:00〜11:00」の時間帯にVVOL1に新規に割り当てたページ群の内訳は、ティア1からのページ群が5GB分、ティア2からのページ群が2GB分であることがわかる。また「11:00〜12:00」の時間帯は、計測中であり、新規使用容量2107には、前回計測によって得られた容量と、現時点までに計測された容量との和が記録されている。計測中に発生した新規割り当て容量は計測中使用容量2108に記録され、図21の例では、ティア1からは1GB分のページ群が割り当てられ、ティア2は新規割り当てが発生していないことが分かる。
図20のテーブル305及び図21のテーブル306により、ホスト計算機1が使用する1以上のVVOLに、どの時間帯に、どのティアからどれだけのページ群が割り当てられたかが分かる。このことから、ホスト計算機1のティアの使用傾向を予測することができる。
図22は、プール使用傾向管理テーブル307の一例を示す。
プール使用傾向管理テーブル307は、ストレージ装置203が有するプールの使用傾向に関する情報を有する。具体的には、例えば、プール使用傾向管理テーブル307は、プール毎に、下記の情報を有する。
(*)プールID2201:プールを識別するための情報。
(*)ティアID2202:プールにあるティアを識別するための情報。
(*)時間2203:計測時間帯を示す情報。
(*)新規使用容量2204:計測時間帯に新規に割り当てられたページの総容量を示す情報。
(*)計測中使用容量2205:計測時間帯に新規に割り当てられたページの総容量を示す情報であって、計測中の場合に更新される情報。
(*)空き容量2206:ティアの空き容量(未使用ページの総容量)を示す情報。
再び図19を参照する。
プール管理プログラム301は、前述したテーブル302〜307を基に、例えば、次の処理を行う。
(q)プール管理プログラム301は、以下の(q1)〜(q9)の処理を含んだライト処理を行うことができる。実施例1との違いは、
(*)ライトに伴う新規ページ割り当てが発生するたびに、ホスト使用傾向テーブル306及びプール使用傾向テーブル307の計測中使用容量(2108、2205)を更新すること、
(*)VVOL管理テーブル305の使用候補ティア707の中から使用ティア706とするティアを決定すること、
である。以下詳細に説明する。
(q1)プール管理プログラム301は、ライトコマンドをホスト計算機101から受信する。
(q2)プログラム301は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。
(q3)プログラム301は、ライトコマンドに従うライト対象のデータをキャッシュメモリ領域に格納する。プログラム301は、この段階で、ホスト装置101にライト完了を応答して良い。
(q4)プログラム301は、ページ状態管理テーブル302(又は前述のマッピング管理テーブル)を基に、上記(q2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(q5)上記(q4)の判断の結果が肯定的であれば、プログラム301は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ領域内のライト対象のデータを書き込む。
(q6)上記(q4)の判断の結果が否定的であれば、プログラム301は、VOL管理テーブル305の使用ティア706に登録されているティアの中から、ライト先VVOLが使用可能なティアを特定する。そして、プール管理プログラム301は、VOL管理テーブル305と、ページ状態管理テーブル302又はプール管理テーブル303と、メディア状態管理テーブル304とを基に、ライト先VVOLに関連付けられているプールの中から、ライト先VVOLが使用可能なティアに属する未使用のページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム301は、メディア状態管理テーブル304を基に、ライト先VVOLに割り当て可能なティアの中でなるべく上位のティアに属するメディアから未使用のページを特定して良い。
(q7)プログラム301は、上記(q6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム301は、プール管理テーブル303に、割り当てたページに対応するVVOL LBA506として、ライト先仮想領域の先頭LBA及び末端LBAを書き込む。
(q8)プログラム301は、上記(q6)で特定したページに、キャッシュメモリ領域内のライト対象のデータを書き込む(プログラム301は、この段階で、ホスト計算機101にライト完了を応答して良い)。
(q9)プログラム301は、上記(q5)又は(q8)において、ページ状態管理テーブル302における、データの書込み先のページの最近アクセス時刻404及びアクセス頻度405を更新する。また、それに伴い、プログラム301は、メディア状態管理テーブル304における、そのページを有するメディアのアクセス頻度605を更新する。加えて、ホスト使用傾向管理テーブル306及びプール使用傾向管理テーブル307における、ライトが発生した時間帯の、計測中使用容量2108、2206、空き容量2206を更新する。具体的には、VOL管理テーブル305に基づき、ライト先VVOLが割り当てられているホスト計算機及びそのVVOLが使用するプールを特定し、ホストID、(q6)で特定したページが属するティア及びライト発生時間帯から、ホスト使用傾向テーブル306のレコードを特定し、加えて、VVOLが使用するプールID、(q6)で特定したページが属するティア、及びライト発生時間帯から、プール使用傾向テーブル307のレコードを特定する。そして、当該ライトによって新規に割り当てたページの総容量と計測中使用容量2108、2206に登録されている容量を足した結果を、ホスト使用傾向テーブル306及びプール使用傾向計測テーブル307の計測中使用容量2108、2206に記録する。
(p)プール管理プログラム301は、以下の(p1)〜(p2)の処理を含んだ新規使用容量確定処理を行うことができる。新規使用容量確定処理は、例えば、使用傾向を計測する時間帯が切り替わるタイミングで実行される。図21、22の例では、11:00、12:00、13:00、・・・のタイミングで計測する時間帯が切り替わるため、その時刻になると使用容量確定処理が実行される。
(p1)プール管理プログラム301は、ホスト使用傾向管理テーブル306及びプール使用傾向管理テーブル307に対し、計測が完了した時間帯の計測中使用容量欄2108、2205に登録された容量情報を取得し、その容量情報を、同一レコードにおける新規使用容量2107、2204として上書きする。なお、最新の計測情報で新規使用容量2107,2204を単純に上書きするのではなく、過去に取得した計測情報を加重した値で上書きしてもよい。
(p2)プール管理プログラム301は、計測が完了した時間帯の計測中使用容量を初期化する。例えば、12:00に実施した使用容量確定処理の場合、「11:00−12:00」の時間帯の計測中使用容量に登録されている容量情報で、同レコードの新規使用容量2107、2204を更新する。そして、プログラム301は、「11:00−12:00」の時間帯の計測中使用容量2108、2205を、例えば、0GBで初期化する。
図23は、管理計算機201内の記憶資源211に記憶されるプログラム及び情報の一例を示す。
プログラムとして、VVOL構成管理プログラム801、VVOL性能管理プログラム802、VVOL状態監視プログラム803、ティア枯渇時点予測プログラム806が記憶される。情報として、VVOL管理テーブル804、ティア定義テーブル805、ホスト使用傾向計測結果テーブル807、及びプール使用傾向計測結果テーブル808が記憶される。本図は、図8に、ホスト使用傾向計測結果テーブル807、及びプール使用傾向計測結果テーブル808が追加された図である。ティア定義テーブル805については、実施例1と同じであるため、説明を省略する。
図24及び25は、VVOL管理テーブル804の一例を示す。
VVOL管理テーブル804は、VVOLに関する情報を有する。このテーブル804と、図9に示したテーブル804との相違点は、VVOL毎に、使用候補ティア907を有することである。使用候補ティア907は、VVOLにページ割り当て可能なティアの候補を示す情報である。
図26は、ホスト使用傾向計測結果管理テーブル807の一例を示す。
ホスト使用傾向計測結果管理テーブル807は、管理計算機201が管理する。ホスト使用傾向計測結果管理テーブル807は、各ホスト計算機について計測されたプール使用傾向を表す情報を保持する。
具体的には、例えば、ホスト使用傾向計測結果管理テーブル5040は、ホスト計算機101毎に、下記の情報を有する。
(*)ホストID2601:ホスト計算機101を識別するための情報。
(*)サブシステムID2602:ストレージ装置203を識別するための情報。
(*)ティアID2603:ティアを識別するための情報。
(*)時間2604:計測時間帯を示す情報。
(*)新規使用容量2605:上記時間帯に新規に割り当てられたページの総容量を示す情報。
図27は、プール使用傾向計測結果管理テーブル808の一例を示す。
プール使用傾向計測結果管理テーブル808は、プールの計測された使用傾向を表す情報保持する。
具体的には、例えば、テーブル808は、プール毎に、下記の情報を有する。
(*)プールID2701:プールを識別するための情報。
(*)サブシステムID2702:プールを有するストレージ装置203を識別するための情報。
(*)ティア2703:ティアを識別するための情報。
(*)時間2704:計測時間帯を示す情報。
(*)新規使用容量2705:上記時間帯に新規に割り当てられたページの総容量を示す情報。
(*)空き容量2706:ティアの空き容量を示す情報。
以下、実施例2で行われる処理を詳細に説明する。なお、仮想ボリューム作成、割り当て管理、仮想ボリューム状態監視処理、及び仮想ボリューム性能管理処理については、実施例1と同じであるため説明を省略する。
<ティア枯渇時点予測管理>。
図28及び29は、実施例2に係るティア枯渇時点予測管理処理の流れを示すフローチャートの一例である。
例えば、ティア枯渇時点予測処理は、実施例1のページ再配置処理を行う後処理として実施しても良いし、任意のタイミングで行われても良い。
ティア枯渇時点予測プログラム806は、ストレージ装置203にホスト/プール使用傾向計測結果取得要求を送信し、ホスト使用傾向管理テーブル306及びプール使用傾向管理テーブル307に登録された情報を受け取り、その情報に基づき、ホスト使用傾向計測結果テーブル807及びプール使用傾向計測結果テーブル808を更新する(S2801)。
予測プログラム806は、プール使用傾向計測結果テーブル808に基づき、各ティアの枯渇時点を予測する(S2802)。図27のティア1の例では、10:00から14:00までの4時間の間に、10+8+1+10=29GB分の新規ページ割り当てが発生したことを示す。現在時刻が10:00だとすると、前日の傾向から、現在時刻から3時間後から4時間後の間に20GB分の空き容量がすべて消費され、ティア1の容量が枯渇する可能性があることが予測される。つまり、現在時刻から3時間後から4時間後の時間帯が枯渇時点となる。
予測プログラム806は、S28002で得られた各ティアの枯渇時点が規定時点よりも早いか否かを判断する(S28003)。
S28003の判断の結果が否定的な場合は、予測プログラム806は、処理を終了する。
S28003の判断の結果が肯定的な場合は、予測プログラム806は、プールを構成するティアのうち、S28003で枯渇時点が規定時点より早いティアの中で、S28005が行われていないティアがあるか否かを判断する(S28004)。
S28004の判断の結果が否定的な場合は、予測プログラム806は、処理を終了する。
S28004の判断の結果が肯定的な場合は、予測プログラム806は、VVOL管理テーブル804に基づき、枯渇時点が早いティアから、そのティアを使用するVVOLを特定する(S28005)。
予測プログラム806は、S28005で特定したVVOLの中で、S28007が行われていないVVOLがあるか否かを判断する(S28006)。
S28006の判断の結果が否定的な場合は、予測プログラム806は、再度S28004を実行する。
S28006の判断の結果が肯定的な場合は、予測プログラム806は、VVOL管理テーブル804に基づき、S28006で特定されたVVOLが使用可能なティアを取得する(S28007)。
予測プログラム806は、S28007で取得した使用可能なティアから、そのVVOLが複数のティアを使用できるか否かを判定する(S28008)。
S28008の判断の結果が否定的な場合は、予測プログラム806は、ホスト使用傾向管理テーブル807に基づき、次の再配置までにそのティアが枯渇するか否かを判定し、枯渇しそうであれば管理者に対しアラートを通知し、S28006の処理に戻る(S28009)。
S28008の判断の結果が肯定的な場合は、予測プログラム806は、そのVVOLの使用ティアからS28004で選択したティアを外した状態で、要求性能を満足するかを判断し、満足できるならばS28004で選択したティアを使用ティアから外す。要求性能を満足できるかは、実施例1においてVVOL性能管理処理について説明した「予測性能の計測」と同様の方法によって判断することができる。
S28004で選択したティアを外して要求性能を満足できることが判明したら、予測プログラム806は、VVOL管理テーブル804の使用ティア906に登録されているティアから、S28004で処理をしたティアを除外する(S28010)。
上記処理が、1つのプールを共有する全てのVVOLについて行われる。このため、枯渇しそうなティアが使用されるのを防止しながら、全てのVVOLの要求性能を満たすことが期待できる。
なお、上記処理ではS28006で選択したVVOLに対してS28008で複数ティアが指定可能か否かを確認し、S28008の判断が否定的でありかつ次の再配置までに枯渇しそうであればアラートを表示しているが、S28005で取得したVVOL全てに対してS28007、S28008を実施してなおティアの容量が枯渇しそうな場合のみ、アラートを表示してもよい。S28005で取得したVVOLのうち、どのVVOLからS28007の処理を行うかは、ランダムで行ってもよいし、所定のポリシーに従って行ってもよい。
なお、S28010の処理を、以下の2ステップに分ける事ができる。
(ステップ1)予測プログラム806は、予測された枯渇時点が規定時点よりも早いティアを使用ティアから外しても、1つのプールを共有する全てのVVOLの要求性能を満たすことが分かった時点で、そのことを管理者に通知する。
(ステップ2)管理者が、許可したときに、枯渇時点の早いティアを使用ティアから外す。
図30は、プール使用状況インタフェース3001の一例を示す。
このインタフェース3001は、プール使用状況を管理者に通知する画面(例えばGUI)の一例であり、管理者からの指示に従って表示されても良いし、ティア枯渇時点予測管理処理のS28009のアラートに含めて、管理計算機に表示されても良い。
インタフェース3001は、プールを構成する各ティアの使用実績及び枯渇時点の予測結果を管理者に通知するインタフェースである。インタフェース3001には、警告文3002と、ティア1及びティア2の使用実績を表すグラフ3003、グラフ3004を表示している。
グラフ3003、3004は、プール使用傾向計測結果テーブル808に基づき表示される。例えば、ティア1は、現時点では未使用ページが存在するが、現状のまま使用され続けると、12/3/23:00には未使用ページがなくなる可能性がある。警告文3002は、このことを管理者に通知するメッセージを含む。
例えば、この時点(12/3/23:00)で新規VVOLを追加しようとした場合、新規VVOLにティア1からページを割り当てることはできない可能性がある。一方、ティア2については、この時点(12/3/23:00)では、ページが枯渇する可能性はないことが分かる。この場合、1つのプールを共有する全VVOLの要求性能が満たされる範囲で、全VVOLに対してティア1からのページの割り当てを中止する。
以上、実施例2により、1つのプールを共有するVVOLにおいて、全VVOLの要求性能が満足する範囲で使用可能なティアを限定することで、特定ティアのページのみが偏って枯渇してしまうことを防止することができる。これにより、例えば、ティア1から優先的にページを割り当てたい新規VVOLを追加しようとする際に、ティア1が枯渇していて新規VVOLに対してティア1からページを割り当てられない、という状況を一定期間の間、防止することができる。
まず、本発明の実施例3の概略を説明する。
シンプロビジョニング技術とデータ再配置技術が適用されたストレージ装置203では、通常、上位ティアのページが空いている限り、既存のVVOLには上位ティアからページを割り当てられることが多い。このようなページ割り当て方法によれば、既存のVVOLのI/O性能をなるべく高くすることが期待できる。しかし、この方法によれば、後から新しくVVOLを追加しようとしても、既存のVVOLに上位ティアの全てのページが割当てられていれば、後から追加したVVOLに対しては上位ティアからページを割り当てることができない。
そこで、本実施例では、1つのプールを複数のVVOLが共有するストレージ装置203において、VVOLが追加される時刻、及びそのVVOLのプール使用傾向があらかじめ分かっている場合、そのVVOLの追加に備え、主に以下の処理が行われる。
各ティアについて、新規にVVOLが追加される時刻とプールの使用傾向とを基に、ページが枯渇する時点(時刻)が予測される。枯渇時点が規定時点よりも早いティアである枯渇ティアについては、枯渇ティアを含んだプールを使用するVVOLに対し、そのVVOLの要求性能が満たされる範囲で、各VVOLの使用ティアから枯渇ティアが除かれる。このような処理を、1つのプールを共有する各VVOLについて実施することによって、複数のVVOLが要求性能を満足できるようにする。
以下、図面を参照して、実施例3を詳細に説明する。その際、実施例1、2との相違点を主に説明し、実施例1、2との共通点については説明を省略或いは簡略する。
実施例3におけるストレージシステム103、ホスト計算機101、ストレージ装置203、及び管理計算機201の構成は実施例1、2と同じため、説明を省略する。
また、実施例3における、コントローラ251内のメモリ243に記憶されるプログラム及び情報は実施例2と同じため、説明を省略する。
また、実施例3における管理計算機201内の記憶資源211に記憶されるプログラム及び情報は実施例2と同じため、説明を省略する。
<ティア枯渇時点予測管理>。
図31、32は、実施例3に係るティア枯渇時点予測処理の流れを示すフローチャートの一例である。
例えば、ティア枯渇時点予測処理は、VVOLが追加されるタイミングが分かった段階で行われる。VVOLが追加されるタイミングが分かった段階で、ティア枯渇時点予測処理を行うことにより、VVOLに要求される性能を満足するのに必要なティアに空きのページを確保しておくことができる。以下、追加されるVVOLを、実施例3の説明において「新規VVOL」と言う。
ティア枯渇時点予測プログラム806は、ストレージ装置203にホスト/プール使用傾向計測結果取得要求を送信する。その後、予測プログラム806は、ストレージ装置203から、ホスト使用傾向管理テーブル306及びプール使用傾向管理テーブル307に登録されている情報を受け取り、その情報に基づき、ホスト使用傾向計測結果テーブル807及びプール使用傾向計測結果テーブル808を更新する(S31001)。
予測プログラム806は、プール使用傾向計測結果テーブル808と、新規VVOLの使用傾向及び/又は要求性能と、新規VVOLが追加される時刻(新規VVOLがプールに関連付けられる時刻)とに基づき、プールを構成する各ティアの枯渇時点を調べる(S31002)。具体的に、例えば、予測プログラム806は、新規VVOLが追加されるまでに既存VVOLに新規に割り当てられるであろうページ数と、新規VVOLが追加されてから新規VVOLと既存VVOLに割り当てられるであろうページ数とを、ティア毎に算出し、ティア毎に算出されたそれらのページ数を基に、各ティアの枯渇時点を求める。
ここで、新規VVOLに新規に割り当てられると予測されるページ数は、新規VVOLが提供されるホスト計算機の使用傾向から予測することもできる。また、新規VVOLに新規に割り当てられると予測されるページ数は、新規VVOLが提供されるホスト計算機と使用傾向が類似する他のホスト計算機の使用傾向から予測することもできる。この情報は、例えば、後述するVVOL作成/割り当てインタフェース3301(図33参照)のホスト指定3307で指定されたホスト計算機の使用傾向から取得することができる。
例えば、予測プログラム806は、新規VVOLが提供されるホスト計算機の使用傾向(又は、そのホスト計算機の使用傾向と使用傾向が類似するホスト計算機の使用傾向)を基に、第1の時刻から第2の時刻までに新規VVOLに割り当てられるページ数をティア毎に予測することができる。
予測プログラム806は、S31002で得られた各ティアの枯渇時点が規定時点よりも早いか否かを判断する(31003)。
S31003の判断の結果が否定的な場合、予測プログラム806は、処理を終了する。
S31003の判断の結果が肯定的な場合、予測プログラム806は、枯渇時点が規定時点より早いティアの中で、S31005の処理が行われていないティアがあるか否かを判断する(S31004)。
S31004の判断の結果が否定的な場合、予測プログラム806は、処理を終了する。
S31004の判断の結果が肯定的な場合、予測プログラム806は、VVOL管理テーブル804に基づき、枯渇時点が規定時点より早いティアを使用ティアに含むVVOLを特定する(S31005)。
予測プログラム806は、S31005で取得したVVOLの中で、S31007が行われていないVVOL(図31、32の説明において「対象VVOL」と言う)があるか否かを判断する(S31006)。
S31006の判断の結果が否定的な場合、予測プログラム806は、再度S31004を実行する。
S31006の判断の結果が肯定的な場合、予測プログラム806は、VVOL管理テーブル804に基づき、対象VVOLの使用ティアを特定する(S31007)。
予測プログラム806は、S31007で特定した使用ティアから、対象VVOLが複数のティアを使用できるか否かを判定する(S31008)。
S31008の判断の結果が否定的な場合、予測プログラム806は、ホスト使用傾向管理テーブル807に基づき、次のページ再配置処理までにS31008で特定したティアが枯渇するか否かを判定し、枯渇しそうであればアラートを出し、S31006の処理に戻る(S31009)。
S31008の判断の結果が肯定的な場合、予測プログラム806は、対象VVOLの使用ティアからS31004で処理をしたティアを外す(S31010)。具体的には、例えば、予測プログラム806は、VVOL管理テーブル804の使用ティア906に登録されているティアから、S31004で処理をしたティアを除外する。
なお、S31010の処理を下記の2ステップに分ける事ができる。
(ステップ1)予測プログラム806は、枯渇時点が規定時点より早いティアを外しても、1つのプールを共有する全てのVVOLの要求性能を満たすことが分かった時点で、そのことを管理者に通知する。
(ステップ2)管理者が、許可したときに、枯渇時点が規定時点より早いティアを外す。
以上のステップにより、各VVOLの要求性能を満たしながら、新規VVOLに割り当てられるであろうページを含んだティアから新規にページが既存VVOLに割り当てられないようにすることができる。これにより、新規VVOLが追加されても特定のティアのページが枯渇することがない。
図33は、VVOL作成/割り当てインタフェースの一例を示す。
VVOL作成/割り当てインタフェース3301は、実行時刻指定3302、VVOL容量指定3303、割り当て先ホスト指定3304、SLO指定3305、プール指定3306、ホスト指定3307、ホスト使用傾向表示3308、及びOKボタン3309を有する。
管理者は、VVOL作成/割り当てインタフェース3301を介して、以下を指定することができる。
実行時刻指定欄3302には、新規VVOLを追加する時刻が指定される。VVOL容量指定欄3303には、ホスト計算機101に割り当てる新規VVOLの容量が指定される。ホスト指定欄3304には、新規VVOLの提供先となるホスト計算機のIDが指定される。SLO指定欄3305では、新規VVOLのSLOが指定される。プール指定欄3306には、新規VVOLが関連付けられるプールのIDが指定される。ホスト指定欄3307には、新規VVOLの提供先のホスト計算機と使用傾向が類似している他のホスト計算機101が指定される。なお、使用傾向表示エリア3308には、ホスト指定欄3307で指定されたホスト計算機の使用傾向がティア毎に示される。OKボタン3309が、管理者により押されることにより、実行時刻指定欄3302で指定された時刻に、新規VVOLがストレージ装置203に追加された状態でストレージ装置203が稼働する。
ホスト使用傾向表示エリア3308には、ホスト使用傾向計測結果テーブル807に基づき、例えば、管理計算機のプロセッサ212によって情報が表示される。具体的に、例えば、プロセッサ212は、使用傾向計測結果テーブル807からホスト指定欄3307で指定されたホスト計算機101の使用履歴情報を特定し、特定した使用履歴情報を使ってホスト使用傾向表示3308を表示する。
なお、本実施例では、新規VVOLが関連付けられるプールは管理者が指定することになっているが、管理者の指定ではなく、ティア枯渇時点予測処理の結果に基づいて新規VVOLが関連付けられるプールが決定されても良い。具体的には、例えば、S31003の判定で、プールを構成する全てのティアが規定時点よりも枯渇時点が遅いティアであり、既存VVOLの使用ティアを変更しなくても規定時点までに容量が枯渇しないだろうと予測できるプールが見つかった場合は、そのプールを新規VVOLが関連付けられるプールとすることもできる。すなわち、S31003の判定で、プールを構成する全てのティアが規定時点よりも枯渇時点が遅いプールが見つからない場合に、S31004以降の処理が実行され、既存VVOLの使用ティアが変更されて良い。
新規使用容量(2605、2705)の記録は、新規VVOLが追加されてから一定期間内での新規使用容量トレンド、新規VVOL追加後一定期間経過した後からの新規使用容量トレンド、などに分けて記録されても良い。なぜなら、新規VVOL追加時には、頻繁に新規にページを割り当てることが発生するが、ある程度時間が経過すると、新規に割り当てられるページの数は減ってくることが考えられるためである。
また、時間帯毎の新規使用容量(2605、2705)の履歴には、前回の計測結果に対して今回の計測結果を上書きするのではなく、前回の計測結果と今回の計測結果との平均値が記録されても良い。
また、新規使用容量(2605、2705)は、ホスト計算機101単位ではなく、アプリケーション単位で記録されても良い。
以上、幾つかの実施例を説明したが、本発明はこれらの実施例に限定されない。例えば、使用ティアの変更は、要求性能を満たさなくなったVVOLが発見された場合(実施例1)、及び規定時点より枯渇時点が早いティアがある場合(実施例2又は3)に行うこともできる。
101…ホスト計算機、103…ストレージシステム、201…管理計算機、203…ストレージ装置、251…コントローラ

Claims (15)

  1. 位装置からのライトコマンドを基に特定されたライト先のVVOL(Virtual VOLume)関連付けられているプールから前記ライト先のVVOLに実領域を割り当てるストレージシステムを管理する管理システムであって、
    管理情報を記憶する記憶資源と、
    前記記憶資源に接続されたプロセッサと
    を有し、
    VOLは、仮想的な論理ボリュームであり、
    前記プールは、アクセス性能の異なる複数の実領域群である複数のティアで構成されており、
    前記プールに、複数のVVOLが関連付けられており、
    前記ストレージシステムは、
    前記複数のVVOLのうちの前記ライト先のVVOLに割り当てる実領域を、前記プールの前記複数のティアのうちの、前記ライト先のVVOLに対応した使用ティアパタンに該当するティアから選択することと、
    VVOLのアクセス状況に応じて、そのVVOLに割当てられている実領域を有するティアとは別のティアをそのVVOLに対応した使用ティアパタンから選択し、そのVVOLに割当てられている実領域内のデータを、選択した別のティアの実領域に移動する再配置処理と
    を実行するようになっており、
    前記管理情報は、要求性能と使用ティアパタンとをVVOL毎に表す情報であるVVOL管理情報を含み、
    VVOLの要求性能は、そのVVOLに要求される性能であり、
    前記複数のVVOLのうちの少なくとも1つのVVOLの使用ティアパタンは、前記複数のティアのうち、そのVVOLへの実領域の割当て元となることが許可されている一部のティアであり、
    前記複数のVVOLのうちのいずれかのVVOLである対象VVOLについて管理者又は前記プロセッサによって選択されたティアとしての使用ティアパタンが変更される場合、前記プロセッサは、前記管理情報と、前記対象VVOLの変更後の使用ティアパタンとを基に、前記複数のVVOLのうちの前記対象VVOL以外のVVOLの使用ティアパタンを、そのVVOLの要求性能を満たすことが維持されるよう変更する処理であるVVOL性能管理処理を実行する、
    管理システム。
  2. 前記VVOL性能管理処理において、前記プロセッサは、
    (A)前記対象VVOLの使用ティアパタンから第1の特定のティアを外し前記第1の特定のティアから前記対象VVOLに割り当てられている実領域内のデータを前記対象VVOLの使用ティアパタンにおける別のティア内の実領域にマイグレーションしたと仮定して、前記対象VVOL及び前記対象VVOLが関連付けられているプールに関連付けられている他の全てのVVOLの性能を予測し、
    (B)VVOLに対応する要求性能を前記VVOL管理情報から特定し、その要求性能と予測された性能とを比較することを前記各VVOLについて行うことにより、前記(A)で予測された性能が要求性能より低いVVOLがあるか否かを判断する
    請求項1記載の管理システム。
  3. 前記プロセッサは、
    (C)前記(B)の判断の結果が否定的であれば、前記プロセッサは、前記対象VVOLの使用ティアパタンから前記第1の特定のティアを外すことを前記ストレージシステムに指示する、
    請求項2記載の管理システム。
  4. 前記プロセッサは、
    (D)前記(B)の判断の結果が肯定的であれば、予測された性能が要求性能より低いVVOLである影響VVOLの使用ティアパタンから第2の特定のティアを外し前記第2の特定のティアから前記影響VVOLに割り当てられている実領域内のデータを前記影響VVOLの使用ティアパタンにおける別のティア内の実領域にマイグレーションしたと仮定して、前記影響VVOL及び前記影響VVOLが関連付けられているプールに関連付けられている他の全てのVVOLの性能を予測する
    請求項2又は3記載の管理システム。
  5. 前記プロセッサは、
    (E)VVOLに対応する要求性能を前記VVOL管理情報から特定し、その要求性能と予測された性能とを比較することを前記各VVOLについて行うことにより、前記(D)で予測された性能が要求性能より低いVVOLがあるか否かを判断し、
    (F)前記(D)の判断の結果が否定的であれば、前記プロセッサは、前記対象VVOLの使用ティアパタンから前記第1の特定のティアを外し前記影響VVOLの使用ティアパタンから前記第2の特定のティアを外すことを前記ストレージシステムに指示する、
    請求項4記載の管理システム。
  6. 前記プロセッサは、
    (G)前記(B)の判断の結果が肯定的であれば、前記プロセッサは、前記(D)で予測された性能が要求性能より低いVVOLが、前記対象VVOL又は処理済の影響VVOLであるか否かを判断し、
    (H)前記(G)の判断の結果が肯定的であれば、アラートを出力
    (I)前記(G)の判断の結果が否定的であれば、前記プールに関連付けられている複数のVVOLのうち前記対象VVOL及び処理済の影響VVOL以外のVVOLを影響VVOLとして前記(D)を行う、
    請求項4又は5記載の管理システム。
  7. 前記ストレージシステムは、VVOLに割り当てられた実領域の割合をティア別に表した情報をVVOL毎に含んだ割当て管理情報を適宜に更新するようになっており、
    前記プロセッサは、前記割当て管理情報が有する情報を定期的に又は不定期的に取得することにより、前記プールの各ティアの使用傾向であるプール使用傾向を表すプール使用傾向情報を前記記憶資源に格納するようになっており、
    前記プロセッサは、
    (J)前記プール使用傾向情報を基に、前記各ティアの枯渇時点を予測し、前記枯渇時点が規定時点より早いティアがあるか否かを判断し、
    前記(J)の判断の結果が肯定的であれば、前記枯渇時点が規定時点より早いティアを含んだ使用ティアパタンが関連付けられているVVOLが、前記対象VVOLである、
    請求項1乃至6のうちのいずれか1項に記載の管理システム。
  8. 前記ストレージシステムに接続されている上位装置の数は2以上であり、
    前記割当て管理情報は、VVOLに割り当てられた実領域の割合をティア別に表した情報を上位装置毎に含んでおり、
    前記プロセッサは、前記割当て管理情報が有する情報を定期的に又は不定期的に取得することにより、前記上位装置の各ティアの使用傾向である上位装置使用傾向を表す上位装置使用傾向情報を前記記憶資源に格納するようになっており、
    前記プロセッサは、
    (K)前記プールに新たに関連付けられるVVOLである新規VVOLが前記プールに関連付けられる時刻を特定し、
    (L)前記新規VVOLの提供先の上位装置の使用傾向、又は、その上位装置の使用傾向と使用傾向が類似する上位装置の使用傾向を、前記上位装置使用傾向情報から特定し、
    前記(J)において、前記プロセッサは、前記(K)で特定された時刻と、前記(L)で特定された使用傾向とを基に、前記各ティアの枯渇時点を予測し、前記枯渇時点が規定時点より早いティアがあるか否かを判断する、
    請求項7記載の管理システム。
  9. 前記プロセッサは、前記対象VVOLの使用ティアパタンを構成するティアの数が1である場合、前記予測された枯渇時点が次回の前記再配置処理を開始する時刻よりも早ければ、アラートを出力する、
    請求項7又は8記載の管理システム。
  10. 前記プロセッサは、前記予測された枯渇時点と規定時点との比較の結果、及び、実領域の量の実測値と予測値を、ティア別に表した画面を表示する、
    請求項7乃至9のうちのいずれか1項に記載の管理システム。
  11. 前記プロセッサは、前記新規VVOLの提供先の上位装置の使用傾向と使用傾向が類似する上位装置の使用傾向を、ティア別に表した画面を表示する、
    請求項8乃至10のうちのいずれか1項に記載の管理システム。
  12. 前記ストレージシステムが有するプールの数は2以上であり、
    前記プロセッサは、プールを構成する全てのティアが規定時点よりも枯渇時点が遅いティアであり、既存のVVOLの使用ティアパタンを変更しなくても規定時点までに実領域が枯渇しないだろうと予測できるプールに、前記新規VVOLを関連付ける、
    請求項7乃至11のうちのいずれか1項に記載の管理システム。
  13. 前記プロセッサは、前記対象VVOLの使用ティアパタンにおける前記第1の特定のティア以外の2以上のティアの複数通りの組み合わせのうち、ティアの数が最も多い組み合わせから優先的に採用して、前記対象VVOL及び前記対象VVOLが関連付けられているプールに関連付けられている他の全てのVVOLの性能を予測する、
    請求項1乃至12のうちのいずれか1項に記載の管理システム。
  14. 前記プロセッサは、管理者から、前記複数のティアのうちの2以上のティアを前記少なくとも1つのVVOLの使用ティアパタンとして受け付ける、
    請求項1乃至13のうちのいずれか1項に記載の管理システム。
  15. 位装置からのライトコマンドを基に特定されたライト先のVVOL(Virtual VOLume)にに関連付けられているプールから前記ライト先のVVOLに実領域を割り当てるストレージシステムを管理する管理方法であって、
    VOLは、仮想的な論理ボリュームであり、
    前記プールは、アクセス性能の異なる複数の実領域群である複数のティアで構成されており、
    前記プールに、複数のVVOLが関連付けられており、
    前記ストレージシステムは、
    前記複数のVVOLのうちの前記ライト先のVVOLに割り当てる実領域を、前記プールの前記複数のティアのうちの、前記ライト先のVVOLに対応した使用ティアパタンに該当するティアから選択することと、
    VVOLのアクセス状況に応じて、そのVVOLに割当てられている実領域を有するティアとは別のティアをそのVVOLに対応した使用ティアパタンから選択し、そのVVOLに割当てられている実領域内のデータを、選択した別のティアの実領域に移動する再配置処理と
    を実行するようになっており、
    前記管理方法は、
    前記複数のVVOLのうちのいずれかのVVOLである対象VVOLについて管理者又はコンピュータによって選択されたティアとしての使用ティアパタンが変更される場合、要求性能と使用ティアパタンとをVVOL毎に表す情報であるVVOL管理情報を含んだ管理情報と、前記対象VVOLの変更後の使用ティアパタンとを基に、前記複数のVVOLのうちの前記対象VVOL以外のVVOLの使用ティアパタンを、そのVVOLの要求性能を満たすことが維持されるよう変更する処理であるVVOL性能管理処理を実行し、
    VVOLの要求性能は、そのVVOLに要求される性能であり、
    前記複数のVVOLのうちの少なくとも1つのVVOLの使用ティアパタンは、前記複数のティアのうち、そのVVOLへの実領域の割当て元となることが許可されている一部のティアである、
    管理方法。
JP2013533389A 2011-09-13 2011-09-13 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法 Expired - Fee Related JP5793196B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/070890 WO2013038510A1 (ja) 2011-09-13 2011-09-13 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法

Publications (2)

Publication Number Publication Date
JPWO2013038510A1 JPWO2013038510A1 (ja) 2015-03-23
JP5793196B2 true JP5793196B2 (ja) 2015-10-14

Family

ID=47882772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013533389A Expired - Fee Related JP5793196B2 (ja) 2011-09-13 2011-09-13 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法

Country Status (3)

Country Link
US (2) US9015412B2 (ja)
JP (1) JP5793196B2 (ja)
WO (1) WO2013038510A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052830B1 (en) * 2011-06-30 2015-06-09 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers for thin devices
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US20150236974A1 (en) * 2013-04-26 2015-08-20 Hitachi, Ltd. Computer system and load balancing method
CN104919429B (zh) * 2013-06-14 2018-01-09 株式会社日立制作所 存储管理计算机及存储管理方法
US9086807B2 (en) 2013-08-26 2015-07-21 Hitachi, Ltd. Storage apparatus and tier control method
WO2015029133A1 (ja) * 2013-08-27 2015-03-05 株式会社日立製作所 ストレージシステム及びストレージシステム管理方法
WO2015082253A1 (en) * 2013-12-04 2015-06-11 Koninklijke Philips N.V. Prediction of critical work load in radiation therapy workflow
JP2015158711A (ja) * 2014-02-21 2015-09-03 富士通株式会社 ストレージ制御装置、仮想ストレージ装置、ストレージ制御方法、及びストレージ制御プログラム
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
CN107209714B (zh) * 2015-03-16 2020-12-18 株式会社日立制作所 分布式存储系统及分布式存储系统的控制方法
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
WO2017017775A1 (ja) * 2015-07-28 2017-02-02 株式会社日立製作所 計算機システム及びボリュームの割り当て制御方法
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US10089136B1 (en) * 2016-09-28 2018-10-02 EMC IP Holding Company LLC Monitoring performance of transient virtual volumes created for a virtual machine
US10379912B2 (en) 2017-04-11 2019-08-13 International Business Machines Corporation Data storage allocation utilizing virtual machine resource allocation
JP6751111B2 (ja) * 2018-04-26 2020-09-02 株式会社日立製作所 ストレージシステム、ストレージシステムの制御方法及び管理ノード
US10712958B2 (en) 2018-07-24 2020-07-14 Accenture Global Solutions Limited Elastic storage volume type selection and optimization engine for public cloud environments
US10691357B2 (en) * 2018-08-08 2020-06-23 International Business Machines Corporation Consideration of configuration-based input/output predictions in multi-tiered data storage system management
US20210117117A1 (en) * 2019-10-22 2021-04-22 Micron Technology, Inc. Construction of a block device

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003001591A (ja) 2001-06-21 2003-01-08 Shinko Electric Co Ltd 金属箔切断装置
JP4568502B2 (ja) * 2004-01-09 2010-10-27 株式会社日立製作所 情報処理システムおよび管理装置
JP2007066259A (ja) 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
US7657675B1 (en) * 2005-10-17 2010-02-02 Unisys Corporation Dynamic distribution of I/O resources in a partitioned computer system
JP5037881B2 (ja) * 2006-04-18 2012-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
JP4949791B2 (ja) * 2006-09-29 2012-06-13 株式会社日立製作所 ボリューム選択方法及び情報処理システム
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
JP2010097372A (ja) * 2008-10-16 2010-04-30 Hitachi Ltd ボリューム管理方式
JP5228988B2 (ja) * 2009-02-23 2013-07-03 富士通株式会社 割当制御プログラム及び割当制御装置
US8402214B2 (en) * 2009-09-16 2013-03-19 Hitachi, Ltd. Dynamic page reallocation storage system management
CN102511036B (zh) * 2009-09-25 2015-09-30 国际商业机器公司 数据存储
JPWO2011077489A1 (ja) 2009-12-24 2013-05-02 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
EP2378427B1 (en) 2010-01-28 2018-04-11 Hitachi, Ltd. Management system for calculating storage capacity to be increased/decreased
WO2011145138A1 (ja) * 2010-05-18 2011-11-24 株式会社日立製作所 ストレージ装置及びデータ管理方法
US8566546B1 (en) * 2010-09-27 2013-10-22 Emc Corporation Techniques for enforcing capacity restrictions of an allocation policy
US8849758B1 (en) * 2010-12-28 2014-09-30 Amazon Technologies, Inc. Dynamic data set replica management
WO2012168967A1 (en) * 2011-06-07 2012-12-13 Hitachi, Ltd. Storage apparatus and data management method
US8694727B2 (en) * 2011-08-01 2014-04-08 Hitachi, Ltd. First storage control apparatus and storage system management method
US8612683B2 (en) * 2011-08-01 2013-12-17 Hitachi, Ltd. First storage control apparatus and first storage control apparatus control method
WO2013057751A1 (en) * 2011-10-18 2013-04-25 Hitachi, Ltd. Method for data tiering and computer system using the same
US8706961B2 (en) * 2011-10-31 2014-04-22 Hitachi, Ltd. Storage apparatus and data management method
US8850152B2 (en) * 2012-05-17 2014-09-30 Hitachi, Ltd. Method of data migration and information storage system
WO2014016866A1 (en) * 2012-07-24 2014-01-30 Hitachi, Ltd. Storage system, storage control method and storage control program

Also Published As

Publication number Publication date
US9244616B2 (en) 2016-01-26
US9015412B2 (en) 2015-04-21
US20130145092A1 (en) 2013-06-06
US20150193148A1 (en) 2015-07-09
JPWO2013038510A1 (ja) 2015-03-23
WO2013038510A1 (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
JP5793196B2 (ja) 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5502232B2 (ja) ストレージシステム、及びその制御方法
JP6051228B2 (ja) 計算機システム、ストレージ管理計算機及びストレージ管理方法
US8984221B2 (en) Method for assigning storage area and computer system using the same
US8307171B2 (en) Storage controller and storage control method for dynamically assigning partial areas of pool area as data storage areas
JP5685676B2 (ja) 計算機システム及びデータ管理方法
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5668151B2 (ja) 計算機システムの管理装置及び管理方法
JP2009238114A (ja) ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
WO2012081089A1 (ja) 計算機システムの管理装置及び管理方法
WO2011096017A1 (ja) 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
WO2013046331A1 (ja) 計算機システム、及び情報管理方法
JP2011186794A (ja) ストレージシステム内のデータの配置を制御する管理システム、及び、データ配置制御方法
JP2011227898A (ja) 階層情報管理方法及び装置
JP2016118821A (ja) ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP5957520B2 (ja) データ管理システム及び方法
WO2012039062A1 (ja) ストレージ装置における複数の記憶デバイスを複数の階層に振り分ける方法及びシステム
US20160364400A1 (en) Management server which outputs file relocation policy, and storage system
JP6578694B2 (ja) 情報処理装置、方法及びプログラム
US20150363128A1 (en) Computer system and management system and management method of storage system
US9128819B2 (en) Storage system and management method therefor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150807

R150 Certificate of patent or registration of utility model

Ref document number: 5793196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees