(57)【要約】【課題】本発明は、アクセス性能を向上させ得るサーバシステムを提案する。【解決手段】クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、前記サーバ装置は、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部と、前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部とを備える。【選択図】図３
2009237763.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、
前記サーバ装置は、
所定の前記クライアント装置ごとに独立して前記ファイルデータの送受信を制御する複数の仮想サーバ部と、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、
前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部と
を備えることを特徴とするサーバシステム。
【請求項２】
前記データ流量設定部は、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部ごとのデータ流量を設定し、
前記負荷制御部は、
前記データ流量設定部により設定された前記仮想サーバ部ごとのデータ流量に基づいて、前記仮想サーバ部ごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する
ことを特徴とする請求項１に記載のサーバシステム。
【請求項３】
前記負荷制御部は、
前記前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量の統計情報を管理し、前記管理装置からのコマンドに基づいて、前記ファイルデータごとのデータ流量の統計情報を前記管理端末に送信する
ことを特徴とする請求項１に記載のサーバシステム。
【請求項４】
前記負荷制御部は、
前記クライアント装置から送信されるアクセス要求がリード要求である場合、当該リード要求に対応する前記ファイルデータのリードのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのリードのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのリードを停止する
ことを特徴とする請求項３に記載のサーバシステム。
【請求項５】
前記負荷制御部は、
前記クライアント装置から送信されるアクセス要求がライト要求である場合、当該ライト要求に対応する前記ファイルデータのライトのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのライトのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのライトを停止する
ことを特徴とする請求項３に記載のサーバシステム。
【請求項６】
前記負荷制御部は、
前記ファイルデータのうち、重要なファイルデータを管理し、前記データ流量設定部により設定された前記仮想サーバ部のデータ流量の設定値を超えたときに、当該仮想サーバ部が重要なファイルデータを処理しているか否かを判断し、前記重要なファイルデータを処理していない場合、当該仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項２に記載のサーバシステム。
【請求項７】
複数のサーバ装置を備え、
前記管理装置は、
前記複数のサーバ装置を管理する管理部
を備え、
前記管理部は、
すべてのサーバ装置の仮想サーバの負荷状況を前記負荷制御部から取得し、前記負荷状況に応じて前記複数のサーバ装置の負荷を分散するように、該当する前記サーバ装置を制御する
ことを特徴とする請求項１に記載のサーバシステム。
【請求項８】
前記管理部は、
すべてのサーバ装置の仮想サーバ部から、前記ファイルデータごとのデータ流量の統計情報及び前記データ流量設定部により設定された前記ファイルデータのデータ流量の設定値を取得し、前記前記統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのリードのデータ流量の設定値を比較して、当該データ流量の設定値を超えると判断されたときに、前記ファイルデータのアクセスを、所定の時間停止し、又は前記ファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する移動設定コマンドを該当する前記サーバ装置を送信する
ことを特徴とする請求項７に記載のサーバシステム。
【請求項９】
前記負荷制御部は、
前記管理部からの送信されるコマンドに基づいて、該当するファイルデータのアクセスを、所定の時間停止し、又は該当するファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項８に記載のサーバシステム。
【請求項１０】
前記管理装置から送信されるコマンドは、
コマンド番号と仮想サーバＩＤとファイルパスとデータ流量とを対応付けたファイルデータ流量設定コマンド、コマンド番号と仮想サーバＩＤとファイルパスとを対応付けるファイルデータ流量取得要求コマンド、コマンド番号と仮想サーバＩＤとデータ流量とを対応付けた仮想サーバデータ流量設定コマンド、コマンド番号と仮想サーバＩＤとを対応付けた仮想サーバデータ流量取得要求コマンド又はコマンド番号と仮想サーバＩＤとファイルパスとを対応付ける移動設定コマンドである
ことを特徴とする請求項１に記載のサーバシステム。
【請求項１１】
クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムの制御方法であって、
データ流量設定部が、前記管理装置からのコマンドに基づいて、所定の前記クライアント装置ごとに独立して前記ファイルデータの送受信を制御する複数の仮想サーバ部の前記ファイルデータごとのデータ流量を設定する第１のステップと、
負荷制御部が、前記第１のステップにおいて設定した前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する第２のステップと
を備えることを特徴とするサーバシステムの制御方法。
【請求項１２】
前記第１のステップでは、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部ごとのデータ流量を設定し、
前記第２のステップでは、
前記データ流量設定部により設定された前記仮想サーバ部ごとのデータ流量に基づいて、前記仮想サーバ部ごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する
ことを特徴とする請求項１１に記載のサーバシステムの制御方法。
【請求項１３】
前記第２のステップでは、
前記前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量の統計情報を管理し、前記管理装置からのコマンドに基づいて、前記ファイルデータごとのデータ流量の統計情報を前記管理端末に送信する
ことを特徴とする請求項１１に記載のサーバシステムの制御方法。
【請求項１４】
前記第２のステップでは、
前記クライアント装置から送信されるアクセス要求がリード要求である場合、当該リード要求に対応する前記ファイルデータのリードのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記第１のステップにおいて設定した前記ファイルデータのリードのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのリードを停止する
ことを特徴とする請求項１３に記載のサーバシステムの制御方法。
【請求項１５】
前記第２のステップでは、
前記クライアント装置から送信されるアクセス要求がライト要求である場合、当該ライト要求に対応する前記ファイルデータのライトのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記第１のステップにおいて設定した前記ファイルデータのライトのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのライトを停止する
ことを特徴とする請求項１３に記載のサーバシステムの制御方法。
【請求項１６】
前記第２のステップでは、
前記ファイルデータのうち、重要なファイルデータを管理し、前記第１のステップにおいて設定した前記仮想サーバ部のデータ流量の設定値を超えたときに、当該仮想サーバ部が重要なファイルデータを処理しているか否かを判断し、前記重要なファイルデータを処理していない場合、当該仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項１２に記載のサーバシステムの制御方法。
【請求項１７】
前記管理装置の前記複数のサーバ装置を管理する管理部が、複数のすべてのサーバ装置の仮想サーバの負荷状況を前記負荷制御部から取得し、前記負荷状況に応じて前記複数のサーバ装置の負荷を分散するように、該当する前記サーバ装置を制御する第３のステップと
を備えることを特徴とする請求項１１に記載のサーバシステムの制御方法。
【請求項１８】
前記第３のステップでは、
すべてのサーバ装置の仮想サーバ部から、前記ファイルデータごとのデータ流量の統計情報及び前記データ流量設定部により設定された前記ファイルデータのデータ流量の設定値を取得し、前記前記統計情報に基づいて算出されたデータ流量の値と、前記第１のステップにおいて設定した前記ファイルデータのリードのデータ流量の設定値を比較して、当該データ流量の設定値を超えると判断されたときに、前記ファイルデータのアクセスを、所定の時間停止し、又は前記ファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する移動設定コマンドを該当する前記サーバ装置を送信する
ことを特徴とする請求項１７に記載のサーバシステムの制御方法。
【請求項１９】
前記第３のステップでは、
前記管理部からの送信されるコマンドに基づいて、該当するファイルデータのアクセスを、所定の時間停止し、又は該当するファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項１８に記載のサーバシステムの制御方法。
【請求項２０】
前記管理装置から送信されるコマンドは、
コマンド番号と仮想サーバＩＤとファイルパスとデータ流量とを対応付けたファイルデータ流量設定コマンド、コマンド番号と仮想サーバＩＤとファイルパスとを対応付けるファイルデータ流量取得要求コマンド、コマンド番号と仮想サーバＩＤとデータ流量とを対応付けた仮想サーバデータ流量設定コマンド、コマンド番号と仮想サーバＩＤとを対応付けた仮想サーバデータ流量取得要求コマンド又はコマンド番号と仮想サーバＩＤとファイルパスとを対応付ける移動設定コマンドである
ことを特徴とする請求項１１に記載のサーバシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステム及びその制御方法に関し、例えば、仮想サーバ環境を提供するファイル共有サーバに適用して好適なものである。
【背景技術】
【０００２】
従来、１台のファイル共有サーバが、複数の仮想的なファイル共有サーバ（以下、仮想サーバ、仮想ＮＡＳ（Network Attached Storage））を提供することで、多数のファイル共有サーバを統合するシステムが広く知られている。
【０００３】
複数のファイル共有サーバを１台のファイル共有サーバへ統合することは、ファイル共有サーバの管理の容易化や、ファイル共有サーバが消費する電力を抑えることによる省電力化などで有効である。その仮想サーバを提供する方式の１つとして、ＯＳ（Operating System）分割方式がある。
【０００４】
ＯＳ分割方式は、ディスクやネットワークアダプタなどの物理デバイスや、プロセス空間やネームスペース（Name Space）などのＯＳが提供している機能を、個々の仮想サーバ毎に分割することで、仮想サーバを実現する。ＯＳ分割方式では、メモリ管理やプロセス管理モジュールを仮想サーバ間で共通化することで、ＯＳの資源管理処理の負荷を軽減している。
【０００５】
一方、仮想サーバを提供するファイル共有サーバを複数台用意し、それらのファイル共有サーバ間で仮想サーバを移動（以降、仮想サーバマイグレーション、フェールオーバ）するＮ−ｗａｙクラスタ技術がある。この技術によれば、ファイル共有サーバ障害対処やファイル共有サーバ交換などの保守性を実現することができる。
【０００６】
さらに、Ｎ−ｗａｙクラスタ技術は、仮想サーバのＩ／Ｏ（Input/Output）負荷情報を元にファイル共有サーバ間の仮想サーバを移動させることで、クラスタ全体で適切な負荷バランスを実現する。なお、仮想サーバに関連する仮想ＯＳの実現方式を言及した特許として、特許文献１が知られている。また、Ｉ／Ｏ負荷情報をストレージ装置で取得し、負荷バランスを行う方式として、特許文献２が知られている。
【特許文献１】特開２００４−２２７１２７号公報
【特許文献２】特開２００７−２３３７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
Ｎ−ｗａｙクラスタ技術では、適切な負荷バランスを実現するため、仮想サーバ毎にＩ／Ｏ負荷情報を取得する。そして、Ｎ−ｗａｙクラスタ技術では、仮想サーバを一時的に停止し、その停止した仮想サーバを他のファイル共有サーバで起動する。こうすることで、Ｎ−ｗａｙクラスタ技術では、他のファイル共有サーバへ仮想サーバを移動することができ、負荷バランスをとることができる。
【０００８】
Ｎ−ｗａｙクラスタ技術では、負荷を取得する方法として、現在、ディスク毎にアクセス情報を取得する方法が用いられている。すなわち、Ｎ−ｗａｙクラスタ技術では、ある仮想サーバに割り当てているディスクのアクセス情報（Ｉ／Ｏ情報）を取得し、仮想サーバの動作状況を推定し、仮想サーバの移動を制御する。
【０００９】
ここで、ディスクのアクセス情報を元に仮想サーバの動作状況を推定した場合、Ｉ／Ｏ総量は、仮想サーバの全てのディスクアクセスを全て合わせた量となる。例えば、ファイルコピーで発生するディスクアクセスと、ファイルデータ検索といった処理が同時に実行されている場合、Ｎ−ｗａｙクラスタ技術では、その２つの処理のＩ／Ｏ量を足し合わせて仮想サーバの動作状況を推定する。そのため、Ｎ−ｗａｙクラスタ技術では、ディスクアクセスが重要なデータ処理かどうかを判断することができない。
【００１０】
従って、現在のディスクアクセスのＩ／Ｏ総量に基づいた仮想サーバの動作状況推定では、不要な仮想サーバの移動が発生するといった課題がある。
【００１１】
先の例の場合では、ファイルコピーのような重要ではない処理が原因となり、仮想サーバ移動が発生する。仮想サーバの移動では、一時的にサービスが停止するため、ファイルデータ検索といった重要な処理の遅延が発生することがある。
【００１２】
また、ファイルアクセスプロトコルの種類によっては、接続が切断され、ファイル共有サーバに接続しているクライアント装置の動作が中断することがある。仮想サーバの移動は、仮想サーバの停止と起動を伴うため、ファイル共有サーバへの負荷が高い。従って、不要な仮想サーバの移動は、できる限り避ける必要がある。
【００１３】
本発明は以上の点を考慮してなされたもので、アクセス性能を向上させ得るサーバシステム及びその制御方法を提案するものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するために本発明においては、クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、前記サーバ装置は、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部と、前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部とを備える。
【００１５】
また、本発明においては、クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムの制御方法であって、データ流量設定部が、前記管理装置からのコマンドに基づいて、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部の前記ファイルデータごとのデータ流量を設定する第１のステップと、負荷制御部が、前記第１のステップにおいて設定した前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する第２のステップとを備える。
【００１６】
従って、複数の仮想サーバ部が動作するサーバ装置において、管理者が仮想サーバ部の負荷情報を正確に把握することができると共に、ファイルデータ毎にデータ流量を制限することができるため、特定の仮想サーバ部に大きな負荷が発生した場合であっても、他の仮想サーバ部の処理性能低下を抑えることができる。
【００１７】
すなわち、本発明では、ファイルデータ毎にＩ／Ｏ流量を抑えることにより、重要ではないファイルデータを対象としたＩ／Ｏのみを抑えることができる。さらに、本発明では、重要なファイルデータのＩ／Ｏ許容量を大きくすることで、重要な処理を、すぐに処理されるようにすることができる。ファイルデータのＩ／Ｏ流量は、サーバ装置の管理者が設定する。さらに、本発明では、重要なファイルデータに対して読み書きが発生している場合、仮想サーバ部の移動をしないことにより、重要な処理の遅延を防止する。重要なデータ処理かどうかを判定するために、ファイルデータ毎のＩ／Ｏ量を調査可能とする。また、本発明では、ファイルデータ毎にＩ／Ｏ流量を抑えることで、不要な仮想サーバ部の移動を抑える。
【００１８】
一方、本発明では、ファイルデータ毎のアクセス情報を集中的に管理し、仮想サーバ部毎に高負荷発生時の動作を規定する。本発明では、サーバシステムに含まれる仮想サーバ部の位置を積極的に移動させることにより、仮想サーバ部の性能を向上させることができる。また、本発明では、仮想サーバ部全体のＩ／Ｏ流量を抑止することで、仮想サーバ部の動作を一定時間抑止する。
【００１９】
従って、仮想サーバ部を提供するサーバ装置のファイルデータのＩ／Ｏ情報を取得することができ、さらに、Ｉ／Ｏ流量制御を適切に実施することができる。その結果、重要なファイルデータを処理している最中の仮想サーバ部の移動を防止することができる。さらに、重要ではないファイルデータへの読み書きを抑止することで、不要な仮想サーバ部の移動を防止することができる。また、ファイルデータ毎のアクセス管理情報を集中的に管理し、そのアクセス管理情報に基づいてサーバシステム全体を適切に運用することができる。
【発明の効果】
【００２０】
本発明によれば、アクセス性能を向上させ得るサーバシステム及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００２１】
以下、仮想サーバを提供するファイル共有サーバにおいて、ファイルＩ／Ｏ情報を取得し、仮想サーバ毎にファイルＩ／Ｏ流量制御を行う方式を例に、本発明の実施例を説明する。また、以下に説明する実施例は一例であり、本発明はこの実施例に限定されるものではない。
【００２２】
（１）実施例１について
図１は、本実施形態に係るファイル共有システム１における、ファイル共有サーバ５と、実際にファイル共有サービスを提供する仮想サーバ７の関係を示す構成図である。本実施形態の詳細なシステム構成は、図２で説明する。
【００２３】
ファイル共有システム１は、クライアント装置２、クライアント装置２で動作するプログラム３、管理端末４、ファイル共有サーバ５、ファイル共有サーバ５で動作する管理サーバ６及び仮想サーバ７、ストレージ装置８並びに仮想サーバ７が利用するファイルシステムであるストレージ装置８の仮想サーバファイルシステム（以下、仮想サーバＦＳ（File System））９により構成される。また、クライアント装置２と管理端末４とファイル共有サーバ５は、ＬＡＮ（Local Area Network）１０によって相互に接続されている。一方、ファイル共有サーバ５と仮想サーバＦＳ９は、ＳＡＮ（Storage Area Network）１１によって相互に接続されている。
【００２４】
クライアント装置２は、ファイル共有サーバ５の仮想サーバ７が提供しているファイル共有サービスをユーザが利用するための端末である。クライアント装置２には、ユーザが利用しているプログラム３が動作している。
【００２５】
管理端末４は、ファイル共有システム１全体を管理する端末である。
【００２６】
ファイル共有サーバ５は、管理サーバ６と仮想サーバ７が動作するサーバである。管理サーバ６は、ファイル共有サーバ５と仮想サーバ７を管理するための仮想的なサーバである。一方、仮想サーバ７は、ファイル共有サービスをクライアント装置２へ提供するための仮想的なサーバである。
【００２７】
ストレージ装置８は、クライアント装置２のファイル（File）１２を格納する端末である。
【００２８】
仮想サーバＦＳ９は、仮想サーバ７が利用するファイルシステムであり、仮想サーバ７毎にそれぞれ異なったファイルシステムを利用する。また、仮想サーバＦＳ９は、ファイル１２を格納している。
【００２９】
図１では、クライアント装置２のプログラム３は、ファイル共有サーバ１（ファイル共有サーバ５）の仮想サーバＡ（１００７）にサービスを要求している。そして、仮想サーバＡ（仮想サーバ７）は、ストレージ装置８における仮想サーバＡ（仮想サーバ７）の仮想サーバＦＳ９に格納しているファイル１２を取得する。そして、仮想サーバＡ（仮想サーバ７）は、クライアント装置２のプログラム３へ取得結果を返す。
【００３０】
図２は、ファイル共有システム１の詳細な構成例を示す図である。
【００３１】
クライアント装置２は、ファイル共有システム１を利用するユーザが使用する端末である。クライアント装置２では、ファイル共有サーバ５が提供するファイル共有サービスへアクセスするファイルアクセスプログラム３が動作する。
【００３２】
管理端末４は、ＣＰＵ（Central Processing Unit）２１、入力Ｉ／Ｆ（Interface）２２、ネットワークＩ／Ｆ２３、メモリ２４、外部記憶装置Ｉ／Ｆ２７を有し、これらが内部通信路によって相互に接続されている。
【００３３】
メモリ２４には、管理プログラム２５及びファイル共有サーバ管理情報２６が格納されている。管理プログラム２５は、ファイル共有システム１全体を管理するプログラムである。ＣＰＵ２１は、管理プログラム２５を実行すると、入力Ｉ／Ｆ２２を通してファイル共有システム１の管理者へ設定情報の入力を要求する。そして、ＣＰＵ２１は、ファイル共有サーバ管理情報２６及び外部記憶装置２８の管理情報２９へその設定情報を保存する。さらに、ＣＰＵ２１は、ネットワークＩ／Ｆ２３を通して、ファイル共有サーバ５へ設定情報を送信する。
【００３４】
管理情報２９は、仮想サーバＩ／Ｏ量設定情報３０、ファイル量設定情報３１及び仮想サーバ管理情報３２を含む。それぞれの情報は、後で詳述する。
【００３５】
ファイル共有サーバ５は、ＣＰＵ４１、ネットワークＩ／Ｆ４２、メモリ４３、ストレージ装置Ｉ／Ｆ４４を有し、これらが内部通信路によって相互に接続されている。
【００３６】
メモリ４３には、ＮＦＳ（Network File System）サーバ５１、ＣＩＦＳ（Common Internet File System）サーバ５２、ファイルＩ／Ｏフローコントローラ５３、仮想サーバ管理情報５４、設定情報５５、統計情報５６、移動管理情報５７、ローカルファイルシステム５８、デバイスドライバ５９、仮想サーバマネージャ６０、ライブラリ６１、ファイルキャッシュ６２、ＶＦＳ（Virtual File System）６３及びプロセス管理情報６４が格納されている。
【００３７】
ＮＦＳサーバ５１及びＣＩＦＳサーバ５２は、ファイル共有サービスを提供するプログラムである。ＣＰＵ４１は、ＮＦＳサーバ５１及びＣＩＦＳサーバ５２を実行すると、クライアント装置２のファイルアクセスプログラム３からのファイルアクセス要求を待ち受ける。ＣＰＵ４１は、ネットワークＩ／Ｆ４２を通して、ファイルアクセスプログラム３からのファイルアクセス要求を受け付けると、ストレージ装置８の記憶装置７１を通して、記憶装置７１にある仮想サーバＦＳ９からデータを読み込み、ファイルアクセスプログラム３へデータを送信する。
【００３８】
ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の設定情報５５に記録している情報を元にファイルＩ／Ｏの流量を制御するプログラムである。さらに、ファイルＩ／Ｏフローコントローラ５３は、ファイルＩ／Ｏ状況を仮想サーバ管理情報５４の統計情報５６へ記録するプログラムである。ＣＰＵ４１は、ファイルＩ／Ｏフローコントローラ５３を実行すると、設定情報５５を読み込み、その内容に従って流量制御を実施する。また、ＣＰＵ４１は、ファイルＩ／Ｏ状況を統計情報５６へ記録する。ファイルＩ／Ｏフローコントローラ５３の詳細は、後で詳述する。
【００３９】
仮想サーバ管理情報５４は、設定情報５５、統計情報５６及び移動管理情報５７を含む。
【００４０】
仮想サーバ管理情報５４の設定情報５５及び統計情報５６は、仮想サーバ７毎に作成される。つまり、設定情報５５及び統計情報５６は、仮想サーバ７の管理情報である仮想サーバ管理情報５４の一部として作成される。設定情報５５及び統計情報５６は、後で詳述する。
【００４１】
仮想サーバ管理情報５４の移動管理情報５７は、仮想サーバマネージャ６０が仮想サーバ７の負荷状況から仮想サーバ７を移動させる際に、移動対象となる仮想サーバ７を移動しても良いかを判断するための管理情報である。移動管理情報５７は、仮想サーバ管理情報５４に含まれる。移動管理情報５７の詳細は、後で詳述する。
【００４２】
ローカルファイルシステム５８は、ストレージ装置８の記憶装置７１の仮想サーバＦＳ９を管理するプログラムである。ＣＰＵ４１は、ローカルファイルシステム５８を実行すると、ストレージ装置８の記憶装置７１の仮想サーバＦＳ９に格納しているファイルを操作する。
【００４３】
デバイスドライバ５９は、ストレージ装置８の記憶装置７１に格納しているデータ（ファイル１２）へのアクセスを制御するプログラムである。ＣＰＵ４１は、ローカルファイルシステム５８を実行し、ストレージ装置８の記憶装置７１の仮想サーバＦＳ９を操作する際、デバイスドライバ５８を実行し、ストレージ装置８の記憶装置７１を操作する。
【００４４】
仮想サーバマネージャ６０は、ファイル共有サーバ５が提供する仮想サーバ７を管理するプログラムである。仮想サーバマネージャ６０は、管理サーバ６にあっても良く、仮想サーバ７にあっても良い。ＣＰＵ４１は、仮想サーバマネージャ６０を実行すると、管理端末４の管理プログラム２５から仮想サーバ７の設定情報を受け取り、仮想サーバ管理情報５４に記録する。さらに、ＣＰＵ４１は、仮想サーバ管理情報５４に基づいて仮想サーバ７を起動する。また、ＣＰＵ４１は、管理プログラム２５から統計情報取得を要求された場合、統計情報５６を取得し、管理プログラム２５へネットワークＩ／Ｆ４４、２３を通して送信する。仮想サーバマネージャ６０の詳細は、後述する。
【００４５】
ライブラリ６１は、ＣＩＦＳサーバ５２がローカルファイルシステム５８へファイルアクセスを要求する際に利用する、中間プログラムである。
【００４６】
ファイルキャッシュ６２は、仮想サーバＦＳ９に格納しているファイル１２を一時的に、メモリ４３に保存しておくメモリ領域である。ローカルファイルシステム５８は、ファイル１２へアクセスする場合、まず、ファイルキャッシュ６２を調べる。ＣＰＵ４１は、ファイルキャッシュ６２がファイルデータ（ファイル１２）を保持している場合、ファイルシステム５８を実行して、ファイルキャッシュ６２からファイルデータを取得する。一方、ＣＰＵ４１は、ファイルキャッシュ６２がファイルデータを（ファイル１２）保持していない場合、ローカルファイルシステム５８を実行して、デバイスドライバ５９を通してストレージ装置８の記憶装置７１からファイルデータ（ファイル１２）を取得する。ＶＦＳ６３の詳細は、後述する。
【００４７】
プロセス管理情報６４は、ファイル共有サーバ５で動作する、ＮＦＳサーバ５１やＣＩＦＳサーバ５２といったプロセスを管理する情報である。
【００４８】
ストレージ装置８の記憶装置７１は、ファイル共有サービスで使用するファイルシステムを格納する記憶装置であり、ハードディスクや光ディスク等である。また、ストレージ装置８の記憶装置７１は、ディスクアレイシステムであっても良い。
【００４９】
なお、以下においては、各プログラムに基づく管理端末４のＣＰＵ２１や、ファイル共有サーバ５のＣＰＵ４３の処理内容を明確化するため、各種処理の処理主体をプログラムとして説明する場合もあるが、実際上は、そのプログラムに基づいて対応するＣＰＵ２１、４３がその処理を行うことは言うまでもない。
【００５０】
図３は、ファイル共有サーバ５のソフトウェア論理構成を示す構成図である。図３の構成図を元に、本発明の動作概要を示す。
【００５１】
ファイル共有サーバ５には、内部に管理サーバ６、仮想サーバ７が作成されている。仮想サーバ７は、１つであっても良く、または複数あっても良い。
【００５２】
管理サーバ６の仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３へ、Ｉ／Ｏ許可設定要求及びＩ／Ｏ統計情報要求を行う。ファイルＩ／Ｏフローコントローラ５３は、設定情報５５を元にファイルＩ／Ｏの流量を制御する。
【００５３】
仮想サーバ７のＣＩＦＳサーバ５２は、クライアント装置２のファイルアクセスプログラム３からファイルアクセス要求を受け取る。そして、ＣＩＦＳサーバ５２は、ライブラリ６１へファイルアクセスを要求し、次に、ライブラリ６１は、ＶＦＳ６３へファイルアクセスを要求し、ＶＦＳ６３は、ファイルＩ／Ｏフローコントローラ５３へファイルアクセスを要求する。そして、ファイルＩ／Ｏフローコントローラ５３は、ローカルファイルシステム５８へファイルアクセスを要求し、ローカルファイルシステム５８のファイルキャッシュ６２を調べて、デバイスドライバ５９へデータ取得を要求するかを判定する。ローカルファイルシステム５８は、ファイルキャッシュ６２からデータを発見できなかった場合、デバイスドライバ５９を通してストレージ装置８の記憶装置７１へアクセスする。
【００５４】
このように、ファイル共有サーバ５では、ＣＩＦＳサーバ５２から次々とプログラムを呼び出すことでストレージ装置８の記憶装置７１内の仮想サーバＦＳ９のファイル１２へアクセスを実現する。本発明は、ＶＦＳ６３とローカルファイルシステム５８との間でファイルＩ／Ｏフローコントローラ５３がファイルＩ／Ｏ流量を制御する。本発明では、ＶＦＳ６３とローカルファイルシステム５８との間でファイルＩ／Ｏ流量を制御することで、ファイルキャッシュ６２のＩ／Ｏ流量判定への影響を排除することができる。
【００５５】
図４は、設定情報５５に含まれる、仮想サーバＩ／Ｏ流量テーブル８１の一例を示す図である。
【００５６】
仮想サーバＩ／Ｏ流量テーブル８１には、流量制御対象となる仮想サーバＩＤ８１Ａと、その仮想サーバＩＤに対応するＲＥＡＤ（リード）量８１Ｂ及びＷＲＩＴＥ（ライト）量８１Ｃとが対応付けて登録されているテーブルである。ファイルＩ／Ｏフローコントローラ５３は、この仮想サーバＩ／Ｏ流量テーブル８１の情報を元に、仮想サーバ７毎のＩ／Ｏ流量を制御する。
【００５７】
この仮想サーバＩ／Ｏ流量テーブル８１は、ファイルＩ／Ｏフローコントローラ５３が仮想サーバ７全体のＩ／Ｏ量の上限を決定するために用いる。例えば、図４の場合、仮想サーバＩＤ８１で示す仮想サーバＩＤ「１００００１」は、仮想サーバ７内で動作する全プログラムのＲＥＡＤ量８１Ｂの上限が１０（ＭＢ／ｓ）となる。また、当該仮想サーバＩＤ「１００００１」のＷＲＩＴＥ量８１Ｃの上限は、１０（ＭＢ／ｓ）となる。このように、仮想サーバＩ／Ｏ流量テーブル８１では、仮想サーバ７毎に上限を設定することができる。
【００５８】
図５は、設定情報５５に含まれる、ファイルＩ／Ｏ流量テーブル８２の一例を示す図である。
【００５９】
ファイルＩ／Ｏ流量テーブル８２には、制御対象となるファイルパス８２Ａと、そのファイルパス８２Ａに対応するＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８２Ｃとが対応付けて登録されているテーブルである。ファイルＩ／Ｏ流量テーブル８２は、仮想サーバ７毎にそれぞれ設定する。ファイルパス８２Ａは、仮想サーバ７が構築したファイル名前空間におけるパスである。従って、ファイルパス８２Ａは、異なる仮想サーバ７のパスを設定できない。
【００６０】
ファイルＩ／Ｏフローコントローラ５３は、このファイルＩ／Ｏ流量テーブル８２の情報を元に、仮想サーバ７のファイル１２毎にＩ／Ｏ流量を制御する。ファイルＩ／Ｏフローコントローラ５３は、ファイル共有システム１の管理者による操作に基づいて、「重要」もしくは「重要ではない」とするファイル１２をファイルパス８２Ａへ設定し、それに対応するＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８２Ｃを設定する。
【００６１】
例えば、図５の場合、ファイルパス８２Ａに設定されている「/mnt/file1」は、管理者が重要だと考え、ファイル１２のＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８２Ｃをそれぞれ１０（ＭＢ／ｓ）に設定している。一方、ファイルパス８２Ａに設定されている「その他」は、図５に示されていないファイルパス８２Ａ全てが該当し、それらのファイル１２のＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８２Ｃは、１（ＭＢ／ｓ）へ抑えられる。
【００６２】
図４及び図５で示した仮想サーバＩ／Ｏ流量テーブル８１及びファイルＩ／Ｏ流量テーブル８２を用いることで、ファイルＩ／Ｏの流量を規定できる。
【００６３】
ファイルＩ／Ｏフローコントローラ５３は、仮想サーバＩ／Ｏ流量テーブル８１により、複数の仮想サーバ７が動作している場合において、ある仮想サーバ７が集中的にファイル共有サーバ５を使用することを抑止することができる。
【００６４】
一方、ファイルＩ／Ｏフローコントローラ５３は、ファイルＩ／Ｏ流量テーブル８２により、ＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８２Ｃの流量を大きく設定された重要なファイル１２について、多量のデータアクセスを可能とする。一方、ファイルＩ／Ｏフローコントローラ５３は、その他のファイルについて、少量のデータアクセスのみ可能をする。こうすることで、ファイル共有サーバ５では、その他ファイルに属するファイル１２へ大量のデータアクセス要求があった場合の高負荷発生を避けることができる。その結果、ファイル共有サーバ５では、不要なデータアクセスを原因とする仮想サーバ７の移動が抑止可能となる。
【００６５】
図６は、移動管理情報５７の一例を示すテーブルである。移動管理情報５７は、仮想サーバＩＤ５７Ａとファイルパス５７Ｂが対となって構成されている。実際に、このデータを用いるプログラムは、仮想サーバマネージャ６０である。
【００６６】
仮想サーバマネージャ６０は、移動管理情報５７により、仮想サーバＩＤ５７Ａで動作するプロセスが、ファイルパス５７Ｂで示されるファイル１２を読み書きしている場合、仮想サーバ７の移動処理を中止する。移動管理情報５７は、管理者によって設定される。例えば、図６の場合、管理者が仮想サーバＩＤ「１００００００１」のファイル「/mnt/file1」は重要であり、かつ、このファイルを読み書きしている場合は、仮想サーバの移動を抑止することを示している。仮想サーバマネージャ６０の動作は、後で詳述する。
【００６７】
図７は、統計情報５６に含まれる、仮想サーバＩ／Ｏ統計情報８３を示す図である。
【００６８】
仮想サーバＩ／Ｏ統計情報８３は、ＲＥＡＤ量８３ＡとＷＲＩＴＥ量８３Ｂと総ＲＥＡＤ量８３Ｃと総ＷＲＩＴＥ量８３Ｄを持つテーブルである。ＲＥＡＤ量８３Ａ及びＷＲＩＴＥ量８３Ｂは、仮想サーバＩ／Ｏ統計情報８３を取得したときに、どれほど読み書きがあったかを示すテーブルである。総ＲＥＡＤ量８３Ｃ及び総ＷＲＩＴＥ量８３Ｄは、仮想サーバＩ／Ｏ統計情報８３を取得し始めてからの総量を示す情報である。
【００６９】
図８は、統計情報５６に含まれる、ファイルＩ／Ｏ統計情報８４を示す図である。
【００７０】
ファイルＩ／Ｏ統計情報８４は、ファイルパス８４ＡとＲＥＡＤ量８４ＢとＷＲＩＴＥ量８４Ｃと総ＲＥＡＤ量８４Ｄと総ＷＲＩＴＥ量８４ＥとＲＥＡＤ時刻８４ＦとＷＲＩＴＥ時刻８４Ｇを持つテーブルである。
【００７１】
ＲＥＡＤ量８４Ｂ及びＷＲＩＴＥ量８４Ｃは、統計情報５６が取得された時点における読み書き量である。総ＲＥＡＤ量８４Ｄ及び総ＷＲＩＴＥ量８４Ｅは、仮想サーバ７が起動されてからのファイル１２の読み書き総量である。ＲＥＡＤ時刻８４Ｆ及びＷＲＩＴＥ時刻８４Ｇは、ファイル１２が読み書きされた時刻を示す。
【００７２】
図７及び図８に示す統計情報５６を用いることで、ファイル共有システム１では、当該ファイル共有システム１の管理者に、仮想サーバ７毎に仮想サーバＩ／Ｏ統計情報８３とファイルＩ／Ｏ統計情報８４を取得させることができる。また、ファイル共有システム１では、管理者に、この情報を元に、仮想サーバＩ／Ｏ流量テーブル８１及びファイルＩ／Ｏ流量テーブル８２を設定させることができる。
【００７３】
例えば、管理者は、重要ではないファイル（図８の場合、「/mnt/file3」）に対してファイルＩ／Ｏ統計情報８４を確認し、Ｉ／Ｏが大量に出ていると判断すれば、ファイルＩ／Ｏ流量テーブル８２のＲＥＡＤ量８２Ｂ及びＷＲＩＴＥ量８３Ｃを少なくして設定する。その設定以降、ファイルＩ／Ｏフローコントローラ５３は、そのＩ／Ｏ流量テーブル８２の情報に基づいてＩ／Ｏ流量を制御する。
【００７４】
クライアント装置２のファイルアクセスプログラム３がファイル１２へアクセスすると、ファイルＩ／Ｏフローコントローラ５３は、ファイルＩ／Ｏ統計情報８４を更新する。ここで、ＲＥＡＤ量８４Ｂ及びＷＲＩＴＥ量８４Ｃは、ファイルＩ／Ｏ統計情報８４を取得したときに、どれほど該当ファイル１２に読み書きがあったかを示す情報である。また、総ＲＥＡＤ量８４Ｄ及び総ＷＲＩＴＥ量８４Ｅは、統計情報５６を取り始めた後からの読み書きの総量を示す情報である。また、ＲＥＡＤ時刻８４Ｆ及びＷＲＩＴＥ時刻８４Ｇは、ファイル１２にアクセスした時刻を示す情報である。
【００７５】
図９は、仮想サーバ管理情報５４の構成を示す図である。
【００７６】
仮想サーバ管理情報５４は、仮想サーバＩＤや仮想サーバ７に含まれるプロセス数などの情報を管理するテーブルである。その仮想サーバ管理情報５４は、設定情報５５、統計情報５６及び移動管理情報５７を記録する。
【００７７】
図１０は、プロセス管理情報６４の構成を示す図である。
【００７８】
プロセス管理情報６４は、ファイル共有サーバ５で動作する、ＮＦＳサーバ５１やＣＩＦＳサーバ５２といったプロセスを管理するテーブルである。プロセス管理情報６４は、仮想サーバ管理情報５４へアクセスする情報である、プロセス管理情報６４は、仮想サーバ管理情報５４へのポインタ６４Ａを記録する。こうすることで、プロセス管理情報６４は、プロセスと仮想サーバ管理情報５４とを一対一に対応づけることができる。
【００７９】
図１１は、管理端末４に接続された外部記憶装置２８に記録している管理情報２９の、仮想サーバＩ／Ｏ量設定情報３０を示す図である。
【００８０】
仮想サーバＩ／Ｏ量設定情報３０は、ファイルサーバＩＤ３０Ａと仮想サーバＩＤ３０ＢとＲＥＡＤ量３０ＣとＷＲＩＴＥ量３０Ｄを対応付けて保持するテーブルである。仮想サーバＩ／Ｏ量設定情報３０のレコードは、ファイルサーバＩＤ３０Ａに仮想サーバＩＤ３０Ｂを持つ仮想サーバ７があり、その仮想サーバ７がＲＥＡＤ量３０ＣとＷＲＩＴＥ量３０ＤのＩ／Ｏアクセスができることを示す。
【００８１】
図１２は、管理端末４に接続された外部記憶装置２８に記録している管理情報２９の、ファイルＩ／Ｏ量設定情報３１を示す図である。
【００８２】
ファイルＩ／Ｏ量設定情報３１は、ファイルサーバＩＤ３１Ａと仮想サーバＩＤ３１Ｂとファイルパス３１ＣとＲＥＡＤ量３１ＤとＷＲＩＴＥ量３１Ｅを対応付けて保持するテーブルである。ファイルＩ／Ｏ量設定情報３１のレコードは、ファイルサーバＩＤ３１Ａに仮想サーバＩＤ３１Ｂを持つ仮想サーバ７があり、その仮想サーバ７に格納しているファイルパス３１ＣがＲＥＡＤ量３１ＤとＷＲＩＴＥ量３１ＥのＩ／Ｏアクセスができることを示す。また、ファイルＩ／Ｏ量設定情報３１では、ファイルパス３１Ｃに「その他」が設定されている場合、当該ファイルＩ／Ｏ量設定情報３１に記述されていない全てのファイル１２が該当することを示している。
【００８３】
ファイルＩ／Ｏ設定情報３１は、ファイルサーバＩＤ３１Ａと仮想サーバＩＤ３１Ｂとファイルパス３１Ｃで示されるファイル１２について、ＲＥＡＤ量３１Ｄ及びＷＲＩＴＥ量３１Ｅで示される読み書き量を上限とする、ファイルＩ／Ｏを許可することを示している。
【００８４】
図１３は、管理端末４に接続された外部記憶装置２８に記録している管理情報２９の、仮想サーバ管理情報３２を示す図である。
【００８５】
仮想サーバ管理情報３２は、ファイルサーバＩＤ３２Ａとアドレス３２Ｂと仮想サーバリスト３２Ｃと仮想サーバＩＤ３２Ｄのリストを対応付けて保持するテーブルである。ファイルサーバＩＤ３２Ａを持つファイル共有サーバ５には、アドレス３２Ｂのアドレスが設定される。さらに、ファイル共有サーバ５で動作する仮想サーバ７は、仮想サーバＩＤ３２Ｄに記録される。
【００８６】
図１１、図１２及び図１３の情報は、管理者が設定した情報を保持するための情報であり、ファイル共有システム１が起動と停止を行った後でも、同等の情報を再度設定するための情報である。特に、図１３の仮想サーバ管理情報３２は、ファイル共有サーバ５と仮想サーバ７を特定するための情報であり、Ｎ−ＷＡＹクラスタを構成する上で必須の情報である。
【００８７】
図１４は、ファイル共有サーバ５のメモリ４３に格納されているファイルキャッシュ６２の構成を示す図である。
【００８８】
ファイルキャッシュ６２は、ストレージ装置８の記憶装置７１にあるデータをある大きさに一まとめにして、メモリ４３上に格納するデータである。記憶装置７１のデータは、ファイル１２をバラバラにして保存しており、それらを一まとめにしてファイルキャッシュ６２に格納する。
【００８９】
図１５は、管理者が管理プログラム２５を用いて、設定情報５５のデータを入力する際に、管理プログラム２５と仮想サーバマネージャ６０とファイルＩ／Ｏフローコントローラ５３との間でやり取りする、仮想サーバＩ／Ｏ量設定コマンド９１を示す図である。
【００９０】
仮想サーバＩ／Ｏ量設定コマンド９１は、コマンド番号９１Ａと仮想サーバＩＤ９１ＢとＲＥＡＤ量９１ＣとＷＲＩＴＥ量９１Ｄで構成される。コマンド番号９１Ａは、他のコマンドと区別するための番号で、たとえば「１００」が入力される。仮想サーバＩＤ９１Ｂは、Ｉ／Ｏ量制御対象となる仮想サーバ７のＩＤを示す。ＲＥＡＤ量９１Ｃ及びＷＲＩＴＥ量９１Ｄは、仮想サーバＩＤ９１Ｂに許可する読み込み及び書き込み量を示す。
【００９１】
図１６は、管理者が管理プログラム２５を用いて、設定情報５５のデータを入力する際に、管理プログラム２５と仮想サーバマネージャ６０とファイルＩ／Ｏフローコントローラ５３との間でやり取りする、ファイルＩ／Ｏ量設定コマンド９２を示す図である。
【００９２】
ファイルＩ／Ｏ量設定コマンド９２は、コマンド番号９２Ａと仮想サーバＩＤ９２Ｂとファイルパス９２ＣとＲＥＡＤ量９２ＤとＷＲＩＴＥ量９２Ｅで構成される。コマンド番号９２Ａは、他のコマンドと区別するための番号で、たとえば「１０１」が入力される。仮想サーバＩＤ９２Ｂは、ファイルパス９２Ｃで示されるファイルを保持する仮想サーバ７のＩＤである。ＲＥＡＤ量９２Ｃ及びＷＲＩＴＥ量９２Ｄは、仮想サーバＩＤ９２Ｂとファイルパス９２Ｃで特定されるファイル１２に許可する読み込み及び書き込み量を示す。
【００９３】
図１７は、管理者が管理プログラム２５を用いて、移動管理情報５７を設定する際に、管理プログラム２５と仮想サーバマネージャ６０がやり取りする移動管理情報設定コマンド９３を示す図である。
【００９４】
移動管理情報設定コマンド９３は、コマンド番号９３Ａと仮想サーバＩＤ９３Ｂとファイルパス９３Ｃで構成される。コマンド番号９３Ａは、他のコマンドと区別するための番号である。仮想サーバＩＤ９３Ｂ及びファイルパス９３Ｃは、仮想サーバ７の移動を判定する際に、移動不可とするファイル１２を設定するための情報である。本コマンドの発行により、ファイル共有サーバ５の仮想サーバマネージャ６０に設定要求を行い、移動管理情報５７が設定される。仮想サーバマネージャ６０は、これらの情報を用いて、移動管理情報５７を設定する。
【００９５】
図１８は、管理者が管理プログラム２５を用いて、統計情報５６を取得する際に、管理プログラム２５と仮想サーバマネージャ６０とファイルＩ／Ｏフローコントローラ５３との間でやり取りする、仮想サーバＩ／Ｏ量取得コマンド９４を示す図である。
【００９６】
仮想サーバＩ／Ｏ量取得コマンド９４は、コマンド番号９４Ａと仮想サーバＩＤ９４Ｂで構成される。コマンド番号９４Ａは、他のコマンドと区別するための番号で、たとえば「１０２」が入力される。一方、仮想サーバＩＤ９４Ｂは、管理者がＩ／Ｏ量を取得したい仮想サーバ７のＩＤを示す。
【００９７】
図１９は、管理者が管理プログラム２５を用いて、統計情報５６を取得する際に、管理プログラム２５と仮想サーバマネージャ６０とファイルＩ／Ｏフローコントローラ５３との間でやり取りする、ファイルＩ／Ｏ量取得要求コマンド９５を示す図である。
【００９８】
ファイルＩ／Ｏ量取得要求コマンド９５は、コマンド番号９５Ａと仮想サーバＩＤ９５Ｂとファイルパス９５Ｃで構成される。コマンド番号９５Ａは、他のコマンドと区別するための番号で、たとえば「１０３」が入力される。また、仮想サーバＩＤ９５Ｂは、ファイルパス９５Ｃで示されるファイル１２を保持する仮想サーバ７のＩＤである。ファイルパス９５Ｃは、仮想サーバＩＤ９５Ｂで示される仮想サーバ７が保持しているファイル１２のパスである。
【００９９】
図２０は、仮想サーバＩ／Ｏ量取得要求コマンド９４の戻り値である、仮想サーバＩ／Ｏ量取得要求戻り値９６を示す図である。
【０１００】
仮想サーバＩ／Ｏ量取得要求戻り値９６は、仮想サーバＩＤ９６ＡとＲＥＡＤ量９６ＢとＷＲＩＴＥ量９６Ｃで構成される。仮想サーバＩＤ９６Ａは、仮想サーバＩ／Ｏ量取得要求コマンド９４で要求した仮想サーバ７のＩＤである。ＲＥＡＤ量９６Ｂ及びＷＲＩＴＥ量９６Ｃは、仮想サーバＩＤ９６Ａで示した仮想サーバ７の読み込み及び書き込み量である。
【０１０１】
図２１は、ファイルＩ／Ｏ量取得要求コマンド９５の戻り値である、ファイルＩ／Ｏ量取得要求戻り値９７を示す図である。
【０１０２】
ファイルＩ／Ｏ量取得要求戻り値９７は、仮想サーバＩＤ９７Ａとファイルパス９７ＢとＲＥＡＤ量９７ＣとＷＲＩＴＥ量９７Ｄで構成される。仮想サーバＩＤ９７Ａは、ファイルＩ／Ｏ量取得要求コマンド９５で要求した仮想サーバ７のＩＤである。ファイルパス９７Ｂは、ファイルＩ／Ｏ量取得要求コマンド９５で要求したファイルパスである。ＲＥＡＤ量９７Ｃ及びＷＲＩＴＥ量９７Ｄは、仮想サーバＩＤ９７Ａで示した仮想サーバ７の読み込み及び書き込み量である。
【０１０３】
図２２は、図１５から図２１で説明したＩ／Ｏ量設定コマンド、及びＩ／Ｏ量取得コマンドのシーケンスフローＲＴ１である。
【０１０４】
仮想サーバＩ／Ｏ量設定コマンド９１とファイルＩ／Ｏ量設定コマンド９２は、シーケンスフローＲＴ１の設定シーケンスＳＰ１の流れとなる。まず、管理プログラム２５は、Ｉ／Ｏ量設定要求を仮想サーバマネージャ６０へ送信する。そして、仮想サーバマネージャ６０は、その要求をファイルＩ／Ｏフローコントローラ５３へ送信する。ファイルＩ／Ｏフローコントローラ５３は、受け取った要求に従って、設定情報５５へ情報を設定する。一方、仮想サーバＩ／Ｏ量取得要求コマンド９４とファイルＩ／Ｏ量取得要求コマンド９５は、取得シーケンスＳＰ２の流れとなる。まず、管理プログラム２５は、Ｉ／Ｏ量取得要求を仮想サーバマネージャ６０へ送信する。仮想サーバマネージャ６０は、その要求をファイルＩ／Ｏフローコントローラ５３へ送信する。ファイルＩ／Ｏフローコントローラ５３は、統計情報５６のデータを取得する。そして、ファイルＩ／Ｏフローコントローラ５３は、戻り値を仮想サーバマネージャ６０へ送信する。仮想サーバマネージャ６０は、その戻り値を管理プログラム２５へ送信する。
【０１０５】
図２３は、管理端末４の表示部（図示せず）に表示されるユーザインタフェース１０１を示す図である。
【０１０６】
ユーザインタフェース１０１は、設定１０２と統計情報１０３と移動管理設定１０４に分かれている。設定１０２には、ファイルサーバＩＤ１０２Ａと仮想サーバＩＤ１０２Ｂとファイルパス１０２ＣとＲＥＡＤ量１０２ＤとＷＲＩＴＥ量１０２Ｅを入力する入力ボックスがある。さらに、設定１０１には、入力したデータを設定する設定ボタン１０２Ｆがある。各入力ボックスに入力するデータは、前述した仮想サーバＩ／Ｏ量設定コマンド９１とファイルＩ／Ｏ量設定コマンド９２に設定されるデータである。管理者が設定ボタン１０２Ｆを押すと、管理プログラム２５は、設定コマンドとともにデータを仮想サーバマネージャ６０へ送信する。
【０１０７】
また、統計情報１０３には、ファイルサーバＩＤ１０３Ａと仮想サーバＩＤ１０３ＢとＲＥＡＤ量１０３ＣとＷＲＩＴＥ量１０３Ｄを表示するボックスがある。さらに、統計情報１０３には、統計情報を取得する取得ボタン１０３Ｅがある。管理者が取得ボタン１０３Ｅを押すと、管理プログラム２５は、取得コマンドを仮想サーバマネージャ６０へ送信する。
【０１０８】
また、移動管理設定１０４には、ファイルサーバＩＤ１０４Ａと仮想サーバＩＤ１０４Ｂとファイルパス１０４Ｃを設定するボックスがある。さらに、移動管理設定１０４には、それらの情報を送信する設定ボタン１０４Ｄがある。管理者が、ファイルサーバＩＤ１０４Ａと仮想サーバＩＤ１０４Ｂとファイルパス１０４Ｃを入力し、設定ボタン１０４Ｄを押すと、管理プログラム２５は、移動管理設定コマンドを仮想サーバマネージャ６０へ送信する。
【０１０９】
図２４は、管理端末４の管理プログラム２５の処理フローＲＴ２を示すフローチャートである。
【０１１０】
管理プログラム２５は、まず、ユーザの処理が設定情報５５を判定する（ステップＳＰ１１）。
【０１１１】
Ｉ／Ｏ量設定処理の場合（ステップＳＰ１１：設定）、管理プログラム２５は、Ｉ／Ｏ量設定処理を呼び出す（フローＲＴ３）。一方、ステップＳＰ１１で取得処理だった場合（ステップＳＰ１１：取得）、管理プログラム２５は、統計情報取得対象となるファイル共有サーバ５のサーバＩＤ１０３Ａと仮想サーバＩＤ１０３Ｂの入力を受け付ける（ステップＳＰ１２及びステップＳＰ１３）。
【０１１２】
そして、管理プログラム２５は、ファイル共有サーバ５のサーバＩＤ１０３Ａを元に統計情報取得対象を特定し、仮想サーバＩ／Ｏ量取得要求コマンド９４とファイルＩ／Ｏ量取得要求コマンド９５をファイル共有サーバ５へ送信する（ステップＳＰ１４）。そして、管理プログラム２５は、ファイル共有サーバ５から仮想サーバＩ／Ｏ量取得要求戻り値９６とファイルＩ／Ｏ量取得要求戻り値９７を受け取り（ステップＳＰ１５）、取得結果をユーザインタフェース１０１へ表示して（ステップＳＰ１６）、処理を終了する（ステップＳＰ２１）。
【０１１３】
一方、仮想サーバ移動設定処理の場合（ステップＳＰ１１：移動設定）、管理プログラム２５は、ファイルサーバＩＤ１０４Ａの入力を待ち受け（ステップＳＰ１７）、仮想サーバＩＤ１０４Ｂの入力を待ち受け（ステップＳＰ１８）、ファイルパス１０４Ｃの入力を待ち受け（ステップＳＰ１９）、最後にファイル共有サーバ５へ、移動管理情報設定コマンド９３を用いて、仮想サーバ移動設定要求を送信して（ステップＳＰ２０）、処理を終了する（ステップＳＰ２１）。これにより、ファイル共有サーバ５では、仮想サーバマネージャ６０が呼び出され、移動管理情報５７が設定される。
【０１１４】
図２５は、管理端末４の管理プログラム２５がＩ／Ｏ量を設定する際に呼び出す、Ｉ／Ｏ量設定処理の処理フローＲＴ３を示すフローチャートである。
【０１１５】
管理プログラム２５は、Ｉ／Ｏ量設定処理で、ファイルサーバＩＤ１０２Ａの入力を待ち受け（ステップＳＰ３１）、仮想サーバＩＤ１０２Ｂの入力を待ち受け（ステップＳＰ３２）、ファイルパス１０２Ｃの入力を待ち受け（ステップＳＰ３３）、流量データ（ＲＥＡＤ量１０２Ｄ及びＷＲＩＴＥ量１０２Ｅ）の入力を待ち受ける（ステップＳＰ３４）。この時、ファイルパスを待ち受けるステップＳＰ３３では、何も入力されない場合がある。何も入力されない場合、管理プログラム２５は、仮想サーバＩ／Ｏ量設定と判断する。この処理は、ステップＳＰ３６で実施される。
【０１１６】
そして、管理プログラム２５は、それらの情報を外部記憶装置２８の管理情報２９へ記録する（ステップＳＰ３５）。次に、管理プログラム２５は、ステップＳＰ３３でファイルパス１０２Ｃが入力されたかを判定する（ステップＳＰ３６）。ファイルパス１０２Ｃが入力された場合（ステップＳＰ３６：ＹＥＳ）、ファイル共有サーバ５へ、ファイルＩ／Ｏ量設定コマンド９２を用いて、設定情報を送信する（ステップＳＰ３７）。また、ファイルパスが入力されていない場合（ステップＳＰ３６：ＮＯ）、ファイル共有サーバ５へ仮想サーバＩ／Ｏ量設定コマンド９１を用いて、設定情報を送信して（ステップＳＰ３８）、処理を終了する（ステップＳＰ３９）。
【０１１７】
図２６は、ファイル共有サーバ５で動作する仮想サーバマネージャ６０の処理フローＲＴ４を示すフローチャートである。
【０１１８】
仮想サーバマネージャ６０は、駆動元（呼び出し元）がタイマ呼び出しか要求を受信したものかを判定する（ステップＳＰ４１）。タイマ呼び出しとは、計算機が備える時計機能を利用し、一定時間間隔でプログラムを呼び出す機能のことである。タイマ呼び出しによって、一定時間毎に処理を実行することができる。
【０１１９】
タイマ呼び出しだった場合（ステップＳＰ４１：タイマ呼び出し）、仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３へ統計情報取得を要求する（ステップＳＰ４２）。そして、仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３から統計情報５６を取得する（ステップＳＰ４３）。そして、仮想サーバマネージャ６０は、仮想サーバＩ／Ｏ流量テーブル８１とファイルＩ／Ｏ流量テーブル８２と仮想サーバＩ／Ｏ統計情報８３とファイルＩ／Ｏ統計情報８４とをそれぞれ比較する（ステップＳＰ４４）。許容量として設定した、仮想サーバＩ／Ｏ統計情報８３とファイルＩ／Ｏ統計情報８４が、仮想サーバＩ／Ｏ流量テーブル８１とファイルＩ／Ｏ流量テーブル８２の許可容量を上回る場合、仮想サーバマネージャ６０は、Ｉ／Ｏ量超過と判定する。ここで、後述する、Ｉ／Ｏ流量制御によって、多くの場合は超過しないことを期待することができる。しかし、あまりに多くのファイル１２に対して多くの読み書きが行われた場合、Ｉ／Ｏ流量制御の能力を超過する可能性がある。この場合、仮想サーバマネージャ６０は、ステップＳＰ４４でＩ／Ｏ量超過と判定する。
【０１２０】
Ｉ／Ｏ量超過と判定された場合（ステップＳＰ４４：ＹＥＳ）、仮想サーバマネージャ６０は、移動管理情報５７を用いて、仮想サーバＩＤ５７Ａとファイルパス５７Ｂからその仮想サーバ７で重要ファイルが利用されているかを判定する（ステップＳＰ４５）。移動管理情報５７に記録されているファイルを読み書きしている場合、仮想サーバマネージャ６０は、重要ファイル使用中と判断する。重要なファイルが利用されていない場合（ステップＳＰ４５：ＮＯ）、仮想サーバマネージャ６０は、仮想サーバ７を移動する（ステップＳＰ４６）。一方、利用されている場合（ステップＳＰ４５：ＹＥＳ）、仮想サーバマネージャ６０は、仮想サーバ７を移動しない。
【０１２１】
また、Ｉ／Ｏ量超過ではない場合（ステップＳＰ４４：ＮＯ）、処理を終了する（ステップＳＰ５５）。
【０１２２】
以上が、仮想サーバマネージャ６０が一定時間毎に、仮想サーバ７の負荷状況を調査して、過負荷となっている仮想サーバ７を移動させる処理（または移動させない処理）を実行する手順となる。
【０１２３】
一方、管理端末４の管理プログラム２５から要求を受信すると（ステップＳＰ４１：処理要求受信、ステップＳＰ４７）、仮想サーバマネージャ６０は、要求処理がＩ／Ｏ流量設定か、統計情報取得か、仮想サーバ移動設定処理か、を判定する（ステップＳＰ４８）。
【０１２４】
要求処理がＩ／Ｏ流量設定の場合（ステップＳＰ４８：Ｉ／Ｏ流量設定）、仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３へＩ／Ｏ量設定要求を行う（ステップＳＰ４９）。このＩ／Ｏ量設定要求は、仮想サーバＩ／Ｏ量設定コマンド９１やファイルＩ／Ｏ量設定コマンド９２である。
【０１２５】
一方、要求処理が統計情報取得の場合（ステップＳＰ４８：統計情報取得）、仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３へ統計情報取得要求を送信する（ステップＳＰ５０）。この統計情報取得要求は、仮想サーバＩ／Ｏ量取得要求コマンド９４やファイルＩ／Ｏ量取得要求コマンド９５である。そして、仮想サーバマネージャ６０は、ファイルＩ／Ｏフローコントローラ５３から統計情報５６を受け取る（ステップＳＰ５１）。この統計情報５６を受け取るための情報は、仮想サーバＩ／Ｏ量取得要求戻り値９６やファイルＩ／Ｏ量取得要求戻り値９７である。
【０１２６】
最後に、仮想サーバマネージャ６０は、管理端末４の管理プログラム２５へ結果を送信して（ステップＳＰ５２）、処理を終了する（ステップＳＰ５５）。
【０１２７】
一方、ステップＳＰ４８で、仮想サーバ移動設定処理である場合（ステップＳＰ４８：移動設定）、仮想サーバマネージャ６０は、仮想サーバ移動設定を行う（ステップＳＰ５４）。具体的には、仮想サーバマネージャ６０は、管理端末４の管理プログラム２５から、移動管理情報設定コマンド９３を受け取り、そこに示されている仮想サーバＩＤ９３Ｂ及びファイルパス９３Ｃを基に、移動管理情報５７の仮想サーバＩＤ５７Ａとファイルパス５７Ｂへ設定する。この移動管理情報５７は、仮想サーバマネージャ６０の処理のステップＳＰ４４で用いられる。
【０１２８】
図２７は、クライアント装置２のファイルアクセスプログラム３の処理フローＲＴ５を示すフローチャートである。
【０１２９】
ファイルアクセスプログラム３は、クライアント装置２を利用するユーザからファイルアクセス要求を受け取り、そのファイル１２のファイル名を取得する（ステップＳＰ６１）。そして、ファイルアクセスプログラム３は、ＣＩＦＳサーバ５２またはＮＦＳサーバ５１へファイルアクセス要求を送信する（ステップＳＰ６２）。そして、ファイルアクセスプログラム３は、ＣＩＦＳサーバ５２またはＮＦＳサーバ５１からファイルアクセス結果を受け取る（ステップＳＰ６３）。最後に、ファイルアクセスプログラム３は、ユーザへアクセス結果を返して（ステップＳＰ６４）、処理を終了する（ステップＳＰ６５）。
【０１３０】
図２８は、ファイル共有サーバ５のＮＦＳサーバ５１の処理フローＲＴ６を示すフローチャートである。
【０１３１】
ＮＦＳサーバ５１は、クライアント装置２のファイルアクセスプログラム３からファイルアクセス要求を受信する（ステップＳＰ７１）。そして、ＮＦＳサーバ５１は、そのファイルアクセス要求に従って、ＶＦＳ６３へファイルアクセス要求を送信し（ステップＳＰ７２）、ＶＦＳ６３からファイルアクセス結果を受け取る（ステップＳＰ７３）。最後に、ＮＦＳサーバ５１は、ファイルアクセス結果をクライアント装置２へ返して（ステップＳＰ７４）、処理を終了する（ステップＳＰ７５）。
【０１３２】
図２９は、ファイル共有サーバ５のＣＩＦＳサーバ５２の処理フローＲＴ７を示すフローチャートである。
【０１３３】
ＣＩＦＳサーバ５２は、クライアント装置２のファイルアクセスプログラム３からファイルアクセス要求を受信する（ステップＳＰ８１）。そして、ＣＩＦＳサーバ５２は、そのファイルアクセス要求に従って、ライブラリ６１へファイルアクセス要求を送信し（ステップＳＰ８２）、ライブラリ６１からファイルアクセス結果を受け取る（ステップＳＰ８３）。最後に、ＣＩＦＳサーバ５２は、ファイルアクセス結果をクライアント装置２へ返して（ステップＳＰ８４）、処理を終了する（ステップＳＰ８５）。
【０１３４】
図３０は、ファイル共有サーバ５のライブラリ６１の処理フローＲＴ８を示すフローチャートである。
【０１３５】
ライブラリ６１は、ＣＩＦＳサーバ５２からファイルアクセス要求を受信する（ステップＳＰ９１）。そして、ライブラリ６１は、そのファイルアクセス要求に従って、ＶＦＳ６３へファイルアクセス要求を送信し（ステップＳＰ９２）、ＶＦＳ６３からファイルアクセス結果を受け取る（ステップＳＰ９３）。最後に、ライブラリ６１は、ファイルアクセス結果をＣＩＦＳサーバ５２へ返して（ステップＳＰ９４）、処理を終了する（ステップＳＰ９５）。
【０１３６】
本来、ライブラリ６１は、ＣＩＦＳサーバ５２からのみ利用されるプログラムではなく、様々なプログラムが共有して利用するプログラムである。ただし、ＮＦＳサーバ５１などの一部のプログラムからは利用されない。このように、ライブラリ６１は必ずしも利用されるわけではない。
【０１３７】
図３１は、ファイル共有サーバ５のＶＦＳ６３の処理フローＲＴ９を示すフローチャートである。
【０１３８】
ＶＦＳ６３は、ＮＦＳサーバ５１やライブラリ６１へ、ファイル１２へのアクセスインタフェースを提供する。ＶＦＳ６３は、ＮＦＳサーバ５１やライブラリ６１からファイルアクセス要求を受信する（ステップＳＰ１０１）。そして、ＶＦＳ６３は、アクセス先のファイルシステムを特定する（ステップＳＰ１０２）。通常、ストレージ装置８の記憶装置７１に格納しているファイルシステムには様々な種類があり、それぞれ固有のファイルアクセス方式を実装している。固有のアクセス方式を実行するため、格納しているファイルシステムごとにローカルファイルシステム５８がある。ＶＦＳ６３は、ステップＳＰ１０２でこの処理を行う。そして、そのファイルアクセス要求に従って、ＶＦＳ６３は、ファイルＩ／Ｏフローコントローラ５３へファイルアクセス要求を送信し（ステップＳＰ１０３）、ファイルＩ／Ｏフローコントローラ５３からファイルアクセス結果を受け取る（ステップＳＰ１０４）。最後に、ＶＦＳ６３は、ＮＦＳサーバ５１やライブラリ６１へファイルアクセス結果を返して（ステップＳＰ１０５）、処理を終了する（ステップＳＰ１０６）。
【０１３９】
図３２は、ファイル共有サーバ５のファイルＩ／Ｏフローコントローラ５３のメイン処理フローＲＴ１０を示すフローチャートである。
【０１４０】
ファイルＩ／Ｏフローコントローラ５３は、ＶＦＳ６３や仮想サーバマネージャ６０から処理要求を受け取り（ステップＳＰ１１１）、処理がファイルアクセスか管理処理かを判定する（ステップＳＰ１１２）。
【０１４１】
ファイルアクセスの場合（ステップＳＰ１１２：ファイルアクセス）、ファイルＩ／Ｏフローコントローラ５３は、ファイルアクセスがＲＥＡＤ（読み込み）要求かどうかを調べる（ステップＳＰ１１３）。
【０１４２】
ＲＥＡＤ要求の場合（ステップＳＰ１１３：ＹＥＳ）、ファイルＩ／Ｏフローコントローラ５３は、ＲＥＡＤフローコントロール処理を実行し（ステップＳＰ１１４）、ローカルファイルシステム５８へファイルアクセスを要求する（ステップＳＰ１１７）。最後に、ファイルＩ／Ｏフローコントローラ５３は、ローカルファイルシステム５８からファイルアクセス結果を受信して（ステップＳＰ１１８）、要求元へ返して（ステップＳＰ１１９）、処理を終了する（ステップＳＰ１２５）。
【０１４３】
一方、ＲＥＡＤ要求ではなかった場合（ステップＳＰ１１３：ＮＯ）、次に、ファイルＩ／Ｏフローコントローラ５３は、ＷＲＩＴＥ（書き込み）要求かを調べる（ステップＳＰ１１５）。書き込み要求の場合（ステップＳＰ１１５：ＹＥＳ）、ファイルＩ／Ｏフローコントローラ５３は、ＷＲＩＴＥフローコントロール処理（ステップＳＰ１１６）を実行する。その後の処理（ステップＳＰ１１８〜ステップＳＰ１２５）は、ＲＥＡＤ処理と同様のため、説明を省略する。
【０１４４】
一方、ＷＲＩＴＥ要求でもなかった場合（ステップＳＰ１１５：ＮＯ）、ファイルＩ／Ｏフローコントローラ５３は、特に何もせず、ローカルファイルシステム５８へファイルアクセスを要求する（ステップＳＰ１１７）。ステップＳＰ１１８〜ステップＳＰ１２５は、ＲＥＡＤ処理と同様のため、説明を省略する。
【０１４５】
また、ステップＳＰ１１２が管理処理の場合（ステップＳＰ１１２：管理処理）、ファイルＩ／Ｏフローコントローラ５３は、管理処理がＩ／Ｏ流量設定処理かどうかを判定する（ステップＳＰ１２０）。この判定は、コマンド（仮想サーバＩ／Ｏ量設定コマンド９１、ファイルＩ／Ｏ量設定コマンド９２、仮想サーバＩ／Ｏ量取得要求コマンド９４、ファイルＩ／Ｏ量取得要求コマンド９５）のコマンド番号から判定できる。
【０１４６】
管理処理がＩ／Ｏ流量設定の場合（ステップＳＰ１２０：ＹＥＳ）、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバマネージャ６０から受け取った設定コマンド（仮想サーバＩ／Ｏ量設定コマンド９１、ファイルＩ／Ｏ量設定コマンド９２）から、仮想サーバＩＤやＲＥＡＤ量などを取得する（ステップＳＰ１２１）。そして、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の設定情報５５に設定して（ステップＳＰ１２２）、処理を終了する（ステップＳＰ１２５）。
【０１４７】
一方、管理処理がＩ／Ｏ流量設定ではない場合（ステップＳＰ１２０：ＮＯ）、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の統計情報５６から統計情報を取得する（ステップＳＰ１２３）。そして、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバマネージャ６０へその統計情報５６を返して（ステップＳＰ１２４）、処理を終了する（ステップＳＰ１２５）。
【０１４８】
図３３は、ファイル共有サーバ５のファイルＩ／Ｏフローコントローラ５３のＲＥＡＤ処理フローＲＴ１１を示すフローチャートである。
【０１４９】
ファイルＩ／Ｏフローコントローラ５３は、ＶＦＳ６３のＲＥＡＤアクセス要求から、ファイル読み出しサイズを取得する（ステップＳＰ１３１）。そして、ファイルＩ／Ｏフローコントローラ５３は、ＲＥＡＤファイルアクセス要求を実行したプロセス（ＣＩＦＳサーバ５２やＮＦＳサーバ５１など）のプロセス管理情報６４をＯＳの情報から取得し、そのプロセス管理情報６４から仮想サーバ管理情報５４を取得する（ステップＳＰ１３２）。そして、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の統計情報５６のうち、仮想サーバＩ／Ｏ統計情報８３の総ＲＥＡＤ量８３Ｃに読み込み量を足す（ステップＳＰ１３３）。さらに、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の統計情報５６のうち、ファイルＩ／Ｏ統計情報８４の総ＲＥＡＤ量８４Ｄに読み込み量を足す（ステップＳＰ１３４）。
【０１５０】
また、ファイルＩ／Ｏフローコントローラ５３は、前回のＲＥＡＤ時刻８４Ｆを取得し、経過時間でＲＥＡＤ差分を割って、単位時間当たりのＲＥＡＤ量を計算する（ステップＳＰ１３５）。そして、仮想サーバＩ／Ｏ統計情報８３のＲＥＡＤ量８３ＡとファイルＩ／Ｏ統計情報８４のＲＥＡＤ量８４Ｂを更新し、ＲＥＡＤ時刻８４Ｆを更新する（ステップＳＰ１３６）。そして、ファイルＩ／Ｏフローコントローラ５３は、単位時間当たりのＲＥＡＤ量が仮想サーバＩ／Ｏ流量テーブル８１またはファイルＩ／Ｏ流量テーブル８２より大きいか判定する（ステップＳＰ１３７）。大きい場合（ステップＳＰ１３７：ＹＥＳ）、ファイルＩ／Ｏフローコントローラ５３は、一定時間（例えば、１秒間）読み込みを停止させ（ステップＳＰ１３８）、ＲＥＡＤ処理フローを継続して、処理を終了する（ステップＳＰ１３９）。ここで、停止時間は、任意に変更しても良い。一方、小さい場合（ステップＳＰ１３７：ＮＯ）、ＲＥＡＤ処理フローをそのまま継続して、処理を終了する（ステップＳＰ１３９）。
【０１５１】
ここで、ファイルＩ／Ｏフローコントローラ５３は、一定時間停止した後、ステップＳＰ１３７に戻らない。これは、Ｉ／Ｏ流量があまりに大きい場合、一定時間停止してもＩ／Ｏ流量設定量より大きくなり、長時間ファイル読み込みが停止してしまう。その結果、クライアント装置２のファイルアクセスプログラム３が読み込みエラーと判断することがあり、それを避けるためである。ファイルＩ／Ｏフローコントローラ５３は、一定時間停止しながら少しずつ結果を返すことによって、ファイルアクセスプログラム３が読み込みエラーと判定させずに、さらに、Ｉ／Ｏ流量制御を実行することができる。
【０１５２】
しかし、この処理の為に過負荷状態が続くことがあり、それによって仮想サーバ７の移動が発生することがある。この仮想サーバ７の移動の可否を判定するために、仮想サーバマネージャ６０は、移動管理情報５７を用いる。移動処理については既に述べた。
【０１５３】
図３４は、ファイル共有サーバ５のファイルＩ／Ｏフローコントローラ５３のＷＲＩＴＥ処理フローＲＴ１２を示すフローチャートである。
【０１５４】
ファイルＩ／Ｏフローコントローラ５３は、ＶＦＳ６３のＷＲＩＴＥアクセス要求から、ファイル読み出しサイズを取得する（ステップＳＰ１４１）。そして、ファイルＩ／Ｏフローコントローラ５３は、ＷＲＩＴＥファイルアクセス要求を実行したプロセス（ＣＩＦＳサーバ５２やＮＦＳサーバ５１など）のプロセス管理情報６４をＯＳの情報から取得し、そのプロセス管理情報６４から仮想サーバ管理情報５４を取得する（ステップＳＰ１４２）。そして、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の統計情報５６のうち、仮想サーバ統計情報８３の総ＷＲＩＴＥ量８３Ｄに書き込み量を足す（ステップＳＰ１４３）。さらに、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバ管理情報５４の統計情報５６のうち、ファイルＩ／Ｏ統計情報８４の総ＷＲＩＴＥ量８４Ｅに書き込み量を足す（ステップＳＰ１４４）。
【０１５５】
また、ファイルＩ／Ｏフローコントローラ５３は、前回のＷＲＩＴＥ時刻８４Ｇを取得し、経過時間でＷＲＩＴＥの差分を割って、単位時間当たりのＷＲＩＴＥ量を計算する（ＳＰ１４５）。そして、ファイルＩ／Ｏフローコントローラ５３は、仮想サーバＩ／Ｏ統計情報８３のＷＲＩＴＥ量８３ＢとファイルＩ／Ｏ統計情報８４のＷＲＩＴＥ量８４Ｃを更新し、ＷＲＩＴＥ時刻８４Ｇを更新する（ステップＳＰ１４６）。そして、ファイルＩ／Ｏフローコントローラ５３は、単位時間当たりのＷＲＩＴＥ量が仮想サーバＩ／Ｏ流量テーブル８１またはファイルＩ／Ｏ流量テーブル８２より大きいか判定する（ステップＳＰ１４７）。大きい場合（ステップＳＰ１４７：ＹＥＳ）、ファイルＩ／Ｏフローコントローラ５３は、一定時間（例えば、１秒間）書き込みを停止させ（ステップＳＰ１４８）、ＷＲＩＴＥ処理フローを継続して、処理を終了する（ステップＳＰ１４９）。ここで、停止時間は、任意に変更しても良い。一方、小さい場合（ステップＳＰ１４７：ＮＯ）、ＷＲＩＴＥ処理フローを継続して、処理を終了する（ステップＳＰ１４９）。ここで、ファイルＩ／Ｏフローコントローラ５３は、一定時間停止した後、ステップＳＰ１４７に戻らない。これは、Ｉ／Ｏ流量があまりに大きい場合、一定時間停止してもＩ／Ｏ流量設定量より大きい状態となり、長時間ファイル書き込みが停止してしまう。その結果、クライアント装置２のファイルアクセスプログラム３が書き込みエラーと判断することがあり、それを避けるためである。ファイルＩ／Ｏフローコントローラ５３は、一定時間停止しながら少しずつ結果を返すことによって、ファイルアクセスプログラム３が読み込みエラーと判定させずに、さらに、Ｉ／Ｏ流量制御を実行することができる。
【０１５６】
しかし、この処理の為に過負荷状態が続くことがあり、それによって仮想サーバ７の移動が発生することがある。この仮想サーバ７の移動の可否を判定するために、仮想サーバマネージャ６０は、移動管理情報５７を用いる。移動処理については既に述べた。
【０１５７】
図３５は、ファイル共有サーバ５のローカルファイルシステム５８の処理フローを示すフローチャートである。
【０１５８】
ローカルファイルシステム５８は、ファイルＩ／Ｏフローコントローラ５３からファイルアクセス要求を受け取る（ステップＳＰ１５１）。そして、ローカルファイルシステム５８は、ファイルキャッシュ６２を検索する（ステップＳＰ１５２）。ファイルキャッシュ６２にアクセス対象のファイルデータがある場合（ステップＳＰ１５３：ＹＥＳ）、ローカルファイルシステム５８は、ＷＲＩＴＥ処理ではファイルキャッシュ６２へデータを反映し、ＲＥＡＤ処理ではファイルキャッシュ６２からデータを取得する（ステップＳＰ１５４）。そして、ローカルファイルシステム５８は、ファイルＩ／Ｏフローコントローラ５３へデータを返して（ステップＳＰ１５７）、処理を終了する（ステップＳＰ１５８）。一方、ファイルキャッシュ６２にデータ無い場合（ステップＳＰ１５３：ＮＯ）、ローカルファイルシステム５８は、デバイスドライバ５９へデータ読み書き要求を行う（ステップＳＰ１５５）。そして、ローカルファイルシステム５８は、デバイスドライバ５９から結果を受け取り（ステップＳＰ１５６）、ファイルＩ／Ｏフローコントローラ５３へ結果を返して（ステップＳＰ１５７）、処理を終了する（ステップＳＰ１５８）。
【０１５９】
図３６は、ファイル共有サーバ５のデバイスドライバ５９の処理フローを示すフローチャートである。
【０１６０】
デバイスドライバ５９は、ローカルファイルシステム５８からデータアクセス要求を受け取る（ステップＳＰ１６１）。そして、デバイスドライバ５９は、ストレージ装置８の記憶装置７１へデータアクセスを要求し（ステップＳＰ１６２）、ストレージ装置８の記憶装置７１からアクセス結果を受け取る（ステップＳ１６３）。最後に、デバイスドライバ５９は、ローカルファイルシステム５８へデータアクセス結果を送り（ステップＳＰ１６４）、処理を終了する（ステップＳＰ１６５）。
【０１６１】
以上に説明した実施形態により、ファイル共有システム１では、複数の仮想サーバ７が動作するファイル共有サーバ５において、管理者が仮想サーバ７の負荷情報を正確に把握することが可能となる。さらに、ファイル共有システム１では、仮想サーバ７及びファイル１２毎にＩ／Ｏ量を制限することが可能となり、特定の仮想サーバ７が大きな負荷を発生させても、他の仮想サーバ７の処理性能低下を抑えることができる。さらに、ファイル共有システム１では、重要なデータ処理と重要ではないデータ処理をファイル１２毎に設定でき、重要ではないデータ処理のアクセスのみ抑止することができる。
【０１６２】
さらに、ファイル共有システム１では、ローカルファイルシステム５８の処理より先にＩ／Ｏ量を取得し、負荷制御を実施することで、ファイルキャッシュ６２の影響を受けることなく、負荷制御を実施することができる。従って、ファイル共有システム１では、ストレージ装置８で負荷制御を行うより正確な負荷制御を実施することができる。
【０１６３】
（２）実施例２について
図３７は、本発明の実施例２に係るファイル共有システム１のシステム構成を示すシステム構成図である。実施例２では、管理端末４がＮ−ｗａｙクラスタ管理機能を有し、複数あるファイル共有サーバ５の負荷を、Ｎ−ｗａｙ管理データ１１１に従って制御する。
【０１６４】
実施例２の動作概要を以下に述べる。実施例１では、管理者がそれぞれのファイル共有サーバ５で動作する仮想サーバ７の負荷状況を確認するインタフェースが、管理プログラム２５に存在する。実施例２では、さらに、管理プログラム２５がＮ−ｗａｙクラスタの負荷状況を管理する。つまり、管理プログラム２５は、Ｎ−ｗａｙクラスタを構成するファイル共有サーバ５の負荷状況を集め、それに応じて負荷を制御する。
【０１６５】
図３７では、クライアント装置２のファイルアクセス要求により、ファイル共有サーバ５Ａの仮想サーバ２（仮想サーバ７Ａ）の負荷が増大している。ここで、実施例２の管理プログラム２５は、ファイル共有サーバ５Ａとファイル共有サーバ５Ｂの負荷状況を取得する。そして、管理プログラム２５は、管理者が設定したＮ−ｗａｙ管理データ１１１に従って、仮想サーバ２（仮想サーバ７Ａ）をファイル共有サーバ５Ｂに移動（フェールオーバ）する。一方、仮想サーバ３（仮想サーバ７Ｃ）は、Ｉ／Ｏアクセスを抑止する。以上のように、実施例２に係るファイル共有システム１Ｎ−ｗａｙクラスタを構成するファイル共有サーバ５の負荷状況に応じて負荷を制御する。
【０１６６】
図３８は、管理端末４のメモリ４３と、外部記憶装置２８の管理情報２９に格納されるＮ−ｗａｙ管理データ１１１を示す図である。
【０１６７】
Ｎ−ｗａｙ管理データ１１１には、ファイルＩＤ１１１Ａと仮想サーバ１１１Ｂと高負荷時動作１１１Ｃとオプション１１１Ｄが対応付けられて記録されている。ファイルサーバＩＤ１１１Ａは、負荷制御対象のファイル共有サーバ５のＩＤである。仮想サーバＩＤ１１１Ｂは、ファイルサーバＩＤ１１１Ａで示したファイル共有サーバ５で動作する仮想サーバ７のＩＤである。高負荷時動作１１１Ｃは、仮想サーバ７が高負荷であると判定された場合の動作である。例えば、高負荷時動作１１１Ｃには、Ｉ／Ｏ停止処理（読み書き停止処理）が設定される。オプション１１１Ｄは、高負荷時動作１１１Ｃの動作オプションである。例えば、Ｎ−ｗａｙ管理データ１１１は、高負荷時動作１１１ＣがＩ／Ｏ停止の場合、停止秒数（例えば、１０秒間）が指定される。
【０１６８】
Ｎ−ｗａｙ管理データ１１１と仮想サーバＩ／Ｏ量設定情報３０とファイルＩ／Ｏ量設定情報３１とを組み合わせることで、管理プログラム２５は、各仮想サーバ７の負荷発生時の動作を決定することができる。例えば、管理プログラム２５は、ファイルサーバＩＤ１１１Ａと仮想サーバＩＤ１１１Ｂで示される仮想サーバ７のＩ／Ｏ量をファイル共有サーバ５から取得し、仮想サーバＩ／Ｏ量設定情報３０のＲＥＡＤ量３０Ｃ及びＷＲＩＴＥ量３０Ｄと比較する。その結果、仮想サーバＩ／Ｏ量（仮想サーバＩ／Ｏ統計情報８３、ファイルＩ／Ｏ統計情報８４）が大きければ、管理プログラム２５は、Ｎ−ｗａｙ管理データ１１１の高負荷時動作を行う。
【０１６９】
図３９は、実施例２における、管理プログラム２５と仮想サーバマネージャ６０の間でやり取りされる、Ｎ−ｗａｙ対応要求で使用されるコマンドを示す一例である。
【０１７０】
Ｎ−ｗａｙ対応要求コマンド１１２は、コマンド番号１１２Ａと仮想サーバＩＤ１１２Ｂと動作１１２Ｃとオプション１１２Ｄで構成される。コマンド番号１１２Ａは、他のコマンドと識別するためのＩＤである。仮想サーバＩＤ１１２Ｂは、処理対象の仮想サーバ７のＩＤである。動作１１２Ｃは、処理要求動作を示す番号である。例えば、Ｉ／Ｏ停止の場合は、「１００」、仮想サーバ停止の場合は、「１０１」といった番号を用いる。オプション１１２Ｄは、動作１１２Ｃの詳細を示すための付加オプションである。例えば、Ｉ／Ｏ停止時間を１０秒に設定したい場合は、「１０」が指定される。
【０１７１】
図４０は、実施例２における管理プログラム２５の処理フローＲＴ１５を示すフローチャートである。
【０１７２】
実施例２における管理プログラム２５は、まず処理要求を受け取り、要求を判定する（ステップＳＰ１７１）。
【０１７３】
処理が流量制御設定処理の場合（ステップＳＰ１７１：流量制御設定処理）、管理プログラム２５は、実施例１で説明したＩ／Ｏ量設定処理フローＲＴ３を行い、処理を終了する（ステップＳＰ１８０）。
【０１７４】
一方、Ｎ−ｗａｙクラスタ設定処理の場合（ステップＳＰ１７２：Ｎ−ｗａｙクラスタ設定処理）、管理プログラム２５は、ファイルサーバＩＤ１１１Ａと仮想サーバＩＤ１１１Ｂと高負荷時動作１１１Ｃとオプション１１１Ｄの入力を待ち（ステップＳＰ１７２〜ステップＳＰ１７５）、それらのデータを外部記憶装置２８の管理情報２９へＮ−ｗａｙ管理データ１１１として記録して（ステップＳＰ１７６）、処理を終了する（ステップＳＰ１８０）。
【０１７５】
一方、定期監視処理の場合（ステップＳＰ１７１：定期監視処理）、管理プログラム２５は、Ｎ−ｗａｙクラスタを構成する全ファイル共有サーバ５へ仮想サーバＩ／Ｏ量の取得を要求し（ステップＳＰ１７７）、そして、全ファイル共有サーバ５からファイルＩ／Ｏ量の取得を要求する（ステップＳＰ１７８）。そして、管理プログラム２５は、Ｎ−ｗａｙ負荷管理処理を実行する（処理フローＲＴ１６）。Ｎ−ｗａｙ負荷管理処理は、後述する。そして、管理プログラム２５は、一定時間停止した後（ステップＳＰ１７９）、ステップＳＰ１７７から、定期監視処理を再開する。
【０１７６】
図４１は、実施例２における管理プログラム２５の、Ｎ−ｗａｙ負荷管理処理フローＴ１６のフローチャートを示す図である。
【０１７７】
管理プログラム２５は、ステップＳＰ１７７で取得した仮想サーバＩ／Ｏ量と、仮想サーバＩ／Ｏ流量テーブル８１とを比較する（ステップＳＰ１９１）。管理プログラム２５は、ＲＥＡＤ量８１ＢとＷＲＩＴＥ量８１Ｃとをそれぞれ比較し、その結果、許容されている読み書き量を超えている場合、Ｎ−ｗａｙ管理データ１１１の仮想サーバＩＤ１１１Ｂの高負荷時動作１１１Ｃを行う。
【０１７８】
許容量オーバーの場合（ステップＳＰ１９２：ＹＥＳ）、管理プログラム２５は、高負荷となっている仮想サーバ７の高負荷時動作１１１Ｃとオプション１１１Ｄを、Ｎ−ｗａｙ管理データ１１１から取得する（ステップＳＰ１９３）。そして、管理プログラム２５は、ファイルサーバＩＤ１１１Ａと仮想サーバＩＤ１１１Ｂ、仮想サーバ管理情報５４から該当するファイル共有サーバ５を特定し、その仮想サーバマネージャ６０へ、高負荷時動作１１１Ｃを要求する（ステップＳＰ１９４）。管理プログラム２５は、要求の際には、オプション１１１Ｄを指定する。そして、管理プログラム２５は、全ての仮想サーバ７の比較が完了しているか確認し（ステップＳＰ１９７）、比較が完了していない場合（ＳＰ１９７：ＮＯ）、ステップＳＰ１９１に戻り、処理を継続する。
【０１７９】
高負荷時動作１１１Ｃには、例えば読み書きを強制停止させる「Ｉ／Ｏ停止」や、強制的にフェールオーバを発生させるなどがある。Ｉ／Ｏ停止は、対象となる仮想サーバマネージャ６０にＩ／Ｏアクセスの停止要求を送信する。一方、フェールオーバは、管理プログラム２５がフェールオーバ対象となる仮想サーバ７が動作しているファイル共有サーバ５の仮想サーバマネージャ６０へ、その仮想サーバ７の停止要求を送信する。その後、管理プログラム２５が他のファイル共有サーバ５の仮想サーバマネージャ６０へ起動要求を送信することで、フェールオーバ処理の実施要求を送信する。
【０１８０】
一方、ステップＳＰ１９２で、仮想サーバＩ／Ｏ量が超過していないと判断した場合（ステップＳＰ１９２：ＮＯ）、管理プログラム２５は、ステップＳＰ１９２と同様に、ファイルＩ／Ｏ流量テーブル８２のＲＥＡＤ量８２ＢとＷＲＩＴＥ量８２Ｃとそれぞれ比較し、許容量オーバーであると判定した場合（ステップＳＰ１９６：ＹＥＳ）、ステップＳＰ１９３及びステップＳＰ１９４と同様の処理を実施する。また、許容量オーバーではない場合（ステップＳＰ１９６：ＮＯ）、ステップＳＰ１９７へ進む。全ての仮想サーバ７の比較が完了した場合（ＳＰ１９７：ＹＥＳ）、管理プログラム２５は、処理を終了する（ＳＰ１９８）。
【０１８１】
以上により、管理プログラム２５は、Ｎ−ｗａｙクラスタ状態を集中的に管理することができる。管理プログラム２５は、負荷が高まっている仮想サーバ７を他のファイル共有サーバ５へ移動することや、仮想サーバ７で動作するプログラムの読み書き処理を一時的に停止することができる。その結果、管理端末４の管理プログラム２５は、管理者にＮ−ｗａｙクラスタ全体における負荷バランスをコントロールさせることができる。
【０１８２】
図４２は、実施例２における仮想サーバマネージャ６０の処理フローＲＴ１７を示すフローチャートである。
【０１８３】
実施例２の仮想サーバマネージャ６０は、管理プログラム２５からの指示に基づいて動作する。例えば、実施例１のようにタイマによる仮想サーバ７の定期監視は行わない。その代わりに、管理プログラム２５の要求処理を受けて動作する。
【０１８４】
まず、仮想サーバマネージャ６０は、管理プログラム２５から処理要求を受け取り（ステップＳＰ２０１）、処理を判断する。処理のうち、Ｉ／Ｏ流量設定と統計情報取得処理は、実施例１のステップＳＰ４９〜ステップＳＰ５１及びステップＳＰ５３において、既に説明した。実施例２では、Ｎ−ｗａｙ対応要求処理が新たに追加となった。仮想サーバマネージャ６０は、Ｎ−ｗａｙ対応処理（ステップＳＰ２０３）において、管理プログラム２５から受け取った高負荷時動作１１１Ｃに基づいて、仮想サーバ７のＩ／Ｏ停止やフェールオーバ処理を実施し（ステップＳＰ２０３）、処理を終了する（ステップＳＰ２０４）。仮想サーバ７のＩ／Ｏ停止は、停止対象となる仮想サーバＩ／Ｏ流量テーブル８１のＲＥＡＤ量８１Ｂ及びＷＲＩＴＥ量８１Ｃを、オプション１１１Ｄで指定された秒数の間、「０」に設定することで実現する。
【０１８５】
また、フェールオーバは、仮想サーバマネージャ６０がフェールオーバ対象となる仮想サーバ７を停止する。その後、管理プログラム２５が、オプション１１１Ｄで指定された他のファイル共有サーバ５で停止した仮想サーバ７を起動する。
【０１８６】
以上に説明した第２の実施形態により、ファイル共有システム１では、複数の仮想サーバ７が動作するＮ−ｗａｙクラスタにおいて、負荷状況を管理端末４の管理プログラム２５が集中的に管理し、管理者が設定したＩ／Ｏ負荷を超える仮想サーバ７の動作を、管理者が設定した高負荷時の動作に基づいて、抑止することができる。
【０１８７】
以上に説明した第１及び第２の実施形態により、ファイル共有システム１では、仮想サーバ７が提供するファイル１２毎にアクセス情報（ファイルＩ／Ｏ情報）を取得することができる。また、ファイル共有システム１では、ファイル共有サーバ５の管理者が、そのファイルＩ／Ｏ情報を確認することで、仮想サーバ７の負荷状況を正確に推定することができる。さらに、ファイル共有システム１では、ファイル共有サーバ５の管理者が設定したファイルＩ／Ｏ量情報とファイルＩ／Ｏ情報とを元に、ファイルアクセスを一時的に抑止することで、ファイルＩ／Ｏ流量制御を行い、大きな負荷が発生している仮想サーバ７の動作を強制的に抑えることで、重要なデータ処理中における仮想サーバ７の移動を抑止することができる。
【０１８８】
従って、ファイル共有システム１では、ファイル共有サーバ５で仮想サーバ７を構成している場合、仮想サーバ毎に正確な負荷情報の取得が必要となり、さらに、Ｎ−ｗａｙクラスタ構成の場合、重要なデータ処理中に仮想サーバ移動が発生するという課題を解決することができる。
【産業上の利用可能性】
【０１８９】
本発明は、仮想サーバ環境を提供するファイル共有サーバに広く適用することができる。
【図面の簡単な説明】
【０１９０】
【図１】ファイル共有サーバで仮想サーバを動作させるファイル共有システムの一例を示す図である。
【図２】ファイル共有システムのシステム構成の一例を示す図である。
【図３】本発明の動作概要の一例を示す図である。
【図４】仮想サーバＩ／Ｏ流量テーブルの一例を示す図である。
【図５】ファイルＩ／Ｏ流量テーブルの一例を示す図である。
【図６】移動管理情報の一例を示すテーブルである。
【図７】仮想サーバＩ／Ｏ統計情報の一例を示す図である。
【図８】ファイルＩ／Ｏ統計情報の一例を示す図である。
【図９】仮想サーバ管理情報の一例を示す図である。
【図１０】プロセス管理情報の一例を示す図である。
【図１１】仮想サーバＩ／Ｏ量設定情報の一例を示す図である。
【図１２】ファイルＩ／Ｏ量設定情報の一例を示す図である。
【図１３】仮想サーバ管理情報の一例を示す図である。
【図１４】ファイルキャッシュの一例を示す図である。
【図１５】仮想サーバＩ／Ｏ量設定コマンドの一例を示す図である。
【図１６】ファイルＩ／Ｏ量設定コマンドの一例を示す図である。
【図１７】移動管理情報設定コマンドの一例を示す図である。
【図１８】仮想サーバＩ／Ｏ量取得要求コマンドの一例を示す図である。
【図１９】ファイルＩ／Ｏ量取得要求コマンドの一例を示す図である。
【図２０】仮想サーバＩ／Ｏ量取得要求戻り値の一例を示す図である。
【図２１】ファイルＩ／Ｏ量取得要求戻り値の一例を示す図である。
【図２２】設定情報及び統計情報へのアクセスシーケンスの一例を示す図である。
【図２３】ユーザインタフェースの一例を示す図である。
【図２４】管理プログラムの処理の一例を示す図である。
【図２５】管理プログラムの処理のＩ／Ｏ量設定処理の一例を示す図である。
【図２６】仮想サーバマネージャの処理の一例を示す図である。
【図２７】ファイルアクセスプログラムの処理の一例を示す図である。
【図２８】ＮＦＳサーバの処理の一例を示す図である。
【図２９】ＣＪＦＳサーバの処理の一例を示す図である。
【図３０】ライブラリの処理の一例を示す図である。
【図３１】ＶＦＳの処理の一例を示す図である。
【図３２】ファイルＩ／Ｏフローコントローラの処理の一例を示す図である。
【図３３】ファイルＩ／ＯフローコントローラのＲＥＡＤ処理の一例を示す図である。
【図３４】ファイルＩ／ＯフローコントローラのＷＲＩＴＥ処理の一例を示す図である。
【図３５】ローカルファイルシステムの処理の一例を示す図である。
【図３６】デバイスドライバの処理の一例を示す図である。
【図３７】実施例２のファイル共有システムのシステム構成の一例を示す図である。
【図３８】実施例２のＮ−ｗａｙ管理データの一例を示す図である。
【図３９】実施例２のＮ−ｗａｙ対応要求コマンドの一例を示す図である。
【図４０】実施例２の管理プログラムの一例を示す図である。
【図４１】実施例２の管理プログラムのＮ−ｗａｙ負荷管理処理の一例を示す図である。
【図４２】仮想サーバマネージャの処理の一例を示す図である。
【符号の説明】
【０１９１】
１……ファイル共有システム、２……クライアント装置、３……ファイルアクセスプログラム、４……管理端末、５……ファイル共有サーバ、６……管理サーバ、７……仮想サーバ、８……ストレージ装置、９……仮想サーバＦＳ、１２……ファイル、２１、４１……ＣＰＵ、２４、４３……メモリ、２５……管理プログラム、５３……ファイルＩ／Ｏフローコントローラ、５４……仮想サーバ管理情報、５５……設定情報、５６……統計情報、５７……移動管理情報、６０……仮想サーバマネージャ、６４……プロセス管理情報
【図１】
2009237763.tif 000003
【図２】
2009237763.tif 000004
【図３】
2009237763.tif 000005
【図４】
2009237763.tif 000006
【図５】
2009237763.tif 000007
【図６】
2009237763.tif 000008
【図７】
2009237763.tif 000009
【図８】
2009237763.tif 000010
【図９】
2009237763.tif 000011
【図１０】
2009237763.tif 000012
【図１１】
2009237763.tif 000013
【図１２】
2009237763.tif 000014
【図１３】
2009237763.tif 000015
【図１４】
2009237763.tif 000016
【図１５】
2009237763.tif 000017
【図１６】
2009237763.tif 000018
【図１７】
2009237763.tif 000019
【図１８】
2009237763.tif 000020
【図１９】
2009237763.tif 000021
【図２０】
2009237763.tif 000022
【図２１】
2009237763.tif 000023
【図２２】
2009237763.tif 000024
【図２３】
2009237763.tif 000025
【図２４】
2009237763.tif 000026
【図２５】
2009237763.tif 000027
【図２６】
2009237763.tif 000028
【図２７】
2009237763.tif 000029
【図２８】
2009237763.tif 000030
【図２９】
2009237763.tif 000031
【図３０】
2009237763.tif 000032
【図３１】
2009237763.tif 000033
【図３２】
2009237763.tif 000034
【図３３】
2009237763.tif 000035
【図３４】
2009237763.tif 000036
【図３５】
2009237763.tif 000037
【図３６】
2009237763.tif 000038
【図３７】
2009237763.tif 000039
【図３８】
2009237763.tif 000040
【図３９】
2009237763.tif 000041
【図４０】
2009237763.tif 000042
【図４１】
2009237763.tif 000043
【図４２】
2009237763.tif 000044