JP2010510607A - システムハードウェアの交換 - Google Patents

システムハードウェアの交換 Download PDF

Info

Publication number
JP2010510607A
JP2010510607A JP2009538483A JP2009538483A JP2010510607A JP 2010510607 A JP2010510607 A JP 2010510607A JP 2009538483 A JP2009538483 A JP 2009538483A JP 2009538483 A JP2009538483 A JP 2009538483A JP 2010510607 A JP2010510607 A JP 2010510607A
Authority
JP
Japan
Prior art keywords
partition unit
partition
failed
operating system
spare
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009538483A
Other languages
English (en)
Inventor
ウェスト,スティーブン・エイ
ウォーカー,エルズワース・ディー
ジョド,サントシュ・エス
トリッカー,マイケル・ジー
リッツ,アンドリュー・ジェイ
Original Assignee
マイクロソフト コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US86682106P priority Critical
Priority to US86681506P priority
Priority to US86681706P priority
Priority to US11/675,272 priority patent/US7877358B2/en
Application filed by マイクロソフト コーポレーション filed Critical マイクロソフト コーポレーション
Priority to PCT/US2007/085180 priority patent/WO2008073683A1/en
Publication of JP2010510607A publication Critical patent/JP2010510607A/ja
Application status is Withdrawn legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration

Abstract

パーティショニング可能なコンピューティングデバイスのスペアパーティションユニットを管理するための方法及び装置が開示される。この方法は、スペアパーティションユニットが、ローカルオペレーティングシステムで追加又は交換に必要とされるか否かを検出するステップ、及び、スペアパーティションユニットが追加に必要とされる場合に、スペアパーティションユニットの追加をイニシエートするステップを含む。スペアパーティションが交換に必要とされる場合、故障したパーティションユニットの、スペアパーティションユニットとの交換がイニシエートされ、故障したパーティションユニットのメモリの一部が、スペアパーティションユニットのパーティションのメモリに受動的にマイグレーションされ、故障したパーティションユニットのメモリの一部が、スペアパーティションユニットのパーティションのメモリに能動的にマイグレーションされ、パーティション可能コンピューティングデバイスがクリーンアップされる。パーティションユニットは、コンピュータ実行可能命令を再コンパイルすることを必要とすることなく交換される。
【選択図】図5

Description

マイクロプロセッサは、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、携帯電話、レーザプリンタ等のコンピューティングデバイスの処理機能及び制御機能を実行することができる電子デバイスである。通常、マイクロプロセッサは、複雑な集積回路を含む小さな半導体材料を収容して保護する小さなプラスチックパッケージ又はセラミックパッケージを備える。集積回路に接続されたリード線は、集積回路を他の電子デバイス及び電子回路に接続することを可能にする、パッケージから突き出たピンに取り付けられる。マイクロプロセッサは、通例、他の電子デバイスを収容する回路基板内にプラグ接続されるか又は回路基板に別の方法で取り付けられる。

1つのマイクロプロセッサ集積回路は、通常、1つのコンピューティングユニット、すなわち1つのプロセッサのみを含むが、1つのマイクロプロセッサ集積回路に複数のプロセッサを含めることが可能である。複数のプロセッサは、「コア」と称されることが多いが、同じ半導体材料に含まれ、マイクロプロセッサパッケージのピンに接続される。複数のコアを有することによって、マイクロプロセッサの計算能力は増加する。たとえば、4つのコアを有するマイクロプロセッサは、4つの単一コアマイクロプロセッサとほとんど同じ量の計算能力を提供することができる。

従来のコンピューティングデバイス内で複数のマイクロプロセッサ及びマルチコアマイクロプロセッサを使用することが増加してきた。従来のコンピューティングデバイスは、オペレーティングシステムの1つのインスタンスしか実行することができない。従来のコンピューティングデバイスは、マルチコアマイクロプロセッサ、複数のマイクロプロセッサ、又は複数のマルチコアマイクロプロセッサを含んでいても、オペレーティングシステムの1つのインスタンスしか実行することができない。それでも、マルチコアマイクロプロセッサが提供する増加した計算能力を利用することによって、これまで複数のコンピューティングデバイスによって実行されていた計算機能を、より少ないコンピューティングデバイスで実行することが可能になる。

たとえば、サーバは、ネットワークに接続された他のエンティティにサービス又はサービスのセットを提供するネットワークに接続されたコンピューティングデバイスである。32個の従来のコンピューティングデバイスを備えるサーバ、すなわち32ウェイサーバは、それぞれが4つのコアを有する8つのマイクロプロセッサで構成することができる。この概念をさらに一歩進めて、個々の各コアが、32個のコンピューティングデバイスのうちの1つの8倍の能力を有する場合、32ウェイサーバの能力は、4コアマイクロプロセッサによって提供することができる。このような4コアサーバの明らかな利点は、コンピューティング資源の冗長性が、従来のサーバによって提供されるものよりも手ごろであるということである。加えて、マイクロプロセッサの個数が削減されることによって、サーバのコスト、サーバに電力を供給するのに必要なエネルギー量、及びサーバが必要とするメンテナンスの量も削減される。

マルチコアマイクロプロセッサの計算能力をより多く活用するには、「パーティション」を使用することが可能である。パーティションは、オペレーティングシステムの独立したインスタンス、すなわちローカルオペレーティングシステムを実行することができる、コンピューティングデバイス内のたとえば、プロセッサ、メモリ等の電子デバイスの電気的に絶縁可能なセットである。パーティショニング可能なコンピューティングデバイスは、パーティションに分割することができるコンピューティングデバイスであり、したがって、複数のローカルオペレーティングシステムを実行することができるコンピューティングデバイスである。パーティショニング可能なサーバは、パーティショニング可能なコンピューティングデバイスであるサーバであり、したがって、複数のローカルオペレーティングシステムを実行することができるサーバである。パーティショニング可能なサーバのパーティションは、「論理サーバ」と称される場合もある。すなわち、論理サーバは、たとえスタンドアロンサーバでなくても、ネットワーク上の他のエンティティにはそのように見える。また、複数のサーバは、論理サーバであろうとそれ以外のサーバであろうと、「サーバクラスタ」に組み立てることも可能である。サーバクラスタは、ユニットとして動作して、サービス又はサービスのセットを提供する複数のサーバである。

マルチコアマイクロプロセッサを使用することの利点によって、「サーバコンソリデーション」への傾向が推進されている。サーバコンソリデーションは、たとえばサーバクラスタにおいて、複数のサーバを、たとえば1つのサーバといったより少ないサーバと交換するプロセスである。複数のサーバに取って代わる1つのサーバは、通常、それらの複数のサーバの能力と等しいか又はそれらの複数のサーバの能力を超える計算能力を含む。サーバコンソリデーションは、コスト、エネルギー、及びメンテナンスを削減するが、全部の卵を1つの籠に入れるということにもなる。サーバコンソリデーションは、たとえば、サーバの故障の影響を増加させるおそれがある。たとえば、以前は複数のサーバ上で実行されていた複数のアプリケーションがすべて同じサーバ上で実行され、且つ、そのサーバが故障した場合、その影響は、アプリケーションのすべてに及ぶ可能性がある。最悪の場合、これは、アプリケーションのダウンタイムを意味する。このような影響を防ぐために、多くのハイエンドサーバ、すなわち大きな計算能力を有するサーバが、それらの能力の一部を信頼性機能に当てている。

このような1つの信頼性機能は、「フェイルオーバ」能力である。フェイルオーバは、第1のエンティティが、好ましくは完全に故障する前に、第1のエンティティが含む情報を第2の同様のエンティティに渡すことができることである。従来のサーバ、すなわち従来のコンピューティングデバイスに基づくサーバが、制御され且つ順序だった方法でフェイルオーバを行って、故障サーバから交換サーバへの移行中に、データが喪失されず且つ進行中のプロセスが中断されないことを確実にするための技法が開発されてきた。

従来のサーバと同程度のロバストで且つ信頼することができるマルチコアマイクロプロセッササーバを作り出すためには、プロセッサレベルで動作する同様の技法が役立つ。

この概要は、以下の詳細な説明でさらに説明される概念のうちの選択したものを簡略化した形で紹介するために設けられている。この概要は、請求項に記載の主題の主要な特徴を特定することを意図するものではなく、また、請求項に記載の主題の範囲を決定することを助けるものとして使用されることを意図するものでもない。

グローバル管理エンティティ及び複数のローカルオペレーティングシステムを含む、サーバのようなパーティショニング可能なコンピューティングデバイスにおけるスペアパーティションユニットを管理するための方法及び装置が開示される。この方法は、スペアパーティションユニットが、ローカルオペレーティングシステムで追加又は交換に必要とされるか否かを判断するステップを含む。追加のスペアパーティションユニットが必要とされる場合、スペアパーティションユニット追加プロセスがイニシエートされる。たとえばパーティションユニットの故障のために、交換スペアパーティションユニットが必要とされる場合、交換スペアパーティションユニットプロセスがイニシエートされる。この交換スペアパーティションユニットプロセスによって、スペアパーティションユニットは、故障したパーティションユニットのパーティション内に受動的(passively)及び能動的(actively)にマイグレーションされ、マイグレーション動作はクリーンアップされる。

一例示の実施態様では、スペアパーティションユニット追加プロセス中、グローバル管理エンティティが、追加されるスペアパーティションユニットをグローバルデバイスプールから選択し、グローバル管理エンティティは、選択されたスペアパーティションユニットの追加をイニシエートし、ローカルオペレーティングシステムが、選択されたスペアパーティションユニットの、ローカルオペレーティングシステムのパーティション、すなわちローカルオペレーティングシステムパーティション内への追加をイニシエートし、グローバル管理エンティティは、選択されたスペアパーティションユニットをローカルオペレーティングシステムパーティションに移行させ、ローカルオペレーティングシステムが、選択されたスペアパーティションユニットをローカルオペレーティングシステムパーティションにおいて発見すると、ローカルオペレーティングシステムは、選択されたスペアパーティションユニットをローカルオペレーティングシステムパーティションに追加する。

一例示の実施態様では、スペアパーティションユニット交換プロセス中、ローカルオペレーティングシステムが故障したデバイスを検出すると、グローバル管理エディティングが、故障したデバイスを物理ハードウェアデバイスにマッピングし、グローバル管理エンティティが、グローバルデバイスプールから交換デバイスを選択し、グローバル管理エンティティが、故障したデバイスの交換をイニシエートし、ローカルオペレーティングシステムが、故障したデバイスのローカルオペレーティングシステム内への交換をイニシエートし、グローバル管理エンティティが、スペアパーティションユニットをローカルオペレーティングシステムのパーティション、すなわちローカルオペレーティングシステムパーティション内へ移行させ、ローカルオペレーティングシステムが、ローカルオペレーティングシステムパーティションにおいてスペアパーティションを発見すると、ローカルオペレーティングシステムは、スペアパーティションユニットをローカルオペレーティングシステムパーティションに追加する準備をする。

一例示の実施態様では、スペアパーティションユニットの故障したパーティションユニットのパーティション内への受動的なマイグレーション中、ローカルオペレーティングシステムが、変更フラグを使用して、故障したパーティションのメモリを転送し、故障したパーティションのメモリの変更部分を追跡し、グローバル管理エンティティが、メモリコントローラルーティングテーブルの極小的(atomic)更新を行う。

一例示の実施態様では、スペアパーティションユニットの故障したパーティションユニットのパーティション内への能動的なマイグレーション中、グローバル管理エンティティが、パーティショニング可能なサーバをクワイエスし(quiesc)、ローカルオペレーティングシステムが、故障したパーティションのメモリの変更部分を転送し、グローバル管理エンティティが、メモリコントローラルーティングテーブルの極小的更新を行い、ローカルオペレーティングシステムが、故障したパーティションユニットのプロセッサの状態をスペアパーティションユニットのプロセッサへ転送し、ローカルオペレーティングシステムが、ローカルオペレーティングシステムのシステム割り込み状態を変更し、ローカルオペレーティングシステムが、故障したパーティションユニットのプロセッサを停止する。

一例示の実施態様では、パーティショニング可能なサーバのクリーンアップ中、ローカルオペレーティングシステムがパーティショニング可能なサーバをクワイエス解除し(unquiesc)、ローカルオペレーティングシステムが、グローバル管理エンティティに交換を通知し、グローバル管理エンティティが故障したパーティショニングユニットのプロセッサを論理的及び物理的の双方で除去する。

グローバル管理エンティティ及びローカルオペレーティングシステムによって、コンピュータ実行可能命令を特定のプラットフォーム用に再コンパイルすることを必要とすることなく、スペアパーティションユニットを追加又は交換することが可能になる。すなわち、この方法及び装置の実施態様は、その実施態様のコードもオペレーティングシステムのコードも変更及び再コンパイルすることなく、複数のハードウェアプラットフォーム上でオペレーティングシステムの実行可能コードと共に動作する。

本発明の上記態様及び付随する利点の多くは、それらが以下の詳細な説明を添付図面と併用して参照することによってより良く理解されるにつれて、より容易に認識されることになろう。

パーティションユニット交換をサポートすることができる一例示のコンピューティングデバイスのブロック図である。 複数のパーティションユニットを含み、それらのうちの1つが関連付けられていない、一例示のパーティションのブロック図である。 これまで関連付けられていなかったパーティションユニットを含むように再構成された、図2に示す例示のパーティションのブロック図である。 一例示のパーティションユニットのブロック図である。 一例示の故障したメモリブロック及び一例示の交換メモリブロックのブロック図である。 故障したパーティションユニットを動的に交換するための一例示の方法の機能フロー図である。 パーティションユニットの追加をイニシエートするための一例示の方法の機能フロー図である。 交換パーティションユニットを受動的にマイグレーションするための一例示の方法の機能フロー図である。 交換パーティションユニットを能動的にマイグレーションするための一例示の方法の機能フロー図である。 故障したパーティションユニットを交換した後にクリーンアップするための一例示の方法の機能フロー図である。 システムをクワイエスするための一例示の方法の機能フロー図である。 システムをクワイエス解除するための一例示の方法の機能フロー図である。

サーバは、ネットワークに接続された、たとえばコンピューティングデバイスといった他のエンティティにサービス又はサービスのセットを提供するネットワークに接続されたコンピューティングデバイスである。たとえば、ウェブページサーバは、ウェブページ要求に応答してウェブページを返すサービスを提供する。他の例示のサーバは、特定のユーザへの電子メールメッセージを返す電子メールサーバ、ビデオアーカイブからビデオクリップを返すビデオサーバ等である。一例示のサーバは、マイクロプロセッサ、メモリコントローラ、及びメモリコントローラによって制御されるメモリブロックを含む。メモリコントローラ及びメモリコントローラによって制御されるメモリブロックは、ユニット、すなわちメモリユニットと称されることが多い。サーバは、追加のマイクロプロセッサ、メモリコントローラ、メモリブロック、及び割り込みプロセッサ等の他の電子デバイスも含むことができる。したがって、1つのマイクロプロセッサ及びメモリユニットしか含まないサーバは、限定ではなく例示として解釈されるべきである。

多くのタイプのコンピューティングデバイスと同様に、サーバのオペレーションは、オペレーティングシステムと呼ばれるソフトウェアプログラムによって制御される。従来のコンピューティングデバイスは、オペレーティングシステムの1つのインスタンスしか実行することができない。したがって、従来のサーバ、すなわち従来の1つのコンピューティングデバイス又は従来の複数のコンピューティングデバイスに基づくサーバは、オペレーティングシステムの1つのコピー、すなわちオペレーティングシステムの1つのインスタンスに含まれる命令を実行する。たとえば、32個の従来のコンピューティングデバイスを備えるサーバ、すなわち32ウェイサーバは、それぞれが4つのコアを有する8つのマイクロプロセッサから構成することができるが、依然として1つのオペレーティングシステムを実行する。マイクロプロセッサの個数を削減することによって、サーバのコスト、サーバに電力を供給するのに必要なエネルギーの量、及びサーバが必要とするメンテナンスの量も削減される。

パーティションは、マルチコアマイクロプロセッサの計算能力をさらに多く活用することを可能にする。パーティションは、オペレーティングシステムの独立したインスタンス、すなわちローカルオペレーティングシステムを実行することができる、コンピューティングデバイス内のたとえば、プロセッサ、メモリ等の電子デバイスの電気的に絶縁可能なセットである。パーティショニング可能なコンピューティングデバイスは、パーティションに分割することができるコンピューティングデバイスであり、したがって、複数のローカルオペレーティングシステムを実行することができるコンピューティングデバイスである。パーティショニング可能なサーバは、パーティショニング可能なコンピューティングデバイスであるサーバであり、したがって、複数のローカルオペレーティングシステムを実行することができるサーバである。パーティショニング可能なサーバのパーティションは、「論理サーバ」と称される場合もある。したがって、1つのパーティショニング可能なサーバは、複数の論理サーバを含むことができる。複数のサーバは、論理サーバであろうとそれ以外のサーバであろうと、「サーバクラスタ」に組み立てることが可能である。サーバクラスタは、ユニットとして振舞って、サービス又はサービスのセットを提供する。

好ましくは、パーティショニングは動的である。すなわち、パーティションユニットは、サーバが提供するサービスにほとんど又は全く影響を与えることなく、パーティションに割り当てられるか又はパーティションから除去される。パーティショニングすることができるサーバは、パーティショニング可能なサーバである。パーティショニング可能なサーバを備えるサーバシステム、すなわちシステムは、パーティショニング可能なシステムである。パーティショニング可能なシステムは、パーティションに割り当てられるパーティションユニット及び電子デバイスの個数及び構成において柔軟性を提供し、「サーバコンソリデーション」をサポートすることをより簡単にし且つよりコスト効率的にする。

サーバコンソリデーションは、複数のサーバをより少ないサーバと、又は、場合によってはたった1つだけのサーバと交換するプロセスである。サーバコンソリデーションの結果である一例示のサーバは、通常、当該サーバが取って代わる複数のサーバの能力と等しい計算能力又はそれらの複数のサーバの能力を超える計算能力を含む。サーバコンソリデーションは、サーバの故障の影響を増加させるおそれがある。たとえば、以前は複数のサーバ上で実行されていた複数のアプリケーションが、すべて1つのサーバ上で実行されることを想像されたい。そのサーバが故障した場合、その影響は、アプリケーションのすべてに及ぶ可能性があり、アプリケーションのダウンタイムさえも引き起こす可能性がある。

