JP2009237763A - サーバシステム及びその制御方法 - Google Patents
サーバシステム及びその制御方法 Download PDFInfo
- Publication number
- JP2009237763A JP2009237763A JP2008081058A JP2008081058A JP2009237763A JP 2009237763 A JP2009237763 A JP 2009237763A JP 2008081058 A JP2008081058 A JP 2008081058A JP 2008081058 A JP2008081058 A JP 2008081058A JP 2009237763 A JP2009237763 A JP 2009237763A
- Authority
- JP
- Japan
- Prior art keywords
- file
- server
- virtual server
- flow rate
- data flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】本発明は、アクセス性能を向上させ得るサーバシステムを提案する。
【解決手段】クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、前記サーバ装置は、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部と、前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部とを備える。
【選択図】図3
【解決手段】クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、前記サーバ装置は、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部と、前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部とを備える。
【選択図】図3
Description
本発明は、サーバシステム及びその制御方法に関し、例えば、仮想サーバ環境を提供するファイル共有サーバに適用して好適なものである。
従来、1台のファイル共有サーバが、複数の仮想的なファイル共有サーバ(以下、仮想サーバ、仮想NAS(Network Attached Storage))を提供することで、多数のファイル共有サーバを統合するシステムが広く知られている。
複数のファイル共有サーバを1台のファイル共有サーバへ統合することは、ファイル共有サーバの管理の容易化や、ファイル共有サーバが消費する電力を抑えることによる省電力化などで有効である。その仮想サーバを提供する方式の1つとして、OS(Operating System)分割方式がある。
OS分割方式は、ディスクやネットワークアダプタなどの物理デバイスや、プロセス空間やネームスペース(Name Space)などのOSが提供している機能を、個々の仮想サーバ毎に分割することで、仮想サーバを実現する。OS分割方式では、メモリ管理やプロセス管理モジュールを仮想サーバ間で共通化することで、OSの資源管理処理の負荷を軽減している。
一方、仮想サーバを提供するファイル共有サーバを複数台用意し、それらのファイル共有サーバ間で仮想サーバを移動(以降、仮想サーバマイグレーション、フェールオーバ)するN−wayクラスタ技術がある。この技術によれば、ファイル共有サーバ障害対処やファイル共有サーバ交換などの保守性を実現することができる。
さらに、N−wayクラスタ技術は、仮想サーバのI/O(Input/Output)負荷情報を元にファイル共有サーバ間の仮想サーバを移動させることで、クラスタ全体で適切な負荷バランスを実現する。なお、仮想サーバに関連する仮想OSの実現方式を言及した特許として、特許文献1が知られている。また、I/O負荷情報をストレージ装置で取得し、負荷バランスを行う方式として、特許文献2が知られている。
特開2004−227127号公報
特開2007−233783号公報
N−wayクラスタ技術では、適切な負荷バランスを実現するため、仮想サーバ毎にI/O負荷情報を取得する。そして、N−wayクラスタ技術では、仮想サーバを一時的に停止し、その停止した仮想サーバを他のファイル共有サーバで起動する。こうすることで、N−wayクラスタ技術では、他のファイル共有サーバへ仮想サーバを移動することができ、負荷バランスをとることができる。
N−wayクラスタ技術では、負荷を取得する方法として、現在、ディスク毎にアクセス情報を取得する方法が用いられている。すなわち、N−wayクラスタ技術では、ある仮想サーバに割り当てているディスクのアクセス情報(I/O情報)を取得し、仮想サーバの動作状況を推定し、仮想サーバの移動を制御する。
ここで、ディスクのアクセス情報を元に仮想サーバの動作状況を推定した場合、I/O総量は、仮想サーバの全てのディスクアクセスを全て合わせた量となる。例えば、ファイルコピーで発生するディスクアクセスと、ファイルデータ検索といった処理が同時に実行されている場合、N−wayクラスタ技術では、その2つの処理のI/O量を足し合わせて仮想サーバの動作状況を推定する。そのため、N−wayクラスタ技術では、ディスクアクセスが重要なデータ処理かどうかを判断することができない。
従って、現在のディスクアクセスのI/O総量に基づいた仮想サーバの動作状況推定では、不要な仮想サーバの移動が発生するといった課題がある。
先の例の場合では、ファイルコピーのような重要ではない処理が原因となり、仮想サーバ移動が発生する。仮想サーバの移動では、一時的にサービスが停止するため、ファイルデータ検索といった重要な処理の遅延が発生することがある。
また、ファイルアクセスプロトコルの種類によっては、接続が切断され、ファイル共有サーバに接続しているクライアント装置の動作が中断することがある。仮想サーバの移動は、仮想サーバの停止と起動を伴うため、ファイル共有サーバへの負荷が高い。従って、不要な仮想サーバの移動は、できる限り避ける必要がある。
本発明は以上の点を考慮してなされたもので、アクセス性能を向上させ得るサーバシステム及びその制御方法を提案するものである。
かかる課題を解決するために本発明においては、クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、前記サーバ装置は、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部と、前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部とを備える。
また、本発明においては、クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムの制御方法であって、データ流量設定部が、前記管理装置からのコマンドに基づいて、所定の前記クライアント装置ごとに独立して前記データの送受信を制御する複数の仮想サーバ部の前記ファイルデータごとのデータ流量を設定する第1のステップと、負荷制御部が、前記第1のステップにおいて設定した前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する第2のステップとを備える。
従って、複数の仮想サーバ部が動作するサーバ装置において、管理者が仮想サーバ部の負荷情報を正確に把握することができると共に、ファイルデータ毎にデータ流量を制限することができるため、特定の仮想サーバ部に大きな負荷が発生した場合であっても、他の仮想サーバ部の処理性能低下を抑えることができる。
すなわち、本発明では、ファイルデータ毎にI/O流量を抑えることにより、重要ではないファイルデータを対象としたI/Oのみを抑えることができる。さらに、本発明では、重要なファイルデータのI/O許容量を大きくすることで、重要な処理を、すぐに処理されるようにすることができる。ファイルデータのI/O流量は、サーバ装置の管理者が設定する。さらに、本発明では、重要なファイルデータに対して読み書きが発生している場合、仮想サーバ部の移動をしないことにより、重要な処理の遅延を防止する。重要なデータ処理かどうかを判定するために、ファイルデータ毎のI/O量を調査可能とする。また、本発明では、ファイルデータ毎にI/O流量を抑えることで、不要な仮想サーバ部の移動を抑える。
一方、本発明では、ファイルデータ毎のアクセス情報を集中的に管理し、仮想サーバ部毎に高負荷発生時の動作を規定する。本発明では、サーバシステムに含まれる仮想サーバ部の位置を積極的に移動させることにより、仮想サーバ部の性能を向上させることができる。また、本発明では、仮想サーバ部全体のI/O流量を抑止することで、仮想サーバ部の動作を一定時間抑止する。
従って、仮想サーバ部を提供するサーバ装置のファイルデータのI/O情報を取得することができ、さらに、I/O流量制御を適切に実施することができる。その結果、重要なファイルデータを処理している最中の仮想サーバ部の移動を防止することができる。さらに、重要ではないファイルデータへの読み書きを抑止することで、不要な仮想サーバ部の移動を防止することができる。また、ファイルデータ毎のアクセス管理情報を集中的に管理し、そのアクセス管理情報に基づいてサーバシステム全体を適切に運用することができる。
本発明によれば、アクセス性能を向上させ得るサーバシステム及びその制御方法を実現できる。
以下、仮想サーバを提供するファイル共有サーバにおいて、ファイルI/O情報を取得し、仮想サーバ毎にファイルI/O流量制御を行う方式を例に、本発明の実施例を説明する。また、以下に説明する実施例は一例であり、本発明はこの実施例に限定されるものではない。
(1)実施例1について
図1は、本実施形態に係るファイル共有システム1における、ファイル共有サーバ5と、実際にファイル共有サービスを提供する仮想サーバ7の関係を示す構成図である。本実施形態の詳細なシステム構成は、図2で説明する。
図1は、本実施形態に係るファイル共有システム1における、ファイル共有サーバ5と、実際にファイル共有サービスを提供する仮想サーバ7の関係を示す構成図である。本実施形態の詳細なシステム構成は、図2で説明する。
ファイル共有システム1は、クライアント装置2、クライアント装置2で動作するプログラム3、管理端末4、ファイル共有サーバ5、ファイル共有サーバ5で動作する管理サーバ6及び仮想サーバ7、ストレージ装置8並びに仮想サーバ7が利用するファイルシステムであるストレージ装置8の仮想サーバファイルシステム(以下、仮想サーバFS(File System))9により構成される。また、クライアント装置2と管理端末4とファイル共有サーバ5は、LAN(Local Area Network)10によって相互に接続されている。一方、ファイル共有サーバ5と仮想サーバFS9は、SAN(Storage Area Network)11によって相互に接続されている。
クライアント装置2は、ファイル共有サーバ5の仮想サーバ7が提供しているファイル共有サービスをユーザが利用するための端末である。クライアント装置2には、ユーザが利用しているプログラム3が動作している。
管理端末4は、ファイル共有システム1全体を管理する端末である。
ファイル共有サーバ5は、管理サーバ6と仮想サーバ7が動作するサーバである。管理サーバ6は、ファイル共有サーバ5と仮想サーバ7を管理するための仮想的なサーバである。一方、仮想サーバ7は、ファイル共有サービスをクライアント装置2へ提供するための仮想的なサーバである。
ストレージ装置8は、クライアント装置2のファイル(File)12を格納する端末である。
仮想サーバFS9は、仮想サーバ7が利用するファイルシステムであり、仮想サーバ7毎にそれぞれ異なったファイルシステムを利用する。また、仮想サーバFS9は、ファイル12を格納している。
図1では、クライアント装置2のプログラム3は、ファイル共有サーバ1(ファイル共有サーバ5)の仮想サーバA(1007)にサービスを要求している。そして、仮想サーバA(仮想サーバ7)は、ストレージ装置8における仮想サーバA(仮想サーバ7)の仮想サーバFS9に格納しているファイル12を取得する。そして、仮想サーバA(仮想サーバ7)は、クライアント装置2のプログラム3へ取得結果を返す。
図2は、ファイル共有システム1の詳細な構成例を示す図である。
クライアント装置2は、ファイル共有システム1を利用するユーザが使用する端末である。クライアント装置2では、ファイル共有サーバ5が提供するファイル共有サービスへアクセスするファイルアクセスプログラム3が動作する。
管理端末4は、CPU(Central Processing Unit)21、入力I/F(Interface)22、ネットワークI/F23、メモリ24、外部記憶装置I/F27を有し、これらが内部通信路によって相互に接続されている。
メモリ24には、管理プログラム25及びファイル共有サーバ管理情報26が格納されている。管理プログラム25は、ファイル共有システム1全体を管理するプログラムである。CPU21は、管理プログラム25を実行すると、入力I/F22を通してファイル共有システム1の管理者へ設定情報の入力を要求する。そして、CPU21は、ファイル共有サーバ管理情報26及び外部記憶装置28の管理情報29へその設定情報を保存する。さらに、CPU21は、ネットワークI/F23を通して、ファイル共有サーバ5へ設定情報を送信する。
管理情報29は、仮想サーバI/O量設定情報30、ファイル量設定情報31及び仮想サーバ管理情報32を含む。それぞれの情報は、後で詳述する。
ファイル共有サーバ5は、CPU41、ネットワークI/F42、メモリ43、ストレージ装置I/F44を有し、これらが内部通信路によって相互に接続されている。
メモリ43には、NFS(Network File System)サーバ51、CIFS(Common Internet File System)サーバ52、ファイルI/Oフローコントローラ53、仮想サーバ管理情報54、設定情報55、統計情報56、移動管理情報57、ローカルファイルシステム58、デバイスドライバ59、仮想サーバマネージャ60、ライブラリ61、ファイルキャッシュ62、VFS(Virtual File System)63及びプロセス管理情報64が格納されている。
NFSサーバ51及びCIFSサーバ52は、ファイル共有サービスを提供するプログラムである。CPU41は、NFSサーバ51及びCIFSサーバ52を実行すると、クライアント装置2のファイルアクセスプログラム3からのファイルアクセス要求を待ち受ける。CPU41は、ネットワークI/F42を通して、ファイルアクセスプログラム3からのファイルアクセス要求を受け付けると、ストレージ装置8の記憶装置71を通して、記憶装置71にある仮想サーバFS9からデータを読み込み、ファイルアクセスプログラム3へデータを送信する。
ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の設定情報55に記録している情報を元にファイルI/Oの流量を制御するプログラムである。さらに、ファイルI/Oフローコントローラ53は、ファイルI/O状況を仮想サーバ管理情報54の統計情報56へ記録するプログラムである。CPU41は、ファイルI/Oフローコントローラ53を実行すると、設定情報55を読み込み、その内容に従って流量制御を実施する。また、CPU41は、ファイルI/O状況を統計情報56へ記録する。ファイルI/Oフローコントローラ53の詳細は、後で詳述する。
仮想サーバ管理情報54は、設定情報55、統計情報56及び移動管理情報57を含む。
仮想サーバ管理情報54の設定情報55及び統計情報56は、仮想サーバ7毎に作成される。つまり、設定情報55及び統計情報56は、仮想サーバ7の管理情報である仮想サーバ管理情報54の一部として作成される。設定情報55及び統計情報56は、後で詳述する。
仮想サーバ管理情報54の移動管理情報57は、仮想サーバマネージャ60が仮想サーバ7の負荷状況から仮想サーバ7を移動させる際に、移動対象となる仮想サーバ7を移動しても良いかを判断するための管理情報である。移動管理情報57は、仮想サーバ管理情報54に含まれる。移動管理情報57の詳細は、後で詳述する。
ローカルファイルシステム58は、ストレージ装置8の記憶装置71の仮想サーバFS9を管理するプログラムである。CPU41は、ローカルファイルシステム58を実行すると、ストレージ装置8の記憶装置71の仮想サーバFS9に格納しているファイルを操作する。
デバイスドライバ59は、ストレージ装置8の記憶装置71に格納しているデータ(ファイル12)へのアクセスを制御するプログラムである。CPU41は、ローカルファイルシステム58を実行し、ストレージ装置8の記憶装置71の仮想サーバFS9を操作する際、デバイスドライバ58を実行し、ストレージ装置8の記憶装置71を操作する。
仮想サーバマネージャ60は、ファイル共有サーバ5が提供する仮想サーバ7を管理するプログラムである。仮想サーバマネージャ60は、管理サーバ6にあっても良く、仮想サーバ7にあっても良い。CPU41は、仮想サーバマネージャ60を実行すると、管理端末4の管理プログラム25から仮想サーバ7の設定情報を受け取り、仮想サーバ管理情報54に記録する。さらに、CPU41は、仮想サーバ管理情報54に基づいて仮想サーバ7を起動する。また、CPU41は、管理プログラム25から統計情報取得を要求された場合、統計情報56を取得し、管理プログラム25へネットワークI/F44、23を通して送信する。仮想サーバマネージャ60の詳細は、後述する。
ライブラリ61は、CIFSサーバ52がローカルファイルシステム58へファイルアクセスを要求する際に利用する、中間プログラムである。
ファイルキャッシュ62は、仮想サーバFS9に格納しているファイル12を一時的に、メモリ43に保存しておくメモリ領域である。ローカルファイルシステム58は、ファイル12へアクセスする場合、まず、ファイルキャッシュ62を調べる。CPU41は、ファイルキャッシュ62がファイルデータ(ファイル12)を保持している場合、ファイルシステム58を実行して、ファイルキャッシュ62からファイルデータを取得する。一方、CPU41は、ファイルキャッシュ62がファイルデータを(ファイル12)保持していない場合、ローカルファイルシステム58を実行して、デバイスドライバ59を通してストレージ装置8の記憶装置71からファイルデータ(ファイル12)を取得する。VFS63の詳細は、後述する。
プロセス管理情報64は、ファイル共有サーバ5で動作する、NFSサーバ51やCIFSサーバ52といったプロセスを管理する情報である。
ストレージ装置8の記憶装置71は、ファイル共有サービスで使用するファイルシステムを格納する記憶装置であり、ハードディスクや光ディスク等である。また、ストレージ装置8の記憶装置71は、ディスクアレイシステムであっても良い。
なお、以下においては、各プログラムに基づく管理端末4のCPU21や、ファイル共有サーバ5のCPU43の処理内容を明確化するため、各種処理の処理主体をプログラムとして説明する場合もあるが、実際上は、そのプログラムに基づいて対応するCPU21、43がその処理を行うことは言うまでもない。
図3は、ファイル共有サーバ5のソフトウェア論理構成を示す構成図である。図3の構成図を元に、本発明の動作概要を示す。
ファイル共有サーバ5には、内部に管理サーバ6、仮想サーバ7が作成されている。仮想サーバ7は、1つであっても良く、または複数あっても良い。
管理サーバ6の仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53へ、I/O許可設定要求及びI/O統計情報要求を行う。ファイルI/Oフローコントローラ53は、設定情報55を元にファイルI/Oの流量を制御する。
仮想サーバ7のCIFSサーバ52は、クライアント装置2のファイルアクセスプログラム3からファイルアクセス要求を受け取る。そして、CIFSサーバ52は、ライブラリ61へファイルアクセスを要求し、次に、ライブラリ61は、VFS63へファイルアクセスを要求し、VFS63は、ファイルI/Oフローコントローラ53へファイルアクセスを要求する。そして、ファイルI/Oフローコントローラ53は、ローカルファイルシステム58へファイルアクセスを要求し、ローカルファイルシステム58のファイルキャッシュ62を調べて、デバイスドライバ59へデータ取得を要求するかを判定する。ローカルファイルシステム58は、ファイルキャッシュ62からデータを発見できなかった場合、デバイスドライバ59を通してストレージ装置8の記憶装置71へアクセスする。
このように、ファイル共有サーバ5では、CIFSサーバ52から次々とプログラムを呼び出すことでストレージ装置8の記憶装置71内の仮想サーバFS9のファイル12へアクセスを実現する。本発明は、VFS63とローカルファイルシステム58との間でファイルI/Oフローコントローラ53がファイルI/O流量を制御する。本発明では、VFS63とローカルファイルシステム58との間でファイルI/O流量を制御することで、ファイルキャッシュ62のI/O流量判定への影響を排除することができる。
図4は、設定情報55に含まれる、仮想サーバI/O流量テーブル81の一例を示す図である。
仮想サーバI/O流量テーブル81には、流量制御対象となる仮想サーバID81Aと、その仮想サーバIDに対応するREAD(リード)量81B及びWRITE(ライト)量81Cとが対応付けて登録されているテーブルである。ファイルI/Oフローコントローラ53は、この仮想サーバI/O流量テーブル81の情報を元に、仮想サーバ7毎のI/O流量を制御する。
この仮想サーバI/O流量テーブル81は、ファイルI/Oフローコントローラ53が仮想サーバ7全体のI/O量の上限を決定するために用いる。例えば、図4の場合、仮想サーバID81で示す仮想サーバID「100001」は、仮想サーバ7内で動作する全プログラムのREAD量81Bの上限が10(MB/s)となる。また、当該仮想サーバID「100001」のWRITE量81Cの上限は、10(MB/s)となる。このように、仮想サーバI/O流量テーブル81では、仮想サーバ7毎に上限を設定することができる。
図5は、設定情報55に含まれる、ファイルI/O流量テーブル82の一例を示す図である。
ファイルI/O流量テーブル82には、制御対象となるファイルパス82Aと、そのファイルパス82Aに対応するREAD量82B及びWRITE量82Cとが対応付けて登録されているテーブルである。ファイルI/O流量テーブル82は、仮想サーバ7毎にそれぞれ設定する。ファイルパス82Aは、仮想サーバ7が構築したファイル名前空間におけるパスである。従って、ファイルパス82Aは、異なる仮想サーバ7のパスを設定できない。
ファイルI/Oフローコントローラ53は、このファイルI/O流量テーブル82の情報を元に、仮想サーバ7のファイル12毎にI/O流量を制御する。ファイルI/Oフローコントローラ53は、ファイル共有システム1の管理者による操作に基づいて、「重要」もしくは「重要ではない」とするファイル12をファイルパス82Aへ設定し、それに対応するREAD量82B及びWRITE量82Cを設定する。
例えば、図5の場合、ファイルパス82Aに設定されている「/mnt/file1」は、管理者が重要だと考え、ファイル12のREAD量82B及びWRITE量82Cをそれぞれ10(MB/s)に設定している。一方、ファイルパス82Aに設定されている「その他」は、図5に示されていないファイルパス82A全てが該当し、それらのファイル12のREAD量82B及びWRITE量82Cは、1(MB/s)へ抑えられる。
図4及び図5で示した仮想サーバI/O流量テーブル81及びファイルI/O流量テーブル82を用いることで、ファイルI/Oの流量を規定できる。
ファイルI/Oフローコントローラ53は、仮想サーバI/O流量テーブル81により、複数の仮想サーバ7が動作している場合において、ある仮想サーバ7が集中的にファイル共有サーバ5を使用することを抑止することができる。
一方、ファイルI/Oフローコントローラ53は、ファイルI/O流量テーブル82により、READ量82B及びWRITE量82Cの流量を大きく設定された重要なファイル12について、多量のデータアクセスを可能とする。一方、ファイルI/Oフローコントローラ53は、その他のファイルについて、少量のデータアクセスのみ可能をする。こうすることで、ファイル共有サーバ5では、その他ファイルに属するファイル12へ大量のデータアクセス要求があった場合の高負荷発生を避けることができる。その結果、ファイル共有サーバ5では、不要なデータアクセスを原因とする仮想サーバ7の移動が抑止可能となる。
図6は、移動管理情報57の一例を示すテーブルである。移動管理情報57は、仮想サーバID57Aとファイルパス57Bが対となって構成されている。実際に、このデータを用いるプログラムは、仮想サーバマネージャ60である。
仮想サーバマネージャ60は、移動管理情報57により、仮想サーバID57Aで動作するプロセスが、ファイルパス57Bで示されるファイル12を読み書きしている場合、仮想サーバ7の移動処理を中止する。移動管理情報57は、管理者によって設定される。例えば、図6の場合、管理者が仮想サーバID「10000001」のファイル「/mnt/file1」は重要であり、かつ、このファイルを読み書きしている場合は、仮想サーバの移動を抑止することを示している。仮想サーバマネージャ60の動作は、後で詳述する。
図7は、統計情報56に含まれる、仮想サーバI/O統計情報83を示す図である。
仮想サーバI/O統計情報83は、READ量83AとWRITE量83Bと総READ量83Cと総WRITE量83Dを持つテーブルである。READ量83A及びWRITE量83Bは、仮想サーバI/O統計情報83を取得したときに、どれほど読み書きがあったかを示すテーブルである。総READ量83C及び総WRITE量83Dは、仮想サーバI/O統計情報83を取得し始めてからの総量を示す情報である。
図8は、統計情報56に含まれる、ファイルI/O統計情報84を示す図である。
ファイルI/O統計情報84は、ファイルパス84AとREAD量84BとWRITE量84Cと総READ量84Dと総WRITE量84EとREAD時刻84FとWRITE時刻84Gを持つテーブルである。
READ量84B及びWRITE量84Cは、統計情報56が取得された時点における読み書き量である。総READ量84D及び総WRITE量84Eは、仮想サーバ7が起動されてからのファイル12の読み書き総量である。READ時刻84F及びWRITE時刻84Gは、ファイル12が読み書きされた時刻を示す。
図7及び図8に示す統計情報56を用いることで、ファイル共有システム1では、当該ファイル共有システム1の管理者に、仮想サーバ7毎に仮想サーバI/O統計情報83とファイルI/O統計情報84を取得させることができる。また、ファイル共有システム1では、管理者に、この情報を元に、仮想サーバI/O流量テーブル81及びファイルI/O流量テーブル82を設定させることができる。
例えば、管理者は、重要ではないファイル(図8の場合、「/mnt/file3」)に対してファイルI/O統計情報84を確認し、I/Oが大量に出ていると判断すれば、ファイルI/O流量テーブル82のREAD量82B及びWRITE量83Cを少なくして設定する。その設定以降、ファイルI/Oフローコントローラ53は、そのI/O流量テーブル82の情報に基づいてI/O流量を制御する。
クライアント装置2のファイルアクセスプログラム3がファイル12へアクセスすると、ファイルI/Oフローコントローラ53は、ファイルI/O統計情報84を更新する。ここで、READ量84B及びWRITE量84Cは、ファイルI/O統計情報84を取得したときに、どれほど該当ファイル12に読み書きがあったかを示す情報である。また、総READ量84D及び総WRITE量84Eは、統計情報56を取り始めた後からの読み書きの総量を示す情報である。また、READ時刻84F及びWRITE時刻84Gは、ファイル12にアクセスした時刻を示す情報である。
図9は、仮想サーバ管理情報54の構成を示す図である。
仮想サーバ管理情報54は、仮想サーバIDや仮想サーバ7に含まれるプロセス数などの情報を管理するテーブルである。その仮想サーバ管理情報54は、設定情報55、統計情報56及び移動管理情報57を記録する。
図10は、プロセス管理情報64の構成を示す図である。
プロセス管理情報64は、ファイル共有サーバ5で動作する、NFSサーバ51やCIFSサーバ52といったプロセスを管理するテーブルである。プロセス管理情報64は、仮想サーバ管理情報54へアクセスする情報である、プロセス管理情報64は、仮想サーバ管理情報54へのポインタ64Aを記録する。こうすることで、プロセス管理情報64は、プロセスと仮想サーバ管理情報54とを一対一に対応づけることができる。
図11は、管理端末4に接続された外部記憶装置28に記録している管理情報29の、仮想サーバI/O量設定情報30を示す図である。
仮想サーバI/O量設定情報30は、ファイルサーバID30Aと仮想サーバID30BとREAD量30CとWRITE量30Dを対応付けて保持するテーブルである。仮想サーバI/O量設定情報30のレコードは、ファイルサーバID30Aに仮想サーバID30Bを持つ仮想サーバ7があり、その仮想サーバ7がREAD量30CとWRITE量30DのI/Oアクセスができることを示す。
図12は、管理端末4に接続された外部記憶装置28に記録している管理情報29の、ファイルI/O量設定情報31を示す図である。
ファイルI/O量設定情報31は、ファイルサーバID31Aと仮想サーバID31Bとファイルパス31CとREAD量31DとWRITE量31Eを対応付けて保持するテーブルである。ファイルI/O量設定情報31のレコードは、ファイルサーバID31Aに仮想サーバID31Bを持つ仮想サーバ7があり、その仮想サーバ7に格納しているファイルパス31CがREAD量31DとWRITE量31EのI/Oアクセスができることを示す。また、ファイルI/O量設定情報31では、ファイルパス31Cに「その他」が設定されている場合、当該ファイルI/O量設定情報31に記述されていない全てのファイル12が該当することを示している。
ファイルI/O設定情報31は、ファイルサーバID31Aと仮想サーバID31Bとファイルパス31Cで示されるファイル12について、READ量31D及びWRITE量31Eで示される読み書き量を上限とする、ファイルI/Oを許可することを示している。
図13は、管理端末4に接続された外部記憶装置28に記録している管理情報29の、仮想サーバ管理情報32を示す図である。
仮想サーバ管理情報32は、ファイルサーバID32Aとアドレス32Bと仮想サーバリスト32Cと仮想サーバID32Dのリストを対応付けて保持するテーブルである。ファイルサーバID32Aを持つファイル共有サーバ5には、アドレス32Bのアドレスが設定される。さらに、ファイル共有サーバ5で動作する仮想サーバ7は、仮想サーバID32Dに記録される。
図11、図12及び図13の情報は、管理者が設定した情報を保持するための情報であり、ファイル共有システム1が起動と停止を行った後でも、同等の情報を再度設定するための情報である。特に、図13の仮想サーバ管理情報32は、ファイル共有サーバ5と仮想サーバ7を特定するための情報であり、N−WAYクラスタを構成する上で必須の情報である。
図14は、ファイル共有サーバ5のメモリ43に格納されているファイルキャッシュ62の構成を示す図である。
ファイルキャッシュ62は、ストレージ装置8の記憶装置71にあるデータをある大きさに一まとめにして、メモリ43上に格納するデータである。記憶装置71のデータは、ファイル12をバラバラにして保存しており、それらを一まとめにしてファイルキャッシュ62に格納する。
図15は、管理者が管理プログラム25を用いて、設定情報55のデータを入力する際に、管理プログラム25と仮想サーバマネージャ60とファイルI/Oフローコントローラ53との間でやり取りする、仮想サーバI/O量設定コマンド91を示す図である。
仮想サーバI/O量設定コマンド91は、コマンド番号91Aと仮想サーバID91BとREAD量91CとWRITE量91Dで構成される。コマンド番号91Aは、他のコマンドと区別するための番号で、たとえば「100」が入力される。仮想サーバID91Bは、I/O量制御対象となる仮想サーバ7のIDを示す。READ量91C及びWRITE量91Dは、仮想サーバID91Bに許可する読み込み及び書き込み量を示す。
図16は、管理者が管理プログラム25を用いて、設定情報55のデータを入力する際に、管理プログラム25と仮想サーバマネージャ60とファイルI/Oフローコントローラ53との間でやり取りする、ファイルI/O量設定コマンド92を示す図である。
ファイルI/O量設定コマンド92は、コマンド番号92Aと仮想サーバID92Bとファイルパス92CとREAD量92DとWRITE量92Eで構成される。コマンド番号92Aは、他のコマンドと区別するための番号で、たとえば「101」が入力される。仮想サーバID92Bは、ファイルパス92Cで示されるファイルを保持する仮想サーバ7のIDである。READ量92C及びWRITE量92Dは、仮想サーバID92Bとファイルパス92Cで特定されるファイル12に許可する読み込み及び書き込み量を示す。
図17は、管理者が管理プログラム25を用いて、移動管理情報57を設定する際に、管理プログラム25と仮想サーバマネージャ60がやり取りする移動管理情報設定コマンド93を示す図である。
移動管理情報設定コマンド93は、コマンド番号93Aと仮想サーバID93Bとファイルパス93Cで構成される。コマンド番号93Aは、他のコマンドと区別するための番号である。仮想サーバID93B及びファイルパス93Cは、仮想サーバ7の移動を判定する際に、移動不可とするファイル12を設定するための情報である。本コマンドの発行により、ファイル共有サーバ5の仮想サーバマネージャ60に設定要求を行い、移動管理情報57が設定される。仮想サーバマネージャ60は、これらの情報を用いて、移動管理情報57を設定する。
図18は、管理者が管理プログラム25を用いて、統計情報56を取得する際に、管理プログラム25と仮想サーバマネージャ60とファイルI/Oフローコントローラ53との間でやり取りする、仮想サーバI/O量取得コマンド94を示す図である。
仮想サーバI/O量取得コマンド94は、コマンド番号94Aと仮想サーバID94Bで構成される。コマンド番号94Aは、他のコマンドと区別するための番号で、たとえば「102」が入力される。一方、仮想サーバID94Bは、管理者がI/O量を取得したい仮想サーバ7のIDを示す。
図19は、管理者が管理プログラム25を用いて、統計情報56を取得する際に、管理プログラム25と仮想サーバマネージャ60とファイルI/Oフローコントローラ53との間でやり取りする、ファイルI/O量取得要求コマンド95を示す図である。
ファイルI/O量取得要求コマンド95は、コマンド番号95Aと仮想サーバID95Bとファイルパス95Cで構成される。コマンド番号95Aは、他のコマンドと区別するための番号で、たとえば「103」が入力される。また、仮想サーバID95Bは、ファイルパス95Cで示されるファイル12を保持する仮想サーバ7のIDである。ファイルパス95Cは、仮想サーバID95Bで示される仮想サーバ7が保持しているファイル12のパスである。
図20は、仮想サーバI/O量取得要求コマンド94の戻り値である、仮想サーバI/O量取得要求戻り値96を示す図である。
仮想サーバI/O量取得要求戻り値96は、仮想サーバID96AとREAD量96BとWRITE量96Cで構成される。仮想サーバID96Aは、仮想サーバI/O量取得要求コマンド94で要求した仮想サーバ7のIDである。READ量96B及びWRITE量96Cは、仮想サーバID96Aで示した仮想サーバ7の読み込み及び書き込み量である。
図21は、ファイルI/O量取得要求コマンド95の戻り値である、ファイルI/O量取得要求戻り値97を示す図である。
ファイルI/O量取得要求戻り値97は、仮想サーバID97Aとファイルパス97BとREAD量97CとWRITE量97Dで構成される。仮想サーバID97Aは、ファイルI/O量取得要求コマンド95で要求した仮想サーバ7のIDである。ファイルパス97Bは、ファイルI/O量取得要求コマンド95で要求したファイルパスである。READ量97C及びWRITE量97Dは、仮想サーバID97Aで示した仮想サーバ7の読み込み及び書き込み量である。
図22は、図15から図21で説明したI/O量設定コマンド、及びI/O量取得コマンドのシーケンスフローRT1である。
仮想サーバI/O量設定コマンド91とファイルI/O量設定コマンド92は、シーケンスフローRT1の設定シーケンスSP1の流れとなる。まず、管理プログラム25は、I/O量設定要求を仮想サーバマネージャ60へ送信する。そして、仮想サーバマネージャ60は、その要求をファイルI/Oフローコントローラ53へ送信する。ファイルI/Oフローコントローラ53は、受け取った要求に従って、設定情報55へ情報を設定する。一方、仮想サーバI/O量取得要求コマンド94とファイルI/O量取得要求コマンド95は、取得シーケンスSP2の流れとなる。まず、管理プログラム25は、I/O量取得要求を仮想サーバマネージャ60へ送信する。仮想サーバマネージャ60は、その要求をファイルI/Oフローコントローラ53へ送信する。ファイルI/Oフローコントローラ53は、統計情報56のデータを取得する。そして、ファイルI/Oフローコントローラ53は、戻り値を仮想サーバマネージャ60へ送信する。仮想サーバマネージャ60は、その戻り値を管理プログラム25へ送信する。
図23は、管理端末4の表示部(図示せず)に表示されるユーザインタフェース101を示す図である。
ユーザインタフェース101は、設定102と統計情報103と移動管理設定104に分かれている。設定102には、ファイルサーバID102Aと仮想サーバID102Bとファイルパス102CとREAD量102DとWRITE量102Eを入力する入力ボックスがある。さらに、設定101には、入力したデータを設定する設定ボタン102Fがある。各入力ボックスに入力するデータは、前述した仮想サーバI/O量設定コマンド91とファイルI/O量設定コマンド92に設定されるデータである。管理者が設定ボタン102Fを押すと、管理プログラム25は、設定コマンドとともにデータを仮想サーバマネージャ60へ送信する。
また、統計情報103には、ファイルサーバID103Aと仮想サーバID103BとREAD量103CとWRITE量103Dを表示するボックスがある。さらに、統計情報103には、統計情報を取得する取得ボタン103Eがある。管理者が取得ボタン103Eを押すと、管理プログラム25は、取得コマンドを仮想サーバマネージャ60へ送信する。
また、移動管理設定104には、ファイルサーバID104Aと仮想サーバID104Bとファイルパス104Cを設定するボックスがある。さらに、移動管理設定104には、それらの情報を送信する設定ボタン104Dがある。管理者が、ファイルサーバID104Aと仮想サーバID104Bとファイルパス104Cを入力し、設定ボタン104Dを押すと、管理プログラム25は、移動管理設定コマンドを仮想サーバマネージャ60へ送信する。
図24は、管理端末4の管理プログラム25の処理フローRT2を示すフローチャートである。
管理プログラム25は、まず、ユーザの処理が設定情報55を判定する(ステップSP11)。
I/O量設定処理の場合(ステップSP11:設定)、管理プログラム25は、I/O量設定処理を呼び出す(フローRT3)。一方、ステップSP11で取得処理だった場合(ステップSP11:取得)、管理プログラム25は、統計情報取得対象となるファイル共有サーバ5のサーバID103Aと仮想サーバID103Bの入力を受け付ける(ステップSP12及びステップSP13)。
そして、管理プログラム25は、ファイル共有サーバ5のサーバID103Aを元に統計情報取得対象を特定し、仮想サーバI/O量取得要求コマンド94とファイルI/O量取得要求コマンド95をファイル共有サーバ5へ送信する(ステップSP14)。そして、管理プログラム25は、ファイル共有サーバ5から仮想サーバI/O量取得要求戻り値96とファイルI/O量取得要求戻り値97を受け取り(ステップSP15)、取得結果をユーザインタフェース101へ表示して(ステップSP16)、処理を終了する(ステップSP21)。
一方、仮想サーバ移動設定処理の場合(ステップSP11:移動設定)、管理プログラム25は、ファイルサーバID104Aの入力を待ち受け(ステップSP17)、仮想サーバID104Bの入力を待ち受け(ステップSP18)、ファイルパス104Cの入力を待ち受け(ステップSP19)、最後にファイル共有サーバ5へ、移動管理情報設定コマンド93を用いて、仮想サーバ移動設定要求を送信して(ステップSP20)、処理を終了する(ステップSP21)。これにより、ファイル共有サーバ5では、仮想サーバマネージャ60が呼び出され、移動管理情報57が設定される。
図25は、管理端末4の管理プログラム25がI/O量を設定する際に呼び出す、I/O量設定処理の処理フローRT3を示すフローチャートである。
管理プログラム25は、I/O量設定処理で、ファイルサーバID102Aの入力を待ち受け(ステップSP31)、仮想サーバID102Bの入力を待ち受け(ステップSP32)、ファイルパス102Cの入力を待ち受け(ステップSP33)、流量データ(READ量102D及びWRITE量102E)の入力を待ち受ける(ステップSP34)。この時、ファイルパスを待ち受けるステップSP33では、何も入力されない場合がある。何も入力されない場合、管理プログラム25は、仮想サーバI/O量設定と判断する。この処理は、ステップSP36で実施される。
そして、管理プログラム25は、それらの情報を外部記憶装置28の管理情報29へ記録する(ステップSP35)。次に、管理プログラム25は、ステップSP33でファイルパス102Cが入力されたかを判定する(ステップSP36)。ファイルパス102Cが入力された場合(ステップSP36:YES)、ファイル共有サーバ5へ、ファイルI/O量設定コマンド92を用いて、設定情報を送信する(ステップSP37)。また、ファイルパスが入力されていない場合(ステップSP36:NO)、ファイル共有サーバ5へ仮想サーバI/O量設定コマンド91を用いて、設定情報を送信して(ステップSP38)、処理を終了する(ステップSP39)。
図26は、ファイル共有サーバ5で動作する仮想サーバマネージャ60の処理フローRT4を示すフローチャートである。
仮想サーバマネージャ60は、駆動元(呼び出し元)がタイマ呼び出しか要求を受信したものかを判定する(ステップSP41)。タイマ呼び出しとは、計算機が備える時計機能を利用し、一定時間間隔でプログラムを呼び出す機能のことである。タイマ呼び出しによって、一定時間毎に処理を実行することができる。
タイマ呼び出しだった場合(ステップSP41:タイマ呼び出し)、仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53へ統計情報取得を要求する(ステップSP42)。そして、仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53から統計情報56を取得する(ステップSP43)。そして、仮想サーバマネージャ60は、仮想サーバI/O流量テーブル81とファイルI/O流量テーブル82と仮想サーバI/O統計情報83とファイルI/O統計情報84とをそれぞれ比較する(ステップSP44)。許容量として設定した、仮想サーバI/O統計情報83とファイルI/O統計情報84が、仮想サーバI/O流量テーブル81とファイルI/O流量テーブル82の許可容量を上回る場合、仮想サーバマネージャ60は、I/O量超過と判定する。ここで、後述する、I/O流量制御によって、多くの場合は超過しないことを期待することができる。しかし、あまりに多くのファイル12に対して多くの読み書きが行われた場合、I/O流量制御の能力を超過する可能性がある。この場合、仮想サーバマネージャ60は、ステップSP44でI/O量超過と判定する。
I/O量超過と判定された場合(ステップSP44:YES)、仮想サーバマネージャ60は、移動管理情報57を用いて、仮想サーバID57Aとファイルパス57Bからその仮想サーバ7で重要ファイルが利用されているかを判定する(ステップSP45)。移動管理情報57に記録されているファイルを読み書きしている場合、仮想サーバマネージャ60は、重要ファイル使用中と判断する。重要なファイルが利用されていない場合(ステップSP45:NO)、仮想サーバマネージャ60は、仮想サーバ7を移動する(ステップSP46)。一方、利用されている場合(ステップSP45:YES)、仮想サーバマネージャ60は、仮想サーバ7を移動しない。
また、I/O量超過ではない場合(ステップSP44:NO)、処理を終了する(ステップSP55)。
以上が、仮想サーバマネージャ60が一定時間毎に、仮想サーバ7の負荷状況を調査して、過負荷となっている仮想サーバ7を移動させる処理(または移動させない処理)を実行する手順となる。
一方、管理端末4の管理プログラム25から要求を受信すると(ステップSP41:処理要求受信、ステップSP47)、仮想サーバマネージャ60は、要求処理がI/O流量設定か、統計情報取得か、仮想サーバ移動設定処理か、を判定する(ステップSP48)。
要求処理がI/O流量設定の場合(ステップSP48:I/O流量設定)、仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53へI/O量設定要求を行う(ステップSP49)。このI/O量設定要求は、仮想サーバI/O量設定コマンド91やファイルI/O量設定コマンド92である。
一方、要求処理が統計情報取得の場合(ステップSP48:統計情報取得)、仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53へ統計情報取得要求を送信する(ステップSP50)。この統計情報取得要求は、仮想サーバI/O量取得要求コマンド94やファイルI/O量取得要求コマンド95である。そして、仮想サーバマネージャ60は、ファイルI/Oフローコントローラ53から統計情報56を受け取る(ステップSP51)。この統計情報56を受け取るための情報は、仮想サーバI/O量取得要求戻り値96やファイルI/O量取得要求戻り値97である。
最後に、仮想サーバマネージャ60は、管理端末4の管理プログラム25へ結果を送信して(ステップSP52)、処理を終了する(ステップSP55)。
一方、ステップSP48で、仮想サーバ移動設定処理である場合(ステップSP48:移動設定)、仮想サーバマネージャ60は、仮想サーバ移動設定を行う(ステップSP54)。具体的には、仮想サーバマネージャ60は、管理端末4の管理プログラム25から、移動管理情報設定コマンド93を受け取り、そこに示されている仮想サーバID93B及びファイルパス93Cを基に、移動管理情報57の仮想サーバID57Aとファイルパス57Bへ設定する。この移動管理情報57は、仮想サーバマネージャ60の処理のステップSP44で用いられる。
図27は、クライアント装置2のファイルアクセスプログラム3の処理フローRT5を示すフローチャートである。
ファイルアクセスプログラム3は、クライアント装置2を利用するユーザからファイルアクセス要求を受け取り、そのファイル12のファイル名を取得する(ステップSP61)。そして、ファイルアクセスプログラム3は、CIFSサーバ52またはNFSサーバ51へファイルアクセス要求を送信する(ステップSP62)。そして、ファイルアクセスプログラム3は、CIFSサーバ52またはNFSサーバ51からファイルアクセス結果を受け取る(ステップSP63)。最後に、ファイルアクセスプログラム3は、ユーザへアクセス結果を返して(ステップSP64)、処理を終了する(ステップSP65)。
図28は、ファイル共有サーバ5のNFSサーバ51の処理フローRT6を示すフローチャートである。
NFSサーバ51は、クライアント装置2のファイルアクセスプログラム3からファイルアクセス要求を受信する(ステップSP71)。そして、NFSサーバ51は、そのファイルアクセス要求に従って、VFS63へファイルアクセス要求を送信し(ステップSP72)、VFS63からファイルアクセス結果を受け取る(ステップSP73)。最後に、NFSサーバ51は、ファイルアクセス結果をクライアント装置2へ返して(ステップSP74)、処理を終了する(ステップSP75)。
図29は、ファイル共有サーバ5のCIFSサーバ52の処理フローRT7を示すフローチャートである。
CIFSサーバ52は、クライアント装置2のファイルアクセスプログラム3からファイルアクセス要求を受信する(ステップSP81)。そして、CIFSサーバ52は、そのファイルアクセス要求に従って、ライブラリ61へファイルアクセス要求を送信し(ステップSP82)、ライブラリ61からファイルアクセス結果を受け取る(ステップSP83)。最後に、CIFSサーバ52は、ファイルアクセス結果をクライアント装置2へ返して(ステップSP84)、処理を終了する(ステップSP85)。
図30は、ファイル共有サーバ5のライブラリ61の処理フローRT8を示すフローチャートである。
ライブラリ61は、CIFSサーバ52からファイルアクセス要求を受信する(ステップSP91)。そして、ライブラリ61は、そのファイルアクセス要求に従って、VFS63へファイルアクセス要求を送信し(ステップSP92)、VFS63からファイルアクセス結果を受け取る(ステップSP93)。最後に、ライブラリ61は、ファイルアクセス結果をCIFSサーバ52へ返して(ステップSP94)、処理を終了する(ステップSP95)。
本来、ライブラリ61は、CIFSサーバ52からのみ利用されるプログラムではなく、様々なプログラムが共有して利用するプログラムである。ただし、NFSサーバ51などの一部のプログラムからは利用されない。このように、ライブラリ61は必ずしも利用されるわけではない。
図31は、ファイル共有サーバ5のVFS63の処理フローRT9を示すフローチャートである。
VFS63は、NFSサーバ51やライブラリ61へ、ファイル12へのアクセスインタフェースを提供する。VFS63は、NFSサーバ51やライブラリ61からファイルアクセス要求を受信する(ステップSP101)。そして、VFS63は、アクセス先のファイルシステムを特定する(ステップSP102)。通常、ストレージ装置8の記憶装置71に格納しているファイルシステムには様々な種類があり、それぞれ固有のファイルアクセス方式を実装している。固有のアクセス方式を実行するため、格納しているファイルシステムごとにローカルファイルシステム58がある。VFS63は、ステップSP102でこの処理を行う。そして、そのファイルアクセス要求に従って、VFS63は、ファイルI/Oフローコントローラ53へファイルアクセス要求を送信し(ステップSP103)、ファイルI/Oフローコントローラ53からファイルアクセス結果を受け取る(ステップSP104)。最後に、VFS63は、NFSサーバ51やライブラリ61へファイルアクセス結果を返して(ステップSP105)、処理を終了する(ステップSP106)。
図32は、ファイル共有サーバ5のファイルI/Oフローコントローラ53のメイン処理フローRT10を示すフローチャートである。
ファイルI/Oフローコントローラ53は、VFS63や仮想サーバマネージャ60から処理要求を受け取り(ステップSP111)、処理がファイルアクセスか管理処理かを判定する(ステップSP112)。
ファイルアクセスの場合(ステップSP112:ファイルアクセス)、ファイルI/Oフローコントローラ53は、ファイルアクセスがREAD(読み込み)要求かどうかを調べる(ステップSP113)。
READ要求の場合(ステップSP113:YES)、ファイルI/Oフローコントローラ53は、READフローコントロール処理を実行し(ステップSP114)、ローカルファイルシステム58へファイルアクセスを要求する(ステップSP117)。最後に、ファイルI/Oフローコントローラ53は、ローカルファイルシステム58からファイルアクセス結果を受信して(ステップSP118)、要求元へ返して(ステップSP119)、処理を終了する(ステップSP125)。
一方、READ要求ではなかった場合(ステップSP113:NO)、次に、ファイルI/Oフローコントローラ53は、WRITE(書き込み)要求かを調べる(ステップSP115)。書き込み要求の場合(ステップSP115:YES)、ファイルI/Oフローコントローラ53は、WRITEフローコントロール処理(ステップSP116)を実行する。その後の処理(ステップSP118〜ステップSP125)は、READ処理と同様のため、説明を省略する。
一方、WRITE要求でもなかった場合(ステップSP115:NO)、ファイルI/Oフローコントローラ53は、特に何もせず、ローカルファイルシステム58へファイルアクセスを要求する(ステップSP117)。ステップSP118〜ステップSP125は、READ処理と同様のため、説明を省略する。
また、ステップSP112が管理処理の場合(ステップSP112:管理処理)、ファイルI/Oフローコントローラ53は、管理処理がI/O流量設定処理かどうかを判定する(ステップSP120)。この判定は、コマンド(仮想サーバI/O量設定コマンド91、ファイルI/O量設定コマンド92、仮想サーバI/O量取得要求コマンド94、ファイルI/O量取得要求コマンド95)のコマンド番号から判定できる。
管理処理がI/O流量設定の場合(ステップSP120:YES)、ファイルI/Oフローコントローラ53は、仮想サーバマネージャ60から受け取った設定コマンド(仮想サーバI/O量設定コマンド91、ファイルI/O量設定コマンド92)から、仮想サーバIDやREAD量などを取得する(ステップSP121)。そして、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の設定情報55に設定して(ステップSP122)、処理を終了する(ステップSP125)。
一方、管理処理がI/O流量設定ではない場合(ステップSP120:NO)、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の統計情報56から統計情報を取得する(ステップSP123)。そして、ファイルI/Oフローコントローラ53は、仮想サーバマネージャ60へその統計情報56を返して(ステップSP124)、処理を終了する(ステップSP125)。
図33は、ファイル共有サーバ5のファイルI/Oフローコントローラ53のREAD処理フローRT11を示すフローチャートである。
ファイルI/Oフローコントローラ53は、VFS63のREADアクセス要求から、ファイル読み出しサイズを取得する(ステップSP131)。そして、ファイルI/Oフローコントローラ53は、READファイルアクセス要求を実行したプロセス(CIFSサーバ52やNFSサーバ51など)のプロセス管理情報64をOSの情報から取得し、そのプロセス管理情報64から仮想サーバ管理情報54を取得する(ステップSP132)。そして、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の統計情報56のうち、仮想サーバI/O統計情報83の総READ量83Cに読み込み量を足す(ステップSP133)。さらに、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の統計情報56のうち、ファイルI/O統計情報84の総READ量84Dに読み込み量を足す(ステップSP134)。
また、ファイルI/Oフローコントローラ53は、前回のREAD時刻84Fを取得し、経過時間でREAD差分を割って、単位時間当たりのREAD量を計算する(ステップSP135)。そして、仮想サーバI/O統計情報83のREAD量83AとファイルI/O統計情報84のREAD量84Bを更新し、READ時刻84Fを更新する(ステップSP136)。そして、ファイルI/Oフローコントローラ53は、単位時間当たりのREAD量が仮想サーバI/O流量テーブル81またはファイルI/O流量テーブル82より大きいか判定する(ステップSP137)。大きい場合(ステップSP137:YES)、ファイルI/Oフローコントローラ53は、一定時間(例えば、1秒間)読み込みを停止させ(ステップSP138)、READ処理フローを継続して、処理を終了する(ステップSP139)。ここで、停止時間は、任意に変更しても良い。一方、小さい場合(ステップSP137:NO)、READ処理フローをそのまま継続して、処理を終了する(ステップSP139)。
ここで、ファイルI/Oフローコントローラ53は、一定時間停止した後、ステップSP137に戻らない。これは、I/O流量があまりに大きい場合、一定時間停止してもI/O流量設定量より大きくなり、長時間ファイル読み込みが停止してしまう。その結果、クライアント装置2のファイルアクセスプログラム3が読み込みエラーと判断することがあり、それを避けるためである。ファイルI/Oフローコントローラ53は、一定時間停止しながら少しずつ結果を返すことによって、ファイルアクセスプログラム3が読み込みエラーと判定させずに、さらに、I/O流量制御を実行することができる。
しかし、この処理の為に過負荷状態が続くことがあり、それによって仮想サーバ7の移動が発生することがある。この仮想サーバ7の移動の可否を判定するために、仮想サーバマネージャ60は、移動管理情報57を用いる。移動処理については既に述べた。
図34は、ファイル共有サーバ5のファイルI/Oフローコントローラ53のWRITE処理フローRT12を示すフローチャートである。
ファイルI/Oフローコントローラ53は、VFS63のWRITEアクセス要求から、ファイル読み出しサイズを取得する(ステップSP141)。そして、ファイルI/Oフローコントローラ53は、WRITEファイルアクセス要求を実行したプロセス(CIFSサーバ52やNFSサーバ51など)のプロセス管理情報64をOSの情報から取得し、そのプロセス管理情報64から仮想サーバ管理情報54を取得する(ステップSP142)。そして、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の統計情報56のうち、仮想サーバ統計情報83の総WRITE量83Dに書き込み量を足す(ステップSP143)。さらに、ファイルI/Oフローコントローラ53は、仮想サーバ管理情報54の統計情報56のうち、ファイルI/O統計情報84の総WRITE量84Eに書き込み量を足す(ステップSP144)。
また、ファイルI/Oフローコントローラ53は、前回のWRITE時刻84Gを取得し、経過時間でWRITEの差分を割って、単位時間当たりのWRITE量を計算する(SP145)。そして、ファイルI/Oフローコントローラ53は、仮想サーバI/O統計情報83のWRITE量83BとファイルI/O統計情報84のWRITE量84Cを更新し、WRITE時刻84Gを更新する(ステップSP146)。そして、ファイルI/Oフローコントローラ53は、単位時間当たりのWRITE量が仮想サーバI/O流量テーブル81またはファイルI/O流量テーブル82より大きいか判定する(ステップSP147)。大きい場合(ステップSP147:YES)、ファイルI/Oフローコントローラ53は、一定時間(例えば、1秒間)書き込みを停止させ(ステップSP148)、WRITE処理フローを継続して、処理を終了する(ステップSP149)。ここで、停止時間は、任意に変更しても良い。一方、小さい場合(ステップSP147:NO)、WRITE処理フローを継続して、処理を終了する(ステップSP149)。ここで、ファイルI/Oフローコントローラ53は、一定時間停止した後、ステップSP147に戻らない。これは、I/O流量があまりに大きい場合、一定時間停止してもI/O流量設定量より大きい状態となり、長時間ファイル書き込みが停止してしまう。その結果、クライアント装置2のファイルアクセスプログラム3が書き込みエラーと判断することがあり、それを避けるためである。ファイルI/Oフローコントローラ53は、一定時間停止しながら少しずつ結果を返すことによって、ファイルアクセスプログラム3が読み込みエラーと判定させずに、さらに、I/O流量制御を実行することができる。
しかし、この処理の為に過負荷状態が続くことがあり、それによって仮想サーバ7の移動が発生することがある。この仮想サーバ7の移動の可否を判定するために、仮想サーバマネージャ60は、移動管理情報57を用いる。移動処理については既に述べた。
図35は、ファイル共有サーバ5のローカルファイルシステム58の処理フローを示すフローチャートである。
ローカルファイルシステム58は、ファイルI/Oフローコントローラ53からファイルアクセス要求を受け取る(ステップSP151)。そして、ローカルファイルシステム58は、ファイルキャッシュ62を検索する(ステップSP152)。ファイルキャッシュ62にアクセス対象のファイルデータがある場合(ステップSP153:YES)、ローカルファイルシステム58は、WRITE処理ではファイルキャッシュ62へデータを反映し、READ処理ではファイルキャッシュ62からデータを取得する(ステップSP154)。そして、ローカルファイルシステム58は、ファイルI/Oフローコントローラ53へデータを返して(ステップSP157)、処理を終了する(ステップSP158)。一方、ファイルキャッシュ62にデータ無い場合(ステップSP153:NO)、ローカルファイルシステム58は、デバイスドライバ59へデータ読み書き要求を行う(ステップSP155)。そして、ローカルファイルシステム58は、デバイスドライバ59から結果を受け取り(ステップSP156)、ファイルI/Oフローコントローラ53へ結果を返して(ステップSP157)、処理を終了する(ステップSP158)。
図36は、ファイル共有サーバ5のデバイスドライバ59の処理フローを示すフローチャートである。
デバイスドライバ59は、ローカルファイルシステム58からデータアクセス要求を受け取る(ステップSP161)。そして、デバイスドライバ59は、ストレージ装置8の記憶装置71へデータアクセスを要求し(ステップSP162)、ストレージ装置8の記憶装置71からアクセス結果を受け取る(ステップS163)。最後に、デバイスドライバ59は、ローカルファイルシステム58へデータアクセス結果を送り(ステップSP164)、処理を終了する(ステップSP165)。
以上に説明した実施形態により、ファイル共有システム1では、複数の仮想サーバ7が動作するファイル共有サーバ5において、管理者が仮想サーバ7の負荷情報を正確に把握することが可能となる。さらに、ファイル共有システム1では、仮想サーバ7及びファイル12毎にI/O量を制限することが可能となり、特定の仮想サーバ7が大きな負荷を発生させても、他の仮想サーバ7の処理性能低下を抑えることができる。さらに、ファイル共有システム1では、重要なデータ処理と重要ではないデータ処理をファイル12毎に設定でき、重要ではないデータ処理のアクセスのみ抑止することができる。
さらに、ファイル共有システム1では、ローカルファイルシステム58の処理より先にI/O量を取得し、負荷制御を実施することで、ファイルキャッシュ62の影響を受けることなく、負荷制御を実施することができる。従って、ファイル共有システム1では、ストレージ装置8で負荷制御を行うより正確な負荷制御を実施することができる。
(2)実施例2について
図37は、本発明の実施例2に係るファイル共有システム1のシステム構成を示すシステム構成図である。実施例2では、管理端末4がN−wayクラスタ管理機能を有し、複数あるファイル共有サーバ5の負荷を、N−way管理データ111に従って制御する。
図37は、本発明の実施例2に係るファイル共有システム1のシステム構成を示すシステム構成図である。実施例2では、管理端末4がN−wayクラスタ管理機能を有し、複数あるファイル共有サーバ5の負荷を、N−way管理データ111に従って制御する。
実施例2の動作概要を以下に述べる。実施例1では、管理者がそれぞれのファイル共有サーバ5で動作する仮想サーバ7の負荷状況を確認するインタフェースが、管理プログラム25に存在する。実施例2では、さらに、管理プログラム25がN−wayクラスタの負荷状況を管理する。つまり、管理プログラム25は、N−wayクラスタを構成するファイル共有サーバ5の負荷状況を集め、それに応じて負荷を制御する。
図37では、クライアント装置2のファイルアクセス要求により、ファイル共有サーバ5Aの仮想サーバ2(仮想サーバ7A)の負荷が増大している。ここで、実施例2の管理プログラム25は、ファイル共有サーバ5Aとファイル共有サーバ5Bの負荷状況を取得する。そして、管理プログラム25は、管理者が設定したN−way管理データ111に従って、仮想サーバ2(仮想サーバ7A)をファイル共有サーバ5Bに移動(フェールオーバ)する。一方、仮想サーバ3(仮想サーバ7C)は、I/Oアクセスを抑止する。以上のように、実施例2に係るファイル共有システム1N−wayクラスタを構成するファイル共有サーバ5の負荷状況に応じて負荷を制御する。
図38は、管理端末4のメモリ43と、外部記憶装置28の管理情報29に格納されるN−way管理データ111を示す図である。
N−way管理データ111には、ファイルID111Aと仮想サーバ111Bと高負荷時動作111Cとオプション111Dが対応付けられて記録されている。ファイルサーバID111Aは、負荷制御対象のファイル共有サーバ5のIDである。仮想サーバID111Bは、ファイルサーバID111Aで示したファイル共有サーバ5で動作する仮想サーバ7のIDである。高負荷時動作111Cは、仮想サーバ7が高負荷であると判定された場合の動作である。例えば、高負荷時動作111Cには、I/O停止処理(読み書き停止処理)が設定される。オプション111Dは、高負荷時動作111Cの動作オプションである。例えば、N−way管理データ111は、高負荷時動作111CがI/O停止の場合、停止秒数(例えば、10秒間)が指定される。
N−way管理データ111と仮想サーバI/O量設定情報30とファイルI/O量設定情報31とを組み合わせることで、管理プログラム25は、各仮想サーバ7の負荷発生時の動作を決定することができる。例えば、管理プログラム25は、ファイルサーバID111Aと仮想サーバID111Bで示される仮想サーバ7のI/O量をファイル共有サーバ5から取得し、仮想サーバI/O量設定情報30のREAD量30C及びWRITE量30Dと比較する。その結果、仮想サーバI/O量(仮想サーバI/O統計情報83、ファイルI/O統計情報84)が大きければ、管理プログラム25は、N−way管理データ111の高負荷時動作を行う。
図39は、実施例2における、管理プログラム25と仮想サーバマネージャ60の間でやり取りされる、N−way対応要求で使用されるコマンドを示す一例である。
N−way対応要求コマンド112は、コマンド番号112Aと仮想サーバID112Bと動作112Cとオプション112Dで構成される。コマンド番号112Aは、他のコマンドと識別するためのIDである。仮想サーバID112Bは、処理対象の仮想サーバ7のIDである。動作112Cは、処理要求動作を示す番号である。例えば、I/O停止の場合は、「100」、仮想サーバ停止の場合は、「101」といった番号を用いる。オプション112Dは、動作112Cの詳細を示すための付加オプションである。例えば、I/O停止時間を10秒に設定したい場合は、「10」が指定される。
図40は、実施例2における管理プログラム25の処理フローRT15を示すフローチャートである。
実施例2における管理プログラム25は、まず処理要求を受け取り、要求を判定する(ステップSP171)。
処理が流量制御設定処理の場合(ステップSP171:流量制御設定処理)、管理プログラム25は、実施例1で説明したI/O量設定処理フローRT3を行い、処理を終了する(ステップSP180)。
一方、N−wayクラスタ設定処理の場合(ステップSP172:N−wayクラスタ設定処理)、管理プログラム25は、ファイルサーバID111Aと仮想サーバID111Bと高負荷時動作111Cとオプション111Dの入力を待ち(ステップSP172〜ステップSP175)、それらのデータを外部記憶装置28の管理情報29へN−way管理データ111として記録して(ステップSP176)、処理を終了する(ステップSP180)。
一方、定期監視処理の場合(ステップSP171:定期監視処理)、管理プログラム25は、N−wayクラスタを構成する全ファイル共有サーバ5へ仮想サーバI/O量の取得を要求し(ステップSP177)、そして、全ファイル共有サーバ5からファイルI/O量の取得を要求する(ステップSP178)。そして、管理プログラム25は、N−way負荷管理処理を実行する(処理フローRT16)。N−way負荷管理処理は、後述する。そして、管理プログラム25は、一定時間停止した後(ステップSP179)、ステップSP177から、定期監視処理を再開する。
図41は、実施例2における管理プログラム25の、N−way負荷管理処理フローT16のフローチャートを示す図である。
管理プログラム25は、ステップSP177で取得した仮想サーバI/O量と、仮想サーバI/O流量テーブル81とを比較する(ステップSP191)。管理プログラム25は、READ量81BとWRITE量81Cとをそれぞれ比較し、その結果、許容されている読み書き量を超えている場合、N−way管理データ111の仮想サーバID111Bの高負荷時動作111Cを行う。
許容量オーバーの場合(ステップSP192:YES)、管理プログラム25は、高負荷となっている仮想サーバ7の高負荷時動作111Cとオプション111Dを、N−way管理データ111から取得する(ステップSP193)。そして、管理プログラム25は、ファイルサーバID111Aと仮想サーバID111B、仮想サーバ管理情報54から該当するファイル共有サーバ5を特定し、その仮想サーバマネージャ60へ、高負荷時動作111Cを要求する(ステップSP194)。管理プログラム25は、要求の際には、オプション111Dを指定する。そして、管理プログラム25は、全ての仮想サーバ7の比較が完了しているか確認し(ステップSP197)、比較が完了していない場合(SP197:NO)、ステップSP191に戻り、処理を継続する。
高負荷時動作111Cには、例えば読み書きを強制停止させる「I/O停止」や、強制的にフェールオーバを発生させるなどがある。I/O停止は、対象となる仮想サーバマネージャ60にI/Oアクセスの停止要求を送信する。一方、フェールオーバは、管理プログラム25がフェールオーバ対象となる仮想サーバ7が動作しているファイル共有サーバ5の仮想サーバマネージャ60へ、その仮想サーバ7の停止要求を送信する。その後、管理プログラム25が他のファイル共有サーバ5の仮想サーバマネージャ60へ起動要求を送信することで、フェールオーバ処理の実施要求を送信する。
一方、ステップSP192で、仮想サーバI/O量が超過していないと判断した場合(ステップSP192:NO)、管理プログラム25は、ステップSP192と同様に、ファイルI/O流量テーブル82のREAD量82BとWRITE量82Cとそれぞれ比較し、許容量オーバーであると判定した場合(ステップSP196:YES)、ステップSP193及びステップSP194と同様の処理を実施する。また、許容量オーバーではない場合(ステップSP196:NO)、ステップSP197へ進む。全ての仮想サーバ7の比較が完了した場合(SP197:YES)、管理プログラム25は、処理を終了する(SP198)。
以上により、管理プログラム25は、N−wayクラスタ状態を集中的に管理することができる。管理プログラム25は、負荷が高まっている仮想サーバ7を他のファイル共有サーバ5へ移動することや、仮想サーバ7で動作するプログラムの読み書き処理を一時的に停止することができる。その結果、管理端末4の管理プログラム25は、管理者にN−wayクラスタ全体における負荷バランスをコントロールさせることができる。
図42は、実施例2における仮想サーバマネージャ60の処理フローRT17を示すフローチャートである。
実施例2の仮想サーバマネージャ60は、管理プログラム25からの指示に基づいて動作する。例えば、実施例1のようにタイマによる仮想サーバ7の定期監視は行わない。その代わりに、管理プログラム25の要求処理を受けて動作する。
まず、仮想サーバマネージャ60は、管理プログラム25から処理要求を受け取り(ステップSP201)、処理を判断する。処理のうち、I/O流量設定と統計情報取得処理は、実施例1のステップSP49〜ステップSP51及びステップSP53において、既に説明した。実施例2では、N−way対応要求処理が新たに追加となった。仮想サーバマネージャ60は、N−way対応処理(ステップSP203)において、管理プログラム25から受け取った高負荷時動作111Cに基づいて、仮想サーバ7のI/O停止やフェールオーバ処理を実施し(ステップSP203)、処理を終了する(ステップSP204)。仮想サーバ7のI/O停止は、停止対象となる仮想サーバI/O流量テーブル81のREAD量81B及びWRITE量81Cを、オプション111Dで指定された秒数の間、「0」に設定することで実現する。
また、フェールオーバは、仮想サーバマネージャ60がフェールオーバ対象となる仮想サーバ7を停止する。その後、管理プログラム25が、オプション111Dで指定された他のファイル共有サーバ5で停止した仮想サーバ7を起動する。
以上に説明した第2の実施形態により、ファイル共有システム1では、複数の仮想サーバ7が動作するN−wayクラスタにおいて、負荷状況を管理端末4の管理プログラム25が集中的に管理し、管理者が設定したI/O負荷を超える仮想サーバ7の動作を、管理者が設定した高負荷時の動作に基づいて、抑止することができる。
以上に説明した第1及び第2の実施形態により、ファイル共有システム1では、仮想サーバ7が提供するファイル12毎にアクセス情報(ファイルI/O情報)を取得することができる。また、ファイル共有システム1では、ファイル共有サーバ5の管理者が、そのファイルI/O情報を確認することで、仮想サーバ7の負荷状況を正確に推定することができる。さらに、ファイル共有システム1では、ファイル共有サーバ5の管理者が設定したファイルI/O量情報とファイルI/O情報とを元に、ファイルアクセスを一時的に抑止することで、ファイルI/O流量制御を行い、大きな負荷が発生している仮想サーバ7の動作を強制的に抑えることで、重要なデータ処理中における仮想サーバ7の移動を抑止することができる。
従って、ファイル共有システム1では、ファイル共有サーバ5で仮想サーバ7を構成している場合、仮想サーバ毎に正確な負荷情報の取得が必要となり、さらに、N−wayクラスタ構成の場合、重要なデータ処理中に仮想サーバ移動が発生するという課題を解決することができる。
本発明は、仮想サーバ環境を提供するファイル共有サーバに広く適用することができる。
1……ファイル共有システム、2……クライアント装置、3……ファイルアクセスプログラム、4……管理端末、5……ファイル共有サーバ、6……管理サーバ、7……仮想サーバ、8……ストレージ装置、9……仮想サーバFS、12……ファイル、21、41……CPU、24、43……メモリ、25……管理プログラム、53……ファイルI/Oフローコントローラ、54……仮想サーバ管理情報、55……設定情報、56……統計情報、57……移動管理情報、60……仮想サーバマネージャ、64……プロセス管理情報
Claims (20)
- クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムであって、
前記サーバ装置は、
所定の前記クライアント装置ごとに独立して前記ファイルデータの送受信を制御する複数の仮想サーバ部と、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量を設定するデータ流量設定部と、
前記データ流量設定部により設定された前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する負荷制御部と
を備えることを特徴とするサーバシステム。 - 前記データ流量設定部は、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部ごとのデータ流量を設定し、
前記負荷制御部は、
前記データ流量設定部により設定された前記仮想サーバ部ごとのデータ流量に基づいて、前記仮想サーバ部ごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する
ことを特徴とする請求項1に記載のサーバシステム。 - 前記負荷制御部は、
前記前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量の統計情報を管理し、前記管理装置からのコマンドに基づいて、前記ファイルデータごとのデータ流量の統計情報を前記管理端末に送信する
ことを特徴とする請求項1に記載のサーバシステム。 - 前記負荷制御部は、
前記クライアント装置から送信されるアクセス要求がリード要求である場合、当該リード要求に対応する前記ファイルデータのリードのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのリードのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのリードを停止する
ことを特徴とする請求項3に記載のサーバシステム。 - 前記負荷制御部は、
前記クライアント装置から送信されるアクセス要求がライト要求である場合、当該ライト要求に対応する前記ファイルデータのライトのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのライトのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのライトを停止する
ことを特徴とする請求項3に記載のサーバシステム。 - 前記負荷制御部は、
前記ファイルデータのうち、重要なファイルデータを管理し、前記データ流量設定部により設定された前記仮想サーバ部のデータ流量の設定値を超えたときに、当該仮想サーバ部が重要なファイルデータを処理しているか否かを判断し、前記重要なファイルデータを処理していない場合、当該仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項2に記載のサーバシステム。 - 複数のサーバ装置を備え、
前記管理装置は、
前記複数のサーバ装置を管理する管理部
を備え、
前記管理部は、
すべてのサーバ装置の仮想サーバの負荷状況を前記負荷制御部から取得し、前記負荷状況に応じて前記複数のサーバ装置の負荷を分散するように、該当する前記サーバ装置を制御する
ことを特徴とする請求項1に記載のサーバシステム。 - 前記管理部は、
すべてのサーバ装置の仮想サーバ部から、前記ファイルデータごとのデータ流量の統計情報及び前記データ流量設定部により設定された前記ファイルデータのデータ流量の設定値を取得し、前記前記統計情報に基づいて算出されたデータ流量の値と、前記データ流量設定部により設定された前記ファイルデータのリードのデータ流量の設定値を比較して、当該データ流量の設定値を超えると判断されたときに、前記ファイルデータのアクセスを、所定の時間停止し、又は前記ファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する移動設定コマンドを該当する前記サーバ装置を送信する
ことを特徴とする請求項7に記載のサーバシステム。 - 前記負荷制御部は、
前記管理部からの送信されるコマンドに基づいて、該当するファイルデータのアクセスを、所定の時間停止し、又は該当するファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項8に記載のサーバシステム。 - 前記管理装置から送信されるコマンドは、
コマンド番号と仮想サーバIDとファイルパスとデータ流量とを対応付けたファイルデータ流量設定コマンド、コマンド番号と仮想サーバIDとファイルパスとを対応付けるファイルデータ流量取得要求コマンド、コマンド番号と仮想サーバIDとデータ流量とを対応付けた仮想サーバデータ流量設定コマンド、コマンド番号と仮想サーバIDとを対応付けた仮想サーバデータ流量取得要求コマンド又はコマンド番号と仮想サーバIDとファイルパスとを対応付ける移動設定コマンドである
ことを特徴とする請求項1に記載のサーバシステム。 - クライアント装置から送信されるアクセス要求に基づいて、ファイルデータを送受信するサーバ装置と、前記サーバ装置を管理する管理装置とを有するサーバシステムの制御方法であって、
データ流量設定部が、前記管理装置からのコマンドに基づいて、所定の前記クライアント装置ごとに独立して前記ファイルデータの送受信を制御する複数の仮想サーバ部の前記ファイルデータごとのデータ流量を設定する第1のステップと、
負荷制御部が、前記第1のステップにおいて設定した前記ファイルデータごとのデータ流量に基づいて、前記ファイルデータごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する第2のステップと
を備えることを特徴とするサーバシステムの制御方法。 - 前記第1のステップでは、
前記管理装置からのコマンドに基づいて、前記仮想サーバ部ごとのデータ流量を設定し、
前記第2のステップでは、
前記データ流量設定部により設定された前記仮想サーバ部ごとのデータ流量に基づいて、前記仮想サーバ部ごとのデータ流量を制御して、前記仮想サーバ部の負荷を制御する
ことを特徴とする請求項11に記載のサーバシステムの制御方法。 - 前記第2のステップでは、
前記前記仮想サーバ部に送受信される前記ファイルデータごとのデータ流量の統計情報を管理し、前記管理装置からのコマンドに基づいて、前記ファイルデータごとのデータ流量の統計情報を前記管理端末に送信する
ことを特徴とする請求項11に記載のサーバシステムの制御方法。 - 前記第2のステップでは、
前記クライアント装置から送信されるアクセス要求がリード要求である場合、当該リード要求に対応する前記ファイルデータのリードのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記第1のステップにおいて設定した前記ファイルデータのリードのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのリードを停止する
ことを特徴とする請求項13に記載のサーバシステムの制御方法。 - 前記第2のステップでは、
前記クライアント装置から送信されるアクセス要求がライト要求である場合、当該ライト要求に対応する前記ファイルデータのライトのデータ流量の統計情報に基づいて算出されたデータ流量の値と、前記第1のステップにおいて設定した前記ファイルデータのライトのデータ流量の設定値を比較し、当該データ流量の設定値を超えるときに、所定の時間、前記ファイルデータのライトを停止する
ことを特徴とする請求項13に記載のサーバシステムの制御方法。 - 前記第2のステップでは、
前記ファイルデータのうち、重要なファイルデータを管理し、前記第1のステップにおいて設定した前記仮想サーバ部のデータ流量の設定値を超えたときに、当該仮想サーバ部が重要なファイルデータを処理しているか否かを判断し、前記重要なファイルデータを処理していない場合、当該仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項12に記載のサーバシステムの制御方法。 - 前記管理装置の前記複数のサーバ装置を管理する管理部が、複数のすべてのサーバ装置の仮想サーバの負荷状況を前記負荷制御部から取得し、前記負荷状況に応じて前記複数のサーバ装置の負荷を分散するように、該当する前記サーバ装置を制御する第3のステップと
を備えることを特徴とする請求項11に記載のサーバシステムの制御方法。 - 前記第3のステップでは、
すべてのサーバ装置の仮想サーバ部から、前記ファイルデータごとのデータ流量の統計情報及び前記データ流量設定部により設定された前記ファイルデータのデータ流量の設定値を取得し、前記前記統計情報に基づいて算出されたデータ流量の値と、前記第1のステップにおいて設定した前記ファイルデータのリードのデータ流量の設定値を比較して、当該データ流量の設定値を超えると判断されたときに、前記ファイルデータのアクセスを、所定の時間停止し、又は前記ファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する移動設定コマンドを該当する前記サーバ装置を送信する
ことを特徴とする請求項17に記載のサーバシステムの制御方法。 - 前記第3のステップでは、
前記管理部からの送信されるコマンドに基づいて、該当するファイルデータのアクセスを、所定の時間停止し、又は該当するファイルデータに対応する仮想サーバ部を他のサーバ装置に移動する
ことを特徴とする請求項18に記載のサーバシステムの制御方法。 - 前記管理装置から送信されるコマンドは、
コマンド番号と仮想サーバIDとファイルパスとデータ流量とを対応付けたファイルデータ流量設定コマンド、コマンド番号と仮想サーバIDとファイルパスとを対応付けるファイルデータ流量取得要求コマンド、コマンド番号と仮想サーバIDとデータ流量とを対応付けた仮想サーバデータ流量設定コマンド、コマンド番号と仮想サーバIDとを対応付けた仮想サーバデータ流量取得要求コマンド又はコマンド番号と仮想サーバIDとファイルパスとを対応付ける移動設定コマンドである
ことを特徴とする請求項11に記載のサーバシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008081058A JP2009237763A (ja) | 2008-03-26 | 2008-03-26 | サーバシステム及びその制御方法 |
US12/128,339 US8880694B2 (en) | 2008-03-26 | 2008-05-28 | Server system and control method for same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008081058A JP2009237763A (ja) | 2008-03-26 | 2008-03-26 | サーバシステム及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009237763A true JP2009237763A (ja) | 2009-10-15 |
Family
ID=41118804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008081058A Pending JP2009237763A (ja) | 2008-03-26 | 2008-03-26 | サーバシステム及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8880694B2 (ja) |
JP (1) | JP2009237763A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017016576A (ja) * | 2015-07-06 | 2017-01-19 | 日本電信電話株式会社 | ノード、リバランシングキャンセル方法、および、プログラム |
JP2021114010A (ja) * | 2020-01-16 | 2021-08-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484355B1 (en) | 2008-05-20 | 2013-07-09 | Verizon Patent And Licensing Inc. | System and method for customer provisioning in a utility computing platform |
US20130054426A1 (en) * | 2008-05-20 | 2013-02-28 | Verizon Patent And Licensing Inc. | System and Method for Customer Provisioning in a Utility Computing Platform |
US8099522B2 (en) * | 2008-06-09 | 2012-01-17 | International Business Machines Corporation | Arrangements for I/O control in a virtualized system |
US8613085B2 (en) * | 2009-07-22 | 2013-12-17 | Broadcom Corporation | Method and system for traffic management via virtual machine migration |
US10721269B1 (en) | 2009-11-06 | 2020-07-21 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
US9497257B1 (en) * | 2010-06-30 | 2016-11-15 | EMC IP Holding Company LLC | File level referrals |
US9244969B1 (en) | 2010-06-30 | 2016-01-26 | Emc Corporation | Virtual disk recovery |
US9420049B1 (en) | 2010-06-30 | 2016-08-16 | F5 Networks, Inc. | Client side human user indicator |
US9239860B1 (en) | 2010-06-30 | 2016-01-19 | Emc Corporation | Augmenting virtual directories |
US20120054264A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Techniques for Migrating Active I/O Connections with Migrating Servers and Clients |
US9053339B2 (en) * | 2010-10-27 | 2015-06-09 | Hytrust, Inc. | System and method for secure storage of virtual machines |
US8745122B2 (en) * | 2011-06-14 | 2014-06-03 | At&T Intellectual Property I, L.P. | System and method for providing an adjunct device in a content delivery network |
WO2013046607A1 (ja) * | 2011-09-29 | 2013-04-04 | パナソニック株式会社 | 制御装置 |
US8880687B1 (en) * | 2012-02-06 | 2014-11-04 | Netapp, Inc. | Detecting and managing idle virtual storage servers |
US10230566B1 (en) | 2012-02-17 | 2019-03-12 | F5 Networks, Inc. | Methods for dynamically constructing a service principal name and devices thereof |
EP2853074B1 (en) | 2012-04-27 | 2021-03-24 | F5 Networks, Inc | Methods for optimizing service of content requests and devices thereof |
US10187317B1 (en) | 2013-11-15 | 2019-01-22 | F5 Networks, Inc. | Methods for traffic rate control and devices thereof |
WO2015172107A1 (en) | 2014-05-09 | 2015-11-12 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US11544049B2 (en) | 2016-02-12 | 2023-01-03 | Nutanix, Inc. | Virtualized file server disaster recovery |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US10824455B2 (en) * | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US10728090B2 (en) | 2016-12-02 | 2020-07-28 | Nutanix, Inc. | Configuring network segmentation for a virtualization environment |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
CN109582320B (zh) * | 2018-08-08 | 2022-05-10 | 深圳市飞速创新技术股份有限公司 | 写码方法及终端设备 |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
US12072770B2 (en) | 2021-08-19 | 2024-08-27 | Nutanix, Inc. | Share-based file server replication for disaster recovery |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968379B2 (en) * | 1997-05-30 | 2005-11-22 | Sun Microsystems, Inc. | Latency-reducing bandwidth-prioritization for network servers and clients |
US6969379B1 (en) * | 1998-08-27 | 2005-11-29 | A-Med Systems, Inc. | Intravascular cannulation apparatus and methods of use |
US7412514B2 (en) * | 2000-08-17 | 2008-08-12 | Hoshiko Llc | Method and apparatus for improving bandwidth efficiency in a computer network |
EP1364510B1 (en) * | 2000-10-26 | 2007-12-12 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
US7062567B2 (en) * | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US20040221319A1 (en) * | 2002-12-06 | 2004-11-04 | Ian Zenoni | Application streamer |
JP4567293B2 (ja) * | 2003-01-21 | 2010-10-20 | 株式会社日立製作所 | ファイルサーバ |
US7539748B2 (en) * | 2003-05-16 | 2009-05-26 | Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. | Data transfer application monitor and controller |
US7636917B2 (en) * | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7512990B2 (en) * | 2003-10-16 | 2009-03-31 | International Business Machines Corporation | Multiple simultaneous ACL formats on a filesystem |
JP4456909B2 (ja) * | 2004-03-29 | 2010-04-28 | 株式会社日立製作所 | バックアップ方法、ストレージシステム及びそのプログラム |
JP4857818B2 (ja) * | 2006-03-02 | 2012-01-18 | 株式会社日立製作所 | ストレージ管理方法およびストレージ管理サーバ |
US7706303B2 (en) * | 2006-06-26 | 2010-04-27 | Cisco Technology, Inc. | Port pooling |
US7970851B2 (en) * | 2006-10-31 | 2011-06-28 | Netapp, Inc. | Method and system for managing and monitoring virtual storage servers of a hosting storage server |
JP4864817B2 (ja) * | 2007-06-22 | 2012-02-01 | 株式会社日立製作所 | 仮想化プログラム及び仮想計算機システム |
US20090193146A1 (en) * | 2008-01-24 | 2009-07-30 | Cisco Technology, Inc. | Utilizing Virtual Server Weight for Loadbalancing |
-
2008
- 2008-03-26 JP JP2008081058A patent/JP2009237763A/ja active Pending
- 2008-05-28 US US12/128,339 patent/US8880694B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017016576A (ja) * | 2015-07-06 | 2017-01-19 | 日本電信電話株式会社 | ノード、リバランシングキャンセル方法、および、プログラム |
JP2021114010A (ja) * | 2020-01-16 | 2021-08-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
JP7332488B2 (ja) | 2020-01-16 | 2023-08-23 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090248870A1 (en) | 2009-10-01 |
US8880694B2 (en) | 2014-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009237763A (ja) | サーバシステム及びその制御方法 | |
KR101862718B1 (ko) | 블록-기반 저장을 위한 데이터 볼륨 지속성 상태 감소 | |
US11228647B2 (en) | System and method for sharing SAN storage | |
JP5379956B2 (ja) | ストレージ装置及び記憶領域配置方法 | |
US7464232B2 (en) | Data migration and copying in a storage system with dynamically expansible volumes | |
JP5971660B2 (ja) | 管理装置及び管理方法 | |
JP5603941B2 (ja) | 計算機システム及びデータ移行方法 | |
US20130346532A1 (en) | Virtual shared storage in a cluster | |
CN104937584A (zh) | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 | |
WO2014174671A1 (ja) | 計算機システム及び負荷分散方法 | |
US12099412B2 (en) | Storage system spanning multiple failure domains | |
EP3195129A1 (en) | Application centric distributed storage system and method | |
JP2008152663A (ja) | ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機 | |
US10929041B1 (en) | Block-storage service supporting multi-attach | |
US11461156B2 (en) | Block-storage service supporting multi-attach and health check failover mechanism | |
US20080320051A1 (en) | File-sharing system and method of using file-sharing system to generate single logical directory structure | |
US11755252B2 (en) | Expanding a distributed storage system | |
EP2153309A1 (en) | Physical network interface selection | |
JP5801968B2 (ja) | 管理装置及び管理方法 | |
JP2007115140A (ja) | ストレージシステム、及びストレージスシステムの制御方法 | |
JP2008210045A (ja) | ストレージシステム並びに情報処理装置及び接続方法 | |
US8356140B2 (en) | Methods and apparatus for controlling data between storage systems providing different storage functions | |
JP2011197792A (ja) | 管理装置及び管理方法 | |
US11336723B1 (en) | Replicating data volume updates from clients accessing the data volume across fault tolerance zones | |
JP5153392B2 (ja) | 記憶制御装置及び方法 |