協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラム
【課題】 協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラムを提供することにある。
【解決手段】 タイミング・ネットワーク用の階層1構成が定義される。この階層1構成は、ネットワーク内のサーバが同じ1次基準時間を使用して、それぞれのクロックを同期させることを保証する際に使用可能な単一アクティブ階層1サーバを含む。ネットワーク内のサーバは同じルート1次基準時間に同期し、同期正確度は外部タイム・ソースの品質または階層1サーバにおける外部タイム・ソースの存在に依存しない。
【解決手段】 タイミング・ネットワーク用の階層1構成が定義される。この階層1構成は、ネットワーク内のサーバが同じ1次基準時間を使用して、それぞれのクロックを同期させることを保証する際に使用可能な単一アクティブ階層1サーバを含む。ネットワーク内のサーバは同じルート1次基準時間に同期し、同期正確度は外部タイム・ソースの品質または階層1サーバにおける外部タイム・ソースの存在に依存しない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、処理装置のネットワーク内およびそれを越える時刻同期に関し、特に、協定タイミング・ネットワーク内のサーバが同じルート1次基準時間に同期できるようにする、協定タイミング・ネットワーク用の単一アクティブ1次タイム・サーバを有する階層1構成を定義することに関する。
【背景技術】
【0002】
パフォーマンスおよびデータ保全性のために、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるシスプレックス(Sysplex)など、共用データにアクセスするコンピューティング・システムは、システム間の最良な場合の通信時間より良好な正確度で時刻(TOD:time of day)機構の同期を維持できなければならない。現在、一例では、同期要件を満たすために、IBMシスプレックス・タイマ(商標)などのタイマが使用される。このタイマは、高価な専用タイミング・リンクと個別の外部ボックスを必要とする。IBM(商標)およびIBMシスプレックス・タイマ(商標)は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。
【0003】
ネットワーク・タイミング・プロトコル(NTP:Network Timing Protocol)などのネットワークは、時刻同期を提供するが、ハイエンド・システムの正確度要件を満たさない。NTPでは、すべてのサーバが同じ基準時間に同期することを保証するために、マイクロ秒レベルの正確度を提供する外部タイム・ソースに各サーバがアクセスできる必要がある。これは、このレベルの正確度を提供する外部タイム・サーバに接続する機能を備えていないシステムにとっては問題である。さらに、各システム上のGPSレシーバまたは同様の付属装置の要件は、メンテナンス、セキュリティ、および信頼性の理由から実行不可能なものと見なされる可能性がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願第11/468352号
【特許文献2】米国特許出願第60/887512号
【特許文献3】米国特許出願第60/887544号
【特許文献4】米国特許出願第60/887576号
【特許文献5】米国特許出願第60/887584号
【特許文献6】米国特許出願第60/887586号
【特許文献7】米国特許出願第11/460025号
【特許文献8】米国特許出願第11/223886号
【特許文献9】米国特許出願第11/532168号
【特許文献10】米国特許出願第11/468501号
【特許文献11】米国特許出願第11/223878号
【特許文献12】米国特許出願第11/223876号
【特許文献13】米国特許出願第11/223577号
【特許文献14】米国特許出願第11/223642号
【非特許文献】
【0005】
【非特許文献1】2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles of Operation」
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記に基づき、時刻同期の提供を促進する機能が必要である。一例では、タイミング・ネットワーク内のサーバが同じ1次基準時間を使用してそれぞれのクロックを同期させることを保証する、タイミング・ネットワーク内の単一アクティブ階層1サーバを指定する機能が必要である。
【課題を解決するための手段】
【0007】
タイミング・ネットワーク内の同期を促進するためのコンピュータ可読プログラム・コード・ロジックを有する少なくとも1つのコンピュータ使用可能媒体を含む装置(article of manufacture)の提供により、従来技術の短所は克服され、追加の利点が提供される。このコンピュータ可読プログラム・コード・ロジックは、実行されると、たとえば、タイミング・ネットワーク用の構成を定義するステップであって、その構成がタイミング・ネットワークの1つまたは複数の他のサーバ用のクロック・ソースとして使用される単一サーバを含むステップと、タイミング・ネットワークのサーバにその構成を提供して、1つまたは複数の他のサーバが単一サーバからタイミング情報を入手できるようにするステップとを実行する。
【0008】
本発明の1つまたは複数の態様に関連する方法およびシステムも本明細書に記載され、請求されている。
【0009】
追加の特徴および利点は本発明の技法により実現される。本発明のその他の諸実施形態および諸態様は、本明細書に詳細に記載され、請求された発明の一部と見なされる。
【0010】
本発明の1つまたは複数の態様は、本明細書の終わりの特許請求の範囲において、詳細に指摘され、例として明瞭に請求される。本発明の上記その他の目的、特徴、および利点は、添付図面に併せて取られた以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0011】
【図1】本発明の1つまたは複数の態様を取り入れるための混合協定タイミング・ネットワーク(mixed coordinated timing network)の一例を示す図である。
【図2】本発明の1つまたは複数の態様を取り入れるためのSTP専用ネットワークの一例を示す図である。
【図3】本発明の一態様による階層(stratum)1構成情報ブロックの一例を示す図である。
【図4】本発明の一態様による新規階層1構成情報ブロックの一例を示す図である。
【図5】本発明の一態様によるヌル構成の図表現である。
【図6】本発明の一態様による単一サーバ階層1構成の図表現である。
【図7】本発明の一態様による単一サーバ階層1構成の作成に関連するロジックの一実施形態を示す図である。
【図8】本発明の一態様によるデュアル・サーバ階層1構成の図表現である。
【図9】本発明の一態様によるデュアル・サーバ構成の作成に関連するロジックの一実施形態を示す図である。
【図10】本発明の一態様によるトライアッド(triad)構成の図表現である。
【図11】本発明の一態様によるトライアッド構成の作成に関連するロジックの一実施形態を示す図である。
【図12】本発明の一態様による階層1構成変更要求ブロックの一実施形態を示す図である。
【図13】本発明の一態様による階層1構成変更応答ブロックの一実施形態を示す図である。
【図14】本発明の一態様による構成変更通知要求ブロックの一実施形態を示す図である。
【図15】本発明の一態様による構成変更通知応答ブロックの一実施形態を示す図である。
【図16】本発明の一態様によるCTN ID変更要求ブロックの一実施形態を示す図である。
【図17】本発明の一態様によるCTN ID変更応答ブロックの一実施形態を示す図である。
【図18】本発明の一態様によるCTNパラメータ読み取り要求ブロックの一実施形態を示す図である。
【図19】本発明の一態様によるCTNパラメータ読み取り応答ブロックの一実施形態を示す図である。
【図20】本発明の一態様による故障中のアクティブ階層1サーバのリカバリの実行に関連するロジックの一実施形態を示す図である。
【図21】本発明の一態様によるデュアル・サーバ階層1構成リカバリ手順に関連するロジックの一実施形態を示す図である。
【図22】本発明の一態様によるトライアッド階層1構成リカバリ手順に関連するロジックの一実施形態を示す図である。
【図23】本発明の一態様によるコンソール支援リカバリに関連するロジックの一実施形態を示す図である。
【図24】本発明の一態様によるコンソール支援リカバリ結果構成の図表現である。
【図25】本発明の一態様によるトライアッド・リカバリの実行に関連するロジックの一実施形態を示す図である。
【図26】本発明の一態様によるアクティブ階層1チェック停止後の階層1引き継ぎ(takeover)の図表現である。
【図27】本発明の一態様によるアクティブ階層1へのリンクの喪失後の階層1サーバ引き継ぎの図表現である。
【図28】本発明の一態様による単一リンクの喪失−階層1引き継ぎなしの図表現である。
【図29】本発明の一態様によるアクティブ階層1引き継ぎの実行に関連するロジックの一実施形態を示す図である。
【図30】本発明の一態様によるアクティブ階層1引き渡し(surrender)の実行に関連するロジックの一実施形態を示す図である。
【図31】本発明の一態様によるサーバ状態要求要求ブロックの一実施形態を示す図である。
【図32】本発明の一態様によるサーバ状態要求応答ブロックの一実施形態を示す図である。
【図33】本発明の一態様によるサーバ状態書き込み要求ブロックの一実施形態を示す図である。
【図34】本発明の一態様によるサーバ状態書き込み応答ブロックの一実施形態を示す図である。
【図35】本発明の1つまたは複数の態様を取り入れ、使用するための処理環境の一実施形態を示す図である。
【図36】本発明の一態様による図35のメモリの追加詳細を示す図である。
【図37】本発明の1つまたは複数の態様を取り入れるためのコンピュータ・プログラム(computer program product)の一例を示す図である。
【発明を実施するための形態】
【0012】
本発明の一態様により、タイミング・ネットワーク内のサーバが同じ1次基準時間を使用してそれぞれの時刻機構を同期させることを保証する際に使用可能な単一アクティブ階層1サーバを含むタイミング・ネットワーク用の階層1構成を定義するための機能が提供される。したがって、ネットワーク内のサーバは同じルート1次基準時間に同期しており、同期正確度は階層1サーバにおける外部タイム・ソースの品質または外部タイム・ソースの存在に依存しない。
【0013】
本発明の他の一態様では、サーバの保全性を保証するために使用される他の情報とともにネットワークのサーバに提供される階層1構成情報ブロック内に階層1構成が維持される。ネットワーク内の各サーバは階層1サーバのアイデンティティを認識しているので、他の階層1サーバに同期していることを示すサーバはそのネットワークに加入することができない。
【0014】
本発明のさらに他の一態様では、ネットワークのアクティブ階層1サーバの障害を処理するためのリカバリ手順が提供される。
【0015】
階層1サーバを含むように様々なネットワークを構成することができるが、このようなネットワークの1つは協定タイミング・ネットワーク(CTN:Coordinated Timing Network)である。協定タイミング・ネットワークでは、複数の別個のコンピューティング・システムが時刻同期を維持して、協定タイミング・ネットワークを形成する。協定タイミング・ネットワーク内のシステムは、サーバ・タイム・プロトコル(STP:Server Time Protocol)というメッセージ・ベース・プロトコルを使用して、既存の高速データ・リンクによりシステム間で計時情報を受け渡す。これにより、各システムの時刻(TOD)機構を現代のハイエンド・コンピューティング・システムに必要な正確度で同期させることができる。このプロトコルはコンピューティング・システム内の技術を使用するので、技術が向上するにつれて同期正確度が高くなる。STP機能を提供するコンピューティング・システムは本明細書ではタイム・サーバまたはサーバという。
【0016】
1次タイム・サーバとしてCTNにおいて定義されたサーバは、CTN用の1次基準時間を提供する。CTN内の他のサーバからの情報に基づいてCST(CTN用の時刻(TOD)機構の推定値)を決定するCTN内のサーバは2次タイム・サーバという。1次タイム・サーバは外部タイム・ソースからその時刻を入手することができ、その外部タイム・ソースはCTN内の時刻機構を定義済み時間標準に同期させるための手段を提供する。
【0017】
同期状態にあるCTN内のサーバには、それと1次タイム・サーバとの間のサーバの数を指定する、階層レベルという値が割り当てられる。1次タイム・サーバは1という階層レベルで動作し、2次タイム・サーバは2以上の階層レベルで動作し、これは階層1までのタイミング経路内のサーバの数が増加するにつれて上昇する。一般に、階層レベルが上昇するにつれて、計時情報の品質が低下する。同期していないサーバには0という階層レベルが割り当てられる。
【0018】
STP機能は、STPメッセージを送信し、受信し、処理するために必要な手順を提供する。STPメッセージは、サーバ間の1つまたは複数の物理データ・リンクにより送信される。2つのサーバ間に確立されたデータ・リンクはSTP経路という。STP機能は、STP経路を確立し維持するための諸機能を提供する。
【0019】
STPメッセージは、メッセージ・コマンドとメッセージ応答とを含む。時間パラメータ交換(XTP:exchange time parameters)メッセージとSTP制御(STC:STP control)メッセージという2つのタイプのSTPメッセージがサポートされる。XTPメッセージは、CTN用のCSTを決定するために使用される計時情報を交換するために使用される。STP制御メッセージは、CTN内のサーバによって必要とされる様々なCTNパラメータを設定し変更するために使用される。
【0020】
CTNは、たとえば、2つのタイプの構成のうちの1つとして、すなわち、混合CTN構成またはSTP専用CTN構成のいずれかとして動作することができる。混合CTN構成では、サーバは、STPネットワークと外部時間基準(ETR:External Time Reference)ネットワークの両方の一部になるように構成される。混合CTN構成では、CTN内のサーバは同じ非ヌルETRネットワークIDを備えて構成され、タイマ(たとえば、IBMシスプレックス・タイマ(商標))はCTN用の1次時間基準を提供する。CTN内の少なくとも1つのサーバは、CTN内で同期を行えるようになる前にシスプレックス・タイマによって提供されたタイミング信号に合わせて進む予定である。シスプレックス・タイマに合わせて進まないサーバは2次タイム・サーバであり、STP信号を交換することによって同期を達成する。
【0021】
一例として、シスプレックス・タイマのタイミング信号に合わせて進む各サーバはタイム・プロトコル・パラメータを受信し、たとえば、CTNパラメータ更新手順を使用して、CTN内の2次タイム・サーバにその情報を伝搬する。この手順の一例は、Carlson他により2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号に記載されている。
【0022】
図1に関連して、混合CTN構成100の一例について説明する。混合CTN構成100は、たとえば、ローカル・エリア・ネットワーク(104)に結合されたサーバA(102)と、ローカル・エリア・ネットワーク(104)に結合されたサーバB(106)と、ローカル・エリア・ネットワーク(110)に結合されたサーバC(108)とを含む。各サーバは、たとえば、インターナショナル・ビジネス・マシーンズ社によって提供されるz/Architecture(商標)に基づく中央演算処理複合システムである。z/Architecture(商標)は米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。z/Architecture(商標)の一実施形態は、2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles of Operation」に記載されている。
【0023】
各ローカル・エリア・ネットワークは、ネットワーク内で時刻同期を提供する際に使用されるコンソール120に結合される。さらに、ローカル・エリア・ネットワーク104とローカル・エリア・ネットワーク110は、広域ネットワーク112を介して相互に結合される。
【0024】
サーバAおよびBは外部時間基準ネットワーク114に結合され、サーバBおよびCはSTPネットワーク116の一部になるように構成される。サーバBは階層1レベルであり、サーバCは階層2レベルである。STPリンク118は、サーバBのSTP機能をサーバCのSTP機能に結合するために使用される。
【0025】
STP専用CTNでは、CTN内のサーバはSTPネットワークの一部になるように構成され、ETRネットワークの一部になるように構成されるものは何もない。図2に関連して、STP専用ネットワーク150の一例について説明する。この例では、サーバA(152)およびサーバB(154)はLAN(156)に結合され、サーバC(158)はLAN(160)に結合される。サーバのそれぞれはSTP機能162を含み、各機能は1つまたは複数のSTPリンク164を介して相互に結合される。
【0026】
さらに、LAN156はコンソール170に結合され、LAN160はコンソール172に結合される。コンソール170は、テレフォン・タイム・サーバ(たとえば、ACTS:NIST自動コンピュータ・タイム・サービス)へのダイヤルアウトなどの外部タイム・ソース(ETS:external time source)174にさらに結合される。このネットワークには、ETRネットワークはまったく存在しない。サーバBは1という階層レベルを有し、サーバAおよびCは2という階層レベルを有する。
【0027】
STP専用ネットワークなどのネットワーク内でアクティブ階層1サーバとして動作する予定のサーバは、そのネットワーク用に定義された階層1構成の一部として指定される。階層1構成は、そのネットワークの各サーバで維持され、たとえば、そのネットワーク用に定義された構成のタイプを含む、そのネットワークの構成に関する情報を提供する。ネットワークは、たとえば、以下のものを含む様々なタイプの1つとして構成することができる。
a)ヌル構成 − ヌル構成では、階層1サーバは識別されない。そのサーバは、非ヌル階層1構成を有するサーバに接続するまで、非同期のままになる。階層レベル0にあるサーバの階層1構成は、たとえば、任意の他のサーバに接続されないときにヌル構成に等しくなり、後述する階層1構成情報ブロック内の単一CEC−CTNインジケータは0になる。
b)単一サーバ定義 − 単一サーバ定義では、階層1構成は、CTN用のアクティブ階層1サーバとして動作する単一1次階層1サーバを定義する。1次階層1サーバが失われると、新規階層1構成がそのコンソールから指定されるまで、CTN内の同期時刻が失われることになる。
単一サーバ階層1構成は、指定の階層1サーバがCTN内で唯一のサーバ(たとえば、コンピューティング電子複合システム(CEC)またはCPC)であり、他のサーバまたは追加のサーバはいずれもCTNの一部にならないという表示も含むことができる。この場合のCTNは、単一CEC CTNという。それが単一CEC CTNであることを階層1構成が示す場合、その構成は、パワーオン・リセット後のサーバの初期化状態のために有効な階層1構成である。それが単一CEC CTNであることを単一サーバ階層1構成が指定しない場合、その構成は、パワーオン・リセット後のサーバの初期化状態のために有効な階層1構成ではなく、階層1構成はヌル構成に設定される。
c)デュアル・サーバ構成 − デュアル・サーバ構成では、この構成は1次階層1サーバと代替階層1サーバとを含む。デュアル・サーバ構成を使用すると、CTN用のアクティブ階層1サーバの役割を代替サーバが引き継ぐためのメカニズムを提供する。代替階層1サーバは、CTN内の他のサーバに対して1次階層1サーバと同じ接続性を備えて構成されると、CTNの同期機能に対する妨害なしに、アクティブ階層1として引き継ぐことができる。CTN用のアクティブ階層1サーバとして動作している階層1サーバ(1次または代替)は、後述するように、CTN内の各サーバに維持される階層1構成情報ブロック内に示される。アクティブ階層1サーバではない階層1サーバは、非アクティブ階層1サーバとして定義される。
デュアル・サーバ構成内の非アクティブ階層1サーバは、アクティブ階層1障害を検出すると、アクティブ階層1サーバの役割を引き継ぐ。以下のうちの1つが発生すると、デュアル・サーバ構成内でアクティブ階層1障害が検出される。
●コンソール支援リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示されるか、または
●階層1システム・チェック信号が認識される。
デュアル・サーバ構成内の非アクティブ階層1サーバは、その非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失うと、コンソール支援リカバリを実行する。
d)トライアッド構成 − トライアッド構成では、階層1構成は、1次階層1サーバと、代替階層1サーバと、アービタ・サーバ(arbiter server)とを含む。トライアッド構成の定義は、デュアル・サーバ構成用に定義されたように、CTN用のアクティブ階層1サーバの役割を代替サーバが引き継ぐためのメカニズムを提供する。さらに、1次階層1サーバと代替階層1サーバの両方への接続性を備えて構成されると、アービタ・サーバの定義は、非アクティブ階層1サーバとアービタ・サーバが相互に通信して、アクティブ階層1サーバ障害が発生していることと、非アクティブ階層1サーバがアクティブ階層1サーバとして引き継がなければならないことを判断するためのメカニズムを提供する。
トライアッド構成内の非アクティブ階層1サーバは、アクティブ階層1障害を認識すると、アクティブ階層1の役割を引き継ぐ。非アクティブ階層1サーバは、以下のいずれかが発生すると、アクティブ階層1障害を認識する。
●トライアッド・リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示される。
●コンソール支援リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示される。
非アクティブ階層1サーバは、以下の条件が発生すると、トライアッド・リカバリ手順を実行する。
●非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタへの接続が可能である。
●非アクティブ階層1サーバがアクティブ階層1通信タイムアウトを認識し、アービタへの接続が可能である。
非アクティブ階層1サーバは、その非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタに接続されていないときに、コンソール支援リカバリを実行する。
非アクティブ階層1サーバは、CTN用のアクティブ階層1サーバの役割を引き継ぐためにアクティブ階層1引き継ぎ手順を実行する。
トライアッド構成内のアクティブ階層1サーバは、非アクティブ階層1サーバとアービタ・サーバの両方への接続を失ったことを検出すると、アクティブ階層1サーバの役割を断念する。アクティブ階層1サーバは、CTN用のアクティブ階層1サーバの役割を断念するためにアクティブ階層1引き渡し手順を実行する。
【0028】
一例では、階層1構成情報は、階層1構成情報ブロック(SCIB:stratum-1 configuration information block)という制御ブロック内に維持され、そのブロックはネットワークの各サーバ上に保管されるかまたは各サーバにとってアクセス可能なものである。SCIBは、ネットワーク用の階層1構成を識別するために使用される。
【0029】
図3に関連して、階層1構成情報ブロック200の一実施形態について説明する。階層1構成情報ブロック200は、たとえば、以下のフィールドを含む。
a)1次階層1ノード記述子202: このフィールドは、後述する構成情報ブロックの構成タイプ・フィールドに単一サーバ定義、デュアル・サーバ定義、またはトライアッド定義が指定されたときに有効であり、有効である場合、1次階層1ノード記述子のノード記述子を含む。
b)代替階層1ノード記述子204: このフィールドは、構成タイプ・フィールドにデュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、有効である場合、代替階層1サーバ・ノード記述子のノード記述子を含む。
c)アービタ・ノード記述子206: このフィールドは、構成タイプ・フィールドにトライアッド定義が指定されたときに有効であり、アービタ・ノード記述子のノード記述子を含む。
d)階層1構成タイムスタンプ208: このフィールドは、このブロック内の階層1構成情報がサーバで最新(current)のものになった時間を示すタイムスタンプを含む。
e)構成タイプ(CType)210: このフィールドは、以下に定義されるように、階層1構成のタイプを指定する。
●ヌル定義: いずれのノード記述子も有効ではない。
●単一サーバ定義: 1次階層1ノード記述子のみが有効である。
●デュアル・サーバ定義: 1次階層1ノード記述子および代替階層1ノード記述子が有効である。
●トライアッド定義: 1次階層1ノード記述子、代替階層1ノード記述子、およびアービタ・ノード記述子が有効である。
f)アクティブ階層1(A)212: このフィールドは、デュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、1次階層1サーバまたは代替階層1サーバがアクティブ階層1サーバであるかどうかを示す。
g)単一CEC CTN(X)214: このフィールドは、構成タイプが単一サーバ定義を指定したときに有効であり、一例として、1である場合、CTNが単一CEC CTNであることを示す。このフィールドがたとえば0である場合、CTNは単一CEC CTNではない。
h)リカバリ構成(R)216: このフィールドは、このブロックによって記述された階層1構成が階層1リカバリ・アクションまたはコンソール・コマンドの結果であるかどうかを示す。
i)階層1最大短期スキュー・レート(skew rate)変更218: このフィールドは、任意の指定の期間(たとえば、60秒)に発生する可能性のある、階層1サーバの物理的発振器のスキュー・レートの最大可能変更を指定する値を含む。このフィールドは、ベース・ステアリング・レート(base-steering rate)と同じフォーマットの値を形成するために使用される。
動的発振器切り替えを実行できないマシンでは、この値は、指定の期間(たとえば、60秒)に発生する可能性のある最大階層1発振器周波数ドリフトに等しい。動的発振器切り替えを実行できるマシンでは、この値は、その発振器について指定された最大範囲のスキュー許容度に設定される。たとえば、発振器スキュー許容度が公称周波数に対して±2ppmに指定された動的発振器切り替えをサポートするマシンでは、この値は4ppmという等価量に設定される。システムTOD機構を駆動するために使用される物理的発振器がある発振器から他の発振器に切り替えられると、動的発振器切り替えが行われる。
【0030】
上記の制御ブロックに加えて、新規階層1構成情報ブロック(NSCIB:new stratum-1 configuration information block)という他の制御ブロックを使用して、CTN用の新規階層1構成を指定することができる。さらに、これは、階層1構成変更と同時に行われる予定のCTN IDの更新を指定するために使用することができる。
【0031】
一例では、あるサーバのNSCIBは、そのサーバがSTP専用CTN構成の一部になるように構成されたときまたはNSCIB内のSTPマイグレーション・ビットが1に等しい場合に意味を持つ。
【0032】
図4に関連して、新規階層1構成情報ブロック300の一実施形態について説明する。新規階層1構成情報ブロック300は、たとえば、以下のフィールドを含む。
a)1次階層1ノード記述子302: このフィールドは、構成タイプ・フィールドに単一サーバ定義、デュアル・サーバ定義、またはトライアッド定義が指定されたときに有効であり、新規1次階層1ノード記述子のノード記述子を含む。
b)代替階層1ノード記述子304: このフィールドは、構成タイプ・フィールドにデュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、新規代替階層1ノード記述子のノード記述子を含む。
c)アービタ・ノード記述子306: このフィールドは、構成タイプ・フィールドにトライアッド定義が指定されたときに有効であり、新規アービタ・ノード記述子のノード記述子を含む。
d)階層1構成更新時間308: サーバがSTP専用CTNの一部になるように構成されたときに、このフィールドは、このブロック内の値がCTNについて最新のものになる時期を示すタイムスタンプを含む。
e)構成タイプ(CType)310: このフィールドは、以下に定義されるように、階層1構成のタイプを指定する。
●ヌル定義: いずれのノード記述子も有効ではない。
●単一サーバ定義: 1次階層1ノード記述子のみが有効である。
●デュアル・サーバ定義: 1次階層1ノード記述子および代替階層1ノード記述子が有効である。
●トライアッド定義: 1次階層1ノード記述子、代替階層1ノード記述子、およびアービタ・ノード記述子が有効である。
f)アクティブ階層1(A)312: このフィールドは、デュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、1次階層1サーバまたは代替階層1サーバがアクティブ階層1サーバであるかどうかを示す。
g)CTN ID変更(C)314: サーバがSTP専用CTNの一部になるように構成されたときに、このフィールドは、CTN ID変更が要求されているかどうか、ならびにCTN IDが有効であるかどうかを示す。この変更は階層1構成更新時間に行われる。
CTN IDは、CTNを識別するために使用される値である。CTN IDは、たとえば、STPネットワークIDとETRネットワーク番号とを含む。STPネットワークIDは、このサーバ用に構成されたSTPネットワークがある場合にそのネットワークを識別するものである。ETRネットワーク番号は、このサーバ用に構成されたETRネットワークがある場合にそのネットワークを識別するものである。
h)STPマイグレーション構成(S)316: このフィールドは、たとえば、このサーバがSTP専用CTNとして構成されない場合に意味を持つ。このフィールドは、このサーバについてSTP専用マイグレーション階層1構成が定義されているかどうかを示す。このフィールドがたとえば1である場合、NSCIBは、このサーバのCTN IDがSTP専用構成に変更されたときに最新のものになる予定の階層1構成を含む。このフィールドがたとえば0である場合、このサーバについてSTP専用マイグレーション階層1構成は定義されない。
i)単一CEC CTN(X)318: このフィールドは、構成タイプが単一サーバ定義を指定したときに有効であり、一例として、1である場合、CTNが単一CEC CTNであることを示す。このフィールドがたとえば0である場合、CTNは単一CEC CTNではない。
j)リカバリ構成(R)320: このフィールドは、このブロックによって記述された階層1構成が階層1リカバリ・アクションまたはコンソール・コマンドの結果であるかどうかを示す。
k)階層1最大短期スキュー・レート変更322: このフィールドは、任意の指定の期間(たとえば、60秒)に発生する可能性のある、新規階層1サーバの物理的発振器のスキュー・レートの最大可能変更を指定する値を含む。
l)新規CTN ID320: このフィールドは、CTN ID変更インジケータがCTN ID変更要求および有効なCTN IDを指定したときに有効である。このフィールドは新規CTN IDを指定するものである。
【0033】
CTN IDの更新を指定するために新規階層1構成情報ブロックが使用されない場合、このブロックは、一例として、CTN ID変更ビットまたは新規CTN IDを含まない可能性がある。
【0034】
階層1構成は、マシンの初期パワーオン時にサーバにおいてヌル構成に初期化される。ヌル構成の一例は図5に示されている。描写されているように、ヌル構成400は複数のサーバ402を含み、これらのサーバは1つまたは複数のSTPリンク404を介して相互に結合される。この例では、各サーバの階層レベルは0に等しく、したがって、アクティブ階層1サーバはまったく存在しない。しかし、CTN IDは特定の値に設定され、その値は、この例では、後述するようにローカルCTN ID変更コンソール・コマンドを使用して設定される。
【0035】
ヌル階層1構成を有するCTNは、階層1が指定されておらず、そのCTN用の基準時間がまったくないので、同期させることができない。CTN用の階層1構成は、後述する階層1構成変更コマンドなどのコマンドを介して非ヌル構成からヌル構成に設定を戻すことができる。
【0036】
ヌル構成から、単一サーバ階層1を作成することができる。単一サーバ階層1構成は、単一階層1サーバを指定するものであって、代替階層1サーバまたはアービタ・サーバはまったく指定しない。単一サーバ階層1構成の一例は図6に描写されている。図示の通り、単一サーバ階層1構成500は、1つまたは複数のSTPリンク504を介して相互に結合された複数のサーバ502を含み、そのサーバのうちの1つ、たとえば、サーバAはアクティブ1次階層1サーバとして選択される。したがって、サーバAは1次S1という表示を有し、その階層レベルは1に等しい。他のサーバは、2または3など、1より大きい階層値を有することに留意されたい。
【0037】
図7に関連して、単一サーバ階層1構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ600で、コンソールは、階層1構成変更コマンドなどのコマンドをサーバAに発行し、1次階層1サーバとしてサーバAを有する単一サーバ階層1構成を指定する。
【0038】
その後、ステップ602で、サーバAは、新規階層1構成が最新のものであることを示す。一例では、サーバAは、構成変更通知コマンドをコンソールに発行して、この表示を提供する。
【0039】
その次に、ステップ604で、ネットワークの他のサーバは、クロック・ソースの可用性を認識し、CTNに関する現行階層1構成および時間制御パラメータを入手する。一例では、これは、サーバがCTNパラメータ読み取りSTP制御メッセージをクロック・ソースに発行して、CTNに関する現行階層1構成および時間制御パラメータを入手することによって実行される。
【0040】
さらに、ステップ606で、サーバは、構成変更マシン・チェックを発行し、一例では、新規階層1構成を示す。また、ステップ608で、サーバは、たとえば、タイミング・アラート外部割り込みを発行することにより、タイミング状況変更(使用可能クロック・ソース、同期)も示す。これで、ヌル構成からの単一サーバ階層1構成の作成に関連する処理を終了する。
【0041】
上記に加えて、既存の非ヌル構成からデュアル・サーバ構成を作成することができる。デュアル・サーバ階層1構成は、1次階層1サーバおよび代替階層1サーバを指定するものであり、そのうちの一方がCTN用のアクティブ階層1サーバとして動作することができる。階層1サーバとして動作する予定のサーバは、階層1構成が作成されたときにコンソールによって指定され、任意の時期にコンソールによって変更することができる。
【0042】
デュアル・サーバ階層1構成の一例は図8に描写されている。図示の通り、サーバA(700)は、1次として示され、1に等しい階層レベルを有する。サーバC(702)は、代替として示され、2に等しい階層レベルを有する。サーバB(704)およびサーバD(706)は2に等しい階層レベルを有し、サーバE(708)は3に等しい階層レベルを有する。
【0043】
図9に関連して、デュアル・サーバ構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ800で、1次およびアクティブとしてサーバAを有し、代替としてサーバCを有する、デュアル・サーバ階層構成が指定される。一例では、これは、コンソールが階層1構成変更コマンドをサーバAに発行することによって実行される。
【0044】
その後、照会802で、階層1構成変更コマンド内の強制変更ビットが0であるかどうかについて判断が行われる。それが0である場合、ステップ804で、サーバAは、それがサーバCに直接接続されていることを検証する。一例では、サーバCとメッセージを交換することによって、この接続が検証される。照会806で、サーバAがサーバCに直接接続されていることが検証によって示された場合、ステップ808で、サーバAがCTN内の階層1構成更新をスケジュールし、ステップ809で、更新が行われる。さらに、ステップ810で、新規階層1構成が最新のものになったときに、サーバAが一例として構成変更通知コマンドをコンソールに発行する。また、ステップ812で、ネットワークのサーバは、新規階層1構成が最新のものになったことに応答して、構成変更マシン・チェックも発行する。
【0045】
照会802に戻り、強制変更ビットが1に設定された場合、処理はステップ808を続行し、そこでサーバAはCTN内の階層1構成更新をスケジュールする。
【0046】
もう一度、照会806に戻り、サーバAがサーバCに接続されていない場合、ステップ814でコマンドが拒否され、処理が完了する。
【0047】
既存の非ヌル構成からデュアル構成を作成することに加えて、既存の非ヌル構成からトライアッド構成を作成することもできる。トライアッド階層1構成は、1次階層1サーバ、代替階層1サーバ、およびアービタ・サーバを指定する。指定の1次または代替のいずれか一方がCTN用のアクティブ階層1サーバとして動作することができる。階層1構成が作成されたときにコンソールによって指定された階層1サーバとして動作する予定のサーバは、任意の時点でコンソールによって変更することができる。アービタ・サーバは、アクティブ階層1サーバがもはやCTNの一部ではない時期の決定を支援するために使用される。
【0048】
トライアッド構成の一例は図10に描写されている。図示の通り、サーバA(900)は1次階層1サーバであり、1という階層レベルを有する。さらに、サーバC(902)は代替階層1サーバであり、2という階層レベルを有し、サーバB(904)はアービタであり、これも2という階層レベルを有する。さらに、サーバD(906)は2という階層レベルを有し、サーバE(908)は3という階層レベルを有する。
【0049】
図11に関連して、トライアッド構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ1000で、コンソールは、たとえば、階層1構成変更コマンドをサーバAに発行し、サーバAがアクティブ1次階層1サーバであり、サーバCが代替階層1サーバであり、サーバBがアービタであるトライアッド構成を指定する。
【0050】
その後、照会1002で、階層1構成変更コマンド内の強制変更ビットが0に設定されているかどうかについて判断が行われる。それが0に設定された場合、ステップ1004で、サーバAは、それがサーバCおよびBに直接接続されていることを検証する。照会1006で、サーバAがサーバCおよびBに接続されている場合、ステップ1008で、サーバAがCTN内の階層1構成更新をスケジュールし、ステップ1009で、更新が行われる。また、ステップ1010で、サーバAは、新規階層1構成が最新のものになったことに応答して、構成変更通知コマンドをコンソールに発行する。その後、ステップ1012で、新規階層1構成が最新のものになったときに、サーバは構成変更マシン・チェックを発行する。
【0051】
照会1002に戻り、変更ビットが1に等しい場合、接続性検証は実行されず、処理はステップ1008を続行し、そこでサーバAはCTN内の階層1構成更新をスケジュールする。
【0052】
さらに、照会1006で、接続性検証が失敗した場合、ステップ1014でコマンドが拒否され、処理が完了する。
【0053】
上述したように、非ヌル構成を作成する際に、様々なコマンドが使用される。このようなコマンドの1つは階層1構成変更コマンドであり、これはCTN用の階層1構成に対する変更を指定するために使用される。このコマンド要求は、階層1構成を変更する方法を指定する新規階層1構成情報ブロックを含む。
【0054】
図12に関連して、階層1構成変更コマンド要求ブロック1100の一実施形態について説明する。一例では、階層1構成変更コマンド要求ブロックは以下のフィールドを含む。
a)長さフィールド1102: このフィールドは、この要求ブロックの長さを示す。
b)コマンド・コード1104: このフィールドは、階層1構成変更コマンドを指定する。
c)コマンド・トランザクション番号1106: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1108: このフィールドは、そのコマンドのターゲットになるCTNのCTN IDを含む。
e)強制変更(F)1110: このフィールドは、そのコマンドについて構成検証を実行すべきかどうかを示す。
f)新規階層1構成情報ブロック1112: このフィールドは、そのCTN用の新規階層1構成情報ブロックを含む。
【0055】
図13に関連して、階層1構成変更コマンド用の応答ブロックの一実施形態について説明する。階層1構成変更応答ブロック1150は、たとえば、以下のフィールドを含む。
a)長さ1152: このフィールドは、コマンド応答ブロックの長さを含む。
b)応答コード1154: このフィールドは、そのコマンド用の応答コードを含む。
c)コマンド・トランザクション番号1156: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0056】
動作時に、コマンドがCTN用の新規アクティブ階層1サーバを指定すると、NSCIB内にアクティブ階層1サーバとして指定されたサーバにコマンドが発行される。それがそのサーバに発行されない場合、グローバル・コマンド拒否応答コードが返される。
【0057】
その更新がCTN内で効力を発した後、新規アクティブ階層1サーバは非同期的に構成変更通知コマンドを発行する。そのコマンドが混合CTN内のサーバに発行されると、NSCIB内のSTPマイグレーション(S)フィールドが1に設定される。このフィールドは、CTN構成が混合CTNからSTP専用構成に変更されたときに階層1構成が効力を発する予定であることを示す。
【0058】
コマンド要求ブロックは、そのコマンドについて構成検証を実行すべきかどうかを示すためのフィールドを含む。構成検証なしにそのコマンドを実行する予定であることを示すために、強制変更フィールドは、たとえば、1に設定される。そのコマンドを受け入れる前に以下の構成検証チェックを実行する予定であることを示すために、強制変更フィールドは、たとえば、0に設定される。
非ヌル構成が指定された場合、受信側サーバが階層0サーバではないことを検証する。階層0サーバをアクティブ階層1サーバに設定するために、強制変更フィールドは1に設定されるはずである。
デュアル構成が指定された場合、受信側サーバは以下のことを検証する。
受信側サーバが1次階層1サーバとして指定された場合、これは、それが代替階層1サーバに接続されることを保証する。
受信側サーバが代替階層1サーバとして指定された場合、これは、それが1次階層1サーバに接続されることを保証する。
トライアッド構成が指定された場合、受信側サーバは以下のことを検証する。
受信側サーバが1次階層1サーバとして指定された場合、これは、それが代替階層1サーバおよびアービタ・サーバに接続されることを保証する。
受信側サーバが代替階層1サーバとして指定された場合、これは、それが1次階層1サーバおよびアービタ・サーバに接続されることを保証する。
検証チェックが失敗した場合、そのコマンドは受け入れられず、応答コードが報告される。
【0059】
上述したもう1つのコマンドは、構成変更通知(CCN:configuration change notification)コマンドである。構成変更通知コマンドは、CTN内の特定の構成変更をコンソールに通知するために使用される。このコマンドは、その構成がCTN内で効力を発した後にネットワークのサーバによって発行される。このコマンドは、以下の構成パラメータ変更、例として、階層1構成変更、階層1構成変更およびCTN ID変更、またはCTN ID変更、あるいはこれらの組み合わせについて発行される。
【0060】
構成変更は、階層1構成変更コマンドまたはグローバルCTN ID変更コマンドの結果として、あるいはCTN用のアクティブ階層1サーバの変更を引き起こすCTNリカバリ・アクションの結果として行われる。
【0061】
図14に関連して、構成変更通知コマンド用のコマンド要求ブロック1200の一例について説明する。一実施形態では、コマンド要求ブロック1200は以下のものを含む。
a)長さ1202: このフィールドは、コマンド・ブロックの長さを含む。
b)コマンド・コード1204: このフィールドは、構成変更通知コマンドの指定を含む。
c)コマンド・トランザクション番号1206: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1208: このフィールドは、そのコマンドを送信しているサーバのCTN IDを含む。
e)変更コード: このフィールドは、報告されている構成変更を指定するコードを含む。このフィールドは、たとえば、以下のものを示す。
●階層1構成変更: 階層1構成は、現行階層1構成ブロックによって示された通りに変更された。
●階層1構成変更およびCTN ID変更: 階層1構成およびCTN IDは、現行階層1構成ブロックおよびCTN IDフィールドによって示された通りに変更された。
●CTN ID専用変更: CTN IDは、CTN IDフィールドによって示された通りに変更された。
f)理由コード: このフィールドは、階層1構成変更が報告されている理由を指定するコードを含む。このフィールドは、階層1構成変更が変更コードに示されているときに有効であり、例として、以下のうちの1つを示す。
●階層1構成変更: 階層1構成変更は、階層1構成変更コマンドの結果である。
●リカバリ: 階層1構成変更は、STP機能リカバリ・アクションの結果である。
g)現行階層1構成情報ブロック: このフィールドは、そのサーバ用の現行階層1構成情報ブロックを含む。
【0062】
図15に関連して、構成変更通知コマンド用のコマンド応答ブロック1250の一実施形態について説明する。一例では、コマンド応答ブロック1250は、以下のものを含む。
a)長さ1252: このフィールドは、コマンド応答ブロック長を指定する。
b)応答コード1254: このフィールドは、そのコマンド用の応答コードを含む。
c)コマンド・トランザクション番号1256: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0063】
実行できるもう1つのコマンドはCTN ID変更コマンドであり、これは、ローカルまたはグローバルCTN ID変更を実行するために使用される。このコマンドは、CTNのSTPネットワークIDコンポーネント、ETRネットワークIDコンポーネント、またはCTN IDの両方のコンポーネントを変更するために使用することができる。要求ブロック内の有効性インジケータは、CTN IDのどちらのコンポーネントを変更する予定であるかを示す。要求ブロック内のグローバル・コマンド・パラメータは、そのコマンドがグローバル・コマンドであるかローカル・コマンドであるかを指定する。
【0064】
図16に関連して、CTN ID変更コマンド用のコマンド要求ブロック1300の一例について説明する。CTN ID変更要求ブロック1300は、たとえば、以下のものを含む。
a)長さ1302: このフィールドは、コマンド・ブロック長を含む。
b)コマンド・コード1304: このフィールドは、CTN ID変更コマンドを指定する。
c)コマンド・トランザクション番号1306: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1307: このフィールドは、有効である場合、そのコマンドのターゲットになるCTNのCTN IDを含む。CTN IDは、グローバルCTN更新インジケータがたとえば1であるときに有効であり、受信側サーバの現行CTN IDと一致する予定であり、そうではない場合、CTN ID不一致エラーが認識される。グローバルCTN更新インジケータがたとえば0である場合、このフィールドは有効ではなく、無視される。
e)グローバルCTN更新(G)1308: このフィールドは、コマンドがグローバル更新であるかローカル更新であるかを示す。コマンドがローカル更新である場合、それは受信側サーバでのみ実行される。コマンドがグローバル・コマンドである場合、そのコマンドはアクティブ階層1サーバに発行される予定である。
f)新規STPネットワークID有効(SV)1310: このフィールドは、新規STPネットワークIDフィールドが有効であるかどうかを示す。それが有効ではない場合、CTN IDのSTPネットワークID部分はそのコマンドによって変更されない。
g)新規ETRネットワークID有効(EV)1312: このフィールドは、新規ETRネットワークIDフィールドが有効であるかどうかを示す。それが有効ではない場合、CTN IDのETRネットワークID部分はそのコマンドによって変更されない。
h)新規STPネットワークID1314: SVインジケータが有効である場合、このフィールドは新規STPネットワークIDを含む。
i)新規ETRネットワークID1316: EVインジケータが有効である場合、このフィールドは新規ETRネットワークIDを含む。
j)ETRポート0マニュアル・ポート状態1318: EVインジケータが有効である場合、このフィールドは、ETRポート0の意図された状態を指定するマニュアル・ポート状態コードを含む。
k)ETRポート1マニュアル・ポート状態1320: EVインジケータが有効である場合、このフィールドは、ETRポート1の意図された状態を指定するマニュアル・ポート状態コードを含む。
【0065】
図17に関連して、CTN ID変更コマンド用のコマンド応答ブロック1350の一実施形態について説明する。一例では、CTN ID変更コマンド応答ブロック13500は、たとえば、以下のものを含む。
a)長さ1352: このフィールドは、コマンド応答ブロック長を指定する値を含む。
b)応答コード1354: このフィールドは、コマンド用の応答コードを含む。
c)コマンド・トランザクション番号1356: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0066】
一例では、CTN ID変更がローカルCTN更新として発行される場合、STP機能は直ちに更新を実行し、構成変更通知コマンドはコンソールに発行されない。さらに、CTN ID変更がグローバルCTN更新として発行される場合、その更新が最新のものになったときに、アクティブ階層1サーバが構成変更通知コマンドをコンソールに発行する。
【0067】
CTN ID変更がグローバルCTN更新として発行される場合、STP機能は、CTN内のサーバでCTN変更操作をスケジュールするためにCTNパラメータ更新手順を実行する。スケジュールされた更新時間は、スケジュールされた更新時間の前にCTN内のサーバが更新情報を受信することを保証する値に設定される。指定された応答コードは、その操作がCTN内で正常にスケジュールされたことを示す。
【0068】
更新がサーバでスケジュールされる場合、そのサーバは、スケジュールされたパラメータ更新情報をコンソール・ディスク記憶装置上に保管する。さらに、パラメータ更新がサーバで最新のものになると、サーバは更新されたCTNパラメータをコンソール・ディスク記憶装置上に保管する。
【0069】
一例として、その情報を保管するために、CTNパラメータ保存コマンドというコマンドがサーバによって発行される。このコマンドは、たとえば、長さフィールドおよびコマンド・コード・フィールドならびにコマンド・トランザクション番号と、CIIBと、STP機能が使用可能になっているかどうかを示すSTP機能使用可能インジケータと、サーバがローカル・クロック・サーバとして指定されているかどうかを指定するローカル・クロック・ソース・インジケータと、保存コマンドの時点でアクティブである発振器を識別するアクティブ発振器インジケータと、NCIIBと、SCIBと、階層1サーバとして動作しているときのサーバ用のベース・ステアリング・レートを含む階層1ベースのステアリング・レートと、NSCIBと、PCSIBと、TCPIBと、LSOIBと、保存コマンドが発行された時間を示す保存タイムスタンプと、発振器識別子0と、算出発振器スキュー0と、発振器識別子1と、算出発振器スキュー1の各フィールドを有する要求ブロックを含む。図19に関連して、これらのフィールドの多くについて以下に説明する。このコマンド用のコマンド応答ブロックは、たとえば、長さと、応答コードと、コマンド・トランザクション番号とを含む。
【0070】
ローカルCTN ID変更は、ローカル・コマンドとして発行されたCTN ID変更コンソール・コマンドの結果としてサーバで行われる。CTN ID変更コンソール・コマンドを受信したサーバは、一例では、サーバでCTN IDに対して指定の変更を直ちに(一例では)行い、サーバ上のすべての確立されたSTP経路を未初期化状態にし、次に、STP長に関する初期化を実行するためのイニシアチブ(initiative)を確立する。CTN ID変更が行われると、構成変更マシン・チェック条件が生成される。
【0071】
グローバルCTN ID更新は、新規CTN IDブロックに指定されたCTN ID更新時間にサーバで行われる。サーバは、指定の更新時間にそのCTN IDに対する変更を行う。変更後、サーバは、同期チェックしきい値(sync check threshold)に等しい期間の間、新規CTN ID値と前のCTN ID値との不一致の結果として発生するCTN ID不一致エラーを認識しない。新規CTN ID値と旧CTN ID値との不一致以外の不一致の結果として発生したCTN ID不一致エラーは、この期間の間、無視されない。CTN ID変更が行われると、構成変更マシン・チェック条件が生成される。
【0072】
アクティブ階層1サーバは、グローバルCTN ID更新の結果として行われるCTN ID更新を行った後、構成変更通知コンソール・コマンドを発行する。
【0073】
上述のコマンドに加えて、STPコンソール・インターフェースは、サーバからSTPタイミングおよび構成情報を読み取るためのコマンドを含む。読み取りコマンドで提供される情報は、コンソール・ディスプレイを介して使用するために入手可能になる。図18に関連して、CTNパラメータ読み取りコマンド用のコマンド要求ブロック1400の一例について説明する。一例では、CTNパラメータ読み取りコマンド要求ブロック1400は、たとえば、以下のものを含む。
a)長さ1402: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード1404: このフィールドは、CTNパラメータ読み取りコマンドを指定する値を含む。
c)コマンド・トランザクション番号1406: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
【0074】
図19に関連して、CTNパラメータ読み取りコマンド用のコマンド応答ブロック1450の一実施形態について説明する。一例では、応答ブロック1450は以下のものを含む。
a)長さ1452: このフィールドは、コマンド応答ブロック長を示すために使用される。
b)応答コード1454: このフィールドは、コマンド用の応答コードを含む。
c)コマンド・トランザクション番号1456: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
d)CTN ID情報ブロック1458: このフィールドは、サーバ用のCTN ID情報ブロック(CIIB)を含む。
一実施形態では、CTN ID情報ブロックは、サーバ用のCTN IDと、非ヌルETRネットワークにおけるETRポート0および1の状態を指定するコードとを含む。
e)最大STPバージョン1460: このフィールドは、サーバによってサポートされる最大STPバージョン番号を示す値を含む。
f)アクティブSTPバージョン1462: このフィールドは、サーバで現在アクティブであるSTPバージョン番号を示す値を含む。
g)最大タイミング階層レベル1464: このフィールドは、サーバを設定でき、サーバが同期状態になることができる最大階層レベルを指定する値を含む。最大タイミング階層レベルより大きい階層レベルを有するサーバは、非同期タイミング状態ならびに使用不能クロック・ソース状態にある。
h)最大階層レベル1466: このフィールドは、CTN内の任意のサーバについて設定できる最大階層レベルを指定する値を含む。
i)ローカル・クロック・ソース(L)1468: このフィールドは、サーバがローカル・クロック・サーバとして指定されているかどうかを指定する。
j)STPクロック・ソース状態(C)1470: このフィールドは、サーバに関するクロック・ソース状態を指定する。
k)アクティブ発振器(A)1472: このフィールドは、STP機能によってアクティブであると見なされる発振器を識別する。
l)タイミング・モード(TMD)1474: このフィールドは、サーバのタイミング・モードを指定する。
m)STPタイミング状態(TST)1476: このフィールドは、サーバのタイミング状態を指定する。
n)CTNタイプ(CTNT)1478: このフィールドは、サーバで構成されるタイミング・ネットワークのタイプを指定するコードを含む。タイプ例としては以下のものを含む。
●定義済みCTNなし: サーバは、CTNへの接続用に構成されていない。
●STP専用タイミング・ネットワーク: サーバは、STPネットワークのみを含むCTNへの接続用に構成されている。
●混合タイミング・ネットワーク: サーバは、STPネットワークとETRネットワークの両方を含むCTNへの接続用に構成されている。
o)階層1480: このフィールドは、サーバの階層レベルを示す値を含む。
p)新規CTN ID情報ブロック(NCIIB)1482: このフィールドは、サーバ用の新規CIIBを含む。新規CTN ID更新時間は、UTC(協定世界時)フォーマットで保管される。
一例では、新規CTN ID情報ブロックは、新規CTN IDと、ETRポート0マニュアル・ポート状態と、ETRポート1マニュアル・ポート状態と、たとえば、新規CTN IDが最新のものになる予定である時間を示すタイムスタンプである新規CTN ID更新時間とを含む。
q)現行階層1構成情報ブロック(SCIB)1484: このフィールドは、サーバ用の現行階層1構成ブロックを含む。
r)新規階層1構成情報ブロック(NSCIB)1486: このフィールドは、サーバ用の新規階層1構成ブロックを含む。
s)PRT(1次基準時間)訂正ステアリング情報ブロック(PCSIB)1488: このフィールドは、サーバ用のPCSIBを含む。
一例では、PRT訂正ステアリング情報ブロックは以下のものを含む。
1.PRT訂正ステアリング・レート開始時刻: このフィールドは、PRT訂正ステアリングを開始する予定の時刻を示すタイムスタンプを含む。
2.PRTソース識別子: このフィールドは1次基準時間ソース識別子を含む。
3.コンソール分散(consoledispersion): このフィールドは、提供されたコンソール分散を含む。
4.UTC分散: このフィールドは、提供されたUTC分散を含む。
5.PRTオフセット: このフィールドは、提供された1次基準時間オフセットを含む。
6.PRTタイムスタンプ: このフィールドは、提供されたPRTタイムスタンプに対応するタイムスタンプを含む。
t)時間帯制御パラメータ情報ブロック(TCPIB)1490: このフィールドは、サーバ用のTCPIBを含む。新規TZIB更新時間および新規DSTオフセット更新時間は、UTCタイムスタンプ・フォーマットに変換される。
一例では、時間帯制御パラメータ情報ブロックは、たとえば、以下のものを含む。
1.アクティブ現地時間コード: このフィールドは、現地時間設定がCTNについて効力があるかどうかを識別し、効力がある場合にその値を入手する方法を識別する値を含む。例としては以下のものを含む。
●指定現地時間なし。時間帯オフセットとDSTオフセットはどちらも0である。
●自動更新付きATZIB有効 − ATZIBは有効であり、CTN用の現地時間設定を指定する。TCPIB内のアクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効であり、ATZIB内のDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムに基づいて設定される。TTOフィールドは有効ではない。
●自動更新なしATZIB有効 − ATZIBは有効であり、CTN用の時間帯オフセットを指定する。ATZIBに指定されたDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムはいずれも使用されない。アクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効である。DSTオフセット設定コンソール・コマンドは、新規DSTO更新時間を変更するため、ならびに更新が最新のものになったときに現地時間が標準時間またはDSTになる予定であるかどうかを指定するために使用される。TTOフィールドは有効ではない。
●TTOフィールド有効 − TTOフィールドは有効であり、CTNの現地時間オフセットを指定し、時間帯オフセットと任意の夏時間オフセットの両方を含む。ATZIBフィールド、アクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効ではない。
2.新規現地時間コード: このフィールドは、新規TZIBがCTNについて保留中であるかどうかを識別する値を含む。例としては以下のものを含む。
●指定新規現地時間なし。
●自動更新付きNTZIB有効 − NTZIBフィールドおよびNTZIB更新時間フィールドは有効であり、CTN用の新規時間設定を指定する。新規TZIBは、新規TZIB更新時間に最新のものになる。アクティブDSTオフセット、新規DSTオフセット、および新規DSTO更新時間は、NTZIBが最新のものになったときに、NTZIBで提供されるDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムに基づいて設定される。
●自動更新なしNTZIB有効 − NTZIBフィールドおよびNTZIB更新時間フィールドは有効であり、新規TZIB更新時間に最新のものになる予定の時間帯オフセットおよびDSTオフセットを指定する。TZIBに指定されたDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムは使用されない。
3.新規TZIB DST(D): このフィールドは、新規現地時間コードが、自動DST更新なしTZIB有効を表す値に等しいときに有効であり、NTZIBが最新のものになったときにCTN用の現地時間を夏時間に設定するべきかどうかまたはNTZIBが最新のものになったときにその現地時間を標準時間に設定するべきかどうかを示す。
4.合計時間オフセット: このフィールドは、有効である場合、サーバで効力があるDSTオフセットおよび時間帯オフセットの結果としてSTP機能で効力がある合計時間オフセットを指定する。このフィールドは、アクティブ時間コードがTTOフィールドを指定したときに有効である。
5.アクティブ時間帯情報ブロック(ATZIB): このフィールドは、サーバで現在効力がある時間帯情報ブロック(TZIB)を含む。
一例では、TZIBは以下のものを含む。
aa)時間帯アルゴリズム番号: このフィールドは、このエントリ用の時間帯アルゴリズム番号を識別する。
bb)時間帯オフセット: このフィールドは、UTCからの時間帯の差を示す値を含む。
cc)夏時間(DST)オフセット: このフィールドは、夏時間が効力があるときに適用される予定のDSTオフセットを示す値を含む。DSTオフセット値がCTNについてアクティブになる予定の時刻および日付は、DSTオン・アルゴリズムによって指定される。サーバ用のDSTオフセットが0に設定される予定の時刻および日付は、DSTオフ・アルゴリズムによって指定される。
dd)標準時間名: このフィールドは、DSTオフセットが効力がないときの時間帯を識別する。
ee)夏時間名: このフィールドは、DSTオフセットが効力があるときの時間帯を識別する。
ff)DSTオン時間アルゴリズム: このフィールドは、DSTオフセットが適用される予定の日付および時刻を計算するために使用すべきアルゴリズムを指定する。このオフセットは、自動DSTスケジューリングがそのサーバについて効力があるときに自動的に適用される。
gg)DSTオフ時間アルゴリズム: このフィールドは、DSTオフセットが除去される予定の日付および時刻を計算するために使用すべきアルゴリズムを指定する。このオフセットは、自動DSTスケジューリングがそのサーバについて効力があるときに自動的に除去される。
6.新規時間帯情報ブロック(NTZIB): このフィールドは、有効である場合、NTZIB更新時間によって指定された時刻に始まる、ATZIBを置き換える予定の時間帯情報ブロックを含む。
7.アクティブ夏時間オフセット(DSTO): このフィールドは、サーバで現在効力があるDSTオフセットを示す値を含む。
8.新規夏時間オフセット(NDSTO): このフィールドは、新規DSTO更新タイムスタンプによって指定された時刻に始まる、アクティブDSTOを置き換える予定のオフセットを指定する値を含む。
9.新規TZIB更新時間: このフィールドは、新規TZIBが効力を発する予定の時刻を指定するタイムスタンプを含む。
10.新規DSTO時間: このフィールドは、新規DSTオフセットが効力を発する予定の時刻を指定するタイムスタンプを含む。
u)うるう秒オフセット情報ブロック(LSOIB)1492: このフィールドは、サーバ用のLSOIBを含む。新規LSO更新時間は、UTCタイムスタンプ・フォーマットに変換される。
一例では、うるう秒オフセット情報ブロックは、たとえば、以下のものを含む。
1.アクティブうるう秒オフセット提供(P): このフィールドは、たとえば、1に設定されると、アクティブうるう秒オフセットがオペレータによって提供された値を含むことを示す。このフィールドが、たとえば、0に設定されると、アクティブうるう秒オフセットは、マシン初期設定値を含み、オペレータによって設定されていない。
2.アクティブうるう秒オフセット(LSO): このフィールドは、STP機能で現在効力があるうるう秒の数を示す値を含む。
3.新規うるう秒オフセット(LSO): このフィールドは、LSO更新時間によって指定された時刻にアクティブになる予定のうるう秒の数を示す値を含む。
4.新規うるう秒オフセット(LSO)更新時間: このフィールドは、新規うるう秒オフセットが効力を発する予定の時刻を指定するタイムスタンプを含む。
v)発振器識別子0(1494): このフィールドは、発振器0用の識別子を含む。
w)算出発振器スキュー0(COS0)1496: このフィールドは、サーバにインストールされた発振器0用の公称周波数に対する算出スキューを指定する値を含む。
x)発振器識別子1(1498): このフィールドは、発振器1用の識別子を含む。
y)算出発振器スキュー1(COS1)1499: このフィールドは、サーバにインストールされた発振器1用の公称周波数に対する算出スキューを指定する値を含む。
【0075】
上記の情報は、本発明の一態様では、協定タイミング・ネットワークのサーバの保全性を保証するために使用される。この情報は、ネットワークのサーバに伝搬される。ネットワークのサーバは、構成を入手し、構成を理解し、同じ構成に従う。一実施形態では、サーバは、階層1構成を把握せずに事前指定量の時間(たとえば、フリーホイール期間)より長く動作することはできない。サーバがネットワークに加入したいと希望する場合、そのサーバはこの情報を入手し使用する。この情報は、CTNの状態ならびに追加情報を提供する。
【0076】
本発明の他の一態様により、アクティブ階層1サーバで障害が発生した場合にアクティブ階層1サーバとして引き継ぐことができるように、協定タイミング・ネットワーク用の階層1構成の一部として代替サーバを構成するための機能が提供される。これにより、CTN内のサーバがアクティブ階層1サーバの障害にかかわらずタイミング・ネットワーク内で同期を維持または獲得できるように、CTNに関する単一障害点(single point of failure)が防止される。
【0077】
上述したように、1次および代替階層1サーバを指定する階層1構成をCTNについて定義することができる。1次サーバは、通常、CTN用のアクティブ階層1サーバとして動作し、バックアップとして動作する代替サーバは非アクティブ階層1サーバという。非アクティブ階層1サーバは、アクティブ階層1サーバの障害を検出すると、それがCTNのアクティブ階層1サーバとして引き継いだことを(たとえば、CTNパラメータ更新手順を介して)CTNに通知し、それ自体の時刻機構に基づいてCTNを駆動する。故障中の階層1サーバは、階層0に設定され、リカバリ後にネットワークに再加入することができるが、この実施形態では階層1サーバとして再加入することはできない。さらに、一実施形態では、1次サーバが階層2サーバとしてCTNに再加入する場合、そのサーバはバックアップ階層1サーバの役割を引き受ける。コンソールは、必要であれば、CTN用のアクティブ階層1サーバとしてその役割を再開するよう1次サーバに指示することができる。
【0078】
図20に関連して、アクティブ階層1サーバにおける障害の検出およびリカバリの実行に関連するロジックの一実施形態について説明する。最初に、ステップ1500で、非アクティブ階層1サーバはアクティブ階層1サーバにおける障害を検出する。たとえば、階層1システム・チェック信号(SCS)の受信、アクティブ階層1サーバがチェック停止状態またはパワーオフ状態に入ったと判断するためのコンソールとの通信を含むコンソール支援リカバリ、第3のサーバであるアービタ・サーバを使用して、アクティブ階層1サーバを投票で排除する(vote out)トライアッド・リカバリを含む、アクティブ階層1サーバにおける障害を検出するための様々なメカニズムが存在する。これらの障害検出メカニズムについては、さらに詳細に後述する。
【0079】
ステップ1502で、アクティブ階層1障害を検出したことに応答して、非アクティブ階層1サーバは引き継ぎ手順を実行する。さらに、ステップ1504で、アクティブ階層1サーバがそれが障害状態に入ったことを検出した場合、ステップ1506で、引き渡し手順を実行し、CTN用のアクティブ階層1サーバとしてのその役割を断念する。
【0080】
一例として、非アクティブ階層1サーバによって実行されるステップ1500および1502は、アクティブ階層1サーバによって実行されるステップ1504および1506と実質的に並行して実行することができる。
【0081】
障害検出およびエラー・リカバリに関する詳細については、構成のタイプに基づく手順に関連して以下に説明する。たとえば、階層1サーバ・リカバリは、CTNのシステム1構成に代替階層1サーバが指定されている場合にのみ実行される。代替サーバは、デュアル・サーバ構成とトライアッド構成のいずれにも指定される。したがって、デュアル・サーバ階層1構成リカバリおよびトライアッド階層1構成リカバリの両方のためにリカバリ手順が提供されるが、それぞれのリカバリについては以下に説明する。
【0082】
デュアル・サーバ階層1構成リカバリでは、デュアル・サーバ構成内の非アクティブ階層1サーバは、アクティブ階層1障害を検出したことに応答して、アクティブ階層1サーバの役割を引き継ぐ。図21に関連して、デュアル・サーバ階層1構成リカバリに関連するロジックの一実施形態について説明する。最初に、ステップ1600で、非アクティブ階層1サーバはアクティブ階層1サーバにおける障害を検出する。アクティブ階層1障害は、たとえば、コンソール支援リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合、または階層1システム・チェック信号が認識された場合にデュアル・サーバ構成で検出されるが、それぞれの場合については以下に説明する。
【0083】
アクティブ階層1サーバ障害を検出したことに応答して、ステップ1602で、非アクティブ階層1サーバはアクティブ階層1引き継ぎ手順を実行し、CTN用のアクティブ階層1サーバの役割を引き継ぐ。これで、デュアル・サーバ階層1構成リカバリの処理を終了する。
【0084】
デュアル・サーバ階層1構成リカバリに加えて、トライアッド階層1構成リカバリが提供される。図22に関連して、トライアッド階層1構成リカバリに関連するロジックの一実施形態について説明する。最初に、ステップ1700で、トライアッド構成内の非アクティブ階層1サーバはアクティブ階層1障害を認識する。例として、非アクティブ階層1サーバは、トライアッド・リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合、またはコンソール支援リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合に、アクティブ階層1障害を認識する。
【0085】
アクティブ階層1障害を検出したことに応答して、ステップ1702で、非アクティブ階層1サーバはアクティブ階層1引き継ぎ手順を実行し、CTNのアクティブ階層1サーバの役割を引き継ぐ。さらに、ステップ1704で、非アクティブ階層1サーバおよびアービタ・サーバの両方への接続を失ったことを検出したことに応答して、アクティブ階層1サーバはアクティブ階層1サーバの役割を断念する。アクティブ階層1サーバは後述するアクティブ階層1引き渡し手順を実行し、CTNのアクティブ階層1サーバの役割を断念する。
【0086】
その上、ステップ1706で、たとえば、非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタへの接続が可能である場合、または非アクティブ階層1サーバがアクティブ階層1通信タイムアウトを認識し、アービタへの接続が可能である場合、あるいはその両方の場合に、非アクティブ階層1サーバはトライアッド・リカバリ手順を実行する。アクティブ階層1通信タイムアウトは、たとえば、CTN用のフリーホイール間隔満了の2秒前に検出され、これにより、CTN内で同期チェック条件が検出される前に階層1引き継ぎを行うことができる。フリーホイール間隔に関する詳細は、Carlson他により2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号に記載されている。
【0087】
一実施形態では、照会1707で、トライアッド・リカバリが失敗した場合、ステップ1708で、トライアッド構成内の非アクティブ階層1サーバは、図21に関連して説明したデュアル・サーバ・リカバリを実行する。しかし、トライアッド・リカバリが成功した場合、デュアル・サーバ・リカバリは迂回される。これで、トライアッド階層1構成リカバリの処理を終了する。
【0088】
リカバリ中に実行される様々な手順に関する詳細については、さらに詳細に後述する。
【0089】
たとえば、アクティブ階層1サーバにおける障害を検出するためのメカニズムの1つは、非アクティブ階層1サーバで階層1システム・チェック信号(SCS)を受信することである。この階層1システム・チェック信号は、デュアル・サーバCTN構成内の非アクティブ階層1サーバに対し、CTN用のアクティブ階層1サーバとして動作し続けることを妨げるような状態にアクティブ階層1サーバが入ったことを示す。
【0090】
非アクティブ階層1サーバは、アクティブ階層1サーバが非アクティブ階層1サーバへのSTP接続性を終了したことを検出するときにSCSを認識する。非アクティブ階層1は、アクティブ階層1サーバに関連するSTP経路グループ内の最後の経路上でオフライン信号を受信するときに、アクティブ階層1サーバがSTP接続性を終了したことを検出する。
【0091】
アクティブ階層1サーバは、非アクティブ階層1サーバへのすべての接続性を終了するときに、それがSCSを発行したことを認識する。アクティブ階層1サーバは、非アクティブ階層1サーバに関連するSTP経路グループ内の最後の経路上でオフライン信号を送信するときに、非アクティブ階層1サーバへのすべてのSTP接続性が終了されたことを考慮する。
【0092】
障害を検出するためのもう1つのメカニズムはコンソール支援リカバリ手順であり、これは、アクティブ階層1サーバの状態を判断するためにデュアル・サーバ構成またはトライアッド構成のいずれかの非アクティブ階層1サーバによって開始される。この手順は、コンソールによって提供された情報を使用して、アクティブ階層1障害条件が存在するかどうかを判断する。
【0093】
図23に関連して、コンソール支援リカバリ手順に関連するロジックの一実施形態について説明する。最初に、ステップ1800で、非アクティブ階層1サーバがサーバ状態を要求する。特に、非アクティブ階層1サーバは、コマンド要求ブロック内のノード記述子フィールドがアクティブ階層1サーバのノード記述子に等しいSTP生成サーバ状態要求コンソール・コマンドを発行する。コンソールがこの要求を受信したことに応答して、ステップ1802で、コンソールは、アクティブ階層1サーバの状態を判断するためにアクティブ階層1サーバと通信しようと試みる。
【0094】
アクティブ階層1サーバの状態を判断しようと試みた後、ステップ1804で、コンソールは、要求ブロック内の状態コードがアクティブ階層1サーバの最も良く知られた状態に設定されたサーバ状態書き込みコンソール・コマンドを非アクティブ階層1サーバに発行する。ステップ1806で、非アクティブ階層1サーバは、その階層1サーバがチェック停止状態またはパワーオフ状態にあることを示すサーバ状態書き込みコンソール・コマンドを受信した場合、アクティブ階層1条件を認識する。
【0095】
図24に描写された構成に関連して、コンソール支援リカバリの一例に関連する詳細について説明する。一例として、デュアル・サーバ構成では、アクティブ階層1サーバに対する付加サーバ通信エラーを検出したときに、非アクティブ階層1サーバによってコンソール支援リカバリが実行される。以下の例では、アクティブ階層1サーバはチェック状態に入っている。図24の構成に関するコンソール支援リカバリ中に以下のアクションが実行される。
1.サーバD(1850)はサーバA(1852)への接続の喪失を検出する。
2.サーバDは、サーバ状態要求コマンドをコンソールに発行し、サーバAの状態を要求する。
3.コンソールは、その動作状態を判断するよう、サーバAに照会する。
4.コンソールは、サーバAが動作可能ではない(チェック停止またはパワーオフ)か、または動作可能状態が不明であることを示すサーバ状態書き込みをサーバDに発行する。
5.サーバAが動作可能であるかまたはその状態が不明である場合、サーバDはサーバ状態要求コマンドを繰り返す。
6.サーバAの状態が動作可能ではない場合、サーバDはCTNパラメータ更新手順を実行し、それ自体をアクティブ階層1サーバとして設定するよう新規階層1構成をスケジュールする。
一例では、協定タイミング・ネットワーク・パラメータ更新手順はタイミング・ネットワーク内で同時にCTNパラメータを更新する。一例として、この手順は、変更するための1つまたは複数のタイミング・パラメータを選択することと、変更すべきパラメータならびに変更が行われる予定の時期を含む情報応答パケットを構築することを含む。その後、そのパケットはネットワーク内の他のサーバにブロードキャストされる。受信側サーバでは、クロック・ソースとの通信が失われたかどうかが判断される。これは、典型的には、クロック・ソースとして使用されるネットワーク内のノードからタイミング・メッセージを定期的に受信することによって達成される。通信喪失の持続が長すぎたと判断された場合(これは、そのネットワークについて定刻より進んでいると定義され、一例として、サーバのクロック・ソースのクロックに対するサーバのクロックの最大ドリフト・レートの関数である)、受信側サーバはそのタイミング・パラメータを無効であると宣言する。続行するために、サーバは新規タイミング・パラメータを取得する。それが長すぎなかった場合、タイミング・パラメータは依然として有効であり、そのパラメータはネットワーク内のすべてのサーバにおいて推奨された将来の時点で更新される。
7.階層1構成変更が効力を発すると、サーバDは構成変更通知をコンソールに発行する。
8.サーバC(1854)は階層3に変化し、サーバF(1856)は階層2に変化する。
9.サーバCおよびFに関する階層1構成変更および階層レベル変更を報告するために、ネットワークのすべてのサーバで構成変更マシン・チェックが生成される。
【0096】
実行されるもう1つのリカバリ手順はトライアッド・リカバリ手順である。トライアッド・リカバリ手順は、階層1障害が発生したかどうかを判断するためにトライアッド構成内の非アクティブ階層1サーバによって実行される。
【0097】
図25に関連して、トライアッド・リカバリ手順に関連するロジックの一実施形態について説明する。最初に、ステップ1900で、非アクティブ階層1サーバは引き継ぎモード状態に入る。さらに、ステップ1902で、アービタ引き継ぎモード設定メッセージ・コマンドがアービタ・サーバに発行される。アービタ引き継ぎモード設定操作は、たとえば、アービタを引き継ぎモードにするために、代替階層1サーバによりアービタ・サーバへのメッセージを介して発行される。受信側サーバは、アービタ引き継ぎ状態フラグおよび応答ブロックを返す。メッセージ・コマンド・データ・フィールドでは、アクティブ階層1通信タイムアウト・フラグは以下のように設定される。すなわち、サーバがアクティブ階層サーバへの接続が可能ではない場合、フラグはたとえば0に設定され、サーバがアクティブ階層サーバへの接続が可能であり、アクティブ階層1通信が認識された場合、フラグはたとえば1に設定される。
【0098】
アービタ引き継ぎモード設定メッセージ・コマンドに対する応答が1に等しい引き継ぎ状態フラグを有する場合、非アクティブ階層1サーバはアクティブ階層1障害を認識し、アービタ引き継ぎモード設定メッセージ・コマンドに対する応答が0に等しい引き継ぎ状態フラグを有する場合、非アクティブ階層1サーバはアクティブ階層1障害を認識せず、以下のように実行する。すなわち、その応答が1に等しいアクティブ階層1通信タイムアウト・フラグを有する場合、サーバは引き継ぎモードを終了し、その応答が0に等しいアクティブ階層1通信タイムアウト・フラグを有する場合、非アクティブ階層1は引き継ぎモードのままになる。
【0099】
非アクティブ階層1サーバは、以下のいずれかが発生したときに、引き継ぎモードを離れる。
●0に等しい引き継ぎ状態フラグと、1に等しい通信タイムアウト・フラグとを含む、アービタ引き継ぎ設定メッセージ応答を受信する。
●アービタ引き継ぎモード・リセット・コマンドをアービタに発行する。アービタ引き継ぎモード・リセット操作は、引き継ぎモードからアービタを取り出すために代替階層1サーバによってアービタ・サーバに発行される。この操作は、メッセージを介してアービタ・サーバに転送される。
●アクティブ階層1引き継ぎ手順を実行する。
【0100】
非アクティブ階層1サーバは、引き継ぎモードにある間にアクティブ階層1サーバから確立されたSTP経路メッセージ・コマンドを受信した場合、アービタ引き継ぎモード・リセット・コマンドをアービタに発行し、アクティブ階層1サーバへの経路上でSTP経路初期化を実行するためのイニシアチブを確立する。
【0101】
アービタ・サーバは非アクティブ階層1サーバからアービタ引き継ぎモード設定メッセージ・コマンドを受信すると、アービタ引き継ぎモードに入る。アービタ・サーバは、以下のいずれかが発生したときに、アービタ引き継ぎモードを離れる。
●0に等しい引き継ぎ状態フラグと、1に等しい通信タイムアウト・フラグとを含む応答により、アービタがアービタ引き継ぎ設定メッセージ・コマンドに応答する。
●アービタが非アクティブ階層1サーバからのアービタ引き継ぎモード・リセット・コマンドを受け入れる。
●アービタが階層1構成更新を受信する。
【0102】
アービタ引き継ぎモードにある間に、アービタは、引き継ぎ保留状態または引き継ぎアクティブ状態というアービタ引き継ぎ状態のうちの1つになる。このアービタ引き継ぎ状態は、アービタ引き継ぎモード設定コマンドに対する応答に示される。
【0103】
アービタは、アービタ引き継ぎモードに入り、以下の条件がいずれも存在するときに、引き継ぎ保留状態に入る。すなわち、アービタがアクティブ階層1サーバに接続されていることと、アクティブ階層1通信タイムアウトがアービタ内に存在しないことである。
【0104】
引き継ぎ保留状態は、非アクティブ階層1サーバがアクティブ階層1引き継ぎを実行できないことを示す。アービタは、それが引き継ぎアクティブ状態に入ったときまたはアービタがアービタ引き継ぎモードを離れたときに、引き継ぎ保留状態を離れる。
【0105】
アービタは、以下の状況の下で引き継ぎアクティブ状態に入る。
●アービタがアービタ引き継ぎモードに入り、以下の条件のいずれかが存在する場合。すなわち、アクティブ階層1サーバがアービタに接続されていないこと、またはアクティブ階層1サーバがアービタに接続されており、アクティブ階層1通信タイムアウト条件がアービタで認識されたこと。
●アービタが引き継ぎ保留状態にあり、アクティブ階層1サーバが接続状態を離れたか、またはアクティブ階層1通信タイムアウトが認識された場合。
【0106】
引き継ぎアクティブ状態は、それがアクティブ階層1引き継ぎを実行できることを非アクティブ階層1サーバに示すものである。アービタがアービタ引き継ぎ設定コマンドに応答した後に引き継ぎアクティブ状態に入った場合、アービタは非アクティブ階層1サーバにアービタ引き継ぎアクティブ・コマンドを発行し(すなわち、メッセージを送信し)、それが引き継ぎ保留状態から引き継ぎアクティブ状態に遷移したことを示す。
【0107】
アービタが引き継ぎアクティブ状態に入ると、アクティブ階層1サーバ用の経路グループ内の残りの経路はいずれも、通信エラーを示す未初期化状態に入る。引き継ぎアクティブ状態にある間に、アービタは、アクティブ階層1サーバからのSTP経路確立(ESP)メッセージ・コマンドに対し、引き継ぎアクティブ状態応答コードで応答する。
【0108】
アービタは、アービタ引き継ぎモードを離れると、引き継ぎ保留状態を離れる。
【0109】
図26に関連して、トライアッド構成内の階層1リカバリの一例について説明する。
1.サーバ1(1950)はチェック停止状態に入る。
2.サーバ2(1952)はサーバ1への接続の喪失を検出する。
3.サーバ2は引き継ぎモード設定制御コマンドをアービタ・サーバに発行する。
4.アービタは、以下のように引き継ぎモード設定コマンドに対する応答として引き継ぎモードに入る。
●アービタは、サーバ1への接続が可能ではない場合、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができることを示す引き継ぎアクティブ状態に入ったと応答する。引き継ぎアクティブ状態にあるときに、アービタ・サーバはアクティブ階層1サーバにより経路を確立できないようにする。
●アービタは、サーバ1への接続が可能ではない場合、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができないことを示す引き継ぎ保留状態に入ったと応答する。アービタは、引き継ぎ保留状態にある間にサーバ1への接続を失った場合、アービタ引き継ぎ状態アクティブ通知をサーバ2に発行する。
5.アービタは、引き継ぎモード設定コマンドまたはサーバ2へのアービタ引き継ぎ状態アクティブ通知コマンドのいずれかにより、それが引き継ぎアクティブ状態にあることを示す。
6.サーバ2は、CTNパラメータ更新手順を実行し、それ自体をアクティブ階層1として設定する。
7.階層1構成変更が最新ものになったときに、サーバ2は構成変更通知をコンソールに発行する。
8.階層1構成変更を報告するために、ネットワークのすべてのサーバで構成変更マシン・チェックが生成される。
【0110】
もう1つの例として、図27に関連して、アクティブS1へのリンクの喪失後の階層1サーバ引き継ぎのためのリカバリ手順について説明する。
1.図27に関連して、サーバ2(1972)およびアービタ(1974)がサーバ1(1976)への接続の喪失を検出することが示されている。
2.サーバ2は、引き継ぎモード設定制御コマンドをアービタ・サーバに発行する。
3.アービタは、引き継ぎモード設定コマンドへの応答またはサーバ2へのアービタ引き継ぎ状態アクティブ通知コマンドのいずれかにより、それが引き継ぎアクティブ状態にあることを示し、それが引き継ぎを許可することを示す。
4.サーバ2は、CTNパラメータ更新手順を実行し、それ自体をアクティブ階層1として設定する。
5.階層1構成変更が最新ものになったときに、サーバ2は構成変更通知をコンソールに発行する。
6.サーバ1は、サーバ2および3への接続の喪失を検出し、引き渡し手順を実行する。そのサーバは、サーバBへの接続の結果として、階層3に降下する。
7.階層1構成変更ならびにサーバ1が階層3にあることを報告するために、ネットワークのすべてのサーバで構成変更マシン・チェック割り込み要求が生成される。
【0111】
以下の例では、階層1引き継ぎは実行されない。図28に関連して、これについて説明する。この例では、以下のようになる。
1.サーバ2(1980)は、サーバ1(1982)への接続の喪失を検出する。
2.サーバ2は、引き継ぎモード設定制御コマンドをアービタ・サーバ(1984)に発行する。
3.アービタは、引き継ぎモード設定コマンドへの応答としてそれが引き継ぎ保留状態にあることを示し、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができないことを示す。
4.サーバ2は、リカバリを実行せず、階層3に降下する。
5.リンクが復元された場合、サーバ2は、引き継ぎモード・リセット・コマンドをアービタに発行する。
6.サーバ2は、階層レベル変更を報告するために構成変更マシン・チェック要求を生成する。
【0112】
デュアル階層1リカバリ(図21)およびトライアッド階層1リカバリ(図22)のいずれでも、アクティブ階層1障害を認識したことに応答して、非アクティブ階層1サーバによってアクティブ階層1引き継ぎ手順が実行される。この手順の結果、非アクティブ階層1サーバはCTN用のアクティブ階層1サーバの役割を引き継ぐことになる。
【0113】
図29に関連して、アクティブ階層1引き継ぎに関連するロジックの一実施形態について説明する。最初に、ステップ2000で、アクティブ階層1サーバ用の経路グループ内のすべての残りの経路は未初期化状態になり、URCは通信エラーを示す。
【0114】
さらに、ステップ2002で、サーバはその階層レベルを1に設定し、ステップ2004で、サーバおよびコンソールの階層1構成情報ブロックが変更される。一例では、そのサーバをアクティブ階層1サーバとして示すようにアクティブ・ビットが変更され、階層1最大短期スキュー・レート変更フィールドがそのサーバ用の値に設定され、階層1構成タイムスタンプが現行時間に設定され、他のフィールドが未変更になるように、SCIBが変更される。
【0115】
上記に加えて、ステップ2006で、サーバはCTNパラメータ更新手順を実行し、CTN用の階層1構成情報ブロックを更新されたSCIB内の値に変更する。階層1構成更新時間および新規階層1構成情報ブロックはSCIB内の階層1構成タイムスタンプに設定される。これで、アクティブ階層1引き継ぎを終了する。
【0116】
実行されるさらにもう1つの手順はアクティブ階層1引き渡し手順であり、これは、アクティブ階層1サーバ障害状態に入ったことを認識したときにアクティブ階層1サーバによりデュアル・サーバ構成またはトライアッド構成で実行される。この手順の結果、アクティブ階層1サーバはCTN用のアクティブ階層1サーバの役割を断念する。
【0117】
図30に関連して、アクティブ階層1引き渡し手順に関連するロジックの一実施形態について説明する。一例では、ステップ2100で、アクティブ階層1サーバにおける非アクティブ階層1およびアービタ・サーバ用の経路および経路グループが未初期化状態に設定され、URCは初期化が完了していないことを示す。さらに、ステップ2102で、アクティブ階層1サーバはその階層レベルを0に設定し、2次サーバになる。ステップ2104で、2次サーバとしての前のアクティブ階層1サーバがその階層1構成をヌル構成に設定する。さらに、ステップ2106で、このサーバはそのリンクを介して潜在的クロック・ソースを突き止めようと試みる。これで、引き渡しプロセスを完了する。
【0118】
上述したように、サーバ状態要求コマンドは、要求ブロック内のノード記述子によって指定されたサーバの動作状況を要求するために使用される。指定のサーバの状況は、サーバ状態書き込みコマンドを使用して、コンソールによって非同期的に提供される。図31に関連して、サーバ状態要求コマンド用のコマンド要求ブロックの一実施形態について説明する。
【0119】
サーバ状態要求要求ブロック2200は、たとえば、以下のものを含む。
a)長さ2202: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード2204: このフィールドはサーバ状態読み取りコマンドを指定する。
c)コマンド・トランザクション番号2206: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)ノード記述子2208: このフィールドは、状況が要求されているサーバのノード記述子を含む。
【0120】
図32に関連して、サーバ状態要求コマンド用のコマンド応答ブロック2250の一実施形態について説明する。応答ブロック2250は、たとえば、以下のものを含む。
a)長さ2252: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)応答コード2254: このフィールドはコマンド用の応答コードを含む。
c)コマンド・トランザクション番号2256: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供された値を含む。
【0121】
サーバ状態書き込みコマンドは、要求ブロックに指定されたサーバの動作状況を提供する。このコマンドは、サーバ状態要求コマンドを受け入れた後でコンソールによって発行される。図33に関連して、サーバ状態書き込みコマンド用のコマンド要求ブロックの一実施形態について説明する。一例では、サーバ状態書き込み要求ブロック2300は以下のものを含む。
a)長さ2302: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード2304: このフィールドは、サーバ状態書き込みコマンドを指定する値を含む。
c)コマンド・トランザクション番号2306: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)状態コード2308: このフィールドは、要求ブロック内のノード記述子によって指定されたサーバの状態を示す値を含む。状態としては、たとえば、以下のものを含む。
●サーバは動作可能である。
●サーバ状態は不明である。
●サーバはチェック停止状態にある。
●サーバはパワーオフされている。
e)ノード記述子2310: このフィールドは、状況が報告されているサーバのノード記述子を含む。
【0122】
図34に関連して、サーバ状態書き込みコマンド用のコマンド応答ブロックの一実施形態について説明する。一例では、サーバ状態書き込み応答ブロック2350は以下のものを含む。
a)長さ2352: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)応答コード2354: このフィールドはコマンド用の応答コードを含む。
c)コマンド・トランザクション番号2356: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供された値を含む。
【0123】
一実施形態では、本発明の1つまたは複数の態様は、ネイティブ・アーキテクチャと呼ぶこともできるあるアーキテクチャに基づくが、ゲスト・アーキテクチャと呼ぶこともできる他のアーキテクチャをエミュレートする処理環境で実行することができる。例として、ネイティブ・アーキテクチャは、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるPower4またはPowerPC(商標)アーキテクチャあるいはインテル社によって提供されるIntel(商標)アーキテクチャであり、ゲスト・アーキテクチャは、同じくニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるz/Architecture(商標)である。z/Architecture(商標)の諸態様は、2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles ofOperation」に記載されている。このような環境では、z/Architecture(商標)で指定され、z/Architecture(商標)マシン上で実行されるように設計された命令またはロジックあるいはその両方は、z/Architecture(商標)以外のアーキテクチャ上で実行されるようにエミュレートされる。図35〜図36に関連して、この処理環境の一例について説明する。
【0124】
図35を参照して、本発明の1つまたは複数の態様を取り入れて使用するための処理環境の一実施形態について説明する。処理環境2400は、たとえば、ネイティブ中央演算処理装置2402と、メモリ2404(たとえば、メイン・メモリ)と、たとえば、1つまたは複数のバス2408またはその他の接続部あるいはこれらの組み合わせを介して相互に結合された1つまたは複数の入出力(I/O)装置2406とを含む。例として、処理環境2400は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるPowerPC(商標)プロセッサ、pSeries(商標)サーバ、またはxSeries(商標)サーバ、カリフォルニア州パロアルトのヒューレットパッカード社によって提供されるIntel(商標)Itanium(商標)2プロセッサ付きHP Superdome、IBM(商標)、ヒューレットパッカード社、Intel(商標)、サン・マイクロシステムズ社、その他によって提供されるアーキテクチャに基づくその他のマシン、あるいはこれらの組み合わせを含むことができる。PowerPC(商標)、pSeries(商標)、およびxSeries(商標)は米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。Intel(商標)およびItanium(商標)2はカリフォルニア州サンタクララのインテル社の登録商標である。
【0125】
ネイティブ中央演算処理装置2402は、この環境内での処理中に使用される、1つまたは複数の汎用レジスタあるいは1つまたは複数の特殊目的レジスタもしくはこれらの組み合わせなどの1つまたは複数のネイティブ・レジスタ2410を含む。これらのレジスタは、任意の特定の時点におけるこの環境の状態を表す情報を含む。
【0126】
その上、ネイティブ中央演算処理装置2402は、メモリ2404に保管された命令およびコードを実行する。特定の一例では、中央演算処理装置は、メモリ2404に保管されたエミュレータ・コード2412を実行する。このコードは、あるアーキテクチャで構成された処理環境で他のアーキテクチャをエミュレートできるようにするものである。たとえば、エミュレータ・コード2412は、PowerPC(商標)プロセッサ、pSeries(商標)サーバ、xSeries(商標)サーバ、HP Superdome(商標)サーバ、その他などのz/Architecture以外のアーキテクチャに基づくマシンで、z/Architecture(商標)をエミュレートし、z/Architecture(商標)に基づいて開発されたソフトウェアおよび命令を実行できるようにする。
【0127】
図36に関連して、エミュレータ・コード2412に関する詳細について説明する。ゲスト命令2502は、ネイティブCPU2402のアーキテクチャ以外のアーキテクチャで実行されるように開発されたソフトウェア命令(たとえば、マシン命令)を含む。たとえば、ゲスト命令2502は、z/Architecture(商標)902上で実行されるように設計された可能性があるが、その代わりにネイティブCPU2402(たとえば、Intel(商標)Itanium(商標)2プロセッサである可能性がある)上でエミュレートされる。一例では、エミュレータ・コード2412は、メモリ2404から1つまたは複数のゲスト命令2502を入手し、任意選択で、入手した命令のローカル・バッファを行うための命令取り出しルーチン2500を含む。
【0128】
エミュレータ・コード2412は、入手されたゲスト命令のタイプを決定し、ゲスト命令に対応する1つまたは複数のネイティブ命令2509を提供するための命令変換ルーチン2504をさらに含む。一例では、提供することは、たとえば、変換プロセス中に所与のゲスト命令に関する命令のネイティブ・ストリームを作成することを含む。これは、関数を識別することと、同等のネイティブ命令を作成することを含む。他の一例では、ネイティブ命令を提供することは、ゲスト命令に関連するコード・セグメントをエミュレータ内で選択することを含む。たとえば、各ゲスト命令は、エミュレータ内に関連のコード・セグメントを有し、これは1つまたは複数のネイティブ命令のシーケンスを含み、そのコード・セグメントは実行されるために選択される。
【0129】
エミュレータ・コード2412は、ネイティブ命令を実行させるためのエミュレーション制御ルーチン2506をさらに含む。エミュレーション制御ルーチン2506により、ネイティブCPU2402は、1つまたは複数の前に入手したゲスト命令をエミュレートするネイティブ命令のルーチンを実行し、このような実行の終わりに、命令取り出しルーチンに制御を返して次のゲスト命令またはゲスト命令のグループの入手をエミュレートすることができる。ネイティブ命令2509の実行は、メモリ2404からレジスタにデータをロードすること、レジスタからメモリにデータを戻して保管すること、または変換ルーチンによって決定されたように何らかのタイプの算術演算または論理演算を実行することを含むことができる。各ルーチンは、たとえば、メモリに保管され、ネイティブ中央演算処理装置2402によって実行されるソフトウェアで実現される。その他の例では、これらのルーチンまたは演算の1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはこれらの何らかの組み合わせで実現される。エミュレートされたゲスト・プロセッサのレジスタは、ネイティブCPUのレジスタ2410を使用するか、またはメモリ2404内の位置を使用することによってエミュレートすることができる。諸実施形態では、ゲスト命令2502、ネイティブ命令2509、およびエミュレーション・コード2412は、同じメモリに常駐するか、または異なるメモリ・デバイス間に分散させることができる。
【0130】
さらに他の一実施形態では、プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムであって、直接またはシステム・バスを介して間接的にメモリ・エレメントに結合された少なくとも1つのプロセッサを含むものが使用可能である。メモリ・エレメントは、たとえば、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、ならびに、実行中にコードを大容量記憶装置から取り出さなければならない回数を削減するために少なくとも何らかのプログラム・コードの一次記憶を行うキャッシュ・メモリを含む。
【0131】
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、およびその他の記憶媒体などを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを介してシステムに結合することができる。データ処理システムが介在する私設網または公衆網を介して他のデータ処理システムまたはリモート・プリンタあるいは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
【0132】
本発明の1つまたは複数の態様は、たとえば、コンピュータ使用可能媒体を有する装置(article of manufacture)(たとえば、1つまたは複数のコンピュータ・プログラム)に含めることができる。この媒体は、たとえば、本発明の諸機能を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック(たとえば、命令、コード、コマンドなど)をそこに有する。この装置は、システム(たとえば、コンピュータ・システム)の一部として含めるか、または別個に販売することができる。
【0133】
図37に関連して、本発明の1つまたは複数の態様を取り入れた装置またはコンピュータ・プログラムの一例について説明する。コンピュータ・プログラム2600は、たとえば、本発明の1つまたは複数の態様を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック2604をそこに保管するための1つまたは複数のコンピュータ使用可能媒体2602を含む。この媒体は、電子、磁気、光学、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
【0134】
1つまたは複数のコンピュータ可読プログラム・コード手段またはロジックによって定義された1つまたは複数の相関モジュールの論理アセンブリあるいは一連のプログラム命令は、本発明の1つまたは複数の態様の実行を指示するものである。
【0135】
本明細書には、協定タイミング・ネットワークを形成するために複数の別個のコンピューティング・システムによる時刻同期の維持を促進する諸機能が記載されている。タイミング・ネットワーク内のサーバは、サーバ・タイム・プロトコルを使用して、既存の高速データ・リンクによりシステム間で計時情報を受け渡し、これにより、各システムの時刻機構を現代のハイエンド・コンピューティング・システムに必要な正確度で同期させるための機能を提供する。高速低待ち時間リンクによるSTPの使用は、単一サーバによって提供された基準時間に基づくときに、CTN内のすべてのシステムを、たとえば、数マイクロ秒の正確度で同期させるための機能を提供する。
【0136】
STPは、時間帯、夏時間オフセット、うるう秒オフセットなど、CTN内で計時情報を設定し維持するための機能を提供する。この情報は、すべての変更がCTN内のすべてのサーバで同時に行われるように、計画的かつ一貫してCTN内で更新することができる。これにより、これらのパラメータが無計画に更新されたときに発生し、コンピュータ間の時間設定の矛盾を生み出す潜在的なシステム露出や混乱が防止される。
【0137】
CTNパラメータは、STPコンソール・インターフェースを介してオペレータによって設定し読み取ることができる。CTNパラメータとしては、サーバ接続性、時間帯および夏時間などの現地時間情報、ならびにUTCを計算するために必要なうるう秒を含む。コンソール自体は、CTNパラメータを表示し設定するためのオペレータ・インターフェースを提供し、STP機能と通信するための機能を有する任意の要素である。
【0138】
本発明の一態様では、単一アクティブ階層1サーバは、ネットワーク用のクロック・ソースとして提供される。アクティブ階層1サーバの時刻機構は、任意の時刻に設定することができるが、一般に、UTCへのダイヤルアップなどの外部時間基準に設定される。その他のサーバは、ヌル構成として知られる未定義の階層1構成を有する場合、または1次タイム・サーバの階層1構成に一致する階層1構成を有する場合に、CTNに加入することができる。したがって、CTN内の同期正確度は、外部タイム・ソースの品質または階層1サーバの外部タイム・ソースの存在にさえ依存しない。これにより、CTN内のサーバが同じルート1次基準時間に同期することを保証する。
【0139】
本発明の他の一態様では、アクティブ階層1サーバで障害が発生した場合にアクティブ階層サーバとして引き継ぐことができるように、代替サーバが定義される。これにより、CTN内のサーバがアクティブ階層1サーバの障害にかかわらずタイミング・ネットワーク内で同期を維持または回復できるように、CTNに関する単一障害点が防止される。
【0140】
タイミング・ネットワークに関する追加情報は、「Server Time Protocol Messages And Methods」という名称の米国特許出願第60/887512号、「Channel Subsystem Server Time Protocol Commands」という名称の米国特許出願第60/887544号、「Method And System For EstablishingA Logical Path Between Servers In A Coordinated Timing Network」という名称の米国特許出願第60/887576号、「Facilitating Synchronization OfServers In A Coordinated Timing Network」という名称の米国特許出願第60/887584号、「Facilitating Recovery In A Coordinated Timing Network」という名称の米国特許出願第60/887586号、2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号、2006年7月26日に出願され、「Directly Obtaining By Application ProgramsInformation Usable In Determining Clock Accuracy」という名称の米国特許出願第11/460025号、「System And Method For TOD-Clock Steering」という名称の米国特許出願第11/223886号、「Synchronization Signal For TOD-Clock Steering Adjustment」という名称の米国特許出願第11/532168号、「Managing Data Access Via A LoopOnly If Changed Locking Facility」という名称の米国特許出願第11/468501号、「Clock Filter Dispersion」という名称の米国特許出願第11/223878号、「Method And System For Clock SkewAnd Offset Estimation」という名称の米国特許出願第11/223876号、「Use Of T4 Timestamps To CalculateClock Offset And Skew」という名称の米国特許出願第11/223577号、および「System And Method For CalibratingA TOD Clock」という名称の米国特許出願第11/223642号という特許出願に示されている。
【0141】
有利なことに、本発明の1つまたは複数の態様は、同期および正確度要件を満たすことができる高品質の計時情報の提供を可能にする。CTN内のシステムは、UTCなど、外部タイム・ソースに対し、あまり厳しくない同期正確度の要件により、厳重に同期したままになる。高価な専用タイミング・リンクまたは個別外部ボックスあるいはその両方の使用は不要である。さらに、各サーバが外部タイム・サーバに接続するためまたはGPSを備えるための要件は不要である。
【0142】
本明細書には1つまたは複数の例が提供されているが、これらは例に過ぎない。本発明の精神を逸脱せずに、多くの変形例が可能である。たとえば、本明細書に提供されている例以外の処理環境は、本発明の1つまたは複数の態様を含むか、その態様から恩恵を受けるか、あるいはその両方である可能性がある。さらに、この環境は、z/Architecture(商標)に基づく必要はないが、その代わりに、たとえば、IBM(商標)、Intel(商標)、サン・マイクロシステムズ社、その他によって提供される他のアーキテクチャに基づくものにすることができる。さらに、この環境は、例として、複数のプロセッサを含むか、区画化するか、または他のシステムに結合するか、あるいはこれらの組み合わせにすることができる。
【0143】
その上、様々な制御ブロックが記載されているが、これらの制御ブロックのそれぞれは、追加情報を含むか、より少ない情報を含むか、または異なる情報を含むか、あるいはこれらの組み合わせになる可能性がある。制御ブロック内の位置および制御ブロック内の各フィールドのサイズは、種々の環境について様々になる可能性がある。
【0144】
本明細書で使用する「入手する(obtaining)」という用語は、取り出すこと、受信すること、有すること、提供すること、提供されること、作成すること、開発することなどを含むが、これらに限定されない。
【0145】
本明細書の1つまたは複数の態様の諸機能は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの何らかの組み合わせで実現することができる。本発明の諸機能を実行するためにマシンによって実行可能な複数命令からなる少なくとも1つのプログラムを実施するマシンによって読み取り可能な少なくとも1つのプログラム記憶装置を提供することができる。
【0146】
本明細書に描写されている流れ図は例に過ぎない。本発明の精神を逸脱せずに、これらの流れ図またはそこに記載されているステップ(または操作)に対する多くの変形例が可能である。たとえば、これらのステップを異なる順序で実行するか、ステップを追加、削除、または変更することができる。これらの変形例はいずれも、請求された本発明の一部と見なされる。
【0147】
諸実施形態が本明細書に詳細に描写され記載されているが、本発明の精神を逸脱せずに、様々な変更、追加、置き換えなどが可能であることは当業者には明らかになることであり、したがって、これらは特許請求の範囲に定義された本発明の範囲内ものであると見なされる。
【技術分野】
【0001】
本発明は、一般に、処理装置のネットワーク内およびそれを越える時刻同期に関し、特に、協定タイミング・ネットワーク内のサーバが同じルート1次基準時間に同期できるようにする、協定タイミング・ネットワーク用の単一アクティブ1次タイム・サーバを有する階層1構成を定義することに関する。
【背景技術】
【0002】
パフォーマンスおよびデータ保全性のために、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるシスプレックス(Sysplex)など、共用データにアクセスするコンピューティング・システムは、システム間の最良な場合の通信時間より良好な正確度で時刻(TOD:time of day)機構の同期を維持できなければならない。現在、一例では、同期要件を満たすために、IBMシスプレックス・タイマ(商標)などのタイマが使用される。このタイマは、高価な専用タイミング・リンクと個別の外部ボックスを必要とする。IBM(商標)およびIBMシスプレックス・タイマ(商標)は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。
【0003】
ネットワーク・タイミング・プロトコル(NTP:Network Timing Protocol)などのネットワークは、時刻同期を提供するが、ハイエンド・システムの正確度要件を満たさない。NTPでは、すべてのサーバが同じ基準時間に同期することを保証するために、マイクロ秒レベルの正確度を提供する外部タイム・ソースに各サーバがアクセスできる必要がある。これは、このレベルの正確度を提供する外部タイム・サーバに接続する機能を備えていないシステムにとっては問題である。さらに、各システム上のGPSレシーバまたは同様の付属装置の要件は、メンテナンス、セキュリティ、および信頼性の理由から実行不可能なものと見なされる可能性がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願第11/468352号
【特許文献2】米国特許出願第60/887512号
【特許文献3】米国特許出願第60/887544号
【特許文献4】米国特許出願第60/887576号
【特許文献5】米国特許出願第60/887584号
【特許文献6】米国特許出願第60/887586号
【特許文献7】米国特許出願第11/460025号
【特許文献8】米国特許出願第11/223886号
【特許文献9】米国特許出願第11/532168号
【特許文献10】米国特許出願第11/468501号
【特許文献11】米国特許出願第11/223878号
【特許文献12】米国特許出願第11/223876号
【特許文献13】米国特許出願第11/223577号
【特許文献14】米国特許出願第11/223642号
【非特許文献】
【0005】
【非特許文献1】2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles of Operation」
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記に基づき、時刻同期の提供を促進する機能が必要である。一例では、タイミング・ネットワーク内のサーバが同じ1次基準時間を使用してそれぞれのクロックを同期させることを保証する、タイミング・ネットワーク内の単一アクティブ階層1サーバを指定する機能が必要である。
【課題を解決するための手段】
【0007】
タイミング・ネットワーク内の同期を促進するためのコンピュータ可読プログラム・コード・ロジックを有する少なくとも1つのコンピュータ使用可能媒体を含む装置(article of manufacture)の提供により、従来技術の短所は克服され、追加の利点が提供される。このコンピュータ可読プログラム・コード・ロジックは、実行されると、たとえば、タイミング・ネットワーク用の構成を定義するステップであって、その構成がタイミング・ネットワークの1つまたは複数の他のサーバ用のクロック・ソースとして使用される単一サーバを含むステップと、タイミング・ネットワークのサーバにその構成を提供して、1つまたは複数の他のサーバが単一サーバからタイミング情報を入手できるようにするステップとを実行する。
【0008】
本発明の1つまたは複数の態様に関連する方法およびシステムも本明細書に記載され、請求されている。
【0009】
追加の特徴および利点は本発明の技法により実現される。本発明のその他の諸実施形態および諸態様は、本明細書に詳細に記載され、請求された発明の一部と見なされる。
【0010】
本発明の1つまたは複数の態様は、本明細書の終わりの特許請求の範囲において、詳細に指摘され、例として明瞭に請求される。本発明の上記その他の目的、特徴、および利点は、添付図面に併せて取られた以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0011】
【図1】本発明の1つまたは複数の態様を取り入れるための混合協定タイミング・ネットワーク(mixed coordinated timing network)の一例を示す図である。
【図2】本発明の1つまたは複数の態様を取り入れるためのSTP専用ネットワークの一例を示す図である。
【図3】本発明の一態様による階層(stratum)1構成情報ブロックの一例を示す図である。
【図4】本発明の一態様による新規階層1構成情報ブロックの一例を示す図である。
【図5】本発明の一態様によるヌル構成の図表現である。
【図6】本発明の一態様による単一サーバ階層1構成の図表現である。
【図7】本発明の一態様による単一サーバ階層1構成の作成に関連するロジックの一実施形態を示す図である。
【図8】本発明の一態様によるデュアル・サーバ階層1構成の図表現である。
【図9】本発明の一態様によるデュアル・サーバ構成の作成に関連するロジックの一実施形態を示す図である。
【図10】本発明の一態様によるトライアッド(triad)構成の図表現である。
【図11】本発明の一態様によるトライアッド構成の作成に関連するロジックの一実施形態を示す図である。
【図12】本発明の一態様による階層1構成変更要求ブロックの一実施形態を示す図である。
【図13】本発明の一態様による階層1構成変更応答ブロックの一実施形態を示す図である。
【図14】本発明の一態様による構成変更通知要求ブロックの一実施形態を示す図である。
【図15】本発明の一態様による構成変更通知応答ブロックの一実施形態を示す図である。
【図16】本発明の一態様によるCTN ID変更要求ブロックの一実施形態を示す図である。
【図17】本発明の一態様によるCTN ID変更応答ブロックの一実施形態を示す図である。
【図18】本発明の一態様によるCTNパラメータ読み取り要求ブロックの一実施形態を示す図である。
【図19】本発明の一態様によるCTNパラメータ読み取り応答ブロックの一実施形態を示す図である。
【図20】本発明の一態様による故障中のアクティブ階層1サーバのリカバリの実行に関連するロジックの一実施形態を示す図である。
【図21】本発明の一態様によるデュアル・サーバ階層1構成リカバリ手順に関連するロジックの一実施形態を示す図である。
【図22】本発明の一態様によるトライアッド階層1構成リカバリ手順に関連するロジックの一実施形態を示す図である。
【図23】本発明の一態様によるコンソール支援リカバリに関連するロジックの一実施形態を示す図である。
【図24】本発明の一態様によるコンソール支援リカバリ結果構成の図表現である。
【図25】本発明の一態様によるトライアッド・リカバリの実行に関連するロジックの一実施形態を示す図である。
【図26】本発明の一態様によるアクティブ階層1チェック停止後の階層1引き継ぎ(takeover)の図表現である。
【図27】本発明の一態様によるアクティブ階層1へのリンクの喪失後の階層1サーバ引き継ぎの図表現である。
【図28】本発明の一態様による単一リンクの喪失−階層1引き継ぎなしの図表現である。
【図29】本発明の一態様によるアクティブ階層1引き継ぎの実行に関連するロジックの一実施形態を示す図である。
【図30】本発明の一態様によるアクティブ階層1引き渡し(surrender)の実行に関連するロジックの一実施形態を示す図である。
【図31】本発明の一態様によるサーバ状態要求要求ブロックの一実施形態を示す図である。
【図32】本発明の一態様によるサーバ状態要求応答ブロックの一実施形態を示す図である。
【図33】本発明の一態様によるサーバ状態書き込み要求ブロックの一実施形態を示す図である。
【図34】本発明の一態様によるサーバ状態書き込み応答ブロックの一実施形態を示す図である。
【図35】本発明の1つまたは複数の態様を取り入れ、使用するための処理環境の一実施形態を示す図である。
【図36】本発明の一態様による図35のメモリの追加詳細を示す図である。
【図37】本発明の1つまたは複数の態様を取り入れるためのコンピュータ・プログラム(computer program product)の一例を示す図である。
【発明を実施するための形態】
【0012】
本発明の一態様により、タイミング・ネットワーク内のサーバが同じ1次基準時間を使用してそれぞれの時刻機構を同期させることを保証する際に使用可能な単一アクティブ階層1サーバを含むタイミング・ネットワーク用の階層1構成を定義するための機能が提供される。したがって、ネットワーク内のサーバは同じルート1次基準時間に同期しており、同期正確度は階層1サーバにおける外部タイム・ソースの品質または外部タイム・ソースの存在に依存しない。
【0013】
本発明の他の一態様では、サーバの保全性を保証するために使用される他の情報とともにネットワークのサーバに提供される階層1構成情報ブロック内に階層1構成が維持される。ネットワーク内の各サーバは階層1サーバのアイデンティティを認識しているので、他の階層1サーバに同期していることを示すサーバはそのネットワークに加入することができない。
【0014】
本発明のさらに他の一態様では、ネットワークのアクティブ階層1サーバの障害を処理するためのリカバリ手順が提供される。
【0015】
階層1サーバを含むように様々なネットワークを構成することができるが、このようなネットワークの1つは協定タイミング・ネットワーク(CTN:Coordinated Timing Network)である。協定タイミング・ネットワークでは、複数の別個のコンピューティング・システムが時刻同期を維持して、協定タイミング・ネットワークを形成する。協定タイミング・ネットワーク内のシステムは、サーバ・タイム・プロトコル(STP:Server Time Protocol)というメッセージ・ベース・プロトコルを使用して、既存の高速データ・リンクによりシステム間で計時情報を受け渡す。これにより、各システムの時刻(TOD)機構を現代のハイエンド・コンピューティング・システムに必要な正確度で同期させることができる。このプロトコルはコンピューティング・システム内の技術を使用するので、技術が向上するにつれて同期正確度が高くなる。STP機能を提供するコンピューティング・システムは本明細書ではタイム・サーバまたはサーバという。
【0016】
1次タイム・サーバとしてCTNにおいて定義されたサーバは、CTN用の1次基準時間を提供する。CTN内の他のサーバからの情報に基づいてCST(CTN用の時刻(TOD)機構の推定値)を決定するCTN内のサーバは2次タイム・サーバという。1次タイム・サーバは外部タイム・ソースからその時刻を入手することができ、その外部タイム・ソースはCTN内の時刻機構を定義済み時間標準に同期させるための手段を提供する。
【0017】
同期状態にあるCTN内のサーバには、それと1次タイム・サーバとの間のサーバの数を指定する、階層レベルという値が割り当てられる。1次タイム・サーバは1という階層レベルで動作し、2次タイム・サーバは2以上の階層レベルで動作し、これは階層1までのタイミング経路内のサーバの数が増加するにつれて上昇する。一般に、階層レベルが上昇するにつれて、計時情報の品質が低下する。同期していないサーバには0という階層レベルが割り当てられる。
【0018】
STP機能は、STPメッセージを送信し、受信し、処理するために必要な手順を提供する。STPメッセージは、サーバ間の1つまたは複数の物理データ・リンクにより送信される。2つのサーバ間に確立されたデータ・リンクはSTP経路という。STP機能は、STP経路を確立し維持するための諸機能を提供する。
【0019】
STPメッセージは、メッセージ・コマンドとメッセージ応答とを含む。時間パラメータ交換(XTP:exchange time parameters)メッセージとSTP制御(STC:STP control)メッセージという2つのタイプのSTPメッセージがサポートされる。XTPメッセージは、CTN用のCSTを決定するために使用される計時情報を交換するために使用される。STP制御メッセージは、CTN内のサーバによって必要とされる様々なCTNパラメータを設定し変更するために使用される。
【0020】
CTNは、たとえば、2つのタイプの構成のうちの1つとして、すなわち、混合CTN構成またはSTP専用CTN構成のいずれかとして動作することができる。混合CTN構成では、サーバは、STPネットワークと外部時間基準(ETR:External Time Reference)ネットワークの両方の一部になるように構成される。混合CTN構成では、CTN内のサーバは同じ非ヌルETRネットワークIDを備えて構成され、タイマ(たとえば、IBMシスプレックス・タイマ(商標))はCTN用の1次時間基準を提供する。CTN内の少なくとも1つのサーバは、CTN内で同期を行えるようになる前にシスプレックス・タイマによって提供されたタイミング信号に合わせて進む予定である。シスプレックス・タイマに合わせて進まないサーバは2次タイム・サーバであり、STP信号を交換することによって同期を達成する。
【0021】
一例として、シスプレックス・タイマのタイミング信号に合わせて進む各サーバはタイム・プロトコル・パラメータを受信し、たとえば、CTNパラメータ更新手順を使用して、CTN内の2次タイム・サーバにその情報を伝搬する。この手順の一例は、Carlson他により2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号に記載されている。
【0022】
図1に関連して、混合CTN構成100の一例について説明する。混合CTN構成100は、たとえば、ローカル・エリア・ネットワーク(104)に結合されたサーバA(102)と、ローカル・エリア・ネットワーク(104)に結合されたサーバB(106)と、ローカル・エリア・ネットワーク(110)に結合されたサーバC(108)とを含む。各サーバは、たとえば、インターナショナル・ビジネス・マシーンズ社によって提供されるz/Architecture(商標)に基づく中央演算処理複合システムである。z/Architecture(商標)は米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。z/Architecture(商標)の一実施形態は、2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles of Operation」に記載されている。
【0023】
各ローカル・エリア・ネットワークは、ネットワーク内で時刻同期を提供する際に使用されるコンソール120に結合される。さらに、ローカル・エリア・ネットワーク104とローカル・エリア・ネットワーク110は、広域ネットワーク112を介して相互に結合される。
【0024】
サーバAおよびBは外部時間基準ネットワーク114に結合され、サーバBおよびCはSTPネットワーク116の一部になるように構成される。サーバBは階層1レベルであり、サーバCは階層2レベルである。STPリンク118は、サーバBのSTP機能をサーバCのSTP機能に結合するために使用される。
【0025】
STP専用CTNでは、CTN内のサーバはSTPネットワークの一部になるように構成され、ETRネットワークの一部になるように構成されるものは何もない。図2に関連して、STP専用ネットワーク150の一例について説明する。この例では、サーバA(152)およびサーバB(154)はLAN(156)に結合され、サーバC(158)はLAN(160)に結合される。サーバのそれぞれはSTP機能162を含み、各機能は1つまたは複数のSTPリンク164を介して相互に結合される。
【0026】
さらに、LAN156はコンソール170に結合され、LAN160はコンソール172に結合される。コンソール170は、テレフォン・タイム・サーバ(たとえば、ACTS:NIST自動コンピュータ・タイム・サービス)へのダイヤルアウトなどの外部タイム・ソース(ETS:external time source)174にさらに結合される。このネットワークには、ETRネットワークはまったく存在しない。サーバBは1という階層レベルを有し、サーバAおよびCは2という階層レベルを有する。
【0027】
STP専用ネットワークなどのネットワーク内でアクティブ階層1サーバとして動作する予定のサーバは、そのネットワーク用に定義された階層1構成の一部として指定される。階層1構成は、そのネットワークの各サーバで維持され、たとえば、そのネットワーク用に定義された構成のタイプを含む、そのネットワークの構成に関する情報を提供する。ネットワークは、たとえば、以下のものを含む様々なタイプの1つとして構成することができる。
a)ヌル構成 − ヌル構成では、階層1サーバは識別されない。そのサーバは、非ヌル階層1構成を有するサーバに接続するまで、非同期のままになる。階層レベル0にあるサーバの階層1構成は、たとえば、任意の他のサーバに接続されないときにヌル構成に等しくなり、後述する階層1構成情報ブロック内の単一CEC−CTNインジケータは0になる。
b)単一サーバ定義 − 単一サーバ定義では、階層1構成は、CTN用のアクティブ階層1サーバとして動作する単一1次階層1サーバを定義する。1次階層1サーバが失われると、新規階層1構成がそのコンソールから指定されるまで、CTN内の同期時刻が失われることになる。
単一サーバ階層1構成は、指定の階層1サーバがCTN内で唯一のサーバ(たとえば、コンピューティング電子複合システム(CEC)またはCPC)であり、他のサーバまたは追加のサーバはいずれもCTNの一部にならないという表示も含むことができる。この場合のCTNは、単一CEC CTNという。それが単一CEC CTNであることを階層1構成が示す場合、その構成は、パワーオン・リセット後のサーバの初期化状態のために有効な階層1構成である。それが単一CEC CTNであることを単一サーバ階層1構成が指定しない場合、その構成は、パワーオン・リセット後のサーバの初期化状態のために有効な階層1構成ではなく、階層1構成はヌル構成に設定される。
c)デュアル・サーバ構成 − デュアル・サーバ構成では、この構成は1次階層1サーバと代替階層1サーバとを含む。デュアル・サーバ構成を使用すると、CTN用のアクティブ階層1サーバの役割を代替サーバが引き継ぐためのメカニズムを提供する。代替階層1サーバは、CTN内の他のサーバに対して1次階層1サーバと同じ接続性を備えて構成されると、CTNの同期機能に対する妨害なしに、アクティブ階層1として引き継ぐことができる。CTN用のアクティブ階層1サーバとして動作している階層1サーバ(1次または代替)は、後述するように、CTN内の各サーバに維持される階層1構成情報ブロック内に示される。アクティブ階層1サーバではない階層1サーバは、非アクティブ階層1サーバとして定義される。
デュアル・サーバ構成内の非アクティブ階層1サーバは、アクティブ階層1障害を検出すると、アクティブ階層1サーバの役割を引き継ぐ。以下のうちの1つが発生すると、デュアル・サーバ構成内でアクティブ階層1障害が検出される。
●コンソール支援リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示されるか、または
●階層1システム・チェック信号が認識される。
デュアル・サーバ構成内の非アクティブ階層1サーバは、その非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失うと、コンソール支援リカバリを実行する。
d)トライアッド構成 − トライアッド構成では、階層1構成は、1次階層1サーバと、代替階層1サーバと、アービタ・サーバ(arbiter server)とを含む。トライアッド構成の定義は、デュアル・サーバ構成用に定義されたように、CTN用のアクティブ階層1サーバの役割を代替サーバが引き継ぐためのメカニズムを提供する。さらに、1次階層1サーバと代替階層1サーバの両方への接続性を備えて構成されると、アービタ・サーバの定義は、非アクティブ階層1サーバとアービタ・サーバが相互に通信して、アクティブ階層1サーバ障害が発生していることと、非アクティブ階層1サーバがアクティブ階層1サーバとして引き継がなければならないことを判断するためのメカニズムを提供する。
トライアッド構成内の非アクティブ階層1サーバは、アクティブ階層1障害を認識すると、アクティブ階層1の役割を引き継ぐ。非アクティブ階層1サーバは、以下のいずれかが発生すると、アクティブ階層1障害を認識する。
●トライアッド・リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示される。
●コンソール支援リカバリ手順が実行され、その手順により、アクティブ階層1障害が発生したことが示される。
非アクティブ階層1サーバは、以下の条件が発生すると、トライアッド・リカバリ手順を実行する。
●非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタへの接続が可能である。
●非アクティブ階層1サーバがアクティブ階層1通信タイムアウトを認識し、アービタへの接続が可能である。
非アクティブ階層1サーバは、その非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタに接続されていないときに、コンソール支援リカバリを実行する。
非アクティブ階層1サーバは、CTN用のアクティブ階層1サーバの役割を引き継ぐためにアクティブ階層1引き継ぎ手順を実行する。
トライアッド構成内のアクティブ階層1サーバは、非アクティブ階層1サーバとアービタ・サーバの両方への接続を失ったことを検出すると、アクティブ階層1サーバの役割を断念する。アクティブ階層1サーバは、CTN用のアクティブ階層1サーバの役割を断念するためにアクティブ階層1引き渡し手順を実行する。
【0028】
一例では、階層1構成情報は、階層1構成情報ブロック(SCIB:stratum-1 configuration information block)という制御ブロック内に維持され、そのブロックはネットワークの各サーバ上に保管されるかまたは各サーバにとってアクセス可能なものである。SCIBは、ネットワーク用の階層1構成を識別するために使用される。
【0029】
図3に関連して、階層1構成情報ブロック200の一実施形態について説明する。階層1構成情報ブロック200は、たとえば、以下のフィールドを含む。
a)1次階層1ノード記述子202: このフィールドは、後述する構成情報ブロックの構成タイプ・フィールドに単一サーバ定義、デュアル・サーバ定義、またはトライアッド定義が指定されたときに有効であり、有効である場合、1次階層1ノード記述子のノード記述子を含む。
b)代替階層1ノード記述子204: このフィールドは、構成タイプ・フィールドにデュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、有効である場合、代替階層1サーバ・ノード記述子のノード記述子を含む。
c)アービタ・ノード記述子206: このフィールドは、構成タイプ・フィールドにトライアッド定義が指定されたときに有効であり、アービタ・ノード記述子のノード記述子を含む。
d)階層1構成タイムスタンプ208: このフィールドは、このブロック内の階層1構成情報がサーバで最新(current)のものになった時間を示すタイムスタンプを含む。
e)構成タイプ(CType)210: このフィールドは、以下に定義されるように、階層1構成のタイプを指定する。
●ヌル定義: いずれのノード記述子も有効ではない。
●単一サーバ定義: 1次階層1ノード記述子のみが有効である。
●デュアル・サーバ定義: 1次階層1ノード記述子および代替階層1ノード記述子が有効である。
●トライアッド定義: 1次階層1ノード記述子、代替階層1ノード記述子、およびアービタ・ノード記述子が有効である。
f)アクティブ階層1(A)212: このフィールドは、デュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、1次階層1サーバまたは代替階層1サーバがアクティブ階層1サーバであるかどうかを示す。
g)単一CEC CTN(X)214: このフィールドは、構成タイプが単一サーバ定義を指定したときに有効であり、一例として、1である場合、CTNが単一CEC CTNであることを示す。このフィールドがたとえば0である場合、CTNは単一CEC CTNではない。
h)リカバリ構成(R)216: このフィールドは、このブロックによって記述された階層1構成が階層1リカバリ・アクションまたはコンソール・コマンドの結果であるかどうかを示す。
i)階層1最大短期スキュー・レート(skew rate)変更218: このフィールドは、任意の指定の期間(たとえば、60秒)に発生する可能性のある、階層1サーバの物理的発振器のスキュー・レートの最大可能変更を指定する値を含む。このフィールドは、ベース・ステアリング・レート(base-steering rate)と同じフォーマットの値を形成するために使用される。
動的発振器切り替えを実行できないマシンでは、この値は、指定の期間(たとえば、60秒)に発生する可能性のある最大階層1発振器周波数ドリフトに等しい。動的発振器切り替えを実行できるマシンでは、この値は、その発振器について指定された最大範囲のスキュー許容度に設定される。たとえば、発振器スキュー許容度が公称周波数に対して±2ppmに指定された動的発振器切り替えをサポートするマシンでは、この値は4ppmという等価量に設定される。システムTOD機構を駆動するために使用される物理的発振器がある発振器から他の発振器に切り替えられると、動的発振器切り替えが行われる。
【0030】
上記の制御ブロックに加えて、新規階層1構成情報ブロック(NSCIB:new stratum-1 configuration information block)という他の制御ブロックを使用して、CTN用の新規階層1構成を指定することができる。さらに、これは、階層1構成変更と同時に行われる予定のCTN IDの更新を指定するために使用することができる。
【0031】
一例では、あるサーバのNSCIBは、そのサーバがSTP専用CTN構成の一部になるように構成されたときまたはNSCIB内のSTPマイグレーション・ビットが1に等しい場合に意味を持つ。
【0032】
図4に関連して、新規階層1構成情報ブロック300の一実施形態について説明する。新規階層1構成情報ブロック300は、たとえば、以下のフィールドを含む。
a)1次階層1ノード記述子302: このフィールドは、構成タイプ・フィールドに単一サーバ定義、デュアル・サーバ定義、またはトライアッド定義が指定されたときに有効であり、新規1次階層1ノード記述子のノード記述子を含む。
b)代替階層1ノード記述子304: このフィールドは、構成タイプ・フィールドにデュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、新規代替階層1ノード記述子のノード記述子を含む。
c)アービタ・ノード記述子306: このフィールドは、構成タイプ・フィールドにトライアッド定義が指定されたときに有効であり、新規アービタ・ノード記述子のノード記述子を含む。
d)階層1構成更新時間308: サーバがSTP専用CTNの一部になるように構成されたときに、このフィールドは、このブロック内の値がCTNについて最新のものになる時期を示すタイムスタンプを含む。
e)構成タイプ(CType)310: このフィールドは、以下に定義されるように、階層1構成のタイプを指定する。
●ヌル定義: いずれのノード記述子も有効ではない。
●単一サーバ定義: 1次階層1ノード記述子のみが有効である。
●デュアル・サーバ定義: 1次階層1ノード記述子および代替階層1ノード記述子が有効である。
●トライアッド定義: 1次階層1ノード記述子、代替階層1ノード記述子、およびアービタ・ノード記述子が有効である。
f)アクティブ階層1(A)312: このフィールドは、デュアル・サーバ定義またはトライアッド定義が指定されたときに有効であり、1次階層1サーバまたは代替階層1サーバがアクティブ階層1サーバであるかどうかを示す。
g)CTN ID変更(C)314: サーバがSTP専用CTNの一部になるように構成されたときに、このフィールドは、CTN ID変更が要求されているかどうか、ならびにCTN IDが有効であるかどうかを示す。この変更は階層1構成更新時間に行われる。
CTN IDは、CTNを識別するために使用される値である。CTN IDは、たとえば、STPネットワークIDとETRネットワーク番号とを含む。STPネットワークIDは、このサーバ用に構成されたSTPネットワークがある場合にそのネットワークを識別するものである。ETRネットワーク番号は、このサーバ用に構成されたETRネットワークがある場合にそのネットワークを識別するものである。
h)STPマイグレーション構成(S)316: このフィールドは、たとえば、このサーバがSTP専用CTNとして構成されない場合に意味を持つ。このフィールドは、このサーバについてSTP専用マイグレーション階層1構成が定義されているかどうかを示す。このフィールドがたとえば1である場合、NSCIBは、このサーバのCTN IDがSTP専用構成に変更されたときに最新のものになる予定の階層1構成を含む。このフィールドがたとえば0である場合、このサーバについてSTP専用マイグレーション階層1構成は定義されない。
i)単一CEC CTN(X)318: このフィールドは、構成タイプが単一サーバ定義を指定したときに有効であり、一例として、1である場合、CTNが単一CEC CTNであることを示す。このフィールドがたとえば0である場合、CTNは単一CEC CTNではない。
j)リカバリ構成(R)320: このフィールドは、このブロックによって記述された階層1構成が階層1リカバリ・アクションまたはコンソール・コマンドの結果であるかどうかを示す。
k)階層1最大短期スキュー・レート変更322: このフィールドは、任意の指定の期間(たとえば、60秒)に発生する可能性のある、新規階層1サーバの物理的発振器のスキュー・レートの最大可能変更を指定する値を含む。
l)新規CTN ID320: このフィールドは、CTN ID変更インジケータがCTN ID変更要求および有効なCTN IDを指定したときに有効である。このフィールドは新規CTN IDを指定するものである。
【0033】
CTN IDの更新を指定するために新規階層1構成情報ブロックが使用されない場合、このブロックは、一例として、CTN ID変更ビットまたは新規CTN IDを含まない可能性がある。
【0034】
階層1構成は、マシンの初期パワーオン時にサーバにおいてヌル構成に初期化される。ヌル構成の一例は図5に示されている。描写されているように、ヌル構成400は複数のサーバ402を含み、これらのサーバは1つまたは複数のSTPリンク404を介して相互に結合される。この例では、各サーバの階層レベルは0に等しく、したがって、アクティブ階層1サーバはまったく存在しない。しかし、CTN IDは特定の値に設定され、その値は、この例では、後述するようにローカルCTN ID変更コンソール・コマンドを使用して設定される。
【0035】
ヌル階層1構成を有するCTNは、階層1が指定されておらず、そのCTN用の基準時間がまったくないので、同期させることができない。CTN用の階層1構成は、後述する階層1構成変更コマンドなどのコマンドを介して非ヌル構成からヌル構成に設定を戻すことができる。
【0036】
ヌル構成から、単一サーバ階層1を作成することができる。単一サーバ階層1構成は、単一階層1サーバを指定するものであって、代替階層1サーバまたはアービタ・サーバはまったく指定しない。単一サーバ階層1構成の一例は図6に描写されている。図示の通り、単一サーバ階層1構成500は、1つまたは複数のSTPリンク504を介して相互に結合された複数のサーバ502を含み、そのサーバのうちの1つ、たとえば、サーバAはアクティブ1次階層1サーバとして選択される。したがって、サーバAは1次S1という表示を有し、その階層レベルは1に等しい。他のサーバは、2または3など、1より大きい階層値を有することに留意されたい。
【0037】
図7に関連して、単一サーバ階層1構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ600で、コンソールは、階層1構成変更コマンドなどのコマンドをサーバAに発行し、1次階層1サーバとしてサーバAを有する単一サーバ階層1構成を指定する。
【0038】
その後、ステップ602で、サーバAは、新規階層1構成が最新のものであることを示す。一例では、サーバAは、構成変更通知コマンドをコンソールに発行して、この表示を提供する。
【0039】
その次に、ステップ604で、ネットワークの他のサーバは、クロック・ソースの可用性を認識し、CTNに関する現行階層1構成および時間制御パラメータを入手する。一例では、これは、サーバがCTNパラメータ読み取りSTP制御メッセージをクロック・ソースに発行して、CTNに関する現行階層1構成および時間制御パラメータを入手することによって実行される。
【0040】
さらに、ステップ606で、サーバは、構成変更マシン・チェックを発行し、一例では、新規階層1構成を示す。また、ステップ608で、サーバは、たとえば、タイミング・アラート外部割り込みを発行することにより、タイミング状況変更(使用可能クロック・ソース、同期)も示す。これで、ヌル構成からの単一サーバ階層1構成の作成に関連する処理を終了する。
【0041】
上記に加えて、既存の非ヌル構成からデュアル・サーバ構成を作成することができる。デュアル・サーバ階層1構成は、1次階層1サーバおよび代替階層1サーバを指定するものであり、そのうちの一方がCTN用のアクティブ階層1サーバとして動作することができる。階層1サーバとして動作する予定のサーバは、階層1構成が作成されたときにコンソールによって指定され、任意の時期にコンソールによって変更することができる。
【0042】
デュアル・サーバ階層1構成の一例は図8に描写されている。図示の通り、サーバA(700)は、1次として示され、1に等しい階層レベルを有する。サーバC(702)は、代替として示され、2に等しい階層レベルを有する。サーバB(704)およびサーバD(706)は2に等しい階層レベルを有し、サーバE(708)は3に等しい階層レベルを有する。
【0043】
図9に関連して、デュアル・サーバ構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ800で、1次およびアクティブとしてサーバAを有し、代替としてサーバCを有する、デュアル・サーバ階層構成が指定される。一例では、これは、コンソールが階層1構成変更コマンドをサーバAに発行することによって実行される。
【0044】
その後、照会802で、階層1構成変更コマンド内の強制変更ビットが0であるかどうかについて判断が行われる。それが0である場合、ステップ804で、サーバAは、それがサーバCに直接接続されていることを検証する。一例では、サーバCとメッセージを交換することによって、この接続が検証される。照会806で、サーバAがサーバCに直接接続されていることが検証によって示された場合、ステップ808で、サーバAがCTN内の階層1構成更新をスケジュールし、ステップ809で、更新が行われる。さらに、ステップ810で、新規階層1構成が最新のものになったときに、サーバAが一例として構成変更通知コマンドをコンソールに発行する。また、ステップ812で、ネットワークのサーバは、新規階層1構成が最新のものになったことに応答して、構成変更マシン・チェックも発行する。
【0045】
照会802に戻り、強制変更ビットが1に設定された場合、処理はステップ808を続行し、そこでサーバAはCTN内の階層1構成更新をスケジュールする。
【0046】
もう一度、照会806に戻り、サーバAがサーバCに接続されていない場合、ステップ814でコマンドが拒否され、処理が完了する。
【0047】
既存の非ヌル構成からデュアル構成を作成することに加えて、既存の非ヌル構成からトライアッド構成を作成することもできる。トライアッド階層1構成は、1次階層1サーバ、代替階層1サーバ、およびアービタ・サーバを指定する。指定の1次または代替のいずれか一方がCTN用のアクティブ階層1サーバとして動作することができる。階層1構成が作成されたときにコンソールによって指定された階層1サーバとして動作する予定のサーバは、任意の時点でコンソールによって変更することができる。アービタ・サーバは、アクティブ階層1サーバがもはやCTNの一部ではない時期の決定を支援するために使用される。
【0048】
トライアッド構成の一例は図10に描写されている。図示の通り、サーバA(900)は1次階層1サーバであり、1という階層レベルを有する。さらに、サーバC(902)は代替階層1サーバであり、2という階層レベルを有し、サーバB(904)はアービタであり、これも2という階層レベルを有する。さらに、サーバD(906)は2という階層レベルを有し、サーバE(908)は3という階層レベルを有する。
【0049】
図11に関連して、トライアッド構成の作成に関連するロジックの一実施形態について説明する。最初に、ステップ1000で、コンソールは、たとえば、階層1構成変更コマンドをサーバAに発行し、サーバAがアクティブ1次階層1サーバであり、サーバCが代替階層1サーバであり、サーバBがアービタであるトライアッド構成を指定する。
【0050】
その後、照会1002で、階層1構成変更コマンド内の強制変更ビットが0に設定されているかどうかについて判断が行われる。それが0に設定された場合、ステップ1004で、サーバAは、それがサーバCおよびBに直接接続されていることを検証する。照会1006で、サーバAがサーバCおよびBに接続されている場合、ステップ1008で、サーバAがCTN内の階層1構成更新をスケジュールし、ステップ1009で、更新が行われる。また、ステップ1010で、サーバAは、新規階層1構成が最新のものになったことに応答して、構成変更通知コマンドをコンソールに発行する。その後、ステップ1012で、新規階層1構成が最新のものになったときに、サーバは構成変更マシン・チェックを発行する。
【0051】
照会1002に戻り、変更ビットが1に等しい場合、接続性検証は実行されず、処理はステップ1008を続行し、そこでサーバAはCTN内の階層1構成更新をスケジュールする。
【0052】
さらに、照会1006で、接続性検証が失敗した場合、ステップ1014でコマンドが拒否され、処理が完了する。
【0053】
上述したように、非ヌル構成を作成する際に、様々なコマンドが使用される。このようなコマンドの1つは階層1構成変更コマンドであり、これはCTN用の階層1構成に対する変更を指定するために使用される。このコマンド要求は、階層1構成を変更する方法を指定する新規階層1構成情報ブロックを含む。
【0054】
図12に関連して、階層1構成変更コマンド要求ブロック1100の一実施形態について説明する。一例では、階層1構成変更コマンド要求ブロックは以下のフィールドを含む。
a)長さフィールド1102: このフィールドは、この要求ブロックの長さを示す。
b)コマンド・コード1104: このフィールドは、階層1構成変更コマンドを指定する。
c)コマンド・トランザクション番号1106: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1108: このフィールドは、そのコマンドのターゲットになるCTNのCTN IDを含む。
e)強制変更(F)1110: このフィールドは、そのコマンドについて構成検証を実行すべきかどうかを示す。
f)新規階層1構成情報ブロック1112: このフィールドは、そのCTN用の新規階層1構成情報ブロックを含む。
【0055】
図13に関連して、階層1構成変更コマンド用の応答ブロックの一実施形態について説明する。階層1構成変更応答ブロック1150は、たとえば、以下のフィールドを含む。
a)長さ1152: このフィールドは、コマンド応答ブロックの長さを含む。
b)応答コード1154: このフィールドは、そのコマンド用の応答コードを含む。
c)コマンド・トランザクション番号1156: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0056】
動作時に、コマンドがCTN用の新規アクティブ階層1サーバを指定すると、NSCIB内にアクティブ階層1サーバとして指定されたサーバにコマンドが発行される。それがそのサーバに発行されない場合、グローバル・コマンド拒否応答コードが返される。
【0057】
その更新がCTN内で効力を発した後、新規アクティブ階層1サーバは非同期的に構成変更通知コマンドを発行する。そのコマンドが混合CTN内のサーバに発行されると、NSCIB内のSTPマイグレーション(S)フィールドが1に設定される。このフィールドは、CTN構成が混合CTNからSTP専用構成に変更されたときに階層1構成が効力を発する予定であることを示す。
【0058】
コマンド要求ブロックは、そのコマンドについて構成検証を実行すべきかどうかを示すためのフィールドを含む。構成検証なしにそのコマンドを実行する予定であることを示すために、強制変更フィールドは、たとえば、1に設定される。そのコマンドを受け入れる前に以下の構成検証チェックを実行する予定であることを示すために、強制変更フィールドは、たとえば、0に設定される。
非ヌル構成が指定された場合、受信側サーバが階層0サーバではないことを検証する。階層0サーバをアクティブ階層1サーバに設定するために、強制変更フィールドは1に設定されるはずである。
デュアル構成が指定された場合、受信側サーバは以下のことを検証する。
受信側サーバが1次階層1サーバとして指定された場合、これは、それが代替階層1サーバに接続されることを保証する。
受信側サーバが代替階層1サーバとして指定された場合、これは、それが1次階層1サーバに接続されることを保証する。
トライアッド構成が指定された場合、受信側サーバは以下のことを検証する。
受信側サーバが1次階層1サーバとして指定された場合、これは、それが代替階層1サーバおよびアービタ・サーバに接続されることを保証する。
受信側サーバが代替階層1サーバとして指定された場合、これは、それが1次階層1サーバおよびアービタ・サーバに接続されることを保証する。
検証チェックが失敗した場合、そのコマンドは受け入れられず、応答コードが報告される。
【0059】
上述したもう1つのコマンドは、構成変更通知(CCN:configuration change notification)コマンドである。構成変更通知コマンドは、CTN内の特定の構成変更をコンソールに通知するために使用される。このコマンドは、その構成がCTN内で効力を発した後にネットワークのサーバによって発行される。このコマンドは、以下の構成パラメータ変更、例として、階層1構成変更、階層1構成変更およびCTN ID変更、またはCTN ID変更、あるいはこれらの組み合わせについて発行される。
【0060】
構成変更は、階層1構成変更コマンドまたはグローバルCTN ID変更コマンドの結果として、あるいはCTN用のアクティブ階層1サーバの変更を引き起こすCTNリカバリ・アクションの結果として行われる。
【0061】
図14に関連して、構成変更通知コマンド用のコマンド要求ブロック1200の一例について説明する。一実施形態では、コマンド要求ブロック1200は以下のものを含む。
a)長さ1202: このフィールドは、コマンド・ブロックの長さを含む。
b)コマンド・コード1204: このフィールドは、構成変更通知コマンドの指定を含む。
c)コマンド・トランザクション番号1206: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1208: このフィールドは、そのコマンドを送信しているサーバのCTN IDを含む。
e)変更コード: このフィールドは、報告されている構成変更を指定するコードを含む。このフィールドは、たとえば、以下のものを示す。
●階層1構成変更: 階層1構成は、現行階層1構成ブロックによって示された通りに変更された。
●階層1構成変更およびCTN ID変更: 階層1構成およびCTN IDは、現行階層1構成ブロックおよびCTN IDフィールドによって示された通りに変更された。
●CTN ID専用変更: CTN IDは、CTN IDフィールドによって示された通りに変更された。
f)理由コード: このフィールドは、階層1構成変更が報告されている理由を指定するコードを含む。このフィールドは、階層1構成変更が変更コードに示されているときに有効であり、例として、以下のうちの1つを示す。
●階層1構成変更: 階層1構成変更は、階層1構成変更コマンドの結果である。
●リカバリ: 階層1構成変更は、STP機能リカバリ・アクションの結果である。
g)現行階層1構成情報ブロック: このフィールドは、そのサーバ用の現行階層1構成情報ブロックを含む。
【0062】
図15に関連して、構成変更通知コマンド用のコマンド応答ブロック1250の一実施形態について説明する。一例では、コマンド応答ブロック1250は、以下のものを含む。
a)長さ1252: このフィールドは、コマンド応答ブロック長を指定する。
b)応答コード1254: このフィールドは、そのコマンド用の応答コードを含む。
c)コマンド・トランザクション番号1256: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0063】
実行できるもう1つのコマンドはCTN ID変更コマンドであり、これは、ローカルまたはグローバルCTN ID変更を実行するために使用される。このコマンドは、CTNのSTPネットワークIDコンポーネント、ETRネットワークIDコンポーネント、またはCTN IDの両方のコンポーネントを変更するために使用することができる。要求ブロック内の有効性インジケータは、CTN IDのどちらのコンポーネントを変更する予定であるかを示す。要求ブロック内のグローバル・コマンド・パラメータは、そのコマンドがグローバル・コマンドであるかローカル・コマンドであるかを指定する。
【0064】
図16に関連して、CTN ID変更コマンド用のコマンド要求ブロック1300の一例について説明する。CTN ID変更要求ブロック1300は、たとえば、以下のものを含む。
a)長さ1302: このフィールドは、コマンド・ブロック長を含む。
b)コマンド・コード1304: このフィールドは、CTN ID変更コマンドを指定する。
c)コマンド・トランザクション番号1306: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)CTN ID1307: このフィールドは、有効である場合、そのコマンドのターゲットになるCTNのCTN IDを含む。CTN IDは、グローバルCTN更新インジケータがたとえば1であるときに有効であり、受信側サーバの現行CTN IDと一致する予定であり、そうではない場合、CTN ID不一致エラーが認識される。グローバルCTN更新インジケータがたとえば0である場合、このフィールドは有効ではなく、無視される。
e)グローバルCTN更新(G)1308: このフィールドは、コマンドがグローバル更新であるかローカル更新であるかを示す。コマンドがローカル更新である場合、それは受信側サーバでのみ実行される。コマンドがグローバル・コマンドである場合、そのコマンドはアクティブ階層1サーバに発行される予定である。
f)新規STPネットワークID有効(SV)1310: このフィールドは、新規STPネットワークIDフィールドが有効であるかどうかを示す。それが有効ではない場合、CTN IDのSTPネットワークID部分はそのコマンドによって変更されない。
g)新規ETRネットワークID有効(EV)1312: このフィールドは、新規ETRネットワークIDフィールドが有効であるかどうかを示す。それが有効ではない場合、CTN IDのETRネットワークID部分はそのコマンドによって変更されない。
h)新規STPネットワークID1314: SVインジケータが有効である場合、このフィールドは新規STPネットワークIDを含む。
i)新規ETRネットワークID1316: EVインジケータが有効である場合、このフィールドは新規ETRネットワークIDを含む。
j)ETRポート0マニュアル・ポート状態1318: EVインジケータが有効である場合、このフィールドは、ETRポート0の意図された状態を指定するマニュアル・ポート状態コードを含む。
k)ETRポート1マニュアル・ポート状態1320: EVインジケータが有効である場合、このフィールドは、ETRポート1の意図された状態を指定するマニュアル・ポート状態コードを含む。
【0065】
図17に関連して、CTN ID変更コマンド用のコマンド応答ブロック1350の一実施形態について説明する。一例では、CTN ID変更コマンド応答ブロック13500は、たとえば、以下のものを含む。
a)長さ1352: このフィールドは、コマンド応答ブロック長を指定する値を含む。
b)応答コード1354: このフィールドは、コマンド用の応答コードを含む。
c)コマンド・トランザクション番号1356: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
【0066】
一例では、CTN ID変更がローカルCTN更新として発行される場合、STP機能は直ちに更新を実行し、構成変更通知コマンドはコンソールに発行されない。さらに、CTN ID変更がグローバルCTN更新として発行される場合、その更新が最新のものになったときに、アクティブ階層1サーバが構成変更通知コマンドをコンソールに発行する。
【0067】
CTN ID変更がグローバルCTN更新として発行される場合、STP機能は、CTN内のサーバでCTN変更操作をスケジュールするためにCTNパラメータ更新手順を実行する。スケジュールされた更新時間は、スケジュールされた更新時間の前にCTN内のサーバが更新情報を受信することを保証する値に設定される。指定された応答コードは、その操作がCTN内で正常にスケジュールされたことを示す。
【0068】
更新がサーバでスケジュールされる場合、そのサーバは、スケジュールされたパラメータ更新情報をコンソール・ディスク記憶装置上に保管する。さらに、パラメータ更新がサーバで最新のものになると、サーバは更新されたCTNパラメータをコンソール・ディスク記憶装置上に保管する。
【0069】
一例として、その情報を保管するために、CTNパラメータ保存コマンドというコマンドがサーバによって発行される。このコマンドは、たとえば、長さフィールドおよびコマンド・コード・フィールドならびにコマンド・トランザクション番号と、CIIBと、STP機能が使用可能になっているかどうかを示すSTP機能使用可能インジケータと、サーバがローカル・クロック・サーバとして指定されているかどうかを指定するローカル・クロック・ソース・インジケータと、保存コマンドの時点でアクティブである発振器を識別するアクティブ発振器インジケータと、NCIIBと、SCIBと、階層1サーバとして動作しているときのサーバ用のベース・ステアリング・レートを含む階層1ベースのステアリング・レートと、NSCIBと、PCSIBと、TCPIBと、LSOIBと、保存コマンドが発行された時間を示す保存タイムスタンプと、発振器識別子0と、算出発振器スキュー0と、発振器識別子1と、算出発振器スキュー1の各フィールドを有する要求ブロックを含む。図19に関連して、これらのフィールドの多くについて以下に説明する。このコマンド用のコマンド応答ブロックは、たとえば、長さと、応答コードと、コマンド・トランザクション番号とを含む。
【0070】
ローカルCTN ID変更は、ローカル・コマンドとして発行されたCTN ID変更コンソール・コマンドの結果としてサーバで行われる。CTN ID変更コンソール・コマンドを受信したサーバは、一例では、サーバでCTN IDに対して指定の変更を直ちに(一例では)行い、サーバ上のすべての確立されたSTP経路を未初期化状態にし、次に、STP長に関する初期化を実行するためのイニシアチブ(initiative)を確立する。CTN ID変更が行われると、構成変更マシン・チェック条件が生成される。
【0071】
グローバルCTN ID更新は、新規CTN IDブロックに指定されたCTN ID更新時間にサーバで行われる。サーバは、指定の更新時間にそのCTN IDに対する変更を行う。変更後、サーバは、同期チェックしきい値(sync check threshold)に等しい期間の間、新規CTN ID値と前のCTN ID値との不一致の結果として発生するCTN ID不一致エラーを認識しない。新規CTN ID値と旧CTN ID値との不一致以外の不一致の結果として発生したCTN ID不一致エラーは、この期間の間、無視されない。CTN ID変更が行われると、構成変更マシン・チェック条件が生成される。
【0072】
アクティブ階層1サーバは、グローバルCTN ID更新の結果として行われるCTN ID更新を行った後、構成変更通知コンソール・コマンドを発行する。
【0073】
上述のコマンドに加えて、STPコンソール・インターフェースは、サーバからSTPタイミングおよび構成情報を読み取るためのコマンドを含む。読み取りコマンドで提供される情報は、コンソール・ディスプレイを介して使用するために入手可能になる。図18に関連して、CTNパラメータ読み取りコマンド用のコマンド要求ブロック1400の一例について説明する。一例では、CTNパラメータ読み取りコマンド要求ブロック1400は、たとえば、以下のものを含む。
a)長さ1402: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード1404: このフィールドは、CTNパラメータ読み取りコマンドを指定する値を含む。
c)コマンド・トランザクション番号1406: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
【0074】
図19に関連して、CTNパラメータ読み取りコマンド用のコマンド応答ブロック1450の一実施形態について説明する。一例では、応答ブロック1450は以下のものを含む。
a)長さ1452: このフィールドは、コマンド応答ブロック長を示すために使用される。
b)応答コード1454: このフィールドは、コマンド用の応答コードを含む。
c)コマンド・トランザクション番号1456: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供される値を含む。
d)CTN ID情報ブロック1458: このフィールドは、サーバ用のCTN ID情報ブロック(CIIB)を含む。
一実施形態では、CTN ID情報ブロックは、サーバ用のCTN IDと、非ヌルETRネットワークにおけるETRポート0および1の状態を指定するコードとを含む。
e)最大STPバージョン1460: このフィールドは、サーバによってサポートされる最大STPバージョン番号を示す値を含む。
f)アクティブSTPバージョン1462: このフィールドは、サーバで現在アクティブであるSTPバージョン番号を示す値を含む。
g)最大タイミング階層レベル1464: このフィールドは、サーバを設定でき、サーバが同期状態になることができる最大階層レベルを指定する値を含む。最大タイミング階層レベルより大きい階層レベルを有するサーバは、非同期タイミング状態ならびに使用不能クロック・ソース状態にある。
h)最大階層レベル1466: このフィールドは、CTN内の任意のサーバについて設定できる最大階層レベルを指定する値を含む。
i)ローカル・クロック・ソース(L)1468: このフィールドは、サーバがローカル・クロック・サーバとして指定されているかどうかを指定する。
j)STPクロック・ソース状態(C)1470: このフィールドは、サーバに関するクロック・ソース状態を指定する。
k)アクティブ発振器(A)1472: このフィールドは、STP機能によってアクティブであると見なされる発振器を識別する。
l)タイミング・モード(TMD)1474: このフィールドは、サーバのタイミング・モードを指定する。
m)STPタイミング状態(TST)1476: このフィールドは、サーバのタイミング状態を指定する。
n)CTNタイプ(CTNT)1478: このフィールドは、サーバで構成されるタイミング・ネットワークのタイプを指定するコードを含む。タイプ例としては以下のものを含む。
●定義済みCTNなし: サーバは、CTNへの接続用に構成されていない。
●STP専用タイミング・ネットワーク: サーバは、STPネットワークのみを含むCTNへの接続用に構成されている。
●混合タイミング・ネットワーク: サーバは、STPネットワークとETRネットワークの両方を含むCTNへの接続用に構成されている。
o)階層1480: このフィールドは、サーバの階層レベルを示す値を含む。
p)新規CTN ID情報ブロック(NCIIB)1482: このフィールドは、サーバ用の新規CIIBを含む。新規CTN ID更新時間は、UTC(協定世界時)フォーマットで保管される。
一例では、新規CTN ID情報ブロックは、新規CTN IDと、ETRポート0マニュアル・ポート状態と、ETRポート1マニュアル・ポート状態と、たとえば、新規CTN IDが最新のものになる予定である時間を示すタイムスタンプである新規CTN ID更新時間とを含む。
q)現行階層1構成情報ブロック(SCIB)1484: このフィールドは、サーバ用の現行階層1構成ブロックを含む。
r)新規階層1構成情報ブロック(NSCIB)1486: このフィールドは、サーバ用の新規階層1構成ブロックを含む。
s)PRT(1次基準時間)訂正ステアリング情報ブロック(PCSIB)1488: このフィールドは、サーバ用のPCSIBを含む。
一例では、PRT訂正ステアリング情報ブロックは以下のものを含む。
1.PRT訂正ステアリング・レート開始時刻: このフィールドは、PRT訂正ステアリングを開始する予定の時刻を示すタイムスタンプを含む。
2.PRTソース識別子: このフィールドは1次基準時間ソース識別子を含む。
3.コンソール分散(consoledispersion): このフィールドは、提供されたコンソール分散を含む。
4.UTC分散: このフィールドは、提供されたUTC分散を含む。
5.PRTオフセット: このフィールドは、提供された1次基準時間オフセットを含む。
6.PRTタイムスタンプ: このフィールドは、提供されたPRTタイムスタンプに対応するタイムスタンプを含む。
t)時間帯制御パラメータ情報ブロック(TCPIB)1490: このフィールドは、サーバ用のTCPIBを含む。新規TZIB更新時間および新規DSTオフセット更新時間は、UTCタイムスタンプ・フォーマットに変換される。
一例では、時間帯制御パラメータ情報ブロックは、たとえば、以下のものを含む。
1.アクティブ現地時間コード: このフィールドは、現地時間設定がCTNについて効力があるかどうかを識別し、効力がある場合にその値を入手する方法を識別する値を含む。例としては以下のものを含む。
●指定現地時間なし。時間帯オフセットとDSTオフセットはどちらも0である。
●自動更新付きATZIB有効 − ATZIBは有効であり、CTN用の現地時間設定を指定する。TCPIB内のアクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効であり、ATZIB内のDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムに基づいて設定される。TTOフィールドは有効ではない。
●自動更新なしATZIB有効 − ATZIBは有効であり、CTN用の時間帯オフセットを指定する。ATZIBに指定されたDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムはいずれも使用されない。アクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効である。DSTオフセット設定コンソール・コマンドは、新規DSTO更新時間を変更するため、ならびに更新が最新のものになったときに現地時間が標準時間またはDSTになる予定であるかどうかを指定するために使用される。TTOフィールドは有効ではない。
●TTOフィールド有効 − TTOフィールドは有効であり、CTNの現地時間オフセットを指定し、時間帯オフセットと任意の夏時間オフセットの両方を含む。ATZIBフィールド、アクティブDSTオフセット・フィールド、新規DSTオフセット・フィールド、および新規DSTO更新時間フィールドは有効ではない。
2.新規現地時間コード: このフィールドは、新規TZIBがCTNについて保留中であるかどうかを識別する値を含む。例としては以下のものを含む。
●指定新規現地時間なし。
●自動更新付きNTZIB有効 − NTZIBフィールドおよびNTZIB更新時間フィールドは有効であり、CTN用の新規時間設定を指定する。新規TZIBは、新規TZIB更新時間に最新のものになる。アクティブDSTオフセット、新規DSTオフセット、および新規DSTO更新時間は、NTZIBが最新のものになったときに、NTZIBで提供されるDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムに基づいて設定される。
●自動更新なしNTZIB有効 − NTZIBフィールドおよびNTZIB更新時間フィールドは有効であり、新規TZIB更新時間に最新のものになる予定の時間帯オフセットおよびDSTオフセットを指定する。TZIBに指定されたDSTオン・アルゴリズムおよびDSTオフ・アルゴリズムは使用されない。
3.新規TZIB DST(D): このフィールドは、新規現地時間コードが、自動DST更新なしTZIB有効を表す値に等しいときに有効であり、NTZIBが最新のものになったときにCTN用の現地時間を夏時間に設定するべきかどうかまたはNTZIBが最新のものになったときにその現地時間を標準時間に設定するべきかどうかを示す。
4.合計時間オフセット: このフィールドは、有効である場合、サーバで効力があるDSTオフセットおよび時間帯オフセットの結果としてSTP機能で効力がある合計時間オフセットを指定する。このフィールドは、アクティブ時間コードがTTOフィールドを指定したときに有効である。
5.アクティブ時間帯情報ブロック(ATZIB): このフィールドは、サーバで現在効力がある時間帯情報ブロック(TZIB)を含む。
一例では、TZIBは以下のものを含む。
aa)時間帯アルゴリズム番号: このフィールドは、このエントリ用の時間帯アルゴリズム番号を識別する。
bb)時間帯オフセット: このフィールドは、UTCからの時間帯の差を示す値を含む。
cc)夏時間(DST)オフセット: このフィールドは、夏時間が効力があるときに適用される予定のDSTオフセットを示す値を含む。DSTオフセット値がCTNについてアクティブになる予定の時刻および日付は、DSTオン・アルゴリズムによって指定される。サーバ用のDSTオフセットが0に設定される予定の時刻および日付は、DSTオフ・アルゴリズムによって指定される。
dd)標準時間名: このフィールドは、DSTオフセットが効力がないときの時間帯を識別する。
ee)夏時間名: このフィールドは、DSTオフセットが効力があるときの時間帯を識別する。
ff)DSTオン時間アルゴリズム: このフィールドは、DSTオフセットが適用される予定の日付および時刻を計算するために使用すべきアルゴリズムを指定する。このオフセットは、自動DSTスケジューリングがそのサーバについて効力があるときに自動的に適用される。
gg)DSTオフ時間アルゴリズム: このフィールドは、DSTオフセットが除去される予定の日付および時刻を計算するために使用すべきアルゴリズムを指定する。このオフセットは、自動DSTスケジューリングがそのサーバについて効力があるときに自動的に除去される。
6.新規時間帯情報ブロック(NTZIB): このフィールドは、有効である場合、NTZIB更新時間によって指定された時刻に始まる、ATZIBを置き換える予定の時間帯情報ブロックを含む。
7.アクティブ夏時間オフセット(DSTO): このフィールドは、サーバで現在効力があるDSTオフセットを示す値を含む。
8.新規夏時間オフセット(NDSTO): このフィールドは、新規DSTO更新タイムスタンプによって指定された時刻に始まる、アクティブDSTOを置き換える予定のオフセットを指定する値を含む。
9.新規TZIB更新時間: このフィールドは、新規TZIBが効力を発する予定の時刻を指定するタイムスタンプを含む。
10.新規DSTO時間: このフィールドは、新規DSTオフセットが効力を発する予定の時刻を指定するタイムスタンプを含む。
u)うるう秒オフセット情報ブロック(LSOIB)1492: このフィールドは、サーバ用のLSOIBを含む。新規LSO更新時間は、UTCタイムスタンプ・フォーマットに変換される。
一例では、うるう秒オフセット情報ブロックは、たとえば、以下のものを含む。
1.アクティブうるう秒オフセット提供(P): このフィールドは、たとえば、1に設定されると、アクティブうるう秒オフセットがオペレータによって提供された値を含むことを示す。このフィールドが、たとえば、0に設定されると、アクティブうるう秒オフセットは、マシン初期設定値を含み、オペレータによって設定されていない。
2.アクティブうるう秒オフセット(LSO): このフィールドは、STP機能で現在効力があるうるう秒の数を示す値を含む。
3.新規うるう秒オフセット(LSO): このフィールドは、LSO更新時間によって指定された時刻にアクティブになる予定のうるう秒の数を示す値を含む。
4.新規うるう秒オフセット(LSO)更新時間: このフィールドは、新規うるう秒オフセットが効力を発する予定の時刻を指定するタイムスタンプを含む。
v)発振器識別子0(1494): このフィールドは、発振器0用の識別子を含む。
w)算出発振器スキュー0(COS0)1496: このフィールドは、サーバにインストールされた発振器0用の公称周波数に対する算出スキューを指定する値を含む。
x)発振器識別子1(1498): このフィールドは、発振器1用の識別子を含む。
y)算出発振器スキュー1(COS1)1499: このフィールドは、サーバにインストールされた発振器1用の公称周波数に対する算出スキューを指定する値を含む。
【0075】
上記の情報は、本発明の一態様では、協定タイミング・ネットワークのサーバの保全性を保証するために使用される。この情報は、ネットワークのサーバに伝搬される。ネットワークのサーバは、構成を入手し、構成を理解し、同じ構成に従う。一実施形態では、サーバは、階層1構成を把握せずに事前指定量の時間(たとえば、フリーホイール期間)より長く動作することはできない。サーバがネットワークに加入したいと希望する場合、そのサーバはこの情報を入手し使用する。この情報は、CTNの状態ならびに追加情報を提供する。
【0076】
本発明の他の一態様により、アクティブ階層1サーバで障害が発生した場合にアクティブ階層1サーバとして引き継ぐことができるように、協定タイミング・ネットワーク用の階層1構成の一部として代替サーバを構成するための機能が提供される。これにより、CTN内のサーバがアクティブ階層1サーバの障害にかかわらずタイミング・ネットワーク内で同期を維持または獲得できるように、CTNに関する単一障害点(single point of failure)が防止される。
【0077】
上述したように、1次および代替階層1サーバを指定する階層1構成をCTNについて定義することができる。1次サーバは、通常、CTN用のアクティブ階層1サーバとして動作し、バックアップとして動作する代替サーバは非アクティブ階層1サーバという。非アクティブ階層1サーバは、アクティブ階層1サーバの障害を検出すると、それがCTNのアクティブ階層1サーバとして引き継いだことを(たとえば、CTNパラメータ更新手順を介して)CTNに通知し、それ自体の時刻機構に基づいてCTNを駆動する。故障中の階層1サーバは、階層0に設定され、リカバリ後にネットワークに再加入することができるが、この実施形態では階層1サーバとして再加入することはできない。さらに、一実施形態では、1次サーバが階層2サーバとしてCTNに再加入する場合、そのサーバはバックアップ階層1サーバの役割を引き受ける。コンソールは、必要であれば、CTN用のアクティブ階層1サーバとしてその役割を再開するよう1次サーバに指示することができる。
【0078】
図20に関連して、アクティブ階層1サーバにおける障害の検出およびリカバリの実行に関連するロジックの一実施形態について説明する。最初に、ステップ1500で、非アクティブ階層1サーバはアクティブ階層1サーバにおける障害を検出する。たとえば、階層1システム・チェック信号(SCS)の受信、アクティブ階層1サーバがチェック停止状態またはパワーオフ状態に入ったと判断するためのコンソールとの通信を含むコンソール支援リカバリ、第3のサーバであるアービタ・サーバを使用して、アクティブ階層1サーバを投票で排除する(vote out)トライアッド・リカバリを含む、アクティブ階層1サーバにおける障害を検出するための様々なメカニズムが存在する。これらの障害検出メカニズムについては、さらに詳細に後述する。
【0079】
ステップ1502で、アクティブ階層1障害を検出したことに応答して、非アクティブ階層1サーバは引き継ぎ手順を実行する。さらに、ステップ1504で、アクティブ階層1サーバがそれが障害状態に入ったことを検出した場合、ステップ1506で、引き渡し手順を実行し、CTN用のアクティブ階層1サーバとしてのその役割を断念する。
【0080】
一例として、非アクティブ階層1サーバによって実行されるステップ1500および1502は、アクティブ階層1サーバによって実行されるステップ1504および1506と実質的に並行して実行することができる。
【0081】
障害検出およびエラー・リカバリに関する詳細については、構成のタイプに基づく手順に関連して以下に説明する。たとえば、階層1サーバ・リカバリは、CTNのシステム1構成に代替階層1サーバが指定されている場合にのみ実行される。代替サーバは、デュアル・サーバ構成とトライアッド構成のいずれにも指定される。したがって、デュアル・サーバ階層1構成リカバリおよびトライアッド階層1構成リカバリの両方のためにリカバリ手順が提供されるが、それぞれのリカバリについては以下に説明する。
【0082】
デュアル・サーバ階層1構成リカバリでは、デュアル・サーバ構成内の非アクティブ階層1サーバは、アクティブ階層1障害を検出したことに応答して、アクティブ階層1サーバの役割を引き継ぐ。図21に関連して、デュアル・サーバ階層1構成リカバリに関連するロジックの一実施形態について説明する。最初に、ステップ1600で、非アクティブ階層1サーバはアクティブ階層1サーバにおける障害を検出する。アクティブ階層1障害は、たとえば、コンソール支援リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合、または階層1システム・チェック信号が認識された場合にデュアル・サーバ構成で検出されるが、それぞれの場合については以下に説明する。
【0083】
アクティブ階層1サーバ障害を検出したことに応答して、ステップ1602で、非アクティブ階層1サーバはアクティブ階層1引き継ぎ手順を実行し、CTN用のアクティブ階層1サーバの役割を引き継ぐ。これで、デュアル・サーバ階層1構成リカバリの処理を終了する。
【0084】
デュアル・サーバ階層1構成リカバリに加えて、トライアッド階層1構成リカバリが提供される。図22に関連して、トライアッド階層1構成リカバリに関連するロジックの一実施形態について説明する。最初に、ステップ1700で、トライアッド構成内の非アクティブ階層1サーバはアクティブ階層1障害を認識する。例として、非アクティブ階層1サーバは、トライアッド・リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合、またはコンソール支援リカバリ手順が実行され、アクティブ階層1障害が発生したことを示した場合に、アクティブ階層1障害を認識する。
【0085】
アクティブ階層1障害を検出したことに応答して、ステップ1702で、非アクティブ階層1サーバはアクティブ階層1引き継ぎ手順を実行し、CTNのアクティブ階層1サーバの役割を引き継ぐ。さらに、ステップ1704で、非アクティブ階層1サーバおよびアービタ・サーバの両方への接続を失ったことを検出したことに応答して、アクティブ階層1サーバはアクティブ階層1サーバの役割を断念する。アクティブ階層1サーバは後述するアクティブ階層1引き渡し手順を実行し、CTNのアクティブ階層1サーバの役割を断念する。
【0086】
その上、ステップ1706で、たとえば、非アクティブ階層1サーバがアクティブ階層1サーバへの接続を失い、アービタへの接続が可能である場合、または非アクティブ階層1サーバがアクティブ階層1通信タイムアウトを認識し、アービタへの接続が可能である場合、あるいはその両方の場合に、非アクティブ階層1サーバはトライアッド・リカバリ手順を実行する。アクティブ階層1通信タイムアウトは、たとえば、CTN用のフリーホイール間隔満了の2秒前に検出され、これにより、CTN内で同期チェック条件が検出される前に階層1引き継ぎを行うことができる。フリーホイール間隔に関する詳細は、Carlson他により2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号に記載されている。
【0087】
一実施形態では、照会1707で、トライアッド・リカバリが失敗した場合、ステップ1708で、トライアッド構成内の非アクティブ階層1サーバは、図21に関連して説明したデュアル・サーバ・リカバリを実行する。しかし、トライアッド・リカバリが成功した場合、デュアル・サーバ・リカバリは迂回される。これで、トライアッド階層1構成リカバリの処理を終了する。
【0088】
リカバリ中に実行される様々な手順に関する詳細については、さらに詳細に後述する。
【0089】
たとえば、アクティブ階層1サーバにおける障害を検出するためのメカニズムの1つは、非アクティブ階層1サーバで階層1システム・チェック信号(SCS)を受信することである。この階層1システム・チェック信号は、デュアル・サーバCTN構成内の非アクティブ階層1サーバに対し、CTN用のアクティブ階層1サーバとして動作し続けることを妨げるような状態にアクティブ階層1サーバが入ったことを示す。
【0090】
非アクティブ階層1サーバは、アクティブ階層1サーバが非アクティブ階層1サーバへのSTP接続性を終了したことを検出するときにSCSを認識する。非アクティブ階層1は、アクティブ階層1サーバに関連するSTP経路グループ内の最後の経路上でオフライン信号を受信するときに、アクティブ階層1サーバがSTP接続性を終了したことを検出する。
【0091】
アクティブ階層1サーバは、非アクティブ階層1サーバへのすべての接続性を終了するときに、それがSCSを発行したことを認識する。アクティブ階層1サーバは、非アクティブ階層1サーバに関連するSTP経路グループ内の最後の経路上でオフライン信号を送信するときに、非アクティブ階層1サーバへのすべてのSTP接続性が終了されたことを考慮する。
【0092】
障害を検出するためのもう1つのメカニズムはコンソール支援リカバリ手順であり、これは、アクティブ階層1サーバの状態を判断するためにデュアル・サーバ構成またはトライアッド構成のいずれかの非アクティブ階層1サーバによって開始される。この手順は、コンソールによって提供された情報を使用して、アクティブ階層1障害条件が存在するかどうかを判断する。
【0093】
図23に関連して、コンソール支援リカバリ手順に関連するロジックの一実施形態について説明する。最初に、ステップ1800で、非アクティブ階層1サーバがサーバ状態を要求する。特に、非アクティブ階層1サーバは、コマンド要求ブロック内のノード記述子フィールドがアクティブ階層1サーバのノード記述子に等しいSTP生成サーバ状態要求コンソール・コマンドを発行する。コンソールがこの要求を受信したことに応答して、ステップ1802で、コンソールは、アクティブ階層1サーバの状態を判断するためにアクティブ階層1サーバと通信しようと試みる。
【0094】
アクティブ階層1サーバの状態を判断しようと試みた後、ステップ1804で、コンソールは、要求ブロック内の状態コードがアクティブ階層1サーバの最も良く知られた状態に設定されたサーバ状態書き込みコンソール・コマンドを非アクティブ階層1サーバに発行する。ステップ1806で、非アクティブ階層1サーバは、その階層1サーバがチェック停止状態またはパワーオフ状態にあることを示すサーバ状態書き込みコンソール・コマンドを受信した場合、アクティブ階層1条件を認識する。
【0095】
図24に描写された構成に関連して、コンソール支援リカバリの一例に関連する詳細について説明する。一例として、デュアル・サーバ構成では、アクティブ階層1サーバに対する付加サーバ通信エラーを検出したときに、非アクティブ階層1サーバによってコンソール支援リカバリが実行される。以下の例では、アクティブ階層1サーバはチェック状態に入っている。図24の構成に関するコンソール支援リカバリ中に以下のアクションが実行される。
1.サーバD(1850)はサーバA(1852)への接続の喪失を検出する。
2.サーバDは、サーバ状態要求コマンドをコンソールに発行し、サーバAの状態を要求する。
3.コンソールは、その動作状態を判断するよう、サーバAに照会する。
4.コンソールは、サーバAが動作可能ではない(チェック停止またはパワーオフ)か、または動作可能状態が不明であることを示すサーバ状態書き込みをサーバDに発行する。
5.サーバAが動作可能であるかまたはその状態が不明である場合、サーバDはサーバ状態要求コマンドを繰り返す。
6.サーバAの状態が動作可能ではない場合、サーバDはCTNパラメータ更新手順を実行し、それ自体をアクティブ階層1サーバとして設定するよう新規階層1構成をスケジュールする。
一例では、協定タイミング・ネットワーク・パラメータ更新手順はタイミング・ネットワーク内で同時にCTNパラメータを更新する。一例として、この手順は、変更するための1つまたは複数のタイミング・パラメータを選択することと、変更すべきパラメータならびに変更が行われる予定の時期を含む情報応答パケットを構築することを含む。その後、そのパケットはネットワーク内の他のサーバにブロードキャストされる。受信側サーバでは、クロック・ソースとの通信が失われたかどうかが判断される。これは、典型的には、クロック・ソースとして使用されるネットワーク内のノードからタイミング・メッセージを定期的に受信することによって達成される。通信喪失の持続が長すぎたと判断された場合(これは、そのネットワークについて定刻より進んでいると定義され、一例として、サーバのクロック・ソースのクロックに対するサーバのクロックの最大ドリフト・レートの関数である)、受信側サーバはそのタイミング・パラメータを無効であると宣言する。続行するために、サーバは新規タイミング・パラメータを取得する。それが長すぎなかった場合、タイミング・パラメータは依然として有効であり、そのパラメータはネットワーク内のすべてのサーバにおいて推奨された将来の時点で更新される。
7.階層1構成変更が効力を発すると、サーバDは構成変更通知をコンソールに発行する。
8.サーバC(1854)は階層3に変化し、サーバF(1856)は階層2に変化する。
9.サーバCおよびFに関する階層1構成変更および階層レベル変更を報告するために、ネットワークのすべてのサーバで構成変更マシン・チェックが生成される。
【0096】
実行されるもう1つのリカバリ手順はトライアッド・リカバリ手順である。トライアッド・リカバリ手順は、階層1障害が発生したかどうかを判断するためにトライアッド構成内の非アクティブ階層1サーバによって実行される。
【0097】
図25に関連して、トライアッド・リカバリ手順に関連するロジックの一実施形態について説明する。最初に、ステップ1900で、非アクティブ階層1サーバは引き継ぎモード状態に入る。さらに、ステップ1902で、アービタ引き継ぎモード設定メッセージ・コマンドがアービタ・サーバに発行される。アービタ引き継ぎモード設定操作は、たとえば、アービタを引き継ぎモードにするために、代替階層1サーバによりアービタ・サーバへのメッセージを介して発行される。受信側サーバは、アービタ引き継ぎ状態フラグおよび応答ブロックを返す。メッセージ・コマンド・データ・フィールドでは、アクティブ階層1通信タイムアウト・フラグは以下のように設定される。すなわち、サーバがアクティブ階層サーバへの接続が可能ではない場合、フラグはたとえば0に設定され、サーバがアクティブ階層サーバへの接続が可能であり、アクティブ階層1通信が認識された場合、フラグはたとえば1に設定される。
【0098】
アービタ引き継ぎモード設定メッセージ・コマンドに対する応答が1に等しい引き継ぎ状態フラグを有する場合、非アクティブ階層1サーバはアクティブ階層1障害を認識し、アービタ引き継ぎモード設定メッセージ・コマンドに対する応答が0に等しい引き継ぎ状態フラグを有する場合、非アクティブ階層1サーバはアクティブ階層1障害を認識せず、以下のように実行する。すなわち、その応答が1に等しいアクティブ階層1通信タイムアウト・フラグを有する場合、サーバは引き継ぎモードを終了し、その応答が0に等しいアクティブ階層1通信タイムアウト・フラグを有する場合、非アクティブ階層1は引き継ぎモードのままになる。
【0099】
非アクティブ階層1サーバは、以下のいずれかが発生したときに、引き継ぎモードを離れる。
●0に等しい引き継ぎ状態フラグと、1に等しい通信タイムアウト・フラグとを含む、アービタ引き継ぎ設定メッセージ応答を受信する。
●アービタ引き継ぎモード・リセット・コマンドをアービタに発行する。アービタ引き継ぎモード・リセット操作は、引き継ぎモードからアービタを取り出すために代替階層1サーバによってアービタ・サーバに発行される。この操作は、メッセージを介してアービタ・サーバに転送される。
●アクティブ階層1引き継ぎ手順を実行する。
【0100】
非アクティブ階層1サーバは、引き継ぎモードにある間にアクティブ階層1サーバから確立されたSTP経路メッセージ・コマンドを受信した場合、アービタ引き継ぎモード・リセット・コマンドをアービタに発行し、アクティブ階層1サーバへの経路上でSTP経路初期化を実行するためのイニシアチブを確立する。
【0101】
アービタ・サーバは非アクティブ階層1サーバからアービタ引き継ぎモード設定メッセージ・コマンドを受信すると、アービタ引き継ぎモードに入る。アービタ・サーバは、以下のいずれかが発生したときに、アービタ引き継ぎモードを離れる。
●0に等しい引き継ぎ状態フラグと、1に等しい通信タイムアウト・フラグとを含む応答により、アービタがアービタ引き継ぎ設定メッセージ・コマンドに応答する。
●アービタが非アクティブ階層1サーバからのアービタ引き継ぎモード・リセット・コマンドを受け入れる。
●アービタが階層1構成更新を受信する。
【0102】
アービタ引き継ぎモードにある間に、アービタは、引き継ぎ保留状態または引き継ぎアクティブ状態というアービタ引き継ぎ状態のうちの1つになる。このアービタ引き継ぎ状態は、アービタ引き継ぎモード設定コマンドに対する応答に示される。
【0103】
アービタは、アービタ引き継ぎモードに入り、以下の条件がいずれも存在するときに、引き継ぎ保留状態に入る。すなわち、アービタがアクティブ階層1サーバに接続されていることと、アクティブ階層1通信タイムアウトがアービタ内に存在しないことである。
【0104】
引き継ぎ保留状態は、非アクティブ階層1サーバがアクティブ階層1引き継ぎを実行できないことを示す。アービタは、それが引き継ぎアクティブ状態に入ったときまたはアービタがアービタ引き継ぎモードを離れたときに、引き継ぎ保留状態を離れる。
【0105】
アービタは、以下の状況の下で引き継ぎアクティブ状態に入る。
●アービタがアービタ引き継ぎモードに入り、以下の条件のいずれかが存在する場合。すなわち、アクティブ階層1サーバがアービタに接続されていないこと、またはアクティブ階層1サーバがアービタに接続されており、アクティブ階層1通信タイムアウト条件がアービタで認識されたこと。
●アービタが引き継ぎ保留状態にあり、アクティブ階層1サーバが接続状態を離れたか、またはアクティブ階層1通信タイムアウトが認識された場合。
【0106】
引き継ぎアクティブ状態は、それがアクティブ階層1引き継ぎを実行できることを非アクティブ階層1サーバに示すものである。アービタがアービタ引き継ぎ設定コマンドに応答した後に引き継ぎアクティブ状態に入った場合、アービタは非アクティブ階層1サーバにアービタ引き継ぎアクティブ・コマンドを発行し(すなわち、メッセージを送信し)、それが引き継ぎ保留状態から引き継ぎアクティブ状態に遷移したことを示す。
【0107】
アービタが引き継ぎアクティブ状態に入ると、アクティブ階層1サーバ用の経路グループ内の残りの経路はいずれも、通信エラーを示す未初期化状態に入る。引き継ぎアクティブ状態にある間に、アービタは、アクティブ階層1サーバからのSTP経路確立(ESP)メッセージ・コマンドに対し、引き継ぎアクティブ状態応答コードで応答する。
【0108】
アービタは、アービタ引き継ぎモードを離れると、引き継ぎ保留状態を離れる。
【0109】
図26に関連して、トライアッド構成内の階層1リカバリの一例について説明する。
1.サーバ1(1950)はチェック停止状態に入る。
2.サーバ2(1952)はサーバ1への接続の喪失を検出する。
3.サーバ2は引き継ぎモード設定制御コマンドをアービタ・サーバに発行する。
4.アービタは、以下のように引き継ぎモード設定コマンドに対する応答として引き継ぎモードに入る。
●アービタは、サーバ1への接続が可能ではない場合、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができることを示す引き継ぎアクティブ状態に入ったと応答する。引き継ぎアクティブ状態にあるときに、アービタ・サーバはアクティブ階層1サーバにより経路を確立できないようにする。
●アービタは、サーバ1への接続が可能ではない場合、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができないことを示す引き継ぎ保留状態に入ったと応答する。アービタは、引き継ぎ保留状態にある間にサーバ1への接続を失った場合、アービタ引き継ぎ状態アクティブ通知をサーバ2に発行する。
5.アービタは、引き継ぎモード設定コマンドまたはサーバ2へのアービタ引き継ぎ状態アクティブ通知コマンドのいずれかにより、それが引き継ぎアクティブ状態にあることを示す。
6.サーバ2は、CTNパラメータ更新手順を実行し、それ自体をアクティブ階層1として設定する。
7.階層1構成変更が最新ものになったときに、サーバ2は構成変更通知をコンソールに発行する。
8.階層1構成変更を報告するために、ネットワークのすべてのサーバで構成変更マシン・チェックが生成される。
【0110】
もう1つの例として、図27に関連して、アクティブS1へのリンクの喪失後の階層1サーバ引き継ぎのためのリカバリ手順について説明する。
1.図27に関連して、サーバ2(1972)およびアービタ(1974)がサーバ1(1976)への接続の喪失を検出することが示されている。
2.サーバ2は、引き継ぎモード設定制御コマンドをアービタ・サーバに発行する。
3.アービタは、引き継ぎモード設定コマンドへの応答またはサーバ2へのアービタ引き継ぎ状態アクティブ通知コマンドのいずれかにより、それが引き継ぎアクティブ状態にあることを示し、それが引き継ぎを許可することを示す。
4.サーバ2は、CTNパラメータ更新手順を実行し、それ自体をアクティブ階層1として設定する。
5.階層1構成変更が最新ものになったときに、サーバ2は構成変更通知をコンソールに発行する。
6.サーバ1は、サーバ2および3への接続の喪失を検出し、引き渡し手順を実行する。そのサーバは、サーバBへの接続の結果として、階層3に降下する。
7.階層1構成変更ならびにサーバ1が階層3にあることを報告するために、ネットワークのすべてのサーバで構成変更マシン・チェック割り込み要求が生成される。
【0111】
以下の例では、階層1引き継ぎは実行されない。図28に関連して、これについて説明する。この例では、以下のようになる。
1.サーバ2(1980)は、サーバ1(1982)への接続の喪失を検出する。
2.サーバ2は、引き継ぎモード設定制御コマンドをアービタ・サーバ(1984)に発行する。
3.アービタは、引き継ぎモード設定コマンドへの応答としてそれが引き継ぎ保留状態にあることを示し、非アクティブ階層1サーバがアクティブ階層1サーバの役割を引き継ぐことができないことを示す。
4.サーバ2は、リカバリを実行せず、階層3に降下する。
5.リンクが復元された場合、サーバ2は、引き継ぎモード・リセット・コマンドをアービタに発行する。
6.サーバ2は、階層レベル変更を報告するために構成変更マシン・チェック要求を生成する。
【0112】
デュアル階層1リカバリ(図21)およびトライアッド階層1リカバリ(図22)のいずれでも、アクティブ階層1障害を認識したことに応答して、非アクティブ階層1サーバによってアクティブ階層1引き継ぎ手順が実行される。この手順の結果、非アクティブ階層1サーバはCTN用のアクティブ階層1サーバの役割を引き継ぐことになる。
【0113】
図29に関連して、アクティブ階層1引き継ぎに関連するロジックの一実施形態について説明する。最初に、ステップ2000で、アクティブ階層1サーバ用の経路グループ内のすべての残りの経路は未初期化状態になり、URCは通信エラーを示す。
【0114】
さらに、ステップ2002で、サーバはその階層レベルを1に設定し、ステップ2004で、サーバおよびコンソールの階層1構成情報ブロックが変更される。一例では、そのサーバをアクティブ階層1サーバとして示すようにアクティブ・ビットが変更され、階層1最大短期スキュー・レート変更フィールドがそのサーバ用の値に設定され、階層1構成タイムスタンプが現行時間に設定され、他のフィールドが未変更になるように、SCIBが変更される。
【0115】
上記に加えて、ステップ2006で、サーバはCTNパラメータ更新手順を実行し、CTN用の階層1構成情報ブロックを更新されたSCIB内の値に変更する。階層1構成更新時間および新規階層1構成情報ブロックはSCIB内の階層1構成タイムスタンプに設定される。これで、アクティブ階層1引き継ぎを終了する。
【0116】
実行されるさらにもう1つの手順はアクティブ階層1引き渡し手順であり、これは、アクティブ階層1サーバ障害状態に入ったことを認識したときにアクティブ階層1サーバによりデュアル・サーバ構成またはトライアッド構成で実行される。この手順の結果、アクティブ階層1サーバはCTN用のアクティブ階層1サーバの役割を断念する。
【0117】
図30に関連して、アクティブ階層1引き渡し手順に関連するロジックの一実施形態について説明する。一例では、ステップ2100で、アクティブ階層1サーバにおける非アクティブ階層1およびアービタ・サーバ用の経路および経路グループが未初期化状態に設定され、URCは初期化が完了していないことを示す。さらに、ステップ2102で、アクティブ階層1サーバはその階層レベルを0に設定し、2次サーバになる。ステップ2104で、2次サーバとしての前のアクティブ階層1サーバがその階層1構成をヌル構成に設定する。さらに、ステップ2106で、このサーバはそのリンクを介して潜在的クロック・ソースを突き止めようと試みる。これで、引き渡しプロセスを完了する。
【0118】
上述したように、サーバ状態要求コマンドは、要求ブロック内のノード記述子によって指定されたサーバの動作状況を要求するために使用される。指定のサーバの状況は、サーバ状態書き込みコマンドを使用して、コンソールによって非同期的に提供される。図31に関連して、サーバ状態要求コマンド用のコマンド要求ブロックの一実施形態について説明する。
【0119】
サーバ状態要求要求ブロック2200は、たとえば、以下のものを含む。
a)長さ2202: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード2204: このフィールドはサーバ状態読み取りコマンドを指定する。
c)コマンド・トランザクション番号2206: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)ノード記述子2208: このフィールドは、状況が要求されているサーバのノード記述子を含む。
【0120】
図32に関連して、サーバ状態要求コマンド用のコマンド応答ブロック2250の一実施形態について説明する。応答ブロック2250は、たとえば、以下のものを含む。
a)長さ2252: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)応答コード2254: このフィールドはコマンド用の応答コードを含む。
c)コマンド・トランザクション番号2256: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供された値を含む。
【0121】
サーバ状態書き込みコマンドは、要求ブロックに指定されたサーバの動作状況を提供する。このコマンドは、サーバ状態要求コマンドを受け入れた後でコンソールによって発行される。図33に関連して、サーバ状態書き込みコマンド用のコマンド要求ブロックの一実施形態について説明する。一例では、サーバ状態書き込み要求ブロック2300は以下のものを含む。
a)長さ2302: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)コマンド・コード2304: このフィールドは、サーバ状態書き込みコマンドを指定する値を含む。
c)コマンド・トランザクション番号2306: このフィールドは、発行されているコマンドに関連する値を含む。コマンド・トランザクション番号は、そのコマンド用の応答ブロックで返される。
d)状態コード2308: このフィールドは、要求ブロック内のノード記述子によって指定されたサーバの状態を示す値を含む。状態としては、たとえば、以下のものを含む。
●サーバは動作可能である。
●サーバ状態は不明である。
●サーバはチェック停止状態にある。
●サーバはパワーオフされている。
e)ノード記述子2310: このフィールドは、状況が報告されているサーバのノード記述子を含む。
【0122】
図34に関連して、サーバ状態書き込みコマンド用のコマンド応答ブロックの一実施形態について説明する。一例では、サーバ状態書き込み応答ブロック2350は以下のものを含む。
a)長さ2352: このフィールドは、コマンド・ブロック長を指定する値を含む。
b)応答コード2354: このフィールドはコマンド用の応答コードを含む。
c)コマンド・トランザクション番号2356: このフィールドは、コマンド要求ブロックのコマンド・トランザクション番号フィールドで提供された値を含む。
【0123】
一実施形態では、本発明の1つまたは複数の態様は、ネイティブ・アーキテクチャと呼ぶこともできるあるアーキテクチャに基づくが、ゲスト・アーキテクチャと呼ぶこともできる他のアーキテクチャをエミュレートする処理環境で実行することができる。例として、ネイティブ・アーキテクチャは、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるPower4またはPowerPC(商標)アーキテクチャあるいはインテル社によって提供されるIntel(商標)アーキテクチャであり、ゲスト・アーキテクチャは、同じくニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるz/Architecture(商標)である。z/Architecture(商標)の諸態様は、2005年9月発行のIBM資料No.SA22−7832−04「z/Architecture Principles ofOperation」に記載されている。このような環境では、z/Architecture(商標)で指定され、z/Architecture(商標)マシン上で実行されるように設計された命令またはロジックあるいはその両方は、z/Architecture(商標)以外のアーキテクチャ上で実行されるようにエミュレートされる。図35〜図36に関連して、この処理環境の一例について説明する。
【0124】
図35を参照して、本発明の1つまたは複数の態様を取り入れて使用するための処理環境の一実施形態について説明する。処理環境2400は、たとえば、ネイティブ中央演算処理装置2402と、メモリ2404(たとえば、メイン・メモリ)と、たとえば、1つまたは複数のバス2408またはその他の接続部あるいはこれらの組み合わせを介して相互に結合された1つまたは複数の入出力(I/O)装置2406とを含む。例として、処理環境2400は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社によって提供されるPowerPC(商標)プロセッサ、pSeries(商標)サーバ、またはxSeries(商標)サーバ、カリフォルニア州パロアルトのヒューレットパッカード社によって提供されるIntel(商標)Itanium(商標)2プロセッサ付きHP Superdome、IBM(商標)、ヒューレットパッカード社、Intel(商標)、サン・マイクロシステムズ社、その他によって提供されるアーキテクチャに基づくその他のマシン、あるいはこれらの組み合わせを含むことができる。PowerPC(商標)、pSeries(商標)、およびxSeries(商標)は米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社の登録商標である。Intel(商標)およびItanium(商標)2はカリフォルニア州サンタクララのインテル社の登録商標である。
【0125】
ネイティブ中央演算処理装置2402は、この環境内での処理中に使用される、1つまたは複数の汎用レジスタあるいは1つまたは複数の特殊目的レジスタもしくはこれらの組み合わせなどの1つまたは複数のネイティブ・レジスタ2410を含む。これらのレジスタは、任意の特定の時点におけるこの環境の状態を表す情報を含む。
【0126】
その上、ネイティブ中央演算処理装置2402は、メモリ2404に保管された命令およびコードを実行する。特定の一例では、中央演算処理装置は、メモリ2404に保管されたエミュレータ・コード2412を実行する。このコードは、あるアーキテクチャで構成された処理環境で他のアーキテクチャをエミュレートできるようにするものである。たとえば、エミュレータ・コード2412は、PowerPC(商標)プロセッサ、pSeries(商標)サーバ、xSeries(商標)サーバ、HP Superdome(商標)サーバ、その他などのz/Architecture以外のアーキテクチャに基づくマシンで、z/Architecture(商標)をエミュレートし、z/Architecture(商標)に基づいて開発されたソフトウェアおよび命令を実行できるようにする。
【0127】
図36に関連して、エミュレータ・コード2412に関する詳細について説明する。ゲスト命令2502は、ネイティブCPU2402のアーキテクチャ以外のアーキテクチャで実行されるように開発されたソフトウェア命令(たとえば、マシン命令)を含む。たとえば、ゲスト命令2502は、z/Architecture(商標)902上で実行されるように設計された可能性があるが、その代わりにネイティブCPU2402(たとえば、Intel(商標)Itanium(商標)2プロセッサである可能性がある)上でエミュレートされる。一例では、エミュレータ・コード2412は、メモリ2404から1つまたは複数のゲスト命令2502を入手し、任意選択で、入手した命令のローカル・バッファを行うための命令取り出しルーチン2500を含む。
【0128】
エミュレータ・コード2412は、入手されたゲスト命令のタイプを決定し、ゲスト命令に対応する1つまたは複数のネイティブ命令2509を提供するための命令変換ルーチン2504をさらに含む。一例では、提供することは、たとえば、変換プロセス中に所与のゲスト命令に関する命令のネイティブ・ストリームを作成することを含む。これは、関数を識別することと、同等のネイティブ命令を作成することを含む。他の一例では、ネイティブ命令を提供することは、ゲスト命令に関連するコード・セグメントをエミュレータ内で選択することを含む。たとえば、各ゲスト命令は、エミュレータ内に関連のコード・セグメントを有し、これは1つまたは複数のネイティブ命令のシーケンスを含み、そのコード・セグメントは実行されるために選択される。
【0129】
エミュレータ・コード2412は、ネイティブ命令を実行させるためのエミュレーション制御ルーチン2506をさらに含む。エミュレーション制御ルーチン2506により、ネイティブCPU2402は、1つまたは複数の前に入手したゲスト命令をエミュレートするネイティブ命令のルーチンを実行し、このような実行の終わりに、命令取り出しルーチンに制御を返して次のゲスト命令またはゲスト命令のグループの入手をエミュレートすることができる。ネイティブ命令2509の実行は、メモリ2404からレジスタにデータをロードすること、レジスタからメモリにデータを戻して保管すること、または変換ルーチンによって決定されたように何らかのタイプの算術演算または論理演算を実行することを含むことができる。各ルーチンは、たとえば、メモリに保管され、ネイティブ中央演算処理装置2402によって実行されるソフトウェアで実現される。その他の例では、これらのルーチンまたは演算の1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはこれらの何らかの組み合わせで実現される。エミュレートされたゲスト・プロセッサのレジスタは、ネイティブCPUのレジスタ2410を使用するか、またはメモリ2404内の位置を使用することによってエミュレートすることができる。諸実施形態では、ゲスト命令2502、ネイティブ命令2509、およびエミュレーション・コード2412は、同じメモリに常駐するか、または異なるメモリ・デバイス間に分散させることができる。
【0130】
さらに他の一実施形態では、プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムであって、直接またはシステム・バスを介して間接的にメモリ・エレメントに結合された少なくとも1つのプロセッサを含むものが使用可能である。メモリ・エレメントは、たとえば、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、ならびに、実行中にコードを大容量記憶装置から取り出さなければならない回数を削減するために少なくとも何らかのプログラム・コードの一次記憶を行うキャッシュ・メモリを含む。
【0131】
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、およびその他の記憶媒体などを含むが、これらに限定されない)は、直接または介在するI/Oコントローラを介してシステムに結合することができる。データ処理システムが介在する私設網または公衆網を介して他のデータ処理システムまたはリモート・プリンタあるいは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
【0132】
本発明の1つまたは複数の態様は、たとえば、コンピュータ使用可能媒体を有する装置(article of manufacture)(たとえば、1つまたは複数のコンピュータ・プログラム)に含めることができる。この媒体は、たとえば、本発明の諸機能を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック(たとえば、命令、コード、コマンドなど)をそこに有する。この装置は、システム(たとえば、コンピュータ・システム)の一部として含めるか、または別個に販売することができる。
【0133】
図37に関連して、本発明の1つまたは複数の態様を取り入れた装置またはコンピュータ・プログラムの一例について説明する。コンピュータ・プログラム2600は、たとえば、本発明の1つまたは複数の態様を提供し促進するためのコンピュータ可読プログラム・コード手段またはロジック2604をそこに保管するための1つまたは複数のコンピュータ使用可能媒体2602を含む。この媒体は、電子、磁気、光学、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
【0134】
1つまたは複数のコンピュータ可読プログラム・コード手段またはロジックによって定義された1つまたは複数の相関モジュールの論理アセンブリあるいは一連のプログラム命令は、本発明の1つまたは複数の態様の実行を指示するものである。
【0135】
本明細書には、協定タイミング・ネットワークを形成するために複数の別個のコンピューティング・システムによる時刻同期の維持を促進する諸機能が記載されている。タイミング・ネットワーク内のサーバは、サーバ・タイム・プロトコルを使用して、既存の高速データ・リンクによりシステム間で計時情報を受け渡し、これにより、各システムの時刻機構を現代のハイエンド・コンピューティング・システムに必要な正確度で同期させるための機能を提供する。高速低待ち時間リンクによるSTPの使用は、単一サーバによって提供された基準時間に基づくときに、CTN内のすべてのシステムを、たとえば、数マイクロ秒の正確度で同期させるための機能を提供する。
【0136】
STPは、時間帯、夏時間オフセット、うるう秒オフセットなど、CTN内で計時情報を設定し維持するための機能を提供する。この情報は、すべての変更がCTN内のすべてのサーバで同時に行われるように、計画的かつ一貫してCTN内で更新することができる。これにより、これらのパラメータが無計画に更新されたときに発生し、コンピュータ間の時間設定の矛盾を生み出す潜在的なシステム露出や混乱が防止される。
【0137】
CTNパラメータは、STPコンソール・インターフェースを介してオペレータによって設定し読み取ることができる。CTNパラメータとしては、サーバ接続性、時間帯および夏時間などの現地時間情報、ならびにUTCを計算するために必要なうるう秒を含む。コンソール自体は、CTNパラメータを表示し設定するためのオペレータ・インターフェースを提供し、STP機能と通信するための機能を有する任意の要素である。
【0138】
本発明の一態様では、単一アクティブ階層1サーバは、ネットワーク用のクロック・ソースとして提供される。アクティブ階層1サーバの時刻機構は、任意の時刻に設定することができるが、一般に、UTCへのダイヤルアップなどの外部時間基準に設定される。その他のサーバは、ヌル構成として知られる未定義の階層1構成を有する場合、または1次タイム・サーバの階層1構成に一致する階層1構成を有する場合に、CTNに加入することができる。したがって、CTN内の同期正確度は、外部タイム・ソースの品質または階層1サーバの外部タイム・ソースの存在にさえ依存しない。これにより、CTN内のサーバが同じルート1次基準時間に同期することを保証する。
【0139】
本発明の他の一態様では、アクティブ階層1サーバで障害が発生した場合にアクティブ階層サーバとして引き継ぐことができるように、代替サーバが定義される。これにより、CTN内のサーバがアクティブ階層1サーバの障害にかかわらずタイミング・ネットワーク内で同期を維持または回復できるように、CTNに関する単一障害点が防止される。
【0140】
タイミング・ネットワークに関する追加情報は、「Server Time Protocol Messages And Methods」という名称の米国特許出願第60/887512号、「Channel Subsystem Server Time Protocol Commands」という名称の米国特許出願第60/887544号、「Method And System For EstablishingA Logical Path Between Servers In A Coordinated Timing Network」という名称の米国特許出願第60/887576号、「Facilitating Synchronization OfServers In A Coordinated Timing Network」という名称の米国特許出願第60/887584号、「Facilitating Recovery In A Coordinated Timing Network」という名称の米国特許出願第60/887586号、2006年8月30日に出願され、「Coordinated Timing NetworkConfiguration Parameter Update Procedure」という名称の米国特許出願第11/468352号、2006年7月26日に出願され、「Directly Obtaining By Application ProgramsInformation Usable In Determining Clock Accuracy」という名称の米国特許出願第11/460025号、「System And Method For TOD-Clock Steering」という名称の米国特許出願第11/223886号、「Synchronization Signal For TOD-Clock Steering Adjustment」という名称の米国特許出願第11/532168号、「Managing Data Access Via A LoopOnly If Changed Locking Facility」という名称の米国特許出願第11/468501号、「Clock Filter Dispersion」という名称の米国特許出願第11/223878号、「Method And System For Clock SkewAnd Offset Estimation」という名称の米国特許出願第11/223876号、「Use Of T4 Timestamps To CalculateClock Offset And Skew」という名称の米国特許出願第11/223577号、および「System And Method For CalibratingA TOD Clock」という名称の米国特許出願第11/223642号という特許出願に示されている。
【0141】
有利なことに、本発明の1つまたは複数の態様は、同期および正確度要件を満たすことができる高品質の計時情報の提供を可能にする。CTN内のシステムは、UTCなど、外部タイム・ソースに対し、あまり厳しくない同期正確度の要件により、厳重に同期したままになる。高価な専用タイミング・リンクまたは個別外部ボックスあるいはその両方の使用は不要である。さらに、各サーバが外部タイム・サーバに接続するためまたはGPSを備えるための要件は不要である。
【0142】
本明細書には1つまたは複数の例が提供されているが、これらは例に過ぎない。本発明の精神を逸脱せずに、多くの変形例が可能である。たとえば、本明細書に提供されている例以外の処理環境は、本発明の1つまたは複数の態様を含むか、その態様から恩恵を受けるか、あるいはその両方である可能性がある。さらに、この環境は、z/Architecture(商標)に基づく必要はないが、その代わりに、たとえば、IBM(商標)、Intel(商標)、サン・マイクロシステムズ社、その他によって提供される他のアーキテクチャに基づくものにすることができる。さらに、この環境は、例として、複数のプロセッサを含むか、区画化するか、または他のシステムに結合するか、あるいはこれらの組み合わせにすることができる。
【0143】
その上、様々な制御ブロックが記載されているが、これらの制御ブロックのそれぞれは、追加情報を含むか、より少ない情報を含むか、または異なる情報を含むか、あるいはこれらの組み合わせになる可能性がある。制御ブロック内の位置および制御ブロック内の各フィールドのサイズは、種々の環境について様々になる可能性がある。
【0144】
本明細書で使用する「入手する(obtaining)」という用語は、取り出すこと、受信すること、有すること、提供すること、提供されること、作成すること、開発することなどを含むが、これらに限定されない。
【0145】
本明細書の1つまたは複数の態様の諸機能は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの何らかの組み合わせで実現することができる。本発明の諸機能を実行するためにマシンによって実行可能な複数命令からなる少なくとも1つのプログラムを実施するマシンによって読み取り可能な少なくとも1つのプログラム記憶装置を提供することができる。
【0146】
本明細書に描写されている流れ図は例に過ぎない。本発明の精神を逸脱せずに、これらの流れ図またはそこに記載されているステップ(または操作)に対する多くの変形例が可能である。たとえば、これらのステップを異なる順序で実行するか、ステップを追加、削除、または変更することができる。これらの変形例はいずれも、請求された本発明の一部と見なされる。
【0147】
諸実施形態が本明細書に詳細に描写され記載されているが、本発明の精神を逸脱せずに、様々な変更、追加、置き換えなどが可能であることは当業者には明らかになることであり、したがって、これらは特許請求の範囲に定義された本発明の範囲内ものであると見なされる。
【特許請求の範囲】
【請求項1】
サーバにより、クロック同期用のタイミング機能を有する協定タイミング・ネットワークの構成に関する情報を入手するステップであって、前記構成が複数のタイプの構成のうちの1つのタイプの構成であるステップと、
前記サーバにより、前記入手した情報に基づいて、前記協定タイミング・ネットワーク内の前記サーバの役割を判断するステップと、
を含む、方法。
【請求項2】
前記複数のタイプの構成が、ヌル構成と、単一サーバ構成と、デュアル・サーバ構成と、トライアッド構成とを含む、請求項1記載の方法。
【請求項3】
1次アクティブ・サーバが未定義であるヌル構成に前記サーバがなっていることを前記情報が示し、その役割が非同期サーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項4】
前記サーバが、非ヌル階層1構成を有する他のサーバに接続することをさらに含み、接続したことに応答して、前記サーバが前記協定タイミング・ネットワーク内で同期状態になる、請求項3記載の方法。
【請求項5】
1次アクティブ・サーバが定義されている単一サーバ構成に前記サーバがなっていることを前記情報が示し、その役割が前記1次アクティブ・サーバまたは前記1次アクティブ・サーバからタイミング情報を受信する2次サーバのいずれかであることを前記サーバが判断する、請求項1記載の方法。
【請求項6】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項5記載の方法。
【請求項7】
1次アクティブ・サーバおよび代替サーバが定義されているデュアル・サーバ構成に前記サーバがなっていることを前記情報が示し、その役割が、前記1次アクティブ・サーバ、前記代替サーバ、または前記1次アクティブ・サーバあるいは前記代替サーバのいずれでもないサーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項8】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項7記載の方法。
【請求項9】
1次アクティブ・サーバ、代替サーバ、およびアービタ・サーバが定義されているトライアッド構成に前記サーバがなっていることを前記情報が示し、その役割が、前記1次アクティブ・サーバ、前記代替サーバ、前記アービタ・サーバ、または前記1次アクティブ・サーバ、前記代替サーバ、あるいは前記アービタ・サーバのいずれでもないサーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項10】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項9記載の方法。
【請求項11】
前記サーバにより、ある条件の発生に応答して、前記協定タイミング・ネットワーク内の判断されたその役割に基づいて、アクションを実行するステップをさらに含む、請求項1記載の方法。
【請求項12】
前記条件が、デュアル構成またはトライアッド構成内の1次アクティブ・サーバの障害であり、前記サーバが前記故障中の1次アクティブ・サーバ用の1次アクティブ・サーバとして引き継ぐ、請求項11記載の方法。
【請求項13】
前記サーバが、時刻同期を維持するように構成された協定タイミング・ネットワークを介して1次アクティブ・サーバとネットワーク通信しており、前記サーバが前記協定タイミング・ネットワークによりサーバ・タイム・プロトコル・メッセージを受信する、請求項1記載の方法。
【請求項14】
請求項1ないし13のいずれかに記載の方法のすべてのステップを実行するために適合された手段を含むシステム。
【請求項15】
コンピュータ・システム上で実行されるときに、請求項1ないし13のいずれかに記載の方法のすべてのステップを実行するための命令を含むコンピュータ・プログラム。
【請求項1】
サーバにより、クロック同期用のタイミング機能を有する協定タイミング・ネットワークの構成に関する情報を入手するステップであって、前記構成が複数のタイプの構成のうちの1つのタイプの構成であるステップと、
前記サーバにより、前記入手した情報に基づいて、前記協定タイミング・ネットワーク内の前記サーバの役割を判断するステップと、
を含む、方法。
【請求項2】
前記複数のタイプの構成が、ヌル構成と、単一サーバ構成と、デュアル・サーバ構成と、トライアッド構成とを含む、請求項1記載の方法。
【請求項3】
1次アクティブ・サーバが未定義であるヌル構成に前記サーバがなっていることを前記情報が示し、その役割が非同期サーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項4】
前記サーバが、非ヌル階層1構成を有する他のサーバに接続することをさらに含み、接続したことに応答して、前記サーバが前記協定タイミング・ネットワーク内で同期状態になる、請求項3記載の方法。
【請求項5】
1次アクティブ・サーバが定義されている単一サーバ構成に前記サーバがなっていることを前記情報が示し、その役割が前記1次アクティブ・サーバまたは前記1次アクティブ・サーバからタイミング情報を受信する2次サーバのいずれかであることを前記サーバが判断する、請求項1記載の方法。
【請求項6】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項5記載の方法。
【請求項7】
1次アクティブ・サーバおよび代替サーバが定義されているデュアル・サーバ構成に前記サーバがなっていることを前記情報が示し、その役割が、前記1次アクティブ・サーバ、前記代替サーバ、または前記1次アクティブ・サーバあるいは前記代替サーバのいずれでもないサーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項8】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項7記載の方法。
【請求項9】
1次アクティブ・サーバ、代替サーバ、およびアービタ・サーバが定義されているトライアッド構成に前記サーバがなっていることを前記情報が示し、その役割が、前記1次アクティブ・サーバ、前記代替サーバ、前記アービタ・サーバ、または前記1次アクティブ・サーバ、前記代替サーバ、あるいは前記アービタ・サーバのいずれでもないサーバであることを前記サーバが判断する、請求項1記載の方法。
【請求項10】
前記判断が、前記サーバに維持された階層1構成情報ブロック内の情報に基づいて行われる、請求項9記載の方法。
【請求項11】
前記サーバにより、ある条件の発生に応答して、前記協定タイミング・ネットワーク内の判断されたその役割に基づいて、アクションを実行するステップをさらに含む、請求項1記載の方法。
【請求項12】
前記条件が、デュアル構成またはトライアッド構成内の1次アクティブ・サーバの障害であり、前記サーバが前記故障中の1次アクティブ・サーバ用の1次アクティブ・サーバとして引き継ぐ、請求項11記載の方法。
【請求項13】
前記サーバが、時刻同期を維持するように構成された協定タイミング・ネットワークを介して1次アクティブ・サーバとネットワーク通信しており、前記サーバが前記協定タイミング・ネットワークによりサーバ・タイム・プロトコル・メッセージを受信する、請求項1記載の方法。
【請求項14】
請求項1ないし13のいずれかに記載の方法のすべてのステップを実行するために適合された手段を含むシステム。
【請求項15】
コンピュータ・システム上で実行されるときに、請求項1ないし13のいずれかに記載の方法のすべてのステップを実行するための命令を含むコンピュータ・プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【公表番号】特表2010−528345(P2010−528345A)
【公表日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−547641(P2009−547641)
【出願日】平成20年1月23日(2008.1.23)
【国際出願番号】PCT/EP2008/050739
【国際公開番号】WO2008/092781
【国際公開日】平成20年8月7日(2008.8.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
【公表日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願日】平成20年1月23日(2008.1.23)
【国際出願番号】PCT/EP2008/050739
【国際公開番号】WO2008/092781
【国際公開日】平成20年8月7日(2008.8.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
[ Back to top ]