従来のサーバは、サーバの計算能力の一部を、「フェイルオーバ」能力等の信頼性機能に当てることによって、このような影響を防いでいる。従来のサーバが、制御され且つ順序だった方法でフェイルオーバを行って、故障サーバから交換サーバへの移行中に、データが喪失されず且つ進行中のプロセスが中断されないことを確実にするための技法が開発されてきた。従来のサーバは、ネットワークを通じて互いに接続し、したがって、互いに密結合されていないので、作業は、小さな部分に分割され、サーバ間で共有される。すなわち、作業はパケット化される。これによって、故障サーバの作業パケットをフェイルオーバ中に再ルーティングすることができるので、故障サーバを交換することが容易になる。フェイルオーバを実施するには、2つ以上の従来のサーバが利用可能でなければならないことに留意されたい。すなわち、故障した従来のサーバは、その故障した従来のサーバからのデータを受け取ることができる別の同様の従来のサーバを必要とする。

パーティショニング可能なサーバは、複数の論理サーバを含むことができ、これらの論理サーバは、ネットワークによって互いに結合された従来のサーバよりも容易に通信することができるので、パーティショニング可能なサーバは、一群の従来のサーバよりも容易に且つコスト効率良く信頼性を提供する可能性を有する。パーティショニング可能なサーバでパーティションを使用して動作する制御され且つ順序だったフェイルオーバのプロセスは、パーティショニング可能なサーバが提供することができる信頼性を実現するのに役立つ。

フェイルオーバがいつ必要とされるのかを高レベルのソフトウェアアプリケーションのそれぞれに通知することによってパーティショニング可能なサーバをより信頼することができるものとすることは実用的ではない。高レベルのソフトウェアアプリケーションがこのような通知に応答することを可能にするには、各アプリケーションのコンピュータコードを、フェイルオーバに適合するように変更することが必要となる。アプリケーションに通知することさえも、場合によっては、実行中のサーバの一部に取って代わるメカニズムなしに、フェイルオーバを提供するのに十分でないこともある。その代わり、最低レベルのソフトウェアのみをフェイルオーバに関与させ、たとえばアプリケーションといったそれよりも上位レベルのソフトウェアが、ハードウェアの変更が行われなくても動作することを可能にすることは、より実用的であり且つ好都合である。

順序だった低レベルのパーティショニング可能なサーバフェイルオーバの一実施態様は、グローバル管理エンティティ及び1つ又は2つ以上のローカルオペレーティングシステムを伴う。グローバル管理エンティティの例は、サービスプロセッサ(SP)及びベースボード管理コントローラ(BMC)である。SPは、メモリコントローラ及びマイクロプロセッサ等、回路基板又はマザーボードに取り付けられた電子デバイスを管理する専用マイクロプロセッサ又は専用マイクロコントローラである。BMCも、マザーボード上に内蔵された専用マイクロコントローラである。BMCは、電子デバイスを管理することに加えて、コンピューティングシステムに組み込まれたセンサからの入力を監視して、温度、冷却ファンの速さ、電力モード、オペレーティングシステムステータス等のパラメータについて報告し且つ/又はそれらのパラメータに応答する。他の電子デバイスも、グローバル管理エンティティの役割を果たすことができる。したがって、SP又はBMCをグローバル管理エンティティとして使用することは、限定ではなく例示とした解釈されるべきである。

ローカルオペレーティングシステムは、1つのパーティション上で実行されるオペレーティングシステムのインスタンスである。パーティションユニットは、特定のパーティションに割り当てられて、そのパーティションユニットのデバイスを他のパーティションのデバイスと共有することができないことを確実にし、故障を単一のパーティションに隔離することを確実にする。このようなパーティションユニットは、どの物理アドレスが所与のメモリコントローラによってサービスを受けているのかを示すことができ、それによって、物理メモリアドレスをメモリコントローラ及びそのメモリコントローラを含む物理パーティションユニットにマッピングすることができる。パーティションをブートして動作させるのに、2つ以上のパーティションユニットが必要とされる場合がある。未使用のパーティションユニット又は故障したパーティションユニットは、電気的に絶縁することができる。パーティションユニットを電気的に絶縁することは、一群の従来のサーバから1つのサーバを除去することと同様であり、パーティションユニットを異なるパーティションに動的に再割り当てすることができるという利点を有する。

上記論述において、別段の言及がない限り、パーティションユニットは、単一のコア及び単一のメモリユニットを備える。しかしながら、パーティションユニットは、2つ以上のコア、メモリユニット、割り込みプロセッサ、並びに/又はコンピューティングサービス及び/若しくはサポートを提供する他のデバイスを備えることができる。したがって、1つのコア及び1つのメモリコントローラを備えるパーティションユニットの使用は、限定ではなく例示として解釈されるべきである。パーティショニング可能なサーバのパーティションユニットのたとえば追加又は交換といった管理によって、制御され且つ順序だった方法でフェイルオーバを行って、パーティショニング可能なサーバが従来のサーバと同程度にロバストで且つ信頼することができることを確実にすることが可能になる。

パーティション並びにパーティションユニットの追加及び/又は交換をサポートすることができるパーティショニング可能なサーバを実施するための一例示のコンピューティングデバイス100を、図1にブロック図の形で示す。図1に示す例示のコンピューティングデバイス100は、サービスプロセッサ(SP)102を備える。このSP102は、SPファームウェア104及びルーティングテーブル106を記憶するメモリに接続されている。また、コンピューティングデバイス100は、メモリブロックA 110に接続されたプロセッサA 108、メモリブロックB 114に接続されたプロセッサB 112、メモリブロックC 118に接続されたプロセッサC 116、及びメモリブロックD 112に接続されたプロセッサD 120も備える。プロセッサ108、112、116、及び120のそれぞれは、0、1、2、及び3で指定された4つのコアを含む。SP102は、SPファームウェア104によって制御され、ルーティングテーブル106を使用して、プロセッサ108、112、126、120及びメモリブロック110、114、118、及び122の間の絶縁境界を管理する。コンピューティングデバイス100は、I/O(入出力)回路部124、マスストレージ回路部126、通信回路部128、環境回路部130、及び電源装置132も備える。コンピューティングデバイス100は、I/O回路部124を使用して、I/Oデバイスと通信する。コンピューティングデバイス100は、マスストレージ回路部126を使用して、内部又は外部に接続されたマスストレージデバイスと相互作用する。コンピューティングデバイス100は、通信回路部128を使用して、通例はネットワークを介して外部デバイスと通信する。コンピューティングデバイス100は、環境回路部130を使用して、冷却ファン、熱センサ、湿度センサ等の環境デバイスを制御する。電源装置132は、コンピューティングデバイス100に電力を供給する。たとえば、SP102がBMCと交換された場合、このBMCはより正確に、環境回路部130及び電源装置132と通信することができ、環境回路部130及び電源装置132を制御することができる。

図1に示し上述した例示のコンピューティングデバイス100等のコンピューティングデバイスは、パーティションユニットの交換をサポートする。一例示のパーティションユニットは、図1に示すプロセッサA 108及びメモリブロックA 110から形成することができる。このような例示のパーティションユニットは、図2及び図3に示すプロセッサA 202及びプロセッサA 202に接続されたメモリブロックを備えるパーティションユニットと同様である。図2及び図3に示すブロック図の双方は、同じ4つのパーティションユニットを含む。これらのパーティションユニットのそれぞれは、プロセッサ及びメモリブロック、すなわち、メモリブロック204に接続されたプロセッサA 202、メモリブロック208に接続されたプロセッサB 206、メモリブロック212に接続されたプロセッサC 210,及びメモリブロック216に接続されたプロセッサD 214を備える。

パーティションユニットの交換は、図2に示すブロック図を図3に示すブロック図と比較することによって理解することができる。図2及び図3の双方のブロック図は、同じ4つのパーティションユニットを示しているが、図2に示すパーティション200aは、図3に示すパーティション200bと比較すると、パーティションユニットの異なるセットを備えている。図2に示すパーティション200aは、プロセッサA 202及びメモリブロック204、プロセッサB 206及びメモリブロック208、並びにプロセッサC 210及びメモリブロック212を備える。図2では、プロセッサD 214及びメモリブロック216を備えるパーティションユニットは、パーティション200aに含まれていない。図2に示すパーティション200aとは異なり、図3に示すパーティション200bは、パーティションユニットの異なるセット、すなわちプロセッサ及びメモリブロックの異なるセットを備えるように変更されている。図3に示すパーティション200bは、プロセッサB 206及びメモリブロック208、プロセッサC 210及びメモリブロック212、並びにプロセッサD 214及びメモリブロック216を備える。図3では、プロセッサA 202及びメモリブロック204を備えるパーティションユニットが、パーティション200bに含まれていないのに対して、プロセッサD 214及びメモリブロック216を備えるパーティションユニットが、図2に示すパーティション200aに含まれている。事実上、プロセッサD 214及びメモリブロック216を備えるパーティションユニットは、プロセッサA 202及びメモリブロック204を備えるパーティションユニットに取って代わっている。SP102は、ルーティングテーブル106を変更して、この交換を行う。このような交換は、たとえば、プロセッサA 202及び/又はメモリブロック204が故障している場合、又は、より大きなメモリを有するプロセッサが必要とされる場合に望ましい。

プロセッサA 202及びメモリブロック204等の単一のプロセッサ及び単一のメモリブロックが、パーティションユニットを構成することができるが、パーティションユニットは、他の形態を有することもできる。異なる形態を有する一例示のパーティションユニット400の詳細な図を図4に示す。図4では、図1と同様に、例示のパーティションユニット400が、メモリコントローラ404に接続された、4つのコア0、1、2、及び3を含むプロセッサ402を備える。メモリコントローラ404は、メモリブロックA 406及びメモリブロックB 410の2つのメモリブロックに接続されている。プロセッサ402は、メモリコントローラ404と通信する。メモリコントローラ404は、メモリブロックA 406及びメモリブロックB 410を制御する。他のパーティションユニットは、プロセッサ、メモリコントローラ、及びメモリブロックに加えて他のデバイスを含むこともできるし、単一のプロセッサ又は単一のメモリコントローラのみを含むこともできる。したがって、パーティションユニット400は、限定でなく例示として解釈されるべきである。

通常のパーティションユニットにおける、たとえばプロセッサといったデバイスは、そのデバイスのステータスをローカルオペレーティングシステムに通知することができる場合がある。代替的に又は付加的に、パーティションユニットを制御するローカルオペレーティングシステムは、予測解析を使用して、デバイスのステータスを評価し、デバイスが故障しているかもしれないか否かを判断することができ、したがって、交換の候補であり得るか否かを判断することができる。システムアドミニストレータ等の人物は、定期的なメンテナンスの一部としてデバイスステータスをチェックすることができるが、切迫した故障をローカルオペレーティングシステムに通知することをハードウェア自体に行わせることが好ましい。いくつかの状況では、プロセッサを或るモデルから別のモデルにアップグレードすること、又は、プロセッサ及び/若しくはメモリをシステムに追加することが望ましい場合がある。システムアドミニストレータは、このような機能を実行することができるが、明示的にプログラミングされた命令を使用することによって、又は、パーティション、パーティションユニット、及びステータスを報告するハードウェアの能力を利用する定期的に指定時刻で作動する命令によって、このような交換及び追加を自動化することが好ましい。

図4に示すパーティションユニット400等のパーティションユニットにおけるたとえばメモリブロックといったデバイスのいずれもが、故障するおそれがある。メモリブロックが故障した場合、そのメモリブロックを同等のメモリブロックと交換することが好ましい。一例示の故障したメモリブロック及び同等の例示の交換メモリブロックを図5に示す。図5では、故障したメモリブロック500は、たとえば番号1、2、3、及び4のデータを含むメモリセルのセット504を備える。メモリセルのセット504のメモリセルを、ローカル物理アドレス502を使用して参照することができ、また、グローバル物理アドレス506を使用して参照することもできる。ローカル物理アドレス502は、アドレス1000及び1001を使用するのに対して、グローバル物理アドレス506は、アドレス5及び6を使用する。故障したメモリブロック500は、交換メモリブロック510と交換することができる。交換メモリブロック510は、故障したメモリブロック500からのデータ、すなわち番号1、2、3、及び4のデータを含むことができるメモリセルのセット514を備える。故障したメモリブロックと同様に、交換メモリブロック510のメモリセルのセット514のメモリセルを、ローカル物理アドレス512を使用して参照することができ、また、グローバル物理アドレス516を使用して参照することもできる。ローカル物理アドレス512は、アドレス2000及び2001を使用するのに対して、グローバル物理アドレス516は、アドレス7及び8を使用する。通常の交換シーケンスでは、故障したメモリブロック500のメモリセルのセット504のデータは、交換メモリブロック510のメモリセルのセット514内にコピーされる。故障したメモリブロック500のローカル物理アドレス502、すなわち1000及び1001は、交換メモリブロック510のローカル物理アドレス512、すなわち1000及び1001に再マッピングされる。この再マッピングによって、システムの残りの部分は、交換オペレーション中、不変のままとすることが可能になる。パーティションユニットを交換するとき、「極小的」更新、すなわちメモリブロックの交換を行うことが好ましい。メモリブロックの極小的更新中、更新中のメモリブロックがアクセスされた場合、故障したメモリブロックのアドレスが排他的に使用されるか、又は、交換メモリブロックのアドレスが排他的に使用される。すなわち、メモリセル504のデータアクセスは、ローカル物理アドレス502から排他的に行われるか、又は、ローカル物理アドレス512から排他的に行われる。

図5に示す故障したメモリブロック500の交換メモリブロック510との交換は、或るパーティションユニットが別のパーティションユニットと交換されるときに行うことができる一タイプの交換である。パーティションユニットのこの交換又は追加は、或るプロセッサ、或るコアのセット、又は或るコアと、別のプロセッサ、別のコアのセット、又は別のコアとの交換又は追加も伴うことができる。パーティショニング可能なサーバ上においてたとえば制御され且つ順序だった方法でフェイルオーバを行うプロセスでパーティションユニットの交換又は追加を行うための一方法は、グローバル管理エンティティによるローカルオペレーティングシステムのパーティション内のスペアパーティションユニットの管理を伴う。このような方法の一例を図6〜図12に機能フロー図の形で示す。図6〜図12に示す機能フロー図では、「(G)」でマーキングされたブロックを除いて、動作は、ローカルオペレーティングシステム、すなわちパーティションを制御するオペレーティングシステムのインスタンスによって行われる。「(G)」でマーキングされたブロックは、SP又はBMC等のグローバル管理エンティティによって行われる動作を含む。

パーティションユニットの交換又は追加を行うための一例示のプロセスの機能フロー図を図6に示す。
図6に示すパーティションユニットの交換又は追加を行うための方法は、ブロック600で開始する。ブロック600において、ローカルオペレーティングシステムは、ハードウェアIDに基づく予測解析を使用して、故障したパーティションユニットを検出する。ハードウェアIDは、たとえば、プロセッサのアドバンストプログラマブル割り込みコントローラID(APIC ID)とすることができる。判定ブロック602において、新しいパーティションユニットが交換用のものであるか否かを判断するテストが行われる。新しいパーティションユニットが交換用のものである場合、制御は、ブロック604にフローする。新しいパーティションユニットが交換用のものでない場合、すなわち、追加用のものである場合には、制御は、サブルーチン606にフローする。ブロック604において、グローバル管理エンティティは、故障したパーティションユニットを物理ハードウェアにマッピングする。制御は、サブルーチン606にフローする。サブルーチン606は、パーティションユニットの交換をイニシエートするのに使用される。パーティションユニットの追加又は交換をイニシエートするステップの詳細を、図7に示し、以下で説明する。判定ブロック608において、再度、新しいパーティションユニットが交換用のものであるか否かが判断される。新しいパーティションユニットが交換用のものでない場合、すなわち追加用のものである場合には、制御は、ブロック612にフローする。ブロック612において、ローカルオペレーティングシステムは、パーティションユニットをローカルオペレーティングシステムに追加し、その後、この方法は終了する。判定ブロック608において、新しいパーティションが交換用のものであると判断された場合には、制御は、ブロック610にフローする。ブロック610において、ローカルオペレーティングシステムは、新しいパーティションユニットをローカルオペレーティングシステムに追加する準備を行う。たとえば、データ構造体をメモリにセットアップして、故障したプロセッサのAPIC IDの記録、故障したメモリブロックのサイズ及び開始ロケーションの記録、又は故障したメモリブロックの別のメモリブロック内への再マッピングを行うことができる。ブロック614において、ローカルオペレーティングシステムは、交換パーティションユニットのインストールを示す信号をグローバル管理エンティティへ送信することによって、ローカルオペレーティングシステムにおいて交換をイニシエートする。ブロック614の後、制御は、サブルーチン616にフローする。サブルーチン616は、交換パーティションユニットを受動的にマイグレーションするのに使用される。交換パーティションユニットを受動的にマイグレーションするステップの詳細を、図8に示し、以下で説明する。サブルーチン616が実行された後、制御は、サブルーチン618にフローする。サブルーチン618は、交換パーティションユニットを能動的にマイグレーションするのに使用される。交換パーティションユニットを能動的にマイグレーションするステップの詳細を、図9に示し、以下で説明する。サブルーチン618が実行された後、制御は、サブルーチン620にフローする。サブルーチン620は、故障したパーティションユニットの交換後のクリーンアップを行うのに使用される。クリーンアップがどのように行われるのかの詳細を、図10に示し、以下で説明する。サブルーチン620が実行された後、この方法は終了する。

サブルーチン606、すなわちパーティションユニットの追加/交換のイニシエートの詳細を図7に示す。このサブルーチンは、ブロック740で開始する。ブロック740において、グローバル管理エンティティは、追加されるパーティションユニットをグローバルパーティションユニットプールから選択する。グローバルパーティションユニットプールは、グローバル管理エンティティが交換パーティションユニットを選択するパーティションユニットのセットである。グローバル管理エンティティは、ハードウェアパーティショニングを使用して、どのパーティションユニットが各ローカルオペレーティングシステムに利用可能であるのかを選択する。交換の場合、グローバル管理エンティティは、少なくとも、故障したパーティションユニットの能力を有する交換パーティションユニットを選択する。メモリを含むパーティションユニットの一例示の能力は、メモリのサイズである。プロセッサを含むパーティションユニットの一例示の能力は、そのプロセッサにおけるコアの個数である。交換パーティションユニットは、アイドルなスペアとすることもできるし、異なる、おそらくより重要でないローカルオペレーティングシステムによって使用されているパーティションユニットとすることもできる。重要度のより低いローカルオペレーティングシステムはシャットダウンすることができ、そのローカルオペレーティングシステムの資源、すなわちパーティションユニットは、その後、スペアとして使用することができる。ブロック744において、ローカルオペレーティングシステムは、パーティションユニットをローカルオペレーティングシステム内へイニシエートする。ブロック746において、グローバル管理エンティティは、その新しいパーティションユニットをローカルオペレーティングシステムパーティション内に移行させる。詳細には、SP102は、新しいパーティションユニットをルーティングテーブル106において再マッピングする。ブロック748において、ローカルオペレーティングシステムは、ローカルオペレーティングシステムパーティションにおいて新しいパーティションユニットを発見する。ブロック748の後、このサブルーチンは終了する。

サブルーチン616、すなわち交換パーティションユニットの受動的なマイグレーションの詳細を、図8に示すフロー図に例示の形で示す。受動的なマイグレーション及び能動的なマイグレーションの双方の目的は、進行中の高レベルのアプリケーションのシャットダウンも妨害もすることなく、できるだけ多くの情報を、故障したパーティションユニットから交換パーティションユニットへ転送することである。たとえば、アプリケーションは、複数のメモリブロックをマッピングしている、すなわち要求して受け取っている場合がある。このアプリケーションは、これらの複数のメモリブロックの一定のメモリブロックを使用していない、すなわち変更していない可能性がある。メモリブロックが変更されていない限り、アプリケーションを妨害することなく、そのメモリブロックの内容を交換メモリブロックへ転送することができる。別のメモリ転送ストラテジーは、できるだけ多くの状態を転送し、メモリブロックのほとんどが変更されないと仮定することである。メモリブロックが変更されていないかを判断する1つの方法は、メモリブロックの物理メモリのページのそれぞれについて仮想メモリページテーブルエントリーの変更フラグをチェックすることである。変更フラグがセットされていない場合、メモリブロックは変更されておらず、したがって、転送可能な状態にある。メモリの内容を転送する一定の方法は、他の方法よりも効率的である。たとえば、プロセッサは、メモリセルの内容をプロセッサのレジスタ又はセル内に転送し、次いで、新しいメモリセルへ転送しなければならない。通常、プロセッサは、たとえば64ビットといった、レジスタの最大データ転送幅に制限される。ダイレクトメモリアクセス(DMA)プロセッサ等の専用メモリ転送デバイスは、より大きな「チャンク」で、且つ通例、より高速に、メモリのブロックを転送することができる。DMAプロセッサ等の「バックグラウンドエンジン」は、メモリブロックの内容を転送するのに、プロセッサの介入をほとんど又はまったく必要としない。好ましくは、ドライバモデルが、変更フラグのチェック及び内容の転送を最適な方法で行うことを可能にする。

交換パーティションユニットを受動的にマイグレーションするためのサブルーチンの例示のフロー図を図8に示す。このサブルーチンは、ブロック800で開始する。ブロック800において、メモリが、変更フラグを使用して転送され、変更されたメモリが追跡される。ブロック802において、ローカルオペレーティングシステムは、ブロックの変更フラグをチェックすることによって、変更されているメモリページ、すなわちブロック、の追跡を開始する。ブロック804において、ターゲットのパーティションユニットメモリ、すなわち故障したパーティションユニットメモリの内容は、交換パーティションユニットメモリへ転送される。

図6から図8に示すブロックの動作が行われている間、ローカルオペレーティングシステムが、故障したパーティションユニットを交換する準備をしているときであっても、ローカルオペレーティングシステムで動作している高レベルのアプリケーションは、まだ有用な作業を行うことができることに留意されたい。これは、サブルーチン618、すなわち、交換パーティションユニットの能動的なマイグレーションで行われる動作には当てはまらない。その代わり、このプロセスは、交換を完了するのに必要な動作を除いて、アクティビティが許可されない「クリティカルセクション」に入っていると言うことができる。交換パーティションユニットの能動的なマイグレーションである、プロセスのこのクリティカルセクションを、図9の例示の機能フロー図に示す。好ましくは、クリティカルセクションで費やされる時間は、ローカルオペレーティングシステム上で実行されているアプリケーションへのリモート接続が能動的なマイグレーションに気付くのを回避するために最小にされる。このサブルーチンは、サブルーチン900で開始する。サブルーチン900において、ローカルオペレーティングシステムは、システムを「クワイエス」する。システムをクワイエスするステップの詳細を、図11に示し、以下で説明する。手短に言えば、システムがクワイエスされるとき、割り込みが停止されて、I/Oデバイス及び他のプロセッサが、交換中のプロセッサに割り込みを行うことが妨げられ、メモリ変更は停止される。図9のブロック902に続いて、ローカルオペレーティングシステムは、変更されたメモリを転送する。すなわち、変更フラグがセットされたメモリブロックの内容を転送する。ブロック904において、グローバル管理エンティティは、メモリコントローラルーティングの極小的更新を行う。ブロック906において、ローカルオペレーティングシステムは、故障したプロセッサの状態を保存する。ブロック908において、ローカルオペレーティングシステムは、故障したプロセッサを停止する。故障したプロセッサは、まだパーティションに存在し、故障したプロセッサが、まだパーティションに存在する間、害を及ぼすことができないことを確実にするためにオフにされる。ブロック910において、ローカルオペレーティングシステムは、故障したプロセッサの状態を交換プロセッサに適用する。故障したプロセッサの状態を交換プロセッサに適用するステップは、故障したプロセッサの内部及び外部でアクセス可能なレジスタを交換プロセッサに転送するステップ、交換プロセッサのAPIC IDを故障したプロセッサのAPIC IDに極小的に変更するステップ、及び故障したプロセッサ上でトリガされる割り込みが交換プロセッサ上でトリガされるように割り込み記述子テーブルを変更するステップを含むことができる。ブロック912において、ローカルオペレーティングシステムは、新しいプロセッサ、すなわち交換プロセッサを反映するようにシステム割り込み状態を更新する。すなわち、グローバル割り込み状態は、外部デバイスに、故障したプロセッサの代わりに交換プロセッサにアクセスさせるように変更される。ブロック912の後、このプロセスの交換パーティションユニットのサブルーチンの能動的なマイグレーションは終了する。

図6に示すサブルーチン620、すなわちクリーンアップの詳細を、図10に示す例示のフロー図に示す。クリーンアップサブルーチンは、サブルーチン1002で開始する。サブルーチン1002において、システムは、クワイエス解除される。システムをクワイエス解除する詳細を、図12に示し、以下で説明する。図10のブロック1004において、たとえば図1に示すSP102といったグローバル管理エンティティは、クワイエスが終了したことの通知を受ける。ブロック1008において、故障したパーティションユニットは、物理的に除去される。故障したパーティションユニットの除去は、さまざまな物理デバイスを機械的に除去することを伴う場合もあるし、さまざまな物理デバイスを電気的に絶縁することを伴う場合もある。たとえば、プロセッサが、電気的に接続されたソケットにプラグ接続されている場合、そのプロセッサがプラグ接続されているソケットへの電力をシャットダウンすることによるか、又は、そのプロセッサをソケットから除去することによるかのいずれかによって、そのプロセッサを「物理的に除去」することができる。ブロック1008の後、このサブルーチンは終了する。

故障したパーティションユニットの物理デバイスを除去するブロック1008のアクティビティは、オプションと見なすことができるが、好ましいものである。故障した物理デバイスは、パーティションユニットのルーティングテーブルにまだ入力されている。したがって、一定の状況のもとで、故障した物理デバイスは、システムの他のコンポーネントを混乱させる場合がある。

図9に示すサブルーチン900、すなわちシステムのクワイエスの詳細を、図11に示す例示のフロー図に示す。「クワイエス」という用語は、システムを非アクティブな状態にすることを意味する。システムをクワイエスすることによって、極小的交換の安全な環境が提供される。図11に示すブロック1102において、ローカルオペレーティングシステムは、制御プロセッサ、すなわちクワイエスアクティビティを制御するプロセッサを選択する。この制御プロセッサは、システムのクワイエス及び能動的なマイグレーションを達成する命令のセットを実行する。制御プロセッサを選ぶためのアルゴリズムにはさまざまなものがある。たとえば、交換されていない最も小さな番号を有する最もビジーでないプロセッサを制御プロセッサとするように選択することができる。別の制御プロセッサ候補は、交換プロセスを開始したプロセッサとすることができる。また、複数の制御プロセッサを有することも、通例は最適ではないが、可能である。したがって、単一の制御プロセッサは、限定ではなく例示として解釈されるべきである。

制御プロセッサは、クワイエスサブルーチンの残りの動作を実行する。ブロック1104において、制御プロセッサは、すべての割り込みを停止する。すなわち、物理デバイスが、交換する必要があるプロセッサに割り込むことを停止させる。好ましくは、物理デバイスはクワイエスされる。制御プロセッサは、それらの物理デバイスを制御するデバイスドライバと通信する。物理デバイスが割り込みをトリガすることを防止するために、制御プロセッサは、停止信号、スリープ信号、又はサスペンド信号をデバイスドライバへ送信することができる。同じ信号を使用してメモリアクセスを防止することができる。好ましくは、デバイスドライバを変更する必要なく且つ/又は再コンパイルする必要なく、システムをクワイエスすることができる。ブロック1106において、制御プロセッサは、すべてのダイレクトメモリアクセスを停止する。デバイスドライバがファイルへの書き込み及びDMAの実行を行うことが防止される。デバイスドライバは、割り込み及びDMAの要求をキューに入れることができる。割り込みには、エッジトリガ方式の割り込み及びレベルトリガ方式の割り込みがある。レベルトリガ方式の割り込みは、キューに入れることができる。エッジトリガ方式の割り込みは、直ちにサービスを受けられない場合に喪失される。

図11を続けて、ブロック1108において、制御プロセッサは、すべてのデバイスにおけるアクティビティを停止する。好ましくは、デバイスは、交換中のプロセッサによって使用されているメモリの変更を回避し、交換中のプロセッサの状態の変更を回避する。プロセッサ状態は、そのプロセッサ自体のレジスタ及びメモリ、並びに、プロセッサ状態を記憶するために排他的に割り当てられたプロセッサの外部のメモリを含む。大まかに言えば、交換される予定のパーティションユニットとの通信は停止される。ブロック1110において、制御プロセッサは、動作の一時停止が行われていることを示す信号をアプリケーションへ送信することによって、すべてのアプリケーションをホールトする。ブロック1112において、制御プロセッサは、システムの他のすべてのプロセッサを「ランデブー」させるのに使用される。ランデブーにおいて、制御プロセッサは、それらの他のプロセッサに、交換中のパーティションユニット、すなわち故障したパーティションユニットへのアクセスを停止させる。ブロック1112の後、このサブルーチンは終了する。追加する必要があるパーティションユニットが存在する場合、他のパーティションユニットの交換とは対照的に、クワイエスサブルーチンの後に、追加のパーティションユニットを追加することができる。

コラリング(corralling)としても知られているランデブーでは、制御プロセッサは、プロセッサ間割り込み(IPI)コマンドを他のプロセッサへ送信することによって、他のプロセッサに、交換中のパーティションユニットへのアクセスを停止させる。IPIは、他のプロセッサが共通のバリア上で空転し続けるべきであることを他のプロセッサに示す。すなわち、アプリケーション作業を行うことを停止し、バリアが変化して、アプリケーション作業が再開すべきであることを示すまで、バリア上で空転する。アプリケーションを実行しているプロセッサをバリア上で空転させることによって、アプリケーションが明示的にホールトする必要なく、アプリケーションが交換と干渉することが防止される。好ましくは、アプリケーションには、アプリケーションの目的と一致した方法で一時停止の存在に応答する機会が与えられる。たとえ、アプリケーションが一時停止の存在に応答しない場合であっても、アプリケーションを実行しているプロセッサがランデブーされるとき、アプリケーションが交換と干渉することは自動的に防止される。

バリア上で空転する一例示の場合に、プロセッサが他の命令を実行していないことを確実にするために、各プロセッサは、同じ命令のセットを実行する。これらの命令は、アドレスを読み出すようにそれらのプロセッサに命令し、そのアドレスの内容が0でない場合には、そのアドレスを再び読み出すようにそれらのプロセッサに命令する。制御プロセッサが、アドレスの内容を0に設定するとき、それらのプロセッサは、命令のセットを通り越してステップし、それらのプロセッサがバリア上で空転する前に行っていたものに戻る。プロセッサがバリア上で空転している間、コントローラプロセッサは、受動的なマイグレーション状態で転送することができなかった状態を転送することができると共に、変更されたメモリを転送することができる。

通常のランデブーでは、それぞれがバリアを必要とする複数のステージが存在し得る。たとえば、第1のステージでは、制御プロセッサは、他のプロセッサ用、すなわち非制御プロセッサ用の第1のバリアを設定する。他のプロセッサがバリア上で空転している間、制御プロセッサは、状態を保存するためのデータ構造体をセットアップするコードを実行する。次に、制御プロセッサは、第1のバリアを解放し、状態を保存するように他のプロセッサに命令する。制御プロセッサは、第2のステージ用の第2のバリアを設定する。他のプロセッサが、状態を保存する命令に従ったとき、他のプロセッサは、第2のバリア上で空転する。適切な時、たとえば、他のすべてのプロセッサが状態を保存したとき、制御プロセッサは、第2のバリアを解放し、オフラインになるように他のプロセッサに命令する。

図10に示すサブルーチン1002、すなわちシステムのクワイエス解除の詳細を、図12に示す例示のフロー図に示す。システムのクワイエス解除は、基本的に、システムをクワイエスすることの逆である。クワイエス解除は、ブロック1202で開始する。ブロック1202において、制御プロセッサは、システムの他のすべてのプロセッサをランデブー解除する、すなわち解放するのに使用される。ブロック1204において、すべてのアプリケーションは再開される。より具体的には、プロセスは、アプリケーション自体にトランスペアレントであるので、プロセッサは、アプリケーションからのアクティビティをスケジューリングするのに利用可能である。ブロック1206において、アクティビティが、すべてのデバイスで再開される。ブロック1208において、すべてのダイレクトメモリアクセスが再開される。ブロック1210において、すべての割り込みが再開される。ブロック1210の後、このサブルーチンは終了する。

図6〜図12に示して上述したプロセスは、ローカルオペレーティングシステムが、特定のデバイス用に再コンパイルされる必要なく、パーティションユニットを交換することができることを可能にする。プロセスは、ほとんどのコンピュータ製造業者の機器が、パーティション及びパーティションユニットをサポートする場合に、それらの機器上で動作するように実施することができる。ファームウェアは、特定のハードウェアの詳細を抽象化することを可能にするのに十分なソフトウェア「フック」で記述することができ、したがって、各特定の機器用のファームウェアを記述する労力及び費用を回避することができる。ファームウェアが必要とされる場合があるが、ローカルオペレーティングシステムのプロセスの実施態様は、再コンパイルも再パッケージも再配布も必要とされない。

例示の実施形態を図示して説明してきたが、本発明の趣旨及び範囲から逸脱することなく、それらの実施形態においてさまざまな変更を行えることが理解されよう。

Claims (20)

  1. グローバル管理エンティティによってパーティショニング可能なコンピューティングデバイスのスペアパーティションユニットを管理する方法であって、
    スペアパーティションユニットが、ローカルオペレーティングシステムにおいて追加又は交換に必要とされるか否かを判断するステップ、並びに
    スペアパーティションが追加に必要とされる場合に、スペアパーティションユニットの追加をイニシエートするステップ、そうでない場合に、
    (a)故障したパーティションユニットの、スペアパーティションユニットとの交換をイニシエートするステップ、
    (b)前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに受動的にマイグレーションするステップ、
    (c)前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに能動的にマイグレーションするステップ、及び
    (d)前記パーティショニング可能なコンピューティングデバイスをクリーンアップするステップ、
    を含む、方法。
  2. 請求項1に記載の方法において、前記スペアパーティションユニットの追加をイニシエートするステップは、
    (a)前記グローバル管理エンティティが、追加される前記スペアパーティションユニットをグローバルプールから選択するステップ、
    (b)前記グローバル管理エンティティが、前記選択されたスペアパーティションユニットを該グローバル管理エンティティ内へイニシエートするステップ、
    (c)前記ローカルオペレーティングシステムが、前記選択されたスペアパーティションユニットを、該ローカルオペレーティングシステムのパーティション(「ローカルオペレーティングシステムパーティション」)内へイニシエートするステップ、
    (d)前記グローバル管理エンティティが、前記選択されたスペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに移行させるステップ、及び
    (e)前記ローカルオペレーティングシステムが、前記選択されたスペアパーティションユニットを前記ローカルオペレーティングシステムパーティションにおいて発見すると、前記ローカルオペレーティングシステムが、前記選択されたスペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに追加するステップ、
    を含む、方法。
  3. 請求項1に記載の方法において、前記故障したパーティションユニットの、スペアパーティションユニットとの交換をイニシエートするステップは、
    (a)故障したパーティションユニットが検出されると、前記グローバル管理エンティティが、該故障したパーティションユニットを物理ハードウェアデバイスにマッピングするステップ、
    (b)前記グローバル管理エンティティが、グローバルプールからスペア交換パーティションユニットを選択するステップ、
    (c)前記グローバル管理エンティティが、前記スペアパーティションユニットを該グローバル管理エンティティへイニシエートするステップ、
    (d)前記ローカルオペレーティングシステムが、前記スペアパーティションユニットを該ローカルオペレーティングシステム内へイニシエートするステップ、
    (e)前記グローバル管理エンティティが、前記スペアパーティションユニットを前記ローカルオペレーティングシステムのパーティション(「前記ローカルオペレーティングシステムパーティション」)内へ移動させるステップ、及び
    (f)前記ローカルオペレーティングシステムが、前記ローカルオペレーティングシステムパーティションにおいて前記スペアパーティションを発見すると、前記ローカルオペレーティングシステムが、前記スペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに追加する準備をするステップ、
    を含む、方法。
  4. 請求項3に記載の方法において、パーティションユニットが故障していることの前記検出は、該パーティションユニットのハードウェアIDに基づく予測解析によって判断される、方法。
  5. 請求項1に記載の方法において、前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに受動的にマイグレーションするステップは、
    (a)前記ローカルオペレーティングシステムが、変更フラグを使用して、前記故障したパーティションのメモリを転送して、該故障したパーティションのメモリの変更部分を追跡する、ステップ、及び
    (b)前記グローバル管理エンティティが、メモリ制御ルーティングテーブルの極小的更新を行うステップ、
    を含む、方法。
  6. 請求項1に記載の方法において、前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに能動的にマイグレーションするステップは、
    (a)前記グローバル管理エンティティが、前記パーティショニング可能なコンピューティングデバイスをクワイエスするステップ、
    (b)前記ローカルオペレーティングシステムが、前記故障したパーティションのメモリの変更部分を転送するステップ、
    (c)前記グローバル管理エンティティが、メモリコントローラルーティングテーブルの極小的更新を行うステップ、
    (d)前記ローカルオペレーティングシステムが、前記故障したパーティションユニットのプロセッサの状態を前記スペアパーティションユニットのプロセッサへ転送するステップ、
    (e)前記ローカルオペレーティングシステムが、該ローカルオペレーティングシステムのシステム割り込み状態を変更するステップ、及び
    (f)前記ローカルオペレーティングシステムが、前記故障したパーティションユニットのプロセッサを停止するステップ、
    を含む、方法。
  7. 請求項6に記載の方法において、前記パーティショニング可能なサーバをクリーンアップするステップは、
    (a)前記グローバル管理エンティティが、前記パーティショニング可能なサーバをクワイエス解除するステップ、
    (b)前記ローカルオペレーティングシステムが、前記グローバル管理エンティティに前記交換を通知するステップ、及び
    (c)前記故障したパーティショニングユニットのプロセッサを論理的に除去するステップ、
    を含む、方法。
  8. 請求項7に記載の方法であって、前記故障したパーティションユニットのプロセッサを物理的に除去するステップをさらに含む、方法。
  9. 請求項8に記載の方法において、前記故障したパーティションユニットのプロセッサを物理的に除去するステップは、前記ローカルオペレーティングシステムが、前記故障したパーティションユニットのプロセッサを電気的に絶縁することによって行われる、方法。
  10. 請求項1に記載の方法において、前記故障したパーティションユニットは、コンピュータ実行可能命令を再コンパイルすることなく交換される、方法。
  11. グローバル管理エンティティ及び複数のローカルオペレーティングシステムを備えるパーティショニング可能なコンピューティングデバイスのスペアパーティションユニットを管理するためのコンピュータ実行可能命令を含むコンピュータ可読媒体であって、該コンピュータ実行可能命令は、実行されると、前記グローバル管理エンティティ及び前記複数のローカルオペレーティングシステムのうちの一定のローカルオペレーティングシステムに、
    (a)スペアパーティションユニットが、ローカルオペレーティングシステムにおいて追加又は交換に必要とされるか否かを判断させ、
    (b)スペアパーティションユニットが追加に必要とされる場合に、スペアパーティションユニットの追加をイニシエートさせ、そうでない場合に、
    (i)故障したパーティションユニットの、スペアパーティションユニットとの交換をイニシエートさせ、
    (ii)前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに受動的にマイグレーションさせ、
    (iii)前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに能動的にマイグレーションさせ、且つ
    (iv)前記パーティショニング可能なコンピューティングデバイスをクリーンアップさせる、コンピュータ可読媒体。
  12. 請求項11に記載のコンピュータ実行可能命令において、スペアパーティションユニットの追加をイニシエートさせるステップは、
    (a)追加される前記スペアパーティションユニットをプールから選択するステップ、
    (b)前記選択されたスペアパーティションユニットを前記グローバル管理エンティティ内へイニシエートするステップ、
    (c)前記選択されたスペアパーティションユニットの、ローカルオペレーティングシステムのパーティション(「前記ローカルオペレーティングシステムパーティション」)内への追加をイニシエートするステップ、
    (d)前記選択されたスペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに移行させるステップ、及び
    (e)前記選択されたスペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに追加するステップ、
    を含む、コンピュータ実行可能命令。
  13. 請求項11に記載のコンピュータ可読媒体において、故障したパーティションユニットの、スペアパーティションユニットとの交換をイニシエートさせるステップは、
    (a)故障したパーティションユニットを検出するステップ、
    (b)プールから交換パーティションユニットを選択するステップ、
    (c)前記グローバル管理エンティティにおいて、前記故障したデバイスの交換をイニシエートするステップ、
    (d)前記故障したデバイスの前記ローカルオペレーティングシステム内への交換をイニシエートするステップ、
    (e)前記スペアパーティションユニットを前記ローカルオペレーティングシステムのパーティション(「前記ローカルオペレーティングシステムパーティション」)に移行させるステップ、及び
    (f)前記スペアパーティションユニットを前記ローカルオペレーティングシステムパーティションに追加する準備をするステップ、
    を含む、コンピュータ可読媒体。
  14. 請求項13に記載のコンピュータ可読媒体において、前記故障したパーティションユニットを検出するステップは、予測解析を使用して判断される、コンピュータ可読媒体。
  15. 請求項11に記載のコンピュータ可読媒体において、前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに受動的にマイグレーションさせるステップは、
    (a)変更フラグを使用して、前記故障したパーティションのメモリを転送し、該故障したパーティションのメモリの変更部分を追跡する、ステップ、及び
    (b)メモリコントローラルーティングテーブルの極小的更新を行うステップ、
    を含む、コンピュータ可読媒体。
  16. 請求項11に記載のコンピュータ可読媒体において、前記スペアパーティションユニットを前記故障したパーティションユニットのパーティションに能動的にマイグレーションさせるステップは、
    (a)前記パーティショニング可能なサーバをクワイエスするステップ、
    (b)前記故障した部分のメモリの変更部分を転送するステップ、
    (c)メモリコントローラルーティングテーブルの極小的更新を行うステップ、
    (d)前記故障したパーティションユニットのプロセッサの状態を前記スペアパーティションユニットのプロセッサへ転送するステップ、
    (e)前記ローカルオペレーティングシステムのシステム割り込み状態を変更するステップ、及び
    (f)前記故障したパーティションユニットのプロセッサを停止するステップ、
    を含む、コンピュータ可読媒体。
  17. 請求項16に記載のコンピュータ可読媒体において、前記パーティショニング可能なサーバをクリーンアップさせるステップは、
    (a)前記パーティショニング可能なサーバをクワイエス解除するステップ、
    (b)前記グローバル管理エンティティに前記交換を通知するステップ、
    (c)前記故障したパーティションユニットのプロセッサを論理的に除去するステップ、及び
    (d)前記故障したパーティションユニットのプロセッサを物理的に除去するステップ、
    を含む、コンピュータ可読媒体。
  18. 請求項17に記載のコンピュータ可読媒体において、前記故障したパーティションユニットのプロセッサを物理的に除去するステップは、該故障したパーティションユニットのプロセッサを電気的に絶縁することによって行われる、コンピュータ可読媒体。
  19. 請求項17に記載のコンピュータ可読媒体において、前記故障したパーティションユニットのプロセッサを物理的に除去するステップは、該故障したパーティションユニットのプロセッサを該故障したパーティションユニットのプロセッサのソケットから除去することによって行われる、コンピュータ可読媒体。
  20. 請求項11に記載のコンピュータ可読媒体において、前記故障したパーティションユニットは、コンピュータ実行可能命令の再コンパイルなしで交換される、コンピュータ可読媒体。
JP2009538483A 2006-11-21 2007-11-20 システムハードウェアの交換 Withdrawn JP2010510607A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US86682106P true 2006-11-21 2006-11-21
US86681506P true 2006-11-21 2006-11-21
US86681706P true 2006-11-21 2006-11-21
US11/675,272 US7877358B2 (en) 2006-11-21 2007-02-15 Replacing system hardware
PCT/US2007/085180 WO2008073683A1 (en) 2006-11-21 2007-11-20 Replacing system hardware

Publications (1)

Publication Number Publication Date
JP2010510607A true JP2010510607A (ja) 2010-04-02

Family

ID=39418284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009538483A Withdrawn JP2010510607A (ja) 2006-11-21 2007-11-20 システムハードウェアの交換

Country Status (10)

Country Link
US (1) US7877358B2 (ja)
EP (1) EP2084600A1 (ja)
JP (1) JP2010510607A (ja)
KR (1) KR20090081404A (ja)
AU (1) AU2007333390A1 (ja)
BR (1) BRPI0717617A2 (ja)
CA (1) CA2665991A1 (ja)
MX (1) MX2009004896A (ja)
NO (1) NO20091730L (ja)
WO (1) WO2008073683A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745441B2 (en) 2006-11-21 2014-06-03 Microsoft Corporation Processor replacement
KR20180034960A (ko) * 2016-09-28 2018-04-05 한국전자통신연구원 플랫폼 관리 장치 및 방법

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473460B2 (en) * 2006-11-21 2013-06-25 Microsoft Corporation Driver model for replacing core system hardware
US8086906B2 (en) 2007-02-15 2011-12-27 Microsoft Corporation Correlating hardware devices between local operating system and global management entity
US20080256530A1 (en) * 2007-04-16 2008-10-16 William Joseph Armstrong System and Method for Determining Firmware Compatibility for Migrating Logical Partitions
US8019962B2 (en) * 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
US7849347B2 (en) * 2007-04-16 2010-12-07 International Business Machines Corporation System and method for updating a time-related state of a migrating logical partition
US8140822B2 (en) * 2007-04-16 2012-03-20 International Business Machines Corporation System and method for maintaining page tables used during a logical partition migration
US8127289B2 (en) * 2007-06-27 2012-02-28 International Business Machines Corporation Enabling a third party application to participate in migration of a virtualized application instance
US7822895B1 (en) * 2007-12-28 2010-10-26 Emc Corporation Scalable CPU (central processing unit) modules for enabling in-place upgrades of electronics systems
US7966519B1 (en) * 2008-04-30 2011-06-21 Hewlett-Packard Development Company, L.P. Reconfiguration in a multi-core processor system with configurable isolation
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
JP5403054B2 (ja) * 2009-07-10 2014-01-29 富士通株式会社 メモリダンプ機能を有するサーバおよびメモリダンプ取得方法
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8407516B2 (en) * 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
US8285915B2 (en) 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
US20110230711A1 (en) * 2010-03-16 2011-09-22 Kano Akihito Endoscopic Surgical Instrument
US8769155B2 (en) 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US8576703B2 (en) 2010-03-19 2013-11-05 Brocade Communications Systems, Inc. Synchronization of multicast information using bicasting
US8495418B2 (en) * 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
JPWO2012090290A1 (ja) * 2010-12-27 2014-06-05 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US8892965B2 (en) * 2012-05-11 2014-11-18 Unisys Corporation Automated trouble ticket generation
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
JP6083136B2 (ja) 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
CN104508636B (zh) * 2012-07-31 2017-10-31 英派尔科技开发有限公司 数据管理设备、系统和方法
US9110731B1 (en) 2012-08-15 2015-08-18 Xiotech Corporation Hard allocation of resources partitioning
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9430150B2 (en) * 2013-01-28 2016-08-30 Dell Products, Lp Power control for data storage devices and method therefor
JP6029737B2 (ja) * 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
JP6175958B2 (ja) * 2013-07-26 2017-08-09 富士通株式会社 メモリダンプ方法及びプログラム、並びに、情報処理装置
JP6135403B2 (ja) * 2013-08-27 2017-05-31 富士通株式会社 情報処理システム、情報処理システムの障害処理方法
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US9495107B2 (en) * 2014-11-19 2016-11-15 International Business Machines Corporation Dynamic relocation of storage
US10360114B2 (en) * 2016-02-24 2019-07-23 Quanta Computer Inc. Hardware recovery systems

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69113181D1 (de) 1990-08-31 1995-10-26 Ibm Verfahren und Gerät zur Querteilungssteuerung in einer verteilten Verarbeitungsumgebung.
US5689701A (en) 1994-12-14 1997-11-18 International Business Machines Corporation System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US6421679B1 (en) 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5815731A (en) 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US5991777A (en) 1997-09-19 1999-11-23 Microsoft Corporation System and method for performing defined actions when grafting the name space of one storage medium into the name space of another storage medium
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6226734B1 (en) 1998-06-10 2001-05-01 Compaq Computer Corporation Method and apparatus for processor migration from different processor states in a multi-processor computer system
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6247109B1 (en) 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6295575B1 (en) 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6546415B1 (en) 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
FR2798755B1 (fr) 1999-09-16 2001-11-02 Bull Sa Systeme d'administration pour machines multimodulaires multiprocesseurs
US6598174B1 (en) * 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6684343B1 (en) 2000-04-29 2004-01-27 Hewlett-Packard Development Company, Lp. Managing operations of a computer system having a plurality of partitions
US6574748B1 (en) 2000-06-16 2003-06-03 Bull Hn Information Systems Inc. Fast relief swapping of processors in a data processing system
US6779094B2 (en) 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
US6895586B1 (en) 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US6907474B2 (en) 2000-09-15 2005-06-14 Microsoft Corporation System and method for adding hardware registers to a power management and configuration system
WO2002065290A1 (en) 2001-02-13 2002-08-22 Candera, Inc. Failover processing in a storage system
US20020170039A1 (en) 2001-02-22 2002-11-14 Kovacevic Branko D. System for operating system and platform independent digital stream handling and method thereof
US7065761B2 (en) 2001-03-01 2006-06-20 International Business Machines Corporation Nonvolatile logical partition system data management
US6829729B2 (en) 2001-03-29 2004-12-07 International Business Machines Corporation Method and system for fault isolation methodology for I/O unrecoverable, uncorrectable error
US6742138B1 (en) * 2001-06-12 2004-05-25 Emc Corporation Data recovery method and apparatus
JP3891004B2 (ja) 2002-02-26 2007-03-07 日本電気株式会社 情報処理システム及び該システムの制御方法並びにプログラム
US7051243B2 (en) 2002-04-30 2006-05-23 Sun Microsystems, Inc. Rules-based configuration problem detection
US7480911B2 (en) 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
JP3640187B2 (ja) 2002-07-29 2005-04-20 日本電気株式会社 マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
US6792520B2 (en) 2002-08-07 2004-09-14 Hewlett-Packard Development Company, L.P. System and method for using a using vendor-long descriptor in ACPI for the chipset registers
US7114064B2 (en) 2002-11-14 2006-09-26 Hewlett-Packard Development Company, L.P. System and method for accessing an advanced configuration and power interface (ACPI) namespace nodal tree
US7275180B2 (en) 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
US20050283641A1 (en) * 2004-05-21 2005-12-22 International Business Machines Corporation Apparatus, system, and method for verified fencing of a rogue node within a cluster
US7426657B2 (en) 2004-07-09 2008-09-16 International Business Machines Corporation System and method for predictive processor failure recovery
US7343515B1 (en) 2004-09-30 2008-03-11 Unisys Corporation System and method for performing error recovery in a data processing system having multiple processing partitions
US20060095624A1 (en) 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US7325163B2 (en) 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
US7861106B2 (en) 2005-08-19 2010-12-28 A. Avizienis And Associates, Inc. Hierarchical configurations in error-correcting computer systems
TWI299121B (ja) 2005-08-24 2008-07-21 Mitac Int Corp
US7546487B2 (en) 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US7543182B2 (en) 2006-01-12 2009-06-02 International Business Machines Corporation Automated failover system for logical partitions
US7461241B2 (en) 2006-07-31 2008-12-02 International Business Machines Corporation Concurrent physical processor reassignment method
US7934121B2 (en) 2006-11-21 2011-04-26 Microsoft Corporation Transparent replacement of a system processor
US8473460B2 (en) 2006-11-21 2013-06-25 Microsoft Corporation Driver model for replacing core system hardware
US8086906B2 (en) 2007-02-15 2011-12-27 Microsoft Corporation Correlating hardware devices between local operating system and global management entity

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745441B2 (en) 2006-11-21 2014-06-03 Microsoft Corporation Processor replacement
KR20180034960A (ko) * 2016-09-28 2018-04-05 한국전자통신연구원 플랫폼 관리 장치 및 방법
KR101989033B1 (ko) * 2016-09-28 2019-06-13 한국전자통신연구원 플랫폼 관리 장치 및 방법

Also Published As

Publication number Publication date
AU2007333390A1 (en) 2008-06-19
US20080120518A1 (en) 2008-05-22
KR20090081404A (ko) 2009-07-28
NO20091730L (no) 2009-04-30
US7877358B2 (en) 2011-01-25
CA2665991A1 (en) 2008-06-19
EP2084600A1 (en) 2009-08-05
MX2009004896A (es) 2009-06-18
WO2008073683A1 (en) 2008-06-19
BRPI0717617A2 (pt) 2013-10-22

Similar Documents

Publication Publication Date Title
US10162658B2 (en) Virtual processor allocation techniques
US10261800B2 (en) Intelligent boot device selection and recovery
US20160378506A1 (en) Efficient power management of a system with virtual machines
JP5769212B2 (ja) 仮想マシンをフォークまたはマイグレートするための方法
US9798556B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
US8732705B2 (en) Method and system for virtual machine migration
KR102047558B1 (ko) 가상 디스크 저장 기술
US8271743B2 (en) Automated paging device management in a shared memory partition data processing system
US20160299774A1 (en) Techniques for Migrating a Virtual Machine Using Shared Storage
JP2014142957A (ja) 1つ以上の仮想マシンをマイグレートするシステムおよび方法
US9110702B2 (en) Virtual machine migration techniques
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
US8365167B2 (en) Provisioning storage-optimized virtual machines within a virtual desktop environment
US20140196040A1 (en) Virtual machine crash file generation techniques
US7434224B2 (en) Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US8402462B2 (en) Detection and management of dynamic migration of virtual environments
AU2002324671B2 (en) Computer system partitioning using data transfer routing mechanism
US8352933B2 (en) Concurrent patching of operating systems
US7257811B2 (en) System, method and program to migrate a virtual machine
JP3910554B2 (ja) 論理パーティション・データ処理システムでのエラーまたはイベントを処理する方法、コンピュータ・プログラム、データ処理システム
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
TWI414943B (zh) 拖延dma操作以利用轉換控制項機制之遷移進展位元進行記憶體遷移
US7937518B2 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110201