(57)【特許請求の範囲】
【請求項１】
ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするための方法であって、
ファブリック管理システムを用いてネットワークファブリックを管理するステップと、
ホストノード上のオペレーティングシステムの通常のブートイメージとは独立した、前記ホストノード上のオペレーティングシステムのファブリック管理ブートイメージを用意するステップとを含み、前記ホストノードは入出力デバイスを介して共有資源に接続し、前記通常のブートイメージは、前記ホストノードのローカルファイルシステムへのアクセスを可能にするが、前記入出力デバイスのファームウェアへのアクセスを可能とせず、前記ファブリック管理ブートイメージは、前記入出力デバイスの前記ファームウェアへのアクセスを可能にするが、前記ホストノードの前記ローカルファイルシステムへのアクセスを可能とせず、前記ホストノードは、前記ファブリック管理ブートイメージをロードすると、前記ファブリック管理システムへアクセス可能であるが、前記ホストノードのローカルホスト管理者へはアクセス不能であり、前記方法はさらに、
前記ローカルホスト管理者が、前記入出力デバイスのローカルロジックにより、前記入出力デバイスに永続的に記憶されている複数のファームウェアアップデートオプションから１つの識別されたファームウェアアップデートオプションを特定するステップと、
前記ファブリック管理ブートイメージをロードするステップと、
前記ファブリック管理システムが、前記ファブリック管理ブートイメージにより、前記識別されたファームウェアアップデートオプションに対応するファームウェアイメージを用いて、前記入出力デバイスのファームウェアをアップグレードするステップとを含む、方法。
【請求項２】
ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムであって、
ネットワークファブリックを管理するファブリック管理システムと、
入出力デバイスを介して共有資源に接続するホストノードとを備え、前記ホストノードは、
１つ以上のマイクロプロセッサと、
前記ホストノード上のオペレーティングシステムの通常のブートイメージとを含み、前記通常のブートイメージは前記１つ以上のマイクロプロセッサ上で実行可能であり、前記通常のブートイメージは、前記ホストノードのローカルファイルシステムへのアクセスを可能にするが、前記入出力デバイスのファームウェアへのアクセスを可能とせず、
前記１つ以上のマイクロプロセッサ上で実行可能であるとともに、前記オペレーティングシステムの通常のブートイメージとは独立した、前記オペレーティングシステムのファブリック管理ブートイメージを含み、前記ファブリック管理ブートイメージは、前記入出力デバイスの前記ファームウェアへのアクセスを可能にするが、前記ホストノードの前記ローカルファイルシステムへのアクセスを可能とせず、
前記ホストノードは、前記ファブリック管理ブートイメージをロードすると、前記ファブリック管理システムへアクセス可能であるが、前記ホストノードのローカルホスト管理者へはアクセス不能であり、
前記入出力デバイスは、前記通常のブートイメージによりアクセス可能な前記入出力デバイスのローカルロジックにより、ローカルホスト管理者から、前記入出力デバイスに永続的に記憶されている複数のファームウェアアップデートオプションから１つの識別されたファームウェアアップデートオプションの選択を受け取るように構成されており、
前記ファブリック管理システムは、前記ファブリック管理ブートイメージをロードして、前記識別されたファームウェアアップデートオプションに対応するファームウェアイメージを用いて、前記入出力デバイスのファームウェアをアップグレードする、システム。
【請求項３】
前記入出力デバイスはホストチャネルアダプタであり、前記共有資源はネットワークファブリックである、請求項２に記載のシステム。
【請求項４】
前記ファブリック管理ブートイメージは、前記ホストノード上のローカル情報にアクセスすることを妨げるように構成される、請求項２または３に記載のシステム。
【請求項５】
前記ファブリック管理ブートイメージはパスワードを含み、前記パスワードは、前記ファームウェアをアップグレードするために用いられる、請求項２〜４のいずれか１項に記載のシステム。
【請求項６】
前記通常のブートイメージは、前記入出力デバイスを制御することを妨げられるように構成される、請求項２〜５のいずれか１項に記載のシステム。
【請求項７】
前記ファームウェアイメージは暗号化される、請求項２〜６のいずれか１項に記載のシステム。
【請求項８】
前記入出力デバイスは、前記ファームウェアイメージを復号するように構成される、請求項７に記載のシステム。
【請求項９】
命令を含む機械読取可能なプログラムであって、前記命令は、実行されると、システムに、
ネットワークファブリックを管理するファブリック管理システムを実現するステップと、
ホストノード上のオペレーティングシステムのファブリック管理ブートイメージを提供するとともに、前記オペレーティングシステムの前記ファブリック管理ブートイメージとは独立した前記オペレーティングシステムの通常のブートイメージを提供するステップとを実行させ、前記ホストノードは入出力デバイスを介して共有資源に接続し、前記通常のブートイメージは、前記ホストノードのローカルファイルシステムへのアクセスを可能にするが、前記入出力デバイスのファームウェアへのアクセスを可能とせず、前記ファブリック管理ブートイメージは、前記入出力デバイスの前記ファームウェアへのアクセスを可能にするが、前記ホストノードの前記ローカルファイルシステムへのアクセスを可能とせず、前記ホストノードは、前記ファブリック管理ブートイメージをロードすると、前記ファブリック管理システムへアクセス可能であるが、前記ホストノードのローカルホスト管理者へはアクセス不能であり、前記命令はさらに、
前記入出力デバイスのローカルロジックを提供するステップを実行させ、前記入出力デバイスの前記ローカルロジックは前記通常のブートイメージによりアクセス可能であり、前記入出力デバイスのローカルロジックは、前記ホストノードのローカルホスト管理者から、前記入出力デバイスに永続的に記憶されている複数のファームウェアアップデートオプションから１つの識別されたファームウェアアップデートオプションの選択を受け取るように構成されており、前記命令はさらに
前記ファブリック管理システムに、前記ファブリック管理ブートイメージをロードさせて、前記識別されたファームウェアアップデートオプションに対応するファームウェアイメージを用いて、前記入出力デバイスのファームウェアをアップグレードさせるステップを実行させる、機械読取可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文書の開示の一部は、著作権保護の対象である資料を含んでいる。著作権者は何人による特許文書または特許情報開示の、それが特許商標庁の特許のファイルまたは記録に現れるとおりのファクシミリ複製に反対しないが、他の場合にはすべての著作権を保有する。
【０００２】
発明の分野：
この発明は、一般的にコンピュータシステムに関し、特にミドルウェアマシン環境に関する。
【背景技術】
【０００３】
背景：
より大きなクラウドコンピューティングアーキテクチャが導入されるにつれて、従来のネットワークおよびストレージと関連付けられる性能および管理上のボトルネックは、重大な問題になっている。ＩｎｆｉｎｉＢａｎｄ（ＩＢ）技術はクラウドコンピューティングファブリックのための基礎として増大された展開を見た。これはこの発明の実施の形態が対応するように意図される一般的な領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
ここに記載されるのは、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートできるシステムおよび方法である。システムは、ホストノードにおいてオペレーティングシステム（ＯＳ）のブートイメージを与えることができ、ホストノードは入出力（Ｉ／Ｏ）デバイスを介してネットワークファブリックのような共有資源に接続する。ブートイメージはホストノードからファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信し、ホストノードに関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードできる。さらに、ホストベースのファームウェアアップグレードは、ホストノードについてのローカル情報にアクセスすることを妨げられる特別なブートイメージまたはＩ／Ｏデバイスを制御することを妨げられる通常のブートイメージに基づくことができる。
【０００５】
ここに記載されるのは、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートできるシステムおよび方法である。システムは入出力（Ｉ／Ｏ）デバイスを与えることができ、それはホストノードに関連付けられる。ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用いることができ、Ｉ／Ｏデバイスは、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信し、Ｉ／Ｏデバイスにおいてファームウェアをアップグレードするよう動作する。さらに、システムは、ファブリック管理者が、インバンドパスおよび／もしくは接続またはサイドバンドパスおよび／もしくは接続を用いて、前記Ｉ／Ｏデバイスにファームウェアイメージおよびファームウェアアップデートの少なくとも１つを送信することを可能にする。
【０００６】
この発明のいくつかの実施の形態によれば、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムが提供される。システムは、ホストノードと関連付けられる入出力（Ｉ／Ｏ）デバイスを含んでもよく、Ｉ／Ｏデバイスはホストノードを共有資源にインターフェイスしてもよい。システムはさらにブートユニットを含んでもよい。ブートユニットは、ホストノードからファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するように構成される受信部と、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするように構成されるアップグレード部とを含んでもよい。例において、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であってもよく、共有資源はネットワークファブリックであってもよい。例において、ブートユニットはホストノードについてのローカル情報にアクセスすることを妨げられてもよい。例において、ブートユニットは、ブートユニットを、共有資源を管理する外部資源所有者により認証するように構成される認証部をさらに含んでもよい。例において、ブートユニットは、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするために用いられるべきパスワードを含むパスワード部をさらに含んでもよい。例において、ブートユニットはＩ／Ｏデバイスを制御することを妨げられてもよい。例において、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化される。例において、Ｉ／Ｏデバイスは、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを復号するように構成される復号部をさらに含んでもよい。例において、ホスト管理者は、Ｉ／Ｏデバイスに関連付けられる永続される記憶部に、要求されるファームウェアイメージバージョンを記憶すること、および、いつファームウェアアップグレードが実施されるのかを制御することを許されてもよい。
【０００７】
この発明のいくつかの実施の形態によれば、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするための装置が提供される。装置は、ホストノードにおいてオペレーティングシステム（ＯＳ）のブートイメージを与えるための手段を含み、ホストノードは入出力（Ｉ／Ｏ）デバイスを介して共有資源に接続し；装置はさらに、ブートイメージを介して、ホストノードを管理するホスト管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するための手段と、ブートイメージを介して、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするための手段とを含む。
【０００８】
この発明のいくつかの実施の形態によれば、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムが提供される。システムは、ホストノードと関連付けられる入出力（Ｉ／Ｏ）デバイスを含んでもよく、Ｉ／Ｏデバイスはホストノードを共有資源にインターフェイスしてもよい。入出力（Ｉ／Ｏ）デバイスは、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するよう構成されてもよい。システムは、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするよう構成されるブートユニットをさらに含んでもよい。例において、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であってもよく、共有資源はネットワークファブリックであってもよい。例において、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化され、ネットワークファブリックから受信される。例において、Ｉ／Ｏデバイスは、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを復号するように構成される復号部と、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを認証するように構成される認証部とをさらに含んでもよい。例において、ネットワークファブリックへの管理アクセスが認証され安全なとき、Ｉ／Ｏデバイスは、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つが暗号化されないことを可能にしてもよい。例において、Ｉ／Ｏデバイスは、サイドバンドパスを用いて、サービスプロセッサに接続するホストチャネルアダプタ（ＨＣＡ）であってもよい。例において、ファブリック管理者は、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つをサービスプロセッサを介してサイドバンドパスを用いてＨＣＡに送信するよう動作してもよい。例において、ＨＣＡは、ホスト管理者がサービスプロセッサにアクセスするのを妨げられてもよい。例において、ホスト管理者が、Ｉ／Ｏデバイスに関連付けられる永続される記憶部に、要求されるファームウェアイメージバージョンを記憶すること、および、いつファームウェアアップグレードが実施されるのかを制御することを許されてもよい。
【０００９】
この発明のいくつかの実施の形態によれば、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするための装置が提供され、この装置は、入出力（Ｉ／Ｏ）デバイスをホストノードと関連付けるための手段を含み、ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用い；この装置はさらに、Ｉ／Ｏデバイスを介して、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するための手段と、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするための手段とを含む。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態に従って、ミドルウェアマシン環境においてデバイスファームウェアアップグレードをサポートする例を示す。
【図２】この発明の実施の形態に従って、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートする例を示す。
【図３】この発明の実施の形態に従って、ミドルウェアマシン環境において特別なブートイメージを介してホストのローカルのファームウェアアップグレードをサポートする例を示す。
【図４】この発明の実施の形態に従って、ミドルウェアマシン環境において特別なブートイメージを介してホストのローカルのファームウェアアップグレードをサポートするための例示的なフローチャートを示す。
【図５】この発明の実施の形態に従って、ミドルウェアマシン環境において通常のブートイメージを介してホストのローカルのファームウェアアップグレードをサポートする例を示す。
【図６】この発明の実施の形態に従って、ミドルウェアマシン環境において通常のブートイメージを介してホストのローカルのファームウェアアップグレードをサポートするための例示的なフローチャートを示す。
【図７】この発明の実施の形態に従って、ミドルウェアマシン環境においてインバンドファームウェアアップグレードをサポートする例を示す。
【図８】この発明の実施の形態に従って、ミドルウェアマシン環境においてインバンドファームウェアアップグレードをサポートするための例示的なフローチャートを示す。
【図９】この発明の実施の形態に従って、ミドルウェアマシン環境においてサイドバンドファームウェアアップグレードをサポートする例を示す。
【図１０】この発明の実施の形態に従って、ミドルウェアマシン環境においてサイドバンドファームウェアアップグレードをサポートするための例示的なフローチャートを示す。
【図１１】いくつかの実施の形態に従って、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムの機能ブロック図を示す。
【図１２】他の実施の形態に従って、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムの機能ブロック図を示す。
【発明を実施するための形態】
【００１１】
詳細な記載
この発明は、同様の参照は同様の要素を示す添付の図面の図において、限定によってではなく、例として示される。この開示における「ある」「１つの」「いくつかの」への言及は、必ずしも同じ実施の形態に対してではなく、そのような言及は少なくとも１つを意味することが注記されるべきである。
【００１２】
この発明の以下の記載は、高性能ネットワークのための例としてＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークを用いる。他のタイプの高性能ネットワークを限定なく用いることができることは当業者に明らかである。
【００１３】
ここに記載されるのは、ミドルウェアマシン環境において、制御されかつ安全な（controlled and secure）ファームウェアアップグレードをサポートできるシステムおよび方法である。
【００１４】
ＩｎｆｉｎｉＢａｎｄ（ＩＢ）アーキテクチャ
ＩＢアーキテクチャはシリアルの二地点間（point-to-point）技術である。ＩＢネットワーク（またはサブネット）の各々は、スイッチおよび二地点間リンクを用いて相互接続されるホストの組を含むことができる。単一のサブネットは、何万ものノードを超えるようスケーラブルであり得、２つ以上のサブネットはＩＢルータを用いて相互接続することができる。サブネット内のホストおよびスイッチはローカルの識別子（local identifier：ＬＩＤ）を用いてアドレス指定され、たとえば単一のサブネットは４９１５１個のユニキャストアドレスに制限されてもよい。
【００１５】
ＩＢサブネットは、部分集合においてスイッチ、ルータおよびホストチャネルアダプタ（host channel adapter：ＨＣＡ）上にあるすべてのＩＢポートの構成を含むサブネットの初期化および開始のための責任を負う少なくとも１つのサブネットマネージャ（subnet manager：ＳＭ）を用いることができる。ＳＭの責任はさらにルーティングテーブル計算および展開を含む。ネットワークのルーティングはすべてのソースと宛先対との間の完全な接続性、デッドロック解放および負荷分散を得ることをねらう。ルーティングテーブルはネットワーク初期化時間に計算され得、トポロジーが、ルーティングテーブルを更新し、最適な実行を確実にするために変化する度毎に、このプロセスは繰り返され得る。
【００１６】
ＩＢネットワークにおけるＨＣＡは、キュー対（queue pair：ＱＰ）を用いて互いと通信することができる。ＱＰは通信セットアップ中において形成され、ＱＰ番号、ＨＣＡポート、宛先ＬＩＤ、キューの長さおよび伝送サービスなどのような初期の属性の組が供給される。他方、通信が終ると、通信においてＨＣＡと関連付けられるＱＰは破壊される。ＨＣＡは多数のＱＰを扱うことができ、各ＱＰは、送信キュー（send queue：ＳＱ）および受信キュー（receive queue：ＲＱ）を含むキューの対からなる。各エンドノードには、通信に関与している１つのそのような対がある。送信キューは、リモートノードに転送されるべきワーク要求を保持し、一方、受信キューは、リモートノードから受信したデータをどのようにすべきかについての情報を保持する。ＱＰに加えて、各ＨＣＡは送信キューおよび受信キューの組に関連付けられる１つ以上の完了キュー（completion queue：ＣＱ）を有することができる。ＣＱは、送信および受信キューに通知されるワーク要求についての完了通知を保持する。
【００１７】
ＩＢアーキテクチャはフレキシブルなアーキテクチャである。ＩＢサブネットの構成および維持は特別なインバンドサブネット管理パケット（subnet management packet：ＳＭＰ）を介して実行され得る。ＳＭの機能は原則においてＩＢサブネットにおける任意のノードから実現することができる。ＩＢサブネットにおける各エンドポートは、それに向けられるＳＭＰベースの要求パケットを扱うための責任を負う関連付けられたサブネット管理エージェント（subnet management agent：ＳＭＡ）を有し得る。ＩＢアーキテクチャにおいては、同じポートは、ＳＭＰベースの通信を用いるＳＭインスタンスまたは他のソフトウエアコンポーネントを表すことができる。したがって、ＳＭＰ動作の十分に定義された部分集合のみを、ＳＭＡによって扱うことができる。
【００１８】
ＳＭＰはファブリックにおいて専用のパケットバッファ資源、たとえばフロー制御されない特別な仮想レーン（virtual lane）（ＶＬ１５）を用いる（つまり、ＳＭＰパケットはバッファオーバフローの場合に落とされるかもしれない）。さらに、ＳＭＰは、ＳＭがエンドポートのローカル識別子（ＬＩＤ）に基づいてセットアップするルーティングを用いるか、またはＳＭＰは、経路が送信側によって完全に規定され、パケットに組込まれているダイレクトルートを用いることができる。ダイレクトルートを用いて、パケットのパスはＨＣＡおよびスイッチ上において、ポート番号の順序づけられたシーケンスの点で、ファブリックを通過する。
【００１９】
ＳＭは、ＳＭＡを用いて、すべてのスイッチおよび／またはすべてのＨＣＡにおいて呈示される変更についてネットワークを監視することができる。ＳＭＡは、新たな接続、接続解除およびポート状態変更などのような変更をトラップおよび通知を用いてＳＭに通信する。トラップは、あるイベントについてエンドノードに警戒させるよう送信されるメッセージである。トラップは、通知属性を、イベントを記述する詳細とともに含むことができる。異なるトラップは異なるイベントについて規定することができる。トラップの不必要な配信を低減するために、ＩＢはイベント転送機構を適用し、エンドノードは、それらが通知されるよう望むトラップに対して明示的にサブスクライブ（subscribe）することを必要とされる。
【００２０】
ＩＢアーキテクチャは、どのＩＢエンドポートを他のＩＢエンドポートと通信するのを許すべきかを規定する態様として、パーティションを与える。パーティション付与はＩＢファブリック上のすべての非ＳＭＰパケットについて規定される。デフォルトパーティション以外のパーティションの使用はオプションである。パケットのパーティションは、１５ビットのパーティション番号および単一ビットのメンバー型（完全または制限された）からなる１６ビットのＰ＿Ｋｅｙによって規定することができる。
【００２１】
ホストポートまたはＨＣＡポートのパーティションメンバーシップは、ＳＭが、ポートのＰ＿Ｋｅｙテーブルを、そのホストについて現在のパーティションメンバーシップポリシーに対応するＰ＿Ｋｅｙ値でセットアップする、という前提に基づくことができる。ホストが完全には信用されないかもしれない可能性を補償するために、ＩＢアーキテクチャはさらに、スイッチポートはパーティション実施を行なうよう任意でセットアップすることができることを規定する。したがって、次いで、ホストポートに接続するスイッチポートのＰ＿Ｋｅｙテーブルは、ホストポートがメンバーであると思われるパーティションを反映するようセットアップすることができる（つまり本質において、イーサネット（登録商標）ＬＡＮにおけるスイッチ実施されるＶＬＡＮ制御と等価）。
【００２２】
ＩＢアーキテクチャはＳＭＰを介してＩＢサブネットの十分なインバンド構成およびメンテナンスを可能にするので、ＳＭＰそれら自体は任意のパーティションメンバーシップ制約の対象ではない。したがって、ＩＢファブリック上における任意の粗いかまたは損なわれたノードが任意のファブリック構成（パーティションメンバーシップを含む）を規定することができる可能性を回避するために、他の保護メカニズムが必要である。
【００２３】
ＩＢアーキテクチャによって与えられた柔軟性は、ＩＢファブリック／サブネット、たとえばＨＰＣクラスタの管理者（administrator）が、ファブリックにおける１つまたはより多くのスイッチ上で組込まれたＳＭインスタンスを用いるべきかどうか判断すること、および／または、ＩＢファブリック上に１つまたはより多くのホストをセットアップしてＳＭ機能を実行することを可能にする。さらに、ＳＭによって用いられるＳＭＰによって規定されたワイヤプロトコルが、ＡＰＩを介して利用可能であるので、異なるツールおよびコマンドが、発見、診断のために、そのようなＳＭＰの使用に基づいて実現することができ、任意の現在のサブネットマネージャ動作から独立して制御される。
【００２４】
セキュリティ視点から、ＩＢアーキテクチャの柔軟性は、ＩＢファブリックに接続されたさまざまなホストへのルートアクセスとＩＢファブリック構成へのアクセスを可能にするルートアクセスとの間には基本的な差がないことを示す。これは、物理的に安全で安定しているシステムに対しては優れている。しかしながら、これは、ＩＢファブリック上における異なるホストが異なるシステム管理者によって制御され、そのようなホストがＩＢファブリック上において互いから論理的に隔離されるべきであるシステム構成に対しては、問題になり得る。
【００２５】
デバイスファームウェアのアップグレード
図１は、この発明の実施の形態に従って、ミドルウェアマシン環境においてデバイスファームウェアアップグレードをサポートする例を示す。図１に示されるように、ミドルウェアマシン環境１００におけるホストノード１０１はＩＢファブリックなどのような共有資源１１０を介して他のホストノード１２０と接続することができる。
【００２６】
ホストノード１０１はオペレーティングシステム（ＯＳ）１０３、ハイパーバイザーまたはホスト所有者１１１（たとえばホスト管理者）によって制御することができ、一方、共有資源１１０は外部資源所有者１１２（たとえばファブリック管理者）によって制御することができる。さらに、ホストノード１０１は、ホストノード１０１を共有資源１１０にインターフェイスすることができるＩ／Ｏデバイス１０２などのような、さまざまなコンピュータデバイスを含むことができる。
【００２７】
システムはこれらのコンピュータデバイス上においてファームウェアアップグレードを実行することができるので、これらのコンピュータデバイスは適切に機能することができる。Ｉ／Ｏデバイス１０２上の有効なファームウェアイメージ１２２は、共有資源１１０に対するＩ／Ｏデバイス１０２の挙動、ならびにＩ／Ｏデバイス１０２が共有資源１１０に対して用いるアイデンティティおよび認証スキームが損なわれないことを確実にすることができる。
【００２８】
たとえば、ファームウェアアップグレード動作はホストノード１０１を介して実行することができる。ここで、ホストノード１０１を介してファームウェアアップグレード動作を実行することは、外部資源所有者１１２がデバイス１０２を含むホストノード１０１にアクセスする必要があることを示唆する。
【００２９】
この発明の実施の形態によれば、システムは、Ｉ／Ｏデバイス１０２のための信用モデルを実現することができ、そのため、Ｉ／Ｏデバイス１０２上のファームウェアイメージ１２２の保全性を制御することができる。たとえば、システムは、Ｉ／Ｏデバイス１０２上におけるファームウェアアップグレードをサポートすることに対してアクセスを許可するよう、Ｉ／Ｏデバイス１０２によって制御されるパスワードを用いることができる。
【００３０】
他方、Ｉ／Ｏデバイス１０２上のファームウェアアップグレードが物理的なホストノード１０１を介してなどのような間接的なアクセスに依存する限り、デバイスファームウェアのアップグレードは物理的なホストノード１０１上のホストシステムを信用することの固有の要素を有する。共有資源１１０の視点から、Ｉ／Ｏデバイス１０２があるホストノード１０１は、Ｉ／Ｏデバイス１０２上においてファームウェアアップグレードを実行することについて、完全には信用されないかもしれない。
【００３１】
したがって、物理的なホストノード１０１を介してＩ／Ｏデバイス１０２上においてファームウェアアップグレードを実行することは、おそらくは外部資源所有者１１２およびホスト所有者１１１の両方にとって問題を表し得る。外部資源所有者１１２の場合、ホストシステム１０１を信用することは、ホストシステム１０１上においてスパイウェアの危険性を表し、それは、Ｉ／Ｏデバイス１０２上においてファームウェアアップグレードを実行するためのパスワードを観察することができるかもしれない。ホスト所有者１１１の場合、外部資源所有者１１２はＩ／Ｏデバイス１０２上においてファームウェアイメージ１２２のアップグレードを実行することに対して必要ではないかもしれないローカルホストシステム１０１上における付加的情報／資源（たとえばローカルディスクおよびファイリングシステム１０４）にアクセスを有するかもしれない。
【００３２】
特別なブートイメージ
図２は、この発明の実施の形態に従って、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートする例を示す。図２に示されるように、ミドルウェアマシン環境２００におけるホストノード２０１はＩＢファブリック２１０を介して他のホストノード２２０と接続することができる。ホストノード２０１はホスト管理者２１１によって制御することができ、一方、ＩＢファブリック２１０はファブリック管理者２１２によって制御することができる。さらに、ホストノード２０１はさまざまなデバイス、たとえばホストノード２０１をＩＢファブリック２１０にインターフェイスすることができるホストチャネルアダプタ（ＨＣＡ）２０２などを含むことができる。
【００３３】
この発明の実施の形態によると、ホストオペレーティングシステム（ＯＳ）２０３の特別なブートイメージ２０５は、ホストノード２０１上におけるＨＣＡ２０２の使用を制御することができる（破線２３１として示される）。特別なブートイメージ２０５はそれ自体をファブリック管理者２１２により認証することができ、ホスト管理者２１１を含む、他の誰によってもアクセスされない。加えて、特別なブートイメージ２０５は、ＨＣＡ２０２上におけるファームウェアのアップグレードを保護するために用いることができるパスワード２１５を含むことができる。
【００３４】
図２に示されるように、通常のブートイメージ２０６はローカルディスクおよびファイルシステム２０４へのアクセスを制御することができる（破線２３２として示される）。たとえば、ローカルディスクおよびファイルシステム２０４は、通常のブートイメージ２０６によってのみ知られてもよい、異なるパスワードによって保護することができる。さらに、特別なブートイメージ２０５はホストノード２０１についてのローカル情報へのアクセスを有さずに構成されてもよい。
【００３５】
したがって、特別なブートイメージ２０５を用いて、システムは、ファブリック管理者２１２およびホスト管理者２１１の両方に対してセキュリティを確実にすることができる。ファブリック管理者２１２の場合、ホスト管理者２１１はＨＣＡ２０２にアクセスを有さないので、ホストシステム２０１上におけるスパイウェアの危険性はありえない。他方、ホストシステム２０１は、ファブリック管理者２１２がホストノード２０１におけるローカルディスクおよびファイルシステム２０４にアクセスを有することを回避することになる、と確信できる。
【００３６】
ホストベースのファームウェアアップグレード
この発明の実施の形態によれば、ホストのローカルのファームウェアアップグレードスキームは、入出力（Ｉ／Ｏ）デバイス、たとえばホストチャネルアダプタ（ＨＣＡ）への物理的なアクセスはホスト管理者などのようなホスト所有者の制御下にあり、一方、Ｉ／Ｏデバイスに対するファームウェアイメージの保全性はファブリック管理者および／またはデバイスベンダなどのような外部資源の所有者によって十分に制御することができることを確実にすることができる。
【００３７】
図３は、この発明の実施の形態に従って、ミドルウェアマシン環境において特別なブートイメージを介してホストのローカルのファームウェアアップグレードをサポートする例を示す。図３に示されるように、ミドルウェアマシン環境３００におけるホストノード３０１はＩＢファブリック３１０に接続することができる。ホストノード３０１はホスト管理者３１１によって制御することができ、一方、ＩＢファブリック３１０はファブリック管理者３１２によって制御することができる。さらに、ホストノード３０１は、ホストノード３０１をＩＢファブリック３１０にインターフェイスすることができる、たとえばＨＣＡ３０２などのさまざまなＩ／Ｏデバイスを含むことができる。
【００３８】
ホストオペレーティングシステム（ＯＳ）３０３の特別なブートイメージ３０５は、ＨＣＡ３０２上におけるファームウェアイメージのアップグレードを制御することができる。加えて、特別なブートイメージ３０５は、ＨＣＡ３０２上におけるファームウェアのアップグレードを保護するために用いることができるパスワード３１５を含むことができる。ここで、特別なブートイメージ３０５はローカルディスクおよびファイルシステム３０４にアクセスを有さなくてもよい。他方、通常のブートイメージ３０６は、Ｉ／Ｏデバイス、ＨＣＡ３０２を制御せずに、ローカルディスクおよびファイルシステム３０４へのアクセスを制御することができる。
【００３９】
図３に示されるように、ファームウェアイメージ／アップデート３２０は、特別なブートイメージ３０５を用いて、ホストノード３０１を介してＨＣＡ３０２内に転送することができる。このシステムは、ＨＣＡ３０２への物理的なアクセスがホスト管理者３１１の制御下にあり、一方、Ｉ／Ｏデバイス３０２に対するファームウェアイメージの保全性はファブリック管理者３１２によって十分に制御することができることを確実にする。
【００４０】
この発明の実施の形態によると、ホスト管理者３１１は、ＨＣＡ３０２がアップグレードされることができるファームウェアイメージの正当なバージョン（legal version）を指定し制御することができる。たとえば、両方ともファブリック管理者３１２の観点から関連する２つのファームウェアイメージバージョンがあってもよく、その一方で、ホスト管理者３１１は１つの特定のバージョン上において要件を有している。
【００４１】
そのような場合では、ローカルディスクおよびファイルシステム３０４ならびに通常のブートイメージ３０６にアクセスを有するホスト管理者３１１は、ファームウェアアップグレードプロセスを制御するＨＣＡ３０２上におけるローカルロジックに対して、アップグレードのために用いることができる必要なファームウェアイメージアイデンティティ３３０について命令することができる。
【００４２】
さらに、ホスト管理者３１１は、ファームウェアアップグレードが実施される特定の時間を十分に制御することができる。たとえば、ホスト管理者３１１は、アップグレードのために用いることができるファームウェアイメージを規定するためにＨＣＡ３０２で永続的に記憶されている要求されるファームウェアアイデンティティ３３０を用いて、ファームウェアアップグレードが開始されるよう要求することができる。
【００４３】
加えて、特別なホストブートイメージ３１５を介してＨＣＡ３０２上でファームウェアアップグレードを実行する影響は、ホストノード３０１上で現在実行している任意のワークロードが終了される必要があるかもしれない、ということである。
【００４４】
図４は、この発明の実施の形態に従って、ミドルウェアマシン環境において特別なブートイメージを介してホストのローカルのファームウェアアップグレードをサポートするための例示的なフローチャートを示す。図４に示されるように、ステップ４０１において、システムは、ホストノードにおいてオペレーティングシステム（ＯＳ）のブートイメージを与えることができ、ホストノードは入出力（Ｉ／Ｏ）デバイスを介して共有資源に接続する。次いでステップ４０２で、ブートイメージはそれ自体を、共有資源を管理する外部資源所有者により認証することができる。さらにステップ４０３で、Ｉ／Ｏデバイスは、ホストノードを管理するホスト管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信でき、ステップ４０４で、ホストノードに関連付けられるデバイスにおいてファームウェアをアップグレードすることができる。
【００４５】
図５は、この発明の実施の形態に従って、ミドルウェアマシン環境において通常のブートイメージを介してホストのローカルのファームウェアアップグレードをサポートする例を示す。図５に示されるように、ミドルウェアマシン環境５００におけるホストノード５０１はＩＢファブリック５１０に接続することができる。ホストノード５０１はホスト管理者５１１によって制御することができ、一方、ＩＢファブリック５１０はファブリック管理者５１２によって制御することができる。さらに、ホストノード５０１はオペレーティングシステム（ＯＳ）５０３を用いることができ、ホストノード５０１をＩＢファブリック５１０にインターフェイスすることができる、たとえばＨＣＡ５０２などのさまざまなＩ／Ｏデバイス５０２を含むことができる。
【００４６】
この発明の実施の形態によれば、特別なブートイメージ５０５を用いる代りに、ローカルディスクおよびファイルシステム５０４を制御する通常のＯＳブートイメージ５０６を、ＨＣＡ５０２上におけるファームウェアイメージを更新するために用いることができる。
【００４７】
図５に示されるように、暗号化されたファームウェアイメージ／アップデート５２０を、通常のＯＳブートイメージ５０６を用いて、ホストノード５０１を介してＨＣＡ５０２内に転送することができる。ここで、ファームウェアイメージアップデート５２０は、ＨＣＡ５０２が復号および認証できる態様において暗号化することができる。
【００４８】
したがって、ＨＣＡ５０２は、ＨＣＡ５０２上におけるファームウェアイメージが許可なしにホストノード５０１によって容易に操作されるのを妨げることができる。加えて、ファームウェアイメージアップデート５０２が損なわれたとＨＣＡ５０２が検出するとき、またはファームウェアイメージアップデート５０２が有効なイメージを表すとして認証されなかったとき、ＨＣＡ５０２はファームウェアイメージアップデート５２０をインストールすることを拒絶することができる。
【００４９】
この発明の実施の形態によると、初期認証資格情報（initial authentication credential）５１５をたとえば製造段階の間においてＨＣＡ５０２にインストールすることができる。初期認証資格情報５１５は任意の初期のパスワードまたはキーの配信なしに暗号化認証を可能にする。続いて、ファームウェアアップグレード段階中において、システムはホストノード５０１を介してＨＣＡ５０２内に、暗号化された形式にある新たなファームウェアイメージ５２０を転送することができる。次いで、ＨＣＡ５０２は暗号化されたファームウェアイメージ５２０を復号し、暗号化されたファームウェアイメージ５２０をデバイスそれ自体上に記憶することができる。
【００５０】
この発明の実施の形態によると、ホスト管理者５１１は、ＨＣＡ５０２がアップグレードされるべき正当なファームウェアイメージバージョンを指定し制御することができる。
【００５１】
図３に示される場合と同様に、ホスト管理者５１１は、ファームウェアアップグレードプロセスを制御するＨＣＡ５０２上におけるローカルロジックに対して、ファームウェアアップグレードのために用いることができる必要なファームウェアイメージアイデンティティ５３０について命令することができる。
【００５２】
さらに、ホスト管理者３１１は、アップグレードが実施される特定の時間を十分に制御することができる。たとえば、ホスト管理者５１１は、アップグレードのために用いることができるファームウェアイメージを規定するためにＨＣＡ５０２で永続的に記憶されている要求されるファームウェアアイデンティティ５３０を用いて、ファームウェアアップグレードが開始されるよう要求することができる。
【００５３】
図３に示される場合とは異なり、通常のホストブートイメージ５０６を介する暗号化されたファームウェアアップグレードの場合、システムはホストのリブートを必要としなくてもよい。したがって、ホストノード５０１上における既存のワークロードは実行され続けてもよい。
【００５４】
図６は、この発明の実施の形態に従って、ミドルウェアマシン環境において通常のブートイメージを介してホストのローカルのファームウェアアップグレードをサポートするための例示的なフローチャートを示す。図６に示されるように、ステップ６０１において、システムは、ホストノードにおいてオペレーティングシステム（ＯＳ）のブートイメージを与えることができ、ホストノードは共有資源に接続する。次いでステップ６０２で、Ｉ／Ｏデバイスは、ホストノードを管理するホスト管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信できる。さらにステップ６０３で、Ｉ／Ｏデバイスは、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを復号でき、ステップ６０４で、ホストノードに関連付けられるデバイスにおいてファームウェアをアップグレードすることができる。
【００５５】
インバンド／サイドバンドファームウェアアップグレード
この発明の実施の形態によると、システムは、入出力（Ｉ／Ｏ）デバイス、たとえばホストチャネルアダプタ（ＨＣＡ）上のファームウェアを、インバンドパスまたはサイドバンドパスのいずれかを用いて、ＨＣＡ内に転送されるファームウェアイメージ／アップデートで更新することができる。いずれの場合も、システムはホストシステムに依存性を有することはありえず、ファームウェアアップグレードの間においてローカルホスト資源にアクセスする必要がなくてもよい。
【００５６】
図７は、この発明の実施の形態に従って、ミドルウェアマシン環境においてインバンドファームウェアアップグレードをサポートする例を示す。図７に示されるように、ミドルウェアマシン環境７００におけるホストノード７０１はＩＢファブリック７１０に接続することができる。ホストノード７０１はホスト管理者７１１によって制御することができ、一方、ＩＢファブリック７１０はファブリック管理者７１２によって制御することができる。
【００５７】
さらに、ホストノード７０１はオペレーティングシステム（ＯＳ）７０３を用いることができ、それは、ローカルディスクおよびファイルシステム７０４にアクセスを有することができる通常のブートイメージ７０６に基づくことができる。さらに、ホストノード７０１は、ホストノード７０１をＩＢファブリック７１０にインターフェイスすることができる、たとえばＨＣＡ７０２などのさまざまなＩ／Ｏデバイスを含むことができる。
【００５８】
図７に示されるように、ファームウェアイメージ／アップデート７２０を、特別なブートイメージ７０５に基づく代わりに、インバンドでＩＢファブリック７１０を介して、インバンドパス７３１を用いて、ＨＣＡ７０２内に転送することができる。
【００５９】
ファームウェアイメージアップデート７２０は、ＨＣＡ７０２が復号および認証できる態様において暗号化することができる。したがって、ＨＣＡ７０２は、ＨＣＡ７０２上におけるファームウェアイメージが許可なしにホストノード７０１によって容易に操作されるのを妨げることができる。加えて、ファームウェアイメージアップデート７０２が損なわれたとＨＣＡ７０２が検出するとき、またはファームウェアイメージアップデート７２０が有効なイメージを表すとして認証されなかったとき、ＨＣＡ７０２はファームウェアイメージアップデート７２０をインストールすることを拒絶することができる。
【００６０】
この発明の実施の形態によると、初期認証資格情報７１５をたとえば製造段階の間においてＨＣＡ７０２にインストールすることができる。初期認証資格情報７１５は任意の初期のパスワードまたはキーの配信なしに暗号化認証を可能にする。続いて、ファームウェアアップグレード段階中において、システムはインバンドでＨＣＡ７０２内に、暗号化された形式にある新たなファームウェアイメージ７２０を転送することができる。次いで、ＨＣＡ７０２は暗号化されたファームウェアイメージ７２０を復号し、ファームウェアイメージ７２０をデバイスそれ自体上に記憶することができる。
【００６１】
代替的に、ネットワークファブリックへの管理アクセス（つまりインバンドパス７３１）が認証され安全なとき、ＨＣＡ７０２は、ファームウェアアップデート７２０が暗号化されないことを可能にし、なぜならば、管理アクセスが、ファームウェアアップデート７２０が認証され安全であるよう確実にすることができるからである。
【００６２】
この発明の実施の形態によると、ホスト管理者７１１は、ＨＣＡ７０２がアップグレードされるべき正当なファームウェアイメージバージョンを指定し制御することができる。
【００６３】
図３に示される場合と同様に、ホスト管理者７１１は、ファームウェアアップグレードプロセスを制御するＨＣＡ７０２上におけるローカルロジックに対して、ファームウェアアップグレードのために用いることができる必要なファームウェアイメージアイデンティティ７３０について命令することができる。
【００６４】
図３に示される場合とは異なり、ファブリック７１０を介するインバンドファームウェアアップグレードの場合、ホスト管理者７１１は、アップグレードがいつ実施されるのかを直接制御できなくてもよく、なぜならば、ファブリック７１０を介するＨＣＡ７０２へのパス７３１は、ホスト管理者７１１によって制御されないからである。
【００６５】
他方、ホスト管理者７１１は、ＨＣＡ７０２に関連付けられる永続的な記憶部に記憶される、要求されるファームウェアイメージバージョン７３０を用いて、いつアップグレードが実施され得るかを制御できる。たとえば、ファブリック管理者７１２が誤ってインバンドファームウェアアップグレードを開始する場合、システムは、ホスト管理者７１１がそもそもアップグレードを可能にしない限り、そのようなアップデートが効果を有さなくてもよいことを保証することができる。
【００６６】
したがって、ホスト管理者７１１は、どのような正当なファームウェアイメージをアップグレードのために使用するか、およびそのようなアップグレードがいつ実施され得るかを制御することに対して、責任を負い得、一方、ファブリック管理者７１２は、ファームウェアイメージ７２０の有効性および保全性が任意のホスト管理者７１１によって損なわれないことを保証することができる。
【００６７】
さらに、複数の冗長なＨＣＡまたは他のＩ／Ｏ装置がホストノード７０１上に存在するとき、システムは、任意の時点において、ＩＢファブリック７１０などのような共有資源へのアクセスを緩めるホストノード７０１を必要とせずに、ローリング態様で各ＨＣＡまたは他のＩ／Ｏデバイス上においてファームウェアイメージをアップグレードすることができる。
【００６８】
図８は、この発明の実施の形態に従って、ミドルウェアマシン環境においてインバンドファームウェアアップグレードをサポートするための例示的なフローチャートを示す。図８において示されるように、ステップ８０１で、システムは、入出力（Ｉ／Ｏ）デバイスをホストノードと関連付けることができ、ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用いることができる。次いでステップ８０２で、Ｉ／Ｏデバイスは、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信できる。さらに、ステップ８０３において、システムはファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つが認証され安全であることを確実にすることができ、ステップ８０４で、ホストノードに関連付けられるデバイスにおいてファームウェアをアップグレードすることができる。
【００６９】
図９は、この発明の実施の形態に従って、ミドルウェアマシン環境においてサイドバンドファームウェアアップグレードをサポートする例を示す。図９に示されるように、ミドルウェアマシン環境９００におけるホストノード９０１はＩＢファブリック９１０に接続することができる。ホストノード９０１はホスト管理者９１１によって制御することができ、一方、ＩＢファブリック９１０はファブリック管理者９１２によって制御することができる。
【００７０】
さらに、ホストノード９０１はオペレーティングシステム（ＯＳ）９０３を用いることができ、それは、ローカルディスクおよびファイルシステム９０４にアクセスを有することができる通常のブートイメージ９０６に基づくことができる。さらに、ホストノード９０１は、ホストノード９０１をＩＢファブリック９１０にインターフェイスすることができる、たとえばＨＣＡ９０２などのさまざまなＩ／Ｏデバイスを含むことができる。
【００７１】
この発明の実施の形態によると、システムは、特別なブートイメージ７０５に基づく代りに、ＨＣＡ９０２上でサイドバンドファームウェアアップグレードを実行することができる。図９に示されるように、ファームウェアイメージ／アップデート９２０はホストノード９０１上におけるサービスプロセッサ９４０とＨＣＡ９０２との間においてサイドバンドパス９３１を介してＨＣＡ７０２内に転送することができる。
【００７２】
ホストノード９０１上におけるサービスプロセッサ９４０はホストノード９０１のメインプロセッサ上の通常のホストブートイメージ９０６から独立して動作することができる。したがって、システムはホストシステム９０１に依存性を有さなくてもよく、ファームウェアアップグレードの間においてローカルホストノード９０１にアクセスする必要がなくてもよい。
【００７３】
この発明の実施の形態によると、サービスプロセッサ９４０は、ファブリック管理者９１２に対してＨＣＡ９０２への安全で認証されたアクセスを与えることができ、ローカルホスト管理者９１１による同じアクセスを否定することができる。
【００７４】
したがって、サイドバンドアプローチはインバンドアプローチが与え得るのと同じ利益を与えることができる。たとえば、ファームウェアイメージアップデート９２０は、ＨＣＡ９０２が復号および認証できる態様において暗号化することができる。さらに、初期認証資格情報９１５は製造段階中においてＨＣＡ９０２にインストールすることができる。代替的に、インバンドパス上における管理アクセスが認証され安全なとき、ＨＣＡ９０２はファームウェアアップデート９２０が暗号化されないことを可能にする。さらに、ホスト管理者９１１は、ＨＣＡ９０２に関連付けられる永続的な記憶部に記憶される、要求されるファームウェアイメージバージョン９３０を用いて、いつアップグレードが実施され得るかを制御できる。
【００７５】
図１０は、この発明の実施の形態に従って、ミドルウェアマシン環境においてサイドバンドファームウェアアップグレードをサポートするための例示的なフローチャートを示す。図１０において示されるように、ステップ１００１で、システムは、入出力（Ｉ／Ｏ）デバイスをホストノードと関連付けることができ、ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用いることができる。次いでステップ１００２で、Ｉ／Ｏデバイスは、サイドバンドパスを用いて、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信できる。さらに、ステップ１００３において、システムはファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つが認証され安全であることを確実にすることができ、ステップ８０４で、ホストノードに関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードすることができる。
【００７６】
図１１および図１２は、各々、この発明のいくつかの実施の形態に従って、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムの機能ブロック図を示す。この発明の原理を実行するために、システムの機能ブロックは、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアとの組合せによって実現されてもよい。上に記載されるようなこの発明の原理を実現するために、図１１および１２に記載される機能ブロックは、組合せられてもよく、またはサブブロックに分離されてもよいことが、当業者には理解される。したがって、この記載は、ここに記載される機能ブロックの任意の可能な組合せまたは分離またはさらなる定義をサポートしてもよい。
【００７７】
図１１を参照して、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステム１１００は、この発明のいくつかの実施の形態に従って与えられる。システム１１００は、ホストノードと関連付けられる入出力（Ｉ／Ｏ）デバイス１１１０を含んでもよく、Ｉ／Ｏデバイスはホストノードを共有資源（図示せず）にインターフェイスしてもよい。システム１１００はさらにブートユニット１１２０を含んでもよい。ブートユニット１１２０は受信部１１２２およびアップグレード部１１２４を含んでもよい。受信部１１２２はホストノードからファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するように構成されてもよい。アップグレード部１１２４はホストノードと関連付けられるＩ／Ｏデバイス１１００においてファームウェアをアップグレードするように構成されてもよい。
【００７８】
例において、Ｉ／Ｏデバイス１１１０はホストチャネルアダプタ（ＨＣＡ）であってもよく、共有資源はネットワークファブリックであってもよい。例において、ブートユニット１１２０はホストノードについてのローカル情報にアクセスすることを妨げられてもよい。例において、ブートユニット１１２０は、ブートユニット１１２０を、共有資源を管理する外部資源所有者により認証するように構成される認証部１１２６をさらに含んでもよい。例において、ブートユニット１１２０は、ホストノードと関連付けられるＩ／Ｏデバイス１１１０においてファームウェアをアップグレードするために用いられるべきパスワードを含むパスワード部１１２８をさらに含んでもよい。例において、ブートユニット１１２０はＩ／Ｏデバイス１１１０を制御することを妨げられてもよい。例において、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化される。例において、Ｉ／Ｏデバイス１１１０は、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを復号するように構成される復号部１１１２をさらに含んでもよい。例において、ホスト管理者が、Ｉ／Ｏデバイス１１００に関連付けられる永続される記憶部（図示せず）に、要求されるファームウェアイメージバージョンを記憶すること、および、いつファームウェアアップグレードが実施されるのかを制御することを許されてもよい。
【００７９】
図１２を参照して、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステム１２００は、この発明の他の実施の形態に従って与えられる。システム１２００は、ホストノードと関連付けられる入出力（Ｉ／Ｏ）デバイス１２１０を含んでもよく、Ｉ／Ｏデバイス１２１０はホストノードを共有資源にインターフェイスしてもよい。入出力（Ｉ／Ｏ）デバイス１２１０は、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信するよう構成されてもよい。システム１２００は、ホストノードと関連付けられるＩ／Ｏデバイス１２１０においてファームウェアをアップグレードするよう構成されるブートユニット１２２０をさらに含んでもよい。例において、Ｉ／Ｏデバイス１２１０はホストチャネルアダプタ（ＨＣＡ）であってもよく、共有資源はネットワークファブリックであってもよい。例において、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化され、ネットワークファブリックから受信される。例において、Ｉ／Ｏデバイス１２１０はさらに復号部１２１２および認証部１２１４を含んでもよい。復号部１２１２はファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを復号するよう構成され、認証部１２１４はファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを認証するように構成されてもよい。例において、ネットワークファブリックへの管理アクセスが認証され安全なとき、Ｉ／Ｏデバイス１２１０は、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つが暗号化されないことを可能にしてもよい。例において、Ｉ／Ｏデバイス１２１０は、サイドバンドパスを用いて、サービスプロセッサ（図示せず）に接続するホストチャネルアダプタ（ＨＣＡ）であってもよい。例において、ファブリック管理者は、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つをサービスプロセッサを介してサイドバンドパスを用いてＨＣＡに送信するよう動作してもよい。例において、ＨＣＡは、ホスト管理者がサービスプロセッサにアクセスするのを妨げてもよい。例において、ホスト管理者が、Ｉ／Ｏデバイス１２１０に関連付けられる永続される記憶部に、要求されるファームウェアイメージバージョンを記憶すること、および、いつファームウェアアップグレードが実施されるのかを制御することを許されてもよい。
【００８０】
この発明の実施の形態は、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするための方法を含み、入出力（Ｉ／Ｏ）デバイスをホストノードと関連付けるための手段を含み、ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用い；方法はさらに、Ｉ／Ｏデバイスを介して、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信することと、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードすることとを含む。
【００８１】
上記の方法は、さらに、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であり、共有資源はネットワークファブリックであることを可能にすることを含む。
【００８２】
この発明の実施の形態、上記の方法は、さらに、前記ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化され、ネットワークファブリックから受信されることを可能にすることを含む。
【００８３】
この発明の実施の形態、上記の方法は、さらに、ファームウェアイメージおよびファームウェアアップデートの受信される少なくとも１つを、Ｉ／Ｏデバイスを介して復号し認証することを含む。
【００８４】
この発明の実施の形態、上記の方法は、さらに、ネットワークファブリックへの管理アクセスが認証され安全なとき、前記ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化されないことを可能にすることを含む。
【００８５】
この発明の実施の形態、上記の方法は、さらに、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であり、サイドバンドパスを用いてサービスプロセッサに接続することを可能にすることを含む。
【００８６】
この発明の実施の形態、上記の方法は、さらに、ファブリック管理者が、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つをサービスプロセッサを介してサイドバンドパスを用いてＨＣＡに送信することを可能にすることを含む。
【００８７】
この発明の実施の形態、上記の方法は、さらに、ホスト管理者がサービスプロセッサにアクセスするのを妨げることを含む。
【００８８】
この発明の実施の形態、上記の方法は、さらに、ホスト管理者が、Ｉ／Ｏデバイスに関連付けられる永続される記憶部に、要求されるファームウェアイメージバージョンを記憶することを可能にすることを含む。
【００８９】
この発明の実施の形態、上記の方法は、さらに、ホスト管理者が、ファームウェアアップグレードいつが実施されるかを制御することを可能にすることを含む。
【００９０】
この発明の実施の形態、上記の方法は、さらに、ＨＣＡにおけるファームウェアイメージの保全性は外部資源所有者によって制御されることを確実にすることを含む。
【００９１】
この発明の実施の形態、上記の方法は、さらに、デバイスが、初期のパスワードまたはキーの配信なしに暗号化認証を可能にする初期認証資格情報を含むことを可能にすることを含む。
【００９２】
この発明の実施の形態、上記の方法は、さらに、ファームウェアイメージを暗号化された形式でデバイスにインバンドでネットワークを介して転送することを含む。
【００９３】
この発明の実施の形態、上記の方法は、さらに、デバイスを介して、暗号化されたファームウェアイメージを復号し、デバイスを介して、復号されたファームウェアイメージをデバイス上に記憶することを含む。
【００９４】
この発明の実施の形態は、ミドルウェアマシン環境において、制御されかつ安全なファームウェアアップグレードをサポートするためのシステムを含み、１つ以上のマイクロプロセッサと；１つ以上のマイクロプロセッサ上で動作する、ホストノードと関連付けられる入出力（Ｉ／Ｏ）デバイスとを含み、ホストノードは、共有資源に接続するためにＩ／Ｏデバイスを用い、Ｉ／Ｏデバイスは、共有資源を管理するファブリック管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信し、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードするよう動作する。
【００９５】
上記のシステムは、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であり、共有資源はネットワークファブリックである。
【００９６】
上記のシステムは、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つは暗号化され、ネットワークファブリックから受信される。
【００９７】
上記のシステムは、Ｉ／Ｏデバイスは、ファームウェアイメージおよびファームウェアアップデートの受信された少なくとも１つを復号および認証するよう動作する。
【００９８】
上記のシステムは、ネットワークファブリックへの管理アクセスが認証され安全なとき、Ｉ／Ｏデバイスは、前記ファームウェアイメージおよびファームウェアアップデートの少なくとも１つが暗号化されないことを可能にする。
【００９９】
上記のシステムは、Ｉ／Ｏデバイスはホストチャネルアダプタ（ＨＣＡ）であり、サイドバンドパスを用いてサービスプロセッサに接続する。
【０１００】
上記のシステムは、ファブリック管理者は、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つをサービスプロセッサを介してサイドバンドパスを用いてＨＣＡに送信するよう動作する。
【０１０１】
上記のシステムは、ＨＣＡはホスト管理者がサービスプロセッサにアクセスするのを妨げる。
【０１０２】
上記のシステムは、ホスト管理者は、Ｉ／Ｏデバイスに関連付けられる永続される記憶部に、要求されるファームウェアイメージバージョンを記憶するよう、およびいつファームウェアアップグレードが実施されるのかを制御することを可能にされる。
【０１０３】
この発明の実施の形態は、命令を記憶する非一時的な機械読取可能な記憶媒体を含み、命令は、実行されると、システムにステップを実行させ、ステップは、ホストノードにおいてオペレーティングシステム（ＯＳ）のブートイメージを与えることを含み、ホストノードは入出力（Ｉ／Ｏ）デバイスを介して共有資源に接続し；ステップはさらに、Ｉ／Ｏデバイスを介して、ホストノードを管理するホスト管理者から、ファームウェアイメージおよびファームウェアアップデートの少なくとも１つを受信することと、ブートイメージを介して、ホストノードと関連付けられるＩ／Ｏデバイスにおいてファームウェアをアップグレードすることとを含む。
【０１０４】
この発明は、この開示の教示に従ってプログラミングされる、１つ以上の従来の汎用もしくは特化されたデジタルコンピュータ、コンピューティングデバイス、マシンまたは１つ以上のプロセッサを含むマイクロプロセッサ、メモリおよび／またはコンピュータ読取可能な記憶媒体を用いて、簡便に実施されてもよい。ソフトウェア技術分野の当業者に明らかなように、熟練したプログラマーはこの開示の教示に基づいて適切なソフトウェアコーディングを容易に準備することができる。
【０１０５】
いくつかの実施の形態では、この発明は、この発明のプロセスのいずれかを実行するようにコンピュータをプログラミングするよう用いることができる命令をその上／中に記憶する記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品を含む。記憶媒体はフロッピーディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光カード、ナノシステム（分子のメモリＩＣを含む）、または命令および／もしくはデータの記憶に対して好適な任意のタイプの媒体もしくはデバイス含むことができるが、それに限定されない。
【０１０６】
この発明の前述の記載は例および記載の目的ために与えられた。それは網羅的であったり、この発明を開示される形式そのものに限定するようには意図されない。多数の修正および変形が当業者には明らかになる。修正および変形は記載される特徴の任意の関連する組合せを含む。実施の形態はこの発明の原理およびその実用化について最もよく説明するために選択され記載され、それによって、当業者がさまざまな実施の形態について、および企図される特定の使用に適するさまざまな修正とともにこの発明を理解することを可能にする。この発明の範囲が以下の特許請求の範囲およびそれらの等価物によって規定されることが意図される。
【図１】
0006505704.tif 000002
【図２】
0006505704.tif 000003
【図３】
0006505704.tif 000004
【図４】
0006505704.tif 000005
【図５】
0006505704.tif 000006
【図６】
0006505704.tif 000007
【図７】
0006505704.tif 000008
【図８】
0006505704.tif 000009
【図９】
0006505704.tif 000010
【図１０】
0006505704.tif 000011
【図１１】
0006505704.tif 000012
【図１２】
0006505704.tif 000013