(57)【要約】【課題】  帯域の制御を効率よく行うことで輻輳を回避し、かつクライアントが行う処理に応じてサーバ毎の帯域の割り当てを行う処理を可能とする。【解決手段】  記憶装置を共有する複数の計算機において、個々の計算機がアクセスを要求してきたクライアント計算機の属性に基づいてアクセスの優先度を決める制御部を設け、さらにその優先度を合計した結果を他の計算機で算出された優先度の合計と比較し、入出力帯域を割り当てる制御部を設け、その割り当てに従い優先的なアクセスから実行するようにした計算機システムを構築する。【選択図】  図１
2006067401.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を共有する複数の計算機を有する計算機システムにおける帯域制御方法であって、
前記複数の計算機に含まれる第一の計算機が、
前記第一の計算機に接続されるクライアント計算機から送信されるアクセス要求に、前記クライアント計算機の属性に応じて優先度を付与し、
前記優先度の情報を前記複数の計算機に含まれる他の計算機と交換することで、該第一の計算機と前記記憶装置との間の通信帯域を決定し、
前記決定された通信帯域に基づいて、前記記憶装置に前記アクセス要求を送信することを特徴とする帯域制御方法。
【請求項２】
前記通信帯域を決定する際に、前記第一の計算機が、該第一の計算機が受信した複数のアクセス要求に付与された優先度の合計を算出し、算出された優先度の合計値を前記他の計算機と交換することを特徴とする請求項１記載の帯域制御方法。
【請求項３】
前記第一の計算機が、
前記他の計算機から受信した優先度の合計値に基づいて、前記複数の計算機における優先度の合計値に対する該第一の計算機の前記優先度の合計値の割合を計算し、前記割合に対応するように前記記憶装置との間の通信帯域を決定することを特徴とする請求項２記載の帯域制御方法。
【請求項４】
前記優先度は、前記クライアント計算機の属性に関する所定の情報に基づいて決定されることを特徴とする請求項１記載の帯域制御方法。
【請求項５】
前記所定の情報は前記複数の計算機の各々に格納されていることを特徴とする請求項４記載の帯域制御方法。
【請求項６】
前記所定の情報は前記記憶装置に格納され、前記複数の計算機の各々は、前記記憶装置から前記所定の情報を読み出すことを特徴とする請求項４記載の帯域制御方法。
【請求項７】
前記第一の計算機が、前記優先度に関する情報を、前記複数の計算機間を接続するネットワークを介して前記他の計算機と交換することを特徴とする請求項１記載の帯域制御方法。
【請求項８】
前記第一の計算機が、前記優先度に関する情報を前記記憶装置を介して前記他の計算機と交換することを特徴とする請求項１記載の帯域制御方法。
【請求項９】
前記所定の情報には、前記クライアント計算機のIPアドレス、アクセスオペレーション又はアクセスするファイルに対応する優先度の情報が格納され、前記第一の計算機が前記情報に基づいて優先度付けすることを特徴とする請求項１記載の帯域制御方法。
【請求項１０】
前記記憶装置が複数あることを特徴とする請求項１記載の帯域制御方法。
【請求項１１】
前記記憶装置がNASであることを特徴とする請求項１記載の帯域制御方法。
【請求項１２】
第一の計算機と、
前記第一の計算機と接続される第二の計算機と、
前記第一の計算機及び前記第二の計算機と接続される記憶装置とを有し、
前記第一の計算機及び前記第二の計算機は、
該第一の計算機に接続されるクライアント計算機から送信されるアクセス要求に、前記クライアント計算機の属性に応じて優先度を付与し、
前記第一の計算機は、
前記第二の計算機で付与された前記優先度に関する情報を受信し、
前記受信した前記第二の計算機の前記優先度に関する情報と該第一の計算機の前記優先度に関する情報とから、前記記憶装置との間の通信帯域を決定し、
前記決定された通信帯域に基づいて、前記記憶装置に前記アクセス要求を送信することを特徴とする計算機システム。
【請求項１３】
前記通信帯域を決定する際に、前記第一の計算機が、該第一の計算機が受信した複数のアクセス要求に付与された優先度の合計を算出し、算出された優先度の合計値を前記第二の計算機と交換し、
前記第一の計算機が、
前記第二の計算機から受信した優先度の合計値と該第一の計算機の前記優先度の合計値を合計し、前記合計値に占める該第一の計算機の前記優先度の合計値の割合を計算し、前記割合に対応するように前記記憶装置との間の通信帯域を決定することを特徴とする請求項１２記載の計算機システム。
【請求項１４】
前記優先度は、前記クライアント計算機の属性に関する所定の情報に基づいて決定されることを特徴とする請求項１３記載の計算機システム。
【請求項１５】
前記所定の情報は前記記憶装置に格納され、前記第一の計算機及び前記第二の計算機の各々は、前記記憶装置から前記所定の情報を読み出すことを特徴とする請求項１３記載の計算機システム。
【請求項１６】
前記第一の計算機が、前記優先度に関する情報を、前記第一の計算機と前記第二の計算機間を接続するネットワークを介して前記第二の計算機と交換することを特徴とする請求項１３記載の計算機システム。
【請求項１７】
前記所定の情報には、前記クライアント計算機が前記第一の計算機にオンライン処理を要求する場合には、前記オンライン処理に関するアクセス要求に高い優先度を付加し、前記クライアント計算機が前記第一の計算機にバッチ処理を要求する場合には、前記バッチ処理に関するアクセス要求に低い優先度を付与するという情報が含まれていることを特徴とする請求項１３記載の計算機システム。
【請求項１８】
前記所定の情報には、前記クライアント計算機が前記第一の計算機にデータの読み出し処理を要求する場合には、前記データの読み出し処理に関するアクセス要求に低い優先度を付加し、前記クライアント計算機が前記第一の計算機にデータの書き込み処理を要求する場合には、前記データの書き込み処理に関するアクセス要求に高い優先度を付加するという情報が含まれていることを特徴とする請求項１３記載の計算機システム。
【請求項１９】
制御部と、他の計算機と共有される記憶装置と接続される第一の接続部と、前記他の計算機と接続される第二の接続部と、クライアント計算機と接続される第三の接続部と、メモリとを有し、
前記制御部は、
前記第三の接続部を介して受信する前記クライアント計算機からのアクセス要求に所定の情報に基づいて優先度を付加して前記メモリに格納し、
前記他の計算機から前記優先度に関する情報を受信し、
前記他の計算機の前記優先度に関する情報と前記メモリ部に格納されたアクセス要求に付与された前記優先度に関する情報に基づいて、前記記憶装置との間の通信帯域を決定し、
前記決定された通信帯域に基づいて、前記アクセス要求を前記第一の接続部を介して前記記憶装置へ送信することを特徴とする計算機。
【請求項２０】
第一の計算機と、
前記第一の計算機と接続される第二の計算機と、
前記第一及び第二の計算機と接続される記憶装置とを有し、
前記第一の計算機及び前記第二の計算機は、
該第一の計算機に接続されるクライアント計算機から送信されるアクセス要求に、前記クライアント計算機の属性に関する所定の情報に基づいて優先度を付与し、
前記第一の計算機は、
前記第二の計算機で付与された前記優先度に関する情報を受信し、
該第一の計算機が受信した複数のアクセス要求に付与された優先度の合計を算出し、算出された優先度の合計値を前記第二の計算機と交換し、
前記第一の計算機が、
前記第二の計算機から受信した優先度の合計値と該第一の計算機の前記優先度の合計値を合計し、前記合計値に占める該第一の計算機の前記優先度の合計値の割合を計算し、前記割合に対応するように前記記憶装置との間の通信帯域を決定し、
前記決定された通信帯域に基づいて、前記記憶装置に前記アクセス要求を送信し、
前記所定の情報には、前記クライアント計算機が前記第一の計算機にデータの読み出し処理を要求する場合には、前記データの読み出し処理に関するアクセス要求に低い優先度を付加し、前記クライアント計算機が前記第一の計算機にデータの書き込み処理を要求する場合には、前記データの書き込み処理に関するアクセス要求に高い優先度を付加するという情報と、前記クライアント計算機が前記第一の計算機にオンライン処理を要求する場合には、前記オンライン処理に関するアクセス要求に高い優先度を付加し、前記クライアント計算機が前記第一の計算機にバッチ処理を要求する場合には、前記バッチ処理に関するアクセス要求に低い優先度を付与するという情報が含まれる。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システム及び計算機システムの帯域制御方法に係り、特に同じ記憶装置を共有する複数の計算機を有するシステムにおける、システム内の計算機と記憶装置との間の帯域制御方法に関する。
【背景技術】
【０００２】
一般に、複数の計算機（以下「クライアント」又は「クライアント計算機」）に対してファイルサービス（具体的にはファイル形式のデータの送信又は格納）を提供する計算機（以下「サーバ」又は「サーバ計算機」）を有する計算機システムにおいては、クライアント計算機側の通信性能が向上しているため、サーバ計算機が使用する記憶装置へのサーバ計算機のアクセス速度の向上（つまり、サーバ計算機の応答性能の向上）が問題となる。
【０００３】
特に、複数のサーバ計算機を用いかつ一つの記憶装置を複数のサーバ計算機で共有して使用する計算機システムの場合、複数のサーバ計算機からこの記憶装置へのアクセスが混雑（集中）し、システムの性能が劣化してしまう。
【０００４】
このような混雑が起きた場合の対処方法として、特許文献１に開示された技術がある。特許文献１には、複数のキャッシュサーバを利用する場合に、複数のキャッシュサーバが共有するファイルサーバとの通信に輻輳が生じたことをきっかけにして、個々のキャッシュサーバが勝手にファイルサーバとの間の通信量を絞りこむ方法が開示されている。
【０００５】
【特許文献１】特開2003-345709号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された技術を上述した計算機システムに適用すると、複数のサーバが同じ記憶装置を共有する場合、記憶装置へのアクセスが集中して輻輳が発生すれば、サーバ個々が勝手に記憶装置へのアクセスを遅延させることになる。
【０００７】
しかし、この場合、例えばあるクライアントが優先的にデータの読み出し（又は書き込み）を行いたいファイルへのアクセスなども、サーバによって一律にアクセス速度が低減させられてしまう。また、個々のサーバで受け持つクライアントでの処理の性質が異なる場合、例えば一方がバッチ処理アクセスを要求するクライアントにサービスを行うサーバで、他方がオンライン処理アクセスを要求するクライアントにサービスを行うサーバである場合、記憶装置との間での輻輳が起きると、従来技術を適用した場合ではどちらのサーバも同じだけの帯域制限を受けることになり、オンライン処理が遅れるという問題がある。
【０００８】
本発明の目的は、前述した従来技術の問題点を解決し、記憶装置を共有する複数のサーバ計算機を有する計算機システムにおいて、クライアントからのアクセスの優先度に基づいた帯域制御を可能とした計算機システム及び計算機システムの帯域制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するため、本発明は以下の構成とする。すなわち、記憶装置を共有する複数のサーバ計算機の個々において、サーバ計算機にアクセスを要求してきたクライアント計算機の属性に基づいて、受信したアクセス要求の優先度を決める。さらにサーバ計算機では、アクセス要求の優先度を合計した結果を他のサーバ計算機で算出された優先度の合計と比較して、自身の記憶装置への入出力帯域を決定して、その帯域にしたがって記憶装置へのアクセスを実行するようにする。
【発明の効果】
【００１０】
本発明によれば、異なるサーバ計算機に送られてきたアクセス要求に対して、優先度の高いアクセス要求の処理を遅らせないように帯域を制御できる。特に、バッチ処理の優先度を低くし、オンライン処理の優先度を高くしておけば、オンライン処理が遅延するということは無くなる。更に、書き込み要求の優先度を高くしておけば、他のクライアント計算機と共有されるデータの更新に遅延が発生しないので、他のクライアント計算機でのデータの使用が遅れることが無い。
【発明を実施するための最良の形態】
【００１１】
以下、計算機システムの第１の実施形態を図面により詳細に説明する。
【００１２】
図１は、計算機システムの第１の実施形態におけるハードウェア構成例を示す図である。
【００１３】
計算機システムは、ｎ台のサーバ計算機１０１、これらのサーバ計算機１０１に共有される記憶装置１１、サーバ計算機１０１と記憶装置１１とを相互に接続するための入出力接続１８１、計算機１０１間を結ぶネットワーク１８０（以下「計算機間ネットワーク１８０」と称する）及び各サーバ計算機１０１の設定を行うための管理用計算機１０を有する。計算機システムは、計算機１０１に対してファイルアクセス要求を行う複数のクライアント計算機１９１１（１９１１−１〜ｎ）と、ネットワーク１７１（１７１−１〜ｎ）により相互に接続されている。尚、ネットワーク１７１−１〜ｎは相互に接続されていてもよく、例えば図１においてネットワーク１７１−１とネットワーク１７１−２は相互に接続されている。又、ネットワーク１７１−１〜ｎは一つのネットワークで代用されても良い。尚、ｎ台のサーバ計算機１０１は、一つの基板で構成されるブレード型の計算機でもよく、この場合、ｎ台のサーバ計算機１０１は、１つの筐体に納められても良い。
【００１４】
サーバ計算機１０１は、CPU(Central Processing Unit)１２、主記憶装置（メモリ）１３、通信装置A１５、通信装置B１６と、外部記憶入出力装置１４を有し、これらはバス１７等で相互に接続されている。クライアント計算機１９１１は、一般的な計算機で、CPUやメモリ、通信用のネットワーク接続部を有する。
【００１５】
管理用計算機１０は、サーバ計算機１０１の各種パラメータの設定を行うために用いられる計算機である。
【００１６】
記憶装置１１は、入出力接続１８１と接続するための接続インタフェース１８、記憶媒体１９、記憶媒体へのデータの入出力を制御する制御部を有する。ここで記憶媒体とは、ハードディスクドライブやフラッシュメモリといった不揮発性の記憶媒体である。又、記憶装置１１は、複数のハードディスクドライブを搭載するディスクアレイ装置でもよい。更に、ディスクアレイ装置では、RAID構成が採用されていても良い。
【００１７】
入出力接続１８１は、一般的なSCSI（Small Computer Systems Interface）やFC(Fibre Channel)による接続のほかに、iSCSI(internet SCSI)などが用いられる通信線である。
【００１８】
図２はメモリ１３内部に格納されるプログラム等の構成例を示す図である。
メモリ１３には、図２に示すように、通信制御ドライバ２０、キャッシュ制御部２１、優先度付加制御部２２、IO(Input/Output)スケジューラ２３、入出力制御ドライバ２４及び優先度調停部２５の各プログラムが格納されている。そして、優先度付加制御部２２は、ソフトウエア的なインタフェース（以下「アプリケーションインターフェース（API）」とも言う）である優先度設定インタフェース２６、クライアント別優先度対応表３０及びキャッシュ領域３１を含んでいる。IOスケジューラ２３は、蓄積優先度算出プログラム２７、蓄積優先度カウンタ３２を含んでいる。入出力制御ドライバ２４は、帯域制御プログラム２８、帯域設定インタフェース２９及び帯域カウンタ３３を含んでいる。優先度調停部２５は計算機別蓄積優先度表３４を含んでいる。
【００１９】
前述において、通信制御ドライバ２０は、通信装置A１５および通信装置B１６における通信を制御するためにCPU１２が実行するドライバプログラムである。キャッシュ制御部２１は、CPU１２がキャッシュ領域３１を管理するために実行するプログラムである。このプログラムの実行により、CPU１２は、過去のアクセス応答の情報（キャッシュ領域３１のデータの有無等）を管理し、クライアント計算機１９１１からのアクセス要求に対して迅速に応答できるようにする。尚、この処理は、一般的なオペレーティングシステムで使用されるファイルキャッシュにおける処理と同じ原理であってよい。
【００２０】
CPU１２は、優先度付加制御部２２を実行して、アクセス要求元となるクライアント計算機１９１１のIP(Internet Protocol)アドレスや、アクセス要求の内容を解析し、クライアント別優先度対応表３０に登録されたクライアント計算機の属性とその属性に付与された優先度の情報に基づいてそれぞれのアクセス要求に優先度をつける。尚、このクライアント別優先度対応表３０の内容は、管理用計算機１０から優先度設定インタフェース２６を使って設定を行うことで、ユーザが変更することが可能である。
【００２１】
CPU１２は、IOスケジューラ２３及び入出力制御ドライバ２４を実行して、優先度付加制御部２２の実行によって作成された優先度付きのアクセス要求をメモリ１３に蓄積し、その優先度に従ってアクセス要求を記憶装置１１に送る。より具体的には、例えばCPU１２はメモリ１３内にキュー構造を構成し、優先度順にアクセス要求をそのキュー構造に挿入してソートし、そのソートされた順番でアクセス要求を出力する。
【００２２】
CPU１２は、蓄積優先度算出プログラム２７を実行して、一定時間毎にメモリ１３内部に蓄積されたアクセス要求を走査し、蓄積されたアクセス要求の優先度の合計を、蓄積優先度カウンタ３２に反映する。
【００２３】
CPU１２は、入出力制御ドライバ２４を実行して記憶装置１１へデータの入出力を行う際、帯域カウンタ３３と帯域制御プログラム２８を用いて、記憶装置１１との間で入出力に使う通信帯域を制御する。CPU１２は、この帯域カウンタ３３の値を設定するために帯域設定インタフェース２９を用いる。
【００２４】
図３は、クライアント別優先度対応表３０の構成例を表す図である。クライアント別優先度対応表３０は、クライアント計算機の属性と優先度との関連性を示す情報が登録されるテーブルである。クライアント別優先度対応表３０は、クライアント計算機の属性（ここでは、クライアント計算機１９１１のIPアドレス、アクセス要求の具体的処理内容（以下「オペレーション」とも言う）、アクセス要求の対象となるファイル）及びそのクライアント計算機から送信されるアクセス要求に対応する優先度の組を任意の数分保持する。
【００２５】
CPU１２は、クライアント別優先度対応表３０に登録されている内容に基づいて、個々のアクセス要求に優先度を付加する。クライアント別優先度対応表３０での優先度の設定の仕方は様々であるが、例えば、特定のクライアント計算機１９１１（例えばリアルタイム処理のアクセス要求を送信するクライアント計算機１９１１等）からのアクセス要求全ての優先度を高く設定したり、特定のクライアント計算機１９１１からのデータの書き込み要求のみを優先度を高く設定したり、記憶装置に格納されている特定のファイル（あるいはディレクトリ等）に対するデータの読み出し要求について優先度を高くしたりということが考えられる。クライアント別優先度対応表３０を設定する者（システムの管理者等）は、計算機システムの利用状況や利用のポリシーに基づいてこれらの優先度を設定する。
【００２６】
上述した優先度の例として、例えば、図３では以下のような内容が設定されている。以下、優先度欄の数値が高いほど、優先度が高いとする。
欄３０１、３０２では、IPアドレス 192.168.1.2であるクライアント計算機１９１１からの要求と、IPアドレス 192.168.1.4であるクライアント計算機１９１１からのアクセス要求はどのようなものであっても優先度を１（低優先）とするという設定がされている。
欄３０３、３０４では、IPアドレス 192.168.1.5であるクライアント計算機１９１１からのアクセス要求については、読み込みのアクセス要求の優先度を１とするが、書込みのアクセス要求は優先度を高くし、５とすることで、書込みを優先的に処理させるという設定がされている。
【００２７】
欄３０５では、IPアドレス192.168.1.7であるクライアント計算機１９１１からの要求については、読み込み要求のうち、/var/db/dataというファイルについては優先度を４とするという設定がされている。
欄３０６では、IPアドレスが192.168.1.xxx(xxxは１から254) であるクライアント計算機１９１１からのアクセス要求であり、ファイル名の先頭が/var/tmp/workという文字列を含んでいる場合には、優先度を５とするという設定がされている。
また、欄３０７では、上記のどれにも当てはまらないクライアント計算機１９１１の場合、/home/work/*以下へのアクセス要求は優先度が２になるという設定がされている。
【００２８】
さらに、欄３０８では、欄３０１〜３０７で記述されたクライアント計算機１９１１からのアクセス要求以外の書込みのアクセス要求が、全て優先度が４となるという設定がされている。
又、欄３０９では、欄３０１〜３０８で記述されたクライアント計算機１９１１からのアクセス要求以外のアクセス要求については、優先度を３とするという設定がされている。尚、この値はデフォルト値であり、特に優先度を付与する必要の無い（あるいは優先度付与の対象として設定される前）アクセス要求には、この値（中程度の優先度「３」）が設定されるとする。ただし、このデフォルト値は、特に３に限らず、最低の優先度を示す「０」が設定されても良い。
【００２９】
上述したクライアント別優先度対応表３０は、サーバ計算機１０１−１〜ｎにおいて、各サーバ計算機１０１に繋がるクライアント計算機が別個のものであることもあるため、それぞれのサーバ計算機１０１毎に内容が別個のものを用いてもよい。上記構成をとることで、クライアント別優先度対応表３０に登録されるクライアント１９１１の数を最小限とすることができ、クライアント別優先度対応表３０を調べるための時間を短縮することができる。
【００３０】
また、サーバ計算機１０１−１〜ｎの各々につながったネットワーク１７１−１〜ｎが相互に接続されている場合、各サーバ計算機１０１が有するクライアント別優先度対応表３０の内容は同一でも構わない。この場合、全てのサーバ計算機１０１で、同一のアクセス要求に対して、同一の優先度を与えることができる。又、計算機システムの管理者が、一括して全てのサーバ計算機１０１のクライアント別優先度対応表３０の内容を、管理用計算機１０やネットワーク１７１を介して設定することが出来る。
【００３１】
図４は、計算機別蓄積優先度表３４の構成例を表す図である。計算機別蓄積優先度表３４は、計算機システムが有するサーバ計算機１０１−１〜ｎのそれぞれに付加されているIPアドレスと、各々のサーバ計算機１０１で計算され、サーバ計算機１０１間で相互に交換されたアクセス要求の優先度に関する情報、具体的には、各サーバ計算機１０１に蓄積されているアクセス要求に付加された優先度の合計値（以下「蓄積優先度」と言う）の組が登録される。
【００３２】
各サーバ計算機１０１は、他のサーバ計算機１０１から収集した蓄積優先度の情報を計算機別蓄積優先度表３４に登録する。そして、これらの値の合計値に占める自身の蓄積優先度の割合を計算することで、サーバ計算機１０１は、記憶装置１１とサーバ計算機１０１（１〜ｎ）の間の全体の通信帯域のうち、計算された割合分の帯域を自己の通信帯域として設定することになる。すなわち、サーバ計算機１０１は、自身が有するアクセス要求の優先度の合計が他のサーバ計算機１０１より多ければ、そのサーバ計算機１０１は、他のサーバ計算機１０１よりも多く通信帯域を使用するように設定される。
【００３３】
サーバ計算機１０１−１を代表例として用いた時の、アクセス要求の処理の大まかな流れを、図５を用いて説明する。
クライアント計算機１９１１から送られたアクセス要求を受け取ったサーバ計算機１０１−１(ステップ５１)は、受信したアクセス要求に対して優先度を割り当て、メモリ１３に蓄積する(ステップ５２)。次にサーバ計算機１０１−１は、サーバ計算機１０１−１自身に蓄積されたアクセス要求に基づいて、蓄積優先度を計算する。そして、サーバ計算機１０１−１は、その蓄積優先度と他のサーバ計算機１０１−２〜ｎから送信された蓄積優先度の値を用いて、自己の使用する帯域を計算し（ステップ５３）、計算された帯域にしたがってアクセス要求を処理する（ステップ５４）。
以下、それぞれのステップにおける詳細な処理内容を、図６〜図８を用いて説明する。
【００３４】
以下、サーバ計算機１０１−１に送られたアクセス要求が、CPU１２がIOスケジューラ２３を実行することでメモリ１３に蓄積されるまでの処理を、図６のフローチャートを用いて説明する。
【００３５】
まず、クライアント計算機１９１１−１から第1ネットワーク１７１−１、通信装置A１５を介してサーバ計算機１０１−１に送られてきたアクセス要求は、CPU１２が通信制御ドライバ２０を実行することで受信される(ステップ６０)。
【００３６】
アクセス要求を受信したCPU１２は、キャッシュ制御部２１を実行して、このアクセス要求がキャッシュ領域３１に格納されたデータのみを用いて処理が可能かどうかを判断し、処理が可能な場合は処理（キャッシュ領域３１からのデータの読み出し又は書き込み）してクライアント計算機１９１１−１に返答する(ステップ６１、６２)。
【００３７】
キャッシュ領域３１に格納されたデータに基づいて受信したアクセス要求が処理できなかった場合、CPU１２は、優先度付加制御部２２を実行し、受信した各々のアクセス要求に優先度を付加する。優先度付加の処理は図９の説明で後述する(ステップ６３)。
【００３８】
優先度付加を行ったCPU１２は、IOスケジューラ２３を実行して、優先度の付加されたアクセス要求をメモリ１３に登録する。登録の方法は上述した通り、キュー構造等が用いられる(ステップ６４)。
【００３９】
次に、サーバ計算機１０１−１が、自身が使用する帯域を計算し、メモリ１３に格納されたアクセス要求を、計算した帯域を用いて記憶装置１１に送信する処理の手順を、図７のフローチャートを用いて説明を行う。
【００４０】
まず、サーバ計算機１０１−１のCPU１２は、蓄積優先度算出部２７の実行を開始し、まず蓄積優先度カウンタ３２を0にする。尚、CPU１２における蓄積優先度算出部２７の実行は、基本的には一定時間毎に行われる。あるいは、ある程度アクセス要求がメモリ１３に蓄積された後、あるいはサーバ計算機１０１で所定の性能が実行できなくなったとき等が考えられる（ステップ７０）。
【００４１】
次に、CPU１２は、メモリ１３に優先度を加算していないアクセス要求が残っていれば、その優先度を蓄積優先度カウンタ３２に加算する（ステップ７１、７２）。
次にCPU１２は、優先度調停部２５を実行して、蓄積優先度カウンタ３２に加算された値を、サーバ計算機１０１−１、すなわち自身の蓄積優先度として計算機別蓄積優先度表３４に登録する(ステップ７３)。
【００４２】
更にCPU１２は、優先度調停部２５を実行して、通信装置B１６を通して、自身の蓄積優先度の情報を他のサーバ計算機１０１−２〜ｎに送る(ステップ７４)。
また、CPU１２は、優先度調停部２５を実行し、通信装置B１６を通して他のサーバ計算機１０１−２〜ｎから送られてきた蓄積優先度の値を受信し、計算機別蓄積優先度表３４の内容を更新する(ステップ７５)。尚、ステップ７４とステップ７５は並行して実行されても良い。
【００４３】
尚、本実施形態では、全てのサーバ計算機１０１が同じタイマを有し、各サーバ計算機１０１が同期して蓄積優先度の情報を送付しあう形態とする。尚、他の形態として、あるサーバ計算機１０１からの蓄積優先度の受信を契機として、自己の蓄積優先度の値を送り返す形態も考えられる。この場合、蓄積優先度を無限に送りあう事態を避けるため、蓄積優先度の値を送り返すサーバ計算機１０１は、値とともに応答である旨の情報を付加する。そして、蓄積優先度の値と応答である旨の情報を受け取ったサーバ計算機１０１は、自己の蓄積優先度の送信に対する応答であると解釈し、自己の蓄積優先度の値を再度送らないようにする。
【００４４】
CPU１２は、計算機別蓄積優先度表３４に登録された値を用い、サーバ計算機１０１−１の蓄積優先度の値を、全てのサーバ計算機１０１−１〜ｎの蓄積優先度の値の合計で割り、その値を記憶装置１１が有する通信帯域の合計値と乗じることにより、サーバ計算機１０１間での相対的な蓄積優先度に比例する、自身が使用可能な記憶装置１１との間の通信帯域を算出する(ステップ７６)。
【００４５】
その後、CPU１２は、算出した通信帯域の値を、帯域設定インタフェース２９を通して帯域カウンタ３３に指定する（ステップ７７）。これにより、個々のサーバ計算機１０１−１〜ｎが、それぞれ自己が使用する記憶装置との間の通信帯域を制御する。
【００４６】
次に、サーバ計算機１０１−１のCPU１２が、IOスケジューラ２３を実行してメモリ１３に格納されたアクセス要求を記憶装置１１に送る手順例を、図８のフローチャートを用いて説明する。
【００４７】
CPU１２は、IOスケジューラ２３を実行して、メモリ１３に格納されたアクセス要求から、優先度の高い順にアクセス要求を記憶装置１１へ送信する準備を開始する(ステップ８０)。
【００４８】
この際、CPU１２は、入出力制御ドライバ２４を実行し、アクセス要求の送信の是非を判断する。具体的には、CPU１２は、帯域カウンタ３３の値を確認し、自身が使用可能な通信帯域が残っているかどうかを確認する。尚、帯域カウンタ３３には、上述したように、CPU１２が計算した自己が使用可能な通信帯域の値が登録され、アクセス要求が記憶装置１１に送信されるたびにその値が減じられる。つまり、自己が使用可能な通信帯域以上に通信を行おうとすると、帯域カウンタ３３の値がマイナスとなる。したがって、自己が使用可能な通信帯域以上に通信を行うことを防止するため、サーバ計算機１０１は、帯域カウンタの値が０となった場合、一定時間通信を中断する。CPU１２は、帯域カウンタ３３の値が０でなければ、入出力制御ドライバ２４を実行してアクセス要求を記憶装置１１へ送信し、帯域カウンタ３３の値を減らす（ステップ８１、８２、８３）。
【００４９】
一方、帯域カウンタ３３の値が０である場合、CPU１２は、IOスケジューラ２３の実行によって送信が準備されたアクセス要求の送信を中断する（ステップ８４）。中断されたアクセス要求はIOスケジューラ２３に再度登録され、メモリ１３に蓄積される。
尚、中断されたアクセス要求は、次に帯域カウンタ３３の値が設定された後に、送信される。帯域カウンタ３３は、１秒毎に最初に指定された値に戻る（例えば、最初に計算されて指定された値が１０Ｍｂｐｓであれば、その値に戻る）。そこで、中断されたアクセス要求は、帯域カウンタ３３の値が戻った後、送信される。尚、優先度の再計算によって帯域が再計算された場合は、帯域カウンタ３３の最初に指定される値自体が変更され、その後、１秒毎に変更された値でカウンタ３３が設定される。
【００５０】
次に、CPU１２が優先度付加制御部２２を実行して、各々のアクセス要求に対する優先度をつける具体的な手順について、図９のフローチャートを用いて説明する。
【００５１】
まず、CPU１２は、受信したアクセス要求について、そのアクセス要求を送信したアクセス要求元のIPアドレスを解析する。ここで、CPU１２は、クライアント別優先度対応表３０に登録されているクライアント計算機１９１１のIPアドレスが、受信したアクセス要求に含まれるIPアドレスと一致するものがあるかどうかを確認する(ステップ９０)。
【００５２】
一致するIPアドレスがある場合、CPU１２は、以下の解析を行う。
（１）アクセス要求のオペレーションを解析する(ステップ９１)。
（２）アクセス要求先のファイル名を解析する（ステップ９２）。
【００５３】
これらの解析後、CPU１２は、解析した結果を元に、クライアント別優先度対応表３０に、解析結果に合致するエントリがあるかどうかを検索する。具体的には、まず、クライアント別優先度対応表３０のはじめの行（エントリ）と、受信したアクセス要求の解析内容を比較する(ステップ９３)。IPアドレス・オペレーション・ファイル名が条件に合致すれば、そのエントリに対応する優先度を対応するアクセス要求につける(ステップ９４、９５)。
【００５４】
条件に合致しなければ、CPU１２は、クライアント別優先度対応表３０の最後の行かどうかを調べる（ステップ９６）。次の行があれば、そこに書かれている条件と比較する(ステップ９８)。対応するものが無かった場合、CPU１２は、アクセス要求には、最後の行に設定されている、クライアント別優先度表３０にあるデフォルトの優先度をつける(ステップ９７)。
【００５５】
以上説明した方法を用いることにより、第１の実施形態の各サーバ計算機１０１は、クライアント計算機１９１１からのアクセス要求を、クライアント計算機１９１１の属性に基づき優先度別に分類し、その優先度の情報をサーバ計算機１０１間で交換することで、計算機１０１間での記憶装置１１に対する入出力帯域を適切に制御すると共に、クライアント計算機１９１１の特性に応じたアクセス応答時間を確保できる。
【００５６】
前述した第１の実施形態において、計算機１０１の通信装置B１６と計算機間ネットワーク１８０を用いる代わりに、ネットワーク１７１−１〜ネットワーク１７１−ｎを結合し、通信装置A１５を用いて蓄積優先度の送受信を行うようにすることもできる。これにより、それぞれのサーバ計算機１０１内に通信装置B１６を用意する必要が無くなる。
【００５７】
また前述した第１の実施形態において、計算機１０１の通信装置B１６と計算機間ネットワーク１８０を用いる代わりに、外部記憶入出力装置１４と入出力接続１８１を用いて蓄積優先度の送受信を行うようにすることもできる。これにより、それぞれのサーバ計算機１０１内に通信装置B１６を用意する必要が無くなる。
【００５８】
また前述した第１の実施形態において、計算機１０１の通信装置B１６と計算機間ネットワーク１８０を用いる代わりに、記憶装置１１の内部の予め決められた領域に、計算機別蓄積優先度表３４を格納しておき、これをサーバ計算機１０１が外部記憶入出力装置１４を通してアクセスして情報を共有することにより、蓄積優先度の送受信を行うようにすることもできる。これにより、それぞれのサーバ計算機１０１内に通信装置B１６を用意する必要が無くなる。
【００５９】
前述した第１の実施形態による各処理は、処理プログラムとして構成することができ、この処理プログラムは、HD、DAT、FD、MO、DVD-RAM、CD-ROMなどの記録媒体に格納して提供することができ、また、ネットワークにより提供することができる。逆に、上述した各プログラムは、専用のハードウェアに置き換えて実装することもできる。
【００６０】
図１０は、第２の実施形態による計算機システムのハードウェア構成例を示す図である。図１０に示す第２の実施形態は、前述した第１の実施形態における記憶装置１１を複数の記憶装置１１１に置き換えたものである。
【００６１】
記憶装置１１１は各々のサーバ計算機１０１に対して同一の入出力接続１８１で接続した構成になっている。各サーバ計算機１０１からの帯域制御は同一の入出力接続１８１に対して行われるものであるため、第１の実施形態における計算機別蓄積優先度表３４は、本実施形態においても変更せずに使うことが可能である。
【００６２】
これは、具体的には、記憶装置が複数あっても、入出力の通信帯域は入出力接続１８１によって一本にまとめられているため、各サーバ計算機は、第一の実施形態と同様に帯域計算を行うことが出来るということである。一方、入出力接続１８１が記憶装置ごとに有る場合は、各サーバ計算機１０１は、上述した第一の実施形態において行われていた帯域計算を、個々の入出力接続１８１ごとに行う必要がある。
【００６３】
第２の実施形態をとることで、複数の記憶装置１１１を同時に扱うことができる計算機システムを提供でき、記憶装置を増やすことで計算機システムの記憶容量を増やすことができる。
【００６４】
図１１は、第３の実施形態による計算機システムのハードウェア構成例を示す図である。図１１に示す第３の実施形態は、前述した第２の実施形態における記憶装置１１１をファイルサーバ計算機１１０１に置き換え、第２の実施形態における外部記憶入出力装置１４を通信装置C１４１に置き換え、第２の実施形態における入出力接続１８１を入出力用ネットワーク１１００に置き換えたものである。尚、ここでのファイルサーバ計算機１１０１は、ネットワークに接続され、ファイルデータを扱う記憶装置、すなわちネットワークアタッチドストレージ（NAS）でもよい。
【００６５】
第３の実施形態をとることで、複数の計算機から共有できる記憶装置１１や入出力接続１８１を用意することなく、一般的な通信装置C１４１と入出力用ネットワーク１１００だけを使い、第２の実施形態と同様の効果を得ることができる。
【００６６】
第３の実施形態では、計算機１０１からファイルサーバ計算機１００１に接続するため、入出力接続１８１の代わりに入出力用ネットワーク１００１を用いる。また第３の実施形態において、ある計算機１０１から他の計算機１０１に送られる蓄積優先度の情報を、通信装置B１６の代わりに通信装置C１４１を介し、かつ計算機間ネットワーク１８０の代わりに入出力用ネットワーク１１００を介して送ることで、通信装置B１６および計算機間ネットワーク１８０を減らした計算機システムを構成することが可能である。さらに入出力の制御を、記憶装置１１内の記憶媒体１９ごとではなく、ファイル単位で行うことが可能である。このため、全てのサーバ計算機１０１で同一のファイルシステムを利用することが可能である。
【図面の簡単な説明】
【００６７】
【図１】第１の実施形態による計算機システムのハードウェア構成例を示す図である。
【図２】メモリ１３に格納されるプログラム構成例を示す図である。
【図３】クライアント別優先度対応表３０の構成例を表す図である。
【図４】計算機別蓄積優先度表３４の構成例を表す図である。
【図５】CPU１２がクライアントからアクセス要求を受けた後それを実行するまでの大まかな処理手順を示すフローチャートである。
【図６】CPU１２が、受け取ったアクセス要求に優先度を付加し、メモリ１３に蓄積するまでの処理手順例を表すフローチャートである。
【図７】CPU１２が、蓄積されたアクセス要求から蓄積優先度及び自己の使用する帯域を計算するまでの処理手順例を表すフローチャートである。
【図８】CPU１２が、計算された帯域にしたがってアクセス要求を記憶装置１１へ送信する手順例を表すフローチャートである。
【図９】CPU１２における各々のアクセス要求に対する優先度のつけ方の例を表すフローチャートである。
【図１０】第２の実施形態による計算機システムのハードウェア構成例を示す図である。
【図１１】第３の実施形態による計算機システムのハードウェア構成例を示す図である。
【符号の説明】
【００６８】
１１…記憶装置、１２…CPU、１３…メモリ、１４…外部記憶入出力装置、１５…通信装置A、１６…通信装置B、１０１…サーバ計算機、１７１…ネットワーク、１８０…計算機間ネットワーク、１８１…入出力接続、１９１１…クライアント計算機。
【図１】
2006067401.tif 000003
【図２】
2006067401.tif 000004
【図３】
2006067401.tif 000005
【図４】
2006067401.tif 000006
【図５】
2006067401.tif 000007
【図６】
2006067401.tif 000008
【図７】
2006067401.tif 000009
【図８】
2006067401.tif 000010
【図９】
2006067401.tif 000011
【図１０】
2006067401.tif 000012
【図１１】
2006067401.tif 000013