JP2017097408A - 情報処理装置およびプログラム更新制御方法 - Google Patents

情報処理装置およびプログラム更新制御方法 Download PDF

Info

Publication number
JP2017097408A
JP2017097408A JP2015225525A JP2015225525A JP2017097408A JP 2017097408 A JP2017097408 A JP 2017097408A JP 2015225525 A JP2015225525 A JP 2015225525A JP 2015225525 A JP2015225525 A JP 2015225525A JP 2017097408 A JP2017097408 A JP 2017097408A
Authority
JP
Japan
Prior art keywords
program
update
control unit
information processing
firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015225525A
Other languages
English (en)
Other versions
JP6555096B2 (ja
Inventor
智彦 室山
Tomohiko Muroyama
智彦 室山
紀之 矢須
Noriyuki Yasu
紀之 矢須
忠 松村
Tadashi Matsumura
忠 松村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015225525A priority Critical patent/JP6555096B2/ja
Priority to US15/296,358 priority patent/US10809997B2/en
Publication of JP2017097408A publication Critical patent/JP2017097408A/ja
Application granted granted Critical
Publication of JP6555096B2 publication Critical patent/JP6555096B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】プログラム更新の進捗状況の通知が不可能な期間を短縮できる。
【解決手段】実行部1aは、第1のプログラムと第2のプログラムとを実行する。更新制御部1bは、情報処理装置1が、他の情報処理装置2からの指示に応じてプログラム更新処理を実行するスレーブのとき、実行するプログラムを第1のプログラムから第1の更新プログラムに更新する(S3)。また、更新制御部1bは、情報処理装置1が、プログラム更新処理を制御するマスタのとき、実行するプログラムを第2のプログラムから第2の更新プログラムに更新する(S2,S4)とともに、第1のプログラムまたは第1の更新プログラムにしたがってプログラム更新処理の進捗状況を管理装置3に通知する(S2a,S4a)。
【選択図】図1

Description

本発明は、情報処理装置およびプログラム更新制御方法に関する。
近年、情報処理システムに含まれる処理装置の多くは、ファームウェアにしたがって動作する。各処理装置のファームウェアを更新する作業を効率化するために、管理装置による管理の下で更新処理が自動的に行われる情報処理システムもある。
ファームウェアの更新方法としては、版数の異なるファームウェアがそれぞれ格納される2つの不揮発性記憶領域を用いた次のような方法がある。この方法では、第1の記憶領域内の版数の古いファームウェアが実行された状態から、処理装置が再起動されると、第2の記憶領域内の版数の新しいファームウェアが読み出されて実行される。これに関連する技術として、再起動後に第2の記憶領域のファームウェアが正常かを判定し、正常であればそのファームウェアを起動し、異常であれば第1の記憶領域のファームウェアを起動する技術が提案されている。
また、情報処理システムの中には、装置の故障発生時や、ファームウェア更新などの保守作業時でも運用を継続できるように、処理装置が冗長化されたものがある。例えば、論理記憶領域へのアクセスを制御する制御装置が冗長化された次のようなシステムが提案されている。このシステムでは、一方の制御装置の制御プログラムの更新中に、この装置に対してホスト計算機からアクセスされると、ホスト計算機に再起動待ちであることを示す情報が通知される。通知を受けたホスト計算機は、他方の制御装置を経由して論理記憶領域へアクセスする。
特開2004−318871号公報 特開2009−42932号公報
冗長化された処理装置のファームウェアを更新する際には、例えば、一方の処理装置のファームウェアが更新され、その更新が完了した後に他方の処理装置のファームウェアが更新される。これにより、どちらか一方の処理装置で通常処理を継続したまま、ファームウェアを更新することができる。
また、ファームウェア更新の際には、前述のように処理装置の再起動を伴うことがある。そこで、冗長化された処理装置の一方をファームウェア更新制御のためのマスタにし、他方をスレーブにして、マスタがスレーブのファームウェア更新を制御する方法が考えられる。
ここで、一方の処理装置(「第1の処理装置」とする)にだけ管理端末を接続し、管理端末からの操作によってファームウェア更新を開始させるとともに、その進捗状況を管理端末が随時取得して、管理者が確認できるように表示装置に表示させることが考えられる。この場合、例えば、初期状態でマスタに設定された第1の処理装置は、管理端末からの指示に応じて第2の処理装置のファームウェア更新のためのシーケンスを実行する。シーケンスが完了すると、マスタとスレーブとが入れ替えられ、マスタに設定された第2の処理装置は、第1の処理装置のファームウェア更新のためのシーケンスを実行する。シーケンスが完了すると、再度マスタとスレーブとが入れ替えられ、マスタに設定された第1の処理装置は、ファームウェア更新が完了したことを管理端末に通知する。
しかし、この方法では、第1の処理装置がスレーブに設定されている期間では、第1の処理装置から管理端末へ更新の進捗状況を通知できない。このため、例えば、第1の処理装置でのファームウェア更新時に異常が発生した場合に、管理者がそれに気づいて必要な措置を施すまでに時間がかかってしまう。また、異常が発生していない場合でも、管理者からは進捗が一時的に停止しているように見えるので、有用性が低下する。
特に、各処理装置において複数のファームウェアが実行されている場合には、スレーブに設定された第1の処理装置において各ファームウェアの更新が完了するまでにかかる時間が長くなってしまう。例えば、各処理装置において複数の仮想OS(Operating System)プログラムが実行され、それらの仮想OSプログラムを更新する場合には、上記の問題が顕著になる。
1つの側面では、本発明は、プログラム更新の進捗状況の通知が不可能な期間を短縮することが可能な情報処理装置およびプログラム更新制御方法を提供することを目的とする。
1つの案では、プログラムを実行する情報処理装置が提供される。この情報処理装置は、実行部と更新制御部とを有する。実行部は、第1のプログラムと第2のプログラムとを実行する。更新制御部は、情報処理装置が、他の情報処理装置からの指示に応じてプログラム更新処理を実行するスレーブのとき、実行するプログラムを第1のプログラムから第1の更新プログラムに更新する第1の処理を実行する。また、更新制御部は、情報処理装置が、プログラム更新処理を制御するマスタのとき、実行するプログラムを第2のプログラムから第2の更新プログラムに更新する処理と、第1のプログラムまたは第1の更新プログラムにしたがってプログラム更新処理の進捗状況を管理装置に通知する処理とを含む第2の処理を実行する。
また、1つの案では、上記の情報処理装置と同様の処理をコンピュータが実行するプログラム更新制御方法が提供される。
1つの側面では、プログラム更新の進捗状況の通知が不可能な期間を短縮できる。
第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 CMおよびDEのハードウェア構成例を示す図である。 CMとDEとの接続例を示す図である。 CMの処理機能の構成例を示すブロック図である。 CMのファームウェアの更新方法の例を示す図である。 ファームウェア更新処理の比較例を示すフローチャートである。 第2の実施の形態におけるファームウェア更新処理の例を示すフローチャートである。 第2の実施の形態におけるファームウェア更新処理の例を示すシーケンス図(その1)である。 第2の実施の形態におけるファームウェア更新処理の例を示すシーケンス(その2)図である。
以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。情報処理装置1は、実行部1aと更新制御部1bを有する。実行部1aと更新制御部1bの処理は、例えば、情報処理装置1が備えるプロセッサが所定のプログラムを実行することで実現される。
また、情報処理装置1には、他の情報処理装置2と管理装置3が接続されている。他の情報処理装置2は、後述するように、情報処理装置1でのプログラム更新処理の一部を制御することが可能である。管理装置3は、情報処理装置1でのプログラム更新処理の進捗状況を示す進捗情報を受信し、進捗情報の内容を表示情報などによって管理者に通知する。
実行部1aは、第1のプログラムと第2のプログラムを実行する(ステップS1)。ここで、第1のプログラムは、第1のプログラムと第2のプログラムの更新処理が開始されたときに、上記の進捗情報を管理装置3に通知する処理を実現する。情報処理装置1は、第1のプログラムにしたがい、進捗情報を管理装置3に間欠的に複数回通知可能である。例えば、情報処理装置1は、管理装置3から一定時間ごとに送信される要求に応じて、進捗情報を管理装置3に通知する。
第1のプログラムと第2のプログラムとが実行された状態から、例えば管理装置3から、第1のプログラムと第2のプログラムの更新処理の開始が指示されると、更新制御部1bは次のような処理を実行する。なお、情報処理装置1は、更新処理を情報処理装置1自身が制御するマスタと、他の情報処理装置2からの指示に応じて更新処理を実行するスレーブという2つの動作状態に遷移可能である。
更新制御部1bは、実行するプログラムを第1のプログラムから第1の更新プログラムに更新する処理を、情報処理装置1がスレーブのときに実行する。第1の更新プログラムとは、第1のプログラムに対応する、第1のプログラムより版数の新しいプログラムである。
一方、更新制御部1bは、実行するプログラムを第2のプログラムから第2の更新プログラムに更新する処理を、情報処理装置1がマスタのときに実行する。第2の更新プログラムとは、第2のプログラムに対応する、第2のプログラムより版数の新しいプログラムである。
ここで、情報処理装置1がマスタのとき、情報処理装置1自身が更新処理を制御することから、更新制御部1bは、第1のプログラム、または更新後の第1の更新プログラムにしたがって、進捗情報を管理装置3に通知する通知処理を実行できる。一方、情報処理装置1がスレーブのとき、情報処理装置1自身が更新処理を制御していないことから、更新制御部1bは、第1のプログラム、または更新後の第1の更新プログラムにしたがって、進捗情報を管理装置3に通知する通知処理を実行できない。
更新制御部1bは、情報処理装置1がスレーブのときには、進捗情報の通知処理に関係のある第1のプログラムの更新だけを行い、第2のプログラムの更新を情報処理装置1がマスタのときに行う。これにより、進捗情報を管理装置3に通知できない時間を短縮することができる。
図1の例では、実行するプログラムを第2のプログラムから第2の更新プログラムに更新する処理が、ステップS2とステップS4とに分割されている。ステップS2は、情報処理装置1がマスタである第1の状態において実行され、ステップS4は、情報処理装置1がマスタである第3の状態において実行される。そして、ステップS2とステップS4との間のステップS3において、実行するプログラムを第1のプログラムから第1の更新プログラムに更新する処理が実行される。ステップS3は、情報処理装置1がスレーブである第2の状態において実行される。
具体的には、第1の状態では、更新制御部1bは、第2のプログラムの実行を停止する(ステップS2)。このとき、第1のプログラムは実行されたままであり、更新制御部1bは、第1のプログラムにしたがって、進捗情報の通知処理を実行する(ステップS2a)。
次に、更新制御部1bは、情報処理装置1の状態をマスタからスレーブに切り替えるとともに、他の情報処理装置をスレーブからマスタに切り替える。これにより、第2の状態に遷移する。第2の状態では、更新制御部1bは、他の情報処理装置2からの指示に応じて、第1のプログラムの実行を停止し、第1の更新プログラムの実行を開始する(ステップS3)。これにより、第1のプログラムが更新される。また、第2の状態では、進捗情報の通知処理は停止される。
次に、更新制御部1bは、他の情報処理装置2からの指示に応じて、情報処理装置1の状態をスレーブからマスタに切り替える。これにより、第3の状態に遷移する。第3の状態では、更新制御部1bは、第2の更新プログラムの実行を開始する(ステップS4)。これにより、第2のプログラムが更新される。また、第3の状態に遷移することで、進捗情報の通知が不可能な期間が終了する。そのため、更新制御部1bは、第1の更新プログラムにしたがって、進捗情報の通知処理を再開する(ステップS4a)。
このような処理により、情報処理装置1がスレーブとなる第2の状態では、第1のプログラムの更新処理だけが行われる。一方、第2のプログラムの更新処理は、情報処理装置1がマスタとなる第1,第3の状態で行われる。これにより、進捗情報を管理装置3に通知できない時間を短縮することができる。
なお、更新処理の進捗情報の通知先は、管理装置3でなくてもよい。例えば、情報処理装置1に接続または搭載された表示装置に進捗情報が通知されて、進捗情報の内容が表示装置に表示されてもよい。
また、例えば、他の情報処理装置2では、情報処理装置1と同様に第1のプログラムと第2のプログラムが実行されていてもよい。この場合、情報処理装置1と他の情報処理装置2の少なくとも一方が所定の処理を正常に実行できる状態になっていれば、第1のプログラムと第2のプログラムに基づく処理を継続することができる。
例えば、少なくとも上記の第1の状態から第3の状態では、情報処理装置1では第1のプログラムと第2のプログラムに基づく処理全体を正しく実行できない。しかし、第1の状態から第3の状態において、他の情報処理装置2において第1のプログラムと第2のプログラム、またはこれらの更新後のプログラムが実行されていることで、これらのプログラムに基づく処理を他の情報処理装置2が継続したまま、情報処理装置1でのプログラム更新を行うことが可能となる。
[第2の実施の形態]
次に、第2の実施の形態として、2つの仮想OSプログラムがそれぞれ実行されるストレージ制御装置を含むストレージシステムを例示する。このストレージシステムにおいては、少なくとも、一方のストレージ制御装置で実行される2つの仮想OSプログラムが、図1に示した第1のプログラムおよび第2のプログラムの一例である。
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、CE(Controller Enclosure)50と複数のDE(Drive Enclosure)200a,200b,・・・を含む。CE50は、それぞれDE200a,200b,・・・に接続されたCM(Controller Module)100a,100bを有する。CM100a,100bには、ホスト装置301,302が接続されている。
CM100a,100bは、ホスト装置301またはホスト装置302からの要求に応じて、DE200a,200b,・・・に搭載された記憶装置に対するアクセスを制御するストレージ制御装置である。DE200a,200b,・・・にはそれぞれ、ホスト装置301,302からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、DE200a,200b,・・・は、記憶装置としてHDD(Hard Disk Drive)が搭載されたディスクアレイ装置であるものとする。
また、CM100aには、管理端末400が接続されている。管理端末400には、表示装置401が接続されている。管理端末400は、ストレージシステムの管理者によって操作される端末装置である。管理者は、例えば、管理端末400を操作することで、CM100a,100bやDE200a,200b,・・・のファームウェア更新を実行させることができ、表示装置401の表示情報からその進捗状況を確認することができる。
ところで、ホスト装置301は、SAN(Storage Area Network)311を介してCM100a,100bに接続されている。ホスト装置301は、CM100a,100bに対してブロック単位でアクセス要求を行う。例えば、ホスト装置301は、FC(Fibre Channel)、iSCSI(SCSI:Small Computer System Interface)などの通信プロトコルにしたがってCM100a,100bと通信する。
一方、ホスト装置302は、LAN312を介してCM100a,100bに接続されている。ホスト装置302は、CM100a,100bに対してファイル単位でアクセス要求を行う。例えば、ホスト装置302は、NFS(Network File System)、CIFS(Common Internet File System)などの通信プロトコルにしたがってCM100a,100bと通信する。
CM100a,100bは、データのアクセス単位が異なる2つの通信プロトコルに対応する“ユニファイド・ストレージ”として動作する。CM100a,100bは、ブロック単位でのアクセス要求に応じてDE200a,200b,・・・へのアクセス制御を行う処理機能と、ファイル単位でのアクセス要求に応じてDE200a,200b,・・・へのアクセス制御を行う処理機能の両方を備える。後述するように、CM100a,100bは、これら2つの処理機能を、個別の仮想マシン上で実行されるファームウェアによってそれぞれ実現する。
図3は、CMおよびDEのハードウェア構成例を示す図である。
CM100aは、CPU(Central Processing Unit)101a、RAM(Random Access Memory)102a、SSD(Solid State Drive)103a、ネットワークインタフェース104a、読み取り装置105a、CA(Channel Adapter)106a,107a、IOC(In/Out Controller)108aおよびCMエクスパンダ109aを備える。
CPU101aは、CM100a全体を統括的に制御する。CPU101aは、例えば、1または複数のプロセッサを備える。RAM102aは、CM100aの主記憶装置である。RAM102aは、CPU101aに実行させるプログラムの少なくとも一部や、CPU101aの処理に用いられる各種データを一時的に記憶する。
SSD103aは、CM100aの補助記憶装置である。SSD103aは、CPU101aに実行されるファームウェアが格納されるファームウェア領域を含む。このファームウェアには、ブロック単位でのアクセス要求に応じたアクセス制御を実現するための仮想OSプログラムおよびアプリケーションプログラム、ファイル単位でのアクセス要求に応じたアクセス制御を実現するための仮想OSプログラムおよびアプリケーションプログラムが含まれる。
また、SSD103aは、例えば、アクセス制御に利用されるキャッシュ領域を含む。なお、ファームウェア領域とキャッシュ領域とは、個別の記憶装置によって実現されてもよい。また、CM100aは、補助記憶装置として、SSD103aの代わりにHDDを備えてもよい。
ネットワークインタフェース104aは、図示しないネットワークを介して他の装置と接続し、他の装置との間でデータを送受信する。本実施の形態では、ネットワークインタフェース104aには管理端末400が接続される。
読み取り装置105aには、可搬型の記録媒体105aaが脱着される。読み取り装置105aは、記録媒体105aaに記録されたデータを読み取ってCPU101aに送信する。記録媒体105aaとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
CA106aは、SAN311を介してホスト装置301と接続し、ホスト装置301との間でデータを送受信する。CA107aは、LAN312を介してホスト装置302と接続し、ホスト装置302との間でデータを送受信する。
IOC108aは、CPU101aとCMエクスパンダ109aとの間でデータを送受信する。CMエクスパンダ109aは、IOC108aとDEとの間でデータを中継する。図3の例では、CMエクスパンダ109aはDE200aと接続されている。なお、本実施の形態では、IOC108aとDEとの間ではSAS(Serial Attached SCSI)プロトコルにしたがってデータが送受信される。したがって、CMエクスパンダ109aはSASエクスパンダとして動作する。また、CMエクスパンダ109aは、複数のDEと接続し、IOC108aと複数のDEとの間でデータを中継することもできる。
CM100bは、CPU101b、RAM102b、SSD103b、ネットワークインタフェース104b、読み取り装置105b、CA106b,107b、IOC108bおよびCMエクスパンダ109bを備える。CM100bは、CM100aと同様のハードウェアによって構成され、CM100bのCPU101b、RAM102b、SSD103b、ネットワークインタフェース104b、読み取り装置105b、CA106b,107b、IOC108bおよびCMエクスパンダ109bは、CM100aのCPU101a、RAM102a、SSD103a、ネットワークインタフェース104a、読み取り装置105a、CA106a,107a、IOC108aおよびCMエクスパンダ109aにそれぞれ対応する。また、読み取り装置105bには、可搬型の記録媒体105baが脱着される。
DE200aは、IOM(In/Out Module)201a,202aと複数のHDD211a,212a,213a,・・・を備える。IOM201a,202aは、SASエクスパンダとして機能する。IOM201aは少なくとも、CM100aとHDD211a,212a,213a,・・・との間でデータを中継する。IOM201bは少なくとも、CM100bとHDD211a,212a,213a,・・・との間でデータを中継する。HDD211a,212a,213a,・・・は、ホスト装置301,302からのアクセス対象の記憶装置である。
なお、IOM201aは、コントローラ201aaとフラッシュメモリ201abを備える。フラッシュメモリ201abは、ファームウェアが格納されるファームウェア領域を含む。コントローラ201aaは、ファームウェア領域に格納されたファームウェアにしたがって、データ中継などの処理を実行する。
IOM202aも、IOM201aと同様のハードウェアによって構成される。また、CMエクスパンダ109a,109bも、ファームウェアが格納されたファームウェア領域を含むフラッシュメモリと、ファームウェアにしたがって処理を実行するコントローラとを備える。これらのファームウェア領域が設けられる記憶装置は、フラッシュメモリに限らず、他の種類の不揮発性記憶装置であってもよい。
なお、図示しないが、ホスト装置301,302および管理端末400は、例えば、プロセッサやRAMなどを備えたコンピュータとして実現される。
図4は、CMとDEとの接続例を示す図である。図4の例では、CM100a,100bに4台のDE200a〜200dが接続されている。
CM100aのCMエクスパンダ109aには、DE200aのIOM201aとDE200bのIOM201bが直列に接続されているとともに、DE200cのIOM201cとDE200dのIOM201dも直列に接続されている。この場合、CMエクスパンダ109aは、IOC108aと、IOM201aまたはIOM201cとの間でデータを中継する。
一方、CM100bのCMエクスパンダ109bには、DE200bのIOM202bとDE200aのIOM202aが直列に接続されているとともに、DE200dのIOM202dとDE200cのIOM202cも直列に接続されている。この場合、CMエクスパンダ109bは、IOC108bと、IOM202bまたはIOM202dとの間でデータを中継する。
これ以後、例として、ストレージシステムが図4のような構成であるものとして説明する。また、CM100aに接続されているIOM201a〜201dを「0系IOM」、CM100bに接続されているIOM202a〜202dを「1系IOM」と記載する場合がある。
図5は、CMの処理機能の構成例を示すブロック図である。CM100aは、ハイパーバイザ110aと、仮想マシン120a,130aを有する。
ハイパーバイザ110aの処理は、CM100aのCPU101aがハイパーバイザプログラムを実行することで実現される。ハイパーバイザ110aは、仮想マシン120a,130aを構築し、それらの動作を管理する。また、ハイパーバイザ110aは、起動制御部111aを有する。起動制御部111aは、仮想マシン120a,130aのBIOS(Basic Input/Output System)に相当する機能であり、仮想マシン120a,130aにおけるプログラムの起動を制御する。
仮想マシン120a,130aは、ハイパーバイザ100aの管理の下で動作する。また、CM100aは、仮想マシン120aにおいて実現される処理機能として、仮想OS121a,アクセス制御部122aおよび更新制御部123aを有する。仮想OS121aの処理は、仮想マシン120aがOSプログラムを実行することで実現される。アクセス制御部122aおよび更新制御部123aの処理は、仮想マシン120aが仮想OS121a上でそれぞれ所定のアプリケーションプログラムを実行することで実現される。
アクセス制御部122aは、ホスト装置301からブロック単位でアクセス要求を受け付け、その要求内容にしたがってDE200a〜200d内のHDDにアクセスする。
更新制御部123aは、管理端末400からの指示に応じて、ストレージシステムにおけるファームウェアの更新処理を制御する。また、更新制御部123aは、管理端末400からの指示に応じて、ファームウェア更新処理の進捗状況を示す情報を管理端末400に通知する。
また、CM100aは、仮想マシン130aにおいて実現される処理機能として、仮想OS131aおよびアクセス制御部132aを有する。仮想OS131aの処理は、仮想マシン130aがOSプログラムを実行することで実現される。アクセス制御部132aの処理は、仮想マシン130aが仮想OS131a上で所定のアプリケーションプログラムを実行することで実現される。
アクセス制御部132aは、ホスト装置302からファイル単位でアクセス要求を受け付け、その要求内容にしたがってDE200a〜200d内のHDDにアクセスする。アクセス制御部132aは、例えば、ファイル単位のアクセス要求をブロック単位のアクセス要求に変換することでHDDにアクセスする。なお、アクセス制御部132aは、例えば、ブロック単位のアクセスをアクセス制御部122aに依頼することで、HDDにアクセスしてもよい。
一方、CM100aは、CM100bと同様の機能を有する。すなわち、CM100bは、ハイパーバイザ110bと、ハイパーバイザ110bの制御の下で動作する仮想マシン120b,130bを有する。ハイパーバイザ110bは、仮想マシン120b,130bにおけるプログラムの起動を制御する起動制御部111bを有する。
CM100bは、仮想マシン120bにおいて実現される処理機能として、仮想OS121b,アクセス制御部122bおよび更新制御部123bを有する。仮想OS121b,アクセス制御部122bおよび更新制御部123bは、それぞれ仮想OS121a,アクセス制御部122aおよび更新制御部123aと同様の処理を実行する。
また、CM100bは、仮想マシン130bにおいて実現される処理機能として、仮想OS131bおよびアクセス制御部132bを有する。仮想OS131bおよびアクセス制御部132bは、それぞれ仮想OS131aおよびアクセス制御部132aと同様の処理を実行する。
ここで、アクセス制御部122aとアクセス制御部122bは、ホスト装置301からのアクセス要求に応じて、それぞれ同じ論理ボリュームにアクセスすることが可能である。また、アクセス制御部132aとアクセス制御部132bも、ホスト装置302からのアクセス要求に応じて、それぞれ同じ論理ボリュームにアクセスすることが可能である。なお、論理ボリュームとは、DE200a〜200d内の任意のHDDによる物理記憶領域によって実現される論理記憶領域である。
すなわち、ストレージシステムにおいては、ホスト装置301,302からDE200a〜200d内のHDDへのアクセスを制御する制御装置が、CM100a,100bによって冗長化されている。そして、CM100a,100bの少なくとも一方が正常に動作していれば、ホスト装置301,302は、DE200a〜200d内のHDDにアクセスすることができる。
例えば、ホスト装置301,302においてマルチパスが設定されている場合には、ホスト装置301,302は、CM100a,100bのうち正常に動作しているCMを選択して、そのCMを介してDE200a〜200d内のHDDにアクセスする。あるいは、CM100a,100bの一方が運用系として動作し、他方が待機系として動作し、ホスト装置301,302は、運用系として動作するCMを介してDE200a〜200d内のHDDにアクセスしてもよい。また、このような動作を可能とするために、例えば、アクセス制御部122aとアクセス制御部122bとの間、および、アクセス制御部132aとアクセス制御部132bとの間で、DE200a〜200d内のHDDへのアクセス制御に利用されるキャッシュ領域の内容が同期されていてもよい。
また、更新制御部123a,123bについては、一方がマスタとして動作し、他方がマスタからの制御の下で動作するスレーブとして動作する。換言すると、CM100a,100bにおけるファームウェアの更新処理は、更新制御部123a,123bのうちのマスタの制御の下で実行される。
以下の説明では、更新制御部123aがマスタまたはスレーブであることと、CM100aがマスタまたはスレーブであることとを同じ意味で用いる。また、更新制御部123bがマスタまたはスレーブであることと、CM100bがマスタまたはスレーブであることとを同じ意味で用いる。すなわち、マスタのCMは、ファームウェア更新処理についての制御側装置であり、スレーブのCMは、ファームウェア更新処理についての被制御側装置である。
また、図5に示すように、本実施の形態では、CM100aに管理端末400が接続されている。この場合、CM100a内の更新制御部123aは、管理端末400と通信して、管理端末400からの指示に応じてファームウェア更新処理を開始したり、ファームウェア更新処理の進捗状況を示す情報を管理端末400からの要求に応じて送信する。なお、CM100bに管理端末が接続された場合には、CM100b内の更新制御部123bが管理端末と通信して上記の処理を実行する。
なお、以下の説明では、CM100aを「CM#0」、CM100bを「CM#1」、仮想OS121a,121bを「仮想OS#0」、仮想OS131a,131bを「仮想OS#1」と記載する場合がある。
図6は、CMのファームウェアの更新方法の例を示す図である。CM100aのSSD103aには、ファームウェアを格納するためのファームウェア領域140があらかじめ確保されている。ファームウェア領域140は、それぞれ異なる版数のファームウェアが格納される2つのファームウェア領域141,142に区分されている。
図6の例では、ファームウェア領域141に版数の古いファームウェア151a,152aが格納され、ファームウェア領域142に版数の新しいファームウェア151b,152bが格納されている。ファームウェア151a,151bは、仮想OS121a(仮想OS#0)に対応する仮想OSプログラム、および仮想OS121a上で動作するアクセス制御部122aおよび更新制御部123aにそれぞれ対応するアプリケーションプログラムを含む。ファームウェア152a,152bは、仮想OS131a(仮想OS#1)に対応する仮想OSプログラム、および仮想OS131a上で動作するアクセス制御部132aに対応するアプリケーションプログラムを含む。なお、仮想OSプログラムとアプリケーションプログラムは、それぞれ個別のプログラムモジュールとしてファームウェア領域141,142に格納されていてもよい。
CM100aの不揮発性記憶領域(例えば、SSD103a内の所定領域)には、起動フラグ112aが記憶される。起動フラグ112aは、CM100aが起動したときにCPU101aがファームウェア領域141,142のどちらのファームウェアを実行するかを示すフラグ情報である。
例えば、ファームウェア領域141のファームウェア151a,152aが実行されている状態で、更新制御部123aによって起動フラグ112aがファームウェア領域142を示すように書き換えられる。そして、CM100bからの指示によってCM100aが再起動される(すなわち、電源がオフにされた後、オンにされる)。すると、ハイパーバイザ110aが起動し、これに伴って起動制御部111aが起動する。起動制御部111aは、起動フラグ112aに基づいて、ファームウェア領域142からファームウェア151b,152bを読み出す。これにより、ファームウェア151b、152bがCPU101aによって実行される。このように、ファームウェアの読み出し元領域が切り替えられることで、ファームウェアが更新される。
なお、CM100bでも、上記と同様にファームウェアの読み出し元領域の切り替えによってファームウェアが更新される。また、CMエクスパンダ109a,109bやIOM201a〜201d、202a〜202dも、内部のフラッシュメモリに2つのファームウェア領域を備え、再起動後のファームウェアの読み出し領域の切り替えによってファームウェアを更新する。
次に、ストレージシステムにおけるファームウェアの更新手順について説明する。まず、図7を用いてファームウェア更新処理の比較例とその問題点について説明し、その後の図8〜図10を用いて第2の実施の形態におけるファームウェア更新処理について説明する。
図7は、ファームウェア更新処理の比較例を示すフローチャートである。図7の処理の開始時には、CM100aがマスタであり、CM100bがスレーブであるものとする。
図7に示す比較例では、まず、CM100b(CM#1)およびこれに接続された1系IOMにおけるファームウェア更新が行われる(ステップS11〜S14)。そして、その後にCM100a(CM#0)およびこれに接続された0系IOMにおけるファームウェア更新が行われる(ステップS16〜S18,S20)。
具体的には、CM100aの更新制御部123aの制御により、CM100bに接続された1系IOM(IOM202a〜202d)のファームウェアが更新される(ステップS11)。次に、更新制御部123aの制御により、アクセス制御部132bの動作が停止され、仮想OS131b(CM#1の仮想OS#1)の動作が停止される(ステップS12)。
次に、更新制御部123aの制御により、仮想OS121b(CM#1の仮想OS#0)の更新が行われる(ステップS13)。具体的には、CM100bの起動フラグが書き替えられ、アクセス制御部122bおよび更新制御部123bの動作が停止され、仮想OS121bの動作が停止される。そして、CM100bが再起動されることで、新しい版数のファームウェアにしたがって仮想OS121b、アクセス制御部122bおよび更新制御部123bが起動する。なお、ステップS13では、CM100bの再起動によりCMエクスパンダ109bのファームウェアも更新される。
次に、更新制御部123aの制御により、新しい版数のファームウェアにしたがって仮想OS131bおよびアクセス制御部132bが起動する。これにより、仮想OS131bおよびアクセス制御部132bが組み込まれる(ステップS14)。
以上の処理が完了すると、更新制御部123aは、CM100bをマスタに切り替え、CM100aをスレーブに切り替える(ステップS15)。そして、CM100bの更新制御部123bの制御により、アクセス制御部132aの動作が停止され、仮想OS131a(CM#0の仮想OS#1)の動作が停止される(ステップS16)。
さらに、更新制御部123bの制御により、仮想OS121a(CM#0の仮想OS#0)の更新が行われる(ステップS17)。具体的には、CM100aの起動フラグ112aが書き替えられ、アクセス制御部122aおよび更新制御部123aの動作が停止され、仮想OS121aの動作が停止される。そして、CM100aが再起動されることで、新しい版数のファームウェアにしたがって仮想OS121a、アクセス制御部122aおよび更新制御部123aが起動する。なお、ステップS17では、CM100aの再起動によりCMエクスパンダ109aのファームウェアも更新される。
次に、更新制御部123bの制御により、新しい版数のファームウェアにしたがって仮想OS131aおよびアクセス制御部132aが起動する。これにより、仮想OS131aおよびアクセス制御部132aが組み込まれる(ステップS18)。
以上の処理が完了すると、更新制御部123bは、CM100aをマスタに切り替え、CM100bをスレーブに切り替える(ステップS19)。そして、CM100aの更新制御部123aの制御により、CM100aに接続された0系IOM(IOM201a〜201d)のファームウェアが更新される(ステップS20)。
以上の処理によれば、ステップS11〜S14において、CM100aでのアクセス制御処理を継続したまま、CM100bおよび1系IOMにおけるファームウェア更新を実行できる。また、ステップS16〜S20において、CM100bでのアクセス制御処理を継続したまま、CM100aおよび0系IOMにおけるファームウェア更新を実行できる。これにより、ホスト装置301,302からの要求に応じたアクセス制御処理を停止せずにファームウェアを更新する、いわゆる「活性ファームウェア更新」を行うことが可能となる。
ところで、上記の処理では、CM100aがマスタであるステップS11〜S14,S20では、更新制御部123aは、管理端末400からの要求に応じてファームウェア更新の進捗状況を示す進捗情報を送信できる。しかし、CM100aがスレーブであるステップS16〜S18では、ファームウェア更新の進捗を更新制御部123aが制御できない状態となる。このため、この期間では、更新制御部123aは、管理端末400から要求されても進捗情報を送信できない。
したがって、ステップS16〜S18では、管理端末400は表示装置401に表示させる進捗状況の表示情報を更新できず、管理者はファームウェア更新が進んでいるのか停止しているのかを判断できない。ステップS16〜S18では、2つの仮想OSプログラムが再起動されるので、単独のOSプログラムが再起動される場合と比較して処理が完了するまでの時間が長くなる。そのため、それらの再起動処理に異常が発生した場合に、管理者がその異常発生に気が付くまでに時間がかかり、異常に対する処置を施すのが遅くなる。また、異常が発生しなかったとしても、表示装置401における進捗状況の表示情報が長時間変化しなくなるので、有用性が低下する。
また、ステップS15でマスタの切り替えが行われる前には、例えば、更新制御部123aから管理端末400に対して、進捗情報の送信要求を停止させる停止時間が通知される。管理端末400は、通知された停止時間が経過するまで進捗情報の送信要求の送信を停止することで、無駄な通信を行わないようにできる。この停止時間は、2つの仮想OSプログラムおよびアプリケーションプログラムのすべての再起動が完了するまでの最大時間に設定される。このため、実際にはその停止時間が経過する前にすべての再起動が完了していたとしても、管理端末400からの進捗情報の送信要求の送信は再開されない。したがって、表示装置401において進捗状況の表示情報の更新が再開されるまでの時間が必要以上に長くなる可能性もある。
そこで、第2の実施の形態に係るストレージシステムでは、マスタをCM100aからCM100bに変更するタイミングを変更して、CM100aがスレーブである期間では仮想OS121aの更新だけが実行されるようにする。これにより、表示装置401において進捗状況の表示情報の更新が再開されるまでの時間を短縮する。
なお、CM100aがスレーブの状態でも、更新制御部123aが起動しているステップS16,S18では、管理端末400からの要求に応じて更新制御部123aが進捗情報を送信できる仕様にすることはできる。この場合、進捗情報を送信できない期間はステップS17の期間に限定される。しかし、管理端末400は、ステップS17の実行開始および完了のタイミングを認識していないので、ステップS16〜S18の全期間において、管理端末400が進捗情報を要求したときに進捗情報が必ず送信されるとは限らない。
もし管理端末400が進捗情報を要求したときに進捗情報が送信されない場合、管理端末400はファームウェア更新に異常が発生したと誤判定してしまう。このような誤判定を防止するためには、上記のような停止時間の通知によって、ステップS16〜S18の全期間において管理端末400が進捗情報を要求しないようにすることが望ましい。したがって、CM100aがスレーブでも更新制御部123aが起動していれば進捗情報を送信できる場合でも、表示装置401において進捗状況の表示情報の更新が再開されるまでの時間が長くなるという上記と同様の問題が発生する。
図8は、第2の実施の形態におけるファームウェア更新処理の例を示すフローチャートである。この図8では、図7と同様の処理が実行される処理ステップには同じ符号を付して示す。
図8の処理では、図7におけるステップS15〜S19が、ステップS15a〜S19aに置き換えられている。ステップS15a,16a,17a,18a,19aの処理内容は、それぞれ図7のステップS16,S15,S17,S19,S18と同様である。すなわち、図8の処理では、ステップS16aでマスタがCM100bに切り替えられる前に、ステップS15aにおいて、進捗表示に関係のない仮想OS131a(CM#0の仮想OS#1)が停止される。また、ステップS19aで仮想OS131aの組み込みが行われる前に、ステップS18aにおいてマスタがCM100aに切り替えられる。
これにより、表示装置401において進捗状況の表示情報を更新できない期間が短縮される。また、ステップS16aでマスタが切り替えられる前に、更新制御部123aから管理端末400に対して停止時間を通知する場合には、その通知時間は1つの仮想OSプログラムとその上で実行されるアプリケーションプログラムの再起動が完了するまでの最大時間に設定されればよい。これにより、管理端末400からの進捗情報の要求が抑止される期間が短縮され、その結果、進捗状況の表示情報を更新できない期間が短縮される。なお、この効果は、CM100aがスレーブでも更新制御部123aが起動していれば進捗情報を送信できる仕様になっている場合でも得られる。
次に、第2の実施の形態におけるファームウェア更新処理の詳細について、シーケンス図を用いて説明する。図9,図10は、第2の実施の形態におけるファームウェア更新処理の例を示すシーケンス図である。なお、図9の初期状態では、CM100aがマスタであり、CM100bがスレーブであるものとする。
[ステップS31]CM100aのSSD103a、CMエクスパンダ109aおよびIOM201a〜201dの各ファームウェア領域に、新たな版数のファームウェアが格納される。
[ステップS32]CM100bのSSD103b、CMエクスパンダ109bおよびIOM202a〜202dの各ファームウェア領域に、新たな版数のファームウェアが格納される。
[ステップS33]管理端末400は、管理者の操作に応じて、ファームウェア更新処理の開始指示をCM100aの更新制御部123aに対して送信する。
[ステップS34]管理端末400は、更新制御部123aに対する進捗情報の送信要求の送信を開始する。更新制御部123aは、例えば、送信要求を一定時間ごとに送信する。更新制御部123aは、送信要求に応じて、現在の進捗状況を示す進捗情報を管理端末400に送信する。管理端末400は、受信した進捗情報に基づいて表示装置401上の表示情報を更新する。
[ステップS35]更新制御部123aは、CM100bの更新制御部123bに対してIOMのファームウェア更新を指示する。更新制御部123bは、IOM202a〜202dのそれぞれのファームウェア領域に関する起動フラグを書き替え、IOM202a〜202dを再起動させる。これにより、IOM202a〜202dのファームウェアが更新される。
[ステップS36]更新制御部123aは、更新制御部123bに対して仮想OS131b(CM#1のOS#1)の停止を指示する。更新制御部123bは、アクセス制御部132bの動作が停止し、仮想OS131bの動作を停止する。
[ステップS37]更新制御部123aは、更新制御部123bに対して仮想OS121b(CM#1の仮想OS#0)およびCMエクスパンダ109bの更新を指示する。
具体的には、更新制御部123aは、まず、CM100bの起動フラグの書き替えと、CMエクスパンダ109bのファームウェア領域に関する起動フラグの書き換えを指示する。更新制御部123bは、指示された処理を実行する。次に、更新制御部123aは、CM100bを再起動させる。
CM100bが再起動すると、仮想OS121b、アクセス制御部122bおよび更新制御部123bに対応する新しい版数のファームウェアがCPU101bによって実行される。これらのファームウェアにしたがって仮想OS121b、アクセス制御部122bおよび更新制御部123bが起動する。また、CMエクスパンダ109bは新しい版数のファームウェアの実行を開始する。これにより、仮想OS121b、アクセス制御部122b、更新制御部123bおよびCMエクスパンダ109bが更新される。
[ステップS38]更新制御部123aは、更新制御部123bに対して仮想OS131b(CM#1の仮想OS#1)の組み込みを指示する。更新制御部123bは、これらに対応するファームウェアの実行を起動制御部111bに依頼する。これにより、仮想OS131bおよびアクセス制御部132bに対応する新しい版数のファームウェアがCPU101bによって実行される。これらのファームウェアにしたがって仮想OS131bおよびアクセス制御部132bが起動する。これにより、仮想OS131bおよびアクセス制御部132bが更新される。
[ステップS39]更新制御部123aは、アクセス制御部132aおよび仮想OS131a(CM#0の仮想OS#1)を停止させる。
[ステップS40]更新制御部123aは、管理端末400に対して停止時間を通知する。停止時間は、仮想OS121a、アクセス制御部122aおよび更新制御部123aに対応する新しい版数のファームウェアの起動が完了するまでの時間とされる。停止時間としては、例えば、あらかじめ記憶された値が送信される。
[ステップS41]管理端末400は、停止時間の通知を受けると、進捗情報の送信要求の送信を停止するとともに、時間のカウントを開始する。管理端末400は、通知された停止時間の分だけ時間が経過するまで、送信要求の送信を停止する。
[ステップS51]更新制御部123aは、更新制御部123bに対してマスタへの切り替えを指示する。これにより、CM100bはマスタに遷移し、CM100aはスレーブに遷移する。
[ステップS52]更新制御部123bは、更新制御部123aに対して仮想OS121a(CM#0の仮想OS#0)およびCMエクスパンダ109aの更新を指示する。
具体的には、更新制御部123bは、まず、CM100aの起動フラグ112aの書き替えと、CMエクスパンダ109aのファームウェア領域に関する起動フラグの書き換えを指示する。更新制御部123aは、指示された処理を実行する。次に、更新制御部123bは、CM100aを再起動させる。
CM100aが再起動すると、仮想OS121a、アクセス制御部122aおよび更新制御部123aに対応する新しい版数のファームウェアがCPU101aによって実行される。これらのファームウェアにしたがって仮想OS121a、アクセス制御部122aおよび更新制御部123aが起動する。また、CMエクスパンダ109aは新しい版数のファームウェアの実行を開始する。これにより、仮想OS121a、アクセス制御部122a、更新制御部123aおよびCMエクスパンダ109aが更新される。
[ステップS53]ステップS52の処理が完了すると、更新制御部123bは、更新制御部123aに対してマスタへの切り替えを指示する。これにより、CM100aはマスタに遷移し、CM100bはスレーブに遷移する。
[ステップS54]管理端末400は、停止時間の分だけ時間が経過したことを検知すると、更新制御部123aに対する進捗情報の送信要求の送信を再開する。CM100aはマスタに遷移しているので、更新制御部123aは、送信要求に応じて進捗情報を管理端末400に送信する。管理端末400は、受信した進捗情報に基づいて表示装置401上の表示情報を更新する。
以後、管理端末400は、ファームウェア更新全体の完了を示す進捗情報を受信するまで、送信要求を一定時間ごとに送信する。
[ステップS55]更新制御部123aは、仮想OS131a(CM#0の仮想OS#1)を組み込む。具体的には、更新制御部123aは、仮想OS131aおよびアクセス制御部132aに対応するファームウェアの実行を起動制御部111aに依頼する。これにより、仮想OS131aおよびアクセス制御部132aに対応する新しい版数のファームウェアがCPU101aによって実行される。これらのファームウェアにしたがって仮想OS131aおよびアクセス制御部132aが起動する。これにより、仮想OS131aおよびアクセス制御部132aが更新される。
[ステップS56]更新制御部123aは、IOM201a〜201dのそれぞれのファームウェア領域に関する起動フラグを書き替え、IOM201a〜201dを再起動させる。これにより、IOM201a〜201dのファームウェアが更新される。
[ステップS57]ステップS56の処理が完了した後に、管理端末400から進捗情報の送信要求が送信されると、更新制御部123aは、ファームウェア更新全体の完了を示す進捗情報を送信する。管理端末400は、表示装置401にファームウェア更新が完了したことを示す表示情報を表示させる。これにより、ファームウェア更新処理が終了される。
以上の処理により、CM100aの更新制御部123aが進捗情報を送信できず、表示装置401において進捗状況の表示情報が更新されない期間が短縮される。したがって、管理者にとっての有用性が向上する。また、この期間に進捗の異常が発生した場合に、管理者はより早いタイミングで異常の発生を認識し、必要な作業を実行できる。したがって、異常を短時間で復旧できるとともに、作業効率が向上する。
なお、上記の各実施の形態に示した装置(情報処理装置1、CM100a,100bおよび管理端末400)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
1 情報処理装置
1a 実行部
1b 更新制御部
2 他の情報処理装置
3 管理装置
S1,S2,S2a,S3,S4,S4a ステップ

Claims (5)

  1. プログラムを実行する情報処理装置において、
    第1のプログラムと第2のプログラムとを実行する実行部と、
    前記情報処理装置が、他の情報処理装置からの指示に応じてプログラム更新処理を実行するスレーブのとき、実行するプログラムを前記第1のプログラムから第1の更新プログラムに更新する第1の処理を実行し、前記情報処理装置が、前記プログラム更新処理を制御するマスタのとき、実行するプログラムを前記第2のプログラムから第2の更新プログラムに更新する処理と、前記第1のプログラムまたは前記第1の更新プログラムにしたがって前記プログラム更新処理の進捗状況を管理装置に通知する処理とを含む第2の処理を実行する更新制御部と、
    を有する情報処理装置。
  2. 前記第2の処理は、前記マスタとして前記第1のプログラムにしたがって前記進捗状況の通知処理を実行している第1の状態において、前記第2のプログラムの実行を停止する処理を含み、
    前記第1の処理は、前記第1の状態から前記情報処理装置を前記スレーブに設定する第2の状態に切り替え、前記他の情報処理装置からの指示に応じて、前記第1のプログラムの実行を停止して前記第1の更新プログラムの実行を開始する処理を含み、
    前記第2の処理はさらに、前記第2の状態から、前記他の情報処理装置からの指示に応じて前記情報処理装置を前記マスタに設定する第3の状態に切り替え、前記第1の更新プログラムにしたがって前記通知処理を再開するとともに、前記第2の更新プログラムの実行を開始する処理を含む、
    請求項1記載の情報処理装置。
  3. 前記第1のプログラムと前記第1の更新プログラムは、前記情報処理装置上で動作する第1の仮想マシンによって実行され、前記第2のプログラムと前記第2の更新プログラムは、前記情報処理装置上で動作する第2の仮想マシンによって実行される、
    請求項1または2記載の情報処理装置。
  4. 前記更新制御部は、前記情報処理装置が前記マスタであるとき、前記他の情報処理装置で実行される第3のプログラムの更新を前記他の情報処理装置に指示し、前記第1のプログラムまたは前記第1の更新プログラムにしたがって前記第3のプログラムの更新の進捗状況を前記管理装置に通知する、
    請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. コンピュータが、
    第1のプログラムと第2のプログラムとを実行し、
    前記第1のプログラムと前記第2のプログラムの更新処理を実行し、
    前記コンピュータが、他のコンピュータからの指示に応じてプログラム更新処理を実行するスレーブのとき、実行するプログラムを前記第1のプログラムから第1の更新プログラムに更新する第1の処理を実行し、
    前記コンピュータが、前記プログラム更新処理を制御するマスタのとき、実行するプログラムを前記第2のプログラムから第2の更新プログラムに更新する処理と、前記第1のプログラムまたは前記第1の更新プログラムにしたがって前記プログラム更新処理の進捗状況を管理装置に通知する処理とを含む第2の処理を実行する、
    プログラム更新制御方法。
JP2015225525A 2015-11-18 2015-11-18 情報処理装置およびプログラム更新制御方法 Active JP6555096B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015225525A JP6555096B2 (ja) 2015-11-18 2015-11-18 情報処理装置およびプログラム更新制御方法
US15/296,358 US10809997B2 (en) 2015-11-18 2016-10-18 Information processing apparatus and program update control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015225525A JP6555096B2 (ja) 2015-11-18 2015-11-18 情報処理装置およびプログラム更新制御方法

Publications (2)

Publication Number Publication Date
JP2017097408A true JP2017097408A (ja) 2017-06-01
JP6555096B2 JP6555096B2 (ja) 2019-08-07

Family

ID=58691049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015225525A Active JP6555096B2 (ja) 2015-11-18 2015-11-18 情報処理装置およびプログラム更新制御方法

Country Status (2)

Country Link
US (1) US10809997B2 (ja)
JP (1) JP6555096B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020052668A (ja) * 2018-09-26 2020-04-02 横河電機株式会社 プロセス制御システム、プロセス制御装置、及びプログラム更新方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI595415B (zh) * 2016-05-30 2017-08-11 神雲科技股份有限公司 韌體更新控制方法
KR102494241B1 (ko) * 2016-08-18 2023-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
JP7184424B2 (ja) * 2018-03-07 2022-12-06 Necソリューションイノベータ株式会社 更新処理装置、更新処理方法、及びプログラム
JP7346956B2 (ja) * 2018-08-10 2023-09-20 株式会社デンソー 車両用プログラム書換えシステム、車両用マスタ装置、進捗状態の同期制御方法及び進捗状態の同期制御プログラム
JP7115322B2 (ja) * 2019-01-08 2022-08-09 富士通株式会社 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム
CN112130886B (zh) * 2019-06-25 2023-11-03 杭州海康威视数字技术股份有限公司 一种交通信号控制机的主控程序升级方法及装置
US20240036847A1 (en) * 2022-07-27 2024-02-01 T-Mobile Usa, Inc. Firmware-over-the-air (fota) update for wireless devices in an internet of things (iot) network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252437A (ja) * 2005-03-14 2006-09-21 Nec Corp パッチ適用方式及びパッチ適用方法
US20070234332A1 (en) * 2006-02-22 2007-10-04 Dell Products L.P. Firmware update in an information handling system employing redundant management modules
JP2012160113A (ja) * 2011-02-02 2012-08-23 Canon Inc 情報処理装置におけるファームウエア更新状況表示方法
JP2014115779A (ja) * 2012-12-07 2014-06-26 Canon Inc 画像処理装置、情報処理方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216166A (ja) 2000-02-02 2001-08-10 Hitachi Ltd 情報処理装置の保守管理方法および情報処理装置ならびにソフトウェアの作成方法およびソフトウェア
WO2004081791A1 (ja) 2003-03-13 2004-09-23 Fujitsu Limited 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
JP4481059B2 (ja) 2003-03-31 2010-06-16 株式会社リコー 通信装置とその遠隔管理システム,os更新方法,プログラム,および記録媒体
JP4864557B2 (ja) * 2006-06-15 2012-02-01 富士通株式会社 ソフトウェアの更新処理プログラム及び更新処理装置
JP4635032B2 (ja) 2007-08-07 2011-02-16 株式会社東芝 記憶制御装置の制御プログラムの更新方法
US9021459B1 (en) * 2011-09-28 2015-04-28 Juniper Networks, Inc. High availability in-service software upgrade using virtual machine instances in dual control units of a network device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252437A (ja) * 2005-03-14 2006-09-21 Nec Corp パッチ適用方式及びパッチ適用方法
US20070234332A1 (en) * 2006-02-22 2007-10-04 Dell Products L.P. Firmware update in an information handling system employing redundant management modules
JP2012160113A (ja) * 2011-02-02 2012-08-23 Canon Inc 情報処理装置におけるファームウエア更新状況表示方法
JP2014115779A (ja) * 2012-12-07 2014-06-26 Canon Inc 画像処理装置、情報処理方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020052668A (ja) * 2018-09-26 2020-04-02 横河電機株式会社 プロセス制御システム、プロセス制御装置、及びプログラム更新方法

Also Published As

Publication number Publication date
US20170139698A1 (en) 2017-05-18
US10809997B2 (en) 2020-10-20
JP6555096B2 (ja) 2019-08-07

Similar Documents

Publication Publication Date Title
JP6555096B2 (ja) 情報処理装置およびプログラム更新制御方法
US8009501B2 (en) Storage apparatus and power saving method thereof
JP4585463B2 (ja) 仮想計算機システムを機能させるためのプログラム
US8762648B2 (en) Storage system, control apparatus and control method therefor
US20100058322A1 (en) Storage device and method of instructing to update firmware
JP5217966B2 (ja) ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
WO2012176278A1 (ja) 情報処理装置、仮想マシン制御方法およびプログラム
TW201437811A (zh) 利用儲存區域網路回復電腦系統的系統及方法
JP2018190376A (ja) 管理コントローラによるsas/sataハードディスクドライブ更新
US8099634B2 (en) Autonomic component service state management for a multiple function component
JP2009282834A (ja) ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
JP4322240B2 (ja) 再起動方法、システム及びプログラム
US10296218B2 (en) Update control method, update control apparatus, and storage medium
US9588691B2 (en) Dynamically managing control information in a storage device
JP5387767B2 (ja) 実行中のプログラムの更新技術
CN111158963A (zh) 一种服务器固件冗余启动方法和服务器
JP6674101B2 (ja) 制御装置および情報処理システム
JP2009042932A (ja) 記憶制御装置の制御プログラムの更新方法
JP7371483B2 (ja) ストレージ制御装置及び制御プログラム
JP6788188B2 (ja) 制御装置および制御プログラム
CN112912848A (zh) 一种丛集作业过程中的电源请求管理方法
JP7015865B2 (ja) ストレージシステム及びストレージシステムによる情報処理方法
US20230004374A1 (en) Computer system and control method for firmware version management
JP7115322B2 (ja) ストレージ装置、ストレージ制御装置及びストレージ制御プログラム
WO2014045453A1 (ja) 環境変数保存方法、情報処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190624

R150 Certificate of patent or registration of utility model

Ref document number: 6555096

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150