JP2005539284A - 高アベイラビリティファイバチャネルスイッチを実現する方法および装置 - Google Patents

高アベイラビリティファイバチャネルスイッチを実現する方法および装置 Download PDF

Info

Publication number
JP2005539284A
JP2005539284A JP2003561185A JP2003561185A JP2005539284A JP 2005539284 A JP2005539284 A JP 2005539284A JP 2003561185 A JP2003561185 A JP 2003561185A JP 2003561185 A JP2003561185 A JP 2003561185A JP 2005539284 A JP2005539284 A JP 2005539284A
Authority
JP
Japan
Prior art keywords
message
supervisor
fiber channel
channel switch
application
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
Application number
JP2003561185A
Other languages
English (en)
Inventor
ベネデット・マルコ・ディー
マッキュアン・ジョン・ビー.
メリャシェルブ・ラマナ
マハジャン・ウーメシ
Original Assignee
シスコ テクノロジー インコーポレイテッド
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 シスコ テクノロジー インコーポレイテッド filed Critical シスコ テクノロジー インコーポレイテッド
Publication of JP2005539284A publication Critical patent/JP2005539284A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • 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/2038Error 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 with a single idle spare processing component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

【課題】 ストレージエリアネットワーク内のファイバチャネルスイッチのための高アベイラビリティを冗長性スーパバイザ群を用いて実現する。
【解決手段】 アクティブスーパバイザは、メッセージに関連付けられた高アベイラビリティ特性を特定し、メッセージが冗長スーパバイザ上にミラーリングされ、ロギングされ、および/または持続性を維持されなければならないかを決定することができる。メッセージは、ペンディングトランザクションバッファ中にロギングされ、持続性ストレージサービスを用いて記憶されえる。ミラーリングは、メッセージが冗長スーパバイザに非同期的に渡されることを可能にする同期キューを用いて実行されえ、一方でスーパバイザ群間の完全な同期が維持され、アクティブスーパバイザの動作への遅延はわずかに生じるだけである。

Description

本発明は、ファイバチャネルネットワークスイッチに関する。より具体的には本発明は、ストレージエリアネットワーク内のファイバチャネルスイッチの高アベイラビリティを実現する方法および装置に関する。高アベイラビリティは、ミラーリング、ロギング、持続性、アプリケーション再初期化、およびスイッチオーバーのようなサービスを含む。
非常に限定された高アベイラビリティサービスしかファイバチャネルネットワークには存在しない。ファイバチャネルストレージエリアネットワークのための高アベイラビリティの一形態は、ルートの冗長性である。サーバのような第1ストレージエリアネットワークエンティティが、ファイバチャネルファブリック内のディスクアレイのような第2ストレージエリアネットワークエンティティにメッセージを送ろうとするとき、このメッセージは、ファイバチャネルファブリック内のさまざまなスイッチを通過する。もし特定のスイッチが故障するなら、近接のスイッチがこの故障を認識して、メッセージを代替ルートに沿って通すことができる。代替ルートは、故障したスイッチをバイパスすることによってネットワーク動作を維持することができる。しかし故障したスイッチをいつもバイパスできるわけではない。ある例では、故障したスイッチは、直接にターゲットディスクアレイに接続しえ、宛先への代替ルートが存在しないかもしれない。故障したスイッチをバイパスすることは、ファイバチャネルネットワークの動作にとって中断的でもありえる。トラフィックは、いまや追加のトラフィックを運ばなければならないスイッチを通して、遅くされえる。ファブリックの全体的な帯域幅は低下しえる。
多くの他の高アベイラビリティサービスは、状態情報を保存するのに失敗し、遅いネットワーク動作またはアプリケーションの再初期化を引き起こす。
したがって、ファイバチャネルスイッチ内において高アベイラビリティを提供し、上述の制限の一部または全てについて高アベイラビリティサービスを改善する方法および装置を提供することが望まれる。
ストレージエリアネットワーク内のファイバチャネルスイッチのための高アベイラビリティは、冗長性スーパバイザ群を用いて実現されえる。アクティブスーパバイザは、メッセージに関連付けられた高アベイラビリティ特性を特定し、メッセージが冗長スーパバイザ上にミラーリングされ、ロギングされ、および/または持続性を維持されなければならないかを決定することができる。メッセージは、ペンディングトランザクションバッファ中にロギングされ、持続性ストレージサービスを用いて記憶されえる。ミラーリングは、メッセージが冗長スーパバイザに非同期的に渡されることを可能にする同期キューを用いて実行されえ、一方でスーパバイザ群間の完全な同期が維持され、アクティブスーパバイザの動作への遅延はわずかに生じるだけである。
ある実施形態によれば、ストレージエリアネットワーク内のファイバチャネルスイッチにおいて高アベイラビリティを実現する方法が提供される。ファイバチャネルスイッチ内のアクティブスーパバイザ上で走る第1アプリケーションにおいてメッセージが特定される。前記メッセージに関連付けられた高アベイラビリティ特性が決定される。高アベイラビリティ特性は、前記ファイバチャネルスイッチ内のスタンバイスーパバイザ上で走る第2アプリケーションを前記第1アプリケーションに同期させる情報を提供する。前記メッセージがミラーリングされるべきであることを高アベイラビリティ特性が示すとき、前記メッセージは前記スタンバイスーパバイザ上で走る前記第2アプリケーションに提供される。
ある例では、前記メッセージに関連付けられたサブスクライバ特性が決定される。サブスクライバ特性は、前記アクティブスーパバイザ上で走るどのアプリケーションが前記メッセージを受信するようサブスクライブしたかを決定する情報を提供する。
他の実施形態においてはファイバチャネルスイッチが提供される。このファイバチャネルスイッチは、外部ファイバチャネルネットワークエンティティに結合されたファイバチャネルラインカード、前記ファイバチャネルラインカードにバックプレーンを通して結合された第1スーパバイザ、前記第1スーパバイザに結合された第2スーパバイザを備える。 前記第1スーパバイザは、前記第1スーパバイザの状態を変化させる前記外部ファイバチャネルネットワークエンティティからのメッセージを特定し、前記メッセージが前記第2スーパバイザに渡される前に前記外部ファイバチャネルネットワークエンティティにアクノリッジを送るよう構成される。
本発明のこれらや他の特徴および優位性は、本発明の以下の明細書および添付図面においてより詳細に示され、これらは本発明の原理を例示により示す。
本発明は、以下の記載を添付図面と併せて参照することによって最もよく理解され、これらは本発明の具体的な実施形態を例示的に示す。
本発明は、ファイバチャネルファブリック内のセキュリティに関する。より具体的には本発明は、ファイバチャネルファブリック内において高アベイラビリティスイッチを提供する方法および装置に関する。
発明者によって本発明を実施するのに想定されたベストモードを含む本発明の具体的な実施形態のいくつかがここで参照される。これら具体的な実施形態の例は、添付図面において示される。本発明はこれら具体的な実施形態と併せて記載されるが、本発明を記載された実施形態に限定するようには意図されていないことが理解されよう。むしろ添付の特許請求の範囲によって規定される本発明の精神および範囲内に含まれえる代替物、改変物、および等価物をカバーするように意図される。
例えば、本発明の手法は、特定のファイバチャネルスイッチアーキテクチャのコンテキストで記載される。しかし本発明の手法は、多くの異なるコンポーネントおよびシステムを持つさまざまな異なるスイッチアーキテクチャに応用しえることに注意されたい。以下の記載において、多くの特定の詳細が述べられるが、これは本発明の理解を完全にするためである。本発明はこれら特定の詳細の一部または全てがなくても実施しえる。例えばよく知られたプロセス操作は、本発明の本質を不必要にぼかさないために記載されていない。
図1は、本発明の手法が使えるネットワークの概略図である。ファイバチャネルファブリック131は、スイッチ111および113と共に、さらに他のスイッチでありえる一般的なサービスプロバイダ115のような多くのネットワークエンティティを含みえる。スイッチ群は、ノード101、103、105、および107を相互接続するために用いられえる。ノード101、103、105、および107は、サーバ、テープライブラリ、RAID、ディスクアレイ、または単にディスク群(JBOD)のようなエンティティでありえる。図1に示されるファイバチャネルアーキテクチャは、スイッチベースのアーキテクチャである。しかしファイバチャネルネットワークは、調停ループおよびポイントツーポイントのようなさまざまな異なるアーキテクチャを用いて実現できることに注意されたい。
ある実施形態において、ファイバチャネルネットワーク131は、IPゲートウェイ121へのファイバチャネルのようなデバイスを通して従来のIPネットワーク141に接続されたストレージエリアネットワークである。ファイバチャネルストレージエリアネットワーク中の高アベイラビリティは、典型的には代替ルートを用いて提供される。特定のスイッチが故障するとき、故障スイッチを通るように構成されたトラフィックは、代替スイッチへとリルートされる。しかしトラフィックを代替スイッチにルーティングすることは中断的であり、ストレージエリアネットワークで利用可能な帯域幅を減少させる。さまざまな実施形態によれば、単一のファイバチャネルスイッチ内の高アベイラビリティを提供するためのさまざまな手法が提供される。スイッチを非常に利用可能な状態にする冗長性のようなメカニズムはここでは高アベイラビリティと呼ばれる。
図2は、本発明の手法を実現するのに用いられえるファイバチャネルスイッチの概略図である。ファイバチャネルスイッチ201は、1つ以上のスーパバイザ211および213を含みえる。ファイバチャネルファブリック内でメッセージを送るのに用いられえるプロセッサおよびその自身のアドレススペースを含むシステムはここではスーパバイザと呼ばれる。具体的な実現例において、スーパバイザ211は、アクティブまたはプライマリスーパバイザとして構成され、一方、スーパバイザ213は、ファイバチャネルスイッチの高アベイラビリティを提供するスタンバイまたはバックアップスーパバイザとして構成される。バックアップスーパバイザは、アクティブスーパバイザが故障するとき、ファイバチャネルスイッチ201の動作を想定するよう構成されえる。さまざまな実施形態によれば、それぞれのスーパバイザは、それ自身のプロセッサ、メモリ、およびストレージリソースを有する。
ある実施形態では、アクティブスーパバイザ211は、バックプレーン215から分離されたダイレクトリンクを通してスタンバイスーパバイザ213に接続されえ、またはスーパバイザは、ラインカード203、205、および207と共有されたコモンバックプレーンを通して接続されえる。アクティブスーパバイザ211は、バックプレーン215にバックプレーンインタフェースロジック231を通して接続されえ、スタンバイスーパバイザ213は、バックプレーン215にバックプレーンインタフェースロジック233を通して接続されえる。さまざまな実施形態によれば、バックプレーン215は、イーサネット(登録商標)タイプのネットワークである。ラインカード203、205、および207は、アクティブスーパバイザ211とインタフェース回路223、225、および227およびバックプレーン215を通して通信しえる。バックプレーン215は、ラインカードおよびスーパバイザの間のすべてのトラフィックについての通信チャネルを提供しえる。個々のラインカード203および207はまた、外部ファイバチャネルネットワークエンティティ251および253にファイバチャネルポート243および247を通して結合されえる。外部ファイバチャネルネットワークエンティティ251および253は、他のファイバチャネルスイッチ、ディスク、RAID、テープライブラリ、またはサーバのようなノードでありえる。
スイッチは、任意の個数のラインカードおよびスーパバイザをサポートしえることに注意されたい。ある実施形態では、単一のスーパバイザだけがバックプレーン215に接続され、単一のスーパバイザが多くの異なるラインカードと通信する。
図3は、図2に示されるアクティブおよびスタンバイスーパバイザを示す概略図である。アクティブおよびスタンバイスーパバイザ211および213は同一である必要はないが、アクティブおよびスタンバイスーパバイザ211および213は、さまざまな同様のモジュールおよびコンポーネントを含みえる。混同を避けるために、アクティブスーパバイザに関連するさまざまなコンポーネントおよびモジュールがここでより詳細に記載され、この記載は、スタンバイスーパバイザ213の対応するコンポーネントおよびモジュールにも適用されえることが理解されよう。
具体的な実施形態によれば、アクティブスーパバイザ211は、ルーティング321、ドメインマネージャ325、システムマネージャ327、およびユーティリティ323のアプリケーションのような複数のアプリケーションを走らせるよう構成または設計されえる。ある実施形態によれば、ルーティングアプリケーション321は、メッセージを転送およびルーティングする機能を提供するよう構成される。ユーティリティアプリケーション323は、システムクロックおよびタイムスタンプ機能を提供するよう構成されえる。ドメインマネージャアプリケーション325は、ファイバチャネルストレージエリアネットワーク中のドメインをアサインするのに用いられえる。さまざまなスーパバイザアプリケーションはまた、さまざまなファイバチャネルプロトコルレイヤのためのサービス品質(QoS)機能のような機能を提供するよう構成されえる。
システムマネージャは、さまざまなアプリケーションを起動し、モニタするよう構成されえる。さまざまな実施形態によれば、システムマネージャアプリケーションは、さまざまな他のアプリケーションをスーパバイザ内で起動するのに用いられる。システムマネージャはまた、アプリケーションがアクティブスーパバイザまたはスタンバイスーパバイザ内にあるかどうかを知っている唯一のアプリケーションでありえる。ある具体的な実現例では、システムマネージャは、さまざまなアプリケーションについて高アベイラビリティポリシーを実現する責任がある。システムマネージャは、プロセスを生成(spawn)し、プロセスヘルス(process health)をモニタし、アプリケーションが動作しなくなるときはさまざまなアプリケーションを再起動する。システムマネージャはまた、スタンバイスーパバイザへのスイッチオーバーが、アプリケーションの再起動よりも好ましいときを決定する責任を持ちえる。すなわち、システムマネージャは、アプリケーションを再起動すべきか、アクティブスーパバイザからスタンバイスーパバイザへ制御をシフトすべきかを決定するために、故障の重大度(severity)を決定しえる。ある例では、アプリケーションを起動したいと願う任意のコンポーネントはシステムマネージャを通してアプリケーションを起動する。
さまざまな実施形態によれば、システムマネージャを通してアプリケーションを起動するリクエストは、その特定のアプリケーションに適用される高アベイラビリティポリシーを含む。高アベイラビリティポリシーの一例は、プロセスまたはアプリケーションが終了するときに何もしないことである。アプリケーションが終了するとき、システムマネージャはその後、アプリケーションを再起動する必要はない。高アベイラビリティポリシーの他の例は、アプリケーションを再起動することである。もしアプリケーションの再起動が所定の秒数より長い時間、継続できないなら、再起動の試行は止まり、スイッチオーバーが試行されえる。システムマネージャは、その後、アクティビティをスタンバイスーパバイザにスイッチオーバーできる。アプリケーションは、ブートシーケンス中、または他のアプリケーションからの明示的なリクエストが受信されるときのようなさまざまなときにシステムマネージャによって起動されえることに注意されたい。
アクティブスーパバイザ211は、メモリ315に結合されたプロセッサ313も備える。コンポーネントは簡明さのために単数形で記載されていることに注意されたい。当業者なら、他のコンテキストと同様、このコンテキストでは複数のプロセッサおよびさまざまなメモリフォーマットが使用されえ、本発明の範囲に入ることが理解されよう。メモリ315は、コンポーネントによってアクセスされるソフトウェアプログラムおよびデータ構造を格納するためのプロセッサ313によってアドレス可能なシンクロナスダイナミックランダムアクセスメモリ(SDRAM)ストレージロケーションを備えてもよい。
スーパバイザはメモリを含むだけでなく、スーパバイザは、状態情報または他のアプリケーション特定のまたはシステムデータのようなアプリケーションまたはシステム情報を保持するための持続性(persistent)ストレージサービス317も含みえる。さまざまなアプリケーションのための持続性ストレージを提供するよう構成される任意のサービスは、ここでは持続性ストレージサービスと呼ばれる。さまざまな実施形態によれば、任意のアプリケーションは、持続性ストレージサービス317に関連付けられた持続性テーブル318にバインドされえる。ファイバチャネルスイッチ内に持続的にある状態情報のような情報を維持するためのデータ構造およびメカニズムは、ここでは持続性テーブルと呼ばれる。
それぞれの持続性テーブル318は、ユニークな識別子と関連付けられえる。アプリケーションの第1の起動(incarnation)が、アプリケーションに関連付けられた特定のテーブルへのバインドを試行するとき、テーブルはまだ存在せず、その結果、持続性ストレージサービス317によって作られる。それから特定のアプリケーションに関連付けられた持続性テーブル318は、アプリケーションの実行中に設定(populate)されえる。もしアプリケーションがクラッシュするか、または終了するなら、持続性テーブル318は保存されえる。アプリケーションの次の起動は、それからその同じテーブルにバインドすることを試みることができる。このバインドの結果は、アプリケーションの以前の起動によって既存の持続性テーブル318中に記憶されたデータに、新しく起動されたアプリケーションがアクセスできることである。
ある例では、持続性テーブルは、新しく起動されたアプリケーションが、アプリケーションの以前の起動によって記憶された状態情報にすぐにアクセスできるようにする。これにより、新しく起動されたアプリケーションが中断なく連続的に動作することが可能となる。持続性テーブルは、特定のテーブルフォーマットである必要はないことに注意されたい。持続性テーブルは、一例としてはテキストまたはローデータファイルでもよい。さらに持続性ストレージサービス317そのものは、持続性テーブル318に何が記憶されているかを知る必要はないことに注意されたい。持続性テーブルは、それぞれのアプリケーションのランタイムデータベースとは異なるように構成されえる。さまざまな実施形態によれば、持続性テーブルは、さまざまなランタイムデータベース中の情報を補う情報を提供できる。
アクティブスーパバイザ211は、冗長および高アベイラビリティマネージャ311に結合された冗長ドライバ335も含みえる。冗長ドライバ335は、スタンバイスーパバイザ内の冗長ドライバ385に結合されえる。さまざまなハードウェア信号は、それぞれのシステムのアベイラビリティを通信するのに用いられえる。
さまざまな実施形態によれば、アクティブスーパバイザは、MTS 331も含みえる。アクティブおよびスタンバイスーパバイザ間で持続的かつ共有してメッセージを伝えるのと共に、アクティブスーパバイザ内のアプリケーション間でメッセージを伝える任意のメカニズムは、ここではMTSと呼ばれる。
当業者には理解されるように、アプリケーションは、ふつうソケットおよびメッセージキューと呼ばれる既存のメカニズムを用いて互いに通信できる。ソケットを用いる実現例では、バッファがカーネルメモリスペースに割り当てられる。他のアプリケーションにメッセージを送りたいアプリケーションは、メッセージをアプリケーションスペースからカーネルスペース内のバッファにコピーする。メッセージはそれから、カーネルバッファから、宛先に関連付けられたターゲットバッファにコピーされる。しかしソケットは、いくつかの欠点もある。アプリケーションスペースからカーネルスペースへのメッセージコピーおよびアプリケーションスペースへのコピーバックは、リソース集約的プロセスである。さらにソケットは、典型的には単一のアプリケーションが他の単一のアプリケーションと通信することだけを可能にするポイントツーポイントメカニズムである。ソケットはまた一時的である。すなわちもしソケットに問題があるなら、情報は失われる。ソケットアーキテクチャにおいては、さまざまなソケットの問題から起きた失われたメッセージを回復するのは困難である。
アプリケーションが互いに通信する他のメカニズムは、メッセージキューとふつう呼ばれる。グローバルバッファは、カーネルスペース内に割り当てられる。アプリケーションからのメッセージはグローバルバッファ内にコピーされる。もしアプリケーションが終了するなら、グローバルバッファが生き残る限り、メッセージは生き残る。しかしメッセージキューはやはり、単一のアプリケーションが他の単一のアプリケーションと通信することしか可能にしない。
さまざまな実施形態によれば、本発明の手法は、アプリケーションおよび1つ以上のターゲットアプリケーションの間の任意の通信についてのメッセージキュー339を割り当てるMTS 331を提供する。MTS 331はまた、スーパバイザ間の通信も可能にする。メッセージキュー339は、複数のターゲットアプリケーションによるアクセスを可能にするグローバルキューでありえる。ある例では、メッセージキュー339は、ドメインマネージャ325への参照を提供し、ユーティリティアプリケーション323は2つのアプリケーションがメッセージキュー339内のメッセージにアクセスすることを可能にする。メッセージキュー339内のメッセージは、ターゲットアプリケーションにコピーされる必要はない。MTS 331はまた、メッセージキュー339内でアクセスされたが、アプリケーションに関連付けられた特定のスレッドによって処理されていないメッセージを保持するペンディングトランザクションバッファ337を提供する。
ある例では、ペンディングトランザクションバッファ337は、メッセージキュー339からデキューされたが、アプリケーションスペース内でそのメッセージにアクセスできる全てのアプリケーションによって処理されていないメッセージを保持する。MTS 331はまた、アクティブスーパバイザ211内で処理されるメッセージが非同期的にスタンバイスーパバイザ213と同期することを可能にする同期キュー333を含む。すなわち、メッセージは、アクティブスーパバイザ上での動作の遅延なく、スタンバイスーパバイザに同期される。典型的な実現例では、もしアクティブスーパバイザがメッセージを外部エンティティから受け取ったなら、アクティブシステムは、メッセージがスタンバイシステムに転送され、アクティブシステムがスタンバイシステムから応答を受け取るまで、外部エンティティには応答しないだろう。しかしこの純粋に同期的な手法は、スタンバイシステムからの応答を待つあいだ、アクティブシステムの動作を遅延させる。
本発明の手法によれば、アクティブスーパバイザは、スタンバイスーパバイザからの応答を待つ必要なしに、すぐに外部エンティティに応答でき、一方で、同期キューを用いてアクティブスーパバイザおよびスタンバイスーパバイザ間の同期も提供できる。MTSおよび同期キューについての詳細は、以下に述べられる。
上述のようにMTS 331は、アプリケーションが、スーパバイザ内の複数のアプリケーションと通信でき、同時に、異なるスーパバイザが互いに通信できるように構成される。MTS 331はまた、高アベイラビリティサービスを提供できるよう構成されえる。高アベイラビリティサービスを提供するために、一例として、MTS 331は、それぞれのメッセージの高アベイラビリティ特性を特定する。図4は、メッセージ401が持ちえる高アベイラビリティ特性の概略図である。メッセージは、持続性あり403、ログされた405、およびミラーされた407でありえる。高アベイラビリティサービスを提供するために用いられる任意の特性は、ここでは高アベイラビリティ特性と呼ばれる。
持続性メッセージは、典型的には、状態の変化を引き起こすメッセージである。例えば、ドメイン無効化メッセージは、アクティブスーパバイザ上で走っているさまざまなアプリケーション内の状態の変化を引き起こしえる。もしメッセージがまだメッセージキュー内にあるのにアプリケーションがクラッシュするなら、メッセージは、アプリケーションのクラッシュおよび再起動を通して持続するのが望ましいだろう。もしメッセージが持続性がないなら、アプリケーションはクラッシュし、アプリケーションの次の起動は、その状態変化イベントを受け取ることが不可能であり、その結果、他のエンティティと異なる状態を持つことになるかもしれない。
ログメッセージは典型的には、持続性テーブルのアップデートを結果として生じるメッセージである。メッセージがメッセージキューからデキューした後、メッセージは即時に処理され、持続性テーブルにコミットされないかもしれない。メッセージがデキューされ、しかしアップデートが持続性テーブルになされる前にもしアプリケーションがクラッシュするなら、持続性テーブルは外のエンティティのそれと一致しなくなりえる。さまざまな実施形態によれば、持続性テーブルをアップデートするのに用いられえるメッセージは、ログとしてマークされる。アプリケーションが終了するとき、ログメッセージはそのまま残り、アプリケーションの将来の起動は、デキューされたメッセージにアクセスし、持続性テーブルをアップデートできる。
メッセージはまた、ミラーリングの高アベイラビリティ特性を持ちえる。もしメッセージがミラーされるべきなら、アクティブスーパバイザ上のMTSコンポーネントは、メッセージをスタンバイスーパバイザのMTSコンポーネントに転送するよう試みえる。ミラーリングの高アベイラビリティ特性を持つメッセージは典型的には、状態の変化または持続性テーブルへのアップデートを引き起こすメッセージである。メッセージの例は、持続性であるが、「get」メッセージリクエストにおいてミラーされていないものがある。さまざまな実施形態によれば、アプリケーションがデータのための「get」リクエストをサーバに送るとき、サーバは応答することによって、メッセージを持続性のあるものにしなければならないかもしれないが、サーバは情報をシンクロさせる必要はない。取り出されたデータは、テーブルをアップデートするためにクライアントによって用いられえる。ミラーされるが、ログされないメッセージは、サーバの状態を変えないメッセージを含みえる。持続性およびログのオプションは、サーバおよびクライアントのための同じメッセージについて独立に存在する。
MTSコンポーネントはまた、メッセージキュー中のメッセージを受信するよう設定されたアプリケーションを特定するよう構成されえる。上述のように、アプリケーションは特定の関心のあるメッセージをサブスクライブする。例えば、ユーティリティアプリケーションは、ドメインアップデートに関する任意のメッセージにサブスクライブしえる。MTSコンポーネントは、それぞれのメッセージまたはメッセージタイプに関連付けられた関係するサブスクライバ特性を記録・追跡する。どのサブスクライバがあるメッセージを受け取るよう構成されるかを特定するデータおよび情報は、ここではサブスクライバ特性と呼ばれる。受け取られた通信が特定のサブスクライバ特性を持つ、すなわち特定のメッセージタイプであるとき、MTSコンポーネントはメッセージを任意のサブスクライバに転送する。
図5Aおよび5Bは、アクティブおよびスタンバイスーパバイザ間のトランザクションを示すプロセスフロー図である。図5Aは、送信側のプロセスフローを示す。501において、メッセージは、メッセージ群の共有プール(shared pool)内に作られる。503において、グローバルおよびローカル送信元高アベイラビリティ特性が特定される。さまざまな実施形態によれば、メッセージは、上述のミラーリング、ロギング(logged)、および持続性(persistence)のような特性と関連付けられる。もし505においてメッセージがミラーリング特性を有すると決定されるなら、521においてメッセージは、スタンバイスーパバイザMTSコンポーネントに非同期的に渡される。ある実施形態によれば、メッセージは、同期キューを用いて渡される。メッセージをスタンバイスーパバイザに同期キューを用いて渡すことについての詳細は以下に述べられる。
509において、メッセージがログ特性(logged characteristic)を有するかどうかが決定される。もしメッセージがログ特性を有すると決定されるなら、ログ情報(log information)は、メッセージがデキューされ、まだ持続性テーブルにコミットされていないときに、525においてペンディングトランザクションバッファに書き込まれる。メッセージは、サブスクライバキュー中でメッセージプール内のメッセージへの参照を作ることにより、さまざまなサブスクライバに511において渡されえる。
図5Bは、レシーバにおけるプロセスフローを示す。551において、サブスクライバキュー中の第1参照が抽出される。参照は、サブスクライバがメッセージの共有プール内のメッセージにアクセスできるようにする。553において、持続性およびログ特性のような高アベイラビリティ特性が特定される。もしメッセージが持続性特性を557において有するなら、参照はキュー内で573において保持される。もしメッセージがログ特性を559において有するなら、ログ情報は575において書き込まれ、サブスクライバは、アプリケーションに特定の処理をメッセージを用いて561において実行するよう処理を進めることができる。563においてメッセージは廃棄される。
図6は、ロックステップ(lockstep)においてアクティブおよびスタンバイスーパバイザ間で渡されるメッセージを示すトランザクション図である。601において、外部ファイバチャネルスイッチのような外部エンティティは、メッセージをアクティブスーパバイザに611において送る。同期動作を維持するために、アクティブスーパバイザはすぐには応答を外部エンティティに送らない。その代わり、アクティブスーパバイザは613のメッセージを621のスタンバイスーパバイザに転送し、スタンバイスーパバイザをアクティブスーパバイザと同期させる。623において、スタンバイスーパバイザは、メッセージへのアクノリッジまたは応答をアクティブスーパバイザに615において送る。アクノリッジまたは応答を受信すると、617のアクティブスーパバイザは、603の外部エンティティへアクノリッジまたは応答を送る。このトランザクションシーケンスは、アクティブおよびスタンバイスーパバイザを完全に同期した状態に維持するが、アクティブスーパバイザは外部エンティティへの応答を送る前にスタンバイスーパバイザからの応答を待つので、アクティブスーパバイザの応答時間は増す。外部エンティティにとっては、アクティブスーパバイザの応答時間は長く見えうる。
図7は、本発明の手法によってアクティブスーパバイザおよびスタンバイスーパバイザ間でやりとりされるメッセージを示すトランザクション図である。701において、外部エンティティはメッセージをアクティブスーパバイザに711において送る。アクティブスーパバイザはMTSメッセージを713において生成し、それを同期キューに721において送る。アクティブスーパバイザはそれから、同期してシーケンスナンバを715において731のスタンバイスーパバイザへ送るよう処理を進めえる。
アクティブスーパバイザがMTSメッセージを同期キューに送るとき、同期キューには他のメッセージが存在するかもしれないことに注意されたい。同期キューは、アクティブスーパバイザからのメッセージの順序を維持する。
733において、スタンバイスーパバイザは、シーケンスナンバへのアクノリッジを717でアクティブスーパバイザに送る。MTSメッセージの受信のアクノリッジを待つことなく、719のアクティブスーパバイザは、外部エンティティからのメッセージに703でアクノリッジしえる。MTSメッセージはそれから723の同期キューからスタンバイスーパバイザへ735において後で転送されえる。
これはアクティブスーパバイザの応答時間を低減するが、外部エンティティがメッセージのアクノリッジを受信する時とスタンバイスーパバイザがメッセージを受信する前の間でもし故障が発生すると、スキームは整合性のない結果につながりえる。
スタンバイスーパバイザがまだ実際には受信していないメッセージをスタンバイスーパバイザがすでに受信し、アクノリッジしたと外部エンティティが信じるかもしれないので、故障期間741は状態の不整合へとつながりえる。故障期間741の責任を取るため、713のアクティブスーパバイザは、スタンバイスーパバイザにメッセージが来る予定だと告げる予告(advance notification)を731のスタンバイスーパバイザに送る。ある実施形態において、アクティブスーパバイザは715において、スタンバイスーパバイザにメッセージが来る予定であると告げるシーケンスナンバをスタンバイスーパバイザ731に送る。もし735におけるメッセージが受信されないなら、スタンバイスーパバイザはそれからいくつかのメンテナンス動作を実行しえる。ある例としては、スタンバイスーパバイザは外部エンティティにシーケンスを再開するよう依頼できる。
図8は、アプリケーションの状態付き(stateful)再起動を示すフロープロセス図である。801において、持続性情報または持続性テーブルが特定のアプリケーションについて利用可能であるかが決定される。もし持続性テーブルが利用可能でないなら、アプリケーションは状態情報なしで821において初期化される。もし持続性テーブルが利用可能であるなら、アプリケーションは持続性テーブルに803においてバインドする。持続性テーブルはここでアプリケーションの前の起動によって作られたことに注意されたい。ペンディングトランザクションは、ペンディングトランザクションバッファから805において取り出される。持続性テーブル中の不一致は807において修正される。809において、ランタイムデータベースは、持続性テーブルからの情報を用いて構築され(populated)える。811において、ペンディングトランザクションはコミットされえる。813において、メッセージキュー中のメッセージはそれからデキューされえる。
図9は、スタンバイシステム上のアプリケーションの状態付き初期化を示すプロセスフロー図である。901において、持続性情報が利用可能かどうか決定される。もし持続性テーブル情報のような持続性情報が利用可能でないなら、アプリケーションは状態情報なしで921において初期化する。903において、アプリケーションに関連付けられたランタイムデータベースがアクティブシステム上の持続性データベースのスナップショットで構築される。905において、スタンバイシステム上のランタイムデータベースは、初期同期化で構築されえる。907において、アプリケーションは、メッセージまたはイベントのためのレジスタまたはサブスクライブをできる。ある例では、アプリケーションは、メッセージについてMTSコンポーネントとレジスタまたはサブスクライブする。931において、スイッチオーバーが待たれる。スイッチオーバーとともに、アプリケーションは909においてペンディングトランザクションについての情報を受信しえ、911においてペンディングトランザクションを完了または中止できる。この時点でスタンバイシステム上のアプリケーションは、913においてアクティブステートに入りえる。図9は、スイッチオーバーが可能なアプリケーションについてのプロセスフローを示す。さまざまな実施形態によれば、アプリケーションは、スタンバイ、リカバリ待ち、およびアクティブのようないくつかの高アベイラビリティステートに入りえる。
図10は、スイッチオーバーが可能なアプリケーションについての取りえる状態を示す概略図である。アプリケーションがスタンバイスーパバイザ上で走るとき、アプリケーションはスタンバイモード1001で始まる。アプリケーションがスタンバイモード1001にあるとき、アプリケーションはランタイムのコンテキストをアップデートすることによって、スイッチオーバーが起こるときにアプリケーションが利用可能であるようにする責任がある。さまざまな実施形態によれば、アップデートは、アプリケーションのアクティブな対応部分によって動かされる。
初期ランタイムデータベースは、アクティブ持続性データベースのスナップショットを用いて構築されえ、これは持続性ストレージサービスによってリクエストがあると同期される。スナップショットが整合しているためには、アクティブの対応部分(active counterpart)が関連していなければならない。アクティブな対応部分は、持続性ストレージサービスに対して、いつが初期同期化によい時かを告げる。スタンバイモードのアプリケーションは、イベントを利用して、ランタイムデータベースおよび持続性データベースの両方を初期スナップショットからアップデートしえる。ある実施形態においては、持続性データベースへの追加の同期化は許されない。
スイッチオーバーが起こるときに、リカバリを待つ状態1003になる。リカバリを待つ状態1003は、全てのスタンバイアプリケーションについての同期化点である。もしアクティブスーパバイザがクラッシュしたなら、それはいくらかの仕事がペンディングのまま残したかもしれない。メッセージトランザクションサービスコンポーネントは、それぞれのアプリケーションにどのオープントランザクションが関連付けられたアクティブな対応部分と共に残っているかを知らせる。スタンバイアプリケーションは、利用可能な情報が充分に前に繰り越せて、トランザクションを終了できるか、またはトランザクションが失敗したかを決定できる。完了したペンディングトランザクションはまたこのフェーズでコミットされえる。
リカバリが終了したイベントが全てのアプリケーションキュー中にキューされたとき、それぞれのスタンバイアプリケーションはほとんどアクティブな状態1005に入りえる。この状態でアプリケーションは実質的にアクティブであり、しかし完全にはアクティブではないが、それはアプリケーションが、プロデューサがアクティブ状態に動いた前に生成されたイベントをいつか受け取るかもしれないからである。スイッチオーバー後のイベントのようなイベントの後、アプリケーションはアクティブ状態1007に入る。
任意の時刻において、アプリケーションは、それが強制的に終了させられる故障条件を持ちえる。アプリケーションが終了するとき、システムマネージャは異なるアクションを取りえる。もしアプリケーションがスタンバイ状態1001から終了するなら、スタンバイシステムマネージャはアプリケーションを再起動するよう試みえる。もし所定の回数の再起動の試行が失敗するなら、高アベイラビリティはディセーブルにされる。もしアプリケーションがリカバリ待ちの状態1003から終了するなら、そのアプリケーションについてのリカバリフェーズは失敗し、アプリケーションは、それがインタラクトする他のアプリケーションを適切にクリーンアップできず、よって、全体のシステムの状態は整合しないかもしれない。システムは、全ての高アベイラビリティアプリケーションをキルし、全体を再起動または単一のアプリケーションを再起動しえる。もしアプリケーションがほとんどアクティブな1005またはアクティブな1007の状態から終了するなら、再起動可能なアプリケーションのための通常のふるまいが適用しえる。
このような情報およびプログラム命令は、ここで記載されたシステム/方法を実現するのに用いられえるので、本発明は、ここで記載されたさまざまな操作を実行するプログラム命令、状態情報などを含む機械で読み取り可能な媒体に関する。機械で読み取り可能な媒体の例は、以下に限定されないが、ハードディスク、フロッピー(登録商標)ディスク、ランダムアクセスメモリ(RAM)、および磁気テープのような磁気媒体、CD−ROMディスクのような光媒体、光ディスクのような磁気・光媒体、および読み出し専用メモリ(ROM)およびRAMのようなプログラム命令を記憶し実行するよう特別に構成されるハードウェアデバイスを含む。本発明は、空間波、光ライン、電気ラインなどの適切な媒体上を伝わる搬送波内で実現されえる。プログラム命令の例は、コンパイラによって生成されるような機械語、およびインタプリタを用いてコンピュータによって実行されえる高級コードを含むファイルの両方を含む。
本発明は、その特定の実施形態を参照して示され記述されてきたが、開示された実施形態の形態および詳細の変更が本発明の精神または範囲から逸脱することなくなされえることが当業者には理解されよう。したがって本発明は、本発明の精神および範囲に入る全ての改変物および等価物を含むように解釈されるよう意図される。
本発明の手法を用いることができるネットワークの概略図である。 本発明の手法を実現できるスイッチの概略図である。 ファイバチャネルスイッチ上でさまざまなアプリケーションを走らせるアクティブおよび冗長スーパバイザの概略図である。 MTSコンポーネントの概略図である。 アクティブおよびスタンバイスーパバイザ間のトランザクションを示すプロセスフロー図である。 アクティブおよびスタンバイスーパバイザ間のトランザクションを示すプロセスフロー図である。 ロックステップにおけるアクティブおよびスタンバイスーパバイザ間でやりとりされるメッセージを示すトランザクション図である。 さまざまな実施形態によるアクティブおよびスタンバイスーパバイザ間でやりとりされるメッセージを示すトランザクション図である。 アクティブスーパバイザ上のアプリケーションの再初期化を示すプロセスフロー図である。 スタンバイスーパバイザ上のアプリケーションの再初期化を示すプロセスフロー図である。 スーパバイザ上で走るアプリケーションについての取りうる状態群を示す概略図である。

