(57)【要約】【課題】複数のサーバからアクセスされる複数のＣＡポートのＩＯ処理性能を均等化すること。【解決手段】ストレージ装置３の予測データ受信部３１１が、複数のサーバ２から送信された通信データから予測データを取り出す。そして、処理ステップ変更部３１３又はＣＰＵパワー変更部３１４が、複数のサーバ２から送信された予測データを用いて各ＣＡポート３０のアクセス予測負荷値を計算し、各ＣＡポート３０のアクセス予測負荷値に基づいて、各ＣＡポート３０のＩＯ処理に関する設定を変更する。【選択図】図１
2018169767.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が使用するデータを記憶するストレージ装置において、
前記情報処理装置との各インタフェースポートのデータ流量に関して各情報処理装置が予測して送信した予測データを受信する受信部と、
前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測値を計算し、計算したアクセス予測値に基づいて各インタフェースポートの処理に関する設定を変更する変更部と
を有することを特徴とするストレージ装置。
【請求項２】
前記変更部は、前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測数を計算し、計算したアクセス予測数に基づいて、各インタフェースポートの処理を多い処理にするか少ない処理にするかの設定を変更することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記変更部は、前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測流量を計算し、計算したアクセス予測流量に基づいて、各インタフェースポートに演算処理装置を割り当てる割合の設定を変更することを特徴とする請求項１に記載のストレージ装置。
【請求項４】
当該ストレージ装置は、当該ストレージ装置を制御する制御装置を２つ有し、
各制御装置はインタフェースポートを有し、データを記憶する記憶部を一方の制御装置が担当し、
前記変更部は、担当の制御装置を別の制御装置に変更することで各インタフェースポートの処理を多い処理にするか少ない処理にするかの設定を変更することを特徴とする請求項２に記載のストレージ装置。
【請求項５】
データを記憶する装置として使用するストレージ装置のインタフェースポート毎に読み書きに関するデータの量を流量データとして収集する収集部と、
前記収集部により収集された流量データに基づいて前記インタフェースポート毎に読み書きに関するデータの量を予測して予測データを作成する予測部と、
前記予測部により作成された予測データを複数の情報処理装置から収集して各インタフェースポートの処理に関する設定を変更する前記ストレージ装置に該予測データを送信する送信部と
を有することを特徴とする情報処理装置。
【請求項６】
コンピュータに、
データを記憶する装置として使用するストレージ装置のインタフェースポート毎に読み書きに関するデータの量を流量データとして収集し、
収集した流量データに基づいて前記インタフェースポート毎に読み書きに関するデータの量を予測して予測データを作成し、
作成した予測データを複数の情報処理装置から収集して各インタフェースポートの処理に関する設定を変更する前記ストレージ装置に該予測データを送信する
処理を実行させることを特徴とするドライバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、情報処理装置及びドライバプログラムに関する。
【背景技術】
【０００２】
サーバは、使用するデータを記憶するストレージ装置にＩＯ（Input  Output）アクセスする場合、サーバ側のインタフェースとストレージ装置側のインタフェースを介するアクセスパスを用いてアクセスを行う。サーバとストレージ装置との間のアクセスパスは冗長化されることが多く、サーバ上で動作するマルチパスドライバがアクセスパスを選択してストレージ装置にアクセスする。
【０００３】
図１８は、サーバからストレージ装置へのＩＯアクセス例を示す図である。図１８に示すように、サーバＸ、サーバＹ及びサーバＺで表されるサーバ９２で動作するユーザアプリ２０は、マルチパスドライバ９２１にＩＯアクセスを要求する。
【０００４】
マルチパスドライバ９２１は、サーバ９２側のＨＢＡ（Host  Bus  Adapter）２２とストレージ装置９３側のＣＡ（Channel  Adapter）ポート３０を介するアクセスパスを選択する。図１８では、サーバＸで動作するマルチパスドライバ９２１は、ＨＢＡ２２とＣＡポートＡで表されるＣＡポート３０を介するアクセスパスと他のＨＢＡ２２とＣＡポートＢで表されるＣＡポート３０を介するアクセスパスのいずれかを選択する。マルチパスドライバ９２１は、アクセス性能が最適化されるようにアクセスパスを選択する。
【０００５】
サーバ９２からストレージ装置９３へのＩＯアクセスにおいて、サーバ９２から要求するアクセス流量は以下の２つに依存する。ここで、アクセス流量とは、ＩＯアクセスにおいて転送されるデータの量である。
（１）サーバ９２上で動作するユーザアプリ２０の特性
（２）サーバ９２の役割
【０００６】
上記（１）の例としては、ユーザアプリ２０の動作時間帯（業務時間帯、深夜のバックアップ）、ユーザアプリ２０のＲｅａｄとＷｒｉｔｅの比率等がある。上記（２）の例としては、メイン業務サーバ、サブ業務サーバ、待機系サーバ等がある。
【０００７】
図１９及び図２０に、サーバ９２の役割に依存するアクセス流量の変化例を示す。図１９及び図２０において、サーバＸはメイン業務サーバであり、サーバＹはサブ業務サーバであり、サーバＺは待機系サーバである。図１９は、月曜日の業務アプリのアクセス流量の変化例を示す図である。ここで、業務アプリとは、業務サーバ及び業務サーバの待機系で動作する業務アプリケーションである。図１９において、横軸は時間を示し、縦軸はアクセス流量を示す。図１９に示すように、サーバ９２の役割に応じて、１日のアクセス流量の時間変化は異なる。
【０００８】
図２０は、曜日毎の業務アプリのアクセス流量の統計例を示す図である。図２０において、横軸は曜日を示し、縦軸はアクセス流量を示す。図２０に示すように、サーバ９２の役割に応じて、曜日毎のアクセス流量は異なる。
【０００９】
また、各アクセスパスにおけるアクセス性能は、ストレージ装置９３の以下の２つに依存する。
（３）各ＣＡポート３０の内部処理ステップ数
（４）各ＣＡポート３０に割り当てられるＣＰＵ（Central  Processing  Unit）パワー
【００１０】
上記（３）は、ストレージ装置９３がアクセスを受信してからサーバ９２へ応答するまでのＣＭ（Controller  Module：ストレージ装置９３の制御装置）によるＩＯ処理のステップ数であり、ＣＡポート３０に依存する。図２１は、ＣＡポート３０毎の内部処理ステップ数の相違例を示す図である。図２１に示すように、各ＣＡポート３０のＩＯ処理として、ＩＯアクセスを受領するＩＯ受領処理、記憶部３２との間でデータの転送を行うデータ転送処理、ＩＯアクセスに対する応答を行うＩＯ応答処理が行われる。
【００１１】
ただし、ＣＡポートＡ及びＣＡポートＣのＩＯ処理は、ＣＡポートＢとＣＡポートＤのＩＯ処理と比較すると通知処理の分だけ処理ステップ数が多い。ここで、通知処理とは、非担当のＣＭのＣＡポート３０が担当のＣＭのＣＡポート３０にＩＯ処理を行ったことを通知する処理である。図２１では、ＣＡポートＡとＣＡポートＣは、非担当ＣＭにあるＣＡポート３０であり、ＣＡポートＢとＣＡポートＤは、担当ＣＭにあるＣＡポート３０である。なお、担当ＣＭは、記憶部３２の制御を担当しているＣＭである。また、図２１に示す以外にも、ＣＡポート毎に内部処理ステップ数が異なる場合がある。
【００１２】
上記（４）に関して、図２２は、ＣＰＵパワーの各ＣＡポート３０への割り当て例を示す図である。図２２では、ＣＡポートＡとＣＡポートＢのＩＯ処理にＣＰＵパワーの２０％が割り当てられ、ＣＡポートＣとＣＡポートＤのＩＯ処理にＣＰＵパワーの１５％が割り当てられ、その他処理にＣＰＵパワーの３０％が割り当てられている。
【００１３】
サーバ９２上のユーザアプリ２０の処理時間を最短とするには、上記（１）、（２）に応じて（３）、（４）を調整する必要がある。しかし、サーバ９２には上記（１）、（２）をストレージ装置９３へ送信する機能がなく、ストレージ装置９３は上記（１）、（２）に応じて（３）、（４）を調整することができない。
【００１４】
このため、マルチパスドライバ９２１は、ストレージ装置９３側から上記（３）、（４）の情報を取得し、アクセスパスを選択する際、取得した（３）の情報を用いて、内部処理ステップの少ないＣＡポート３０へのアクセスパスを優先的に選択する。また、マルチパスドライバ９２１は、取得した（４）の情報を用いて、ＣＡポート３０に割り当てられたＣＰＵパワーを把握し、処理しきれない分のＩＯアクセスはマルチパスドライバ９２１内部で一旦保留することで、サーバ９２からのアクセス流量を制限する。
【００１５】
なお、複数のプロセッサにデータが分散配置された分散型データベース管理システムで、各プロセッサの処理負荷の偏りを検出し、偏りを均等化させ得るデータ分散配置構成を求め、所定のタイミングでデータ分散配置構成の変更処理を行う技術がある。この技術によれば、各プロセッサにおける処理負荷を容易に均等化することができる。
【００１６】
また、各プロセッサから発行されるメモリアクセスの偏り／競合が判別できるようアクセスの統計を採取するトレース機能によりメモリの負荷状態を検出し、メモリ空間を交換することでメモリアクセスの負荷分散を実現する技術がある。
【００１７】
また、アクセス処理の対象となるデータの容量を示すデータ使用量を、データベースサーバ毎に取得し、データベースサーバ毎のデータ使用量の比率に基づきＣＰＵ割当量の比率を計算してデータベースサーバへのＣＰＵ資源の割り当てを変更する技術がある。この技術によれば、データベース管理システムの処理性能の低下を少なくし、処理性能のアンバランスを是正することができる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開平９−２１８８５８号公報
【特許文献２】特開２００７−２５７０２８号公報
【特許文献３】特開２００７−２４９４６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
図１８に示したマルチパスドライバ９２１は、各ＣＡポート３０の内部処理ステップ数に基づいてアクセスパスを選択し、各ＣＡポート３０に割り当てられたＣＰＵパワーの割合に基づいてアクセス流量を制限する。しかしながら、このようなアクセスパスの選択とアクセス流量の制限では、図１８に示したシステム全体としてのアクセス性能を均等化することができないという問題がある。
【００２０】
図２３は、従来技術の問題を説明するための図である。図２３に示すように、サーバＸとサーバＹのマルチパスドライバ９２１が、各ＣＡポート３０に割り当てられたＣＰＵパワーの割合に基づいてアクセス流量制限ぎりぎりのアクセス流量で同時にＣＡポートＢへＩＯアクセスを要求する。すると、ＣＡポートＢのＩＯ処理に必要なＣＰＵパワーがＣＡポートＢに割り当てられたＣＰＵパワーを超えてしまい、ＩＯアクセスの再送が必要となる。
【００２１】
本発明は、１つの側面では、複数のサーバからアクセスされる複数のＣＡポートのＩＯ性能を均等化することを目的とする。
【課題を解決するための手段】
【００２２】
１つの態様では、ストレージ装置は、複数の情報処理装置が使用するデータを記憶する。ストレージ装置は、受信部と変更部とを有する。受信部は、情報処理装置との各インタフェースポートのデータ流量に関して各情報処理装置が予測して送信した予測データを受信する。変更部は、受信部が複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測値を計算し、計算したアクセス予測値に基づいて各インタフェースポートの処理に関する設定を変更する。
【発明の効果】
【００２３】
１つの側面では、本発明は、複数のサーバからアクセスされる複数のＣＡポートのＩＯ性能を均等化することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施例に係る情報処理システムの構成を示す図である。
【図２】図２は、流量データの一例を示す図である。
【図３】図３は、予測データ作成部により作成された予測データの一例を示す図である。
【図４】図４は、ストレージ装置の予測データ記憶部により記憶される予測データの一例を示す図である。
【図５】図５は、サーバによるＩＯアクセス制御と流量データ作成の処理フローを示す図である。
【図６】図６は、サーバによるＩＯアクセス制御と流量データ作成の処理フローを示すフローチャートである。
【図７】図７は、予測データ作成の処理フローを示す図である。
【図８】図８は、予測データ作成の処理フローを示すフローチャートである。
【図９】図９は、予測データの通信処理のフローを示す図である。
【図１０】図１０は、予測データ送信と予測データ受信の処理フローを示すフローチャートである。
【図１１】図１１は、ＣＡポートのＩＯ処理に関する設定を変更する処理のフローを示す図である。
【図１２】図１２は、内部処理の設定を変更する処理のフローを示すフローチャートである。
【図１３】図１３は、ＣＰＵパワー割り当ての設定を変更する処理のフローを示すフローチャートである。
【図１４】図１４は、ＣＰＵパワー調整処理のフローを示すフローチャートである。
【図１５】図１５は、ＩＯ要求待ちスレッド及びＩＯ要求キュー処理スレッドの処理フローを示すフローチャートである。
【図１６】図１６は、実施例に係る均等化プログラムを実行するＣＰＵを有するＣＭのハードウェア構成を示す図である。
【図１７】図１７は、実施例に係るマルチパスドライバを実行するコンピュータのハードウェア構成を示す図である。
【図１８】図１８は、サーバからストレージ装置へのＩＯアクセス例を示す図である。
【図１９】図１９は、月曜日の業務アプリのアクセス流量の変化例を示す図である。
【図２０】図２０は、曜日毎の業務アプリのアクセス流量の統計例を示す図である。
【図２１】図２１は、ＣＡポート毎の内部処理ステップ数の相違例を示す図である。
【図２２】図２２は、ＣＰＵパワーの各ＣＡポートへの割り当て例を示す図である。
【図２３】図２３は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【００２５】
以下に、本願の開示するストレージ装置、情報処理装置及びドライバプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００２６】
まず、実施例に係る情報処理システムの構成について説明する。図１は、実施例に係る情報処理システムの構成を示す図である。図１に示すように、実施例に係る情報処理システム１は、サーバＡ、サーバＢ及びサーバＣで表される３台のサーバ２と、ＣＡポートＡ、ＣＡポートＢ、ＣＡポートＣ及びＣＡポートＤで表される４つのＣＡポート３０を有するストレージ装置３とを有する。サーバ２は、情報処理を行う装置である。ストレージ装置３は、サーバ２が使用するデータを記憶する不揮発性の記憶部３２を有する装置である。
【００２７】
なお、ここでは説明の便宜上、３台のサーバ２を示したが、情報処理システム１は、２台又は４台以上のサーバ２を有してよい。また、ストレージ装置３は、２つ、３つ又は５つ以上のＣＡポート３０を有してよい。
【００２８】
サーバ２では、ユーザアプリ２０とマルチパスドライバ２１が動作する。ユーザアプリ２０は、業務アプリケーション等のユーザアプリケーションである。また、サーバ２は、ＨＢＡ２２を有する。ＨＢＡ２２は、ストレージ装置３とのインタフェースである。ＣＡポート３０は、サーバ２とのインタフェースである。
【００２９】
マルチパスドライバ２１は、ＩＯ中継部２１１と、パス選択部２１２と、統計部２１３と、流量データ記憶部２１４と、予測データ作成部２１５と、予測データ記憶部２１６と、予測データ送信部２１７とを有する。
【００３０】
ＩＯ中継部２１１は、ユーザアプリ２０からストレージ装置３へのＩＯアクセス要求を中継する。ＩＯ中継部２１１は、パス選択部２１２により選択されたアクセスパスに基づいて、ユーザアプリ２０からストレージ装置３へのＩＯ要求をＨＢＡ２２に渡す。パス選択部２１２は、各アクセスパスの利用が分散されるようにアクセスパスを選択する。
【００３１】
ＩＯ中継部２１１は、中継したＩＯアクセス要求に関する情報をアクセス情報として統計部２１３に渡す。アクセス情報には、アクセス先のＣＡポート３０、アクセス日時、転送データサイズ、ＲｅａｄであるかＷｒｉｔｅであるかを示す情報が含まれる。
【００３２】
統計部２１３は、アクセス情報を統計処理して流量データを作成し、流量データ記憶部２１４に格納する。流量データ記憶部２１４は、流量データを記憶する。図２は、流量データの一例を示す図である。図２に示すように、流量データには、ＣＡポート名、月日、時間帯、Ｒｅａｄアクセス数、Ｒｅａｄ転送データサイズ、Ｗｒｉｔｅアクセス数、Ｗｒｉｔｅ転送データサイズが含まれる。
【００３３】
ＣＡポート名は、ＣＡポート３０の名前であり、流量データがどのＣＡポート３０に関するデータであるかを示す。図２は、ＣＡポートＡに関する流量データである。月日は、ストレージ装置３へのＩＯアクセスが行われた月と日である。時間帯は、ストレージ装置３へのＩＯアクセスが行われた時間である。図２では、ストレージ装置３へのＩＯアクセスが１時間単位で集計される。
【００３４】
Ｒｅａｄアクセス数は、ストレージ装置３へのＲｅａｄアクセスの回数である。Ｒｅａｄ転送データサイズは、Ｒｅａｄアクセスによりストレージ装置３からサーバ２へ転送されたデータのサイズである。Ｗｒｉｔｅアクセス数は、ストレージ装置３へのＷｒｉｔｅアクセスの回数である。Ｗｒｉｔｅ転送データサイズは、Ｗｒｉｔｅアクセスによりサーバ２からストレージ装置３へ転送されたデータのサイズである。
【００３５】
例えば、ＣＡポートＡに関しては、「８月２日」の「９：００」〜「９：５９」の間に、Ｒｅａｄアクセスが「２０００００回」行われ、ストレージ装置３からサーバ２へ「３０ＧＢ（ギガバイト）」のデータが転送された。また、同じ時間帯に、Ｗｒｉｔｅアクセスが「３０００００回」行われ、サーバ２からストレージ装置３へ「４０ＧＢ」のデータが転送された。
【００３６】
予測データ作成部２１５は、流量データ記憶部２１４が記憶する流量データを用いて未来の流量を予測し、予測データを作成する。予測データ作成部２１５は、例えば、過去の流量データの曜日毎時間帯毎の平均値を計算して予測データを作成する。予測データ作成部２１５は、ＣＡポート３０毎に予測データを作成し、予測データ記憶部２１６に格納する。予測データ記憶部２１６は、予測データ作成部２１５により作成された予測データを記憶する。
【００３７】
図３は、予測データ作成部２１５により作成された予測データの一例を示す図である。図３に示すように、予測データには、ＣＡポート名、曜日、時間帯、Ｒｅａｄアクセス数、Ｒｅａｄ転送データサイズ、Ｗｒｉｔｅアクセス数、Ｗｒｉｔｅ転送データサイズが含まれる。
【００３８】
ＣＡポート名は、ＣＡポート３０の名前であり、予測データがどのＣＡポート３０に関するデータであるかを示す。図３は、ＣＡポートＡに関する予測データである。曜日は、予測が行われた曜日である。時間帯は、予測が行われた時間である。図３では、予測が１時間単位で行われる。
【００３９】
Ｒｅａｄアクセス数は、ストレージ装置３へのＲｅａｄアクセスの予測回数である。Ｒｅａｄ転送データサイズは、Ｒｅａｄアクセスによりストレージ装置３からサーバ２へ転送されるデータの予測サイズである。Ｗｒｉｔｅアクセス数は、ストレージ装置３へのＷｒｉｔｅアクセスの予測回数である。Ｗｒｉｔｅ転送データサイズは、Ｗｒｉｔｅアクセスによりサーバ２からストレージ装置３へ転送されるデータの予測サイズである。
【００４０】
例えば、ＣＡポートＡに関しては、「日曜日」の「１：００」〜「１：５９」の間に、Ｒｅａｄアクセスが「２００００回」行われることが予測され、ストレージ装置３からサーバ２へ「２０ＧＢ」のデータが転送されることが予測される。また、同じ時間帯に、Ｗｒｉｔｅアクセスが「３００００回」行われることが予測され、サーバ２からストレージ装置３へ「４０ＧＢ」のデータが転送されることが予測される。
【００４１】
予測データ送信部２１７は、予測データをストレージ装置３に送信する必要があるか否かを判定し、送信する必要がある場合に、予測データ記憶部２１６が記憶する予測データをＩＯ中継部２１１の通信データに付与してＩＯ中継部２１１に渡す。ここで、通信データには、アクセス先の情報、ＲｅａｄとＷｒｉｔｅの区別、Ｗｒｉｔｅの場合のデータ等が含まれる。ＩＯ中継部２１１は、予測データを通信データとともにストレージ装置３に送信する。
【００４２】
図１に戻って、ストレージ装置３では、ＣＡポートＡ〜ＣＡポートＤのＩＯ性能を均等化する均等化部３１が動作する。均等化部３１は、予測データ受信部３１１と、予測データ記憶部３１２と、処理ステップ変更部３１３と、ＣＰＵパワー変更部３１４とを有する。
【００４３】
予測データ受信部３１１は、サーバ２から送信された通信データに予測データが含まれるか否かを判定し、予測データが含まれている場合には、予測データを予測データ記憶部３１２に格納する。予測データ記憶部３１２は、予測データ受信部３１１により通信データから取り出された予測データを記憶する。予測データ記憶部３１２は、サーバＡ、サーバＢ及びサーバＣから送られた予測データをサーバ毎ポート毎に記憶する。
【００４４】
図４は、予測データ記憶部３１２により記憶される予測データの一例を示す図である。図４に示すように、予測データ記憶部３１２により記憶される予測データには、ＣＡポート名、サーバ名、曜日、時間帯、Ｒｅａｄアクセス数、Ｒｅａｄ転送データサイズ、Ｗｒｉｔｅアクセス数、Ｗｒｉｔｅ転送データサイズが含まれる。
【００４５】
ＣＡポート名は、ＣＡポート３０の名前であり、予測データがどのＣＡポート３０に関するデータであるかを示す。図４は、ＣＡポートＡに関する予測データである。サーバ名は、サーバ２の名前であり、予測データがどのサーバ２に関するデータであるかを示す。図４は、サーバＡに関する予測データである。曜日、時間帯、Ｒｅａｄアクセス数、Ｒｅａｄ転送データサイズ、Ｗｒｉｔｅアクセス数及びＷｒｉｔｅ転送データサイズは、図３に示したものと同じである。
【００４６】
例えば、ＣＡポートＡに関しては、「日曜日」の「１：００」〜「１：５９」の間に、Ｒｅａｄアクセスが「２００００回」行われることが予測され、ストレージ装置３からサーバＡへ「２０ＧＢ」のデータが転送されることが予測される。また、同じ時間帯に、Ｗｒｉｔｅアクセスが「３００００回」行われることが予測され、サーバＡからストレージ装置３へ「４０ＧＢ」のデータが転送されることが予測される。
【００４７】
処理ステップ変更部３１３は、予測データ記憶部３１２により記憶される予測データを用いて各ＣＡポート３０へのアクセス予測数を比較する。ここで、アクセス予測数は、サーバＡ、サーバＢ及びサーバＣから送信された予測データのＲｅａｄアクセス数とＷｒｉｔｅアクセス数を合計した値である。
【００４８】
そして、処理ステップ変更部３１３は、アクセス予測数が少ないＣＡポート３０に関して内部処理ステップ数の多い処理を行うように、ＣＡポート３０の内部処理の設定を変更する。例えば、ＣＡポートＡとＣＡポートＣのアクセス予測数がＣＡポートＢとＣＡポートＤのアクセス予測数より少ない場合には、処理ステップ変更部３１３は、ＣＡポートＡとＣＡポートＣで内部処理ステップ数の多い処理を行うように設定を変更する。
【００４９】
また、例えば、２つのＣＭ（ストレージ装置３の制御装置）にそれぞれ２つのＣＡポート３０がある場合には、処理ステップ変更部３１３は、同じＣＭにある２つのＣＡポート３０のアクセス予測数の合計を計算する。そして、処理ステップ変更部３１３は、合計値が少ない方のＣＭを非担当ＣＭとして通知処理を行わせるように設定を変更する。
【００５０】
ＣＰＵパワー変更部３１４は、各ＣＡポート３０へのアクセス予測流量に基づいてＣＰＵパワーの各ＣＡポート３０への割り当てを変更する。ここで、アクセス予測流量は、サーバＡ、サーバＢ及びサーバＣから送信された予測データのＲｅａｄ転送データサイズとＷｒｉｔｅデータ転送サイズを合計した値である。
【００５１】
例えば、ＣＰＵパワー変更部３１４は、アクセス予測流量に基づいて、現在の各ＣＡポート３０へのＣＰＵ割り当てを調整する。あるいは、ＣＰＵパワー変更部３１４は、アクセス予測流量の比率と同じ割合となるように、ＣＰＵパワーの各ＣＡポート３０への割り当てを変更する。
【００５２】
なお、ＣＭが２つ以上あり、各ＣＭにＣＰＵがある場合には、各ＣＭのＣＰＵは、ＣＭにあるＣＡポート３０のＩＯ処理を実行する。したがって、ＣＰＵパワー変更部３１４は、ＣＭにあるＣＡポート３０のＩＯ処理とその他処理に割り当てられるＣＰＵパワーの合計が１００％となるようにＣＰＵパワーを各ＣＡポート３０へ割り当てる。また、ＣＭが２つ以上あり、各ＣＭにＣＰＵがある場合には、いずれかのＣＭが均等化部３１を有する。
【００５３】
次に、サーバ２によるＩＯアクセス制御と流量データ作成の処理フローについて説明する。図５は、サーバ２によるＩＯアクセス制御と流量データ作成の処理フローを示す図であり、図６は、サーバ２によるＩＯアクセス制御と流量データ作成の処理フローを示すフローチャートである。
【００５４】
図５に示すように、ユーザアプリ２０がマルチパスドライバ２１へＩＯアクセスを要求する（処理＃１）。すると、ＩＯ中継部２１１がパス選択部２１２へ問い合わせを行い、パス選択部２１２がアクセスパスを選択し、選択したアクセスパスをＩＯ中継部２１１に通知する（処理＃２）。
【００５５】
そして、ＩＯ中継部２１１が通知されたアクセスパスを使用してストレージ装置３へアクセスする（処理＃３）。そして、ＩＯ中継部２１１がアクセス情報を統計部２１３へ通知する（処理＃４）。そして、統計部２１３がアクセス情報を統計処理し、流量データを作成し、流量データ記憶部２１４に格納する（処理＃５）。
【００５６】
また、図６に示すように、マルチパスドライバ２１は、ユーザアプリ２０からＩＯアクセス要求を受け付け（ステップＳ１）、アクセスパスを選択する（ステップＳ２）。そして、マルチパスドライバ２１は、選択したアクセスパスでストレージ装置３へアクセスする（ステップＳ３）とともに、流量データを作成する流量スレッドにアクセス情報を通知する。ここで、流量スレッドは、統計部２１３に対応する。
【００５７】
流量スレッドは、アクセス情報を受信し（ステップＳ１１）、アクセス先ＣＡポート３０の流量データテーブルがあるか否かを判定する（ステップＳ１２）。ここで、流量データテーブルは、流量データが登録されるテーブルである。そして、流量スレッドは、流量データテーブルがない場合には、流量データテーブルを作成する（ステップＳ１３）。
【００５８】
そして、流量スレッドは、流量データテーブルにアクセス日時のデータ域が存在するか否かを判定し（ステップＳ１４）、存在しない場合には、古い日時のデータ域を削除し、アクセス日時のデータ域を作成する（ステップＳ１５）。そして、流量スレッドは、受信したアクセス情報を用いて、アクセス日時のデータ域の情報を更新する（ステップＳ１６）。
【００５９】
このように、マルチパスドライバ２１は、ＩＯアクセスの実績に基づいて流量データを作成することで、未来の流量データを予測することができる。
【００６０】
次に、予測データ作成の処理フローについて説明する。図７は、予測データ作成の処理フローを示す図であり、図８は、予測データ作成の処理フローを示すフローチャートである。
【００６１】
図７に示すように、予測データ作成部２１５は、流量データ記憶部２１４に記憶された流量データを用いて未来予測を行い、予測データを作成し、予測データ記憶部２１６に格納する（処理＃１）。なお、予測データ作成部２１５は、２４時間間隔等の一定時間間隔で予測データを作成する。
【００６２】
また、図８に示すように、予測データ作成部２１５は、ＣＡポート３０毎にステップＳ２１〜ステップＳ２６の処理を行う。なお、図８は、火曜日の予測データを作成する場合のフローチャートを示すが、他の曜日の予測データも同様に作成される。
【００６３】
予測データ作成部２１５は、流量データを参照し（ステップＳ２１）、火曜日のデータがあるか否かを判定する（ステップＳ２２）。そして、火曜日のデータがない場合には、予測データ作成部２１５は、ステップＳ２１に戻って次のＣＡポート３０の処理を行う。
【００６４】
一方、火曜日のデータがある場合には、予測データ作成部２１５は、該当ＣＡポート３０の予測データテーブルがあるか否かを判定する（ステップＳ２３）。ここで、予測データテーブルは、予測データが登録されるテーブルである。そして、該当ＣＡポート３０の予測データテーブルがない場合には、予測データ作成部２１５は、予測データテーブルを作成する（ステップＳ２４）。
【００６５】
そして、予測データ作成部２１５は、流量データから未来予測を行う（ステップＳ２５）。そして、予測データ作成部２１５は、予測データテーブルを更新し、予測データ送信状態を未送信に設定する（ステップＳ２６）。そして、予測データ作成部２１５は、全てのＣＡポート３０の流量データテーブルを参照すると、処理を終了する。
【００６６】
このように、予測データ作成部２１５が流量データを用いて予測データを作成することで、情報処理システム１は、予測データに基づいて、ＣＡポート３０のＩＯ性能を均等化することができる。
【００６７】
次に、予測データの通信処理のフローについて説明する。図９は、予測データの通信処理のフローを示す図であり、図１０は、予測データ送信と予測データ受信の処理フローを示すフローチャートである。
【００６８】
図９に示すように、ユーザアプリ２０がマルチパスドライバ２１へＩＯアクセスを要求する（処理＃１）。すると、ＩＯ中継部２１１がパス選択部２１２へ問い合わせを行い、パス選択部２１２がアクセスパスを選択し、選択したアクセスパスをＩＯ中継部２１１に通知する（処理＃２）。
【００６９】
そして、ＩＯ中継部２１１が予測データ送信部２１７に問い合わせを行い、予測データ送信部２１７が予測データ送信状態に基づいて予測データの送信要否を判定する。そして、予測データの送信が必要な場合、予測データ送信部２１７は、予測データを取得し、ＩＯアクセスで通信する通信データに予測データを付与する（処理＃３）。
【００７０】
そして、ＩＯ中継部２１１が、通知されたアクセスパスへＩＯアクセスを発行して、ストレージ装置３へのＩＯアクセスを行う（処理＃４）。そして、ストレージ装置３の予測データ受信部３１１が、通信データに予測データが含まれるかを判定し、予測データが含まれている場合には、受信した予測データをストレージ装置３の予測データ記憶部３１２に格納する（処理＃５）。
【００７１】
また、図１０に示すように、マルチパスドライバ２１は、ユーザアプリ２０からＩＯアクセス要求を受け付け（ステップＳ３１）、アクセスパスを選択する（ステップＳ３２）。そして、マルチパスドライバ２１は、アクセス先のＣＡポート３０の予測データの送信状態を確認し（ステップＳ３３）、予測データ送信状態が未送信であるか否かを判定する（ステップＳ３４）。
【００７２】
そして、予測データ送信状態が未送信である場合には、マルチパスドライバ２１は、通信データのＩＯパケットの空き領域に予測データを付与し（ステップＳ３５）、予測データ送信状態を送信済に設定する（ステップＳ３６）。そして、マルチパスドライバ２１は、選択したアクセスパスでストレージ装置３へアクセスする（ステップＳ３７）。
【００７３】
また、ストレージ装置３は、サーバ２から通信データを受信し（ステップＳ４１）、予測データ受信部３１１が、通信データのＩＯパケットの空き領域に予測データが付与されているか否かを判定する（ステップＳ４２）。そして、通信データのＩＯパケットの空き領域に予測データが付与されている場合には、別のスレッドが、予測データのみ抽出し（ステップＳ４３）、予測データ記憶部３１２に予測データを格納する（ステップＳ４４）。
【００７４】
一方、通信データのＩＯパケットの空き領域に予測データが付与されていない場合、あるいは、別のスレッドが予測データのみ抽出した後、ストレージ装置３は、通信データに対する処理を実行する（ステップＳ４５）。すなわち、ストレージ装置３は、ＩＯ受領処理、データ転送処理、ＩＯ応答処理等を行う。
【００７５】
このように、マルチパスドライバ２１が通信データに予測データを付与してストレージ装置３に送信することで、ストレージ装置３は、予測データを取得することができる。
【００７６】
次に、ＣＡポート３０のＩＯ処理に関する設定を変更する処理のフローについて説明する。図１１は、ＣＡポート３０のＩＯ処理に関する設定を変更する処理のフローを示す図であり、図１２は、内部処理の設定を変更する処理のフローを示すフローチャートであり、図１３は、ＣＰＵパワー割り当ての設定を変更する処理のフローを示すフローチャートである。なお、ＣＡポート３０のＩＯ処理に関する設定を変更する処理は、１時間間隔等の一定時間間隔で行われる。
【００７７】
図１１に示すように、処理ステップ変更部３１３は、予測データ記憶部３１２を参照して、各ＣＡポート３０へのアクセス予測数を比較する。そして、処理ステップ変更部３１３は、アクセス予測数の少ないＣＡポート３０のＩＯ処理で内部ステップ数が多い処理を実行するようにＣＡポート３０の内部処理の設定を変更する（処理＃１）。
【００７８】
また、ＣＰＵパワー変更部３１４は、予測データ記憶部３１２を参照して、各ＣＡポート３０へのアクセス予測流量を比較する。そして、ＣＰＵパワー変更部３１４は、アクセス予測流量に応じたＣＰＵパワーを各ＣＡポート３０に割り当てる（処理＃２）。
【００７９】
そして、ＩＯ要求待ちスレッドが、各サーバ２からのＩＯアクセス要求をＣＡポート３０毎にＩＯ待ちキューに登録する。また、ＩＯ要求キュー処理スレッドが、各ＣＡポート３０に割り当てられたＣＰＵパワーに基づいて、各ＣＡポート３０毎のＩＯ待ちキューからＩＯアクセス要求を取り出して処理する。
【００８０】
また、図１２に示すように、処理ステップ変更部３１３は、ＣＡポート３０を１つ指定して別の予測数計算スレッドでアクセス予測数を計算させる処理を全ＣＡポート３０について行う。
【００８１】
予測数計算スレッドは、該当ＣＡポート３０のアクセス予測数を０で初期化する（ステップＳ５１）。そして、予測数計算スレッドは、該当ＣＡポート３０の予測データテーブルが存在するか否かを判定し（ステップＳ５２）、予測データテーブルが存在しない場合には、処理を終了する。
【００８２】
一方、予測データテーブルが存在する場合には、予測数計算スレッドは、予測データテーブルから対象時間帯のＲｅａｄアクセス数とＷｒｉｔｅアクセス数を取得し、Ｒｅａｄアクセス数とＷｒｉｔｅアクセス数を該当ＣＡポート３０のアクセス予測数へ加算する（ステップＳ５３）。予測数計算スレッドは、ステップＳ５３の処理を全サーバ２の予測データテーブルについて行う。
【００８３】
そして、処理ステップ変更部３１３は、各ＣＡポート３０のアクセス予測数を比較する（ステップＳ６１）。そして、処理ステップ変更部３１３は、アクセス予測数の少ないＣＡポート３０のＩＯ処理として内部処理ステップ数の多い処理を実行するように各ＣＡポート３０の内部処理の設定を変更する（ステップＳ６２）。
【００８４】
このように、処理ステップ変更部３１３がアクセス予測数に基づいて内部処理の設定を変更することで、ストレージ装置３は、サーバ２からのＩＯアクセスの性能をＣＡポート３０間で均等化することができる。
【００８５】
また、図１３に示すように、ＣＰＵパワー変更部３１４は、ＣＡポート３０を１つ指定して別の予測流量計算スレッドでアクセス予測流量を計算させる処理を全ＣＡポート３０について行う。
【００８６】
予測流量計算スレッドは、該当ＣＡポート３０のアクセス予測流量を０で初期化する（ステップＳ７１）。そして、予測流量計算スレッドは、該当ＣＡポート３０の予測データテーブルが存在するか否かを判定し（ステップＳ７２）、予測データテーブルが存在しない場合には、処理を終了する。
【００８７】
一方、予測データテーブルが存在する場合には、予測流量計算スレッドは、予測データテーブルから対象時間帯のＲｅａｄ転送とＷｒｉｔｅ転送のデータサイズを取得し、Ｒｅａｄ転送とＷｒｉｔｅ転送のデータサイズを該当ＣＡポート３０のアクセス予測流量へ加算する（ステップＳ７３）。予測流量計算スレッドは、ステップＳ７３の処理を全サーバ２の予測データテーブルについて行う。
【００８８】
そして、ＣＰＵパワー変更部３１４は、アクセス予測流量に応じて各ＣＡポート３０へのＣＰＵパワーの割り当ての設定を変更するＣＰＵパワー調整処理を行う（ステップＳ８１）。
【００８９】
図１４は、ＣＰＵパワー調整処理のフローを示すフローチャートである。図１４に示すように、ＣＰＵパワー変更部３１４は、ステップＳ９１〜ステップＳ９３の処理をＣＡポート３０毎にアクセス予測流量の降順で行う。
【００９０】
すなわち、ＣＰＵパワー変更部３１４は、現在のＣＰＵパワー割り当て設定でアクセス予測流量を処理し切れるか否かを判定する（ステップＳ９１）。そして、ＣＰＵパワー変更部３１４は、アクセス予測流量を処理し切れる場合には、現在のＣＰＵパワー割り当て設定はアクセス予測流量に対し余剰か否かを判定する（ステップＳ９２）。
【００９１】
そして、アクセス予測流量に対し余剰である場合には、ＣＰＵパワー変更部３１４は、余剰分のＣＰＵパワーを未割当状態にする（ステップＳ９３）。そして、ＣＰＵパワー変更部３１４は、ステップＳ９１に戻って次にアクセス予測流量が大きいＣＡポート３０の処理を行う。
【００９２】
そして、全てのＣＡポート３０に対する処理が終了すると、ＣＰＵパワー変更部３１４は、余剰分のＣＰＵパワーを内部制御用に割り当てる（ステップＳ９４）。
【００９３】
一方、ステップＳ９１において、現在のＣＰＵパワー割り当て設定でアクセス予測流量を処理し切れない場合には、ＣＰＵパワー変更部３１４は、別の余剰回収スレッドにより、ステップＳ１０１〜ステップＳ１０４の処理を行った後、ステップＳ９２へ進む。
【００９４】
余剰回収スレッドは、未割当状態のＣＰＵパワーがあるか否かを判定し（ステップＳ１０１）、未割当状態のＣＰＵパワーがある場合には、未割当状態のＣＰＵパワーを該当ＣＡポート３０のＩＯ処理用に割り当てる（ステップＳ１０２）。
【００９５】
そして、余剰回収スレッドは、降順に選択されている該当のＣＡポート３０よりアクセス予測流量が小さいＣＡポート３０毎に昇順でステップＳ１０３〜ステップＳ１０４の処理を行う。すなわち、余剰回収スレッドは、更新後のＣＰＵパワー割り当て設定でアクセス予測流量を処理し切れるか否かを判定し（ステップ１０３）、処理し切れる場合には、処理を終了する。そして、制御はステップＳ９２に移動する。
【００９６】
一方、更新後のＣＰＵパワー割り当て設定でアクセス予測流量を処理し切れない場合には、余剰回収スレッドは、昇順に選択されているＣＡポート３０のＣＰＵパワーの割り当て設定を該当のＣＡポート３０に切り替える（ステップＳ１０４）。そして、余剰回収スレッドは、ステップＳ１０３に戻る。
【００９７】
また、余剰回収スレッドが、該当のＣＡポート３０よりアクセス予測流量が小さい全ＣＡポート３０について処理を終了した場合には、制御はステップＳ９２に移動する。
【００９８】
図１５は、ＩＯ要求待ちスレッド及びＩＯ要求キュー処理スレッドの処理フローを示すフローチャートである。図１５に示すように、ＩＯ要求待ちスレッドは、終了指示まで、各ＣＡポート３０が受信したＩＯアクセス要求をＣＡポート３０毎のＩＯ要求キューに登録する（ステップＳ１１１）処理を繰り返す。
【００９９】
また、ＩＯ要求キュー処理スレッドは、終了指示まで、ＣＰＵパワー割り当て設定に応じてＣＡポート３０毎のＩＯ要求キューからＩＯアクセス要求を取り出し（ステップＳ１２１）、取り出したＩＯアクセス要求を処理する（ステップＳ１２２）ことを繰り返す。
【０１００】
このように、ＣＰＵパワー変更部３１４がアクセス予測流量に基づいてＣＰＵパワー割り当ての設定を変更することで、ストレージ装置３は、サーバ２からのＩＯアクセスの性能をＣＡポート３０間で均等化することができる。
【０１０１】
なお、均等化部３１の機能は、同様の機能を有する均等化プログラムをＣＭが有するＣＰＵで実行することによって実現される。そこで、均等化プログラムを実行するＣＰＵを有するＣＭのハードウェア構成について説明する。図１６は、実施例に係る均等化プログラムを実行するＣＰＵを有するＣＭのハードウェア構成を示す図である。
【０１０２】
図１６に示すように、ＣＭ４０は、２つのＣＡポート３０と、ＣＰＵ４０ａと、フラッシュメモリ４０ｂと、ＲＡＭ４０ｃとを有する。ＣＰＵ４０ａは、ＲＡＭ４０ｃに記憶された均等化プログラムを読出して実行する処理装置である。
【０１０３】
フラッシュメモリ４０ｂは、均等化プログラムを記憶する不揮発性のメモリである。ＲＡＭ４０ｃは、フラッシュメモリ４０ｂから読み出された均等化プログラムを記憶する揮発性メモリである。また、ＲＡＭ４０ｃは、均等化プログラムの実行に必要なデータ、均等化プログラムの実行の途中結果等を記憶する。
【０１０４】
また、マルチパスドライバ２１の機能は、マルチパスドライバ２１をコンピュータで実行することによって実現される。そこで、マルチパスドライバ２１を実行するコンピュータのハードウェア構成について説明する。
【０１０５】
図１７は、実施例に係るマルチパスドライバ２１を実行するコンピュータのハードウェア構成を示す図である。図１７に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【０１０６】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【０１０７】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【０１０８】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【０１０９】
そして、コンピュータ５０において実行されるマルチパスドライバ２１は、コンピュータにより読み出し可能な記録媒体の一例であるＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、マルチパスドライバ２１は、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされたマルチパスドライバ２１は、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【０１１０】
上述してきたように、実施例では、マルチパスドライバ２１の統計部２１３が、アクセス情報を統計処理して流量データを作成し、予測データ作成部２１５が、流量データを用いて未来の流量を予測し、予測データを作成する。そして、予測データ送信部２１７が、通信データに予測データを付与し、ＩＯ中継部２１１が予測データが付与された通信データをストレージ装置３に送信する。
【０１１１】
そして、ストレージ装置３の予測データ受信部３１１が、サーバ２から送信された通信データから予測データを取り出す。そして、処理ステップ変更部３１３が、複数のサーバ２から送信された予測データを用いて各ＣＡポート３０のアクセス予測数を計算し、各ＣＡポート３０のアクセス予測数に基づいて、各ＣＡポート３０の内部処理の設定を変更する。また、ＣＰＵパワー変更部３１４が、複数のサーバ２から送信された予測データを用いて各ＣＡポート３０のアクセス予測流量を計算し、各ＣＡポート３０のアクセス予測流量に基づいて、各ＣＡポート３０へ割り当てるＣＰＵパワーの設定を変更する。
【０１１２】
したがって、情報処理システム１は、複数のサーバ２からのストレージ装置３へのアクセスの性能を均等化することができる。このため、情報処理システム１は、特定のＣＡポート３０のＩＯ性能が低下することを抑えることができ、特定のＣＡポート３０へのアクセス集中によるＩＯアクセスの再送を抑えることができる。
【０１１３】
なお、実施例では、マルチパスドライバ２１について説明したが、本発明はこれに限定されるものではなく、シングルパスのドライバにも同様に適用することができる。
【符号の説明】
【０１１４】
１    情報処理システム
２，９２    サーバ
３，９３    ストレージ装置
２０    ユーザアプリ
２１，９２１    マルチパスドライバ
２２    ＨＢＡ
３０    ＣＡポート
３１    均等化部
３２    記憶部
４０    ＣＭ
４０ａ    ＣＰＵ
４０ｂ    フラッシュメモリ
４０ｃ    ＲＡＭ
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
２１１    ＩＯ中継部
２１２    パス選択部
２１３    統計部
２１４    流量データ記憶部
２１５    予測データ作成部
２１６    予測データ記憶部
２１７    予測データ送信部
３１１    予測データ受信部
３１２    予測データ記憶部
３１３    処理ステップ変更部
３１４    ＣＰＵパワー変更部
【図１】
2018169767.tif 000003
【図２】
2018169767.tif 000004
【図３】
2018169767.tif 000005
【図４】
2018169767.tif 000006
【図５】
2018169767.tif 000007
【図６】
2018169767.tif 000008
【図７】
2018169767.tif 000009
【図８】
2018169767.tif 000010
【図９】
2018169767.tif 000011
【図１０】
2018169767.tif 000012
【図１１】
2018169767.tif 000013
【図１２】
2018169767.tif 000014
【図１３】
2018169767.tif 000015
【図１４】
2018169767.tif 000016
【図１５】
2018169767.tif 000017
【図１６】
2018169767.tif 000018
【図１７】
2018169767.tif 000019
【図１８】
2018169767.tif 000020
【図１９】
2018169767.tif 000021
【図２０】
2018169767.tif 000022
【図２１】
2018169767.tif 000023
【図２２】
2018169767.tif 000024
【図２３】
2018169767.tif 000025