以下、図面に基づいて、本発明の実施の形態を説明する。最初に、本発明の概要を説明し、次に、実施例について説明する。本実施形態では、後述のように、最初に、各論理ボリューム毎のアクセス変動量に基づいて監視対象の論理ボリュームを選択し、次に、監視対象の論理ボリュームに含まれる各論理ページ単位で、アクセス変動量の高くなるピーク時間帯を検出し、最後に、ピーク時間帯のアクセス変動量に基づいて、各論理ページを適切な物理ページに対応付ける。これにより、全ての論理ボリューム内の全論理ページのアクセス変化を一日中監視することなく、論理ページを適切な性能の物理ページに配置させることができる。
図1は、本発明の実施形態の概要を示す説明図である。図1に関する以下の記載は、本発明の理解及び実施に必要な程度で本発明の概要を示しており、本発明の範囲は図1に示す構成に限定されない。
図1に示す計算機システムは、「管理システム」としての管理サーバ1と、ホストコンピュータ(以下、ホスト)2と、記憶制御装置3とを備える。なお、以下の説明では、便宜上、記憶制御装置をストレージと呼ぶ場合がある。先に、ホスト2及びストレージ3について説明し、最後に管理サーバ1について説明する。
ホスト2は、例えば、サーバコンピュータまたはメインフレームコンピュータのようなコンピュータ装置として構成される。ホスト2がホストコンピュータの場合、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って、データ通信が行われる。ホスト2がサーバコンピュータ等の場合、例えば、FCP(Fibre Channel Protocol)またはiSCSI(internet Small Computer System Interface)等の通信プロトコルに従って、データ通信が行われる。
ホスト2は、管理用通信ネットワークCN1を介して、管理サーバ1に接続される。さらに、ホスト2は、データ入出力用通信ネットワークCN2を介して、ストレージ3に接続される。管理用通信ネットワークCN1とデータ入出力用通信ネットワークCN2とを共通にする構成でもよい。ホスト2の有するアプリケーションプログラムは、ストレージ3内の論理ボリューム3Aにアクセスして、データを入出力する。
ストレージ3は、ホスト2にデータ入出力用通信ネットワークCN2を介して接続される。さらに、ストレージ装置3は、管理用通信ネットワークCN1を介して、管理サーバ1に接続される。
ストレージ3は、複数の論理ボリューム3A(1),3A(2)と、ストレージプール3Bと、記憶装置3C(1),3C(2),3C(3)とを有する。各論理ボリューム3A(1),3A(2)(特に区別しない場合、論理ボリューム3Aと呼ぶ)は、仮想的に生成される論理ボリュームである。ホスト2からのアクセスに応じて、論理ボリューム3Aに論理ページLPが設けられる。仮想的な記憶領域である論理ページLPは、実記憶領域である物理ページAPに対応付けられる。論理ページLPを対象とするライトデータは、実際には、その論理ページLPに対応付けられた物理ページAPに記憶される。
ストレージプール3Bは、複数の記憶装置3C(1),3C(2),3C(3)(特に区別しない場合、記憶装置3Cと呼ぶ)内の複数の物理ページAPを管理する。論理ボリューム3Aは、ストレージプール3B内の物理ページAPを利用して生成されるため、プールボリュームまたは論理プールボリュームと呼ぶ場合がある。
各記憶装置3Cとしては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
記憶装置3Cとしてハードディスクデバイスを用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。また、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々の記憶装置3Cを用いることもできる。さらに、例えば、フラッシュメモリデバイスとハードディスクドライブのように、種類の異なる記憶装置3Cを混在させる構成でもよい。
複数の記憶装置3Cの有する物理的記憶領域を一つのRAIDグループにまとめて、ストレージプール3Bに提供することができる。例えば、4個のフラッシュメモリデバイスをRAID5のグループとしてグループ化し、RAID5の冗長性を有する物理ページをストレージプール3Bに登録することができる。同様に、例えば、2個のSATAディスクをRAID1のグループとしてグループ化し、RAID1の冗長性を有する物理ページをストレージプール3Bに登録することができる。
このように、ストレージプール3Bは、それぞれ性能及び容量の異なる記憶装置3Cから提供される複数の物理ページを管理する。ストレージ3は、ホスト2から論理ボリューム3Aへのアクセスに応じて、ストレージプール3B内の物理ページを、アクセスされた論理ページに割り当てる。
その結果、各論理ボリューム3A内の各論理ページLPは、それぞれ異なる種類の物理ページAPに対応付けられる。第1の論理ボリューム3A(1)内の各論理ページは、「A1」,「B1」として図示するように、第1の記憶装置3C(1)内の物理ページと、第2の記憶装置3C(2)内の物理ページとに対応付けられている。同様に、第2の論理ボリューム3A(2)内の各論理ページは、「A2」,「C1」として図示するように、第1の記憶装置3C(1)内の物理ページと、第3の記憶装置3C(3)内の物理ページとに対応付けられている。
ストレージ3は、後述のように、管理サーバ1からの指示に従って、論理ページLPを対応付ける物理ページAPを切り替える。論理ページLPに割り当てる物理ページAPを変更することを、ここでは、ページの再配置と呼ぶ。
管理サーバ1は、例えば、情報取得部1Aと、ボリューム単位のアクセス解析部1Bと、ページ単位のアクセス解析部1Cと、表示部1Dと、再配置先決定部1Eと、再配置制御部1Fとを有する。
管理サーバ1は、入力装置及び表示装置を含むユーザインターフェースを必ずしも備える必要はない。例えば、管理サーバ1を操作するための操作端末を管理サーバ1に接続し、その操作端末を介してユーザからの操作を受け入れたり、ユーザに通知したりする構成でもよい。なお、表示用端末と操作用端末とを管理サーバ1に接続する構成、あるいは、表示用端末のみを管理サーバ1に接続し、操作は管理サーバの入力装置を使用する構成でもよい。さらに、管理サーバ1は、単一のコンピュータ装置として構成される必要はなく、複数のコンピュータ装置から一つの管理サーバ1を構成してもよい。
情報取得部1Aは、ストレージ3から情報を収集するための機能である。ボリューム単位のアクセス解析部1Bは、各論理ボリューム3Aへのアクセスを論理ボリューム毎に解析する機能である。ページ単位のアクセス解析部1Cは、監視対象の論理ボリューム3A内の各論理ページLPへのアクセスを、各ページ毎に解析する機能である。
ボリューム単位のアクセス解析部1Bは、ストレージ3の有する各論理ボリューム3Aについて、例えば、一日のアクセス変動量をそれぞれ計測する。アクセス変動量とは、IO数(アクセス数)の変動の程度を示す情報である。アクセス変動量は、例えば、所定期間におけるIO数の平均値からのIO数の測定値の離れ具合を示す。アクセス変動量は、標本が標本平均からどの程度離れているかを示す標本分散である。
より詳しくは、アクセス変動量(以下の実施例では、varと呼ばれる場合がある)は、アクセス解析部1B内に斜線部で示すように、IO数が所定の閾値THv以上となる連続領域の面積として、算出される。閾値THvの値は、ユーザが設定可能である。ボリューム単位のアクセス解析部1Bによる24時間分のアクセス解析の結果、アクセス変動の比較的大きい論理ボリューム3Aが、監視対象の論理ボリュームとして選択される。監視対象の論理ボリューム3Aは、自動的に選択することもできるし、ユーザが手動で選択することもできる。さらに、監視対象の候補となる論理ボリュームを自動的に所定の順番で配置し、その中からユーザが手動で選ぶこともできる。
ページ単位のアクセス解析部1Cは、監視対象として選択された論理ボリューム3A内の各論理ページLPについて、例えば、一日のアクセス変動量を計測する。ここでは、論理ページのアクセス変動量を算出するために第2閾値THpが使用される。
ページ単位のアクセス解析部1Cは、アクセス解析部1C内に斜線部で示すアクセス変動量の大きさに基づいて、論理ページにアクセスが集中するピーク時間帯を各論理ページ毎にそれぞれ検出する。
再配置先決定部1Eは、論理ページの再配置先を決定するための機能である。再配置先決定部1Eは、ページ単位のアクセス解析部1Cによる解析結果に基づいて、各論理ページ毎に再配置すべきか否か、再配置すべきと判断した場合はいずれの記憶装置3Cに配置すべきかを、決定する。
詳細は後述するが、ある論理ページのピーク時間帯におけるアクセス数が、その論理ページに割り当てられている物理ページを有する記憶装置3Cの性能(応答性能)を上回っている場合を例に挙げる。この場合、その論理ページは、より高性能の記憶装置3Cへの配置が決定される。ピーク時間帯に、記憶装置3Cの応答性能を上回るアクセスが集中することにより、ストレージサービスの品質が大幅に低下するためである。
上記とは逆に、他の論理ページのピーク時間帯におけるアクセス数が、その論理ページに割り当てられている物理ページを有する記憶装置3Cの性能を下回っている場合を例に挙げる。その論理ページは、より低性能の記憶装置3Cへの配置が決定される。
再配置制御部1Fは、再配置先決定部1Eによる決定結果に従って、ストレージ3に再配置を指示する。その再配置指示を受信したストレージ3は、指示通りに、論理ページを対応付ける物理ページを変更する。
このように構成される本実施形態では、複数の論理ボリューム3Aのうちアクセス変動量の大きい論理ボリューム3Aを監視対象として抽出し、監視対象の論理ボリューム3Aに含まれる各論理ページについてアクセスの集中するピーク時間帯を検出する。そして、ピーク時間帯におけるアクセス数に応じて、論理ページを、適切な性能を有する記憶装置3Cに再配置させる。従って、効率的にページ単位の階層管理を行うことができ、計算機システムの信頼性及び使い勝手を高めることができる。
ここで、本発明が実施されない場合を考える。論理ページが適切な物理ページに対応付けられていないと、論理ボリュームのアクセス性能が低下したり、または、ストレージの有する記憶装置の使用について無駄が生じたりする。例えば、特定の時間にアクセスの集中する論理ページが、低性能の記憶装置内の物理ページに対応付けられている場合、特定の時間に集中するアクセスへの応答時間が長くなる。または、アクセス頻度の少ない論理ページが、高性能の記憶装置内の物理ページを使用している場合、高性能な物理ページを無駄に使用することになる。
このように、一日におけるアクセス量の平均値を算出しても、論理ボリュームへのアクセスの実態を正確に把握できない場合がある。そのため、論理ボリュームへのアクセス量の変化を一日単位で監視するのではなく、アクセスが集中すると予測される特定の時間帯だけ監視する方法が考えられる。しかし、多数の論理ボリュームについてそれぞれ個別に監視時間帯を設定するのは手間がかかる。さらに、アクセスの集中する時間帯を事前に予測するのは難しい。
他の解決方法として、各論理ボリューム内の各論理ページについて、アクセス数の時系列変化を一日中監視して保存する方法が考えられる。しかし、論理ページの数は多いため、全ての論理ページのアクセス数の時系列変化を記録するのは、現実的ではない。
これに対し、本実施形態では、上述の通り、複数の論理ボリューム3Aのうちアクセス変動の大きい論理ボリューム3Aだけに絞って、その論理ボリューム3Aに含まれている全論理ページのアクセス数の時系列変化を計測する。従って、効率的に論理ページを適切な記憶装置3Cに再配置させることができる。
図2は、本実施例に係る計算機システムの全体構成を示す。計算機システムは、例えば、少なくとも一つの管理サーバ10と、少なくとも一つのホスト20と、少なくとも一つのストレージ装置30とを有する。
先に図1との対応関係を述べる。管理サーバ10は管理サーバ1に、ホスト20はホスト2に、ストレージ装置30はストレージ3に、通信ネットワークCN10,CN20は通信ネットワークCN1,CN2に、それぞれ対応する。図7のプールボリューム363A,363Bは論理ボリューム3Aに、図7の論理ストレージプール362はストレージプール3Bに、図7の実ボリューム361A,361B,361Cは記憶装置3Cに、それぞれ対応する。
管理サーバ10は、例えば、マイクロプロセッサ11と、主メモリ12と、ディスク装置13と、ネットワークインターフェースカード14と、入力装置15と、出力装置16とを備える。
マイクロプロセッサ(図中、CPU)11は、主メモリ12に記憶されたコンピュータプログラムを読み込んで実行することにより、後述の各機能を実現する。主メモリ12の記憶内容は図3で後述する。ディスク装置13は、主メモリ12と共に「メモリ」を構成する。ディスク装置13には、ストレージ装置30を管理するための各種管理情報、ストレージ装置30から収集されたアクセス情報等が記憶される。ディスク装置13の記憶内容は、図4で後述する。
ネットワークインターフェースカード(図中、NIC)14は、LANのように構成される管理用通信ネットワークCN10を介して通信を行うための回路である。入力装置15及び出力装置16は、「ユーザインターフェース」を実現するための装置である。
入力装置15は、ユーザが管理サーバ10に情報を入力するために使用される装置であり、例えば、キーボード、ポインティングデバイス、タッチパネル、音声による指示装置等が挙げられる。出力装置16は、ユーザに情報を提供するために使用される装置であり、例えば、ディスプレイ装置、プリンタ、音声出力装置等が挙げられる。
図3は、管理サーバ10の主メモリ12の記憶内容を示す。主メモリ12には、例えば、アクセス情報取得処理P110と、ポリシー設定処理P120と、ストレージ階層管理処理P130と、が記憶されている。なお、主メモリ12には、上述の各処理プログラムP110,P120,P130以外に、例えば、ネットワーク通信プログラム及びシステムプログラム(いずれも不図示)が記憶される。さらに、主メモリ12にはワークエリア(不図示)が設定される。
アクセス情報取得処理P110は、ストレージ装置30からアクセス情報を取得するための処理プログラムである。アクセス情報取得処理P110は、ボリューム単位のアクセス情報取得処理P111と、ページ単位のアクセス情報取得処理P112とを含む。ボリューム単位のアクセス情報取得処理P111は、論理ボリューム(プールボリューム)の単位でアクセス情報をストレージ装置30から取得する処理プログラムである。ページ単位のアクセス情報取得処理P112は、論理ページ単位でアクセス情報をストレージ装置30から取得する処理プログラムである。
ポリシー設定処理P120は、ページの再配置を検討する際に使用されるポリシーを設定するための処理プログラムである。ポリシー設定処理P120は、シミュレート処理P121を含んでいる。シミュレート処理P121は、ページ再配置を実行した場合のアクセス変動量の変化を予測するための処理プログラムである。
ストレージ階層管理処理P130は、ページ単位のストレージ階層管理を管理するための処理プログラムである。ストレージ階層管理処理P130は、ボリューム単位でアクセス変動量を算出する処理プログラムP131と、ボリューム単位でアクセス変動量の大小を判定する処理プログラムP132と、ページ単位でピーク時間を判定する処理プログラムP133と、ページ単位で再配置先を決定するための指標を算出する処理プログラムP134と、ページ単位で再配置させる処理プログラムP135とを含む。各処理プログラムの詳細はフローチャートと共に後述する。
図4は、管理サーバ10の有するディスク装置13の記憶内容を示す。ディスク装置13は、ハードディスクに限らず、フラッシュメモリデバイス等の半導体メモリデバイスでもよい。
ディスク装置13には、例えば、物理デバイス情報T110と、論理プールボリューム情報T120と、ページマッピング情報T130と、ボリューム単位のアクセス変動量情報T140と、ボリューム単位の時系列アクセス情報T150と、アクセス変動量を算出するためのポリシーT160と、ページ単位の非時系列アクセス情報T170と、ページ単位の時系列アクセス情報T180と、ピーク時間を判定するためのポリシーT190とを含む。各情報の詳細は後述する。
図5は、ホスト20の構成を示す。ホスト20は、例えば、マイクロプロセッサ21と、主メモリ22と、ネットワークインターフェースカード23と、ホストバスアダプタ24とを含む。
マイクロプロセッサ21は、主メモリ22に記憶されたコンピュータプログラムを読み込んで実行する。ネットワークインターフェースカード23は、管理用通信ネットワークCN10を介して通信するための回路である。ホストバスアダプタ24は、データ入出力用通信ネットワークCN20を介して通信するための回路である。
主メモリ22には、例えば、業務アプリケーションプログラムP210と、ネットワーク通信プログラムP202と、システムプログラムP201とが記憶される。主メモリ22には、それらのプログラムP210,P202,P201により使用されるワークエリアP200が設けられている。
業務アプリケーションプログラム210は、ストレージ装置30内の論理プールボリューム(論理ボリューム)363を用いて、図外のクライアント端末に業務処理サービスを提供するコンピュータプログラムである。業務アプリケーションプログラムP210としては、例えば、ユーザ管理プログラム、会計処理プログラム、電子メール管理プログラム、動画配信プログラム、文書作成プログラム、ゲームプログラム、画像処理プログラム等を挙げることができる。
図6は、ストレージ装置30の構成を示す。ストレージ装置30は、例えば、ディスクアダプタ31と、共有メモリ32と、キャッシュメモリ33と、ネットワークインターフェースカード34と、チャネルアダプタ35と、記憶ユニット36とを含む。
ディスクアダプタ31は、記憶ユニット36内の各記憶装置360A−360Cと通信して、データ入出力を行うための制御回路である。ディスクアダプタ(図中、DKA)21は、その内部に複数のマイクロプロセッサ及びローカルメモリを備える。
共有メモリ32は、ディスクアダプタ31及び後述のチャネルアダプタ35により共有されるメモリである。共有メモリ32には、例えば、階層管理プログラムP310と、ネットワーク通信プログラムP301とが記憶される。さらに、共有メモリ32には、ワークエリアP300を設けることもできる。
階層管理プログラムP310は、ストレージ階層を管理するためのプログラムである。階層管理プログラムP310は、構成情報処理プログラムP311と、統計情報処理プログラムP312と、ページ階層管理プログラムP313とを含む。
構成情報処理プログラムP311は、ストレージ装置30内の構成情報を管理するプログラムである。構成情報には、例えば、記憶装置、RAIDグループ、実ボリューム、論理プールボリューム、論理ページ、物理ページ等の構成が含まれる。簡単に言えば、構成情報処理プログラムP311は、どの論理ページがどの論理プールボリューム363に属するか、各論理ページがどの物理ページに対応付けられているか等を示す構成情報を管理する。
統計情報処理プログラムP312は、例えば、各論理プールボリュームへのIO数(アクセス数)、キャッシュヒット率等の各種統計情報を管理する。ページ階層管理プログラムP313は、ページの階層を管理するプログラムである。
キャッシュメモリ33は、ホスト20から受信したライトデータ、または、論理プールボリュームから読み出したデータを、一時的に記憶するメモリである。ネットワークインターフェースカード34は、管理用通信ネットワークCN10を介して通信するための回路である。
チャネルアダプタ(図中、CHA)35は、データ入出力用通信ネットワークCN20を介してホスト20と通信するための制御回路である。チャネルアダプタ35は、ディスクアダプタ31と同様に、複数のマイクロプロセッサ及びローカルメモリを有する。
図7は、記憶ユニット36の構成を模式的に示す。記憶ユニット36は、複数の記憶装置360A,360B,360Cを備える。記憶装置360A−360Cは、例えば、ハードディスクデバイスまたはフラッシュメモリデバイス等のように構成される。記憶装置360A−360Cは、それぞれ応答性能が相違する。なお、特に区別しない場合は、記憶装置360と呼ぶ。
複数の記憶装置360A−360Cを用いて、RAIDグループを形成できる。そのRAIDグループ内の物理的記憶領域を用いて、実ボリュームを生成できる。例えば、複数の記憶装置360Aの物理的記憶領域をグループ化し、そのグループ化された物理的記憶領域の全部または一部を用いて、実ボリューム361Aを生成できる。実ボリュームとは、物理的記憶領域から直接的に形成されている論理ボリュームを意味する。同様に、複数の記憶装置360Bの物理的記憶領域をグループ化し、そのグループ化された物理的記憶領域の全部または一部を用いて、実ボリューム361Bを生成できる。実ボリューム361Cについても同様に生成される。各実ボリューム361A−361Cを特に区別しない場合は、実ボリューム361と呼ぶ。
各実ボリューム361A−361Cは、それぞれ複数の物理ページ400A−400Cを有する。実ボリューム361Aは、物理ページ400Aを有する。同様に、実ボリューム361Bは物理ページ400Bを、実ボリューム361Cは物理ページ400Cを、有する。なお、特に区別しない場合、物理ページ400A−400Cを物理ページ400と呼ぶ。
論理ストレージプール362は、各実ボリューム361から提供される複数の物理ページ400を一元的に管理する。
論理プールボリューム(プールボリュームと略す場合もある)363A,363Bは、仮想的に生成される論理ボリュームである。論理プールボリューム363A,363Bには、ホスト20からのアクセスに応じて、物理ページ400が割り当てられる。
ホスト20が、論理プールボリューム363A内の論理ページ410Aに初めてアクセスすると、そのアクセスされた論理ページ410Aに、未使用の物理ページ400が割り当てられる。同様に、ホスト20が論理プールボリューム363B内の論理ページ410Bに初めてアクセスすると、その論理ページ410Bに、未使用の物理ページ400が割り当てられる。ホスト20からのライトデータは、割り当てられた物理ページ400に書き込まれる。なお、特に区別しない場合、論理プールボリューム363A,363Bを論理プールボリューム363と呼び、論理ページ410A,410Bを論理ページ400と呼ぶ。
このように、論理プールボリューム363のアドレス空間は、所定の単位(ページサイズ)で、実ボリューム361のアドレス空間に対応付けられている。論理ストレージプール362は、所定のアルゴリズムに従って、各論理プールボリューム363に、プールされた物理ページ400を割り当てる。各論理プールボリューム363内の各論理ページ410は、応答性能の異なる複数種類の物理ページ400に対応付けられる。
例えば、ある論理プールボリューム363内のある論理ページ410は、高性能の記憶装置360Aの有する物理ページ400Aに対応付けられ、同一の論理プールボリューム363内の他の論理ページ410は、中性能の記憶装置360Bの有する物理ページ400Bに対応付けられ、同一論理プールボリューム363内のさらに他の論理ページ410は、低性能の記憶装置360Cの有する物理ページ400Cに対応付けられる。
このように、論理プールボリューム363には、応答性能の異なる物理ページ400に対応付けられる論理ページ410が混在する。その後、後述する再配置により、論理ページ410へのアクセス状況に応じて、より適切な記憶装置360内の物理ページ400に対応付けられる。例えば、特定の期間に頻繁にアクセスされる論理ページ410は、より高性能の物理ページ400に対応付けられる。ホスト20への応答時間を短縮するためである。また、例えば、あまりアクセスされない論理ページ410は、より低性能の物理ページ400に対応付けられる。高性能の記憶領域を有効に活用するためである。
図8は、物理デバイス情報T110の一例を示す。物理デバイス情報T110は、物理的記憶デバイスとしての実ボリューム361を管理するための情報である。図中では、実ボリュームを「物理デバイス」と表示している。なお、以下の説明において、ID、識別情報、識別子、名前は、置換可能である。
物理デバイス情報T110は、例えば、論理ストレージボリューム識別子欄C110と、論理デバイス識別子欄C111と、物理ページ識別子欄C112とを対応付けて管理している。論理ストレージボリューム識別子欄C110は、論理ストレージプール362を識別するための情報を記憶する。本実施例では、一つの論理ストレージプール362を示すが、ストレージ装置30は複数の論理ストレージプール362を備えてもよい。
物理デバイス識別子欄C111は、物理デバイスである各実ボリューム361を識別するための情報を記憶する。物理ページ識別子欄C112は、各物理ページ400を識別するための情報を記憶する。
図9は、論理プールボリューム情報T120の一例を示す。論理プールボリューム情報T120は、各論理プールボリューム363を管理するための情報である。論理プールボリューム情報T120は、例えば、論理ストレージプール識別子欄C120と、論理プールボリューム識別子欄C121と、論理ページ識別子欄C122とを対応付けて管理している。
論理ストレージプール識別子欄C120は、各論理ストレージプール362を識別するための情報を記憶する。論理プールボリューム識別子欄C121は、論理ストレージプール362を利用して構成される各論理プールボリューム363を識別するための情報を記憶する。論理ページ識別子欄C122は、各論理プールボリューム363に含まれる各論理ページ410を識別するための情報を記憶する。
図10は、ページマッピング情報T130の一例を示す。ページマッピング情報T130は、論理ページ410と物理ページ400との対応関係を管理する情報である。ページマッピング情報T130は、例えば、物理ページ識別子欄C130と、論理ページ識別子欄C131と、物理ページの上限IO数欄C132とを対応付けて管理する。
物理ページ識別子欄C130は、各物理ページ400を識別する情報を記憶する。論理ページ識別子欄C131は、各論理ページ410を識別する情報を記憶する。未使用の論理ページである場合、C131には、その論理ページが未使用であることを示す値が設定される。
物理ページの上限IO数欄C132は、各物理ページ400が許容する、単位時間当たりIO数の上限値を記憶する。例えば、「30/min」に設定されている物理ページ400は、一分間当たり30回までのアクセスを許容する。一分間に30回以内のアクセスであれば、物理ページ400は、規定の応答時間内に応答できることを意味する。
図11は、ボリューム単位のアクセス変動量情報T140の一例を示す。ボリューム単位のアクセス変動量情報T140は、論理プールボリューム毎のアクセス変動量を管理する情報である。ボリューム単位のアクセス変動量情報T140は、例えば、論理プールボリューム識別子欄C140と、ボリュームアクセス変動量欄C141と、大小判定値欄C142とを対応付けて管理する。
論理プールボリューム識別子欄C140は、各論理プールボリューム363を識別するための情報を記憶する。ボリュームアクセス変動量欄C141は、各論理プールボリューム363のアクセス変動量を記憶する。アクセス変動量については後述する。大小判定値欄C142は、各論理プールボリュームのアクセス変動量が大きいのかそれとも小さいのかを判定した値を記憶する。
図12は、論理プールボリューム363のアクセス変動量を説明する図である。図12に示すグラフの横軸は時間を示し、縦軸は毎分のIO数(NIO)を示す。「avg.」は、毎分のIO数の平均値を示す。「THvp」は、「第1閾値」に対応し、ピーク時間を判定するために用いられる。
図12(a),(b)に示すように、時間の経過につれて、論理プールボリューム363についてのIO数が変化する。アクセス変動量(varとも表示する)は、IO数が第1閾値THvp以上になる連続領域の面積として定義される(var=(NIO−THvp)×持続時間)。
ボリューム単位のアクセス変動量とは、各論理プールボリューム363について検出されるアクセス変動量を、各論理プールボリューム毎に集計した値として定義される。つまり、図12中の斜線部で示す面積の合計値が、その論理プールボリューム363のアクセス変動量の総和を示す。
図12(a)に示すアドレス変動量の方が、図12(b)に示すアクセス変動量よりも大きい。そこで、図12(a)の論理プールボリューム363の有するアクセス変動量は「大」と判定され、図12(b)の論理プールボリューム363の有するアクセス変動量は「小」と判定される。アクセス変動量の大小の判定方法は後述する。アクセス変動量が相対的に大きい論理プールボリューム363ほど、特定の時間帯にアクセスが集中する傾向にあると言える。
本実施例では、斜線部の面積(アクセス変動量が連続して閾値THvp以上となる時間帯)を問題とするため、散発的に発生する、一時的なアクセス集中を無視して、ページの階層管理を行うことができる。図12(b)に示すような、アクセス集中が短時間しか発生しない場合は、応答性能の低下に与える影響は少ないため、ノイズとして扱う。これに対し、図12(a)に示す例では、アクセスの集中する時間帯が長いため、応答時間の低下に与える影響が大きいと考えられる。そこで、この場合は、後述のページ再配置を実行する。
図13は、ボリューム単位の時系列アクセス情報T150の一例を示す。ボリューム単位の時系列アクセス情報T150は、論理プールボリューム毎のアクセス情報を時系列で管理する情報である。
ボリューム単位の時系列アクセス情報T150は、例えば、論理プールボリューム識別子欄C150と、時刻欄C151と、IO数欄C152とを対応付けて管理する。論理プールボリューム識別子欄C150は、各論理プールボリューム363を識別するための情報を記憶する。時刻欄C151は、IO数を記録したときの時刻情報を記憶する。IO数欄C152は、時刻欄C151に記憶された時刻におけるIO数を記憶する。
図14は、ボリューム単位のアクセス変動量を算出するためのポリシー情報T160の一例を示す。ポリシー情報T160は、論理プールボリューム単位のアクセス変動量を算出するために使用されるポリシーを管理する。ポリシー情報T160は、例えば、ポリシー識別子欄C160と、値欄C161とを備える。ポリシー識別子欄C160は、ポリシーの種類を識別するための情報を記憶する。
ポリシーの種類を識別する情報としては、ピーク時間判定定数と、ボリューム選択数(Nv)とがある。ピーク時間判定定数とは、図12に示す第1閾値THvpを算出するために使用される定数である。定数の値は、ユーザが手動で設定することができる。例えば、IO数の最大値(max)と平均値(avg)との差分に定数を乗じた値が、第1閾値THvpとなる。
ボリューム選択数(Nv)とは、アクセス変動量の大きい順番で論理プールボリューム363を選択するための個数を示す。例えば、ボリューム選択数が「30」に設定されている場合、論理プールボリューム363が、アクセス変動量の大きい順番で、30個だけ選択される。ボリューム選択数もユーザが手動で設定できる。なお、ピーク時間判定定数及びボリューム選択数は、自動的に設定される構成でもよいし、自動的に推薦された値をユーザが調整して使用する構成でもよい。
図15は、ページ単位の非時系列アクセス情報T170の一例を示す。このアクセス情報T170は、論理ページ単位のアクセス情報を非時系列で管理する。アクセス情報T170は、例えば、論理ページ識別子欄C170と、総IO数欄C171と、再配置先決定指標欄C172と、開始時刻欄C173と、終了時刻欄C174とを備える。
論理ページ識別子欄C170は、各論理ページ410を識別する情報を記憶する。総IO数欄C171は、論理ページ410に生じたIOの総数を記憶する。再配置先決定指標欄C172は、論理ページ410の再配置先を決定するために使用される指標を記憶する。再配置とは、論理ページ410を対応付ける物理ページ400の変更である。再配置先を決定するための指標としては、後述のように、論理ページ410への単位時間当たりのIO数が使用される。開始時刻欄C173は、ボリューム単位のアクセス変動量が「大」であると判定された論理プールボリューム363に属する場合、IO数が後述の第2閾値THpp以上となる連続領域の開始時刻を記憶する。一方、アクセス変動量が「小」であると判定された論理プールボリューム363に属する場合、後述のページ単位の時系列アクセス情報の記録開始時刻(たとえば0:00)を記録する。終了時刻欄C174は、ボリューム単位のアクセス変動量が「大」であると判定された論理プールボリューム363に属する場合、IO数が後述の第2閾値THpp以上となる連続領域の終了時刻を記憶する。一方、アクセス変動量が「小」であると判定された論理プールボリューム363に属する場合、後述のページ単位の時系列アクセス情報の記録終了時刻(たとえば23:59)を記録する。
図15に示すように、一方の各論理ページ(LA1,LA2,LA3,LA4)については、各欄C171,C172,C173,C174が空欄となっている。それらの各論理ページLA1−LA4は、ボリューム単位のアクセス変動量が「大」であると判定された論理プールボリューム363に属するためである。アクセス変動量の大きい論理プールボリューム363については、そこに含まれる各論理ページ410へのIO数変化が時系列で監視されるようになっている。従って、今の時点では、各論理ページLA1−LA4の各欄C171−C174は空欄となる。後述のように、再配置先を決定する際に、各論理ページLA1−LA4の各欄C171−C174には値が設定される。
図16は、ページ単位の時系列アクセス情報T180の一例を示す。時系列アクセス情報T180は、論理ページ毎のアクセス情報を時系列に沿って管理する。時系列アクセス情報T180は、例えば、論理ページ識別子欄C180と、時刻欄C181と、IO数欄C182とを含む。
論理ページ識別子欄C180は、各論理ページ410を識別する情報を記憶する。時刻欄C181は、アクセス情報(IO数)の取得された時刻を記憶する。IO数欄C182は、時刻欄C181に記憶された時刻毎に、論理ページ410へのIO数を記憶する。本実施例では、1分毎のIO数を24時間分取得する。アプリケーションプログラムP210の種類等によって、昼間にアクセスが集中したり、または、深夜にアクセスが集中したりするため、一日分のIO数変化を監視する。しかし、監視時間は0時から24時までの24時間に限らない。例えば、18時間等の他の期間に設定することもできる。
図17は、ページ単位のピーク時間判定用ポリシー情報T190の一例を示す。ピーク時間判定用ポリシー情報T190は、各論理ページ毎のピーク時間を検出する第2閾値THppを算出するための情報を記憶する。
ポリシー情報T190は、例えば、ポリシー識別子欄C190と、値欄C191とを備える。ポリシー識別子欄C190は、ポリシーの種類を示す情報を記憶する。ポリシーの種類を示す情報としては、「論理ページ毎のピーク時間を判定するために使用される定数」を挙げることができる。値欄C191は、その定数の値を記憶する。ユーザが手動で定数を設定する構成でもよいし、管理サーバ10が自動的に定数を設定する構成でもよいし、管理サーバ10の推薦する定数値をユーザが手動で調整する構成でもよい。
図18は、管理サーバ10による管理方法の全体を示す。以下に述べる各処理は、メモリに記憶された各プログラムをマイクロプロセッサが読み込んで実行することにより実現される。従って、以下の各処理の主語は、プログラムであってもよいし、マイクロプロセッサであってもよい。あるいは、以下の各処理の主語を管理サーバとして、説明することもできる。本実施例では、便宜上、管理サーバ10を主語として各プログラムの動作を説明する。
なお、各プログラムの全部または一部を専用ハードウェア回路として実現する構成でもよい。各プログラムは、プログラムを配布するためのプログラム配布サーバを介して、管理サーバ10にインストールさせることができる。さらに、記録媒体に固定された各プログラムを、管理サーバ10に読み込ませてインストールさせてもよい。
図18に示すように、管理サーバ10は、所定の時刻が到来すると(S10:YES)、論理プールボリューム単位のアクセス変動量を算出する(S11)。続いて、管理サーバ10は、各論理プールボリューム毎に算出されたアクセス変動量に基づいて、そのアクセス変動量が「大」または「小」のいずれであるかを判定する(S12)。アクセス変動量が「大」であると判定された論理プールボリューム363については、翌日に、その論理プールボリューム363に含まれる各論理ページ410毎の処理S13,S14,S15が実行される。
図18では、S10−S12と、S13−S15とが連続して実行されるかのように示しているが、実際には、S10−S12とS13−S15とは、それぞれ異なる日に実行される。
管理サーバ10は、アクセス変動量の大きい論理プールボリューム363に含まれる各論理ページ410について、ページ単位のピーク時間を判定する(S13)。ページ単位のピーク時間とは、論理ページへのアクセスが集中する時間帯である。詳細は図26で後述するが、論理ページへのアクセスが集中する時間帯が複数ある場合、いずれか最もIO数の多い時間帯がピーク時間として検出される。
管理サーバ10は、ピーク時間における一分間当たりのIO数を、再配置先決定指標として算出する(S14)。管理サーバ10は、再配置先決定指標と実ボリューム361の応答性能に基づいて、論理ページ410を対応付けるべき実ボリューム(物理ページ)を決定する(S15)。
図19は、アクセス情報を取得する処理を示すフローチャートである。本処理は、管理サーバ10に記憶されたアクセス情報取得処理P110により実行される。管理サーバ10は、アクセス情報を取得すべき所定時刻が到来したか否かを判定する(S20)。
例えば、ストレージ装置30が、各論理プールボリューム363へのアクセスに関する情報を5分間だけ保持する構成の場合、所定時刻は、5分またはそれよりも若干短く設定される。
管理サーバ10は、所定時刻が到来すると(S20:YES)、ストレージ装置30から各論理プールボリューム363毎のアクセス情報を取得する(S21)。さらに、管理サーバ10は、監視対象となっている各論理ページ410のアクセス情報を各ページ毎に取得する(S22)。監視対象の論理ページとは、アクセス変動量が大きいと判定された論理プールボリュームに含まれる論理ページである。
最後に、管理サーバ10は、ストレージ装置30からページ構成情報を取得して(S23)、S20に戻る。ページ構成情報とは、ストレージ装置30の有する構成情報処理プログラムP311により管理されている情報である。ページ構成情報は、各論理ページがどの論理プールボリュームに存在するか、各論理ページがどの物理ページに対応付けられているかの情報を含む。
図20は、ボリューム単位のアクセス情報取得処理を示すフローチャートである。本処理は、ボリューム単位のアクセス情報取得処理プログラムP111により実行される。管理サーバ10は、論理プールボリューム情報T120から、未処理の論理プールボリューム363を一つ選択する(S30)。
管理サーバ10は、その選択された論理プールボリューム363への一分間当たりのIO数をストレージ装置30から取得し、ボリューム単位の時系列アクセス情報T150に記憶させる(S31)。
管理サーバ10は、論理プールボリューム情報T120に登録されている全ての論理プールボリューム363について、アクセス情報(一分間当たりのIO数)を取得したか否かを判定する(S32)。未処理の論理プールボリュームが無い場合(S32:YES)、本処理は正常に終了する。未処理の論理プールボリュームが有る場合(S32:NO)、S30に戻る。
図21は、ページ単位のアクセス情報取得処理を示すフローチャートである。本処理は、ページ単位のアクセス情報取得処理P112により実行される。管理サーバ10は、論理プールボリューム情報T120から、未処理の論理プールボリューム363を一つ選択する(S40)。
管理サーバ10は、ボリューム単位のアクセス変動量情報T140の欄C142を参照することにより、選択された論理プールボリューム363のアクセス変動量が「小」に設定されているか否かを判定する(S41)。
その論理プールボリュームのアクセス変動量が小であると判定されている場合(S41:YES)、管理サーバ10は、その論理プールボリューム363に属する全論理ページ410のIO数をストレージ装置30からそれぞれ取得し、ページ単位の非時系列アクセス情報T170のIO数欄C152に加算する(S42)。つまり、アクセス変動量の小さい論理プールボリューム363の場合、その論理プールボリュームに含まれる各論理ページ410のIO数が各論理ページ毎に積算される。
これとは逆に、選択された論理プールボリュームのアクセス変動量が大であると判定されている場合(S41:NO)、管理サーバ10は、その論理プールボリュームに含まれる全論理ページについての一分間当たりのIO数をストレージ装置30から取得し、ページ単位の時系列アクセス情報T180に新エントリとして追加する(S43)。アクセス変動量の大きい論理プールボリューム363については、その論理プールボリュームに含まれる各論理ページの毎分のIO数がストレージ装置30から収集されて、時系列アクセス情報T180に記憶される。
管理サーバ10は、全ての論理プールボリュームについて処理を実施したか否かを判定する(S44)。全ての論理プールボリュームについて上記処理を実施した場合(S44:YES)、本処理は正常に終了する。未処理の論理プールボリュームが残っている場合(S44:NO)、S40に戻る。
図22は、ボリューム単位でアクセス変動量を算出する処理を示すフローチャートである。本処理は、管理サーバ10の有するアクセス変動量算出処理プログラムP131により実行される。
管理サーバ10は、ボリューム単位の時系列アクセス情報T150から未処理の論理プールボリューム363を一つ選択する(S50)。管理サーバ10は、選択された論理プールボリュームについて、一日間のIO数の平均値(毎分の平均値avg)を算出する(S51)。続いて、管理サーバ10は、一日間の毎分のIO数のうち最大値(max)を算出する(S52)。
管理サーバ10は、最大値(max)と平均値(avg)との差分を算出し、その差分に図14に示すピーク時間判定定数の値(例えば0.7)を乗じる(S53)。これにより、第1閾値であるピーク時間判定閾値THvpが算出される(THvp=(max−avg)×0.7)。
管理サーバ10は、論理プールボリュームの一分間当たりのIO数が連続して閾値THvp以上となる領域(図12中の斜線部分)の面積を検出し、その面積の総和を算出する(S54)。毎分のIO数が連続して閾値THvp以上となる領域の合計面積が、各論理プールボリューム毎のアクセス変動量となる。
管理サーバ10は、算出されたアクセス変動量をボリューム単位のアクセス変動量情報T140の欄C141に記憶させる(S55)。管理サーバ10は、全ての論理プールボリュームについて処理したか否かを判定する(S56)。全ての論理プールボリュームについて本処理を実行した場合(S56:YES)、本処理を正常に終了する。未処理の論理プールボリュームが有る場合(S56:NO)、S50に戻る。
図23は、ボリューム単位のアクセス変動量の大小を判定する処理を示すフローチャートである。本処理は、管理サーバ10の有するアクセス変動量の大小判定処理P132により実行される。
管理サーバ10は、ボリューム単位のアクセス変動量情報T140のボリュームアクセス変動量欄C141の値を、降順に並べ替える(S60)。管理サーバ10は、並び替えられた各論理プールボリュームのうち、上からボリューム選択数Nv個の論理プールボリュームを「アクセス変動量が大きい」と判定し、それ以外の論理プールボリュームを「アクセス変動量が小さい」と判定する(S61)。つまり、アクセス変動量の大きい論理プールボリュームを上位Nv個だけ「アクセス変動量が大きい」と判定する。管理サーバ10は、アクセス変動量情報T140のうち大小判定値欄C142の値を更新し(S62)、本処理を正常に終了する。
図24,図25は、ページ単位のピーク時間を判定するための処理を示すフローチャートである。本処理は、管理サーバ10の有する、ページ単位のピーク時間判定処理プログラムP133により実行される。
管理サーバ10は、ページ単位の時系列アクセス情報T180から未処理の論理ページ410を一つ選択する(S70)。管理サーバ10は、選択された論理ページについて、一日間における毎分のIO数の平均値を算出する(S71)。さらに、管理サーバ10は、一日間における毎分のIO数の最大値を算出する(S72)。
管理サーバ10は、最大値と平均値との差分に、ポリシー情報T190に記憶されている定数を乗じることにより、ページ単位のピーク時間を判定するための閾値THppを算出する(S73:THpp=(max−avg)×定数)。閾値THppは「第2閾値」に該当する。
管理サーバ10は、論理ページへの一分間当たりのIO数のうち、連続して閾値THpp以上となる領域(時間帯)を検出する(S74)。管理サーバ10は、検出された領域毎に、その面積をアクセス変動量として算出する(S75)。図25に移る。
管理サーバ10は、一分間当たりのIO数が連続して閾値THpp以上となる領域が複数検出された場合、各領域毎にアクセス変動量を算出する。管理サーバ10は、算出された複数のアクセス変動量のうち最大値のアクセス変動量となる領域を、その論理ページのピーク時間帯として選択する(S76)。
管理サーバ10は、ピーク時間帯の開始時刻を、ページ単位の非時系列アクセス情報T170の開始時刻欄C173に、ピーク時間帯の終了時刻を終了時刻欄C174に、それぞれ記憶させる(S77)。
さらに、管理サーバ10は、ピーク時間帯におけるIO数の総和を算出し、算出された値を、ページ単位の非時系列アクセス情報T170の総IO数欄C171に記憶させる(S78)。管理サーバ10は、全ての論理ページを処理したか否か判定し(S79)、未処理の論理ページがある場合は(S79:NO)、S70に戻る。全ての論理ページについて処理した場合(S79:YES)、本処理を正常に終了する。
図26は、ページ単位でピーク時間を判定する様子を模式的に示す。上述の通り、論理ページ毎のアクセス変動量varは、毎分のIO数が連続して閾値THpp以上となる領域の面積として算出される。
図26では、閾値THpp以上となる連続領域が2つ示されている。一方の領域では、毎分のIO数V1が時刻t0からt1まで継続している。他方の領域では、毎分のIO数V2が時刻t7からt8まで継続している。
一方の領域のアクセス変動量var1は、var1=V1×(t1−t0)として求められる。同様に、他方の領域のアクセス変動量var2は、var2=V2×(t8−t7)として求められる。
図25のS76で述べたように、管理サーバ10は、2つのアクセス変動量var1,var2を比較し、いずれか大きい方のアクセス変動量var1を、アクセスのピークが生じている時間帯の領域として選択する。図26の例では、var1の方がvar2よりも大きいため、var1が選択される。
そこで、管理サーバ10は、var1の領域の開始時刻t0及び終了時刻t1を、ページ単位の非時系列アクセス情報T170に記憶させる(S77)。さらに、管理サーバ10は、時刻t0からt1までに生じたIO数を積算して、ページ単位の非時系列アクセス情報T170に記憶させる(S78)。
このように、本実施例では、アクセス変動量の大きい論理プールボリュームを、ページ単位で監視すべき対象ボリュームとして選択し、対象ボリューム内の全論理ページについてピーク時間(時間帯)を検出する。これにより、ホスト20による、対象論理プールボリュームの使用実態を把握することができる。
図27は、論理ページの再配置先を決定するために使用される指標を算出する処理を示すフローチャートである。本処理は、管理サーバ10の有する再配置先決定指標算出処理プログラムP134により実行される。図28は、図27の処理を実行することにより更新される、ページ単位の非時系列アクセス情報T170の例を示す。
管理サーバ10は、ページ単位の非時系列アクセス情報T170の中から未処理の論理ページを一つ選択する(S90)。管理サーバ10は、開始時刻欄C173と終了時刻欄C174とにより定義されるピーク時間帯における、一分間当たりのIO数を算出する(S91)。
例えば、図28に示す論理ページLA1の場合、ピーク時間帯(15:00−15:59)における総IO数は「500」である。従って、論理ページLA1のピーク時間帯における平均IO数は、500/60=8.3として求められる。同様に、論理ページLA2の場合は、ピーク時間帯(12:00−12:29)における総IO数は「800」である。従って、論理ページLA2のピーク時間帯における平均IO数は、800/30=26.7として求められる。
管理サーバ10は、S91で算出された平均IO数を、再配置先決定指標欄C172に記憶させる(S92)。つまり、再配置先決定指標とは、その論理ページが最も頻繁に使用される場合の、一分間当たりの平均IO数である。一分間当たりの平均IO数であるから、実ボリューム361(記憶装置360)の応答性能と容易に比較できる。
管理サーバ10は、ページ単位の非時系列アクセス情報T170に登録されている各論理ページの全ての論理ページについて処理したか否かを判定する(S93)。未処理の論理ページが無い場合(S93:YES)、本処理は正常に終了する。未処理の論理ページが有る場合(S93:NO)、S90に戻る。
図29は、再配置処理を示すフローチャートである。本処理は、管理サーバ10の有する再配置処理プログラムP135により実行される。管理サーバ10は、図28に示すページ単位の非時系列アクセス情報T170の中から、未処理の論理ページを一つ選択する(S100)。
続いて、管理サーバ10は、選択された論理ページについて、差分Δを算出する(S101)。差分Δとは、論理ページの対応付けられている物理ページの上限IO数(図10のC132)から、その論理ページの再配置先決定指標(図28のC172)を差し引いた値である。即ち、差分Δは、再配置対象の論理ページのピーク時におけるIO数と、その論理ページに割り当てられている物理ページの上限IO数とのギャップを示す。
さらに、管理サーバ10は、ページマッピング情報T130の欄C131に「未使用」と設定されている各物理ページについて、差分集合セットを作成する(S102)。
差分集合セットは、未使用の各物理ページのそれぞれについて、選択された論理ページの再配置先決定指標と上限IO数との差を絶対値として算出したものである。つまり、管理サーバ10は、未使用の各物理ページと、再配置対象の論理ページのピーク時のIO数との差の絶対値を、差分集合セットとして算出する。
管理サーバ10は、差分集合セット内に、S101で算出した差分Δよりも小さな値を有する未使用物理ページが存在するか否かを判定する(S103)。
差分Δよりも小さな値を有する未使用の物理ページが存在する場合(S103:YES)、管理サーバ10は、論理ページを対応付ける先を、その未使用物理ページに切り替えさせるための指示をストレージ装置30に発行する(S104)。
管理サーバ10は、ストレージ装置30からの切替完了通知を受信すると、ページマッピング情報T130を更新する(S105)。管理サーバ10は、未処理の論理ページが無くなるまでS100以下のステップを繰り返す(S106)。
具体的に説明する。図28に示す論理ページLA1の場合、再配置先指標(以下、指標)の値は「8.3」である。図10のページマッピング情報T130を参照すると、論理ページLA1には物理ページPA1が対応付けられており、物理ページPA1の上限IO数は「30/min」である。従って、論理ページLA1についての差分Δは、21.7となる(21.7=|30−8.3|)。
未使用の各物理ページの差分集合セットを検討する。ページマッピング情報T130によれば、未使用の物理ページは、PA3,PC2,PC3,PC4の4ページである。物理ページPA3の上限IO数は「30/min」、物理ページPC2,PC3,PC4の上限IO数は「10/min」である。
従って、差分集合セットは、(PA3:21.7(=|30−8.3|) PC2:1.7(=|10−8.3|) PC3:1.7(=|10−8.3|) PC4:1.7(=|10−8.3|))となる。
上記の差分集合セットの中には、対象の論理ページLA1の指標「8.3」よりも小さい値(1.7)を有する未使用物理ページPC2,PC3,PC4が存在する。従って、論理ページLA1は、現在対応付けられている物理ページPA1から、未使用物理ページPC2,PC3,PC4のうちのいずれか一つに対応付けられる。
このように、上限IO数(30/min)よりも少ないIO数(8.3)しか発生していない論理ページLA1は、より低性能の物理ページ(PC2−4のいずれか)に移動される。これにより、論理ページLA1に割り当てられていた高性能の物理ページPA1を未使用ページとしてプールに戻し、他の論理ページに割り当てることができる。
他の具体例を説明する。図28に示す論理ページLA2の場合、その指標は「26.7」である。論理ページLA2に割り当てられている物理ページPB1の上限IO数は「20/min」である。従って、論理ページLA2の差分Δは、6.7となる(6.7=|20−26.7|)。
未使用の物理ページは、PA3,PC2,PC3,PC4の差分集合セットは、(PA3:3.3(=|30−26.7|) PC2:16.7(=|10−26.7|) PC3:16.7(=|10−26.7|) PC4:16.7(=|10−26.7|)となる。
上記の差分集合セット(3.3 16.7 16.7 16.7)の中には、論理ページLA2の指標「6.7」よりも小さい値(3.3)を有する未使用物理ページPA3が存在する。従って、論理ページLA2は、現在対応付けられている物理ページPB1から、未使用物理ページPA3に対応付けられる。
このように、上限IO数は(20/min)を上回るIO数(26.7)が発生している論理ページLA2は、より高性能の物理ページPA3に移動される。これにより、ホスト20が論理ページLA2にアクセスした場合の応答時間を短縮して、サービスの品質を高めることができる。
図30は、ポリシーを設定するための画面G10の例を示す。ポリシー設定画面G10は、管理サーバ10の有するポリシー設定処理プログラムP120により作成されて、出力装置16に表示される。
ポリシー設定画面G10は、3つの領域GA1,GA2,GA3を有する。第1領域GA1は、ボリューム単位のアクセス変動量を算出するために使用されるポリシー情報を設定する領域である。第2領域GA2は、ページ単位のアクセス変動量を算出するために使用されるポリシー情報を設定する領域である。第3領域GA3は、シミュレーション結果を表示する領域である。
第1領域GA1は、図14に示すポリシー情報T160に対応する。第1領域GA1は、例えば、ピーク時間判定定数を設定するためのスライダSL1と、ボリューム選択数を設定するためのスライダSL2と、ボリュームを個別に選択するためのボタンB10とを備える。
ユーザがスライダSL1を操作すると、閾値THvpを算出するために用いられる定数の値が変化する。スライダSL1で設定された値は、ポリシー情報T160の欄C161に記憶される。ユーザがスライダSL2を操作すると、ページ単位の監視を行うべきボリュームを選択するための選択数が変化する。スライダSL2で設定された値は、ポリシー情報T160の欄C161に記憶される。ボタンB10を操作した場合については、図31で後述する。
第2領域GA2は、図17に示すポリシー情報T190に対応する。第2領域GA2はスライダSL3を有する。ユーザがスライダSL3を操作すると、閾値THppを算出するための定数の値が変化する。スライダSL3で設定された値は、ポリシー情報T190の欄C191に記憶される。
第3領域GA3は、シミュレーション結果を示す領域である。第3領域GA3には、ページ再配置を実行する前におけるアクセス変動量の総和(全論理プールボリュームのアクセス変動量の総和)と、ページ再配置を実行した場合のアクセス変動量の総和の予測値とが並べて表示される。アクセス変動量の予測方法については、図33,図34,図35で後述する。
図31は、ページ単位でアクセス変動量を観測するための対象ボリュームを個別に設定するための画面G20を示す。図30に示す画面G10において、ユーザがボタンB10を操作すると、図31に示す画面G20に切り替わる。
論理プールボリュームを個別に選択するための画面G20には、ストレージ装置30で管理されている複数の論理プールボリューム363のうち、アクセス変動量の大きい論理プールボリュームから順番に表示される。
図31では、論理プールボリュームA、論理プールボリュームB、論理プールボリュームCの順番でアクセス変動量が大きいため、A,B,Cの順に上から配置される。画面G20には、候補となる各論理プールボリュームについて、例えば、論理プールボリューム名と、アクセス変動量の値と、チェックボックスと、グラフとが表示される。チェックボックスは、ユーザが論理プールボリュームを選択するために使用される。グラフは、論理プールボリュームのアクセス変動量の時間変化を示す。
画面G20には、アクセス変動量の大きい論理プールボリュームから順番に、視認し易い位置に配置される。アクセス変動量の大きい論理プールボリュームでは、局所的にアクセスのピークが生じている可能性が高い。つまり、一日のうち特定の期間にアクセスが集中しており、応答性能が低下している可能性がある。または、アクセス量に比べて、過大な性能の物理ページが使用されている可能性がある。
画面G20には、アクセス変動量の大きい順番で論理プールボリュームを配置するため、ユーザは、ページ単位でアクセス変動量を計測すべき論理プールボリュームを簡単に選択することができる。
図32は、ポリシー設定処理を示す。本処理は、管理サーバ10の有するポリシー設定処理プログラムP120により実行される。管理サーバ10は、図30に示すポリシー設定画面G10を出力装置16に表示させる(S110)。管理サーバ10は、ボタンB10が操作されたか否かを判定する(S111)。
ボタンB10が操作されると(S111:YES)、管理サーバ10は、図31に示す画面G20を出力装置16に表示させる(S112)。管理サーバ10は、ユーザのチェックボックスへの操作に応じて、ボリューム単位のアクセス変動量情報T140を更新する(S113)。つまり、ユーザによって選択された論理プールボリュームの識別子を、アクセス変動量情報T140に追加する。ユーザがボタンB10を操作しない場合は、S112,S113がスキップされる。
管理サーバ10は、スライダSL1−SL3が操作されたか否かを判定しており(S114)、いずれかのスライダが操作された場合(S114:YES)、シミュレート処理を実行する(S115)。シミュレート処理については後述する。
管理サーバ10は、ユーザの操作に応じて、ボリューム単位のアクセス変動量を算出するためのポリシー情報T160と、ピーク時間判定用ポリシー情報T190とを、更新させる(S116)。
図33,図34,図35は、図32中にS114として示すシミュレート処理のフローチャートである。本処理は、管理サーバ10の有するシミュレート処理プログラムP121により実行される。
管理サーバ10は、シミュレーションに先立って、ボリューム単位のアクセス変動量情報T140のバックアップを作成する(S120)。管理サーバ10は、ボリュームアクセス変動量情報T140のボリュームアクセス変動量欄C141に記憶されている各アクセス変動量の総和を算出する(S121)。この算出値が、画面G10の第3領域GA3に表示される「再配置前のアクセス変動量の総和」となる。
続いて、管理サーバ10は、以下に述べるように、ボリューム単位のアクセス変動量を算出し(S122−S125)、算出されたアクセス変動量の大小を判定して(S126)、ページを配置し直した場合のアクセス変動量を予測する。
管理サーバ10は、ボリューム単位のアクセス変動量情報T140に登録されている各論理プールボリュームの中から、未処理の論理プールボリュームを一つ選択する(S122)。管理サーバ10は、選択された論理プールボリュームの一日間におけるIO数の毎分の平均値を算出する(S123)。
さらに、管理サーバ10は、毎分のIO数の最大値を算出する(S124)。管理サーバ10は、最大値と平均値との差分に、図30中のスライダSL1で指定された定数を乗じて、ピーク時間を判定するための閾値THvpを算出する(S125)。
図34に移る。管理サーバ10は、ボリューム単位のアクセス変動量情報T140の大小判定値欄C142を参照し、論理プールボリュームのアクセス変動量が大であるか否かを判定する(S126)。
論理プールボリュームのアクセス変動量が大である場合(S126:YES)、管理サーバ10は、アクセス変動量を改めて算出する(S127)。アクセス変動量が大の場合、その論理プールボリュームに含まれる論理ページを適切な物理ページに割り当て直すことにより、その論理プールボリューム全体のアクセス変動量を少なくできる。
そこで、S125で算出された閾値THvpを用いて、もしも論理ページを他の記憶装置に再配置した場合のアクセス変動量を算出する。この改めて算出されるアクセス変動量を、便宜上、新アクセス変動量と呼ぶ。管理サーバ10は、ボリューム単位のアクセス変動量情報T140の欄C141の値を、S127で算出された新アクセス変動量で上書きする(S128)。
論理プールボリュームのアクセス変動量が小である場合(S126:NO)、管理サーバ10は、現在のアクセス変動量を算出して(S129)、欄C141に記憶させる(S130)。アクセス変動量が小の場合、その論理プールボリュームに含まれる各論理ページ毎のアクセス変動量の計測は行われず、ページ再配置も実行されない。従って、実際に取得された時系列アクセス情報T150に基づいて、アクセス変動量を算出する。
管理サーバ10は、未処理の論理プールボリュームが有るか否かを判定し(S131)、未処理の論理プールボリュームが有る場合(S131:YES)、図33のS122に戻る。未処理の論理プールボリュームが無くなった場合(S131:NO)、図35のS132に移る。
図35を参照する。管理サーバ10は、全ての論理プールボリュームのアクセス変動量の総和を算出し、記憶する(S132)。この総和は、予測値である。この総和は、アクセス変動量が大であると判定された論理プールボリュームのページ再配置を実行した場合のアクセス変動量の予測値と、アクセス変動量が小であると判定された論理プールボリュームの実際のアクセス変動量とを、加算した値である。
管理サーバ10は、S120で作成したバックアップを用いて、ボリューム単位のアクセス変動量情報T140を元通りに復元する(S133)。最後に、管理サーバ10は、S121で算出されたアクセス変動量の総和(再配置前の値)と、S132で算出されたアクセス変動量の総和(再配置後の予測値)とを、ポリシー設定画面G10に表示させる(S134)。
このように構成される本実施例によれば、以下の効果を奏する。本実施例では、全ての論理プールボリューム363のうち、アクセス変動量の大きい論理プールボリュームを、ページ単位のアクセス変動量を計測すべき対象ボリュームとして抽出する。本実施例では、対象ボリューム内の各論理ページ410についてアクセスの集中するピーク時間帯を検出し、ピーク時間帯におけるIO数に応じて適切な実ボリュームを選択する。従って、本実施例では、全論理プールボリューム363の全論理ページ410について、アクセス状況の変化を24時間監視する必要がなく、記憶資源を有効に使用できる。
本実施例では、アクセス変動量の大きい論理プールボリュームを負荷変動の生じているボリュームであるとして抽出し、さらに、その論理プールボリュームに含まれている各論理ページへのアクセス状況に応じて適切な物理ページを割り当てる。従って、アプリケーションプログラムに負荷変動が生じた場合でも、その変動に応じて適切なページ階層管理を効率的に実現することができる。
本実施例では、IO数が連続的に閾値THvp,THpp以上となる領域(時間帯)に着目して、アクセス変動量という本発明に特有の指標を算出する。従って、一時的なアクセス状況の変化を無視して、継続的にアクセス状況が変化している場合のみ、ページ再配置を実行できる。なお、アクセスのピークが特に生じない場合は、一日間の平均値に基づいて、論理ページを対応付ける物理ページを切り替えればよい。
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。