Claims (27)

  1. ストレージエリアネットワーク内のファイバチャネルスイッチにおいて高アベイラビリティを実現する方法であって、
    ファイバチャネルスイッチ内のアクティブスーパバイザ上で走る第1アプリケーションにおいてメッセージを特定すること、
    前記メッセージに関連付けられた高アベイラビリティ特性を決定することであって、高アベイラビリティ特性は、前記ファイバチャネルスイッチ内のスタンバイスーパバイザ上で走る第2アプリケーションを前記第1アプリケーションに同期させる情報を提供する、高アベイラビリティ特性を決定すること、
    前記メッセージがミラーリングされるべきであることを高アベイラビリティ特性が示すとき、前記メッセージを前記スタンバイスーパバイザ上で走る前記第2アプリケーションに提供すること
    を含む方法。
  2. 請求項1に記載の方法であって、前記メッセージに関連付けられたサブスクライバ特性を決定することをさらに含み、サブスクライバ特性は、前記アクティブスーパバイザ上で走るどのアプリケーションが前記メッセージを受信するようサブスクライブしたかを決定する情報を提供する方法。
  3. 請求項2に記載の方法であって、前記アクティブスーパバイザ上で走る複数のサブスクライバに前記メッセージを提供することをさらに含む方法。
  4. 請求項3に記載の方法であって、前記メッセージを前記複数のサブスクライバに提供することは、前記メッセージを第1スーパバイザ共有バッファにコピーすることを含む方法。
  5. 請求項3〜4のいずれかに記載の方法であって、前記メッセージを前記複数のサブスクライバに提供することは、前記第1スーパバイザ共有バッファにおける前記メッセージへの参照を前記サブスクライバに提供することを含む方法。
  6. 請求項3〜5のいずれかに記載の方法であって、前記メッセージを前記スタンバイスーパバイザ上で走る複数のサブスクライバに提供することをさらに含む方法。
  7. 請求項3〜6のいずれかに記載の方法であって、前記メッセージを前記複数のサブスクライバに提供することは、前記メッセージを第2スーパバイザ共有バッファにコピーすることを含む方法。
  8. 請求項7に記載の方法であって、前記メッセージは、前記第1スーパバイザから前記第2スーパバイザに非同期的にコピーされる方法。
  9. 請求項8に記載の方法であって、前記メッセージが前記第2スーパバイザにコピーされる前に、前記メッセージへのアクノリッジが前記第1アプリケーションによって送られる方法。
  10. 請求項3〜9のいずれかに記載の方法であって、前記メッセージを前記スタンバイスーパバイザ上で走る前記複数のサブスクライバに提供することは、前記第2スーパバイザ共有バッファにおける前記メッセージへの参照を前記サブスクライバに提供することを含む方法。
  11. 請求項3〜10のいずれかに記載の方法であって、高アベイラビリティ特性はミラーリング、持続性、およびロギングに関する方法。
  12. 請求項11に記載の方法であって、もし前記メッセージがロギングされるべきであることを高アベイラビリティ特性が示すなら、第1スーパバイザトランザクションログを維持することをさらに含む方法。
  13. 外部ファイバチャネルネットワークエンティティに結合されたファイバチャネルラインカード、
    前記ファイバチャネルラインカードにバックプレーンを通して結合された第1スーパバイザ、
    前記第1スーパバイザに結合された第2スーパバイザ、
    を備え、
    前記第1スーパバイザは、前記第1スーパバイザの状態を変化させる前記外部ファイバチャネルネットワークエンティティからのメッセージを特定し、前記メッセージが前記第2スーパバイザに渡される前に前記外部ファイバチャネルネットワークエンティティにアクノリッジを送るよう構成されるファイバチャネルスイッチ。
  14. 請求項13に記載のファイバチャネルスイッチであって、前記第1スーパバイザは、前記メッセージを前記第2スーパバイザに渡す前に、前記メッセージに関連付けられた予告を前記第2スーパバイザに送るようさらに構成されるファイバチャネルスイッチ。
  15. 請求項13〜14のいずれかに記載のファイバチャネルスイッチであって、前記予告は、前記メッセージに関連付けられたシーケンスナンバであるファイバチャネルスイッチ。
  16. 請求項13〜15のいずれかに記載のファイバチャネルスイッチであって、前記予告は、アクノリッジが前記外部ファイバチャネルネットワークエンティティに送られる前に同期して送信されるファイバチャネルスイッチ。
  17. 請求項16に記載のファイバチャネルスイッチであって、前記メッセージは、前記メッセージがアクノリッジされた後に同期して送信されるファイバチャネルスイッチ。
  18. 請求項13〜17のいずれかに記載のファイバチャネルスイッチであって、前記第2スーパバイザは、前記予告を用いてその内部状態の整合性を確認するよう構成されるファイバチャネルスイッチ。
  19. 請求項14に記載のファイバチャネルスイッチであって、前記第1スーパバイザは、第1ペンディングトランザクションバッファを備えるファイバチャネルスイッチ。
  20. 請求項19に記載のファイバチャネルスイッチであって、前記メッセージは、前記第1ペンディングトランザクションバッファにコピーされ、前記メッセージへの参照が、前記第1スーパバイザ上で走る第1の複数のアプリケーションに提供されるファイバチャネルスイッチ。
  21. 請求項20に記載のファイバチャネルスイッチであって、前記第1スーパバイザ上で走る前記第1の複数のアプリケーションは、前記メッセージへのサブスクライバであるファイバチャネルスイッチ。
  22. 請求項20〜21のいずれかに記載のファイバチャネルスイッチであって、前記第2スーパバイザは、第2ペンディングトランザクションバッファを備えるファイバチャネルスイッチ。
  23. 請求項22に記載のファイバチャネルスイッチであって、前記メッセージは、前記第2ペンディングトランザクションバッファにコピーされ、前記メッセージへの参照が、前記第2スーパバイザ上で走る第2の複数のアプリケーションに提供されるファイバチャネルスイッチ。
  24. 請求項23に記載のファイバチャネルスイッチであって、前記第2スーパバイザ上で走る前記第2の複数のアプリケーションは、前記メッセージへのサブスクライバであるファイバチャネルスイッチ。
  25. 請求項23〜24のいずれかに記載のファイバチャネルスイッチであって、前記第1スーパバイザはアクティブスーパバイザであって、前記第2スーパバイザはスタンバイスーパバイザであるファイバチャネルスイッチ。
  26. 請求項23〜25のいずれかに記載のファイバチャネルスイッチであって、前記メッセージがミラーリングされるべきであることをもし前記メッセージの高アベイラビリティ特性が示すなら、前記メッセージは前記第2ペンディングトランザクションバッファにコピーされるファイバチャネルスイッチ。
  27. ストレージエリアネットワーク中のスイッチであって、
    ファイバチャネルスイッチ内のアクティブスーパバイザ上で走る第1アプリケーションにおいてメッセージを特定する手段、
    前記メッセージに関連付けられた高アベイラビリティ特性を決定する手段であって、高アベイラビリティ特性は、前記ファイバチャネルスイッチ内のスタンバイスーパバイザ上で走る第2アプリケーションを前記第1アプリケーションに同期させる情報を提供する、高アベイラビリティ特性を決定する手段、
    前記メッセージがミラーリングされるべきであることを高アベイラビリティ特性が示すとき、前記メッセージを前記スタンバイスーパバイザ上で走る前記第2アプリケーションに提供する手段
    を備えるスイッチ。
