JP5924117B2 - コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム - Google Patents

コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム Download PDF

Info

Publication number
JP5924117B2
JP5924117B2 JP2012113466A JP2012113466A JP5924117B2 JP 5924117 B2 JP5924117 B2 JP 5924117B2 JP 2012113466 A JP2012113466 A JP 2012113466A JP 2012113466 A JP2012113466 A JP 2012113466A JP 5924117 B2 JP5924117 B2 JP 5924117B2
Authority
JP
Japan
Prior art keywords
data
server
database
computer
received
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
JP2012113466A
Other languages
English (en)
Other versions
JP2013239117A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012113466A priority Critical patent/JP5924117B2/ja
Priority to US13/850,379 priority patent/US9430489B2/en
Publication of JP2013239117A publication Critical patent/JP2013239117A/ja
Application granted granted Critical
Publication of JP5924117B2 publication Critical patent/JP5924117B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベースを管理するコンピュータ、データ格納方法、データ格納プログラム及び情報処理システムに関する。
近年、高可用性を要求される事業分野ではインフラとして分散ストレージシステムが多く採用されている。例えば、クライアント・サーバ型の分散ストレージシステムでは、クライアントは、複数のサーバに対して、データの書き込み、または、サーバが保持するデータを読み込む。一方、サーバ側では、複数のサーバが連携し、故障した場合に備えてデータを冗長化して保持する。例えば、1つのサーバが保持するデータと同じ内容のデータを、他のサーバが保持する。
このようなシステムにおいて、サーバが故障すると、故障したサーバがデータベースに保持するデータの冗長性が低下してしまう。そこで、サーバが故障した場合、故障したサーバが管理していたデータベース内のデータの冗長性を回復する、リカバリ処理が行われる。リカバリ処理では、データの冗長性の低下を抑制するために、当該データを保持しているサーバ(転送元サーバ)は、新たに選択されたサーバ(転送先サーバ)に、当該データのコピーを転送する。これにより、故障したサーバが保持するデータの冗長性を回復することができる。リカバリ処理に関する技術としては、例えばストレージ装置の故障発生時に生じるデータアクセスの停止期間を短縮できるようにする技術等が考えられている。
特開2010−97385号公報
しかし、データベースのデータ構造上の原因で、リカバリ処理に時間がかかる場合がある。例えば、データベースのデータ構造は、データの書き込みを効率的に行えるデータ配置を有する書き込み高速型と、データの読み出しを効率的に行えるデータ配置を有する読み出し高速型とに分類される。このうち、読み出し高速型でデータベースを管理するサーバは、書き込み高速型のデータベースへのデータ書き込みに比べて、データの書き込みに時間を要する。そのため、リカバリ時間も長期化する。リカバリ中のサーバは、リカバリが完了しておらずデータベースに保持するスロットは冗長性が低下している。リカバリ中のサーバに新たな故障が発生してしまうと、データロスが発生してしまう。つまり読み出し高速型のデータベースを有するシステムでは、リカバリに時間を要し、データロスが生じる可能性が高くなり、結果的に信頼性の低下を招いてしまうという問題点があった。
1つの側面では、本発明は、データの冗長性を迅速に回復することが可能なコンピュータ、データ格納方法、データ格納プログラム及び情報処理システムを提供することを目的とする。
1態様によれば、故障した第1の装置が保持していたデータと同一内容のデータを第2の装置から受信すると、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造の第1のデータベースに、該受信したデータを格納する格納手段と、第1のデータベースに格納されたデータを、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造の第2のデータベースにコピーするコピー手段と、を有するコンピュータが提供される。
データの冗長性を迅速に回復することが可能となる。
第1の実施の形態に係るコンピュータを含む情報処理システムの一例を示す図である。 第1の実施の形態に係るデータの書き込み機構の一例を示す模式図である。 第1の実施の形態における冗長データの格納状況の一例を示す図である。 第2の実施の形態に係るサーバシステムの一例を示す図である。 第2の実施の形態に係るDBサーバのハードウェアの一例を示すブロック図である。 第2の実施の形態に係るDBサーバの機能の一例を示すブロック図である。 第2の実施の形態に係るサーバ状態管理テーブルの一例を示す図である。 第2の実施の形態に係るスロット格納管理テーブルの一例を示す図である。 第2の実施の形態に係るリカバリ中オブジェクト一覧の一例を示す図である。 第2の実施の形態に係るサーバシステムのデータのやりとりの一例を示す図である。 第2の実施の形態に係るDBサーバのスロットのコピー実行通知の処理手順の一例を示すフローチャートである。 第2の実施の形態に係るDBサーバのリカバリ処理手順の一例を示すフローチャートである。 第2の実施の形態に係るDBサーバの書き込み処理手順の一例を示すフローチャートである。 第2の実施の形態に係るDBサーバの読み出し処理手順の一例を示すフローチャートである。 第3の実施の形態に係るサーバシステムの一例を示す図である。 第3の実施の形態においてDBサーバが正常動作時のDBサーバへのHDD割り当て状況の一例を示す図である。 第3の実施の形態において1台のDBサーバが故障したときのサーバシステムの運用状況の一例を示す図である。 第3の実施の形態においてHDD追加割り当て後のサーバシステムの運用状況の一例を示す図である。
以下、図面を参照して実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について図1を用いて説明する。
図1は、第1の実施の形態に係るコンピュータを含む情報処理システムの一例を示す図である。
情報処理システム1は、図1に示すように、複数のコンピュータ2〜5が相互に送受信可能にネットワーク6を介して接続されている。
コンピュータ2は、データベース(DB)2a及びDB2bを有する。DB2a,2bは、記憶手段の一例である。DB2aは、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造を有している。DB2bは、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造を有している。シーケンシャルアクセスは、ランダムアクセスよりも効率的である。そのためDB2aは、DB2bより効率よくデータの書き込みが可能である。またコンピュータ2は、格納手段2c、コピー手段2d、及びデータ更新手段2eを有する。
格納手段2cは、故障したコンピュータ3が保持していたデータと同一内容のデータをコンピュータ4から受信すると、DB2bより効率よくデータの書き込みが可能なDB2aに、該受信したデータを格納する。故障したコンピュータ3が保持していたデータと同一内容のデータとは、例えば冗長性が失われたデータのコピーデータである。
DB2bは、例えば読み出し高速型のデータ構造を有している。またDB2aは、例えば書き込み高速型のデータ構造を有している。読み出し高速型のデータ構造のDBとは、例えば、オブジェクト更新時に更新内容がin-place(決まった場所)に上書きされる構造を持つDBである。書き込み高速型のデータ構造のDBとは、例えば、オブジェクト更新時に、更新内容がDB末尾に追記される構造(ログ構造)を持つDBである。
コピー手段2dは、DB2aに格納されたデータを、DB2bにコピーする。例えばコピー手段2dは、コンピュータ3が保持していたデータのうち、コンピュータ3に代わってコンピュータ2が管理するデータが複数ある場合、該当するすべてのデータがDB2aに格納された後に、コピーを開始する。
データ更新手段2eは、DB2aに格納され、かつDB2bへのコピーが済んでいないデータの更新要求を受信すると、更新要求に含まれている更新後のデータをDB2bに書き込む。またデータ更新手段2eは、その更新要求で指定されたDB2a内のデータを削除する。
なお、コンピュータ2の格納手段2c及びコピー手段2dは、コンピュータ2が備える図示しないCPU(Central Processing Unit:中央演算処理装置)によってデータ格納プログラムが実行されることにより、その処理機能が実現される。
コンピュータ3,4は、上記コンピュータ2と同様の構成とすることができる。図1の例では、コンピュータ3は、データD1を保持するDB3aを有している。またコンピュータ4は、データD2を保持するDB4aを有している。データD2は、データD1と同一内容のデータである。すなわち、図1に示したシステムで管理されているデータは、データD1,D2のように冗長化されている。コンピュータ5は、コンピュータ2〜4が有するDBに格納されているデータに、ネットワーク6を介してアクセスする。
次に、コンピュータ2が備えるDB2a,2bの書き込み機構及び読み出し機構について図2を参照して説明する。なお、以下の説明では、コンピュータ5は、複数のコンピュータ2〜4それぞれが管理するデータベースに対して、オブジェクトという単位でのアクセスを行うものとする。オブジェクトは、データの管理単位の一例である。つまりコンピュータ5は、オブジェクトIDによって、書き込み・読み込みを行うオブジェクトを指定する。オブジェクトIDは、オブジェクト作成時にコンピュータ5によって決定される。
図2は、第1の実施の形態に係るデータの書き込み機構の一例を示す模式図である。図2の上段に、DB2a,2b内のオブジェクトのレイアウトを示している。図2の下段の左に、読み出し高速型のデータ構造でデータが格納されるDB2bへの書き込み機構を示している。図2の下段の右に、書き込み高速型のデータ構造でデータが格納されるDB2aへの書き込み機構を示している。
図2の例では、DB2a,2bそれぞれは、例えばディスク上に、オブジェクトA,Bを、ブロック状に配置して記憶している。オブジェクトAは、複数のブロックA−1,A−2,A−3を有している。各ブロックA−1,A−2,A−3には、データが含まれている。同様にオブジェクトBは、複数のブロックB−1,B−2,B−3を有している。各ブロックB−1,B−2,B−3には、データが含まれている。
ここで、オブジェクトA内のブロックA−1,A−3のデータが更新された場合を想定する。
読み出し高速型のDB2bに対して、更新のためにオブジェクトAを書き込む場合には、コンピュータ2は、ランダムアクセスにより、インデックスの位置情報等に基づいて特定した書き込み箇所に、直接アクセスして書き込む。一方、DB2bからオブジェクトAを読み出す場合には、シーケンシャルアクセスにより、オブジェクトAのブロックA−1,A−2,A−3を先頭から順番に読み出す。このようにDB2bでは、オブジェクトAの書き込みは、ブロックごとのランダムアクセスとなるが、オブジェクトAの読み出しは、連続したブロックへのシーケンシャルなアクセスとなる。DBへのアクセスは、ランダムアクセスよりシーケンシャルアクセスの方が効率よく行うことができる。すなわち、DB2bは、読み出し機構の方が書き込み機構よりも効率的である。
なお読み出し高速型のDB2bでは、データ(オブジェクト)の更新ではなく、新たなデータ(オブジェクト)の追加の場合、読み出しをシーケンシャルに行えるように、データ(オブジェクト)の再配置が行われる。例えば、データ(オブジェクト)の識別番号順となるように、並べ替えが行われる。そのため新たなデータ(オブジェクト)の追加であっても、読み出し高速型のDB2bへの書き込みは、シーケンシャルな書き込みとはならない。
また書き込み高速型のDB2aに対して、更新のためにオブジェクトAを書き込む場合には、コンピュータ2は、ディスクの末尾の空き領域に書き込む。一方、DB2aからオブジェクトAを読み出す場合には、コンピュータ2は、ランダムアクセスにより、位置情報等に基づいて特定した書き込み箇所に、直接アクセスして、オブジェクトAのブロックA−1,A−2,A−3を読み出す。このようにDB2aでは、オブジェクトAの書き込みは、連続したブロックへのシーケンシャルアクセスとなるが、オブジェクトAの読み出しは、ブロックごとのランダムアクセスとなる。すなわち、DB2aは、書き込み機構の方が読み出し機構よりも効率的である。また、DB2aはDB2bに比較して書き込みが効率的である。
このような構成を備えるコンピュータ2を含む情報処理システム1におけるデータ格納方法について説明する。
コンピュータ3は、DB3aにデータD1を保持していると共に、コンピュータ4のDB4aにも、データD1と同一の内容のデータD2を予め保持させて、データを冗長化させている。
ここで、コンピュータ3が故障すると、コンピュータ2,4が故障の発生を検知する。例えば、各コンピュータ2〜4は、定期的に他のコンピュータの死活監視を行う。死活監視とは、システム内の他のコンピュータが動作しているかどうかを、定期的に調べる処理である。
コンピュータ4は、故障したコンピュータ3のデータD1と同一内容のデータD2を保持していることから、当該データD2と同一内容のデータをコンピュータ2に送信する。送信されるデータは、データD1と同一内容でもある。
コンピュータ2の格納手段2cは、コンピュータ4からデータD1と同一内容のデータを受信すると、効率よく書き込みが可能なDB2aに、受信したデータを格納する。コピー手段2dは、格納手段2cによりDB2aに格納されたデータを、DB2bにコピーする。
図3は、第1の実施の形態における冗長データの格納状況の一例を示す図である。なお、図3の例では、オブジェクト単位でデータの書き込みを行う場合の例である。コンピュータ4からコンピュータ2に対して、故障したコンピュータ3が有しているオブジェクトと同じ内容のオブジェクト7a,7b,7c・・・が転送される。転送されたオブジェクト7a,7b,7c・・・は、格納手段2cによってDB2aに書き込まれる。DB2aは、書き込み高速型のデータ構造のDBである。そのため、DB2aへのオブジェクト7a,7b,7c・・・の書き込みは、例えばシーケンシャルアクセスによって効率よく実行することができる。コンピュータ4からコンピュータ2へのオブジェクト7a,7b,7c・・・の転送が完了した時点で、オブジェクト7a,7b,7c・・・の冗長性は回復する。
オブジェクト7a,7b,7c・・・のDB2aへの書き込みが完了すると、コピー手段2dにより、オブジェクト7a,7b,7c・・・がDB2bにコピーされる。DB2bは読み出し高速型のデータ構造であり、例えばランダムアクセスによる書き込みが行われる。そしてオブジェクト7a,7b,7c・・・のコピーが完了すると、例えばDB2a内のオブジェクト7a,7b,7c・・・はすべて消去される。これにより、以後、DB2aをリカバリ以外の用途に使用可能となり、資源の有効活用が図れる。
またリカバリ処理中であっても、コンピュータ2は、コンピュータ5からのアクセスを受け付けることができる。例えばオブジェクト7a,7b,7c・・・がDB2aに格納された後、DB2bへのコピー前に、オブジェクト7a,7b,7c・・・のいずれかへの読み出しアクセスがコンピュータ5から行われた場合、DB2aからオブジェクトが読み出される。またオブジェクト7a,7b,7c・・・がDB2aに格納された後、DB2bへのコピー前に、オブジェクト7a,7b,7c・・・のいずれかへの更新の書き込みアクセスがコンピュータ5から行われた場合、DB2bに更新後のオブジェクトが書き込まれる。この場合、DB2aに格納されている更新前のオブジェクトは削除され、コピーの対象から除外される。これにより、コピー処理の効率化が図れる。
なおオブジェクト7a,7b,7c・・・をDB2bにコピーした後に、オブジェクト7a,7b,7c・・・のいずれかに書き込みまたは読み出しのアクセスが、コンピュータ5から行われた場合、DB2bに対するアクセスが行われる。
このように情報処理システム1のコンピュータ2は、故障したコンピュータ3が保持していたデータD1と同一内容のデータD2をコンピュータ4から受信すると、DB2bより効率よく書き込みが可能なDB2aに、受信したデータを格納するようにした。その後、コンピュータ2は、DB2aに格納されたデータをDB2bにコピーするようにした。
これにより、故障したコンピュータ3が保持していたデータD1と同一内容のデータD2を、コンピュータ2のDB2aへ迅速に格納することができ、データの冗長性を迅速に回復できるようになる。これにより、データロスの発生が抑制され、信頼性の低下が抑制される。
[第2の実施の形態]
次に第2の実施の形態について説明する。第2の実施の形態は、第1の実施の形態のより規模の大きなクライアント・サーバ型の分散ストレージシステムにおいて、サーバ故障時の信頼性の低下を抑制したものである。
なお第2の実施の形態では、データベースを管理する各サーバは、データをオブジェクト単位で管理する。そして複数のサーバは、故障した場合に備えてオブジェクトをグループ化する。以下、オブジェクトのグループを、スロットと呼ぶ。そして複数のサーバ2〜4が連携し、スロットごとに、ミラーリング等の技術でデータの冗長化を行う。
このようなシステムにおいて、1台のサーバが故障すると、故障したサーバのDBに保持されたスロット群の冗長性が低下してしまう。スロット群の冗長性の低下を抑制するために、当該スロット群を保持しているサーバ群(転送元サーバ)から新たに選択されたサーバ群(転送先サーバ)に、当該スロット群に関するデータを転送させるリカバリが実行される。
まず、第2の実施の形態に係るサーバシステムについて図4を用いて説明する。
図4は、第2の実施の形態に係るサーバシステムの一例を示す図である。サーバシステム10は、図4に示すように、複数のDBサーバ100,200,300,400,500,・・・や、その他のサーバ600が相互に送受信可能にネットワーク20を介して接続されている。
DBサーバ100,200,300,400,500,・・・は、DBを有し、そのDB内のデータを管理する。DBサーバ100,200,300,400,500,・・・は、それぞれ運用データベース(DB)111,211,311,411,511を有している。またDBサーバ100,200,300,400,500,・・・は、それぞれリカバリDB112,212,312,412,512を有している。運用DB111,211,311,411,511は、読み出し高速型のデータ構造でデータが格納される。リカバリDB112,212,312,412,512は、書き込み高速型のデータ構造でデータが格納される。なお、運用DB111,211,311,411,511及びリカバリDB112,212,312,412,512の詳細については後述する。
このようなDBサーバ100,200,300,400,500,・・・は、自身が正常に稼働していることを知らせるための信号(例えばハートビート)を、ネットワーク20を介して定期的に通知し合うことで、互いの稼働状態の監視を行っている。なおDBサーバ100,200,300,400,500,・・・には、それぞれ識別子が割り振られており、サーバシステム10内では識別子によって一意に識別される。図4の例では、DBサーバ100の識別子は「A」、DBサーバ200の識別子は「B」、DBサーバ300の識別子は「C」、DBサーバ400の識別子は「D」、DBサーバ500の識別子は「E」である。
サーバ600は、ネットワーク20を介して、DBサーバ100,200,300,400,500,・・・が管理するDBにアクセスする。例えばサーバ600は、Webサーバである。サーバ600は、Webサーバとして機能する場合、図示しないネットワークを介して、ユーザが使用する端末装置に接続される。そしてサーバ600は、端末装置からの要求に応じて、DBサーバ100,200,300,400,500,・・・が管理するDBにアクセスする。なおDBサーバ100,200,300,400,500,・・・との関係においては、サーバ600がクライアントとなる。
なお、図4では、DBサーバとして機能する5台のDBサーバ100,200,300,400,500,・・・を示しているが、DBサーバとして機能するサーバは、6台以上あってもよい。
次に、このようなサーバシステム10を構成するDBサーバ100のハードウェアの一例について図5を用いて説明する。
図5は、第2の実施の形態に係るDBサーバのハードウェアの一例を示すブロック図である。
DBサーバ100は、CPU100aによって装置全体が制御されている。CPU100aには、バス100jを介してRAM100bと複数の周辺機器が接続されている。なおDBサーバ100が有するCPU数は1つに限定されず、複数であってもよい。DBサーバ100が複数のCPUを有する場合、複数のCPUが連係動作し、装置全体を制御する。
RAM100bは、DBサーバ100の主記憶装置として使用される。RAM100bには、CPU100aに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM100bには、CPU100aによる処理に必要な各種データが格納される。
バス100jに接続されている周辺機器としては、HDD100c、グラフィック処理装置100d、入力インタフェース100e、光学ドライブ装置100f、機器接続インタフェース100g、ネットワークインタフェース100h、及びホストバスアダプタ100iがある。
HDD100cは、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD100cは、DBサーバ100の補助記憶装置として使用される。HDD100cには、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
グラフィック処理装置100dには、モニタ21が接続されている。グラフィック処理装置100dは、CPU100aからの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等がある。
入力インタフェース100eには、キーボード22とマウス23とが接続されている。入力インタフェース100eは、キーボード22やマウス23から送られてくる信号をCPU100aに送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
光学ドライブ装置100fは、レーザ光等を利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
機器接続インタフェース100gは、DBサーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース100gには、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース100gとの通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース100hは、ネットワーク20に接続されている。ネットワークインタフェース100hは、ネットワーク20を介して、他のサーバまたは通信機器との間でデータの送受信を行う。
ホストバスアダプタ100iは、運用DB111またはリカバリDB112が構築されたHDDに対して、データアクセスを行うインタフェースである。ホストバスアダプタ100iは、CPU100aからの指示に従って、運用DB111またはリカバリDB112へのオブジェクト単位での書き込みや読み出しを行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお図5にはDBサーバ100のハードウェア構成を示したが、他のDBサーバ200,300,400,500,・・・,サーバ600も同様のハードウェアで実現できる。また第1の実施の形態に示したコンピュータ2〜5も、図5に示したDBサーバ100と同様のハードウェアにより実現することができる。
DBサーバ100は、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。DBサーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、DBサーバ100に実行させるプログラムをHDD100cに格納しておくことができる。CPU100aは、HDD100c内のプログラムの少なくとも一部をRAM100bにロードし、プログラムを実行する。またDBサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばCPU100aからの制御により、HDD100cにインストールされた後、実行可能となる。またCPU100aが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスク24、メモリ装置25、メモリカード27等の可搬型記録媒体が販売される。また、プログラムをDBサーバ100の記憶装置に格納しておき、ネットワーク20を介して、サーバからDBサーバ100にそのプログラムを転送することもできる。DBサーバ100は、ネットワーク20を介してプログラムを取得する場合、例えば取得したプログラムをHDD100cに格納する。そしてDBサーバ100のCPU100aがHDD100c内のプログラムを実行する。またDBサーバ100は、他のサーバからプログラムの一部が転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
次に、このようなハードウェアを有するDBサーバ100が備える機能を表す機能ブロック図について説明する。
図6は、第2の実施の形態に係るDBサーバの機能の一例を示すブロック図である。
DBサーバ100は、運用DB111及びリカバリDB112を備える。
運用DB111は、サーバ600が使用するデータを格納するデータベースである。運用DB111は、オブジェクト単位のデータを格納する。また、運用DB111は、シーケンシャルに読み出しを行うことができるデータ配列で、データが格納されている。
リカバリDB112は、リカバリ処理実行時に使用されるデータベースである。リカバリDB112は、運用DB111と同様にオブジェクト単位のデータを格納する。また、リカバリDB112は、シーケンシャルに書き込みを行うことができるデータ配列で、データが格納されている。
また、DBサーバ100は、サーバ状態管理テーブル113と、スロット格納管理テーブル114、リカバリ中オブジェクト一覧115を備える。なお、サーバ状態管理テーブル113と、スロット格納管理テーブル114、リカバリ中オブジェクト一覧115は、例えばRAM100bまたはHDD100cに格納されている。
以下、各テーブルについて図7〜図9を用いて説明する。
図7は、第2の実施の形態に係るサーバ状態管理テーブルの一例を示す図である。サーバ状態管理テーブル113は、DBサーバ100以外のDBサーバ200,300,400,500,・・・の稼働状態を表すサーバ状態情報を記録するものである。例えば、サーバ状態管理テーブル113には、DBサーバ200,300,400,500,・・・の識別子に対応付けて、サーバの稼働状態が設定されている。図7の例では、識別子「B,C,E,F」の各サーバに対しては稼働中を表す「1」が、識別子「D」のサーバに対しては故障中を表す「0」がそれぞれ記録されている。
このようなサーバ状態管理テーブル113は、DBサーバ100によって、他のサーバから正常に稼働していることを通知する信号を受信するごとに、更新される。またサーバ状態管理テーブル113は、DBサーバ100によって、正常に稼働していることを通知する信号が途絶えたサーバを検出した場合には、そのサーバの稼働状態が、故障中を表す「0」に更新される。
図8は、第2の実施の形態に係るスロット格納管理テーブルの一例を示す図である。スロット格納管理テーブル114は、サーバシステム10内における、各スロットの格納先を表すスロット格納情報を保持する。スロットは、冗長化の単位であり、1つのスロットには複数のオブジェクトが含まれる。例えば、スロットの数は固定されている。図8の例では、スロットの数は64である。オブジェクトは所定のルールにより、いずれかのスロットに分類される。所定のルールとは、たとえば「オブジェクトIDを64で割った余りの値を、そのオブジェクトが属するスロットの番号とする」等である。
図8の例では、スロット3は、プライマリとしてサーバBに、バックアップとしてサーバFにそれぞれ格納されている。また、スロット62は、プライマリとしてサーバFに、バックアップとしてサーバCにそれぞれ格納されている。
DBサーバ100以外のDBサーバ200,300,400,500,・・・も、図8と同様のスロット格納管理テーブルを有し、スロット格納管理テーブルの内容は、全サーバで共通となる。例えば各DBサーバ100,200,300,400,500,・・・は、定期的に(例えば、ハートビートのタイミングで)同期をとり、スロット格納管理テーブルの内容の共通性を維持する。
図9は、第2の実施の形態に係るリカバリ中オブジェクト一覧の一例を示す図である。リカバリ中オブジェクト一覧115は、リカバリ処理により、DBサーバ100のリカバリDB112に対して格納されたオブジェクトの識別情報を保持する。例えば、図9に示す場合では、DBサーバ100では、リカバリDB112に対してオブジェクト3,・・・,オブジェクト24の書き込みを行うことを表している。また、リカバリDB112から運用DB111に、リカバリ対象のオブジェクトのコピーが完了すると、DBサーバ100により、コピーが完了したオブジェクトの識別情報が、リカバリ中オブジェクト一覧115から削除される。さらに、リカバリ中のオブジェクトに対するサーバ600からの書き込み要求により、そのオブジェクトが運用DB111に書き込まれた場合、そのオブジェクトの識別情報が、リカバリ中オブジェクト一覧115から削除される。
図6の説明に戻る。DBサーバ100は、図7〜図9に示したようなテーブル等の情報を用いて、リカバリ処理を実行する。そのためにDBサーバ100は、受信部121、サーバ状態監視部122、スロット格納先特定部123、コピー先決定部124、送信部125、スロット管理更新部126、コピー先判定部127、リクエスト処理部128、及びDB管理部129を有する。
受信部121は、他のサーバからデータ等を受信する。受信部121が受信する情報には、リカバリ処理により送信されたオブジェクトの書き込み要求が含まれる。また受信部121は、サーバ600からのオブジェクトへの、書き込みまたは読み出しのアクセス要求も受信する。
サーバ状態監視部122は、他のDBサーバが稼働中なのか、故障中なのかを監視する。例えば、サーバ状態監視部122は、他のサーバが稼働中であることを示す信号(ハートビート)を、他のサーバそれぞれから定期的に受信できているか否かを監視する。またサーバ状態監視部122は、DBサーバ100が稼働中であることを示す情報を、他のサーバに対して定期的に送信する。
さらにサーバ状態監視部122は、定期的に(例えばハートビートのタイミングで)他のすべてのDBサーバに対して、「自分から見て、他のどのサーバが動作中であると確認できていて、どのサーバが動作中であると確認できていないのか」という死活情報を送る。動作中であると確認できているサーバとは、定期的にハートビートを受信できているサーバである。また動作中であると確認できていないサーバとは、所定期間以上ハートビートが途絶しているサーバである。他のサーバのサーバ状態監視部も、同様に死活情報の送信を行う。サーバ状態監視部122は、自身の監視による死活情報と、他のサーバから受信した死活情報とを、サーバごとに集計する。そしてサーバ状態監視部122は、集計した結果、過半数のサーバによって「動作中であると確認できていない」と判断されたサーバを、故障していると判断する。サーバ状態監視部122は、あるサーバが故障していると判断した場合、直ちに、そのサーバが故障していることを、他のすべてのDBサーバに通知する。これにより、サーバの故障に関する情報が、すべてのサーバで共有される。
サーバ状態監視部122は、サーバ状態管理テーブル113における、故障していると判断されたサーバの状態情報を、故障中を示す情報に更新する。またサーバ状態監視部122は、故障状態となったサーバからハートビートを受信した場合、サーバ状態管理テーブル113における、そのサーバの稼働状態を、稼働中を示す情報に更新する。
スロット格納先特定部123は、スロット格納管理テーブル114を参照して、サーバ状態監視部122の監視により見いだされた故障中のサーバが保持するスロットを判断する。さらにスロット格納先特定部123は、故障中のサーバが保持するスロットと同じ内容のスロット(冗長データ)を格納しているサーバを特定する。例えば故障中のサーバが保持するスロットがプライマリであれば、そのスロットのバックアップを保持しているサーバが特定される。また故障中のサーバが保持するスロットがバックアップであれば、そのスロットのプライマリを保持するサーバが特定される。
コピー先決定部124は、スロット格納先特定部123が特定したサーバがDBサーバ100自身である場合、運用DB111に保持するスロットのコピー先のDBサーバを決定する。例えばコピー先決定部124は、サーバシステム10の自身を除くDBサーバ100からランダムに選択されて決定される。そしてコピー先決定部124は、決定したコピー先のDBサーバが、故障したDBサーバのスロットであり、自身の運用DB111に冗長データが格納されているスロットを保持するように、スロット格納情報の更新要求を、スロット管理更新部126及び送信部125に通知する。
送信部125は、コピー先決定部124が決定したコピー先のDBサーバに、自身の運用DB111が格納する故障したDBサーバのスロットを送信する。また送信部125は、コピー先決定部124から通知されたスロット格納情報の更新要求を他の全DBサーバに対して送信する。
また、スロット管理更新部126は、他のDBサーバ並びにコピー先決定部124それぞれから通知されたスロット格納情報の更新要求に基づき、スロット格納管理テーブル114を更新する。
コピー先判定部127は、スロット管理更新部126によるスロット格納管理テーブル114の更新内容を参照して、故障したDBサーバのスロットのコピー先として、自身が決定されているか否かを判定する。コピー先判定部127は、故障したDBサーバのスロットのコピー先として、自身が決定されている場合、リカバリDBの作成要求をDB管理部129に通知する。
リクエスト処理部128は、受信部121から、書き込みまたは読み出し要求を取得する。リクエスト処理部128は、書き込みまたは読み出し要求が、リカバリ処理によるコピー要求なのか、サーバ600からの書き込みまたは読み出しのアクセス要求なのかを判断する。例えば、リカバリ時のコピーは、クライアント及び他のサーバから行われる通常の書き込みアクセスとは異なるコマンドで行われる。この場合、リクエスト処理部128は、コマンドの種別に応じて格納先のDBを選択することができる。そして、リクエスト処理部128は、判断結果に応じたオブジェクトの書き込みまたは読み出し実行要求をDB管理部129に通知する。
DB管理部129は、運用DB111及びリカバリDB112を管理する。DB管理部129は、書き込み高速型のDBMS(Database Management System)と、読み出し高速型のDBMSとを有している。そしてDB管理部129は、運用DB111を読み出し高速型のDBMSで管理し、リカバリDB112を書き込み高速型のDBMSで管理する。例えばDB管理部129は、リクエスト処理部128からのスロットの書き込みまたは読み出し実行要求に応じて、運用DB111またはリカバリDB112にオブジェクトの書き込み、またはオブジェクトの読み出しを行う。またDB管理部129は、コピー先判定部127からのリカバリDB112の作成要求に応じて、未使用のHDD上にリカバリDB112を作成する。このときDB管理部129は、リカバリDBとして、書き込み高速型のデータ構造のDBを構築する。そしてDB管理部129は、リカバリ対象のスロットに含まれるオブジェクトを受信すると、そのオブジェクトをリカバリDB112に格納する。DBサーバ100がコピー先となっている全スロットのオブジェクトのリカバリDB112への書き込みが完了すると、DB管理部129は、リカバリDB112に書き込んだオブジェクトを運用DB111にコピーし、リカバリDB112を初期化する。
さらにDB管理部129は、リカバリ対象のスロットに属するオブジェクトがリカバリ中か否かを、リカバリ中オブジェクト一覧115によって管理する。例えばコピー対象のスロットに含まれるオブジェクトをリカバリDB112に格納すると、リカバリ中オブジェクト一覧115に、格納したオブジェクトの識別情報を格納する。またDB管理部129は、リカバリDB112から運用DB111にコピーしたオブジェクトの識別情報を、リカバリ中オブジェクト一覧115から削除する。
DB管理部129は、リカバリ中オブジェクト一覧115に基づいて、リカバリ対象のスロットに含まれるオブジェクトがリカバリ中か否かを把握する。そしてDB管理部129は、サーバ100からリカバリ中のオブジェクトの読み出し要求があれば、リカバリDB112から要求に応じたオブジェクトを読み出す。またDB管理部112は、サーバ100からリカバリ中のオブジェクトの書き込み要求があれば、運用DB111にそのオブジェクトを書き込み、リカバリ中オブジェクト一覧から、そのオブジェクトの識別情報を削除する。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6にはDBサーバ100の機能を示したが、他のDBサーバ200,300,400,500,・・・も、DBサーバ100と同様の機能を有している。またDB管理部129は、図1に示した第1の実施の形態における、格納手段2c、コピー手段2d、及びデータ更新手段2eの機能を包含する要素の一例である。
このような機能を備えるDBサーバ100を含むサーバシステム10において、DBサーバに故障が生じた場合のデータのやりとりの一例について図10を用いて説明する。
図10は、第2の実施の形態に係るサーバシステムのデータのやりとりの一例を示す図である。
サーバシステム10は、既述の通り、複数のDBサーバが相互に送受信可能にネットワーク20を介して接続されている。
この際に、例えば、図10に示すように、DBサーバ100,200,300,400,500,・・・のうち、DBサーバ200が故障した場合を想定する。この場合には、DBサーバ200に格納されていた複数のスロットそれぞれを保持する他のDBサーバ100,300,400,500,・・・が相互にコピー元、コピー先となり、DBサーバ200が保持していたスロットに含まれるオブジェクトがコピーされる。このようにして、DBサーバ100,300,400,500,・・・間では、スロットに含まれるオブジェクトの送受信が行われることにより、DBサーバ200に格納されていた複数のスロットの冗長化が迅速に回復される。
このようなサーバシステム10から1つのDBサーバ100がコピー元、コピー先になり行われる処理について説明する。なお、以下では、DBサーバ200が故障した場合を例に挙げる。
まず、DBサーバ100がコピー元となり、DBサーバ300に対してスロットのコピー実行を通知する処理について図11を用いて説明する。
図11は、第2の実施の形態に係るDBサーバのスロットのコピー実行通知の処理手順の一例を示すフローチャートである。
[ステップS11] DBサーバ100において、受信部121が他のDBサーバから稼働状態を表すサーバ状態情報を受信する。
[ステップS12] サーバ状態監視部122は、受信部121が受信したサーバ状態情報に基づき、サーバ状態管理テーブル113を更新する。
[ステップS13] サーバ状態監視部122は、更新したサーバ状態管理テーブル113を参照して、故障している他のDBサーバの有無を判定する。
故障している他のDBサーバが存在している場合(例えば、DBサーバ200)には、DBサーバ100はステップS14の処理を実行する。存在していない場合には、スロットのコピー実行通知の処理を終了する。
[ステップS14] スロット格納先特定部123は、スロット格納管理テーブル114を参照して、サーバ状態監視部122の監視により見いだされた故障中のDBサーバ200が保持するスロットを格納しているDBサーバ100を特定する。
特定したDBサーバ100が自身のDBサーバ100である場合には、DBサーバ100はステップS15の処理を実行する。自身以外の他のDBサーバである場合には、スロットのコピー実行通知の処理を終了する。
[ステップS15] コピー先決定部124は、DBサーバ100の運用DB111に格納されているスロットのコピー先である別のDBサーバ(例えば、DBサーバ300)をランダムに決定する。
[ステップS16] コピー先決定部124は、ステップS15でコピー先として決定したDBサーバ300が、DBサーバ100が格納する故障したDBサーバ200のスロットを保持するようにスロット格納情報の更新要求をスロット管理更新部126及び送信部125に通知する。
スロット管理更新部126は、コピー先決定部124からの更新要求に基づき、スロット格納管理テーブル114を更新する。
[ステップS17] 送信部125は、コピー先決定部124から通知されたスロット格納情報の更新要求を、自身を除く全DBサーバ300,400,500,・・・に対して送信する。
[ステップS18] 送信部125は、コピー先として決定したDBサーバ300に対して、自身が格納する故障したDBサーバ200のスロットに含まれるオブジェクトと共に、当該スロットのコピー実行通知を送信する。
サーバ状態情報を受信するごとにこのような処理が実行されて、DBサーバ300には、サーバ状態情報の更新要求、並びに、故障したDBサーバ200に格納されているスロットと共に、当該スロットのコピー実行通知がDBサーバ100から送信される。
図11に示すようなスロットのコピー実行通知処理が、故障したDBサーバ200に格納されているスロットと同一内容のスロットを保持するすべてのDBサーバで実行される。次にスロットのコピー実行通知をDBサーバ100が受信した場合に、DBサーバ100で実行されるリカバリ処理について図12を用いて説明する。
図12は、第2の実施の形態に係るDBサーバのリカバリ処理手順の一例を示すフローチャートである。
[ステップS21] DBサーバ100の受信部121は、他のDBサーバ300,400,500,・・・からスロット格納情報の更新要求を受信する。この際、複数のDBサーバ400,500,・・・からスロット格納情報の更新要求が通知される可能性がある。そこで受信部121は、例えば、最初のスロット格納情報の更新要求の受信から一定の時間だけ、他のDBサーバからのスロット格納情報の更新要求の受信を待ち、その後、次のステップS22の処理を開始する。
[ステップS22] スロット管理更新部126は、他のDBサーバから受信したスロット格納情報に基づき、スロット格納管理テーブル114を更新する。
[ステップS23] コピー先判定部127は、更新されたスロット格納管理テーブル114を参照して、DBサーバ100自身がスロットのコピー先として決定されているか否かを判別する。
DBサーバ100自身がスロットのコピー先として決定されている場合には、DBサーバ100はステップS24の処理を実行する。DBサーバ100がコピー先として決定されていない場合には、リカバリ処理を終了する。
[ステップS24] DB管理部129は、未使用のHDD中に書き込み速度を速く設定したリカバリDB112を割り当てる。
[ステップS25] DB管理部129は、DBサーバ300から送信されたスロットのオブジェクトをリカバリDB112に書き込む。このときDB管理部129は、リカバリ中オブジェクト一覧115に、書き込んだオブジェクトの識別情報を登録する。
[ステップS26] DB管理部129は、リカバリDB112に対する、リカバリ対象のスロットのオブジェクトのコピーが完了すると、リカバリDB112に格納されたオブジェクトを運用DB111に書き込む。このときDB管理部129は、リカバリ中オブジェクト一覧115から、書き込んだオブジェクトの識別情報を削除する。
[ステップS27] DB管理部129は、リカバリ対象のスロットのオブジェクトの運用DB111に対する書き込みが完了すると、リカバリDB112を初期化する。例えばDB管理部129は、リカバリ中オブジェクト一覧115からすべてのオブジェクトの識別情報が削除されたときに、リカバリ対象のスロットのオブジェクトの運用DB111に対する書き込みが完了したと判断する。なお初期化処理では、リカバリDB112に書き込まれたすべてのオブジェクトが消去される。
スロット格納情報の更新要求が通知されるごとに、このような処理が実行される。これにより、故障したDBサーバ200が保持していたスロットと同一内容のスロットを、他のDBサーバ100,300,400,500,・・・のリカバリDB112,312,412,512,・・・へ迅速に格納することができる。その結果、スロットの冗長性を迅速に回復できるようになる。しかも、リカバリ処理完了後にリカバリDBを初期化するため、その後、リカバリDBとして使用したHDDを他の用途で使用することもできる。その結果、HDD資源の有効活用が可能となる。
次に、DBサーバ100において、サーバ600から、リカバリ対象のスロットに含まれるオブジェクトの書き込み要求が通知された場合の処理について図13を用いて説明する。
図13は、第2の実施の形態に係るDBサーバの書き込み処理手順の一例を示すフローチャートである。
[ステップS31] DBサーバ100の受信部121は、サーバ600からDBサーバ200に格納していたものと同じスロットに含まれるオブジェクトの書き込み要求を受信する。
[ステップS32] リクエスト処理部128は、サーバ600から書き込み要求が通知されたことを判定して、DB管理部129に書き込み対象のオブジェクトがリカバリ中オブジェクト一覧115に含まれているか否かの判定要求を通知する。
DB管理部129は、書き込み対象のオブジェクトがリカバリ中オブジェクト一覧115に含まれているか否かを判定する。
当該オブジェクトがリカバリ中オブジェクト一覧115に含まれている場合には、DBサーバ100は、ステップS33の処理を実行する。含まれていない場合には、DBサーバ100は、ステップS35の処理を実行する。
[ステップS33] DB管理部129は、書き込み対象のオブジェクトを運用DB111に書き込む。
なお、この際、リカバリDB112には、書き込み対象のオブジェクトが格納されている。
[ステップS34] DB管理部129は、運用DB111に対する書き込み対象オブジェクトの書き込みが完了すると、リカバリ中オブジェクト一覧から、書き込みを行ったオブジェクトの識別情報を削除する。またDB管理部129は、書き込みを行ったオブジェクトに対応するリカバリDB112内のオブジェクトを削除する。その後、書き込み処理が終了する。
[ステップS35] DB管理部129は、書き込み対象オブジェクトを運用DB111に書き込む。その後、書き込み処理が終了する。
サーバ600からオブジェクトの書き込み要求が通知されるごとに、このような処理が実行される。
次に、DBサーバ100において、サーバ600から、リカバリ対象のスロットに含まれるオブジェクトの読み出し要求が通知された場合の処理について図14を用いて説明する。
図14は、第2の実施の形態に係るDBサーバの読み出し処理手順の一例を示すフローチャートである。
[ステップS41] DBサーバ100の受信部121は、サーバ600からDBサーバ200に格納していたものと同じオブジェクトの読み出し要求を受信する。
[ステップS42] リクエスト処理部128は、サーバ600から読み出し要求が通知されたことを判定して、DB管理部129に読み出し対象のオブジェクトがリカバリ中オブジェクト一覧115に含まれているか否かの判定要求を通知する。
DB管理部129は、読み出し対象のオブジェクトがリカバリ中オブジェクト一覧115に含まれているか否かを判定する。
当該オブジェクトがリカバリ中オブジェクト一覧115に含まれている場合には、DBサーバ100は、ステップS43の処理を実行する。含まれていない場合には、DBサーバ100は、ステップS44の処理を実行する。
[ステップS43] DB管理部129は、リカバリDB112から、読み出し対象のオブジェクトを読み出す。その後、読み出し処理が終了する。
[ステップS44] DB管理部129は、運用DB111から、読み出し対象のオブジェクトを読み出す。その後、読み出し処理が終了する。
サーバ600からオブジェクトの読み出し要求が通知されるごとに、上記処理が実行されて、読み出したオブジェクトがサーバ600に送信される。図12で説明したように、故障したDBサーバ200が保持していたスロットの他のDBサーバのリカバリDBへの格納は、迅速に行われる。そのため、上記の読み出し処理時には、リカバリ対象のスロットに含まれるオブジェクトの読み出し要求に対してデータロスが発生せずに、正常にオブジェクトを読み出すことができるようになる。
このように第2の実施の形態では、DBサーバ100は、故障したDBサーバ200が保持していたスロットと同一内容のスロットを受信すると、運用DB111より効率よく書き込みが可能なリカバリDB112に、該受信したスロットを格納する。そしてDBサーバ100は、リカバリDB112に格納されたスロットを運用DB111にコピーするようにした。
これにより、故障したDBサーバ200が保持していたスロットを、他のDBサーバのリカバリDBへの格納を迅速に行うことができ、スロットの冗長性を迅速に回復できるようになる。このためサーバ600からのオブジェクトの読み出しアクセスに対してデータロスの発生を抑制し、信頼性の低下を抑制することができるようになる。
[第3の実施の形態]
第3の実施の形態では、複数のHDDを別途用意して、リカバリ処理を実行する際に、用意しておいたHDDをサーバに接続するものである。
図15は、第3の実施の形態に係るサーバシステムの一例を示す図である。図15に示すサーバシステム700には、ネットワーク701を介して複数のDBサーバ711〜715、サーバ720、及び管理サーバ730が接続されている。また複数のDBサーバ711〜715と管理サーバ730とは、ストレージネットワークスイッチ702を介して、複数のHDD741〜751に接続されている。ストレージネットワークスイッチ702は、例えばSAN(Storage Area Network)スイッチである。
DBサーバ711〜715は、第2の実施の形態に示したDBサーバ100と同じ機能を有していると共に、他のDBサーバの故障を検出した際に、HDD割当要求を管理サーバ730に送信する機能を有している。サーバ720は、第2の実施の形態に示したサーバ600と同じ機能を有している。
管理サーバ730は、DBサーバ711〜715へのHDD741〜751の割り当てを管理する。管理サーバ730からHDDの割り当てを受けたDBサーバは、そのHDDをローカルのHDDとして使用できる。例えばDBサーバは、割り当てられたHDDを運用DBまたはリカバリDBとして使用できる。
このような構成のサーバシステム700において、すべてのDBサーバ711〜715が正常に動作している間は、運用DBとして用いるHDDが各DBサーバに割り当てられる。
図16は、第3の実施の形態においてDBサーバが正常動作時のDBサーバへのHDD割り当て状況の一例を示す図である。図16の例では、各DBサーバ711〜715には、それぞれ1台ずつのHDD741〜745が割り当てられている。各DBサーバ711〜715は、割り当てられたHDD741〜745に読み出し高速型のデータ構造のデータベースを構築し、運用DBとして使用する。
DBサーバ711〜715のいずれにも割り当てられていないHDD746〜751は、HDDプールとして管理される。HDDプールは未使用のHDDである。管理サーバ730は、いずれかのDBサーバからHDD割り当て要求を受信すると、HDDプールに属するHDDからHDDを選択し、選択したHDDをそのDBサーバに割り当てる。
ここで、図16に示すような状況でサーバシステム700が運用されているときに、DBサーバ711が故障した場合を想定する。
図17は、第3の実施の形態において1台のDBサーバが故障したときのサーバシステムの運用状況の一例を示す図である。DBサーバ711が故障すると、第2の実施の形態と同様に、他のDBサーバ712〜715がDBサーバ711の故障を検知する。このとき第3の実施の形態では、DBサーバ711の故障を検知したDBサーバ712〜715それぞれが、管理サーバ730にHDD割り当て要求を送信する。このHDD割り当て要求に応答し、管理サーバ730が、DBサーバ712〜715に対してHDDの追加割り当てを行う。
図18は、第3の実施の形態においてHDD追加割り当て後のサーバシステムの運用状況の一例を示す図である。故障したDBサーバ711以外のDBサーバ712〜715には、それぞれ1台ずつのHDD746〜749が追加で割り当てられている。DBサーバ712〜715は、それぞれ追加で割り当てられたHDD746〜749をリカバリDBとして使用する。すなわちDBサーバ712〜715は、HDD746〜749に、書き込み高速型のデータ構造のデータベースを構築する。その後、第2の実施の形態と同様に、リカバリDBを用いたリカバリ処理が実行される。すなわち、各DBサーバ712〜715は、リカバリ対象のスロットに含まれるオブジェクトを受信すると、そのオブジェクトをリカバリDBとして使用するHDD746〜749に書き込む。リカバリ対象のスロットに含まれるオブジェクトのDBサーバ間での受け渡しが完了すると、各DBサーバ712〜715は、それぞれリカバリDBとして使用しているHDD746〜749内のオブジェクトを、運用DBとして使用しているHDD742〜745にコピーする。
各DBサーバ712〜715は、リカバリDBとして使用しているHDD746〜749から運用DBとして使用しているHDD742〜745へのオブジェクトのコピーが完了すると、リカバリDBとして使用しているHDD746〜749を初期化する。そしてDBサーバ712〜715は、リカバリDBとして使用しているHDD746〜749の返却要求を管理サーバ730に送信する。すると、管理サーバ730は、DBサーバ712〜715へのHDD746〜749の割り当てを解除し、HDD746〜749をHDDプールに属するものとして管理する。
このように、リカバリDBを使用するときだけ、一時的にHDDをDBサーバに割り当てることで、HDD資源を有効に利用することができる。
[その他の実施の形態]
第1・第2の実施の形態では、HDD内にDBを構築するものとしているが、HDD以外の記憶装置にDBを構築してもよい。例えばSSDにDBを構築することもできる。またHDDに代えて、RAID(Redundant Array of Inexpensive Disks)装置を用いることもできる。
なお上記の実施の形態では、CPU100aがプログラムを実行することによって実現するものとしたが、プログラムで記述された処理の一部を、電子回路に置き換えることが可能である。例えば、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現してもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 情報処理システム
2,3,4,5 コンピュータ
2a,2b,3a,4a データベース
2c 格納手段
2d コピー手段
2e データ更新手段
6 ネットワーク
D1,D2 データ

