(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KM,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC,VN,ZA
メモリは、複数の論理記憶領域を示す第1構成情報と、データがストレージ装置により移動する契機としてストレージ装置の状態を定義する第1条件とを格納する。CPUは、複数の論理記憶領域の中の第1論理記憶領域に格納され計算機により実行される第1オブジェクトが計算機により複数の論理記憶領域の中の他の論理記憶領域へ移動する契機として計算機の状態を定義する第2条件、第1オブジェクトと第1論理記憶領域とを関連付ける第2構成情報、複数の論理記憶領域の状態を示す第1状態情報、第1オブジェクトの状態を示す第2状態情報を取得し、データ移動が実行される状態であるか否かを判断し、データ移動が実行される状態である場合、第1構成情報及び第2構成情報に基づいて、状態の原因を特定し、原因に基づいてデータ移動を制御する。
前記CPUは、前記取得された第1状態情報に基づいて、前記取得された第1状態情報より後の第1状態情報を予測し、前記取得された第2状態情報に基づいて、前記取得された第2状態情報より後の第2状態情報を予測し、前記予測された第1状態情報が前記第1条件を満たすことと、前記予測された第2状態情報が前記第2条件を満たすこととの何れかが成立した場合、前記データ移動が実行される状態であると判断する、
請求項2に記載の管理計算機。
前記原因が前記計算機と前記ストレージ装置の間のアクセス経路のうち前記計算機でない場合、前記CPUは、前記データ移動の移動先として、前記複数の論理記憶領域の中から、前記原因を回避するアクセス経路を用いる論理記憶領域を探索する、
請求項3に記載の管理計算機。
前記探索により前記移動先が検出され、且つ前記第1条件の設定により前記データ移動が禁止されている場合、前記第1条件の設定により前記データ移動の禁止を解除する、
請求項7に記載の管理計算機。
前記原因が前記第1論理記憶領域に対応する記憶媒体の性能である場合、前記CPUは、前記複数の論理記憶領域の中の第2論理記憶領域に格納されている第2オブジェクトを前記複数の論理記憶領域の中の第3論理記憶領域へ移動させた場合の前記第2オブジェクトの第2状態情報を予測し、前記予測された前記第2オブジェクトの第2状態情報が前記第2条件を満たさない場合、前記第2論理記憶領域内のデータを前記第3論理記憶領域へ移動させ、前記第1論理記憶領域内のデータを前記第2論理記憶領域へ移動させ、
前記複数の記憶媒体のうち前記第1論理記憶領域に対応する第1記憶媒体の性能は、前記複数の記憶媒体のうち前記第2論理記憶領域に対応する第2記憶媒体の性能より低い、
請求項3に記載の管理計算機。
前記CPUは、前記第2条件を連続して取得することにより、前記第2条件の変更を監視し、前記第2条件の変更を検知した場合、前記検知された変更に基づいて前記第1条件を変更する、
請求項3に記載の管理計算機。
【発明を実施するための形態】
【0011】
なお、以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
【0012】
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
【0013】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御デバイス)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【0014】
また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
【0015】
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェースを入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
【0016】
以後、情報処理システムを管理し、本願発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである、また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
【0017】
以下、階層ストレージ管理を行うストレージ装置とVM移動の制御を行うホスト計算機とを有する計算機システムについて説明する。ストレージ装置は、VMによるアクセスの性能を向上させるために、ストレージ装置が管理するデータ移動ルールに基づいてデータ移動を行う。一方、ホスト計算機は、VMによるアクセスの性能の向上のために、ホスト計算機が管理するデータ移動ルールに基づいてVMのデータ移動を行う。即ち、この計算機システムにおいては、ストレージ装置による論理記憶領域間のデータ移動と、ホスト計算機による記憶領域間のデータ移動とが発生し得る。以下の説明では、これらを明示的に区別するために、ストレージ装置によるデータ移動の単位をページと呼ぶ。ページは一定の記憶容量を有する。また、ストレージ装置によるデータ移動をページ移動と呼び、ホスト計算機によるVMのデータ移動をVM移動と呼ぶ。また、ページ移動の条件を定義するデータ移動ルールをページ移動ルールと呼び、VM移動の条件を定義するデータ移動ルールをVM移動ルールと呼ぶ。即ち、ストレージ装置は、或るページがページ移動ルールに定義されている条件を満たす場合に、そのページ内のデータを別のページへ移動させる。また、ホスト計算機は、実行中の或るVMの状態がVM移動ルールに定義されている条件を満たす場合に、そのVMのデータを別のページへ移動させる。
【0018】
このような計算機システムにおいて課題が生じる2種類のケースを以下に示す。
【0019】
第1のケースは、ホスト計算機が行うVM移動によってアクセス性能を改善できないケースである。このケースにおいて、ホスト計算機は、VM移動の移動先が適切でないために、本来不要なVM移動を実行してしまう。例えば、VM移動の原因が、ストレージポートの高負荷によるレスポンス速度の低下である場合、第1のケースが発生する。この場合、ホスト計算機は、VM移動ルールだけに従ってVMを移動するため、VMの性能を改善するための移動先の記憶領域を特定することができない。これにより、VMが移動元の記憶領域と同一のストレージポートを利用する未使用の記憶領域へ移動することがあり、その結果、VMの性能は改善されない。
【0020】
第2のケースは、ストレージ装置によるページ移動が無駄なVM移動を引き起こすケースである。このケースにおいて、ストレージ装置のページ移動ルールは、ホスト計算機側のVM移動ルールを考慮していないために、ストレージ装置は、本来不要なVM移動を引き起こすようなデータ移動を実行してしまう。例えば、要求レスポンスタイムが短いデータに対するホスト計算機からのI/O(要求)の数が減少してきた場合、第2のケースが発生する。この場合、ストレージ装置は、ホスト計算機からのI/O数が減少してきたために、ストレージ装置のページ移動ルールに従ってI/O数が少ないデータを低階層(低速)のストレージ階層へ移動してしまう。これにより、ホスト計算機からのレスポンスタイムが低下し、このレスポンスタイムがホスト計算機側のVM移動ルールに抵触し、ホスト計算機は本来不要なVM移動を実行する。
【0021】
また、ページ移動やVM移動において、実データの移動中、ホスト計算機及びストレージ装置に負荷がかかるため、ホスト計算機へのアクセス性能は低下する。そのため、過度のデータ移動は好ましくない。
【0022】
このように、ストレージ装置とホスト計算機のような複数のデータ移動主体が互いを考慮せずにデータを移動しようとすることにより課題が発生するケースの改善が、本技術の目的の1つであり、適用対象は前述の2種類のケースに限定されない。
【0023】
(第1の実施形態)
以下、第1の実施形態について図面を用いて説明する。
【0024】
図1は、第1の実施形態における計算機システムの全体構成を示す。本実施形態の計算機システムは、ホスト計算機1000、接続装置500、ストレージ装置3000を有する。ホスト計算機1000と接続装置500とストレージ装置3000とは、データネットワーク1500を介して接続される。更にこの計算機システムは、ホスト管理計算機2000、管理計算機2500を有する。ホスト計算機1000とホスト管理計算機2000と管理計算機2500とストレージ装置3000とは、管理ネットワーク1550を介して接続される。
【0025】
データネットワーク1500は、例えばSAN(Storage Area Network)であるが、IP(Internet
Protocol)ネットワークであっても良いし、これら以外のデータ通信用ネットワークであっても良い。また、管理ネットワーク1550は、例えばIPネットワークであるが、SANであっても良いし、これら以外のデータ通信用ネットワークであっても良い。また、データネットワーク1500と管理ネットワーク1550が同一ネットワークであっても良い。また、ホスト計算機1000、ホスト管理計算機2000、管理計算機2500が同一計算機であっても良い。
【0026】
ホスト計算機1000は、CPU(Central Processing Unit)1010等の制御デバイス、Memory1100等の記憶デバイス、M−I/F(Management-Interface)1210、C−I/F(Communication-Interface)1200を有する。なお、ホスト計算機1000は、入出力デバイス(キーボード、表示デバイス等)を有しても良い。CPU1010はMemory1100に格納されたプログラムを実行する。以降、CPUと呼称するものはいずれも、それに接続されたMemoryに格納されているプログラムを実行するものである。M−I/F1210は、管理ネットワーク1550とのインタフェースであって、ストレージ装置3000、ホスト管理計算機2000、管理計算機2500の夫々との間でデータや制御命令の送受信を行う。C−I/F1200は、データネットワーク1500とのインタフェースであって、ストレージ装置3000や接続装置500の夫々との間でデータや制御命令の送受信を行う。
【0027】
ホスト管理計算機2000は、CPU2010、Memory2100、I/F2200を有する。なお、ホスト管理計算機2000は、入出力デバイス(キーボード、表示デバイス等)を有しても良い。I/F2200は、管理ネットワーク1550とのインタフェースであって、ストレージ装置3000、ホスト計算機1000、管理計算機2500の夫々との間でデータや制御命令の送受信を行う。Memory2100に格納されているプログラムの詳細は後述する。
【0028】
管理計算機2500は、CPU2510、Memory2600、I/F2500を有する。なお、管理計算機2500は、入出力デバイス(キーボード、表示デバイス等)を有しても良い。I/F2505は、管理ネットワーク1550とのインタフェースであって、ストレージ装置3000、ホスト計算機1000、ホスト管理計算機2000の夫々との間でデータや制御命令の送受信を行う。Memory2600に格納されているプログラムの詳細は後述する。
【0029】
接続装置500は、CPU510、Memory600、I/F700を有する。なお、接続装置500は、入出力デバイス(キーボード、表示デバイス等)を有しても良い。接続装置500は例えば、FC(Fibre Channel)スイッチ等のスイッチである。I/F700は、データネットワーク1500とのインタフェースであって、ストレージ装置3000及びホスト計算機1000の夫々との間でデータや制御命令の送受信を行う。Memory600に格納されているプログラムの詳細は後述する。
【0030】
ストレージ装置3000は、ディスクコントローラ3100とディスクデバイス3500とを有する。ディスクコントローラ3100は、CPU3110、Memory3300、M−I/F3001、ストレージポートであるH−I/F(Host-Interface)3101、D−I/F(Disk-Interface)3050を有する。M−I/F3001は、管理ネットワーク1550とのインタフェースであって、ホスト計算機1000、ホスト管理計算機2000、管理計算機2500の夫々との間でデータや制御命令の送受信を行う。H−I/F3101は、データネットワーク1500とのインタフェースであって、ホスト計算機1000や接続装置500の夫々との間で、データや制御命令の送受信を行う。D−I/F3050は、ディスクデバイス3500との間でデータや制御命令の送受信を行う。ディスクデバイス3500は、複数の物理記憶媒体3501を有する。
【0031】
なお、
図1の例は、ホスト計算機1000を2台、ストレージ装置3000を2台、ホスト管理計算機2000を1台、管理計算機2500を1台としたが、本発明はこの構成に限定されない。また、本実施形態では、ホスト管理計算機2000がホスト計算機1000を管理する構成としているが、本発明はこの構成に限定されない。ホスト管理計算機2000の処理をホスト計算機1000が実行してもよく、以降の説明においてホスト管理計算機2000をホスト計算機1000と読み替えてもよい。
【0032】
図2は、ホスト計算機1000の論理構成を示す。ホスト計算機1000は、VM1001を論理的に生成してVM1001を実行できるハイパーバイザ(Hypervisor:以下HVとも呼ぶ)1002を有する。データHV1002は一度に複数のVM1001を制御することができる。複数のVM1001の夫々は、あたかもスタンドアローンの物理計算機のようにアプリケーションを実行できる。
【0033】
図3は、ストレージ装置3000を用いて作成される論理ボリューム3510の構成を示す模式図である。ストレージ装置3000は、ディスクデバイス3500内の複数の物理記憶媒体3501を用いて論理ボリューム3510を作成する。論理ボリューム3510として例えば、通常論理ボリューム3510A、外部接続ボリューム3510B、Thin Provisioningボリューム3510C、Dynamic Thin Provisioningボリューム3510Dを用いることができる。ストレージ装置3000に、複数の論理ボリューム3510が作成されても良い。複数の論理ボリューム3510は、同一の種類であっても良いし、異なる種類であっても良い。
【0034】
プール1120は、一つ以上の物理リソース3521又は一つ以上の仮想リソース3522を有する。本実施形態では、複数の物理記憶媒体3501を用いて構築されるRAID(Redundant Array of Independent Disks)上の論理デバイスを、物理リソース3521と定義する。また、一つのストレージ装置3000において、そのストレージ装置3000に接続された別のストレージ装置3000である外部ストレージ装置(外部接続ストレージシステム)内に作成される論理デバイスを、仮想リソース3522と定義する。プール1120は、或る管理上の観点で、物理リソース3521又は仮想リソース3522をまとめて管理するための論理デバイスのグループである。管理上の観点には、例えばRAIDタイプがある。RAIDタイプの一例としては、大容量を提供するために、複数の記憶デバイスを1つにまとめ巨大な記憶領域として提供するRAID0や、記憶デバイスの冗長度を高めるために、記憶デバイス間でミラーリングを行うRAID1がある。なお、説明の都合上、
図3では、プール1120の中に物理リソース3521と仮想リソース3522が混在しているが、物理リソース3521のみを含むプール1120や、仮想リソース3522のみを含むプール1120であってもよい。複数の物理記憶媒体3501は例えば、SATA(Serial Advanced Technology Attachment)やSAS(serial
attached SCSI:small computer system interface)等のHDDや、SSD(Solid State Drive)等である。複数の物理リソース3521及び仮想リソース3522に、互いに性能の異なる複数種類のメディアが夫々割り当てられていても良い。また、ストレージ装置3000は、複数のプール1120を有していても良い。
【0035】
通常論理ボリューム3510Aは、物理記憶媒体3501を用いる物理リソース3521を用いて作成される論理的なボリュームである。
【0036】
外部接続ボリューム3510Bは、記憶領域の実体が外部ストレージ装置に存在し、仮想リソース3522を用いて作成される論理的なボリュームである。
【0037】
Thin Provisioningボリューム3510Cは、動的に容量を拡張可能である論理的なボリュームである。Thin Provisioningは、物理的な記憶領域の一部領域(以下、セグメントと呼ぶ)を論理ボリュームへ割り当て、動的に記憶領域を拡張することを可能にし、記憶領域を有効活用する技術である。物理リソース3521又は仮想リソース3522は、Thin Provisioningボリューム3510Cへ割り当てるためのセグメントを提供する。ホスト計算機1000からのI/Oを受けた時点で、セグメントがプール1120に含まれる物理リソース3521又は仮想リソース3522からThin Provisioningボリューム3510Cへ割り当てられることにより、動的にThin Provisioningボリューム3510Cの容量を拡張することができる。
【0038】
Dynamic Thin Provisioningボリューム3510Dは、Thin Provisioningボリューム3510Cと同様、動的に容量を拡張可能である論理的なボリュームである。更に、或るセグメントがDynamic Thin Provisioningボリューム3510Dへ割り当てられた後、Dynamic Thin Provisioningボリューム3510Dへのアクセス状況に応じて、そのセグメントは、応答性や信頼性の異なる別のセグメントへ動的に変更されることが可能である。なお、説明の都合上、
図3において、Thin Provisioningボリューム3510CとDynamic Thin Provisioningボリューム3510Dは、物理リソース3521と仮想リソース3522の両方からセグメントを割り当てられているが、いずれか一方のみからセグメントを割り当てられてもよい。
【0039】
図4は、ホスト管理計算機2000のMemory2100に格納される情報の構成を示すブロック図である。Memory2100には、VM構成管理プログラム2210、VM性能管理プログラム2220、及びVM移動制御プログラム2230が記憶される。
【0040】
VM構成管理プログラム2210は、ホスト計算機1000のVM1001の構成情報を管理するプログラムである。また、VM構成管理プログラム2210は、後述する管理計算機2500のVM情報取得プログラム2610と通信して、各種情報を送受信する。
【0041】
VM性能管理プログラム2220は、ホスト計算機1000のVM1001の性能を示す性能情報を管理するプログラムである。VM1001の性能情報は例えば、定期的に測定されるResponse Timeである。また、VM性能管理プログラム2220は、後述する管理計算機2500のVM情報取得プログラム2610と通信して、各種情報を送受信する。
【0042】
VM移動制御プログラム2230は、ホスト計算機1000のVM1001が移動するルールであるVM移動ルールを管理し、VM移動ルールに従ってVMを移動するプログラムである。また、VM移動制御プログラム2230は、ホスト計算機1000及び後述する管理計算機2500のVM情報取得プログラム2610と通信して、各種情報を送受信する。なお、VM移動制御プログラム2230は、VM移動ルールに従ってVMを移動すべきと判断した場合に、表示デバイスにその旨を出力し、入力デバイスよりユーザ操作を受け付けたことを契機として、実際にVM移動を実行することとしても良い。
【0043】
図5は、ストレージ装置3000のMemory3300に格納される情報の構成を示すブロック図である。Memory3300には、ストレージ構成管理プログラム3310、ストレージ性能管理プログラム3320、ページ移動制御プログラム3330、及びストレージ設定プログラム3340が記憶される。
【0044】
ストレージ構成管理プログラム3310は、ストレージ装置3000の構成情報を管理するプログラムである。また、ストレージ構成管理プログラム3310は、後述する管理計算機2500のストレージ情報取得プログラム2630と通信して、各種情報を送受信する。
【0045】
ストレージ性能管理プログラム3320は、ストレージ装置3000の性能情報を管理するプログラムである。ストレージ装置3000の性能情報は例えば、定期的に測定されるページ毎のIOPS(Input Output Per Second)である。また、ストレージ性能管理プログラム3320は、後述する管理計算機2500のストレージ情報取得プログラム2630と通信して、各種情報を送受信する。
【0046】
ページ移動制御プログラム3330は、ストレージ装置3000内のページを移動させるためのルールであるページ移動ルールを管理し、ページ移動ルールに従ってページを移動(マイグレーションとも呼ばれる)させるプログラムである。また、ページ移動制御プログラム3330は、管理計算機2500のストレージ情報取得プログラム2630及びデータ移動全体制御プログラム2670と通信して、各種情報を送受信する。このページ移動制御プログラム3330は、ページ移動ルールによりページ移動が必要であると判定した場合、そのページ移動を実行する前に、そのページ移動の前兆を、管理計算機2500のデータ移動全体制御プログラム2670へ通知する。
【0047】
ストレージ設定プログラム3340は、ストレージ装置3000の各種設定を実行するプログラムである。本実施形態において、ストレージ装置3000の各種設定は、論理ボリューム3510や物理リソース3521に対して、読み書きされるデータを一時的に格納するキャッシュ領域を確保するための設定や、論理ボリューム3510に対して、読み書き処理を実行するプロセッサを確保するための設定等、ホスト計算機1000へのアクセス性能を向上させるための設定を含む。また、ストレージ設定プログラム3340は、後述する管理計算機2500のデータ移動全体制御プログラム2670と通信して、各種情報を送受信する。
【0048】
図6は、接続装置500のMemory600に格納される情報の構成を示すブロック図である。Memory600には、接続装置構成管理プログラム710及び接続装置性能管理プログラム720が記憶される。
【0049】
接続装置構成管理プログラム710は、接続装置500の構成情報を管理するプログラムである。また、接続装置構成管理プログラム710は、後述する管理計算機2500の接続装置情報取得プログラム2650と通信して、各種情報を送受信する。
【0050】
接続装置性能管理プログラム720は、接続装置500の性能情報を管理するプログラムである。接続装置500の性能情報は例えば、データ転送量、CPU510の負荷、Memory600の使用量等であり、定期的に測定される。また、接続装置性能管理プログラム720は、後述する管理計算機2500の接続装置情報取得プログラム2650と通信して、各種情報を送受信する。
【0051】
図7は、管理計算機2500のMemory2600に格納される情報の構成を示すブロック図である。Memory2600には、VM情報取得プログラム2610と、ストレージ情報取得プログラム2630と、接続装置情報取得プログラム2650と、トレンド情報管理プログラム2660と、データ移動全体制御プログラム2670と、データ移動原因特定プログラム2680とを含むプログラムが記憶されている。
【0052】
更にMemory2600には、VM移動ルールテーブル2690と、VM性能情報テーブル2700と、ストレージポートカタログ性能情報テーブル2710と、ストレージポート性能測定値テーブル2720と、ストレージメディアカタログ性能テーブル2730と、接続装置カタログ性能テーブル2740と、接続装置性能測定値テーブル2750と、VMデータ構成情報テーブル2760と、ページ移動ルールテーブル2780と、ボリューム性能情報テーブル2790と、ボリューム物理論理記憶領域対応テーブル2800と、ボリュームリソース情報テーブル2900と、外部ストレージ構成情報テーブル2950とを含む情報テーブルが記憶されている。
【0053】
図8に示されているVM移動ルールテーブル2690は、ホスト管理計算機2000がホスト計算機1000のVM1001を移動させるためのルールであるVM移動ルールを管理するためのテーブルである。また、VM移動ルールテーブル2690は、VM移動ルールを示すルールID2691と、HV1002を示すHVID2692と、VM1001を示すVMID2693と、VM移動ルールを適用させて実際にVM移動を実施する時間間隔2694と、VM1001を移動する条件等を示すVM移動ルール2695とを有する。更にこのテーブルは、それに含まれた情報間の対応関係を規定している。VM移動ルール2695は例えば、VM1001のI/OのResponse timeが15msを上回った場合にVM1001を移動する、等のルールを定義する。ここでResponse timeは、VM1001へのI/O要求から応答までの時間であり、転送遅延を含むI/Oのレイテンシを示す。また本実施形態においてVM移動ルール2695は、指標としてVM1001のI/OのResponse timeを用いているが、これに限定されるものではなく、第4の実施形態で後述するように、指標として容量利用率を用いるルールやそれ以外のルールであってもよい。時間間隔2694の単位は例えば時間(h)である。ホスト管理計算機2000は、時間間隔2694に示された時間が経過する度に、性能測定値がVM移動ルールに定義された条件を満たすか否かの判定を行う。
【0054】
ホスト管理計算機2000は、ユーザからの入力に基づいてVM移動ルールを設定することができる。例えば、ホスト管理計算機2000は、GUI(Graphical User Interface)によりResponse timeや容量利用率の閾値を取得することができる。
【0055】
図9に示されているVM性能情報テーブル2700は、VM1001の性能情報を管理するためのテーブルである。また、VM性能情報テーブル2700は、対象のVM1001を動作させているHV1002を示すHVID2701と、対象のVM1001を示すVMID2702と、性能を測定した時刻である測定時刻2703と、性能測定値であるResponse Time2704とを有する。更にこのテーブルは、それに含まれた情報間の対応関係を規定している。本実施形態では、性能情報に用いる指標をResponse Time(ms)としているが、これはVM移動ルールテーブル2690のVM移動ルール2695に示されている指標に対応する。そのため、VM移動ルール2695の指標が変更された場合、変更後の性能情報が収集され、VM性能情報テーブル2700へ格納される。以降の説明における他の指標についても同様の処理が行われる。
【0056】
図10に示されているストレージポートカタログ性能情報テーブル2710は、ストレージ装置3000のストレージポートであるH−I/F3101のカタログ性能情報を管理するためのテーブルである。また、ストレージポートカタログ性能情報テーブル2710は、対象のストレージポートを有するストレージ装置3000のストレージID2711と、対象のストレージポートを示すポートID2712と、対象のストレージポートのReadデータ転送量(MB/s)の増加によりResponse Timeが特に長くなり始める場合のReadデータ転送量である高負荷判定基準2713と、対象のストレージポートのWriteデータ転送量(MB/s)の増加によりResponse Timeが特に長くなり始める場合のWriteデータ転送量である高負荷判定基準2714とを有する。更にこのテーブルは、それに含まれた情報間の対応関係を規定している。高負荷判定基準2713と高負荷判定基準2714には例えば、対象のストレージ装置のカタログやマニュアル等に示された値を用いることができる。
【0057】
図11に示されているストレージポート性能測定値テーブル2720は、ストレージ装置3000のストレージポートであるH−I/F3101の性能測定値を管理するためのテーブルである。また、ストレージポート性能測定値テーブル2720は、対象のストレージポートを有するストレージ装置3000を示すストレージID2721と、対象のストレージポートを示すポートID2722と、性能を測定した時刻である測定時刻2723と、対象のストレージポートのReadデータ転送量(MB/s)の性能測定値であるReadデータ転送量2724と、対象のストレージポートのWriteデータ転送量(MB/s)の性能測定値であるWriteデータ転送量2725とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0058】
図12に示されているストレージメディアカタログ性能テーブル2730は、ストレージ装置3000の論理ボリューム3510を構成するリソースのメディアのカタログ性能情報を管理するためのテーブルである。論理ボリューム3510を構成するリソースは、物理リソース3521又は仮想リソース3522である。また、ストレージメディアカタログ性能テーブル2730は、対象のリソースを有するストレージ装置3000を示すストレージID2731と、対象のリソースのリソース種別2732と、対象のリソースのRead速度(MB/s)であるRead rate2733と、対象のリソースのWrite速度(MB/s)であるWrite rate2734とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0059】
図13に示されている接続装置カタログ性能テーブル2740は、接続装置500の接続装置ポートであるI/F700のカタログ性能情報を管理するテーブルである。また、接続装置カタログ性能テーブル2740は、対象の接続装置ポートを有する接続装置500を示す接続装置ID2741と、対象の接続ポートを示すポートID2742と、対象の接続装置ポートにおいてResponse Timeが特に長くなり始めるReadデータ転送量(MB/s)である高負荷判定基準2743と、対象の接続装置ポートにおいてResponse Timeが特に長くなり始めるWriteデータ転送量(MB/s)である高負荷判定基準2744とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。高負荷判定基準2743と高負荷判定基準2744には例えば、対象の接続装置ポートのカタログやマニュアル等に示された値を用いることができる。
【0060】
図14に示されている接続装置性能測定値テーブル2750は、接続装置500の接続装置ポートであるI/F700の性能測定値を管理するテーブルである。また、接続装置性能測定値テーブル2750は、対象の接続装置ポートを有する接続装置500を示す接続装置ID2751と、対象の接続装置ポートを示すポートID2752と、性能を測定した時刻である測定時刻2753と、対象の接続装置ポートのReadデータ転送量(MB/s)の性能測定値であるReadデータ転送量2754と、対象の接続装置ポートのWriteデータ転送量(MB/s)の性能測定値であるWriteデータ転送量2755とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0061】
図15は、VMデータ構成情報テーブル2760内の第1VMデータ構成情報2760Aを示し、
図16は、VMデータ構成情報テーブル2760内の第2VMデータ構成情報2760Bを示す。VMデータ構成情報テーブル2760は、VM1001と、そのVM1001の実データが格納されている論理ボリューム3510との関連付けを管理するテーブルである。VMデータ構成情報テーブル2760のうち、第1VMデータ構成情報2760Aは、対象のVM1001を保持するHV1002を示すHVID2761と、対象のVM1001を示すVMID2762と、対象のHV1002とストレージ装置3000の間の通信経路である対象の接続装置500を示す接続装置ID2763と、対象の接続装置500内でホスト計算機1000側のポートを示す接続装置イニシエータポートID2764と、対象の接続装置500内でストレージ装置3000側のポートを示す接続装置ターゲットポートID2765とを有する。また、VMデータ構成情報テーブル2760のうち、第2VMデータ構成情報2760Bは、対象のVM1001のデータを格納する対象のストレージ装置3000を示すストレージID2767と、対象のストレージ装置3000のストレージポートを示すストレージポートID2768と、対象の論理ボリューム3510を示す論理ボリュームID2769と、対象の論理ボリューム3510におけるLBA(Logical Block Addressing)の範囲を示すLBA情報2770とを有する。更にこのVMデータ構成情報テーブル2760は、第1VMデータ構成情報2760A及び第2VMデータ構成情報2760Bに含まれる情報間の対応関係を規定している。ここで、VMデータ構成情報テーブル2760内でVMID2762がnullであるエントリは、HV1002を有するホスト計算機1000に論理ボリューム3510が割り当てられているが、その論理ボリューム3510がVM1001に利用されていない状態を示している。また、LBA2770がnullであるエントリは、ホスト計算機1000に論理ボリューム3510が割り当てられているが、その論理ボリューム3510にまだページが割り当てられていない状態を示している。
【0062】
図17に示されているページ移動ルールテーブル2780は、ストレージ装置3000のページ移動ルールを管理するテーブルである。また、ページ移動ルールテーブル2780は、対象のページ移動ルールを示すルールID2781と、ページ移動ルールテーブル2780に定義された幾つかのページ移動ルールにおける対象のページ移動ルールの優先度2782と、対象のページ移動ルールを適用させて実際にページ移動を実施する時間間隔2783と、対象のページの移動の条件等を定義するページ移動ルール2784とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。ページ移動ルール2784は例えば、対象のページへのIOPSが700を下回ったらリソース種別がSATAのページにデータを移動するといったように、IOPSが多いデータほど高速メディアに配置することを示す第1ページ移動ルールを定義する。また、ページ移動ルール2784は、第1ページ移動ルールの代わりに、ページへのIOPSによらず任意のVM1001のデータをSSD等の特定のリソース種別に配置することを示す第2ページ移動ルール等を定義しても良い。第1のページ移動ルールと第2ページ移動ルールを同時に適用した場合には、第1ページ移動ルールを適用しながら、IOPSが低いが要求されるResponse Timeが短い(高速である)データに、SSD等、ハードディスクより高速なメディアを割り当てることができる。時間間隔2783の単位は例えば時間(h)である。管理計算機2500は、時間間隔2783に示された時間が経過する度に、測定結果がページ移動ルールに定義された条件を満たすか否かの判定を行う。
【0063】
ページ移動ルール2784の中には、LBA固定ルール2785があっても良い。LBA固定ルール2785は第2ページ移動ルールの一例である。このLBA固定ルール2785は、対象のVM1001のデータが格納されているページを移動することを禁止し、このページを現在のリソースのLBAに固定するためのページ移動ルールである。このLBA固定ルール2785の例は、VMID=3ならばそのVM1001をSSDへ配置することを示す。
【0064】
図18に示されているボリューム性能情報テーブル2790は、論理ボリューム3510へのアクセス頻度を管理するテーブルである。また、ボリューム性能情報テーブル2790は、対象の論理ボリューム3510を有するストレージ装置3000を示すストレージID2791と、対象の論理ボリューム3510を示す論理ボリュームID2792と、対象の論理ボリューム3510内の対象のページを示すページID2793と、対象のページへのIOPSの測定結果を示すIOPS2794と、対象のページに適用されているページ移動ルールを示すルールID2795とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0065】
図19に示されているボリューム物理論理記憶領域対応テーブル2800は、論理ボリューム3510内のLBAと物理リソース3521又は仮想リソース3522内のLBAとの対応関係を管理するテーブルである。また、ボリューム物理論理記憶領域対応テーブル2800は、対象の論理ボリューム3510を示す論理ボリュームID2801と、対象の論理ボリューム3510の対象のページを示すページID2802と、対象のページのLBAの範囲を示すLBA情報2803と、対象のページに用いられているリソースが属するプール1120を示すプールID2804と、対象のページに用いられているリソースを示すリソースID2805と、対象のリソースにおいて対象のページに割り当てられているLBAの範囲を示すLBA情報2806とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0066】
図20は、ボリューム物理論理記憶領域対応テーブル2800に示されている論理ボリューム3510とプール1120の状態を示す模式図である。この例において、プールID2804が「1」で示されるプール1120であるPA内に、リソースID2805が「0」で示される物理リソース3521であるPRAと、リソースID2805が「1」で示される物理リソース3521であるPRBと、リソースID2805が「2」で示される物理リソース3521であるPRCとが作成されている。また、論理ボリュームID2801が「0」で示される論理ボリューム3510であるLVAが作成されている。PRAの1000番地から1999番地までは、LVAの0番地から999番地までに対応している。PRBの0番地から999番地までは、LVAの1000番地から1999番地までに対応している。PRCの0番地から2999番地までが、LVAの2000番地から3999番地までに対応している。また、LVAの4000番地から199999番地までには、何れの物理リソース3521も割り当てられていない。なお、論理ボリューム3510にDynamic Thin Provisioningボリューム3510Dを用いる場合、論理ボリューム3510とプール1120の対応関係が、動的に変更される。
【0067】
図21に示されているボリュームリソース情報テーブル2900は、物理リソース3521及び仮想リソース3522の情報を管理するテーブルである。また、ボリュームリソース情報テーブル2900は、対象のストレージ装置3000を示すストレージID2901と、対象のリソースが属するプール1120を示すプールID2902と、対象のリソースを示すリソースID2903と、SATAやSSDやFC(Fibre Channel)といった対象のリソースのメディア種別2904と、対象のリソースが物理リソース3521か仮想リソース3522かを示すリソース構成2905とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。ボリュームリソース情報テーブル2900におけるリソース構成2905は、対象のストレージ装置3000内部のリソースである物理リソース3521を「内部」と示し、対象のストレージ装置3000に接続された外部ストレージ装置内のリソースである仮想リソース3522を「外部」と示す。
【0068】
図22に示されている外部ストレージ構成情報テーブル2950は、仮想リソース3522の構成を管理するテーブルである。また、外部ストレージ構成情報テーブル2950は、対象のストレージ装置3000を示すストレージID2951と、対象の仮想リソース3522を示すリソースID2952と、対象のストレージ装置3000において外部接続に利用しているストレージポートであるH−I/F3101を示すポートID2953と、対象の外部ストレージ装置を示す外部ストレージID2954と、対象の仮想リソース3522に対応する対象の外部ストレージ装置内の物理リソース3521を示す外部ストレージリソースID2955と、外部ストレージ装置において外部接続に利用しているポートであるH−I/F3101を示す外部ストレージポートID2956とを有する。更にこのテーブルは、それに含まれる情報間の対応関係を規定している。
【0069】
次に、管理計算機2500の動作の詳細について説明する。
【0070】
まずVM情報取得プログラム2610の処理について説明する。VM情報取得プログラム2610は、ホスト管理計算機2000のVM構成管理プログラム2210からVM1001についての構成情報を取得し、VMデータ構成情報テーブル2760へ格納する処理を行う。具体的に言えば、VM情報取得プログラム2610は、各ストレージ装置3000の構成情報と各接続装置500の構成情報とを対応付けてVMデータ構成情報テーブル2760へ格納する。また、VM情報取得プログラム2610は、ホスト管理計算機2000のVM性能管理プログラム2220からVM1001の性能情報を取得し、VM性能情報テーブル2700へ格納する処理を行う。また、VM情報取得プログラム2610は、ホスト管理計算機2000のVM移動制御プログラム2230からVM1001についてのVM移動ルールを取得し、VM移動ルールテーブル2690へ格納する処理を行う。なお、VM情報取得プログラム2610は、これらの処理を定期的に実行してもよいし、ユーザ操作に応じて実行してもよい。
【0071】
ストレージ情報取得プログラム2630は、ストレージ装置3000のストレージ構成管理プログラム3310からストレージ装置3000についての構成情報を取得し、取得された構成情報に基づいて、VMデータ構成情報テーブル2760とボリューム物理論理記憶領域対応テーブル2800とボリュームリソース情報テーブル2900と外部ストレージ構成情報テーブル2950とを変更する処理を行う。具体的に言えば、ストレージ情報取得プログラム2630は、各接続装置500の構成情報と各VM1001の構成情報とを対応付けてVMデータ構成情報テーブル2760に格納する。また、ストレージ情報取得プログラム2630は、ストレージ性能管理プログラム3320から性能情報を取得し、取得された性能情報に基づいて、ストレージポートカタログ性能情報テーブル2710とストレージポート性能測定値テーブル2720とストレージメディアカタログ性能テーブル2730とボリューム性能情報テーブル2790とを変更する処理を行う。また、ストレージ情報取得プログラム2630は、ページ移動制御プログラム3330からページ移動ルールを取得し、取得されたページ移動ルールをページ移動ルールテーブル2780へ格納する処理を行う。なお、ストレージ情報取得プログラム2630は、これらの処理を定期的に実行してもよいし、ユーザ操作に応じて実行してもよい。
【0072】
接続装置情報取得プログラム2650は、接続装置500の接続装置構成管理プログラム710から接続装置500についての構成情報を取得し、取得された構成情報をVMデータ構成情報テーブル2760へ格納する処理を行う。具体的に言えば、接続装置情報取得プログラム2650は、各ストレージ装置3000の構成情報と各VM1001の構成情報とを対応付けてVMデータ構成情報テーブル2760に格納する。また、接続装置情報取得プログラム2650は、接続装置性能管理プログラム720から性能情報を取得し、取得された性能情報に基づいて、接続装置カタログ性能テーブル2740と接続装置性能測定値テーブル2750とを変更する処理を行う。なお、接続装置情報取得プログラム2650は、これらの処理を定期的に実行してもよいし、ユーザ操作に応じて実行してもよい。
【0073】
次に、トレンド情報管理プログラム2660の処理について説明する。
【0074】
トレンド情報管理プログラム2660は、以下の処理を定期的に実行してもよいし、ユーザ操作に応じて実行してもよい。トレンド情報管理プログラム2660は、ストレージ装置3000と接続装置500とVM1001との性能情報を取得し、取得した性能情報に基づいて現在から所定の動作期間後の性能情報の予測値である予測性能情報を算出し、算出された予測性能情報に基づいてVM移動又はページ移動の前兆を検出した場合に、その前兆をデータ移動全体制御プログラム2670へ通知する処理を行う。
【0075】
図23は、トレンド情報管理プログラム2660の処理を示す。まずトレンド情報管理プログラム2660は、VM性能情報テーブル2700とストレージポート性能測定値テーブル2720と接続装置性能測定値テーブル2750とにおける各性能情報を監視し(S4500)、前回の監視時に比べて性能情報が更新されたか否かを判定する(S4501)。
【0076】
S4501の結果がNoである場合、トレンド情報管理プログラム2660は、処理をS4500へ戻す。ここで、トレンド情報管理プログラム2660は、所定の待機時間だけ待機してから、次のS4500を行ってもよい。
【0077】
またS4501の結果がYesである場合、トレンド情報管理プログラム2660は、所定の動作期間後の性能情報を算出して予測性能情報とする(S4502)。トレンド情報管理プログラム2660は、予測性能情報の算出方法に、最小二乗法を用いてもよいし、それ以外の方法であってもよい。最小二乗法を用いる場合、例えば、Response Timeの測定値の時間変化からResponse Timeの時間変化を示す直線又は曲線を算出する。また、トレンド情報管理プログラム2660は、予測性能情報の代わりに、性能情報の測定値の傾向を算出しても良い。この場合の傾向は例えば、Response Timeの時間変化を示す直線の傾きである。また、動作期間は、性能情報が次回更新される時間が望ましい。また、動作期間は、ユーザに指定されてもよいし、Memory2600内で予め定められていてもよい。また、予測性能情報は、性能情報の測定時刻から動作期間後の性能情報を示しても良いし、算出時から動作期間後の性能情報を示しても良い。
【0078】
次にトレンド情報管理プログラム2660は、VM移動ルールテーブル2690及びページ移動ルールテーブル2780を参照し、算出された予測性能情報がデータ移動ルールに抵触するか否かを判定する(S4503)。即ち、トレンド情報管理プログラム2660は、予測性能情報がデータ移動ルールに定義された条件を満たすか否かを判定する。ここで、データ移動ルールによりデータ移動が発生する場合として、VM移動ルールによるVM移動が発生する場合と、ページ移動ルールによるページ移動が発生する場合とがある。
【0079】
S4503の結果がNoである場合、トレンド情報管理プログラム2660は、処理をS4500へ戻す。ここで、トレンド情報管理プログラム2660は、所定の待機時間だけ待機してから、次のS4500を行ってもよい。
【0080】
S4503の結果がYesである場合、トレンド情報管理プログラム2660は、データ移動の前兆をデータ移動全体制御プログラム2670へ通知し(S4504)、このフローを終了する。ここでデータ移動の前兆の通知は、動作期間後にデータ移動が発生すると判定されたデータ(VM1001又はページ)の構成情報と、性能情報と、予測性能情報が抵触するデータ移動ルール(VM移動ルールテーブル2690又はページ移動ルールテーブル2780内のエントリ)のIDとを含む。
【0081】
以上に述べたように、トレンド情報管理プログラム2660は、性能情報の測定値の傾向である性能トレンドを算出することができる。これにより、トレンド情報管理プログラム2660は、将来の性能情報を予測することができ、データ移動の前兆を検知することができる。なお、VM移動制御プログラムによるVMのデータ移動が、ユーザ操作の受け付けを契機として行われる構成である場合は、処理が一部異なる。この場合、トレンド情報管理プログラム2660は、予測性能情報がVM移動ルール2695に定義された条件を満たさないと判断した場合に、S4504でデータ移動の前兆を通知する代わりに、予測性能情報がVM移動ルール2695を満たさないため性能の改善が必要となることを、データ移動全体制御プログラム2670に通知する。以下の説明において、前兆を検知(通知、受信)する処理は、上記の通知に置き換えることができる。また、データ移動原因特定プログラム2680が特定する移動原因についての説明は、性能低下原因と読み換えることができる。
【0082】
次に、データ移動原因特定プログラム2680について説明する。データ移動原因特定プログラム2680は、データ移動全体制御プログラム2670からの移動原因特定要求に基づいて、データ移動へ向かう性能トレンドに陥った原因となる箇所を特定し、移動原因とする。ここで移動原因特定要求は、対象のデータの構成情報や対象のデータ移動ルールのID等を含む。性能トレンドは例えば、性能情報の時間変化の傾きにより表される。次にデータ移動原因特定プログラム2680は、特定された移動原因をデータ移動全体制御プログラム2670へ通知する。移動原因は例えば、ホスト計算機1000とストレージ装置3000の間のアクセス経路上のハードウェア、ページ移動ルールを満たすストレージ装置3000の性能情報、等である。
【0083】
移動原因を特定する方法は、特許文献2、3に示されたように、VMデータ構成情報テーブル2760や外部ストレージ構成情報テーブル2950等のネットワークのトポロジー情報と、性能劣化アラートのようなイベント情報とに基づいて、移動原因を特定する方法(RCA:Root cause analysis)であっても良いし、前述のトポロジー情報と予め設定された原因特定のルールとに基づいて、移動原因を絞り込む方法であっても良い。なお、移動原因の特定方法は、これら以外の方法でもよく、本発明は移動原因の特定方法に限定されない。またデータ移動原因特定プログラム2680は、これらの処理をデータ移動全体制御プログラム2670の指示に基づいて実行してもよいし、ユーザ操作に応じて実行してもよい。
【0084】
このデータ移動原因特定プログラム2680によれば、データ移動の前兆を検知した場合に、そのデータ移動の原因を特定することができる。
【0085】
次に、データ移動全体制御プログラム2670の処理について説明する。データ移動全体制御プログラム2670は、ページ移動制御プログラム3330又はトレンド情報管理プログラム2660からデータ移動の前兆を受信した場合、データ移動の制御を行う。以下、データ移動全体制御プログラム2670の処理を、トレンド情報管理プログラム2660から通知を受けた場合の処理を含む処理Aと、ページ移動制御プログラム3330から通知を受けた場合の処理を含む処理Bとに分けて説明する。
【0086】
図24は、データ移動全体制御プログラム2670の処理Aを示す。まずデータ移動全体制御プログラム2670はページ移動制御プログラム3330から、ページ移動の前兆を示す通知を受けたか否かを判定する(S4005)。
【0087】
S4005の結果がYesである場合、データ移動全体制御プログラム2670は、処理Bを行う(S4010)。処理Bの詳細については後述する。S4005の結果がNoである場合、データ移動全体制御プログラム2670は、トレンド情報管理プログラム2660からデータ移動の前兆を示す通知を受けたか否かを判定する(S4015)。
【0088】
S4015の結果がNoである場合、データ移動全体制御プログラム2670は、処理をS4005へ移行させ、再びトレンド情報管理プログラム2660からの通知を待つ。S4015の結果がYesである場合、データ移動全体制御プログラム2670は、移動原因の特定を要求するための移動原因特定要求をデータ移動原因特定プログラム2680へ発行することにより、データ移動原因特定プログラム2680により特定された移動原因を受信する(S4020)。ここで移動原因特定要求は、データ移動の前兆の通知に含まれているデータ移動ルールのIDとデータ移動の対象のVM1001のVMIDとを含む。
【0089】
次にデータ移動全体制御プログラム2670は、受信された移動原因が接続装置500又はストレージ装置3000であるか否かを判定する(S4025)。S4025の結果がNoである場合、データ移動全体制御プログラム2670は、ホスト管理計算機2000に対して移動原因の判定結果を通知する(S4030)。移動原因の判定結果は例えば、接続装置500及びストレージ装置3000でないことを示す。次にデータ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760を参照することにより、ストレージ装置3000のページ移動制御プログラム3330へ対象のVM1001のLBA固定命令を発行し(S4040)、このフローを終了する。LBA固定命令は、ページ移動ルールとしてLBA固定ルールをストレージ装置3000のページ移動制御プログラム3330に設定させる。LBA固定ルールは例えば、前述のページ移動ルールテーブル2780内のLBA固定ルール2785に示されているように、対象のVM1001のデータが格納されているページを移動することを禁止し、このページを現在のリソースのLBAに固定するルールである。
【0090】
S4030の結果、ホスト計算機1000又はホスト管理計算機2000は、データ移動全体制御プログラム2670からの通知に応じた処理を行う。これにより、ホスト計算機1000又はホスト管理計算機2000は、VM移動ルールテーブル2690の時間間隔2694に示されている時間が経過した時点であっても、管理計算機2500が管理しているストレージ装置3000の論理ボリューム3510間において、対象のVM1001のVM移動を行わない。
【0091】
S4025の結果がYesである場合、データ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760とページ移動ルールテーブル2780とボリューム性能情報テーブル2790とボリューム物理論理記憶領域対応テーブル2800とボリュームリソース情報テーブル2900と外部ストレージ構成情報テーブル2950とを参照することにより、受信された移動原因がページ移動ルールであるか否かを判定する(S4035)。
【0092】
S4035の結果がYesである場合、データ移動全体制御プログラム2670は、処理を前述のS4040へ移行させた後、このフローを終了する。S4035の結果がNoである場合、データ移動全体制御プログラム2670は、受信された移動原因が設定変更により解消可能か否かを判定する(S4045)。設定変更により解消可能である移動原因は例えば、ストレージ装置3000のCPU3110の高負荷である。この場合、対象のVM1001が保存されている論理ボリューム3510に割り当てられているCPU3110を、より低負荷の別のCPU3110へ設定変更することで性能が改善される。また、例えば移動原因が、ストレージ装置3000のMemory3300のキャッシュヒット率であった場合は、VMデータが保存されている論理ボリュームに割り当てられているMemory3300の量を追加するように設定変更することで性能が改善される。
【0093】
S4045の結果がYesである場合、データ移動全体制御プログラム2670は、ストレージ装置3000のストレージ設定プログラム3340に対し、性能を改善するための設定変更命令を発行し(S4050)、このフローを終了する。
【0094】
S4045の結果がNoである場合、データ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760とボリューム物理論理記憶領域対応テーブル2800と外部ストレージ構成情報テーブル2950とを参照し、性能が改善される論理ボリューム3510を探索して移動先記憶領域とする(S4055)。ここでデータ移動全体制御プログラム2670は例えば、移動原因として特定された箇所を用いない論理ボリューム3510、或いはVM1001からのアクセス経路に移動原因として特定された箇所を含まない論理ボリューム3510を、移動先記憶領域として検出する。この場合の移動原因は、ストレージ装置3000で性能のボトルネックとなる箇所である。ボトルネックとなる箇所は、例えば負荷が高い(busy状態である)箇所である。次にデータ移動全体制御プログラム2670は、その探索の結果、移動先記憶領域があるか否かを判定する(S4060)。
【0095】
S4060の結果がNoである場合、データ移動全体制御プログラム2670は、移動先記憶領域がなかった旨を、ホスト管理計算機2000へ通知し(S4065)、処理を前述のS4040へ移行させた後、このフローを終了する。
【0096】
S4065の結果、ホスト計算機1000又はホスト管理計算機2000は、データ移動全体制御プログラム2670からの通知に応じた処理を行う。これにより、ホスト計算機1000又はホスト管理計算機2000は、VM移動ルールテーブル2690の時間間隔2694に示されている時間が経過した時点であっても、管理計算機2500が管理しているストレージ装置3000の論理ボリューム3510間において、対象のVM1001のVM移動を行わない。
【0097】
S4060の結果がYesである場合、データ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760とページ移動ルールテーブル2780とボリューム性能情報テーブル2790と参照することにより、対象のVM1001にLBA固定ルールが適用されているか否かを判定する(S4070)。
【0098】
S4070の結果がNoである場合、データ移動全体制御プログラム2670は、性能が改善される移動先記憶領域を示すIDを、ホスト管理計算機2000へ通知し(S4085)、このフローを終了する。ここで、移動先記憶領域を示すIDは、その論理ボリューム3510のIDでもよいし、HV1002が管理のためにその論理ボリューム3510から作成したファイルシステム(データストアとも呼ばれる)の識別子であってもよいし、それ以外であってもよい。
【0099】
S4085の結果、ホスト計算機1000又はホスト管理計算機2000は、データ移動全体制御プログラム2670からの通知に応じた処理を行う。これにより、ホスト計算機1000又はホスト管理計算機2000は、VM移動ルールテーブル2690の時間間隔2694に示されている時間が経過した時点で、通知された移動先の記憶領域へVM1001を移動させる。
【0100】
S4070の結果がYesである場合、データ移動全体制御プログラム2670は、ストレージ装置3000のページ移動制御プログラム3330に対し、LBA固定解除命令を発行する(S4080)。このLBA固定解除命令は、対象のVM1001に適用されているLBA固定ルールを解除する命令である。次にデータ移動全体制御プログラム2670は、処理を前述のS4085へ移行させた後、このフローを終了する。
【0101】
なお、管理計算機2500がホスト管理計算機2000へ移動先記憶領域を通知する契機は、S4015のようにトレンド情報管理プログラム2660からの通知に限らない。例えば、ホスト管理計算機2000がVM移動前に、管理計算機2500に移動先記憶領域を問い合わせても良い。この場合、ホスト管理計算機2000は、問い合わせのためのプログラムを有していても良い。また、例えば、データ移動全体制御プログラム2670がユーザからの指示に基づいて、移動先記憶領域を決定しても良い。この場合、管理計算機2500は、移動先記憶領域の決定のためのボタン等のユーザインターフェイスを有していても良い。
【0102】
この処理Aによれば、管理計算機2500が、VM移動前に移動先記憶領域をホスト管理計算機2000へ通知することにより、ホスト管理計算機2000は、VM移動後の性能を向上させることができる。
【0103】
また、この処理Aによれば、管理計算機2500は、データ移動の前兆が検知された場合、且つそのデータ移動により性能が改善しないと判定された場合、そのデータ移動を防ぐことができる。
【0104】
次に、S4005の結果がYesである場合のデータ移動全体制御プログラム2670の処理B(S4010)の詳細について説明する。
【0105】
処理Bにおいて、ページ移動の前兆を通知されたデータ移動全体制御プログラム2670は、ページ移動により不要なVM移動を発生させないための制御を行う。
【0106】
図25は、データ移動全体制御プログラム2670の処理Bを示す。データ移動全体制御プログラム2670は、トレンド情報管理プログラム2660から通知された対象のページの構成情報と、現在から動作期間後のページの性能情報と、動作期間後に抵触すると判断されたページ移動ルールのIDとから、対象のページ移動後の性能情報を算出して移動後予測性能情報として算出する(S4100)。ここでデータ移動全体制御プログラム2670は、ストレージメディアカタログ性能テーブル2730とページ移動ルールテーブル2780とを参照することにより、移動後予測性能情報を算出する。次にデータ移動全体制御プログラム2670は、VM移動ルールテーブル2690と移動後予測性能情報に基づいて、対象のページ移動の結果が、対象のページを利用しているVM1001のVM移動ルールに抵触するか否かを判定する(S4105)。即ち、データ移動全体制御プログラム2670は、対象のページ移動の結果、VM移動が発生するか否かを判定する。
【0107】
S4105の結果がNoである場合、データ移動全体制御プログラム2670は、このフローを終了する。S4105の結果がYesである場合、データ移動全体制御プログラム2670は、処理を前述のS4040へ移行させた後、このフローを終了する。なお、本実施形態では、ストレージ装置3000のページ移動制御プログラム3330がページ移動の前兆をデータ移動全体制御プログラムへ通知するとした。ここで、管理計算機2500のトレンド情報管理プログラム2660がページ移動ルールに関する性能トレンドを管理し、ページ移動の前兆を検出した場合に、その前兆をデータ移動全体制御プログラム2670へ通知してもよい。また、本実施形態は、ページ移動の前兆の通知方法に限定されない。
【0108】
以上がデータ移動全体制御プログラム2670の処理である。
【0109】
この処理Bによれば、ページ移動の前兆を検知し、そのページ移動によって生じるVM移動を予測することにより、そのVM移動を防ぐことができる。
【0110】
ページ移動がVMに悪影響を及ぼすことを防ぐために、本実施形態の計算機システムから階層ストレージ管理の機能を省いた計算機システムが構築される可能性がある。このような階層ストレージ管理のない計算機システムと比較すると、本実施形態の計算機システムは、性能の異なる複数の記憶媒体を用いて階層ストレージ管理を行うことにより、コストを抑えつつ計算機システムの性能を向上させることができる。
【0111】
(第2の実施形態)
本発明の第2の実施形態について説明する。以下の説明においては、第1の実施形態と異なる構成について特に詳細に説明し、第1の実施形態と同様の構成については詳細な説明を省略する。第1の実施形態では、管理計算機2500のVM情報取得プログラム2610が、ホスト管理計算機2000からVM1001に関する構成情報と性能情報とVM移動ルールとを取得し、各種テーブルに保存する、と例示した。一方、本実施形態において、VM情報取得プログラム2610は、ホスト管理計算機2000からVM1001に関する構成情報と性能情報とVM移動ルールとを取得し、更にそのVM移動ルールの変更を監視し、そのVM移動ルールの変更に基づいてページ移動ルールを変更する処理を行う。
【0112】
図26は、第2実施形態におけるVM情報取得プログラム2610の処理を示す。VM情報取得プログラム2610は、この処理を定期的に行っても良いし、全てのVM1001について行っても良い。
【0113】
まずVM情報取得プログラム2610は、ホスト管理計算機2000のVM構成管理プログラム2210に対し、対象のVM1001の構成情報を要求するためのVM構成情報取得命令を発行する(S4200)。次にVM情報取得プログラム2610は、VM構成情報取得命令により取得された構成情報を、VMデータ構成情報テーブル2760へ格納する(S4205)。次にVM情報取得プログラム2610は、ホスト管理計算機2000のVM性能管理プログラム2220に対し、対象のVM1001の性能情報を要求するためのVM性能情報取得命令を発行する(S4210)。次にVM情報取得プログラム2610は、VM性能情報取得命令により取得された性能情報を、VM性能情報テーブル2700へ格納する(S4215)。次にVM情報取得プログラム2610は、ホスト管理計算機2000のVM移動制御プログラム2230に対し、対象のVM1001のVM移動ルールを要求するためのVM移動ルール取得命令を発行する(S4220)。次にVM情報取得プログラム2610は、VM移動ルールテーブル2690の情報と、VM移動ルール取得命令により取得されたVM移動ルールとを比較することにより、VM移動ルールが変更されているか否かを判定する(S4225)。
【0114】
S4225の結果がNoである場合、VM情報取得プログラム2610は、取得されたVM移動ルールをVM移動ルールテーブル2690へ格納し(S4240)、このフローを終了する。一方、S4225の結果がYesである場合、VM情報取得プログラム2610は、ページ移動ルールテーブル2780を参照し、変更されたVM移動ルールと関連するページ移動ルールがあるか否かを判定する(S4230)。
【0115】
S4230の結果がNoである場合、VM情報取得プログラム2610は、処理を前述のS4240へ移行させた後、このフローを終了する。一方、S4230の結果がYesである場合、VM情報取得プログラム2610は、ストレージ装置3000のページ移動制御プログラム3330に対し、対象のVM1001に適用されているLBA固定ルールを解除するためのLBA固定解除命令を発行する(S4080)。なお、S4080の代わりに例えば、VM情報取得プログラム2610は、VM移動ルールの変更内容に応じてページを移動させるための命令を発行してもよい。この命令は例えば、VM移動ルールにおいて対象のVM1001のResponse Timeが20msから10msへ変更された場合に、対象のVM1001をSATAからSSDのリソースへ移動させる。
【0116】
S4080の後、VM情報取得プログラム2610は、処理をS4240へ移行させ、このフローを終了する。
【0117】
以上がVM情報取得プログラム2610の処理である。
【0118】
(第3の実施形態)
本発明の第3の実施形態について説明する。以下では、第1の実施形態と異なる構成について特に詳細に説明し、第1の実施形態と同様の構成については詳細な説明を省略する。第1の実施形態のS4055では、管理計算機2500のデータ移動全体制御プログラム2670が、ストレージ装置3000側に性能劣化の原因がある場合に性能が改善される移動先を探索する、と例示した。一方、本実施形態において、データ移動全体制御プログラム2670は、トレンド情報管理プログラム2660からデータ移動の前兆を受信し、データ移動の原因に基づいて、データ移動を制御する。また、本実施形態において、複数の論理ボリューム3510は夫々、互いに性能の異なる複数種類のメディアが割り当てられ、性能順に階層化されている。例えば、複数の階層(tier)に割り当てられるメディアは夫々、SSD、SAS、SATAである。また、データ移動全体制御プログラム2670は特に、VM移動の原因が対象のVM1001に割り当てられているメディアの性能である場合、他のVM1001に割り当てられている過剰に高性能なリソースの割り当てを検知し、そのVM1001を低性能なリソースへ移動し、対象のVM1001に高性能なメディアを割り当てる。
【0119】
図27は、第3の実施形態におけるデータ移動全体制御プログラム2670の処理を示す。まずデータ移動全体制御プログラム2670は、第1の実施形態と同様に、
図24に示されているS4045までの処理を行う。
【0120】
S4045の結果がYesである場合、データ移動全体制御プログラム2670は、第1の実施形態と同様のS4050以降の処理を行う。
【0121】
一方、S4045の結果がNoである場合、データ移動全体制御プログラム2670は、移動原因が対象のVM1001に割り当てられているページのメディア性能であるか否かを判定する(S4300)。
【0122】
S4300の結果がNoである場合、データ移動全体制御プログラム2670は、第1の実施形態と同様のS4055以降の処理を行う。S4300の結果がYesである場合、データ移動全体制御プログラム2670は、ページ上のデータをより低性能のメディアへ移動することができるページである移動先候補ページを探索する(S4305)。この探索のために、データ移動全体制御プログラム2670は、VM移動ルールテーブル2690と、VM性能情報テーブル2700と、VMデータ構成情報テーブル2760と、ページ移動ルールテーブル2780と、ボリューム性能情報テーブル2790と、ボリューム物理論理記憶領域対応テーブル2800と、ボリュームリソース情報テーブル2900とを参照する。この探索により求めるページの条件は、そのページ上のVM1001がより低性能のメディアへ移動しても、VM移動ルールに抵触しないことである。なお、S4305において、或るリソースが或るVM1001に割り当てられており、そのVM1001がVM移動ルールに抵触しており、VM移動ルールがResponse Timeが所定の閾値以下であり、移動原因がそのリソースのメディアの性能でなく、そのリソースが対象のVM1001に割り当てられているリソースの性能を下回らない場合、そのリソースから移動先候補ページを検出しても良い。
【0123】
次に、データ移動全体制御プログラム2670は、移動先候補ページの中から必要な数の移動先ページを利用することで、VM移動を防ぐことが可能か否かを判定する(S4310)。即ち、データ移動全体制御プログラム2670は、移動原因であるページ上のVM1001を移動先ページへ移動すると、VM移動ルールに抵触しなくなるか否かを判定する。
【0124】
S4310の結果がNoである場合、第1の実施形態で示されたS4055へ進む。S4310の結果がYesである場合、データ移動全体制御プログラム2670は、S4305の探索結果から、対象のVM1001がVM移動ルールに抵触しなくなるために必要な数のページを選出する。次にデータ移動全体制御プログラム2670は、ストレージ装置3000のページ移動制御プログラム3330に対して、選出されたページを高性能メディアから低性能メディアへ移動させる命令を発行する(S4315)。次にデータ移動全体制御プログラム2670は、ストレージ装置3000のページ移動制御プログラム3330に対して、移動原因であるページ上のVM1001のデータをS4315の移動元である高性能メディアのページへ移動させる命令を発行し(S4320)、処理を終了する。
【0125】
なお、S4315を行うだけで、ページ移動ルールに従ってVM1001のデータが高性能メディアのページへ移動し、その結果として移動原因が解決される場合、データ移動全体制御プログラム2670は、S4320を行わなくても良い。
【0126】
本実施形態によれば、性能の異なる複数種類のメディアを用いて、計算機システムの性能を向上させることができる。
【0127】
(第4の実施形態)
本発明の第4の実施形態について説明する。以下の説明においては、第1、第2及び第3の実施形態と異なる構成について特に詳細に説明し、第1の実施形態と同様の構成については詳細な説明を省略する。第1の実施形態では、VM移動ルールに用いる指標がResponse Timeである、と例示した。一方、本実施形態において、VM移動ルールに用いる指標は容量利用率である。
【0128】
図28は、第4の実施形態におけるホスト管理計算機2000のVM移動ルールテーブル2690Bを示す。第1の実施形態で示されたVM移動ルールテーブル2690と比較すると、本実施形態のVM移動ルールテーブル2690Bは、VM移動ルール2695の代わりにVM移動ルール2695Bを有する。VM移動ルール2695Bは、容量利用率が80%を下回った場合に対応付けられているVMIDに示されているVM1001を移動する等、VM1001の性能情報の指標として容量利用率を用いる。
【0129】
図29は、第4の実施形態におけるホスト管理計算機2000のVM性能情報テーブル2700Bを示す。第1の実施形態で示されたVM性能情報テーブル2700と比較すると、本実施形態のVM性能情報テーブル2700Bは、新たに、HV1002の記憶領域のIDであるHV記憶領域ID2706と、HV1002の記憶領域の容量利用率2707とを有する。ここで、HV1002の記憶領域は、HV1002が利用可能なホスト計算機1000内の記憶領域である。なお、本実施形態において、HV1002の記憶領域の容量利用率は、ホスト管理計算機2000又はホスト計算機1000から取得される。この容量利用率は、後述するストレージ装置3000から取得可能な論理ボリューム3510の容量利用率の値と同期されていてもよいし、必ずしも同期されていなくてもよい。
【0130】
図30は、第4の実施形態におけるホスト管理計算機2000のVMデータ構成情報テーブル2760のうち第2VMデータ構成情報2760Dを示す。第1の実施形態のVMデータ構成情報テーブル2760と比較すると、本実施形態のVMデータ構成情報テーブル2760は、第2VMデータ構成情報2760Bの代わりに第2VMデータ構成情報2760Dを有する。第2VMデータ構成情報2760Bと比較すると、VMデータ構成情報2690Dは、新たに、HV記憶領域ID2775を有する。
【0131】
本実施形態のVM情報取得プログラム2610は、第1の実施形態のVM情報取得プログラム2610の処理に加えて、次の処理を行う。VM情報取得プログラム2610は、ホスト管理計算機2000からホスト管理計算機が2000により管理される記憶領域のIDを取得し、VM性能情報テーブル2700BとVMデータ構成情報テーブル2760とへ格納する。また、VM情報取得プログラム2610は、ホスト管理計算機2000からHV1002の記憶領域の容量利用率を取得し、VM性能情報テーブル2700Bへ格納する。また、VM情報取得プログラム2610は、ホスト管理計算機2000から、容量利用率に関するVM移動ルールの情報を取得し、VM移動ルールテーブル2690Bへ格納する。
【0132】
本実施形態のトレンド情報管理プログラム2660は、第1の実施形態のトレンド情報管理プログラム2660の処理に加えて、次の処理を行う。トレンド情報管理プログラム2660は、VM性能情報テーブル2700Bが保持する容量利用率を監視し、その容量利用率がVM移動ルールテーブル2690B内のVM移動ルールに抵触するか否かを判定し、抵触した場合、データ移動全体制御プログラム2670に対してVM移動の前兆を示す通知を行う。
【0133】
本実施形態のデータ移動全体制御プログラム2670は、トレンド情報管理プログラム2660からVM移動の前兆を受信し、移動原因が容量利用率であった場合にVMのデータが格納されている論理ボリュームを拡張する処理を行う。
【0134】
図31は、第4の実施形態におけるデータ移動全体制御プログラム2670の動作を示す。まず本実施形態のデータ移動全体制御プログラム2670は、第1の実施形態と同様に、S4020までの処理を行う。次にデータ移動全体制御プログラム2670は、移動原因が容量利用率か否かを判定する(S4400)。S4400の結果がNoである場合、データ移動全体制御プログラム2670は、処理をS4025へ移行させる。S4400の結果がYesである場合、データ移動全体制御プログラム2670は、ストレージ装置3000のストレージ設定プログラム3340へボリューム拡張命令を発行し(S4405)、このフローを終了する。本実施形態では、ボリューム拡張命令の結果、ボリューム拡張が不可であった場合においても、そのままフローを終了する。ここで、管理計算機2500がストレージ装置3000からあらかじめボリューム拡張可否に関する情報を取得しておき、データ移動全体制御プログラム2670がそのボリューム拡張可否情報に基づいてボリューム拡張命令を発行するか否かを判断してもよい。
【0135】
このデータ移動全体制御プログラム2670の動作により、論理ボリューム3510の容量が拡張された場合、HV1002は、例えば論理ボリューム3510のリスキャン等により論理ボリューム3510の容量を再認識することができる。
【0136】
(第5の実施形態)
本発明の第5の実施形態について説明する。以下の説明においては、第1の実施形態と異なる構成について特に詳細に説明し、第1の実施形態と同様の構成については詳細な説明を省略する。第1の実施形態のS4055では、管理計算機2500のデータ移動全体制御プログラム2670が、ストレージ装置3000側に性能劣化の原因がある場合に性能が改善される移動先を探索する、と例示した。一方、本実施形態において、データ移動全体制御プログラム2670は、移動先記憶領域を絞り込む。
【0137】
本実施形態のデータ移動全体制御プログラム2670の動作について、VM移動前の状態の具体例を用いて説明する。
図32は、第5の実施形態におけるVM移動前の状態の具体例を示す。本実施形態において、HV1002は、論理ボリューム3510を用いてデータストア1003を作成し、幾つかのデータストア1003のグループであるデータストアクラスタ1004を作成する。また、VMデータ構成情報テーブル2760は、VM1001とデータストア1003とデータストアクラスタ1004とを関連付け、対象の論理ボリュームがホスト計算機1000にマウント済みか否かを示す情報を有する。この例において、ストレージ装置3000には、6個の論理ボリューム3510が作成されている。図面及び以下の説明において、これらの論理ボリューム3510を夫々LVA、LVB、LVC、LVD、LVE、LVFと呼ぶ。これらの論理ボリューム3510のうち、LVA、LVB、LVC、LVDはホスト計算機1000にマウントされている。
【0138】
また、ホスト計算機1000内には、4個のデータストア1003が作成されている。図面及び以下の説明において、これらのデータストア1003を夫々DSA、DSB、DSC、DSDと呼ぶ。また、ホスト計算機1000内には、図面及び以下の説明において、データストアクラスタ1004が作成されている。このデータストアクラスタ1004をDCAと呼ぶ。DCAの構成要素は、DSA、DSB、DSCである。また、ホスト計算機1000内には、3個のVM1001が作成されている。図面及び以下の説明において、これらのVM1001を夫々VMA、VMB、VMCと呼ぶ。VMA、VMBは、DSA内に格納されている。VMCは、DSB内に格納されている。
【0139】
また、ホスト計算機1000からストレージ装置3000へのアクセスの経路には、3個のC−I/F1200が用いられている。図面及び以下の説明において、これらのC−I/F1200を夫々CIA、CIB、CICと呼ぶ。また、ホスト計算機1000からストレージ装置3000へのアクセスの経路には、3個の接続装置500が用いられている。図面及び以下の説明において、これらの接続装置500を夫々SWA、SWB、SWCと呼ぶ。また、ホスト計算機1000からストレージ装置3000へのアクセスの経路には、3個のH−I/F3101が用いられている。図面及び以下の説明において、これらのH−I/F3101を夫々HIA、HIB、HICと呼ぶ。
【0140】
DSA、DSB、DSC、DSDは夫々、LVA、LVB、LVC、LVDを用いて作成されている。ホスト計算機1000からLVAへのアクセス経路と、ホスト計算機1000からLVBへのアクセス経路との夫々は、CIA、SWA、HIAを含む。ホスト計算機1000からLVCへのアクセス経路は、CIB、SWB、HIBを含む。ホスト計算機1000からLVDへのアクセス経路は、CIC、SWC、HICを含む。
【0141】
この状態で、VMAのVM移動の前兆が検知され、その移動原因が、CIAの高負荷等、CIA、SWA、HIAを含むアクセス経路の一部であるとする。
【0142】
図33は、第5の実施形態におけるデータ移動全体制御プログラム2670の動作を示す。まず本実施形態のデータ移動全体制御プログラム2670は、第1の実施形態と同様に、S4055までの処理を行う。これにより、データ移動全体制御プログラム2670は、移動原因として特定された箇所を用いない論理ボリューム3510を移動先記憶領域として検出する。前述の具体例において説明すると、データ移動全体制御プログラム2670は、S4055により、アクセス経路に移動原因のない論理ボリューム3510であるLVC、LVD、LVE、LVFを移動先記憶領域として検出する。即ち、CIA、SWA、HIAのアクセス経路をLVAと共有しているLVBは、移動先記憶領域から除外される。
【0143】
次にデータ移動全体制御プログラム2670は、移動先記憶領域の中から、ホスト計算機1000にマウントされている論理ボリューム3510を選択して新たな移動先記憶領域とする(S4057)。ここでデータ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760を参照する。前述の具体例において説明すると、データ移動全体制御プログラム2670は、S4057により、ホスト計算機1000にマウント済みの論理ボリューム3510であるLVC、LVDに、移動先記憶領域を絞り込む。即ち、ホスト計算機1000にマウントされていないLVE及びLVFは、移動先記憶領域から除外される。
【0144】
次にデータ移動全体制御プログラム2670は、移動先記憶領域の中から、同一のデータストアクラスタ1004に属するデータストア1003に対応する論理ボリューム3510を選択して新たな移動先記憶領域とする(S4058)。ここでデータ移動全体制御プログラム2670は、VMデータ構成情報テーブル2760を参照する。前述の具体例において説明すると、データ移動全体制御プログラム2670は、S4058により、VMAを格納しているDSAが属しているデータストアクラスタ1004であるDCAを認識し、DCAに属しているデータストア1003であるDSCに対応するLVCに、移動先記憶領域を絞り込む。即ち、DSAと同一のデータストアクラスタ1004に属していないLVDは、移動先記憶領域から除外される。その後、データ移動全体制御プログラム2670は、S4085により、DSCをホスト管理計算機2000へ通知する。
【0145】
次にデータ移動全体制御プログラム2670は、第1の実施形態と同様のS4060以降の処理を行う。
【0146】
なお、ホスト管理計算機2000又はホスト計算機1000は、VM移動時に管理計算機2500から移動先記憶領域を通知されていない場合、或いは複数の移動先記憶領域を通知されている場合、移動先記憶領域として利用可能なデータストア1003の中から、格納しているVM1001の数が最も少ないデータストア1003を移動先のデータストア1003として選択しても良いし、ホスト管理計算機が移動先のデータストア1003を決定する時に利用しているルールを加味しても良い。ホスト管理計算機が 移動先のデータストア1003を決定する時に利用しているルールとしては、非特許文献1のp.6に示すAffinity
Rulesが例示できる。さらに、これらのルールを、管理計算機がホスト管理計算機から取得して、そのルールに従った移動先データストア1003を選択してもよい。
【0147】
本実施形態によれば、ホスト管理計算機2000へ通知する移動先記憶領域の選択の精度を向上させることができる。
【0148】
(その他の実施形態)
なお、上述の実施形態においては、管理計算機2500に格納されている各種プログラムに基づいて、管理計算機2500のCPU2510がトレンド情報管理プログラム2660及びデータ移動全体制御プログラム2670等の各種機能を実現しているが、本発明はこのような実施形態に限定されない。例えば、CPU2510を管理計算機2500とは別体の他の装置に設けて、当該CPU2510と協働して各種機能を実現するようにしてもよい。また、管理計算機2500に格納されている各種プログラムを管理計算機2500とは別体の他の装置に設けて、当該プログラムがCPU2510に呼び出されることにより各種機能を実現するようにしてもよい。
【0149】
また、例えば、本明細書の管理計算機2500等の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、管理計算機2500等の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【0150】
また、管理計算機2500等に内蔵されるCPUや、Memory等のハードウェアを、上述した管理計算機2500等の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、そのコンピュータプログラムを記憶させた記憶媒体も提供される。
【0151】
前述の各実施形態によれば、計算機システムは、階層ストレージ管理を行うストレージ装置3000とVM移動の制御を行うホスト計算機1000とを併用することができる。また、ユーザはストレージ装置3000による階層ストレージ管理の利点とホスト計算機1000によるVM移動の利点の両方を享受することができる。
【0152】
なお、VM1001の代わりに、他のプログラムやデータ等のオブジェクトが用いられる場合であっても、各実施形態は適用可能である。これらオブジェクトはホスト計算機1000により制御され、複数の論理ボリューム3510の間を移動する。
【0153】
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【0154】
以上に説明した技術は、次のように表現することができる。
(表現1)
計算機とストレージ装置とに接続され、
前記ストレージ装置により提供される複数の論理記憶領域を示す第1構成情報と、前記複数の論理記憶領域の中の一つの論理記憶領域内のデータが前記ストレージ装置により前記複数の論理記憶領域の中の他の論理記憶領域へ移動する契機として前記ストレージ装置の状態を定義する第1条件とを格納するメモリと、
前記メモリに接続されているCPUと、
前記計算機及び前記ストレージ装置との通信を行うネットワークインターフェースと、
を有し、
前記CPUは、
前記複数の論理記憶領域の中の第1論理記憶領域に格納され前記計算機により実行される前記第1オブジェクトが前記計算機により前記複数の論理記憶領域の中の他の論理記憶領域へ移動する契機として前記計算機の状態を定義する第2条件を取得し、
前記第1オブジェクトと前記第1論理記憶領域とを関連付ける第2構成情報を取得し、
前記複数の論理記憶領域の状態を示す第1状態情報を前記ストレージ装置から取得し、
前記第1オブジェクトの状態を示す第2状態情報を前記計算機から取得し、
前記第1条件と前記第2条件と前記第1状態情報と前記第2状態情報とに基づいて、前記第1論理記憶領域から他の論理記憶領域へのデータ移動が実行される状態であるか否かを判断し、
前記データ移動が実行される状態である場合、前記第1構成情報及び前記第2構成情報に基づいて、前記状態の原因を特定し、前記原因に基づいて前記データ移動を制御し、
前記複数の論理記憶領域は、互いに異なる性能を有する複数の記憶媒体を夫々用いる、
ことを特徴とした管理計算機。
【0155】
(表現2)
計算機にアクセスされるストレージ装置と、
前記計算機と前記ストレージ装置に接続される管理計算機とを有し、
前記ストレージ装置は、複数の論理記憶領域を提供し、前記ストレージ装置の状態が第1条件を満たす場合に、前記複数の論理記憶領域の中の一つの論理記憶領域内のデータを前記複数の論理記憶領域の中の他の論理記憶領域へ移動させ、
前記管理計算機は、
前記複数の論理記憶領域を示す第1構成情報と前記第1条件とを格納するメモリと、
前記メモリに接続されているCPUと、
前記計算機及び前記ストレージ装置との通信を行うネットワークインターフェースと、
を有し、
前記CPUは、
前記複数の論理記憶領域の中の第1論理記憶領域に格納され前記計算機により実行される前記第1オブジェクトが前記計算機により前記複数の論理記憶領域の中の他の論理記憶領域へ移動する契機として前記計算機の状態を定義する第2条件を取得し、
前記第1オブジェクトと前記第1論理記憶領域とを関連付ける第2構成情報を取得し、
前記複数の論理記憶領域の状態を示す第1状態情報を前記ストレージ装置から取得し、
前記第1オブジェクトの状態を示す第2状態情報を前記計算機から取得し、
前記第1条件と前記第2条件と前記第1状態情報と前記第2状態情報とに基づいて、前記第1論理記憶領域から他の論理記憶領域へのデータ移動が実行される状態であるか否かを判断し、
前記データ移動が実行される状態である場合、前記第1構成情報及び前記第2構成情報に基づいて、前記状態の原因を特定し、前記原因に基づいて前記データ移動を制御し、
前記複数の論理記憶領域は、互いに異なる性能を有する複数の記憶媒体を夫々用いる、
ことを特徴としたストレージシステム。
【0156】
これらの表現において、第1構成情報は例えば、ボリューム物理論理記憶領域対応テーブル2800とボリュームリソース情報テーブル2900と外部ストレージ構成情報テーブル2950とに対応する。また、第2構成情報は例えば、VMデータ構成情報テーブル2760に対応する。また、第1条件は例えば、ページ移動ルールテーブル2780に対応する。また、第2条件は例えば、VM移動ルールテーブル2690に対応する。また、論理記憶領域は例えば、論理ボリューム3510に対応する。また、ネットワークインターフェースは例えば、I/F2505に対応する。第1論理記憶領域から他の論理記憶領域へのデータ移動が実行される状態である場合は例えば、データ移動の前兆が検知された場合、ユーザ操作を受け付けたことを契機としてデータ移動が行われる場合に対応する。