JP6530774B2 - ハードウェア障害回復システム - Google Patents

ハードウェア障害回復システム Download PDF

Info

Publication number
JP6530774B2
JP6530774B2 JP2017032791A JP2017032791A JP6530774B2 JP 6530774 B2 JP6530774 B2 JP 6530774B2 JP 2017032791 A JP2017032791 A JP 2017032791A JP 2017032791 A JP2017032791 A JP 2017032791A JP 6530774 B2 JP6530774 B2 JP 6530774B2
Authority
JP
Japan
Prior art keywords
component
sleep state
system component
hardware
error
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.)
Active
Application number
JP2017032791A
Other languages
English (en)
Other versions
JP2017224272A (ja
Inventor
チョウ、レ−シェン
チェイン、ウェイ−ユ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2017224272A publication Critical patent/JP2017224272A/ja
Application granted granted Critical
Publication of JP6530774B2 publication Critical patent/JP6530774B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、ハードウェア障害回復に関するものであって、特に、ホットプラグのサポートがないハードウェア障害回復のメカニズムに関するものである。
コンピュータのパフォーマンスおよび処理能力は、過去数十年で大幅に、且つ安定して成長している。当然のことながら、コンピュータシステム、たとえばサーバはますます複雑になり、プロセッサ、メモリ、およびアドインカード等の、搭載する部品の数量およびタイプも増加している。多くの専門家がこれは未来の趨勢であると考えている。
しかし、ハードウェアコンポーネントの数量と複雑度の増加に伴い、コンピュータシステムは装置の故障の問題が増加している。実際、装置故障は、特に、さらに大きくさらに複雑な環境や機構(たとえば、データセンターやラックスケール機構)において、システム管理者がよく直面する問題である。不幸なことに、装置故障は強大な破壊性を有する。装置故障は、たとえばコンピューティングやネットワークサービスの周期を長くし、時に、データ損失を招く。
装置故障を修復するため、システム管理者は、通常、手動のハードウェア障害回復プロセスを実行しなければならない。このハードウェア障害回復プロセスは、システムまたはサーバの電源を切断して、故障したシステムコンポーネントを代替する工程を有する。障害回復プロセス全体の効率は低く、且つユーザーへのサービスが中断する恐れがある。さらに、ユーザー入力に依存して障害回復プロセスのある工程を完成することは、さらにシステムの障害回復を遅延させ、さらに多くのサービス中断を招く可能性がある。
本発明は、ハードウェア障害回復システムを提供する。
本発明の特徴や長所は以下に記述されるとともに、一部は記述中から明らかにされる。または、ここで開示される原理により実践されて知ることができる。本発明の追加的な特徴と長所は、装置の方法、および、請求項中で示される特別な組み合わせにより理解され、獲得される。本発明のこれら、およびその他の特徴は、以下の記述と請求項によって十分に明らかになり、または、本開示中で記述される原理の実践により知ることができる。
本文で記述される方法が用いられることにより、ホットプラグのサポートなしで、故障のシステムコンポーネントを代替することができる。特に、本文で記述される方法は、システムを再起動またはリブートしない、または代替システムコンポーネントの再配置の必要がない状況下でも、故障のシステムコンポーネントを代替することができる。システムは、故障のタイプ、および/または、代替される部品のタイプに基づいて、特定のスリープ状態に置かれる。部品が代替されるとき、特定のスリープ状態は、システムの実行を継続して、システムを再起動またはリブートしなければならないことを防ぐ。このメカニズムは、ホットプラグのサポートがない状況下で、故障した部品を代替するとともに、システム休止時間を最小化、または制限するのに効果的な方法である。
自動ハードウェア障害回復のシステム、方法、および持続性コンピュータ読み取り可能ストレージ媒体が開示される。いくつかの実施形態において、システムは、ハードウェアエラーを検出するとともに、ハードウェアエラーに関連するシステムコンポーネント(たとえば、プロセッサ、メモリ、ストレージ、電源、周辺装置等)を識別する。
システムは、スリープ状態要求を生成して、システムの操作システムをトリガーして、システムを特定のスリープ状態にする。よって、システムは、操作システムが、システムを特定のスリープ状態に置かせて、ハードウェアエラーに関連するハードウェアコンポーネントを代替する。特定のスリープ状態は、システムコンポーネントに関連するコンポーネントのタイプに基づいて決定される。たとえば、コンポーネントのタイプが周辺装置である場合(たとえば、PCIエクスプレス)、システムがディープスリープ状態に置かれて、システムを再起動せずに、周辺装置を代替する。別の例では、コンポーネントのタイプが、プロセッサ、メモリ、または電源である場合、故障したコンポーネントが代替されるとき、システムは更にディープなスリープ状態に置かれ、システムを最小リソースで運転する。スリープまたはその他の状態の任意のレベルが考慮される。
よって、コンポーネントのタイプが周辺装置であるとき、特定のスリープ状態は第一スリープ状態、すなわち、ディープスリープ状態であり、コンポーネントのタイプが、プロセッサ、メモリ、または電源ユニットであるとき、第二スリープ状態、すなわち、最深スリープ状態である。第一スリープ状態と比べて第二スリープ状態は低い電源リソース消耗、および/または長い回復遅延である。第一スリープ状態は第二スリープ状態より深いか、または両スリープ状態は同じかほぼ同じである。状態のその他の組み合わせも考慮される。
システムが特定のスリープ状態に置かれた後、システムは指示を生成し、システムコンポーネントが、システムの操作システムを再起動しない状況下で代替されることを示す。指示は、システムがシステムコンポーネントに関連するコンポーネントのタイプに対応する特定のスリープ状態にある、および/または、システムが特定の操作状態にある(たとえば、使用リソースの減少、サービス、電力、装置、操作周期、操作パラメータ等に関連する操作状態)という判断に基づいて生成される。さらに、システムが、部品の交換の準備をしているとき、指示が生成される。つまり、指示は、システムが、システムおよび/または操作システムを再起動しない状況下で特定の部品が代替される状況にあるか否かの判断に基づいて生成される。前述のように、システム再起動またはリブートされない特定の状態で、コンポーネントのタイプ(たとえば、周辺装置、プロセッサ、メモリ、ストレージデバイス、電源等)に基づいて、部品の交換が可能である。
一旦、システムが、指示に基づいてレディ状態になると、エラーに関連するハードウェアコンポーネントが代替ハードウェアコンポーネントにより代替される。代替ハードウェアコンポーネントは、部品のタイプ、技術規格のタイプ、部品を作動または配置する関連ドライバ、部品を作動させるまたは配置する関連プログラム、ハードウェアまたはシステム要求、関連配置、ブランド、モデル、バージョン等の観点において、ハードウェアコンポーネントと同じである。
システムが、システムを再起動/リブートしない、システムコンポーネントを再配置しない、関連するアプリケーションを再起動しない状況等、特定のスリープ状態にあるとき、代替システムコンポーネントが代替される。さらに、たとえば、システム、システムコンポーネント、および/または代替システムコンポーネントが、ホットプラグまたはホットスワップ技術をサポートしていなくても、システムコンポーネントは代替システムコンポーネントにより代替される。システムコンポーネントが代替システムコンポーネントにより代替された後、システムは、特定のスリープ状態から一般の操作状態に転換されるとともに、一般操作を続行する。システムは、その後、システムコンポーネントのエラーの前と同じ方法によって代替システムコンポーネントを用いる。前述のように、“スリープ”状態が記述される場合において、任意のその他のタイプの可能なシステムコンポーネントの代替状態を適用することもできる。
本発明の上述の、およびその他の長所と特徴を得る方式を記述するため、前述の簡単に描写された原理は、更に具体的に、図面で示される具体的な実施形態により説明する。これらの図面は、本発明の例を示すものであり、本発明を限定するものではないことを理解すべきである。本発明の原理は、図面の描写、および、付加された特徴と詳細の解釈によって説明される。
本発明のシステムの第一実施形態を示す図である。 本発明のシステムの第二実施形態を示す図である。 仮想環境のシステムを示す図である。 ハードウェアコンポーネントを代替するスリープ状態メカニズムを実行するシステムを示す図である。 スリープ状態表である。 ハードウェア障害回復、または交換手順の各種部品間の通信を示す図である。 仮想マシンマネージャーにより、リソースおよびVMsを障害回復する故障障害回復表である。 ハードウェア障害回復工程の実行方法のフローチャートである。 システム内のハードウェアエラーを監視および識別する方法のフローチャートである。 代替システムコンポーネントの検査方法のフローチャートである。 ソフトウェア復元可能性を決定する方法のフローチャートである。
本発明の各種実施形態が以下で詳細に討論される。特定の実施が討論されるが、これは説明のためのものであると理解すべきである。当業者なら、本発明の精神を逸脱することなく、その他の部品や配置を用いることができる。
本発明の追加的な特徴や長所は以下に記述されるとともに、一部分は、記述中から明白であるか、または、開示される原理の実施により理解できる。本発明の特徴と長所は、請求項中で特別に示される手段、およびその組み合わせにより実現および取得できる。本発明の特徴、およびその他の特徴は、以下の記述と請求項からさらに完全に明白になり、または本発明で記述される原理を実施することにより理解できる。
説明を簡潔にするため、適当な状況下で、符号は異なる図面で重複使用されており、それらは対応する、または類似の部品を示すことを理解すべきである。このほか、実施形態の十分な理解を提供すべく大量の詳細が記述されている。しかし、当業者なら理解できることは、ここで記述される実施形態はこれらの特定の詳細がなくても実現できることである。その他の実施形態において、記述される相関特徴が曖昧にならないようにするため、工程や部品が詳述されていない。図面は必ずしも、寸法通り描かれておらず、且つある部分の比率は拡大されることにより、詳細と特徴をさらに説明しており、発明の実施形態の範囲を制限するものではない。
“結合”という用語は接続として定義され、直接または間接的に中間部品を通過してもよく、且つ物理的な接続に制限されない。“実質上”という用語は、基本的に、特定の部品(たとえば、要求、装置、特性、特徴、状態等)に適合するものとして、または部品を修飾するその他の語句として定義されるものであり、部品が精確である必要がない。たとえば、操作状態が機能的に所定のスリープ状態に似ている場合、操作状態は所定のスリープ状態と実質上同じであると理解されるが、所定のスリープ状態とは若干異なる。
ここで使用される“スリープ状態”というのは、増加したハードウェア遅延および/または減少した処理周期、電源状態および/または消耗、リソース使用および/または分配、アクティビティ、サービス、プロセス、メモリ、分配、計算タスク、プロセッサクロック、バスクロック等により特徴付けされるコンピューティング装置の操作状態のことである。たとえば、“スリープ状態”は、ハイバネーション状態、ハードウェアおよび/またはソフトウェア定義(たとえば、ACPI、OS等)スリープ状態(たとえば、状態S1、S2、S3、およびS4)、中間状態、またはハイブリッド状態(たとえば、ハイバネーションとスリープ状態の組み合わせ)を有する。さらに、ある状況において、コンピュータシステムが“スリープ状態”であるとき、コンピューティング装置は、少なくとも一部のコンピューティング装置のメモリ状態、および/または一つ以上のストレージまたはメモリ位置中の操作環境(物理、および/または、仮想)を保留する。
本発明は、ハードウェア障害回復システム、方法、および持続性コンピュータ読み取り可能ストレージ媒体を開示する。まず、簡単に、ハードウェア障害回復システムの例示的システムと配置を説明する。ハードウェア障害回復メカニズムの詳細な記述は、例や変化を含み、以下で記述する。これらの変化は、各種実施形態として記述される。本発明は、図1Aおよび図1Bを参照する。
図1Aおよび図1Bはシステムの実施形態を示す図である。本発明の技術を実施するとき、当業者なら適切な実施形態を理解することができる。当業者なら、さらにその他の可能な実施形態も容易に理解することができる。
図1Aは、システムバスコンピュータシステム機構であるシステム100を示す図で、システムの部品は、バス102を用いて互いに電気的に通信する。システム100は、処理ユニット(CPUまたはプロセッサ)130、および各種システムコンポーネントをプロセッサ130に結合するシステムバス102を有し、システムコンポーネントは、メモリ104、たとえば読み取り専用メモリ(ROM)106、およびランダムアクセスメモリ(RAM)108を含む。システム100は直接接続、近接して接続、またはプロセッサ130の一部として統合される高速メモリのキャッシュを有する。システム100は、メモリ104、および/またはストレージデバイス112から、キャッシュ128にデータを複製して、プロセッサ130により素早くアクセスされる。このような方式で、キャッシュはパフォーマンスブーストを提供し、データを待つ間のプロセッサ130の遅延を防止する。これら、およびその他のモジュールは、プロセッサ130を制御する、または制御するように設定されて各種動作を実行する。別のシステムメモリ104も同様に使用することができる。メモリ104は、異なるパフォーマンス特性を有する複数の異なるタイプのメモリを有する。プロセッサ130は、任意の汎用目的プロセッサ、およびハードウェアモジュール、またはソフトウェアモジュール、たとえばストレージデバイス112中に保存される第1モジュール114、第2モジュール116、および、第3モジュール118を有し、プロセッサ130および特殊用途プロセッサを制御し、ソフトウェア指令は実際のプロセッサ設計に組み込まれる。プロセッサ130は、実質上、完全に独立したコンピューティングシステムであり、複数のコア、またはプロセッサ、バス、メモリコントローラ、キャッシュ等を含む。マルチコアプロセッサは対称または非対称である。
ユーザーがシステム100と相互作用できるようにするため、入力装置120は、任意の数量の入力メカニズム、たとえば、スピーチのマイクロフォン、ジェスチャーやグラフィカル入力のタッチスクリーン、キーボード、マウス、動き入力、スピーチ等を表す。出力装置122は、従来の技術で知られる一つ、または、それ以上の数量の出力メカニズムである。ある状況下で、マルチモーダルシステムは、ユーザーが、システム100と通信する複数のタイプの入力を提供できるようにする。通信インターフェース124は、通常、ユーザー入力とシステム出力を統治、および、管理することができる。任意の特定のハードウェア配置における制限がなく、よって、ハードウェアやファームウェアが開発されるとき、ここでの基本的特徴は、容易に置換されて、ハードウェア、または、ファームウェア配置を改善することができる。
ストレージデバイス112は不揮発性メモリであり、且つ、ハードディスク、または、その他のタイプのコンピュータ読み取り可能媒体であり、コンピュータ読み取り可能媒体は、コンピュータ、たとえば、磁気カセット、フラッシュメモリカード、固体メモリ装置、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)108、読み取り専用メモリ(ROM)106、および、それらの混合によりアクセス可能なデータデータを保存する。
ストレージデバイス112は、ソフトウェアモジュール114、116、118を有して、プロセッサ130を制御する。その他のハードウェア、または、ソフトウェアモジュールも含まれる。ストレージデバイス112は、システムバス102に接続される。一態様において、特定の機能を実行するハードウェアモジュールは、必要なハードウェアコンポーネント、たとえば、プロセッサ130、バス102、ディスプレイ136等と接続するコンピュータ読み取り可能媒体中に保存されるソフトウェアコンポーネントを有して、機能を実行する。
コントローラ110は、システム100上の専門のマイクロコントローラ、または、プロセッサ、たとえば、BMC(基板管理コントローラ)である。一部の例では、コントローラ110は、インテリジェントプラットフォーム管理インターフェイス(IPMI)の一部である。さらに、一部の例では、コントローラ110は、システム100のマザーボード、または、メイン回路板に組み込まれる。コントローラ110は、システム管理ソフトウェアとプラットフォームハードウェア間のインターフェースを管理することができる。コントローラ110は、また、各種システムデバイス、および、部品(内部、および/または、外部)、たとえば、コントローラ、または、周辺装置と通信し、以下で更に記述する。
コントローラ110は、通知、警告、および/または、事象に特定の対応を生成するとともに、遠隔装置、または、部品と通信(たとえば、電子メールメッセージ、ネットワークメッセージ等)して、自動ハードウェア障害回復工程等の指令や命令を生成する。システム管理者は、コントローラ110と遠隔通信して、特定のハードウェア障害回復工程、または、操作を初期化、または、実行し、以下で更に記述する。
システム100上の異なるタイプのセンサー(たとえば、センサー126)は、コントローラ110に、パラメータ、たとえば、冷却ファン速度、電力状態、操作システム(OS)状態、ハードウェア状態等を報告することができる。コントローラ110は、さらに、システムイベントログコントローラ、および/または、ストレージを有して、コントローラ110により受信される事象、警告、および、通知を管理、および、保存する。たとえば、コントローラ110、または、システムイベントログコントローラは、一つ以上の装置、および、部品から、警告、または、通知を保存するとともに、警告、または、通知をシステムイベントログストレージコンポーにネント中に保存する。
フラッシュメモリ132は、ストレージ、および/または、データ転送に用いられるシステム100により用いられる電子不揮発性コンピュータストレージ媒体、または、チップである。フラッシュメモリ132は、電気的に消去、および/または、再プログラム化される。フラッシュメモリ132は、たとえば、消去可能PROM(EPROM)、電気的に消去可能PROM(EEPROM)、ROM、NVRAM、または、相補型MOS(CMOS)を有する。フラッシュメモリ132は、システム100が起動するとき、システム100により実行されるファームウェア134、および、ファームウェア134に指定される一組の設定を保存する。フラッシュメモリ132は、さらに、ファームウェア134により用いられる配置を保存することができる。
ファームウェア134は、ベーシックインプット/アウトプットシステム(BIOS)、または、その後継、または、等価な部品、たとえば、エクステンシブルファームウェアインターフェース(EFI)、または、ユニファイドエクステンシブルファームウェアインタフェース(UEFI)を有する。システム100が起動されるたびに、ファームウェア134は、シーケンスプログラムとしてロード、および、実行される。ファームウェア134は、一組の配置に基づいて、システム100中に存在するハードウェアを識別、初期化、並びに、テストする。ファームウェア134は、システム100上で、セルフテスト、たとえば、パワーオンセルフテスト(POST)を実行する。このセルフテストは、各種ハードウェアコンポーネント(たとえば、ハードディスクドライブ、光学読み取り装置、冷却装置、メモリモジュール、拡張カード等)の機能性をテストする。ファームウェア134は、メモリ104、ROM106、RAM108、および/または、ストレージデバイス112中の一領域をアドレス、および、割り当てて、操作システム(OS)を保存する。ファームウェア134は、ブートローダーおよび/または、OSをロードするとともに、システム100の制御権をOSに与える。
システム100のファームウェア134は、どのように、ファームウェア134が、システム100中で、各種ハードウェアコンポーネントを制御するかを定義するファームウェア配置を有する。ファームウェア配置は、システム内の各種ハードウェアコンポーネントが起動される順番を判断する。ファームウェア134は、各種異なるパラメータの設定を許可するインターフェース(たとえば、UEFI)を提供し、これは、ファームウェアデフォルト設定のパラメータと異なる。たとえば、ユーザー(たとえば、システム管理者)は、ファームウェア134を用いて、クロック、および、バス速度を指定し、どの周辺設備をシステム100に取り付けるか指定し、監視の状態(たとえば、ファン速度、および、CPU温度制限)を指定し、システム100のパフォーマンス全体、および、電力使用量に影響する多種のその他のパラメータを指定する。
ファームウェア134は、フラッシュメモリ132中に保存されるように説明されているが、当業者なら理解できるように、ファームウェア134は、その他のメモリ、部品、たとえば、メモリ104、または、ROM106中に保存することができる。しかし、示されるフラッシュメモリ132中に保存されるファームウェア134は説明の目的であり、これに限定しない。
システム100は一つ以上のセンサー126を有する。一つ以上のセンサー126は、たとえば、一つ以上の温度センサー、サーマルセンサー、酸素センサー、化学センサー、ノイズセンサー、ヒートセンサー、電流センサー、電圧検出器、気流センサー、流量センサー、赤外線放射温度計、熱流束センサー、温度計、高温計等を有する。一つ以上のセンサー126は、たとえば、バス102により、プロセッサ、キャッシュ128、フラッシュメモリ132、通信インターフェース124、メモリ104、ROM106、RAM108、コントローラ110、および、ストレージデバイス112と通信する。一つ以上のセンサー126は、また、一つ以上の異なる手段、たとえば、アイスクエアドシー(I2C)、汎用並列出力(GPO)等により、システム内のその他の部品と通信する。
図1Bは、記述方法、または、操作を実行するチップセット機構を有し、グラフィカルユーザーインターフェース(GUI)を生成、ならびに、表示するのに用いられるコンピュータシステム150を示す図である。コンピュータシステム150は、コンピュータハードウェア、ソフトウェア、および、ファームウェアを有し、本発明の技術を実行する。システム150は、プロセッサ160を有し、任意の数量の物理的、および/または、論理的に異なるリソースを表し、ソフトウェア、ファームウェア、および、識別された計算を実行するハードウェアを実行することができる。プロセッサ160は、プロセッサ160からの入出力を制御することができるチップセット152と通信する。この例において、チップセット152は、情報を出力装置164、たとえば、ディスプレイに出力するとともに、ストレージデバイス166(磁気媒体、固体媒体を有する)と情報を読み書きする。チップセット152も、RAM168とデータをやり取りする。各種ユーザーインターフェース装置156と相互作用するブリッジ154が提供されて、チップセット152と相互作用する。このようなユーザーインターフェース装置156は、キーボード、マイクロフォン、タッチ検出、および、処理回路、ポインティングデバイス(マウス等)を有する。一般に、システム150への入力は、任意の各種ソース、機器生成、および/または、使用者の生成による入力である。
チップセット152も、異なる物理インターフェースを有する一つ以上の通信インターフェース158と相互作用する。このような通信インターフェースは、有線、および、無線のローカルエリアネットワーク、広域帯域幅ネットワーク、および、パーソナルエリアネットワークのインターフェースを有する。本発明におけるGUIを生成、表示、および、使用する方法のいくつかの応用は、物理インターフェースにより、または、ストレージデバイス166、または、RAM168中に保存されるデータを分析するプロセッサ160によって、機器自身により生成された順序付けられたデータセットを受信する工程を有する。さらに、機器は、ユーザーインターフェース装置156により、ユーザーからの入力を受信するとともに、適当な機能を実行し、たとえば、プロセッサ160を用いて、これらの入力を解釈することによりブラウズ機能を実行する。
さらに、チップセット152は、電源が起動するとき、コンピュータシステム150により実行されるファームウェア162と通信することができる。ファームウェア162は、一組のファームウェア配置に基づいて、コンピュータシステム150中に存在するハードウェアを認識、初期化、および、テストすることができる。ファームウェア162は、システム150で、セルフテスト、たとえば、POSTを実行する。セルフテストは、各種ハードウェアコンポーネント152〜168の機能をテストすることができる。ファームウェア162は、メモリ168中の一領域をアドレス、および、割り当てて、OSを保存する。ファームウェア162は、ブートローダー、および/または、OSをロードするともに、システム150の制御権をOSに与える。一部の例では、ファームウェア162は、ハードウェアコンポーネント152〜160、および、164〜168と通信する。ここで、ファームウェア162は、チップセット152、および/または、一つ以上のその他の部品により、ハードウェアコンポーネント152〜160、および、164〜168と通信する。一部の例では、ファームウェア162は、ハードウェアコンポーネント152〜160、および、164〜168と直接通信することができる。
理解できることは、例示的システム100、および、150は、二個以上のプロセッサ(たとえば、130、160)を有する、または、ネットワークにより接続されるコンピューティング装置の一群、または、クラスタであり、良い処理能力を提供する。
説明をわかりやすくするため、ある実施形態において、本発明の技術は、独立した機能ブロックを含み、機能ブロックは、装置、装置の部品、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで具体化される方法中の工程やルーティンを有する。
いくつかの実施形態において、コンピュータ可読ストレージデバイス、媒体、および、メモリは、ビットストリーム等を含むケーブルや無線信号を有する。しかし、言及されるとき、持続性コンピュータ読み取り可能ストレージ媒体は、エネルギー、キャリア信号、電磁波、および、信号自身等の媒体を明確に排除する。
上記の例における方法は、コンピュータ実行可能命令を用いて実施され、コンピュータ実行可能命令は、コンピュータ読み取り可能媒体から保存される、または、利用可能である。このような指令は、たとえば、指令、および、データは、汎用目的コンピュータ、特殊用途コンピュータ、または、特殊用途処理装置を配置して、ある機能、または、機能の群を実行する。用いられるコンピュータリソースの一部は、ネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、バイナリー、中間フォーマット指令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。コンピュータ読み取り可能媒体の例は、指令、使用した情報、および/または、方法の期間中に生成された情報の保存に用いられ、コンピュータ読み取り可能媒体は、記述される例に従って、磁気、または、光学ディスク、フラッシュメモリ、USBデバイスを有し、磁気、または、光学ディスク、フラッシュメモリ、USBデバイスは、不揮発性メモリ、ネットワークストレージデバイス等に提供される。
これらの開示における方法を実施する装置は、ハードウェア、ファームウェア、および/または、ソフトウェアを有し、任意の各種フォームファクタを利用する。このようなフォームファクタの一般的な例は、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、PDA、ラックマウント型装置、スタンドアロン装置等を有する。ここで記述される機能性は、さらに、周辺装置、または、アドインカードで具体化される。さらなる例として、このような機能性は、単一装置で実行される異なるチップ、または、異なるプロセス間において、回路基板上で実行されてもよい。
このような指令を伝達する指令、媒体、それらを実行するコンピューティングリソース、および、このようなコンピューティングリソースをサポートするその他の構造は、ここで記述される機能を提供する手段である。
図1Cは、仮想環境170のシステムを示す図である。仮想環境170は、仮想マシンマネージャー(VMM)172を有して、バーチャルマシン(VMs)174を管理する。VMM172は、ユーザーが、VMs174を創造、編集、開始、および、停止できるようにする。VMM172は、さらに、その他の機能性を有効にして、VMs174を管理する。たとえば、VMM172は、ユーザー、または、システム管理者が、各VMs174のコンソールを表示、および、制御、VMs174のパフォーマンスと利用統計の調査、全ての作動中のVMs174、および、ホスト176、および、それらの個別の統計の調査、VMエラーおよび故障を識別、作業負荷の移動等ができるようにする。
VMM172も、ユーザーが、VMs174の仮想化ホスト176を配置、および、管理、リソースプール178を管理、および、配置ネットワーク、または、データセンター180中のネットワーク形成を行えるようにする。VMM172は、ユーザーが、VMs174を配置、VMs、または、作業負荷を移動、および、VMs174、ホスト176、リソースプール178等を管理、および、配置することができるようにする。
ホスト176は、それぞれ、一つ以上のVMs174を有する。さらに、ホスト176は、個別のハイパーバイザを有し、VMs174を作動させる。ホスト176は、ソフトウェア環境をホスト176に提供するホスト操作システムを作動させ、各VMs174は、ソフトウェア環境をVMs174に提供するゲスト操作システムを作動させる。
VMs174が配置されて、VMs174により用いられるハードウェアリソースを含むリソースプール178を用いて、個別の仮想のハードウェアリソースを生成して、VMs174と個別の作業負荷をサポートする。リソースプール178は、各種タイプのハードウェアリソース、たとえば、プロセッサ、メモリ、ストレージデバイス、ネットワークインターフェース、グラフィック処理ユニット、入力装置、出力装置等を有する。ハードウェアリソースは、ホスト176上のリソースになる。しかし、ハードウェアリソースは、また、データセンター180中にその他のリソースを有する。たとえば、ラックスケール機構に基づいたデータセンターにおいて、リソースプール178は、かならずしもホスト176の一部ではないリソースのプールを有し、および、ホスト176と結合する能力があるが、電気的にホスト176と結合しないリソースを有する。
リソースプール178は、同じタイプの複数のリソース、および/または、余剰の追加リソースを有する。たとえば、リソースプール178は、追加プロセッサ、メモリ、電源、ファン、ストレージデバイス、周辺装置等を有する。この方式で、特定のVMにより用いられるメモリなどのリソースが重大なエラーを有する場合、メモリは、リソースプール178中の追加メモリにより代替されて、エラーを快速に修復する。
図2は、ハードウェアコンポーネントを代替するスリープ状態メカニズムを実行するシステム200を示す図である。スリープ状態メカニズムは、ACPI(先進形態と電源インターフェース)電源管理に基づく。たとえば、システム200は、ACPIを用いて、システム200を特定のスリーピング状態に置き、よって、ユーザーは、故障したコンポーネントを代替することができ、システム200を再起動、または、リブートしなくてもよい。一旦、ユーザーが、故障したコンポーネントを代替すると、システム200は、特定のスリープ状態から作業状態に転換することができ、一つ以上のアプリケーションをリブート、再配置、または、配置転換する必要がない。
たとえば、ハードディスクデバイス202は、作業状態(S0)220で作動する。S0(220)は、正常な操作状態を表す。システム200が、たとえば、検出されたハードウェアエラーや故障に基づいて、ハードウェアコンポーネントの代替が必要であると判断する場合、システム200は、スリープモード転換216を実行して、システム200をスリープ状態にする。スリープ状態は、一つ以上の要因、たとえば、代替される装置のタイプ、エラー、または、故障等の深刻度に基づく。スリープ状態は、スリープ状態S3(214)とスリープ状態S4(212)を有する。
スリープ状態S3(214)はディープスリープ状態であり、システム200は、低電源リソース消耗で作動する。さらに、S3(214)が転換して作業状態S0(220)に戻るとき、長いウェイクアップ遅延を有する。一方、スリープ状態S4(212)は最深スリープ状態であり、システム200は、最低電力消耗で作動する。S4(212)は、最深レベルのスリープ状態であり、S4(212)スリープ状態のウェイクアップ遅延は、全各種スリープ状態の最長遅延である。
前述の通り、システム200は、一つ以上の前述の要因に基づいて、作業状態S0(220)から、スリープ状態S3(214)、S4(212)、または、任意のその他のスリープ状態に転換する。たとえば、ハードウェアエラー、または、故障が周辺装置204(たとえば、PCIエクスプレス)に関連する場合、システム200は、S3(214)スリープ状態に転換する。システム200がS3(214)スリープ状態であるとき、ユーザーは、代替周辺装置で、周辺装置204を代替することができる。一旦、周辺装置204が代替されると、システム200は、ウェイクアップ転換218を実行して、作業状態S0(220)をレジュームする。
ハードウェアエラー、または、故障が、メモリ206、プロセッサ208、電源ユニット210に関連する場合、システム200は、最深スリープ状態であるS4(212)スリープ状態に転換する。システム200がS4(212)スリープ状態にあるとき、ユーザーは、部品交換によって、故障のメモリ206、プロセッサ208、または、電源ユニット210を代替する。一旦、メモリ206、プロセッサ208、または、電源ユニット210が代替されると、システム200は、ウェイクアップ転換218を実行して、作業状態 S0(220)をレジュームする。注意すべきことは、特定のスリープ状態、または、その他のタイプの状態は、軽度のスリープ/その他のタイプの状態、または、深い状態/その他のタイプの状態間で変化する。
いくつかの配置において、部品交換は、代替されたコンポーネントと同じである。たとえば、代替プロセッサは、代替されるプロセッサ(たとえば、プロセッサ208)と同じである(たとえば、同じモデル、ブランド等)。これは、代替が引き起こす任意のリソース衝突を防止することができる。さらに、システム200は、ここで記述されるハードウェア代替メカニズムを用いて、通常、ホットスワップ、または、ホットプラグハードウェア障害回復メカニズムに用いられるホットプラグ設計の回路、または、ハードウェア、ファームウェア、および/または、ドライバがない状況下で、ハードウェアコンポーネントを代替することができる。交換装置は、交換されると完全に同じではないが、機能は同じである。一態様において、システムが転換する状態のタイプは、部品交換が同じか、または、単に互換性があるかどうかに基づく。
当業者なら理解できるように、ハードウェア代替のスリープ状態メカニズムは、図2よりもさらに多い、または、さらに少ないスリープ状態で実施される。実際、図2中のスリープ状態(S0、S3、S4)は説明をはっきりとさせるためのものであり、これに限定されない。別のタイプの状態も、各種段階で適用される。このほか、本発明は、図2中で示される部品の他に、その他の部品と装置も、本発明の原則に従って代替される。実際、図2の特定の部品、または、装置(たとえば、周辺装置204、メモリ206、プロセッサ208、および、電源ユニット210)は、説明を簡潔にするためのものであり、これに制限するものではない。
図3は、スリープ状態表300である。スリープ状態表300は、故障記述302のカラム、実行する障害回復スリープ状態304のカラム、および、障害回復スリープ状態304で定義される特定のスリープ状態に関連する遅延レジューム306を有する。
故障記述302は、故障、または、エラーの位置、または、ソースを定義する。たとえば、故障記述302は、位置、または、ソースを、プロセッサ308、メモリ310、電源312、周辺装置314、ストレージデバイス316、または、ファン318として定義する。
障害回復スリープ状態304は、故障記述302中の対応装置にマップされる特定のスリープ状態を定義することができる。たとえば、プロセッサ308、メモリ310、電源312は、S4(320)スリープ状態にマップされる。周辺装置314とストレージデバイス316は、それぞれ、S3(322)スリープ状態にマップされる。ファン318はS1(324)スリープ状態にマップされる。
S4(320)スリープ状態は最低電源リソース消耗を有する。S3(322)スリープ状態は次の最低電源リソース消耗を有し、S1(324)スリープ状態は最高電源リソース消耗を有する。これらのスリープ状態はそれぞれ、個別の遅延期間を有して、作業状態、または、正常な操作状態をレジュームする。
遅延レジューム306は、スリープ状態から作業状態、または、正常な操作状態をレジュームする対応する遅延を指示する。たとえば、S1(324)スリープ状態は長い遅延330を有し、S3(322)スリープ状は長い遅延328を有し、S4(320)スリープ状態は最長遅延326を有する。対応する遅延326〜330は、少なくとも一部が、個別のスリープ状態の個別の電源リソース消耗設定に基づく。たとえば、低い電源リソース消耗は、通常、作業状態をレジュームする遅延を長くする。
スリープ状態表300は、特定のスリープ状態に対応する各種リソース、または、故障を有し、ハードウェア代替操作中に使用する。スリープ状態表300中の各種リソース、または、故障、スリープ状態、および、遅延は説明をはっきりとする目的であり、これに限定されない。したがって、各種変化が異なる実施形態に提供され、全てがここで検討される。
図4は、ハードウェア障害回復、または、交換手順の各種装置間の通信400を示す図である。コントローラ110は、ハードウェアコンポーネント404(たとえば、メモリ104、RAM108、ストレージデバイス112、入力装置120、出力装置122、通信インターフェース124、センサー126、プロセッサ130、電源ユニット、ファン等)の状態を監視410する。たとえば、コントローラ110は、ハードウェアコンポーネント404に関連するエラー、または、故障の回数、エラー、または、故障の重大性、エラー、または、故障のタイプ、エラー、または、故障の復元可能性、エラー、または、故障の因果関係、エラー、または、故障のパフォーマンス結果、エラー、または、故障の位置等を監視することができる。コントローラ110は、AC電源段階424期間で、ハードウェアコンポーネント404を監視することができる。
システムは、AC電源段階424からDC電源段階426に転換するとともに、システム上でファームウェア134により実行されるパワーオンセルフテスト(POST)428を開始し、前述の図1A、および、図1Bを参照する。
POST428開始後、ファームウェア134は、スレショルド計数を有するRAS(信頼性、利用可能性、および、支援性)特徴412を有効にする。RAS特徴412は、特定のハードウェアコンポーネントのエラー、または、故障を識別するとともに、エラー、または、故障の計数を保存する。計数が用いられて、ハードウェアコンポーネント代替が必要かどうか判断する。たとえば、部品のエラー、または、故障のスレショルド数は、代替をトリガーする。スレショルドは、さらに、一つ以上の要因、たとえば、部品のタイプ、エラー、または、故障のタイプ(たとえば、永久性、一時性、一過性、断続性、重大性、駆動的、衝突等)、エラー、または、故障の頻度、エラー、または、故障の重大性等に基づいて変化する。
ハードウェアコンポーネント404は、ハードウェアコンポーネント404によって引き起こされるエラー414をファームウェア134に報告する。ハードウェアコンポーネント404は、割り込みサービスルーチン、たとえば、UEFI(ユニファイドエクステンシブルファームウェアインターフェース)SMI(システムマネジメントモード)により、エラーを報告する。ファームウェア134は、その後、エラー416をコントローラ110に報告する。コントローラ110は、コントローラ110に関連するシステムイベントログ中のエラーを保存する。コントローラ110は、さらに、エラーをシステム管理者、または、サーバに報告する。たとえば、コントローラ110は、帯域幅(OOB)メッセージをシステム管理者に送信して、エラーを報告する。
ハードウェアコンポーネント404は、さらに、エラー418をOS402に報告する。いくつかの実施形態において、ハードウェアコンポーネント404は、ACPI(先進形態、および、パワーインターフェース)ハードウェアエラーソース表(HEST)により、エラーをOS402に送信する。
コントローラ110は、さらに、スリープ状態要求420をOS402に発信する。コントローラ110は、REST(representational state transfer)機構、たとえば、RESTful APIに基づいて、一サービスにより、スリープ状態要求をOS402に送信する。スリープ状態要求は、特定のスリープ状態、たとえば、前述の図3に示されるS3、または、S4を指定する。特定のスリープ状態は、エラー、または、故障の特定の位置に基づく。たとえば、主要ハードウェアコンポーネント(たとえば、プロセッサ、メモリ、電源等)に起因するエラー、または、故障において、特定のスリープ状態は、深いスリープ状態(つまり、低電源リソース消耗のスリープ状態)である。一方、周辺装置、アドオン、または、補助部品(たとえば、PCIeカード)に起因するエラー、または、故障において、スリープ状態は深くない(すなわち、低電源リソース消耗であるが、最低電源リソース消耗ではないスリープ状態)。
OS402がスリープ状態要求を受信するとき、システムが仮想環境(たとえば、図1C中に記述される仮想環境170)と関連する場合、仮想マシンマネージャー(VMM)に通知する。OS402は、また、スリープ状態に入る前、一つ以上のアプリケーション、および、ドライバ、たとえば、エラー、および/または、故障したコンポーネントに関連するアプリケーションとドライバとドライバを停止する。OS402は、その後、スリープ状態要求に基づいて、システムをスタンバイ430(すなわち、スリープ状態)にする。スタンバイ状態は、前述のように、特定のスリープ状態に従う。
スタンバイ430状態の期間中、ユーザー、または、システム管理者は、故障したコンポーネントを部品交換で代替する。ユーザー、または、システム管理者は、OS402を再起動、または、リブートすることなく、故障したコンポーネントを代替する。衝突を防止するため、部品交換は、代替される故障したコンポーネントと同じである。
故障したコンポーネントが代替された後、コントローラ110は、ウェイクアップ要求422をOS402に発信する。ウェイクアップ要求は、OS402をトリガーして、スタンバイ状態430から作業状態に転換する(たとえば、図2に示されるS0)。コントローラ110は、RESTful APIにより、ウェイクアップ要求を発信する。
OS402は、ウェイクアップ要求を受信するとともに、作動、または、正常な操作状態に転換する。システムが仮想環境(たとえば、図1Cに記述される仮想環境170)と関連する場合、OS402は、さらに、VMMに通知する。さらに、スタンバイ状態430からレジュームした後、OS402は、任意の停止したアプリケーション、または、ドライバを再起動する。
各種装置間の通信400は、異なるタイプのサービス、および/または、インターフェースに基づく。たとえば、ファームウェア134は、ハードウェアインターフェース434により、ハードウェアコンポーネント404と通信し、たとえば、UEFI BIOSは、PCIエクスプレス拡張コンフィグレーション空間フラットメモリ−マップアクセスメカニズムにより、PCIeレジスタを読み取り、CPU MSR指令により、CPU IA32_Mci_Statusを読み取る。同様に、ハードウェアコンポーネント404は、ハードウェアインターフェース134により、操作システム(OS)402と通信する。さらに、コントローラ110は、IPMI(インテリジェントプラットフォーム管理インターフェース)、または、REST(representational state transfer)に基づいたサービス、たとえば、RESTfulにより、ファームウェア134と通信する。最後に、コントローラ110は、REST機構に基づいたサービス、たとえば、RESTful APIにより、OS402と通信する。
図5は、仮想マシンマネージャー(VMM)172により、リソースとVMsを回復させる故障修復表500である。表500は、特徴カラム502、記述カラム504、および、優先格付けカラム506を有する。表500は、故障検出特徴508、緩和計画510、および、VMバックアップ、および、回復特徴512を指定する。
故障検出特徴508は工程514を有し、この工程は、OSからエラー通知を得るとともに、故障の重大性、位置と数量を識別する工程を含む。VMM172はここで、ACPIハードウェアエラーソース表を読み取って、特定のエラー、および/または、エラー詳細を識別する。さらに、故障検出特徴508は、高優先度520として割り当てられる。
緩和計画510は工程516を有し、工程は、故障のリソースをリソースプールから隔離する、新しいリソースをVMに再度割り当てるとともに、VMを閉鎖して、異なるサーバに転換する工程を有する。緩和計画510は高優先度520に割り当てられる。
VMバックアップ、および、回復特徴512は工程518を有し、工程は、VMデータをバックアップして、データ損失を防止し、サーバ、または、システムの調子が良くなった後(たとえば、障害回復後)、VMデータを修復する工程を有する。VMバックアップ、および、回復特徴512は、任意優先度522が割り当てられる。
表500中の各領域、および、部品は説明を明確にする目的のための例示であり、これに限定されない。本発明は、その他の領域、部品、詳細も考慮される。
いくつかの基本システムコンポーネントとコンセプトの開示後、本発明は、続いて、図6〜図9に示される例示方法の実施形態に進む。説明を明確にするため、方法は、図1Aに示されるシステム100は各種工程を実行する。ここでまとめられる工程は例であり、且つ、任意の組み合わせで実施され、ある工程の削除、増加、または、修正を含む。
図6は、ハードウェア障害回復メカニズムを実行する方法600を示す図である。工程602において、システム100は、システム100に関連するハードウェアエラーを検出する。システム100は、コントローラ110によりエラーを検出する。たとえば、コントローラ110は、システム100のハードウェアコンポーネント(メモリ105、RAM108、ストレージデバイス112、入力装置120、出力装置122、通信インターフェース124、プロセッサ130、ファン(図示しない)、電源(図示しない)等の状態を監視することができる。
システム100は、ハードウェアエラーに関連する誤り件数を判断する。たとえば、システム100は、ハードウェアエラー発生の回数を判断する。システム100は、さらに、誤り件数がエラースレショルドを超えるか否か判断する。エラースレショルドは、エラーの所定回数、または、計数(たとえば、N回のエラー)、エラーの頻度(たとえば、Y時間周期中、N回のエラー発生)、ハードウェアエラーに関する回復期間(たとえば、N時間単位を費やして、ハードウェアエラーから修復)等に基づく。さらに、システム100は、さらに、ハードウェアエラーの重大性を判断する。たとえば、システム100は、エラーが重大である、または、修復できないエラーであるか、ハードウェアエラーがデータ損失を生じるか、ハードウェアエラーが中断するか(たとえば、システムコンポーネント、システム100、および/または、サービスの中断)等を判断する。
工程604において、システム100は、ハードウェアエラーに関連するシステムコンポーネントを識別する。システム100は、ハードウェアエラーのソース、または、位置を識別する。たとえば、システム100は、エラーがプロセッサ130からのものか判断する。システムコンポーネントは、たとえば、プロセッサ、メモリ、電源ユニット、ストレージデバイス、ファン、周辺装置(たとえば、PCI、PCIe等)、アドインカード(add−on card)等である。
工程606において、システム100は、要求を生成して、システム100の操作システムをトリガーし、システム100を特定の操作状態 (たとえば、スリープ状態、冬眠状態等)にする。システム100は、たとえば、コントローラ110により要求を生成する。さらに、コントローラ110は、要求を操作システムに送信して、システム100を特定の操作状態にする。
要求は、ハードウェアエラーの重大性、誤り件数、または、ハードウェアエラーに関する任意のその他の特徴、または、統計値に基づいて生成される。たとえば、要求は、ハードウェアエラーが重大なエラーである、および/または、誤り件数がエラースレショルドを超えるという判断に基づいて生成される。
特定の操作状態は、エラーに関するシステムコンポーネントのコンポーネントのタイプに基づいて決定される。たとえば、特定の操作状態は、エラーに関連するシステムコンポーネント(たとえば、周辺装置、プロセッサ、メモリ、電源、ファン、ディスクドライブ等)の識別に基づいて決定される。
前述の通り、特定の操作状態は、コンポーネントのタイプに基づいて変化する。たとえば、コンポーネントのタイプが周辺装置であるとき、特定の操作状態は第一スリープ状態であり(たとえば、S3 214)、および、コンポーネントのタイプがプロセッサ、メモリ、または、電源ユニットであるとき、第二スリープ状態(たとえば、S4 212)である。この例において、第一スリープ状態と比べて、第二スリープ状態は、低電源リソース消耗であり、および/または、長いレジューム遅延を有する。
操作システムは、要求を受信するとともに、システム100を特定の操作状態にする。操作システムは、さらに、システムコンポーネントに関連する任意のドライバ、および/または、アプリケーションを停止する。
工程608において、システム100が特定の操作状態に置かれた後、システム100は、システムコンポーネントが代替されるという指示を生成する(たとえば、コントローラ110により)ことができる。指示は、システム100の操作システムを再起動せず、ドライバ、または、ソフトウェアをインストールせず、システムコンポーネントを再配置せず、システム100をシャットダウンしない状況下で、システムコンポーネントが代替されることを示す。
指示は、システム100が特定の操作状態であるかどうかの決定に基づいて生成される。前述の通り、特定の操作状態は、コンポーネントのタイプに関連する操作状態に対応する、および/または、システム100をシャットダウン、または、再起動しない状況下で、システムコンポーネントを代替するのに適する。
工程610において、システムコンポーネントは、代替システムコンポーネントに代替される。工程612において、一旦、システムコンポーネントが代替されると、システム100は、代替システムコンポーネントにより、操作を再開することができる。システム100は、操作の作業状態、または、一般状態にしたがって、操作を再開することができる。システム100は、最小、または、制限された中断で、代替システムコンポーネントを用いて、一般操作をレジュームする。
一部の例では、作動、または、正常な操作状態をレジュームする前、システム100は、代替システムコンポーネントが、システムコンポーネントにとって、互換性がある代替であるか確認する。たとえば、システム100は、システムコンポーネントと代替システムコンポーネントに関連するハードウェア情報を収集するとともに、ハードウェア情報を比較して、二個の部品のハードウェア情報がマッチするか、または、実質上類似するか判断する。システム100は、さらに、代替システムコンポーネントが、システムコンポーネントと同じ、または、ほぼ同じであるか判断する。
さらに、代替システムコンポーネントが、互換性があると判断するとき、システム100は、代替システムコンポーネントが、システムコンポーネントと同じタイプであるか、同じハードウェア配置を有するか、同じファームウェア、および/または、ソフトウェアドライバを用いるか、同じリソース要求を有するか等を判断することができる。システム100は、互換性決定に基づいて、指示を生成する。たとえば、システム100は、指示を生成し、代替システムコンポーネントが、互換性があるか、ないかを示す。
代替システムコンポーネントが、互換性がある場合、システム100は、代替を終了するとともに、操作をレジュームする。このほか、代替システムコンポーネントが、互換性がない場合、システム100は、代替を拒絶する、または、警告を発する。
システム100が仮想環境(たとえば、VMs等を有する)の一部である場合、システム100は、VM作業負荷を、代替メカニズムの一部として修復、または、転移させる。たとえば、システム100は、代替システムコンポーネントがすでに代替され、および、システム100がレジューム済み、または、一般、または、運転操作をレジュームする準備ができた後、VM作業負荷を停止させるとともに、システム100上で、VM作業負荷を修復する。
システム100が、ホットプラグハードウェア、回路、ドライバ、設計等を有さない場合でも、システム100は、方法600の任意の工程を実行して、システムコンポーネントを代替する。たとえば、たとえ、システム100、システムコンポーネント、および/または、代替システムコンポーネントが、ホットプラグ操作をサポートしなくても、記述されるシステム100は、代替システムコンポーネントで、システムコンポーネントを代替する。
図7は、システム内で、ハードウェアエラーを監視、および、識別する方法700のフローチャートである。工程702において、システム100は、システム100上で、ハードウェアエラーを識別、および、分析することができる。ハードウェアエラーは、システム上のシステムコンポーネントに関連するエラー、または、故障である。さらに、システム100は、ハードウェアコンポーネントを監視して、エラー発生時、ハードウェアエラーを検出する。さらに、システム100は、エラーの状態、エラーの重大性(たとえば、重大である、重大でない、破壊性、永久性、一時性等)、エラーの位置(たとえば、ソースコンポーネント、または、ドライバ)、誤り件数(たとえば、エラー数)等を判断する。
工程704において、システム100は、エラーが、エラースレショルドを超えるか否か判断する。エラーがスレショルドを超えない場合システム100は工程702に戻る。一方、エラーがスレショルドを超過する場合、工程706において、システムは、エラーのソースをチェックする。
工程708において、システム100は、エラーが、プロセッサ、メモリ、または、電源からなのか判断する。工程710において、システム100は、その後、スリープ状態S4要求を送信して、システム100をS4スリープ状態にする。S4スリープ状態は、最低電源リソース消耗により特徴付けられる最深スリープ状態である。
工程712において、システム100は、エラーが、周辺装置からのものか判断する。エラーが周辺装置からのものであるとき、工程714において、システム100は、スリープ状態S3要求を送信して、システム100をS3スリープ状態にする。S3スリープ状態は、低電源リソース消耗のディープスリープ状態である。
工程716において、システム100は、システム100の電源状態を監視して、システム100が、工程710、または、714で、スリープ状態要求に対応して、予期通り、スリープ状態に入ったことを確認する。
工程718において、システムは、システム100が、スリープ状態になったか判断する。システムが、スリープ状態に入っていない場合、システム100は、工程716に戻って、電源状態を監視する。反対に、システム100がすでにスリープ状態になっている場合、工程720において、システム100は、その後、システム100が、エラーに関連するシステムコンポーネントのハードウェア代替の準備ができているという通知を生成する。一旦、システム100が、このような工程の準備をすると、ユーザーは、システムコンポーネントを代替する。
図8は、方法700後にインストールされる代替システムコンポーネントを検査する方法800のフローチャートである。工程802において、システム100は、ハードウェア代替がすでに完了していることを示す指示を獲得する。このとき、システムコンポーネントは代替システムコンポーネントで代替されている。
工程804において、システム100は、再起動状態、および、エラーの原因をチェックする。再起動状態がS3、且つ、エラーの原因が周辺装置である場合、工程806において、システム100は、その後、部品交換のハードウェアコンポーネント情報(たとえば、コンポーネントのタイプ、コンポーネントバージョン、コンポーネント要求、コンポーネントドライバ、コンポーネント識別子等)を分析する。
一方、再開状態がS4、且つ、エラーの原因がプロセッサ、メモリ、または、電源である場合、工程810において、システム100は、DC電源が起動し、且つ、スリープ状態S4レジューム工程を初期化することを確認する。工程812において、システム100は、さらに、代替装置のハードウェアコンポーネント情報を分析する。
工程806、または、工程812において、ハードウェアコンポーネント情報を分析した後、工程808において、システム100は、ハードウェアコンポーネント情報を検査する。たとえば、コントローラ110は、代替システムコンポーネントに関連するハードウェア詳細を再調査する。
工程814において、システム100は、代替システムコンポーネントが、交換手順に対し互換性があるか否か判断する。たとえば、システム100は、代替システムコンポーネントが、代替されるシステムコンポーネントと同じであるか否か判断する。代替システムコンポーネントが同じである場合、システム100は、代替システムコンポーネントは互換性があると判断する。いくつかの実施形態において、代替されるシステムコンポーネントと同じソフトウェア(たとえば、ドライバ)、配置、および/またはシステム要求を有する場合、システム100は、さらに、代替システムコンポーネントは互換性があると判断する。
工程820において、代替システムコンポーネントが、互換性がある場合、システム100は、代替操作をレジュームするとともに、OSが代替を完了できるようにする。
または、代替システムコンポーネントが、互換性がなく、且つ、工程804において、再起動状態がS3であり、且つ、エラーの原因が周辺装置である場合、工程816において、システム100はS3レジューム工程を拒絶する。一方、代替システムコンポーネントが、互換性がなく、且つ、工程804において、再起動状態はS4であり、エラーの原因は、プロセッサ、メモリ、または、電源である場合、工程818において、システム100は、DC電源をオフにするとともに、レジュームS4工程を拒絶する。
図9は、ソフトウェア復元可能性を決定する方法900のフローチャートである。工程902において、システム100は、RAS(信頼性、利用可能性、および、支援性)SMI(システムマネジメントモード)処理ルーティンを作動させる。SMIは、UEFI BIOSにより初期化されて、任意の種類のサーバハードウェアエラーの発生を扱い、情報を収集、および/または、OS、および/または、コントローラ(たとえば、BMC)の事象として記録する。工程904において、その後、システム100はエラーの原因を識別する。
工程906において、システム100はマシンチェックステータスを実行する。たとえば、システム100は、IA32_Mci_Statusを検査する。マシンチェックステータスが無効である場合、工程908において、システム100は、その他のエラーをチェックする。工程918において、システム100は、その後、任意のエラーを報告するシステムイベントログを送信する。システム100は、システムイベントログを、コントローラ110、および/または、ACPI HEST(ハードウェアエラーソース表)に送信する。
工程906において、マシンチェックステータスが有効である場合、工程910において、システム100は通知を生成する。通知は、エラーを識別、および、修正を要求することができる。たとえば、通知は、一エラーが発生したこと、および、ソフトウェア補正動作が必要であることを示す。
工程912において、システムは、障害回復工程に対応する新しいシステムイベントログフォーマットを生成する。工程914において、システム100は、障害回復が、ファームウェア(たとえば、ファームウェア134)により実行されるか判断する。
障害回復が、ファームウェアにより実行されない場合、システム100は工程918に進み、システムイベントログを送信する。一方、障害回復が、ファームウェアにより実行される場合、工程916において、システム100は、ファームウェア障害回復(たとえば、UEFIリカバリー)を実行する。工程918において、システム100は、その後、たとえば、コントローラ110、および/または、ACPI HESTにより、システムイベントログを送信する。
説明を明確にするため、いくつかの実施形態において、本発明の技術は、独立した機能ブロックを有するものとして表示され、機能ブロックは、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせで具体化される方法中の装置、装置部品、工程、または、ルーティンを有する。
いくつかの実施形態において、コンピュータ可読ストレージデバイス、媒体、および、メモリは、ビットストリーム等を含むケーブル、または、無線信号を有する。しかし、言及されるとき、持続性コンピュータ読み取り可能ストレージ媒体は、明確に、媒体、例えば、エネルギー、キャリア信号、電磁波、および、信号自身を除外する。
上述の例における方法は、コンピュータ読み取り可能媒体に保存された、または、その他の方式で、コンピュータ読み取り可能媒体から得られるコンピュータ実行可能命令を用いて実現される。このような指令は、たとえば、汎用目的コンピュータ、特殊用途コンピュータ、または、特殊用途処理装置に、ある機能、または、機能の群を実行させる、または、その他の方式で、汎用目的コンピュータ、特殊用途コンピュータ、または、特殊用途処理装置を配置して、ある機能、または、機能の群を実行する指令、および、データを有する。用いられるコンピュータリソースの一部はネットワークによりアクセス可能である。コンピュータ実行可能命令は、たとえば、バイナリー、中間形式命令、たとえば、アセンブリ言語、ファームウェア、または、ソースコードである。コンピュータ読み取り可能媒体の例は、指令、使用される情報、および/または、記述される例にしたがって、方法の期間中に生成される情報を保存するのに用いられ、コンピュータ読み取り可能媒体は、磁気、または、光学ディスク、フラッシュメモリ、不揮発性メモリを有するUSB装置、ネットワークストレージデバイス等を有する。
これらの開示における方法を実施する装置は、ハードウェア、ファームウェア、および/または、ソフトウェアを有し、任意の各種フォームファクタを利用する。このようなフォームファクタの一般的な例は、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、PDA、ラックマウント型装置、スタンドアロン装置等を有する。ここで記述される機能性は、さらに、周辺装置、または、アドインカードで具体化される。さらなる例として、このような機能性は、単一装置で実行される異なるチップ、または、異なるプロセス間において、回路基板上で実行されてもよい。
このような指令を伝達する指令、媒体、それらを実行するコンピューティングリソース、および、このようなコンピューティングリソースをサポートするその他の構造は、ここで記述される機能を提供する手段である。
各種例およびその他の情報が用いられて、請求項範囲内の態様を説明しているが、請求項範囲は、このような例中の特定の特徴や配置に限定されず、当業者はこれらの例を利用して、多種多様の実施方案を導き出すことができる。さらに、ある主題は、構造上の特徴、および/または、方法工程の実施形態に対し記述しているが、請求項で定義される主題は、必ずしも、これらの記述される特徴や動作に制限されないことが理解できる。たとえば、このような機能性は、異なる装置に配置される、または、本発明で開示される装置と異なるその他の装置上で実行される。記述される特徴や工程は、請求項のシステム、および、方法の装置の例として明らかにされる。
請求項で示される一組中の"少なくとも一つ"の範囲は、その組中の一個の装置、または、その組中の複数の装置を含む。有形のコンピュータ読み取り可能ストレージ媒体、コンピュータ可読ストレージデバイス、または、コンピュータ可読メモリデバイスは、明確に、ある媒体、たとえば一時波(transitory waves)、エネルギー、キャリア信号、電磁波、および、信号自身を除外する。
本発明では好ましい実施形態を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
100… システム
102… バス
104… メモリ
106… 読み取り専用メモリ
108… ランダムアクセスメモリ
110… コントローラ
112… ストレージデバイス
114… 第1モジュール
116… 第2モジュール
118… 第3モジュール
120… 入力装置
122… 出力装置
124… 通信インターフェース
126… センサー
128… キャッシュ
130… プロセッサ
132… フラッシュメモリ
134… ファームウェア
136… ディスプレイ
150… コンピュータシステム
152… チップセット
154… ブリッジ
156… ユーザーインターフェース装置
158… 通信インターフェース
160… プロセッサ
162… ファームウェア
164… 出力装置
166… ストレージデバイス
168… ランダムアクセスメモリ
170… 仮想環境
172… 仮想マシンマネージャー(VMM)
174… バーチャルマシン
176… ホスト
178… リソースプール
180… データセンター
200… システム
202… ハードディスクデバイス
204… 周辺装置
206… メモリ
208… プロセッサ
210… 電源ユニット
212… スリープ状態S4
214… スリープ状態S3
216… スリープモード転換
218… ウェイクアップ転換
220… 作業状態S0
300… スリープ状態表
302… 故障記述
304… 障害回復スリープ状態
306… 遅延レジューム
308… プロセッサ
310… メモリ
312… 電源
314… 周辺装置
316… ストレージデバイス
318… ファン
320… スリープ状態S4
322… スリープ状態S3
324… スリープ状態S1
326… スリープ状態S4の遅延
328… スリープ状態S3の遅延
330… スリープ状態S1の遅延
400… 通信
402… 作業システム
404… ハードウェアコンポーネント
410… ハードウェアの状態の監視
412… RAS特徴
414… エラー報告
416… エラー報告
418… エラー報告
420… スリープ状態要求
422… ウェイクアップ要求
424… AC電源段階
426… DC電源段階
428… パワーオンセルフテスト(POST)
430… スタンバイ
432… レジューム
434… ハードウェアインターフェース
436… RESTful、IPMI
438… RESTful API
500… 故障修復表
502… 特徴カラム
504… 記述カラム
506… 優先格付けカラム
508… 故障検出
510… 緩和計画(例えば、運転時間の延長)
512… 回復特徴
514… OSからエラー通知を得る、故障の重大性、位置と数量を識別する工程
516… 故障のリソースをリソースプールから隔離する、新しいリソースをVMに再度割り当てるとともに、VMを閉鎖して、異なるサーバに転換する工程
518… VMデータをバックアップして、データ損失を防止し、サーバ、または、システムの調子が良くなった後(たとえば、障害回復後)、VMデータを修復する工程
520… 高優先度
522… 任意優先度
602〜612、702〜720、802〜820、902〜918… 工程

Claims (10)

  1. 方法であって、
    システムに関連するハードウェアエラーを検出する工程と、
    前記ハードウェアエラーに関連するシステムコンポーネントを識別する工程と、
    前記システムの操作システムをトリガーして、前記システムを特定のスリープ状態に置くように、基板管理コントローラによりスリープ状態要求を生成する工程であって、前記システムコンポーネントに関連するコンポーネントのタイプに基づいて、前記特定のスリープ状態が決定され、前記特定のスリープ状態は、前記コンポーネントのタイプが周辺装置であるとき、第一スリープ状態であり、前記コンポーネントのタイプが、プロセッサ、メモリ、または、電源ユニットの一つであるとき、第二スリープ状態である工程と、
    前記システムが前記特定のスリープ状態になった後、前記システムの前記操作システムを再起動せずに、前記システムコンポーネントを代替する指示であって、前記システムが、前記システムコンポーネントに関連する前記コンポーネントのタイプに対応する前記特定のスリープ状態である決定に基づいて生成される指示を生成する工程と、
    を有することを特徴とする方法。
  2. さらに、
    前記ハードウェアエラーの重大性、前記ハードウェアエラーの誤り件数、および、前記ハードウェアエラーの位置の少なくとも一つを判断する工程であって、前記重大性が、前記ハードウェアエラーが修復できない、または、前記誤り件数がスレショルドを超えることを示すとき、前記スリープ状態要求が生成され、前記特定のスリープ状態が、前記ハードウェアエラーの前記位置に基づく工程と、
    前記システムコンポーネントに関連するハードウェア情報を収集して、前記システムコンポーネントのハードウェア配置を判断する工程と、
    前記システムコンポーネントの前記ハードウェア配置が、代替システムコンポーネントの対応するハードウェア配置と符合するか判断する工程と、
    前記システムの前記操作システムを再起動しない、前記システムで作動する前記システムコンポーネントと関連するアプリケーションを再配置しない、または、前記システムコンポーネントに関連する前記システム内のハードウェア設定を再設定せずに、前記システムコンポーネントを、代替システムコンポーネントで代替する工程と、
    サービス割り込みによって、前記システムコンポーネントにより送信されるエラー報告に基づいて、システムファームウェアコンポーネント上の前記基板管理コントローラにより、前記ハードウェアエラーの通知を受信する工程と、を有し、
    前記システムコンポーネントは、周辺装置、第二プロセッサ、第二メモリ、または、第二電源ユニットの少なくとも一つを有し、前記周辺装置は、ストレージコンポーネント、周辺装置相互接続コンポーネント、PCIエクスプレスコンポーネント、および、ファンの一つを有し、前記第二スリープ状態は、前記第一スリープ状態より低い電源リソース消耗、および、前記第一スリープ状態より長いレジューム遅延を生じ、
    前記システムはホットプラグ設計に基づかず、前記システムにホットアドコンポーネントまたはホットリムーブコンポーネントを使用せずに、前記システムコンポーネントの代替を実行する、
    ことを特徴とする請求項1に記載の方法。
  3. さらに、
    前記システムコンポーネントが部品交換で代替された後、前記部品交換が、互換性がある代替であるか否か判断する工程であって、前記互換性がある代替であるか否かを、前記システムコンポーネントと同じタイプか否か、前記システムコンポーネントと同じハードウェア配置であるか否か、前記システムコンポーネントと同じファームウェアまたはソフトウェアドライバ互換性であるか否か、および前記システムコンポーネントと同じリソース要求であるか否かを判断することによって判断する工程を有することを特徴とする請求項1に記載の方法。
  4. さらに、
    前記システムコンポーネントが、代替システムコンポーネントで代替されたことを検出する工程と、
    前記代替システムコンポーネントが、互換性があるか否か判断する工程と、を有し、前記判断する工程は、
    ハードウェアコンポーネント情報を分析する工程と、
    前記代替システムコンポーネントが、前記システムコンポーネントと同じコンポーネントであるか判断する工程であって、前記システムコンポーネントと同じコンポーネントである場合、前記代替システムコンポーネントは互換性があり、前記システムコンポーネントと同じコンポーネントではない場合、前記システムコンポーネントは互換性がない工程とによって判断し、
    前記代替システムコンポーネントが、互換性があるとき、前記代替システムコンポーネントで、前記システムコンポーネントを代替することを可能にし、
    前記代替システムコンポーネントが、互換性がないとき、前記代替システムコンポーネントで、前記システムコンポーネントを代替することを拒絶することを特徴とする請求項1に記載の方法。
  5. 前記システムは仮想マシンマネージャーを有し、
    前記方法は、さらに、
    前記ハードウェアエラーが、前記仮想マシンマネージャーに関連する一つ以上のバーチャルマシンにより用いられるリソースに影響するか判断する工程と、
    前記仮想マシンマネージャーに関連するリソースのプールから、前記リソースを隔離する工程と、
    新しいリソースを、前記一つ以上のバーチャルマシンに再度割り当てる工程と、を有することを特徴とする請求項1に記載の方法。
  6. システムであって、
    プロセッサ、および、
    指令をその中に保存したコンピュータ可読ストレージ媒体を有し、
    前記指令が前記プロセッサにより実施されるとき、前記プロセッサが実行する操作は、
    前記システムに関連するハードウェアエラーを検出する工程と、
    前記ハードウェアエラーに関連するシステムコンポーネントを識別する工程と、
    前記システムの操作システムをトリガーして、前記システムを特定のスリープ状態に置くように、スリープ状態要求を生成する工程であって、前記システムコンポーネントに関連するコンポーネントのタイプに基づいて、前記特定のスリープ状態が決定され、前記特定のスリープ状態は、前記コンポーネントのタイプが周辺装置であるとき、第一スリープ状態であり、前記コンポーネントのタイプがプロセッサ、メモリ、または、電源ユニットの一つであるとき、第二スリープ状態である工程と、
    前記システムが前記特定のスリープ状態に置かれた後、前記システムの前記操作システムを再起動せずに、前記システムコンポーネントを代替する指示であって、前記システムが、前記システムコンポーネントに関連する前記コンポーネントのタイプに対応する前記特定のスリープ状態である決定に基づいて生成される指示を生成する工程と、
    を有することを特徴とするシステム。
  7. 前記操作は、さらに、
    前記ハードウェアエラーの重大性、前記ハードウェアエラーの誤り件数、および、前記ハードウェアエラーの位置の少なくとも一つを判断する工程であって、前記重大性が、前記ハードウェアエラーが修復できない、または、前記誤り件数がスレショルドを超えることを示すとき、前記スリープ状態要求が生成され、前記特定のスリープ状態は、前記ハードウェアエラーの前記位置に基づく工程と、
    前記システムコンポーネントに関連するハードウェア情報を収集して、前記システムコンポーネントのハードウェア配置を判断する工程と、
    前記システムコンポーネントの前記ハードウェア配置が、代替システムコンポーネントの対応するハードウェア配置に符合するか判断する工程と、
    前記システムコンポーネントが部品交換で代替された後、前記部品交換が、前記システムコンポーネントにとって互換性がある代替か否か判断するとともに、前記部品交換が互換性がある代替であると判断されるとき、前記システムコンポーネントが前記部品交換で代替されるようにする工程であって、前記互換性がある代替であるか否かを、前記システムコンポーネントと同じタイプのシステムコンポーネントであるか否か、前記システムコンポーネントと同じハードウェア配置であるか否か、前記システムコンポーネントと同じファームウェアまたはソフトウェアドライバ互換性であるか否か、前記システムコンポーネントと同じリソース要求であるか否かを判断することによって判断する工程と、を有し、
    前記第二スリープ状態は、前記第一スリープ状態より低い電力リソース消耗、および、前記第一スリープ状態より長いレジューム遅延を生じることを特徴とする請求項6に記載のシステム。
  8. 前記操作は、さらに、
    前記システムコンポーネントが、代替システムコンポーネントで代替されたか否か検出する工程と、
    前記代替システムコンポーネントが、互換性があるか否か判断する工程と、を有し、前記判断する工程は、
    ハードウェアコンポーネント情報を分析する工程と、
    前記代替システムコンポーネントが、前記システムコンポーネントと同じコンポーネントであるか否か判断する工程であって、前記システムコンポーネントと同じコンポーネントである場合、前記代替システムコンポーネントは互換性があり、前記システムコンポーネントと同じコンポーネントではない場合、前記システムコンポーネントは互換性がない工程とによって判断し、
    前記代替システムコンポーネントが、互換性があるとき、前記代替システムコンポーネントで、前記システムコンポーネントを代替することを可能にし、
    前記代替システムコンポーネントが、互換性がないとき、前記代替システムコンポーネントで、前記システムコンポーネントを代替することを拒絶することを特徴とする請求項6に記載のシステム。
  9. 指令をその中に保存したコンピュータ可読ストレージデバイスであって、
    前記指令がプロセッサにより実行されるとき、前記プロセッサが実行する操作は、
    システムに関連するハードウェアエラーを検出する工程と、
    前記ハードウェアエラーに関連するシステムコンポーネントを識別する工程と、
    前記システムの操作システムをトリガーして、前記システムを特定のスリープ状態に置くように、スリープ状態要求を生成する工程であって、前記システムコンポーネントに関連するコンポーネントのタイプに基づいて、前記特定のスリープ状態が決定され、前記特定のスリープ状態は、前記コンポーネントのタイプが周辺装置であるとき、第一スリープ状態であり、前記コンポーネントのタイプが、プロセッサ、メモリ、または、電源ユニットの一つであるとき、第二スリープ状態である工程と、
    前記システムが、前記特定のスリープ状態になった後、前記システムの前記操作システムを再起動せずに、前記システムコンポーネントを代替する指示であって、前記システムが、前記システムコンポーネントに関連する前記コンポーネントのタイプに対応する前記特定のスリープ状態である決定に基づいて生成される指示を生成する工程と、
    を有し、
    前記第二スリープ状態が、前記第一スリープ状態より低い電源リソース消耗、および、前記第一スリープ状態より長いレジューム遅延を生じることを特徴とするコンピュータ可読ストレージデバイス。
  10. 前記操作は、さらに、
    前記ハードウェアエラーの重大性、前記ハードウェアエラーの誤り件数、および、前記ハードウェアエラーの位置の少なくとも一つを判断する工程であって、前記重大性が、前記ハードウェアエラーが修復できない、または、前記誤り件数がスレショルドを超えることを示すとき、前記スリープ状態要求が生成され、前記特定のスリープ状態が、前記ハードウェアエラーの前記位置に基づく工程と、
    前記システムコンポーネントに関連するハードウェア情報を収集して、前記システムコンポーネントのハードウェア配置を判断する工程と、
    前記システムコンポーネントの前記ハードウェア配置が、代替システムコンポーネントの対応するハードウェア配置と符合するか否か判断する工程と、を有し、
    前記システムコンポーネントは、周辺装置、第二プロセッサ、第二メモリ、または、第二電源ユニットの少なくとも一つを有し、前記周辺装置は、ストレージコンポーネント、周辺装置相互接続コンポーネント、PCIエクスプレスコンポーネント、および、ファンの一つを有することを特徴とする請求項9のコンピュータ可読ストレージデバイス。
JP2017032791A 2016-02-24 2017-02-24 ハードウェア障害回復システム Active JP6530774B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/052,430 US10360114B2 (en) 2016-02-24 2016-02-24 Hardware recovery systems
US15/052,430 2016-02-24

Publications (2)

Publication Number Publication Date
JP2017224272A JP2017224272A (ja) 2017-12-21
JP6530774B2 true JP6530774B2 (ja) 2019-06-12

Family

ID=58191291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017032791A Active JP6530774B2 (ja) 2016-02-24 2017-02-24 ハードウェア障害回復システム

Country Status (5)

Country Link
US (1) US10360114B2 (ja)
EP (1) EP3211532B1 (ja)
JP (1) JP6530774B2 (ja)
CN (1) CN107122321B (ja)
TW (1) TWI588649B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10726001B2 (en) * 2017-07-31 2020-07-28 Oracle International Corporation Discovery and management of physical components
US10445201B2 (en) * 2017-10-05 2019-10-15 American Megatrends International, Llc System and method for automated integration and stress testing of hardware and software service in management controller using containerized toolbox
TWI685751B (zh) * 2018-04-10 2020-02-21 神雲科技股份有限公司 伺服器裝置的錯誤報告功能的控制方法
CN110471814B (zh) * 2018-05-11 2023-11-07 佛山市顺德区顺达电脑厂有限公司 服务器装置的错误报告功能的控制方法
US10761926B2 (en) * 2018-08-13 2020-09-01 Quanta Computer Inc. Server hardware fault analysis and recovery
CN109117335A (zh) * 2018-08-15 2019-01-01 浪潮电子信息产业股份有限公司 一种硬盘模拟热插拔测试方法、装置、终端及存储介质
CN109086089A (zh) * 2018-08-27 2018-12-25 郑州云海信息技术有限公司 一种硬件配置限定的方法、系统及设备
CN111507483A (zh) * 2019-01-30 2020-08-07 鸿富锦精密电子(天津)有限公司 返修板检测装置、方法及计算机可读存储介质
RU2747474C2 (ru) 2019-03-29 2021-05-05 Акционерное общество "Лаборатория Касперского" Способ асинхронного выбора совместимых продуктов
JP7351129B2 (ja) * 2019-07-26 2023-09-27 富士通株式会社 情報処理装置および情報処理装置の制御プログラム
US11099838B1 (en) * 2020-02-26 2021-08-24 Quanta Computer Inc. Method and system for recovery for custom integrated circuit
CN111767181B (zh) * 2020-06-29 2021-11-02 深圳小马洛可科技有限公司 一种led显示屏用大规模集群管理系统
US11314577B2 (en) * 2020-08-03 2022-04-26 Palo Alto Research Center Incorporated System and method for constructing fault-augmented system model for root cause analysis of faults in manufacturing systems
US11334447B2 (en) * 2020-08-27 2022-05-17 Nuvoton Technology Corporation Integrated circuit facilitating subsequent failure analysis and methods useful in conjunction therewith
CN114265489B (zh) * 2020-09-16 2023-10-27 富联精密电子(天津)有限公司 电源故障监测方法、装置、电子设备及存储介质
TWI766409B (zh) * 2020-10-28 2022-06-01 大陸商上海川源信息科技有限公司 資料存取系統
CN112466386B (zh) * 2020-12-07 2022-06-21 电子科技大学 一种面向故障分类的存储器测试系统及方法
JP2022093892A (ja) * 2020-12-14 2022-06-24 トヨタ自動車株式会社 車載システム、車載システム制御方法、及び車載システム制御プログラム
US11366710B1 (en) 2021-02-23 2022-06-21 Quanta Computer Inc. Methods and systems for reducing downtime from system management mode in a computer system
TWI776612B (zh) * 2021-07-28 2022-09-01 宇瞻科技股份有限公司 儲存裝置及其操作方法
US20230102099A1 (en) * 2021-09-22 2023-03-30 Texas Instruments Incorporated Techniques for peripheral utilization metrics collection and reporting
CN115454705A (zh) * 2022-07-01 2022-12-09 深圳星云智联科技有限公司 故障处理方法、相关装置、计算机设备、介质和程序
CN116932303B (zh) * 2023-09-14 2023-12-29 合肥康芯威存储技术有限公司 一种存储测试设备及其测试方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747041A (en) * 1983-06-27 1988-05-24 Unisys Corporation Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement
US5560022A (en) * 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US7099934B1 (en) * 1996-07-23 2006-08-29 Ewing Carrel W Network-connecting power manager for remote appliances
US6370657B1 (en) * 1998-11-19 2002-04-09 Compaq Computer Corporation Hot processor swap in a multiprocessor personal computer system
US6363452B1 (en) * 1999-03-29 2002-03-26 Sun Microsystems, Inc. Method and apparatus for adding and removing components without powering down computer system
US6584573B1 (en) * 1999-08-30 2003-06-24 Intel Corporation Placing a computer system into a sleeping state
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
EP1229430B1 (en) * 2001-01-30 2018-05-30 Hewlett-Packard Development Company, L.P. Power management system and method
TW594021B (en) * 2002-04-30 2004-06-21 Via Tech Inc Main computer board on/off testing device, method and system
US7100062B2 (en) * 2003-01-28 2006-08-29 Hewlett-Packard Development Company, L.P. Power management controller and method
TWI230328B (en) 2003-07-17 2005-04-01 High Tech Comp Corp Method and computer system for reducing occurrence of cold reset
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US7254016B1 (en) * 2004-05-25 2007-08-07 Emc Corporation Data storage system with improved serviceability features
US7447934B2 (en) * 2005-06-27 2008-11-04 International Business Machines Corporation System and method for using hot plug configuration for PCI error recovery
US7984219B2 (en) * 2005-08-08 2011-07-19 Hewlett-Packard Development Company, L.P. Enhanced CPU RASUM feature in ISS servers
US20070074067A1 (en) * 2005-09-29 2007-03-29 Rothman Michael A Maintaining memory reliability
CN100538618C (zh) * 2006-07-18 2009-09-09 威盛电子股份有限公司 高存取效率的接口电路及方法
US7934121B2 (en) * 2006-11-21 2011-04-26 Microsoft Corporation Transparent replacement of a system processor
US7877358B2 (en) * 2006-11-21 2011-01-25 Microsoft Corporation Replacing system hardware
US8250382B2 (en) * 2007-08-22 2012-08-21 International Business Machines Corporation Power control of servers using advanced configuration and power interface (ACPI) states
US8082454B2 (en) * 2007-11-07 2011-12-20 International Business Machines Corporation Managing power consumption based on historical average
US20090164820A1 (en) * 2007-12-24 2009-06-25 Hewlett-Packard Development Company, L.P. Methods and apparatus for managing power on a computer in the event of a power interruption
US8024609B2 (en) * 2009-06-03 2011-09-20 International Business Machines Corporation Failure analysis based on time-varying failure rates
TW201209577A (en) * 2010-08-20 2012-03-01 Hon Hai Prec Ind Co Ltd Test system and method of restarting the computer
US9423847B2 (en) * 2011-12-20 2016-08-23 Advanced Micro Devices, Inc. Method and apparatus for transitioning a system to an active disconnect state
TWI482059B (zh) * 2012-07-06 2015-04-21 Wistron Corp 具觸控顯示模組的伺服器及其觸控顯示模組
US8990479B2 (en) * 2012-07-30 2015-03-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Using persistent memory regions within memory devices to collect serial presence detect and performance data
US9411762B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Method and system for platform management messages across peripheral component interconnect express (PCIe) segments

Also Published As

Publication number Publication date
TWI588649B (zh) 2017-06-21
EP3211532A1 (en) 2017-08-30
JP2017224272A (ja) 2017-12-21
EP3211532B1 (en) 2021-03-31
CN107122321A (zh) 2017-09-01
TW201730763A (zh) 2017-09-01
US10360114B2 (en) 2019-07-23
CN107122321B (zh) 2020-08-07
US20170242758A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
JP6530774B2 (ja) ハードウェア障害回復システム
US8135985B2 (en) High availability support for virtual machines
CN107479721B (zh) 远程多计算机切换技术的存储装置、系统及方法
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US8898517B2 (en) Handling a failed processor of a multiprocessor information handling system
US10146606B2 (en) Method for system debug and firmware update of a headless server
US10387261B2 (en) System and method to capture stored data following system crash
US20170090896A1 (en) Automatic system software installation on boot
US8938736B2 (en) System and method for providing redundancy for management controller
US11526411B2 (en) System and method for improving detection and capture of a host system catastrophic failure
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US7783872B2 (en) System and method to enable an event timer in a multiple event timer operating environment
US20210263868A1 (en) System and method to reduce host interrupts for non-critical errors
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
JP6864718B2 (ja) ハイブリッド電源のシステム及び方法
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
WO2018045922A1 (zh) 一种备电方法及装置
US11126517B2 (en) Method and system for communication channels to management controller
US10712795B2 (en) Power supply unit fan recovery process
US8560868B2 (en) Reducing subsystem energy costs
US20160179626A1 (en) Computer system, adaptable hibernation control module and control method thereof
US11226862B1 (en) System and method for baseboard management controller boot first resiliency
KR101100894B1 (ko) 임베디드 장치의 오류검출 및 복구방법
TWI554876B (zh) 節點置換處理方法與使用其之伺服器系統
US20240012651A1 (en) Enhanced service operating system capabilities through embedded controller system health state tracking

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190517

R150 Certificate of patent or registration of utility model

Ref document number: 6530774

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250