Claims (7)

  1. 故障した第1の装置が保持していたデータと同一内容のデータを第2の装置から受信すると、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造の第1のデータベースに、該受信したデータを格納する格納手段と、
    前記第1のデータベースに格納されたデータを、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造の第2のデータベースにコピーするコピー手段と、
    を有するコンピュータ。
  2. 前記格納手段は、前記第1の装置が保持していたデータのうちの少なくとも1つのデータの識別情報を前記第2の装置から受信し、該受信した識別情報それぞれに対応するデータを受信した場合に、データ受信完了と判断し、
    前記コピー手段は、前記格納手段がデータ受信完了と判断した後、コピーを開始する、
    ことを特徴とする請求項1記載のコンピュータ。
  3. 前記格納手段は、前記第1の装置の故障を検知すると、未使用のストレージ装置内に前記第1のデータベースを構築し、前記第1のデータベースに格納したデータの前記第2のデータベースへのコピーが完了すると、前記ストレージ装置内の前記第1のデータベースを消去することを特徴とする請求項1または2記載のコンピュータ。
  4. 前記第1のデータベースに格納され、前記第2のデータベースへのコピーが済んでいないデータの更新要求を受信すると、該更新要求に含まれている更新後のデータを前記第2のデータベースに書き込み、該更新要求で指定された前記第1のデータベース内の更新元のデータを削除するデータ更新手段をさらに有することを特徴とする請求項1乃至3のいずれかに記載のコンピュータ。
  5. コンピュータが、
    故障した第1の装置が保持していたデータと同一内容のデータを第2の装置から受信すると、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造の第1のデータベースに、該受信したデータを格納し、
    前記第1のデータベースに格納されたデータを、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造の第2のデータベースにコピーする、
    ータ格納方法。
  6. コンピュータに、
    故障した第1の装置が保持していたデータと同一内容のデータを第2の装置から受信すると、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造の第1のデータベースに、該受信したデータを格納し、
    前記第1のデータベースに格納されたデータを、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造の第2のデータベースにコピーする、
    処理を実行させるデータ格納プログラム。
  7. ネットワークを介して接続されたコンピュータの故障を検知すると、該故障したコンピュータが保持するデータと同一内容のデータを、第1のデータベース内から読み出し、該読み出したデータを、前記ネットワークを介して送信する第1のコンピュータと、
    前記第1のコンピュータが送信したデータを、前記ネットワークを介して受信し、読み出しがランダムアクセスとなり、書き込みがシーケンシャルアクセスとなるデータ構造の第2のデータベースに、該受信したデータを格納し、前記第2のデータベースに格納されたデータを、書き込みがランダムアクセスとなり、読み出しがシーケンシャルアクセスとなるデータ構造の第3のデータベースにコピーする第2のコンピュータと、
    を有する情報処理システム。
