(57)【要約】【課題】  或る論理ディスクの特性に合わせた入出力制御が、他の処理の性能劣化を引き起こすことを抑制する。【解決手段】  キャッシュを備え、当該キャッシュを用いて論理ディスクの入出力を実行する入出力手段と、キャッシュの使用にかかる特性値を測定するキャッシュ測定手段と、特性値に基づいて、複数の入出力仮想計算機の中から１つを選択してハイパーバイザに通知する分配判断手段と、を備える制御仮想計算機と、各々異なる制御方式で、入出力を実行する入出力手段を備える、複数の入出力仮想計算機と、分配判断手段から通知された入出力仮想計算機を起動し、論理ディスクに対する入出力要求の送付先を、制御仮想計算機から起動した入出力仮想計算機に切替えるハイパーバイザと、を備えたディスク制御装置。【選択図】      図１
2018128751.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュを備え、当該キャッシュを用いて論理ディスクの入出力を実行する入出力手段と、前記キャッシュの使用にかかる特性値を測定するキャッシュ測定手段と、前記特性値に基づいて、複数の入出力仮想計算機の中から１つを選択してハイパーバイザに通知する分配判断手段と、を備える制御仮想計算機と、
各々異なる制御方式で、前記入出力を実行する前記入出力手段を備える、前記複数の前記入出力仮想計算機と、
前記分配判断手段から通知された前記入出力仮想計算機を起動し、前記論理ディスクに対する入出力要求の送付先を、前記制御仮想計算機から起動した前記入出力仮想計算機に切替える前記ハイパーバイザと、を備え、
前記論理ディスクを実現するディスク装置に接続されたディスク制御装置。
【請求項２】
前記キャッシュ測定手段は、前記ディスク装置上に実現された複数の前記論理ディスクの各々を対象に前記特性値を測定し、
前記分配判断手段は、前記複数の前記論理ディスクの各々を対象に前記特性値に基づいて、前記複数の前記入出力仮想計算機から１つを選択して前記ハイパーバイザに通知する、請求項１のディスク制御装置。
【請求項３】
前記キャッシュ測定手段が測定する前記特性値は、利用される前記キャッシュを確保する際の要求サイズを包含し、
前記入出力仮想計算機の前記制御方式は、前記キャッシュの区画サイズを包含し、
前記分配判断手段は、前記要求サイズ以上であって最小の前記区画サイズの前記キャッシュを有する前記入出力仮想計算機を選択する、請求項１乃至請求項２の何れか１項のディスク制御装置。
【請求項４】
前記キャッシュ測定手段が測定する前記特性値は、前記論理ディスクを実現する前記ディスク装置が、磁気ディスク装置であるか否かの判断値を包含し、
前記入出力仮想計算機の前記制御方式は、アドレス順アクセスの為のデータ蓄積を行うか否かの選択を包含し、
前記分配判断手段は、前記論理ディスクを実現する前記ディスク装置が、磁気ディスク装置である場合、前記アドレス順アクセスの為のデータ蓄積を行う前記入出力仮想計算機を選択する、請求項１乃至請求項３の何れか１項のディスク制御装置。
【請求項５】
前記分配判断手段は、前記特性値に基づいて、前記入出力仮想計算機を選択するとともに割当てるリソース量を決定して前記ハイパーバイザに通知し、
前記ハイパーバイザは、通知された前記入出力仮想計算機に、通知された量の前記リソースを割り当てて起動する、請求項１乃至請求項４の何れか１項のディスク制御装置。
【請求項６】
前記キャッシュ測定手段が測定する前記特性値は、前記キャッシュの利用量、および、前記論理ディスクを実現する前記ディスク装置が、磁気ディスク装置であるか否かの判断値を包含し、
前記分配判断手段は、ａ）前記利用量が所定値より大きければ、前記入出力仮想計算機に所定の標準メモリ量より大きな量のメモリ、および、所定の標準ＣＰＵ量より小さな量のＣＰＵを割り当て、ｂ）前記利用量が前記所定値未満で、前記論理ディスクを実現する前記ディスク装置が、磁気ディスク装置であれば、前記入出力仮想計算機に前記標準メモリ量より大きな量のメモリ、および、前記標準ＣＰＵ量より大きな量のＣＰＵを割り当て、ｃ）前記利用量が前記所定値未満で、前記論理ディスクを実現する前記ディスク装置が、磁気ディスク装置でなければ、前記入出力仮想計算機に前記標準メモリ量より少ない量のメモリ、および、前記標準ＣＰＵ量より大きな量のＣＰＵを割り当てる、請求項１乃至請求項５の何れか１項のディスク制御装置。
【請求項７】
前記キャッシュ測定手段が測定する前記特性値は、前記入出力要求の到着インターバルを包含し、
前記分配判断手段は、前記到着インターバルが所定値より長ければ、短い場合より、小さな量のＣＰＵを割り当てる、請求項１乃至請求項５の何れか１項のディスク制御装置。
【請求項８】
前記制御仮想計算機の前記入出力手段は、前記キャッシュ上のデータの前記論理ディスクへの書き込み、および、前記キャッシュのメモリ解放／無効化、を実施した後、前記ハイパーバイザにパス切り替え指示を出力し、
前記ハイパーバイザは、前記パス切り替え指示受領後に、前記制御仮想計算機から起動した前記入出力仮想計算機に切替える、請求項１乃至請求項７の何れか１項のディスク制御装置。
【請求項９】
キャッシュを用いて論理ディスクの入出力を実行し、前記キャッシュの使用にかかる特性値を測定し、前記特性値に基づいて、各々異なる制御方式で前記入出力を実行する複数の入出力仮想計算機の中から１つを起動し、
前記論理ディスクに対する入出力要求の送付先を、起動した前記入出力仮想計算機に設定するディスク制御方法。
【請求項１０】
キャッシュを用いて論理ディスクの入出力を実行し、前記キャッシュの使用にかかる特性値を測定し、前記特性値に基づいて、各々異なる制御方式で、前記入出力を実行する前記入出力処理を備える複数の入出力仮想計算機の中から１つを選択する制御処理と、
選択された前記入出力仮想計算機を起動し、前記論理ディスクに対する入出力要求の送付先を、起動した前記入出力仮想計算機に設定するハイパーバイザ処理を、前記論理ディスクを実現するディスク装置に接続されたコンピュータに実行させる、ディスク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク制御装置、ディスク制御方法、および、ディスク制御プログラム、特に、論理ディスクの入出力特性に合わせた入出力制御を行うディスク制御装置等、に関する。
【背景技術】
【０００２】
近年のディスクアレイ装置は、メニコア、マルチスレッド等の技術を採用して高性能なＣＰＵ(Central Processing Unit)や大容量なメモリを搭載している。このようなディスクアレイ装置は、ＤＢ（Data Base）サービス、ファイル管理サービス、ＶＯＤ（Video On Demand）サービス等の、さまざまな用途で使用される論理ディスクを集約管理している。
【０００３】
用途がさまざまであるが故に、論理ディスクの入出力パターンにもさまざまな特性がある。ディスクアレイ装置が、論理ディスクの特性に合わせた入出力制御やリソース割り当てなどを行えば入出力性能を向上させることができる場合が有る。
【０００４】
特許文献１は、バーチャルマシンを利用して、新旧のストレージプログラムを共存させるストレージシステムを開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１１／０５８８２１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
様々な特性の論理ディスクを集約管理しているディスクアレイ装置が、論理ディスクの特性に合わせた入出力制御やリソース割り当て等を行う場合、或る論理ディスクの性能向上の為の制御が、他の論理ディスクの性能を悪化させてしまう場合が有る。以下は、このような課題の具体例の説明である。
【０００７】
図９は、この課題を説明する為の具体例を示す図である。この例において、ディスクアレイ装置は、ＤＢのような転送長の小さいランダム入出力が多重発行される論理ディスクＬＵＮ０と、ＶＯＤのような多重度は低いが転送長が大きいシーケンシャル入出力が発行される論理ディスクＬＵＮ１を制御する。そして、このディスクアレイ装置のメモリに確保されるキャッシュブロックの区画は３２Ｋバイトであり、ＬＵＮ０の転送長は４Ｋバイト、ＬＵＮ１の転送長は１Ｍバイトであるとする。この状況下では、例えば、以下のような問題が発生する。
【０００８】
１）非効率なメモリリソース管理（図中の（１））
ＬＵＮ０は、キャッシュブロックとして、総量的には多くないが小さなメモリ区画がたくさん必要になるが、ＬＵＮ１は総量的に大きなメモリ区画が必要となる。ＬＵＮ１が大きな区画を確保するためには小さな区画のメモリを整理しなければならない。その為、メモリのガーベージ処理やデフラグ処理が頻繁に必要となる。
【０００９】
２）過剰なＣＰＵリソース占有（図中の（２））
ＬＵＮ０は、データ量が小さいため相対的に短い時間で応答が可能で、応答すると次々に入出力が発行されてきてしまうためＣＰＵ消費量が多くなる。極端な状況ではＬＵＮ０の処理ばかりが行われてしまい、ＬＵＮ１の処理がなかなかＣＰＵスケジューリングされない。この結果、ＬＵＮ１のレスポンスが大幅に悪化する。
【００１０】
（３）ディスク種別の特性に合わない入出力発行制御（図中の（３））
ここで、ディスク種別は、例えば、ＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）を意味する。
【００１１】
ＬＵＮ１は、ある程度データを貯めてからディスクに書いた方が性能を引き出せる。特にＨＤＤで構成されている場合、ＬＵＮ１はエレベータシークを効かせてアドレス順に連続して書けると性能がより向上する。そのた為、ＬＵＮ１は、データをキャッシュ区画上にできるだけ貯めこんで、アドレス順に並べ替えて書いた方がよい。しかし、ＬＵＮ０の負荷によりキャッシュ区画が多量に消費されると、ＬＵＮ１のデータを貯めきれずに書かざるを得なくなる。この場合、何度も論理ディスクに対して入出力コマンドを発行することになり、入出力が非効率となる。
【００１２】
一方、ＬＵＮ１が、ＳＳＤで構成されている場合は、貯めこみ並べ替える必要はない。ＳＳＤは、ランダムアクセスに強い機構をもつためである。
【００１３】
なお、ディスクを制御する装置が、或る論理ディスクの特性に合わせた入出力制御やリソース割り当て等を行う場合、悪化させてしまう場合が有るのは、他の論理ディスクの性能に限られない。例えば、ディスクを制御する装置が実行するメディアエラーチェック処理の遅延を発生する場合も有る。
【００１４】
本発明は、或る論理ディスクの特性に合わせた入出力制御が、他の処理、例えば、他の論理ディスクの性能劣化を引き起こすことを抑制できるディスク制御装置、ディスク制御方法、および、ディスク制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の１実施の形態のディスク制御装置は、キャッシュを備え、当該キャッシュを用いて論理ディスクの入出力を実行する入出力手段と、前記キャッシュの使用にかかる特性値を測定するキャッシュ測定手段と、前記特性値に基づいて、複数の入出力仮想計算機の中から１つを選択してハイパーバイザに通知する分配判断手段と、を備える制御仮想計算機と、各々異なる制御方式で、前記入出力を実行する前記入出力手段を備える、前記複数の前記入出力仮想計算機と、前記分配判断手段から通知された前記入出力仮想計算機を起動し、前記論理ディスクに対する入出力要求の送付先を、前記制御仮想計算機から起動した前記入出力仮想計算機に切替える前記ハイパーバイザと、を備え、前記論理ディスクを実現するディスク装置に接続される。
【００１６】
本発明の１実施の形態のディスク制御方法は、キャッシュを用いて論理ディスクの入出力を実行し、前記キャッシュの使用にかかる特性値を測定し、前記特性値に基づいて、各々異なる制御方式で前記入出力を実行する複数の入出力仮想計算機の中から１つを起動し、前記論理ディスクに対する入出力要求の送付先を、起動した前記入出力仮想計算機に設定する。
【００１７】
本発明の１実施の形態のディスク制御プログラムは、キャッシュを用いて論理ディスクの入出力を実行し、前記キャッシュの使用にかかる特性値を測定し、前記特性値に基づいて、各々異なる制御方式で、前記入出力を実行する前記入出力処理を備える複数の入出力仮想計算機の中から１つを選択する制御処理と、選択された前記入出力仮想計算機を起動し、前記論理ディスクに対する入出力要求の送付先を、起動した前記入出力仮想計算機に設定するハイパーバイザ処理とを、前記論理ディスクを実現するディスク装置に接続されたコンピュータに実行させる。
【発明の効果】
【００１８】
本発明のディスク制御装置は、或る論理ディスクの特性に合わせた入出力制御が、他の処理、例えば、他の論理ディスクの入出力性能の劣化を引き起こすことを抑制できる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の第１の実施の形態にかかるディスク制御システム４０の構成を示す図である。
【図２】図２は、コンピュータ装置６０の構成図である。
【図３】図３は、起動する入出力実行仮想マシン３０の選択処理のフローチャートである。
【図４】図４は、起動する入出力実行仮想マシン３０に対するメモリ量割当処理のフローチャートである。
【図５】図５は、起動する入出力実行仮想マシン３０に対するＣＰＵ割当処理のフローチャートである。
【図６】図６は、第１の実施の形態にかかるディスク制御システム４０の具体的な構成と動作例を説明する図（その１）である。
【図７】図７は、第１の実施の形態にかかるディスク制御システム４０の具体的な構成と動作例を説明する図（その２）である。
【図８】図８は、本発明の第２の実施の形態にかかるディスク制御装置１０の構成を示す図である。
【図９】図９は、課題を説明する為の具体例を示す図である。
【発明を実施するための形態】
【００２０】
＜第１の実施の形態＞
＜概要＞
ディスク制御装置１０は、論理ディスク５１毎の特性(例えば、特徴的なＩ／Ｏパターンや運用パターン)に合わせた入出力処理を実行する入出力部２２が動作する入出力実行仮想マシン３０を複数内包している。
【００２１】
制御用の制御仮想マシン２０で動作するキャッシュアクセス測定部２５が、論理ディスク５１への入出力で利用するキャッシュ２４のアクセスパターンを分析する。分配判断部２６は、分析結果に基づいて、その論理ディスク５１の入出力の特性に合った入出力部２２が動作する入出力実行仮想マシン３０を選択し、特性に合ったリソースを配分して起動する。
【００２２】
その後、ハイパーバイザ１１の仮想基盤制御部１２は、外部から受信する論理ディスク５１への入出力要求のパスを、制御仮想マシン２０から、新たに起動した入出力実行仮想マシン３０に切り替える。
【００２３】
＜構成＞
図１は、本発明の第１の実施の形態にかかるディスク制御システム４０の構成を示す図である。ディスク制御システム４０は、ディスク制御装置１０と、当該装置に接続されたディスク装置５０を包含する。ディスク制御装置１０は、例えば物理ポート１Ａを介して、上位装置、例えば汎用情報処理装置から、論理ディスク５１に対する入出力要求を受信する。
【００２４】
論理ディスク５１は、１台以上のディスク装置５０で実現される。論理ディスク５１は、例えば、ミラー構成の複数台のディスク装置５０で構成される。論理ディスク５１は、例えば、ファイルシステムやデータベースを格納する。なお、ディスク装置５０は、論理ディスク５１のデータ以外に、ディスク制御装置１０の実行に必要なデータを格納していても良い。
【００２５】
ディスク制御装置１０は、制御仮想マシン２０、複数の入出力実行仮想マシン３０、および、ハイパーバイザ１１を備えている。
【００２６】
ハイパーバイザ１１は、制御仮想マシン２０、および、入出力実行仮想マシン３０を実行する基盤であり、仮想基盤制御部１２と仮想マシン実行部１３を備える。
【００２７】
仮想マシン実行部１３は、構成定義情報に従って入出力実行仮想マシン３０に必要なリソース（メモリ／ＣＰＵなど）を割り当てて起動する。起動された、入出力実行仮想マシン３０は、指定されたゲストＯＳ２７やＳＡＮ制御部２１をロードして実行する。
【００２８】
仮想基盤制御部１２は、制御仮想マシン２０の基盤パラメータ通知部２９からの指示に従って入出力実行仮想マシン３０の構成定義情報を作成する。構成定義情報は、割当メモリ量、割当ＣＰＵ数、使用するゲストＯＳ２７／ＳＡＮ制御部２１の指定を含む。
【００２９】
また、仮想基盤制御部１２は、入出力パス切り替えを行う。すなわち、仮想基盤制御部１２は、上位装置から受信した論理ディスク５１に対する入出力要求を、どの仮想マシンに処理させるかの指定の切替えを行う。なお、上位装置からの入出力要求は、ディスク制御装置１０の物理ポート１Ａで受信されて仮想基盤制御部１２に届けられ、仮想基盤制御部１２が、選択した仮想マシンの仮想ポート２Ａに転送する。転送された入出力要求は、仮想ポート２ＡからゲストＯＳ２７を介して、当該仮想マシンの入出力部２２に届く。
【００３０】
制御仮想マシン２０は、ＳＡＮ制御部２１とゲストＯＳ２７を備えている。
【００３１】
ゲストＯＳ２７は、通常のＯＳ機能実行部分に加えて、基盤パラメータ通知部２９とパススイッチ管理部２８を備える。基盤パラメータ通知部２９は、ゲストＯＳ２７上のＳＡＮ制御部２１から仮想基盤制御部１２に対し情報を通知することを可能にする。この情報は、例えば、分配判断部２６が発する制御仮想マシン２０および入出力実行仮想マシン３０の構成定義情報である。パススイッチ管理部２８は、ＳＡＮ制御部２１から仮想基盤制御部１２に対し、制御仮想マシン２０が受け取る論理ディスク５１への入出力要求を、指定した入出力実行仮想マシン３０が受け取るようにパス切り替え指示を出すことを可能とする。
【００３２】
ＳＡＮ制御部２１は、入出力部２２、キャッシュアクセス測定部２５、分配判断部２６を備えている。
【００３３】
入出力部２２は、実行部２３とキャッシュ２４を備える。実行部２３は、上位装置から受信した論理ディスク５１への入出力要求を受けて、キャッシュ２４を用いて、当該論理ディスク５１に対する入出力を実行する。入出力部２２は、様々な制御方式でことが出来る。ここで、制御方式は、例えば、キャッシュ２４の各区画サイズ、ＨＤＤエレベータシークの為のデータ貯め込みとアドレス順ソート制御の有無、を意味する。
【００３４】
制御仮想マシン２０が備える入出力部２２は、所定の制御方式で入出力を行う。なお、複数の入出力実行仮想マシン３０は、其々異なる制御方式で入出力を行う入出力部２２を備える。
【００３５】
キャッシュアクセス測定部２５は、論理ディスク５１に対する入出力処理のために使用するキャッシュ２４の利用に関する特性値を測定する。このキャッシュアクセス測定部２５は、論理ディスク５１毎に、例えば、以下の情報を蓄積する。
・キャッシュ２４の待ち発生率、キャッシュ２４の全体に対する使用頻度
・キャッシュ２４を使用する際の要求サイズの平均／標準偏差／最頻値、
・要求論理セクタ番号
・単位時間辺りの同一のキャッシュ２４の区画競合率
・入出力の受信間隔時間
分配判断部２６は、キャッシュアクセス測定部２５から収集された特性値情報を読み取り、そこから判断される論理ディスク５１の使われ方の特性に合った制御方式の入出力部２２を備える入出力実行仮想マシン３０を選択する。さらに、分配判断部２６は、当該特性に合った、リソース配分を決定し、選択及び決定した情報を、仮想基盤制御部１２および仮想マシン実行部１３に通知する。
【００３６】
複数の入出力実行仮想マシン３０は、其々異なる制御方式で入出力を行う入出力部２２を備える。なお、複数の入出力実行仮想マシン３０は、其々異なる制御方式で入出力を行う入出力部２２を包含するＳＡＮ制御部２１備えるように実装しても良い。ここでいう、入出力実行仮想マシン３０は、仮想マシン実行部１３が、入出力実行仮想マシン３０を生成して起動する為の構成定義情報であっても良い。構成定義情報は、各制御方式で入出力を行う入出力部２２を包含する雛形を別々に用意しておき、分配判断部２６が雛形を選択し、リソース配分量の変更情報と共に、仮想基盤制御部１２に送信し雛形を修正させても良い。
【００３７】
ここで、ディスク制御装置１０のＳＡＮ制御部２１（キャッシュ２４以外の内部要素を含む）は、論理回路あるいは、専用のＰＵ（Processing Unit）とファームウェアで構成される。
【００３８】
ディスク制御装置１０は、コンピュータ装置６０でもある。図２は、コンピュータ装置６０の構成図である。コンピュータ装置６０は、バス６４で相互に接続された、プロセッサ６１（ＣＰＵ）、主記憶部６３、および、外部記憶装置６２を備える。プロセッサ６１は、バス６４を経由して、主記憶部６３、および、外部記憶装置６２に対してデータの読み書きを行う。
【００３９】
また、プロセッサ６１は、主記憶部６３に格納されているプログラム６５を実行する。なお、プログラム６５は、当初外部記憶装置６２に格納されており、コンピュータ装置６０の初期設定時に、プロセッサ６１が外部記憶装置６２から主記憶部６３にロードしても良い。
【００４０】
ここで、主記憶部６３は半導体メモリ装置である。外部記憶装置６２はＨＤＤ、または、ＳＤＤ等の記憶装置である。主記憶部６３は、例えば、キャッシュ２４として機能する。
【００４１】
ディスク制御装置１０のプロセッサ６１は、プログラム６５を実行することにより、ＳＡＮ制御部２１（キャッシュ２４以外の内部要素を含む）として機能する。すなわち、プロセッサ６１は、プログラム６５を実行することにより、ＳＡＮ制御部２１（キャッシュ２４以外の内部要素を含む）が行う処理を実行する。
【００４２】
外部記憶装置６２は、特性値の格納域、および、入出力実行仮想マシン３０の記憶域として使用されても良い。
【００４３】
なお、図２のプログラム６５は、図示されないＲＯＭ（Read Only Memory）に記憶されたファームウェアであっても良い。すなわち、ＳＡＮ制御部２１（キャッシュ２４以外の内部要素を含む）は、ファームウェアによって実現されても良い。
【００４４】
＜動作＞
１）特性値の測定
ディスク制御装置１０が、起動されたとき、全ての論理ディスク５１に対する入出力要求は、制御仮想マシン２０に転送される。そして、その入出力要求は、制御仮想マシン２０の入出力部２２で実行され、その過程で、キャッシュアクセス測定部２５により、各論理ディスク５１の特性値が測定される。
【００４５】
キャッシュアクセス測定部２５は、統計的に十分な量のサンプル数が取得できると、その旨を分配判断部２６に通知する。分配判断部２６は、各論理ディスク５１について、その特性値に基づき、起動する入出力実行仮想マシン３０の選択と、割り当てるべきリソース量の決定を行う。分配判断部２６は、起動後所定時間が経過した時点で、この起動する入出力実行仮想マシン３０の選択と、割り当てるべきリソース量の決定を行っても良い。
【００４６】
分配判断部２６は、先ず、リソース分配が必要かどうかの判断を行う。すなわち、分配判断部２６は、キャッシュ２４の待ち発生率を参照して待たされる率が所定値以上高い論理ディスク５１があるかどうかを確認し、偏りがあれば分配が必要と判断して、起動する入出力実行仮想マシン３０の選択と、割り当てるべきリソース量の決定を開始する。
【００４７】
２）起動する入出力実行仮想マシン３０の選択
図３は、起動する入出力実行仮想マシン３０の選択処理のフローチャートである。分配判断部２６は、図３乃至図５の処理を論理ディスク５１ごとに行う。
【００４８】
分配判断部２６は、いま処理している論理ディスク５１が、ＳＳＤのディスク装置５０で構成されていれば（Ｓ１でＹＥＳ）、ＳＳＤの入出力に特化した入出力部２２を有する入出力実行仮想マシン３０群を候補とする（Ｓ２）。一方、分配判断部２６は、いま処理している論理ディスク５１が、ＨＤＤのディスク装置５０で構成されていれば（Ｓ１でＮＯ）、ＨＤＤの入出力に特化した入出力部２２を有する入出力実行仮想マシン３０群を候補とする（Ｓ７）。ＨＤＤの入出力に特化した入出力部２２は、例えば、ＨＤＤエレベータシークの為のデータ貯め込みとアドレス順ソート制御を行う。
【００４９】
次に、分配判断部２６は、キャッシュ２４の利用サイズ、すなわち、キャッシュ２４を確保する際の要求メモリ量を示す特性値を参照し（Ｓ３）、容量効率を判断して、利用サイズ以上で最小のキャッシュ２４の区画サイズを持つ入出力実行仮想マシン３０を選択する（Ｓ４乃至Ｓ６）。ここで、キャッシュ２４の利用サイズは、例えば、偏差値が所定閾値より低ければ平均を、大きければ最頻値を採用すれば良い。
【００５０】
３）割り当て総メモリ量の決定
図４は、起動する入出力実行仮想マシン３０に対するメモリ量割当処理のフローチャートである。
【００５１】
分配判断部２６は、割当メモリ量の初期値を所定の標準メモリ量に設定する（Ｓ１１）。そして、分配判断部２６は、いま処理している論理ディスク５１のキャッシュ２４の利用サイズが所定閾値より大きな場合（Ｓ１２で「大」）、ＨＤＤ／ＳＳＤの書き込み速度ネックになると判断して割当メモリ量を増加する（Ｓ１３）。増加分は、一律の値としても良いし、所定閾値との差分に応じた値としても良い。
【００５２】
キャッシュ２４の利用サイズが小さい場合で（Ｓ１２で「小」）、論理ディスク５１が、ＨＤＤで構成されている場合は（Ｓ１４でＮＯ）、分配判断部２６は、キャッシュ２４にデータを貯めて読み書き制御を行った方が良いと判断して、割当メモリ量を増加する（Ｓ１６）。論理ディスク５１が、ＳＤＤで構成されている場合は（Ｓ１４でＹＥＳ）、分配判断部２６は、ＳＳＤの高速性を活かせば大量のメモリは不要と判断して、割当メモリ量を減ずる（Ｓ１６）。
【００５３】
４）割り当てＣＰＵ数の決定
図５は、起動する入出力実行仮想マシン３０に対するＣＰＵ割当処理のフローチャートである。
【００５４】
分配判断部２６は、割当ＣＰＵ数の初期値を所定の標準ＣＰＵ数に設定する（Ｓ２１）。そして、分配判断部２６は、いま処理している論理ディスク５１のキャッシュ２４の利用サイズが所定閾値より大きな場合（Ｓ２２で「大」）、ＨＤＤ／ＳＳＤネックとなりＣＰＵネックとはならないと判断し、割当ＣＰＵ数を減ずる（Ｓ２３）。キャッシュ２４の利用サイズが小さい場合（Ｓ２２で「小」）、分配判断部２６は、処理実行数が増えると判断し、割当ＣＰＵ数を増加する（Ｓ２６）。さらに、論理ディスク５１がＳＤＤで構成されている場合は（Ｓ２７でＹＥＳ）、分配判断部２６は、よりＳＳＤを多く動かした方が効率的と判断し、さらに割当ＣＰＵ数を増加する（Ｓ２８）。
【００５５】
次いで、分配判断部２６はキャッシュ競合率の判断に進む。キャッシュ２４の競合率が高い場合（Ｓ２４で「多」）、分配判断部２６は、今処理中の論理ディスク５１は高負荷と判断し、割当ＣＰＵ数を増加する（Ｓ２９）。
【００５６】
最後に、上位装置へのレスポンスを最速にしても次の入出力要求が来るまでの時間が長ければ、すなわち、入出力要求の到着インターバルが長ければ（Ｓ２５で「長」）、分配判断部２６は、高速性が求められないと判断し、割当ＣＰＵ数を減ずる（Ｓ３０）。
【００５７】
なお、上記において増減するＣＰＵの数は、例えば、ディスク制御装置１０に実装されているＣＰＵ数の１０％とすれば良い。
【００５８】
５）入出力実行仮想マシン３０の起動
分配判断部２６は、選択した入出力実行仮想マシン３０と、決定した割り当てリソース量を、基盤パラメータ通知部２９を介して仮想基盤制御部１２に通知する。仮想基盤制御部１２が、通知された情報に従って、例えば、入出力実行仮想マシン３０の構成情報雛形を選択し、かつ、リソース量定義の修正をし、仮想マシン実行部１３が、与えられた構成情報に基づいて、入出力実行仮想マシン３０を起動する。起動された入出力実行仮想マシン３０は、指定されたゲストＯＳ２７と、ＳＡＮ制御部２１（全体ではなく、入出力部２２だけでも良い）をロードして実行する。
【００５９】
６）入出力要求転送先の切替え
入出力実行仮想マシン３０の入出力部２２は、入出力要求を受信できる状態になった段階で、パススイッチ管理部２８を介して仮想基盤制御部１２にパススイッチ可能を通知する。パススイッチ可能通知を受けた仮想基盤制御部１２は、制御仮想マシン２０のゲストＯＳ２７に、パススイッチ準備完了を通知する。
【００６０】
制御仮想マシン２０のゲストＯＳ２７のパススイッチ管理部２８は、準備完了通知を受け取ると、入出力部２２にキャッシュ２４をＯＦＦするように指示を出す。これにより、入出力部２２は、制御仮想マシン２０の残存キャッシング情報の掃出しと以降の入出力の非キャッシング化を行う。これにより、制御仮想マシン２０の動作ＣＰＵを限定してＣＰＵ使用量を減らすことが出来る。
【００６１】
制御仮想マシン２０の入出力部２２は、キャッシュ２４をＯＦＦ状態にしたら、パススイッチ管理部２８を介してパス切り替え実行指示を、仮想基盤制御部１２に出す。パス切り替え実行指示を受けた仮想基盤制御部１２は、その入出力実行仮想マシン３０が処理する論理ディスク５１に関する以降の入出力要求転送先を、起動した入出力実行仮想マシン３０に切り替える。
【００６２】
なお、入出力部２２の制御方式は、上述した例に限られない。入出力部２２の制御方式は、ディスク種別やキャッシュ２４の区画以外の要素についての制御方式を含んでいても良い。また、入出力要求の転送先切り替えの単位は、論理ディスク５１単位以外に論理ディスク５１の論理アドレス範囲単位でも良い。
【００６３】
このような仕組みを設けることで、入出力処理に関して適切で無駄のないリソース割当と、効率の良い制御を行うことが可能となる。そして、特定の論理ディスク５１によるリソースの偏った占有を防止し、ディスク制御システム４０全体としての総入出力処理量をバランスよく増加させることが可能となる。
【００６４】
＜具体例の動作の説明＞
図６および図７は、第１の実施の形態にかかるディスク制御システム４０の具体的な構成と動作例を説明する図である。
【００６５】
まず、ディスク制御装置１０は、仮想化基盤を備えている（図６中（１））。
【００６６】
特性値の分析を実施するファームウェア（ＳＡＮＦＷ）が動作する制御仮想マシン２０（ＶＭ（Ａ））のＯＳ（Ａ）と、用途の特色にあったファームウェアが動作するＯＳ（Ｂ）／（Ｃ）／・・・が用意される。ＯＳ（Ａ）は、３２ＫＢメモリ区画で動作するファームウェアを、ＯＳ（Ｂ）は、４ＫＢメモリ区画で動作するランダムライトに特化したファームウェアを動作させる。さらに、ＯＳ（Ｃ）は、１ＭＢメモリ区画でデータを貯めこみ並べ替えディスクアクセスさせるのに特化したファームウェアを動作させる（図６中（２））。
【００６７】
ディスク制御装置１０は、初期の段階では、全ＣＰＵと全メモリを割り当てて、ＯＳ（Ａ）をロードしたＶＭ（Ａ）を、１台起動して全論理ディスク５１への入出力を処理する。論理ユニット番号０番の論理ディスク５１（ＬＵＮ０）は、平均４ＫＢ程度の小さいサイズの書き込みが高負荷であり、局所性は持つが広範囲に渡りランダムにアクセスされている。論理ユニット番号１番の論理ディスク５１（ＬＵＮ１）は、平均１ＭＢの大きいサイズの書き込みが中負荷であり、シーケンシャルなアドレスでアクセスされている。
【００６８】
ＶＭ（Ａ）のキャッシュアクセス測定部２５は、キャッシュ２４を使用する際に、要求論理ディスク番号／開始セクタ番号／サイズ情報／要求数／要求インターバル情報／待ち行列数などの情報を蓄積する（図６中（３-１））。
【００６９】
この蓄積結果から以下の状況が読み取れる。
ａ）ＬＵＮ０に関して
・開始セクタ番号は、３２ＫＢ区画の中で一定の位置ではない、すなわち、ＬＵＮ０は、３２ＫＢより小さい単位で入出力されている。
・キャッシュ２４は、小さいサイズで要求され、競合数が多いが、短い待ち時間で取得できている。
・要求数がＬＵＮ１よりも多い。
ｂ）ＬＵＮ１に関して
・開始セクタ番号が３２ＫＢ区画の先頭から揃っている。
・キャッシュ２４に対する要求サイズが大きく取得に時間がかかっている。
・総要求量として、多くのメモリが使われる。
【００７０】
ＶＭ（Ａ）の分配判断部２６は、この情報に基づいてリソース分配が必要と判断する。さらに分配判断部２６は、ＯＳ（Ｂ）を搭載する入出力実行仮想マシン３０（ＶＭ（Ｂ）にＬＵＮ０の、ＯＳ（Ｃ）を搭載する入出力実行仮想マシン３０（ＶＭ（Ｃ））にＬＵＮ１の入出力要求を処理させると決定する。続いて、ＶＭ（Ａ）の分配判断部２６は、ＶＭ（Ｂ）にはメモリ少、ＣＰＵ多というパラメータを作成、ＶＭ（Ｃ）にはメモリ大、ＣＰＵ少という基盤パラメータを作成し仮想基盤制御部１２に通知する（図６中（３-２））。
【００７１】
仮想基盤制御部１２は、与えられた基盤パラメータに基づいて、ＶＭ（Ｂ）とＶＭ（Ｃ）の構造定義情報を完成させる。仮想マシン実行部１３が、それに従って、リソースを割り当ててＶＭ（Ｂ）とＶＭ（Ｃ）を起動する。起動されたＶＭ（Ｂ）とＶＭ（Ｃ）の上では、各々ＯＳ（Ｂ）とＯＳ（Ｃ）が動作を開始する（図７の（４））。
【００７２】
ここで、ＯＳ（Ｂ）とＯＳ（Ｃ）上では、その上のファームウェアも動作を開始する。動作を開始するとＶＭ（Ｂ）とＶＭ（Ｃ）のファームウェアの入出力部２２が、ＶＭ（Ａ）に切り替え可能を通知する（図７の（５））。
【００７３】
切り替え可能通知を受けたＶＭ（Ａ）のファームウェアの入出力部２２は、ＬＵＮ０／１で使用しているキャッシュ２４をＯＦＦし、ＣＰＵ使用量を減らし、切り替え指示を仮想基盤制御部１２に出す（図７の（６））。
【００７４】
ＶＭ（Ａ）から指示を受けた仮想基盤制御部１２は、ＬＵＮ０／１の入出力要求転送先を、其々ＶＭ（Ｂ）、ＶＭ（Ｃ）に切り替える（図７の（７））。
【００７５】
負荷状況が時間帯によって変わるケース(例えば運用で夜間バックアップ作業のみを行うなど)では、ディスク制御装置１０は、幾つかの入出力実行仮想マシン３０を停止して、少ないメモリとＣＰＵで動作させても良い。
【００７６】
＜効果＞
第１の実施の形態のディスク制御装置１０は、或る論理ディスク５１の特性に合わせた入出力制御が、他の処理、例えば、他の論理ディスク５１の性能劣化を引き起こすことを抑制できる。その理由は、分配判断部２６が論理ディスク５１のキャッシュ２４の使用に関する特性値に基づいて、複数の入出力実行仮想マシン３０の中から当該特性値に適した１つを選択して起動し、当該論理ディスク５１の入出力を実行させるからである。
【００７７】
第２の効果は、リソースの効率的な使用が可能なことである。すなわち、ディスク制御装置１０は、適切な制御方式の入出力実行仮想マシン３０を、別々に割り当てたリソースで起動することで過剰なＣＰＵの使用を防止し、どの論理ディスク５１も効率よく動作させることができる。その理由は、分配判断部２６が論理ディスク５１のキャッシュ２４の使用に関する特性値に基づいて、入出力実行仮想マシン３０に適切なリソースを割り当てて起動するからである。
【００７８】
さらに、以下の効果が生じる。
【００７９】
１）論理ディスク５１の負荷パターンに適した入出力実行仮想マシン３０に、当該論理ディスク５１の入出力要求を割り振ることで、キャッシュ２４を効率よく使用することができるためヒット率・応答性能・スループットが向上する。
【００８０】
２）さまざまな用途の論理ディスク５１に適した、さまざまな制御方式の入出力部２２を内包することで、運用方法に適した動作を必要な時間帯に必要な分だけ動作させることが可能となる。
【００８１】
３）キャッシュ２４へのアクセスパターン分析のみで容易に適切なリソース配分ができる。
【００８２】
＜第２の実施形態＞
図８は、本発明の第２の実施の形態にかかるディスク制御装置１０の構成を示す図である。
【００８３】
本実施の形態のディスク制御装置１０は、論理ディスク５１を実現するディスク装置５０に接続されている。また、ディスク制御装置１０は、制御仮想マシン２０と、複数の入出力実行仮想マシン３０と、ハイパーバイザ１１を備える。
【００８４】
制御仮想マシン２０は、キャッシュ２４を備え、当該キャッシュ２４を用いて論理ディスク５１の入出力を実行する入出力部２２を備える。さらに、制御仮想マシン２０は、キャッシュ２４の使用にかかる特性値を測定するキャッシュアクセス測定部２５と、特性値に基づいて、複数の入出力実行仮想マシン３０の中から１つを選択してハイパーバイザ１１に通知する分配判断部２６と、を備える。
【００８５】
複数の入出力実行仮想マシン３０は、各々異なる制御方式で、入出力を実行する入出力部２２を備える。ハイパーバイザ１１は、分配判断部２６から通知された入出力実行仮想マシン３０を起動し、論理ディスク５１に対する入出力要求の送付先を、制御仮想マシン２０から起動した入出力実行仮想マシン３０に切替える。
【００８６】
本実施の形態においては、第１の実装の形態と異なり、入出力部２２、キャッシュアクセス測定部２５、および、分配判断部２６は、ＳＡＮ制御部２１のような単位で実装されていない。入出力部２２、キャッシュアクセス測定部２５、および、分配判断部２６は、各々単独で実装されていても良い。この場合、入出力実行仮想マシン３０は、入出力部２２だけを備えていれば十分である。
【００８７】
また、分配判断部２６は、ゲストＯＳ２７を経由せず、プロセッサ６１の不正命令による割り出し等を利用して、直接ハイパーバイザ１１と通信しても良い。
【００８８】
本実施の形態においては、入出力実行仮想マシン３０は、一律、標準メモリ量と標準ＣＰＵ数を割り当てられて起動されても良い。
【００８９】
第２の実施の形態のディスク制御装置１０は、或る論理ディスク５１の特性に合わせた入出力制御が、他の処理、例えば、他の論理ディスク５１の性能劣化を引き起こすことを抑制できる。その理由は、分配判断部２６が論理ディスク５１のキャッシュ２４の使用に関する特性値に基づいて、複数の入出力実行仮想マシン３０の中から当該特性値に適した１つを選択して起動し、当該論理ディスク５１の入出力を実行させるからである。
【００９０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００９１】
１０    ディスク制御装置
１１    ハイパーバイザ
１２    仮想基盤制御部
１３    仮想マシン実行部
１Ａ    物理ポート
２０    制御仮想マシン
２１    ＳＡＮ制御部
２２    入出力部
２３    実行部
２４    キャッシュ
２５    キャッシュアクセス測定部
２６    分配判断部
２７    ゲストＯＳ
２８    パススイッチ管理部
２９    基盤パラメータ通知部
２Ａ    仮想ポート
３０    入出力実行仮想マシン
４０    ディスク制御システム
５０    ディスク装置
５１    論理ディスク
６０    コンピュータ装置
６１    プロセッサ
６２    外部記憶装置
６３    主記憶部
６４    バス
６５    プログラム
【図１】
2018128751.tif 000003
【図２】
2018128751.tif 000004
【図３】
2018128751.tif 000005
【図４】
2018128751.tif 000006
【図５】
2018128751.tif 000007
【図６】
2018128751.tif 000008
【図７】
2018128751.tif 000009
【図８】
2018128751.tif 000010
【図９】
2018128751.tif 000011