JP4464956B2 - 分散システム内のバックアップ・ファームウェア - Google Patents

分散システム内のバックアップ・ファームウェア Download PDF

Info

Publication number
JP4464956B2
JP4464956B2 JP2006500174A JP2006500174A JP4464956B2 JP 4464956 B2 JP4464956 B2 JP 4464956B2 JP 2006500174 A JP2006500174 A JP 2006500174A JP 2006500174 A JP2006500174 A JP 2006500174A JP 4464956 B2 JP4464956 B2 JP 4464956B2
Authority
JP
Japan
Prior art keywords
processor
program code
code
backup
module
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
JP2006500174A
Other languages
English (en)
Other versions
JP2006518497A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006518497A publication Critical patent/JP2006518497A/ja
Application granted granted Critical
Publication of JP4464956B2 publication Critical patent/JP4464956B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/2023Failover techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、複数モジュールからなる分散システムに関し、より具体的には、ネットワーク内で相互接続された関連プロセッサ・ノードを有するモジュールのうちの少なくとも複数個に関し、そのプロセッサ・ノードは関連モジュールを操作するためのコードを有する。
分散システムは複数のモジュールを有することができ、そのうちの少なくともいくつかはネットワーク内で相互接続された関連プロセッサ・ノードを有する。プロセッサ・ノードは概して、関連モジュールを操作するための処理装置と、ネットワーク内のプロセッサ・ノードの通信を可能にするためのプロセッサ・インターフェースとを有する。処理装置は、関連モジュールを操作するために、不揮発性メモリなどのメモリに保管可能な、コンピュータ可読プログラム・コードなどのコードを実行する。モジュールおよび関連プロセッサは、埋込みシステムと呼ぶことができる。
分散システムの一例は、ストレージ・シェルフ(storageshelf)にリムーバブル・データ・ストレージ・メディアを保管する自動データ・ストレージ・ライブラリを有し、リムーバブル・データ・ストレージ・メディア上でデータの読取りあるいは書込みまたはその両方を行うために少なくとも1つのデータ・ストレージ・ドライブを有する。アクセサ・ロボット(accessor robot)は、データ・ストレージ・ドライブとストレージ・シェルフとの間で、カートリッジの形になっている可能性のあるリムーバブル・データ・ストレージ・メディアを移送する。オペレータ・パネルはオペレータがライブラリと通信できるようにするものであり、オペレータ・パネルは、ドアの開放ならびにカートリッジの挿入またはライブラリからのカートリッジの取外しなど、ライブラリとのその他の対話も感知する。また、コントローラは、ホストとデータ・ストレージ・ドライブとの間の対話を含む可能性のある、ライブラリとのホスト対話も制御する。
IBM3584ウルトラスケーラブル・テープ・ライブラリ(UltraScalable Tape Library)という例では、アクセサ・ロボット・モジュールのために2つのプロセッサ・ノードが設けられ、アクセス・コントローラ(accessor controller)は、グリッパによるカートリッジ処理、アクセサ作業キューイング(accessor work queueing)、カートリッジ・ラベルの読取りなどを含む基本アクセス機能(basic assessor function)を制御し、XYコントローラはアクセサ・ロボットのXおよびY運動を制御する。オペレータ・パネル・コントローラ・プロセッサ・ノードは、表示出力、キーボード入力、入出力装置(I/O station)センサおよびロックなどを含む、基本オペレータ・パネル・モジュール機能を制御する。メディア・チェンジャ(medium changer)コントローラ・プロセッサ・ノードは、ホスト通信、ドライブ通信、「イーサネット」通信を含むホスト対話と、パワー・マネージメントなどを含む、コントローラ・モジュール機能を制御する。プロセッサ・ノードは、マルチドロップ・ネットワークを含む、CAN(コントローラ・エリア・ネットワーク(Controller Area Network))などのネットワークによって相互接続される。その他のアクセサ・ロボット・モジュールおよびオペレータ端末(operator station)モジュールを追加することができ、それぞれが関連プロセッサ・ノードを備えている。
分散システムのその他の例は、産業用制御システムならびに自動車および航空機マルチプロセッサ・システムを含む。
2001年1月5日に出願され、本出願人に譲渡された米国特許出願第09/755832号の分散システムでは、いずれかのモジュールを操作するために実行可能なコードを提供するプロセッサ・ノードのそれぞれに完全なコード・イメージが提供される。2000年12月13日に出願され、本出願人に譲渡された米国特許出願第09/734917号の分散システムでは、不揮発性ストアを有する可能性があり、電源オフされた任意のプロセッサ・ノードの揮発性メモリをリフレッシュするために使用可能な、マスタ・ソースによってマスタ・コード・イメージが提供される。
対処すべき問題は、バックアップ・コードまたはそのコード・イメージを復元する必要があるプロセッサ・ノードによって使用可能なコードの問題である。たとえば、1つのプロセッサ・ノードに関するコード・イメージは動作中に何らかの点で損なわれたものになる可能性があり、プロセッサ・ノードによって使用されるコード・イメージは部分的に消去される可能性があり、モジュールは交換される可能性があり、プロセッサ・ノード・コード・イメージが間違っており、あるいは、他のプロセッサ・ノードのうちの1つまたは複数が更新されたときに、あるノードのプロセッサがネットワークなどから使用不能になる可能性がある。その場合、プロセッサ・ノードは、オペレータ介入を必要とする可能性のあるエラー状態に入る可能性がある。その場合、誤ったプロセッサ・ノードのモジュールの機能を復元するために、そのコードのバックアップ・コピーを突き止めて使用しなければならない。オペレータは、すべてのプロセッサ・ノードに関するコードを含む完全なコード・イメージを他のプロセッサ・ノードから選択するか、またはマスタ不揮発性ストアからマスタ・コード・イメージを選択することができるが、まず、そのコード・イメージが正しいものであり、システム・バックアップとして機能できることが保証されなければならない。各プロセッサ・ノードまたはマスタ・ノードで複製された完全なコード・イメージの使用を妨げる障害は、コードの全量のための不揮発性メモリの要件と、あるプロセッサ・ノード・モジュールに関するコードのみが実際に更新された場合でも完全なコード・イメージまたはマスタ・コード・イメージを更新する必要があることである。異なるプロセッサ・ノードに異なるレベルの完全なコードが存在する場合、あるプロセッサ・ノードにおけるダウンレベル(downlevel)の完全なコードは正しくないか、または他のプロセッサ・ノード用の潜在的なバックアップとして使えない可能性がある。
米国特許出願第09/755832号 米国特許出願第09/734917号
本発明の諸態様による分散システム、分散システム用のプロセッサ・ノード、分散システム用のモジュール、自動データ・ストレージ・ライブラリ、およびコンピュータ・プログラムは、分散システムのプロセッサ・ノードにバックアップ・コードを提供する。
一実施形態では、複数モジュールからなる分散システムは1つのネットワークと複数のモジュールとを有し、1つのモジュールは少なくとも1つの関連プロセッサ・ノードを有する。その関連プロセッサ・ノードは、関連モジュールを操作するための処理装置と、ネットワーク内のプロセッサ・ノードの通信を可能にするためのプロセッサ・インターフェースと、関連モジュールを操作するための処理装置用のコードを保管し、ネットワーク内の他のプロセッサ・ノードの少なくとも1つの他の処理装置用のバックアップ・コードを保管するための不揮発性メモリとを有し、そのバックアップ・コードは当該他のプロセッサ・ノードの関連モジュールを操作するためのものである。したがって、プロセッサ・ノードのバックアップ・イメージは、ひとまとめにして考えると、システム集合体(system aggregate)の一部または全部を形成する。バックアップ・コード・イメージとオペレーティング・コード(operating code)イメージから結果として得られるシステム集合体は、各プロセッサ・ノードにおいて、システム集合体全体に必要な全空間量のわずかな部分のみを要する。その結果として、すべてのモジュールに関する完全なコード・イメージが各モジュールで複製されるシステムと比較して、不揮発性メモリの相当な記憶空間が節約される。
他の一実施形態では、モジュール処理ノードの処理装置は、プロセッサ・インターフェースで受信したバックアップ・コードに関する要求に応答して、そのプロセッサ・インターフェースでバックアップ・コードを提供する。その結果として、バックアップ・コードは、要求側プロセッサ・ノードに提供され、要求側プロセッサ・ノードに関連するモジュールを操作するためのコードを復元するために使用することができる。
他の実施形態では、処理装置はさらに、バックアップ・コードのタイプのID(identification)を維持する。たとえば、バックアップ・コードのタイプは、そのバックアップ・コードが操作することが意図されているモジュールのタイプに関連する可能性がある。処理装置は、プロセッサ・インターフェースで受信したIDに関する要求に応答して、そのプロセッサ・インターフェースでIDを提供する。
さらに他の一実施形態では、そのコードの復元を要求する処理装置は、たとえば、復元信号に応答して、バックアップ・コードについてプロセッサ・インターフェースで要求を送信し、そのバックアップ・コードは関連モジュールを操作するための処理装置用のコードを有する。
さらに、処理装置は、関連モジュールを操作するためのコードのタイプのIDを維持することができ、そのコードの復元を要求する際に、バックアップ・コードのタイプのIDについてプロセッサ・インターフェースで要求を送信する。次に、プロセッサ・インターフェースでその要求に対する応答を受信したことに応答して、処理装置は、受信したIDを維持されているIDと比較し、その比較の結果、関連モジュールを操作するためのコードの置き換えのためにそのIDが有効であることが示されたことに応答して、バックアップ・コードを受信し、関連モジュールを操作するためのコードの少なくとも一部分をバックアップ・コードで置き換える。
他の実施形態では、処理装置はさらに、関連モジュールを操作するためのバックアップ・コードを有する少なくとも1つの他のプロセッサ・ノードのIDを維持し、復元信号に応答して、バックアップ・コードについて当該他のプロセッサ・ノードにプロセッサ・インターフェースで要求を送信するロジックを有する。さらに、処理装置は、関連モジュールを操作するためのコードのレベルのIDを維持することができ、復元信号に応答して、当該他のプロセッサ・ノードのバックアップ・コードのレベルのIDを受信したことに応答して、受信したIDを維持されているIDと比較し、その比較の結果、関連モジュールを操作するためのコードの置き換えのためにそのIDが有効であることが示されたことに応答して、関連モジュールを操作するためのコードの少なくとも一部分をバックアップ・コードで置き換えるロジックを有する。
他の一実施形態では、プロセッサ・ノードの処理装置はさらに、バックアップ・コードのレベルのIDを維持し、バックアップ・コードの更新に応答して、IDを更新し、ネットワーク上のプロセッサ・インターフェースで更新の通知を送信するロジックをさらに有する。
次に、添付図面に関連して、一例としてのみ、本発明の諸実施形態について説明する。
図1を参照すると、システムのノードにプロセッサを備えた複数のモジュール101、102、103、104と、システムのモジュール同士を相互接続する働きをするネットワーク110とを有する、分散システム100の一実施形態が図示されている。「ネットワーク」は、直接または間接を問わず、2つまたはそれ以上のノード間の通信を含むものとして定義され、1つまたは複数のサブネットワークを有することができる。図示したモジュールのそれぞれは、少なくとも1つの関連プロセッサ・ノードを有する。関連プロセッサ・ノードは、処理装置111、112、113、114として示した関連モジュールを操作するための処理装置と、インターフェース121、122、123、124として示したネットワーク110内のプロセッサ・ノードの通信を可能にするためのプロセッサ・インターフェースと、不揮発性メモリ131、132、133、134として示した関連モジュールを操作するための処理装置用のコードを保管するための不揮発性メモリとを有する。図1の例では、後述する通り、モジュール101の処理ノードに追加の不揮発性メモリ135が設けられている。この不揮発性メモリとしては、NVRAM(不揮発性ランダム・アクセス・メモリ)、PROM(プログラマブル読取り専用メモリ)、ROM(読取り専用メモリ)、フラッシュ・メモリ、EEPROM(電気消去可能プログラマブル読取り専用メモリ)、バッテリ・バックアップ付きRAM(ランダム・アクセス・メモリ)、ハードディスク・ドライブなどを含むことができる。代わって、不揮発性メモリは処理装置内に配置することもできる。処理装置111、112、113、114は、モジュールおよびそのコンポーネントを操作するためのプログラマブル・プロセッサを有し、それにより、システムを操作する。モジュール・コンポーネントは、コンポーネント141、142、143、144として示されている。処理装置は、当技術分野で知られている任意のマイクロプロセッサ・デバイスを有することができ、そのコードが、たとえば、ライブラリを構成するモジュール・ハードウェアに関連するので、しばしば「ファームウェア」と呼ばれるプログラム・コードの制御下で動作する。このコードは、処理装置がシステムのコンポーネントを操作するようになっているものである。このコードは概して不揮発性メモリ内に維持されるが、このコードの一部または全部は、処理装置を操作するために処理装置の高速RAM(ランダム・アクセス・メモリ)に転送することができ、必要に応じて不揮発性メモリからアクセスすることができる。
図1、図2、図3、図4、および図5を参照すると、本発明の一実施形態によれば、不揮発性メモリ131、132、133、134は、関連モジュールを操作するための処理装置用のコード151、152、153、154を保管し、ネットワーク内の他のプロセッサ・ノードの少なくとも1つの他の処理装置用のバックアップ・コードを保管し、そのバックアップ・コードは当該他のプロセッサ・ノードの関連モジュールを操作するためのものである。
一例として、図1および図2の不揮発性メモリ135は、モジュール102の処理ノードの処理装置112用のバックアップ・コード162を保管する。モジュール102のプロセッサ・ノードに関する図1および図3のコード・イメージ152が動作中に何らかの点で損なわれたものになるか、部分的に消去されるか、モジュールが交換されて、コード・イメージが間違っているか、あるいは、他のプロセッサ・ノードのうちの1つまたは複数が更新されたときに、あるノードのプロセッサがネットワークなどから使用不能になる可能性がある場合、処理装置112は復元プロセスを開始し、バックアップ・コード162に関する要求を送信する。
図1、図2、図3、図4、および図5を参照すると、モジュール102のプロセッサ・ノードの不揮発性メモリ132は、モジュール101を操作するための処理ノードの処理装置111用のバックアップ・コード161を保管し、モジュール103を操作するためにモジュール103の処理ノードの処理装置113用のバックアップ・コードのコピー163を保管する。モジュール103のプロセッサ・ノードの不揮発性メモリ133は、モジュール104を操作するための処理ノードの処理装置114用のバックアップ・コード164を保管する。モジュール104のプロセッサ・ノードの不揮発性メモリ134は、モジュール103を操作するための処理ノードの処理装置113用のバックアップ・コードの第2のコピー173を保管する。
バックアップおよび復元プロセスを実行するための本発明によるコードは、オペレーティング・コード151など、そのモジュール用のオペレーティング・コードとして実施するか、処理装置112などの処理装置内に維持されるコードとして実施するか、または不揮発性メモリ133のコード177など、不揮発性メモリ内に別個に保管することができる。
このため、本明細書では「不揮発性メモリ」という用語は、不揮発性方式でコードを保管でき、プロセッサから分離しているかまたはプロセッサの一部を形成する1つまたは複数のデバイスを含む。
バックアップ・コード・イメージあるいはオペレーティング・コード・イメージまたはその両方がシステム集合体の一部または全部を形成するように、バックアップ・コード・イメージは分散方式で保管されるので、各バックアップ・コード・イメージはシステム集合体の一部分を形成する。その結果として、すべてのモジュールに関する完全なコード・イメージが各モジュールで複製されるシステムと比較して、不揮発性メモリの相当な記憶空間が節約される。
たとえば、分散システム用のすべてのコード・イメージが図2、図3、図4、図5によって示されている場合、不揮発性メモリ135に保管されているモジュール102の処理装置112用のバックアップ・コード162は、システム集合体の非常にわずかな部分のみを占有する。たとえば、集合体の一部分としての不揮発性メモリ135を、システムのすべてのモジュール用の従来技術の完全なオペレーティング・コード・イメージを各モジュールで複製するために必要な不揮発性メモリと比較する。
一連の個別コード・ロードではなく集合コード・ロードでシステムのファームウェアを更新することが望ましい場合がある。さらに、互換レベルの集合コード・ロードの一部または全部を備えることが望ましい場合もある。システム・コード・ロードが集合体として更新されない場合でも、個別コード・ロードを集合体と見なすことができる。
本発明によるバックアップおよび復元プロセスの一実施形態では、処理装置(たとえば、処理装置111)は、関連モジュールを操作するためのコードのタイプのIDを維持することができ、そのコードの復元を要求する際に、バックアップ・コードのタイプのIDについてプロセッサ・インターフェースで要求を送信する。バックアップ・コードのタイプは、本明細書では、そのバックアップ・コードが操作することが意図されているモジュールの種類を表すものとして定義される。ID(identifier)は、バックアップおよび復元コードの一部として設定され維持される場合もあれば、そのプロセッサ・ノードとともにモジュール・インターフェースの一部である場合もある。このため、「維持される」という用語は、IDにアクセスできるものとして定義される。IDの一例は、ワード内で「1」状態に設定されるビット位置を含む。また、処理装置は、関連不揮発性メモリ内に保管されたバックアップ・コードのタイプのIDも維持することができる。IDは、バックアップおよび復元コードの一部として設定され維持される場合もあれば、不揮発性メモリ内に保管されたバックアップ・コードの一部を含む場合もある。したがって、この場合も、「維持される」という用語は、IDにアクセスできるものとして定義される。したがって、不揮発性メモリ132内に保管されたバックアップ・コード161のタイプは、モジュール101を含む種類のモジュールを操作するためのものである。処理装置は、プロセッサ・インターフェースで受信したIDに関する要求に応答し、プロセッサ・インターフェースでそのIDを提供する。たとえば、モジュール101用のオペレーティング・コードが復元を必要とする場合、関連インターフェース122、123、124でIDに関する要求を受信した処理装置112、113、114のそれぞれは、関連不揮発性メモリ内に保管されたバックアップ・コードのID、すなわち、それぞれ、モジュール101を操作するためのバックアップ・コード161、モジュール103を操作するためのバックアップ・コード163、モジュール104を操作するためのバックアップ・コード164、およびモジュール103を操作するためのバックアップ・コード173のIDで応答する。任意選択で、オペレーティング・コードは他の同様のモジュール用のバックアップ・コードとして使用することができ、またはバックアップ・コードおよびオペレーティング・コードは、後述する通り、単一ユニットを有することもできる。
次に、プロセッサ・インターフェース(たとえば、プロセッサ・インターフェース121)でその要求に対する応答を受信したことに応答して、要求側処理装置(たとえば、処理装置111)は、受信したIDを維持されているIDと比較し、関連モジュールを操作するためのコードの置き換えのためにID(たとえば、モジュール102に保管され、バックアップ・コード161について受信したID)が有効であることをその比較が示したことに応答して、バックアップ・コードを要求し、バックアップ・コード(たとえば、バックアップ・コード161)を受信し、関連モジュールを操作するためのコード(たとえば、コード151)の少なくとも一部分をバックアップ・コードで置き換える。同じ機能の他の実施形態としては、要求側プロセッサ・ノードは、プロセッサ・インターフェースで所望のタイプのバックアップ・コードとともに要求を送信する。この事例では、所望のタイプのバックアップ・コードが関連不揮発性メモリに保管されている処理装置のみが、バックアップ・コードのタイプのIDで応答する(たとえば、モジュール102の処理装置112がバックアップ・コード161のタイプのIDを送信する)。
他の実施形態では、処理装置はさらに、その処理装置に関連するモジュールを操作するためのバックアップ・コードを有する少なくとも1つの他のプロセッサ・ノードのIDを維持する。これは、たとえば、モジュール101の処理装置111が、モジュール101を操作するためのバックアップ・コード161を有するものとして、モジュール102の処理ノードのIDを維持することを意味する。この例では、処理装置111は、復元信号に応答して、バックアップ・コードについてモジュール102のプロセッサ・ノードにプロセッサ・インターフェースで要求を送信し、処理装置112は、不揮発性メモリ132内のバックアップ・コードをルックアップし、インターフェース122によりモジュール101のプロセッサ・ノードにバックアップ・コード161を送信する。
さらに、処理装置(たとえば、処理装置111)は、関連モジュールを操作するためのコードのレベルのIDを維持することができ、復元信号に応答して、当該他のプロセッサ・ノードのバックアップ・コード(たとえば、バックアップ・コード161)のレベルのIDを受信したことに応答して、受信したIDを維持されているIDと比較し、関連モジュールを操作するためのコードの置き換えのためにそのIDが有効であることをその比較が示したことに応答して、関連モジュールを操作するためのコード(たとえば、コード151)の少なくとも一部分をバックアップ・コード(たとえば、バックアップ・コード161)で置き換えるロジックを有する。
他の一実施形態では、バックアップ・コードを、たとえば、新しいレベルに更新することができる。プロセッサ・ノードの処理装置はさらに、バックアップ・コードのレベルのIDを維持し、バックアップ・コードの更新に応答して、IDを更新し、ネットワーク上のプロセッサ・インターフェースで更新の通知を送信するロジックをさらに有する。この通知は、他のすべてのプロセッサ・ノードにブロードキャストするか、またはそのコードを復元するためにバックアップ・コードを使用すると考えられるプロセッサ・ノードに直接送信することができる。たとえば、モジュール104の不揮発性メモリ134に保管されたバックアップ・コード173の更新に応答して、処理装置114は、バックアップ・コードのレベルのそのIDを更新し、モジュール103のプロセッサ・ノードにその更新のIDの通知を送信する。モジュール103のプロセッサ・ノード用のバックアップ・コードの他のコピー163が更新されず、オペレーティング・コード153が更新された場合、バックアップ・コードのコピー173のみが有効になるであろう。逆に、オペレーティング・コード153がバックアップ・コード・コピー163と同じレベルであった場合、バックアップ・コードのコピー163のみが有効になるであろう。
図6と、図1、図2、図3、図4、および図5とを参照すると、ステップ199から始まる復元プロセスの一実施形態が図示されている。ステップ199は、「復元信号」と呼ぶことができるが、プロセッサ・ノードを操作するためのコード・イメージが、前述の通り、何らかの点で損なわれたものになったかまたは損なわれたものになっているという任意の検出として定義される。したがって、「復元信号」は、エラー状態を含むかまたは任意の形式またはフォーマットの信号を表すことができる。任意選択のステップ201は、そのコードが復元されるプロセッサ・ノードの処理装置が、プロセッサ・ノード用のバックアップ・コードを有する処理装置を把握しているかどうかを示す。たとえば、モジュール101の処理装置111は、モジュール102の処理ノードのIDを、モジュール101を操作するためのバックアップ・コード161を有するものとして維持し、ステップ201の「YES」を意味する。次にプロセスはステップ205に続く。バックアップ・コードを備えた処理装置が、そのコードが復元されるプロセッサ・ノードに知られていない場合、「NO」であり、プロセスはステップ206に続く。ステップ201は一般的なバックアップおよび復元プロセス内の1つのステップであり、そのコードは、バックアップ・コード位置が分かっているバックアップおよび復元プロセスの場合にその代わりにステップ205に直接アクセスするようにプログラミングするか、バックアップ・コード位置が分かっていないバックアップおよび復元プロセスの場合にその代わりにステップ206に直接アクセスするようにプログラミングすることができる。そうである場合、もう一方のレグ(leg)のプロセス・ステップをプロセスから削除することができる。
ステップ206では、そのコードが復元されるプロセッサ・ノードの処理装置は、バックアップ・コードのタイプあるいはレベルまたはその両方のIDについて関連プロセッサ・インターフェースで要求を送信する。前述の通り、ある代替例では、他のプロセッサ・ノードのすべてに対し、その要求のみが提供され、同じ機能の他の実施形態のように、要求側プロセッサ・ノードは、プロセッサ・インターフェースで所望のタイプあるいはレベルまたはその両方のバックアップ・コードとともに要求を送信する。この第2の事例では、関連不揮発性メモリに保管された所望のタイプあるいはレベルまたはその両方のバックアップ・コードを有する処理装置のみが、バックアップ・コードのタイプあるいはレベルまたはその両方のIDで応答する(たとえば、モジュール101の処理装置111が、モジュール101を操作するバックアップ・コードのタイプに関する要求を送信する場合、モジュール102の処理装置112のみがバックアップ・コード161のタイプで応答する)。第1の事例では、他のプロセッサ・ノードのそれぞれは、その関連不揮発性メモリに保管されたバックアップ・コードの各コピーのIDで応答する(たとえば、関連インターフェース122、123、124でIDに関する要求を受信した処理装置112、113、114のそれぞれは、関連不揮発性メモリに保管されたバックアップ・コードのID、すなわち、それぞれ、モジュール101を操作するためのバックアップ・コード161、モジュール103を操作するためのバックアップ・コード163、モジュール104を操作するためのバックアップ・コード164、およびモジュール103を操作するためのバックアップ・コード173のIDで応答する)。
さらに、処理装置(たとえば、処理装置111)は、関連モジュールを操作するためのコードのレベルのIDを維持することができ、復元信号に応答して、応答側処理ノードによって提供されるバックアップ・コードのレベルを要求するロジックを有する。
ステップ208では、要求側プロセッサ・ノードは、要求に応答して1つまたは複数のIDを受信し、その1つまたは複数のIDはバックアップ・コードのタイプあるいはレベルまたはその両方を含む。たとえば、要求が所望のバックアップ・コードのタイプを含んでいた場合、応答は、事実上、タイプのIDを含み、どの要求に対して応答するかのみを示すことができる。次に、ステップ210では、プロセッサ・インターフェース(たとえば、プロセッサ・インターフェース121)で要求に対する応答を受信したことに応答して、要求側処理装置(たとえば、処理装置111)は、受信したID(タイプあるいはレベルまたはその両方)を維持されているIDと比較する。ステップ211で、関連モジュールを操作するためのコードの置き換えのためにID(たとえば、バックアップ・コード161について受信したID)が有効であることをステップ210の比較が示す場合、そのコードが復元される処理装置は、ステップ215でバックアップ・コードを要求する。
比較ステップ210は、すべての応答(2つ以上ある場合)のIDを一度に比較する場合もあれば、たとえば、ステップ208で受信した通り、応答を1つずつ比較する場合もある。IDを1つずつ比較する場合、そのIDが有効ではないことをステップ211が示した後で、ステップ217は、すべてのIDが比較されたかどうかをテストする。これは、すべての潜在的な応答が受信されたことを保証するために、ステップ208で待ち時間を必要とする可能性がある。すべての受信したIDが維持されているIDと比較されたわけではない場合、ステップ217はステップ210に戻ってプロセスを反復し、ステップ208で別個に受信される可能性のある次のIDを比較する。すべてのIDが比較されたが有効なIDがない場合、復元プロセスを実行することができず、ステップ218でエラーが示される。
ステップ220では、ステップ215で要求されたバックアップ・コード(たとえば、バックアップ・コード161)が受信され、ステップ223では、処理装置がそのバックアップ・コードをインストールし、関連モジュールを操作するためのコード(たとえば、コード151)の少なくとも一部分をそのバックアップ・コードで置き換える。
ステップ205の実施形態では、処理装置はさらに、関連モジュールを操作するためのバックアップ・コードを有する少なくとも1つの他のプロセッサ・ノードのIDを維持する(たとえば、モジュール101の処理装置111は、モジュール101を操作するためのバックアップ・コード161を有するものとしてモジュール102の処理ノードのIDを維持する)。復元されるプロセッサ・ノードの処理装置(たとえば、処理装置111)は、復元信号に応答して、ステップ205で、バックアップ・コードについてモジュール102のプロセッサ・ノードにプロセッサ・インターフェースで要求を送信する。要求を受信する処理装置(たとえば、処理装置112)は、不揮発性メモリ(たとえば、不揮発性メモリ132)内のバックアップ・コードをルックアップし、プロセッサ・インターフェース(たとえば、プロセッサ・インターフェース122)により要求側プロセッサ・ノード(たとえば、モジュール101のプロセッサ・ノード)にバックアップ・コード(たとえば、バックアップ・コード161)を送信する。
ステップ230では、そのコードが復元される処理装置は、それに対して要求が行われた当該他の処理ノードの処理装置からバックアップ・コードを受信する。
前述の通り、処理装置(たとえば、処理装置111)は、関連モジュールを操作するためのコードのレベルのIDを維持することができ、復元信号に応答して、ステップ230で当該他のプロセッサ・ノードのバックアップ・コード(たとえば、バックアップ・コード161)のレベルのIDを受信したことに応答して、ステップ233で受信したIDを維持されているIDと比較するロジックを有する。関連モジュールを操作するためのコードの置き換えのためにそのIDが有効であることをその比較が示したことに応答して、そのコードが復元される処理装置(たとえば、処理装置111)は、ステップ223で、そのバックアップ・コードをインストールし、関連モジュールを操作するためのコード(たとえば、コード151)の少なくとも一部分をそのバックアップ・コード(たとえば、バックアップ・コード161)で置き換える。
受信したバックアップ・コードまたはそのレベルが有効ではないことをステップ233が示す場合、ステップ235は、任意の他のプロセッサ・ノードがバックアップ・コードのコピーを有するかどうかを決定する。たとえば、プロセッサ・ノード102の不揮発性メモリ132はモジュール103のプロセッサ・ノード用のバックアップ・コードの1つのコピー163を有し、プロセッサ・ノード104の不揮発性メモリ134はモジュール103のプロセッサ・ノード用のバックアップ・コードの他のコピー173を有する。他のコピーが存在する場合、ステップ235はステップ205に戻ってプロセスを反復し、バックアップ・コードの次のコピーを要求する。受信したバックアップ・コードまたはそのレベルが有効ではないことをステップ233が示し、バックアップ・コピーを備えた他のプロセッサ・ノードがまったく存在しないとステップ235が決定した場合、ステップ239でエラーが示される。
当業者であれば、図6の諸ステップの代替配置を想像することができる。加えて、ステップは除去または追加することができる。たとえば、ステップ233、235、および239は除去することができ、ステップ230はステップ223に直接導かれる。
図7は、ステップ240から始まり、プロセッサ・ノードがIDに関する要求またはバックアップ・コードに関する要求を受信するプロセスの一実施形態を表している。ステップ241は、その要求がIDのみに関するものであるかどうかを決定するものであり、そのIDはバックアップ・コードのタイプ(複数も可)あるいはバックアップ・コードのレベル(複数も可)またはその両方に関するものである可能性がある。そうである場合、プロセッサ・ノードの処理装置は、ステップ245で要求されたタイプ(複数も可)およびレベル(複数も可)の要求されたID(複数も可)をルックアップし、ステップ246でそのID(複数も可)を送信する。図1および図3をさらに参照すると、たとえば、プロセッサ・ノード102の処理装置112は、バックアップ・コード161およびバックアップ・コード163に関するIDを送信する。
その要求がIDに関するものではないと図7のステップ241が決定した場合、ステップ247は、その要求がバックアップ・コードに関するものであるかどうかを決定する。そうではない場合、他の要求が行われており、ステップ248に導かれる。
代替例として、ステップ241、247、および248は、どの要求が受信されたかを決定するためのルックアップを含むことができる。
受信した要求がバックアップ・コードに関するものであるとステップ247が決定した場合、プロセッサ・ノードの処理装置は、ステップ251で要求されたバックアップ・コードをルックアップし、ステップ253でそのバックアップ・コードを送信する。図1、図2、および図3をさらに参照すると、たとえば、処理装置111による要求に応答して、プロセッサ・ノード102の処理装置112はバックアップ・コード161を送信する。
当業者であれば、図7の諸ステップの代替配置を想像することができる。たとえば、どのプロセッサ・ノード(複数も可)がバックアップ・コードを有しているかに関する情報を要求側プロセッサ・ノードが維持している場合、ステップ241、245、および246は不要である。
図8は、他のプロセッサ・ノード用のバックアップ・コードが、たとえば、新しいレベルに更新されるプロセッサ・ノードのプロセスの一実施形態を表している。プロセッサ・ノードの処理装置はさらに、バックアップ・コードのレベルのIDを維持する。バックアップ・プロセスはステップ260から始まる。ステップ261は、そのプロセスがバックアップ・コードへの更新であるかどうかを決定し、そうではない場合、他のプロセスが関与していることをステップ263で示す。そうである場合、ステップ265は、更新されたバックアップコードまたはバックアップ・コードの更新された部分を不揮発性メモリにロードし、ステップ266で、バックアップ・コードのIDを新しいレベルに更新する。次に、ステップ267では、処理装置は、ネットワーク上のプロセッサ・インターフェースで更新の通知を送信する。この通知は、他のすべてのプロセッサ・ノードにブロードキャストするか、またはそのコードを復元するためにバックアップ・コードを使用する可能性があるプロセッサ・ノードに直接送信することができる。図1および図5をさらに参照すると、たとえば、モジュール104の不揮発性メモリ134に保管されたバックアップ・コード173への更新に応答して、処理装置114は、バックアップ・コードのレベルのそのIDを更新し、モジュール103のプロセッサ・ノードにその更新のIDの通知を送信する。
当業者であれば、図8の諸ステップの代替配置を想像することができる。たとえば、ID(複数も可)がバックアップ・コード・イメージの一部である場合、ステップ266を除去することができる。
図9および図10は、本発明による分散システムを実現可能な自動データ・ストレージ・ライブラリ10の一実施形態を図示している。このライブラリは、少なくとも1つの外部ホスト・システムからのコマンドに応答してデータ・ストレージ・メディア(図示せず)にアクセスするために配置されており、データ・ストレージ・メディアを保管するための複数のストレージ・シェルフ16と、データ・ストレージ・メディアに対してデータの読取りあるいは書込みまたはその両方を行うための少なくとも1つのデータ・ストレージ・ドライブ15と、複数のストレージ・シェルフ16とデータ・ストレージ・ドライブ(複数も可)15との間でデータ・ストレージ・メディアを移送するための少なくとも1つのロボット・アクセサ(robot accessor)18とを有する。また、このライブラリは、オペレータ・パネル23またはWebベース・インターフェースなどのその他のユーザ・インターフェースも有することができ、これによりユーザはこのライブラリと対話することができる。ライブラリ10は、それぞれがロボット・アクセサ18によってアクセス可能なストレージ・シェルフ16を有する、1つまたは複数のフレーム11〜13を有することができる。ロボット・アクセサ18は、1つまたは複数のデータ・ストレージ・メディアをつかむためのグリッパ・アセンブリ20を有し、データ・ストレージ・メディアに関する識別情報を「読み取る」ためにグリッパ20上に取り付けられたバーコード・スキャナ22またはスマート・カード・リーダあるいは同様のシステムなどの読取りシステムを含むことができる。
図11は、本発明により複数のプロセッサ・ノードを備えた複数モジュールからなる分散システムを使用する、図9および図10のデータ・ストレージ・ライブラリ10の一実施形態を図示している。本発明を実現可能なデータ・ストレージ・ライブラリの一例は、IBM3584ウルトラスケーラブル・テープ・ライブラリである。このライブラリは、ベース・フレーム11を有し、1つまたは複数の拡張フレーム12をさらに有することができ、高可用性フレーム(high availability frame)13を有することもできる。
ライブラリ10のベース・フレーム11は、1つまたは複数のデータ・ストレージ・ドライブ15と、1つのロボット・アクセサ18とを有する。前述の通り、ロボット・アクセサ18は、グリッパ・アセンブリ20を有し、データ・ストレージ・メディアに関する識別情報を「読み取る」ために読取りシステム22を含むことができる。データ・ストレージ・ドライブ15は、たとえば、光ディスク・ドライブまたは磁気テープ・ドライブにすることができ、データ・ストレージ・メディアは、それぞれ、光あるいは磁気テープ・メディアまたは任意のその他のリムーバブル・メディアと、関連ドライブとを有することができる。例として、データ・ストレージ・ドライブは、IBM LTO Ultriumドライブなどを有することができる。さらに、ホストとライブラリの間で通信するように動作し、たとえば、ホストからコマンドを受信し、そのコマンドをライブラリに転送するが、データ・ストレージ・ドライブではない制御ポートを設けることができる。
拡張フレーム12は、追加のストレージ・シェルフを有し、追加のデータ・ストレージ・ドライブ15を有することもできる。また、高可用性フレーム13は、追加のストレージ・シェルフとデータ・ストレージ・ドライブ15とを有することもでき、第2のロボット・アクセサ28を有し、このロボット・アクセサはグリッパ・アセンブリ30を含み、バーコード・スキャナ32またはその他の読取り装置と、オペレータ・パネル280またはその他のユーザ・インターフェースを含むことができる。ロボット・アクセサ18またはそのグリッパ20などの障害またはその他の使用不可状態が発生した場合、第2のロボット・アクセサ28が引き継ぐことができる。
例示的なライブラリでは、それぞれのロボット・アクセサ18、28は、水平「X」方向と垂直「Y」方向という少なくとも2つの方向にそのグリッパを移動して、ストレージ・シェルフ16でデータ・ストレージ・メディアを取り出してつかむかまたは引き渡して離し、データ・ストレージ・ドライブ15でデータ・ストレージ・メディアをロードしてアンロードする。
例示的なライブラリ10は、1つまたは複数のホスト・システム40、41、または42からコマンドを受信する。ホスト・サーバなどのホスト・システムは、たとえば、パス80上で、1つまたは複数の制御ポート(図示せず)により、あるいはパス81、82上で1つまたは複数のデータ・ストレージ・ドライブ15により、ライブラリと直接通信し、特定のデータ・ストレージ・メディアにアクセスし、たとえば、ストレージ・シェルフとデータ・ストレージ・ドライブとの間でそのメディアを移動するためのコマンドを提供する。このコマンドは概して、メディアあるいはそのメディアにアクセスするための論理位置またはその両方を識別する論理コマンドである。
例示的なライブラリは、ホストから論理コマンドを受信し、必要なアクションを決定し、そのアクションをロボット・アクセサ18、28の物理的移動に変換する分散制御システムによって制御される。
例示的なライブラリでは、分散制御システムは、それぞれが1つまたは複数のプロセッサを有する、複数のプロセッサ・ノードを有する。分散制御システムの一例では、通信プロセッサ・ノード50は、ベース・フレーム11内に配置することができる。この通信プロセッサ・ノードは、たとえば、ライン80に結合された少なくとも1つの外部インターフェースを介して、直接またはドライブ15により、ホスト・コマンドを受信するための通信リンクを提供する。通信プロセッサ・ノード50は、データ・ストレージ・ドライブ15と通信するための通信リンク70をさらに提供することができる。
通信プロセッサ・ノード50は、データ・ストレージ・ドライブ15に接近して、フレーム11内に配置することができる。さらに、分散プロセッサ・システムの一例では、1つまたは複数の追加の作業プロセッサ・ノード(work processor node)が設けられ、その作業プロセッサ・ノードは、たとえば、ロボット・アクセサ18に配置することができ、ネットワーク60を介して通信プロセッサ・ノード50に結合される作業プロセッサ・ノード52を有することができる。各作業プロセッサ・ノードは、任意の通信プロセッサ・ノードから作業プロセッサ・ノードにブロードキャストされた受信したコマンドに応答することができ、作業プロセッサ・ノードは、移動コマンドを提供して、ロボット・アクセサの動作を指図することもできる。XYプロセッサ・ノード55を設けることができ、これはロボット・アクセサ18のXYシステムに配置することができる。XYプロセッサ・ノード55は、ネットワーク60に結合され、移動コマンドに応答して、グリッパ20を位置決めするようにXYシステムを操作する。
また、オペレータ・パネル23と通信プロセッサ・ノード50、作業プロセッサ・ノード52、およびXYプロセッサ・ノード55との間で通信するためのインターフェースを提供するために、オペレータ・パネル23にオペレータ・パネル・プロセッサ・ノード59を設けることもできる。
たとえば、共通バス60を有するネットワークが設けられ、様々なプロセッサ・ノードを結合する。このネットワークは、たとえば、ドイツ連邦共和国D−91058エルランゲン、アム・ヴァイヒ・ゼルガルテン26のCAN in Automation AssociationであるCiAによって定義された標準のアクセス・プロトコルおよび配線規格を有するマルチドロップ・ネットワークである市販のCAN(コントローラ・エリア・ネットワーク)バス・システムなどの堅固な配線網を有することができる。当業者に知られているように、このライブラリでは、イーサネットなどのその他の同様のネットワークまたはRFあるいは赤外線などのワイヤレス・ネットワーク・システムを使用することもできる。
通信プロセッサ・ノード50は、ライン70を介してベース・フレーム11のデータ・ストレージ・ドライブ15のそれぞれに結合され、ドライブならびにホスト・システム40、41、および42と通信する。代わって、ホスト・システムは、入力80で通信プロセッサ・ノード50に、またはドライブ/ライブラリ・インターフェースと同様のライブラリ・インターフェースを備えたホスト・システム(複数も可)にライブラリを接続する制御ポート・デバイス(図示せず)に、直接結合することができる。当業者に知られているように、ホストならびにデータ・ストレージ・ドライブとの通信のために、様々な通信配置を使用することができる。図11の例では、ホスト接続80および81はSCSIバスである。バス82は、高速シリアル・データ・インターフェースであるファイバ・チャネル・アービトレーテッド・ループの一例を含み、SCSIバス・システムより長い距離の伝送を可能にする。
データ・ストレージ・ドライブ15は、通信プロセッサ・ノード50に極めて接近している可能性があり、SCSIなどの短距離通信方式またはRS−422などのシリアル接続を使用することができる。したがって、データ・ストレージ・ドライブ15は、ライン70により通信プロセッサ・ノード15に個別に結合される。
拡張フレーム12を設けることができ、この拡張フレーム12は拡張ネットワーク157によってネットワーク157、60に結合することができる。通信プロセッサ・ノード50と同様の他の通信プロセッサ・ノード155は、拡張フレーム内に配置することができ、たとえば、入力156でホストと通信することができ、また、たとえば、ライン170を介して拡張フレーム12内のデータ・ストレージ・ドライブ15と通信することができる。通信プロセッサ・ノード155はネットワーク157、60に結合され、コマンドがベース・フレームの作業プロセッサ・ノード52にリンクされるように、通信プロセッサ・ノード155はネットワーク157、60に対するコマンド用の通信リンクを提供する。
通信プロセッサ・ノード155は、拡張フレーム12の結合されたデータ・ストレージ・ドライブ15に緊密に隣接して、拡張フレーム12内に取り付けることができ、ドライブならびに接続されたホスト・システムと通信する。また、データ・ストレージ・ドライブ15は、ライン170により通信プロセッサ・ノード155にも個別に結合される。
同一の通信プロセッサ・ノード155、ストレージ・シェルフ、データ・ストレージ・ドライブ15、および拡張ネットワーク157を備えた追加の拡張フレームを設けることができ、そのそれぞれは隣接拡張フレームに結合される。
さらに、データ・ストレージ・ライブラリ10は、たとえば、高可用性フレーム13内に他のロボット・アクセサ28をさらに有することができる。ロボット・アクセサ28は、データ・ストレージ・メディアにアクセスするためのグリッパ30と、ロボット・アクセサを移動するためのXYシステム255とを有することができる。高可用性フレームは、拡張フレーム12に隣接するかまたはベース・フレーム11に隣接することができ、ロボット・アクセサ28は、ロボット・アクセサ18と同じ水平機械経路上または隣接経路上で移動することができる。この例示的な制御システムは、拡張フレームのネットワーク157またはベース・フレームのネットワーク60に結合されたネットワークを形成する拡張ネットワーク200をさらに有する。他の通信プロセッサ・ノード250を設けることができ、これも通信プロセッサ・ノード50と同様のものであり、入力256で直接、制御ポート(図示せず)により、またはデータ・ストレージ・ドライブ15およびライン270により、たとえば、入力256でホストからコマンドを受信するために高可用性フレーム13内に配置することができる。通信プロセッサ・ノード250は、高可用性フレーム・ネットワーク200に結合され、ネットワークへの通信リンクを提供する。
通信プロセッサ・ノード250は、高可用性フレーム13の結合されたデータ・ストレージ・ドライブ15に緊密に隣接して取り付けることができ、ドライブならびに接続されたホスト・システムと通信する。また、データ・ストレージ・ドライブ15は、ライン270により通信プロセッサ・ノード250にも個別に結合され、RS−422などのインターフェースを使用する。
本発明を実現するコンピュータ・プログラムは、プロセッサ・ノードのうちの1つ、たとえば、作業プロセッサ52、または任意選択でプロセッサ50、プロセッサ155、あるいはプロセッサ250に設けられる場合もあれば、プロセッサ・ノードのうちの複数個または全部に実現される場合もある。
図12、図13、図14、および図15をさらに参照すると、本発明の一実施形態によれば、モジュールのうちのいくつかまたは全部の不揮発性メモリは、関連モジュールを操作するための処理装置用のコードを保管し、ネットワーク内の他のプロセッサ・ノードの少なくとも1つの他の処理装置用のバックアップ・コードを保管し、そのバックアップ・コードは当該他のプロセッサ・ノードの関連モジュールを操作するためのものである。たとえば、通信プロセッサ・ノード50、通信プロセッサ・ノード155、および通信プロセッサ・ノード250のうちの1つまたはそれぞれの不揮発性メモリ331は、関連モジュールを操作するための処理装置用のコード351を保管し、オペレータ・パネル・プロセッサ・ノード59あるいはオペレータ・パネル・プロセッサ・ノード259またはその両方の処理装置用のバックアップ・コード362を保管する。オペレータ・パネル・プロセッサ・ノード59およびオペレータ・パネル・プロセッサ・ノード259のうちの1つまたはそれぞれの不揮発性メモリ332は、関連モジュールを操作するための処理装置用のコード352を保管し、通信プロセッサ・ノード50、通信プロセッサ・ノード155、あるいは通信プロセッサ・ノード250またはそれらの組合せの処理装置用のバックアップ・コード361を保管する。作業プロセッサ・ノード52および作業プロセッサ・ノード252のうちの1つまたはそれぞれの不揮発性メモリ333は、関連モジュールを操作するための処理装置用のコード353を保管し、XYプロセッサ・ノード55あるいはXYプロセッサ・ノード255またはその両方の処理装置用のバックアップ・コード364を保管する。XYプロセッサ・ノード55およびXYプロセッサ・ノード255のうちの1つまたはそれぞれの不揮発性メモリ334は、関連モジュールを操作するための処理装置用のコード354を保管し、作業プロセッサ・ノード52および作業プロセッサ・ノード252の処理装置用のバックアップ・コード363を保管する。
したがって、前述の通り、プロセッサ・ノードの処理装置は、要求に応答して、要求側プロセッサ・ノードに関連するモジュールを操作するためのコード351、352、353、354を復元するために使用される要求側プロセッサ・ノードに、その不揮発性メモリ331、332、333、334のバックアップ・コード362、361、364、363を提供する。
不揮発性メモリ331、332、333、334は、本発明のコンピュータ・プログラムなどの共通コードあるいはすべてのプロセッサ・ノードに共通する何らかの通信コードまたはその両方なども別個に保管することもできる。さらに、不揮発性メモリ331、332、333、334は、複数のプロセッサ・ノード用のバックアップ・コードを保管する場合もあれば、いかなるバックアップ・コードも保管しない場合もある。コードを復元するためのプロセス、要求に応答するためのプロセス、およびバックアップ・コードを更新するためのプロセスは前述の通りである。
オペレーティング・コードとバックアップ・コードは別々のものとして述べてきたが、それらは単一ユニットとして結合することができる。たとえば、図12のコード・イメージは、通信プロセッサ・ブロック351とオペレータ・パネル・ブロック362とを有し、各ブロックによって提供される機能を有する単一ブロックに結合することができる。この例では、オペレーティング・コード351とバックアップ・コード362との間に区別はまったく存在しない。この単一結合ブロックは、通信プロセッサ・ノードまたはオペレータ・パネル・ノードをバックアップするために使用されるであろう。代わって、オペレーティング・コード351、352、353、354は、前述の通り、同様のモジュールのためのバックアップ・コードとして機能することもできる。
本発明の好ましい諸実施形態について詳細に例証してきたが、当業者であれば、特許請求の範囲に示した本発明の範囲を逸脱せずに、これらの実施形態に対する変更および適応が思い浮かぶ可能性があることは明らかであるはずである。
本発明を実現する複数モジュールおよび処理ノードからなる分散システムの一実施形態のブロック図である。 図1の処理ノードの不揮発性メモリの概略表現である。 図1の処理ノードの不揮発性メモリの概略表現である。 図1の処理ノードの不揮発性メモリの概略表現である。 図1の処理ノードの不揮発性メモリの概略表現である。 本発明のコンピュータ実現方法の諸実施形態を描写するフローチャートである。 本発明のコンピュータ実現方法の諸実施形態を描写するフローチャートである。 本発明のコンピュータ実現方法の諸実施形態を描写するフローチャートである。 本発明による分散システムの一実施形態を実現可能な自動データ・ストレージ・ライブラリの等角図である。 本発明による分散システムの一実施形態を実現可能な自動データ・ストレージ・ライブラリの等角図である。 本発明による分散システムを使用する、図9および図10の自動データ・ストレージ・ライブラリの一実施形態を示すブロック図表現である。 図11の処理ノードのうちの4つの処理ノードの不揮発性メモリの概略表現である。 図11の処理ノードのうちの4つの処理ノードの不揮発性メモリの概略表現である。 図11の処理ノードのうちの4つの処理ノードの不揮発性メモリの概略表現である。 図11の処理ノードのうちの4つの処理ノードの不揮発性メモリの概略表現である。

Claims (10)

  1. 複数モジュールからなる分散システムの1つモジュールとの関連付けのためのプロセッサ・ノードにおいて、前記複数モジュールのうちの少なくとも複数個がネットワーク内で相互接続された関連プロセッサ・ノードを有し、
    関連モジュールを操作するための処理装置と、
    前記ネットワーク内の前記プロセッサ・ノードの通信を可能にするためのプロセッサ・インターフェースと、
    前記関連モジュールを操作するための前記処理装置用のプログラム・コードを保管し、前記ネットワーク内の他のプロセッサ・ノードの少なくとも1つの他の処理装置用のバックアップ・プログラム・コードを保管するための不揮発性メモリであって、前記バックアップ・プログラム・コードが前記他のプロセッサ・ノードの関連モジュールを操作するためのものであり、前記バックアップ・プログラム・コードが前記複数のモジュールに関する完全なコード・イメージの一部分を形成する不揮発性メモリと、を備え、前記処理装置が、
    前記関連モジュールを操作するためのプログラム・コードのタイプおよび/またはレベルのIDを維持し、
    復元信号に応答して、前記バックアップ・プログラム・コードのタイプおよび/またはレベルのIDについて要求を送信し、
    前記バックアップ・プログラム・コードのタイプおよび/またはレベルのIDを受信したことに応答して、前記受信したIDと前記維持されたIDとを比較し、
    前記比較の結果、前記受信したIDが前記プログラム・コードの置き換えに有効であることが示されたことに応答して、前記バックアップ・プログラム・コードを要求し、
    前記バックアップ・プログラム・コードを受信して、前記プログラム・コードの少なくとも一部分を、前記バックアップ・プログラム・コードで置き換えて前記プログラム・コードを復元する、プロセッサ・ノード。
  2. 前記不揮発性メモリがさらに、前記ネットワーク内の他のプロセッサ・ノードの複数の他の処理装置用のバックアップ・プログラム・コードを保管するためのものであり、前記バックアップ・プログラム・コードが前記他のプロセッサ・ノードの関連モジュールを操作するためのものである、請求項1に記載のプロセッサ・ノード。
  3. 前記処理装置がさらに、前記プロセッサ・インターフェースで受信したバックアップ・プログラム・コードに関する要求に応答して、前記プロセッサ・インターフェースで前記バックアップ・プログラム・コードを提供するためのロジックを有する、請求項1に記載のプロセッサ・ノード。
  4. 前記処理装置がさらに、前記バックアップ・プログラム・コードのタイプおよび/またはレベルのIDを維持し、前記プロセッサ・インターフェースで受信した前記IDに関する要求に応答して、前記プロセッサ・インターフェースで前記IDを提供するためのロジックを有する、請求項1に記載のプロセッサ・ノード。
  5. 前記処理装置がさらに、前記関連モジュールを操作するためのバックアップ・プログラム・コードを有する少なくとも1つの他のプロセッサ・ノードのIDを維持し、復元信号に応答して、前記バックアップ・プログラム・コードについて前記少なくとも1つの他のプロセッサ・ノードに前記プロセッサ・インターフェースで要求を送信するロジックを有する、請求項に記載のプロセッサ・ノード。
  6. 前記処理装置がさらに、前記バックアップ・プログラム・コードのレベルのIDを維持し、前記バックアップ・プログラム・コードの更新の後で、前記ネットワーク上の前記プロセッサ・インターフェースで前記更新の通知を送信するロジックをさらに有する、請求項1に記載のプロセッサ・ノード。
  7. ネットワーク内で相互接続された複数モジュールからなる分散システム用のモジュールにおいて、
    モジュールの機能を実行するためのシステムと、
    前記モジュールに関連する請求項1ないしのいずれかに記載のプロセッサ・ノードと、を有するモジュール。
  8. ネットワークと、
    請求項7に記載のタイプの複数のモジュールと、
    を有する、複数モジュールからなる分散システム。
  9. プログラマブル・コンピュータ・プロセッサで使用可能なコンピュータ・プログラムにおいて、前記プログラマブル・コンピュータ・プロセッサが複数モジュールからなる分散システムの1つモジュールとの関連付けのためのものであり、前記複数モジュールのうちの少なくとも複数個がネットワーク内で相互接続された関連プロセッサ・ノードを有し、
    関連モジュールを操作するためのプログラム・コードを前記プログラマブル・コンピュータ・プロセッサに保管させるコンピュータ可読プログラム・コードと、
    前記ネットワーク内の他のプロセッサ・ノードの少なくとも1つの他の処理装置用のバックアップ・プログラム・コードを前記プログラマブル・コンピュータ・プロセッサに保管させるコンピュータ可読プログラム・コードであって、前記バックアップ・プログラム・コードが前記他のプロセッサ・ノードの関連モジュールを操作するためのものであり、前記バックアップ・プログラム・コードが前記複数のモジュールに関する完全なコード・イメージの一部分を形成するコンピュータ可読プログラム・コードと、を有し、
    前記コンピュータ・プログラムが、前記関連モジュールを操作するための処理装置に対して、
    前記関連モジュールを操作するためのプログラム・コードのタイプおよび/またはレベルのIDを維持させ、
    復元信号に応答して、前記バックアップ・プログラム・コードのタイプおよび/またはレベルのIDについて要求を送信させ、
    前記バックアップ・プログラム・コードのタイプおよび/またはレベルのIDを受信したことに応答して、前記受信したIDと前記維持されたIDとを比較させ、
    前記比較の結果、前記受信したIDが前記プログラム・コードの置き換えに有効であることが示されたことに応答して、前記バックアップ・プログラム・コードを要求させ、
    前記バックアップ・プログラム・コードを受信させ、前記プログラム・コードの少なくとも一部分を、前記バックアップ・プログラム・コードで置き換えて前記プログラム・コードを復元させる、コンピュータ・プログラム。
  10. 自動データ・ストレージ・ライブラリであって、前記自動データ・ストレージ・ライブラリが、
    ネットワークと、
    請求項7に記載のタイプの複数のモジュールと、
    を有する、自動データ・ストレージ・ライブラリ。
JP2006500174A 2003-01-14 2004-01-08 分散システム内のバックアップ・ファームウェア Expired - Fee Related JP4464956B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/341,377 US6986008B2 (en) 2003-01-14 2003-01-14 Backup firmware in a distributed system
PCT/GB2004/000015 WO2004063927A1 (en) 2003-01-14 2004-01-08 Backup firmware in a distributed system

Publications (2)

Publication Number Publication Date
JP2006518497A JP2006518497A (ja) 2006-08-10
JP4464956B2 true JP4464956B2 (ja) 2010-05-19

Family

ID=32711510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006500174A Expired - Fee Related JP4464956B2 (ja) 2003-01-14 2004-01-08 分散システム内のバックアップ・ファームウェア

Country Status (8)

Country Link
US (1) US6986008B2 (ja)
EP (1) EP1584033B1 (ja)
JP (1) JP4464956B2 (ja)
KR (1) KR100800342B1 (ja)
CN (1) CN100403270C (ja)
AT (1) ATE347135T1 (ja)
DE (1) DE602004003467T2 (ja)
WO (1) WO2004063927A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090069817A1 (en) * 1995-10-20 2009-03-12 Acufocus, Inc. Intrastromal corneal modification
JP4411929B2 (ja) * 2003-02-28 2010-02-10 株式会社日立製作所 バックアップ方法、システム、及びプログラム
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data
US20060277524A1 (en) * 2005-06-07 2006-12-07 International Business Machines Corporation Redundant updatable firmware in a distributed control system
JP2007026318A (ja) * 2005-07-20 2007-02-01 Nec Corp 携帯電話機、プログラム作成方式、プログラム更新方式、プログラム作成方法及びプログラム更新方法
JP5103823B2 (ja) * 2006-08-18 2012-12-19 富士通株式会社 情報処理装置および入出力要求制御方法
US8065510B2 (en) * 2007-07-30 2011-11-22 Hewlet-Packard Development Company, L.P. System and methods of retrieving firmware between network locations
CN101996108B (zh) * 2009-08-18 2013-05-08 中兴通讯股份有限公司 一种分布式环境的备份和恢复方法及其系统
JP2011065528A (ja) * 2009-09-18 2011-03-31 Toyota Motor Corp マルチプロセッサシステム
CN102455915A (zh) * 2010-10-18 2012-05-16 卓望数码技术(深圳)有限公司 一种分布式系统的自动化配置方法及服务器
CN103946806B (zh) * 2011-09-29 2017-06-16 英特尔公司 用于提供存储器访问控制的装置、系统和方法
CN102437925B (zh) * 2011-12-01 2018-03-13 中兴通讯股份有限公司 分布式系统中的数据备份方法、装置及系统
US8713562B2 (en) * 2012-01-06 2014-04-29 International Business Machines Corporation Intelligent and automated code deployment
JP6037903B2 (ja) * 2013-03-18 2016-12-07 三菱電機株式会社 処理システム及びデータのバックアップ方法
US8918778B2 (en) * 2013-04-17 2014-12-23 American Megatrends, Inc. Method of fail safe flashing management device and application of the same
CN103235725A (zh) * 2013-05-16 2013-08-07 浪潮通信信息系统有限公司 一种基于linux的Oracle数据库在云计算中的快速部署方法
EP2866107B1 (de) * 2013-10-25 2020-12-09 Siemens Aktiengesellschaft Verfahren zum Wiedergeben des Ablaufs eines Programms eines Automatisierungsgerätes
CN106445409A (zh) * 2016-09-13 2017-02-22 郑州云海信息技术有限公司 一种分布式块存储的数据写入方法及装置
US10445192B2 (en) * 2017-01-10 2019-10-15 Indegy Ltd. Efficient backup and restore of controller code in industrial control network
US11442816B2 (en) * 2018-12-03 2022-09-13 International Business Machines Corporation Performance of backup operations in an order determined using service-metadata associated with backup requests
JP7058928B2 (ja) * 2019-03-15 2022-04-25 矢崎総業株式会社 車両用通信システム
US12086436B2 (en) * 2022-07-15 2024-09-10 Dell Products L.P. Option read-only memory firmware-based remediation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878256A (en) * 1991-10-16 1999-03-02 International Business Machine Corp. Method and apparatus for providing updated firmware in a data processing system
US5464435A (en) * 1994-02-03 1995-11-07 Medtronic, Inc. Parallel processors in implantable medical device
JP2730534B2 (ja) * 1995-12-18 1998-03-25 日本電気株式会社 データ通信網端末のデータバックアップ方法とその装置
US6070250A (en) * 1996-12-13 2000-05-30 Westinghouse Process Control, Inc. Workstation-based distributed process control system
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
US6357021B1 (en) * 1999-04-14 2002-03-12 Mitsumi Electric Co., Ltd. Method and apparatus for updating firmware
US6473856B1 (en) * 1999-06-30 2002-10-29 International Business Machines Corporation Gold code backup for corrupt boot code recovery
EP1168176A3 (en) 2000-06-09 2008-05-14 Hewlett-Packard Company Utilization of unused disk space on networked computers
US6904457B2 (en) * 2001-01-05 2005-06-07 International Business Machines Corporation Automatic firmware update of processor nodes
EP1265139A1 (en) * 2001-06-08 2002-12-11 Hewlett Packard Company, a Delaware Corporation A method of restoring an impaired software image associated with a networked computer
TWI251771B (en) * 2001-12-28 2006-03-21 Asustek Comp Inc Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof

Also Published As

Publication number Publication date
EP1584033A1 (en) 2005-10-12
JP2006518497A (ja) 2006-08-10
US20040139294A1 (en) 2004-07-15
WO2004063927A1 (en) 2004-07-29
US6986008B2 (en) 2006-01-10
CN1836216A (zh) 2006-09-20
ATE347135T1 (de) 2006-12-15
KR20050088172A (ko) 2005-09-02
CN100403270C (zh) 2008-07-16
DE602004003467T2 (de) 2007-10-04
DE602004003467D1 (de) 2007-01-11
EP1584033B1 (en) 2006-11-29
KR100800342B1 (ko) 2008-02-04

Similar Documents

Publication Publication Date Title
JP4464956B2 (ja) 分散システム内のバックアップ・ファームウェア
US6782448B2 (en) Transparent code update in an automated data storage library
US7162496B2 (en) System and method for blind media support
US6904457B2 (en) Automatic firmware update of processor nodes
US6625703B2 (en) Verifying primary and backup copies of vital information for a processing system employing a pseudo-fixed reference identifier
US20100017573A1 (en) Storage system, copy control method of a storage system, and copy control unit of a storage system
US20050160305A1 (en) Information processing system, information processing apparatus, and control method for information processing system
US7318116B2 (en) Control path failover in an automated data storage library
US5828820A (en) Mirror disk control method and mirror disk device
US20060277524A1 (en) Redundant updatable firmware in a distributed control system
US7114046B2 (en) Storage system, backup system, and backup method
JP4076174B2 (ja) プロセッサの分散型ノード・システムにおけるノード・アドレス障害の処理
US7568123B2 (en) Apparatus, system, and method for backing up vital product data
US6996673B2 (en) Method and apparatus for managing inventory and door status during firmware update of an automated data storage library
JP2005149699A (ja) ストレージ構造および関連方法
US6898480B2 (en) Use of cartridge memory for storing logical library association information
US7484036B2 (en) Apparatus system and method for managing control path commands in an automated data storage library
US7941242B2 (en) Apparatus and method to provide redundant accessor availability
US6684307B2 (en) Duplex disk controller
JP3453582B2 (ja) ディスクアレイ装置のファームウェア管理システム及びその管理方法
JP2008219445A (ja) 保守用カスタマイズメモリ管理システムおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061219

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090525

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100219

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees