JP2014516426A - 第1記憶制御装置及び第1記憶制御装置の制御方法 - Google Patents
第1記憶制御装置及び第1記憶制御装置の制御方法 Download PDFInfo
- Publication number
- JP2014516426A JP2014516426A JP2013548662A JP2013548662A JP2014516426A JP 2014516426 A JP2014516426 A JP 2014516426A JP 2013548662 A JP2013548662 A JP 2013548662A JP 2013548662 A JP2013548662 A JP 2013548662A JP 2014516426 A JP2014516426 A JP 2014516426A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- performance
- pool
- external
- storage
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
【課題】論理ボリュームの性能に応じたティアを有するプールを作成すること。
【解決手段】第1ストレージ装置は、外部ストレージの有する複数の外部プールボリュームの性能を取得または測定し(S1711〜S1714)、外部プールボリュームの性能に基づいてプールボリュームグループを作成する(S1715,S1716)。各プールボリュームグループの性能に応じてティアの順序は決定される(S1717,S1718)。これにより、現状に見合った適切な複数ティアを有するプールを比較的容易に作成することができる。
【選択図】図17
【解決手段】第1ストレージ装置は、外部ストレージの有する複数の外部プールボリュームの性能を取得または測定し(S1711〜S1714)、外部プールボリュームの性能に基づいてプールボリュームグループを作成する(S1715,S1716)。各プールボリュームグループの性能に応じてティアの順序は決定される(S1717,S1718)。これにより、現状に見合った適切な複数ティアを有するプールを比較的容易に作成することができる。
【選択図】図17
Description
本発明は、第1記憶制御装置及び第1記憶制御装置の制御方法に関する。
現在、企業では、データ量の増加に伴い、ストレージシステムの大規模化及び複雑化が進んでいる。このため企業では、ストレージ装置の管理容易化及び利用効率の向上を求めている。
それらの要求を満たすための一技術として、シン・プロビジョニングがある。シン・プロビジョニングでは、ストレージシステムが、物理的な記憶領域を有さない仮想的な論理ボリューム(以下、仮想ボリューム)をホスト計算機に提供する。ストレージシステムは、ホスト計算機から仮想ボリュームへのライト要求に応じて、プール内のページを動的に仮想ボリュームに割り当てる。「プール」とは、プールボリュームの集合である。プールボリュームは、複数のページを有する。「ページ」とは、物理的な記憶領域である。
シン・プロビジョニング技術により、ストレージシステムの容量を効率的に使用することができ、さらに、ストレージシステムの容量設計を容易に行うことができる。シン・プロビジョニング技術では、仮想ボリュームの実際の使用量に応じてページを割り当てれば良いためである。
プールは、一般に、同一性能のメディア(ページ群)で構成される。しかし、通常、仮想ボリュームに割り当てられている複数のページのアクセス頻度は同一ではない。仮想ボリュームに割り当てられる複数のページの中には、アクセス頻度が高いページとアクセス頻度の低いページとが混在する。従って、同一性能のページを仮想ボリュームに割り当てる技術では、性能の過不足が生じることがある。
例えば、プールが高性能メディア(高性能ページ)だけで構成されている場合、アクセス頻度が低いページについては、性能過多が生じる。逆に、プールが低性能メディア(低性能ページ)だけで構成されている場合、アクセス頻度が高いページについては、性能不足が生じる。
この問題を解決するための1つの方法として、特許文献1に記載の方法がある。特許文献1によれば、1つのプールを、性能の異なる複数のメディアで構成することで階層化する。ページ内のデータは、そのページを有する階層から、そのページのアクセス頻度に最適な階層へ再配置される。
なお、他のストレージ装置の有する論理ボリュームを自装置の中に取り込んで、それがあたかも自装置の論理ボリュームであるかのようにホスト計算機に提供する技術も知られている(特許文献2,3)。
従来技術によれば、第1ストレージ装置は、外部に存在する第2ストレージ装置の有する論理ボリュームを、第1ストレージ装置のプール内のプールボリュームとして使用することができる。これにより、ストレージシステムの有する記憶資源を第1ストレージ装置にまとめて有効利用できる。
しかし、従来技術では、第2ストレージ装置の有する論理ボリュームの性能を適切に評価することができない。第1ストレージ装置と第2ストレージ装置とは、それぞれ異なるベンダから提供される可能性もあり、かつ、ストレージ装置のコントローラ及び記憶装置(メディア)の種類等も千差万別だからである。
このため、従来技術では、第2ストレージ装置の有する論理ボリュームを、第1ストレージ装置の有するプール内の適切な階層に定義することができない。第2ストレージ装置の有する論理ボリュームの性能が不明な場合、例えば、最下位の階層に定義する必要がある。従って、第2ストレージ装置が、第1ストレージ装置の有する論理ボリュームよりも高性能の論理ボリュームを有する場合でも、その高性能の論理ボリュームを有効に活用することができないという問題がある。
本発明は、上記の課題に鑑みてなされたもので、その目的は、複数の論理ボリュームの性能情報に基づいて、適切な階層構造を有するプールを得ることができるようにした第1記憶制御装置及び第1記憶制御装置の制御方法を提供することにある。本発明の他の目的は、複数の論理ボリュームの性能情報を取得し、それら性能情報に基づいて複数のボリュームグループを作成し、各ボリュームグループの性能情報に基づいてプール内に階層を設けることができるようにした、第1記憶制御装置及び第1記憶制御装置の制御方法を提供することにある。
上記課題を解決すべく、本発明に従う第1記憶制御装置は、少なくとも一つの第2記憶制御装置と通信経路を介して通信可能に接続される第1記憶制御装置であって、プールと、プールを制御するコントローラとを備え、コントローラは、複数の論理ボリュームの性能を示すボリューム性能情報を取得し、取得したボリューム性能情報に基づいて、各論理ボリュームをグループ化して複数のボリュームグループを生成し、ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出し、算出されたボリュームグループ性能情報に応じて各ボリュームグループの順序を決定し、決定された順序に基づいて、各ボリュームグループの階層をプール内に設ける。
複数の論理ボリュームには、第1記憶制御装置の有する第1論理ボリュームと、第2記憶制御装置の有する第2論理ボリュームとが含まれており、第2論理ボリュームは、通信経路を介して、第1論理ボリュームのうちの所定の第1論理ボリュームに対応付けられてもよい。
コントローラは、第2論理ボリュームのうち、同一の第2記憶制御装置に属し、かつ、同一種類の記憶装置に基づいて生成される第2論理ボリュームを、一つの第2論理ボリュームとして取り扱って、ボリューム性能情報を取得してもよい。
コントローラは、第1記憶制御装置及び第2記憶制御装置に通信可能に接続される管理計算機から、第2論理ボリュームに関するボリューム性能情報を取得してもよい。
コントローラは、第2論理ボリュームのスループット性能と、第2論理ボリュームを制御する第2記憶制御装置のコントローラ性能と、第2論理ボリュームを制御する第2記憶制御装置の通信ポート性能のうち、最も値の小さい性能を第2論理ボリュームのボリューム性能情報として使用することができる。
コントローラは、第1論理ボリュームのボリューム性能情報を基準として、第2論理ボリュームをグループ化することができる。
コントローラは、予め設定される所定の契機で、各ボリュームグループ性能情報を再度算出し、再度算出されたボリュームグループ性能情報に基づいて各ボリュームグループの順序を決定し、各ボリュームグループの階層をプール内に設けてもよい。
所定の契機は、プールの構成が変化した場合、または、第2論理ボリュームが所定の第1論理ボリュームに接続される数が変化した場合、または、第2記憶制御装置のハードウェア構成が変化した場合のいずれか少なくとも一つでよい。
コントローラは、予め用意される検査用のコマンドを第2論理ボリュームに向けて発行し、第2論理ボリュームからの応答に基づいて第2論理ボリュームに関するボリューム性能情報を取得することもできる。
コントローラは、検査用のコマンドに対する第2論理ボリュームの応答時間に基づいて、処理要求の負荷と応答時間との関係を示すレスポンスカーブを取得し、そのレスポンスカーブに基づいて第2論理ボリュームに関するボリューム性能情報を取得してもよい。
上述した本発明の特徴は、明示された以外に種々組合せることができる。さらに、本発明は、コンピュータプログラムとして把握することもできる。コンピュータプログラムは、通信媒体または記録媒体を介して、コンピュータにインストールされる。
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態では、後述のように、ストレージシステム内の各論理ボリュームの性能情報を取得し、各論理ボリュームをグループ化して、プールのティア構成を決定する。本実施形態では、ドライブ性能のみならず、外部ストレージ装置(第2ストレージ装置)のコントローラ性能及びポート性能も性能情報として考慮することができる。これにより、本実施形態では、ストレージシステム内の記憶資源を、容量及び性能の両面で有効に利用することができ、さらには、ストレージシステムのコストを低減することができる。
なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
以後の説明では、「プログラム」を主語として処理を説明する場合がある。プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、メモリ等の記憶資源及び通信ポート等の通信インタフェース装置を適宜用いながら実行する。従って、処理の主語は、プロセッサでもよい。プロセッサは、CPUの他に専用ハードウェアを有していてもよい。コンピュータプログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであってもよい。
例えば、プールボリューム等の各要素は、識別子(ID)、番号、名前等で識別可能である。
以下、図を用いて、本発明の一実施例を説明する。本発明が以下に述べる実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
図1は、ストレージシステムの全体構成を示す。ストレージシステムは、例えば、一つまたは複数の第1ストレージ装置101と、一つまたは複数の第2ストレージ装置102と、一つまたは複数のホスト計算機103と、一つまたは複数の管理計算機104とを備えることができる。
第1ストレージ装置101とホスト計算機103とは、例えば、第1通信ネットワーク111を介して接続される。第1ストレージ装置101と第2ストレージ装置102とは、例えば、第2通信ネットワーク112を介して接続される。第1ストレージ装置101と管理計算機104とは、例えば、第3通信ネットワーク113を介して接続される。第2ストレージ装置102と管理計算機104とも、例えば、第3通信ネットワーク113を介して接続される。ホスト計算機103と管理計算機104も、例えば、第3通信ネットワーク113を介して接続される。
第1通信ネットワーク111及び第2通信ネットワーク112は、例えば、SAN(Storage Area Network)として構成される。第3通信ネットワーク113は、例えば、LAN(Local Area Network)として構成される。
第1ストレージ装置101は、通信線121を介して、第1通信ネットワーク111に接続される。第1ストレージ装置101は、通信線122を介して、第2通信ネットワーク112に接続される。第1ストレージ装置101は、通信線123を介して、第3通信ネットワーク113に接続される。
第2ストレージ装置102は、通信線131を介して、第2通信ネットワーク112に接続される。第2ストレージ装置102は、通信線132を介して、第3通信ネットワーク113に接続される。
ホスト計算機103は、通信線141を介して、第1通信ネットワーク111に接続される。ホスト計算機103は、通信線142を介して、第3通信ネットワーク113に接続される。管理計算機104は、通信線151を介して、第3ネットワーク113に接続される。
なお、通信線121、122、123、131、132、141、142、及び151は、例えば、メタルケーブルまたは光ファイバケーブル等の有線として構成される。しかし、ホスト計算機103と第1ストレージ装置101、第1ストレージ装置101と第2ストレージ装置102、第1ストレージ装置101と管理計算機104、ホスト計算機103と管理計算機104、第2ストレージ装置102と管理計算機104を、それぞれ無線で接続する構成でもよい。無線接続の場合、通信線121、122、123、131、132、141、142、及び151は省略される。
第1通信ネットワーク111、第2通信ネットワーク112、及び第3通信ネットワーク113のうちの少なくとも2つを、共通の通信ネットワークとしてもよい。
図2は、第1ストレージ装置101のハードウェア構成を示す。第1ストレージ装置101は、例えば、コントローラ211と、複数のディスク222とに大別できる。第2ストレージ装置102のコントローラと区別するために、コントローラ211を第1コントローラ211と呼ぶこともできる。第2ストレージ装置102のコントローラを第2コントローラまたは外部コントローラと呼ぶこともできる。
「記憶装置」としてのディスク222の種類としては、例えば、SSD(Solid State Drive)、SAS(Serial Attached SCSI)−HDD(Hard Disk Drive)、SATA(Serial Advanced Technology Attachment)−HDDが挙げられる。但し、それらに限らず、
FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(登録商標)(Resistance RAM)等の種々の記憶装置を用いることもできる。
FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(登録商標)(Resistance RAM)等の種々の記憶装置を用いることもできる。
ディスク222は、ファイバチャネルケーブル等の通信線221を介して、コントローラ211に接続される。なお、複数のディスク222で、1つ又は複数のRAID(Redundant Array of Independent Disks)グループを構成できる。各ディスク222の有する物理的記憶領域は、RAIDグループにより一つにまとめられる。RAIDグループの有する物理的記憶領域を用いて、一つまたは複数の論理ボリュームが作成される。
後述のように、第1ストレージ装置101内に設けられる複数の論理ボリュームのうち、第1ストレージ装置101内のRAIDグループに基づいて作成される論理ボリュームは、内部ボリュームと呼ばれる。第1ストレージ装置内のRAIDグループに基づいておらず、第2ストレージ装置102の有する論理ボリュームに接続されている論理ボリュームを、外部接続ボリュームと呼ぶ。
コントローラ211のハードウェア構成を説明する。コントローラ211は、ホスト計算機103から受信したコマンドに従って、ディスク222へのデータの書き込み及びデータ読み出しを制御する。コントローラ211は、シン・プロビジョニングに従う仮想ボリューム511(図5参照)をホスト計算機103に提供する。仮想ボリューム(シン・プロビジョニングボリュームと呼んでもよい)511は、複数の仮想領域から構成されている。それら仮想領域は、仮想的な記憶領域であり、例えば、LBA(Logical Block Address)で表される。仮想的な記憶領域は、プール512内の実記憶領域(図5参照)との比較において、仮想ページと呼ぶことできる。プール512内の実記憶領域は実ページと呼ぶこともできる。
コントローラ211は、例えば、記憶資源と、通信インタフェース装置(以下、インタフェース装置を「IF
」と略記)と、それらに接続されたCPU212とを有する。記憶資源には、例えば、主メモリ213、キャッシュメモリ214、及び不揮発性メモリ215が含まれる。通信IFには、例えば、ホストIF(H−IF)216と、管理IF(M−IF)217と、ディスクIF(D−IF)218とが含まれる。これら各メモリ213、214、215、CPU212、ホストIF216、管理IF217、及びディスクIF218は、バス等の通信線219を介して相互に接続されている。
」と略記)と、それらに接続されたCPU212とを有する。記憶資源には、例えば、主メモリ213、キャッシュメモリ214、及び不揮発性メモリ215が含まれる。通信IFには、例えば、ホストIF(H−IF)216と、管理IF(M−IF)217と、ディスクIF(D−IF)218とが含まれる。これら各メモリ213、214、215、CPU212、ホストIF216、管理IF217、及びディスクIF218は、バス等の通信線219を介して相互に接続されている。
不揮発性メモリ215としては、例えば、フラッシュメモリ等のような書き換え可能な不揮発性のメモリを挙げることができる。不揮発性メモリ215は、コンピュータプログラム及び情報を記憶する。
具体的には、例えば、不揮発性メモリ215は、図3に示すように、コンピュータプログラム311,312,313,314,315,316,317と、各テーブル320,321,322,323,324,325,326,327,328,329とを記憶する。各プログラム及びテーブルは、不揮発性メモリ215から主メモリ213に転送され、CPU212により実行される。
不揮発性メモリ215に記憶されるコンピュータプログラムには、例えば、外部ストレージ情報取得プログラム311と、ティア管理プログラム312と、ティア順序算出プログラム313と、性能ポテンシャル算出プログラム314と、ティア構成変更プログラム315と、ページ再配置プログラム316と、外部ストレージ性能監視プログラム317とがある。
不揮発性メモリ215に記憶されるテーブルには、例えば、外部ドライブ性能管理テーブル320と、外部ストレージ性能管理テーブル321と、外部ストレージ管理テーブル322と、内部ドライブ性能管理テーブル323と、プールボリューム性能管理テーブル324と、プールボリュームグループ管理テーブル325と、ティア順序管理テーブル326と、性能ポテンシャル管理テーブル327と、プールボリュームレスポンスカーブ管理テーブル328と、ティアレスポンスカーブ管理テーブル329とがある。
外部ストレージ情報取得プログラム311は、外部ストレージ装置102の性能情報を管理計算機104から取得可能であるか判定する。外部ストレージ情報取得プログラム311は、外部ストレージ装置102から取得した性能情報を、外部ドライブ性能管理テーブル320及び外部ストレージ性能管理テーブル321に記録する。この処理の詳細は、図17、図18、及び図19を用いて後述する。
第1ストレージ装置101を基準にすると、第2ストレージ装置102は第1ストレージ装置101の外部に存在するため、外部ストレージ装置と呼ばれる。第2ストレージ装置102の有する内部ボリュームは、第1ストレージ装置101の外部に存在するため、外部ボリュームと呼ばれる。外部ボリュームは、第1ストレージ装置101内に仮想的に設けられる外部接続ボリューム(図5中のEVol)に接続され、アドレス空間が対応付けられる。
外部接続ボリュームに対するコマンドは、外部接続ボリュームに対応する外部ボリュームに向けたコマンドに変換されて、第1ストレージ装置101から第2ストレージ装置102に送信される。第1ストレージ装置101は、ホスト計算機103から受領したデータを外部ボリュームに書き込んだり、外部ボリュームから読み出したデータをホスト計算機103に送信したりする。ホスト計算機103は、第1ストレージ装置101内の外部接続ボリュームを介して第2ストレージ装置102内の外部ボリュームを使用する。ホスト計算機103とって、外部ボリュームは第1ストレージ装置101内の通常の論理ボリューム(内部ボリューム)と変わらない。
以下の説明では、便宜上、第1ストレージ装置101を第1ストレージまたはマスタストレージと呼ぶことがある。第2ストレージ装置102を第2ストレージまたは外部ストレージと呼ぶことがある。
ところで、管理計算機104から外部ストレージ102の性能情報を取得できない場合、外部ストレージ情報取得プログラム311は、外部接続ボリューム(詳しくは、外部接続ボリュームに接続された外部ボリューム)の性能を測定して、その測定結果をプールボリュームレスポンスカーブ管理テーブル328に記録する。この処理の詳細は、後に図17、図20、及び図21を用いて説明するが、外部ストレージ情報取得プログラム311は、第1ストレージ装置101がマウントした外部ボリュームに対して、予め用意されたテストI/Oを発行し、外部ボリュームのレスポンス性能を測定する。
ティア管理プログラム312は、プールボリューム毎にドライブ性能(例えば、レスポンス性能及びIOPS性能)を算出して、その結果をプールボリューム性能管理テーブル324に記録する。この処理の詳細は、後に図17及び図23を用いて説明する。IOPSとは、単位時間あたりのライト要求及びリード要求の合計値である(Input Output per second)。
ティア管理プログラム312は、プールボリューム性能管理テーブル324に記録されているプールボリューム性能(例えば、レスポンス性能)を比較してプールボリュームを分類し、その結果をプールボリュームグループ管理テーブル325に記録する。この処理の詳細は、後に図17及び図24を用いて説明する。
ティア管理プログラム312は、プールボリュームグループ毎にドライブ性能を算出して、その結果をプールボリュームグループ管理テーブル325に記録する。この処理の詳細は、後に図17及び図25を用いて説明する。
ティア順序算出プログラム313は、プールボリュームグループ管理テーブル325のティア毎の性能値を比較してティアの順序を決定し、その結果をティア順序管理テーブル326に記録する。この処理の詳細は、後に図26を用いて説明する。
性能ポテンシャル算出プログラム314は、プールボリュームグループ管理テーブル325のティア毎の性能ポテンシャルを決定し、その結果を性能ポテンシャル管理テーブル327に記録する。性能ポテンシャル算出プログラム314は、プールボリュームレスポンスカーブ管理テーブル328の結果を用いて、各ティアの性能ポテンシャルを決定する。この処理の詳細は、後に図17、図27、及び図28を用いて説明する。
ティア構成変更プログラム315は、プログラム311〜314で決定した、ティアの順序と性能ポテンシャルに基づいて、ティアの構成を変更する。プログラム315の処理の詳細は、後に図29を用いて説明する。
ページ再配置プログラム316は、仮想ボリュームに割り当てられたページが配置されるティアを、そのページの使用状況に応じて変更する。ページ再配置プログラム316は、仮想ボリュームに割り当てられたページに対するアクセスを監視し、ページのアクセス頻度に基づいて、そのページの属すべき適切なティアを判定する。ページ再配置プログラム316は、判定結果に基づき、対象となるページのデータをマイグレーション先のティア内のページにコピーさせる。例えば、アクセス頻度の多いページのデータは、現在のティアよりも高性能のティアに移される。これに対し、アクセス頻度の少ないページのデータは、現在のティアよりも低性能のティアに移される。プログラム316の処理の詳細は、後に図30を用いて説明する。
外部ストレージ性能監視プログラム317は、外部ストレージの性能を監視する。外部ボリュームの性能は、ティア管理プログラム312により算出されるか、または、外部ストレージ情報取得プログラム311により測定される。外部ストレージ性能監視プログラム317は、外部プールボリュームの性能が一定時間経過後にも正しいか否かを監視し、性能情報を修正する。プログラム317の処理の詳細は、図31で後述する。
外部ドライブ性能管理テーブル320は、外部ストレージのドライブタイプ毎に性能値を管理するためのテーブルである。このテーブル320の詳細は、後に図6を用いて説明する。
外部ストレージ性能管理テーブル321は、外部ストレージのシステム性能、例えば、コントローラ性能及びポート性能を管理するためのテーブルである。このテーブル321の詳細は、後に図7を用いて説明する。
外部ストレージ管理テーブル322は、外部ストレージが第1ストレージ装置101にマウントしているボリューム(外部ボリューム)の数と、外部接続ボリュームと外部ボリュームとを接続するパスの数とを管理するためのテーブルである。このテーブル322は、後に図8を用いて説明する。
内部ドライブ性能管理テーブル323は、第1ストレージ装置101の有するディスク222のタイプ毎に性能を管理するためのテーブルである。ディスク222は、第1ストレージ装置101の内部に存在するため、内部ドライブと呼ばれる。このテーブル323の詳細は、後に図9を用いて説明する。
プールボリューム性能管理テーブル324は、作成されたプールボリュームの性能に関する情報(例えば、属性及び性能等)を管理するためのテーブルである。このテーブル324の詳細は、後に図10を用いて説明する。
プールボリュームグループ管理テーブル325は、プールボリュームがどのように分類されたかを管理する。更に、プールボリュームグループ管理テーブル325は、分類されたプールボリューム群(以下、プールボリュームグループ)毎の性能値を管理する。このテーブル325の詳細は、後に図11を用いて説明する。
ティア順序管理テーブル326は、プール内のプールボリュームグループが何番目のティアに属しているかを管理するためのテーブルである。このテーブル326は、後に図12を用いて説明する。
性能ポテンシャル管理テーブル327は、プール内のプールボリュームグループ毎の性能ポテンシャル値を管理するためのテーブルである。このテーブル327は、後に図13を用いて説明する。性能ポテンシャルとは、プールボリュームグループ(そのプールボリュームグループから構成されるティア)が処理可能な最大のIOPSである。
プールボリュームレスポンスカーブ管理テーブル328は、プールボリューム毎のレスポンスカーブを管理するためのテーブルである。このテーブル328は、後に図14を用いて説明する。
ティアレスポンスカーブ管理テーブル329は、プールボリュームグループ毎のレスポンスカーブを管理するためのテーブルである。このテーブル329は、後に図15を用いて説明する。
再び図2を参照する。主メモリ214には、必要に応じて、不揮発性メモリ215に記憶された各プログラム311〜317が読み込まれる。CPU212が、主メモリ213に読み込まれた各プログラムを実行することにより、後述する種々の処理が行われる。
キャッシュメモリ214は、ホスト計算機103から受信したデータ及びディスク222から読み出されたデータを一時的に記憶する。
ホストIF216は、通信線121と通信ネットワーク111及び通信線141を介して、ホスト計算機103に接続される。ホストIF216の有する複数の通信ポートのうちターゲット属性を有する通信ポートは、ホスト計算機103から発行された、アクセスコマンド(ライトコマンド又はリードコマンド)を受信する。ホストIF216の有する複数の通信ポートのうちイニシエータ属性を有する通信ポートは、通信ネットワーク112等を介して第2ストレージ装置102の通信ポートに接続されており、第2ストレージ装置102にコマンドを発行する。なお、ホスト計算機103との間で通信するための通信IFと、第2ストレージ装置102との間で通信するための通信IFとをそれぞれ別々に構成してもよい。
管理IF217は、通信線123と、通信ネットワーク113及び通信線151を介して管理計算機104に接続される。管理IF217は、例えば、NIC(Network Interface Card)のように構成される。
ディスクIF218は、各ディスク222との間でデータを送受信する。ディスクIF218は、通信路221を介して各ディスク222にそれぞれ接続される。
続いて、第1ストレージ装置101の基本的動作を簡単に説明する。ホスト計算機103からライトコマンドを受信した場合、コントローラ211は、ホスト計算機103から受信したライトデータをキャッシュメモリ214に記憶させる。
コントローラ211は、キャッシュメモリ214に記憶させたライトデータを、ディスクIF218を介してディスク222に転送し、ディスク222に書き込む。なお、コントローラ211は、ライトデータをキャッシュメモリ214に記憶させた時点で、ライトコマンドの処理が完了した旨をホスト計算機103に通知することができる。或いは、コントローラ211は、ライトデータをディスク222に書き込んだ時点で、ライトコマンドの処理が完了した旨をホスト計算機103に通知してもよい。
ホスト計算機103からリードコマンドを受信した場合、コントローラ211は、そのリードコマンドの対象とするデータ(リード対象データ)がキャッシュメモリ214に記憶されているか否かを調べる。
リード対象データがキャッシュメモリ214に記憶されている場合、コントローラ211は、そのデータをキャッシュメモリ214から読み出し、ホストIF216を介してホスト計算機103に送信する。これに対し、リード対象データがキャッシュメモリ214に記憶されていない場合、コントローラ211は、ディスクIF218を介してディスク222からリード対象データを読み出し、そのデータをキャッシュメモリ214に記憶させる。コントローラ211は、キャッシュメモリ214に記憶させたリード対象データを、ホストIF216を介してホスト計算機103に送信する。
以上は、通常のライト処理及びリード処理である。シン・プロビジョニングボリュームである仮想ボリュームへのライト処理及びリード処理では、ページの割当て、ページに対応するプールボリュームの特定、プールボリュームへのデータ読み書きの処理等が発生する。さらに、プールボリュームが第2ストレージ装置102内のボリューム(外部ボリューム)に対応する場合、外部ボリュームへのデータ読み書き処理が発生する。
図4は、管理計算機104のハードウェア構成を示す。管理計算機104は、一般的な計算機と同様のハードウェア構成を備える。例えば、管理計算機
104は、記憶資源と、通信インタフェース装置と、入力装置416と、出力装置417と、それらに接続されたCPU411とを有する。
104は、記憶資源と、通信インタフェース装置と、入力装置416と、出力装置417と、それらに接続されたCPU411とを有する。
通信インタフェース装置は、管理IF418である。記憶資源には、例えば、主メモリ412及びディスク414が含まれる。CPU411、主メモリ412、ディスク414、ポインティング装置415、入力装置416、出力装置417及び管理IF418は、バス413を介して相互に接続される。
入力装置416は、管理計算機104に指示または情報を入力するための装置であり、例えば、キーボード及び/またはポインティングデバイス等を備える。音声または体の動作による入力装置416を備えてもよい。出力装置417は、管理計算機104から外部の管理者またはユーザに情報を出力するための装置であり、例えば、ディスプレイ及び/またはプリンタ等を備える。音声による出力装置417を備えてもよい。
ディスク414は、例えば、UI(User Interface)制御プログラム421と、管理用通信プログラム422、及び外部ストレージ管理テーブル322を記憶する。
主メモリ412に、ディスク414からUI制御プログラム421及び管理用通信プログラム422がロードされる。CPU411は、主メモリ412に記憶されたプログラムを実行することによって、UI制御処理及び管理用通信処理を実行する。
UI制御プログラム421は、後述のティア情報確認画面1600等の画面を出力装置417に表示する。また、UI制御プログラム421は、入力装置416を介して管理者(管理者以外のユーザでも良い)から入力された情報を主メモリ412に記憶する。
管理用通信プログラム422は、通信ネットワーク113を介して第1ストレージ装置101と通信する。管理用通信プログラム422は、例えば、管理者から入力された情報を、必要に応じて第1ストレージ装置101に送信する。
外部ストレージ性能管理テーブル321は、外部ストレージのドライブタイプ毎に性能値を管理するためのテーブルである。このテーブル321の詳細は、後に図6を用いて説明する。外部ストレージ性能管理テーブル321は、例えば、管理者から入力された情報に基づいて作成することができる。または、管理計算機104が持っている情報から、外部ストレージ性能管理テーブル321を作成してもよい。
ホスト計算機103のハードウェア構成は、一般的な計算機と同じである。従って、図示を省略する。ホスト計算機103は、通信インタフェース装置と、記憶資源と、それらに接続されたCPUとを有する。通信インタフェース装置には、例えば、通信ネットワーク111を介した通信を行うためのホストバスアダプタ(HBA)と、通信ネットワーク113を介した通信を行うためのNICを含む。記憶資源としては、例えば、主メモリ、キャッシュメモリ、補助記憶装置が挙げられる。
図5は、仮想ボリュームとプール及びプールボリューム等の関係を模式的に示す説明図である。
仮想ボリューム511は、仮想的な論理ボリュームであり、プール512内の記憶領域を用いて作成される。仮想ボリューム511は、複数の仮想領域514で構成される。1つのプール512は、複数のティア521〜523で構成される。各ティアは、それぞれ複数のプールボリューム531を備える。各プールボリューム531は、それぞれ複数のページ535で構成されている。
図5の左側に示す例では、一つのホスト計算機103(1)に仮想ボリューム511(VVOL001)が接続されている。その仮想ボリューム511(VVOL001)に記憶領域を提供するプール512は、第1ティアから第3ティアまでの3つのティア521〜523で区切られている。
プール512は、性能の異なる記憶メディア(記憶装置)で構成されている。言い換えれば、プール512は、性能の異なる複数のティア521〜523を有する。ティアの番号が若いほど、高性能であるとする。第1ティア521は最も性能が高い記憶装置から構成される高性能ティアである。第2ティア522は、次に性能の高い記憶装置から構成される中性能ティアである。第3ティア523は、最も性能の低い記憶装置から構成される低性能ティアである。なお、3つのティアに限らず、2つのティア、または4つ以上のティアをプールに設けてもよい。
図5の右側に示す例では、ホスト計算機103(2)は、2つの仮想ボリューム511(VVOL002)及び511(VVOL003)を使用している。ホスト計算機103(2)は、それら仮想ボリューム511(VVOL002,VVOL003)の全領域にアクセスすることができる。それら仮想ボリューム511(VVOL002,VVOL003)は、一つのプール513内の記憶領域を用いて作成される。プール513は、例えば、種類の異なる複数のプールボリューム532を有する。プール513は、ティアで区切られていない。
仮想ボリューム511(VVOL001)に着目する。仮想ボリューム511(VVOL001)内の仮想領域514(仮想ページ)には、第1ティア521内のページ535(実ページ)が割り当てられている。仮想領域514内のデータは、実際には、仮想領域514に割り当てられている実ページ535に格納されている。実ページ535は、プールボリュームの一部である。従って、実ページ535のデータは、実際には、そのプールボリュームに物理的記憶領域を提供している一つ以上のディスク222に格納されている。仮想ページの論理アドレスとプール内の論理アドレスとの変換、プール内の論理アドレスとディスク222の物理アドレスとの変換は、コントローラ211が担当する。
図5では、第2ストレージ装置102の論理ボリューム531(Vol22)は、第1ストレージ装置101内の外部接続ボリューム531(EVol2)にマウントされている。一部の線を省略しているが、第2ストレージ装置102の論理ボリューム531(Vol21)は、第1ストレージ装置101内の外部接続ボリューム531(EVol1)にマウントされている。
第1ストレージ装置101は、第2ストレージ装置102の有するボリュームを外部接続ボリューム(EVol)に接続する。これにより、第1ストレージ装置101は、第2ストレージ装置102のボリュームを、それがあたかも第1ストレージ装置101の内部ボリュームであるかのようにして取り扱い、プールボリュームとして使用する。プールボリュームのうち外部ボリュームを利用するものを、本実施例では、外部プールボリュームと呼ぶことがある。
図5では、第1ストレージ装置101のコントローラ211は、第1ストレージ装置101がマウントしている外部ボリューム宛のライトデータを、第1ストレージ装置101の通信ポート541から通信ネットワーク112を経由して第2ストレージ装置102の通信ポート542に送信する。
そのライトデータは、第2ストレージ装置102のコントローラ543を経由して、第2ストレージ装置102の記憶装置(ディスク)に書き込まれる。第2ストレージ装置102のディスクは、第1ストレージ装置101のディスク222と同様に構成することができるので、図示を省略する。
図5に示すように、第2ストレージ装置102の有する複数の外部ボリューム(Vol21,Vol22,Vol23)は、コントローラ543と、通信ポート542と、通信ネットワーク112とを共有している。従って、外部接続ボリューム(EVol)の性能を評価する場合は、その外部接続ボリュームに接続された外部ボリュームの性能だけでなく、外部接続ボリュームと外部ボリュームとを接続する通信経路の状態も考慮するのが好ましい。
例えば、外部ボリュームが高性能の記憶装置から構成されている場合でも、コントローラ543の処理性能が低い場合は、コントローラ543がボトルネックとなるため、高性能な外部ボリュームとして扱うことはできない。また例えば、通信ポート542の負荷が大きい場合、または、通信ネットワーク112が混雑している場合、通信ポート542がボトルネックとなる。
さらに、第1ストレージ装置101内の一方のプール512に関する構成が全く変化しない場合であっても、第1ストレージ装置101内の他方のプール513の構成が変化した場合は、その構成変化が一方のプール512に影響を与える可能性がある。
例えば、第2ストレージ装置102の外部ボリュームを第1ストレージ装置101内の他方のプール513に多数提供したような場合、コントローラ543または通信ポート542または通信ネットワーク112の負荷が増大する。従って、第1ストレージ装置101内の一方のプール512に関する性能が低下するおそれがある。
例えば、第2ストレージ装置102の外部ボリュームを第1ストレージ装置101内の他方のプール513に多数提供したような場合、コントローラ543または通信ポート542または通信ネットワーク112の負荷が増大する。従って、第1ストレージ装置101内の一方のプール512に関する性能が低下するおそれがある。
図5を用いて、ページに記憶されたデータを他のティア内のページに移動させる処理を簡単に説明する。この処理は、ページマイグレーション処理と呼ばれる。
例えば、第2ティア522内のページに記憶されたデータは、そのアクセス頻度が少ないという理由で、第3ティア523内の点線で示すページに移される。具体的には、移行元のページを有するプールボリューム(第2ティア内のプールボリューム)から、移行先のページを有するプールボリューム(第3ティア内のプールボリューム)に、データがコピーされる。
以下、第1ストレージ装置101の不揮発性メモリ215に記憶されている各テーブルについて説明する。図6〜図15は、テーブル構造を示す説明図である。
図6には、外部ドライブの性能を管理するための外部ドライブ性能管理テーブル320が示されている。外部ドライブ性能管理テーブル320は、外部ストレージ情報取得プログラム311によって更新される。
外部ドライブ性能管理テーブル320は、例えば、「外部ストレージID」列611と、「ドライブタイプ」列612と、「ドライブレスポンス[ms]」列613と、「ドライブIOPS[IOPS]」列614とを対応付けて管理する。
「外部ストレージID」列611には、第1ストレージ装置101に接続されている外部ストレージを識別するための情報が格納される。具体的には、第2ストレージ装置102の装置IDが列611に設定される。
「ドライブタイプ」列612には、外部ストレージの有する記憶装置の種類を示す情報が格納される。列612には、例えば、SSD、SAS−HDD、SATA−HDD等の値が記憶される。
「ドライブレスポンス[ms]」列613には、外部ストレージに搭載されている記憶装置一台あたりのレスポンス性能が格納される。レスポンス性能としては、例えば、記憶装置の低負荷I/O時のレスポンス性能でも良いし、または、記憶装置の平均レスポンス性能でもよい。
「ドライブIOPS[IOPS]」列614には、外部ストレージに搭載されている記憶装置一台あたりのスループットが格納される。列614には、例えば、その記憶装置が単位時間あたりに処理できる最大のI/O数が記憶される。例えば、図6の二行目615に示すように、外部ストレージID「EXT01」に搭載されているSSDの、レスポンス性能は1msであり、スループット性能は800IOPSである。
図7には、外部ストレージの性能を管理するための外部ストレージ性能管理テーブル321が示されている。外部ストレージ性能管理テーブル321は、外部ストレージ情報取得プログラム311によって更新される。
外部ストレージ性能管理テーブル321は、例えば、「外部ストレージID」列711と、「コントローラ性能[IOPS]」列712と、「ポート性能[MB/Sec]」列713とを対応付けて管理する。本実施例では、外部ストレージ性能を管理するために、コントローラ性能及びポート性能等を管理しているが、これに限らず、外部ストレージのキャッシュメモリのサイズ等も管理してもよい。
「外部ストレージID」列711には、第1ストレージ装置101に接続されている他のストレージ装置を識別するための情報が格納される。具体的には、列711には、第2ストレージ装置102の装置IDが挙げられる。
「コントローラ性能[IOPS]」列712には、例えば、外部ストレージのCPU性能が格納される。具体的には、列712には、第2ストレージ装置102のコントローラ543の最大性能が格納される。
「ポート性能[MB/Sec]」列713には、外部ストレージのポート性能が格納される。例えば、第2ストレージ装置102の通信ポート542のスループット性能と、通信ネットワーク112内のスイッチ(図示せず)のスループット性能と、第1ストレージ装置101と接続している通信線121,131のスループット性能とのうち、最小値がポート性能列713に格納される。
例えば、図7の二行目714には、外部ストレージID「EXT01」のコントローラ性能は20000IOPSであることと、ポート性能は800MB/Secであることが示されている。
図8には、外部ストレージを管理するための外部ストレージ管理テーブル322が示されている。外部ストレージ管理テーブル322は、外部ストレージ情報取得プログラム311によって更新される。
外部ストレージ管理テーブル322は、例えば、「外部ストレージID」列811と、「接続ボリューム数」列812と、「パス数」列813とを対応付けて管理する。
「外部ストレージID」列811には、第1ストレージ装置101に接続されているストレージ装置のIDが格納される。具体的には、例えば、第2ストレージ装置102の装置IDが挙げられる。
「接続ボリューム数」列812には、外部ストレージが、第1ストレージ装置101にマウントしているボリュームの数が格納される。即ち、列812には、第2ストレージ装置102から第1ストレージ装置101に提供されている論理ボリューム(外部ボリューム)の数が格納される。
「パス数」列813には、外部ストレージが、第1ストレージ装置101と接続している通信パスの本数が格納される。
例えば、図8の二行目814には、外部ストレージID「EXT01」が第1ストレージ装置101に提供しているボリュームの数は10個であることと、通信パスの数は2本であることとが示されている。
図9には、内部ドライブを管理するための内部ドライブ性能管理テーブル323が示されている。内部ドライブとは、第1ストレージ装置101の有する記憶装置222(ディスク222)である。
内部ドライブ性能管理テーブル323は、例えば、「内部ドライブタイプ」列911と、「ドライブレスポンス[ms]」列912と、「ドライブIOPS[IOPS]」列913とを対応付けて管理する。
「内部ドライブタイプ」列911には、第1ストレージ装置101に搭載されている記憶装置222の種類が格納される。列911には、例えば、SSD、SAS−HDD、SATA−HDD等が格納される。
「ドライブレスポンス[ms]」列912には、第1ストレージ装置101に搭載されている記憶装置222の一台当たりのレスポンス性能が格納される。レスポンス性能としては、例えば、記憶装置222の低負荷I/O時のレスポンス性能でも良いし、記憶装置222の平均レスポンス性能でもよい。
「ドライブIOPS[IOPS]」列913には、第1ストレージ装置101に搭載されている記憶装置222の一台あたりのスループットが格納される。列913には、例えば、記憶装置222が単位時間に処理可能な最大のI/O数が格納される。
例えば、図9の二行目914には、第1ストレージ装置101に搭載されているSSDのレスポンス性能が1msであること、及び、そのスループット性能は1000IOPSであることが示されている。
図10には、プールボリュームの性能を管理するためのプールボリューム性能管理テーブル324が示されている。プールボリューム性能管理テーブル324は、ティア管理プログラム312によって更新される。
プールボリューム性能管理テーブル324は、例えば、「プールボリューム ID」列1011と、「属性」列1012と、「外部ストレージID」列1013と、「ドライブタイプ」列1014と、「RAID Level」列1015と、「プールボリュームレスポンス」列1016と、「プールボリュームIOPS」列1017とを対応付けて管理する。
「プールボリューム ID」列1011には、プールボリュームを識別するための情報(プールボリュームID)が格納される。
「属性」列1012には、プールボリュームの属性を示す値が格納される。属性値には「外部」と「内部」がある。プールボリュームの属性が「内部」の場合は、そのプールボリュームが第1ストレージ装置101に搭載されているドライブ(記憶装置222)で構成された内部ボリュームであることを示す。これに対し、プールボリュームの属性が「外部」の場合は、外部ストレージに搭載されたドライブ(記憶装置)で構成された外部ボリュームであることを示す。
「外部ストレージID」列1013には、第1ストレージ装置101に接続されているストレージ装置を識別するための情報が格納される。具体的には、列1013には、第2ストレージ装置102の装置IDが格納される。
「ドライブタイプ」列1014には、プールボリュームのドライブ(記憶装置)の種類が格納される。列1014には、例えば、SSD、SAS−HDD、SATA−HDD等が格納される。
「RAID Level」列1015には、プールボリュームのRAIDレベルが格納される。列1015には、例えば、「3D+1P(RAID5)」、「6D+2P(RAID6)」等の値が格納される。
「プールボリュームレスポンス」列1016には、プールボリュームのレスポンス性能が格納される。レスポンス性能としては、例えば、低負荷I/O時のレスポンス性能でも良いし、または、プールボリュームの平均レスポンス性能でもよい。
「プールボリューム IOPS」列1017には、プールボリュームのスループット性能が格納される。列1017には、例えば、プールボリュームが単位時間で処理できる最大のI/O数が格納される。
例えば、図10の六行目1018には、プールボリュームIDが「005」のプールボリュームは、外部ストレージID「EXT02」のSAS−HDDで構成されていること、及び、RAIDレベルは「3D+1P」であること、及び、プールボリュームのレスポンス性能が5msであること、及び、プールボリュームのスループット性能が240IOPSであることが示されている。
図11には、プールボリュームのグループを管理するためのプールボリュームグループ管理テーブル325が示されている。プールボリュームグループ管理テーブル325は、ティア管理プログラム312によって更新される。
プールボリュームグループ管理テーブル325は、例えば、「プールID」列1111と、「プールボリュームID」列1112と、「外部ストレージID」列1113と、「プールボリュームグループ名」列1114と、「レスポンス[ms]」列1115と、「IOPS[IOPS]」列1116と、「外部コントローラ性能」列1117と「外部パス性能」列1118と、外部ティア IOPS列1119とを対応付けて管理する。
「プールID」列1111には、プールを識別する情報(ID)が格納される。「プールボリュームID」列1112には、ティア管理プログラム312によって分類されたプールボリュームの、IDが格納される。
「外部ストレージID」列1113には、第1ストレージ装置101に接続されている第2ストレージ装置102のIDが格納される。
「プールボリュームグループ名」列1114には、ティア管理プログラム312によって分類されたプールボリュームグループの、名前が格納される。
「レスポンス[ms]」列1115には、ティア管理プログラム312によって分類されたプールボリュームグループの、レスポンス性能が格納される。レスポンス性能は、例えば、プールボリュームグループの低負荷I/O時のレスポンス性能でも良いし、または、プールボリュームグループの平均レスポンス性能でもよい。
「IOPS[IOPS]」列1116には、ティア管理プログラム312によって分類されたプールボリュームグループの、スループット性能が格納される。列1116には、プールボリュームグループが単位時間で処理できる最大のI/O数が格納される。
「外部コントローラ性能」列1117には、外部ストレージのCPU性能(第2ストレージ装置102のコントローラ543の性能)が格納される。
「外部パス性能」列1118には、外部ストレージのポート性能(第2ストレージ装置102の通信ポート542の性能)が格納される。
「外部ティアIOPS」列1119には、少なくとも一つの外部プールボリュームを含むプールボリューム群から構成されるティア(このティアを外部ティアと呼ぶ)のスループット性能が格納される。
例えば、図11の四行目1120には、プール(A)は「プールボリューム(005,006,007)」の集合で構成されていること、及び、そのプールボリュームグループ名は「外部ティア_A−1」であること、「外部ティア_A−1」のレスポンス性能は5msであること、及び、その外部ティアのスループット性能は720IOPSであることが、示されている。
図12には、ティアの順序を管理するためのティア順序管理テーブル326が示されている。ティア順序管理テーブル326は、ティア順序算出プログラム313によって更新される。
ティア順序管理テーブル326は、例えば、「プールID」列1211と、「ティア#」列1212と、「プールボリュームグループ名」列1213と、「ティア順序判定基準」列1214とを対応付けて管理する。
「プールID」列1211には、プールのIDが格納される。「ティア#」列1212には、プール内におけるティアの順位が格納される。数字が小さいほど順位は高い。「プールボリュームグループ名」列1213には、分類されたプールボリュームグループの名前が格納される。即ち、列1213には、ティアに配属されたプールボリュームグループを識別するための情報として、プールボリュームグループ名が格納される。
「ティア順序判定基準」列1214には、プールボリュームグループの順序を決定する基準となった性能指標の値を格納する。例えば、プールボリュームグループの順序をレスポンス性能に基づいて決定した場合は、列1214に、プールボリュームグループのレスポンス性能を記録する。プールボリュームグループの順序を容量当たりのスループットに基づいて決定した場合は、列1214に、プールボリュームグループの容量当たりのスループットを記録する。
例えば、図12の二行目1215には、プール(A)の「SSDティア」という名のティアは第1順位であること、及び、そのティアのレスポンス性能は1msであることが、示されている。
図13には、性能ポテンシャルを管理するための性能ポテンシャル管理テーブル327が示されている。性能ポテンシャル管理テーブル327は、性能ポテンシャル算出プログラム314によって更新される。
性能ポテンシャル管理テーブル327は、例えば、「プールID」列1311と、「ティア#」列1312と、「プールボリュームグループ名」列1313と、「性能ポテンシャル」列1314とを対応付けて管理する。
「プールID」列1311には、プールのIDが格納される。「ティア#」列1312には、プールにおけるティアの順位が格納される。「プールボリュームグループ名」列1313には、ティア順序算出プログラム313によって分類されたプールボリュームグループの、名前が格納される。
「性能ポテンシャル」列1314には、プールボリュームグループの性能ポテンシャルが格納される。性能ポテンシャルとは、そのプールボリュームグループが単位時間で処理できる最大性能(IOPS)である。
例えば、図13の二行目1315には、プール(A)のSSDティアの性能ポテンシャルは、XXXIOPSであることが示されている。
図14には、プールボリュームのレスポンスカーブの測定結果を管理するためのプールボリュームレスポンスカーブ管理テーブル328が示されている。プールボリュームレスポンスカーブ管理テーブル328は、外部ストレージ情報取得プログラム311によって更新される。
プールボリュームレスポンスカーブ管理テーブル328は、例えば、「プールボリュームID」列1411と、「IOPS」列1412と、「レスポンスタイム」列1413とを対応付けて管理する。
「プールボリュームID」列1411には、測定したプールボリュームのIDが格納される。「IOPS」列1412には、プールボリュームに対して発行されるテストI/Oの負荷が格納される。負荷とは、例えば、単位時間あたりのI/O数である。「レスポンスタイム」列1413には、プールボリュームにテストI/Oを発行した場合のレスポンス時間が格納される。
例えば、図14の二行目1414には、プールボリューム(001)に、1IOPSのテストI/Oを与えたときのレスポンス性能は1msであることが示されている。
図15には、ティアのレスポンスカーブを管理するためのティアレスポンスカーブ管理テーブル329が示されている。ティアレスポンスカーブ管理テーブル329は、ティア管理プログラム312によって更新される。
ティアレスポンスカーブ管理テーブル329は、例えば、「プールID」列1511と、「ティア#」列1512と、「プールボリュームグループ名」列1513と、「IOPS」列1514と、「レスポンスタイム[ms]」列1515とを対応付けて、管理している。
「プールID」列1511には、プールのIDが格納される。「ティア#」列1512には、ティアの順位が格納される。「プールボリュームグループ名」列1514には、分類されたプールボリュームグループの、名前が格納される。
「IOPS」列1514には、ティアに与えられるI/O負荷の値が1秒あたりのI/O数として格納される。「レスポンスタイム[ms]」列1515には、I/O負荷に対するレスポンス時間が格納される。
例えば、図15の二行目1516には、プール(A)の第1順位ティアであるSSDティアに、1IOPSの負荷を与えたときのレスポンス時間は1msであることが示されている。
図16は、管理計算機104で表示されるティア情報確認画面1600を示す。ティア情報確認画面1600は、ティアの情報を管理者等が確認するための画面であり、管理計算機104の出力装置417に表示される。
ティア情報確認画面1600は、例えば、プールID出力部1611、ティア情報出力部1612、及びボタン1613を含む。
プールID出力部1611は、第1ストレージ装置101に設けられたプールのIDが表示される。
ティア情報出力部1612には、第1ストレージ装置101のティア順序算出プログラム313により定義されたティアの、情報が出力される。ティア情報出力部1612には、例えば、ティア番号毎に、ストレージ種別と、ドライブ種別と、ティアの容量とが表示される。ストレージ種別には、「マスタストレージ」と「外部ストレージ」とがある。「マスタストレージ」とは、他のストレージ装置内の論理ボリュームを使用するストレージ装置であり、本実施例では第1ストレージ装置101が該当する。「外部ストレージ」とは論理ボリュームを提供するストレージ装置であり、本実施例では第2ストレージ装置102が該当する。「ドライブ種別」とは、ティアを構成するプールボリュームに物理的記憶領域を提供している記憶装置の種別である。
ボタン1613は、画面を終了させるためのものである。管理者等は、プールのティア情報を確認した後、本画面の表示を終了させる場合にボタン1613を操作する。
第1ストレージ装置101のCPU212は、ティア順序を決定した後に、プール毎のティア情報を管理計算機104に送信する。管理計算機104のCPU411は、管理用通信プログラム422を実行して、第1ストレージ装置101からプール毎のティア情報を受信する。管理計算機104は、UI制御プログラム421を実行し、ティア情報確認画面1600を作成して、管理者等に提供する。
以下、本実施例で行われる種々の処理を詳細に説明する。各フローチャートは、本実施例の理解及び実施に必要な範囲で、各処理の概要を示す。ステップの順序は、図示の順序に限らない。また、いわゆる当業者であれば、新たなステップを追加したり、一部のステップを変更または削除したりすることができる。なお、以下の説明ではステップを「S」と略記する。
図17は、本実施例の全体的な処理の流れを示すフローチャートである。本処理は、プールが作成されるタイミングで開始しても良いし、または、管理者による指示を契機に開始してもよい。
本実施例では、外部ストレージの性能情報を取得する方法として、管理計算機104から取得する方法と、第1ストレージ装置101が測定して取得する方法との2種類の方法を説明する。これに限らず、第1ストレージ装置101が、外部ストレージの性能情報を予めテーブルに保持している構成でもよい。
外部ストレージ情報取得プログラム311は、S1711、S1711−2、S1712、S1712−2、S1713、S1713−2、S1714を実行する。ティア管理プログラム312は、S1715、S1716、S1717を実行する。ティア順序算出プログラム313は、S1718を実行する。性能ポテンシャル算出プログラム314は、S1718−2、S1719、S1720を実行する。
外部ストレージ情報取得プログラム311は、管理計算機104が存在を認識している外部ストレージ(第2ストレージ装置)毎に、1711−2、S1712、S1712−2、S1713、S1713−2、S1714をそれぞれ実行する。外部ストレージ情報取得プログラム311は、処理対象となる外部ストレージのIDを一つ決定する(S1711)。
外部ストレージ情報取得プログラム311は、処理対象の外部ストレージについて、ドライブの性能情報を取得できるかを判断する(S1711−2)。ドライブの性能情報とは、外部ストレージの有する記憶装置(外部ドライブと呼ぶことができる)の性能を示す情報である。
外部ドライブの性能情報を管理計算機104から取得できる場合(S1711−2:YES)、外部ストレージ情報取得プログラム311は、外部ドライブの性能情報を取得する処理(S1712)と、外部ストレージの性能情報を取得する処理(S1712−2)とを実行する。外部ドライブの性能情報を取得する処理の詳細は、図18で後述する。外部ストレージの性能情報を取得する処理の詳細は、後に図19と共に説明する。
外部ドライブの性能情報を管理計算機104から取得できない場合(S1711−2:NO)、外部ストレージ情報取得プログラム311は、外部プールボリュームの性能を測定する処理(S1713)と、外部ストレージの性能を測定する処理(S1713−2)とを実行する。外部プールボリュームの性能を測定する処理の詳細は、後に図20と共に説明する。外部ストレージの性能を測定する処理の詳細は、図21で後述する。
ステップS1711−2の判定結果がいずれの場合においても、外部ストレージ情報取得プログラム311は、必要な情報を手に入れた後で、外部ストレージの接続情報を取得する処理を実行する(S1714)。外部ストレージの接続情報を取得する処理の詳細は、後に図22と共に説明する。
未処理の外部ストレージが有る場合、外部ストレージ情報取得プログラム311は、S1711に戻って、上述のステップを繰り返す。管理計算機104で管理されている全ての外部ストレージについて処理を終了すると、S1715に移る。
ティア管理プログラム312は、S1712及びS1712−2、または、S1713及びS1713−2の、いずれかで取得された性能値を用いて、プールボリュームの性能を算出する処理を実行する(S1715)。プールボリュームの性能を算出する処理の詳細は、後に、図23と共に説明する。
ティア管理プログラム312は、算出したプールボリューム毎の性能値を用いて、プールボリュームを分類する処理を実行する(S1716)。つまり、ティア管理プログラム312は、各ボリュームの性能値に応じて、各プールボリュームをグループ化する。プールボリュームをグループ化する処理の詳細は、後に、図24と共に説明する。
ティア管理プログラム312は、分類されたプールボリュームグループ毎に、プールボリュームの性能を算出する処理を実行する(S1717)。ティア管理プログラム312は、S1712及びS1712−2、または、S1713及びS1713−2のいずれかで取得されたボリューム毎の性能情報に基づいて、プールボリュームグループの性能を算出する(S1717)。この処理の詳細は、図25で後述する。
ティア順序算出プログラム313は、S1717で算出したプールボリューム毎の性能値を用いて、プールボリュームグループ毎に、ティア順序を算出する処理を実行する(S1718)。ティア順序算出プログラム313は、プールボリュームグループの性能ティア順序算出処理の詳細は、後に図26と共に説明する。
性能ポテンシャル算出プログラム314は、S1717で算出したプールボリュームグループの性能値を用いて、プールボリュームグループ毎の性能ポテンシャルを算出できるかを判定する(S1718−2)。
性能ポテンシャルを算出できる場合(S1718−2:YES)、性能ポテンシャル算出プログラム314は、性能ポテンシャルを算出する処理を実施する(S1719)。性能ポテンシャルを算出する処理の詳細は、後に図27と共に説明する。
性能ポテンシャルを算出できない場合(S1718−2:NO)、性能ポテンシャル算出プログラム314は、S1713及びS1713−2で取得したレスポンスカーブを分析する処理を実施する(S1720)。レスポンスカーブ分析処理の詳細は後に図28と共に説明する。
なお、ティア順序及び性能ポテンシャルは、例えば、通信ネットワークの混み具合、プールボリュームの追加または削除等により、種々変動する可能性がある。この構成変更に対応するための処理については、図29と共に説明する。
さらに、仮想ボリューム511に割り当てられたページのデータは、ページ毎のI/O頻度に応じて、より適切なティア内のページに移される。ページマイグレーション処理の詳細は、図30で後述する。
図18は、外部ドライブの性能情報を取得する処理(S1712)を示すフローチャートである。外部ストレージ情報取得プログラム311は、外部ドライブ毎に、後述のS1812、S1813、S1814、S1815、S1816、S1821を実行する(S1818)。具体的には、外部ストレージ情報取得プログラム311は、外部ドライブ性能管理テーブル320の外部ストレージID611に処理対象の外部ストレージのIDが格納された、エントリ列を追加する。
外部ストレージ情報取得プログラム311は、管理計算機104に対して、処理対象の外部ストレージが有する各ドライブ(外部ドライブ)について、そのドライブの性能情報を要求する(S1812)。
外部ストレージ情報取得プログラム311は、管理計算機104から取得した性能情報にドライブタイプが含まれているかを判定する(S1813)。外部ドライブのタイプが取得できた場合(S1813:YES)、外部ストレージ情報取得プログラム311は、S1811で追加したエントリ行のドライブタイプ612に、S1813で取得したドライブタイプを格納する(S1814)。
外部ストレージ情報取得プログラム311は、管理計算機104から取得した性能情報にレスポンス時間が含まれている場合、そのレスポンス時間をドライブレスポンス613に格納する(S1815)。管理計算機104から取得した性能情報にレスポンスタイムが含まれていない場合、ドライブレスポンス613には、“Unknown”が設定される。
外部ストレージ情報取得プログラム311は、管理計算機104から取得した性能情報に外部ドライブのスループット性能(ドライブIOPS)が含まれている場合、そのスループット性能をスループット性能614に格納する(S1816)。管理計算機104から取得した性能情報に外部ドライブのスループット性能が含まれていない場合、スループット性能614には、“Unknown”が設定される。
一方、管理計算機104に要求した性能情報にドライブタイプが含まれていない場合(S1813:NO)、S1811で追加したエントリ行の全てのセルに“Unknown”が格納される(S1821)。ドライブタイプは基本的な情報であるため、管理計算機104が外部ストレージからドライブタイプすら取得できない場合は、レスポンス時間及びスループット性能も取得できないと考えられる。従って、追加されたエントリ行の各セルに“Unknown”を設定する。
図19は、外部ストレージの性能情報を取得する処理(S1712−2)を示すフローチャートである。
外部ストレージ情報取得プログラム311は、外部ストレージ性能管理テーブル321に、処理対象の外部ストレージのIDが外部ストレージID711に格納されたエントリ行を追加する(S1911)。
外部ストレージ情報取得プログラム311は、管理計算機104に対して、処理対象の外部ストレージの性能情報を要求する(S1912)。
外部ストレージ情報取得プログラム311は、管理計算機104から性能情報を取得できたか判定する(S1913)。管理計算機104から外部ストレージの性能情報を取得できた場合(S1913:YES)、外部ストレージ情報取得プログラム311は、S1911で追加したエントリ行のコントローラ性能712に、取得したコントローラ性能の値を格納する(S1914)。同様に、外部ストレージ情報取得プログラム311は、S1911で追加したエントリ行のポート性能713に、取得したポート性能の値を格納する(S1915)。
要求した性能情報を管理計算機104から取得できない場合(S1913:NO)外部ストレージ情報取得プログラム311は、前記追加したエントリ行の全てのセルに“Unknown”を格納する(S1921)。
図20は、外部プールボリュームの性能を測定する処理(S1713)を示すフローチャートである。
外部ストレージ情報取得プログラム311は、S1711で選択された処理対象の外部ストレージの有する外部プールボリュームのうちいずれか一つを、測定対象のボリュームとして選択する(S2011)。
外部ストレージ情報取得プログラム311は、測定対象の外部プールボリュームのドライブ種別及びRAIDレベルをチェックする(S2012)。
チェックの結果、外部ストレージ情報取得プログラム311は、同一ドライブ種別かつ同一RAIDレベルの外部プールボリュームについての性能測定結果が既に記憶されているか否かを判定する(S2013)。同種の外部プールボリュームについては、重複した性能測定を行わないようにするべく、S2013の判定ステップを設けている。
同一ドライブ種別及び同一RAIDレベルの外部プールボリュームについての測定結果が存在しない場合(S2013:NO)、外部ストレージ情報取得プログラム311は、測定対象の外部プールボリュームにテストI/Oを発行することで性能を測定可能かどうか判定する(S2014)。
例えば、測定対象のプールボリューム内に記憶されたデータについて、ホスト計算機103からのコマンドを処理している場合、外部ストレージ情報取得プログラム311は、性能測定はできないと判定できる。ホスト計算機103により使用されている外部プールボリュームについて性能を測定すると、ホスト計算機103で実行中の業務処理に影響が及ぶ可能性があるためである。さらに、外部プールボリュームに障害が発生している場合、または、外部プールボリュームについて障害回復処理が実行されている場合のいずれの場合も、外部ストレージ情報取得プログラム311は、性能を測定できないと判定できる。
外部プールボリュームの性能を測定できると判定された場合(S2014:YES)、外部ストレージ情報取得プログラム311は、測定対象の外部プールボリュームの性能を測定する(S2015)。
例えば、外部ストレージ情報取得プログラム311は、測定対象の外部プールボリュームに対して、負荷(IOPS)のレベルを変えながらランダムI/Oを発行し、そのランダムI/Oに対するレスポンス時間を負荷レベル毎に計測する。これにより、負荷(IOPS)とレスポンス時間との関係を示す特性である、レスポンスカーブを取得することができる(S2015)。
外部ストレージ情報取得プログラム311は、計測結果を、プールボリュームレスポンスカーブ管理テーブル328に記録する。(S2016)。
一方、同一ドライブ種別かつ同一RAIDレベルの外部プールボリュームについての性能測定結果が既に存在する場合(S2013:YES)、外部ストレージ情報取得プログラム311は、既存の性能測定結果を、プールレスポンスカーブ管理テーブル328に記録する(S2017)。既存の測定結果と、測定対象の外部プールボリュームから得られるであろう測定結果とを同一であるとみなすことができるためである。
このように、既存の測定結果をできるだけ利用することで、無駄な性能測定を行わずに済む。従って、第1ストレージ装置101は、必要最低限のテストI/Oを第2ストレージ装置102内の外部プールボリュームに向けて発行するだけでよく、通信ネットワーク112の混在を抑制でき、コントローラ211及びコントローラ543の処理負荷が増大するのを防止することができる。
なお、重複した性能測定を防止するためのS2013を図20のフローチャートから取り除いてもよい。つまり、全ての外部プールボリュームに対してテストI/Oを発行する構成としてもよい。
外部プールボリュームの性能を測定または取得すると、外部ストレージ情報取得プログラム311は、性能を未だ測定していない外部プールボリュームが存在するか判定する(S2018)。未測定の外部プールボリュームが有る場合(S2018:YES)、S2011に移り、上述のステップを繰り返す。なお、測定対象の外部プールボリュームについて性能を測定できない場合(S2014:NO)、外部ストレージ情報取得プログラム311は、S2018に移る。
図21は、外部ストレージの性能を測定する処理(S1713−2)を示すフローチャートである。
外部ストレージ情報取得プログラム311は、S1711で選択した処理対象の外部ストレージに含まれるプールボリュームのうち、性能測定が可能な全てのプールボリュームに対して一斉にランダムI/Oを発行させる(S2111)。外部ストレージ情報取得プログラム311は、測定対象の各外部プールボリュームの限界性能が検出されるまで、ランダムI/Oの負荷を高めていく(S2111)。外部ストレージ情報取得プログラム311は、検出された限界性能を「測定結果R1」として保持する(S2111)。
限界性能とは、コマンドに対するレスポンスが急激に悪化するときの負荷(IOPS))である。処理できないほどの多量のコマンドが発行されると、未処理のキューが溜まって、応答時間が通常時よりも大幅に長くなる。
次に、外部ストレージ情報取得プログラム311は、S2111での測定対象である各外部プールボリュームのそれぞれについて、限界性能を特定できるまで個別にランダムI/Oを発行する(S2112)。なお、S2111での測定対象である各外部プールボリュームの限界性能は、S2015で測定した各プールボリュームの性能結果を用いてもよい。外部ストレージ情報取得プログラム311は、各外部プールボリュームの限界性能を合算し、合算した値を「全ドライブ性能(R2)」として保持する(S2112)。
外部ストレージ情報取得プログラム311は、S2111で求めた測定結果(R1)とS2112で求めた全ドライブ性能(R2)とを比較し、測定結果(R1)の方が全ドライブ性能(R2)よりも小さいかを判定する(S2113)。
測定結果(R1)の方が小さい場合(S2113:YES)、「測定結果(R1)」をコントローラの限界性能として、外部ストレージ性能管理テーブル321のコントローラ性能712に記録する(S2119)。
各外部プールボリュームが限界性能に至るまで各外部プールボリュームに一斉にランダムI/Oを発行した場合のレスポンス性能は、外部プールボリュームの数によっても相違するが、外部ストレージ装置102のコントローラ543の性能に影響される。一斉に発行されるランダムI/Oは、コントローラ543を経由して各外部プールボリュームに与えられるためである。これに対し、外部プールボリューム毎に、その限界性能までランダムI/Oを発行する場合は、コントローラ543の影響は少ない。コントローラ543を経由するランダムI/Oの負荷が少ないためである。
理解のための簡単な例を挙げると、例えば、測定対象の外部プールボリュームが10個あり、10個の外部プールボリュームに対して、限界性能に至るまでランダムI/Oを発行した場合の測定結果(R1)が800IOPSであったとする。これに対し、各外部プールボリュームの限界性能が100IOPSである場合、全ドライブ性能(R2)は、1000IOPS(=100×10)となる。
この場合、測定結果R1(=800IOPS)の方が全ドライブ性能R2(=1000IOPS)よりも少ない。つまり、外部ストレージのコントローラ543がボトルネックとなっていることを示す。そこで、外部ストレージのコントローラ543の限界性能として、測定結果(R1)を採用する。
これに対し、測定結果(R1)の方が全ドライブ性能(R2)よりも大きい場合(S2113:NO)、外部ストレージ情報取得プログラム311は、外部ストレージからコントローラ稼働率を取得する(S2114)。コントローラ稼働率とは、外部ストレージのコントローラ543が稼働している割合を示す情報である。
外部ストレージからコントローラ稼働率を取得できたか判定される(S2115)。コントローラ稼働率を取得できない場合(S2115:NO)、外部ストレージ情報取得プログラム311は、全ドライブ性能(R2)をコントローラの限界性能として、外部ストレージ性能管理テーブル321のコントローラ性能712に記録することができる(S2118)。
コントローラ稼働率を取得できた場合(S2115:YES)、外部ストレージ情報取得プログラム311は、全ドライブ性能(R2)をコントローラ稼働率で割って、算出結果R3を得る(S2116)。外部ストレージ情報取得プログラム311は、算出結果R3(=R2/コントローラ稼働率)を、外部ストレージのコントローラ543の限界性能として、外部ストレージ性能管理テーブル321のコントローラ性能712に記録することができる(S2117)。
測定結果(R1)の方が全ドライブ性能(R2)よりも大きい場合は、外部ストレージのコントローラ543の処理能力に余裕があることを示す。より正確にコントローラ543の限界性能を算出すべく、コントローラ543の稼働率を取得して、全ドライブ性能(R2)をコントローラ稼働率で除算する。
なお、外部ストレージ情報取得プログラム311は、コントローラ稼働率を取得する際に、外部ストレージ性能管理テーブル321のパス性能713に関する情報を外部ストレージから取得できた場合は、その情報を列713に格納することができる。パス性能に関する情報(ポート性能に関する情報)を取得できなかった場合は、列713に、“Unknown”を格納することもできる。
図22は、外部ストレージの接続情報を取得する処理(S1714)を示すフローチャートである。
外部ストレージ情報取得プログラム311は、外部ストレージ管理テーブル322に1行追加し、その行の外部ストレージID811に処理対象の外部ストレージのIDを格納させる(S2211)。
外部ストレージ情報取得プログラム311は、処理対象の外部ストレージから提供されている外部プールボリュームの数をカウントする(S2212)。即ち、外部ストレージである第2ストレージ装置102内の論理ボリュームのうち、第1ストレージ装置101内の外部接続ボリュームに接続されているボリューム(外部プールボリューム)の数を検出する。
外部ストレージ情報取得プログラム311は、外部プールボリュームのカウントが成功したか判定する(S2213)。カウント成功の場合(S2213:YES)、外部ストレージ情報取得プログラム311は、カウント値を、S2211で追加した行の接続ボリューム数812に格納する(S2214)。カウント失敗の場合(S2213:NO)、接続ボリューム数812には“Unknown”が格納される(S2215)。
外部ストレージ情報取得プログラム311は、処理対象の外部ストレージ(第2ストレージ装置102)と第1ストレージ装置101とを接続する通信パス数をカウントする(S2216)。
通信パス数のカウントが成功した場合(S2217:YES)、外部ストレージ情報取得プログラム311は、その通信パス数を外部ストレージ管理テーブル322の、S2211で追加した行のパス数813に格納する(S2218)。通信パス数のカウントに失敗した場合(S2217:NO)、パス数813には“Unknown”が格納される(S2219)。
図23は、プールボリュームの性能を算出する処理(S1715)を示すフローチャートである。
ティア管理プログラム312は、全てのプールボリュームについて、プールボリュームIDを取得し、プールボリューム毎に所定の情報を取得する(S2311)。所定の情報としては、例えば、ボリューム属性(内部ボリュームか外部ボリュームか)、所属するストレージのID、ドライブタイプ、RAIDレベルがある。ティア管理プログラム312は、取得した所定の情報を、プールボリューム性能管理テーブル324に追加される行に格納させる(S2312)。
ティア管理プログラム312は、プールボリューム性能管理テーブル324と外部ドライブ性能管理テーブル320のいずれにも含まれる外部ストレージIDが存在するかを判定する(S2313)。つまり、管理計算機104が外部ストレージから外部ドライブに関する情報を取得できているか否かを判定する。
各テーブル324,320に共通する外部ストレージIDが有る場合(S2313:YES)、ティア管理プログラム312は、外部ドライブ性能管理テーブル320の情報を使用してプールボリューム毎のドライブ性能を算出し、プールボリューム性能管理テーブル324に格納する(S2314)。
例えば、ティア管理プログラム312は、外部ドライブ性能管理テーブル320のドライブレスポンス613の値を、外部ストレージID(611、1013)及びドライブタイプ(612、1014)がそれぞれ一致する行の、プールボリュームレスポンス1016に格納する(S2314)。
さらに、ティア管理プログラム312は、外部ドライブ性能管理テーブル320のドライブIOPS614の値に、外部ストレージID(611、1013)及びドライブタイプ(612、1014)が一致する行の、RAIDレベル1015に示されるデータディスクの数を乗じる。例えば、RAIDレベルが「3D+1P」の場合、データディスクの数は3である。データディスク数にドライブIOPSを乗じた値は、プールボリュームのスループット性能を示す。従って、ティア管理プログラム312は、算出された値をプールボリュームのスループットとして、プールボリュームIOPS1017に格納させる(S2314)。
なお、S2314で述べたボリューム性能(レスポンス及びスループット)の算出方法は、一例であり、上記方法に限らない。
各テーブル324,320に共通する外部ストレージIDが無い場合(S2313:NO)、ティア管理プログラム312は、プールボリュームレスポンスカーブ管理テーブル328に基づいて、プールボリューム毎のドライブ性能を算出する(S2315)。
例えば、ティア管理プログラム312は、プールボリュームレスポンスカーブ管理テーブル328において、同一プールボリュームIDのレスポンスタイムのうち、最も小さいレスポンスタイムをそのプールボリュームのレスポンスタイムとして選択する。ティア管理プログラム312は、その選択されたレスポンスタイムを、プールボリュームID(1411、1011)が一致する行のプールボリュームレスポンス1016に格納させる(S2315)。また、ティア管理プログラム312は、プールボリュームレスポンスカーブ管理テーブル328において、同一プールボリュームIDのレスポンスタイムのうち、例えば、ある一定のレスポンス時間を超えた値のスループット値をそのプールボリュームのスループットとして、その値をプールボリュームIOPS1017に格納させる(S2315)。
なお、プールボリュームのレスポンス性能を測定できない場合、または算出できない場合には、プールボリュームIOPS1017に“Unknouwn”を格納することができる。
さらに、内部プールボリュームのドライブ性能についても、外部ドライブ性能管理テーブル320の代わりに内部ドライブ性能管理テーブル323を用いることで、S2314で述べたと同様の方法で求めることができる。
図24は、プールボリュームをグループ化する処理(S1716)を示すフローチャートである。
ティア管理プログラム312は、プールボリューム性能管理テーブル324のプールボリュームレスポンス1016の値が“Unknown”であるプールボリュームが有るかを判定する(S2411)。
プールボリュームレスポンス1016の値に“Unknown”が格納されているプールボリュームが一つも存在しない場合(S2411:NO)、ティア管理プログラム312は、プールボリュームレスポンス1016の値に基づいて、各プールボリュームを比較する(S2412)。
プールボリュームレスポンス1016の値に一つでも“Unknown”が有る場合(S2411:YES)、容量あたりのIOPSに基づいて各プールボリュームを比較することができる(S2413)。即ち、プールボリュームIOPS1017をプールボリュームの容量で割り、容量当たりのIOPSを算出し、その容量当たりのIOPSの大小を各プールボリューム間で比較する。
なお、本実施例では、プールボリュームレスポンス1016が“Unknown”の場合でも、プールボリュームIOPS1017の値は入力されるようになっている。
ティア管理プログラム312は、S2412またはS2413での結果に基づいて、プールボリュームを分類する(S2414)。本実施例において分類とは、特定の観点に基づいて、同種のプールボリュームをグループ化することである。分類方法としては、以下の方法がある。以下の分類方法は一例であって、それらに限定されない。
(1)第1分類方法
第1分類方法は、内部プールボリュームを基準とする方法である。第1分類方法では、プールボリュームを性能順に並べ、内部プールボリュームのレスポンス性能を基準値として、基準値よりもレスポンス性能が高い外部プールボリューム同士、基準値よりもレスポンス性能の低い外部プールボリューム同士で、それぞれグループ化する。
第1分類方法は、内部プールボリュームを基準とする方法である。第1分類方法では、プールボリュームを性能順に並べ、内部プールボリュームのレスポンス性能を基準値として、基準値よりもレスポンス性能が高い外部プールボリューム同士、基準値よりもレスポンス性能の低い外部プールボリューム同士で、それぞれグループ化する。
(2)第2分類方法
第2分類方法は、容量を基準とする方法である。第2分類方法では、各プールボリュームグループの容量がほぼ同一となるように、レスポンス性能の似たプールボリュームを集めてグループを形成する。
第2分類方法は、容量を基準とする方法である。第2分類方法では、各プールボリュームグループの容量がほぼ同一となるように、レスポンス性能の似たプールボリュームを集めてグループを形成する。
(3)第3分類方法
第3分類方法は、プールボリュームの由来に着目して分類する方法である。第3分類方法では、所属するストレージ装置のID及びドライブタイプが共通するプールボリューム同士をグループ化する。
第3分類方法は、プールボリュームの由来に着目して分類する方法である。第3分類方法では、所属するストレージ装置のID及びドライブタイプが共通するプールボリューム同士をグループ化する。
ティア管理プログラム312は、S2414で分類した結果を、プールボリュームグループ管理テーブル325に記録する。作成されたプールボリュームグループをプールボリュームグループ管理テーブル325に記録する時点で、そのプールボリュームグループの名称をテーブル325の列1114に保存可能となる構成としてもよい。
なお、第1ストレージ装置101が各プールボリュームを自動的に分類する場合を述べたが、これに代えて、管理者から指示される分類情報に基づいて第1ストレージ装置101がプールボリュームを分類する構成でもよい。
図25は、プールボリュームグループ毎の性能を算出する処理(S1717)を示すフローチャートである。
ティア管理プログラム312は、プールボリューム性能管理テーブル324の性能情報と、プールボリュームグループ管理テーブル325の情報とを基にして、プールボリュームグループ毎のドライブ性能を算出する(S2511)。
ティア管理プログラム312は、算出されたプールボリュームグループ毎のドライブ性能を、プールボリュームグループ管理テーブル325に記憶させる(S2512)。
例えば、ティア管理プログラム312は、プールボリュームグループ毎に、プールボリューム性能管理テーブル324のプールボリュームレスポンス1016の値の平均を算出して、その平均値をプールボリュームグループ管理テーブル325のレスポンス1115に格納させることができる(S2512)。なお、プールボリュームグループのレスポンス性能は、同一プールボリュームグループに属するプールボリュームレスポンス1016の値の平均値の他に、例えば、最低値としてもよい。
さらに、ティア管理プログラム312は、プールボリュームグループ毎に、プールボリューム性能管理テーブル324のプールボリュームIOPS1017を合算し、その合計値をプールボリュームグループ管理テーブル325のIOPS1116に格納させることができる(S2512)。
なお、プールボリューム性能管理テーブル324に“Unknown”が格納されているため、プールボリュームグループの性能を算出できない場合は、レスポンス1115及びIOPS1116に“Unknown”を設定することができる。
ティア管理プログラム312は、外部プールボリュームを含むプールボリュームグループについては、外部ストレージ性能管理テーブル321の性能情報と、外部ストレージ管理テーブル322の性能情報とを基にして、外部ストレージのコントローラ性能とパス性能とを算出する(S2513)。
ティア管理プログラム312は、例えば、外部ストレージ性能管理テーブル321のコントローラ性能712の値に、プールボリュームグループに属するボリューム数を外部ストレージ管理テーブル322の接続ボリューム数812で割った値を乗じて、コントローラ性能を求めることができる(コントローラ性能=外部ストレージのコントローラ性能×(プールボリュームグループに属するボリューム数)/接続ボリューム数))。
ティア管理プログラム312は、算出された、外部ストレージのコントローラ性能1117及びパス性能1118を、プールボリュームグループ管理テーブル325に記憶させる(S2514)。一部の情報が“Unknown”であるために算出ができない場合、レスポンス1115またはIOPS1116には“Unknown”を格納してもよい(S2514)。
プールボリュームグループ管理テーブル325のうち、ドライブスループット性能1116と、外部ストレージのコントローラ性能1117と、外部ストレージのパス性能1118のうち、最も値が小さいものがボトルネックとなると想定できる。そこで、ティア管理プログラム312は、それら1116,1117,1118のうち最も小さい値を算出する(S2515)。ティア管理プログラム312は、その最小値を、プールボリュームグループ管理テーブル325の、外部ティアのスループット1119に記録させる(S2516)。
図26は、ティア順序の算出処理(S1718)を示すフローチャートである。ティア順序算出プログラム313は、プールボリュームグループ管理テーブル325のレスポンス1115の値が“Unknown”であるプールボリュームグループが一つでも有るかを判定する(S2611)。
レスポンス1115の値が“Unknown”であるプールボリュームグループが一つも無い場合(S2611:NO)、ティア順序算出プログラム313は、レスポンス1115の値に基づいて、各プールボリュームグループのレスポンス性能を比較する(S2612)。
レスポンス1115の値が“Unknown”であるプールボリュームグループが有る場合(S2611:YES)、ティア順序算出プログラム313は、ティアの容量あたりのIOPSに基づいて、プールボリュームグループを比較する(S2613)。
例えば、ティア順序算出プログラム313は、プールボリュームグループ管理テーブル325の外部ティア性能1119をそのティアの記憶容量で割り、ティアの容量当たりのIOPSを算出する。なお、本実施例では、レスポンス1115が“Unknown”であっても、外部ティア性能1119に値が入力されるようになっている。
ティア順序算出プログラム313は、S2612またはS2613での比較結果に基づいて、ティアの順序を決定する(S2614)。例えば、各プールボリュームグループを性能の高い順番に並び替えて、各プールボリュームグループの属するティアの順序を決定することができる。
ティア順序算出プログラム313は、S2614で決定されたティア順序と、その順序付けの判定基準となった性能データとを、ティア順序管理テーブル326に記録する(S2615)。
図27は、性能ポテンシャルを算出するための処理(S1719)を示すフローチャートである。
性能ポテンシャル算出プログラム314は、性能ポテンシャルの算出対象であるティアの属性が「外部ボリューム」であるか否かを判定する(S2711)。対象ティアの属性が外部ボリュームでは無い場合(S2711:NO)、性能ポテンシャル算出プログラム314は、プールボリュームグループ管理テーブル325のIOPS1116の値を、性能ポテンシャル管理テーブル327の性能ポテンシャル1314に記録させる(S2712)。
一方、対象ティアの属性が「外部ボリューム」の場合(S2711:YES)、性能ポテンシャル算出プログラム314は、プールボリュームグループ管理テーブル325の外部ティア性能1119の値を、性能ポテンシャル管理テーブル327の性能ポテンシャル1314に記録させる(S2713)。
図28は、レスポンスカーブに基づいて各ティアの性能ポテンシャルを求める方法を模式的に示す。図28は、図17に示すレスポンスカーブ分析処理(S1720)の内容を説明する。
特性図2811、2821、2831は、プールボリュームグループ毎のレスポンスカーブを示す。それら特性図は、プールボリュームレスポンスカーブ管理テーブル328で示される値を、プールボリュームグループ毎に、縦軸にレスポンスタイム1413を取り、横軸にIOPS1412を取って、グラフ化したものである。
ここでは、特性図2811中の第1曲線2812と縦軸の交点の値をX、特性図2821中の第2曲線2822と縦軸の交点の値をY、特性図2831中の第3曲線2832と縦軸の交点の値をZとする。X<Y<Zであるものとする。
レスポンスカーブ分析処理において、性能ポテンシャル算出プログラム314は、例えば以下のように算出する。
(1)まず、第1曲線2812のレスポンス時間がYである点と、第2曲線2822のレスポンス時間がYである点を結合して、第1交点2842を得る。次に、第2曲線2822のレスポンス時間がZである点と、第3曲線2832のレスポンス時間がZである点を結合して、第2交点2843を得る。第1交点2842で第1曲線2812と第2曲線2822とを接続し、第2交点2843で第2曲線2822と第3曲線2832とを接続して、曲線2844を得る。
(2)第1交点2842が示すIOPSの値をA、第2交点2843が示すIOPSの値をB、曲線2844のIOPSの最大値をCとする。特性図2811が示すティアAの性能ポテンシャルは、「A」である。特性図2821が示すティアBの性能ポテンシャルは、「B−A」として算出される。特性図2831が示すティアCの性能ポテンシャルは、「C−B」として算出される。
各ティアには、その性能ポテンシャルまで、ページを配置することができる。換言すれば、ティアに属する各ページのIOPSの合計値は、そのティアの性能ポテンシャルを超えないように、ティアに割り当てられるページが制御される。
図29は、構成変更処理を示すフローチャートである。ティア構成変更プログラム315は、図17で示した処理が実行された後で、所定の契機が到来したかを監視し、所定契機が到来した場合は、各ティアの性能ポテンシャルを再度算出する。
所定の契機としては、一定時間が経過した場合(S2911)、プールボリュームが追加または削除された場合(S2912)、外部ストレージ装置102から第1ストレージ装置101に提供されるボリュームの数が変化した場合(S2913)を例示することができる。
ティア構成変更プログラム315は、指定された一定時間が経過したかを監視し(S2911)、一定時間が経過した場合(S2911:YES)、プール毎に、プールボリュームの追加もしくは削除が発生したかを確認する(S2912)。
プールボリュームの追加もしくは削除が発生していない場合(S2912:NO)、ティア構成変更プログラム315は、外部ストレージの接続ボリューム数が変化しているかどうかを確認する(S2913)。外部ストレージから第1ストレージ装置に接続されるボリュームの数に変化がない場合(S2913:NO)、再びタイマの値を監視する(S2911)。
一方、プールボリュームが追加または削除された場合(S2912:YES)、及び、接続ボリューム数が変化した場合(S2913:YES)、ティア構成変更プログラム315は、性能ポテンシャルの再計算処理に移行する。
S2914、S2915、S2916の処理は、図17のS1718−2、S1719、S1720で説明したと内容と同様である、説明を省略する。本実施例では、プール構成が変化すると、外部ストレージ情報取得プログラム311が性能ポテンシャルを再計算する。
なお、構成変更が生じたタイミングで、性能ポテンシャルを再計算する例を示したが、これに限らず、定期的に性能ポテンシャルを再計算して見直す構成でもよい。または、管理計算機104からの指示、または、管理者からの指示に従って、性能ポテンシャルを再計算する構成でもよい。
図30は、ページ管理処理を示すフローチャートである。ページ再配置プログラム316は、図17で示した処理が実行された後で、指定された一定時間が経過したか監視する(S3010)。なお、ここでの一定時間は、図29で述べた一定時間と異なる。指定された一定時間が経過した場合(S3010:YES)、ページ再配置プログラム316は、ページ毎に、I/O頻度を測定する(S3011)。
ページ再配置プログラム316は、移行対象ページのI/O頻度と各ティアの容量(性能ポテンシャル)とに基づいて、そのページが配置されるべき配置先ティアを判定する(S3012)。ページ再配置プログラム316は、配置先ティアと現在のティアとが同一であるかを判定する(S3013)。
配置先ティアと現在のティアとが一致しない場合(S3013:NO)、ページ再配置プログラム316は、配置先ティアに、移行対象ページのデータを移動させ(S3014)、その後再びタイマを監視する(S3010)。
配置先ティアと現在のティアとが一致する場合(S3013:YES)、ページ再配置プログラム316は、ページのマイグレーションを行わずに、S3010に戻る。
プールの構成変更またはネットワーク負荷の変動により、ティア順序及び性能ポテンシャルが再計算され、性能の高いティアに属すべきページが、性能の低いティアに配置されてしまう可能性がある。しかし、本実施例では、図30に示すページ管理処理を実行することで、各ページを本来属すべきティアに再配置させることができる。
図31は、外部プールボリュームの性能を監視するための処理を示すフローチャートである。本処理は、例えば、図17で実施した、外部ボリューム性能の算出結果が正しいか否かを監視するために実行する。
本処理は、第1ストレージ装置101の外部ストレージ性能監視プログラム317が実行する。これに限らず、管理計算機104が外部ボリュームの性能を取得する構成でもよいし、または、管理者から外部ボリュームの性能に関する情報の全部または一部を取得してもよい。なお、図31では、定期的に外部ボリュームの性能を取得する例を示しているが、これに限らず、管理計算機104または管理者から指示されたタイミングで、外部ボリュームの性能を監視するようにしてもよい。
外部ストレージ性能監視プログラム317は、図17で示した処理の流れが実行された後で、指定された一定時間が経過したかを監視する(S3110)。一定時間が経過していない場合(S3110:NO)、待機する。
指定された一定時間が経過した場合(S3110:YES)、外部ストレージ性能監視プログラム317は、任意の外部プールボリュームについて性能情報を取得する(S3111)。性能情報とは、例えば、スループット及び/またはレスポンス性能である。情報取得の対象とするI/Oは、例えば、ホスト計算機103からの通常のI/Oである。つまり、ホスト計算機103からのコマンド処理に要した時間等を履歴として保存しておけば、性能情報を得ることができる。これに限らず、性能測定用のランダムI/Oを発行し、その応答結果から性能情報を得る構成でもよい。
外部ストレージ性能監視プログラム317は、性能情報を取得した外部プールボリュームについて、過去に取得した性能情報と異なるか判定する(S3112)。現在の性能情報と過去の性能情報とが一致する場合(S3112:NO)、ティア順序及び性能ポテンシャルを再計算する必要はない。そこで、S3110に戻る。
現在の性能情報と過去の性能情報とが一致するとは、完全に一致する場合に限らず、過去の性能情報との差が所定の閾値以下の場合は、一致すると判定してもよい。さらに、その閾値を上回る差分が検出された場合でも、その閾値を上回る差分が所定回数以上検出されるまでは、現在の性能情報と過去の性能情報とは一致すると判定してもよい。
現在の性能情報と過去の性能情報とが異なる場合(S3112:YES)、外部ストレージ性能監視プログラム317は、ティア順序を再計算する(S3113)。S3113の処理内容は、図17のS1715〜S1718で述べた内容と同様であるため、その説明は省略する。但し、S1715〜S1718の内容の全てが常に必ずしも実行されるとは限らない。必要に応じて、一部の処理が適宜省略されることもある。
外部ストレージ性能監視プログラム317は、性能ポテンシャルを再計算する(S3114)。S3114の処理内容は、図17のS1718−2、S1719、S1720と同様であるため、その説明は省略する。但し、必ずしもそれらのステップの全てが実行されるとは限らない。
このように構成される本実施例によれば、システム内の複数のプールボリュームの性能情報に基づいて、各プールボリュームを複数のプールボリュームグループにグループ化し、それらプールボリュームグループからティアを生成できる。システム内に存在する複数のプールボリュームを分類して複数ティアを形成するため、現状に合ったティア構成を有するプールを作成することができる。
プール内に複数のティアを設ける場合は、通常、各ティアの性能条件を設定する。例えば、第1ティアは10000IOPS以上の性能を要求する、第2ティアは3000〜9999IOPSの性能を要求する等である。このようにティアの生成条件(性能条件)が事前に定められている場合は、プールの最終性能の予測が簡単となる。しかし、その反面、或るティアの性能条件に合致するプールボリュームが見つからない場合、そのティアを作成することはできない。また、性能条件で区切られるため、システム内の多数のプールボリュームが特定のティアに配置されてしまい、階層化プールとしての機能を実現できない可能性もある。
これに対し、本実施例では、ティアの生成条件を決めずに、システム内の各プールボリュームの性能に基づいてティア(プールボリュームグループ)を生成する。従って、現状のプールボリュームの種類及び数等に応じた、ティア構成を有するプールを作成することができ、使い勝手が向上する。
以上、本発明の実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、第1ストレージ装置101は、外部ストレージからボリュームをマウントする際に、ドライブタイプ単位で一つのボリュームに纏めてマウントしてもよい。これにより、第1ストレージ装置101が持つ、外部ボリュームの管理情報を削減することが可能となり、また、測定するボリューム数を削減することが可能となる。
詳しくは、例えば、或る外部ストレージ内に、それぞれ100MBのサイズを有するSSDボリュームが5台含まれている場合、第1ストレージ装置101は、5つのSSDボリュームとして個別に管理するのではなく、5つのSSDボリュームを一つにまとめて、500MBのサイズを有する1台のSSDボリュームとして管理することができる。同種の外部プールボリュームを一つにまとめて管理することで、プールボリュームをより早くグループ化することができる。
本実施例では、現在ストレージシステムに含まれる複数のプールボリュームの性能情報に基づいて、現状に合ったティアを構築できるという特徴を備える。そのために、本実施例では、多数の外部プールボリュームの性能情報を取得して、管理する必要がある。しかし、実際のドライブに応じて外部プールボリュームを管理すると、管理テーブルのサイズが膨大となり、かつ、プールボリュームのグループ化にも時間がかかる。
そこで、第1ストレージ装置101が外部ストレージ装置102から外部プールボリュームをマウントする場合に、同種のドライブから構成される外部プールボリュームを一つの外部プールボリュームとしてまとめてマウントさせる。同種の外部プールボリュームを一つにまとめてマウントさせる構成は、例えば、図10に示すプールボリューム性能管理テーブル324を作成する場合等に、実現できる。このような構成は、当業者であれば、容易に理解することができる。
また、例えば、第1ストレージ装置101は、測定対象の外部ボリュームがライト不可に設定されている場合、ライト要求に代えてリード要求を発行し、その測定結果から性能を推測してもよい。
さらに、本実施例は、以下のように、コンピュータプログラムまたは計算機システム等として表現することもできる。
表現1.コンピュータを、少なくとも一つの第2記憶制御装置と通信経路を介して通信可能に接続される第1記憶制御装置として作動させるためのコンピュータプログラムであって、
前記コンピュータに、
複数の論理ボリュームの性能を示すボリューム性能情報を取得させ、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成させ、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出させ、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定させ、
決定された前記順序に基づいて、前記各ボリュームグループの階層をプール内に設けさせる、
コンピュータプログラム。
前記コンピュータに、
複数の論理ボリュームの性能を示すボリューム性能情報を取得させ、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成させ、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出させ、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定させ、
決定された前記順序に基づいて、前記各ボリュームグループの階層をプール内に設けさせる、
コンピュータプログラム。
表現2.ホスト計算機に接続される第1記憶制御装置と、前記第1記憶制御装置に接続される第2記憶制御装置と、前記第1記憶制御装置及び前記第2記憶制御装置に少なくとも接続される管理計算機とを含む計算機システムであって、
前記第1記憶制御装置は、プールと、前記プールを制御するコントローラを備え、
前記コントローラは、
複数の論理ボリュームの性能を示すボリューム性能情報を取得し、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成し、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出し、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定し、
決定された前記順序に基づいて、前記各ボリュームグループの階層を前記プール内に設ける、
計算機システム。
前記第1記憶制御装置は、プールと、前記プールを制御するコントローラを備え、
前記コントローラは、
複数の論理ボリュームの性能を示すボリューム性能情報を取得し、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成し、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出し、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定し、
決定された前記順序に基づいて、前記各ボリュームグループの階層を前記プール内に設ける、
計算機システム。
101:第1ストレージ装置、102:第2ストレージ装置、103:ホスト計算機、104:管理計算機
Claims (14)
- 少なくとも一つの第2記憶制御装置と通信経路を介して通信可能に接続される第1記憶制御装置であって、
プールと、
前記プールを制御するコントローラとを備え、
前記コントローラは、
複数の論理ボリュームの性能を示すボリューム性能情報を取得し、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成し、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出し、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定し、
決定された前記順序に基づいて、前記各ボリュームグループの階層を前記プール内に設ける、
第1記憶制御装置。
- 前記複数の論理ボリュームには、前記第1記憶制御装置の有する第1論理ボリュームと、前記第2記憶制御装置の有する第2論理ボリュームとが含まれており、
前記第2論理ボリュームは、前記通信経路を介して、前記第1論理ボリュームのうちの所定の第1論理ボリュームに対応付けられている、
請求項1に記載の第1記憶制御装置。
- 前記コントローラは、前記第2論理ボリュームのうち同一の第2記憶制御装置に属し、かつ、同一種類の記憶装置に基づいて生成される第2論理ボリュームを、一つの第2論理ボリュームとして取り扱って、前記ボリューム性能情報を取得する、
請求項2に記載の第1記憶制御装置。
- 前記コントローラは、前記第1記憶制御装置及び前記第2記憶制御装置に通信可能に接続される管理計算機から、前記第2論理ボリュームに関する前記ボリューム性能情報を取得する、
請求項3に記載の第1記憶制御装置。
- 前記コントローラは、前記第2論理ボリュームのスループット性能と、前記第2論理ボリュームを制御する前記第2記憶制御装置のコントローラ性能と、前記第2論理ボリュームを制御する前記第2記憶制御装置の通信ポート性能のうち、最も値の小さい性能を前記第2論理ボリュームのボリューム性能情報として使用する、
請求項4に記載の第1記憶制御装置。
- 前記コントローラは、前記第1論理ボリュームのボリューム性能情報を基準として、前記第2論理ボリュームをグループ化する、
請求項5に記載の第1記憶制御装置。
- 前記コントローラは、予め設定される所定の契機で、前記各ボリュームグループ性能情報を再度算出し、再度算出された前記ボリュームグループ性能情報に基づいて前記各ボリュームグループの順序を決定し、前記各ボリュームグループの階層を前記プール内に設ける、
請求項6に記載の第1記憶制御装置。
- 前記所定の契機は、前記プールの構成が変化した場合、または、前記第2論理ボリュームが前記所定の第1論理ボリュームに接続される数が変化した場合、のいずれか少なくとも一つを含む、
請求項7に記載の第1記憶制御装置。
- 前記コントローラは、予め用意される検査用のコマンドを前記第2論理ボリュームに向けて発行し、前記第2論理ボリュームからの応答に基づいて前記第2論理ボリュームに関する前記ボリューム性能情報を取得する、
請求項3に記載の第1記憶制御装置。
- 前記コントローラは、前記検査用のコマンドに対する前記第2論理ボリュームの応答時間に基づいて、処理要求の負荷と応答時間との関係を示すレスポンスカーブを取得し、そのレスポンスカーブに基づいて前記第2論理ボリュームに関する前記ボリューム性能情報を取得する、
請求項9に記載の第1記憶制御装置。
- 前記コントローラは、前記検査用のコマンドの発行対象である前記第2論理ボリュームと同一構成の他の第2論理ボリュームに関する応答結果が既に記憶されているか否かを判定し、前記応答結果が既に記憶されている場合には、前記検査用のコマンドの発行対象である前記第2論理ボリュームについて前記既に記憶済の応答結果を用い、前記検査用のコマンドを発行しない、
請求項10に記載の第1記憶制御装置。
- 前記コントローラは、予め設定される所定の契機で、前記各ボリュームグループ性能情報を再度算出し、再度算出された前記ボリュームグループ性能情報に基づいて前記各ボリュームグループの順序を決定し、前記各ボリュームグループの階層を前記プール内に設ける、
請求項11に記載の第1記憶制御装置。
- 前記所定の契機は、前記プールの構成が変化した場合、または、前記第2論理ボリュームが前記所定の第1論理ボリュームに接続される数が変化した場合、のいずれか少なくとも一つを含む、
請求項12に記載の第1記憶制御装置。
- 少なくとも一つの第2記憶制御装置と通信経路を介して通信可能に接続される第1記憶制御装置を制御するための方法であって、
前記第1記憶制御装置は、プールと、前記プールを制御するコントローラとを備えており、
前記コントローラは、
複数の論理ボリュームの性能を示すボリューム性能情報を取得し、
取得した前記ボリューム性能情報に基づいて、前記各論理ボリュームをグループ化して複数のボリュームグループを生成し、
前記ボリュームグループ毎の性能を示すボリュームグループ性能情報を算出し、
算出された前記ボリュームグループ性能情報に応じて前記各ボリュームグループの順序を決定し、
決定された前記順序に基づいて、前記各ボリュームグループの階層を前記プール内に設ける、
第1記憶制御装置の制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/004357 WO2013018130A1 (en) | 2011-08-01 | 2011-08-01 | Data storage control apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014516426A true JP2014516426A (ja) | 2014-07-10 |
JP5602957B2 JP5602957B2 (ja) | 2014-10-08 |
Family
ID=47627721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013548662A Expired - Fee Related JP5602957B2 (ja) | 2011-08-01 | 2011-08-01 | 第1記憶制御装置及び第1記憶制御装置の制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8612683B2 (ja) |
JP (1) | JP5602957B2 (ja) |
WO (1) | WO2013018130A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241117A (ja) * | 2013-06-12 | 2014-12-25 | 富士通株式会社 | ストレージシステム、運用管理方法及び運用管理プログラム |
JP2015158711A (ja) * | 2014-02-21 | 2015-09-03 | 富士通株式会社 | ストレージ制御装置、仮想ストレージ装置、ストレージ制御方法、及びストレージ制御プログラム |
KR20160073297A (ko) * | 2014-12-16 | 2016-06-24 | 삼성전자주식회사 | 인-메모리 클러스터 컴퓨팅 프레임워크 노드 및 그것의 데이터 캐싱 방법 |
JPWO2018037510A1 (ja) * | 2016-08-24 | 2018-12-06 | 株式会社日立製作所 | 計算機システム、通信デバイス、及び、記憶制御方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015412B2 (en) * | 2011-09-13 | 2015-04-21 | Hitachi Ltd. | Management system and management method of storage system that performs control based on required performance assigned to virtual volume |
US9354813B1 (en) * | 2012-12-28 | 2016-05-31 | Emc Corporation | Data storage system modeling |
US10176098B2 (en) * | 2014-11-17 | 2019-01-08 | Hitachi, Ltd. | Method and apparatus for data cache in converged system |
US9917897B2 (en) | 2015-01-22 | 2018-03-13 | International Business Machines Corporation | Publishing configuration patterns for storage resources and storage performance models from client systems to share with client systems in a network computing environment |
US10506041B2 (en) * | 2015-01-22 | 2019-12-10 | International Business Machines Corporation | Providing information on published configuration patterns of storage resources to client systems in a network computing environment |
US9912751B2 (en) | 2015-01-22 | 2018-03-06 | International Business Machines Corporation | Requesting storage performance models for a configuration pattern of storage resources to deploy at a client computing environment |
US10261717B1 (en) * | 2015-06-24 | 2019-04-16 | EMC IP Holding Company LLC | Optimizing performance of snapshots based on service level objectives |
US10353634B1 (en) * | 2016-03-28 | 2019-07-16 | Amazon Technologies, Inc. | Storage tier-based volume placement |
US11397657B1 (en) | 2021-01-07 | 2022-07-26 | Micron Technology, Inc. | Managing memory objects that are assigned a respective designation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099748A (ja) * | 2004-08-30 | 2006-04-13 | Hitachi Ltd | ストレージシステム及びデータ再配置制御装置。 |
WO2012039062A1 (ja) * | 2010-09-24 | 2012-03-29 | 株式会社日立製作所 | ストレージ装置における複数の記憶デバイスを複数の階層に振り分ける方法及びシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440737A (en) | 1993-07-23 | 1995-08-08 | Nec Corporation | File-allocation control system for allocating files according to user-program priority and storage volume performance |
JP4704659B2 (ja) | 2002-04-26 | 2011-06-15 | 株式会社日立製作所 | 記憶装置システムの制御方法および記憶制御装置 |
JP4462852B2 (ja) | 2003-06-23 | 2010-05-12 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの接続方法 |
JP4693589B2 (ja) * | 2005-10-26 | 2011-06-01 | 株式会社日立製作所 | 計算機システム、記憶領域割当方法及び管理計算機 |
US9152349B2 (en) | 2007-03-23 | 2015-10-06 | Emc Corporation | Automated information life-cycle management with thin provisioning |
-
2011
- 2011-08-01 US US13/203,696 patent/US8612683B2/en not_active Expired - Fee Related
- 2011-08-01 JP JP2013548662A patent/JP5602957B2/ja not_active Expired - Fee Related
- 2011-08-01 WO PCT/JP2011/004357 patent/WO2013018130A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099748A (ja) * | 2004-08-30 | 2006-04-13 | Hitachi Ltd | ストレージシステム及びデータ再配置制御装置。 |
WO2012039062A1 (ja) * | 2010-09-24 | 2012-03-29 | 株式会社日立製作所 | ストレージ装置における複数の記憶デバイスを複数の階層に振り分ける方法及びシステム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241117A (ja) * | 2013-06-12 | 2014-12-25 | 富士通株式会社 | ストレージシステム、運用管理方法及び運用管理プログラム |
JP2015158711A (ja) * | 2014-02-21 | 2015-09-03 | 富士通株式会社 | ストレージ制御装置、仮想ストレージ装置、ストレージ制御方法、及びストレージ制御プログラム |
KR20160073297A (ko) * | 2014-12-16 | 2016-06-24 | 삼성전자주식회사 | 인-메모리 클러스터 컴퓨팅 프레임워크 노드 및 그것의 데이터 캐싱 방법 |
KR102403592B1 (ko) | 2014-12-16 | 2022-05-30 | 삼성전자주식회사 | 인-메모리 클러스터 컴퓨팅 프레임워크 노드 및 그것의 데이터 캐싱 방법 |
JPWO2018037510A1 (ja) * | 2016-08-24 | 2018-12-06 | 株式会社日立製作所 | 計算機システム、通信デバイス、及び、記憶制御方法 |
US10733118B2 (en) | 2016-08-24 | 2020-08-04 | Hitachi, Ltd. | Computer system, communication device, and storage control method with DMA transfer of data |
Also Published As
Publication number | Publication date |
---|---|
US8612683B2 (en) | 2013-12-17 |
US20130036286A1 (en) | 2013-02-07 |
WO2013018130A1 (en) | 2013-02-07 |
JP5602957B2 (ja) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5602957B2 (ja) | 第1記憶制御装置及び第1記憶制御装置の制御方法 | |
TWI740110B (zh) | 在固態儲存驅動器陣列中的工作量適應超容量快取 | |
US11093304B2 (en) | Using response time objectives in a storage system | |
US10078569B1 (en) | Self adaptive workload classification and forecasting in multi-tiered storage system using arima time series modeling | |
JP5236086B2 (ja) | 増設/減設する記憶容量を計算する管理システム | |
US10324633B2 (en) | Managing SSD write quotas in data storage systems | |
US10254970B1 (en) | System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits | |
US9940033B1 (en) | Method, system and computer readable medium for controlling performance of storage pools | |
US10338825B2 (en) | Managing SSD wear rate in hybrid storage arrays | |
JP5986319B2 (ja) | ストレージ管理システム | |
US10318163B2 (en) | Balancing SSD wear in data storage systems | |
US8949483B1 (en) | Techniques using I/O classifications in connection with determining data movements | |
US7814351B2 (en) | Power management in a storage array | |
US9507887B1 (en) | Adaptive techniques for workload distribution across multiple storage tiers | |
US20140304452A1 (en) | Method for increasing storage media performance | |
US10809931B1 (en) | Techniques for use with physical media types having varying allowable write quotas | |
WO2013057751A1 (en) | Method for data tiering and computer system using the same | |
US9680933B2 (en) | Computer system | |
US20130132641A1 (en) | Storage system and control method of storage system | |
US9619169B1 (en) | Managing data activity information for data migration in data storage systems | |
WO2013094041A1 (ja) | 計算機システム、及び管理システム | |
US10956058B2 (en) | Tiered storage system with tier configuration by peer storage devices | |
EP2404231A1 (en) | Method, system and computer program product for managing the placement of storage data in a multi tier virtualized storage infrastructure | |
JPWO2011096017A1 (ja) | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 | |
US20210200458A1 (en) | Storing data in slices of different sizes within different storage tiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140820 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5602957 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |