(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-28
(45)【発行日】2023-03-08
(54)【発明の名称】ディスクアレイ装置、情報処理システム、決定方法及びプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230301BHJP
G06F 11/10 20060101ALI20230301BHJP
G06F 11/34 20060101ALI20230301BHJP
G06F 13/14 20060101ALI20230301BHJP
【FI】
G06F3/06 301X
G06F3/06 304T
G06F3/06 305C
G06F3/06 540
G06F11/10 676
G06F11/34 176
G06F13/14 330E
(21)【出願番号】P 2021038297
(22)【出願日】2021-03-10
【審査請求日】2021-09-15
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】小平 規裕
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2011-221570(JP,A)
【文献】特開2008-146141(JP,A)
【文献】特開2015-158711(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
G06F 13/10-13/14
G06F 11/10
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するダミーI/O発行手段と、
前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得する性能情報取得手段と、
前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するランク設定手段と、
ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するデータ配置先決定手段と、
を備えるディスクアレイ装置。
【請求項2】
前記ランク設定手段は、
前記性能情報に基づいて、前記ストレージデバイスと前記ダミーI/Oの組合せごとに、その組み合わせに対するスコアを算出し、前記スコアに基づいて前記ランクを設定する、
請求項1に記載のディスクアレイ装置。
【請求項3】
前記ランク設定手段は、
前記スコアと、当該スコアに対応する前記ストレージデバイスの価格に応じた重みとを乗じて、前記スコアを更新し、更新後の値を前記スコアとする、
請求項2に記載のディスクアレイ装置。
【請求項4】
前記ダミーI/Oごとに最も高い前記ランクが設定された前記ストレージデバイスを記憶するアドレス変換テーブル、をさらに備え、
前記データ配置先決定手段は、前記ランク設定手段によって新たな前記ランクが設定されると、前記アドレス変換テーブルが記憶する前記ストレージデバイスを、新たな前記ランクに対応する前記ストレージデバイスへ更新する、
請求項1から請求項3の何れか1項に記載のディスクアレイ装置。
【請求項5】
前記ダミーI/O発行手段は、前記複数種類のダミーI/Oを発行してから所定の期間が経過すると、再び、前記複数種類のダミーI/Oを発行し、
前記ランク設定手段は、再び発行された前記複数種類のダミーI/Oについて取得された前記性能情報に基づいて、前記ランクの再設定を行う、
請求項1から請求項4の何れか1項に記載のディスクアレイ装置。
【請求項6】
前記性能情報は、単位時間あたりのI/Oの処理回数、I/Oに対する応答時間、I/O処理中における自装置が備えるCPUのBusy率、I/O処理中における自装置が備えるメモリの使用量のうちの何れか1つ又は複数である、
請求項1から請求項5の何れか1項に記載のディスクアレイ装置。
【請求項7】
複数のストレージデバイスと、
請求項1から請求項6の何れか1項に記載のディスクアレイ装置と、
前記複数のストレージデバイスを用いて構成される論理ディスクへのI/Oを行うホスト装置と、
を備える情報処理システム。
【請求項8】
各ステップがコンピュータによって実行される決定方法であって、
論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するステップと、
前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得するステップと、
前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するステップと、
ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するステップと、
を有する決定方法。
【請求項9】
コンピュータに、
論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するステップと、
前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得するステップと、
前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するステップと、
ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスクアレイ装置、情報処理システム、決定方法及びプログラムに関する。
【背景技術】
【0002】
近年、ストレージシステムに蓄積されるデータの量は飛躍的に増大している。ストレージシステムには、容量単価や性能の異なるストレージデバイスが多数使用されている。例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、近年では、Storage Class Memory(SCM)、クラウド連携による他のストレージシステム上のデバイスなど、多種多様のデバイスが活用されている。このような多様なストレージデバイスに対して、ストレージ階層化を行い、利用頻度の高いデータを高速なデバイスへ記録し、利用頻度の低いデータは低速なデバイスへ記録するなどして。データを最適配置する技術が提供されている(例えば、特許文献1)。
【0003】
データの最適配置においては、ストレージデバイスの性能特性に基づいて、データを配置するストレージデバイスを決める。前述のように、ストレージデバイスの種別は増加している。また、ストレージシステム側においても、キャッシュメモリやCPU(Central Processing Unit)の能力、データ圧縮や重複排除など多様な機能をサポートしており、アレイコントローラからデバイスへのアクセス方法も複雑化している。デバイスへのアクセス方法の多様化に伴い、デバイスの性能特性も複雑化している。また、SSDでは経年劣化によって、一貫した応答性能は保証できないことが知られている。さらに、HDDにおいても保守交換などで同一容量のディスクであっても世代が変わることで性能差が生じることがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
アクセス方法やストレージデバイスの特性が、複雑化、多様化する中、ストレージデバイスの性能特性を固定的にとらえてデータ最適配置を行うと、意図しない性能低下が生じる可能性がある。
【0006】
そこでこの発明は、上述の課題を解決するディスクアレイ装置、情報処理システム、決定方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、ディスクアレイ装置は、論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するダミーI/O発行手段と、前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得する性能情報取得手段と、前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するランク設定手段と、ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するデータ配置先決定手段と、を備える。
【0008】
本発明の一態様によれば、情報システムは、複数の記憶装置と、上記のディスクアレイ装置と、前記複数のストレージデバイスを用いて構成される論理ディスクへのI/Oを行うホスト装置と、を備える。
【0009】
本発明の一態様によれば、各ステップがコンピュータによって実行される決定方法であって、決定方法は、論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するステップと、前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得するステップと、前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するステップと、ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するステップと、を有する。
【0010】
本発明の一態様によれば、プログラムは、コンピュータに、論理ディスクを構成する複数のストレージデバイスごとに、疑似的なI/Oである複数種類のダミーI/Oを発行するステップと、前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得するステップと、前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定するステップと、ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似する前記ダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定するステップと、を実行させる。
【発明の効果】
【0011】
本発明によれば、安定した処理性能を実現するストレージシステムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係る情報処理システムのブロック図である。
【
図2】実施形態に係るダミーI/O定義テーブルの一例を示す図である。
【
図3】実施形態に係る性能特性テーブルのデータ構造の一例を示す図である。
【
図4】実施形態に係るスコアテーブルのデータ構造の一例を示す図である。
【
図5】実施形態に係るアドレス変換テーブルのデータ構造の一例を示す図である。
【
図6】実施形態に係るホストパターンテーブルのデータ構造の一例を示す図である。
【
図7】実施形態に係るスコアテーブル作成処理の一例を示すフローチャートである。
【
図8】実施形態に係るスコアテーブルの一例を示す図である。
【
図9】実施形態に係るデータ最適配置処理の一例を示すフローチャートである。
【
図10】実施形態におけるアドレス変換テーブルの設定例を示す第1の図である。
【
図11】実施形態におけるアドレス変換テーブルの設定例を示す第2の図である。
【
図12】最小構成を有するディスクアレイ装置の構成を示すブロック図である。
【
図13】最小構成を有するディスクアレイ装置の処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
<実施形態>
以下、本発明の一実施形態に係るディスクアレイ装置およびストレージシステムについて図面を参照して説明する。以下の説明に用いる図面において本発明に関係ない部分の構成については、記載を省略し、図示しない場合がある。
【0014】
(システム構成)
図1は、実施形態に係る情報処理システムのブロック図である。
図1に示すように、情報処理システム1は、ディスクアレイ装置100と、ストレージ群201と、1又は複数のホスト300(300a,300b,・・・)と、ストレージ管理ホスト310と、クライアント311とを含む。ディスクアレイ装置100とホスト300は、ネットワーク301を介して接続されている。この接続はFC(Fibre Channel)やiSCSI(Internet Small Computer System Interface)、SAS(Serial Attached SCSI)などである。ホスト300は、ディスクアレイ装置100へデータの読み書きを行う。ディスクアレイ装置100は、ストレージ管理ホスト310とネットワーク301を介して接続されている。ユーザは、クライアント311を操作して、ストレージ管理ホスト310へアクセスし、ストレージ管理ホスト310を通じてディスクアレイ装置100の構成変更などを行うことができる。
【0015】
ディスクアレイ装置100は、ホストI/O制御部101と、キャッシュ制御部102と、ディスクI/O制御部103と、スコア計算制御部104と、ダミーI/O制御部105と、補助記憶装置110と、を備える。
ホストI/O制御部101は、ホスト300から受け取ったI/Oコマンド(単にI/Oとも呼ぶ)を処理し、データ転送を行う。キャッシュ制御部102は、ディスクアレイ装置100が備えるキャッシュメモリ領域(図示せず)を管理する。キャッシュ制御部102は、ホストI/O制御部101やディスクI/O制御部103からのアクセスに応じて、キャッシュメモリ領域を割り振る。例えば、ホストI/O制御部101は、ホスト300からのデータ書き込み転送において、キャッシュ制御部102によってキャッシュメモリ領域にデータが書き込まれた時点でホスト300へ応答を返してもよい。このような仕組みは、応答性能を高速化するための公知の手法である。
【0016】
ディスクI/O制御部103は、1又は複数のLD(論理ディスク:Logical Disk)200へのデータ書き込みやデータ読み出しを行う。ホストI/O制御部101がホスト300から書き込み指示を受けた場合、ディスクI/O制御部103は、キャッシュ制御部102によってキャッシュメモリ領域に書き込まれたデータを読み出して、LD200へ書き込む。ホストI/O制御部101がホスト300から読み出し指示を受けた場合、ディスクI/O制御部103は、LD200からデータを読み出して、キャッシュ制御部102を通じて、キャッシュメモリ領域に読み出したデータを書き込む。LD200は、複数の記憶媒体を利用したRAID(Redundant Array of Independent Disk)で構築される仮想的な構成要素であったり、また異なるストレージシステム220上に存在する論理ディスクであったりしてもよい。記憶媒体には、HDD210やSSD211などの一般的に性能特性が異なる複数の記憶媒体が含まれる。LD200は、これら性能特性が異なる複数の記憶媒体を組み合わせて構成される。ストレージ群201には、複数のLD200が構築されていてもよい。記憶媒体の差異の影響や、異なるストレージシステムへのアクセスとなるため、異なるLD200の間では、応答性能が大きく異なる。ホスト300は、LD200を読み書き可能な媒体として認識し、WriteコマンドやReadコマンドを発行する。
【0017】
ダミーI/O制御部105は、ホスト300から発行されることが想定されるI/Oを模擬したダミーI/Oの発行や発行したダミーI/Oに対する性能情報の計測を行う。
スコア計算制御部104は、発行されたダミーI/Oについて計測された性能情報からダミーI/Oのパターンと記憶媒体種別の組合せごとにスコアの算出、ランクの設定を行う。
【0018】
上記のディスクI/O制御部103は、スコア計算制御部104によって設定されたランクに基づいて、I/Oパターンと記憶媒体種別の組合せごとにアドレス変換テーブル114において、データの最適な配置先を設定する。
【0019】
補助記憶装置110は、ダミーI/O定義テーブル111、性能特性テーブル112、スコアテーブル113、アドレス変換テーブル114、ホストパターンテーブル115を記憶する。
【0020】
(ダミーI/O定義テーブル)
ダミーI/O定義テーブル111は、ホスト300からのI/Oのパターン(想定されるI/Oパターン)を定義した情報を記憶する。ダミーI/O定義テーブル111が記憶するI/Oパターンは、ストレージ管理ホスト310を通して更新を行うことが可能である。
図2にダミーI/O定義テーブル111のデータ構造を示す。ダミーI/O定義テーブル111は、ダミーI/Oパターン1114と、length1111と、アクセスパターン1112と、Write/Read比率1113と、の各項目を有している。ダミーI/Oパターン1114には、想定されるI/Oパターンの識別情報(#0000、#0001、#0002等)が格納される。length1111には、ホスト300からのデータ転送が何バイトで行われるかという転送長が格納される。通常、転送長は一定ではないため、平均転送長などが利用される。length1111には、例えば、8KB、32KB、128KB、512KB等の値が格納される。アクセスパターン1112には、I/Oの際、LD200に対してどのようにアクセスするかを示す情報が格納される。アクセスパターン1112には、例えば、ランダム、又は、シーケンシャルが格納される。シーケンシャルアクセスは、連続した領域へのアクセスを示し、ランダムアクセスは不連続なアクセスを示す。Write/Read比率1113には、特定のLD200へのI/OにおけるWriteとReadの割合を示す。WriteとRead比率を(Writeの比率:Readの比率)で表すとすると、Write/Read比率1113には、例えば、(100%、0%)、(75%、25%)、(50%、50%)、(25%、75%)、(0%、100%)等の値が格納される。
例えば、I/Oパターン=#0000は、length=8KB、アクセスパターン=ランダム、Write/Read比率=(100:0)のI/Oとして定義され、この定義情報が
図2に例示するダミーI/O定義テーブル111に登録される。ダミーI/O定義テーブル111には、例えば、数十種類のパターンを準備しておく。
【0021】
(性能特性テーブル)
図3に性能特性テーブル112のデータ構造を示す。性能特性テーブル112は、ダミーI/O定義テーブル111に従って発行されるダミーI/Oと、そのダミーI/OにおけるHDD210やSSD211、異なるストレージシステム上のLD200など(総じてデバイスまたは記憶媒体と呼ぶ)に対する性能値を記憶するテーブルである。性能特性テーブル112は、ダミーI/Oパターン1121、記憶媒体種別1122、IOPS1123、I/OのTAT(Turn Around Time)1124、CPU Busy率1125、メモリ使用量1126の各項目を有している。ダミーI/Oパターン1121は、ダミーI/O定義テーブル111に登録されたダミーI/Oパターン1114に対応しており、ダミーI/Oパターンの識別情報が格納される。記憶媒体種別1122には、LD200を構成する可能性があるデバイスが全て登録されている。記憶媒体種別1122に登録された全デバイスについて、デバイスごとにダミーI/Oパターンで定義されたI/Oが発行され、そのI/Oに対する応答性能が、性能特性テーブル112の以下に説明する各項目に記録される。IOPS1123には、1秒間にI/Oを処理した回数が格納される。I/OのTAT1124には1つのI/Oを発行してから応答が返ってくるまでの時間の平均値が格納される。CPU Busy率1125には、ダミーI/O制御部105がダミーI/Oを発行している期間におけるディスクアレイ装置100のCPUリソース占有率を示している。このようなCPUリソースを取得するのは、データ圧縮や重複排除などの機能が、ディスクアレイ装置100のCPUを占有しやすく、記憶媒体の選択の指標として役立つためである。メモリ使用量1126には、キャッシュ制御部102が管理しているキャッシュメモリ領域の占有量(使用量)が格納される。これら、IOPS1123とI/OのTAT1124とCPU Busy率1125とメモリ使用量1126とをまとめて性能情報1127と呼ぶ。
【0022】
(スコアテーブル)
スコアテーブル113は、性能特性テーブル112に記録された性能値をもとに計算されるスコアを記憶する。また、スコアテーブル113は、1つのダミーI/Oパターンに対して、それぞれのデバイスをランク付けした情報を記憶する。
図4にスコアテーブル113のデータ構造を示す。スコアテーブル113は、ダミーI/Oパターン1131と、記憶媒体種別1132と、スコア1133と、ランク1134の各項目を有している。ダミーI/Oパターン1131と記憶媒体種別1132には、性能特性テーブル112のダミーI/Oパターン1121と記憶媒体種別1122と同様のデータが登録される。スコア1133には、ダミーI/Oパターン1131と記憶媒体種別1132に登録されたデータの組合せに対して比較可能なスカラー値(スコア)が計算され、その値が登録される。ランク1134にはスコアを昇順に番号付け(ランク付け)した値が登録される。
【0023】
(アドレス変換テーブル)
アドレス変換テーブル114は、主に、ディスクI/O制御部103から更新/参照される。アドレス変換テーブル114は、LD200ごと、I/Oパターンごとに、データをどの記憶媒体に書き込んでいるかを記憶するテーブルである。
図5にアドレス変換テーブル114のデータ構造を示す。アドレス変換テーブル114は、LDN1141と、格納記憶媒体1142と、新規格納記憶媒体1143の各項目を有する。LDN1141には、I/Oパターンの識別情報が登録される。なお、LD200の識別番号をLDN(Logical Disk Number)と呼ぶ。格納記憶媒体1142には、現在データが記録されている記憶媒体の情報が登録される。新規格納記憶媒体1143には、データが新たに記録される記憶媒体の情報が登録される。
【0024】
(ホストパターンテーブル)
ホストパターンテーブル115は、ホスト300から発行される実際のI/Oについて、LD200ごとにダミーI/O定義テーブル111と同じ項目を測定した値を登録するテーブルである。
図6にホストパターンテーブル115のデータ構造を示す。本テーブルの情報は、ダミーI/Oと比較するためダミーI/O定義テーブル111と同じ項目を有している。従って、各項目は、ダミーI/O定義テーブル111と同様である。
【0025】
なお、アドレス変換テーブル114と、ホストパターンテーブル115は、LD200ごとに作成される。例えば、アドレス変換テーブル114の「LDN1141」、ホストパターンテーブル115の「LDN1151」の各項目の項目名には、それらのテーブルが対象とするLD200のLDNが設定され、これらの項目の内容(実際にテーブルに登録されるデータ)には、I/Oパターンの識別情報が登録される。
【0026】
(動作)
次に情報処理システム1の動作について、説明する。
まず、
図7を参照して、ダミーI/O定義テーブル111から、性能特性テーブル112を作成し、そこからさらにスコアテーブル113を作成する処理について説明する。前提として、ダミーI/O定義テーブル111には、ダミーI/Oの定義情報が登録されている。
【0027】
(スコアテーブルの作成)
図7は、実施形態に係るスコアテーブル作成処理の一例を示すフローチャートである。
ダミーI/O制御部105が、ダミーI/O定義テーブル111を参照して、ダミーI/Oパターンを1つ選択し、読み取る(ステップA1)。例えば、ダミーI/O制御部105は、ダミーI/Oパターンの識別情報を昇順に並べ、順番に選択していく。次にダミーI/O制御部105は、選択したダミーI/Oパターンを、性能特性テーブル112のダミーI/Oパターン1121に登録する。また、ダミーI/O制御部105は、ディスクアレイ装置100が認識している記憶媒体の全てを列挙して、性能特性テーブル112の記憶媒体種別1122へ登録する。
【0028】
次にダミーI/O制御部105は、ダミーI/O定義テーブル111を参照し、ダミーI/Oパターン1114に登録されたダミーI/Oパターンごとに、そのパターンのlength1111、アクセスパターン1112、Write/Read比率1113に登録された情報を読み出し、ダミーのI/Oコマンドを作成する。そして、ダミーI/O制御部105は、作成したダミーのI/Oコマンドを使用して、性能特性テーブル112の記憶媒体種別1122へ登録した各記憶媒体へ、一定期間にわたって、ダミーのI/Oを発行する(ステップA2)。このとき記憶媒体種別1122に格納された記憶媒体を1つ選択し、1つずつダミーのI/Oを発行してゆく。また、一定期間は、ダミーI/Oコマンドの発行から応答までの処理を数百~数千回行い、平均としてデータが取れるような期間とする。ダミーI/O制御部105は、ダミーI/Oコマンドの発行に対する応答を計測する(ステップA3)。具体的には、ダミーI/O制御部105は、上記の性能情報1127、つまり、1秒間あたりのI/O処理回数(IOPS)と、TATと、ディスクアレイ装置100のCPU Busy率と、ディスクアレイ装置100のキャッシュメモリ領域のメモリ使用量と、を計測する。
【0029】
一定期間後、ダミーI/O制御部105は、性能特性テーブル112における計測に係るダミーI/Oパターンと記憶媒体に対応する性能情報1127を更新する(ステップA4)。具体的には、ダミーI/O制御部105は、一定期間に計測した性能情報1127を取得後、性能特性テーブル112の対応する項目(IOPS1123、I/OのTAT1124、CPU Busy率1125、メモリ使用量1126)へ計測した値を登録する。
【0030】
次にダミーI/O制御部105は、一つのダミーI/Oパターンに対する全ての記憶媒体の性能が取得できたかどうかを判定する(ステップA5)。例えば、ダミーI/Oパターン#0000について、デバイスA~Dまで登録されている場合、デバイスA~Dの性能情報が性能特性テーブル112に登録されているかどうかを確認する。性能特性テーブル112の記憶媒体種別1122に登録された記憶媒体について、まだ性能情報1127の取得が完了していないものがあれば(ステップA5;No)、ステップA2へ戻り、異なる記憶媒体種別1122の記憶媒体の情報を取得し、その記憶媒体に対してダミーI/Oを発行し、計測を行うようにする。あるダミーI/Oパターンにおいて、記憶媒体種別1122に登録された全ての記憶媒体について性能情報1127が取得できた場合は(ステップA5;Yes)、次のスコア算出に移る。
【0031】
次にスコア計算制御部104は、性能情報1127からスコアを算出する(ステップA6)。性能情報1127に含まれる性能値はそれぞれデータデータの種別が異なるため、同等に扱えない。例えば、スコア計算制御部104は、IOPS、TAT、CPU Busy率、メモリ使用量の4つの性能値の特徴を保存したまま、次元圧縮を行う等して、性能情報1127を比較可能なスカラー値として算出し、この値を当該ダミーI/Oパターンおよび記憶媒体種別の組合せに対するスコアとする。あるいは、より簡単には、4つの性能値のそれぞれを所定の基準に基づいてスコア化し、それらを足し合わせて、ダミーI/Oパターンおよび記憶媒体種別の組合せに対するスコアを算出してもよい。スコア計算制御部104は、全てのダミーI/Oパターンと記憶媒体種別の組合せについて、組合せごとにスコアを算出する。スコア計算制御部104は、算出した各組合せのスコアを、スコアテーブル113における、対応するダミーI/Oパターンおよび記憶媒体種別の行のスコア1133へ登録する。算出されたスコアの一例を
図8のスコア1133に示す。
【0032】
さらに、スコア計算制御部104は、記憶媒体の価格を考慮してスコアを算出してもよい。
図8に価格テーブル116の一例を示す。価格テーブル116は、補助記憶装置110に記憶されている。価格テーブル116は、記憶媒体種別と、価格と、スコア重みの各項目を有している。記憶媒体種別にデバイスA,B,C等が格納され、価格にはデバイスごとの価格が格納され、スコア重みには、上記の方法で算出したスコアに対する重み係数が格納される。価格を考慮する場合、なるべく安価なデバイスを優先して使用するとの考えから、高価なデバイスには小さな値の重みを設定し、安価なデバイスには大きな値の重みを設定する。
図8の例では最も高価なデバイスAには重み=0.6が設定され、最も高価なデバイスCには重み=1.0が設定されている。デバイスの価格には、当初価格ではなく、使用期間・寿命を考慮した価格が設定されてもよい。価格テーブル116には、他のテーブルと同様にストレージ管理ホスト310から任意の値を設定することができる。
図8の重みづけ後のスコア1133´に、価格テーブル116のスコア重みを乗じたスコアを示す。重みづけ後のスコアは、デバイスAが「56」、デバイスBが「53」、デバイスCが「53」となる。
【0033】
次に、スコア計算制御部104は、1つのダミーI/Oパターン内でスコアを比較し、異なる記憶媒体種別間でランクを設定する(ステップA7)。例えば、#0000のダミーI/Oパターンについて算出されたデバイスAのスコアが「80」、デバイスBのスコアが「67」、デバイスCのスコアが「33」の場合、スコア計算制御部104は、スコアが高い順に、デバイスA、B、Cにそれぞれランク「1」、「2」、「3」を設定する(
図8)。ダミーI/Oパターン=#0000の場合、重みづけ後のスコアを参照しても同じランク順となる。ここで、
図8のダミーI/Oパターン=#0001の場合を参照すると、価格を考慮しないスコアでは、デバイスA、B、Cにそれぞれランク「1」、「3」、「2」が設定されていたところ、重みづけ後のスコアでは、デバイスAとデバイスCでランクが逆転している。このランク順に従って、データを格納すると、より安価なデバイスを利用してデータを最適に配置していくことが可能となる。
【0034】
次にディスクアレイ装置100が、ダミーI/O定義テーブル111に登録された全てのダミーI/Oパターン1114について、スコアテーブル113を作成したかどうかを判定する(ステップA8)。作成していないダミーI/Oパターンがあれば(ステップA8;No)、そのダミーI/Oパターンについて、ステップA1からの処理を繰り返し行う。
全てのダミーI/Oパターンについてスコアテーブル113の作成が完了している場合(ステップA8;Yes)、
図7の処理を終了する。
【0035】
(データ最適配置)
次に、実際にホスト300からのI/Oを処理するときに、データをどの記憶媒体に格納するかを決定する処理について説明する。本実施形態では、実際のI/Oのアクセスパターンを測定し、測定できたI/Oパターンと類似するダミーI/Oパターンを特定し、スコアテーブル113に設定されたランクに基づいてデータを格納する記憶媒体を決定する。
【0036】
図9は、実施形態に係るデータ最適配置処理の一例を示すフローチャートである。
まず、ホストI/O制御部101が、一定期間のホスト300からのI/Oのアクセスパターンを収集し、
図6のホストパターンテーブル115を作成する(ステップB1)。ホストI/O制御部101は、Length、アクセスパターン、Write/Read比率ごとにホスト300から要求されるI/Oのパターンを分類し、識別情報を付して、ホストパターンテーブル115に登録する。ホストパターンテーブル115は、性能特性テーブル112と比較するテーブルであるため、同じ項目を持っており、各LD200に対するホストI/Oの情報を収集することで作成することができる。この時、ホストパターンテーブル115はすべてのLD200に対して情報をとる必要はなく、特定のLD200に対しての情報が取れたら、そのLD200に対してステップB2以降の処理を実施してよい。
【0037】
次にディスクI/O制御部103が、ステップB1で作成できたLD200のホストパターンテーブル115と、ダミーI/O定義テーブル111を比較して、類似するダミーI/Oパターンを特定する(ステップB2)。例えば、ディスクI/O制御部103は、ホストパターンテーブル115に登録されたI/Oパターンと、ダミーI/O定義テーブル111に登録されたI/Oパターンと、を合わせたI/Oパターンの集合について、Length、アクセスパターン、Write/Read比率を特徴量とするクラスタリングアルゴリズムを適用し、ホストパターンテーブル115に登録されたI/Oパターンのそれぞれについて、最も近い特徴量を有するダミーI/Oパターンを決定する。
【0038】
次にディスクI/O制御部103は、ホストパターンテーブル115に登録されたI/Oパターンのそれぞれについて、スコアテーブル113上の対応する(類似する)ダミーI/Oパターンを参照する。ディスクI/O制御部103は、ランクの高い記憶媒体を決定する(ステップB3)。例えば、スコアテーブル113の登録内容が
図8に例示する内容で、ホストパターンテーブル115の登録内容が
図6に例示する内容の場合、ディスクI/O制御部103は、
図6のLDN#0000のI/Oパターンから、類似するダミーI/Oパターンを#0000と決定し(ステップB2)、
図8のダミーI/Oパターン#0000のランク1が設定されたデバイスAを特定する(ステップB3)。
【0039】
次にディスクI/O制御部103は、アドレス変換テーブル114上の対応するLDNのI/Oパターンの格納記憶媒体1142が決定されているかどうかを判定する(ステップB4)。格納記憶媒体1142が決定されていない場合(ステップB4;No)、ディスクI/O制御部103は、ステップB3で決定した記憶媒体の情報をアドレス変換テーブル114の格納記憶媒体1142へ記録する(ステップB5)。そして、例えば、ホスト300からWriteコマンドが発行された場合、ディスクI/O制御部103は、アドレス変換テーブル114に登録された記憶媒体へ、ホスト300から指示されたデータを書き込む。
図10に、ステップB5の動作例を示す。
図10上図のアドレス変換テーブル114は、LDN#0002の格納記憶媒体が未決定の状態を示す。ここで、LDN#0002の特性(性能情報に基づく特性)が類似するダミーI/Oパターンが#0001だったとする。
図10下図に示すように、ディスクI/O制御部103は、
図8に例示するスコアテーブル113のダミーI/Oパターン#0001より、ランクの高い記憶媒体種別がデバイスAを特定し(価格の重みを考慮しない場合)、格納記憶媒体1142にデバイスAを記録する。
【0040】
アドレス変換テーブル114上で格納記憶媒体1142が既に決定されている場合(ステップB4;Yes)、ディスクI/O制御部103は、ステップB3で決定した記憶媒体の情報をアドレス変換テーブル114の新規格納記憶媒体1143へ登録する。次に、ディスクI/O制御部103は、格納記憶媒体1142が示すデバイスに格納されているデータを新規格納記憶媒体1143に今回登録されたデバイスに移動する(ステップB7)。次にディスクI/O制御部103は、格納記憶媒体1142の内容を、新規格納記憶媒体1143に登録された記憶媒体に変更し、新規格納記憶媒体1143を「未」に変更する(ステップB8)。
図10にLDN#0001の場合のステップB6の動作例を示す。LDN#0001では、特性が類似するダミーI/Oパターンが#0000であったため、ステップB3にて、ランクの高い記憶媒体種別がデバイスAとなったとする。デバイスAが後から追加された場合、アドレス変換テーブル上のLDN#0001の格納記憶媒体はすでに異なるデバイス情報が記憶されている場合がある。
図10の上図では、デバイスBが既に登録されている。このような場合、ディスクI/O制御部103は、
図10の下図に示すように新規格納記憶媒体1143へデバイスAの情報を登録する。そして、ステップB7にて、ディスクI/O制御部103は、新規格納記憶媒体1143への登録があることを確認して、格納記憶媒体1142のデバイスBから新規格納記憶媒体1143のデバイスAへデータの移動を行う。そして、ステップB8では、データの移動完了とともに、アドレス変換テーブル114の格納記憶媒体1142の情報を更新する。
図11の上図に更新前の状態(
図10の数と同じ)、
図11の下図にLDN#0001のデータの移動が終わり、アドレス変換テーブル114の更新が終わった状態を示す。ここでは、新規格納記憶媒体1143へ登録されていた「デバイスA」は格納記憶媒体1142に移り、新規格納記憶媒体1143の情報はクリアされて「未」に戻っている。
【0041】
図7の処理によってランクが決定・更新されると、ディスクI/O制御部103は、
図9の処理を行って、ホストパターンテーブル115に登録されるI/Oパターンごとにデータの格納先となる記憶媒体を決定し、アドレス変換テーブル114に記録する。一旦、記憶媒体が決定された後は、アドレス変換テーブル114の設定内容に従って、ホスト300から発行されたI/Oのアクセス先が制御される。そして、一定期間の後、再び、ダミーI/Oが発行され、ランクの再設定が行われると、
図9に示すフローによって、データの配置先が見直される。情報処理システム1の運用中、このようにしてデータの最適配置が決定される。
【0042】
(効果)
以上説明したように本実施形態によれば、事前にダミーI/Oを発行して、LD200を構成する多種多様な記憶媒体別に性能情報を取得する。そして、性能情報に基づいて比較可能なスコアを算出し、スコア順にランクを設定する。ランクの設定により、I/Oパターン別に、データ配置を行う記憶媒体を決定することができる。従って、経年変化などにより、実際の性能がカタログ値と異なるような場合や、ストレージデバイスやアクセス方法の多様化、複雑化により、デバイスの実際の性能を見通せないような場合であっても、I/Oパターン別の実際の性能情報に基づいてデータ配置先の記憶媒体を決定することができるので、安定した処理性能を実現することができる。また、システムの運用中に、1週間、1カ月など一定の間隔をあけて、再度、ダミーI/Oを発行し、性能情報を取得することで、サイレント障害となりやすいストレージデバイス経年劣化等によるシステム影響を早期に把握することができる。これにより、システムの安定稼働につなげることができる。また、スコアの算出において、記憶媒体の価格に応じた重み付けを行うことで、性能とコストの最適化を図ることができる。また、
図11等を用いて説明したように、経年変化などの影響により、ランクが逆転すれば、よりランクが上位の記憶媒体へアクセスが行われるようになるため、デバイス特性の変化に対してロバストなストレージシステムを実現することができる。これらより、I/O処理におけるリソース消費を局所化/最適化しながら動作させることでシステムを安定化することができる。
【0043】
なお、上記実施形態では、ダミーI/O制御部105が、性能特性テーブル112を作成するためにダミーI/Oを発行していたが、このダミーI/O発行と性能特性テーブル112を更新する処理は定期的、例えば1週間や、1か月といった単位で実行することが可能である。長期的に間隔をあけて情報を採取することで、ある記憶媒体の性能劣化が発生しているような場合においても、スコアテーブル113上で、ランクが下がることになるので、格納記憶媒体を入れ替えることが可能である。
【0044】
また、上記実施形態でLD200ごとと記載している箇所に関しては、シンプロビジョニング技術を用いて、LD200の論理的な領域をいくつかに分割することによってできた領域に読み替えることが可能である。
【0045】
また、ダミーI/O定義テーブル111は、実運用のI/Oパターンを考慮して、ユーザが設定してもよい。これにより、実運用にて、クラスタリングアルゴリズムの精度を上げることができる。そうすると、
図9のステップB3において、より適切なデバイスを選択することができる。
【0046】
また、ストレージ管理ホスト310は、ディスクアレイ装置100への構成設定に加えて、状態監視などの情報取得も行う。ストレージ管理ホスト310は、ディスクアレイ装置100が収集したホストパターンテーブル115の情報を定期的に収集し蓄積する。ストレージ管理ホスト310は、蓄積したホストパターンテーブル115の情報を時系列データとして学習し、学習結果をディスクアレイ装置100へ送信する。これにより、ホスト300からのI/Oパターンを収集する期間を必要とすること無く、ログオンストームなどの日次変動、バッチ処理やバックアップ運用などの週次/月次変動などの季節変動に速やかに対応し、それら変動に応じた最適なデータ配置を実現することができる。
【0047】
(最小構成)
図12は、最小構成を有するディスクアレイ装置の構成を示すブロック図である。
ディスクアレイ装置400は、ダミーI/O発行手段401と、性能情報取得手段402と、ランク設定手段403と、データ配置先決定手段404と、を備える。
ダミーI/O発行手段401は、1つの論理ディスクを構成する複数のストレージデバイス別に、疑似的なI/Oである複数種類のダミーI/Oを発行する。
性能情報取得手段402は、前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得する。
ランク設定手段403は、前記性能情報に基づいて、前記ダミーI/Oごとに、前記ストレージデバイスのランクを設定する。
データ配置先決定手段404は、ホスト装置から発行されるI/Oについて、前記複数種類のダミーI/Oの中から類似するダミーI/Oを選択し、選択した前記ダミーI/Oに対して最も高い前記ランクが設定された前記ストレージデバイスへデータを配置するよう決定する。
【0048】
図13は、最小構成を有するディスクアレイ装置の処理を示すフローチャートである。
始めに、ダミーI/O発行手段401は、ストレージデバイス別に、ホスト装置からのI/Oを模擬した疑似的なI/OであるダミーI/Oを複数種類(例えばホスト装置から発行されることが想定できる種類の数だけ)発行する(ステップC1)。次に性能情報取得手段402は。前記ストレージデバイスと前記ダミーI/Oの組合せごとに、前記ダミーI/Oに対する性能情報を取得する(ステップC2)。次にランク設定手段403は、取得された性能情報に基づいて、ダミーI/Oごとに、ストレージデバイスのランクを設定する(ステップC3)。次にデータ配置先決定手段404は、設定されたランクに基づいて、ホスト装置から発行されるI/Oに類似するダミーI/Oを特定し、特定したダミーI/Oについて最も高いランクが設定されたストレージデバイスを、データの配置先として決定する(ステップC4)。これによりI/Oパターンごとに実測性能が高いデバイスをデータの配置先として決定することができる。
【0049】
なお、上述した実施形態におけるディスクアレイ装置100、400の一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ディスクアレイ装置100、400に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
【0050】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0051】
また、上述した実施形態におけるディスクアレイ装置100、400の一部、または全部を、LSI(Large Scale IntegratI/On)等の集積回路として実現してもよい。ディスクアレイ装置100の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0052】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
【符号の説明】
【0053】
1・・・情報処理システム
100・・・ディスクアレイ装置
101・・・ホストI/O制御部
102・・・キャッシュ制御部
103・・・ディスクI/O制御部
104・・・スコア計算制御部
105・・・ダミーI/O制御部
110・・・補助記憶装置
111・・・ダミーI/O定義テーブル
112・・・性能特性テーブル
113・・・スコアテーブル
114・・・アドレス変換テーブル
115・・・ホストパターンテーブル
200・・・論理ディスク(LD)
201・・・ストレージ群
210・・・HDD
211・・・SSD
220・・・異なるストレージシステム
300・・・ホスト
301・・・ネットワーク
310・・・ストレージ管理ホスト
311・・・クライアント