JP2012113466A 2012-05-17 2012-05-17 コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム Expired - Fee Related JP5924117B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012113466A JP5924117B2 (ja) 2012-05-17 2012-05-17 コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
US13/850,379 US9430489B2 (en) 2012-05-17 2013-03-26 Computer, data storage method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012113466A JP5924117B2 (ja) 2012-05-17 2012-05-17 コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2013239117A JP2013239117A (ja) 2013-11-28
JP5924117B2 true JP5924117B2 (ja) 2016-05-25

Family

ID=49582155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012113466A Expired - Fee Related JP5924117B2 (ja) 2012-05-17 2012-05-17 コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム

Country Status (2)

Country Link
US (1) US9430489B2 (ja)
JP (1) JP5924117B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10367702B2 (en) * 2013-10-31 2019-07-30 Hewlett Packard Enterprise Development Lp Network database hosting
US20230409590A1 (en) * 2022-06-10 2023-12-21 Capital One Services, Llc Methods and systems for generating recommendations in cloud-based data warehousing system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5727346A (en) * 1980-07-28 1982-02-13 Fujitsu Ltd Restoration processing system at fault of doubling file
JPH03191443A (ja) * 1989-12-21 1991-08-21 Hitachi Ltd データベースの高速回復方式
JP3340431B2 (ja) * 1990-03-07 2002-11-05 株式会社日立製作所 データベース管理方法
JP4296120B2 (ja) * 2004-04-09 2009-07-15 富士通株式会社 冗長構成復元方法、データ管理システム及び冗長構成復元プログラム
US20070220059A1 (en) * 2006-03-20 2007-09-20 Manyi Lu Data processing node
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
JP2010097385A (ja) 2008-10-16 2010-04-30 Fujitsu Ltd データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム

Also Published As

Publication number Publication date
US9430489B2 (en) 2016-08-30
US20130311430A1 (en) 2013-11-21
JP2013239117A (ja) 2013-11-28

Similar Documents

Publication Publication Date Title
US8458398B2 (en) Computer-readable medium storing data management program, computer-readable medium storing storage diagnosis program, and multinode storage system
JP6056453B2 (ja) プログラム、データ管理方法および情報処理装置
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
US8234467B2 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
US7480780B2 (en) Highly available external storage system
US8386707B2 (en) Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
CN101571815B (zh) 信息系统及i/o处理方法
US8484413B2 (en) Recording medium storing control program for decentralized data, storage management program, control node, and disk node
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
US9971527B2 (en) Apparatus and method for managing storage for placing backup data into data blocks based on frequency information
US20090265510A1 (en) Systems and Methods for Distributing Hot Spare Disks In Storage Arrays
JP2009116783A (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US9336093B2 (en) Information processing system and access control method
US10789007B2 (en) Information processing system, management device, and control method
JP2010282324A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US10860224B2 (en) Method and system for delivering message in storage system
US20180307427A1 (en) Storage control apparatus and storage control method
JP5924117B2 (ja) コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
US20150135004A1 (en) Data allocation method and information processing system
JP5640618B2 (ja) 管理プログラム、管理装置、および管理方法
JPWO2008126169A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
US20230244385A1 (en) Storage apparatus and control method
JP2012194867A (ja) ストレージ装置および制御装置
JP2010277342A (ja) 管理プログラム、管理装置および管理方法
JP2021009646A (ja) ストレージ制御装置およびストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160302

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: 20160322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160404

R150 Certificate of patent or registration of utility model

Ref document number: 5924117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees