(58)【調査した分野】(Int.Cl.,DB名)
前記情報処理装置は、実行するオペレーティングシステムを前記第2のオペレーティングシステムに切り替えた状態で、前記制御信号を前記一の演算装置に出力し、前記一の演算装置に対して再起動を指示し、前記リカバリモードで再起動した前記一の演算装置に前記プログラムの書き替えを指示する、
請求項2記載の情報処理システム。
前記情報処理装置は、前記第2のオペレーティングシステムが記憶された可搬型記録媒体が前記情報処理装置に接続されると、前記可搬型記録媒体から前記第2のオペレーティングシステムを読み込むことで、実行するオペレーティングシステムを前記第2のオペレーティングシステムに切り替える、
請求項1乃至5のいずれか1項に記載の情報処理システム。
前記複数の演算装置および前記情報処理装置のそれぞれは、前記拡張バスにおけるルートコンプレックスとして動作し、前記中継部は、前記各ルートコンプレックスにそれぞれ対応する、前記拡張バスにおけるエンドポイントとして動作するとともに、前記エンドポイント間の通信を中継する、
請求項1乃至6のいずれか1項に記載の情報処理システム。
拡張バスを介した通信を中継する中継部を備える中継装置と、それぞれが前記拡張バスに接続された複数の演算装置と、前記拡張バスに接続された情報処理装置とを有する情報処理システムにおける情報処理方法であって、
前記情報処理装置が、
第1のオペレーティングシステムを実行した状態で、前記拡張バスおよび前記中継部を介して前記複数の演算装置での演算処理を制御し、
実行するオペレーティングシステムを第2のオペレーティングシステムに切り替え、前記複数の演算装置のうち一の演算装置のプログラムを書き替えて前記一の演算装置の動作を異常状態から正常化する、
情報処理方法。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
図1に示す情報処理システムは、情報処理装置10、演算装置20−1〜20−3および中継装置30を有する。なお、演算装置の台数は、2台、あるいは4台以上であれば、特に限定されない。
【0012】
情報処理装置10は、拡張バス1を介して中継装置30に接続されている。また、演算装置20−1〜20−3は、それぞれ拡張バス2−1〜2−3を介して中継装置30に接続されている。中継装置30は、拡張バス1,2−1〜2−3を介して通信を中継する中継部31を備えている。なお、拡張バス1,2−1〜2−3は、例えばPCIeバスである。
【0013】
図1の上側に示すように、情報処理装置10は、中継部31を介した通信により演算装置20−1〜20−3での演算処理を制御する。演算装置20−1〜20−3は、情報処理装置10の制御の下で演算処理を実行する。例えば、演算装置20−1〜20−3は、情報処理装置10の制御の下で、AI推論処理や画像処理を実行する。情報処理装置10による演算装置20−1〜20−3でのこのような演算処理の制御は、情報処理装置10において第1のOS11が実行された状態で行われる。
【0014】
一方、演算装置20−1〜20−3では、それぞれが記憶しているシステムデータを新たなシステムデータで書き替えて、演算装置20−1〜20−3をリカバリできるようになっている。例えば、演算装置20−1で異常が発生した場合、演算装置20−1のシステムデータを書き替えてリカバリすることにより、演算装置20−1の動作を正常化することができる。
【0015】
しかし、本実施の形態においては、演算装置20−1〜20−3のリカバリは、上記の第1のOS11とは別の第2のOS12が動作する装置からのみ、実行させることができる。このため、情報処理装置10で第1のOS11が実行されている状態では、情報処理装置10からの制御によって演算装置20−1〜20−3をリカバリできない。
【0016】
そこで、情報処理装置10は、
図1に下側に示すように、実行するOSを第1のOS11から第2のOS12に切り替える。そして、情報処理装置10は、第2のOS12を実行している状態で、演算装置20−1〜20−3のうちリカバリ対象の演算装置(
図1では演算装置20−1)のシステムデータ21を書き替えて、その演算装置をリカバリする。
【0017】
これにより、情報処理装置10からの制御により演算装置をリカバリできるようになる。演算装置20−1〜20−3での演算処理を制御する情報処理装置10によって、演算装置20−1〜20−3のリカバリを実行できることで、リカバリ手順が単純になり、リカバリ作業を効率化できる。
【0018】
なお、情報処理装置10による演算装置のシステムデータ21の書き替えでは、例えば、書き替えを指示する指示情報や、システムデータ21に対応する更新データが情報処理装置10から演算装置に転送される。このような情報転送は、例えば、情報処理装置10から中継装置30を介して演算装置に到達する信号線を介して行われる。この場合、信号線としては拡張バス1,2−1〜2−3が用いられてもよい。また、他の例として、このような情報転送は、情報処理装置10から中継装置30を通らずに演算装置に到達する信号線を介して行われてもよい。
【0019】
〔第2の実施の形態〕
次に、拡張バスとしてPCIeを用いた情報処理システムについて説明する。
【0020】
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。
図2に示す情報処理システム50は、ホスト装置100、演算装置200−1〜200−4および中継装置300を備える。ホスト装置100および演算装置200−1〜200−4は、中継装置300に接続されている。また、ホスト装置100、演算装置200−1〜200−4および中継装置300は、1つの筐体の内部に搭載されている。なお、
図2の情報処理システム50は、例として4台の演算装置200−1〜200−4を備えているが、演算装置の台数はこれに限定されない。
【0021】
ホスト装置100は、プロセッサ101を備える情報処理装置であり、情報処理システム50全体の制御やGUI(Graphical User Interface)を実現する。ホスト装置100は、PCアーキテクチャをベースとした情報処理装置である。例えば、プロセッサ101としてはインテル社製x86互換プロセッサが搭載され、OSとしてWindows(登録商標)が動作する。
【0022】
演算装置200−1〜200−4は、プロセッサ201−1〜201−4をそれぞれ備える情報処理装置である。演算装置200−1〜200−4は、ホスト装置100の制御の下でAI推論処理や画像処理を協働して実行する。プロセッサ201−1〜201−4としては、例えば、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)といった、特定の処理に適するプロセッサが搭載される。また、OSとしてLinux(登録商標)が動作する。なお、プロセッサ201−1〜201−4は、同じメーカ(ベンダ)から提供されたものであってもよいし、それぞれ異なるメーカから提供されたものであってもよい。
【0023】
中継装置300は、PCIeのブリッジとして動作するブリッジコントローラ310を備える。ホスト装置100および演算装置200−1〜200−4は、ブリッジコントローラ310との間でPCIeに準拠した通信を行い、ブリッジコントローラ310は、ホスト装置100および演算装置200−1〜200−4の間の通信を中継する。
【0024】
PCIeの通信においては、プロセッサ101,201−1〜201−4が、ホスト側として動作するRC(Root Complex)となり、ブリッジコントローラ310が、デバイス側として動作するEP(End Point)となる。そして、ホストとデバイスとの間でデータ転送が行われる。
【0025】
ホスト装置100は、RC側の物理通信ポート(コネクタ)としてRCポート111,112を備えている。演算装置200−1〜200−4は、RC側の物理通信ポートとしてRCポート211−1〜211−4をそれぞれ備えている。一方、中継装置300は、EP側の物理通信ポートとしてEPポート321〜326を備えている。そして、RCポート111,112がEPポート321,322とそれぞれ接続され、RCポート211−1〜211−4がEPポート323〜326とそれぞれ接続される。また、ブリッジコントローラ310は、インターコネクトバス(図示せず)を備えている。EPポート321〜326はこのインターコネクトバスに接続されており、インターコネクトバスを介してEPポート321〜326の間でのデータ転送が可能になっている。
【0026】
前述のように、情報処理システム50では、ホスト装置100および演算装置200−1〜200−4がそれぞれ備えるプロセッサ101,201−1〜201−4が、RCとして動作する。また、ホスト装置100および演算装置200−1〜200−4がそれぞれ接続されているEPポート321〜326が、EPとして動作する。ブリッジコントローラ310は、ホスト装置100および演算装置200−1〜200−4の間のデータ転送を高速化するためにPCIeを用い、デバイスとして動作するEP間でのデータ転送を実現する。
【0027】
また、ブリッジコントローラ310は、EP to EP(End Point to End Point)でデータをトンネリングさせて、複数のRCの間でデータを転送する。すなわち、EP間でのデータのトンネリングにより、1つのRCから他のRCにデータが転送される。RC間の通信は、PCIeのトランザクションが発生したときに論理的に接続される。1つのRCに対して複数の他のRCからのデータ転送が集中しないときは、異なる任意の複数組のRC間で並行してデータ転送できる。
【0028】
演算装置200−1〜200−4では、AI推論処理や画像処理が分散処理され、ホスト装置100は、このような分散処理を制御する。例えば、ホスト装置100は、AI推論処理や画像処理の実行を演算装置200−1〜200−4に指示し、処理結果を演算装置200−1〜200−4から受信する。このような分散処理のための通信は、ブリッジコントローラ310を介したRC間の通信によって行われる。
【0029】
また、上記構成では、RCとして動作するプロセッサ(プロセッサ101,201−1〜201−4)間で通信が行われている状態でも、各プロセッサ上のOSからはブリッジコントローラ310しか見えず、他のプロセッサは見えない。このため、各プロセッサは、接続先の他のプロセッサを直接管理する必要がなく、ブリッジコントローラ310のデバイスドライバで、ブリッジコントローラ310に接続されたプロセッサが管理されればよい。したがって、情報処理システム50では、各プロセッサが通信先となる他のプロセッサを動作させるためのデバイスドライバを、通信先ごとに個別に準備する必要がなく、ブリッジコントローラ310のデバイスドライバで通信処理を行うだけでプロセッサ間の通信を行うことができる。また、このような特徴から、各プロセッサで実行されるOSについての制約はなく、プロセッサごとに異なるOSを実行させることができる。
【0030】
また、RC側のプロセッサは、セキュリティを強化するために、他方のプロセッサとの間で仮想LAN(Local Area Network)回線を確立して通信することができる。この場合、データがカプセル化され、データがトンネリングされて他方のプロセッサに送信される。RC側の装置は、ブリッジコントローラ310との間でPCIeに準拠した通信を行うためのデバイスドライバと、仮想LANを実現するための仮想LANドライバとを使用するだけで、通信先のプロセッサやOSの種類に関係なく、仮想LANを介した通信を行うことができる。
【0031】
なお、以下の説明では、演算装置200−1〜200−4を特に区別せずに示す場合には、「演算装置200」と記載する場合がある。また、プロセッサ201−1〜201−4を特に区別せずに示す場合には、「プロセッサ201」と記載する場合がある。さらに、RCポート211−1〜211−4を特に区別せずに示す場合には、「RCポート211」と記載する場合がある。
【0032】
図3は、情報処理システムのエッジコンピューティングの適用例を示す図である。
図2に示したホスト装置100をエッジサーバとみなして、情報処理システム50をエッジコンピューティングに適用することができる。
【0033】
図3に示すエッジコンピューティングシステムは、情報処理システム50、専用ネットワーク61およびクラウドネットワーク62を備える。情報処理システム50内のホスト装置100は専用ネットワーク61に接続され、専用ネットワーク61はクラウドネットワーク62に接続される。ホスト装置100は、EPの機能を持つ演算装置200−1〜200−4で処理されたデータを集約して、専用ネットワーク61を介してクラウドネットワーク62へ送信する。
【0034】
このような構成によって、クラウド側のリソースを節約してエッジ側での処理が可能になる。これにより、クラウドネットワーク62を介した応答時間が短縮され、リアルタイム性を確保できる。また、ホスト装置100(エッジ)上でデータを処理して結果をクラウドネットワーク62へ送信するので、データの秘匿性を確保できる。さらに、ホスト装置100上でデータを処理して必要なデータのみをクラウドネットワーク62へ送信することで、通信量を削減できる。
【0035】
図4は、情報処理システムの各装置のハードウェア構成例を示す図である。
【0036】
まず、ホスト装置100は、プロセッサ101、RAM(Random Access Memory)102、SSD(Solid State Drive)103、ディスプレイ104、入力装置105、PCIeインタフェース(I/F)106、USB(Universal Serial Bus)インタフェース(I/F)107および拡張インタフェース(I/F)108,109を備える。
【0037】
プロセッサ101は、ホスト装置100全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0038】
RAM102は、ホスト装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOSやアプリケーションのプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0039】
SSD103は、ホスト装置100の補助記憶装置として使用される。HDD103には、OSやアプリケーションのプログラム、各種データが格納される。なお、補助記憶装置としては、HDD(Hard Disk Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0040】
ディスプレイ104は、プロセッサ101からの指示に応じて画像を表示する。ディスプレイ104は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイである。
【0041】
入力装置105は、ユーザからの入力操作を受け付け、入力操作に応じた信号をプロセッサ101に送信する。入力装置105は、例えば、キーボードやポインティングデバイスである。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0042】
なお、ディスプレイ104および入力装置105の少なくとも一方は、ホスト装置100の外部に接続されていてもよい。
【0043】
PCIeインタフェース106は、RCポート111,112を介してPCIeに準拠した通信を行うインタフェース装置である。
【0044】
USBインタフェース107は、USBデバイスとの通信を行うインタフェース装置である。USBデバイスとしては、例えば、USBメモリを接続することができる。また、USBデバイスとしては、可搬型記録媒体の読み取り装置を接続することができる。可搬型記録媒体としては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【0045】
拡張インタフェース108,109は、後述する拡張ポートを介した通信を可能にするインタフェース装置である。拡張インタフェース108は、ホスト装置100のチップセットが備えるGPIO(General-Purpose Input/Output)を介した通信を可能にする。拡張インタフェース109は、I
2C(登録商標)バスを介した通信を可能にする。
【0046】
次に、演算装置200(演算装置200−1〜200−4)のハードウェア構成例について説明する。演算装置200は、プロセッサ201、RAM202、不揮発メモリ203、PCIeインタフェース(I/F)204およびUSBインタフェース(I/F)205を備える。
【0047】
プロセッサ201は、AI推論処理や画像処理等の並列演算処理に適したプロセッサであり、例えば、GPUやFPGA、専用チップなどのアクセラレータとして実現可能である。また、プロセッサ201は、例えば、CPUとGPUとの組み合わせであってもよい。プロセッサ201は、ホスト装置100のプロセッサ101による制御の下で他のプロセッサ201と協働するコプロセッサ(Co-Processor)として動作する。
【0048】
RAM202には、プロセッサ201によって実行されるプログラムの一部や、プログラムの実行時に利用される各種データが一時的に格納される。
【0049】
不揮発メモリ203には、プロセッサ201によって実行されるプログラムや、プログラムの実行時に利用される各種データが格納される。不揮発メモリ203は、例えば、フラッシュメモリとして実現される。
【0050】
PCIeインタフェース204は、RCポート211を介してPCIeに準拠した通信を行うインタフェース装置である。
【0051】
USBインタフェース205は、USBデバイスとの通信を行うインタフェース装置である。後述するように、USBインタフェース205は、演算装置200のリカバリのために不揮発メモリ203上のシステムデータを書き替えるために使用される。
【0052】
次に、中継装置300は、ブリッジコントローラ310および電源制御マイコン330を備える。
【0053】
ブリッジコントローラ310は、プロセッサ311、メモリ312およびインターコネクトバス313を備える。インターコネクトバス313は、EPポート321〜326(
図2参照)の間でデータを転送する。プロセッサ311は、インターコネクトバス313におけるEPポート321〜326の間の接続を切り替えて、EPポート321〜326の間の通信を制御する。メモリ312には、プロセッサ311によって実行されるプログラムや、プログラムの実行時に利用される各種データが格納される。
【0054】
電源制御マイコン330は、情報処理システム50の全体についての電源に関する制御を行う。例えば、電源制御マイコン330は、ホスト装置100からの指示に応じて、演算装置200−1〜200−4の電源のオン、オフを個別に制御することができる。
【0055】
次に、
図5を用いて、情報処理システム50における装置間の主な信号線の接続関係について説明する。
図5は、情報処理システムにおける装置間の信号線の接続関係を示す図である。
【0056】
ホスト装置100は、物理通信ポートとして、RCポート111,112、拡張ポート113,114およびUSBポート115,116を備えている。演算装置200−1は、物理通信ポートとして、RCポート211(実際にはRCポート211−1)、拡張ポート212,213およびUSBポート214を備えている。なお、図示しないが、演算装置200−2〜200−4も、RCポート211、拡張ポート212,213およびUSBポート214と同様の物理通信ポートを備えている。
【0057】
前述のように、ホスト装置100のRCポート111,112は、中継装置300のEPポート321,322をそれぞれ介して、中継装置300のブリッジコントローラ310と接続されている。また、演算装置200−1のRCポート211は、中継装置300のEPポート323を介して、中継装置300のブリッジコントローラ310と接続されている。RCポート111,112とRCポート211との間では、ブリッジコントローラ310を介してPCIeに準拠した通信が行われる。また、RCポート111,112とRCポート211との間では、仮想LANを確立して通信することもできる。
【0058】
ホスト装置100の拡張ポート113は、拡張インタフェース108の物理通信ポートであり、ホスト装置100のチップセットが備えるGPIOを介して通信するために用いられる。拡張ポート113には、リカバリ信号線RCVおよびリセット信号線RSTが接続されている。リカバリ信号線RCVおよびリセット信号線RSTは、中継装置300を介して演算装置200−1の拡張ポート212に接続されている。演算装置200−1はRCVフラグ215というフラグ情報を保持しており、リカバリ信号線RCVおよびリセット信号線RSTによって、拡張ポート212を介してRCVフラグ215を設定できるようになっている。また、リセット信号線RSTには、演算装置200を再起動するための指示信号が伝送される。
【0059】
拡張ポート212およびRCVフラグ215は、演算装置200−1だけでなく演算装置202−2〜200−4にも設けられている。リカバリ信号線RCVおよびリセット信号線RSTは、中継装置300を介して演算装置200−1〜200−4の各拡張ポート212に接続されている。リカバリ信号線RCVによって、各演算装置200−1〜200−4の拡張ポート212を介して各演算装置200−1〜200−4のRCVフラグ215を設定できるようになっている。また、リセット信号線RSTによって、各演算装置200−1〜200−4の拡張ポート212を介して各演算装置200−1〜200−4のうち任意の演算装置の再起動を指示できるようになっている。
【0060】
なお、リカバリ信号線RCV、リセット信号線RSTおよびRCVフラグ215の詳細については後述する。
【0061】
ホスト装置100の拡張ポート114は、拡張インタフェース109の物理通信ポートであり、電源制御信号線PWR_hを介して電源制御マイコン330に接続されている。電源制御信号線PWR_hは、例えば、I
2Cバスとして実現される。ホスト装置100は、拡張ポート114から電源制御信号を出力することで、電源制御マイコン330に対して演算装置200−1〜200−4のうち任意の演算装置についての電源のオン、オフを指示できるようになっている。
【0062】
一方、演算装置200−1の拡張ポート213は、電源制御信号線PWR_cを介して電源制御マイコン330に接続されている。電源制御信号線PWR_cも、例えば、I
2Cバスとして実現される。演算装置200−1は、電源制御マイコン330から送信される電源制御信号を拡張ポート213を介して受信することで、電源のオフからオン、オンからオフの状態に遷移する。電源制御マイコン330からの電源制御信号は、演算装置200−2〜200−4の各拡張ポート213にも送信可能になっており、電源制御信号によって演算装置200−2〜200−4のそれぞれの電源状態が制御される。
【0063】
なお、リセット信号線RSTはリカバリ対象の演算装置を再起動するための信号線であるが、演算装置の再起動は拡張ポート114からの電源制御信号を用いて指示することもできる。拡張ポート114からの電源制御信号を用いて演算装置の再起動を指示する場合には、リセット信号線RSTは不要となる。
【0064】
ところで、演算装置200で動作の異常が発生した場合に、演算装置200のリカバリを実行したいという要求がある。リカバリの方法としては、例えば、演算装置200のシステムデータのイメージ(システムイメージ)を書き替える方法がある。
【0065】
一方、演算装置200のプロセッサ201や、各プロセッサ201が搭載されるモジュールとしては、様々なメーカの様々な機種が搭載され得る。そして、リカバリの方法は、プロセッサ201やモジュールのメーカや機種によって異なる。本実施の形態では一例として、次のような手順でリカバリを行うように規定されたモジュールを想定する。
【0066】
(手順1)モジュール上に設けられたスイッチを操作することで、モジュールをリカバリモードに設定する。
【0067】
(手順2)リカバリモードに設定した状態で、モジュールのUSB端子に特定の保守用OS(例えば、LinuxをベースとするOS)が動作する保守用コンピュータを接続し、保守用コンピュータからシステムイメージを転送してモジュール内のシステムイメージを書き替える。
【0068】
まず、手順1に関して考察する。情報処理システム50において上記の手順1を実行するためには、リカバリモードに設定するためのスイッチを保守作業者が操作できるような構造にしておく必要がある。例えば、情報処理システム50の筐体における演算装置の近傍に開口部を形成して、開口部からスイッチを操作できるようにしておく方法が考えられる。しかし、上記のように、演算装置200には様々なメーカや機種のプロセッサ201やモジュールが搭載され得る。このため、情報処理システム50の筐体に、上記開口部のような、特定のメーカや機種のプロセッサやモジュールのための専用の構造を設けることは難しい。一方で、演算装置をリカバリするたびに、情報処理システム50の筐体を外し、上記のスイッチを操作する場合には、作業に手間がかかり、効率が悪い。
【0069】
リカバリの作業の手間はできるだけ少ないことが望ましく、この観点ではそもそも、作業者がモジュールのスイッチを操作するという作業も、煩雑で非効率であると言える。情報処理システム50では、各演算装置200はホスト装置100の制御の下で動作するので、リカバリの作業効率を高めるためには、できるだけホスト装置100からの制御によって作業を進行できることが望ましい。
【0070】
そこで、
図5に示すように本実施の形態では、ホスト装置100から演算装置200をリカバリモードに設定するための信号線として、リカバリ信号線RCVおよびリセット信号線RSTが追加される。リカバリ信号線RCVは、演算装置200のRCVフラグ215を設定するための信号線であり、リカバリ信号線RCVの信号レベルがハイレベルの場合にRCVフラグ215が「1」に設定され、ローレベルの場合に「0」に設定される。リセット信号線RSTは、演算装置200を再起動する(電源をオフにし、オンにする)ための信号線であり、リセット信号線RSTがローレベルから一定期間ハイレベルに設定されることで、演算装置200の再起動が指示される。
【0071】
RCVフラグ215は、演算装置200が起動したときにプロセッサ201によって参照される。演算装置200が起動したときにRCVフラグ215が「0」の場合、プロセッサ201は通常動作モードでの起動処理を実行し、これにより演算装置200は通常動作モードで起動する。一方、演算装置200が起動したときにRCVフラグ215が「1」である場合、プロセッサ201はリカバリモードでの起動処理を実行し、これにより演算装置200はリカバリモードで起動する。
【0072】
このような構成により、保守作業者がホスト装置100に対する入力を行うことで、ホスト装置100の制御によって演算装置200−1〜200−4をリカバリモードに遷移させることができる。より具体的には、ホスト装置100の制御により、リカバリ信号線RCVがハイレベルに設定された後、リセット信号線RSTがハイレベルに設定されてリカバリ対象の演算装置200が再起動されることで、その演算装置200がリカバリモードで起動する。これにより、演算装置200をリカバリモードに設定する作業の効率を高めることができる。
【0073】
なお、ホスト装置100は、リカバリ対象の演算装置200の再起動を、拡張ポート114から電源制御信号線PWR_hを介して電源制御マイコン330に出力される電源制御信号を用いて指示することもできる。この場合、リセット信号線RSTは不要となる。また、演算装置200の再起動を指示する方法としては、次のような方法が用いられてもよい。中継装置300には、電源制御マイコン330が通信するための別の拡張ポート(例えば、RS232Cポート。RS:Recommended Standard)が設けられている。そして、ホスト装置100のUSBポート115(またはUSBポート116)とこの拡張ポートとが、UART(Universal Asynchronous Receiver/Transmitter)を備えたケーブルによって接続され、このケーブルを介して任意の演算装置200を再起動させる指示信号が送信される。
【0074】
次に、上記の手順2に関して考察する。本実施の形態では、演算装置200に対するシステムイメージの転送作業に関しても、演算装置200のUSB端子に保守用コンピュータを接続するのではなく、ホスト装置100に対する操作によって実行できるようにする。これによって、リカバリ作業を効率化する。
【0075】
ただし、前述のように、情報処理システム50では、ホスト装置100および演算装置200−1〜200−4のそれぞれにおいて実行されるOSに制約はない。そのため、システムイメージを転送するために用いられる保守用OSは、ホスト装置100で通常動作するOS(メインOS)とは異なる場合がある。
【0076】
そこで、本実施の形態では、演算装置200のリカバリ作業の際には、ホスト装置100で動作するOSをメインOSから保守用OSに切り替える。例えば、ホスト装置100は、リカバリ信号線RCVをハイレベルに設定し、リカバリ対象の演算装置200の再起動を指示する処理を、メインOS上のアプリケーションによって実行する。その後、ホスト装置100は、OSを保守用OSに切り替え、保守用OS上のアプリケーション(インストーラ)によってシステムイメージを演算装置200に転送する。これにより、ホスト装置100で通常動作するメインOSが保守用OSとは異なる場合でも、ホスト装置100からの制御によって演算装置200に対してシステムイメージを転送して演算装置200のシステムデータを書き替えることができる。したがって、リカバリ作業を効率化できる。
【0077】
以上の一連の処理により、情報処理システム50の筐体に特定のプロセッサ201やモジュールの専用の構造を設けることなく、ホスト装置100からの制御によって演算装置200のリカバリを実行できるようになる。その結果、リカバリ作業の効率を高めることができる。また、演算装置200の保守性を高めることができる。
【0078】
図6は、装置間を接続するPCIeコネクタの構成例を示す図である。
【0079】
ホスト装置100は、PCIeコネクタ141を備える。一方、中継装置300は、PCIeコネクタ341を備える。そして、PCIeコネクタ141とPCIeコネクタ341とが接続される。例えば、PCIeコネクタ141とPCIeコネクタ341とが直接的に接続される。あるいは、PCIeコネクタ141とPCIeコネクタ341とがPCIeケーブルを介して接続されてもよい。
【0080】
PCIeコネクタ141の一部の領域がRCポート111として使用され、PCIeコネクタ141の他の一部の領域がRCポート112として使用され、PCIeコネクタ141のさらに他の一部の領域が拡張ポート113として使用される。また、PCIeコネクタ341の一部の領域がEPポート321として使用され、PCIeコネクタ341の他の一部の領域がEPポート322として使用され、PCIeコネクタ341のさらに他の一部の領域が拡張ポート331として使用される。
【0081】
PCIeコネクタ141とPCIeコネクタ341とが接続されたとき、PCIeコネクタ141におけるRCポート111の領域と、PCIeコネクタ341におけるEPポート321の領域とに含まれる信号線により、PCIeに準拠した通信が行われる。また、PCIeコネクタ141におけるRCポート112の領域と、PCIeコネクタ341におけるEPポート322の領域とに含まれる信号線により、PCIeに準拠した通信が行われる。さらに、PCIeコネクタ141における拡張ポート113の領域と、PCIeコネクタ341における拡張ポート331の領域とに含まれる信号線が、リカバリ信号線RCVおよびリセット信号線RSTとして使用される。
【0082】
また、中継装置300は、PCIeコネクタ342を備える。一方、演算装置200は、PCIeコネクタ241を備える。そして、PCIeコネクタ342とPCIeコネクタ241とが接続される。例えば、PCIeコネクタ342とPCIeコネクタ241とが直接的に接続される。あるいは、PCIeコネクタ342とPCIeコネクタ241とがPCIeケーブルを介して接続されてもよい。
【0083】
PCIeコネクタ342は、接続される演算装置200のそれぞれ(演算装置200−1〜200−4)について個別に設けられる。また、PCIeコネクタ241は、演算装置200のそれぞれ(演算装置200−1〜200−4)に設けられる。そして、ある演算装置200のPCIeコネクタ241と、その演算装置200に対応するPCIeコネクタ342とが接続される。
【0084】
PCIeコネクタ342とPCIeコネクタ241とが接続されたとき、PCIeコネクタ342におけるEPポート323の領域と、PCIeコネクタ241におけるRCポート211の領域とに含まれる信号線により、PCIeに準拠した通信が行われる。また、PCIeコネクタ342における拡張ポート332の領域と、PCIeコネクタ241における拡張ポート242の領域とに含まれる信号線が、リカバリ信号線RCVおよびリセット信号線RSTとして使用される。
【0085】
このように、ホスト装置100および演算装置200と中継装置300とを接続するためのPCIeコネクタの信号線のうち、余剰の信号線がリカバリ信号線RCVおよびリセット信号線RSTとして使用される。これにより、ホスト装置100および演算装置200と中継装置300との間に、演算装置200をリカバリモードに設定するための信号線を新たに設ける必要がなくなる。したがって、基本的な装置構成を変更せずに低コストで、ホスト装置100からの制御により演算装置200をリカバリモードに設定できるようになる。
【0086】
なお、前述のように、リカバリ対象の演算装置200の再起動が拡張ポート114から電源制御マイコン330に出力される電源制御信号を用いて指示される場合、リセット信号線RSTは設けられなくてもよい。この場合、ホスト装置100の拡張ポート114から電源制御マイコン330に電源制御信号を送信するための電源制御信号線PWR_hとして、拡張ポート113,331の領域に含まれる信号線が用いられてもよい。この場合には、電源制御マイコン330から演算装置200に電源制御信号を送信するための電源制御信号線PWR_cとして、拡張ポート332,242に含まれる信号線が用いられてもよい。
【0087】
図7は、情報処理システムが備える処理機能の構成例を示す図である。
【0088】
まず、ホスト装置100は、モード制御部151およびリカバリ制御部152を備える。また、ホスト装置100のSSD103には、メインOS上で動作するモード設定アプリケーション153が格納されている。さらに、ホスト装置100のUSBポート115には、USBメモリ160が接続される。USBメモリ160には、保守用OS161、リカバリアプリケーション162、インストーラ163およびシステムイメージ164が格納されている。システムイメージ164には、例えば、演算装置200で実行されるOSや、そのOS上で動作する各種のアプリケーションが含まれる。
【0089】
モード制御部151の処理は、プロセッサ101がモード設定アプリケーション153を実行することで実現される。モード制御部151は、演算装置200のリカバリ作業が開始されると、リカバリ信号線RCVをローレベルからハイレベルに設定変更し、その後に演算装置200の再起動を指示する。これにより、リカバリ対象の演算装置200がリカバリモードで再起動する。演算装置200の再起動の指示は、リセット信号線RSTをローレベルからハイレベルに設定変更するか、あるいは、拡張ポート114から電源制御部351に対して、演算装置200の再起動を指示する電源制御信号を送信することで行われる。
【0090】
リカバリ制御部152の処理は、ホスト装置100で保守用OS161が動作している環境において、プロセッサ101がリカバリアプリケーション162を実行することで実現される。モード制御部151により上記のようにリカバリ対象の演算装置200の再起動が指示された後、USBメモリ160がホスト装置100のUSBポート115に接続され、ホスト装置100が再起動される。ホスト装置100のプロセッサ101は再起動の際に、USBメモリ160内の保守用OS161を読み込んで実行する。これにより保守用OS161が起動すると、プロセッサ101はさらにリカバリアプリケーション162を読み込んで実行する。これにより、リカバリ制御部152が起動する。
【0091】
また、この時点で、ホスト装置100のUSBポート116とリカバリ対象の演算装置200のUSBポート214とが、USBケーブルによって接続される。リカバリ制御部152は、USBメモリ160からインストーラ163を読み込み、USBケーブルを介して演算装置200に転送する。インストーラ163は、システムイメージ164をインストールするためのプログラムであり、演算装置200でインストーラ163が実行されることで、システムイメージ164のインストールが可能になる。
【0092】
次に、リカバリ制御部152は、USBメモリ160からシステムイメージ164を読み込み、USBケーブルを介して演算装置200に転送する。システムイメージ164は、演算装置200の不揮発メモリ203に記憶されたシステムデータ全体を更新するためのデータイメージである。転送されたシステムイメージ164は演算装置200にインストールされ、不揮発メモリ203のシステムデータがシステムイメージ164によって書き替えられる。これにより、演算装置200のリカバリが完了する。
【0093】
中継装置300は、電源制御部351を備える。電源制御部351の処理は、電源制御マイコン330によって実現される。電源制御部351は、モード制御部151から電源制御信号線PWR_hを介して受信した電源制御信号に基づく指示に応じて、電源制御信号線PWR_cを介し、指定された演算装置200の電源をオン、オフする。
【0094】
演算装置200は、記憶部251、モード設定部252、ロード処理部253およびリカバリ処理部254を備える。
【0095】
記憶部251は、例えば、不揮発メモリ203の記憶領域によって実現される。記憶部251には、前述のRCVフラグ215が記憶される。
【0096】
モード設定部252の処理は、不揮発メモリ203にあらかじめ記憶されたアプリケーションによって実現される。モード設定部252は、リカバリ信号線RCVがローレベルからハイレベルに遷移すると、RCVフラグ215を「0」から「1」に設定変更する。また、モード設定部252は、リセット信号線RSTの信号レベルがローレベルからハイレベルに遷移すると、演算装置200の電源をオフにした後オンにして、再起動させる。また、モード設定部252は、電源制御部351からの電源制御信号に基づいて、演算装置200を再起動させることもできる。
【0097】
ロード処理部253の処理は、不揮発メモリ203にあらかじめ記憶されたプログラム(例えば、BIOS:Basic Input/Output System)によって実現される。ロード処理部253は、演算装置200が起動したとき、記憶部251のRCVフラグ215が「1」の場合には、演算装置200をリカバリモードで起動させる。そして、ロード処理部253は、ホスト装置100と接続されたUSBケーブルを介して、リカバリ制御部152からインストーラ163を読み込み、インストーラ163をプロセッサ201に実行させる。インストーラ163の実行により、リカバリ処理部254が起動する。
【0098】
リカバリ処理部254は、ホスト装置100と接続されたUSBケーブルを介して、リカバリ制御部152からシステムイメージ164を読み込む。リカバリ処理部254は、読み込んだシステムイメージ164によって記憶部251内のシステムデータを更新することで、演算装置200をリカバリする。
【0099】
図8、
図9は、演算装置のリカバリ処理手順の概略を示す図である。
【0100】
[状態ST1]ホスト装置100ではメインOSが動作し、メインOS上で動作する所定のアプリケーションにより、演算装置200におけるAI推論処理や画像処理の分散処理が制御される。例えば、ホスト装置100は、演算装置200に演算処理の実行を指示し、演算装置200から処理結果を受信する。また、ホスト装置100は、1つの演算装置200での処理結果を他の演算装置200に入力させてさらに演算処理を実行させ、その処理結果を受信することもできる。このような分散処理の制御に係る通信は、中継装置300のブリッジコントローラ310を介して行われる。
【0101】
[状態ST2]演算装置200のリカバリを開始する場合、ホスト装置100では、メインOS上で動作するモード設定アプリケーション153が実行される。そして、モード設定アプリケーション153の処理によりリカバリ信号線RCVがローレベルからハイレベルに設定される。これにより、演算装置200のRCVフラグ215が「0」から「1」に更新される。さらに、モード設定アプリケーション153の処理によりリセット信号線RSTがローレベルからハイレベルに設定されて、演算装置200の再起動が指示される。この指示により、演算装置200の電源がオフにされた後オンにされる。演算装置200は、RCVフラグ215が「1」であることから、リカバリモードで起動する。
【0102】
なお、演算装置200の再起動は、ホスト装置100の拡張ポート114から電源制御マイコン330に送信される電源制御信号を用いて指示されてもよい。この場合、演算装置200−1〜200−4のうちリカバリ対象の演算装置だけを再起動させることができる。
【0103】
[状態ST3]次に、ホスト装置100のUSBポート115にUSBメモリ160が接続され、ホスト装置100が再起動される。このとき、ホスト装置100は、USBメモリ160内の保守用OS161によって起動する。すなわち、ホスト装置100のOSがメインOSから保守用OS161に切り替えられる。さらに、ホスト装置100は、USBメモリ160内のリカバリアプリケーション162を実行する。
【0104】
[状態ST4]次に、ホスト装置100のUSBポート116と演算装置200のUSBポート214とがUSBケーブル170によって接続される。演算装置200のリカバリのための保守用OS161が動作するホスト装置100が、リカバリモードの演算装置200にUSB接続されることで、ホスト装置100から演算装置200のリカバリを制御できる状態となる。
【0105】
この状態で、USBメモリ160内のインストーラ163がホスト装置100からUSBケーブル170を介して演算装置200に転送され、インストーラ163が演算装置200で実行される。さらに、USBメモリ160内のシステムイメージ164がホスト装置100からUSBケーブル170を介して演算装置200に転送され、演算装置200内のシステムデータがシステムイメージ164によって書き替えられる。
【0106】
図示しないが、この後、ホスト装置100によりリカバリ信号線RCVがローレベルに設定変更され、演算装置200の再起動が指示される。ホスト装置100は、RCVフラグ215が「0」であることから通常モードで起動する。あるいは、演算装置200は、リカバリモードで起動してから一定時間後に、自動的に通常モードで再起動してもよい。ホスト装置100は、書き替えられたシステムイメージ164を用いて、通常モードで正常に起動できる。
【0107】
以上の手順によれば、追加されたリカバリ信号線RCVを用いてRCVフラグ215が「1」に設定され、さらに、追加されたリセット信号線RST、または電源制御マイコン330に対する電源制御信号を用いて、演算装置200の再起動が指示される。これにより、ホスト装置100からの指示によって演算装置200をリカバリモードに遷移させることができる。したがって、演算装置200について規定された前述の手順1を、ホスト装置100の制御によって代替的に実行できる。
【0108】
さらに、USBメモリ160を用いることによりホスト装置100で保守用OS161を動作させ、演算装置200のUSBポート214にホスト装置100を接続することで、演算装置200内のシステムデータの書き替えをホスト装置100から実行できるようになる。すなわち、演算装置200について規定された前述の手順2を、ホスト装置100の制御によって代替的に実行できる。
【0109】
このようにして、ホスト装置100からの制御により、演算装置200についてのリカバリ手順の規定にしたがってリカバリを実行できる。このため、演算装置200をリカバリする作業の効率を高めることができる。例えば、スイッチ操作により演算装置200をリカバリモードに設定するために情報処理システム50の筐体を外す作業が不要になり、演算装置200をリカバリモードに設定する作業の効率を高めることができる。また、専用の保守用コンピュータを演算装置200に接続して操作する代わりに、ホスト装置100で動作させるOSを保守用OS161に切り替えることで、ホスト装置100を用いて演算装置200にシステムイメージをインストールすることができる。その結果、インストール作業の効率を高めることができる。
【0110】
また、上記手順によれば、ホスト装置100でメインOSが動作した状態のまま、演算装置200がリカバリモードで起動するまでの処理が実行される。このため、管理者は、ホスト装置100を通常通り運用している状態から、自然な流れでリカバリ作業を開始することができる。
【0111】
また、演算装置200をリカバリモードに設定するために演算装置200のモジュールに設けられたスイッチを操作する必要がなくなる。これにより、情報処理システム50の筐体に、そのスイッチを操作するための専用の開口部を設ける必要がなくなる。その結果、情報処理システム50の開発コストを抑制でき、筐体の設計の自由度を高めることもできる。
【0112】
なお、インストーラ163やシステムイメージ164を転送するための(USBケーブル170に相当する)信号線は、情報処理システム50にあらかじめ設けられていてもよい。例えば、ホスト装置100の拡張インタフェース108の物理ポート(GPIO)から中継装置300を介して各演算装置200のUSBポート214に接続する信号線が、あらかじめ設けられていてもよい。
【0113】
図10は、演算装置のリカバリ処理手順の例を示すシーケンス図である。
図10では例として、演算装置200−1のリカバリが実行されるものとする。
【0114】
[ステップS11]ホスト装置100でメインOSが動作している状態において、ホスト装置100に対する管理者の操作に応じてモード設定アプリケーション153の実行が開始される。これにより、ホスト装置100においてモード制御部151が起動する。
【0115】
[ステップS12]モード制御部151は、リカバリ信号線RCVをローレベルからハイレベルにする。
【0116】
[ステップS13]演算装置200−1のモード設定部252は、リカバリ信号線RCVがハイレベルになったことを検知すると、RCVフラグ215を「0」から「1」に更新する。
【0117】
[ステップS14]モード制御部151は、演算装置200−1の再起動を指示する。例えば、モード制御部151は、リセット信号線RSTをローレベルからハイレベルにする。あるいは、モード制御部151は、演算装置200−1の再起動を指示する電源制御信号を、電源制御信号線PWR−hを介して中継装置300の電源制御部351に送信する。後者の場合、電源制御部351は、再起動を指示する電源制御信号を、演算装置200−1に接続されている電源制御信号線PWR−cを介して送信する。
【0118】
[ステップS15]演算装置200−1は、電源をオフにし、さらにオンにすることで再起動する。再起動の際、演算装置200−1のロード処理部253は、RCVフラグ215が「1」であることから、演算装置200−1をリカバリモードで起動する。
【0119】
[ステップS16]管理者の操作により、ホスト装置100のUSBポート115にUSBメモリ160が接続され、ホスト装置100の再起動が指示される。
【0120】
[ステップS17]ホスト装置100は、USBメモリ160から読み込んだ保守用OS161によって再起動する。例えば、ホスト装置100の起動時に入力装置105の所定のキーが押下されることで、ディスプレイ104にブート方法の選択画面が表示される。そして、管理者の操作によりUSBブートが選択されることで、USBメモリ160内の保守用OS161によるブート処理が開始される。これによってOSの切り替えが行われる。
【0121】
さらに、管理者の操作により、または自動的に、USBメモリ160内のリカバリアプリケーション162の実行が開始される。これにより、ホスト装置100においてリカバリ制御部152が起動する。
【0122】
[ステップS18]管理者の操作により、ホスト装置100のUSBポート116と演算装置200のUSBポート214とがUSBケーブル170によって接続される。
【0123】
[ステップS19]リカバリ制御部152は、USBメモリ160内のインストーラ163を読み込み、USBケーブル170を介して演算装置200−1に転送する。
【0124】
[ステップS20]演算装置200−1のロード処理部253は、転送されたインストーラ163をロードし、インストーラ163の実行を開始する。これにより、演算装置200−1においてリカバリ処理部254が起動する。
【0125】
[ステップS21]リカバリ制御部152は、USBメモリ160からシステムイメージ164を読み込み、USBケーブル170を介して演算装置200−1に転送する。
【0126】
[ステップS22]演算装置200−1のリカバリ処理部254は、転送されたシステムイメージ164を受信し、不揮発メモリ203に記憶されたシステムデータを受信したシステムイメージ164によって書き替える。これにより、演算装置200−1のリカバリが行われる。
【0127】
[ステップS23]演算装置200−1が再起動する。この再起動は、例えば、リカバリ制御部152からの指示に応じて行われる。あるいは、演算装置200−1は、リカバリモードで起動してから一定時間後に自動的に再起動してもよい。演算装置200−1は、システムイメージ164によって書き替えられたシステムデータによって、通常モードで正常に起動する。
【0128】
[ステップS24]管理者の操作により、ホスト装置100の電源がオフにされる。あるいは、リカバリ制御部152が、システムイメージ164の書き替えが完了したことを検知すると、ホスト装置100の電源をオフにしてもよい。また、ホスト装置100からUSBメモリ160が取り外され、ホスト装置100と演算装置200−1とを接続していたUSBケーブル170も取り外される。そして、ホスト装置100の電源がオンにされる。これにより、ホスト装置100はメインOSによって起動する。
【0129】
〔第2の実施の形態の変形例〕
上記の第2の実施の形態では、保守用OS161、リカバリアプリケーション162、インストーラ163およびシステムイメージ164が、外部のUSBメモリ160に格納されていた。しかし、これらのデータをホスト装置100内にあらかじめ格納しておくこともできる。以下、
図11を用いて、第2の実施の形態をこのように変形した場合の構成について説明する。
【0130】
図11は、第2の実施の形態の変形例における処理機能の構成例を示す図である。なお、
図11では
図7と同様の構成要素には同じ符号を付して示している。
【0131】
図11に示す情報処理システム50aでは、ホスト装置100が備えるSSD103の記憶領域が、パーテーションPT1,PT2に分割されている。パーテーションPT1には、メインOS154およびモード設定アプリケーション153があらかじめ格納される。パーテーションPT1内のモード設定アプリケーション153が実行されることで、モード制御部151が起動する。なお、図示しないが、パーテーションPT1には、演算装置200での分散処理を制御するためのアプリケーション等、メインOS154上で動作する各種のアプリケーションも格納される。
【0132】
一方、パーテーションPT2には、保守用OS161、リカバリアプリケーション162、インストーラ163およびシステムイメージ164があらかじめ格納される。OSの切り替え(
図10のステップS16,S17に対応)は、例えば次のようにして行われる。管理者の操作によりホスト装置100が再起動されると、その起動時に入力装置105の所定のキーが押下されることで、ディスプレイ104にOSの選択画面が表示される。そして、管理者の操作により保守用OS161が選択されることで、パーテーションPT2内の保守用OS161によるブート処理が開始される。
【0133】
この後、パーテーションPT2内のリカバリアプリケーション162が実行されることで、リカバリ制御部152が起動する。そして、リカバリ制御部152の処理によってパーテーションPT2内のインストーラ163およびシステムイメージ164が演算装置200に転送される。
【0134】
以上の変形例によれば、USBメモリ160をホスト装置100に接続する手間がなくなるので、第2の実施の形態よりさらにリカバリ作業効率が高まる。一方、USBメモリ160が用いられる第2の実施の形態には、リカバリ用のデータがホスト装置100の記憶領域を圧迫しなくなる、最新版の保守用OS161やシステムイメージ164を演算装置200にインストールできる、といったメリットがある。
【0135】
〔第3の実施の形態〕
上記の第2の実施の形態では、リカバリ対象の演算装置200をリカバリモードに遷移させるホスト装置100の処理が、メインOS上のアプリケーションによって実行されていた。しかし、この処理を保守用OS161上のアプリケーションによって実行することもできる。以下、第3の実施の形態として、第2の実施の形態の処理をこのように変形した場合について説明する。
【0136】
図12は、第3の実施の形態に係る情報処理システムが備える処理機能の構成例を示す図である。なお、
図12では
図7と同様の構成要素には同じ符号を付して示している。
【0137】
図12に示す情報処理システム50bでは、メインOS上で実行されるモード設定アプリケーション153の代わりに、保守用OS161上で実行されるモード設定アプリケーション153aが使用される。モード設定アプリケーション153aは、保守用OS161等とともにUSBメモリ160に格納される。そして、ホスト装置100のモード制御部151の処理は、モード設定アプリケーション153aによって実現される。
【0138】
図13、
図14は、第3の実施の形態における演算装置のリカバリ処理手順の概略を示す図である。
【0139】
[状態ST11]
図8の状態ST1と同様、ホスト装置100では、メインOS上で動作する所定のアプリケーションにより、演算装置200におけるAI推論処理や画像処理の分散処理が制御される。
【0140】
[状態ST12]演算装置200のリカバリを開始する場合、ホスト装置100のUSBポート115にUSBメモリ160が接続され、ホスト装置100が再起動される。このとき、ホスト装置100は、USBメモリ160内の保守用OS161によって起動する。すなわち、ホスト装置100のOSがメインOSから保守用OS161に切り替えられる。
【0141】
[状態ST13]次に、ホスト装置100では、USBメモリ160内のモード設定アプリケーション153aが実行される。そして、モード設定アプリケーション153aの処理によりリカバリ信号線RCVがローレベルからハイレベルに設定される。これにより、演算装置200のRCVフラグ215が「0」から「1」に更新される。さらに、モード設定アプリケーション153aの処理によりリセット信号線RSTがローレベルからハイレベルに設定されて、演算装置200の再起動が指示される。この指示により、演算装置200の電源がオフにされた後オンにされる。演算装置200は、RCVフラグ215が「1」であることから、リカバリモードで起動する。
【0142】
なお、演算装置200の再起動は、ホスト装置100の拡張ポート114から電源制御マイコン330に送信される電源制御信号を用いて指示されてもよい。この場合、演算装置200−1〜200−4のうちリカバリ対象の演算装置だけを再起動させることができる。
【0143】
[状態ST15]次に、ホスト装置100のUSBポート116と演算装置200のUSBポート214とがUSBケーブル170によって接続される。また、ホスト装置100では、USBメモリ160内のリカバリアプリケーション162が実行される。そして、リカバリアプリケーション162の処理によりUSBメモリ160内のインストーラ163がホスト装置100からUSBケーブル170を介して演算装置200に転送され、インストーラ163が演算装置200で実行される。さらに、USBメモリ160内のシステムイメージ164がホスト装置100からUSBケーブル170を介して演算装置200に転送され、演算装置200内のシステムデータがシステムイメージ164によって書き替えられる。
【0144】
図15は、第3の実施の形態における演算装置のリカバリ処理手順の例を示すシーケンス図である。
図15では例として、演算装置200−1のリカバリが実行されるものとする。
【0145】
[ステップS31]ホスト装置100でメインOSが動作している状態において、管理者の操作により、ホスト装置100のUSBポート115にUSBメモリ160が接続され、ホスト装置100の再起動が指示される。
【0146】
[ステップS32]ホスト装置100は、
図10のステップS17と同様の手順で、USBメモリ160から読み込んだ保守用OS161によって再起動する。さらに、管理者の操作により、または自動的に、USBメモリ160内のモード設定アプリケーション153aの実行が開始される。これにより、ホスト装置100においてモード制御部151が起動する。
【0147】
[ステップS33]モード制御部151は、リカバリ信号線RCVをローレベルからハイレベルにする。
【0148】
[ステップS34]演算装置200−1のモード設定部252は、リカバリ信号線RCVがハイレベルになったことを検知すると、RCVフラグ215を「0」から「1」に更新する。
【0149】
[ステップS35]モード制御部151は、
図10のステップS14と同様の手順で、演算装置200−1の再起動を指示する。
【0150】
[ステップS36]演算装置200−1は、電源をオフにし、さらにオンにすることで再起動する。再起動の際、演算装置200−1のロード処理部253は、RCVフラグ215が「1」であることから、演算装置200−1をリカバリモードで起動する。
【0151】
[ステップS37]管理者の操作により、ホスト装置100のUSBポート116と演算装置200のUSBポート214とがUSBケーブル170によって接続される。
【0152】
[ステップS38]管理者の操作により、または自動的に、USBメモリ160内のリカバリアプリケーション162の実行が開始される。これにより、ホスト装置100においてリカバリ制御部152が起動する。リカバリ制御部152は、USBメモリ160内のインストーラ163を読み込み、USBケーブル170を介して演算装置200−1に転送する。
【0153】
[ステップS39]演算装置200−1のロード処理部253は、転送されたインストーラ163をロードし、インストーラ163の実行を開始する。これにより、演算装置200−1においてリカバリ処理部254が起動する。
【0154】
[ステップS40]リカバリ制御部152は、USBメモリ160からシステムイメージ164を読み込み、USBケーブル170を介して演算装置200−1に転送する。
【0155】
[ステップS41]演算装置200−1のリカバリ処理部254は、転送されたシステムイメージ164を受信し、不揮発メモリ203に記憶されたシステムデータを受信したシステムイメージ164によって書き替える。これにより、演算装置200−1のリカバリが行われる。
【0156】
[ステップS42]
図10のステップS23と同様の手順で、演算装置200−1が再起動する。このとき、演算装置200−1は、システムイメージ164によって書き替えられたシステムデータによって、通常モードで正常に起動する。
【0157】
[ステップS43]
図10のステップS24と同様の手順で、ホスト装置100の電源がオフになり、USBメモリ160およびUSBケーブル170が取り外され、ホスト装置100の電源がオンになる。これにより、ホスト装置100はメインOSによって起動する。
【0158】
以上の第3の実施の形態では、ホスト装置100での演算装置200のリカバリに関する一連の処理が、保守用OS161が動作する状態で実行される。これら一連の処理を実行するためのプログラムやデータがUSBメモリ160に格納されるので、これらのプログラムやデータがホスト装置100の記憶領域を圧迫しなくなる。したがって、第2の実施の形態と比較して、ホスト装置100の記憶領域の利用効率が高まる。
【0159】
なお、
図11に示した変形例と同様に、第3の実施の形態における保守用OS161、モード設定アプリケーション153a、リカバリアプリケーション162、インストーラ163およびシステムイメージ164についても、ホスト装置100内の記憶装置にあらかじめ格納しておくこともできる。この場合、OSの切り替え(
図15のステップS31,S32に対応)は、例えば次のようにして行われる。管理者の操作によりホスト装置100が再起動されると、その起動時に入力装置105の所定のキーが押下されることで、ディスプレイ104にOSの選択画面が表示される。そして、管理者の操作により保守用OS161が選択されることで、ホスト装置100内の保守用OS161によるブート処理が開始される。
【0160】
なお、上記の各実施の形態に示した装置(例えば、情報処理装置10、演算装置20−1〜20−3、ホスト装置100、演算装置200−1〜200−4)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0161】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0162】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【解決手段】情報処理システムは、拡張バス1,2−1〜2−3を介した通信を中継する中継部31を備える中継装置30と、それぞれが拡張バス2−1〜2−3に接続された演算装置20−1〜20−3と、拡張バス1に接続された情報処理装置10とを有する。情報処理装置10は、第1のOS11を実行した状態で、拡張バス1および中継部31を介して演算装置20−1〜20−3での演算処理を制御する。また、情報処理装置10は、実行するOSを第2のOS12に切り替え、演算装置20−1〜20−3のうち一の演算装置のシステムデータ21を書き替えて当該一の演算装置をリカバリする。