JP2003561185A 2001-12-21 2002-12-17 高アベイラビリティファイバチャネルスイッチを実現する方法および装置 Pending JP2005539284A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/026,311 US7293105B2 (en) 2001-12-21 2001-12-21 Methods and apparatus for implementing a high availability fibre channel switch
PCT/US2002/040512 WO2003061222A1 (en) 2001-12-21 2002-12-17 Methods and apparatus for implementing a high availability fibre channel switch

Publications (1)

Publication Number Publication Date
JP2005539284A true JP2005539284A (ja) 2005-12-22

Family

ID=21831087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003561185A Pending JP2005539284A (ja) 2001-12-21 2002-12-17 高アベイラビリティファイバチャネルスイッチを実現する方法および装置

Country Status (10)

Country Link
US (1) US7293105B2 (ja)
EP (1) EP1459487B1 (ja)
JP (1) JP2005539284A (ja)
KR (1) KR100954462B1 (ja)
CN (1) CN100591031C (ja)
AT (1) ATE337662T1 (ja)
AU (1) AU2002359739B2 (ja)
CA (1) CA2469757C (ja)
DE (1) DE60214234T2 (ja)
WO (1) WO2003061222A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009509222A (ja) * 2005-09-19 2009-03-05 エアバス・ドイチュラント・ゲーエムベーハー 迅速取付ハウジングおよび迅速取付モジュールを有するアビオニクス装置キャリアシステム
JP2011188272A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd スイッチ装置

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094466A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc., A Corporation Of California Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
US9009427B2 (en) 2001-12-26 2015-04-14 Cisco Technology, Inc. Mirroring mechanisms for storage area networks and network based virtualization
US20090259817A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Mirror Consistency Checking Techniques For Storage Area Networks And Network Based Virtualization
US20070094464A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc. A Corporation Of California Mirror consistency checking techniques for storage area networks and network based virtualization
US7386608B2 (en) * 2002-07-30 2008-06-10 Brocade Communications Systems, Inc. Fibre channel switch that aggregates registered state change notifications
US7583681B2 (en) * 2002-07-30 2009-09-01 Brocade Communications Systems, Inc. Method and apparatus for establishing metazones across dissimilar networks
US8320241B2 (en) 2002-07-30 2012-11-27 Brocade Communications System, Inc. Fibre channel network employing registered state change notifications with enhanced payload
ATE375553T1 (de) * 2003-06-24 2007-10-15 Research In Motion Ltd Erkennung von speichermangel und feinabschaltung
US7742401B2 (en) * 2003-08-11 2010-06-22 Netapp, Inc. Network having switchover with no data loss
US7539143B2 (en) * 2003-08-11 2009-05-26 Netapp, Inc. Network switching device ingress memory system
US20050089054A1 (en) * 2003-08-11 2005-04-28 Gene Ciancaglini Methods and apparatus for provisioning connection oriented, quality of service capabilities and services
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7437460B2 (en) 2003-08-14 2008-10-14 Oracle International Corporation Service placement for enforcing performance and availability levels in a multi-node system
US20050256971A1 (en) * 2003-08-14 2005-11-17 Oracle International Corporation Runtime load balancing of work across a clustered computing system using current service performance levels
US7441033B2 (en) 2003-08-14 2008-10-21 Oracle International Corporation On demand node and server instance allocation and de-allocation
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US7437459B2 (en) * 2003-08-14 2008-10-14 Oracle International Corporation Calculation of service performance grades in a multi-node environment that hosts the services
US20060064400A1 (en) * 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7552171B2 (en) * 2003-08-14 2009-06-23 Oracle International Corporation Incremental run-time session balancing in a multi-node system
CN100547583C (zh) * 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US7535827B2 (en) * 2003-10-09 2009-05-19 Alcatel Lucent High availability of resources in telecommunications network using synchronized redundancy mechanism
CN1305265C (zh) * 2003-11-07 2007-03-14 清华大学 San系统中基于负载自适应的异步远程镜像方法
US7376078B1 (en) * 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US9489424B2 (en) * 2004-12-20 2016-11-08 Oracle International Corporation Cursor pre-fetching
US7779418B2 (en) * 2004-12-30 2010-08-17 Oracle International Corporation Publisher flow control and bounded guaranteed delivery for message queues
US9176772B2 (en) 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム
US9323311B2 (en) * 2006-06-22 2016-04-26 Broadcom Corporation Method and system for packet based signaling between A Mac and A PHY to manage energy efficient network devices and/or protocols
CN101403895B (zh) * 2008-11-13 2010-06-02 南京恩瑞特实业有限公司 高安全性冗余缓冲队列实现方法
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8514856B1 (en) 2010-06-24 2013-08-20 Cisco Technology, Inc. End-to-end fibre channel over ethernet
CN101917231B (zh) * 2010-08-27 2013-10-09 华为技术有限公司 一种光纤通道交换机的数据缓存方法
CN104995615B (zh) * 2012-12-27 2018-03-30 英特尔公司 本地计算设备的预订和执行镜像写入
US20150195167A1 (en) * 2014-01-03 2015-07-09 Horatio Lo Availability device, storage area network system with availability device and methods for operation thereof
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US11556500B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation Session templates
CN110086666B (zh) * 2019-04-25 2022-04-26 深圳前海微众银行股份有限公司 一种告警方法、装置及系统
US11936739B2 (en) 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210871A (en) * 1988-07-15 1993-05-11 The Charles Stark Draper Labroatory, Inc. Interprocessor communication for a fault-tolerant, mixed redundancy distributed information processing system
US5655149A (en) * 1994-06-10 1997-08-05 Harris Corporation System for identifying a primary processor and non-primary processors after system reboot independent of processor positions and without using default primary processor identification
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US6070251A (en) * 1997-06-26 2000-05-30 Sun Microsystems, Inc. Method and apparatus for high availability and caching data storage devices
US6003075A (en) * 1997-07-07 1999-12-14 International Business Machines Corporation Enqueuing a configuration change in a network cluster and restore a prior configuration in a back up storage in reverse sequence ordered
US6338110B1 (en) * 1997-11-14 2002-01-08 Sun Microsystems, Inc. Partitioning of storage channels using programmable switches
US7430164B2 (en) * 1998-05-04 2008-09-30 Hewlett-Packard Development Company, L.P. Path recovery on failure in load balancing switch protocols
US6427163B1 (en) * 1998-07-10 2002-07-30 International Business Machines Corporation Highly scalable and highly available cluster system management scheme
US6724756B2 (en) * 1999-01-12 2004-04-20 Cisco Technology, Inc. Method for introducing switched virtual connection call redundancy in asynchronous transfer mode networks
US7203732B2 (en) * 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
TW454120B (en) 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US6601187B1 (en) * 2000-03-31 2003-07-29 Hewlett-Packard Development Company, L. P. System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween
US6876652B1 (en) * 2000-05-20 2005-04-05 Ciena Corporation Network device with a distributed switch fabric timing system
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
AU2001281077A1 (en) 2000-08-07 2002-02-18 Inrange Technologies Corporation Fibre channel switch
US7275100B2 (en) * 2001-01-12 2007-09-25 Hitachi, Ltd. Failure notification method and system using remote mirroring for clustering systems
US7437071B2 (en) * 2001-03-18 2008-10-14 Cisco Technology, Inc. Distributive optical switching control system
WO2002089014A1 (en) * 2001-04-26 2002-11-07 Creekpath Systems, Inc. A system for global and local data resource management for service guarantees
GB2392536B (en) * 2001-06-25 2005-04-20 Marathon Techn Corp Fault tolerant processing
US6931487B2 (en) * 2001-10-22 2005-08-16 Hewlett-Packard Development Company L.P. High performance multi-controller processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009509222A (ja) * 2005-09-19 2009-03-05 エアバス・ドイチュラント・ゲーエムベーハー 迅速取付ハウジングおよび迅速取付モジュールを有するアビオニクス装置キャリアシステム
JP2011188272A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd スイッチ装置
US8625585B2 (en) 2010-03-09 2014-01-07 Fujitsu Limited Switch apparatus

