JP4550648B2 - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP4550648B2
JP4550648B2 JP2005111815A JP2005111815A JP4550648B2 JP 4550648 B2 JP4550648 B2 JP 4550648B2 JP 2005111815 A JP2005111815 A JP 2005111815A JP 2005111815 A JP2005111815 A JP 2005111815A JP 4550648 B2 JP4550648 B2 JP 4550648B2
Authority
JP
Japan
Prior art keywords
file
server
cache
stored
read
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.)
Expired - Fee Related
Application number
JP2005111815A
Other languages
English (en)
Other versions
JP2006293593A (ja
Inventor
讓 真矢
高明 春名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005111815A priority Critical patent/JP4550648B2/ja
Priority to US11/218,615 priority patent/US7593998B2/en
Publication of JP2006293593A publication Critical patent/JP2006293593A/ja
Application granted granted Critical
Publication of JP4550648B2 publication Critical patent/JP4550648B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed

Description

本発明は、計算機システムに関し、特に、ネットワーク接続型ストレージ装置(NAS)が含まれる計算機システムのファイルキャッシュ制御技術に関する。
ネットワークに接続され、複数のサーバがファイルを共有するストレージ装置(NAS:Network Attached Storage)を備え、ストレージ装置とサーバとがネットワークを介して接続される計算機システムが提案されている。このような計算機システムでは、ディスクへのアクセス速度を向上するために、ネットワーク中にキャッシュメモリが設けられる。
このようなネットワーク型のキャッシュメモリに関し、端末から要求されたファイルがファイル格納部にない場合、サーバから獲得したファイルを格納するためのスペースがあれば、ファイル格納部に格納し、スペースがない場合は、優先度の低い順に及び最終参照時刻が古い順にファイルを削除して、サーバーから獲得したファイルをファイル格納部に格納する技術が提案されている(例えば、特許文献1参照)。
特開2002−91825号公報
前述したネットワーク型のキャッシュメモリを備える計算機システムでは、サーバ間及びサーバとストレージ装置間で、キャッシュ情報を共有していないので、システム全体として、ファイルキャッシュが効率よく制御できない問題がある。すなわち、ファイルキャッシュが連携されて管理されていないので、サーバ間でデータをアクセスできず、ディスクをアクセスするために、性能が低下する問題があった。
このため、ダーティなデータ(グローバルキャッシュでは更新されたが、共有ディスクでは更新されていないデータ)が極力発生しないように、チェックポイント時にダーティなデータを頻繁にディスク装置に書き込んでいた。このため、IO回数が多く、性能が低下する要因になっていた。
また、ファイルキャッシュが冗長化されていないため、障害発生時のフェイルオーバに必要な時間が長かった。すなわち、待機のグローバルキャッシュが存在しないので、障害発生時のシステムの切替に長い時間を必要とする問題があった。
また、ダーティなデータを所有したまま、キャッシュメモリを備える装置に障害が発生すると、ダーティなデータは回復できない。このため、ダーティなデータを所有したまま装置に障害が発生すると、回復に長い時間を必要とする問題があった。
本発明は、ファイルアクセスの高速化、障害発生時の切替時間の短縮を目的とする。
本発明は、複数のストレージ装置及び複数のサーバから構成される計算機システムにおいて、前記ストレージ装置は、ディスク装置及びストレージ制御装置を備え、前記ディスク装置は、前記サーバによって読み書きされるファイルを格納し、前記ストレージ制御装置は、前記サーバとネットワークを介して接続するインターフェースと、前記ディスク装置に対するファイルの読み書きを制御する制御部とを備え、前記ストレージ制御装置及び前記サーバは、前記サーバによって読み書きされるファイルを一時的に格納するキャッシュメモリ、及び、前記キャッシュメモリに格納されるファイルの情報を記憶するファイルキャッシュ制御情報部を備え、前記ファイルキャッシュ制御情報部は、前記ストレージ制御装置及び/又は前記サーバのキャッシュメモリに格納されたファイルのファイルサイズ、前記キャッシュメモリに格納されたファイルの読出回数及び前記キャッシュメモリに格納されたファイルの書込回数を含むファイルの情報を記憶し、前記サーバは、ファイルを前記ディスク装置に書き込む際に、前記ファイルキャッシュ制御情報部に記憶されたファイルサイズ、前記読出回数及び前記書込回数に基づいて、当該ファイルを前記キャッシュメモリに格納するストレージ制御装置又はサーバを決定し、前記決定されたストレージ制御装置又はサーバに当該ファイルを転送する
すなわち、サーバ及びNASヘッドの各々は、ファイルキャッシュのアクセス状況を記憶するファイルキャッシュ制御情報部を備える。そして、サーバ間、NASヘッド間、及びサーバとNASヘッドとの間でファイルキャッシュのアクセス状況を共有する。サーバはファイルアクセス時に、ファイルキャッシュ制御情報部の記憶内容を参照し、アクセスする可能性が高いファイルは他のサーバに転送し、キャッシュメモリに格納する。同様に、NASヘッドも、ファイルキャッシュ制御情報部の記憶内容を参照し、他のNASヘッドにファイルキャッシュを転送する。
また、本発明は、複数の現用サーバ及び1台以上の待機サーバを備え、複数のサーバのキャッシュメモリによってグローバルキャッシュを構成する。すなわち、現用サーバによる現用グローバルキャッシュと、待機サーバによる待機グローバルキャッシュを構成し、ファイルキャッシュを二重化する。
本発明によると、サーバがディスク装置をアクセスする回数を低減でき、処理性能を向上できる。また、サーバ又はストレージ装置に障害が発生しても、ファイルキャッシュを冗長的に所有しているので、障害発生時における切替時間を短縮できる。
以下、本発明の実施の形態を図面を参照して説明する。
(第1実施形態)
図1は、第1の実施の形態の計算機システムのハードウェア構成を示すブロック図である。
第1の実施の形態の計算機システムは、サーバ群1、NAS(Network Attached Storage)2及びネットワーク3を備える。
サーバ群1は、複数のサーバ11〜14を備える。サーバ11〜14は、インタコネクト線19によって内部接続されており、クラスタを構成している。サーバ11は、ファイルキャッシュ制御テーブル(FCCT−S)111及びファイルキャッシュ112を備える。
ファイルキャッシュ112には、サーバ11がアクセスしたファイルが一時的に格納される。FCCT−S111は、ファイルキャッシュ112に格納されたファイルの情報を格納する。すなわち、FCCT−S111は、ファイルのアクセス履歴を管理する(図5参照)。
なお、サーバ12〜14も、サーバ11と同じ構成を有する。
NAS2は、NASヘッド21〜23及びディスク装置24〜26を備える。NASヘッド21〜23は、インタコネクト線29によって内部接続されており、クラスタを構成している。NASヘッド21は、ファイルキャッシュ制御テーブル(FCCT−N)211及びファイルキャッシュ212を備える。また、NASヘッド21には、ディスク装置24が接続されている。
ファイルキャッシュ212には、サーバ群1からアクセスされたファイルが一時的に格納される。FCCT−N211は、ファイルキャッシュ212に格納されたファイルの情報を格納する。すなわち、FCCT−N211は、ファイルのアクセス履歴を管理する。
なお、NASヘッド22、23も、NASヘッド21と同じ構成を有する。
ネットワーク3は、サーバ群1の各サーバ11〜14及びNAS2の各NASヘッド21〜23を接続する。ネットワーク3は、例えば、TCP/IPプロトコルで通信可能なイーサネット(登録商標、以下同じ)によって構成されるLANである。
図2は、第1の実施の形態のサーバ11の構成を示すブロック図である。
なお、サーバ12〜14も、サーバ11と同じ構成を有する。
サーバ11は、CPU101、メモリ102、IOプロセッサ(IOP)103、ネットワークインターフェース(NIC)104、ディスクコントローラ105及びディスク装置106を備える。
CPU101は、メモリ102に記憶されたプログラムを実行し、各種演算処理をする。
メモリ102は、CPU101の動作に必要なプログラム及びデータを記憶する。また、メモリ102の一部の記憶領域は、ファイルキャッシュ112として使用されるキャッシュメモリである。また、メモリ102には、FCCT−S111が記憶されている。
IOプロセッサ(IOP:Input Output Processor)103は、サーバ11へのデータの入出力を制御するプロセッサである。
ネットワークインターフェース(NIC:Network Interface Controller)104は、ネットワーク3と接続されている。ネットワークインターフェース104は、ネットワーク3に接続された他の装置と、例えばTCP/IPプロトコルによって、データを通信する。
ディスクコントローラ105は、ディスク装置106へのデータの入出力を制御する。ディスク装置106は、サーバ11の動作に必要なプログラム及びデータを記憶する。
サーバ11では、オペレーティングシステム(OS:Operating System)113、クラスタソフトウェア114及びアプリケーションプログラム(AP1、AP2)115、116が動作している。
クラスタソフトウェア114は、サーバ11〜14間の負荷を分散し、サーバ11〜14間の動作の切り替えを制御する。アプリケーションプログラム115、116は、例えば、データベースプログラムや、WEBサーバプログラムである。アプリケーションプログラム115、116は、これらのサービスをユーザに提供する。
図3は、第1の実施の形態のNASヘッド21の構成を示すブロック図である。
なお、NASヘッド22、23も、NASヘッド21と同じ構成を有する。
NASヘッド21は、CPU201、メモリ202、IOプロセッサ(IOP)203、ネットワークインターフェース(NIC)204及びディスクコントローラ205を備える。
CPU201は、メモリ202に記憶されたプログラムを実行し、各種演算処理をする。
メモリ202は、CPU201の動作に必要なプログラム及びデータを記憶する。また、メモリ202の一部の記憶領域は、ファイルキャッシュ212として使用されるキャッシュメモリである。また、メモリ202には、FCCT−N211が記憶されている。
IOプロセッサ(IOP:Input Output Processor)203は、NASヘッド21へのデータの入出力を制御するプロセッサである。
ネットワークインターフェース(NIC:Network Interface Controller)204は、ネットワーク3と接続されている。ネットワークインターフェース204は、ネットワーク3に接続された他の装置と、例えばTCP/IPプロトコルによってデータを通信する。
ディスクコントローラ205は、ディスク装置206へのデータの入出力を制御する。ディスク装置206は、サーバ群1が使用するデータを記憶する。例えば、データベースプログラムによってアクセスされるデータベースや、WEBサーバプログラムによってアクセスされるコンテンツ情報が格納される。
NASヘッド21では、オペレーティングシステム(OS:Operating System)213、クラスタソフトウェア214、ファイルサービスプログラム215、216が動作している。
クラスタソフトウェア214は、NASヘッド21〜23間の負荷を分散し、NASヘッド21〜23間の動作の切り替えを制御する。ファイルサービスプログラム215、216は、例えば、SAMBAやNFS等のファイルシステムを、サーバ11〜14に提供する。
図4は、第1の実施の形態に係る発明の特徴の説明図である。
第1の実施の形態では、各サーバ11〜14間で、FCCT−Sに記憶されたファイルキャッシュの情報を転送することによって、サーバが連携して、ファイルキャッシュの情報を管理する。このファイルキャッシュの情報の転送は、Pull型でも、Push型でもよい。
このファイルキャッシュ情報の転送によって、サーバ11のファイルキャッシュ112、サーバ12のファイルキャッシュ122、サーバ13のファイルキャッシュ132及びサーバ14のファイルキャッシュ142が互いに連携してグローバルキャッシュを構成している。
また、各NASヘッド21〜23間で、FCCT−Nに記憶されたファイルキャッシュ情報を転送することによって、NASヘッドが連携して、ファイルキャッシュの情報を管理する。同様に、このファイルキャッシュ情報の転送は、Pull型でも、Push型でもよい。
さらに、サーバ11〜14とNASヘッド21〜23との間で、FCCT−S及びFCCT−Nに記憶されたファイルキャッシュの情報を転送することによって、サーバとNASヘッドとが連携して、ファイルキャッシュの情報を管理する。
次に、第1の実施の形態のファイルキャッシュ制御テーブル(FCCT−S、FCCT−N)について説明する。
図5は、第1の実施の形態のFCCT−Sの構成図である。
図5に示すFCCT−Sは、サーバ11〜14に分散して格納されている。すなわち、各ファイルキャッシュの情報は特定の一つのサーバに格納されている。各サーバは、どのファイルキャッシュの情報が、どのサーバに格納されているかを示すポインタを格納している。
例えば、ファイルキャッシュの情報をどのサーバに格納するかは、各サーバが順に格納するように、ラウンドロビンによって定めてもよい。また、そのファイルを最初にキャッシュメモリに格納したサーバが、当該ファイルキャッシュの情報を格納してもよい。
FCCT−Sは、ファイルキャッシュID1111、ファイルサイズ1112、ロック状態1113、所有情報1114、リード回数1115及びライト回数1116を含む。ファイルキャッシュID1111、ファイルサイズ1112及びロック状態1113はサーバ間で共通の情報である。一方、所有情報1114、リード回数1115及びライト回数1116は、各サーバ毎に記憶されている。
ファイルキャッシュID1111は、ファイルキャッシュに格納されたファイルの一意な識別子である。ファイルサイズ1112は、当該ファイルの大きさである。ファイルサイズ1112は、そのファイルを転送するか否かの判定に用いられる。
ロック状態1113は、当該ファイルへのアクセスが禁止されているかを示す。具体的には、非ロック状態、リードロック状態及びライトロック状態の3種類の状態がある。非ロック状態のファイルは読み書きの双方ができる。リードロック状態は、サーバからリードアクセスがされていることを示し、リードロック状態のファイルは、読むことはできるが、書くことはできない。ライトロック状態は、サーバからライトアクセスがされていることを示し、ライトロック状態のファイルは読み書きができない。
所有情報1114は、そのサーバのファイルキャッシュに当該ファイルが格納されているか否かを示す。所有情報1114によって、当該ファイルキャッシュをどのサーバが所有しているかが分かる。
リード回数1115は、そのサーバが当該ファイルを読み出した(リードアクセスした)回数を示す。ライト回数1116は、そのサーバが当該ファイルを書き込んだ(ライトアクセスした)回数を示す。リード回数1115及びライト回数1116によって、そのファイルのアクセスの傾向(例えば、リードが多いか、ライトが多いか)が分かる。
このファイルのアクセス履歴(リード回数1115及びライト回数1116)は、今後のアクセスの傾向を予測するために使用される。
なお、FCCT−Sは、前述した以外のファイルの属性に関する情報(例えば、キャッシュの状態がクリーンかダーティか)を含んでもよい。
図6は、第1の実施の形態のFCCT−Nの構成図である。
図6に示すFCCT−Nは、NASヘッド21〜23に分散して格納されている。すなわち、各ファイルキャッシュの情報は特定の一つのNASヘッドに格納されている。各NASヘッドは、どのファイルキャッシュの情報が、どのNASヘッドに格納されているかを示すポインタを格納している。
例えば、ファイルキャッシュの情報をどのNASヘッドに格納するかは、そのファイルを最初にキャッシュメモリに格納したNASヘッドが、当該ファイルキャッシュの情報を格納してもよい。また、各NASヘッドが順に格納するように、ラウンドロビンによって定めてもよい。
FCCT−Nは、ファイルキャッシュID2111、ファイルサイズ2112、ロック状態2113、所有情報2114、リード回数2115及びライト回数2116を含む。ファイルキャッシュID2111、ファイルサイズ2112及びロック状態2113はNASヘッド間で共通の情報である。一方、所有情報2114、リード回数2115及びライト回数2116は、各NASヘッド毎に記憶されている。
ファイルキャッシュID2111は、ファイルキャッシュ格納されたファイルの一意な識別子である。ファイルサイズ2112は、当該ファイルの大きさである。ファイルサイズ2112は、そのファイルを転送するか否かの判定に用いられる。
ロック状態2113は、当該ファイルへのアクセスが禁止されているかを示す。具体的には、非ロック状態、リードロック状態及びライトロック状態の3種類の状態がある。非ロック状態のファイルは読み書きの双方ができる。リードロック状態は、サーバからリードアクセスがされていることを示し、リードロック状態のファイルは、読むことはできるが、書くことはできない。ライトロック状態は、サーバからライトアクセスがされていることを示し、ライトロック状態のファイルは読み書きができない。
所有情報2114は、そのNASヘッドのファイルキャッシュに当該ファイルが格納されているか否かを示す。所有情報2114によって、当該ファイルキャッシュをどのNASヘッドが所有しているかが分かる。
リード回数2115は、そのNASヘッドが当該ファイルを読み出した(リードアクセスがされた)回数を示す。ライト回数2116は、そのNASヘッドが当該ファイルを書き込んだ(ライトアクセスがされた)回数を示す。リード回数2115及びライト回数2116によって、そのファイルのアクセスの傾向(例えば、リードが多いか、ライトが多いか)が分かる。
このファイルのアクセス履歴(リード回数2115及びライト回数2116)は、今後のアクセスの傾向を予測するために使用される。
なお、FCCT−Nは、前述した以外のファイルの属性に関する情報(例えば、キャッシュの状態がクリーンかダーティか)を含んでもよい。
図7は、第1の実施の形態のリード処理におけるキャッシュファイルの所有状況による動作の場合分けの説明図である。
図中、”○”は、その装置がアクセス要求に係るファイルのキャッシュを所有しており、そのファイルがアクセスされることを示す。”+”は、その装置がアクセス要求に係るファイルのキャッシュを所有しているが、そのファイルはアクセスされないことを示す。”*”は、その装置のファイルキャッシュの所有は無関係であることを示す。”×”は、その装置がアクセス要求に係るファイルをファイルのキャッシュを所有していないことを示す。
ケース1は、要求されたファイルがライトロック状態にある場合で、サーバ、NASヘッドのいずれがファイルのキャッシュを所有していても、ファイルは読み出されない。
ケース2は、要求されたファイルが非ロック状態かリードロック状態にあり、要求元サーバ1がリード要求に係るファイルのキャッシュを所有している場合である。ケース2では、自サーバに格納されているファイルを読み出す。すなわち、ケース2では、他のサーバや、NASヘッドが、リード要求に係るファイルのキャッシュを所有しているかを問わず、自サーバに格納されているファイルをアクセスすることによって、応答時間を早めている。
ケース3は、要求されたファイルが非ロック状態かリードロック状態にあり、要求元サーバ1はリード要求に係るファイルのキャッシュを所有しておらず、要求元サーバ1以外のサーバがリード要求に係るファイルのキャッシュを所有している場合である。ケース3では、他のサーバに格納されているファイルを読み出す。このとき、複数のサーバがリード要求に係るファイルのキャッシュを所有していれば、応答が早いと推定される(例えば、負荷が低い)サーバ3に格納されているファイルを読み出す。すなわち、ケース3では、NASヘッドがリード要求に係るファイルのキャッシュを所有しているかを問わず、他のサーバのうち負荷が低いサーバ3に格納されているファイルをアクセスすることによって、応答時間を早めている。
ケース4は、要求されたファイルが非ロック状態かリードロック状態にあり、いずれのサーバもリード要求に係るファイルのキャッシュを所有しておらず、優先的にアクセスされる(ファイルを格納しているディスク装置に接続されている)NASヘッド2がリード要求に係るファイルのキャッシュを所有している場合である。ケース4では、NASヘッド2に格納されているファイルを読み出す。すなわち、ケース4では、NASヘッド2のファイルキャッシュからリード要求に係るファイルをアクセスすることによって、ディスク装置にアクセスするよりも応答時間を早めている。
ケース5は、要求されたファイルが非ロック状態かリードロック状態にあり、いずれのサーバもリード要求に係るファイルのキャッシュを所有しておらず、優先的にアクセスされる(ファイルを格納しているディスク装置に接続されている)NASヘッド2がリード要求に係るファイルのキャッシュを所有しておらず、他のNASヘッドがリード要求に係るファイルのキャッシュを所有している場合である。ケース5では、他のNASヘッドに格納されているファイルを読み出す。このとき、複数のNASヘッドがリード要求に係るファイルのキャッシュを所有していれば、応答が早いと推定される(例えば、負荷が低い)NASヘッド1に格納されているファイルを読み出す。すなわち、ケース5では、リード要求に係るファイルのキャッシュを所有しているNASヘッドに格納されているファイルをアクセスすることによって、ディスク装置にアクセスするよりも応答時間を早めている。
ケース6は、要求されたファイルが非ロック状態かリードロック状態にあり、いずれのサーバもNASヘッドも、リード要求に係るファイルのキャッシュを所有していない場合である。ケース6では、キャッシュには読み出すファイルがないので、ディスク装置をアクセスする。
すなわち各ケースにおけるファイルのアクセス先は下記の通りとなる。
ケース1 ファイルにアクセスしない。
ケース2 自サーバのキャッシュメモリ
ケース3 他サーバのキャッシュメモリ
ケース4 該当するNASヘッドのキャッシュメモリ
ケース5 他のNASヘッドのキャッシュメモリ
ケース6 ディスク
図8は、第1の実施の形態の各ケースにおけるリード処理のアクセス順序を示す図である。
図8では、サーバ11がファイルの読み出し要求元で、目的のファイルはNASヘッド2に接続されているディスク25に格納されている場合について説明する。
まず、ファイルがリードロック状態になければ、自サーバのファイルキャッシュを確認する。そして、目的のファイルが自サーバのファイルキャッシュに格納されていれば、当該ファイルをファイルキャッシュ111から読み出す(ケース2)。
目的のファイルが自サーバのファイルキャッシュに格納されていなければ、目的のファイルキャッシュの情報が書き込まれたFCCT−Sが格納されているサーバ2を特定し(1)、目的のファイルのFCCT−Sの所有データを参照し(2)、目的のファイルのキャッシュを所有するサーバ3を特定する。そして、目的のファイルのキャッシュを所有するサーバ3にアクセスし(3)、当該ファイルをファイルキャッシュ132から読み出す(ケース3)。
目的のファイルがいずれのサーバのファイルキャッシュにも格納されていなければ、目的のファイルキャッシュの情報が書き込まれたFCCT−Nが格納されている(目的のファイルが格納されているディスク25に接続された)NASヘッド2を特定し(4)、そのNASヘッド2が目的のファイルのキャッシュを所有するか否かを判定する。そして、NASヘッド2が、目的のファイルのキャッシュを所有していれば、当該ファイルをファイルキャッシュ222から読み出す(ケース4)。
NASヘッド2が目的のファイルのキャッシュを所有していなければ、FCCT−Nを参照し、目的のファイルのキャッシュを所有している他のNASヘッド1を特定する。そして、目的のファイルのキャッシュを所有するNASヘッド1にアクセスし(5)、当該ファイルをファイルキャッシュ212から読み出す(ケース5)。
いずれのNASヘッドも目的のファイルのキャッシュを所有していなければ。NASヘッド2を介してディスク25にアクセスし、当該ファイルをディスク25から読み出す(ケース6)。
図9は、第1の実施の形態のリード処理のフローチャートである。
まず、OS113は、アプリケーションプログラム115、116からファイルリード要求を受けると、FCCT−Sの所有1114を参照する(S101)。すなわち、リード要求に係るファイルキャッシュの情報を記憶するサーバを特定し、当該サーバにリード要求に係るファイルの所有の有無を問い合わせて、当該ファイルのキャッシュを所有しているサーバを見つける。
次に、OS113は、FCCT−Sのロック状態1113を参照して、リード要求に係るファイルがライトロック中であるか否かを判定する(S102)。
その結果、リード要求に係るファイルがライトロック中であれば、ケース1であると判定する。ケース1の場合、他のアプリケーションプログラム(他のサーバ)が、当該ファイルに書き込む処理をしているので、ステップS101に戻り、ライトロックが解除されるまで待機する。なお、この場合、当該ファイルがライトロック中であることを報知して、エラーにより終了させてもよい。
一方、リード要求に係るファイルがライトロック中でなければ、当該ファイルを読み出すことに支障がないので、当該ファイルをリードロック状態に設定する(S103)。このため、他のサーバ及び全てのNASヘッドに対して、リードロック設定信号を送信する。これによって、他のアプリケーションプログラムが、当該ファイルを書き換えて、ファイルの読み出し中にファイルの内容が変更される不整合が発生しなくなる。
次に、ステップS101でFCCT−Sの所有1114を参照した結果を用いて、リード要求に係るファイルが、自サーバのファイルキャッシュに格納されているか否かを判定する(S104)。
その結果、当該ファイルが自サーバのファイルキャッシュに格納されていれば、ケース2であると判定する。ケース2の場合、自サーバのファイルキャッシュから当該ファイルを読み出す(S112)。その後ステップS110に進む。
一方、リード要求に係るファイルが、自サーバのファイルキャッシュに格納されていなければ、ステップS105に進む。
ステップS105では、当該ファイルが他のサーバのファイルキャッシュに格納されているか否かを判定する。
その結果、当該ファイルが他のサーバのファイルキャッシュに格納されていれば、ケース3であると判定する。ケース3の場合、当該他のサーバにアクセスし、当該他のサーバのファイルキャッシュから当該ファイルを読み出す(S113)。その後ステップS110に進む。
一方、リード要求に係るファイルが、他のサーバのファイルキャッシュに格納されていなければ、ステップS106に進む。すなわち、リード要求に係るファイルは、いずれのサーバのファイルキャッシュにも格納されていない状態であると判定される。
次に、NASヘッドのFCCT−Nの所有2114を参照する(S106)。すなわち、リード要求に係るファイルキャッシュの情報を記憶するNASヘッドを特定し、当該NASヘッドにリード要求に係るファイルの所有の有無を問い合わせて、当該ファイルのキャッシュを所有しているNASヘッドを見つける。
次に、リード要求に係るファイルが、当該ファイルを格納しているディスク装置に接続されているNASヘッドのファイルキャッシュに格納されているか否かを判定する(S107)。
その結果、当該ファイルがそのNASヘッドのファイルキャッシュに格納されていれば、ケース4であると判定する。ケース4の場合、当該NASヘッドにアクセスし、当該NASヘッドのファイルキャッシュから当該ファイルを読み出す(S114)。その後ステップS110に進む。
一方、リード要求に係るファイルが、当該ファイルを格納しているディスク装置に接続されているNASヘッドのファイルキャッシュに格納されていなければ、ステップS108に進む。
ステップS108では、当該ファイルが他のNASヘッドのファイルキャッシュに格納されているか否かを判定する。
その結果、当該ファイルが他のNASヘッドのファイルキャッシュに格納されていれば、ケース5であると判定する。ケース5の場合、当該他のNASヘッドにアクセスし、当該他のNASヘッドのファイルキャッシュから当該ファイルを読み出す(S115)。その後ステップS110に進む。
一方、リード要求に係るファイルが、他のNASヘッドのファイルキャッシュにも格納されていなければ、ステップS109に進む。すなわち、リード要求に係るファイルは、いずれのサーバのファイルキャッシュにも、いずれのNASヘッドのファイルキャッシュにも格納されていない状態(ケース6)であると判定される。
ステップS109では、当該ファイルを格納しているディスク装置に接続されているNASヘッドにアクセスし、リード要求に係るファイルをディスク装置から読み出す(S109)。
その後、FCCT−Sのリード回数を加算する。また、必要があれば、自サーバのファイルの所有状態を変更する。さらに、FCCT−Nのリード回数を加算する(S110)。
その後、リードロックを解除する(S111)。これによって、他のサーバ及び全てのNASヘッドに対して、リードロック解除信号を送信する。これによって、他のアプリケーションプログラムからの当該ファイルへのライトアクセスが許可される。
図10は、第1の実施の形態のライト処理におけるキャッシュファイルの所有状況による動作の場合分けの説明図である。
図中、”R”は、リード回数、”W”は、ライト回数を示す。また、”*”は、そのケースでは、その装置のファイルキャッシュの所有及びアクセス回数は無関係であることを示す。
ケース11は、要求されたファイルがライトロック状態にある場合で、サーバ及びNASヘッドのリード回数及びライト回数にかかわらずファイルは書き込まれない。
ケース12は、要求されたファイルが非ロック状態(リードロック状態でも、ライトロック状態でもない)場合である。ケース12では、サーバ及びNASヘッドのリード回数及びライト回数にかかわらずファイルは書き込まれない。すなわち、ケース12では、ライト要求に係るファイルを、自サーバのキャッシュに格納することによって、応答時間を早めている。
ケース13は、要求されたファイルが非ロック状態にあり、当該ファイルを他サーバが頻繁にアクセスする状態である。この例では、他サーバのアクセス頻度を判定する閾値、(後述する条件1−1及び1−2の所定値)を”3”としている。
ケース13では、サーバ3は、リード回数が7回、ライト回数が3回なので、アクセス回数が閾値以上となる。よって、当該ファイルをサーバ3のキャッシュに書き込む。一方、サーバ2及び4は、リード回数は5回で閾値以上であるが、ライト回数が0回で閾値より小さい。よって、当該ファイルはサーバ2及び4のキャッシュに書き込まれない。
ケース14は、要求されたファイルが非ロック状態にあり、NASヘッドにキャッシュされた当該ファイルが頻繁にアクセスされる状態である。この例では、他サーバのアクセス頻度を判定する閾値、(後述する条件2−1の所定値及び2−2の所定値)を、リード回数が”2”、ライト回数が”3”としている。
ケース14では、NASヘッド1は、リード回数が2回、ライト回数が3回なので、アクセス回数が閾値以上となる。よって、当該ファイルをNASヘッド1のキャッシュに書き込む。同様に、NASヘッド2のキャッシュにも当該ファイルが書き込まれる。一方、NASヘッド3は、リード回数が”0”で、ライト回数が”0”であるため、いずれも閾値より小さい。よって、当該ファイルはNASヘッド3のキャッシュに書き込まれない。
ケース15は、要求されたファイルが非ロック状態にある場合である。ケース15では、対象ファイルを書き込むべきディスク装置が接続されているNASヘッドに転送され、ファイルがディスク装置に書き込まれる。
すなわち各ケースにおけるファイルのアクセス先は下記の通りとなる。
ケース11は、ファイルにアクセスしない
ケース12は、自サーバのキャッシュメモリ
ケース13は、他サーバのキャッシュメモリ
ケース14は、NASヘッドのキャッシュメモリ
ケース15は、ディスク
図11は、第1の実施の形態の各ケースにおけるライト処理のアクセス順序を示す図である。
図11では、サーバ11がファイルの書き込み要求元で、目的のファイルはNASヘッド2に接続されているディスク装置25に格納されている場合について説明する。
まず、ファイルがロック状態になければ、目的のファイルを自サーバのファイルキャッシュに書き込む(ケース12)。
目的のファイルが他のサーバのファイルキャッシュに格納する条件を満たせば、条件を満たしたサーバに当該ファイルを転送し、他のサーバのキャッシュメモリに当該ファイルを格納する(ケース13)。
また、目的のファイルがNASヘッドのファイルキャッシュに格納する条件を満たせば、条件を満たしたNASヘッドに当該ファイルを転送し、当該NASヘッドのキャッシュメモリに当該ファイルを格納する(ケース14)。
また、サーバのキャッシュメモリに格納されたファイルは、そのファイルの格納場所のディスク装置が接続されているNASヘッドに転送され、ファイルがディスク装置に書き込まれる(ケース15)。
本実施の形態では、キャッシュに格納されたファイルをサーバ間で転送し、サーバ間でキャッシュを冗長化する。同様に、キャッシュに格納されたファイルをNASヘッドに転送し、NASヘッドとサーバ間及びNASヘッド間でもキャッシュを冗長化する。
次に、サーバの障害処理手順について説明する。
図12は、第1の実施の形態のライト処理のフローチャートである。
まず、OS113は、アプリケーションプログラム115、116からファイルライト要求を受けると、FCCT−Sの所有1114及びFCCT−Nの所有2114を参照する(S121)。すなわち、ライト要求に係るファイルキャッシュの情報を記憶するサーバを特定し、当該サーバにライト要求に係るファイルの所有の有無を問い合わせて、当該ファイルのキャッシュを所有しているサーバを見つける。また、ライト要求に係るファイルキャッシュの情報を記憶するNASヘッドを特定し、当該NASヘッドにライト要求に係るファイルの所有の有無を問い合わせて、当該ファイルのキャッシュを所有しているNASヘッドを見つける。
また、FCCT−Sのアクセス回数1115、1116を参照する。すなわち、ライト要求に係るファイルキャッシュの情報を記憶するサーバに、ライト要求に係るアクセス回数を問い合わせる。
次に、OS113は、FCCT−Sのロック状態1113を参照して、ライト要求に係るファイルがライトロック中であるか否か、またリードロック中であるか否かを判定する(S122)。
その結果、ライト要求に係るファイルがライトロック中又はリードロック中であれば、ケース11であると判定する。ケース11の場合、他のアプリケーションプログラム(他のサーバ)が、当該ファイルに書き込み又は読み出し処理をしているので、ステップS121に戻り、これらのロックが解除されるまで待機する。なお、この場合、当該ファイルへのアクセスがロック中であることを報知して、エラーによる終了をさせてもよい。
一方、ライト要求に係るファイルがライトロック中でも、リードロック中でもなければ、当該ファイルに書き込むことに支障がないので、当該ファイルをライトロック状態に設定する(S123)。このため、他のサーバ及び全てのNASヘッドに対して、ライトロック設定信号を送信する。これによって、他のアプリケーションプログラムが、当該ファイルを読み出して、ファイルの読み出し中にファイルの内容が変更される不整合が発生しなくなる。
次に、ステップS121でFCCT−Sの所有1114及びFCCT−Nの所有2114を参照した結果を用いて、発見されたサーバ及びNASヘッドが所有するファイルキャッシュを無効化する(S124)。すなわち、発見されたサーバ及びNASヘッドにキャッシュされているファイルの削除信号を送信する。
次に、ライト要求に係るファイルを、自サーバのファイルキャッシュに書き込む(S125)。この書込処理はケース12に相当する。この自サーバのファイルキャッシュへの書き込みによって、サーバは、ディスク装置への書込が終了したと判定する。
次に、以下の条件1の全てが成立しているか否かを各サーバ毎に判定する(S126)。
(1−1)リード回数が所定値以上
(1−2)ライト回数が所定値以上
(1−3)ファイルサイズが所定値以下
その結果、条件1の全てを満たしていれば、ケース13であると判定する。ケース13では、条件1を満たした他のサーバに当該ファイルを転送し、他のサーバのキャッシュメモリに当該ファイルを書き込む(S127)。一方、条件1の一つでも満たしていないサーバには当該ファイルを転送せず、ステップS128に進む。
ステップS128では、FCCT−Nのアクセス回数2115、2116を参照する。すなわち、ライト要求に係るファイルキャッシュの情報を記憶するNASヘッドを特定し、当該NASヘッドにライト要求に係るファイルのアクセス回数を問い合わせる。
次に、以下の条件2の全てが成立しているか否かを各NASヘッド毎に判定する(S129)。
(2−1)リード回数が所定値以上
(2−2)ライト回数が所定値以上
(2−3)ファイルサイズが所定値以下
なお、条件2の判定で用いられるリード回数及びライト回数は、当該NASヘッドにおけるファイルのアクセス回数である。すなわち、当該ファイルのアクセス頻度が高ければ、他のNASヘッドにファイルキャッシュを冗長的に持たせることが有効なので、当該ファイルを他のNASヘッドに転送する。
その結果、条件2の全てを満たしていれば、ケース14であると判定する。ケース14では、条件2を満たしたNASヘッドに当該ファイルを転送し、当該NASヘッドのキャッシュメモリに当該ファイルを書き込む(S130)。一方、条件2の一つでも満たしていないNASヘッドには当該ファイルを転送せず、ステップS131に進む。
その後、キャッシュに書き込まれたファイルのデータを、そのファイルが格納されているディスク装置が接続されているNASヘッドに転送する。そして、そのファイルのデータをディスク装置に書き込む(S131)。
その後、ライトロックを解除する(S132)。このため、他のサーバ及び全てのNASヘッドに対して、ライトロック解除信号を送信する。これによって、他のアプリケーションプログラムからの当該ファイルへのリードアクセスが許可される。
なお、ステップS126、S129において、アクセス回数及びファイルサイズの各々と所定値との比較結果によらず、ファイルサイズとアクセス回数との双方を考慮してキャッシュ間の転送を制限してもよい。例えば、アクセス回数/ファイルサイズが所定の閾値を超えたもののみキャッシュ間を転送してもよい。
図13は、第1の実施の形態のサーバの障害処理手順のシーケンス図である。
サーバ1〜サーバ4は、クラスタを構成している。各サーバは、所定のタイミング(例えば、2秒毎等の周期的)に、aliveメッセージを送信する。このaliveメッセージは、クラスタを構成する全てのサーバに同報してもよい。また、予め定めた順序で他のサーバにaliveメッセージを転送してもよい。
各サーバは、aliveメッセージを受信することによって、当該メッセージを送信したサーバが稼働中であることが分かる。また、aliveメッセージを所定時間以上受信しないことによって、サーバに障害が発生したことが分かる。
サーバ1に障害が発生すると、サーバ1からのaliveメッセージが途絶する。これによって、サーバ2は、サーバ1に障害が発生したこと検出する(S201)。
次に、サーバ2は、サーバ1が管理しているファイルキャッシュを無効化する(S202)。例えば、図4に示す場合には、サーバ1がファイルキャッシュ(FC1)を管理しているので、このFC1を無効化する。なお、サーバ2はFC1を所有していないため、無効化するファイルキャッシュはない。
以上説明したS201〜S202の処理は、サーバ3及びサーバ4でも実行される。
次に、サーバ3は、再構築されたFCCT−Sを参照して、サーバ1が所有していたファイルと重複度が高いサーバを引継サーバ特定する(S303)。この引継サーバの特定は、業務を引き継ぐサーバのみで実行すればよい。
その後、特定された引継サーバ3は、クラスタソフトウェアによって、サーバ1で稼動していたアプリケーションプログラムを起動し、サーバ1で提供されていた業務を行う(S304)。
図14は、第1の実施の形態のNASヘッドの障害処理手順のシーケンス図である。
NASヘッド1〜NASヘッド3は、クラスタを構成している。各NASヘッドは、所定のタイミング(例えば、2秒毎等の周期的)に、aliveメッセージを送信する。このaliveメッセージは、クラスタを構成する全てのNASヘッドに同報してもよい。また、予め定めた順序で他のNASヘッドにaliveメッセージを転送してもよい。
各NASヘッドは、aliveメッセージを受信することによって、当該メッセージを送信したNASヘッドが稼働中であることが分かる。また、aliveメッセージを所定時間以上受信しないことによって、NASヘッドに障害が発生したことが分かる。
NASヘッド1に障害が発生すると、NASヘッド1からのaliveメッセージが途絶する。これによって、NASヘッド2は、NASヘッド1に障害が発生したこと検出する(S211)。
次に、NASヘッド2は、NASヘッド1が管理しているファイルキャッシュを無効化する(S212)。例えば、図4に示す場合には、NASヘッド1がファイルキャッシュ(FC1)を管理しているので、このFC1を無効化する。なお、NASヘッド2はFC1を所有していないため、無効化するファイルキャッシュはない。
以上説明したS211〜S212の処理は、NASヘッド3でも実行される。
次に、NASヘッド3は、再構築されたFCCT−Nを参照して、NASヘッド1が所有していたファイルと重複度が高いNASヘッドを引継NASヘッド特定する(S313)。この引継NASヘッドの特定は、業務を引き継ぐNASヘッドのみで実行すればよい。
その後、特定された引継NASヘッド3は、クラスタソフトウェアによって、NASヘッド1に接続されているディスク装置に格納されていたデータをコピーし、NASヘッド1が提供していたデータを提供する(S314)。
以上説明したように、本発明の第1の実施の形態では、サーバは複数のサーバから構成されるクラスタシステムであり、ストレージ装置は複数のNASヘッドとディスク装置から構成する。サーバ及びNASヘッドの各々は、ファイルキャッシュのアクセス状況を記憶するファイルキャッシュ制御テーブル(FCCT)を備える。そして、サーバ間、NASヘッド間、及びサーバとNASヘッドとの間でファイルキャッシュのアクセス状況を交換し、FCCTに記憶する。サーバは、ファイル書込時に、FCCTの内容を参照し、他のサーバがアクセスする可能性が高いファイルは当該他のサーバに転送し、キャッシュメモリに格納する。同様に、NASヘッドも他のNASヘッドにファイルキャッシュを転送する。よって、ファイルキャッシュ制御テーブルによって、NASヘッドとサーバ間でファイルキャッシュを連携させるので、ディスク装置へのアクセスを減らし、アクセス性能を向上することができる。また、サーバ又はNASで障害が発生しても、他の装置が予備的なファイルのキャッシュを所有しているため、切替時間の短縮によって性能低下を防止でき、可用性を向上することができる。
また、選択的にファイルをキャッシュに格納するので、ファイルキャッシュを最適に冗長化できる。
(第2実施形態)
本発明の第2の実施の形態の計算機システムは、サーバ群1の中に、共通待機サーバ15を備える。
図15は、第2の実施の形態の計算機システムのハードウェア構成を示すブロック図である。
第2の実施の形態の計算機システムは、サーバ群1、NAS(Network Attached Storage)2及びネットワーク3を備える。
サーバ群1は、複数のサーバ11〜13及びサーバ15を備える。このうち、現用サーバ11〜13は現実に業務を行う現用サーバであり、サーバ15は障害発生時に業務を引き継ぐ共通待機サーバである。なお、共通待機サーバは1台を図示するが、2台以上の共通待機サーバを備えてもよい。
現用サーバ11〜13及び共通待機サーバ15は、インタコネクト線19によって内部接続されており、クラスタを構成している。
現用サーバ11は、ファイルキャッシュ制御テーブル(FCCT−S)111及びファイルキャッシュ112を備える。なお、現用サーバ12、13及び共通待機サーバ15も、現用サーバ11と同じ構成を有する。
ファイルキャッシュ112には、現用サーバ11がアクセスしたファイルが一時的に格納される。FCCT−S111は、ファイルキャッシュ112に格納されたファイルの情報を格納する。すなわち、FCCT−S111は、ファイルのアクセス履歴を管理する(図5参照)。
現用サーバ11のファイルキャッシュ112、現用サーバ12のファイルキャッシュ122及び現用サーバ13のファイルキャッシュ132は、互いに連携して現用のグローバルキャッシュを構成している
第2の実施の形態のFCCT−Sは、現用サーバ11〜13に分散して格納されている。すなわち、各ファイルキャッシュの情報は特定の一つのサーバに格納されている。各サーバは、どのファイルキャッシュの情報が、どのサーバに格納されているかを示すポインタを格納している。
例えば、ファイルキャッシュの情報をどのサーバに格納するかは、各サーバが順に格納するように、ラウンドロビンによって定めてもよい。また、そのファイルを最初にキャッシュメモリに格納したサーバが、当該ファイルキャッシュの情報を格納してもよい。
共通待機サーバ15は、ファイルキャッシュ制御テーブル(FCCT−S)151及びファイルキャッシュ152を備える。
ファイルキャッシュ152には、現用サーバ11〜13がアクセスした全てのファイルが一時的に格納される。FCCT−S151は、ファイルキャッシュ152に格納されたファイルの情報を格納する。すなわち、FCCT−S151は、全現用サーバのファイルのアクセス履歴を管理する(図5参照)。共通待機サーバ15のファイルキャッシュ152は、待機のグローバルキャッシュを構成している。
NAS2は、NASヘッド21〜23及びディスク装置24〜26を備える。NASヘッド21は、ファイルキャッシュ制御テーブル(FCCT−N)211及びファイルキャッシュ212を備える。また、NASヘッド21には、ディスク装置24が接続されている。
ファイルキャッシュ212には、サーバ群1からアクセスされたファイルが一時的に格納される。FCCT−N211は、ファイルキャッシュ212に格納されたファイルを管理する。すなわち、FCCT−N211は、ファイルのアクセス履歴を管理する。
なお、NASヘッド22、23も、NASヘッド21と同じ構成を有する。
ネットワーク3は、サーバ群1の各現用サーバ11〜13、共通待機サーバ15及びNAS2のNASヘッド21〜23を接続する。ネットワーク3は、例えば、TCP/IPプロトコルで通信可能なイーサネットによって構成されるLANである。
図16は、第2の実施の形態のリード処理のアクセス順序を示す図である。
図16では、現用サーバ11がファイルの読み出し要求元で、目的のファイルはNASヘッド2に接続されているディスク装置25に格納されている場合について説明する。
まず、ファイルがリードロック状態になければ、自サーバのファイルキャッシュを確認する。そして、目的のファイルが自サーバのファイルキャッシュに格納されていれば、当該ファイルをファイルキャッシュ111から読み出す(ケース22)。
目的のファイルが自サーバのファイルキャッシュに格納されていなければ、共通待機サーバ15が稼動しているかを確認した後、共通待機サーバ15にアクセスし、当該ファイルをファイルキャッシュ152から読み出す(ケース23)。
共通待機サーバ15が稼動していなければ、目的のファイルキャッシュの情報が書き込まれたFCCT−Sが格納されている現用サーバ2を特定し(1)、目的のファイルのFCCT−Sの所有データを参照し(2)、目的のファイルのキャッシュを所有する現用サーバ3を特定する。そして、目的のファイルのキャッシュを所有する現用サーバ3にアクセスし(3)、当該ファイルをファイルキャッシュ132から読み出す(ケース24)。
目的のファイルがいずれの現用サーバのファイルキャッシュにも格納されていなければ、目的のファイルキャッシュの情報が書き込まれたFCCT−Nが格納されている(目的のファイルが格納されているディスク装置25に接続された)NASヘッド2を特定し(4)、そのNASヘッド2が目的のファイルのキャッシュを所有するか否かを判定する。そして、NASヘッド2が、目的のファイルのキャッシュを所有していれば、NASヘッド2のファイルキャッシュから当該ファイルをファイルキャッシュ222から読み出す(ケース25)。
NASヘッド2が目的のファイルのキャッシュを所有していなければ、FCCT−Nを参照し、目的のファイルのキャッシュを所有している他のNASヘッド1を特定する。そして、目的のファイルのキャッシュを所有するNASヘッド1にアクセスし(5)、当該ファイルをファイルキャッシュ212から読み出す(ケース26)。
いずれのNASヘッドも目的のファイルのキャッシュを所有していなければ。NASヘッド2を介してディスク装置25にアクセスし、当該ファイルをディスク装置25から読み出す(ケース27)。
このように、現用サーバは、読み出したファイルを、現用グローバルキャッシュに格納する。また、現用サーバが読み出したファイルは、待機グローバルキャッシュには格納しない(後述するように、現用サーバが書き込んだファイルは、待機グローバルキャッシュに格納される)。
図17は、第2の実施の形態のリード処理のフローチャートである。
ステップS141からステップS144の処理は、前述した第1の実施の形態のステップS101からステップS114の処理と同じであるため、その詳細な説明は省略する。
まず、OS113はFCCT−Sの所有1114を参照する(S141)。すなわち、OS113は、アプリケーションプログラム115、116からファイルリード要求を受けると、FCCT−Sのロック状態1113を参照して、リード要求に係るファイルがライトロック中であるか否かを判定する(S142)。
その結果、リード要求に係るファイルがライトロック中であれば、ケース21であると判定し、ライトロックが解除されるまで待機する。一方、リード要求に係るファイルがライトロック中でなければ、当該ファイルをリードロック状態に設定する(S143)。
次に、リード要求に係るファイルが、自サーバのファイルキャッシュに格納されているか否かを判定し(S144)、当該ファイルが自サーバのファイルキャッシュに格納されていれば、ケース22であると判定し、自サーバのファイルキャッシュから当該ファイルを読み出す(S153)。
一方、リード要求に係るファイルが、自サーバのファイルキャッシュに格納されていなければ、ステップS145に進む。
ステップS145では、共通待機サーバ15が正常に稼働しているか否かを判定する。例えば、後述するように、共通待機サーバが縮退モードにある場合(図20のS503参照)、共通待機サーバ15は稼働していない。
その結果、共通待機サーバ15が稼働状態にあれば、ケース23であると判定する。共通待機サーバ15のファイルキャッシュ152には、現用サーバ11〜13が書き込んだ全てのファイルのキャッシュが格納されている。よって、ケース23の場合は、共通待機サーバ15にアクセスし、ファイルキャッシュ152から当該ファイルを読み出す(S154)。その後ステップS151に進む。
一方、共通待機サーバ15が正常に稼働していなければ、ステップS146に進む。
ステップS146からステップS152の処理は、前述した第1の実施の形態のステップS105からステップS111の処理と同じであるため、その詳細な説明は省略する。
すなわち、当該ファイルが他のサーバのファイルキャッシュに格納されているか否かを判定し(S146)、当該ファイルが他のサーバのファイルキャッシュに格納されていれば、ケース24であると判定し、当該他のサーバのファイルキャッシュから当該ファイルを読み出す(S155)。
一方、リード要求に係るファイルが、他現用サーバのファイルキャッシュに格納されていなければ、ステップS106に進む。すなわち、リード要求に係るファイルは、いずれの現用サーバ11〜13及び共通待機サーバ15のファイルキャッシュにも格納されていない状態であると判定する。
次に、NASヘッドのFCCT−Nの所有2114を参照し(S147)、リード要求に係るファイルが、当該ファイルを格納しているディスク装置に接続されているNASヘッドのファイルキャッシュに格納されているか否かを判定する(S148)。
その結果、当該ファイルがそのNASヘッドのファイルキャッシュに格納されていれば、ケース25であると判定する。ケース25の場合、当該NASヘッドのファイルキャッシュから当該ファイルを読み出す(S156)。
次に、当該ファイルが他のNASヘッドのファイルキャッシュに格納されているか否かを判定し(S149)、当該ファイルが他のNASヘッドのファイルキャッシュに格納されていれば、ケース26であると判定し、当該他NASヘッドのファイルキャッシュから当該ファイルを読み出す(S157)。
一方、リード要求に係るファイルが、他のNASヘッドのファイルキャッシュに格納されていなければ、リード要求に係るファイルはいずれのサーバのファイルキャッシュにも、いずれのNASヘッドのファイルキャッシュにも格納されていない状態(ケース27)であると判定し、リード要求に係るファイルをディスク装置から読み出す(S150)。
その後、FCCT−Sのリード回数及びFCCT−Nのリード回数を加算する(S151)。
その後、リードロックを解除する(S152)。
図18は、第2の実施の形態のライト処理のアクセス順序を示す図である。
図18では、現用サーバ11がファイルの書き込み要求元で、目的のファイルはディスク装置25(NASヘッド2に接続されているディスク装置)に格納されている場合について説明する。
まず、ファイルがロック状態になければ、書込対象のファイルを自サーバのファイルキャッシュに書き込む(ケース32)。
次に、書込対象のファイルを共通待機サーバ15に転送し、キャッシュメモリ152に当該ファイルを格納する(ケース33)。
目的のファイルが他のサーバのファイルキャッシュに格納する条件を満たせば、条件を満たしたサーバに当該ファイルを転送し、他のサーバのキャッシュメモリに当該ファイルを格納する(ケース34)。
また、目的のファイルがNASヘッドのファイルキャッシュに格納する条件を満たせば、条件を満たしたNASヘッドに当該ファイルを転送し、当該NASヘッドのキャッシュメモリに当該ファイルを格納する(ケース35)。
また、現用サーバ11のキャッシュメモリに格納されたファイルは、そのファイルの格納場所のディスク装置が接続されているNASヘッドに転送され、ファイルがディスク装置に書き込まれる(ケース36)。
本発明の第2の実施の形態では、キャッシュに格納されたファイルを共通待機サーバに転送し、待機系のグローバルキャッシュを構成する。また、サーバ間で転送し、サーバ間でキャッシュを冗長化する。同様に、キャッシュに格納されたファイルをNASヘッドに転送し、NASヘッド間でもキャッシュを冗長化する。
図19は、第2の実施の形態のライト処理のフローチャートである。
ステップS161からステップS165の処理は、前述した第1の実施の形態のステップS121からステップS125の処理と同じであるため、その詳細な説明は省略する。
まず、OS113は、アプリケーションプログラム115、116からファイルライト要求を受けると、FCCT−Sの所有1114及びFCCT−Nの所有2114を参照する(S161)。
そして、FCCT−Sのロック状態1113を参照して、ライト要求に係るファイルがライトロック中であるか否か、またリードロック中であるか否かを判定する(S162)。
その結果、ライト要求に係るファイルがライトロック中又はリードロック中であれば、ケース31であると判定し、これらのロックが解除されるまで待機する。一方、ライト要求に係るファイルがライトロック中でも、リードロック中でもなければ、当該ファイルをライトロック状態に設定する(S163)。
次に、ステップS161でFCCT−Sの所有1114及びFCCT−Nの所有2114を参照した結果を用いて、発見されたサーバ及びNASヘッドが所有している当該ファイルのキャッシュを無効化する(S164)。
次に、ライト要求に係るファイルを、自サーバのファイルキャッシュに書き込む(S165)。この書込処理はケース32に相当する。その後、ステップS166に進む。
ステップS166では、共通待機サーバ15が正常に稼働しているか否かを判定する。例えば、後述するように、共通待機サーバが縮退モードにある場合(図20のS503参照)、共通待機サーバ15は稼働していない。
その結果、共通待機サーバ15が稼働状態にあれば、ケース33であると判定する。
共通待機サーバ15のファイルキャッシュ152には、現用サーバ11〜13が書き込んだ全てのファイルのキャッシュが格納されている。よって、ケース33の場合は、共通待機サーバ15にアクセスし、ファイルキャッシュ152に当該ファイルを書き込む(S167)。その後ステップS168に進む。
一方、共通待機サーバ15が正常に稼働していなければ、ステップS168に進む。すなわち、ライト要求に係るファイルは、いずれのサーバのファイルキャッシュにも格納されていない状態であると判定される。
ステップS168からステップS174の処理は、前述した第1の実施の形態のステップS126からステップS132の処理と同じであるため、その詳細な説明は省略する。
すなわち、条件1の全てが成立しているか否かを各サーバ毎に判定し(S168)、条件1の全てを満たした他のサーバのキャッシュメモリに当該ファイルを書き込む(S169)。
その後、FCCT−Nのアクセス回数2115、2116を参照する(S170)。次に、条件2の全てが成立しているか否かを各NASヘッド毎に判定し(S171)、条件2の全てを満たしたNASヘッドのキャッシュメモリに当該ファイルを書き込む(S172)。
その後、そのファイルをディスク装置に書き込み(S173)、ライトロックを解除する(S174)。
次に、サーバの障害処理手順について説明する。
図20は、第2の実施の形態のサーバの障害処理手順のシーケンス図である。
各現用サーバ11〜13は、所定のタイミング(例えば、2秒毎等の周期的)に、aliveメッセージを送信する。共通待機サーバ15は、現用サーバ11〜13が送信したaliveメッセージを受信することによって、当該メッセージを送信したサーバが稼働中であることが分かる。また、共通待機サーバ15は、aliveメッセージを所定時間以上受信しないことによって、サーバに障害が発生したことが分かる。
サーバ1に障害が発生すると、サーバ1からのaliveメッセージが途絶する。これによって、共通待機サーバ15は、サーバ1に障害が発生したこと検出する(S501)。
次に、共通待機サーバ15は、サーバ1が所有していないファイルキャッシュを無効化する。図15に示す状態では、FC3及びFC4が無効化される(S502)。
その後、共通待機サーバ15を縮退モードに設定する(S503)。縮退モードとは、共通待機サーバ15が他の現用サーバの業務を実行しており、共通待機サーバ15が存在しない状態である。
その後、特定された共通待機サーバ15は、クラスタソフトウェアによって、サーバ1で稼動していたアプリケーションプログラムを起動し、サーバ1で提供されていた業務を行う(S504)。
以上説明したように本発明の第2の実施の形態では、複数の現用サーバ及び1台以上の待機サーバを備え、待機サーバによる待機グローバルキャッシュを構成した。よって、障害発生時に待機グローバルキャッシュを使用することができ、障害発生時の切替え時間を短縮して、可用性を向上することができる。
第1の実施の形態の計算機システムのハードウェア構成を示すブロック図である。 第1の実施の形態のサーバの構成を示すブロック図である。 第1の実施の形態のNASヘッドの構成を示すブロック図である。 第1の実施の形態に係る発明の特徴の説明図である。 第1の実施の形態のFCCT−Sの構成図である。 第1の実施の形態のFCCT−Nの構成図である。 第1の実施の形態のリード処理におけるキャッシュファイルの所有状況による動作の場合分けの説明図である。 第1の実施の形態の各ケースにおけるリード処理のアクセス順序を示す図である。 第1の実施の形態のリード処理のフローチャートである。 第1の実施の形態のライト処理におけるキャッシュファイルの所有状況による動作の場合分けの説明図である。 第1の実施の形態の各ケースにおけるリード処理のアクセス順序を示す図である。 第1の実施の形態のライト処理のフローチャートである。 第1の実施の形態のサーバの障害処理手順のシーケンス図である。 第1の実施の形態のNASヘッドの障害処理手順のシーケンス図である。 第2の実施の形態の計算機システムのハードウェア構成を示すブロック図である。 第2の実施の形態のリード処理のアクセス順序を示す図である。 第2の実施の形態のリード処理のフローチャートである。 第2の実施の形態のライト処理のアクセス順序を示す図である。 第2の実施の形態のライト処理のフローチャートである 第2の実施の形態のサーバの障害処理手順のシーケンス図である。
符号の説明
1 サーバ群
11〜14 サーバ(現用サーバ)
15 共通待機サーバ
111、121、131、141 ファイルキャッシュ
112、122、132、142 ファイルキャッシュ制御テーブル(FCCT−S)
2 NAS
21〜23 NASヘッド
211、221、231 ファイルキャッシュ
212、222、232 ファイルキャッシュ制御テーブル(FCCT−N)
24、25、26 ディスク装置

Claims (5)

  1. 複数のストレージ装置及び複数のサーバから構成される計算機システムにおいて、
    前記ストレージ装置は、ディスク装置及びストレージ制御装置を備え、
    前記ディスク装置は、前記サーバによって読み書きされるファイルを格納し、
    前記ストレージ制御装置は、前記サーバとネットワークを介して接続するインターフェースと、前記ディスク装置に対するファイルの読み書きを制御する制御部とを備え、
    前記ストレージ制御装置及び前記サーバは、前記サーバによって読み書きされるファイルを一時的に格納するキャッシュメモリ、及び、前記キャッシュメモリに格納されるファイルの情報を記憶するファイルキャッシュ制御情報部を備え、
    前記ファイルキャッシュ制御情報部は、前記ストレージ制御装置及び/又は前記サーバのキャッシュメモリに格納されたファイルのファイルサイズ、前記キャッシュメモリに格納されたファイルの読出回数及び前記キャッシュメモリに格納されたファイルの書込回数を含むファイルの情報を記憶し、
    前記サーバは、ファイルを前記ディスク装置に書き込む際に、前記ファイルキャッシュ制御情報部に記憶されたファイルサイズ、前記読出回数及び前記書込回数に基づいて、当該ファイルを前記キャッシュメモリに格納するストレージ制御装置又はサーバを決定し、前記決定されたストレージ制御装置又はサーバに当該ファイルを転送することを特徴とする計算機システム。
  2. 前記サーバは、
    前記ファイルキャッシュ制御情報部に記憶されたファイルサイズが所定値より大きい、
    前記ファイルキャッシュ制御情報部に記憶された書込回数が所定値未満、又は、
    前記ファイルキャッシュ制御情報部に記憶された読出回数が所定値未満のいずれか一つを満たせば、当該ファイルを転送しないことを特徴とする請求項1に記載の計算機システム。
  3. 前記ファイルキャッシュ制御情報部は、前記ファイル毎に前記複数のサーバに分割して、前記キャッシュメモリに格納されるファイルの情報を記憶し、
    前記サーバは、他の前記サーバの障害を検出すると、当該障害が発生したサーバが記憶しているファイルの情報に係るファイルを前記キャッシュメモリから削除することを特徴とする請求項1に記載の計算機システム。
  4. 前記複数のサーバは、複数の現用サーバ及び1台以上の待機サーバを含み、
    前記現用サーバは、ファイルを前記ディスク装置に書き込む際に、当該ファイルを前記待機サーバに転送し、
    前記待機サーバは、前記転送されたファイルを前記キャッシュメモリに格納し、
    さらに、前記待機サーバは、前記現用サーバの障害を検出すると、当該障害が発生した現用サーバが提供していた業務を実行することを特徴とする請求項1に記載の計算機システム。
  5. 前記待機サーバは、前記現用サーバの障害を検出すると、当該障害が発生した現用サーバに格納されていないファイルを前記キャッシュメモリから削除した後、当該障害が発生した現用サーバが提供していた業務を実行することを特徴とする請求項4に記載の計算機システム。
JP2005111815A 2005-04-08 2005-04-08 計算機システム Expired - Fee Related JP4550648B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005111815A JP4550648B2 (ja) 2005-04-08 2005-04-08 計算機システム
US11/218,615 US7593998B2 (en) 2005-04-08 2005-09-06 File cache-controllable computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005111815A JP4550648B2 (ja) 2005-04-08 2005-04-08 計算機システム

Publications (2)

Publication Number Publication Date
JP2006293593A JP2006293593A (ja) 2006-10-26
JP4550648B2 true JP4550648B2 (ja) 2010-09-22

Family

ID=37084316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005111815A Expired - Fee Related JP4550648B2 (ja) 2005-04-08 2005-04-08 計算機システム

Country Status (2)

Country Link
US (1) US7593998B2 (ja)
JP (1) JP4550648B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273657A1 (en) * 2004-04-01 2005-12-08 Hiroshi Ichiki Information processing apparatus and method, and recording medium and program for controlling the same
JP5323554B2 (ja) * 2009-03-27 2013-10-23 株式会社日立製作所 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
JP2012073777A (ja) * 2010-09-28 2012-04-12 Kddi Corp 分散ファイルシステム制御装置
US9921752B2 (en) * 2012-05-04 2018-03-20 Netapp, Inc. Systems, methods, and computer program products providing read access in a storage system
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
JP5449462B2 (ja) 2012-06-22 2014-03-19 株式会社東芝 分散型データベースシステム及びプログラム
US9560127B2 (en) 2013-01-18 2017-01-31 International Business Machines Corporation Systems, methods and algorithms for logical movement of data objects
KR101512296B1 (ko) * 2013-04-05 2015-04-15 주식회사 팬택 어플리케이션 연관 파일 처리 단말 및 단말의 어플리케이션 연관 파일 처리 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254753A (ja) * 1996-10-18 1998-09-25 At & T Corp キャッシュ間情報転送方法
JP2002091825A (ja) * 2000-09-13 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> ネットワークキャッシュ装置およびネットワークキャッシュ制御方法および記録媒体
JP2002196954A (ja) * 2000-12-27 2002-07-12 Toshiba Corp 記憶資源自動管理方法及びネットワークコンピュータシステム
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
JP2002351729A (ja) * 2001-05-22 2002-12-06 Nec Corp データ共有システム
JP2004062344A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
JP2006126993A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd データの移行先を選択する方法及び装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499367A (en) * 1991-11-15 1996-03-12 Oracle Corporation System for database integrity with multiple logs assigned to client subsets
JP3118189B2 (ja) * 1996-07-25 2000-12-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Cd−rom再生装置及びその制御方法
US6775794B1 (en) * 2001-05-23 2004-08-10 Applied Micro Circuits Corporation Use of activity bins to increase the performance of disk arrays
JP4186602B2 (ja) * 2002-12-04 2008-11-26 株式会社日立製作所 ジャーナルログを利用した更新データ書込方法
US7353242B2 (en) * 2004-07-09 2008-04-01 Hitachi, Ltd. File server for long term data archive

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254753A (ja) * 1996-10-18 1998-09-25 At & T Corp キャッシュ間情報転送方法
JP2002091825A (ja) * 2000-09-13 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> ネットワークキャッシュ装置およびネットワークキャッシュ制御方法および記録媒体
JP2002196954A (ja) * 2000-12-27 2002-07-12 Toshiba Corp 記憶資源自動管理方法及びネットワークコンピュータシステム
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
JP2002351729A (ja) * 2001-05-22 2002-12-06 Nec Corp データ共有システム
JP2004062344A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
JP2006126993A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd データの移行先を選択する方法及び装置

Also Published As

Publication number Publication date
US7593998B2 (en) 2009-09-22
JP2006293593A (ja) 2006-10-26
US20060230099A1 (en) 2006-10-12

Similar Documents

Publication Publication Date Title
JP4550648B2 (ja) 計算機システム
US8112463B2 (en) File management method and storage system
US10645152B2 (en) Information processing apparatus and memory control method for managing connections with other information processing apparatuses
KR101303989B1 (ko) 분산 스토리지 시스템
JP4728717B2 (ja) 自律ストレージ装置、自律ストレージシステム、分散ストレージシステム、負荷分散プログラム及び負荷分散方法
US11509716B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US20240053886A1 (en) File operations in a distributed storage system
JP4201447B2 (ja) 分散処理システム
US20060156030A1 (en) Data processing system and method
JP6406027B2 (ja) 情報処理システム、情報処理装置、メモリアクセス制御方法
JP2006508459A (ja) nウェイ共用ストレージ・システムにおけるフラッシュ・コピーのためのハイパフォーマンス・ロック管理
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US7401081B2 (en) Method and apparatus for providing storage control in a network of storage controllers
JP6665892B2 (ja) 情報処理システム,情報処理装置および制御プログラム
US8997124B2 (en) Method for updating data in a distributed data storage system
JP2006012005A (ja) 自律ストレージ装置、自律ストレージシステム、ネットワーク負荷分散プログラム及びネットワーク負荷分散方法
JP4818396B2 (ja) オーバーレイネットワークシステム及び同システムにおけるオブジェクト登録方法
JP4028833B2 (ja) 記憶域コントローラ・ノードのネットワーク内で記憶域のi/o動作を制御する装置、方法及びコンピュータ・プログラム
JP4808793B2 (ja) 障害管理装置及びプログラム
JP4280919B2 (ja) 複製管理システム、複製管理方法および複製管理プログラム
JP2019046180A (ja) 計算機システム、データ管理方法、及びデータ管理プログラム
JP2010277342A (ja) 管理プログラム、管理装置および管理方法
JP5490067B2 (ja) 障害管理装置及びプログラム
JP2024011865A (ja) ファイルストレージシステム及びファイル転送方法
JP4774421B2 (ja) 分散処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100708

R150 Certificate of patent or registration of utility model

Ref document number: 4550648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees