(57)【要約】  コンピュータ・ユニット間で記憶アクセス・シフトを実施する方法、コンピュータ・クラスタおよびコンピュータ・ユニット。冗長コンピュータ・クラスタは、複数のコンピュータ・ユニットと、共有記憶ユニットとを備える。各コンピュータ・ユニットは、コンピュータ・クラスタにおいて実行される複製されたサービスユニットによりアクセスが確立されているデータ記憶リソースを記憶する共有記憶ユニットに接続される。上記複製されたサービスユニットに関係付けられたスィッチオーバ状態が検出されたとき、サービス単位からアクセスが確立されたデータ記憶リソースが、待機状態に入るサービスユニットのレプリカにおいて先ず解除される。その後、アクティブ状態に入るサービスユニットのレプリカにおいて、データ記憶リソースに対するアクセスが確立される。その場合にのみ、サービスユニットのレプリカがアクティブとなることが許容される。本発明の利点は、ファイル・システムに対する冗長マルチノード・コンピュータ・クラスタによるアクセスの優れたパフォーマンスおよび信頼性に関する。
2007510208.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、第1コンピュータ・ユニットと、第2コンピュータ・ユニットと、共有記憶ユニットとを備えた冗長コンピュータ・クラスタにおいてスィッチオーバを実行する方法であって、前記第1コンピュータ・ユニットおよび前記第2コンピュータ・ユニットは前記共有記憶ユニットに接続され、前記共有記憶ユニットは前記冗長コンピュータ・クラスタにおいて実行される複製されたサービスユニットによりアクセスされる少なくとも一個のデータ記憶リソースを備え、
前記方法は、前記複製されたサービスユニットに関連するスィッチオーバ状態を検出する段階と、
前記少なくとも一個のデータ記憶リソースに対するアクセスを前記第1コンピュータ・ユニットによって解除する段階と、
前記少なくとも一個のデータ記憶リソースに対するアクセスを前記第2コンピュータ・ユニットによって確立する段階と、
前記複製されたサービスユニットのレプリカが前記第2コンピュータ・ユニットにおいてアクティブとなることを許容する段階とを備えて成る、
方法。
【請求項２】
前記アクセスを確立する段階および前記アクセスを解除する段階は、前記複製されたサービスユニットに関係付けられたアクセス・プロキシにより実行される、請求項１記載の方法。
【請求項３】
共有記憶ユニットはディスク記憶ユニットを備える請求項１記載の方法。
【請求項４】
前記少なくとも一個のデータ記憶リソースはファイル・システムを備え、
前記アクセスを確立する段階は前記ファイル・システムをマウントし、
前記アクセスを解除する段階は前記ファイル・システムをアンマウントする請求項１記載の方法。
【請求項５】
前記少なくとも一個のデータ記憶リソースはソフトウェア式の独立ディスク冗長アレイを備える請求項１記載の方法。
【請求項６】
前記第1コンピュータ・ユニットおよび前記第2コンピュータ・ユニットはペリフェラル・インタフェースを用いて共有記憶ユニットと接続される請求項１記載の方法。
【請求項７】
前記ペリフェラル・インタフェースは、ファイバ・チャネル、スモール・コンピュータ・システム・インタフェース、インターネット・スモール・コンピュータ・システム・インタフェース及び統合システム・インタフェースのいずれかを備える請求項６記載の方法。
【請求項８】
少なくとも、第1コンピュータ・ユニットと、第2コンピュータ・ユニットと、共有記憶ユニットとを備えた冗長コンピュータ・クラスタであって、前記第1コンピュータ・ユニットおよび前記第2コンピュータ・ユニットは前記共有記憶ユニットに接続され、前記共有記憶ユニットは前記冗長コンピュータ・クラスタにおいて実行される複製されたサービスユニットによりアクセスされる少なくとも一個のデータ記憶リソースを備え、
前記複製されたサービスユニットに関連するスィッチオーバ状態を検出する第1のスィッチオーバ制御手段と、
前記第1コンピュータ・ユニット内および前記第2コンピュータ・ユニット内のアクセス解除手段であって、前記少なくとも一個のデータ記憶リソースに対するアクセスを解除するアクセス解除手段と、
前記第1コンピュータ・ユニット内および前記第2コンピュータ・ユニット内のアクセス確立手段であって、前記少なくとも一個のデータ記憶リソースに対するアクセスを確立するアクセス確立手段と、
前記少なくとも一個のデータ記憶リソースに対してアクセスが確立した後に、前記複製されたサービスユニットのレプリカを起動する第2のスィッチオーバ制御手段と、
を備える冗長コンピュータ・クラスタ。
【請求項９】
前記アクセス確立手段および前記アクセス解除手段は、前記複製されたサービスユニットに関係付けられたアクセス・プロキシを備える請求項８記載のコンピュータ・クラスタ。
【請求項１０】
共有記憶ユニットはディスク記憶ユニットを備える請求項８記載のコンピュータ・クラスタ。
【請求項１１】
前記少なくとも一個のデータ記憶リソースはファイル・システムを備え、
前記アクセス確立手段は前記ファイル・システムをマウントし、
前記アクセス解除手段は前記ファイル・システムをアンマウントする、
請求項８記載のコンピュータ・クラスタ。
【請求項１２】
前記少なくとも一個のデータ記憶リソースはソフトウェア式の独立ディスク冗長アレイを備える請求項８記載のコンピュータ・クラスタ。
【請求項１３】
前記第1コンピュータ・ユニットおよび前記第2コンピュータ・ユニットはペリフェラル・インタフェースを用いて共有記憶ユニットに接続される請求項８記載のコンピュータ・クラスタ。
【請求項１４】
前記ペリフェラル・インタフェースは、ファイバ・チャネル、インターネット・スモール・コンピュータ・システム・インタフェース、スモール・コンピュータ・システム・インタフェース及び統合システム・インタフェースのいずれかを備える請求項１３記載のコンピュータ・クラスタ。
【請求項１５】
少なくとも一台の共有記憶ユニットに接続されると共に、前記少なくとも一台の共有記憶ユニット上の少なくとも一個のデータ記憶リソースに対するアクセスを必要とする少なくともひとつの複製されたサービスユニットを実行するコンピュータ・ユニットであって、
前記少なくともひとつの複製されたサービスユニットに関連するスィッチオーバ状態を検出する第1のスィッチオーバ制御手段と、
前記少なくとも一個のデータ記憶リソースに対するアクセスを解除するアクセス解除手段と、
前記少なくとも一個のデータ記憶リソースに対するアクセスを確立するアクセス確立手段と、
前記少なくとも一個のデータ記憶リソースに対してアクセスが確立した後に、前記少なくともひとつの複製されたサービスユニットを起動する第2のスィッチオーバ制御手段と、
前記少なくとも一個のデータ記憶リソースに対する前記アクセスを解除した後で、前記少なくともひとつの複製されたサービスユニットの状態を変更する第3のスィッチオーバ制御手段とを備えて成る、
コンピュータ・ユニット。
【請求項１６】
前記アクセス解除手段および前記アクセス確立手段は、前記サービスユニットに関係付けられたアクセス・プロキシを備える請求項１５記載のコンピュータ・ユニット。
【請求項１７】
記憶ユニットがディスク記憶ユニットを備える請求項１５記載のコンピュータ・ユニット。
【請求項１８】
前記少なくとも一個のデータ記憶リソースはファイル・システムを備え、
前記アクセス確立手段は前記ファイル・システムをマウントし、
前記アクセス解除手段は前記ファイル・システムをアンマウントする請求項１５記載のコンピュータ・ユニット。
【請求項１９】
前記少なくとも一個のデータ記憶リソースはソフトウェア式の独立ディスク冗長アレイを備える請求項１５記載のコンピュータ・ユニット。
【請求項２０】
コンピュータ・ノードがペリフェラル・インタフェースを用いて記憶ユニットと接続される請求項１５記載のコンピュータ・ユニット。
【請求項２１】
前記ペリフェラル・インタフェースは、ファイバ・チャネル、スモール・コンピュータ・システム・インタフェース、インターネット・スモール・コンピュータ・システム・インタフェース及び統合システム・インタフェースのいずれかを備える請求項２０記載のコンピュータ・ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、重要な環境に設けられるコンピュータ・システムに関する。特に本発明は、冗長コンピュータ・クラスタと、たとえばサーバ・ノードなどの各コンピュータ・ユニット間において、記憶アクセス・シフトを用いてこのコンピュータ・クラスタにおけるスィッチオーバ(switchover)を円滑に行う方法とに関する。
【背景技術】
【０００２】
通信ネットワークにおいて、または一般に他の任意の重要なシステム環境において、信頼性は大事な要因である。コンピュータのハードウェアおよびソフトウェアには障害が起こり得るが、エンドユーザが知覚するサービスは継続的に中断なく提供されるべきである。トランザクションにおける中断が最小限とされることが重要である。トランザクションの例としては、データ通信セッションおよびデータベース・トランザクションが挙げられる。更にコンピュータ・システムにおいて管理活動は、エンドユーザの感覚に影響を与えずに行わなければならない。たとえば、できるだけユーザに認識されずに且つ迅速に、サブシステム(subsystem)を起動、起動解除、付加、除去および交換し得ねばならない。
【０００３】
重要な環境においては、ハードウェアおよび／またはソフトウェアを備える複数のサブシステムが複製され、障害が生じたサブシステムに置き換わるバックアップ・サブシステムが準備される。このようなサブシステムは多くの場合、ホットスワップ可能(hot-swappable)である。各サブシステムは、アクティブな各サブシステムにひとつのバックアップ・サブシステムに対応する様に、または、一群のサブシステムにひとつのバックアップ・サブシステムが対応する様に複製されてよい。この場合にサブシステムとは、少なくともひとつのハードウェア・ユニットを備えるセット(set)、および／または、少なくともひとつのソフトウェア・コンポーネントを備えるセットを意味する。ハードウェア・ユニットは、たとえば、プロセッサ・ユニット、インタフェース・カードおよび通信回線であり得る。ソフトウェア・コンポーネントは、たとえば、プロセッサ・ユニットにおいて実行されている一群のプロセスまたは一群のスレッドであり得る。
【０００４】
サブシステムはまた、ソフトウェアおよびハードウェアの双方を備えることもある。たとえば通信回線サブシステムは、回線インタフェース・カードと、関連するプロセッサ・ユニットおいて実行されている一群のプロセスとを備え得る。典型的には多数の同様の回線インタフェース・カードがあり、その各々は、回線インタフェース・カードのハードウェアと、該回線インタフェース・カードが関連するプロセッサ・ユニットにおいて実行されているソフトウェアとを含むサブシステムを備える。典型的に、ソフトウェア・プロセスの場合におけるバックアップ・サブシステムすなわちレプリカは、このレプリカと対をなすアクティブなプロセスとは別のコンピュータ・ユニットにおいて実行される。
【０００５】
サービス・アベイラビリティ・フォーラム(SAフォーラム)と称されるコンソーシアムがあり、これは２つの階層の標準的なキャリアグレード・インタフェースを開発している。サービスの連続性および供与を喪失せずに中断なくサービスを提供する能力を有するならば、そのシステムはキャリアグレード(carrier grade)と称される。SAフォーラム仕様は、アプリケーション・インタフェースおよびプラットフォーム・インタフェースを有する。アプリケーション・インタフェースは、アプリケーション・ソフトウェアの処理を複数の演算要素に亙り分散させるために、このアプリケーション・ソフトウェアに対して使用される標準的な一群のツールに対するアクセスを提供する。各ツールは、一切のユーザに対するサービスの連続性および供与を喪失せずに、これらの要素の障害に対応する。各ツールは、アプリケーション・インタフェース仕様に適合する管理ミドルウェアを介して提供される。
【０００６】
プラットフォーム・インタフェースは、オペレーティング・システム・レベルに対してアクセスするために使用される。その目的は、異なるプラットフォーム間でオペレーティング・システム・レベルの差を隠すことである。SAフォーラムの仕様概念においては、少なくともひとつのサービスユニット(service unit)(SU)を備えるサービス・グループ(service group)(SG)がある。
【０００７】
一方、各SUは、少なくとも一個のコンポーネントを備える。コンポーネントは、ソフトウェア・プロセスまたはスレッドであり得る。コンポーネントは、自身に関係付けられたハードウェア・ユニットを有し得る。換言するとSUは、アクティブ・サブシステム(active subsystem)であり得るか、または、アクティブ・サブシステムに対する置換物として作用する冗長サブシステムであり得るサブシステムである。SGにおいてはアクティブ状態にある少なくともひとつのSUと待機状態にある少なくともひとつのSUとがあるという意味において、SUが複製される。
待機状態にあるSUは、アクティブ状態にあるSUのバックアップ・レプリカとして作用する。上記アクティブSUが不調となりまたは保守の為に停止されるべきであれば、レプリカSUがアクティブとなると共に不調の又は停止されたSUのタスクを引き継ぐ。
本明細書中において、SAフォーラム仕様による上記概念は例示目的で使用される。該仕様は、他の等しい概念により置き換えられ得る。故に、本発明およびその各実施例は、明示的にSAフォーラム仕様に準拠するシステムおよび実施方式に限られない。
【０００８】
次に、上述のSAフォーラム仕様概念を示す図１を参照する。図１においては、コンピュータ・ユニット110および112を有する冗長２ユニット・コンピュータ・クラスタがある。各コンピュータ・ユニットは、通信チャネル104を用いて接続される。通信チャネル104はたとえば、イーサネット（登録商標）・セグメントまたはPCIバスとされ得る。３つのSGすなわちSG140〜144がある。各SGには２つのSUがある。SG140にはSU120および130があり、SG142にはSU122およびSU132があり、且つ、SG144にはSU124および134がある。SU120、132および124はアクティブ状態にあり、且つ、SU130、122および134は待機状態にある。各アクティブSUに対し、待機状態にあるひとつのスペアSUがある。
【０００９】
たとえば、SU132における一定の障害または管理活動のためにSG142においてスィッチオーバが行われる場合には、SU122がアクティブとなりSU132のタスクを引き継ぐ。SU132の状態は“待機”もしくは“存在せず”、または、SU132における状況を反映する他の状態となる。コンピュータ・ユニット・レベルにおいて障害が起きてコンピュータ・ユニット110が不調となれば、コンピュータ・ユニット112内のSU130〜134は、不調なコンピュータ・ユニット110内のそれぞれ対応するSU120〜124の代わりとならねばならない。
【００１０】
たとえばアクティブ／待機冗長性による冗長コンピュータ・クラスタにおいて冗長アプリケーションは、ソフトウェア制限の故に、一度にひとつのユニットすなわちノードを介してのみ所定の共有データ記憶リソースにアクセスするのが通常である。これに関して、データ記憶リソース(data storage resource)とは、たとえばファイル・システム(FS)、ソフトウェア式RAID(独立ディスクの冗長アレイ)、または、論理ボリューム管理方式(Logical Volume Management)(LVM)の論理ボリュームを意味する。
これに関し、データ記憶アクセス確立とは、たとえばファイル・システム(FS)のマウンティング、ソフトウェア式RAID(独立ディスクの冗長アレイ)の始動、または、論理ボリューム管理方式(LVM)の論理ボリュームの配置を意味する。
【００１１】
たとえばひとつのユニットにおいてソフトウェア式RAIDが始動されたとき、それはオペレーティング・システム・レベルにおいては上記ソフトウェア式RAIDに対する読み取りまたは書き込みを行う準備が確立されたことのみを意味することを銘記されたい。ファイル・システムは通常は早期に生成されていることから、それはソフトウェア式RAID設定に関して問題ではない。データ記憶リソースに対する読取り／書込みアクセスは、たとえばファイル・システムのクラッシュまたはデータ記憶リソースの一切の矛盾的な状態を回避するために、一度にひとつのユニットからのみ確立され得る。
【００１２】
データ記憶リソースの読取り／書込みアクセスとは、このデータ記憶リソースに対するアクセスを確立したエンティティがこのデータ記憶リソースにおけるデータを改変することを許容するアクセスを意味する。もしひとつのユニットが所定のデータ記憶リソースに対して読取り／書込みアクセスを確立したなら、他のユニットは通常は、該データ記憶リソースに対する読取りアクセスでさえ確立できない。このことは特に、ファイル・システムの読取り／書込みマウンティングに当てはまる。
【００１３】
読取りアクセス確立の場合には、アクセス確立を実施したエンティティに対し、データ記憶リソースの読取りのみが許容される。
ソフトウェア式RAIDはユーザの観点からは、単一ディスク上のパーティションの如きブロック・デバイスの様に挙動する。換言すると、それは仮想デバイスである。ファイル・システムは他の任意のブロック・デバイスに対する様にソフトウェア式RAID上へ生成され得る。換言すると、それはフォーマットされ得る。ファイル・システムの例は、Linux（登録商標）オペレーティング・システムで知られたext2およびReiserfsである。
【００１４】
Linux（登録商標）において所定のファイル・システムのマウンティングは、該ファイル・システムに包含されたディレクトリ構造を、マウンティングを実施するコンピュータのディレクトリ構造にアタッチする段階を備える。前述のディレクトリ構造は、上記ディレクトリ構造内の一定のサブディレクトリである特定のマウント箇所にマウントされる。マウンティングの間、記憶ボリュームから読み出されたファイル・システムのディレクトリ構造はオペレーティング・システムにより少なくとも部分的に、コンピュータの揮発性メモリにキャッシュされ得る。マウンティングの間に記憶ボリュームからは、たとえばディスク空間割当て情報などの他の一定のファイル・システム情報も読み出されキャッシュされてもよい。ファイル・システムのマウンティングは本質的に、Microsoft Windows（登録商標）の如き任意の現存のオペレーティング・システムと同様である。それらの差は主として、マウントされたファイル・システム上のファイルが識別されるメカニズムに関連する。たとえばWindows（登録商標）では、各ファイル・システムを単一のディレクトリ・ツリーに対してアタッチする代わりに、マウントされたファイル・システムがA、D、E、Fなどの文字を用いて識別される。通常、文字Cはローカル・ハードディスク・ドライブを表す。
【００１５】
本明細書においてマウンティングとは、マウントされるべきファイル・システムが、マウンティングを実施したシステムにおけるオープン(open)、読取り、書込みおよびクローズ(close)などの、一般的なファイル・アクセス用オペレーティング・システム・サービスの準備ができることを意味する。ファイル・アクセス用オペレーティング・システム・サービスは、大容量二次的記憶装置の代わりに、個別に識別可能なファイルに関して作用する。
【００１６】
所定のひとつのファイル・システムに対し、このファイル・システムを読取りのためにのみマウントする様に複数のユニットがアクセスすることは可能である。実際には、ファイル・システムにアクセスしてその読取り／書込みマウントを所有するのは、アクティブ・ユニットまたはアクティブ・ソフトウェア・エンティティ、すなわちアクティブ・サブシステムである。同様に、ソフトウェア式RAIDの場合、このソフトウェア式RAIDに対する読取り／書込みアクセスを確立して所有するのは、アクティブ・ユニットまたはアクティブ・ソフトウェア・エンティティである。
【００１７】
SAフォーラムの用語においてこれは、アクティブSUがデータ記憶リソースに対する読取り／書込みアクセスを所有することを意味する。このことは、それが例えばファイル・システム・マウント、ソフトウェア式RAIDアクセスまたはLVMアクセスを所有することを意味する。アクティブ・エンティティすなわちアクティブSUが不調となれば、または、たとえばソフトウェアのアップグレードまたは他の任意の管理行為の故に操作者がアクティブ／待機役割を切換えるべきであれば、データ記憶リソース・アクセスは、従前のSUから新たなSUへと、すなわち通常は第1ユニットから第2ユニットへと安全にシフトされねばならない。
【００１８】
次に、上記で論じられた手法を例示する図２を参照する。図２には、コンピュータ・ユニット110および112を有する冗長２ユニット・コンピュータ・クラスタがある。上記各コンピュータ・ユニットは、ローカル・エリア・ネットワーク(イーサネット（登録商標）)である通信チャネル104を用いて接続される。各コンピュータ・ユニットは、高帯域幅アクセスを提供するファイバ・チャネル202を用いてディスク記憶ユニット200に接続される。
【００１９】
ディスク記憶ユニットはボリューム250、252および254を有する。各ボリュームには夫々、ボリューム・ラベルV1、V2およびV3が割当てられている。この場合にボリュームは、実際には、一台のハードディスク・ドライブとされ、一群のハードディスク・ドライブとされ、または、一台のハードディスク・ドライブの特定個数のシリンダから成るハードディスク・ドライブ内のパーティションとされ得るアブストラクション(abstraction)である。
【００２０】
ボリュームはまた、RAID論理ボリュームともされ得る。ボリュームの概念は、論理的に連続的に見える記憶装置のブロックであって標準的なメカニズムを用いてアクセスされ得るブロックを表す。ひとつのファイル・システムは、複数のボリューム上へと生成され得る。ファイル・システムは、たとえばLinux（登録商標）のext2またはReiserfsとされ得る。ファイル・システムの他の例は、Microsoft Windows（登録商標）オペレーティング・システムのNTFSまたはFAT32である。ファイル・システムは、そのボリューム上におけるディレクトリ、ファイル、および、アクセスデータ構造、ならびにそれらの記憶フォーマットを備える。
【００２１】
ボリューム250、252および254上には、ファイル・システム260、262および264が夫々生成されている。ファイル・システムの生成段階の間においては、ボリュームに対してファイル・システム・データ構造が割当てられ且つ生成される。図２の場合、ファイル・システム260、262および264はLinux（登録商標）のext2ファイル・システムである。コンピュータ・ユニット110および112は、それぞれオペレーティング・システム220および222の下で作動する。
オペレーティング・システム220は、読取り／書込みマウントされたファイル・システム260と、読取りマウントされたファイル・システム264とを有する。このことは図２において、上記オペレーティング・システムと各ファイル・システムとの間の矢印の方向を用いて示される。一方、オペレーティング・システム222は読取り／書込みマウントされたファイル・システム262と、読取りマウントされたファイル・システム264とを有する。このことは、あるユニットが所定のファイル・システムを読取り／書込みマウントしたなら他のユニットは該ファイル・システムをマウントし得ないという原理を示す。もしマウントを行う各ユニットにより所定のボリュームが読取りマウントだけされるなら、数個のユニットがこのボリュームをマウントし得る。
【００２２】
コンピュータ・ユニット110において実行されているアクティブSUが待機状態へと移行すべきであり且つコンピュータ・ユニット112において実行されているパッシブSUがアクティブとなるべきときに、もしそのSUがファイル・システム260に対する読取り／書込みアクセスを必要とするならば問題が生ずる。コンピュータ・ユニット112において実行されているバックアップSUがアクティブ状態に入るとき、ファイル・システム260はコンピュータ・ユニット112にマウントされていないままであり且つSUはファイル・システム260から読取り又はファイル・システム260に対して書込みを行うことができない。
図２に示す問題は、ファイル・システムのマウンティングが、たとえばLinux（登録商標）レベルなどのネイティブ・オペレーティング・システムにおいて行われることである。待機SUがアクティブSUに置き換わるというSGレベルにてスィッチオーバが行われるとしても、そのオペレーティング・システムには影響が及ばず又は情報が伝えられ得ない。したがってこのようなSGレベルでのスィッチオーバは、オペレーティング・システム・レベルからは認識されない。
【００２３】
上述の問題を克服するために、先行技術からの幾つかの解決策が適用され得る。解決策のひとつは、ネットワーク・ファイル・システム(NFS)を用いてコンピュータ・ユニット110および112からファイル・システム260および262を使用することである。NFSにおいては、両方のコンピュータ・ユニットが両方のファイル・システムに対して読取り／書込みモードで同時にアクセスできる。但し、ファイル・システム内の別個のファイルのみが、同時にアクセス可能となる。ユーザが所定のファイルを書込みのためにオープンするときは常に、このファイルは他の併存するユーザに対しては読取りのみでアクセス可能となる。
【００２４】
次に、NFSなどのネットワーク・ファイル・システムの用法を示す図３を参照する。図３には、コンピュータ・ユニット110および112を有する冗長２ユニット・コンピュータ・クラスタがある。各コンピュータ・ユニットは、通信チャネル104を用いて接続される。通信チャネル104はたとえば、イーサネット（登録商標）・セグメントまたはPCIバスとされ得る。コンピュータ・ユニット110および112は、NFSを実行するファイル・サーバ300に対して接続される。ファイル・サーバ300は、ファイバ・チャネルを用いてディスク記憶ユニット200に対して接続される。
ディスク記憶ユニット200は、図２と同様にファイル・システム260および262を有する。ファイル・サーバ300は、実際には、コンピュータ・ユニット110および112などのリモート・クライアントに、ファイル・サーバ300上にのみマウントされたファイル・システムに対して読取り／書込みアクセスを確立することを可能とするNFSを有する。NFSのマウンティングは、リモート・クライアントにおけるローカル・マウンティングを擬態する。今、コンピュータ・ユニット110は両方のファイル・システム260および262に対して読取り／書込みNFSマウントを実行することが可能である。また、コンピュータ・ユニット110からファイル・システム260および262に対しては、読取り／書込みNFSマウント320および322がある。同様に、コンピュータ・ユニット112からファイル・システム260および262に対しては、読取り／書込みNFSマウント324および326がある。
【００２５】
図３に示される先行技術のNFSマウントに基づく解決策の欠点は、パフォーマンスが不十分なことである。コンピュータ・ユニット110および112がディスク記憶ユニット200に対して接続され、他のコンピュータ・ユニットおよびその介在ネットワーク・ファイル・システム・ソフトウェアなしに、該コンピュータ・ユニット110および112がディスク記憶ユニット200に対し／から大量のディスク・ブロックを移動し得る場合と比較すると、ファイル・サーバ300およびNFSの使用によればファイル・システム260および262に対するアクセスが相当に遅くなる。これに加え、各ユニットが読取り／書込みアクセス・モードにおいて、ファイル・システムなどの同一の論理記憶エンティティに対して同時にアクセスするときに重複時間が無い様に、ディスク・アクセスは従前のSUから新たなSUへと安全にシフトされねばならない。この様にして、ファイル・システムの一貫性が保持され得る。図３に示される先行技術のNFSマウントに基づく解決策の別の欠点は、ファイル・サーバ300がシステムにおける単一障害点(single point of failure)になることである。ファイル・サーバ300が複製されるとしても図２におけるのと同様の問題が生ずる、と言うのも、ファイル・サーバ300に対するレプリカはファイル・システム260および262の同時的な読取り／書込みマウントを必要とするからである。故に、状況は本質的に改善されていない。
【発明の開示】
【００２６】
本発明の目的は、上述の問題を解決することである。特に本発明の目的は、スィッチオーバの間において各サービスユニット間での読取り／書込みマウントの確実な移行を確保することである。
【００２７】
本発明は、少なくとも、第1コンピュータ・ユニットと、第2コンピュータ・ユニットと、共有記憶ユニットとを備える冗長コンピュータ・クラスタにおいてスィッチオーバを実行する方法に関する。第1および第2コンピュータ・ユニットは共有記憶ユニットに接続され、この共有記憶ユニットは、コンピュータ・クラスタにおいて実行される複製されたサービスユニットによりアクセスされる少なくとも一個のデータ記憶リソースを備える。
この方法においては、複製されたサービスユニットに関連するスィッチオーバ状態が検出され、少なくとも一個のデータ記憶リソースに対するアクセスが第1コンピュータ・ユニットにより解除され、上記少なくとも一個のデータ記憶リソースに対するアクセスが上記第2コンピュータ・ユニットにより確立され、且つ、第2コンピュータ・ユニットにおいてはサービスユニットのレプリカがアクティブとなることが許容される。
【００２８】
本発明はまた、少なくとも、第1コンピュータ・ユニットと、第2コンピュータ・ユニットと、共有記憶ユニットとを備える冗長コンピュータ・クラスタにも関する。上記第1および第2コンピュータ・ユニットは共有記憶ユニットに接続され、この共有記憶ユニットは、上記コンピュータ・クラスタにおいて実行される複製されたサービスユニットによりアクセスされる少なくとも一個のデータ記憶リソースを備える。コンピュータ・クラスタは、複製されたサービスユニットに関連するスィッチオーバ状態を検出する第1のスィッチオーバ制御手段と、第1および第2コンピュータ・ユニット内のアクセス解除手段であって少なくとも一個のデータ記憶リソースに対するアクセスを解除するアクセス解除手段と、第1および第2コンピュータ・ユニット内のアクセス確立手段であって少なくとも一個のデータ記憶リソースに対するアクセスを確立するアクセス確立手段と、少なくとも一個のデータ記憶リソースに対するアクセスが確立した後にサービスユニットのレプリカを起動する第2のスィッチオーバ制御手段と、を更に備える。
【００２９】
本発明はまた、少なくとも一台の共有記憶ユニットに接続されるコンピュータ・ユニットにも関する。コンピュータ・ユニットは、少なくとも一台の共有記憶ユニット上の少なくとも一個のデータ記憶リソースに対するアクセスを必要とする少なくともひとつの複製されたサービスユニットを実行する。コンピュータ・ユニットは、少なくともひとつの複製されたサービスユニットの内のいずれかのサービスユニットに関連するスィッチオーバ状態を検出する第1のスィッチオーバ制御手段と、少なくとも一個のデータ記憶リソースに対するアクセスを解除するアクセス解除手段と、少なくとも一個のデータ記憶リソースに対するアクセスを確立するアクセス確立手段と、少なくとも一個のデータ記憶リソースに対するアクセスが確立した後に少なくともひとつの複製されたサービスユニットを起動する第2のスィッチオーバ制御手段と、少なくとも一個のデータ記憶リソースに対するアクセスを解除した後にサービスユニットの状態を変更する第3のスィッチオーバ制御手段と、を更に備えて成る。
【００３０】
本発明の一実施例においてアクセス確立手段、アクセス解除手段およびスィッチオーバ制御手段は、たとえばプロセス、スレッドまたはサブルーチンなどのソフトウェア・コンポーネントである。本発明の一実施例においてアクセスの確立およびアクセスの解除は、データ記憶リソースに対する読取り／書込みアクセスを使用する各サービスユニットなどと関係付けられたアクセス・プロキシにより実行される。アクセス・プロキシは、サービスユニット内のコンポーネントとしてよい。このコンポーネントは、上記サービスユニットの一部分としてスィッチオーバ制御システムにより処理されるプロセスまたはスレッドとされ得る。スィッチオーバ制御システムは、いくつかのスィッチオーバ制御サービスすなわち手段を備えてよい。サービスユニットの状態が変更されつつあるとき、上記アクセス・プロキシもまたスィッチオーバ状態を通知される。このようにしてアクセス・プロキシは、アクセス確立またはアクセス解除が実施されるべきときを検出し得る。このアクセス・プロシキを設けることによってオペレーティング・システム・レベルでソフトウェアを変更する必要はない。
【００３１】
本発明の一実施例において、データ記憶リソースはファイル・システムであり、且つ、ファイル・システムに対するアクセスの確立はファイル・システムのマウンティングである。同様に、ファイル・システムに対するアクセスの解除は、ファイル・システムのアンマウンティングである。
【００３２】
本発明の一実施例において、共有記憶ユニットはいくつかの物理的記憶ユニットから成る論理ユニットである。この実施例においてデータ記憶ユニットは、たとえば、RAIDが使用されるならばRAID論理ユニットとされ得る。一実施例において、共有記憶ユニットは単一の物理的記憶ユニットである。
【００３３】
本発明の一実施例において、共有記憶ユニットはディスク記憶ユニットである。データ記憶リソースは、たとえば、ソフトウェア式の独立ディスク冗長アレイ(RAID)、または、ファイル・システムとされ得る。本発明の一実施例において第1および第2コンピュータ・ユニットは、たとえばファイバ・チャネル(FC)、スモール・コンピュータ・システム・インタフェース(SCSI)、インターネット・スモール・コンピュータ・システム・インタフェース(iSCSI)または統合システム・インタフェース(ISA)などのペリフェラル・インタフェースを用いて、共有記憶ユニットと接続される。
【００３４】
本発明の利点は、データ記憶リソースに対する冗長マルチユニット・コンピュータ・クラスタによるアクセスの優れたパフォーマンスおよび信頼性に関する。マウントを行うコンピュータ・ユニットと共有記憶ユニットとの間において、中間ユニットおよびネットワーク・ファイル・システム・ソフトウェアの使用が回避される。このため大きな遅延が回避される。コンピュータ・クラスタにおけるスィッチオーバの実行は、更に融通性が高くなる。これは、サービスユニットと、このサービスユニットから読取り／書込みアクセスが確立されているデータ記憶リソースとを関係付けることにより達成される。故にデータ記憶リソースのアクセスのシフトは、サービスユニットと、サービスユニットにおけるコンポーネント・サービス・インスタンスとの状態に結び付けられる。更に、別個のサービス・グループのサービスユニットが個別にスィッチオーバを実行し得ることが可能となる。
本発明の更なる理解のために提供されて本明細書の一部を構成する添付図面は、本発明の実施例を示すと共に、明細書の記載とともに本発明の原理の説明を助ける。
【発明を実施するための最良の形態】
【００３５】
次に、添付図面に例を示す本発明の実施例を、以下詳細に説明する。
図４は、コンピュータ・ユニット110および112を有する冗長２ユニット・コンピュータ・クラスタを備える本発明の一実施例を示すブロック図である。本発明の他の実施例においては、他の任意の台数のコンピュータ・ユニットとしてもよい。
上記各コンピュータ・ユニットは、ローカル・エリア・ネットワーク(イーサネット（登録商標）)である通信チャネル104を用いて接続される。本発明の他の実施例において、上記通信チャネルは他の任意の技術に基づくものであってもよい。上記各コンピュータ・ユニットは、高帯域幅アクセスを提供するチャネル202を用いて記憶ユニット200に接続される。
【００３６】
チャネル202は、たとえば、ファイバ・チャネル(FC)、スモール・コンピュータ・システム・インタフェース(SCSI)インタフェース、インターネットSCSI(iSCSI)または統合システム・アーキテクチャ(ISA)バスに基づくものであってよい。記憶ユニット200は、少なくとも一台のハードディスク・ドライブを備えるハードディスク・ユニットである。本発明の他の実施例において記憶ユニット200は、ハードディスク・ドライブ、光ディスク、テープ・ユニットまたはフラッシュ・メモリなどの任意の形式の不揮発メモリに基づくものであってよい。記憶ユニット200は、データ記憶リソース260および262を有する。上記データ記憶リソースは例えば、ファイル・システム、ソフトウェア式RAIDまたはLVM論理ボリュームとされ得る。
【００３７】
３つのSGすなわちSG400〜404がある。SG400はSU410および412を有し、SG402はSU412および422を有し、且つ、SG404はSU414および424を有する。SU420〜424はSU410〜414に対して複製されたレプリカである。もしSU410〜414の内のひとつがアクティブ状態から除かれるとき、SU420〜424のうち、除かれるSUに対応するレプリカがアクティブ状態へともたらされる。図４においてSU410〜414はアクティブ状態にあるが、SU422〜424は待機状態にある。SU410は、データ記憶リソース262に対する読取り／書込みアクセスを確立している。したがってSU410においては、データ記憶リソース262に対する読取り／書込みアクセス432が存在する。もしデータ記憶リソース262がファイル・システムであれば、SUはそれを読取り／書込みマウントしている。SU414は、データ記憶リソース260に対する読取り／書込みアクセスを確立している。故にSU414においては、データ記憶リソース260に対する読取り／書込みアクセス430が存在する。図４に示された状況は、SU414がアクティブ状態を離れ且つSU424がアクティブ状態に入るスィッチオーバが行われるまで、そのままである。
【００３８】
スィッチオーバが行われた場合、読取り／書込みアクセス430は、SU424へと移行すなわちシフトされねばならない。アクセス・プロキシ450、452、460および462がある。アクセス・プロキシは、データ記憶リソースに対する読取り／書込みアクセスがアクティブSUからパッシブSUに対して信頼性高く且つある統制の下で移行されることを確実とせねばならない。
アクティブSUおよびパッシブSUが読取り／書込みアクセス・モードにおいて同時に同一のデータ記憶リソースにアクセスするとき、重複時間が存在してはならない。この様にして、ファイル・システム（概略的にはデータ記憶）が矛盾しないように維持される。
【００３９】
本発明の一実施例において上記アクセス・プロキシは、コンピュータ・ユニットにおいて実行されているプロセスまたはスレッドなどのソフトウェア・コンポーネント・インスタンスである。アクセス・プロキシは、所定のSGに関連するスィッチオーバを実行するとの判断が為されたときに、アクティブ状態を離脱しようとするアクティブSUにおいて呼び出される。データ記憶リソースに対する少なくともひとつの読取り／書込みアクセスを所有するアクティブSUの各々に対し、ひとつのアクセス・プロキシがある。本発明の一実施例においては、各SUが幾つの読取り／書込みアクセスを所有するかに関わりなく、SU毎にひとつのアクセス・プロキシがある。
【００４０】
同様に、待機SU毎にもひとつのアクセス・プロキシがある。待機SUは、アクティブ状態に入ると直ちにデータ記憶リソースに対する少なくともひとつの読取り／書込みアクセスを所有する。たとえばSG404においてSU414はアクセス・プロキシ452を有する、と言うのも、このSUはデータ記憶リソース260に対する読取り／書込みアクセスを確立したために読取り／書込みアクセス430を有するからである。
図４においては、コンピュータ・ユニット110にスィッチオーバ制御サービス470〜474があり、および、コンピュータ・ユニット112にスィッチオーバ制御サービス480〜484がある。スィッチオーバ制御サービス470〜474は、コンピュータ・ユニット110における各サービスユニットに関連するタスクを管理する。同様に、スィッチオーバ制御サービス480〜484はコンピュータ・ユニット112における各サービスユニットに関連するタスクを管理する。
【００４１】
スィッチオーバ制御サービス470および480のタスクは、夫々、サービスユニット410〜414および420〜424のうちのいずれかに関連するスィッチオーバ状態を検出することである。スィッチオーバ制御サービス472および482のタスクは、夫々、サービスユニット410〜414および420〜424のうちのいずれかを起動することである。サービスユニットは、そのサービスユニットが必要とするデータ記憶リソースに対するアクセスの確立に成功した後に、アクティブ状態へともたらされ得る。
【００４２】
スィッチオーバ制御サービス474および484のタスクは、夫々、サービスユニット410〜414および420〜424から読取り／書込みアクセスが確立されていたデータ記憶リソースに対するアクセスの解除に成功した後に、このサービスユニットのアクティブ状態を変更することである。典型的に、アクティブ状態は待機状態または障害状態へと変更される。
【００４３】
本発明の一実施例においてスィッチオーバ制御サービス470〜474は、コンピュータ・ユニット110内の１つのサービスによって実行してよい。この場合にスィッチオーバ制御サービス470〜474は、１つのスィッチオーバ制御サービスに関連する、単なる異なるタスクもしくはプロシージャである。同様に、本発明の同一実施例において、スィッチオーバ制御サービス480〜484はコンピュータ・ユニット112内の１つのサービスにより実施される。各スィッチオーバ制御サービスは、ミドルウェアおよび／またはオペレーティング・システムの一部として実現され得る。
【００４４】
図５は、SU414を待機状態に入れ且つSU424をアクティブ状態に入れるスィッチオーバが起きたときの図４の状況を示すブロック図である。SU410においてはデータ記憶リソース262に対する読取り／書込みアクセス432が残存しているが、図４の読取り／書込みアクセス430は、今やデータ記憶リソース260に対するSU424の新たな読取り／書込みアクセス500で置き換えられている。
【００４５】
図６は、図４または図５のコンピュータ・クラスタにおける本発明に係るデータ記憶リソース・アクセス・シフト方法の一実施例を示すフローチャートである。図６は、第1SUから第2SUへの全体的アクセス・シフト手順と、アクセス・プロキシにより行われる動作を示している。
本発明の一実施例においてSU414に関連するスィッチオーバ状態は、SG404に対するスィッチオーバ制御を管理するスィッチオーバ制御サービス470によって、SU414の部分において検出される。
【００４６】
スィッチオーバ制御サービス470は、スィッチオーバ制御サービス472および474と協力して作用する。スィッチオーバ制御サービス474のタスクは、その管理において、SU414または他のいずれかのSUにおける全てのソフトウェア・コンポーネントを、異なる状態（この場合には待機状態）へと入る準備をさせることである。スィッチオーバ制御サービス470、472および474は、他のSGおよびSUに対するスィッチオーバ制御もまた管理し得る。
SU414が待機状態に入り且つSU424がアクティブ状態に入るとき、アクセス・プロキシ452はスィッチオーバ制御サービス470から信号を受信する。スィッチオーバ制御サービス470、472および474は夫々、オペレーティング・システム220および222の一部であり得るか、または、ミドルウェア・ソフトウェア・コンポーネントなどの別個のサービスであり得る。
【００４７】
ステップ600においてアクセス・プロキシ452は、スィッチオーバが起きるときにこのプロキシを呼び出すスィッチオーバ制御サービス470からの信号を待つ。またアクセス・プロキシ・プロセスが、このステップにおいて立ち上げられても良い。
ステップ602においてアクセス・プロキシ452は、SU414から読取り／書込みアクセスが確立されていたデータ記憶リソース(SR)に対するアクセスを解除する。データ記憶リソースがファイル・システムであれば、このことは、アクセス・プロキシ452がそのファイル・システムをアンマウントすることを意味する。これは、たとえばアンマウントと称されるLinux（登録商標）システム・サービスなどのファイル・システムのアンマウンティングを行うべきオペレーティング・システム・サービスの呼び出しを伴う。データ記憶リソースがソフトウェア式RAIDであれば、上記アクセス・プロキシはそれを解除し、換言すると、それに対するアクセスを解除する。ソフトウェア式RAIDを解除すると、それは別のSUからのアクセス確立に対して利用可能となる。
【００４８】
本明細書中では簡単のために、アクセスが確立された少なくとも一個のデータ記憶リソースがあることが仮定される。ステップ604においてアクセス・プロキシ452は、SU414から読取り／書込みアクセスが確立されている更なるデータ記憶リソースがあるか否かをチェックする。もしそうであれば、処理はステップ602へと継続する。
本発明の一実施例においては、SU414または代替的にSU424から読取り／書込みアクセスが確立されているデータ記憶リソースに関する情報を含むシステム・ファイルまたはテーブルがある。換言すると、SG404から読取り／書込みアクセスが確立されたデータ記憶リソースがリスト化される。
本発明の一実施例においてアクセス・プロキシ452は、全ての必要なデータ記憶リソースに対するアクセスが解除されたこと、すなわち、これらデータ記憶リソースが解除され他の箇所からのアクセス確立に対して利用可能とされたことを、スィッチオーバ制御サービス474に対して通知する。
【００４９】
ステップ606においては、SU414を待機状態とすることに関連する残存タスクが、たとえばスィッチオーバ制御サービス474により実行される。本発明の一実施例においてアクセス・プロキシ462に対するプロセスは、SU424がアクティブ状態に入ろうとしておりデータ記憶リソースに対するアクセスの確立をプロキシが開始すべきことを表す信号によって呼び出される。この信号はたとえば、スィッチオーバ制御サービス480から到来する。本発明の一実施例においてスィッチオーバ制御サービス470〜474および480〜484は、通信チャネル104上でメッセージを交換する。
【００５０】
ステップ608においてアクセス・プロキシは、SU424から読取り／書込みアクセスが確立されるべきデータ記憶リソースに対するアクセスを確立する。もしデータ記憶リソースがファイル・システムであれば、これは、マウントなどのファイル・システム・マウンティングを行うべきオペレーティング・システム・サービスの呼び出しを伴う。本明細書中では簡単のために、アクセスが確立されるべき少なくとも一個のデータ記憶リソースがあることが仮定される。ステップ610においてアクセス・プロキシ462は、SU424からの読取り／書込みアクセスが確立されるべき更なるデータ記憶リソースがあるか否かをチェックする。もしそうであれば、処理はステップ608へと継続する。ステップ612においては、SU424をアクティブ状態とすることに関連する残存タスクが、たとえばスィッチオーバ制御サービス482により実行される。たとえばスィッチオーバ制御サービス482はアクセス・プロキシ462により、必要とされたデータ記憶リソースの全てに対するアクセスの確立に成功したことを通知され得る。
【００５１】
当業者であれば、技術の進歩により本発明の基本的着想は種々の様式で実現され得ることは明らかであろう。故に本発明およびその実施例は、上述の例に限られず、代わりに、各請求項の有効範囲内で変更され得る。
【図面の簡単な説明】
【００５２】
【図１】先行技術の冗長２ユニット・コンピュータ・クラスタと、SAフォーラム・アーキテクチャのサービスユニット(SU)およびサービス・グループ(SG)の概念とを示すブロック図である。
【図２】共有ディスク記憶ユニットを用いる先行技術の冗長２ユニット・コンピュータ・クラスタを示すブロック図である。
【図３】共通ファイル・サーバ・ユニットを介してネットワーク・ファイル・システムを用いる冗長２ユニット・コンピュータ・クラスタを示すブロック図である。
【図４】スィッチオーバ前における、３つのサービス・グループと２つのデータ記憶リソースとを備えた、本発明に係る冗長２ユニット・コンピュータ・クラスタを示すブロック図である。
【図５】スィッチオーバの後における、３つのサービス・グループと２つのデータ記憶リソースとを備えた本発明に係る冗長２ユニット・コンピュータ・クラスタを示すブロック図である。
【図６】図４または図５のコンピュータ・クラスタにおける本発明に係るデータ記憶アクセス・シフト方法の一実施例を示すフローチャートである。
【図１】
2007510208.tif 000003
【図２】
2007510208.tif 000004
【図３】
2007510208.tif 000005
【図４】
2007510208.tif 000006
【図５】
2007510208.tif 000007
【図６】
2007510208.tif 000008
【国際調査報告】
2007510208.tif 000009
2007510208.tif 000010