(57)【要約】      （修正有）【課題】ネットワークインターフェースコントローラの現状の設定情報をオペレーティングシステムの起動より前に、ＮＩＣから取得し、管理する。【解決手段】ＢＩＯＳ（ベーシックインプットアウトプットシステム）１１８は、ネットワークインターフェースコントローラ（ＮＩＣ）１２４、１２６の設定情報を、オペレーティングシステムの起動より前に、システムチェック（例えば、パワーオンセルフテストなど）が実行されている間に、ＮＩＣ１２４、１２６から取得する。システム制御部１１４は、ＢＩＯＳ１１８からＮＩＣ設定情報を受信し、メモリ１１６に格納する。サーバ管理システム１０２は、サーバ１１２の電源が投入されるのに先立って、ＮＩＣ設定情報を、専用のネットワークインターフェース１１０を用いて、システム制御部１１４に対して要求する。【選択図】図１
2016024811.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスを起動するステップと、
帯域外で動作するシステム制御部が、ネットワークインターフェースコントローラ（ＮＩＣ）設定情報を、ベーシックインプットアウトプットシステム（ＢＩＯＳ）から受信するステップと、
上記システム制御部が、上記ＮＩＣ設定情報をメモリに格納するステップと、
上記ＮＩＣ設定情報を管理システムに送信するステップと、を含む方法。
【請求項２】
上記コンピューティングデバイスが起動される前に、該コンピューティングデバイスの上記システム制御部が、該コンピューティングデバイスの上記ＮＩＣ設定情報を求める要求を受信するステップと、
上記管理システムが、上記ＮＩＣ設定情報を用いて上記コンピューティングデバイスを設定するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
上記ＮＩＣ設定情報は、上記コンピューティングデバイスのシステムチェックが実行されている間に、上記ＢＩＯＳによって取得され、
上記ＢＩＯＳは、ＮＩＣから上記ＮＩＣ設定情報を取得し、
上記システムチェックは、パワーオンセルフテスト（ＰＯＳＴ）である、請求項１に記載の方法。
【請求項４】
上記ＮＩＣ設定情報は、ＮＩＣに関する情報を含み、
上記システム制御部は、ベースボードマネージメントコントローラ（ＢＭＣ）を含み、
上記コンピューティングデバイスは、サーバである、請求項１に記載の方法。
【請求項５】
帯域外で動作するベースボードマネージメントコントローラ（ＢＭＣ）と、
ベーシックインプットアウトプットシステム（ＢＩＯＳ）と、
上記ＢＭＣによって実行された場合に、該ＢＭＣに、
コンピューティングデバイスを起動させ、
ネットワークインターフェースコントローラ（ＮＩＣ）設定情報を上記ＢＩＯＳから受信させ、
上記ＮＩＣ設定情報をメモリに格納させ、
上記ＮＩＣ設定情報を管理システムに送信させる
命令の、１または複数のシーケンスを含むコンピュータ読み取り可能な記録媒体とを備えている、装置。
【請求項６】
コンピューティングデバイスを起動するステップと、
上記コンピューティングデバイスの起動中に、該コンピューティングデバイスのネットワークインターフェースコントローラ（ＮＩＣ）設定情報を、ベーシックインプットアウトプットシステム（ＢＩＯＳ）によって検出するステップと、
上記ＢＩＯＳが、上記コンピューティングデバイスのＮＩＣ設定情報を、帯域外で動作するシステム制御部に送信し、該システム制御部が、上記ＮＩＣ設定情報をメモリに格納するステップと、を含む方法。
【請求項７】
オペレーティングシステムを初期化する前に、上記システム制御部が、ＮＩＣ設定情報の要求を受信するステップと、
上記ＮＩＣ設定情報に基づいて、上記コンピューティングデバイスを設定するステップと、を含む請求項６に記載の方法。
【請求項８】
さらに、初期化中にシステムチェックを実行するステップを含み、
ＮＩＣ設定情報を検出する上記ステップは、上記システムチェックが完了する前に、起こり、
上記システムチェックは、パワーオンセルフテスト（ＰＯＳＴ）である、請求項６に記載の方法。
【請求項９】
上記ＮＩＣ設定情報は、ＮＩＣに関する情報を含み、
上記システム制御部は、ベースボードマネージメントコントローラ（ＢＭＣ）を含み、
上記コンピューティングデバイスは、サーバである、請求項６に記載の方法。
【請求項１０】
帯域外で動作するベースボードマネージメントコントローラ（ＢＭＣ）と、
ベーシックインプットアウトプットシステム（ＢＩＯＳ）と、
上記ＢＩＯＳによって実行された場合に、該ＢＩＯＳに、
コンピューティングデバイスを起動させ、
上記コンピューティングデバイスの起動中に、該コンピューティングデバイスのネットワークインターフェースコントローラ（ＮＩＣ）設定情報を検出させ、
システム制御部によってメモリに格納される上記コンピューティングデバイスの上記ＮＩＣ設定情報を、上記ＢＭＣ宛てに送信させる
命令の、１または複数のシーケンスを含むコンピュータ読み取り可能な記録媒体とを備えている、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ネットワークインターフェースコントローラ（ＮＩＣ；network interface controller）のＮＩＣ設定情報を取得することに関する。
【背景技術】
【０００２】
従来、ネットワークインターフェースコントローラ（ＮＩＣ）の設定情報は、構内のオペレーティングシステム用いたコンピューティングデバイス上でローカルに取得されていた。例えば、上記オペレーティングシステムは、コンピューティングデバイス上で実行され、ＮＩＣのＮＩＣ設定情報を取得し設定するのに用いられる。しかしながら、コンピューティングデバイスの管理者が、ＮＩＣのＮＩＣ設定情報を取得または設定しようとすると、該管理者は、しばしば、そのコンピューティングデバイスにログインし、たくさんのシステムコマンドを使わなくてはならない。いずれの場合でも、コンピューティングデバイスおよびオペレーティングシステムは、上記ＮＩＣのＮＩＣ設定情報が取得または設定されるよりも前に実行される必要がある。
【０００３】
米国特許第８，３５９，３８０号明細書（発明の名称「他のホストの設定パラメータを用いたホストの設定」）には、ホストの設定のために自動でネットワークを検出する技術が開示されている。管理サーバは、ネットワークに入った第一のホストから第一のメッセージを受信することができる。ここで、上記第一のメッセージには、上記第一のホストのネットワークインターフェースカード（ＮＩＣ）と接続されている論理的ネットワークを識別するネットワーク識別子（ＩＤ）が含まれている。上記管理サーバは、上記第一のメッセージに対する応答として、該第一のメッセージに基づく第二のホストの、１または複数のネットワーク設定パラメータを用いて、上記第一のホストのネットワークインターフェースカード（ＮＩＣ）を自動的に設定する。ここで、上記第一のホストに先行して、第二のホストは上記論理的ネットワークに接続されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８，３５９，３８０号明細書
【発明の概要】
【０００５】
ある実施形態では、ネットワークインターフェースコントローラ（ＮＩＣ）設定情報は、オペレーティングシステムの起動に先行してＮＩＣから取得される。例えば、ベーシックインプットアウトプットシステム（ＢＩＯＳ）は、例えばパワーオンセルフテスト（Power-On Self-Test）などのシステムチェックが実行されている間に、ＮＩＣ設定情報をそのＮＩＣから取得する。システム制御部は、上記ＮＩＣ設定情報をＢＩＯＳから受信する。システム制御部は、上記ＮＩＣ設定情報を該システム制御部に関連付けられたメモリに格納する。管理システムは、上記ＮＩＣ設定情報を、帯域外通信チャンネルを用いて上記システム制御部に要求する。例えば、管理システムは、サーバの電源投入に先行して、システム制御部の専用のネットワークインターフェースを用いて、ＮＩＣ設定情報を求める要求を、システム制御部に送信する。
【０００６】
詳細な実施形態によれば、少なくとも、以下の有利な点がもたらされる。システム管理者は、ＮＩＣのＮＩＣ設定情報（例えば、ネットワークアダプタなど）を、起動前に、あるいは、コンピューティングデバイスが低電力状態の間に、取得することができる。
【０００７】
１つまたは複数の実施形態の詳細については、添付の図面および以下の記述において説明される。その他の特徴、側面、および、起こり得る有利な点は、説明文、図面および請求項によって明らかにされるであろう。
【図面の簡単な説明】
【０００８】
【図１】図１は、サーバのネットワークインターフェースコントローラの設定情報を取得するシステムの具体例を示すブロック図である。
【図２】図２は、システム制御部を用いてネットワークインターフェースコントローラの設定情報を取得する処理の具体例を示すフローチャートである。
【図３】図３は、ＢＩＯＳを用いてネットワークインターフェースコントローラの設定情報を取得する処理の具体例を示すフローチャートである。
【図４】図４は、図１〜３に示す特徴および処理を実現するシステムアーキテクチャ４００の具体例を示すブロック図である。
【発明を実施するための形態】
【０００９】
説明の簡素化および明瞭化のために各図面において、参照番号が、対応するまたは類似の要素を示すように、繰り返し割り当てられていることを理解されたい。さらに、数々の特定の詳細な記述は、以下に記載された実施形態を十分に理解するためになされたものである。しかしながら、このような特定の詳細な記述がなくとも、当業者であれば、以下に記述される各実施形態を実現できるであろう。説明されている当該の特徴が不明瞭にならないために、その他の事例、方法、手順、および、部材は、詳細には記載されていない。また、本明細書は、以下に記載される実施形態の範囲に限定されていると見なすべきではない。各図は、本開示内容の詳細および特徴をより分かり易く示すために部分的に誇張されており、実際の尺度および比率を表しているとは限らない。
【００１０】
本開示を通して適用されるいくつかの定義について、ここに示す。
【００１１】
“接続”という語句は、部材間を通して直接的または間接的に接続したものと定義され、物理的な接続に限定される必要はない。接続は、対象が恒久的または開放可能なかたちで結合されたものである。“実質的”という語句は、部材が厳密である必要がないように実質的に変更された、特定の寸法、形状またはその他の単語と本質的に合致していると定義される。たとえば、実質的な円柱とは、円柱に似ている物体を意味するが、真の円柱から１つもしくはそれ以上の逸脱が許容される。“包含”という語句は、この語句が用いられる時は、“それを含むが、それだけに限定されない”ということを意味する。つまり、オープンエンド形式の包含または、そのような形式で記述された組み合わせ、グループ、系列などにおける構成要素を特に意味する。
【００１２】
図１は、サーバ１１２のネットワークインターフェースコントローラより、設定情報を取得するシステム１００の具体例を示すブロック図である。いくつかの実施形態において、システム１００はサーバ１１２を含んでいてもよい。例えば、サーバ１１２は、公知の技術のいかなるサーバであってもよく、アプリケーションサーバ、ウェブサーバ、メールサーバ、モバイルサーバ、ファイルサーバ、ホストサーバ、ラックマウントサーバなどが含まれるが、これらに限定されることはない。サーバ１１２は、例えば、サーバラックにある複数のサーバのうちの１つであってもよい。
【００１３】
いくつかの実施形態において、サーバ１１２はネットワークインターフェースコントローラ１２４およびネットワークインターフェースコントローラ１２６を含んでいてもよい。ＮＩＣ１２４およびＮＩＣ１２６は、それぞれ、ＮＩＣ１２４およびＮＩＣ１２６に関する、スロットＩＤ、ＮＩＣの形式、ポート番号および／またはＭＡＣアドレスといった設定データを保有していてもよい。例えば、サーバ管理者がネットワークからサーバ１１２の設定を行うために、ＮＩＣ設定情報を必要とするだろう。例えば、サーバ管理者は、サーバがネットワーク（例えば、データセンターネットワーク、インターネットなど）に接続可能かつアクセス可能な状態にするために、サーバのインターネットプロトコル（ＩＰ）アドレスを設定するにあたり、ＭＡＣアドレスやポート番号などを必要とするだろう。以下に記述されているとおり、システム１００は、システム管理者が、あるサーバからサーバ１１２に対して、帯域外接続を用いてＮＩＣ設定情報を遠隔操作で取得できる機構を提供できる。
【００１４】
いくつかの実施形態において、サーバ１１２は、ＮＩＣ設定データを取得するために、ベーシックインプットアウトプットシステム（ＢＩＯＳ）１１８を含んでいてもよい。例えば、ＢＩＯＳ１１８は、コンピューティングデバイスのマザーボード上にある、読出し専用メモリ（ＲＯＭ；read-only memory）または電気的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標）；Electrically Erasable Programmable Read-Only Memory）などに格納されているファームウェアであってもよい。ＢＩＯＳ１１８はサーバ１１２のハードウェア部品を初期化およびテストし、ブートローダまたはオペレーティングシステムを、大容量記憶装置からロードできる。ＢＩＯＳ１１８は、ハードウェアに対して抽象層を提供でき、その結果、アプリケーションプログラムやオペレーティングシステムに対して、キーボード、ディスプレイおよびその他の入出力装置と協働するための一貫した方法を提供できる。いくつかの実施形態において、ＢＩＯＳは、周辺機器（例えばＮＩＣ、ハードドライブコントローラ、ビデオディスプレイアダプタなど）、ＳＣＳＩのようなプラグインアダプターカード、ＲＡＩＤ（redundant array of independent disks）、ネットワークインターフェースカードおよびビデオボード（例えばビデオＢＩＯＳ）によって、またはそれらを用いて拡張される。
【００１５】
いくつかの実施形態において、ＢＩＯＳ１１８はオペレーティングシステム（ＯＳ）１２８の起動より前に、システムチェック１２０を実行することができる。例えば、ＯＳ１２８は、ＵＮＩＸ（登録商標）であってもよいし、Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムのいずれかの版であってもよいし、Ｌｉｎｕｘ（登録商標）オペレーティングシステムのディストリビューションであってもよいし、あるいは、ここで開示される機能をサポートするいずれのオペレーティングシステムであってもよい。システムチェック１２０は、パワーオンセルフテスト（ＰＯＳＴ）のような、コンピューティングデバイスの初期化の間に実行される、いかなる診断システム検査でもよい。ＰＯＳＴの主な役割は、ＢＩＯＳ１１８によって処理される。ＢＩＯＳ１１８は、これらの役割のいくつかを、ごく限られた特定用途向け周辺機器を初期化するため、とりわけビデオおよび小型コンピュータシステムインターフェース（ＳＣＳＩ；small computer system interface）を初期化するために設計された、他のプログラムに引き渡してもよい。ＰＯＳＴ実行中におけるメインＢＩＯＳの主たる役割は、ＣＰＵレジスタを検査すること、ＢＩＯＳコード自体の完全性を検査すること、いくつかの基本的な要素（例えば、ダイレクトメモリアクセス、タイマ、インタラプトコントローラなど）を検査すること、システムメインメモリの検出、サイズ決定および検査をすること、ＢＩＯＳを初期化すること、（もしインストールされていれば）専用に拡張された他のＢＩＯＳ群へ制御を渡すこと、ならびに、起動時に利用可能な機器を特定し、編成し、選択することである。また、ＰＯＳＴは、全てのシステムバスおよび機器について、検出、初期化、カタログへの追加、システムの設定のためのユーザインターフェース提供、および、目的のオペレーティングシステムによって要求されたシステム環境の構築を行うように構成されていてもよい。
【００１６】
いくつかの実施形態において、ＢＩＯＳ１１８は、ＮＩＣ１２４およびＮＩＣ１２６からＮＩＣ設定情報を取得するＢＩＯＳ機能部１３０を含んでいてもよい。例えば、ＢＩＯＳ機能部１３０は、ＢＩＯＳ１１８について設計されたソフトウェアまたはファームウェアとして実現可能である。いくつかの実施形態において、システムチェック１２０の実行中、ＢＩＯＳ機能部１３０は、ＮＩＣ１２４およびＮＩＣ１２６（またはＮＩＣ１２４およびＮＩＣ１２６に関連付けられたメモリ）から、ＮＩＣ設定情報を取得してもよい。例えば、それぞれのＮＩＣに対するソフトウェア（例えばドライバ）は、ＮＩＣ１２４およびＮＩＣ１２６のそれぞれについての設定情報を取得するためのＡＰＩを提供してもよい。ＮＩＣ設定情報は、ＢＩＯＳ機能部１３０がメモリから直接ＮＩＣ設定情報を取得できるように、ＢＩＯＳ１１８がアクセス可能なメモリに格納されてもよい。ひとたびＢＩＯＳ機能部１３０がＮＩＣ設定情報を取得すれば、ＢＩＯＳ機能部１３０は、そのＮＩＣ設定情報をシステム制御部１１４へ送ることが可能となる。
【００１７】
いくつかの実施形態において、システム制御部１１４は、サーバ１１２のＣＰＵやオペレーティングシステム（ＯＳ）１２８とは独立して作動するマイクロコントローラであってもよい。例えば、システム制御部１１４は、ベースボードマネージメントコントローラ（ＢＭＣ）のような、ＣＰＵとは独立して作動する特定のサービスプロセッサであってもよい。
【００１８】
いくつかの実施形態において、システム制御部１１４は、システム制御機能部１３２を含んでいてもよい。例えば、システム制御機能部１３２は、システム制御部１１４について設計されたソフトウェアもしくはファームウェアとして実現可能である。いくつかの実施形態において、システム制御機能部１３２はＢＩＯＳ１１８（例えばＢＩＯＳ機能部１３０）からＮＩＣ設定情報を受信し、そのＮＩＣ設定情報をメモリ１１６に格納するように設計されてもよい。メモリ１１６は、ＮＶＲＡＭ、リードオンリーメモリ、フラッシュメモリ、ＦＲＡＭ（登録商標）、などのような不揮発性メモリを含む、技術的に知られたいかなる記録媒体であってもよいが、これらに限定されない。いくつかの実施形態において、システム制御機能部１３２は、システム制御部１１４の他の機能とは独立して作動可能である。例えば、システム制御部１１４がＢＭＣである場合、ＢＭＣの第一の機能はサーバ１１２の物理的な状態を監視することである。その結果、システム制御機能部１３２は、ＢＭＣの監視機能とは独立して作動してもよい。
【００１９】
いくつかの実施形態において、システム制御部１１４は、サーバ管理システム１０２から、ＮＩＣ設定情報の要求を受信してもよい。例えば、システム制御部１１４は帯域外で動作し、それゆえにＯＳ１２８とは独立した機能となるように構成される。その結果、システム制御部１１４は、サーバ１１２が起動していなくても、または、電源が入っていなくても、ＮＩＣ設定情報の要求を処理することができる。例えば、システム制御部１１４は、メモリ１１６からＮＩＣ設定情報を取得することができる。あるいは、システム制御部１１４は、起動後、サーバ１１２が節電またはアイドル状態にあるとき、サーバ管理システム１０２からＮＩＣ設定情報の要求を受信してもよい。例えば、節電およびアイドル状態は、指示を停止させることによって、割り込みが発生するまで中央処理装置（ＣＰＵ）を停止させ、電力を抑える。システム制御部１１４は、帯域外で動作し、かつ、オペレーティングシステムおよびＣＰＵ（図示せず）とは独立しているので、サーバ１１２のアイドル状態からの割り込み無しで設定要求が受信され、処理される。
【００２０】
いくつかの実施形態において、システム制御機能部１３２およびＢＩＯＳ機能部１３０は、以下に詳細を説明するように、ＮＩＣ設定情報を送受信するためのインターフェースを提供してもよい。例えば、ＢＩＯＳ機能部１３０は、（１）ＮＩＣの設定情報を検出するため、そして（２）ＮＩＣの設定情報を取得するためのインターフェースを含んでいてもよい。システム制御機能部は、（１）ＮＩＣ設定情報を受信するため、そして（２）ＮＩＣ設定情報を送信するためのインターフェースを含んでいてもよい。例えば、要求は、リモートマネージメントシステム（たとえばサーバ管理システム１０２）からシステム制御部１１４（例えばシステム制御機能部１３２）に対して、ＮＩＣ設定情報を取得する（または送信する）ためのインターフェースを用いて送信されてもよい。システム制御部１１４は、ＯＳ１２８とは独立して作動するので、システム制御部１１４は、サーバ１１２およびＯＳ１２８が起動する前（例えば、通電前、初期化前、節電状態またはアイドル状態にある間、など）に、サーバ管理部１０４にＮＩＣ設定情報を送信することができる。
【００２１】
上で説明したように、システム制御部１１４は、サーバ管理システム１０２からＮＩＣ設定情報についての要求を受信することができる。サーバ管理システム１０２およびシステム制御部１１４は、ネットワークインターフェース（ＩＦ）１０６および１１０を通して互いに通信することができる。例えば、ＮＩＣ設定情報についての要求は、ネットワーク１０８（例えばＬＡＮ、ＷＬＡＮ、ＷＡＮ、インターネットなど）に接続されたネットワークインターフェース１０６、１１０を用いて送信されてもよい。同様に、ＮＩＣ設定情報は、ネットワークインターフェース１０６、１１０を用いて、システム制御部１１４からサーバ管理システム１０２へ送信されてもよい。ネットワークＩＦ１１０は、サーバ管理システム１０２とシステム制御部１１４との間の帯域外通信を可能にする、システム制御部１１４専用のネットワークインターフェースであってもよい。
【００２２】
いくつかの実施形態において、サーバ管理システム１０２は、サーバ管理部１０４を含んでいてもよい。サーバ管理部１０４は、システム管理者によって操作される、サーバ管理システム１０２上のソフトウェアアプリケーションであってもよい。例えば、サーバ管理部１０４は、システム制御部１１４に対してＮＩＣ設定情報の要求を送信するために、システム管理者が互いにやりとり可能であるようなユーザインターフェースを提供してもよい。いくつかの実施形態において、サーバ管理部１０４は、システム制御機能部１３２を介してシステム制御部１１４と通信するように構成されていてもよい。例えば、システム管理者は、ＮＩＣ設定情報を求める要求を、ＮＩＣ１２４およびＮＩＣ１２６に対して、サーバ管理部１０４を用いて送信してもよい。サーバ管理部１０４は、システム制御部１１４に対して上記要求を送信するように構成されていてもよい。例えば、サーバ管理部１０４は、システム制御部１１４上で実行されている、システム制御機能部１３２に対して上記要求を送信してもよい。システム制御部１１４がＮＩＣ設定情報を求める要求を受信したとき、システム制御機能部１３２は、メモリ１１６からＮＩＣ設定情報を読み出し、該ＮＩＣ設定情報を、サーバ管理システム１０２上で実行されているサーバ管理部１０４に送信する。
【００２３】
いくつかの実施形態において、サーバ管理システム１０２がＮＩＣ設定情報を受信すると、システム管理者は上記ＮＩＣ設定情報を用いてサーバ１１２を設定してもよい。例えば、サーバ管理者は、サーバ設定情報を、サーバ管理部１０４経由でシステム制御部１１４に対して送信することによって、サーバ管理部１０４を、サーバ１１２を設定するために利用することができる。そして、システム制御部１１４は、上記サーバ設定情報に従ってサーバ１１２を設定する。
【００２４】
いくつかの実施形態において、サーバ管理システム１０２は、帯域外通信チャンネル（例えば、オペレーティングシステムから独立した専用のチャンネルを用いた接続）を用いて、システム制御部１１４に対してＮＩＣ設定情報を要求してもよい。例えば、サーバ管理システム１０２は、サーバ１１２の電源投入より先に、システム制御部１１４に対して、ＮＩＣ設定情報を求める要求を送信してもよい。システム制御部１１４は、サーバ１１２の電源を入れるように構成されてもよい。上記ＮＩＣ設定情報は、一度サーバ１１２の電源が入れば、先に実施される起動の間に、すでにメモリ１１６に記録されるため、システム制御機能部１３２は、メモリ１１６から上記ＮＩＣ設定情報を取り戻し、該ＮＩＣ設定情報を、システム管理者がサーバ１１２を設定することができるように、サーバ管理システム１０２に対して送信する。
【００２５】
上述したように、サーバ１１２はＮＩＣ１２４およびＮＩＣ１２６を含んでいてもよい。ＮＩＣ１２４およびＮＩＣ１２６は、ユーザが有線または無線のいずれかを用いて互いに接続することを可能にしたコンピュータネットワークを介して、コンピュータ間の通信を可能にするためのネットワークアダプタであれば、技術的に公知のいかなるネットワークアダプタであってもよい。ＮＩＣ１２４およびＮＩＣ１２６は、物理層（例えば、開放型システム間相互接続（ＯＳＩ）層）およびデータリンク層の両方に、ネットワークメディアへの物理的な接続を提供するための機能、および、ＩＥＥＥ８０２ネットワークやファーバーディストリビューテッドデータインターフェース（ＦＤＤＩ）については、メディアアクセスコントロール（ＭＡＣ）アドレスを用いることにより、下位レベルアドレス指定システムを提供するための機能を有していてもよい。いくつかの実施形態において、ＮＩＣ１２４およびＮＩＣ１２６は、スイッチ１２２が適切な経路および伝送のテーブルを生成することができるように、スイッチ１２２（例えばラックのトップにあるスイッチ）と接続されていてもよい。いくつかの実施形態において、ＮＩＣは、該ＮＩＣのＲＯＭに保存されたＢＩＯＳを有していてもよい。
【００２６】
いくつかの実施形態において、サーバ管理部１０４は、１つ以上のサーバに対してＮＩＣ設定情報を要求してもよい。単純化のため、サーバが１つの場合について議論し説明する。しかし、ここに示す技術によれば、複数のサーバについても実施可能であることを理解されたい。例えば、複数のサーバについて、各々のシステム制御部、システム制御機能部、メモリ、ＢＩＯＳ、ＢＩＯＳ機能部、システムチェック、ＯＳおよびＮＩＣが、ネットワークＩＦを介して単一のサーバ管理システムに接続される。ネットワークＩＦのそれぞれは、サーバごとに専用のＩＦである。サーバ管理システムは、複数のサーバのＮＩＣのＮＩＣ設定情報を設定するために、サーバ管理部を介して、複数のシステム制御部（例えばＢＭＣ）に対して、複数の要求を送信してもよい。このことは、ここで教示した内容にしたがって、サーバの起動に先行して、あるいは、該サーバが低電力状態またはアイドル状態である間に、達成され得る。その上、ここで教示した内容は、単一のサーバについて１つのＮＩＣ設定情報を有する単一のＮＩＣ、または、単一のサーバについて１つのＮＩＣ設定情報を各々が有する複数のＮＩＣにも適用することができる。
【００２７】
図１および２について、図２はシステム制御部を用いてネットワークインターフェースコントローラについての設定情報を取得するための具体例としての処理２００のフロー図である。以下に記載する方法は、図１において説明された構成、例えば、例示する上記方法を説明するために参照されるこれらの図のさまざまな要素を用いて実行され得る。図２に示すそれぞれのブロックは、例示する上記方法において実行される、１つ以上の処理、方法、またはサブルーチンを表す。さらに、示されているブロックの順番は、単なる説明のためのものにすぎず、ブロックの順番は本開示内容に従って変更することができる。本開示内容から逸脱することなく、さらなるブロックが追加されてもよいし、あるいは、より少ないブロックで実現されてもよい。例示する上記方法は、ブロック２０２より始まる。
【００２８】
ブロック２０２において、サーバ１１２が起動される。いくつかの実施形態において、システム制御部１１４はサーバ１１２を起動する。例えば、システム制御部１１４は、システム制御部１１４にサーバ１１２を起動させるための起動要求を、サーバ管理部１０４から受信してもよい。上記要求は、ＣＰＵとは独立して作動する帯域外通信チャンネル（例えば、システム制御部専用のネットワークインターフェース）を用いて受信されてもよい。従って、いくつかの実施形態において、上記要求は、サーバ１１２の電源が落ちても、アイドル状態であっても、あるいは、その他の実行できない状態（例えば、サーバが何らかの理由で故障している状態）であっても、システム制御部１１４によって受信可能である。
【００２９】
ブロック２０４では、システム制御部１１４は、ＮＩＣ１２４およびＮＩＣ１２６についてのＮＩＣ設定情報を受信する。例えば、システム制御部１１４は、ＮＩＣ設定情報をＢＩＯＳ１１８から受信してもよい。いくつかの実施形態において、ＢＩＯＳ１１８はシステムチェック１２０の間、ＮＩＣ１２４およびＮＩＣ１２６からのＮＩＣ設定情報を取得してもよい。例えば、システムチェック１２０は、サーバ１１２の起動後かつＯＳ１２８の起動に先立って実行されているとする。この間に、ＢＩＯＳ１１８は、ＮＩＣ１２４およびＮＩＣ１２６から、ＮＩＣ設定情報を取得する。いくつかの実施形態において、システムチェック１２０はＢＩＯＳ１１８によって実施されるＰＯＳＴであってもよい。
【００３０】
ブロック２０６では、システム制御部１１４は、ＮＩＣ設定情報を、該システム制御部１１４に関連付けられた記憶装置に格納する。例えば、システム制御部１１４は、メモリ１１６にＮＩＣ設定情報を格納してもよい。
【００３１】
ブロック２０８では、システム制御部１１４は、管理システム１０２より、ＮＩＣ設定情報を求める要求を受信する。例えば、システム管理者は、ＮＩＣ１２４およびＮＩＣ１２６についてのＮＩＣ設定情報を求める要求を、サーバ管理部１０４を用いて送信してもよい。サーバ管理部１０４は、上記要求をシステム制御部１１４に送信するように構成されていてもよい。いくつかの実施形態において、サーバ管理部１０４は、システム制御機能部１３２を介してシステム制御部１１４と通信するように構成されていてもよい。
【００３２】
ブロック２１０では、システム制御部１１４は、管理システム１０２からＮＩＣ設定情報を求める要求を受信したことに対する応答として、管理システム１０２に対し、ＮＩＣ設定情報を送信する。例えば、システム制御機能部１３２は、管理システム１０２から上記要求を受信したことに応じて、メモリ１１６からＮＩＣ設定情報を読み出し、該ＮＩＣ設定情報を管理システム１０２へ送信してもよい。
【００３３】
いくつかの実施形態において、ＮＩＣ１２４、ＮＩＣ１２６のＮＩＣ設定情報は、サーバ管理システム１０２から設定情報を受信することによって設定されてもよい。例えば、システム制御機能部１３２は、サーバ管理システム１０２から設定情報を受信し、該設定情報に従ってＮＩＣ１２４、ＮＩＣ１２６が設定されるために、ＢＩＯＳ１１８を介して、ＮＩＣ１２４、ＮＩＣ１２６に対して上記設定情報を送信するように構成されていてもよい。システム制御機能部１３２は、また、上記設定情報をメモリ１１６へ格納するように構成されていてもよい。
【００３４】
図１および図３を参照して、図３は、ＢＩＯＳを用いてネットワークインターフェースコントローラについての設定情報を取得するための例となるプロセス３００を示すフローチャートである。以下に記載する方法は、例えば、図１において説明された構成、および、上記方法の具体例を説明するのに参照されるこれらの図のさまざまな要素を用いて実行される。図３に示すそれぞれのブロックは、１つまたはそれ以上のプロセス、方法、もしくはサブルーチンを表しており、上記方法の具体例において実行される。さらに、各ブロックについて図示された順番は、単なる例示にすぎず、ブロックの上記順番は、本開示内容に従って変更することができる。また、本開示内容から逸脱しない範囲で、さらにブロックを追加したり、もしくは、ブロックを減らしたりしてもよい。具体例としての上記方法は、ブロック３０２より始まる。
【００３５】
ブロック３０２では、コンピューティングデバイス（例えばサーバ１１２）が起動される。例えば、管理者がサーバ１１２の起動を開始してもよい。
【００３６】
ブロック３０４では、システムチェック１２０が実行される。例えば、コンピューティングデバイスの起動中に、ＢＩＯＳ１１８が、システムハードウェアコンポーネントの初期化やテストを行ってもよい。いくつかの実施形態において、システムチェック１２０は、サーバ１１２の起動後かつＯＳ１２８の起動前に実行されてもよい。いくつかの実施形態において、ＢＩＯＳ１１８は、ＰＯＳＴを実行する。
【００３７】
ブロック３０６では、システムチェック１２０の実行中に、ＢＩＯＳ１１８（例えばＢＩＯＳ機能部１３０）が、ＮＩＣ設定情報を検出する。例えば、ＰＯＳＴの完了前に、ＢＩＯＳ１１８（例えばＢＩＯＳ機能部１３０）は、ＮＩＣ１２４、ＮＩＣ１２６のＮＩＣ設定情報を検出してもよい。それから、ＮＩＣ設定情報は、ＢＩＯＳ機能部１３０がメモリから直接ＮＩＣ設定情報を取得可能なようにするため、ＢＩＯＳ１１８がアクセス可能な上記メモリに格納されてもよい。
【００３８】
ブロック３０８では、ＢＩＯＳ１１８（例えばＢＩＯＳ機能部１３０）は、検出されたＮＩＣ設定情報をシステム制御部１１４（例えばシステム制御機能部１３２）へ送信し、システム制御部１１４は、上記ＮＩＣ設定情報をメモリ１１６へ格納する。いくつかの実施形態において、ＢＩＯＳ機能部１３０は、ＢＩＯＳに、ＮＩＣ１２４、ＮＩＣ１２６のＮＩＣ設定情報を自動的に検出させ、サーバ１１２の起動後、システム制御部１１４へ送信させる。
【００３９】
図４は、図１〜３に示す特徴および処理を実現するシステムアーキテクチャ４００の具体例を示すブロック図である。システムアーキテクチャ４００は、コンパイルされた命令から生成されたソフトウェアアプリケーションを実行するどのような電子デバイス上でも実現され得る。上記電子デバイスには、これには限定されないが、パーソナルコンピュータ、サーバ、スマートフォン、メディアプレイヤー、電子タブレット、ゲーム機、電子メールデバイスなどが含まれている。ある実施形態では、システムアーキテクチャ４００は、１または複数のプロセッサ４０２、１または複数の入力デバイス４０４、１または複数のディスプレイデバイス４０６、１または複数のネットワークインターフェース４０８、および、１または複数のコンピュータ読み取り可能な記録媒体４１０を含んでいてもよい。これらの構成要素の各々は、バス４１２で接続されている。
【００４０】
ある実施形態では、システムアーキテクチャ４００は、サーバのラック（rack）のうち単一のサーバで実現されてもよい。多様なラックの設定が実現されてもよい。例えば、ラックが複数の筐体を含み、各々の筐体が複数のサーバを含むように構成されてもよい。ラック内の各々のサーバは、さまざまなハードウェアの構成要素（バックボーン、ミドルプレーンなど）によって接続されていてもよい。ラック内の各々のサーバは、ラックのトップスイッチ（top-of-rack switch）を介してネットワークに接続されていてもよい。
【００４１】
ディスプレイデバイス４０６は、既知のいずれのディスプレイ技術であってもよい。上記ディスプレイデバイスには、これには限定されないが、液晶表示装置（ＬＣＤ；Liquid Crystal Display）または発光ダイオード（ＬＥＤ；Light Emitting Diode）の技術が採用されてもよい。プロセッサ４０２には、既知のプロセッサ技術が採用される。上記プロセッサには、これには限定されないが、グラフィックスプロセッサ、および、マルチコアプロセッサなどが含まれる。入力デバイス４０４は、既知の入力デバイス技術であってもよい。上記入力デバイスには、これには限定されないが、キーボード（バーチャルキーボードも含む）、マウス、トラックボール、および、タッチセンサパッドまたはディスプレイなどが含まれる。バス４１２は、既知の内部または外部バス技術であってもよい。上記バスには、これには限定されないが、ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＮｕＢｕｓ、ＵＳＢ、Ｓｅｒｉａｌ  ＡＴＡ、または、ＦｉｒｅＷｉｒｅ（登録商標）などが含まれる。
【００４２】
コンピュータ読み取り可能な媒体４１０は、実行主体のプロセッサ４０２に対して命令を供給するものであればいずれの媒体であってもよい。上記媒体には、これには限定されないが、不揮発性記録媒体（例えば、光学ディスク、磁気ディスク、フラッシュドライブなど）、あるいは、揮発性記録媒体（例えば、ＳＤＲＡＭ、ＲＯＭなど）が含まれる。コンピュータ読み取り可能な媒体（例えば、記憶装置、媒体、および、メモリ）は、例えば、ケーブルまたはビットストリームを含む無線信号などであってもよい。しかしながら、非一時的なコンピュータ読み取り可能な記録媒体というとき、エネルギー、搬送信号、電磁波、および、電磁信号それ自体などのような媒体を明確に排除する。
【００４３】
コンピュータ読み取り可能な媒体４１０は、オペレーティングシステム４１４（例えば、ＭａｃＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）など）およびコンピュータプログラムなどのアプリケーション４２０を実現するためのさまざまな命令を含んでいる。オペレーティングシステムは、マルチユーザ、マルチプロセッサ、マルチタスク、マルチスレッド、リアルタイムなどであってもよい。オペレーティングシステム４１４は、基本タスクを実行する。基本タスクとしては、これには限定されないが、入力デバイス４０４からの入力を認識する、ディスプレイデバイス４０６に出力を送信する、ファイルおよびディレクトリのトラックを、コンピュータ読み取り可能な媒体４１０上に確保する、直接または入出力制御部を介して、周辺デバイス（例えば、ディスクドライバ、プリンタなど）を制御する、バス４１２上のトラフィックを管理することなどが含まれる。図１〜３を参照して上述したとおり、オペレーティングシステム４１４は、ＩＰアドレスをシステム制御部４２２に要求して、システム制御部４２２から受信したＩＰアドレスに基づいて、サーバＩＰアドレスを設定するオペレーティングシステム機能を起動するように構成されたエージェント（例えば、ソフトウェアアプリケーション、ユーティリティ、プログラムなど）を含んでいてもよい。ネットワークコミュニケーション命令４１６は、ネットワーク接続（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、イーサネット（登録商標）などの通信プロトコルを実現するソフトウェア）を確立し、維持する。
【００４４】
メモリ４１８は、１または複数の磁気ディスク記憶装置、１または複数の光学記憶装置、および／または、フラッシュメモリ（例えば、ＮＡＮＤ、ＮＯＲ）などの高速ランダムアクセスメモリおよび／または不揮発性メモリを含んでいてもよい。メモリ４１８（例えば、コンピュータ読み取り可能な記憶装置、媒体、およびメモリ）は、ケーブルまたはビットストリームを含む無線信号などであってもよい。しかしながら、非一時的なコンピュータ読み取り可能な記録媒体というとき、エネルギー、搬送信号、電磁波、および、電磁信号それ自体などのような媒体を明確に排除する。メモリ４１８は、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）などのオペレーティングシステム、または、ＶｘＷｏｒｋｓ（登録商標）などの組み込みのオペレーティングシステムを記憶している。
【００４５】
システム制御部４２２は、プロセッサ４０２とは独立して作動するサービスプロセッサであってもよい。ある実施形態では、システム制御部４２２は、ベースボードマネージメントコントローラ（ＢＭＣ；baseboard management controller）であってもよい。例えば、ＢＭＣは、センサを用いてコンピュータ、ネットワークサーバ、または、その他のハードウェア装置の物理的な状態を監視し、独立した接続を介してシステム管理者と通信する特殊なサービスプロセッサである。ＢＭＣは、監視対象の装置のマザーボード、または、メイン回路基板上に構成される。ＢＭＣのセンサは、温度、湿度、電源電圧、ファン回転速度、通信パラメータ、および、オペレーティングシステム（ＯＳ）機能などの、内部の可変の物理量を測定してもよい。
【００４６】
ある実施形態では、ＢＭＣは、プロセッサ４０２とは独立して実行される。それゆえ、プロセッサ４０２、メモリ４１８、または、その他のハードウェアの故障が起こったときでも、ＢＭＣは、引き続きサービスを提供することができ、機能し続ける。ある実施形態では、サーバが、電源（例えば、電源ユニット、バックアップ電源ユニット、電力分散ユニットなど）にプラグで接続されると、ＢＭＣはすぐに実行を開始する。例えば、ブレード前面の電源ボタンは、ＢＭＣの電源のオン／オフを行わない。ＢＭＣとの接続の管理は、ブレード上のＢＭＣ専用の２つの１００ＢＡＳＥ−Ｔインターフェースを通じて、筐体内部の管理に至る。しかしながら、いずれの場合であっても、ＢＭＣとの接続は、２つの１００ＢＡＳＥ−Ｔインターフェースのうち１つを介してのみ行われるので、もう一方のインターフェースが余る。（例えば、サーバ管理部１０４を利用している）システム管理者は、制御部のインテリジェントプラットフォーム管理インターフェース（ＩＰＭＩ；intelligent platform management interface）を用いるシステム制御部４２２と相互に作用する（例えば、設定、監視など）。例えば、ＩＰＭＩインターフェースは、サーバのＩＰアドレスとともにシステム制御部４２２を構成するのに用いられてもよい。あるいは、システム制御部４２２には、非ＩＭＰＩインターフェース（例えば、カスタムインターフェースなど）が組み込まれていてもよい（例えば、ソフトウェア、ファームウェアなど）。これにより、システム管理者は、システム制御部４２２を用いて、遠隔でサーバのＩＰアドレスを設定することができる。
【００４７】
有利には、上述した特徴は、１または複数のコンピュータプログラム上で実現され得る。上記コンピュータプログラムは、プログラムで制御可能なシステム上で実行可能である。上記システムは、データや命令を、データ記憶システムから受信したり、データ記憶システムに送信したりするために該データ記憶システムと接続された、プログラムで制御可能な少なくとも１つのプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。コンピュータプログラムは、ある特定の働きを果たすまたはある特定の結果をもたらすために、コンピュータ上で直接または間接的に利用可能な命令の集合である。コンピュータプログラムは、コンパイルされた言語または解釈された言語を含むいずれのプログラミング言語の形式で記述されてもよい（例えば、オブジェクティブ−Ｃ、Ｊａｖａ（登録商標）など）。また、コンピュータプログラムは、例えば、独立した単体プログラム、もしくは、モジュール、コンポーネント、サブルーチンまたはコンピュータ環境での使用に適したその他のユニットなどを含むいずれの形式として展開されてもよい。
【００４８】
命令のプログラムの実行に適したプロセッサは、一例として、いずれのタイプのコンピュータであっても、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方と、単一のプロセッサ、もしくは、複数のプロセッサまたはコアのうちの１つとを含む。通常、プロセッサは、命令およびデータを、読出し専用メモリ（read-only memory）またはランダムアクセスメモリ（random access memory）またはその両方から受信する。コンピュータに必須の構成要素は、命令を実行するプロセッサ、および、命令およびデータを格納するための１または複数のメモリである。通常、コンピュータは、データファイルを記憶するための１または複数の大容量記憶装置も含むか、あるいは、該大容量記憶装置にアクセスできるように接続されている。上記大容量記憶装置としては、内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、ならびに、光学ディスクなどが含まれる。コンピュータプログラムの命令およびデータを明確に具現化するのに適した記憶装置としては、すべての型の不揮発性メモリが含まれる。該不揮発性メモリとしては、一例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ（登録商標）およびフラッシュメモリ装置などの半導体メモリ装置、内部ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、磁気光学ディスク、ならびに、ＣＤ−ＲＯＭディスクおよびＤＶＤ−ＲＯＭディスクなどが含まれる。上記プロセッサおよび上記メモリは、特定用途向けＩＣ（ＡＳＩＣｓ：application-specific integrated circuits）によって追加されてもよいし、あるいは、該ＩＣに統合されていてもよい。
【００４９】
ユーザとの相互作用を実現するために、本特徴は、ユーザに情報を表示するための、ＣＲＴ（cathode ray tube）モニタまたはＬＣＤ（liquid crystal display）モニタなどのディスプレイデバイスと、キーボードおよびユーザがコンピュータに入力を行うために用いるマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実現されてもよい。
【００５０】
本特徴は、以下のコンピュータシステムによって実現されてもよい。すなわち、データサーバなどのバックエンドコンポーネントを含むコンピュータシステム、または、アプリケーションサーバまたはインターネットサーバなどのミドルウェアコンポーネントを含むコンピュータシステム、または、グラフィカルユーザインターフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピュータシステム、または、これらのコンピュータシステムの任意の組み合わせによって実現されてもよい。上記システムの各コンポーネントは、いずれの形態によって接続されていてもよいし、あるいは、通信ネットワークなどのデジタルデータ通信媒体によって接続されていてもよい。通信ネットワークの具体例としては、例えば、ＬＡＮ、ＷＡＮ、ならびに、インターネットを構築するコンピュータおよびネットワークなどが含まれる。
【００５１】
上記コンピュータシステムは、クライアントおよびサーバを含んでいてもよい。通常、クライアントおよびサーバは、互いに遠隔地に配備され、典型的には、ネットワークを介して相互に通信する。クライアントおよびサーバの関係は、互いのコンピュータ上で実行されている、かつ、互いのクライアント−サーバの関係性を有するコンピュータプログラムの効力によって発生する。
【００５２】
本開示の実施形態における１または複数の特徴またはステップは、ＡＰＩ（application programming interface）を用いて実現されてもよい。ＡＰＩは、呼び出されているアプリケーションと、サービスを提供したり、データを提供したり、あるいは、演算または計算を実行したりする他のソフトウェアコード（例えば、オペレーティングシステム、ライブラリルーチン、ファンクションなど）との間で引き渡される、１または複数のパラメータを定義する。
【００５３】
ＡＰＩは、プログラムコードにおける１または複数の呼び出しとして実現されてもよい。該プログラムコードは、ＡＰＩ仕様書において定義された呼び出しの仕様に基づくパラメータリストまたは他の構造を介して、１または複数のパラメータを送信したり受信したりする。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、または、その他の呼び出しであってもよい。ＡＰＩの呼び出しおよびパラメータは、いずれのプログラミング言語において実現されてもよい。プログラミング言語は、プログラマが、ＡＰＩがサポートする機能にアクセスするために採用するボキャブラリおよび呼び出しの仕様を定義してもよい。
【００５４】
ある実施形態では、ＡＰＩの呼び出しは、アプリケーションに対して、該アプリケーションを実行するデバイスの性能（例えば、入力性能、出力性能、処理性能、電力性能、通信性能など）を通知してもよい。
【００５５】
これまで多数の実施形態を開示してきた。しかしながら、さまざまな変更が行われてもいということについて理解されたい。例えば、他のステップが追加されてもよいし、あるいは、開示されたフローからステップがいくつか省略されてもよい。また、他の構成要素が開示されたシステムに追加されてもよいし、該システムから構成要素がいくつか取り除かれてもよい。したがって、後述の請求項が示す範囲内で他の実施形態が実現され得る。
【００５６】
添付された請求の範囲内の側面を説明するために、さまざまな具体例およびその他の情報が用いられた。しかし、当業者は、実施形態の変形例をさまざまに引き出すためにこれらの具体例を使うことができるので、請求項の限定は、そのような具体例における特別な特徴または配置に基づいて示唆されるべきではない。また、いくつかの主題は、特徴的構成およびまたは方法の各ステップの具体例向けの言語において開示されてきたが、添付された請求の範囲において定義された上記主題は、必ずしもここで開示された特徴または動作に限定されない。例えば、このような機能性は、別の構成要素に分散されたり、あるいは、ここで示されたのとは別の構成要素において実行されたりしてもよい。むしろ、ここに記載された特徴およびステップは、添付の請求の範囲内において、システムの構成要素および方法の一具体例として開示されたものである。
【図１】
2016024811.tif 000003
【図２】
2016024811.tif 000004
【図３】
2016024811.tif 000005
【図４】
2016024811.tif 000006
【外国語明細書】
2016024811000001.pdf