(57)【要約】【課題】共有データの二重更新を防止すること。【解決手段】共有ディスク装置３０が、共有データへのアクセス要求状態又はアクセス非要求状態を示し、第１サーバ１０と第２サーバ２０のそれぞれのみにより更新可能な第１専用フラグａと第２専用フラグｂを異なるパーティションで共有データ記憶部３０１に記憶しておき、第１サーバ１０と第２サーバ２０は、それぞれ、共有データ記憶部３０１から他サーバ用の専用フラグ（第２専用フラグｂ、第１専用フラグａ）を取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に共有データにアクセスする。【選択図】図１
2014154077.tif 000002
【特許請求の範囲】
【請求項１】
共有データを更新する２つの共有データ更新装置と、前記共有データを記憶しておく共有データ記憶装置とを備えた二重更新防止システムにおいて、
前記共有データ記憶装置は、
前記共有データへのアクセス要求状態又はアクセス非要求状態を示し、前記２つの共有データ更新装置のそれぞれのみにより更新可能な２つの専用フラグを異なるパーティションで記憶しておく共有データ記憶手段、を有し、
前記２つの共有データ更新装置は、それぞれ、
前記共有データ記憶手段から他装置用の専用フラグを取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に前記共有データにアクセスするアクセス制御手段、
を有することを特徴とする二重更新防止システム。
【請求項２】
前記共有データ記憶手段は、前記共有データへのアクセスが優先されている共有データ更新装置を識別する優先権フラグを更に記憶しておき、
前記アクセス制御手段は、
前記他装置用の専用フラグがアクセス要求状態の場合に前記優先権フラグを参照し、他装置が優先されている場合に自装置用の専用フラグをアクセス非要求状態に戻すことを特徴とする請求項１記載の二重更新防止システム。
【請求項３】
前記アクセス制御手段は、
前記共有データにアクセスした後に前記優先権フラグを他装置が優先されるように変更することを特徴とする請求項２記載の二重更新防止システム。
【請求項４】
共有データを更新する２つの共有データ更新装置と、前記共有データを記憶しておく共有データ記憶装置とで行う二重更新防止方法において、
前記共有データ記憶装置は、
前記共有データへのアクセス要求状態又はアクセス非要求状態を示し、前記２つの共有データ更新装置のそれぞれのみにより更新可能な２つの専用フラグを異なるパーティションで共有データ記憶手段に記憶しておく共有データ記憶ステップ、を有し、
前記２つの共有データ更新装置は、それぞれ、
前記共有データ記憶手段から他装置用の専用フラグを取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に前記共有データにアクセスするアクセス制御ステップ、
を有することを特徴とする二重更新防止方法。
【請求項５】
前記共有データ記憶ステップは、前記共有データへのアクセスが優先されている共有データ更新装置を識別する優先権フラグを更に記憶しておき、
前記アクセス制御ステップは、
前記他装置用の専用フラグがアクセス要求状態の場合に前記優先権フラグを参照し、他装置が優先されている場合に自装置用の専用フラグをアクセス非要求状態に戻すことを特徴とする請求項４記載の二重更新防止方法。
【請求項６】
前記アクセス制御ステップは、
前記共有データにアクセスした後に前記優先権フラグを他装置が優先されるように変更することを特徴とする請求項５記載の二重更新防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有データの二重更新を防止する技術に関する。
【背景技術】
【０００２】
複数のサーバにより共有ディスク装置内の共有データを更新するサーバクラスタシステムが存在する。従来のサーバクラスタシステムは、サーバ間での系間通信によりＡＣＴ系／ＳＢＹ系を決定し、ＡＣＴ系のみが共有データへのアクセス権を確保することにより、共有データへの相互排他的なアクセスを実現し、その二重更新を回避していた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“26.5.2  共有ディスク装置の準備”、株式会社日立製作所、＜URL: http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d645430/W4540718.HTM＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、アクセス権を持つＡＣＴ系を系間通信に基づいて決定しているため、何らかの原因により系間通信に異常が生じると、両サーバが共にＡＣＴ系となる可能性があり、共有データへの相互排他的なアクセスによる共有データの正常性を確保することができなかった（図５参照）。
【０００５】
また、共有データの二重更新が発生すると共有ディスク装置内のファイルシステムが破壊され、その復旧に長時間を必要としたりデータが損失したりすること等が懸念されていた。
【０００６】
本発明は、上記事情を鑑みてなされたものであり、共有データの二重更新を防止することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１記載の二重更新防止システムは、共有データを更新する２つの共有データ更新装置と、前記共有データを記憶しておく共有データ記憶装置とを備えた二重更新防止システムにおいて、前記共有データ記憶装置は、前記共有データへのアクセス要求状態又はアクセス非要求状態を示し、前記２つの共有データ更新装置のそれぞれのみにより更新可能な２つの専用フラグを異なるパーティションで記憶しておく共有データ記憶手段、を有し、前記２つの共有データ更新装置は、それぞれ、前記共有データ記憶手段から他装置用の専用フラグを取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に前記共有データにアクセスするアクセス制御手段、を有することを要旨とする。
【０００８】
請求項２記載の二重更新防止システムは、請求項１記載の二重更新防止システムにおいて、前記共有データ記憶手段は、前記共有データへのアクセスが優先されている共有データ更新装置を識別する優先権フラグを更に記憶しておき、前記アクセス制御手段は、前記他装置用の専用フラグがアクセス要求状態の場合に前記優先権フラグを参照し、他装置が優先されている場合に自装置用の専用フラグをアクセス非要求状態に戻すことを要旨とする。
【０００９】
請求項３記載の二重更新防止システムは、請求項２記載の二重更新防止システムにおいて、前記アクセス制御手段は、前記共有データにアクセスした後に前記優先権フラグを他装置が優先されるように変更することを要旨とする。
【００１０】
請求項４記載の二重更新防止方法は、共有データを更新する２つの共有データ更新装置と、前記共有データを記憶しておく共有データ記憶装置とで行う二重更新防止方法において、前記共有データ記憶装置は、前記共有データへのアクセス要求状態又はアクセス非要求状態を示し、前記２つの共有データ更新装置のそれぞれのみにより更新可能な２つの専用フラグを異なるパーティションで共有データ記憶手段に記憶しておく共有データ記憶ステップ、を有し、前記２つの共有データ更新装置は、それぞれ、前記共有データ記憶手段から他装置用の専用フラグを取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に前記共有データにアクセスするアクセス制御ステップ、を有することを要旨とする。
【００１１】
請求項５記載の二重更新防止方法は、請求項４記載の二重更新防止方法において、前記共有データ記憶ステップは、前記共有データへのアクセスが優先されている共有データ更新装置を識別する優先権フラグを更に記憶しておき、前記アクセス制御ステップは、前記他装置用の専用フラグがアクセス要求状態の場合に前記優先権フラグを参照し、他装置が優先されている場合に自装置用の専用フラグをアクセス非要求状態に戻すことを要旨とする。
【００１２】
請求項６記載の二重更新防止方法は、請求項５記載の二重更新防止方法において、前記アクセス制御ステップは、前記共有データにアクセスした後に前記優先権フラグを他装置が優先されるように変更することを要旨とする。
【００１３】
以上より、本発明によれば、共有データ記憶装置が、共有データへのアクセス要求状態又はアクセス非要求状態を示し、２つの共有データ更新装置のそれぞれのみにより更新可能な２つの専用フラグを異なるパーティションで共有データ記憶手段に記憶しておき、２つの共有データ更新装置は、それぞれ、共有データ記憶手段から他装置用の専用フラグを取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に共有データにアクセスするため、共有データへの相互排他的なアクセスが可能となることから、共有データの二重更新を防止することができる。
【発明の効果】
【００１４】
本発明によれば、共有データの二重更新を防止することができる。
【図面の簡単な説明】
【００１５】
【図１】二重更新防止システムの全体構成を示す図である。
【図２】第１サーバからアクセスした場合における二重更新防止システムの処理フローを示す図である。
【図３】図２の動作フローの場合における第１サーバの動作を説明する図である。
【図４】第１サーバと第２サーバにより同時アクセスが発生した場合における二重更新防止システムの処理フローを示す図である。
【図５】従来のサーバクラスタシステムの概要を説明するための図である。
【発明を実施するための形態】
【００１６】
本発明は、サーバ同士の系間通信に頼るのに代えて、共有データへのアクセス権情報を共有ディスク装置側に配置することにより、共有データへの相互排他的なアクセスを実現し、共有データの二重更新を防止するようにしている。
【００１７】
以下、本発明を実施する一実施の形態について図面を用いて説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。
【００１８】
図１は、本実施の形態に係る二重更新防止システム１の全体構成を示す図である。この二重更新防止システム１は、共有データをそれぞれ更新する第１サーバ１０及び第２サーバ２０と、その共有データを記憶しておく共有ディスク装置３０とを備えている。以下、各装置の機能について説明する。
【００１９】
共有ディスク装置３０は、記憶している共有データへの相互排他的なアクセスを実現するため、共有変数であるフラグａ，ｂ，ｔを記憶しておく共有データ記憶部３０１を備えている。
【００２０】
フラグａ，ｂは、共有データへのアクセス権情報を保持するためのフラグであり、共有データへのアクセス要求状態又はアクセス非要求状態を示している。それらフラグａ，ｂは、第１パーティションと第２パーティションにそれぞれ配置され、第１サーバ１０と第２サーバ２０のそれぞれのみにより更新することができる。これにより、共有データの二重更新やフラグａ，ｂの同時更新によるデータ破壊を回避するようにしている。
【００２１】
以下、第１パーティションに配置され、第１サーバ１０のみにより更新可能なフラグａを第１専用フラグａという。また、第２パーティションに配置され、第２サーバ２０のみにより更新可能なフラグｂを第２専用フラグｂという。
【００２２】
フラグｔは、共有データへの同時アクセスが発生した場合に備え、共有データへのアクセスが優先されているサーバを識別するために用いられる。そのフラグｔは、共有データと同じ第３パーティションに配置され、第１サーバ１０と第２サーバ２０の両サーバにより書き換える（変更する）ことができる。
【００２３】
このような優先権フラグｔを用いることにより、第１サーバ１０と第２サーバ２０によるデッドロック状態の発生を回避するようにしている。また、共有データへのアクセス毎に優先サーバを他サーバに書き換えることにより、第１サーバ１０と第２サーバ２０との間での共有データへのアクセスの公平性を確保するようにしている。
【００２４】
第１サーバ１０と第２サーバ２０は、それぞれ、共有ディスク装置３０と通信可能に物理的・電気的に接続されており、共有データ記憶部３０１から取得した第１専用フラグａと第２専用フラグｂと優先権フラグｔを用いて相互排他的に共有データへアクセスするアクセス制御機能部１０１，２０１を備えている。
【００２５】
続いて、図２を参照しながら、二重更新防止システム１の動作について説明する。
【００２６】
まず、第１サーバ１０のアクセス制御機能部１０１は、共有データが記憶されている共有ディスク装置３０にアクセスし、その共有データにアクセスする前に、自サーバからアクセスしたいことを示すため、自サーバ用の第１専用フラグａを取得し、そのフラグ状態をアクセス非要求状態（０）からアクセス要求状態（１）に変更（ａ：０→１）する（ステップＳ１０１）。
【００２７】
次に、アクセス制御機能部１０１は、第２サーバ２０が共有データへアクセスしようとしていないかを確認するため、他サーバ用の第２専用フラグｂを取得し、そのフラグ状態がアクセス非要求状態（０）であるかアクセス要求状態（１）であるかを判定する（ステップＳ１０２）。
【００２８】
これ以降は、第２専用フラグｂ及び優先権フラグｔの各状態に基づき、共有データへのアクセス制御を実行する。
【００２９】
まず、第２専用フラグｂがアクセス非要求状態である場合（ｂ＝０）には、第２サーバ２０は共有データへアクセスしていないため、アクセス制御機能部１０１は、優先権フラグｔを参照することなく共有データへアクセスする（ステップＳ１０３）。
【００３０】
一方、第２専用フラグｂがアクセス要求状態である場合（ｂ＝１）には、次の２つのケースが考えられる。つまり、第２サーバ２０は既に共有データにアクセス中である第１ケースと、第２サーバ２０も同時に共有データへアクセスしようとしているが、未だ共有データへアクセスしておらず、第２サーバ２０も第１専用フラグａを確認中である第２ケースである。特に第２ケースの場合には第１サーバ１０と第２サーバ２０との間でデッドロック状態にならないようにするため、それら２つのサーバ間での調整が必要となる。
【００３１】
そこで、そのような２つのケースを考慮して、本実施の形態では、優先権フラグｔを確認し、優先権がない方が優先権のある方へ共有データへのアクセスを譲るように動作させる。この条件を満たす第１サーバ１０の動作を図３に示す。第２サーバ２０については、これと裏返しの動作をすればよい。
【００３２】
まず、アクセス制御機能部１０１は、優先権フラグｔを参照し、そのフラグ状態が第１サーバ１０の優先状態（Ａ）であるか第２サーバ２０の優先状態（Ｂ）であるかを判定する（ステップＳ１０４）。
【００３３】
そして、優先権フラグｔが第２サーバ２０を示している場合（ｔ＝Ｂ）には、第１サーバ１０は、共有データへのアクセス権を一瞬だけ第２サーバ２０に譲るようにする。すなわち、アクセス制御機能部１０１は、自サーバ用の第１専用フラグａをアクセス非要求状態（０）に一旦戻し（ステップＳ１０５）、所定時間が経過した後にステップＳ１０２に戻ってリトライする（ステップＳ１０６）。
【００３４】
これは、第２サーバ２０が上述した第２ケースの場合、ｔ＝Ａの場合と同様の動作をするとデッドロック状態になることから、それを回避するようにするためである。最終的にリトライするため、第２サーバ２０が第１ケースの場合でも対応することができる。
【００３５】
一方、優先権フラグｔが第１サーバ１０を示している場合（ｔ＝Ａ）には、第２サーバ２０が共有データへのアクセスを完了させて第２専用フラグｂがアクセス非要求状態（０）に戻されるか、又は、共有データへのアクセス権を第１サーバ１０に譲り第２専用フラグｂがアクセス非要求状態（０）に戻されるか（第２サーバ２０がアクセスした場合のステップＳ１０５に相当）を期待し、ステップＳ１０２に戻ってリトライする。
【００３６】
そして、そのようなリトライを行い、ステップＳ１０２及びステップＳ１０３を経由して共有データのデータ変更が完了した後には、アクセス制御機能部１０１は、優先権フラグｔを他サーバが優先されるように第２サーバ２０の優先状態（Ｂ）に変更する（ステップＳ１０７）。
【００３７】
最後に、図４を参照しながら、第１サーバ１０と第２サーバ２０により同時アクセスが発生した場合における二重更新防止システム１の動作について説明する。
【００３８】
まず、第１サーバ１０が、自サーバ用の第１専用フラグａを取得してそのフラグ状態をアクセス非要求状態（０）からアクセス要求状態（１）に変更（ａ：０→１）する（ステップＳ２０１）。
【００３９】
ステップＳ２０１と同時に、第２サーバ２０は、自サーバ用の第２専用フラグｂを取得してそのフラグ状態をアクセス非要求状態（０）からアクセス要求状態（１）に変更（ｂ：０→１）する（ステップＳ２０１）。
【００４０】
次に、第１サーバ１０と第２サーバ２０は、それぞれ、他サーバ用の専用フラグ（第２専用フラグｂ、第１専用フラグａ）を取得してそのフラグ状態がアクセス非要求状態（０）であるかアクセス要求状態（１）であるかを確認する（ステップＳ２０２）。
【００４１】
次に、他サーバの専用フラグは共にアクセス要求状態（１）であることから、第１サーバ１０と第２サーバ２０は、それぞれ、優先権フラグｔを参照してそのフラグ状態が第１サーバ１０の優先状態（Ａ）であるか第２サーバ２０の優先状態（Ｂ）であるかを確認する（ステップＳ２０３）。
【００４２】
ここでｔ＝Ａの場合、優先権のない第２サーバ２０は、第２専用フラグｂをアクセス非要求状態（０）に変更することにより、アクセス要求を一旦取り下げる（ステップＳ２０４）。
【００４３】
次に、優先権のある第１サーバ１０は、第２サーバ２０がアクセス要求を取り下げたことを確認して共有データへアクセスする（ステップＳ２０５）。優先権フラグｔは、第１サーバ１０によって共有データの使用後にｔ＝Ｂに書き換えられるので、第２サーバ２０は次に共有データへアクセスすることができる。
【００４４】
以上より、本実施の形態によれば、共有ディスク装置３０が、共有データへのアクセス要求状態又はアクセス非要求状態を示し、第１サーバ１０と第２サーバ２０のそれぞれのみにより更新可能な第１専用フラグａと第２専用フラグｂを共有データ記憶部３０１に記憶しておき、第１サーバ１０と第２サーバ２０は、それぞれ、共有データ記憶部３０１から他サーバ用の専用フラグ（第２専用フラグｂ、第１専用フラグａ）を取得し、当該他装置用の専用フラグがアクセス非要求状態の場合に共有データにアクセスするので、共有データへの相互排他的なアクセスが可能となることから、共有データの二重更新を防止することができる。
【００４５】
また、本実施の形態によれば、第１専用フラグａと第２専用フラグｂを異なるパーティションで記憶しておくので、専用フラグの同時更新によるデータ破壊を回避することができる。
【００４６】
また、本実施の形態によれば、アクセス要求状態又はアクセス非要求状態を示す専用フラグとは別に優先権フラグを共有ディスク装置３０内に保持し、この優先権フラグに基づいて共有データへアクセスするので、第１サーバ１０と第２サーバ２０でのデッドロック状態を回避することができる。
【００４７】
また、本実施の形態によれば、共有データへのアクセスを完了した際に優先権フラグｔを他サーバに書き換えるので、共有データへのアクセスの公平性を確保することができる。
【００４８】
尚、本実施の形態では、サーバクラスタシステム構成の最小単位である２つのサーバを用いて説明したが、そのサーバ数が３つ以上の場合であっても同様に処理することにより、同様の効果を得ることが可能である。
【００４９】
また、本実施の形態で説明した二重更新防止システム１は、メモリやＣＰＵを備えたコンピュータで実現することができる。また、その処理はプログラムによって実行可能である。
【符号の説明】
【００５０】
１…二重更新防止システム
１０…第１サーバ（共有データ更新装置）
１０１…アクセス制御機能部
２０…第２サーバ（共有データ更新装置）
２０１…アクセス制御機能部
３０…共有ディスク装置（共有データ記憶装置）
３０１…共有データ記憶部
Ｓ１０１〜Ｓ１０７、Ｓ２０１〜Ｓ２０５…ステップ
【図１】
2014154077.tif 000003
【図２】
2014154077.tif 000004
【図３】
2014154077.tif 000005
【図４】
2014154077.tif 000006
【図５】
2014154077.tif 000007