説明の簡素化および明瞭化のために各図面において、参照番号が、対応するまたは類似の要素を示すように、繰り返し割り当てられていることを理解されたい。さらに、数々の特定の詳細な記述は、以下に記載された実施形態を十分に理解するためになされたものである。しかしながら、このような特定の詳細な記述がなくとも、当業者であれば、以下に記述される各実施形態を実現できるであろう。説明されている当該の特徴が不明瞭にならないために、その他の事例、方法、手順、および、部材は、詳細には記載されていない。また、本明細書は、以下に記載される実施形態の範囲に限定されていると見なすべきではない。各図は、本開示内容の詳細および特徴をより分かり易く示すために部分的に誇張されており、実際の尺度および比率を表しているとは限らない。
本開示を通して適用されるいくつかの定義について、ここに示す。
“接続”という語句は、部材間を通して直接的または間接的に接続したものと定義され、物理的な接続に限定される必要はない。接続は、対象が恒久的または開放可能なかたちで結合されたものである。“実質的”という語句は、部材が厳密である必要がないように実質的に変更された、特定の寸法、形状またはその他の単語と本質的に合致していると定義される。たとえば、実質的な円柱とは、円柱に似ている物体を意味するが、真の円柱から1つもしくはそれ以上の逸脱が許容される。“包含”という語句は、この語句が用いられる時は、“それを含むが、それだけに限定されない”ということを意味する。つまり、オープンエンド形式の包含または、そのような形式で記述された組み合わせ、グループ、系列などにおける構成要素を特に意味する。
図1は、コンピューティングデバイス(例えばサーバ)に対して、IPアドレスの帯域外設定を行うための具体例となる、システム100のブロック図である。いくつかの実施形態において、サーバ112(例えば、アプリケーションサーバ、ウェブサーバ、メールサーバ、モバイルサーバ、ファイルサーバ、ホストサーバ、ラックマウントサーバなど)に対して、帯域外の接続(例えば、オペレーティングシステムとは独立した専用のチャンネルを用いた接続)を用いてIPアドレスが設定されてもよい。例えば、サーバに対するIPアドレスの帯域外設定は、システム制御部114によって実行されてもよい。システム制御部114は、中央処理装置(CPU)118やオペレーティングシステム(OS)120とは独立して作動するマイクロコントローラであってもよい。例えば、システム制御部114は、ベースボードマネージメントコントローラ(BMC)のような、CPUとは独立して作動する特定のサービスプロセッサであってもよい。例えば、システム制御部114は、ベースボードマネージメントコントローラ(BMC)であってもよい。BMCは、CPUとは独立して作動する特定用途向けサービスプロセッサであってもよい。
いくつかの実施形態において、システム制御部114は、遠隔の管理システムからIPアドレスを受信してもよい。例えば、上記遠隔の管理システムは、サーバ管理システム102であってもよい。いくつかの実施形態において、サーバ管理システム102は、サーバ管理アプリケーション104(例えば、システム管理者によって操作されるソフトウェア)を含んでいてもよい。例えば、サーバ管理部104は、システム管理者が行うサーバ112のIPアドレスを指定するためのやりとりを可能にするユーザインターフェースを供給してもよい。
いくつかの実施形態において、システム管理者は、サーバ管理部104を用いてサーバ112のIPアドレスを指定してもよい。サーバ管理部104は、上記指定されたIPアドレスをシステム制御部114に送信する。例えば、サーバ管理部104は、システム制御部114上で動作しているIP設定ユーティリティ116に対してIPアドレス設定要求を送信してもよい。例えば、IP設定ユーティリティ116は、ソフトウェアもしくはシステム制御部114上に構成されたファームウェアとして実現可能である。いくつかの実施形態において、IP設定ユーティリティ116は、詳細を以下で説明するような、状態または進捗要求を送受信するためのインターフェースを提供してもよい。例えば、IP設定ユーティリティ116は、(1)サーバのIPアドレスを設定するためのインターフェース、(2)サーバのIPアドレスを取得するためのインターフェース、(3)進捗状態を設定するためのインターフェース、および、(4)進捗状態を取得するためのインターフェースを含んでいてもよい。例えば、上記設定要求は、サーバ管理部104からシステム制御部114(例えばIP設定ユーティリティ116)宛てに、上記サーバのIPアドレスを設定するためのインターフェースを用いて送信されてもよい。システム制御部114は、CPU118とは独立して作動するので、システム制御部114は、CPU118および/またはオペレーティングシステム120が起動するよりも前(例えば、電源が入る前、初期化される前、省電力状態にある間、アイドル状態にある間など)に、サーバ管理部104からIPアドレスを受信することができる。
いくつかの実施形態において、IP設定ユーティリティ116は、システム制御部114の他の機能とは独立して作動してもよい。例えば、システム制御部114がBMCである場合、BMCの第一の機能はサーバ112の物理的な状態を監視することである。IP設定ユーティリティ116は、BMCの監視機能とは独立して作動可能である。
いくつかの実施形態において、上記IPアドレス設定要求は、システム制御部114のネットワークインターフェースを介して、IP設定ユーティリティ116に送信されてもよい。例えば、上記設定要求は、ネットワーク108(例えばLAN、WLAN、WAN、インターネットなど)に接続されたネットワークインターフェース(IF)106、110を用いて送信されてもよい。ネットワークIF110は、サーバ管理システム102とシステム制御部114との間の帯域外通信を可能にする、システム制御部114専用のネットワークIFであってもよい。
いくつかの実施形態において、IP設定ユーティリティ116は、システム制御部114に関連付けられたメモリに、指定されたIPアドレスを格納してもよい。例えば、IP設定ユーティリティ116は、サーバ管理部104より受信したIPアドレスを、システム制御部114に対応する不揮発性メモリ(例えば、NVRAM、読出し専用メモリ、フラッシュメモリ、FRAM(登録商標)など)に格納してもよい。
いくつかの実施形態において、IP設定ユーティリティは、設定されたIPアドレスをオペレーティングシステムエージェント122へ供給してもよい。例えば、システム制御部114およびCPU118は、ともにサーバ112に収容されてもよい。CPU118は、オペレーティングシステム(OS)120をサポートするように構成されてもよい。OS120は、例えば、UNIX(登録商標)、Microsoft Windows(登録商標)オペレーティングシステムのいずれかの版、Linux(登録商標)オペレーティングシステムのディストリビューション、または、ここで開示する機能をサポートするオペレーティングシステムのいずれかである。オペレーティングシステム120には、サーバ112に対してIPアドレスを設定するためのIP設定ユーティリティ116と相互作用可能なOSエージェント122(例えば、プロセス、アプリケーション、ユーティリティ)が組み込まれていてもよい。いくつかの実施形態において、OSエージェント122は、OS120にあらかじめインストールされている、ソフトウェアアプリケーション、プロセス、または、ユーティリティであってもよい。
いくつかの実施形態において、OSエージェント122は、システム制御部114に対してIPアドレスを要求してもよい。例えば、サーバ112の起動中(例えば、電源投入時、BIOSの初期化中、オペレーティングシステムの初期化中など)に、さらに、それ以降定期的に、IP設定ユーティリティ116は、IPアドレス要求をOSエージェント122から受信することができる。該OSエージェント122は、IP設定ユーティリティ116がサーバ管理部104から受信したIPアドレスを要求するものである。上記IPアドレス要求を受信したことに応答して、IP設定ユーティリティ116は、OSエージェント122へ、要求されたIPアドレスを送信してもよい。OSエージェント122がIP設定ユーティリティ116からIPアドレスを受信すると、OSエージェント122は、受信されたIPアドレスに基づいて、サーバ112のIPアドレスを設定するためにさまざまなオペレーティングシステムのコマンド(例えば、ifconfig、ipconfigなど)を用いることができる。
いくつかの実施形態において、システム制御部114から受信されたIPアドレスが、サーバ112に設定されると、サーバ112は、そのIPアドレスをほかのネットワーク機器に通知してもよい。例えば、OSエージェント122が、IP設定ユーティリティ116からIPアドレスを受信すると、OSエージェントは、受信したIPアドレスを利用するよう、サーバ112(例えば、オペレーティングシステム120)を設定してもよい。オペレーティングシステム120は、例えば、ネットワークインターフェースコントローラ(NIC)124、126を用いて、IPアドレスを通知するパケットをネットワークへ送出してもよい。NIC124、126は、スイッチ128(例えばラックの一番上にあるスイッチ)へ、IPアドレスを通知するパケットを送信してもよい。これにより、スイッチ128は、適切な経路や伝送テーブルを生成することができる。
いくつかの実施形態において、システム制御部114は、サーバ112が起動するよりも前に、サーバ管理システム102からIPアドレスを受信してもよい。例えば、システム制御部114は、帯域外で動作し、かつ、CPU118およびOS120とは独立して機能するように構成される。そうすると、システム制御部114は、たとえサーバ112が起動していなくとも、あるいは、電源が入っていなくとも、上記設定要求を処理することが可能となる。あるいは、システム制御部114は、起動後、サーバ112が省電力状態またはアイドル状態にある間に、サーバ管理システム102からIPアドレスを受信してもよい。例えば、割り込みが発生するまでCPUが機能を停止するようにするために、命令を中止することによって、省電力状態およびアイドル状態が電力節約を実施する。システム制御部114は、帯域外で、かつ、オペレーティングシステムおよびCPUとは独立して作動しているため、サーバ112においてアイドル状態から割り込みが発生することなく、上記設定要求が受信されたり処理されたりすることが可能となる。
いくつかの実施形態において、サーバに1つ以上のIPアドレスを設定してもよい。単純化のため、サーバが1つのみの場合について議論および説明がなされる。しかし、ここで教示される内容にしたがって、サーバが1つ以上の場合についても実現可能であることが理解されるであろう。例えば、複数のサーバのそれぞれが、システム制御部114、IP設定ユーティリティ、CPU、OS、OSエージェント、および、NICを備え、これら複数のサーバは、ネットワークIFを介して単一のサーバ管理システムへ接続される。上記ネットワークIFは、各々のサーバの専用のIFである。上記サーバ管理システムは、複数のサーバに対してそれぞれ別のIPアドレスを設定するために、サーバ管理部を介して、複数のシステム制御部(例えばBMC)に、複数の設定要求を送信してもよい。上記のことは、ここに教示される内容にしたがって、サーバ群の起動前、もしくは、サーバ群が省電力状態またはアイドル状態にある間に達成され得る。
図1および図2を参照して、図2は、システム制御部を用いて遠隔のIP設定を行うための具体例を示すフローチャート200である。以下に示す方法は、図1において説明された設定を用いて実行できる。例えば、これらの図のさまざまな要素は、本具体例の方法を説明するにあたって参照される。図2に示すそれぞれのブロックは、例示する上記方法において実行される、1つ以上の処理、方法、またはサブルーチンを表す。さらに、示されているブロックの順番は、単なる説明のためのものにすぎず、ブロックの順番は本開示内容に従って変更することができる。本開示内容から逸脱することなく、さらなるブロックが追加されてもよいし、あるいは、より少ないブロックで実現されてもよい。例示する上記方法は、ブロック202より始まる。
ブロック202において、システム制御部は、サーバのIPアドレスを設定することを求める設定要求を受信してもよい。例えば、上記設定要求は、サーバのIPアドレスを指定するサーバ管理システムから受信された要求であってもよい。上記要求は、CPUとは独立して作動する帯域外通信チャンネル(例えば、システム制御部専用のネットワークインターフェース)を用いて受信されてもよい。したがって、いくつかの実施形態において、IPアドレスは、サーバの電源が落ちても、サーバがアイドル状態であっても、あるいは、その他の操作不能な状態(例えば、サーバが何らかの理由で故障した状態)であっても、システム制御部114によって設定され得る。
いくつかの実施形態において、システム制御部114は、IPアドレスの更新がいつ進行中であるのかを示す変数(例えば標識フラグ)を管理してもよい。例えば、システム制御部114(例えば、IP設定ユーティリティ116)は、いつシステム制御部114にIPアドレスが設定されたのか、あるいは、いつサーバ112に対してIPアドレスが設定されたのかを示すための、標識フラグの値を、OSエージェント122およびサーバ管理部104に送信してもよい。例えば、サーバ管理システム102より指定されたIPアドレスを受信すると、システム制御部114は、標識フラグ“1”の値を設定してもよい。この標識フラグ“1”の値は、IPアドレス更新/設定の手続きが、進行中であること(例えば、新たなIPアドレスを受信したが、サーバへの設定はまだ完了していないこと)を示していてもよい。また、指定されたアドレスを受信するよりも前に、例えば、標識フラグのデフォルト値は“0”に設定されていてもよい。この標識フラグのデフォルト値は“0”は、サーバに設定する新たなIPアドレスが存在しない、または、以前に指定されたIPアドレスの設定処理が完了していることを示していてもよい。上記標識フラグは、システム制御部114に関連付けられたメモリに格納されてもよい。
ブロック204において、システム制御部は、該システム制御部に関連付けられた記憶装置に、上記指定されたIPアドレスを格納してもよい。例えば、システム制御部114は、上記指定されたIPをメモリに格納し、標識フラグの値“1”を返すことによって、IPアドレスが格納されたことをサーバ管理システム102に対して応答してもよい。サーバ管理システム102は、(例えば、グラフィカルユーザインターフェースを用いて)システム管理者に対し、IPアドレス設定が進行中であることを示す応答を提示してもよい。
いくつかの実施形態において、サーバ管理部104は、システム制御部114に対して、IP設定の状態に関する状態要求を送信してもよい。例えば、サーバ管理部104は、以前に指定されたIPアドレスがサーバ112に設定されたかどうかを判定するために、システム制御部114上のIP設定ユーティリティ116に対して、定期的に、状態要求を送信してもよい。IP設定ユーティリティ116は、IPアドレスが未設定である(例えば、サーバ112に設定されていない)場合に“1”の値を、IPアドレスがサーバ112に設定されている場合に“0”の値を、上記状態要求に対する応答として返してもよい。サーバ管理部104は、システム制御部114から“1”の値を受信すると、待機し、予め定められた時間間隔を空けて、別の状態要求を送信するように構成されていてもよい。
ブロック206において、サーバ112が起動される。いくつかの実施形態において、システム制御部114がサーバ112を起動する。例えば、システム制御部114は、システム制御部114にサーバ112を起動させるための起動要求を、サーバ管理部104から受信してもよい。あるいは、システム制御部114は、サーバ管理部104から指定されたIPアドレスを受信した後に自動的にサーバ112を起動するようプログラムされていてもよい。
ブロック208において、システム制御部は、オペレーティングシステム(OS)エージェントから、上記指定されたIPアドレスについて、IPアドレス要求を受信してもよい。例えば、IP設定ユーティリティ116は、OSエージェント122より進捗要求を受信して、標識フラグの値を応答として返してもよい。“0”は、IPアドレスを更新する必要がないこと(例えば、設定すべきIPアドレスがないこと)を意味する。“1”は、IPアドレスを更新する必要があること(例えば、IP設定ユーティリティ116が、サーバに未設定の新たなIPアドレスを受信したこと)を意味する。
ブロック210において、システム制御部は、上記IPアドレス要求に対する応答として、上記指定されたIPアドレスをOSエージェントに供給する。例えば、状態標識フラグの値が“1”であるとき(例えば、新たなIPアドレスをサーバ112に設定する必要がある場合)、IP設定ユーティリティ116は、IPアドレスの更新が必要であることを示すため、フラグ値“1”をOSエージェント122に送信してもよい。IPアドレスを更新する必要がある場合、OSエージェント122は、新たなIPアドレスを要求し、IP設定ユーティリティ116から受信したIPアドレスに基づいて、サーバのIPアドレスを設定してもよい。
いくつかの実施形態において、IP設定ユーティリティ116から受信されたIPアドレスがサーバ112に設定されると、OSエージェント122は、IP設定ユーティリティ116に対して、IPアドレスの設定が成功したことを確認してもよい。それから、IP設定ユーティリティ116は、サーバ112へのIPアドレスの設定が完了したことを示す進捗標識フラグを“0”に設定してもよい。
いくつかの実施形態において、サーバ管理システム102は、サーバ112に設定されているIPアドレスの状態をチェックするため、予め定められた時間間隔にしたがって、システム制御部114に対して問い合わせを行ってもよい。例えば、IP設定ユーティリティ116は、上記問い合わせを受信し、サーバ112のIPアドレス設定処理が完了している場合にフラグ値“0”を応答として返してもよい。サーバ管理部104は、標識フラグ値“0”を受信すると、サーバ管理部104は、IPアドレスが正しく更新されたことを確認するための進捗完了メッセージをシステム管理者に対して、(例えば、サーバ管理部104のグラフィカルユーザインターフェースを用いて)提示する。
図1および図3を参照して、図3は、オペレーティングシステムエージェントを用いて遠隔でIP設定処理を行うための具体例としての方法を示すフローチャート300である。以下に記載する方法は、例えば、図1において説明された構成、および、上記方法の具体例を説明するのに参照されるこれらの図のさまざまな要素を用いて実行される。図3に示すそれぞれのブロックは、1つまたはそれ以上のプロセス、方法、もしくはサブルーチンを表しており、上記方法の具体例において実行される。さらに、各ブロックについて図示された順番は、単なる例示にすぎず、ブロックの上記順番は、本開示内容に従って変更することができる。また、本開示内容から逸脱しない範囲で、さらにブロックを追加したり、もしくは、ブロックを減らしたりしてもよい。具体例としての上記方法は、ブロック302より始まる。
ブロック302において、サーバのオペレーティングシステム(OS)が初期化される。例えば、初期化の間、OSエージェント122は、サーバのIPアドレスを更新する必要があるかどうかを問い合わせるため、システム制御部114に対して進捗要求を送信してもよい。ある変形例において、上記進捗要求は、予め定められた時間間隔にしたがって周期的に送信される。OSエージェント122が“0”を受信した場合、IPアドレスは更新される必要がなく、OSエージェント122は何もせず、上記予め定められた時間間隔を空けて別の進捗要求を送信まで待機する。OSエージェントが“1”を受信した場合、IPアドレスは更新される必要がある。
ブロック304において、OSの初期化の間、OSエージェントは、サーバのIPアドレスについて、IPアドレス要求をシステム制御部に送信する。例えば、OSエージェント122は、IPアドレスを更新する必要があることを示すフラグ値“1”を受信した場合、IPアドレス要求をシステム制御部114(例えば、IP設定ユーティリティ116)に送信してもよい。
ブロック306において、OSエージェントは、システム制御部から、指定されたIPアドレスを受信する。例えば、システム制御部114が、IPアドレス要求を、OSエージェント122から受信してもよい。システム制御部114は、サーバ管理部104から受信したIPアドレスをOSエージェント122に送信することによって、上記IPアドレス要求に対して応答してもよい。
ブロック308において、OSエージェントは、上記指定されたIPアドレスに基づいて、サーバのIPアドレスを設定する。例えば、OSエージェント122は、サーバのIPアドレスを指定されたIPアドレスに設定するために、LINUX(登録商標)における“ifconfig”などのような、さまざまなオペレーティングシステムのコマンドを用いてもよい。そして、サーバ112は、システム管理者によって示されたNIC124またはNIC126に対して、上記指定されたIPアドレスを設定する。いくつかの実施形態において、OSエージェント122は、フラグを“0”に戻すリセットコマンドをシステム制御部114に送信することによって、サーバ112にIPアドレスが正しく設定されたことをシステム制御部114に確認することができる。
図4は、図1〜3に示す特徴および処理を実現するシステムアーキテクチャ400の具体例を示すブロック図である。システムアーキテクチャ400は、コンパイルされた命令から生成されたソフトウェアアプリケーションを実行するどのような電子デバイス上でも実現され得る。上記電子デバイスには、これには限定されないが、パーソナルコンピュータ、サーバ、スマートフォン、メディアプレイヤー、電子タブレット、ゲーム機、電子メールデバイスなどが含まれている。ある実施形態では、システムアーキテクチャ400は、1または複数のプロセッサ402、1または複数の入力デバイス404、1または複数のディスプレイデバイス406、1または複数のネットワークインターフェース408、および、1または複数のコンピュータ読み取り可能な記録媒体410を含んでいてもよい。これらの構成要素の各々は、バス412で接続されている。
ある実施形態では、システムアーキテクチャ400は、サーバのラック(rack)のうち単一のサーバで実現されてもよい。多様なラックの設定が実現されてもよい。例えば、ラックが複数の筐体を含み、各々の筐体が複数のサーバを含むように構成されてもよい。ラック内の各々のサーバは、さまざまなハードウェアの構成要素(バックボーン、ミドルプレーンなど)によって接続されていてもよい。ラック内の各々のサーバは、ラックのトップスイッチ(top-of-rack switch)を介してネットワークに接続されていてもよい。
ディスプレイデバイス406は、既知のいずれのディスプレイ技術であってもよい。上記ディスプレイデバイスには、これには限定されないが、液晶表示装置(LCD;Liquid Crystal Display)または発光ダイオード(LED;Light Emitting Diode)の技術が採用されてもよい。プロセッサ402には、既知のプロセッサ技術が採用される。上記プロセッサには、これには限定されないが、グラフィックスプロセッサ、および、マルチコアプロセッサなどが含まれる。入力デバイス404は、既知の入力デバイス技術であってもよい。上記入力デバイスには、これには限定されないが、キーボード(バーチャルキーボードも含む)、マウス、トラックボール、および、タッチセンサパッドまたはディスプレイなどが含まれる。バス412は、既知の内部または外部バス技術であってもよい。上記バスには、これには限定されないが、ISA、EISA、PCI、PCI Express、NuBus、USB、Serial ATA、または、FireWire(登録商標)などが含まれる。
コンピュータ読み取り可能な媒体410は、実行主体のプロセッサ402に対して命令を供給するものであればいずれの媒体であってもよい。上記媒体には、これには限定されないが、不揮発性記録媒体(例えば、光学ディスク、磁気ディスク、フラッシュドライブなど)、あるいは、揮発性記録媒体(例えば、SDRAM、ROMなど)が含まれる。コンピュータ読み取り可能な媒体(例えば、記憶装置、媒体、および、メモリ)は、例えば、ケーブルまたはビットストリームを含む無線信号などであってもよい。しかしながら、非一時的なコンピュータ読み取り可能な記録媒体というとき、エネルギー、搬送信号、電磁波、および、電磁信号それ自体などのような媒体を明確に排除する。
コンピュータ読み取り可能な媒体410は、オペレーティングシステム414(例えば、MacOS(登録商標)、Windows(登録商標)、Linux(登録商標)など)およびコンピュータプログラムなどのアプリケーション420を実現するためのさまざまな命令を含んでいる。オペレーティングシステムは、マルチユーザ、マルチプロセッサ、マルチタスク、マルチスレッド、リアルタイムなどであってもよい。オペレーティングシステム414は、基本タスクを実行する。基本タスクとしては、これには限定されないが、入力デバイス404からの入力を認識する、ディスプレイデバイス406に出力を送信する、ファイルおよびディレクトリのトラックを、コンピュータ読み取り可能な媒体410上に確保する、直接または入出力制御部を介して、周辺デバイス(例えば、ディスクドライバ、プリンタなど)を制御する、バス412上のトラフィックを管理することなどが含まれる。図1〜3を参照して上述したとおり、オペレーティングシステム414は、IPアドレスをシステム制御部422に要求して、システム制御部422から受信したIPアドレスに基づいて、サーバIPアドレスを設定するオペレーティングシステム機能を起動するように構成されたエージェント(例えば、ソフトウェアアプリケーション、ユーティリティ、プログラムなど)を含んでいてもよい。ネットワークコミュニケーション命令416は、ネットワーク接続(例えば、TCP/IP、HTTP、イーサネット(登録商標)などの通信プロトコルを実現するソフトウェア)を確立し、維持する。
メモリ418は、1または複数の磁気ディスク記憶装置、1または複数の光学記憶装置、および/または、フラッシュメモリ(例えば、NAND、NOR)などの高速ランダムアクセスメモリおよび/または不揮発性メモリを含んでいてもよい。メモリ418(例えば、コンピュータ読み取り可能な記憶装置、媒体、およびメモリ)は、ケーブルまたはビットストリームを含む無線信号などであってもよい。しかしながら、非一時的なコンピュータ読み取り可能な記録媒体というとき、エネルギー、搬送信号、電磁波、および、電磁信号それ自体などのような媒体を明確に排除する。メモリ418は、Darwin、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)などのオペレーティングシステム、または、VxWorks(登録商標)などの組み込みのオペレーティングシステムを記憶している。
システム制御部422は、プロセッサ402とは独立して作動するサービスプロセッサであってもよい。ある実施形態では、システム制御部422は、ベースボードマネージメントコントローラ(BMC;baseboard management controller)であってもよい。例えば、BMCは、センサを用いてコンピュータ、ネットワークサーバ、または、その他のハードウェア装置の物理的な状態を監視し、独立した接続を介してシステム管理者と通信する特殊なサービスプロセッサである。BMCは、監視対象の装置のマザーボード、または、メイン回路基板上に構成される。BMCのセンサは、温度、湿度、電源電圧、ファン回転速度、通信パラメータ、および、オペレーティングシステム(OS)機能などの、内部の可変の物理量を測定してもよい。
ある実施形態では、BMCは、プロセッサ402とは独立して実行される。それゆえ、プロセッサ402、メモリ418、または、その他のハードウェアの故障が起こったときでも、BMCは、引き続きサービスを提供することができ、機能し続ける。ある実施形態では、サーバが、電源(例えば、電源ユニット、バックアップ電源ユニット、電力分散ユニットなど)にプラグで接続されると、BMCはすぐに実行を開始する。例えば、ブレード前面の電源ボタンは、BMCの電源のオン/オフを行わない。BMCとの接続性の管理は、ブレード上のBMC専用の2つの100BASE−Tインターフェースを通じて、筐体内部の管理にまで及ぶ。しかしながら、いずれの場合であっても、BMCとの接続は、2つの100BASE−Tインターフェースのうち1つを介してのみ行われるので、もう一方のインターフェースが余る。(例えば、サーバ管理部104を利用している)システム管理者は、制御部のインテリジェントプラットフォーム管理インターフェース(IPMI;intelligent platform management interface)を用いるシステム制御部422と相互に作用する(例えば、設定、監視など)。例えば、IPMIインターフェースは、サーバのIPアドレスとともにシステム制御部422を構成するのに用いられてもよい。あるいは、システム制御部422には、非IMPIインターフェース(例えば、カスタムインターフェースなど)が組み込まれていてもよい(例えば、ソフトウェア、ファームウェアなど)。これにより、システム管理者は、システム制御部422を用いて、遠隔でサーバのIPアドレスを設定することができる。
有利には、上述した特徴は、1または複数のコンピュータプログラム上で実現され得る。上記コンピュータプログラムは、プログラムで制御可能なシステム上で実行可能である。上記システムは、データや命令を、データ記憶システムから受信したり、データ記憶システムに送信したりするために該データ記憶システムと接続された、プログラムで制御可能な少なくとも1つのプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。コンピュータプログラムは、ある特定の働きを果たすまたはある特定の結果をもたらすために、コンピュータ上で直接または間接的に利用可能な命令の集合である。コンピュータプログラムは、コンパイルされた言語または解釈された言語を含むいずれのプログラミング言語の形式で記述されてもよい(例えば、オブジェクティブ−C、Java(登録商標)など)。また、コンピュータプログラムは、例えば、独立した単体プログラム、もしくは、モジュール、コンポーネント、サブルーチンまたはコンピュータ環境での使用に適したその他のユニットなどを含むいずれの形式として展開されてもよい。
命令のプログラムの実行に適したプロセッサは、一例として、いずれのタイプのコンピュータであっても、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方と、単一のプロセッサ、もしくは、複数のプロセッサまたはコアのうちの1つとを含む。通常、プロセッサは、命令およびデータを、読出し専用メモリ(read-only memory)またはランダムアクセスメモリ(random access memory)またはその両方から受信する。コンピュータに必須の構成要素は、命令を実行するプロセッサ、および、命令およびデータを格納するための1または複数のメモリである。通常、コンピュータは、データファイルを記憶するための1または複数の大容量記憶装置も含むか、あるいは、該大容量記憶装置にアクセスできるように接続されている。上記大容量記憶装置としては、内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、ならびに、光学ディスクなどが含まれる。コンピュータプログラムの命令およびデータを明確に具現化するのに適した記憶装置としては、すべての型の不揮発性メモリが含まれる。該不揮発性メモリとしては、一例として、EPROM、EEPROM(登録商標)およびフラッシュメモリ装置などの半導体メモリ装置、内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、ならびに、CD−ROMディスクおよびDVD−ROMディスクなどが含まれる。上記プロセッサおよび上記メモリは、特定用途向けIC(ASICs:application-specific integrated circuits)によって追加されてもよいし、あるいは、該ICに統合されていてもよい。
ユーザとの相互作用を実現するために、本特徴は、ユーザに情報を表示するための、CRT(cathode ray tube)モニタまたはLCD(liquid crystal display)モニタなどのディスプレイデバイスと、キーボードおよびユーザがコンピュータに入力を行うために用いるマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実現されてもよい。
本特徴は、以下のコンピュータシステムによって実現されてもよい。すなわち、データサーバなどのバックエンドコンポーネントを含むコンピュータシステム、または、アプリケーションサーバまたはインターネットサーバなどのミドルウェアコンポーネントを含むコンピュータシステム、または、グラフィカルユーザインターフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピュータシステム、または、これらのコンピュータシステムの任意の組み合わせによって実現されてもよい。上記システムの各コンポーネントは、いずれの形態によって接続されていてもよいし、あるいは、通信ネットワークなどのデジタルデータ通信媒体によって接続されていてもよい。通信ネットワークの具体例としては、例えば、LAN、WAN、ならびに、インターネットを構築するコンピュータおよびネットワークなどが含まれる。
上記コンピュータシステムは、クライアントおよびサーバを含んでいてもよい。通常、クライアントおよびサーバは、互いに遠隔地に配備され、典型的には、ネットワークを介して相互に通信する。クライアントおよびサーバの関係は、互いのコンピュータ上で実行されている、かつ、互いのクライアント−サーバの関係性を有するコンピュータプログラムの効力によって発生する。
本開示の実施形態における1または複数の特徴またはステップは、API(application programming interface)を用いて実現されてもよい。APIは、呼び出されているアプリケーションと、サービスを提供したり、データを提供したり、あるいは、演算または計算を実行したりする他のソフトウェアコード(例えば、オペレーティングシステム、ライブラリルーチン、ファンクションなど)との間で引き渡される、1または複数のパラメータを定義する。
APIは、プログラムコードにおける1または複数の呼び出しとして実現されてもよい。該プログラムコードは、API仕様書において定義された呼び出しの仕様に基づくパラメータリストまたは他の構造を介して、1または複数のパラメータを送信したり受信したりする。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、または、その他の呼び出しであってもよい。APIの呼び出しおよびパラメータは、いずれのプログラミング言語において実現されてもよい。プログラミング言語は、プログラマが、APIがサポートする機能にアクセスするために採用するボキャブラリおよび呼び出しの仕様を定義してもよい。
ある実施形態では、APIの呼び出しは、アプリケーションに対して、該アプリケーションを実行するデバイスの性能(例えば、入力性能、出力性能、処理性能、電力性能、通信性能など)を通知してもよい。
これまで多数の実施形態を開示してきた。しかしながら、さまざまな変更が行われてもいということについて理解されたい。例えば、他のステップが追加されてもよいし、あるいは、開示されたフローからステップがいくつか省略されてもよい。また、他の構成要素が開示されたシステムに追加されてもよいし、該システムから構成要素がいくつか取り除かれてもよい。したがって、後述の請求項が示す範囲内で他の実施形態が実現され得る。
添付された請求の範囲内の側面を説明するために、さまざまな具体例およびその他の情報が用いられた。しかし、当業者は、実施形態の変形例をさまざまに引き出すためにこれらの具体例を使うことができるので、請求項の限定は、そのような具体例における特別な特徴または配置に基づいて示唆されるべきではない。また、いくつかの主題は、特徴的構成およびまたは方法の各ステップの具体例向けの言語において開示されてきたが、添付された請求の範囲において定義された上記主題は、必ずしもここで開示された特徴または動作に限定されない。例えば、このような機能性は、別の構成要素に分散されたり、あるいは、ここで示されたのとは別の構成要素において実行されたりしてもよい。むしろ、ここに記載された特徴およびステップは、添付の請求の範囲内において、システムの構成要素および方法の一具体例として開示されたものである。