【文献】
加藤雅則、外3名,IoT対応を強化するBMC搭載組込みコンピュータ,PFU・テクニカルレビュー,株式会社PFU,2017年 6月 1日,第28巻, 第1号,pp.26-32
(58)【調査した分野】(Int.Cl.,DB名)
サーバがエージェントソフトウェア及びBMCを備え、前記BMCは第1のネットワークインタフェース及び前記第1のネットワークインタフェースと直接接続されないストレージホストインタフェースを備え、前記エージェントソフトウェアは前記第1のネットワークインタフェースを介して前記ストレージホストインタフェースとサポートセンタとのリモートメディア接続を行い、
前記リモートメディア接続によって、前記エージェントソフトウェアが前記ストレージホストインタフェースに更新ファイルを認識すると、前記エージェントソフトウェアが前記更新ファイルを実行するサーバの保守方法であって、
前記ストレージホストインタフェースと前記ストレージホストインタフェースの間のデータのやりとりについて、前記BMCは、前記ストレージホストインタフェースのデータをパケット化して前記第1のネットワークインタフェースに送り、前記第1のネットワークインタフェースで受信したパケットからデータを取り出して前記ストレージホストインタフェースに送るサーバの保守方法。
サーバがエージェントソフトウェア及びBMCを備え、前記BMCは第1のネットワークインタフェース及び前記第1のネットワークインタフェースと直接接続されないストレージホストインタフェースを備え、前記エージェントソフトウェアは前記第1のネットワークインタフェースを介してストレージホストインタフェースとサポートセンタとのリモートメディア接続を行い、
前記リモートメディア接続によってエージェントソフトウェアが前記ストレージホストインタフェースに更新ファイルを認識すると、前記エージェントソフトウェアが前記更新ファイルを実行することをコンピュータに実行させるサーバのプログラムであって、
前記ストレージホストインタフェースと前記ストレージホストインタフェースの間のデータのやりとりについて、前記ストレージホストインタフェースのデータをパケット化して前記第1のネットワークインタフェースに送り、前記第1のネットワークインタフェースで受信したパケットからデータを取り出して前記ストレージホストインタフェースに送ることを前記BMCに実行させるサーバのプログラム。
【発明を実施するための形態】
【0015】
[第1の実施形態]
次に、本発明の実施の形態について
図1を参照して詳細に説明する。
[構成の説明]
図1に第1の実施形態の構成を示す。
【0016】
本実施形態のサーバ10は、第1のネットワークインタフェース11と、第2のネットワークインタフェース12と、ストレージホストインタフェース13と、OS部14とを備える。(ネットワークインタフェース;network interface、ストレージホストインタフェース;storage host interface)。第1のネットワークインタフェース11は、ネットワークを介してサポートセンタ30に接続する。第2のネットワークインタフェース12は、前記ネットワークを介して前記サポートセンタ30以外の接続先と接続する。ストレージホストインタフェース13は、前記第1のネットワークインタフェース11を用いて前記サポートセンタ30とのリモートメディア接続が可能である。また、OS部はエージェントソフトウェア15を実行することで、前記リモートメディア接続によって前記ストレージホストインタフェース13に更新ファイルを認識すると、前記更新ファイルを実行する。(エージェントソフトウェア;agent software)。
【0017】
この様にすることで、本実施形態のサーバ10は、サーバの更新ファイルを実行する際に、保守作業者がサーバのOSにログインする必要が無い。そのため、サーバの管理者がセキュリティ上の不安を感じることなく、プログラムや設定情報をアップデート可能になる。
[第2の実施形態]
次に、第2の実施形態について
図2乃至
図6を参照して説明する。
[構成の説明]
図2に、本実施形態のサーバ管理システム1000の構成を示す。
【0018】
サーバ管理システム1000は、サーバ100、サポートセンタ200、VPNルータ301、およびVPNルータ302によって構成されている。サーバ100は、VPNルータ301を介してインターネットなどのネットワークに接続される。また、サポートセンタ200は、VPNルータ302を介してネットワークに接続される。
【0019】
図2ではサーバ100を1台としているが、ネットワークに接続され、サポートセンタ300によって保守されるサーバ100は複数であってもよい。
【0020】
サーバ100は、OS部110と、BMC(Baseband Management Controller)120を備える。
【0021】
BMC120は、インターネット(Internet)などのネットワークに接続して、サポートセンタ300とサーバ保守用の通信だけをするための第1のネットワークインタフェース(network interface)122を備える。第1のネットワークインタフェース122は、LAN(Local Area Network)などであってもよい。
【0022】
第1のネットワークインタフェース122はBMC120の管理下にあり、OS部110のCPU(Central Processing Unit)には接続されていない。
【0023】
また、OS部110は、インターネットなどのネットワークに接続して、サーバ保守用以外の通常のデータ通信を行うための第2のネットワークインタフェース112を備える。
【0024】
第2のネットワークインタフェース112は、BMC120の管理下とは独立して、OS部110の管理下にあり、サーバのCPUに接続されている。
【0025】
第1のネットワークインタフェース122と、第2のネットワークインタフェース112は、同じネットワークに接続されても良いが、異なるネットワークに接続することでもよい。
【0026】
OS部110は、CPUを含み、サーバ100の基本ソフトウェアであるOSを実行する。
【0027】
BMC120は、システムの状態やOS部110に依存せずに、システムのハードウェアの監視を行う管理用コントローラソフトウェアを実行する。BMC120は、サーバのハードウェアを監視するための標準インタフェースであるIPMI(Intelligent Platform Management Interface)に準拠していてもよい。
【0028】
BMC120は、第1のネットワークインタフェース122を介して、サーバ100とサポートセンタ300とをリモートメディア(remote media)接続によって接続する。そして、BMC120は、サポートセンタ300に登録された更新ソフトウェアや設定更新の情報を含むパッケージファイル(package file)を、ストレージホストインタフェース121に接続される外部記憶媒体として認識する機能をもつ。
【0029】
図2では、ストレージホストインタフェース121と第1のネットワークインタフェース122が接続されている様に示しているが、直接物理的に接続されているのではなく、BMC120がデータのやりとりを行っている。即ち、ストレージホストインタフェース121のデータを、BMC120がパケット化(packet)して第1のネットワークインタフェース122に送り、第1のネットワークインタフェース122からネットワークに送信する。或いは、第1のネットワークインタフェース122で受信したパケットから、BMC120がデータを取り出し、ストレージ形式のデータにしてストレージホストインタフェース121に送る等を行う。
【0030】
また、OS部110はエージェントソフトウェア111(agent software)を備える。エージェントソフトウェア111は、定期的にストレージホストインタフェース121に対してパッケージファイルの有無を確認し、ストレージホストインタフェース121で認識されたパッケージソフトウェアをOS部110に展開する。そして、エージェントソフトウェア111は、展開した更新ファイルを実行する。
【0031】
サポートセンタ200は、サーバ100のOS部110のOS、設定情報、およびアプリケーションソフト(application software)などを保守するためのサーバである。
【0032】
サポートセンタ200には、サーバ100に対してOS、設定情報、およびアプリケーションソフト(application software)などの更新情報があると、これらのソフトウェアや情報を含む更新ファイル201が登録される。
【0033】
また、サポートセンタ200は、サーバ100が更新ファイルを実行したことを通知する情報を受信すると、実行結果ファイル202を保管する。
【0034】
更新ファイル201と実行結果ファイル202は、一時的に記憶されるもので、必要がなくなると消去されるファイルである。
【0035】
さらに、サポートセンタ200は、実行結果ファイル202の履歴を継続的に記憶するログ203(log)を有する。
【0036】
VPNルータ301はサーバ100がネットワークに接続する際に、接続先を指定するためのルータである。また、VPNルータ302はサポートセンタ200がネットワークに接続する際に、接続先を指定するためのルータである。
[動作の説明]
次に、本実施形態のサーバ管理システム1000の動作について
図3乃至
図5を参照して説明する。
【0037】
はじめに、サポートセンタ200の動作について、
図3を参照して説明する。
【0038】
サポートセンタ200は、はじめにパッケージファイル201が登録されているかどうかを判断する(S101)。サポートセンタ200へのパッケージファイル201の登録は、保守作業者が登録することでもよい。或いは、サポートセンタ200がUSB等のストレージホストインタフェースを備え、ストレージホストインタフェースにパッケージファイルが記憶される外部ストレージを接続することでもよい。(USB;Universal Serial Bus)。
【0039】
ステップS101で、パッケージファイル201が登録されていると判断されると(S101でY)、ステップS102にすすむ。
【0040】
ステップS101で、パッケージファイル201が登録されていないと判断されると(S101でN)、ステップS101に戻る。
【0041】
ステップS102で、サポートセンタ300は、サーバ100とリモートメディア接続を行う。(S102)。
【0042】
ステップS103では、サポートセンタ300は、リモートメディア接続が成功したか否かを判断する(S103)。
【0043】
ここで、リモートメディア接続が成功すると、サーバ100はリモートメディア接続が成功した信号をサポートセンタ200に対して発信する。ステップS103の判断は、サポートセンタ200が、サーバ100からリモートメディア接続が成功した信号を受信するか否かで行われる。
【0044】
ステップS103で、リモートメディア接続が成功したと判断されると(S103でY)、ステップS104にすすむ。
【0045】
ステップS103で、リモートメディア接続が成功していないと判断されると(S103でN)、ステップS102にもどる。
【0046】
ステップS104で、サポートセンタ200は、サーバ100とのリモートメディア接続によって、サポートセンタ200の実行結果ファイル202がサポートセンタに登録されたかどうかを判断する(S104)。
【0047】
ステップS104で、実行結果ファイル202が登録されたと判断されると(S104でY)、ステップS105にすすむ。
【0048】
ステップS104で、実行結果ファイル202が登録されていないと判断されると(S104でN)、ステップS104に戻る。
【0049】
ステップS105では、サポートセンタ200は、実行結果ファイル202の内容を参照して実行結果は成功か失敗かを判断する(S105)。
【0050】
ステップS105で、実行結果が成功であると判断されると(S105でY)、ステップS106にすすむ。
【0051】
ステップS105で、実行結果が失敗であると判断されると(S105でN)、ステップS109にすすむ。
【0052】
ステップS106では、サポートセンタ200は、実行結果ファイル202をログ(log)203に格納する(S106)。
【0053】
ステップS107では、サポートセンタ200は、パッケージファイル201と実行結果ファイル202を削除する(S107)。
【0054】
ステップS108では、サポートセンタ300はリモートメディア接続を切断する(S108)。
【0055】
ステップS108のあと、ステップS101に戻る。
【0056】
ステップS109では、サポートセンタ200は、失敗を通知する実行結果ファイル202をログ203に格納する(S109)。
【0057】
ステップS110で、サポートセンタ200は、実行結果ファイル202を削除する(S110)。
【0058】
ステップS110のあと、ステップS104に戻る。
【0059】
以上が、サポートセンタ200の動作である。
【0060】
次に、サーバ100の動作について、
図4を参照して説明する。
図4に示すサーバ100の動作は、サーバ100のエージェントソフトウェア111によって動作が決定されている。
【0061】
はじめに、サーバ100のエージェントソフトウェア111は、ストレージホストインタフェース121がサポートセンタ200に登録されたパッケージファイル201を認識したかどうかを判断する(S201)。
【0062】
ここで、ストレージホストインタフェース121は、リモートメディア接続によって第1のネットワークインタフェース122を介して、サポートセンタ200にパッケージファイルが登録されているか否かを認識することが出来る。
【0063】
ステップS201で、パッケージファイル201を認識したと判断されると(S201でY)、ステップS202にすすむ。
【0064】
ステップS201で、パッケージファイル201を認識していないと判断されると(S201でN)、ステップS201に戻る。
【0065】
ステップS202で、サーバ100のエージェントソフトウェア111は、リモートメディア接続によってパッケージファイル201をサーバのOS部110に展開して、展開された更新ファイル201を実行する(S202)。
【0066】
尚、ステップS202において、エージェントソフトウェア111がパッケージファイル201をOS部110に展開して実行する例について、
図5を参照して後述する。
【0067】
ステップS203で、エージェントソフトウェア111は、更新ファイルの実行結果が成功か失敗かを判断する(S203)。
【0068】
ステップS203で、実行結果が成功であればステップS204にすすむ。
【0069】
ステップS203で、実行結果が失敗であればステップS205にすすむ。
【0070】
ステップS204で、エージェントソフトウェア111は、ストレージホストインタフェース121に、成功を通知する実行結果ファイル202を登録する(S204)。
【0071】
ストレージホストインタフェース121に実行結果ファイル202が登録されると、リモートメディア接続によってサポートセンタ200に実行結果ファイル202が登録される。
【0072】
ステップS204のあと、ステップS201に戻る。
【0073】
ステップS205では、エージェントソフトウェア111は、ストレージホストインタフェース121に、失敗を通知する実行結果ファイル202を登録する(S205)。
【0074】
ストレージホストインタフェース121に実行結果ファイル202が登録されると、リモートメディア接続によってサポートセンタ200に実行結果ファイル202が登録される。
【0075】
ステップS205のあと、ステップS201に戻る。
【0077】
次に、
図4のステップS205で述べた、サーバ100がパッケージファイル201を展開して実行する例について、
図5を参照して説明する。
図5に示すサーバ100の動作は、サーバ100のエージェントソフトウェア111によって動作が決定されている。また、パッケージファイル201は、少なくとも1つのファイルが圧縮された、パッケージファイルであるとするが、必ずしもパッケージ化されている必要は無い。
【0078】
ここで、
図6を参照して、パッケージファイル201の例を示す。
【0079】
図6の更新ファイルは、zipファイルフォーマット等で、パッケージ情報と実行ファイル#1〜#Nが圧縮されている。
【0080】
パッケージ情報には、パッケージの実行対象となる対象装置とOS情報、パッケージをサーバのOS上でいつ実行するかの実行時間情報を含む。また、パッケージ情報には、実行ファイルを実施する前準備として何らかの確認/事前準備が必要な場合の実行ファイルと実行時のオプションを示す事前実行ファイル名が含まれる。更に、パッケージ情報には、実行ファイル本体と実行時のオプションを示した実行ファイル名、およびサーバ100が実行ファイルを実行後に、実行結果の検証/確認や後処理が必要な場合の確認用ファイルを示す確認用ファイル名の情報を含む。
【0081】
図4のステップS202でパッケージファイル201の展開と行を開始すると、ステップS301でサーバ100は、圧縮されたパッケージファイルをエージェントソフトウェア111のワークエリアに展開する(S301)。
【0082】
ステップS302で、サーバ100は、ステップS301で展開したファイルの内のパッケージ情報を確認し、内容が正しいかどうかファイル認証、もしくはチェックサム(Check Sum)等により確認する(S302)。
【0083】
ステップS302で、パッケージ情報が正しいと判断されると(S302でY)、ステップS303にすすむ。
【0084】
ステップS302で、パッケージ情報が正しくないと判断されると(S302でN)、ステップS309にすすむ。
【0085】
ステップS303では、サーバ100は、パッケージが対象とする装置およびOSであるかどうかを判断する(S303)。
【0086】
ステップS303で、パッケージが対象とする装置およびOSであると判断されると(S303でY)、ステップS304にすすむ。
【0087】
ステップS303で、パッケージが対象とする装置およびOSでないと判断されると(S303でN)、ステップS309にすすむ。
【0088】
ステップS304で、サーバ100は、パッケージ情報を確認し、実行時間情報があるかどうかを判断する(S304)。
【0089】
ステップS304で、実行時間情報があると判断されると(S304でY)、ステップS310にすすむ。
【0090】
ステップS304で、実行時間情報がないと判断されると(S304でN)、ステップS305にすすむ。
【0091】
ステップS305では、サーバ100は、パッケージ情報を確認し、パッケージファイルの中に事前実行ファイルが登録されているかどうかを判断する(S305)。
【0092】
ステップS305で、事前実行ファイルがあれば(S305でY)、ステップS311にすすむ。
【0093】
ステップS305で、事前実行ファイルが無ければ(S305でN)、ステップS306にすすむ。
【0094】
ステップS306では、サーバ100は、パッケージ情報を確認し、パッケージファイルの中に実行ファイルが登録されているかどうかを判断する(S306)。
【0095】
ステップS306で、実行ファイルがあれば(S306でY)、ステップS312にすすむ。
【0096】
ステップS306で、実行ファイルが無ければ(S306でN)、ステップS307にすすむ。
【0097】
ステップS307では、サーバ100は、パッケージ情報を確認し、パッケージファイルの中に確認用ファイルが登録されているかどうかを判断する(S307)。
【0098】
ステップS307で、確認用ファイルがあれば(S307でY)、ステップS313にすすむ。
【0099】
ステップS307で、確認用ファイルが無ければ(S307でN)、ステップS308にすすむ。
【0100】
ステップS308では、サーバ100は、パッケージファイルの実行が成功したことを示すフラグ(flag)を立てる(S308)。
【0101】
ステップS309では、サーバ100は、パッケージファイルの実行が失敗したことを示すフラグを立てる(S308)。
【0102】
ステップS310では、サーバ100は、ステップS304で確認した実行時間だけ先に進むことを待機する(S310)。
【0103】
ステップS310のあと、ステップS305にすすむ。
【0104】
ステップS311では、サーバ100は、事前実行ファイルを実行し、実行が成功したかどうかを判断する(S311)。
【0105】
ステップS311で、事前実行ファイルの実行が成功したら(S311でY)、ステップS306にすすむ。
【0106】
ステップS311で、事前実行ファイルの実行が失敗したら(S311でN)、ステップS309にすすむ。
【0107】
ステップS312では、サーバ100は、実行ファイルを実行し、実行が成功したかどうかを判断する(S312)。
【0108】
ステップS312で、実行ファイルの実行が成功したら(S312でY)、ステップS307にすすむ。
【0109】
ステップS312で、実行ファイルの実行が失敗したら(S312でN)、ステップS309にすすむ。
【0110】
ステップS313では、サーバ100は、確認用ファイルを実行し、実行が成功したかどうかを判断する(S313)。
【0111】
ステップS311で、確認用ファイルの実行が成功したら(S313でY)、ステップS308にすすむ。
【0112】
ステップS313で、確認用ファイルの実行が失敗したら(S313でN)、ステップS309にすすむ。
【0113】
以上が、
図4のステップS205で述べた、サーバ100がパッケージファイル201を展開と実行する例である。そして、ステップS308、およびステップS309で立てられたフラグの情報は、
図4のステップS206に引き継がれる。
【0114】
以上の様に、本実施形態のサーバ100は、サーバの更新ファイルを実行する際に、保守作業者がサーバのOSにログインする必要が無い。
【0115】
さらに、本実施形態のサーバ100は、サポートセンタとの通信は第1のネットワークインタフェースのみを使用し、サーバの通常のデータ通信は第2のネットワークインタフェースを使用する。
【0116】
そのため、サーバの管理者がセキュリティ上の不安を感じることなく、プログラムや設定情報をアップデート可能になる。
【0117】
以上、本発明の好適な実施形態を説明したが、上記実施形態に限定されるものではなく、次のように拡張または変形できる。
【0118】
第2の実施形態では、サーバ100とサポートセンタ200とを、VPNにて接続する例を示した。しかし、VPNより安価で導入が簡易な、ゲートウェイ(Gateway)とSIM(Subscriber Identity Module)を利用したMVNO(Mobile Virtual Network Operator)閉域網を使った接続とすることもできる。
【0119】
また、第2の実施形態では、更新ファイル201をBMCが外部記憶媒体にエミュレーション(emulation)して、サーバ100のOS部110が実行する例を示した。しかし、次の様にすることも可能である。
【0120】
即ち、OS部110に専用のドライバ(driver)を準備する。そして、サポートセンタ200から更新ファイル201をPCIバス(Peripheral Component Interconnect bus)上の共有メモリ等に保管する。そして、サーバ100のOS部110は、共有メモリ等に保管したパッケージファイル201を、独自インタフェース経由で実行する様にしてもよい。
【0121】
更に、第2の実施形態では、エージェントソフトウェア111がサポートセンタ300から提供されるパッケージファイル201を実行するが、次の様にしてもよい。
【0122】
即ち、エージェントソフトウェア111に、OSのログ収集機能や、サーバに搭載された各種センサの監視機能も持たせる。サポートセンタ300は、定期的にサーバ100へのリモートメディア(remote media)接続を行う。そして、エージェントソフトウェア111がOSログやセンサの累積情報をサポートセンタ300に送信し、それをAI(artificial intelligence)等を使って解析して、障害予兆診断等に使ってもよい。
【0123】
更に、第2の実施形態において、ストレージホストインタフェースを使ったリモートメディア接続を読取専用(read only)として、実行結果は実行結果ファイルの登録ではなく、簡単なSNMPトラップ等で通知するようにしてもよい。SNMP(Simple Network Management Protocol)、SNMPトラップ(SNMP trap)。
【0124】
また、本発明は、実施形態の機能を実現する情報処理プログラムが、システム或いは装置に直接或いは遠隔から供給される場合にも適用可能である。