Also Published As

Publication number Publication date
EP1459487A1 (en) 2004-09-22
CN1650582A (zh) 2005-08-03
AU2002359739B2 (en) 2008-02-14
KR20040081438A (ko) 2004-09-21
EP1459487B1 (en) 2006-08-23
WO2003061222A1 (en) 2003-07-24
KR100954462B1 (ko) 2010-04-23
ATE337662T1 (de) 2006-09-15
US20030135642A1 (en) 2003-07-17
DE60214234D1 (de) 2006-10-05
US7293105B2 (en) 2007-11-06
DE60214234T2 (de) 2007-07-19
CA2469757A1 (en) 2003-07-24
CN100591031C (zh) 2010-02-17
AU2002359739A1 (en) 2003-07-30
CA2469757C (en) 2009-02-03

Similar Documents

Publication Publication Date Title
US7293105B2 (en) Methods and apparatus for implementing a high availability fibre channel switch
US8433951B1 (en) Method and system for providing high availability to distributed computer applications
KR100232247B1 (ko) 클러스터화된 다중처리 시스템 및 시스템내 디스크 액세스 경로의 고장 회복 방법
JP5661176B2 (ja) 遠隔仮想計算機全体にわたって耐故障チェックポインティングを達成するための方法及びシステム
EP2104041B1 (en) System and method for failover
KR0137406B1 (ko) 고장 방지 컴퓨터 시스템
US20030014432A1 (en) Storage network data replicator
US20080077686A1 (en) System and Method for Replication of Network State for Transparent Recovery of Network Connections
JP2008059583A (ja) クラスタ・システムならびにクラスタ・システム内でレプリカをバックアップする方法およびプログラム製品
US9319267B1 (en) Replication in assured messaging system
Ghaznavi et al. Fault tolerant service function chaining
JP2009080705A (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
US7394832B1 (en) Technique for synchronizing redundant network elements
JP2015501032A (ja) データ複製によるローカルデータストレージに基づくシェアード・ナッシングコンフィギュレーションにおけるバーチャルマシーンのマイグレーションのためのクラスタシステム及び方法
Ghaznavi et al. Fault tolerance for service function chains
Reisner Distributed replicated block device
Selikhov et al. CMDE: a channel memory based dynamic environment for fault-tolerant message passing based on MPICH-V architecture
Gerofi et al. A Multi-Core Approach to Providing Fault Tolerance for Non-Deterministic Services
Opesh et al. Project Title: Fault Tolerance
CZ9904221A3 (cs) Způsob a systém pro obnovu v rozděleném databázovém systému bez sdílených prostředků pomocí virtuálních sdílených disků

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090601

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090901

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091001

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100118