(57)【要約】【課題】管理者が単一のプロトコルを用いてサーバーの異なるコンポーネントに管理上の制御を与えることができるように、効果的なアプローチを提供する。【解決手段】いくつかの実施形態において、計算装置のサービスコントローラは、計算装置の各種異なるコンポーネントに関連する。コンポーネントのうちの任意の１つに対して発せられたコマンドに応答し、サービスコントローラは、コマンドに応じたデータを送信するために、互いに通信することができる。例えば、計算装置はベースボード管理コントローラ（ＢＭＣ）およびシリアルアタッチドＳＣＳＩエキスパンダーカード（ＳＡＳエキスパンダー）を含み得る。計算装置のＢＭＣは、計算装置に接続されたハードドライブの状態を要求するリモートコマンドを受信し、例えば計算装置のシステムバスを介してコマンドをＳＡＳエキスパンダーに伝達する。ＳＡＳエキスパンダーは、コマンドに対する応答を取り出し、応答をＢＭＣに伝達し、そしてそれが応答をリモートサイトへ送信する。【選択図】図１
2016091557.tif 000002
【特許請求の範囲】
【請求項１】
計算装置の第１のサービスコントローラでシステム管理要求を受信する工程であって、前記計算装置が少なくとも前記第１のサービスコントローラおよび第２のサービスコントローラを含む、工程と、
前記システム管理要求を前記第２のサービスコントローラに伝達する工程と、
前記システム管理要求への応答を取り出す（ｒｅｔｒｉｅｖｉｎｇ）工程であって、前記応答が前記第２のサービスコントローラを用いて取り出される工程と、
前記応答を前記第１のサービスコントローラを用いて伝達する工程と、
を含む方法。
【請求項２】
前記システム管理要求がシステム管理バスを介して前記第２のサービスコントローラに伝達される請求項１に記載の方法。
【請求項３】
前記システム管理要求がＩＰＭＩコマンドを含む請求項１に記載の方法。
【請求項４】
前記システム管理要求がＳＥＳコマンドを含む請求項１に記載の方法。 
【請求項５】
前記第１のサービスコントローラがベースボード管理コントローラである請求項１に記載の方法。
【請求項６】
前記第２のサービスコントローラがシリアルアタッチド（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ）ＳＣＳＩエキスパンダーである請求項１に記載の方法。
【請求項７】
前記システム管理要求への前記応答が、前記システム管理要求に用いられるのと同じプロトコルを用いて伝達される請求項１に記載の方法。
【請求項８】
前記第１のサービスコントローラが、前記システム管理要求が第１のタイプまたは第２のタイプのいずれかであるかを判断する工程であって、前記第１のタイプがサーバー管理に関連するものであり、前記第２のタイプがストレージデバイス管理に関連するものである工程をさらに含む請求項１に記載の方法。
【請求項９】
前記第１のタイプが前記第１のサービスコントローラに関連するものであり、前記第２のタイプが前記第２のサービスコントローラに関連するものである請求項８に記載の方法。
【請求項１０】
システムコントローラによって実行されると、
ネットワークを介し、計算装置の第１のサービスコントローラで、前記第１のサービスコントローラに関連する第１のプロトコルを含むシステム管理要求が受信され、
前記計算装置の第２のサービスコントローラから前記第１のサービスコントローラに伝達される、前記システム管理要求への応答が受信され、かつ、
前記第１のサービスコントローラを用いて前記ネットワークを介し前記応答が伝達される、
こととなる１つまたはそれ以上の命令のシーケンスを含む非一時的なコンピュータ可読媒体。
【請求項１１】
前記第２のサービスコントローラが第２のプロトコルに関連するものであり、前記第２のプロトコルは前記第１のサービスコントローラに関連していない請求項１０に記載の非一時的なコンピュータ可読媒体。
【請求項１２】
システムコントローラによって実行されると、
前記計算装置のバスインターフェースを介して前記システム管理要求が前記第２のサービスコントローラに伝達されることとなる１つまたはそれ以上の命令のシーケンスをさらに含む請求項１０に記載の非一時的なコンピュータ可読媒体。
【請求項１３】
前記第１のサービスコントローラがベースボード管理コントローラを含む請求項１０に記載の非一時的なコンピュータ可読媒体。
【請求項１４】
前記第２のサービスコントローラがシリアルアタッチド（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ）ＳＣＳＩエキスパンダーを含む請求項１１に記載の非一時的なコンピュータ可読媒体。
【請求項１５】
少なくとも１つのサービスコントローラと、
少なくとも１つのストレージデバイスと、
１つまたはそれ以上のプロセッサと、
コンピュータ可読媒体であって、前記プロセッサにより実行されると、少なくとも第１のサービスコントローラおよび第２のサービスコントローラを含む計算装置の前記第１のサービスコントローラでシステム管理要求が受信され、前記第１のサービスコントローラにより前記システム管理要求が第１のタイプまたは第２のタイプのいずれかであるかが判断され、前記システム管理要求が前記第２のタイプであるとの判断に基づいて前記第２のサービスコントローラを用い取り出される、前記システム管理要求への応答が取り出され、かつ、前記第１のサービスコントローラを用いて前記応答が伝達されることとなる、１つまたはそれ以上の命令のシーケンスを含むコンピュータ可読媒体と、
を含むシステム。
【請求項１６】
前記第１のタイプがサーバー管理に関するものであり、前記第２のタイプがストレージデバイス管理に関するものである請求項１５に記載のシステム。
【請求項１７】
前記第１のサービスコントローラがベースボード管理コントローラを含む請求項１５に記載のシステム。
【請求項１８】
前記第２のサービスコントローラがシリアルアタッチド（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ）ＳＣＳＩエキスパンダーを含む請求項１５に記載のシステム。
【請求項１９】
前記システム管理要求がＩＰＭＩコマンドを含む請求項１５に記載のシステム。
【請求項２０】
前記システム管理要求がＳＥＳコマンドを含む請求項１５に記載のシステム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してサーバーシステム管理に関する。
【背景技術】
【０００２】
従来のサーバーシステムは、ストレージデバイス、ネットワークインターフェース、マイクロプロセッサなどのような複数のコンポーネントを備えている。これらコンポーネントは一般に、単一のプロトコルを用いて単一のサービスコントローラと通信する。遠隔ユーザーは、サーバーシステムの特定のコンポーネントの状態を、その特定のコンポーネントと通信するサービスコントローラに用いられるプロトコルに関連したプロトコルコマンドを使用することによって、ネットワークを介し制御および／または問い合わせ（ｑｕｅｒｙ）することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
管理者が単一のプロトコルを用いてサーバーの異なるコンポーネントに管理上の制御を与えることができるように、効果的なアプローチを提供する。
【課題を解決するための手段】
【０００４】
いくつかの実施形態において、計算装置のサービスコントローラは、計算装置の各種異なるコンポーネントに関連しており、かつコンポーネントのうちのいずれか１つに対して発せられたコマンドに応答して、コマンドに応じたデータを送信するために互いに通信することができる。例えば、計算装置は、ベースボード管理コントローラ（ＢＭＣ）およびシリアルアタッチドＳＣＳＩエキスパンダーカード（ＳＡＳエキスパンダー）を含み得る。計算装置のＢＭＣは、計算装置に接続されたハードドライブの状態を要求するリモートコマンドを受信し、例えば計算装置のシステムバスを介してＳＡＳエキスパンダーにそのコマンドを伝達する。ＳＡＳエキスパンダーは、コマンドへの応答を取り出して、その応答をＢＭＣに伝え、次いでそれがその応答をリモートサイトに送信する。
【発明の効果】
【０００５】
特定の実施形態は、少なくとも次の利点を提供する。つまり、遠隔ユーザーは、サーバーシステムの特定のコンポーネントの状態を、その特定のコンポーネントと通信するサービスコントローラに使用されるプロトコルに通常は関連しているコマンドを用いることによって、ネットワークを介して制御および／または問い合わせすることができる。
【図面の簡単な説明】
【０００６】
１つまたはそれ以上の実施形態の詳細が、添付の図面および以下の説明に示される。その他の特徴、態様、および潜在的な利点は、これら説明および図面、ならびに特許請求の範囲から明らかとなるであろう。
【０００７】
【図１】いくつかの実施形態による多重プロトコルシステム管理に用いるシステムの例を示す図である。
【図２】いくつかの実施形態による多重プロトコルシステム管理を説明するフローの例の図である。
【図３】いくつかの実施形態による多重プロトコルシステム管理を説明するフローの例の図である。
【図４】いくつかの実施形態による多重プロトコルシステム管理に用いるプロセスの例を示す図である。
【図５】図１〜４の特徴およびプロセスを実現するシステムアーキテクチャの例のブロック図である。
【０００８】
各図における類似する参照符号は類似する構成要素を示す。
【発明を実施するための形態】
【０００９】
以下に、本発明の各種実施形態を詳細に記載する。特定の実施形態について記載するが、これは単に説明の目的で記載されているものと理解されなければならない。当業者は、本発明の精神および範囲を逸脱することなくその他のコンポーネントおよび構成を利用可能である、ということを理解するであろう。
【００１０】
データセンターは数百から数千ものラックサーバーシステムを保管することができ、各ラックサーバーシステム (“ラックシステム”)は、それに接続された多数のコンピュータシステム(例えば“サーバー”)を備えている。ラックシステム中で構成されているこれらサーバーは、インターネットの骨格を形成する。サーバーは、現代のコンピューターライフには不可欠なアプリケーションを実行するものであり、例えばウェブサーバー、メールサーバー、データベースサーバーなどがある。
【００１１】
これらサーバーは、多数のコンポーネント、例えばマイクロプロセッサ、ストレージデバイス、ストレージアダプタ、メモリモジュール、電源、ファン、および当該分野で周知のその他のコンポーネントからなる。サーバーは、高負荷の下で動作し、コンパクトなスペース中に組み立てられて極端な温度に達し得る多数の部品からなり、かつ大抵は多数の他のサーバーの近くで動作するものであるが、それらの全てが組み合わさって、一般的にデータセンターがよく換気および冷却されているのにかかわらず、膨大な量の熱を発生する。
【００１２】
それら本質的な性質のために、ラックシステム、ひいてはラックシステム内で接続されたサーバーが確実に高いアップタイムで動作するよう、かなりのリソースが充てられる。それらが動作する極めて過酷な環境を考慮すると、サーバーには、定期的なメンテナンス、およびこれを遂行するための監視が要される。データセンターは数百から数千のラックシステムを保管し得る。かつ各ラックシステムは、 何百もあるであろうストレージデバイスに加え、電源、ファンなどと共に、数個から数十個のサーバーを含み得る。
【００１３】
大規模であろうデータセンター中に含まれる非常に多くのシステムにより、管理（Ａｄｍｉｎｉｓｔｒａｔｉｏｎ）、監視、およびメンテナンスは困難となる。よって、かなりの数の監視（例えば、コンポーネントの温度の監視）およびメンテナンス（例えば、サーバーの再起動、ファンの速度の調整など）がリモート管理により行われる。データセンターの現場（ｏｎ−ｓｉｔｅ）または遠隔における管理者は、ネットワークに接続してから、データセンター内にある個別のラックシステムおよびサーバーに接続し得る。このネットワーク接続によって、管理者は、ラックシステムおよびサーバーに対しコマンドおよびデータの要求を出すと共に、ネットワーク接続を介して応答を受信することができる。
【００１４】
従来のサーバーは専用のマイクロコントローラモジュールを備えており、それはサーバーのマザーボード上に配されていることの多い、例えばベースボード管理コントローラ（ＢＭＣ）である、または、とりわけシリアルアタッチドＳＣＳＩエキスパンダーカード（ＳＡＳエキスパンダー）のような拡張カードである。一般に、ＢＭＣモジュールは、特定のサーバーハードウェア、例えばファン、温度センサ、ＢＩＯＳ、メモリモジュールなどとの通信をサポートするのみである。ＳＡＳエキスパンダーモジュールは、ストレージデバイス、例えばハードドライブ、固体デバイス（ＳＳＤ）、および当該分野において従来より“ＪＢＯＤ”または“Ｊｕｓｔ  ａ  Ｂｏｘ  ｏｆ  Ｄｉｓｋｓ”として知られている筐体中の多数のハードドライブのアレイとの通信をサポートするのみである。加えて、ＢＭＣは“アウトオブバンド（ｏｕｔ−ｏｆ−ｂａｎｄ）”で動作できるが、いくつかの実施形態において、ＳＡＳエキスパンダーはアウトオブバンドで動作しない。故に、ＢＭＣを用いてストレージデバイスとの通信を円滑にすることは有用である。いくつかの実施形態では、待機電源がＳＡＳエキスパンダーに供給され、よってそれはＳＭＢＵＳを介してＢＭＣに情報を提供することができる。
【００１５】
ＢＭＣおよびＳＡＳエキスパンダーが負う責任（ｒｅｓｐｏｎｓｉｂｉｌｉｔｉｅｓ）の分担のために、管理者は、異なるコンポーネントにメンテナンスを行い、かつそれらからのデータの要求を伝送するため、別個のプロトコルを用いてＢＭＣおよびＳＡＳエキスパンダーと通信を行わなくてはならないが、これは非効率である上、非常に時間がかかることである。管理者は、プロトコルのうちの１つだけに精通しており、十分なシステム管理を行うために別の複雑さを習得しようとは思わないかもしれない。
【００１６】
よって、管理者が単一のプロトコルを用いてサーバーの異なるコンポーネントに管理上の制御を与えることができるように、効果的なアプローチを提供する必要がある。
【００１７】
図１は、いくつかの実施形態による多重プロトコルシステム管理に用いられるシステム１００の例を示している。いくつかの実施形態において、システム１００は、複数のサーバー１０４を含むサーバーラック１０２を含み得る。各サーバー１０４は各種コンポーネント、例えば、１つまたはそれ以上の中央処理装置（ＣＰＵ）１１２、ＢＭＣ１１４およびＳＡＳエキスパンダー１１６のような１つまたはそれ以上のサービスコントローラ、１つまたはそれ以上のセンサ１１８、１つまたはそれ以上のストレージデバイス１２０、および電源、ファン、メモリモジュールなどのような図示されていないが当該分野で知られたその他のコンポーネントを含み得る。本明細書に記載されているアプローチは、特定のサービスコントローラまたはサービスコントローラのセットに限定されることはない。
【００１８】
ＣＰＵ１１２は、複数のコアを有し、サーバー１０４のメインプロセッサとなり得るものである。いくつかの実施形態では、サーバー１０４のうちの少なくとも１つが、複数のＣＰＵ１１２を含んでいてよい。本明細書で“ラックシステム”、“サーバー”、“ハードドライブ”、“サービスコントローラ”などと言及されていても、本明細書の実施例における単数形の使用は、様々な実施形態における複数形の使用を除外するものではないと理解されるべきである。
【００１９】
いくつかの実施形態では、ＢＭＣ１１４は、一般的にサーバーであるコンピュータのマザーボードに通常は埋め込まれている特定のマイクロコントローラ（マイクロプロセッサ）である。例えば、ＢＭＣ１１４は、システム管理ソフトウェアとプラットフォームハードウェアとの間のインターフェースを管理し、かつセンサを用いると共に、独立した接続（例えばアウトオブバンド）を通してシステム管理者１０８と通信するサーバー１０４の物理的状態を監視する。ＢＭＣ１１４はインテリジェントプラットフォーム管理インターフェイス（ＩＰＭＩ）の一部であり、ＣＰＵ１１２から独立して動作可能である。さらに、ＢＭＣ１１４は、ＣＰＵ１１２がパワーダウンおよび電源オフのときでも、動作することができる。
【００２０】
いくつかの実施形態において、サーバー１０４中に組み込まれる異なるタイプのセンサが、温度、冷却ファンの速度、電源の状態、オペレーティングシステム（ＯＳ）の状態などのようなパラメータについてＢＭＣ１１４に報告する。例として、ＢＭＣ１１４はセンサを監視し、例えばパラメータのいずれかが事前に設定されたリミット内にない場合、ネットワーク１０６を介してシステム管理者１０８にアラートを送って、サーバー１０４に関する潜在的な問題を示すことができる。管理者１０８はまた、ネットワーク１０６を介してＢＭＣ１１４と遠隔的に通信し、サーバー１０４の再設定またはパワーサイクリング（ｐｏｗｅｒ−ｃｙｃｌｉｎｇ）のようなメンテナンスを実行することもできる。
【００２１】
いくつかの実施形態において、センサは、ＢＭＣ１１４を介しＩＰＭＩにより監視され得るデバイスである。デバイスはバーチャルまたはリアルのものであってよい。リアルなデバイスは、ＢＭＣ１１４に直接、またはＳＳＩＦプロトコルを用いＳＭＢＵＳのようなインターフェースバスを介して接続されてよく、１実施形態によれば、これによってＢＭＣがＳＭＢＵＳを介してＳＡＳエキスパンダーと通信できるようになる。例えば、ＢＭＣ１１４は中央（ｃｅｎｔｒａｌ）、不揮発性（ｎｏｎｖｏｌａｔｉｌｅ）のシステムイベントログ（ＳＥＬ）を提供する。ＩＰＭＩのコマンドはＳＥＬを読み取り、かつクリアすることができる。ＩＰＭＩイベントメッセージは、ＳＥＬにエントリを加えることができる。
【００２２】
いくつかの実施形態において、ＩＰＭＩは、サーバーのＣＰＵ１１２、ファームウェア（例えばＢＩＯＳまたはＵＥＦＩ）およびオペレーティングシステムから独立した管理および監視能力を提供するコンピュータシステム（例えばサーバー１０４）用の一連のコンピュータインターフェース仕様である。ＩＰＭＩは、サーバー１０４のアウトオブバンド管理および動作監視のためにシステム管理者により用いられる一連のインターフェースを定義する。例えば、ＩＰＭＩは、オペレーティングシステムまたはログインシェルではなく、ハードウェアへのネットワーク接続１０６を用いることにより、パワーダウンした、または別の形で反応しないサーバー１０４を管理する方法を提供する。
【００２３】
いくつかの実施形態において、システム管理者１０８は、例えばネットワーク接続１０６を介してリモートコンソール１１０から要求が発せられることにより、リカバリ手順（例えばシステムパワーダウンおよびリブート、またはコンフィギュレーション）を実行するだけでなく、ＩＰＭＩメッセージングを使用して、サーバー１０４の状態（例えばシステムの温度、電圧、ファン、電源およびシャーシイントルージョン（ｃｈａｓｓｉｓ  ｉｎｔｒｕｓｉｏｎ）など）を監視し、サーバーインベントリ情報を問い合わせ（ｑｕｅｒｙ）、アウトオブレンジ状態のサーバーログをレビューする（ｒｅｖｉｅｗ）ことができる。
【００２４】
いくつかの実施形態において、ＩＰＭＩはまた、“サイドバンド（ｓｉｄｅ−ｂａｎｄ）”管理接続も可能にする。例えばこれは、サーバー１０４のＢＭＣ１１４とネットワークインターフェースコントローラ（ＮＩＣ）との間のシステム管理バス（ＳＭＢＵＳ）インターフェース（図示せず）を使用する。いくつかの実施形態において、ＳＭＢＵＳは、サーバー１０４を構成するコンポーネント間での通信に用いられる。例えば、ＢＭＣ１１４はＳＭＢＵＳを用いてＳＡＳエキスパンダー１１６と通信することができる。
【００２５】
いくつかの実施形態において、ＳＡＳエキスパンダー１１６は、通常は拡張カード上に配置されているマイクロコントローラを含み、これにより数多くのシリアルアタッチドＳＣＳＩ（ＳＡＳ）デバイス間の通信が円滑となる。例えば、ＳＡＳエキスパンダー１１６は２つまたはそれ以上のポートを含んでいてよい。ＳＡＳエキスパンダー１１６は、管理のための少なくとも１つのＳＡＳ管理プロトコルターゲットポートを含んでいてよく、かつそれ自体でＳＡＳデバイスを含んでいてよい。例えば、ＳＡＳエキスパンダー１１６は、ハードドライブのような周辺機器へのアクセスのためのシリアルＳＣＳＩプロトコルターゲットポートを含み得る。
【００２６】
いくつかの実施形態において、シリアルアタッチドＳＣＳＩ（ＳＡＳ）は、データをハードドライブのようなコンピュータのストレージデバイスへ、および該ストレージデバイスから移動させるポイントトゥポイント（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ）シリアルプロトコルである。例えば、データは、ＳＡＳプロトコルを用いて、１つまたはそれ以上のハードドライブに書き込まれ得る、または該ハードドライブから読み取られ得る。
【００２７】
いくつかの実施形態では、ＳＣＳＩエンクロージャサービス（Ｅｎｃｌｏｓｕｒｅ  Ｓｅｒｖｉｃｅｓ，ＳＥＳ）と称されるプロトコルが用いられる。例えば、管理者１０８は、一連のＳＣＳＩコマンドを用いてＳＣＳＩデバイス(例えばハードドライブ)と通信し、電源、冷却、およびＳＣＳＩデバイスのその他の非データの特性（ｎｏｎ−ｄａｔａ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）にアクセスすることができる。
【００２８】
いくつかの実施形態において、ＳＭＢＵＳシステムインターフェース（ＳＳＩＦ）は、ＳＭＢＵＳを介したＢＭＣ１１４へのローカルアクセスを可能とする。ＳＳＩＦはＳＭＢＵＳ接続を使用する、インターフェースバスである。例えば、ＳＡＳエキスパンダー１１６は、ストレージに関連のあるデータをＳＳＩＦ経由でＢＭＣ１１４に送信することができる。
【００２９】
図２は、いくつかの実施形態による、多重プロトコルシステム管理を説明するフローの例の図２００である。２０２において、サーバーのＢＭＣがＩＰＭＩコマンドを受信する。例えば、ＩＰＭＩコマンドは、温度センサ、ファン、および電源の問い合わせならびに／または制御、ＣＰＵ温度の検出などのような、サーバー管理に用いられるものである。システム管理者は、ＩＰＭＩコマンドをネットワークを介してサーバーに発することによって、サーバーを遠隔的に管理することができる。
【００３０】
２０４において、ＢＭＣはコマンドが、サーバー管理（例えば、電源、ファン、マザーボードコンポーネントなどのようなもともとＢＭＣに関連しているコンポーネント）、またはストレージ管理（例えば、ハードドライブ、ＪＢＯＤなどのようなもともとＳＡＳエキスパンダーもしくはその他のストレージコントローラに関連しているコンポーネント）のいずれに関連するものかを判断する。例えば、ＢＭＣは、ＩＰＭＩコマンドが、サーバー関連であろう、ファンの速度の制御に対してのものである、またはＩＰＭＩコマンドが、ハードドライブが故障したかの問い合わせに関するものである、と判断することができる。いくつかの実施形態では、ＩＰＭＩ（および／またはＳＥＳコマンド）は、ＩＰＭＩ（および／またはＳＥＳ）プロトコルの修正および／またはカスタマイズバージョンであってよい。
【００３１】
例として、ＳＥＳコマンドのサンプル構文は“ｓｇ＿ｓｅｓ  ［ｏｐｔｉｏｎｓ］  ＤＥＶＩＣＥ”であってよく、そしてサンプルコマンドは“ｓｇ＿ｓｅｓ  −ｐ  ２  ／ｄｅｖ／ｓｇＸ”であり得る。ＩＰＭＩコマンドのサンプル構文は“ＯＯＢ  ｃｏｍｍａｎｄ  ｖｉａ  Ｌａｎ：（ＯＥＭ  ｃｍｄ：０ｘＡ０，ＨＤＤ  ｓｌｏｔ  ０：０ｘ０，Ｇｅｔ  ＨＤＤ  ｉｎｆｏ  ０ｘ０１）”であってよく、そしてサンプルコマンドは“ｉｐｍｉｔｏｏｌ  −Ｈ  １９２．１６８．０．１  −Ｕ  ａｄｍｉｎ  −Ｐ  ａｄｍｉｎ  ｒａｗ  ０ｘ３０  ０ｘＡ０  ０ｘ０  ０ｘ０１”であり得る。
【００３２】
ＢＭＣが、ＩＰＭコマンドがサーバー管理に対してのものであると判断する場合、制御はブロック２０６に進み、そこでＩＰＭＩコマンドが、例えばＳＭＢＵＳを用い、ターゲットコンポーネントに対して発せられる。
【００３３】
ＢＭＣが、ＩＰＭＩコマンドがストレージ管理に関連するものであると判断する場合、制御は２０８に進み、そこでコマンドがＳＭＢＵＳを介してストレージに関するコンポーネント、例えば、ＳＡＳエキスパンダーへ送られる。例えば、ＳＭＢＵＳはＳＭＢＡＬＥＲＴ＃と呼ばれる割り込み信号を有し、これは、関心のあるイベントについてそのスレーブに尋ねるようホストに告げるために、スレーブによって用いられ得るものである。１実施形態では、ＳＭＢＵＳは、割り込みおよびその他の信号の送受信が行われるであろう通信のための３つのピン、つまりクロック、データ、およびアラートを有する。“アラート”ピンへのＳＭＢＡＬＥＲＴ＃の割り込みがＢＭＣによってトリガされて、ストレージ関連コマンドをスレーブデバイス（例えばハードドライブ）に伝達するようＳＡＳエキスパンダーに通知され得る。この伝達（ｃｏｍｍｕｎｉｃａｔｉｏｎ）にはＳＳＩＦパッケージが含まれ得る。
【００３４】
２１０において、ＳＡＳエキスパンダーは、例えばＳＳＩＦプロトコルを用い、ストレージ関連コマンドへの応答をＢＭＣに伝達する。例えば、ストレージ関連コマンドは、ハードドライブの動作状況を問い合わせるためのものであり得る。別の実施例では、複数のハードドライブ（例えばＪＢＯＤを含む１つまたはそれ以上のハードドライブ）の各々に対する電源（ｐｏｗｅｒ）は、ＳＡＳエキスパンダーからのコマンドによって個別に制御され得る。別の実施例では、特定のハードドライブ（例えばＪＢＯＤを含む１つまたはそれ以上のハードドライブ、サーバーに接続された１つまたはそれ以上のＳＳＤなど）に関連する情報が、サーバーＯＳが非稼働となっているにもかかわらず、アクセス可能である。
【００３５】
いくつかの実施において、ＳＡＳエキスパンダーは  ＳＳＩＦを用いてＢＭＣと通信する。例えば、ＳＳＩＦはＳＭＢＵＳ接続を用いてデータをＳＡＳエキスパンダーからＢＭＣに渡す。
【００３６】
２１２において、最初のＩＰＭＩコマンドへの応答がＩＰＭＩを介して要求側に返される。例えば、遠隔管理者はＩＰＭＩコマンドを送信して、特定のファンの速度の問い合わせをする。このコマンドはサーバー関連コマンドであると判断され、ＢＭＣはＩＰＭＩコマンドに応じたデータを取り出し、それは、この実施例では、ファンが２０００ｒｐｍで動作しているというものである。このデータはＩＰＭＩプロトコルを用いてネットワークを介し遠隔管理者へ送り返される。
【００３７】
図３は、いくつかの実施形態による多重プロトコルシステム管理を説明するフローの例の図３００である。３０２において、サーバーに接続されたＳＡＳエキスパンダーがＳＥＳコマンドを受信する。例えば、ＳＥＳコマンドは、ハードドライブＳＳＤの問い合わせおよび／または制御などのようなストレージ管理のために用いられる。システム管理者は、ネットワークを介しＳＥＳコマンドをサーバーに接続された１つまたはそれ以上のストレージデバイスに対して発することにより、サーバーに接続されたストレージデバイスを遠隔的に管理することができる。
【００３８】
３０４において、ＳＡＳエキスパンダーは、コマンドが、サーバー管理（例えば、電源、ファン、マザーボードコンポーネントなどのようなもともとＢＭＣに関連しているコンポーネント）、またはストレージ管理（例えば、ハードドライブ、ＪＢＯＤなどのようなもともとＳＡＳエキスパンダーもしくはその他のストレージコントローラに関連しているコンポーネント）のいずれに関連があるかを判断する。例えば、ＳＡＳエキスパンダーは、ＳＥＳコマンドが、サーバー関連であろう、ファンの速度の制御に対してのものである、またはＳＥＳコマンドが、ハードドライブが故障したかの問い合わせに関するものである、と判断することができる。
【００３９】
ＳＡＳエキスパンダーが、ＳＥＳコマンドがストレージ管理に対してのものであると判断する場合、制御はブロック３０６に進み、そこでＳＥＳコマンドが、例えばＳＡＳプロトコルを用いてターゲットのコンポーネントに対して発せられ、当該分野で知られているように、応答が受信される。
【００４０】
ＳＡＳエキスパンダーが、ＳＥＳコマンドがサーバー管理に関連のあるものであると判断する場合、制御はブロック３０８に進み、そこで、データを要求するＳＥＳコマンドがＳＭＢＵＳを介しサーバー管理に関連するコンポーネント、例えばＢＭＣに送信される。１実施形態において、このコマンドは先述したようにＳＭＢＵＳアラートピンを介して送信されてよく、ＢＭＣはＳＳＩＦパッケージを用いデータピンを介して応答することができる。
【００４１】
３１０において、ＢＭＣはサーバー関連コマンドへの応答をＳＡＳエキスパンダーに伝達する。例えば、サーバー関連コマンドは、動作状況を問い合わせるためのもの、またはＢＩＯＳの設定を変更するためのものであり得る。別の実施例では、複数のハードドライブ（例えばＪＢＯＤを含む１つまたはそれ以上のハードドライブ）の各々に対する電源（ｐｏｗｅｒ）が、ＳＡＳエキスパンダーからのコマンドによって個別に制御され得る。別の実施例では、ＢＩＯＳ設定は、サーバーのＯＳがブートされる前であってもＢＭＣを通して変更可能である。
【００４２】
いくつかの実施において、ＢＭＣはＳＳＩＦを用いてＳＡＳエキスパンダーと通信する。例えば、ＳＳＩＦはＳＭＢＵＳ接続を用いてデータをＢＭＣからＳＡＳエキスパンダーに渡す。
【００４３】
３１２において、最初のＳＥＳコマンドへの応答がＳＥＳを介して要求側に返される。例えば、遠隔管理者はＳＥＳコマンドを送信して、特定のハードドライブが故障したかを問い合わせる。このコマンドはストレージ関連コマンドであると判断され、ＳＡＳエキスパンダーは、ＳＥＳコマンドに応じたデータを取り出し、それはこの実施例では、ハードドライブが故障したというものである。このデータは、ＳＥＳプロトコルを用いネットワークを介して遠隔管理者へ送り返される。
【００４４】
図４は、いくつかの実施形態による多重プロトコルシステム管理のためのプロセス４００の例である。例えば、プロセス４００は、上述したようなサーバーのサービスコントローラによって実行され得る。４０２において、サーバーの特定のサービスコントローラでシステム管理要求が受信される。当該サーバーは１つよりも多いサービスコントローラを有している。例えば、サーバーはＢＭＣおよびＳＡＳエキスパンダーを有していてよく、システム管理要求は、サーバーに接続されたハードドライブの状態をＢＭＣにチェックさせるためのＩＰＭＩコマンドである。従来のアプローチでは、ＢＭＣはストレージデバイスにコマンドを伝達することはできないため、従来はサーバーに接続されたハードドライブの状態をチェックするためのコマンドは、ＳＡＳエキスパンダーに対してのＳＥＳコマンドであっただろう。しかし、本明細書に記載された技術を用いれば、管理者はＩＰＭＩまたはＳＥＳコマンドを用いてシステム全体を管理することができる。
【００４５】
ステップ４０４において、システム管理要求が、要求を受信しなかったサービスコントローラへ伝達される。例えば、ＢＭＣにハードドライブの状態をチェックさせるためのＩＰＭＩコマンドが、ＳＡＳエキスパンダーのサービスコントローラに伝達される。これは、例えばサーバーのＳＭＢＵＳおよびＳＳＩＦパッケージを用いることにより達成され得る。例えば、ＳＳＩＦは、ＩＰＭＩメッセージをカプセル化し、ＳＭＢＵＳ“書き込みブロック（ｗｒｉｔｅ  ｂｌｏｃｋ）”および“読み取りブロック（ｒｅａｄ  ｂｌｏｃｋ）”プロトコルを用い、ホストコントローラとＢＭＣとの間でそれらを転送することができる。例として、先述したＳＭＢＵＳのクロック／データ／アラートピンインターフェースが通信を円滑にするのに用いられ得る。１実施例において、ＢＭＣは常に、ＳＭＢＵＳを介しスレーブデバイスとしてアクセスされる。
【００４６】
ステップ４０６において、システム管理要求への応答が、要求を受信しなかったサービスコントローラを用いて取り出される。例えば、ＢＭＣにハードドライブの状態をチェックさせるためのＩＰＭＩコマンドは、ＳＡＳエキスパンダーサービスコントローラに伝達され、ＳＡＳエキスパンダーサービスコントローラは、ハードドライブから状態を取り出す。別の実施例では、ＳＡＳエキスパンダーは、例えばＳＭＢＵＳのピンインターフェースを介してＢＭＣにデータを書き込ませるようにＢＭＣをコントロールする（ｍａｓｔｅｒ）ことができる。ＢＭＣは、要求への応答を有しているとき、例えばＳＭＢＵＳの“アラート”ピンを用いることにより、ＳＡＳエキスパンダーにデータが利用可能であるとの信号を送る。すると、ＳＡＳエキスパンダーは、ＳＭＢＵＳをコントロールし、ＳＭＢＵＳ“読み出しブロック（ｒｅａｄ  ｂｌｏｃｋ）”コマンドを実行して、ＢＭＣから要求に応じたデータを引き出すことができる。
【００４７】
ステップ４０８において、システム管理要求を受信したサービスコントローラを用いて応答が伝達される。例えば、ＳＡＳエキスパンダーが、上述した例のハードドライブの状態を取り出すと、ＢＭＣは応答を伝達する。
【００４８】
いくつかの実施形態では、追加のもしくは代替のサービスコントローラ、またはサーバーに関連するもしくは接続された他のコンポーネントは、本明細書に記載された技術を用い、異なるプロトコルに関連するコンポーネント間における通信を円滑にすることができる。
【００４９】
システムアーキテクチャの例
【００５０】
図５は、図１〜４の特徴およびプロセスを実現するシステムアーキテクチャ５００の例のブロック図である。アーキテクチャ５００は、コンパイルされた命令から導き出されるソフトウェアアプリケーションを実行する任意の電子デバイス、限定はされないが、パーソナルコンピュータ、サーバー、スマートフォン、メディアプレーヤー、電子タブレット、ゲーム機、電子メールデバイスなどに実装可能である。いくつかの実施形態において、アーキテクチャ５００は、１つまたはそれ以上のプロセッサ５０２、１つまたはそれ以上の入力装置５０４、１つまたはそれ以上のディスプレイ装置５０６、１つまたはそれ以上のネットワークインターフェース５０８、および１つまたはそれ以上のコンピュータ可読媒体５１０を含み得る。これらコンポーネントの各々はバス５１２によって接続され得る。
【００５１】
ディスプレイ装置５０６は、限定はされないが、液晶ディスプレイ（ＬＣＤ）または発光ダイオード（ＬＥＤ）技術を用いたディスプレイ装置を含む任意の既知のディスプレイ装置であってよい。プロセッサ（複数のプロセッサ）５０２は、限定はされないが、グラフィックプロセッサおよびマルチコアプロセッサを含む任意の既知のプロセッサ技術を用いるものであってよい。入力装置５０４は、限定はされないが、キーボード（バーチャルキーボードを含む）、マウス、トラックボール、およびタッチセンシティブパッドまたはディスプレイを含む任意の既知の入力装置であってよい。入力装置５０４は、プロセッサ（複数のプロセッサ）５０２、ディスプレイ５０６、ネットワークインターフェース５０８、および／または入力装置５０４をオンにし、かつこれらに電力を供給するための電源ボタンを含み得る。バス５１２は、限定はされないが、ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＰＣＩエクスプレス、ＮｕＢｕｓ、ＵＳＢ、シリアルＡＴＡまたはファイヤーワイヤー（ＦｉｒｅＷｉｒｅ）を含む任意の既知の内部または外部バス技術を用いるものであってよい。
【００５２】
コンピュータ可読媒体５１０は、プロセッサ（複数のプロセッサ）５０２に命令を与えて実行させることに関与する任意の媒体であってよく、限定はされないが、不揮発性ストレージメディア（例えば光ディスク、磁気ディスク、フラッシュドライブなど）または揮発性メディア（例えばＳＤＲＡＭ、ＲＯＭなど）が含まれる。コンピュータ可読媒体５１０は例えば１つまたはそれ以上のシステムコントローラ５２２に命令を与えることができる。あるいは、多重プロトコルシステム管理のための命令が、システムコントローラ（複数のシステムコントローラ）５２２に埋め込まれていてもよい。コンピュータ可読媒体（例えばストレージデバイス、媒体、およびメモリ）は、例えば、ビットストリームなどを含むケーブルまたはワイヤレス信号を含み得る。しかし、非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータ可読ストレージ媒体は、言及されるときには、エネルギー、搬送波信号、電磁波および信号それ自体のような媒体を明示的に排除する。
【００５３】
コンピュータ可読媒体５１０は、オペレーティングシステム５１４（例えばＭａｃ  ＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ）を実行するためのさまざまな命令を含み得る。オペレーティングシステム５１４は、マルチユーザー、マルチプロセッシング、マルチタスキング、マルチスレッディング、リアルタイムなどのものであり得る。オペレーティングシステム５１４は、限定はされないが、入力装置５０４からの入力を認識するタスク、ディスプレイ装置５０６に出力を送るタスク、コンピュータ可読媒体５１０上にファイルおよびディレクトリを記録するタスク、直接またはＩ／Ｏコントローラを介して制御され得る周辺装置（例えばディスクドライブ、プリンタなど）を制御するタスク、ならびにバス５１２上のトラフィックを管理するタスクを含む基本的なタスクを実行する。ネットワーク通信命令５１６はネットワーク接続を確立および維持することができる（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、Ｅｔｈｅｒｎｅｔなどのような通信プロトコルを実行するソフトウェア）。
【００５４】
グラフィック処理システム５１８は、グラフィックおよび画像処理能力を与える命令を含み得る。例えば、グラフィック処理システム５１８は、図１〜４を参照にして述べたプロセスを実行することができる。アプリケーション（複数のアプリケーション）５２０は、図１〜４を参照にして述べたプロセスを使用または実行するアプリケーションであり得る。当該プロセスはオペレーティングシステム５１４においても実行され得る。
【００５５】
システムコントローラ（複数のコントローラ）５２２は、プロセッサ（複数のプロセッサ）５０２および／またはオペレーティングシステム５１４から独立して動作する１つまたはそれ以上のサービスコントローラであり得る。いくつかの実施形態において、システムコントローラ（複数のコントローラ）５２２は、プロセッサ（複数のプロセッサ）５０２が電源オンにされ、オペレーティングシステム５１４がプロセッサ（複数のプロセッサ）５０２にロードされる前に、電源が供給され、動作可能となり得る。例えば、システムコントローラ（複数のコントローラ）５２２は、専用のネットワークインターフェースまたはその他の入力装置を介して、計算装置のｐｒｅ−ＯＳ管理を提供することができる。例えば、システムコントローラ５２２は、インテリジェントプラットフォーム管理インターフェース（ＩＭＰＩ）、キーボード、ビデオ、およびマウス（ＫＶＭ）リダイレクション、シリアルオーバーＬＡＮ（ＳＯＬ）、ならびに／またはその他のインターフェースを介し、デバイスのセンサ（例えば、電圧、温度、ファンなど）の監視、故障解析のイベントのロギング、ＬＥＤ誘導診断（ｇｕｉｄｅｄ  ｄｉａｇｎｏｓｔｉｃｓ）の提供、電源管理の実行、および／または遠隔管理機能の提供を行うベースボード管理コントローラ（ＢＭＣ）であり得る。
【００５６】
記載された特徴（ｆｅａｔｕｒｅｓ）は、有利には、データストレージシステム、少なくとも１つの入力装置、および少なくとも１つ出力装置からデータおよび命令を受信し、かつこれらへデータおよび命令を送信するよう接続された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である１つまたはそれ以上のコンピュータプログラムにおいて実施することができる。コンピュータプログラムとは、直接または間接的にコンピュータで用いられて所定の動作を行う、または所定の結果をもたらすことのできる一連の命令である。コンピュータプログラムは、コンパイルまたはインタープリットされた言語を含む任意の形式のプログラミング言語（例えばＯｂｊｅｃｔｉｖｅ−Ｃ，Ｊａｖａ）で記述されたものであってよく、かつそれは、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境で用いるのに適したその他のユニットを含む任意の形式で展開され得る。
【００５７】
命令のプログラムの実行に適したプロセッサには、例えば、任意の種類のコンピュータの汎用および専用プロセッサの両方、ならびに単独のプロセッサまたは複数のプロセッサまたはコアのうちの１つが含まれる。一般にプロセッサは、読み出し専用メモリまたはランダムアクセスメモリリードオンリーメモリまたはその両者から命令およびデータを受信する。命令を実行するプロセッサ、ならびに命令およびデータを保存する１つまたはそれ以上のメモリは、コンピュータに不可欠な構成要素である。一般にコンピュータはまた、データファイルを保存するための１つもしくはそれ以上のマスストレージデバイスをも含む、またはこれらと通信すべく動作可能に接続され、かかるデバイスには、内臓ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびに光ディスクが含まれる。コンピュータプログラム命令およびデータを確実に具体化するのに適したストレージデバイスには、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスのような半導体メモリデバイス、内臓ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む全ての形式の不揮発性メモリが含まれる。プロセッサおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補われても、またはこれに組み込まれてもよい。
【００５８】
ユーザーとのインタラクションを実現するために、上記機能は、ユーザーに情報を表示するためのＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニターのようなディスプレイ装置、ならびにユーザーによるコンピュータへの情報の提供を可能とするキーボードおよびマウスまたはトラックボールのようなポインティングデバイスを備えたコンピュータに実装することができる。
【００５９】
上記機能は、データサーバーのようなバックエンドコンポーネント、またはアプリケーションサーバーもしくはインターネットサーバーのようなミドルウェアコンポーネント、またはグラフィカルユーザーインターフェースもしくはインターネットブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネント、またはこれらの任意の組み合わせを含むコンピュータシステムに実装され得る。システムのコンポーネントは、任意の方式で、または通信ネットワークのようなデジタルデータ通信の媒体によって接続され得る。通信ネットワークの例には、例えば、ＬＡＮ、ＷＡＮ、ならびにインターネットを形成するコンピュータおよびネットワークが含まれる。
【００６０】
コンピュータシステムには、クライアントおよびサーバーが含まれ得る。クライアントおよびサーバーは一般に互いに遠く離れたところにあり、かつ通常はネットワークを通じてやり取りする。クライアントとサーバーとの関係は、それぞれのコンピュータで実行され、かつクライアント−サーバーの関係（ｃｌｉｅｎｔ−ｓｅｒｖｅｒ  ｒｅｌａｔｉｏｎｓｈｉｐ）を互いに有するコンピュータプログラムに基づいて生じる。
【００６１】
開示した実施形態の１つまたはそれ以上の特徴またはステップは、ＡＰＩを用いて実行され得る。ＡＰＩは、通話アプリケーション（ｃａｌｌｉｎｇ  ａｐｐｌｉｃａｔｉｏｎ）と、サービスを提供する、データを提供する、またはオペレーションもしくは計算を実行するその他のソフトウェアコード（例えばオペレーティングシステム、ライブラリルーチン、ファンクション）との間で伝達される１つまたはそれ以上のパラメータを定義することができる。
【００６２】
ＡＰＩは、ＡＰＩ仕様書において定義された呼び出し規約（ｃａｌｌ  ｃｏｎｖｅｎｔｉｏｎ）に基づくパラメータリストまたはその他の構造により１つまたはそれ以上のパラメータを送信または受信するプログラムコード中の１つまたはそれ以上の呼び出しとして実行され得る。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、アレイ、リスト、またはその他の呼び出しであってよい。ＡＰＩ呼び出しおよびパラメータは任意のプログラミング言語に実装され得る。プログラミング言語は、プログラマがＡＰＩをサポートする機能にアクセスするために用いるであろう語彙および呼び出し規約を定義することができる。
【００６３】
いくつかの実施において、ＡＰＩ呼び出しは、入力能力、出力能力、処理能力、電源能力、通信能力などのようなアプリケーションを動作させるデバイスの能力を、アプリケーションに報告することができる。
【００６４】
多数の実施形態を上に記載した。しかしながら、さまざまな変更を加え得るということが理解されるであろう。例えば、上述したフローから他のステップが提供されても、またはステップが省かれてもよいし、かつ、上述したシステムに他のコンポーネントが加えられても、または上述したシステムから除去されてもよい。したがって、他の実施形態も以下の特許請求の範囲内に入る。
【００６５】
さまざまな実施例およびその他の情報を用いて特許請求の範囲内の態様を説明したが、当業者はこれら実施例を用いて多種多様な実施形態を導き出せるため、かかる実施例における特定の特徴または構成に基づいて特許請求の範囲の限定が暗示されることはない。さらに、いくつかの対象（ｓｕｂｊｅｃｔ  ｍａｔｔｅｒ）は構造的特徴および／または方法のステップの実施例に特有な言葉で記載されているかもしれないが、特許請求の範囲において定義された当該対象は、これら記載された特徴または行為に限定される必要はないと理解されるべきである。例えば、かかる機能は、割り当てが異なったものとなってもよい、または本明細書で特定されたもの以外のコンポーネントで実行されてもよい。より正確に言えば、記載された特徴およびステップは、添付の特許請求の範囲内で、システムのコンポーネントおよび方法の例として 記載されているのである。
【符号の説明】
【００６６】
１００…システム
１０２…サーバーラック
１０４…サーバー
１０６…ネットワーク
１０８…システム管理者
１１０…リモートコンソール
１１２…中央処理装置（ＣＰＵ）
１１４…ＢＭＣ
１１６…ＳＡＳエキスパンダー
１１８…センサ
１２０…ストレージデバイス
２００…フローの例の図
３００…フローの例の図
４００…プロセス
５００…アーキテクチャ
５０２…プロセッサ（複数のプロセッサ）
５０４…入力装置（複数の入力装置）
５０６…ディスプレイ
５０８…ネットワークインターフェース（複数のネットワークインターフェース）
５１０…コンピュータ可読媒体
５１２…バス
５１４…オペレーティングシステム
５１６…ネットワーク通信命令
５１８…グラフィック処理システム
５２０…アプリケーション（複数のアプリケーション）
５２２…サービスコントローラ（複数のサービスコントローラ）
【図１】
2016091557.tif 000003
【図２】
2016091557.tif 000004
【図３】
2016091557.tif 000005
【図４】
2016091557.tif 000006
【図５】
2016091557.tif 000007