(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-10
(54)【発明の名称】アドオンカードのファームウェアを更新し、任意のOSがインストールされた任意のサーバ又はベアメタルサーバのハードウェア情報を収集するシステム及び方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20230303BHJP
【FI】
G06F8/65
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022542469
(86)(22)【出願日】2020-01-23
(85)【翻訳文提出日】2022-07-11
(86)【国際出願番号】 US2020014835
(87)【国際公開番号】W WO2021150229
(87)【国際公開日】2021-07-29
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520155228
【氏名又は名称】ヒタチ ヴァンタラ エルエルシー
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】ホン,フランシス・キン-ウィン
(72)【発明者】
【氏名】クルス, アルトゥーロ
(72)【発明者】
【氏名】ザオ, リレン
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA45
5B376CA76
(57)【要約】
本明細書で説明するシステム及び方法は、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードすることに関し、これは、サーバのポートを、サーバのファームウェア更新専用の隔離されたネットワークに接続することと、隔離されたネットワークを介して受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュすることと、キャッシュメモリからサーバ上でオペレーティングシステムをブートすることと、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認することと、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードすることと、を含むことができる。
【特許請求の範囲】
【請求項1】
サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするための方法であって、
前記サーバのポートを隔離されたネットワークに接続することと、
前記隔離されたネットワークを介して受け取られたオペレーティングシステムを前記サーバのキャッシュメモリにキャッシュすることと、
前記キャッシュメモリから前記サーバ上で前記オペレーティングシステムをブートすることと、
前記サーバ上でネットワークファイルシステム(NFS)のマウントを実行して、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数の前記アップグレードに関連したハードウェア情報を確認することと、
前記ハードウェア情報に基づいて、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数をアップグレードすることと、を含む方法。
【請求項2】
前記オペレーティングシステムをブートすることは、Preboot Execution Environment(PXE)ブートを実行することを含む、請求項1に記載の方法。
【請求項3】
前記隔離されたネットワークを前記生成することは、関連付けられたスイッチポートのネイティブバーチャルローカルエリアネットワーク(VLAN)を変更することを含む、請求項1に記載の方法。
【請求項4】
アップグレード後に、前記関連付けられたスイッチポートを前記ネイティブVLANに戻すことを更に含む、請求項3に記載の方法。
【請求項5】
前記方法は、前記サーバのメディアアクセス制御(MAC)アドレスをPreboot Execution Environment(PXE)サーバに登録すること、及び、前記隔離されたネットワークを生成した後で、前記サーバの前記登録されたMACアドレスにインターネットプロトコル(IP)アドレスを割り当てることを更に含み、
前記NFSマウントの実行に使用されるNFSの共有は、前記割り当てられたIPアドレスに制限される、請求項3に記載の方法。
【請求項6】
前記ハードウェア情報に基づいて、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数を前記アップグレードすることは、前記ハードウェア情報を、前記デプロイメントマネージャによって提供される前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数の以前のバンドルと比較することを含む、請求項1に記載の方法。
【請求項7】
前記ハードウェア情報は、前記NFSマウントからのアプリケーションプログラミングインタフェース(API)によって生成される、請求項1に記載の方法。
【請求項8】
サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするための命令を格納する、非一時的なコンピュータ可読媒体であって、前記命令は、
前記サーバのポートを隔離されたネットワークに接続することと、
前記隔離されたネットワークを介して受け取られたオペレーティングシステムを前記サーバのキャッシュメモリにキャッシュすることと、
前記キャッシュメモリから前記サーバ上で前記オペレーティングシステムをブートすることと、
前記サーバ上でネットワークファイルシステム(NFS)マウントを実行して、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数の前記アップグレードに関連したハードウェア情報を確認することと、
前記ハードウェア情報に基づいて、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数をアップグレードすることと、を含む、非一時的なコンピュータ可読媒体。
【請求項9】
前記オペレーティングシステムを前記ブートすることは、Preboot Execution Environment(PXE)ブートを実行することを含む、請求項8に記載の非一時的なコンピュータ可読媒体。
【請求項10】
前記隔離されたネットワークを前記生成することは、関連付けられたスイッチポートのネイティブバーチャルローカルエリアネットワーク(VLAN)を変更することを含む、請求項8に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記命令は、アップグレード後に、前記関連付けられたスイッチポートを前記ネイティブVLANに戻すことを更に含む、請求項10に記載の非一時的なコンピュータ可読媒体。
【請求項12】
前記命令は、前記サーバのメディアアクセス制御(MAC)アドレスをPreboot Execution Environment(PXE)サーバに登録すること、及び、前記隔離されたネットワークを生成した後で、前記サーバの前記登録されたMACアドレスにインターネットプロトコル(IP)アドレスを割り当てることを更に含み、
前記NFSマウントの実行に使用されるNFSの共有は、前記割り当てられたIPアドレスに制限される、請求項10に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記ハードウェア情報に基づいて、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数を前記アップグレードすることは、前記ハードウェア情報を、前記デプロイメントマネージャによって提供される前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数の以前のバンドルと比較することを含む、請求項8に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記ハードウェア情報は、前記NFSマウントからのアプリケーションプログラミングインタフェース(API)によって生成される、請求項8に記載の非一時的なコンピュータ可読媒体。
【請求項15】
サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするように構成された管理ノードであって、
プロセッサであって、
前記サーバのポートを隔離されたネットワークに接続し、
前記隔離されたネットワークを介して受け取られたオペレーティングシステムを前記サーバのキャッシュメモリにキャッシュし、
前記キャッシュメモリから前記サーバ上で前記オペレーティングシステムをブートし、
前記サーバ上でネットワークファイルシステム(NFS)マウントを実行して、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数の前記アップグレードに関連したハードウェア情報を確認し、
前記ハードウェア情報に基づいて、前記アドオンファームウェア及び前記ディスクファームウェアのうちの前記1つ又は複数をアップグレードする、ように構成されたプロセッサを含む、管理ノード。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データセンターに関し、より具体的には、データセンターのサーバ内のアドオンカード及びディスクのファームウェアの更新を容易にすることに関する。
【背景技術】
【0002】
データセンターでは、サーバには、異なるベンダー、モデル及び構成が備わている。多くの場合、サーバは、異なるネットワークインタフェースコントローラ(NIC)、ホストバスアダプタ(HBA)、ディスクコントローラなどの、多数のアドオンカードを伴って構成されている。異なるバージョンのオペレーティングシステム(OS)タイプ(例えば、CentOS、RedHat LINUX、MS Windows、VMWare ESXiなど)に適合するように、この種のアドオンカードのファームウェア(FW)バージョンを維持することは、非常に費用がかかる。システム管理者は、FWを更新するためにアドオンカードのベンダーによって提供される特定のユーティリティを使用する必要がある。しかしながら、アドオンカードのベンダーから提供されるユーティリティは、限られたOSに対してのみ適用可能である。
【0003】
従来技術による実装では、システム管理者は、カードベンダーによってサポートされる特定のOSにあわせて各サーバを手動でリブートし、アドオンカードのユーティリティを適用してFW更新プロセスを適用する必要がある。更に、システム管理者は、FW更新プロセスを開始できるようになる前に、サーバのハードウェア情報を見つける必要がある。OSのタイプが異なる様々なプラットフォームでハードウェア情報を収集することは、難しいことがある。データセンターでは、システム管理者は、そのような問題に絶えず直面することがあり、数百台ものサーバを有するデータセンターを手がけることもある。
【発明の概要】
【課題を解決するための手段】
【0004】
従来技術の実装は、ベースボードマネジメントコントローラ(BMC)仮想メディアを使用してアドオンカードベンダーのサポートOSを用いてサーバをリブートし、FW更新を実施する。しかしながら、そのような実装は、サーバベンダー特有のものであることがあり、異なるOSに応じてPCリブート用の仮想メディアマウントを生成するために、ベンダー又はツールからのアプリケーションプログラミングインタフェース(API)を必要とする。別の従来技術の実装は、Preboot Execution Environment(PXE)ブートを使用して、選択されたサーバを、FW更新のために特定のOSに応じてリブート可能にすることを含む。そのような解決策は、ベンダー固有サーバの制約に対処することができるが、本番PXEサーバとダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバとの衝突という別の問題を生む。従来技術の実装では、DHCPサーバとPXEを隔離するために余分なNICが追加され、これにより、ネットワークの複雑さ及び運用コストが増加する。
【0005】
本明細書で説明する実施例は、任意のアプリケーションがデプロイメントマネージャに統合できる一組のAPIエンドポイントが、ハードウェア情報の収集及びアドオンカードのFW更新をシームレスに実施するためのシステム及び方法を含む。
【0006】
本開示の態様は、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするための方法を含むことがあり、この方法は、サーバのポートを隔離されたネットワークに接続することと、隔離されたネットワークを介して受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュすることと、キャッシュメモリからサーバ上でオペレーティングシステムをブートすることと、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認することと、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードすることと、を含む。
【0007】
本開示の態様は、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするための命令を格納したコンピュータプログラムを更に含むことがあり、この命令は、サーバのポートを隔離されたネットワークに接続することと、隔離されたネットワークを介して受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュすることと、キャッシュメモリからサーバ上でオペレーティングシステムをブートすることと、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認することと、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードすることと、を含む。この命令は、非一時的なコンピュータ可読媒体に格納され、1つ又は複数のプロセッサによって実行されるように構成されることがある。
【0008】
本開示の態様は、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするように構成された管理ノードを更に含むことがあり、この管理ノードは、プロセッサであって、サーバのポートを隔離されたネットワークに接続し、隔離されたネットワークを介して受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュし、キャッシュメモリからサーバ上でオペレーティングシステムをブートし、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認し、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードする、ように構成されたプロセッサを含む。
【0009】
本開示の態様は、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするためのシステムを更に含むことがあり、このシステムは、サーバのポートを隔離されたネットワークに接続するための手段と、隔離されたネットワークを介して受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュするための手段と、キャッシュメモリからサーバ上でオペレーティングシステムをブートするための手段と、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認するための手段と、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするための手段と、を含む。
【図面の簡単な説明】
【0010】
【
図1a】実施例による、ファームウェア更新ネットワークの例示的な設定を示す。
【0011】
【0012】
【
図2a】実施例による、管理ノードによるアドオンカード/ディスクファームウェア更新のための例示的な全体的フローを示す。
【0013】
【
図2b】実施例を適用することができる例示的なフローを示す。
【0014】
【
図3】実施例による、本番環境における例示的なトポロジーを示す。
【0015】
【
図4】実装の一部の例で使用するのに適した、コンピュータ装置の一例を有する計算環境の一例を示す。
【発明を実施するための形態】
【0016】
以下の詳細な説明は、図面の詳細及び本願の実装の例を示す。図面間の冗長な要素の参照番号及び説明は明瞭にするために省いている。説明の全体を通して使用する用語は例として示し、限定的であることは意図しない。例えば「自動」という用語の使用は、本願の実装を実践する当業者の所望の実装に応じて、完全に自動の実装又は実装の特定の側面に対するユーザ若しくは管理者の制御を含む半自動の実装を含み得る。選択は、ユーザインタフェース又は他の入力手段によってユーザによって行われてもよく、又は所望のアルゴリズムによって実装され得る。本明細書に記載する実装の例は単独で又は組み合わせで利用することができ、実装の例の機能は所望の実装に従って任意の手段によって実装され得る。
【0017】
今日のシステム管理者は、信頼性要件、性能要件、及びセキュリティ要件のために、本番サーバを、サポートされた/認定された最新のソフトウェア、サーバハードウェア用のFW、及びアドオンデバイス(即ち、NIC、HBA、ディスクコントローラ、及びディスク)用のFWを用いて維持するという難しい仕事に直面している。アドオンカード用のFWの更新は、簡単ではない。正しいアップグレードパスを見つけたり、アドオンカードベンダーによって提供される適切なユーティリティを使用したりする必要がある。これらのユーティリティは、サポートされている少数のOSのみで使用できる。この解決策では、シームレスなアドオンカードのFW更新を行うための、サーバベンダーに依存しない自動化された機構が提供される。この解決策では、専用のファームウェアアップデートネットワーク(FUN)がレイヤ2ネットワーク内に自動的に生成され、スイッチ上の単一のポートのみがそのFUN用の特定のネイティブVLAN IDを用いて構成され、アドオンカードのFW更新の完了時に元の設定に復元される。NFSルートボリュームを有するカスタマイズされたPXEイメージ(非常に小さなフットプリントを有する高度に修正されたCentOS)が、デプロイメントマネージャ上にある専用のPXEサーバから起動される。NFSマウントを介したPXEブート及びルートボリュームの組み合わせにより、FW変更及び処理をオンザフライで与えるPXEブート用ISOイメージを生成することなく、アドオンカードのFWバンドルを更新することが可能になる。IPMIツール及びRedFishプロトコルを使用して、FW更新用に選択されたサーバ上でブートシーケンスが制御され、このプロセス中にハードウェア情報も収集される。更新されるサーバとデプロイメントマネージャとの間の通信のセキュリティを更に保護するために、サーバの一意のMACアドレスが、PXEサーバ上のデプロイメントマネージャDHCPに登録される。デプロイメントマネージャPXEサーバは、登録されたMACアドレスにのみ応答する。PXEサーバは、Dockerコンテナ内でデプロイメントマネージャによって管理されて、オーバーヘッドが低減され、セキュリティが強化される。
【0018】
実施例は、アドオンカードのFW更新及びハードウェア情報の収集のための専用のファームウェアアップデートネットワーク(FUN)を構築する自動化プロセスを含む。このネットワークは、安全なレイヤ2ネットワーク環境を提供して、本番環境での中断を抑制する。全ての変更がレイヤ2ネットワーク内で行われるため、非常に拡張性が高く、サーバベンダーに依存しなくなる。更に、FUN内のPXEサーバは、緊密に統合されたマイクロサービスを提供してオーバーヘッドをより少なくするデプロイメントマネージャ(DM)を有する多数のDockerコンテナの1つである。これらの全ての測定により、本明細書で説明する実施例は、本番PXEサーバ及びDHCPサーバを用いた高度にセキュリティ保護された、中断のない解決策を促す。
【0019】
本明細書で説明する実施例により、ネットワークに接続された任意のサーバに、適切なアドオンカード/ディスクのFWアップグレードを施すことができ、それによって、データセンターが、接続されているサーバに関してベンダーに依存しなくすることができる。実施例は、基本となる構成に関わりなく任意のサーバに適用することができ、また、アドオンカード/ディスクのFWアップグレードを容易にするための何らかの追加の機器を必要としない。
【0020】
実施例は、ハードウェア情報の収集並びにアドオンカード/ディスクのFW更新を容易にするネットワークファイルシステム(NFS)マウントなどのAPIも容易にする。一例では、NFSマウントのAPIは、所望の実装に従って、これらに限定するものではないが、サーバ内のアドオンカードの種類、ディスクドライブの種類、サーバの種類、サーバの構成(例えば、使用されているプロセッサ又はメモリ)、サーバのスロット、などのハードウェア情報の収集を容易にすることができる。
【0021】
実施例は、本明細書で説明するように、隔離されたネットワークを使用して、ファームウェアの更新を容易にする。本番ネットワークとは別の隔離されたネットワークを利用することにより、実施例は、本番環境への望ましくないインターネットプロトコルアドレスの割り当てから、本番環境におけるデプロイメントマネージャPXEサーバ及びDHCPサーバを安全に保護する。更に、隔離されたネットワークは、Dockerコンテナへのアクセスを管理する管理ノードのデプロイメントマネージャを介してアクセスを制限することにより、サーバを起動するため、かつ、アドオンカード/ディスクのFW更新を実行するために使用されるPXEオペレーティングシステムを安全に保護することにより、セキュリティを維持する。本明細書で説明するような実施例では、PXEサーバは、移植性、セキュリティを提供し専用リソースのオーバーヘッドを低減するように、Dockerコンテナによって促進される。本番環境のクラスターを含む実施例では、本明細書で説明するようなDockerコンテナの複数のインスタンスをクラスター毎に生成して、所望の実装を促進することができる。
【0022】
実施例は、単一のサーバの更新(例えば、著しい停止時間を回避するための本番環境での単一のサーバ)、又は複数のサーバの更新に同時(例えば、非本番環境の迅速なデプロイメント)に適用することができる。
【0023】
図1(a)は、実施例によるファームウェア更新ネットワークの構成例を示す。
図1(a)の例では、本番環境で動作しているサーバが更新されている。DMインタフェースを使用して、ユーザは、更新する必要があるサーバを選択することができる。このサーバは、本番サーバであるため、先ず、対応するクラスターについて全面的な中断を回避するために、メンテナンスモードになる。DMは、自動的にバックグラウンドでFUNの設定を開始する。FUNを設定するプロセス中、DMは、スイッチ(例えば、この例では、VendorXによって作製されたスイッチ)に対してセキュアシェル(SSH)を確立し、ペアリングされたポート設定のバックアップを行い、ポート上のデフォルトバーチャルローカルエリアネットワーク(VLAN)を変更し、その後、VLANを生成する。
図1(a)は、VLAN ID 7を用いてFUNを設定する例を示す。
【0024】
図1(b)は、実施例による、例示的なシステムを示す。実施例では、アドオンカード又はディスクに対するファームウェア更新を行うことになる1台のサーバ100又は複数のサーバがある。そのようなサーバは、スイッチ103に接続されており、また、本番ネットワーク101に接続し、本番環境のDHCPサーバ104と相互作用することができる。管理ノード130がファームウェア更新を行うように命令されると、管理ノード130は、
図1(a)に示すような設定を開始し、サーバ100をPXEブートサーバ120に接続するFUN 102を生成する。PXEブートサーバ120は、FUN 102用のDHCPサーバ111、トリビアルファイルトランスファープロトコル(TFTP)サーバ112、ネットワークファイルシステム(NFS)サーバ113、及びハイパーテキストトランスファープロトコル(HTTP)サーバ、を含むことができる1つ又は複数のコンテナ110を含むことがある。1つ又は複数のコンテナ110のそれぞれは、所望の実装に応じてスイッチ103又は別のスイッチによって管理される、本番環境内のサーバの特定のクラスターに対応することができる。管理ノード130は、
図1(a)に示されるようにDMを実行してスイッチ103を設定する。所望の実装に応じて、PXEブートサーバ120及びコンテナ110は、クラウド上の複数のサーバにまたがる仮想マシン(VM)を介して提供されることがある。そのような実施例では、VM及びDMを両方とも、管理ノード130によって管理することができる。
【0025】
FUN 102が生成されると、DMは、ファームウェアの更新のために選択されたサーバのNICの対応する対のメディアアクセス制御(MAC)アドレスを検出し、そのMACをPXEブートサーバ120内のDHCPサーバ111に登録して、DHCPサーバ111が、アドオンカードのFW更新に関与するように意図されていない本番サーバにインターネットプロトコル(IP)アドレスを付与しないことを保証する。次いで、DMは、インテリジェントプラットフォームマネジメントインタフェース(IPMI)ツールを用いてリセット(例えば、ESXiリセットなど)を開始する。一旦ターゲットのサーバ100がリブートからアクティブになると、DMはアドオンカードの更新プロセスを開始する。
【0026】
プロセス全体が完了すると、DMはスイッチ103内のポート設定を復元する。
【0027】
図2(a)は、実施例による、管理ノード130によるアドオンカード/ディスクファームウェア更新のための例示的な全体的フローを示す。まず201において、管理ノード130は、アドオンカード/ディスクのFW更新を必要とするサーバ(例えば、サーバ100)を検出する。202では、管理ノード130は、サーバ100、スイッチ103、管理ノード130、及びVM/PXEサーバ120の間の専用のFUN 102を生成するようにスイッチ103を設定する。
【0028】
203では、管理ノード130は、本番PXEサーバとの衝突を回避するために、PXEブートサーバ120に登録された、選択されたサーバの一意のNIC MACを用いて、PXEブートサーバ120用のDockerコンテナを開始する。204では、管理ノード130は、選択サーバ100上でブートシーケンスを再設定し、サーバがカスタマイズされたPXE-LiveOSを用いて起動するように、リブートを開始する。
【0029】
205では、サーバ100が起動プロセスを完了した後、管理ノード130は、サーバ100のハードウェア情報を収集するプロセス、及び対応するアドオンカード/ディスクのFW更新プロセスを開始する。更新プロセスは、カスタマイズされたPXE-LiveOSを介して実行される。管理ノード130は、ハードウェア情報を収集し、更新のためにどのバージョンのファームウェアを使用すべきかを決定する。
【0030】
206では、アドオンカードのFW更新プロセスが完了すると、管理ノード130は、元のブートシーケンスを用いてサーバ100をリブートする。207では、管理ノード130は、FUNにおいて設定されたスイッチ103のスイッチポートのネットワーク設定を復元する。次いで、このプロセスは終了し、管理ノード130は、ハードウェア情報と共に、アドオンカード/ディスクのFW更新の完了に関するレポートを提供することができる。
【0031】
図2(b)は、実施例を適用することができる例示的なフローを示す。まず210で、管理者は、デプロイメントマネージャ・インタフェースを用いて、アドオンカード/ディスクのFW更新及びHW情報の収集を行うためのサーバを選択する。211では、ユーザは、FUN VLAN IDを提供するように求められる。一旦FUN VLAN IDが提供されると、212で、管理ノードに接続された計算スイッチポートが「トランクモード」212で設定されているかどうかを判断するためのチェックが行われる。そうである(はい)場合、このフローは214に進み、FUN VLAN IDをトランク214に追加し、そうでなければ(いいえ)このフローは213に進み、ポートを「トランクモード」に再設定し、且つFUN VLAN IDをトランク213に再設定する。215では、このプロセスは、FUN 215からブートするように選択されたサーバ上で使用されるNICのMACアドレスを見つける。
【0032】
216では、このフローは、計算スイッチポート上で一致するMACがあるかどうかをチェックする。ない(いいえ)場合、このフローは、217で、ユーザがスイッチポート番号を提供するためのインタフェースを提供する。そうではない(はい)場合、このフローは218に進み、スイッチポートの設定のバックアップをとる。219では、このフローは、デフォルトのVLANを有するスイッチポートをFUN VLAN ID 219にリセットする。220では、このフローは、FUN VLAN IDをデプロイメントマネージャVMに追加する。
【0033】
221では、このフローは、デプロイメントマネージャVM上でPXEサーバDockerコンテナを開始する。222では、デプロイメントマネージャVMは、FUNにおいて設定されたNICからPXEブートするように、選択されたサーバを設定する。
【0034】
223では、このフローは、サーバの電源がオンになっているかどうかをチェックする。そうである(はい)場合、このフローは224に進み、サーバ上の電力のリセットを行う。そうではない(いいえ)場合、このフローは225に進み、サーバの電源投入を行う。
【0035】
226では、このフローは、サーバのブートステータスをチェックする。サーバが起動する(アップ)場合、このフローは227に進み、そうではない(起動しない)場合、このフローは232に進んで、スイッチポート設定を復元し、233に進んでエラーが発生したことをレポートし、フローを終了させる。
【0036】
227では、このフローはHW情報の収集に進む。228では、このフローはアドオンカード/ディスクのFW更新を開始し、進行状況についてのレポートを提供する。229では、このフローはFW更新の進行状況の監視及びレポートを続行する。230では、更新完了を判断するためのチェックが行われる。完了している場合、このフローは231に進み、そうではない場合、このフローは232に進む。
【0037】
231では、このフローはスイッチポート設定231を復元し、234に進んでFW更新の成功をレポートし、通常のブーストシーケンスでサーバを再起動する。
【0038】
図3は、実施例による、本番環境における例示的なトポロジーを示す。実施例では、本番ネットワーク101は計算スイッチ301によって管理される。この例のサーバ100は計算ノードである。310では、管理ノード130は、本番ネットワークを管理する計算スイッチ310に対して、デフォルトのネイティブVLANをFUNのVLAN IDへ一時的に変更するように指示する。それによって、FUN VLANはサーバ100をPXEサーバに接続し、その結果、アドオンカード/ディスクのFW更新を行うためにサーバPXEブートを実行することができるようになる。
図2(b)の212に示されているように、計算スイッチ301は、FUN VLAN IDを追加するように、トランクモードで設定される。FUNは隔離されたネットワークであり、これにより、計算スイッチ301が、本番ネットワーク101から隔離されたサーバ100へのポートを有することが可能になり、それによって、本番環境のPXEサーバ又はDHCPサーバとの干渉に伴う問題が排除される。
【0039】
デプロイメントマネージャVMは、管理ノード130上で実行され、管理ノード130は、DockerコンテナをPXEサーバとして提供し、アドオンカード/FW更新を促進する。
【0040】
本明細書で説明する実施例は、隔離された専用のFUNを使用して、選択されたサーバを制御し、管理ノードによって管理されるDockerコンテナとして高度にセキュリティ保護された専用のPXEサーバからブートを行う。PXEサーバは、アドオンカード又はディスクのFW更新を行うために、CentOS PXE-LiveOSなどの高度にカスタマイズされたオペレーティングシステムを提供する。このような実施例により、基本となるサーバの構成に関わりなく、アドオンカードやディスクのFW更新及びハードウェアの管理を一貫性を持って簡略化することが可能になる。
【0041】
図4は、デプロイメントマネージャの機能を容易にするための
図1(b)及び
図3に示した管理ノードなどの幾つかの実施例における使用に適した例示的なコンピュータデバイスを有する例示的な計算環境を示す。計算環境400内のコンピュータ装置405は、1つ又は複数の処理ユニット、コア、又はプロセッサ410、メモリ415(例えばRAM、ROM等)、内部記憶域420(例えば磁気、光学、ソリッドステート記憶域及び/又は有機)、及び/又はI/Oインタフェース425を含むことができ、その何れも情報を伝達するための通信機構又はバス430上で結合され、又はコンピュータ装置405内に埋め込まれ得る。I/Oインタフェース425は、所望の実装に応じてカメラから画像を受信するように又はプロジェクタ若しくはディスプレイに画像を与えるようにも構成される。
【0042】
コンピュータ装置405は、入力/ユーザインタフェース435及び出力装置/インタフェース440に通信可能に結合され得る。入力/ユーザインタフェース435及び出力装置/インタフェース440の一方又は両方は、有線又は無線のインタフェースとすることができ、取り外し可能であり得る。入力/ユーザインタフェース435は、入力を与えるために使用できる任意の装置、コンポーネント、センサ、又は物理的若しくは仮想的なインタフェース(例えばボタン、タッチスクリーンインタフェース、キーボード、ポインティング/カーソル制御、マイクロホン、カメラ、点字、運動センサ、光学式読取機等)を含むことができる。出力装置/インタフェース440は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字等を含み得る。実装の一部の例では、入力/ユーザインタフェース435及び出力装置/インタフェース440をコンピュータ装置405に埋め込むことができ、又はコンピュータ装置405に物理的に結合することができる。実装の他の例では、他のコンピュータ装置が、コンピュータ装置405のための入力/ユーザインタフェース435及び出力装置/インタフェース440として機能することができ、又はその機能を提供し得る。
【0043】
コンピュータ装置405の例は、これだけに限定されないが高移動性の装置(例えばスマートフォン、車両及び他の機械内の装置、人間及び動物が運ぶ装置等)、モバイル装置(例えばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオ等)、及び移動性に関して設計されていない装置(例えばデスクトップコンピュータ、他のコンピュータ、情報キオスク、1つ又は複数のプロセッサが埋め込まれた及び/又は結合されたテレビ、ラジオ等)を含み得る。
【0044】
コンピュータ装置405は、同じ構成又は異なる構成の1つ又は複数のコンピュータ装置を含む任意の数のネットワーク化されたコンポーネント、装置、及びシステムと通信するために、外部記憶域445及びネットワーク450に(例えばI/Oインタフェース425を介して)通信可能に結合され得る。コンピュータ装置405又は接続された任意のコンピュータ装置は、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、又は別のラベルとして機能することができ、そのサービスを提供することができ、又はそのように言及され得る。
【0045】
I/Oインタフェース425は、これだけに限定されないが、計算環境400内の少なくとも全ての接続されたコンポーネント、装置、及びネットワークとの間で情報をやり取りするために任意の通信プロトコル若しくは規格又はI/Oプロトコル若しくは規格(例えばイーサネット、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラネットワークプロトコル等)を使用する有線及び/又は無線のインタフェースを含み得る。ネットワーク450は、任意のネットワーク又はネットワークの組み合わせ(例えばインターネット、ローカルエリアネットワーク、広域ネットワーク、電話網、セルラネットワーク、衛星ネットワーク等)とすることができる。
【0046】
コンピュータ装置405は、一時的媒体及び非一時的媒体を含む、コンピュータ使用可能媒体又はコンピュータ可読媒体を使用する及び/又は使用して通信することができる。一時的媒体は、伝送媒体(例えば金属ケーブル、光ファイバ)、信号、搬送波等を含む。非一時的媒体は、磁気媒体(例えばディスク及びテープ)、光学媒体(例えばCD ROM、デジタルビデオディスク、ブルーレイディスク)、ソリッドステート媒体(例えばRAM、ROM、フラッシュメモリ、ソリッドステート記憶域)、及び他の不揮発性記憶域又はメモリを含む。
【0047】
計算環境の一部の例では、コンピュータ装置405を使用して技法、方法、アプリケーション、プロセス、又はコンピュータ実行可能命令を実装することができる。コンピュータ実行可能命令は、一時的媒体から取得し、非一時的媒体上に記憶しそこから取得することができる。実行可能命令は、任意のプログラミング言語、スクリプト言語、及び機械言語(例えばC、C++、C#、Java、Visual Basic、Python、Perl、JavaScript等)の1つ又は複数に由来し得る。
【0048】
プロセッサ410は、ネイティブ環境又は仮想環境内で任意のオペレーティングシステム(OS)(不図示)の下で実行可能である。論理ユニット460、アプリケーションプログラミングインタフェース(API)ユニット465、入力ユニット470、出力ユニット475、並びに様々なユニットが互いに、OSと、及び他のアプリケーション(不図示)と通信するためのユニット間通信機構495を含む1つ又は複数のアプリケーションを導入することができる。記載のユニット及び要素は、設計、機能、構成、又は実装の点で変更することができ、行った説明に限定されない。プロセッサ410は、中央処理装置(CPU)等のハードウェアプロセッサ形式又はハードウェアとソフトウェアユニットとの組み合わせの形式にあり得る。
【0049】
実装の一部の例では、情報又は実行命令がAPIユニット465によって受信されると、それが1つ又は複数の他のユニット(例えば論理ユニット460、入力ユニット470、出力ユニット475)に伝達され得る。上記の実装の一部の例において、一部の例では論理ユニット460がユニット間の情報フローを制御し、APIユニット465、入力ユニット470、出力ユニット475によって提供されるサービスを指示するように構成され得る。例えば1つ又は複数のプロセス又は実装のフローが、論理ユニット460によって単独で又はAPIユニット465と組み合わせて制御され得る。入力ユニット470は実装の例の中で説明した計算のための入力を得るように構成することができ、出力ユニット475は実装の例の中で説明した計算に基づいて出力を提供するように構成され得る。
【0050】
プロセッサ410は、
図2(b)の212~214に示すように、サーバのポートを隔離されたネットワーク(例えば、FUN)に接続することにより、サーバのアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードを容易にするように構成され、
図2(b)の221及び22の一環として、隔離されたネットワークを通じて受け取られたオペレーティングシステムをサーバのキャッシュメモリにキャッシュし、
図2(b)の223~226に示したように、キャッシュメモリからサーバ上でオペレーティングシステムをブートし、
図2(b)の227及び228に示したように、サーバ上でネットワークファイルシステム(NFS)マウントを実行して、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数のアップグレードに関連したハードウェア情報を確認し、
図2(b)の229~231に示したように、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードする、ことができる。
【0051】
実施例では、オペレーティングシステムをブートすることは、
図2(b)の222に示すように、Preboot Execution Environment(PXE)ブートを実行することを含む。PXEブートは、従来のPXE及び/又は所望の実装を容易にするための最新のiPXEとすることができる。
【0052】
図1(a)及び
図3に示すように、隔離されたネットワークを生成することは、関連付けられたスイッチポートのネイティブバーチャルローカルエリアネットワーク(VLAN)を変更することを含む。関連付けられたスイッチポートは、アップグレードが完了した後でネイティブVLANに戻して、サーバを本番環境に戻して接続することができる。
【0053】
プロセッサ410は、
図1(b)及び
図3に示すように、サーバのメディアアクセス制御(MAC)アドレスをPreboot Execution Environment(PXE)サーバに登録し、
図2(b)の215~220に示すように、隔離されたネットワークを生成した後で、サーバの登録されたMACアドレスにIP(internet protocol)アドレスを割り当てるように構成することができる。次いで、DHCPサーバ1111、TFTPサーバ112、及びNFSマウント用に使用されるNFSサーバ113のAPIを含むコンテナ110の共有は、割り当てられたIPに制限される。これにより、サーバのハードウェア情報をNFSマウントからのAPIにり生成することができる。
【0054】
プロセッサ410は、ハードウェア情報を、デプロイメントマネージャによって提供されるアドオンファームウェア及びディスクファームウェアのうちの1つ又は複数の以前のバンドルと比較することによって、ハードウェア情報に基づいて、アドオンファームウェア及びディスクファームウェアのうちの1つ又は複数をアップグレードするように構成されることがある。実施例では、管理ノードは、本番環境に接続された全てのサーバの全てのアドオンカード及びディスクのファームウェアのバージョンステータスをメモリ405において管理する。そのような実施例では、本番ネットワーク内のサーバを、全てのサーバが適切にアップグレードされるまで、順次アップグレードすることができる。それによって、実施例は、サーバの特定のクラスターに対してどのバンドルがデプロイされたのかを追跡し、その後、サーバのハードウェア情報を、その特定のクラスターに適用されたバンドルと比較することができる。そのような実施例は、当業者に既知の態様で、促進されることがある。
【0055】
詳細な説明の一部はコンピュータ内の操作のアルゴリズム及び記号表現に関して提示した。これらのアルゴリズム的記述及び記号表現は、その革新の本質を他の当業者に伝えるためにデータ処理技術の当業者によって使用される手段である。アルゴリズムは、所望の終了状態又は結果をもたらす一連の定義済みのステップである。実装の例では、実行されるステップが具体的な結果を実現するために有形量の物理的操作を必要とする。
【0056】
別段の定めがない限り、解説から明らかなように説明の全体を通して「処理」、「コンピューティング」、「計算」、「決定」、「表示」等の用語を利用する解説は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ、又は他の情報記憶域、伝送若しくは表示装置内で物理量として同様に表される他のデータに変換するコンピュータシステム又は他の情報処理装置のアクション及びプロセスを含み得ることが理解されよう。
【0057】
実装の例は、本明細書の操作を行うための機器にも関係し得る。この機器は所要の目的のために特別に構築することができ、又は1つ若しくは複数のコンピュータプログラムによって選択的に活性化され又は再構成される1つ又は複数の汎用コンピュータを含み得る。かかるコンピュータプログラムは、コンピュータ可読記憶媒体又はコンピュータ可読信号媒体等のコンピュータ可読媒体の中に記憶され得る。コンピュータ可読記憶媒体は、これだけに限定されないが光ディスク、磁気ディスク、読取専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ等の有形媒体、又は電子情報を記憶するのに適した他の任意の種類の有形媒体若しくは非一時的媒体を含み得る。コンピュータ可読信号媒体は搬送波等の媒体を含み得る。本明細書で提示したアルゴリズム及び表示は、或る特定のコンピュータ又は他の機器に固有に関係するものではない。コンピュータプログラムは所望の実装の操作を実行する命令を含む純粋なソフトウェア実装を含み得る。
【0058】
様々な汎用システムは、本明細書の例によるプログラム及びモジュールと共に使用することができ、又は所望の方法ステップを実行するためのより特化した機器を構築するのに便利であることが証明され得る。加えて実装の例は、或る特定のプログラミング言語に関して説明していない。本明細書に記載した実装の例の教示を実装するために、様々なプログラミング言語を使用できることが理解されよう。プログラミング言語の命令は1つ又は複数の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
【0059】
当技術分野で知られているように、上述した操作はハードウェア、ソフトウェア、又はソフトウェアとハードウェアとの何らかの組み合わせによって行うことができる。実装の例の様々な側面が回路及び論理装置(ハードウェア)を使用して実装できるが、機械可読媒体上に記憶される命令(ソフトウェア)を使用して他の側面が実装されてもよく、かかる命令はプロセッサによって実行されるとき、本願の実装を実行するための方法をプロセッサに実行させる。更に本願の実装の一部の例はハードウェアのみで実行できるのに対し、実装の他の例はソフトウェアのみで実行することができる。更に、記載した様々な機能は単一のユニット内で実行することができ、又は任意の数のやり方で幾つかのコンポーネントに分散させることができる。ソフトウェアによって実行される場合、方法はコンピュータ可読媒体上に記憶される命令に基づいて汎用コンピュータ等のプロセッサによって実行され得る。必要に応じて命令は圧縮形式及び/又は暗号化形式で媒体上に記憶することができる。
【0060】
更に、本明細書を検討すること及び本願の教示を実践することにより、本願の他の実装が当業者に明らかになる。記載した実装の例の様々な側面及び/又はコンポーネントは単独で又は任意の組み合わせで使用することができる。本明細書及び実装の例は単に例として検討されることを意図し、本願の真の範囲及び趣旨は添付の特許請求の範囲によって示す。
【国際調査報告】