JP2010198441A - ミラーリングシステム - Google Patents
ミラーリングシステム Download PDFInfo
- Publication number
- JP2010198441A JP2010198441A JP2009043911A JP2009043911A JP2010198441A JP 2010198441 A JP2010198441 A JP 2010198441A JP 2009043911 A JP2009043911 A JP 2009043911A JP 2009043911 A JP2009043911 A JP 2009043911A JP 2010198441 A JP2010198441 A JP 2010198441A
- Authority
- JP
- Japan
- Prior art keywords
- server
- write
- client terminal
- data
- client
- 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
Abstract
【課題】ミラーリングによる信頼性を向上させることを可能とする。
【解決手段】クライアント端末10のRAIDコントローラ12は、ライト要求に応じてSSD11にデータを書き込む。RAIDコントローラ12は、ライト要求をミラーサーバ20に送信する。ミラーサーバ20は、ライト要求に含まれる端末識別情報によって識別されるクライアント端末10に対してミラーサーバ20がメインサーバとして動作するかサブサーバとして動作するかを、クライアント情報テーブルに保持されている動作情報に基づいて判定する。ミラーサーバ20は、メインサーバとして動作すると判定された場合、ライト要求に応じてHDD21にデータを書き込む。ミラーサーバ20は、サブサーバとして動作すると判定された場合、ライト要求に応じてデータが書き込まれるHDD21における書き込み位置をライト位置情報テーブルに登録する。
【選択図】図1
【解決手段】クライアント端末10のRAIDコントローラ12は、ライト要求に応じてSSD11にデータを書き込む。RAIDコントローラ12は、ライト要求をミラーサーバ20に送信する。ミラーサーバ20は、ライト要求に含まれる端末識別情報によって識別されるクライアント端末10に対してミラーサーバ20がメインサーバとして動作するかサブサーバとして動作するかを、クライアント情報テーブルに保持されている動作情報に基づいて判定する。ミラーサーバ20は、メインサーバとして動作すると判定された場合、ライト要求に応じてHDD21にデータを書き込む。ミラーサーバ20は、サブサーバとして動作すると判定された場合、ライト要求に応じてデータが書き込まれるHDD21における書き込み位置をライト位置情報テーブルに登録する。
【選択図】図1
Description
本発明は、記憶容量が異なる記憶デバイスを用いたミラーリング制御を行うミラーリングシステムに関する。
一般的に、パーソナルコンピュータ(PC)またはサーバ等に使用される大容量記憶装置としてはハードディスクドライブ(HDD:Hard Disk Drive)が主として用いられている。また、近年では、フラッシュメモリ等を用いたSSD(Solid State Disk)と呼ばれるデバイスの技術向上により、SSDが一部のHDDの代わりに用いられるようになっている。
このSSDはHDDと比較して、寿命が長い、データのリード性能が高い、消費電力が少ない、騒音が小さいという長所がある。一方で、記憶容量あたりの単価が高い、書込みの回数に制限があるという短所がある。
このSSDはHDDと比較して、寿命が長い、データのリード性能が高い、消費電力が少ない、騒音が小さいという長所がある。一方で、記憶容量あたりの単価が高い、書込みの回数に制限があるという短所がある。
ところで、HDDを用いた大容量記憶装置/システムにおいては、RAID(Redundant Array of Inexpensive Disk drives)によりデータを冗長化することで、HDDに障害が発生した場合にもシステム全体として処理を停止することなく運用できるように構成することが一般的である。
一般的に、RAIDは、規模の大きいサーバ等のシステムにおいて利用されている。しかしながら、HDDやRAIDコントローラが安価になってきたことに伴い、近年ではPC等の比較的小規模なものでもRAIDを構成する場合がある。RAIDには、いくつかのレベル(例えばRAID0〜5等)があり、それぞれ冗長の方法が異なる。
一般的に、RAIDは、規模の大きいサーバ等のシステムにおいて利用されている。しかしながら、HDDやRAIDコントローラが安価になってきたことに伴い、近年ではPC等の比較的小規模なものでもRAIDを構成する場合がある。RAIDには、いくつかのレベル(例えばRAID0〜5等)があり、それぞれ冗長の方法が異なる。
例えばRAID1において、上記した技術の単純な組み合わせとして、SSDを用いてRAID(ミラーリング)を構成することが考えられる。これによれば、複数のSSDのうちの1つが故障してもシステムを停止することなく運用できるように構成することが可能となる。これに関連して、例えばフラッシュメモリでRAIDを構成した上で、多くの回数の書き込みが可能な技術が開示されている(例えば、特許文献1を参照)。
上記したようにSDDは、HDDと比較して、記憶容量あたりの単価が高い代わりに故障頻度がHDDよりも相当低いという特徴がある。これによると、比較的小規模な計算機においては、万一のためにミラーリングの必要はあるが、実際の故障頻度が非常に低いにもかかわらず上記したようにSSDだけでミラーリングを行うのは経済的ではない場合が多い。
SSDのみのミラーリングによる経済的非効率を解決する手段として、SSD及びHDDの両方を用いてミラーリングするという手法が考えられる。しかしながら、一般的な製品1つあたりの記憶容量はHDDの方が大きいため、SSD及びHDDを1対1でミラーリングさせる手法ではあまり効果が向上しない。
そこで、更に十分高速な通信手段を用いて、複数のPC(クライアントPC)がそれぞれSSDを有し、複数のクライアントPCが例えば専用サーバ(以下、ミラーサーバと表記)上の1つのHDDを共有することが考えられる。
ここで、各クライアントPCが有するSSD及びミラーサーバ上のHDDを用いてミラーリングを行うように構成されたシステムにおいて、複数のクライアントPCのデータが格納されているミラーサーバ側のHDDが故障した場合、つまり、当該HDDの故障による交換作業等によりミラーサーバ側が一時的に停止した場合、ミラーサーバを利用するクライアントPCには稼動中のものと停止中(電源が入っていない等)のものとが混在してしまう。
実際の運用において、稼動を停止しているクライアントPCがどの程度の時間、稼動を停止しているのかを認識することはできない。また、稼動を停止しているクライアントPCにおいて停止中にどのような作業が行われたかを認識することはできない。
このように、例えばクライアントPC側のSSDの故障中にミラーサーバ側のHDDが故障したような場合には、上記した先行技術におけるSSD及びHDDを用いてミラーリングする単純な構成ではミラーリングの本来の信頼性には及ばない場合がある。
また、上記したような各クライアントPCが有するSSD及びミラーサーバ上のHDDを用いてミラーリングを行うシステムにおいては、物理的なHDDを複数のクライアントPCで共有するため、特にデータをライトする場合にはアクセス競合が生じる場合がある。つまり、ライト要求が集中する時間帯では、クライアントPCではミラーサーバからのライトアクセスの応答が非常に遅く見える場合がある。物理的なHDDを共有する以上、本質的には回避できない課題ではあるが、可能な限り競合を回避できる方が望ましい。
そこで、本発明の目的は、ミラーリングによる信頼性を向上させることが可能なミラーリングシステムを提供することにある。
本発明の1つの態様によれば、複数のクライアント端末と、当該複数のクライアント端末と通信路を介して接続される少なくとも2つのサーバとを具備し、前記複数のクライアント端末の各々に対して前記2つのサーバのうちの一方のサーバがメインサーバとして動作し、他方のサーバがサブサーバとして動作するミラーリングシステムにおいて、前記複数のクライアント端末の各々は、小容量記憶装置と、前記小容量記憶装置にデータを書き込むためのライト要求を取得するライト要求取得手段と、前記取得したライト要求に応じて、前記小容量記憶装置に前記データを書き込む第1の書き込み手段と、当該クライアント端末を識別するための端末識別情報を含む前記取得したライト要求を前記2つのサーバに送信する送信手段とを含み、前記2つのサーバの各々は、前記複数のクライアント端末の各々が有する小容量記憶装置をミラーリングするために用いられる大容量記憶装置と、前記端末識別情報によって識別されるクライアント端末に対して当該サーバがメインサーバまたはサブサーバとして動作することを示す動作情報を保持するクライアント情報テーブルと、前記端末識別情報によって識別されるクライアント端末に対して当該サーバがメインサーバまたはサブサーバとして動作するかを、前記クライアント情報テーブルに保持されている動作情報に基づいて判定する動作情報判定手段と、当該サーバがメインサーバとして動作すると判定された場合、前記ライト要求に応じて前記大容量記憶装置に前記データを書き込む第2の書き込み手段と、当該サーバがサブサーバとして動作すると判定された場合、前記ライト要求に応じて前記データが書き込まれる前記大容量記憶装置の書き込み位置を示すライト位置情報を保持するライト位置情報テーブルとを含むことを特徴とするミラーリングシステムが提供される。
本発明は、ミラーリングによる信頼性を向上させることを可能とする。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係るミラーリングシステムの概略構成を示すブロック図である。本実施形態のミラーリングシステムは、複数のクライアント端末10及び少なくとも2つのミラーサーバ20を備える。図1のミラーリングシステムは、2つのミラーサーバ20を備えている。
図1は、本実施形態に係るミラーリングシステムの概略構成を示すブロック図である。本実施形態のミラーリングシステムは、複数のクライアント端末10及び少なくとも2つのミラーサーバ20を備える。図1のミラーリングシステムは、2つのミラーサーバ20を備えている。
複数のクライアント端末10及び2つのミラーサーバ20は、例えばLAN(Local Area Network)のような通信路30を介して互いに接続されている。複数のクライアント端末10は、それぞれ各種データを格納するSSD(小容量記憶装置)11を有する。一方、2つのミラーサーバ20は、それぞれHDD(大容量記憶装置)21を有する。SSD11は、製品1つあたりの記憶容量はHDD21より小さいが、HDD21と比較してデータのリード性能が高い記憶装置である。
各クライアント端末10は、各ミラーサーバ20が有するHDD21を他のクライアント端末10と共有する。これにより、各ミラーサーバ20が有するHDD21内には、複数のクライアント端末10の各々が有するSSD11のミラーとなるデータが保持(格納)される。つまり、本実施形態においては、複数のクライアント端末10が有するSSD11及び2つのミラーサーバ20が有するHDD21を用いてミラーリングが行われる。
また、各クライアント端末10は、RAIDコントローラ12を有する。RAIDコントローラ12は、例えばクライアント端末10上で動作する主プログラム(クライアント端末10のCPUが実行するプログラム)からI/O要求を取得する。I/O要求には、クライアント端末10が有するSSD11に対してデータを書き込むためのライト要求及び当該SSD11からデータを読み込むためのリード要求が含まれる。
RAIDコントローラ12は、主プログラムからのライト要求に応じて当該クライアント端末10内のSSD11にデータを書き込む。また、RAIDコントローラ12は、取得したライト要求を各ミラーサーバ20に送信する。なお、RAIDコントローラ12から送信されるライト要求には、当該クライアント端末10を識別するための端末ID(端末識別情報)が含まれる。
一方、RAIDコントローラ12は、主プログラムからのリード要求に応じて当該クライアント端末10内のSSD11からデータを読み込む。
一方、RAIDコントローラ12は、主プログラムからのリード要求に応じて当該クライアント端末10内のSSD11からデータを読み込む。
各ミラーサーバ20は、複数のクライアント端末10の各々に対してメインサーバまたはサブサーバとして動作する。すなわち、クライアント端末10に対し、2つのミラーサーバ20は、一方がメインサーバとして動作する場合は、他方はサブサーバとして動作する。各ミラーサーバ20がメインサーバかサブサーバかは、クライアント端末10毎に異なる。
ミラーリングシステムにおいて、例えばクライアント端末10が10台存在する場合を想定する。このとき、一方のミラーサーバ20が5つのクライアント端末10に対してメインサーバとして動作する場合、他方のミラーサーバ20は、当該5つのクライアント端末10に対してはサブサーバとして動作する。残りの5つのクライアント端末10に対しては、各ミラーサーバ20の動作(メインサーバ及びサブサーバとしての動作)が逆となる。
このように本実施形態においては、各ミラーサーバ20はあるクライアント端末10からみるとメインサーバであり、別のクライアント端末10からみるとサブサーバであるように動作する。すなわち、2つのミラーサーバ20で、全てのクライアント端末10のメインサーバ及びサブサーバの機能を分担するように構成されている。
各ミラーサーバ20は、クライアント端末10から送信されたライト要求に応じて、当該クライアント端末10に対応したメインサーバまたはサブサーバとしての処理を実行する。なお、複数のクライアント端末10の各々においては、当該クライアント端末10に対してメインサーバ及びサブサーバとして動作するミラーサーバ20を識別するための情報(例えば、メインサーバID及びサブサーバID)が予め保持されている。
図2は、図1に示す各ミラーサーバ20の主として機能構成を示すブロック図である。ミラーサーバ20は、HDD21、クライアント情報テーブル22、通信I/F23、I/O処理部24、物理HDD制御部25、ライト位置情報テーブル26及び停止監視部27を含む。なお、図2においては、本実施形態に係るミラーリングシステムの趣旨と直接関わらない機能(例えば、CPU、メモリ、ディスク/ネットワーク以外のI/O等)については省略されている。
HDD21は、複数のクライアント端末10の各々が有するSSD11に格納されているデータをミラーリングするために用いられる記憶装置である。
クライアント情報テーブル22は、複数のクライアント端末10の各々を識別する端末識別情報(以下、端末IDと表記)に対応付けて、ミラーサーバ20が当該クライアント端末10に対してメインサーバまたはサブサーバとして動作することを示す動作情報を保持する。
クライアント情報テーブル22は、複数のクライアント端末10の各々を識別する端末識別情報(以下、端末IDと表記)に対応付けて、ミラーサーバ20が当該クライアント端末10に対してメインサーバまたはサブサーバとして動作することを示す動作情報を保持する。
また、クライアント情報テーブル22は、動作情報がサブサーバ(またはメインサーバ)として識別されるクライアント端末10に対し、メインサーバ(またはサブサーバ)として動作する他方のミラーサーバ20を識別するための対応サーバ識別情報(以下、対応サーバIDと表記)を、当該端末IDに対応付けて保持する。
また、クライアント情報テーブル22は、動作情報がサブサーバとして識別されるクライアント端末10に対し、メインサーバとして動作する他方のミラーサーバ20が稼動中または停止中であることを示す稼動情報を、当該端末IDに対応付けて保持する。
また、クライアント情報テーブル22は、動作情報がサブサーバとして識別されるクライアント端末10に対し、メインサーバとして動作する他方のミラーサーバ20が稼動中または停止中であることを示す稼動情報を、当該端末IDに対応付けて保持する。
通信I/F23は、クライアント端末10から送信されたライト要求を受信する。このライト要求には、書き込むデータ(以下、書き込みデータと表記)及び当該ライト要求を送信したクライアント端末10を識別する端末IDが含まれる。I/O処理部24は、メイン/サブ振り分け部241、メイン機能部242及びサブ機能部243を含む。
メイン/サブ振り分け部241は、ライト要求に含まれる端末IDのクライアント端末10に対してミラーサーバ20がメインサーバまたはサブサーバであるかを判定する。メイン/サブ振り分け部241は、端末IDに対応付けられている動作情報に基づいて判定する。
メイン機能部242は、ミラーサーバ20がメインサーバとして動作するための各種機能を有する。メイン機能部242は、ライト要求に含まれる書き込みデータをHDD21に書き込むライト処理を実行する。このとき、メイン機能部242は、HDD21に対する物理HDD制御部25を介してライト処理を実行する。
メイン機能部242はライト処理が実行されると、当該ライト処理が完了した旨の応答(以下、ライト完了応答と表記)を通信I/F23を介してクライアント端末10に送信する。このライト完了応答は、ライト要求に含まれる端末IDのクライアント端末10に送信される。
メイン機能部242はライト処理が実行されると、当該ライト処理が完了した旨の応答(以下、ライト完了応答と表記)を通信I/F23を介してクライアント端末10に送信する。このライト完了応答は、ライト要求に含まれる端末IDのクライアント端末10に送信される。
サブ機能部243は、ミラーサーバ20がサブサーバとして動作するための各種機能を有する。サブ機能部243は、ライト要求に含まれる端末IDのクライアント端末10に対し、メインサーバである他方のミラーサーバ20が稼動中であるか否かを判定する。このとき、サブ機能部243は、ライト要求に含まれる端末IDに対応付けられている稼動情報に基づいて判定処理を実行する。
サブ機能部243は、ミラーサーバ20の処理状況に基づいてライト要求に応じてHDD21に書き込みデータを書き込むか否かを判定する。そして、サブ機能部243は、ライト要求に応じて書き込みデータが書き込まれるHDD21における書き込み位置を示すライト位置情報をライト位置情報テーブル26に登録する。
ライト位置情報テーブル26には、ミラーサーバ20がサブサーバとして動作すべきクライアント端末10のSSD11と当該クライアント端末10に対してメインサーバとして動作する他方のミラーサーバ20上のHDD21において、書き込みデータが書き込まれた(上書きされた)位置情報が保持される。つまり、ライト位置情報テーブル26は、ミラーサーバ20上のHDD21に格納されているデータがクライアント端末10のSSD11及びメインサーバとして動作する他方のミラーサーバ20のHDD21(に格納されているデータ)と一致するか否かを示すフラグ配列のような構造を有する。なお、ライト位置情報テーブル26は、ミラーサーバ20がサブサーバとして動作すべきクライアント端末10毎に存在する。
サブ機能部243は、ライト位置情報がライト位置情報テーブル26に登録されると、ライト要求に含まれる端末IDのクライアント端末10に対してライト要求を受け付けた旨の応答(以下、ライト受付応答と表記)を送信する。ライト受付応答は、通信I/F23を介して送信される。また、サブ機能部243は、メイン機能部242と同様に、ライト要求に含まれる書き込みデータをHDD21に書き込むライト処理を実行する。サブ機能部243は、ライト処理が実行されると、ライト完了応答を通信I/F23を介してクライアント端末10に送信する。
停止監視部27は、ミラーサーバ20がサブサーバとして動作すべきクライアント端末10を監視することにより、当該クライアント端末10の動作が停止したことを検出する。停止監視部27は、クライアント端末10の停止を検出した場合、当該クライアント端末10に対応するライト位置情報テーブル26に保持されているライト位置情報によって示される書き込み位置に書き込むデータ(書き込みデータ)を、当該クライアント端末10に対してメインサーバとして動作する他方のミラーサーバ20から取得する。
停止監視部27は、取得した書き込みデータを、動作の停止が検出されたクライアント端末10に対応したライト位置情報によって示されるHDD21の書き込み位置に書き込むライト処理を実行する。
停止監視部27は、取得した書き込みデータを、動作の停止が検出されたクライアント端末10に対応したライト位置情報によって示されるHDD21の書き込み位置に書き込むライト処理を実行する。
また、停止監視部27は、他方のミラーサーバ20を監視することにより、当該他方のミラーサーバ20の動作が停止したことを検出する。停止監視部27は、他方のミラーサーバ20の停止を検出した場合、ライト位置情報テーブル26に保持されているライト位置情報によって示される書き込み位置に書き込むデータ(書き込みデータ)を、当該ライト位置情報テーブル26に対応するクライアント端末10から取得する。
停止監視部27は、クライアント端末10から取得した書き込みデータを、当該クライアント端末10に対応したライト位置情報によって示されるHDD21の書き込み位置に書き込むライト処理を実行する。
停止監視部27は、クライアント端末10から取得した書き込みデータを、当該クライアント端末10に対応したライト位置情報によって示されるHDD21の書き込み位置に書き込むライト処理を実行する。
図3は、図2に示すクライアント情報テーブル22のデータ構造の一例を示す。図3に示したクライアント情報テーブル22には、端末ID、動作情報、対応サーバID及び稼動情報が対応付けて保持される。
端末IDは、クライアント端末10を一意に識別するための識別子である。動作情報は、当該端末IDのクライアント端末10に対してミラーサーバ20がメインサーバまたはサブサーバとして動作することを示す。 対応サーバIDは、対応する端末IDのクライアント端末10に対してメインサーバまたはサブサーバとして対応関係にあるミラーサーバ20を識別するための識別子である。なお、図1に示すようにミラーサーバ20が2つである場合には、対応サーバIDとしては、全て他方のミラーサーバ20を識別するための識別子が保持される。
稼動情報は、対応する動作情報がサブサーバとして動作することを示す場合に、対応する対応サーバIDのミラーサーバ(端末IDのクライアント端末10に対してメインサーバとして動作する他方のミラーサーバ)20が稼動中または停止中であることを示す。
端末IDは、クライアント端末10を一意に識別するための識別子である。動作情報は、当該端末IDのクライアント端末10に対してミラーサーバ20がメインサーバまたはサブサーバとして動作することを示す。 対応サーバIDは、対応する端末IDのクライアント端末10に対してメインサーバまたはサブサーバとして対応関係にあるミラーサーバ20を識別するための識別子である。なお、図1に示すようにミラーサーバ20が2つである場合には、対応サーバIDとしては、全て他方のミラーサーバ20を識別するための識別子が保持される。
稼動情報は、対応する動作情報がサブサーバとして動作することを示す場合に、対応する対応サーバIDのミラーサーバ(端末IDのクライアント端末10に対してメインサーバとして動作する他方のミラーサーバ)20が稼動中または停止中であることを示す。
図3に示す例では、クライアント情報テーブル22には、端末ID「1」に対応付けられて、動作情報「メイン」、対応サーバID「2」が保持されている。これによれば、このクライアント情報テーブル22を含むミラーサーバ20は、端末ID「1」のクライアント端末10に対してはメインサーバとして動作し、対応サーバID「2」のミラーサーバ(他方のミラーサーバ)20がサブサーバとして動作することが示される。なお、ここでは動作情報が「メイン」であるため、クライアント情報テーブル22には、稼動情報は保持されていない。
次に、図4のフローチャートを参照して、ライト要求が発行された場合のクライアント端末10が有するRAIDコントローラ12の処理手順について説明する。
なお、クライアント端末10においては、当該クライアント端末10に対してメインサーバとして動作するミラーサーバ20を特定するためのメインサーバID及びサブサーバとして動作するミラーサーバ20を特定するためのサブサーバIDが予め保持されている。
なお、クライアント端末10においては、当該クライアント端末10に対してメインサーバとして動作するミラーサーバ20を特定するためのメインサーバID及びサブサーバとして動作するミラーサーバ20を特定するためのサブサーバIDが予め保持されている。
まず、RAIDコントローラ12は、クライアント端末10上で動作する主プログラムからライト要求が発行された場合、当該ライト要求を取得する(ステップS1)。ここで、クライアント端末10上で動作する主プログラムとは、クライアント端末10のCPUが実行するプログラムであり、例えばOS(Operating System)からアプリケーションまでの全てを含むプログラムをいう。ライト要求を取得すると、RAIDコントローラ12の処理は、第1〜第3の処理に分岐される。
第1の処理では、RAIDコントローラ12は、取得したライト要求をSSD11に発行し、SSD11に書き込みデータを書き込むライト処理を実行する(ステップS2)。そして、RAIDコントローラ12は、SSD11からのライト完了応答を待つ(ステップS3)。
第2の処理では、RAIDコントローラ12は、取得したライト要求を当該RAIDコントローラ12を有するクライアント端末10に対してメインサーバとして動作するミラーサーバ20に送信する(ステップS4)。このとき、RAIDコントローラ12は、予め保持されているメインサーバIDのミラーサーバ20にライト要求を送信する。そして、RAIDコントローラ12は、ライト要求が送信されたミラーサーバ20からのライト完了応答を待つ(ステップS5)。
第3の処理では、RAIDコントローラ12は、取得したライト要求を当該RAIDコントローラ12を有するクライアント端末10に対してサブサーバとして動作するミラーサーバ20に送信する(ステップS6)。このとき、RAIDコントローラ12は、予め保持されているサブサーバIDのミラーサーバ20にライト要求を送信する。そして、RAIDコントローラ12は、ライト要求が送信されたミラーサーバ20からのライト完了応答またはライト受付応答を待つ(ステップS7)。
第1〜第3の処理が実行されると、RAIDコントローラ12は、SSD11、メインサーバとして動作するミラーサーバ20及びサブサーバとして動作するミラーサーバ20の全てから応答があったか否かを判定する(ステップS8)。全てから応答がないと判定された場合(ステップS8のNO)、RAIDコントローラ12は、全てから応答があるまで待機する。
一方、全てから応答があったと判定された場合(ステップS8のYES)、これらの3つの応答があった時点で記憶媒体(SSD11及びHDD21)に実際にデータが書き込まれたことが保障されるため、主プログラムに対してライト完了を応答して処理が終了する。
一方、全てから応答があったと判定された場合(ステップS8のYES)、これらの3つの応答があった時点で記憶媒体(SSD11及びHDD21)に実際にデータが書き込まれたことが保障されるため、主プログラムに対してライト完了を応答して処理が終了する。
なお、サブサーバとして動作するミラーサーバ20からの応答においては、実際に当該ミラーサーバ20が有するHDD21に書き込まれたか否かは保障されておらず、ライト位置情報テーブル26にライト位置情報が登録された結果の応答(つまり、ライト受付応答)である可能性がある。この場合には、SSD11及びメインサーバとして動作するミラーサーバ20からのライト完了応答とは異なる応答(ライト受付応答)がクライアント端末10で受信されることになるが、当該クライアント端末10側でこれらの応答の差を認識する必要はない。つまり、ライト完了応答及びライト受付応答を区別することなく、SSD11、メインサーバとして動作するミラーサーバ20及びサブサーバとして動作するミラーサーバ20の全てから応答があれば、全てから応答があったと判定する。
次に、図5のフローチャートを参照して、クライアント端末10からライト要求が送信された場合のミラーサーバ20の処理手順について説明する。
以下では、図5に示す処理の主体となるミラーサーバ20を本ミラーサーバ20と表記する。一方、図5に示す処理の主体となるミラーサーバ(本ミラーサーバ)20とメインサーバまたはサブサーバとして対応関係にある他方のミラーサーバ20を対応ミラーサーバ20と表記する。
以下では、図5に示す処理の主体となるミラーサーバ20を本ミラーサーバ20と表記する。一方、図5に示す処理の主体となるミラーサーバ(本ミラーサーバ)20とメインサーバまたはサブサーバとして対応関係にある他方のミラーサーバ20を対応ミラーサーバ20と表記する。
まず、通信I/F23は、クライアント端末10から送信されたライト要求を受信する(ステップS11)。このライト要求には、当該ライト要求を送信したクライアント端末10を識別するための端末ID及び書き込みデータが含まれる。
次に、メイン/サブ振り分け部241は、クライアント情報テーブル22を参照して、受信されたライト要求に含まれる端末IDのクライアント端末10に対して本ミラーサーバ20がメインサーバとして動作するか否かを判定する(ステップS12)。メイン/サブ振り分け部241は、端末IDに対応した動作情報がメインサーバとして動作することを示す場合、本ミラーサーバ20がメインサーバとして動作すると判定する。
本ミラーサーバ20がメインサーバとして動作すると判定した場合(ステップS12のYES)、メイン機能部242はライト要求をHDD21に発行する(ステップS13)。これにより、メイン機能部242は、ライト要求に応じて、HDD21に書き込みデータを書き込むライト処理を実行する。
メイン機能部242は、HDD21(または物理HDD制御部25)からライト完了応答を待つ(ステップS14)。メイン機能部242は、HDD21からライト完了応答があった場合、ライト要求に含まれる端末IDのクライアント端末10にライト完了応答を送信する(ステップS15)。
一方、本ミラーサーバ20がメインサーバとして動作しないと判定した場合(ステップS12のNO)、メイン/サブ振り分け部241は、クライアント情報テーブル22を参照して、ライト要求に含まれる端末IDのクライアント端末10に対して本ミラーサーバ20がサブサーバとして動作するか否かを判定する(ステップS16)。メイン/サブ振り分け部241は、ライト要求に含まれる端末IDに対応した動作情報がサブサーバとして動作することを示す場合、本ミラーサーバ20がサブサーバとして動作すると判定する。
本ミラーサーバ20がサブサーバとして動作すると判定した場合(ステップS16のYES)、サブ機能部243はクライアント情報テーブル22を参照して、ライト要求に含まれる端末IDのクライアント端末10に対してメインサーバとして動作する対応ミラーサーバ(他方のミラーサーバ)20が稼動中であるか否かを判定する(ステップS17)。サブ機能部243は、ライト要求に含まれる端末IDに対応した稼動情報が稼動中であることを示す場合、メインサーバとして動作する対応ミラーサーバ20が稼動中であると判定する。
メインサーバとして動作する対応ミラーサーバ20が稼動中であると判定した場合(ステップS17のYES)、サブ機能部243は本ミラーサーバ20の処理状況に基づいて、ライト要求に応じてHDD21に書き込みデータを書き込むか否かを判定する(ステップS18)。
なお、この書き込みデータをHDD21に書き込むか否かの判定方法としては様々な方法が考えられるが、本ミラーサーバ20におけるメインサーバとしてのディスクアクセスを妨害しない場合に書き込みデータを書き込むと判定されるように判定処理を実行することが好ましい。
具体的には、例えば本ミラーサーバ20においてメインサーバとしての処理が現在存在しないときに限り、書き込みデータをHDD21に書き込むと判定するという方法が用いられる。このメインサーバとしての処理が現在存在するか否かは、例えば本ミラーサーバ20におけるメインサーバ側のライトキュー等で判定することができる。
具体的には、例えば本ミラーサーバ20においてメインサーバとしての処理が現在存在しないときに限り、書き込みデータをHDD21に書き込むと判定するという方法が用いられる。このメインサーバとしての処理が現在存在するか否かは、例えば本ミラーサーバ20におけるメインサーバ側のライトキュー等で判定することができる。
書き込みデータをHDD21に書き込むか否かの判定方法として、例えば本ミラーサーバ20におけるメインサーバ側のライトキューが予め定められた臨界点を超えているか否かにより判定する方法、または、本ミラーサーバ20におけるメインサーバ及びサブサーバとしてのHDD21に対する書き込み比率が予め定められた一定値になるようにスケジューリングすることにより判定する方法が用いられる構成であっても構わない。
例えば本ミラーサーバ20におけるメインサーバとしての処理が現在存在していることにより書き込みデータをHDD21に書き込まないと判定した場合(ステップS18のNO)、サブ機能部243は、ライト要求に応じて書き込みデータが書き込まれるHDD21におけるライト位置情報を、ライト位置情報テーブル26に登録する(ステップS19)。このライト位置情報は、ライト要求に含まれる端末IDのクライアント端末10に対応するライト位置情報テーブル26に登録される。
ライト位置情報が登録された場合、書き込みデータ自体はHDD21には書き込まれないため、ライト要求に含まれる書き込みデータは破棄される。ライト位置情報テーブル26においては、クライアント端末10及びメインサーバとして動作する対応ミラーサーバ(他方のミラーサーバ)20と整合が取れていないという情報が保持される。また、サブ機能部243は、ライト要求に含まれる端末IDのクライアント端末10に対して、ライト受付応答を送信する(ステップS20)。
なお、ステップS16において本ミラーサーバ20がサブサーバとして動作しないと判定された場合、例えば本ミラーサーバ20のクライアント情報テーブル22の内容に整合性がとれていない等の理由によりエラーとなり処理が終了する。
また、ステップS17においてメインサーバとして動作する対応ミラーサーバ20が稼動中でないと判定された場合、または、ステップS18において書き込みデータをHDD21に書き込むと判定された場合、サブ機能部243はメイン機能部242と同様に、ステップS13〜ステップS15の処理を実行する。これにより、ライト要求に応じて本ミラーサーバ20のHDD21に書き込みデータが書き込まれる。
また、ステップS17においてメインサーバとして動作する対応ミラーサーバ20が稼動中でないと判定された場合、または、ステップS18において書き込みデータをHDD21に書き込むと判定された場合、サブ機能部243はメイン機能部242と同様に、ステップS13〜ステップS15の処理を実行する。これにより、ライト要求に応じて本ミラーサーバ20のHDD21に書き込みデータが書き込まれる。
図4及び図5に示すようにクライアント端末10及びミラーサーバ20が動作することにより、クライアント端末10のSSD11及び当該クライアント端末10に対してメインサーバとして動作するミラーサーバ20のHDD21には完全なデータが格納されている状態(つまり、SSD11に格納されているデータが全てHDD21に格納されている状態)となる(2重化)。
一方、このクライアント端末10に対してサブサーバとして動作するミラーサーバ20のHDD21には、不完全なデータが格納されている状態、つまり、ライト位置情報のみがライト位置情報テーブル26に保持され、実際にはHDD21に書き込まれていない書き込みデータがある状態となる。これにより、通常時のミラーリングシステムにおけるデータ状態は、不完全な3重化ということになる。このサブサーバとして動作するミラーサーバ20においてライト位置情報テーブル26に保持されているライト位置情報は、クライアント端末10またはメインサーバとして動作するミラーサーバ20の動作が停止したときに利用される。
一方、このクライアント端末10に対してサブサーバとして動作するミラーサーバ20のHDD21には、不完全なデータが格納されている状態、つまり、ライト位置情報のみがライト位置情報テーブル26に保持され、実際にはHDD21に書き込まれていない書き込みデータがある状態となる。これにより、通常時のミラーリングシステムにおけるデータ状態は、不完全な3重化ということになる。このサブサーバとして動作するミラーサーバ20においてライト位置情報テーブル26に保持されているライト位置情報は、クライアント端末10またはメインサーバとして動作するミラーサーバ20の動作が停止したときに利用される。
次に、図6のフローチャートを参照して、ミラーサーバ20の停止監視部27の処理手順について説明する。
まず、停止監視部27は、クライアント端末10及び対応ミラーサーバ20に対して停止監視処理を実行する(ステップS31)。この停止監視処理の対象となるクライアント端末10は、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10である。また、停止監視処理の対象となる対応ミラーサーバは、本ミラーサーバ20がサブサーバとして動作する場合においてメインサーバとして動作する他方のミラーサーバ20である。
まず、停止監視部27は、クライアント端末10及び対応ミラーサーバ20に対して停止監視処理を実行する(ステップS31)。この停止監視処理の対象となるクライアント端末10は、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10である。また、停止監視処理の対象となる対応ミラーサーバは、本ミラーサーバ20がサブサーバとして動作する場合においてメインサーバとして動作する他方のミラーサーバ20である。
この停止監視対象となるクライアント端末10及び対応ミラーサーバ20は、当該本ミラーサーバ20のクライアント情報テーブル22を参照することにより特定できる。具体的には、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10は、クライアント情報テーブル22において、サブサーバとして動作することを示す動作情報に対応した端末IDのクライアント端末10である。
また、本ミラーサーバ20がサブサーバとして動作する場合においてメインサーバとして動作する対応ミラーサーバ20は、本ミラーサーバ20のクライアント情報テーブル22において、当該本ミラーサーバ20がサブサーバとして動作することを示す動作情報に対応した対応サーバIDの他方のミラーサーバ20である。
停止監視部27は、これらの停止監視処理の対象となるクライアント端末10及び対応ミラーサーバ20を監視することにより、当該クライアント端末10及び対応ミラーサーバ20の動作停止(電源断)を検出する。
なお、停止監視処理における具体的な監視方法としては、例えば通信路上でのエコー(TCP/IPでのICMP echo:ping等)に応答するかどうかを定間隔のタイマで見る方法が用いられてもよいし、例えば専用のプロトコルを用意しても構わない。また、故障でない運用上の停止の場合は例えばシャットダウン時に停止監視処理の対象となるクライアント端末10及び対応ミラーサーバ20から通知を受けることにより停止が検出される構成であっても構わない。
停止監視部27は、監視対象のクライアント端末10の動作停止が検出されたか否かによって、当該クライアント端末10が稼動中であるか否かを判定する(ステップS32)。なお、監視対象のクライアント端末10が複数存在する場合には、全てのクライアント端末10について判定処理を実行する。
監視対象のクライアント端末10が稼動中でないと判定した場合(ステップS32のNO)、停止監視部27は当該クライアント端末10に対してメインサーバとして動作する対応ミラーサーバ20からのコピー処理を実行する(ステップS33)。
一方、監視対象のクライアント端末10が稼動中であると判定した場合(ステップS32のYES)、停止監視部27は同様に、監視対象の対応ミラーサーバ20が稼動中であるか否かを判定する(ステップS34)。
一方、監視対象のクライアント端末10が稼動中であると判定した場合(ステップS32のYES)、停止監視部27は同様に、監視対象の対応ミラーサーバ20が稼動中であるか否かを判定する(ステップS34)。
対応ミラーサーバ20が稼動中でないと判定した場合(ステップS34のNO)、停止監視部27は本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10からのコピー処理を実行する(ステップS35)。一方、対応ミラーサーバ20が稼動中であると判定した場合(ステップS34のYES)、処理は終了する。図6に示した処理は、例えば予め定められた時間毎に定期的に実行される。
次に、図7のフローチャートを参照して、メインサーバとして動作する対応ミラーサーバ20からのコピー処理(図6に示すステップS33の処理)の処理手順について説明する。
この処理は、監視対象のクライアント端末(本ミラーサーバ20がサブサーバとして動作すべきクライアント端末)10が稼動中でないと判定された場合に実行される。
この処理は、監視対象のクライアント端末(本ミラーサーバ20がサブサーバとして動作すべきクライアント端末)10が稼動中でないと判定された場合に実行される。
まず、停止監視部27は、稼動中でないと判定されたクライアント端末10のライト位置情報テーブル26を参照する。停止監視部27は、ライト位置情報を当該ライト位置情報テーブル26から検索し、ライト位置情報(エントリ)があるか否かを判定する(ステップS41)。ライト位置情報があると判定された場合(ステップS41のYES)、停止監視部27は当該ライト位置情報を取得する。
次に、停止監視部27は、取得されたライト位置情報に該当する書き込みデータ(当該ライト位置情報によって示される書き込み位置に書き込まれるデータ)を、対応ミラーサーバ(稼動中でないと判定されたクライアント端末10に対してメインサーバとして動作する他方のミラーサーバ)20に要求する。
対応ミラーサーバ20は、本ミラーサーバ20の停止監視部27からの要求に基づいて、書き込みデータを当該対応ミラーサーバ20のHDD21から読み出し、当該本ミラーサーバ20に送信する。これにより、停止監視部27は、取得したライト位置情報によって示される書き込み位置に書き込まれる書き込みデータを対応ミラーサーバ20から取得する(ステップS42)。
停止監視部27は、取得したライト位置情報によって示されるHDD21の書き込み位置に、取得した書き込みデータを書き込む(ステップS43)。停止監視部27は、取得したライト位置情報を、稼動中でないと判定されたクライアント端末10に対応するライト位置情報テーブル26から削除する(ステップS44)。ステップS44の処理が実行されると、ステップS41に戻って処理が繰り返される。なお、ステップS41においてライト位置情報テーブル26に保持されているライト位置情報がないと判定された場合、処理は終了する。
上記した処理が実行されることにより、稼動中でないと判定されたクライアント端末10に対してサブサーバとして動作する本ミラーサーバ20のHDD21にも実データ(当該クライアント端末10のSSD11に格納されているデータ)が完全な状態で保持される。すなわち、この時点において、本ミラーサーバ(サブサーバ)20及び対応ミラーサーバ(メインサーバ)20の2つのHDD21で、稼動中でないと判定されたクライアント端末10のSSD11に格納されているデータについて完全なミラーが形成される。これにより、例えば稼動中でないと判定されたクライアント端末10が結果的に長時間停止した上に故障し、かつ、その間に本ミラーサーバ20及び対応ミラーサーバ20のうちの一方のHDD21が故障するような状況下であっても、データを回復することが可能となる。
次に、図8のフローチャートを参照して、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10からのコピー処理(図6に示すステップS35の処理)の処理手順について説明する。
この処理は、監視対象の対応ミラーサーバ(本ミラーサーバ20がサブサーバとして動作する場合のメインサーバとして動作するミラーサーバ)20が稼動中でないと判定された場合に実行される。
この処理は、監視対象の対応ミラーサーバ(本ミラーサーバ20がサブサーバとして動作する場合のメインサーバとして動作するミラーサーバ)20が稼動中でないと判定された場合に実行される。
まず、停止監視部27は、本ミラーサーバ20がサブサーバとして動作すべき全てのクライアント端末10に対応するライト位置情報テーブル26を参照する。停止監視部27は、これらライト位置情報テーブル26からライト位置情報を検索する。これにより、停止監視部27はこれらライト位置情報テーブル26にライト位置情報があるか否かを判定する(ステップS51)。ライト位置情報があると判定された場合(ステップS51のYES)、停止監視部27は当該ライト位置情報を取得する。
次に、停止監視部27は、取得したライト位置情報に該当する書き込みデータを、当該ライト位置情報を取得したライト位置情報テーブル26に対応するクライアント端末10に要求する。停止監視部27からの要求を受けたクライアント端末10は、当該要求に基づいて、書き込みデータを当該クライアント端末10のSSD11から読み出し、本ミラーサーバ20に送信する。
これにより、停止監視部27は、取得されたライト位置情報によって示される書き込み位置に書き込まれる書き込みデータをクライアント端末10から取得する(ステップS52)。停止監視部27は、取得したライト位置情報によって示されるHDD21の書き込み位置に、取得した書き込みデータを書き込む(ステップS53)。
停止監視部27は、取得したライト位置情報を、当該ライト位置情報を保持しているライト位置情報テーブル26から削除する(ステップS54)。ステップS54の処理が実行されると、ステップS51に戻って処理が繰り返される。
一方、ステップS51においてライト位置情報がないと判定された場合、停止監視部27は本ミラーサーバ20がサブサーバとして動作することを示す動作情報(及び対応ミラーサーバ20を識別するための対応サーバID)に対応付けて、当該対応ミラーサーバ20が停止中であることを示す稼動情報をクライアント情報テーブル22に登録する(ステップS55)。この処理により、クライアント情報テーブル22に保持されている稼動情報が更新される。
上記した処理が実行されることにより、対応ミラーサーバ20が稼動中でない場合には、本ミラーサーバ20のHDD21には当該本ミラーサーバ20がサブサーバとして動作すべき全てのクライアント端末10のSSD11(に格納されているデータ)に対するミラーが形成される。また、稼動情報が更新されるため、対応ミラーサーバ(メインサーバ)20が停止している間に、クライアント端末10においてライト要求が発生した場合、本ミラーサーバ(サブサーバ)20においてはHDD21に実データ(書き込みデータ)が書き込まれる。これにより、運用を継続したまま、クライアント端末10のSSD11及び当該クライアント端末10に対してサブサーバとして動作する本ミラーサーバ20のHDD21でミラー状態を継続するように動作することが可能となる。
また、このような動作により、対応ミラーサーバ(メインサーバ)20が再び稼動を開始する前にクライアント端末10が停止し、対応ミラーサーバ20の再起動時にクライアント端末10が停止したままの状態であっても、クライアント端末10の稼動を待つことなく、本ミラーサーバ(サブサーバ)20から対応ミラーサーバ20にデータをコピーすることによって通常時のデータ状態に復帰することができる。
本実施形態においては、クライアント端末10からライト要求が送信された場合、ミラーサーバ20ではクライアント端末10に対してミラーサーバ20がメインサーバ、またはサブサーバとして動作するかが判定される。
ミラーサーバ20がメインサーバと判定された場合、ライト要求に応じてミラーサーバ20のHDD21に書き込みデータが書き込まれる。一方、ミラーサーバ20がサブサーバと判定された場合、ライト要求に応じて書き込みデータを書き込むHDD21における書き込み位置を示すライト位置情報がミラーサーバ20のライト位置情報テーブル26に保持される。
ミラーサーバ20がメインサーバと判定された場合、ライト要求に応じてミラーサーバ20のHDD21に書き込みデータが書き込まれる。一方、ミラーサーバ20がサブサーバと判定された場合、ライト要求に応じて書き込みデータを書き込むHDD21における書き込み位置を示すライト位置情報がミラーサーバ20のライト位置情報テーブル26に保持される。
また、本実施形態においては、クライアント端末10の停止が検出された場合、当該クライアント端末10に対してサブサーバとして動作するミラーサーバ(本ミラーサーバ)20において、ライト位置情報によって示される書き込み位置に書き込まれる書き込みデータが、対応ミラーサーバ(当該クライアント端末10に対してメインサーバとして動作するミラーサーバ)20から取得され、当該本ミラーサーバ20のHDD21に書き込まれる。
また、本実施形態においては、クライアント端末10に対してメインサーバとして動作するミラーサーバ(対応ミラーサーバ)20の停止が検出された場合、当該クライアント端末10に対してサブサーバとして動作するミラーサーバ(本ミラーサーバ)20において、ライト位置情報によって示される書き込み位置に書き込まれる書き込みデータが、当該クライアント端末(本ミラーサーバがサブサーバとして動作すべきクライアント端末)10から取得され、当該本ミラーサーバ20のHDD21に書き込まれる。
つまり、本実施形態においては、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10または当該クライアント端末10に対してメインサーバとして動作する対応ミラーサーバ20が停止したことが検出された場合、当該本ミラーサーバ20において全ての実際のデータをHDD21に書き込むように動作する。すなわち、本ミラーサーバ20においては、クライアント端末10及び対応ミラーサーバ20のうち停止が検出されていない側から書き込みデータが読み出され、当該本ミラーサーバ20のHDD21に書き込みデータが書き込まれる。
これにより、本実施形態においては、本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10及び当該クライアント端末10に対してメインサーバとして動作する対応ミラーサーバ20のうちのいずれかが停止した場合であっても、停止していない側(当該クライアント端末10または当該対応ミラーサーバ20)と当該本ミラーサーバ20とでミラーが形成される。
したがって、本実施形態においては、例えばクライアント端末10が長時間停止し、その間に2つのミラーサーバ20のいずれかが故障した場合であっても、故障していないミラーサーバ20から直ぐにデータを回復することが可能となる。すなわち、クライアント端末10が再び稼動するまで待つ必要がなく、しかも長時間停止またはハードウェア作業により当該クライアント端末10のSSD11が故障しているような状況であっても対応することができる。これにより、本実施形態においては、ミラーリングによる信頼性を向上させることが可能となる。
また、本実施形態においては、クライアント端末10毎にメインサーバとして動作するミラーサーバ20を分散している。また、本実施形態においては、ミラーサーバ20におけるサブサーバとしての動作は当該ミラーサーバ20におけるメインサーバとしての動作をほとんど妨げることないように制御されている。したがって、本実施形態においては、クライアント端末10におけるミラーサーバ20からの応答性は例えば一方のミラーサーバ20が全てのクライアント端末10に対してメインサーバとして動作するような場合と比較して格段に改善される。
なお、本実施形態においては、図5に示すステップS8において本ミラーサーバ20の処理状況に基づいて書き込みデータを書き込むか否かが判定されるものとして説明したが、この判定処理は行われず、上記したように本ミラーサーバ20がサブサーバとして動作すべきクライアント端末10または当該クライアント端末10に対してメインサーバとして動作するミラーサーバ(対応サーバ)20の停止が検出された場合に限り、本ミラーサーバ20のHDD21に書き込みデータが書き込まれる構成であっても構わない。
また、本実施形態においては、ミラーサーバ20が2つである場合について説明したが、ミラーサーバ20を3つ以上用意し、各クライアント端末10に対して3つ以上のミラーサーバ20の中からメインサーバ及びサブサーバが1つずつ割り当てられる構成であっても構わない。この場合においては、あるクライアント端末10に対してはメインサーバとしてもサブサーバとしても動作しないミラーサーバ20のクライアント情報テーブル22には、当該クライアント端末10を識別するための端末IDに対応付けて例えばメインサーバとしてもサブサーバとしても動作しないことを示す動作情報が保持される。
また、本実施形態においては、便宜的にミラーサーバ1つにつき物理HDD21を1台備えるものとして説明したが、1つのミラーサーバ20が複数のHDDを1つのボリュームとして扱うことも可能である。
また、各ミラーサーバ20は独立した装置である必要はなく、例えば1つのサーバ装置の中に複数のミラーサーバ20の機能が存在しても構わない。なお、物理的なHDD21は、各ミラーサーバ20において共有しない方が性能面からは望ましい。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
10…クライアント端末、11…SSD(小容量記憶装置)、12…RAIDコントローラ、20…ミラーサーバ、21…HDD(大容量記憶装置)、22…クライアント情報テーブル、23…通信I/F、24…I/O処理部、25…物理HDD制御部、26…ライト位置情報テーブル、27…停止監視部、241…メイン/サブ振り分け部、242…メイン機能部、243…サブ機能部。
Claims (5)
- 複数のクライアント端末と、当該複数のクライアント端末と通信路を介して接続される少なくとも2つのサーバとを具備し、前記複数のクライアント端末の各々に対して前記2つのサーバのうちの一方のサーバがメインサーバとして動作し、他方のサーバがサブサーバとして動作するミラーリングシステムにおいて、
前記複数のクライアント端末の各々は、
小容量記憶装置と、
前記小容量記憶装置にデータを書き込むためのライト要求を取得するライト要求取得手段と、
前記取得したライト要求に応じて、前記小容量記憶装置に前記データを書き込む第1の書き込み手段と、
当該クライアント端末を識別するための端末識別情報を含む前記取得したライト要求を前記2つのサーバに送信する送信手段と
を含み、
前記2つのサーバの各々は、
前記複数のクライアント端末の各々が有する小容量記憶装置をミラーリングするために用いられる大容量記憶装置と、
前記端末識別情報によって識別されるクライアント端末に対して当該サーバがメインサーバまたはサブサーバとして動作することを示す動作情報を保持するクライアント情報テーブルと、
前記端末識別情報によって識別されるクライアント端末に対して当該サーバがメインサーバまたはサブサーバとして動作するかを、前記クライアント情報テーブルに保持されている動作情報に基づいて判定する動作情報判定手段と、
当該サーバがメインサーバとして動作すると判定された場合、前記ライト要求に応じて前記大容量記憶装置に前記データを書き込む第2の書き込み手段と、
当該サーバがサブサーバとして動作すると判定された場合、前記ライト要求に応じて前記データが書き込まれる前記大容量記憶装置の書き込み位置を示すライト位置情報を保持するライト位置情報テーブルと
を含む
ことを特徴とするミラーリングシステム。 - 前記2つのサーバの各々は、
当該サーバがサブサーバとして動作すると判定された場合、当該サーバの処理状況に基づいて前記大容量記憶装置に前記データを書き込むかを判定する書き込み判定手段と、
前記データを書き込まないと判定した場合、前記ライト位置情報テーブルに前記ライト位置情報を登録する登録手段と、
前記データを書き込むと判定した場合、前記ライト要求に応じて前記大容量記憶装置に前記データを書き込む第3の書き込み手段と
を更に含む
ことを特徴とする請求項1記載のミラーリングシステム。 - 前記クライアント情報テーブルは、更に前記動作情報が当該端末識別情報によって識別されるクライアント端末に対してサブサーバとして動作することを示す場合において、当該クライアント端末に対してメインサーバとして動作する他方のサーバを識別するための対応サーバ識別情報を、当該端末識別情報に対応付けて保持し、
前記2つのサーバの各々は、
前記サブサーバとして動作することを示す動作情報に対応した端末識別情報によって識別されるクラインアント端末を監視することにより、当該クライアント端末が停止したことを検出する検出手段と、
前記クライアント端末が停止したことを検出した場合、前記ライト位置情報によって示される書き込み位置に書き込まれるデータを、前記対応サーバ識別情報によって識別される他方のサーバから取得するデータ取得手段と、
前記データ取得手段によって取得されたデータを、前記ライト位置情報テーブルに保持されているライト位置情報に示される前記大容量記憶装置の書き込み位置に書き込む第3の書き込み手段と
を更に含むことを特徴とする請求項1記載のミラーリングシステム。 - 前記クライアント情報テーブルは、更に前記動作情報が当該端末識別情報によって識別されるクライアント端末に対してサブサーバとして動作することを示す場合において、当該クライアント端末に対してメインサーバとして動作する他方のサーバを識別するための対応サーバ識別情報を、当該端末識別情報に対応付けて保持し、
前記2つのサーバの各々は、
前記対応サーバ識別情報によって識別される他方のサーバを監視することにより、当該他方のサーバが停止したことを検出する検出手段と、
前記他方のサーバの動作が停止したことを検出した場合、前記ライト位置情報によって示される書き込み位置に書き込まれるデータを、前記サブサーバとして動作することを示す動作情報に対応した前記端末識別情報によって識別されるクライアント端末から取得するデータ取得手段と、
前記データ取得手段によって取得したデータを、前記ライト位置情報によって示される前記大容量記憶装置の書き込み位置に書き込む第3の書き込み手段と
を更に含むことを特徴とする請求項1記載のミラーリングシステム。 - 前記クライアント情報テーブルは、更に前記動作情報が当該端末識別情報によって識別されるクライアント端末に対してサブサーバとして動作することを示す場合において、当該クライアント端末に対してメインサーバとして動作する他方のサーバが稼動中または停止中であることを示す稼動情報を、当該端末識別情報に対応付けて保持し、
前記2つのサーバの各々は、
当該サーバがサブサーバとして動作すると判定された場合、前記端末識別情報に対応した前記稼動情報に基づいて、前記他方のサーバが稼動中であるかまたは停止中であるかを判定する稼動情報判定手段と、
前記他方のサーバが停止中であると判定された場合、前記ライト要求に応じて前記大容量記憶装置に前記データを書き込む第3の書き込み手段と、
前記他方のサーバが稼動中であると判定された場合、前記ライト位置情報テーブルに前記ライト位置情報を登録する登録手段と
を更に含むことを特徴とする請求項1記載のミラーリングシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009043911A JP2010198441A (ja) | 2009-02-26 | 2009-02-26 | ミラーリングシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009043911A JP2010198441A (ja) | 2009-02-26 | 2009-02-26 | ミラーリングシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010198441A true JP2010198441A (ja) | 2010-09-09 |
Family
ID=42823084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009043911A Pending JP2010198441A (ja) | 2009-02-26 | 2009-02-26 | ミラーリングシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010198441A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018073005A (ja) * | 2016-10-26 | 2018-05-10 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000082006A (ja) * | 1998-09-07 | 2000-03-21 | Toshiba Corp | 情報バックアップシステム |
JP2007265265A (ja) * | 2006-03-29 | 2007-10-11 | Hitachi Ltd | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
JP2008097487A (ja) * | 2006-10-16 | 2008-04-24 | I-O Data Device Inc | バックアップ装置及びバックアップ方法 |
JP2008293218A (ja) * | 2007-05-23 | 2008-12-04 | Nec Corp | ファイル管理システム、ファイル管理方法、ファイル管理プログラム |
-
2009
- 2009-02-26 JP JP2009043911A patent/JP2010198441A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000082006A (ja) * | 1998-09-07 | 2000-03-21 | Toshiba Corp | 情報バックアップシステム |
JP2007265265A (ja) * | 2006-03-29 | 2007-10-11 | Hitachi Ltd | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
JP2008097487A (ja) * | 2006-10-16 | 2008-04-24 | I-O Data Device Inc | バックアップ装置及びバックアップ方法 |
JP2008293218A (ja) * | 2007-05-23 | 2008-12-04 | Nec Corp | ファイル管理システム、ファイル管理方法、ファイル管理プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018073005A (ja) * | 2016-10-26 | 2018-05-10 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7870338B2 (en) | Flushing cached data upon power interruption | |
US7840835B2 (en) | Method of achieving high reliability of network boot computer system | |
US8381029B2 (en) | Processing method, storage system, information processing apparatus, and computer-readable storage medium storing program | |
JP4572250B2 (ja) | 計算機切り替え方法、計算機切り替えプログラム及び計算機システム | |
US8667337B2 (en) | Storage apparatus and method of controlling the same | |
US11868625B2 (en) | Alert tracking in storage | |
US8095820B2 (en) | Storage system and control methods for the same | |
JP2007025933A (ja) | ストレージシステム及びそのファームウェア自動更新方法 | |
CN1508714A (zh) | 确定高可用性集群之活跃度的方法和系统 | |
JP4535371B2 (ja) | ディスクアレイ制御プログラム、方法及び装置 | |
JP6461347B2 (ja) | ストレージシステム、及び、記憶制御方法 | |
JP2011076344A (ja) | 情報処理装置,情報処理装置の制御方法および制御プログラム | |
JP2010198441A (ja) | ミラーリングシステム | |
WO2019043815A1 (ja) | ストレージシステム | |
JP2006031335A (ja) | 情報処理システム及び方法 | |
US20120215966A1 (en) | Disk array unit and control method thereof | |
US7587466B2 (en) | Method and computer system for information notification | |
US10656867B2 (en) | Computer system, data management method, and data management program | |
JP2017151511A (ja) | 情報処理装置、動作ログ取得方法および動作ログ取得プログラム | |
US7568121B2 (en) | Recovery from failure in data storage systems | |
JP2010287019A (ja) | Raid、及びこれを備えるコンピュータシステム | |
WO2014147773A1 (ja) | ハードウェア装置およびハードウェア装置の制御方法 | |
JP2008146365A (ja) | ストレージシステムの障害回避方法 | |
JP2005301560A (ja) | クラスタファイルサーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110315 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110705 |