JP2018025995A - 更新制御装置、及び更新制御プログラム - Google Patents

更新制御装置、及び更新制御プログラム Download PDF

Info

Publication number
JP2018025995A
JP2018025995A JP2016157791A JP2016157791A JP2018025995A JP 2018025995 A JP2018025995 A JP 2018025995A JP 2016157791 A JP2016157791 A JP 2016157791A JP 2016157791 A JP2016157791 A JP 2016157791A JP 2018025995 A JP2018025995 A JP 2018025995A
Authority
JP
Japan
Prior art keywords
update
processing units
control program
processing
agent
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
JP2016157791A
Other languages
English (en)
Other versions
JP6744547B2 (ja
Inventor
弘昭 西條
Hiroaki Saijo
弘昭 西條
内山 賢治
Kenji Uchiyama
賢治 内山
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 JP2016157791A priority Critical patent/JP6744547B2/ja
Priority to US15/617,690 priority patent/US10296218B2/en
Publication of JP2018025995A publication Critical patent/JP2018025995A/ja
Application granted granted Critical
Publication of JP6744547B2 publication Critical patent/JP6744547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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

Landscapes

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

Abstract

【課題】制御プログラムの一斉更新を高速化すること。
【解決手段】複数の処理部21、22、23の各々に設定された制御プログラムを更新する更新制御装置10が提供される。更新制御装置10は、複数の処理部21、22、23における制御プログラムの更新順序及び進捗状況を示す更新情報11aと、複数の処理部21、22、23の各々に提供される新たな制御プログラムとを記憶する記憶部11と、複数の処理部21、22、23に新たな制御プログラムを提供し、複数の処理部21、22、23のうち更新が完了した処理部の情報を進捗状況として更新情報11aに記録し、進捗状況に基づいて、更新情報11aが示す更新順序で制御プログラムが更新されるように複数の処理部21、22、23における再起動のタイミングを制御する制御部12とを有する。
【選択図】図1

Description

本発明は、更新制御装置、及び更新制御プログラムに関する。
データの処理や記憶などに利用されるコンピュータシステムには、様々な処理要素(コンポーネント)が含まれる。例えば、ネットワークを介して複数のコンピュータが接続されるコンピュータシステムの場合、各コンピュータは、そのコンピュータシステムのコンポーネントとなりうる。また、コンピュータに搭載されている制御装置、記憶装置、通信装置、電源装置などは、そのコンピュータのコンポーネントとなりうる。
上記のコンポーネントは、例えば、そのコンポーネントが提供する機能に応じて予め設定されたファームウェアに従って動作する。ファームウェアは、コンポーネントの動作を制御する制御プログラムの一例である。コンピュータシステムの多くは、複数のコンポーネントが相互に連携して動作する。そのため、1つのコンポーネントに設定されたファームウェアを更新すると他のコンポーネントの動作に影響することがある。
機能やセキュリティを向上させるためにコンポーネントのファームウェアは適宜更新される。このとき、一部のコンポーネントに対するファームウェアの更新が他のコンポーネントの動作を不安定にして障害を誘発するリスクを回避するため、例えば、全ての関連するコンポーネントに対して一斉にファームウェアを更新する方法がある。
但し、複数のコンポーネントのファームウェアを一斉に更新する場合、更新順序を間違えると一部のコンポーネントで正しくファームウェアが更新されず、更新後に正常動作しなくなるリスクがある。
なお、複数の画像処理装置のファームウェアを更新する方法に関し、更新される機能に基づいて更新順序を決定する方法が提案されている。他にも、エンジンファームウェアとアップデートモジュールとの整合に基づいて更新順序を決定する方法が提案されている。また、電子機器のファームウェアをアップデートする際に、電子機器をリブートする適切な時間を決定する方法が提案されている。この方法では、電子機器の状態(実行中のプロセスの実行時間など)に応じて適切な時間が決定される。
特開2014−167692号公報 特開2012−73862号公報 特表2005−502971号公報
上記のように更新順序がある場合、先に実施される更新処理の時間を予測値にマージンを加えた時間を予め待ち時間として設定しておき、後に実施される更新処理は、先の更新処理を開始後、待ち時間の経過を待って開始される。高い信頼性が求められるコンピュータシステムの場合にはファームウェアの更新が失敗するリスクを低減するために上記のマージンが大きく設定される。そのため、ファームウェアの更新にかかる時間が長くなる。
1つの側面によれば、本開示の目的は、制御プログラムの一斉更新を高速化できる更新制御装置、及び更新制御プログラムを提供することにある。
一態様によれば、複数の処理部の各々に設定された制御プログラムを更新する更新制御装置が提供される。更新制御装置は、複数の処理部における制御プログラムの更新順序及び進捗状況を示す更新情報と、複数の処理部の各々に提供される新たな制御プログラムとを記憶する記憶部と、複数の処理部に新たな制御プログラムを提供し、複数の処理部のうち更新が完了した処理部の情報を進捗状況として更新情報に記録し、進捗状況に基づいて、更新情報が示す更新順序で制御プログラムが更新されるように複数の処理部における再起動のタイミングを制御する制御部とを有する。
制御プログラムの一斉更新を高速化できる。
第1実施形態に係る更新制御装置の一例を示した図である。 第2実施形態に係る仮想テープライブラリシステムの一例を示した図である。 第2実施形態に係る仮想テープ制御装置のハードウェアの一例を示した図である。 第2実施形態に係る監視サーバのハードウェアの一例を示した図である。 第2実施形態に係るF/W更新制御の説明に用いるコンポーネントモデルを示した図である。 第2実施形態に係る監視サーバの機能の一例を示した図である。 第2実施形態に係るCOMP情報の一例を示した図である。 第2実施形態に係る進行管理テーブルの一例を示した図である。 第2実施形態に係るコード表の一例を示した図である。 第2実施形態に係る事前処理の流れを示したフロー図である。 第2実施形態に係る更新処理の流れを示したフロー図である。 第2実施形態に係るエージェントが実行する処理の流れを示したシーケンス図である。 第2実施形態に係るエージェントが各段階で実行する処理の流れを示したフロー図である。 第2実施形態に係る更新処理の進行過程の一例を示した図である。
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。第1実施形態は、複数の処理部にそれぞれ組み込まれている制御プログラムを一斉に更新する方法に関する。図1は、第1実施形態に係る更新制御装置の一例を示した図である。なお、図1に示した更新制御装置10は、第1実施形態に係る更新制御装置の一例である。
図1に示すように、更新制御装置10は、記憶部11及び制御部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。制御部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)などのプロセッサである。制御部12は、例えば、記憶部11又は他のメモリに記憶されたプログラムを実行する。
更新制御装置10は、処理部21、22、23の各々に設定された制御プログラムを更新する。1台又は複数台のコンピュータそれ自体、或いは、コンピュータに含まれるコンポーネントは、処理部21、22、23の一例である。
上記のコンポーネントとしては、例えば、CM(Controller Module)、BIOS(Basic Input/Output System)チップ、LAN(Local Area Network)インターフェースカードなどがある。さらに、上記のコンポーネントとしては、SCSI(Small Computer System Interface)コントローラ、RAID(Redundant Arrays of Inexpensive Disks)コントローラ、FC(Fibre Channel)インターフェースカードなどがある。
記憶部11は、更新情報11a及び処理部21、22、23の各々に提供される新たな制御プログラムを記憶する。更新情報11aは、処理部21、22、23における制御プログラムの更新順序及び進捗状況を示す情報である。
例えば、更新情報11aは、図1(A)に示すように、更新順序と、更新対象となる処理部を識別するための情報と、進捗情報とを対応付ける情報である。なお、図1の例では、説明の都合上、更新対象の処理部を識別するための情報を符号で表現している。進捗状況としては、例えば、制御プログラムの更新完了を示す「更新済」と、制御プログラムの更新が完了していない「未更新」とがある。
新たな制御プログラムは、図1(B)に示すように、更新対象となる処理部21、22、23のそれぞれに対して用意される。図1の例では、処理部21に対して制御プログラムFW#11、処理部22に対して制御プログラムFW#12、処理部23に対して制御プログラムFW#13が用意されている。なお、コンピュータや上述したコンポーネントの動作を制御するファームウェアは制御プログラムの一例である。
制御部12は、処理部21、22、23に新たな制御プログラムを提供する。処理部21は、制御プログラムを格納するための格納領域21aを有する。処理部22は、制御プログラムを格納するための格納領域22aを有する。処理部23は、制御プログラムを格納するための格納領域23aを有する。格納領域21a、22a、23aは、それぞれ処理部21、22、23が有するメモリ(非図示)上の領域である。
図1の例では、制御部12から処理部21に制御プログラムFW#11が提供される。制御プログラムFW#11の提供を受けた処理部21は、その制御プログラムFW#11を格納領域21aに格納する。格納領域21aに格納された制御プログラムFW#11は、処理部21の再起動時に読み込まれる。そして、再起動した処理部21は、格納領域21aから読み込んだ制御プログラムFW#11に従って動作する。
同様に、制御部12から処理部22に制御プログラムFW#12が提供される。制御プログラムFW#12の提供を受けた処理部22は、その制御プログラムFW#12を格納領域22aに格納する。格納領域22aに格納された制御プログラムFW#12は、処理部22の再起動時に読み込まれる。そして、再起動した処理部22は、格納領域22aから読み込んだ制御プログラムFW#12に従って動作する。処理部23についても同様である。
制御部12は、処理部21、22、23のうち更新が完了した処理部の情報を進捗状況として更新情報11aに記録する。例えば、処理部21に対する制御プログラムFW#11の提供、及び処理部21の再起動が完了すると、制御部12は、処理部21に対応する更新情報11aの進捗状況欄に「更新済」と記録する。
制御部12は、進捗状況に基づいて、更新情報11aが示す更新順序で制御プログラムが更新されるように複数の処理部21、22、23における再起動のタイミングを制御する。例えば、制御部12は、図1(C)に示すように、制御プログラムFW#11、FW#12、FW#13をそれぞれ処理部21、22、23に提供した後、更新順序が「1」の処理部21に対して再起動を許可する。
処理部21が制御プログラムFW#11を読み込んで動作を開始した後、制御部12は、更新情報11aを更新し、更新順序が「2」の処理部22に対して再起動を許可する。処理部22が制御プログラムFW#12を読み込んで動作を開始した後、制御部12は、更新情報11aを更新し、更新順序が「3」の処理部23に対して再起動を許可する。処理部23が制御プログラムFW#13を読み込んで動作を開始した後、制御部12は、更新情報11aを更新する。
図1の例では、更新順序が1から3まで規定され、各更新順序に対して更新対象の処理部が割り当てられているが、同時に更新を実施できる処理部が複数ある場合には、同じ更新順序に複数の処理部が割り当てられていてもよい。例えば、更新順序「2」に処理部22、23が割り当てられている場合、制御部12は、処理部21が制御プログラムFW#11を読み込んで動作を開始した後、更新情報11aを更新し、処理部22、23に対して同じタイミングで再起動を許可する。
上記のように、更新情報11aを利用することで、複数の処理部に対して一斉に制御プログラムを更新する際に安全で効率的に処理を進めることができる。
例えば、制御プログラムFW#11による更新を前提として制御プログラムFW#12の更新が可能となる場合、制御プログラムFW#11の更新が未完了の状態で制御プログラムFW#12の更新が実施されると更新処理が失敗する。しかし、更新情報11aを利用することで、このような失敗を回避することができる。さらに、更新情報11aに基づいて順次更新処理を進めることができ、更新処理の高速化に寄与する。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、仮想テープライブラリシステムにおけるファームウェア(F/W)の更新方法に関する。
[2−1.仮想テープライブラリシステム]
図2を参照しながら、第2実施形態に係る仮想テープライブラリシステムについて説明する。図2は、第2実施形態に係る仮想テープライブラリシステムの一例を示した図である。
図2に示すように、第2実施形態に係る仮想テープライブラリシステムは、仮想テープライブラリ装置100、監視サーバ200、及びホストコンピュータ300を有する。また、仮想テープライブラリ装置100は、仮想テープ制御装置101、記憶装置102、及びテープライブラリ103を有する。
監視サーバ200は、仮想テープライブラリ装置100におけるF/Wの更新状況を監視し、F/Wの更新タイミングなどを制御するコンピュータである。ホストコンピュータ300は、仮想テープライブラリ装置100にデータの読み書きを依頼するコンピュータである。仮想テープライブラリ装置100は、ホストコンピュータ300から依頼を受けてデータの読み書きを実行する装置である。
テープライブラリ103は、ライブラリ制御装置131、テープドライブ132、及びロボット133を有する。ライブラリ制御装置131は、テープドライブ132、及びロボット133を制御し、テープ132a、132bに対するデータの読み書きを実行する。テープ132a、132bは、データを記録するための磁気テープ媒体である。
なお、ここでは、説明の都合上、磁気テープ媒体を例に挙げるが、DVD(Digital Versatile Disc)やBD(Blu-ray Disc;登録商標)などの光ディスクを利用するシステムにも第2実施形態の技術を適用可能である。
テープドライブ132は、テープ132a、132bにデータを書き込み、テープ132a、132bからデータを読み出すドライブ装置である。ロボット133は、テープ132a、132bなどの磁気テープ媒体を収納する収納ラックから磁気テープ媒体を取り出してテープドライブ132に装填する装置である。ライブラリ制御装置131は、仮想テープ制御装置101による制御に応じてテープライブラリ103の動作を制御する。
記憶装置102は、HDDやSSD(Solid State Drive)などの記録媒体を複数組み合わせて冗長化したRAID装置である。そのため、記憶装置102は、磁気テープ媒体に比べて高速なデータの読み書きが可能である。また、記憶装置102は、RAIDコントローラを有する。また、記憶装置102は、テープライブラリ103に書き込まれるデータを一時的に格納するキャッシュ(TVC:Tape Volume Cache)として利用される。
例えば、仮想テープ制御装置101は、ホストコンピュータ300からテープライブラリ103にデータを書き込むように依頼を受けた際、そのデータを一時的に記憶装置102に格納する。また、仮想テープ制御装置101は、ホストコンピュータ300からデータの読み出しを依頼された際、そのデータが記憶装置102にある場合には、記憶装置102のデータを用いてホストコンピュータ300に応答する。
上記のように、記憶装置102をキャッシュとして利用することで、ホストコンピュータ300に対する応答を高速化することができる。なお、仮想テープ制御装置101は、予め設定されたタイミング(例えば、所定期間の経過や記憶装置102の残容量などの条件を満たしたタイミング)で記憶装置102のデータをテープライブラリ103に移動する。
上述した仮想テープ制御装置101のハードウェアは、例えば、図3に示すようなハードウェア要素を含む。図3は、第2実施形態に係る仮想テープ制御装置のハードウェアの一例を示した図である。なお、図3に例示したハードウェアは一例であり、仮想テープライブラリシステムの構造や用途に応じて一部の要素を変更してもよい。
図3に示すように、仮想テープ制御装置101は、通信デバイス111、データ処理デバイス112、及び給電デバイス113を有する。
通信デバイス111は、例えば、LANインターフェースカード、FCインターフェースカード、SCSIコントローラなどであり、監視サーバ200、ホストコンピュータ300、テープライブラリ103との通信に利用されるデバイスである。データ処理デバイス112は、CPU、FPGA、CMなどのデータ処理機能を搭載したデバイスである。給電デバイス113は、電源のオン/オフ、電圧制御、省電力制御などの給電機能を搭載したデバイスである。
また、上記の監視サーバ200が有する機能は、図4に例示したコンピュータのハードウェアを利用して実現されうる。図4は、第2実施形態に係る監視サーバのハードウェアの一例を示した図である。監視サーバ200が有する機能は、コンピュータプログラムを用いて図4に示すハードウェアを制御することにより実現されうる。なお、ホストコンピュータ300の機能も図4に例示したハードウェアを用いて実現可能である。
図4に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッドなどが用いられる。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。また、出力部918として、プリンタなどが用いられることもある。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSDやRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI、RS−232Cポートなど、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられうる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LANなどを含む。
(F/Wの更新順序)
上記のように、仮想テープライブラリシステムには様々なハードウェア要素が含まれる。また、それらハードウェア要素の多くはF/Wに従って動作する。第2実施形態は、このようなハードウェア要素のF/Wを更新する技術に関する。
複数のハードウェア要素について一斉にF/Wを更新する場合、F/Wを更新するハードウェア要素の間には依存関係があるため、F/Wの更新順序を間違えると一部のハードウェア要素が正常に動作しなくなるリスクがある。仮想テープライブラリ装置100の更新順序は、例えば、給電デバイス113、記憶装置102、通信デバイス111、テープライブラリ103、データ処理デバイス112の順になる。
上記の順序は一例であるが、給電デバイス113は各ハードウェア要素に対する電源の供給を制御するために最初にF/Wの更新が実施される。また仮想テープ制御装置101やライブラリ制御装置131が記憶装置102の内容を参照するため、仮想テープ制御装置101やテープライブラリ103より先にF/Wの更新が実施される。通信デバイス111はF/Wの提供に利用されるため、F/Wの提供が完了した後で通信の間隙にF/Wの更新が実施される。
記憶装置102が正常に稼働している場合、ホストコンピュータ300から仮想テープライブラリ装置100に送信されるデータは記憶装置102にキャッシュしておける。そのため、テープライブラリ103は適時にF/Wの更新を実施する。テープライブラリ103の起動時にテープドライブ132の状態を認識する処理が実行されるため、テープライブラリ103のF/Wを更新する際には、まず、テープドライブ132のF/Wが更新される。そして、ロボット133のF/Wが更新される。
テープドライブ132及びロボット133のF/Wが更新され、テープドライブ132及びロボット133が正常に動作している状態でライブラリ制御装置131のF/Wが更新される。データ処理デバイス112は、起動時にテープライブラリ103の状態を認識する。そのため、テープライブラリ103のF/Wが更新された後、データ処理デバイス112のF/Wが更新される。
なお、F/Wの更新対象となるデータ処理デバイス112として、BIOS、LANインターフェースカード、FCインターフェースカード、RAIDコントローラがあるとする。この場合、入出力制御を担うBIOSのF/Wが最初に更新され、LANインターフェースカードやFCインターフェースカードのF/Wが更新され、その後、RAIDコントローラのF/Wが更新される。また、仮想テープ制御装置101の全体的な動作を制御するF/Wを更新する場合、上記の各ハードウェア要素についてF/Wの更新が完了した後で更新処理が実行される。
上記のように、様々なハードウェア要素が連携して動作するシステムの場合、F/Wの更新順序がある。そのため、先にF/Wを更新するハードウェア要素の更新完了を待って、後に更新を実施するハードウェア要素がF/Wの更新処理を開始する。更新順序の制御方法としては、例えば、先の更新処理が開始されてから、予め設定された待機時間が経過した後、後の更新処理が開始される仕組みを採用することができる。
但し、仮想テープライブラリシステムのように更新失敗のリスクを回避することが求められるシステムの場合には待機時間が十分に長く設定されるため、全てのハードウェア要素についてF/Wの更新が完了するまでにかかる時間が長くなる。F/Wの更新により運用が停止している期間が長くなるとユーザの利便性が損なわれる。そのため、第2実施形態に係る仮想テープライブラリシステムでは、待機時間を設定するのではなく、更新処理の進行状況を好適に管理し、F/Wの更新時間を短縮する仕組みを提供する。
(コンポーネントモデル)
以下では、説明を簡単にするために、仮想テープライブラリ装置100をF/Wの更新対象にする。また、仮想テープライブラリ装置100のハードウェア要素を図5に例示したコンポーネントモデルで表現する。図5は、第2実施形態に係るF/W更新制御の説明に用いるコンポーネントモデルを示した図である。
図5に例示したコンポーネントモデルでは、仮想テープライブラリ装置100のハードウェア要素がコンポーネント107、108で表現される。コンポーネント107は、メインユニット171を有する。また、コンポーネント108は、メインユニット181、サブユニット182を有する。
例えば、コンポーネント107は、仮想テープ制御装置101、記憶装置102に相当する。そして、メインユニット171は、例えば、通信デバイス111、データ処理デバイス112、給電デバイス113、記憶装置102のRAIDコントローラに相当する。また、コンポーネント108は、テープライブラリ103に相当する。メインユニット181は、ライブラリ制御装置131に相当する。サブユニット182は、テープドライブ132、ロボット133に相当する。なお、ここでは説明の都合上、上記の対応関係を例示したが、コンポーネント、ユニット、ハードウェア要素の関係はこれに限定されない。
図5に示すように、メインユニット171は、プロセッサ171a及びメモリ171bを有する。メインユニット181は、プロセッサ181a及びメモリ181bを有する。サブユニット182は、プロセッサ182a及びメモリ182bを有する。メモリ171b、181b、182bにはF/Wが格納される。プロセッサ171a、181a、182aは、それぞれ、メモリ171b、181b、182bに格納されているF/Wを読み込んで動作を制御する。メインユニット171、181は、監視サーバ200と通信可能である。
以下、上記のコンポーネントモデルを用いて説明を進める。
[2−2.監視サーバの機能]
図6を参照しながら、監視サーバ200の機能について説明する。図6は、第2実施形態に係る監視サーバの機能の一例を示した図である。
図6に示すように、監視サーバ200は、記憶部201、事前処理部202、及び更新処理部203を有する。記憶部201の機能は、上述したRAM906や記憶部920などを用いて実現できる。事前処理部202及び更新処理部203の機能は、上述したCPU902などを用いて実現できる。
記憶部201には、COMP情報201a、進行管理テーブル201b、F/Wデータ201cが格納される。COMP情報201aは、F/Wの更新対象となるコンポーネント107、108に関する情報である。進行管理テーブル201bは、F/Wの更新状況(更新順序及び更新処理の進行状況)を管理するためのテーブルである。F/Wデータ201cは、コンポーネント107、108に提供されるF/Wの実体である。
F/Wの更新処理は、エージェントを利用して実行される。エージェントは、複数の処理を同時に並行して実行するために利用される論理的な処理主体であり、例えば、タスク、プロセス、スレッドなどである。図7に示すように、上述したコンポーネントモデルの場合、F/Wの更新対象はコンポーネント107のメインユニット171、コンポーネント108のメインユニット181及びサブユニット182である。図7は、第2実施形態に係るCOMP情報の一例を示した図である。
この場合、F/Wの更新処理を同時に並行して実行できるようにするため、メインユニット171、181に関する処理をそれぞれ実行するエージェントA171、A181、及びサブユニット182に関する処理を実行するエージェントA182が利用される。エージェントA171は、メインユニット171との間でコマンドのやりとりを実施して、F/Wの更新処理を進める。同様に、エージェントA181、A182は、それぞれメインユニット181、サブユニット182との間でコマンドのやりとりを実施して、F/Wの更新処理を進める。
COMP情報201aは、上記のようなエージェント(エージェントA171、A181、A182)と、ユニット(メインユニット171、181、サブユニット182)との関係を規定する情報である。図7に示すように、COMP情報201aは、コンポーネントとユニットとを対応付ける。
また、COMP情報201aは、各エージェントの種別(メイン、サブ)、及びサブエージェント(エージェントA182)の所属先(エージェントA181)を含む。但し、メインユニットに対応するエージェントの種別が「メイン」、サブユニットに対応するエージェントの種別が「サブ」である。また、そのサブユニットが属するメインユニットに対応するエージェント(メイン)に、種別が「サブ」のエージェントが所属する。さらに、COMP情報201aは、各ユニットにおける更新後のF/W版数を含む。
進行管理テーブル201bには、図8に示すように、F/W版数に関する情報と、処理段階(保守モード設定、F/W取得、F/W組込み、再起動、保守モード解除、更新完了)に関する情報とが含まれる。図8は、第2実施形態に係る進行管理テーブルの一例を示した図である。
F/W版数の項目は「更新」、「稼働」に分かれている。「更新」の欄には、更新により新たに組み込まれるF/W版数が記録される。「稼働」の欄には、更新処理の開始時に「更新」欄のF/W版数が記録される。
保守モード設定は、対象となるユニットにおける通常運用時の処理を禁止する動作モード(保守モード)に設定する処理である。つまり、保守モードは、対象となるユニットがF/Wの更新に関する処理を実行する動作モードである。
例えば、対象となるユニットが記憶装置102やテープライブラリ103である場合、保守モードは、ホストコンピュータ300から依頼されるアクセス要求の受付を禁止する動作モードである。F/W取得は、各ユニットが監視サーバ200からF/Wを取得(ダウンロード)する処理である。F/W組込みは、各ユニットがメモリ上のF/W格納領域に新たなF/Wを格納し、起動時に新たなF/Wを読み込むように設定する処理である。
再起動は、各ユニットが一旦動作を停止し、再び起動する処理である。この起動時に各ユニットは新たなF/Wを読み込む。保守モード解除は、上記の保守モードから、ホストコンピュータ300によるアクセス要求を受け付ける動作モードに設定を変更する処理である。更新完了は、全てのエージェントによる更新の処理が完了し、F/Wの更新対象となる全てのユニットが保守モードを解除して運用を再開した状態を示す。
保守モード設定、F/W取得、F/W組込み、再起動、保守モード解除の各項目は「順位」、「状態」に分かれている。「順位」の欄には、更新順序を規定するコード値(順位指定コード)が記録される。「状態」の欄には、各段階における処理の進行状況に応じてコード値(動作状態コード)が記録される。順位指定コード及び動作状態コードは、各エージェントについて進行管理テーブル201bに記録される。そのため、進行管理テーブル201bの内容は、各ユニットにおける更新処理の進行状況を反映したものとなる。
なお、順位指定コード及び動作状態コードのコード値は図9のように意味付けられている。図9は、第2実施形態に係るコード表の一例を示した図である。図9の例では、コード値として、99、0、10、11、…、19などの値が予め設定されている。
順位指定コードのコード値は、原則として、小さいほど高順位であることを意味している。但し、順位指定コードのコード値が99の場合、該当する段階の処理(対象処理)を実行しない(非実行)こと、又は対象処理を実行するか否かを判定しない(開始判定への不参加)ことを意味する。また、順位指定コードのコード値が0の場合、対象処理を先行条件なく(他のエージェントの進行状況と無関係に)実行することを意味する。
また、順位指定コードのコード値10は、対象処理を1番目の順位で実行することを意味する。このように、順位指定コードにおける0と99を除くコード値は、対象処理を実行する順位を意味する。また、図9の例では、対象処理の実行順位を意味する順位指定コードのコード値を2桁以上の数字で表現する。なお、説明の都合上、以下では、0を除くコード値の桁数を2桁とする。
順位指定コードで1桁目が0のコード値は、属性がメインのエージェントが対象処理を実行する順位を表す。一方、1桁目が1から9までのコード値は、属性がサブのエージェントが対象処理を実行する順位を表す。例えば、順位指定コードのコード値11は、1番目に対象処理を実行するメインのエージェントに所属するサブのエージェントの中で、1番目に対象処理を実行することを意味する。このように、コード値の1桁目及び2桁目以上の桁に意味を持たせることで、対象処理の実行順序を階層的に管理できる。
動作状態コードのコード値は、対象処理の実行状態を表す。動作状態コードのコード値99は、対象処理が終了した状態(対象処理の終了状態)を表す。また、動作状態コードのコード値0は、対象処理が未実行の状態(対象処理の未実行)又は先行条件なく対象処理が実行されうる状態(無条件実行)を表す。
動作状態コードのコード値10は、1番目に対象処理を実行するエージェントが対象処理を実行中の状態(対象処理の実行中)を表す。つまり、動作状態コードのコード値10は、順位指定コードのコード値10に対応する実行順序の処理が実行中の状態を表す。動作状態コードのコード値11以降も同様に、そのコード値と同じ順位指定コードのコード値に対応する実行順序の処理が実行中の状態を表す。このように、順位指定コードと動作状態コードとを関連付けて管理することで、対象処理の実行状態を容易に管理できる。
なお、複数のエージェントに同じ順位指定コードが割り当てられることがある。同じ順位指定コードが割り当てられている複数のエージェントは、対応するユニットに対して同時に該当する処理を実行させることができる。
図8の例では、エージェントA181、A182の再起動、保守モード解除の欄に同じ値が割り当てられている。この場合、エージェントA181は、サブユニット182の再起動と同じタイミングでメインユニット181を再起動させることができる。他方、エージェントA182は、メインユニット181の再起動と同じタイミングでサブユニット182を再起動させることができる。保守モード解除の処理についても同様である。
再び図6を参照する。事前処理部202は、F/Wの更新を実施する際に、事前に進行管理テーブル201bにコード値を設定し、各ユニットに提供されるF/Wを準備する。なお、コード値の初期値はユーザ又は管理者が予め設定する。そして、事前処理部202は、予め設定された初期値に基づいて進行管理テーブル201bにコード値を設定する。
また、事前処理部202は、メインユニット171、181、サブユニット182に対応するエージェントA171、A181、A182を生成する。また、メインユニット171、181、サブユニット182に提供されるF/Wの集合が1つのファイルとして用意されている場合、事前処理部202は、その集合から各ユニットに提供されるF/Wを抽出する。このように、事前処理部202は、エージェントA171、A181、A182がF/Wの更新処理を実行できる状態に事前準備を実施する。
更新処理部203は、事前処理部202が生成したエージェントA171、A181、A182を起動させ、エージェントA171、A181、A182を介してF/Wの更新処理を実行する。エージェントA171、A181、A182は、それぞれ進行管理テーブル201bを参照し、順位指定コードに基づく実行順序でF/Wの提供やF/Wの組込み制御などを実施する。
[2−3.処理の流れ]
以下、フロー図やシーケンス図などを参照しながら、事前処理部202及び更新処理部203が実行する処理の内容及び処理の流れについて、さらに説明する。
(事前処理の流れ)
図10を参照しながら、事前処理部202が実行する処理(事前処理)の流れについて説明する。図10は、第2実施形態に係る事前処理の流れを示したフロー図である。
(S101)事前処理部202は、コード値を設定済の進行管理テーブル201bが記憶部201にあるか否かを判定する。設定済の進行管理テーブル201bがある場合、処理はS106へと進む。一方、設定済の進行管理テーブル201bがない場合、処理はS102へと進む。
(S102)事前処理部202は、各ユニットに割り当てるエージェントを生成し、生成したエージェントを各ユニットに割り当てる。
例えば、事前処理部202は、メインユニット171に割り当てるエージェントA171を生成し、メインユニット171にエージェントA171を割り当てる。そして、事前処理部202は、COMP情報201aのメインユニット171に対応する欄に、エージェントA171の種別(メイン)及び識別情報を記録する(図7を参照)。同様に、事前処理部202は、エージェントA181、A182を生成し、エージェントA181、A182の情報をCOMP情報201aに記録する。
(S103)事前処理部202は、進行管理テーブル201bを生成する。このとき、事前処理部202は、図8に示したように、F/W版数、保守モード設定、F/W取得、F/W組込み、再起動、保守モード解除、更新完了の各項目に対応するコード値の記入欄を有する進行管理テーブル201bを生成する。コード値の記入欄は、S102で生成されたエージェント毎に設けられる。図8の例では、エージェントA171、A181、A182にそれぞれ対応する記入欄が設けられている。
なお、事前処理部202は、F/W版数の項目については「更新」、「稼働」の欄を設け、保守モード設定、F/W取得、F/W組込み、再起動、保守モード解除の項目については「順位」、「状態」の欄を設ける。F/W版数の「更新」欄には、更新後に各ユニットに組み込まれるF/Wの版数が記録される。また、F/W版数の「稼働」欄には、更新処理の開始時に「更新」欄のF/W版数が記録される。「順位」欄には順位指定コードのコード値が記録される。「状態」欄には、動作状態コードのコード値が記録される。
但し、S103の時点で、事前処理部202は、全ての欄に0を入れた進行管理テーブル201bを生成する。
(S104)事前処理部202は、COMP情報201a(図7を参照)に予め設定されているF/W版数の値を進行管理テーブル201bにおけるF/W版数の「更新」欄に設定する。例えば、事前処理部202は、エージェントA171に対応するF/W版数の「更新」欄にCOMP情報201aから読み出した値「V01」を設定する。エージェントA181、A182に対応する「更新」欄の値も同様に設定される。
(S105)事前処理部202は、進行管理テーブル201bの各項目にある「順位」欄に予め設定されている順位指定コードのコード値を設定する。
例えば、保守モードの設定を実施する際、メインユニット181をメインユニット171に先行して実施する必要がある場合、エージェントA181に対応するコード値は、エージェントA171に対応するコード値より小さい値に設定される。図8の例では、保守モード設定の「順位」欄で、エージェントA171に対応するコード値は30に設定され、エージェントA181に対応するコード値は20に設定されている。この場合、コード値が小さいエージェントA181の処理が先行して実行される。
また、エージェントA181に所属するサブのエージェントA182に対しては、エージェントA181に対応するコード値と2桁目が同じコード値(この例では21)が設定される。そのため、エージェントA171よりもコード値が小さいエージェントA182の処理がエージェントA171の処理に先行して実行される。つまり、この例では、保守モードの設定に関して、コンポーネント108の処理がコンポーネント107の処理に先行して実行される。
このように、コード値の桁に意味を持たせることで、コンポーネントに対応するユニットのグループ単位で処理の実行順序を管理することができる。事前処理部202は、保守モード設定の他、F/W取得、F/W組込み、再起動、保守モード解除についても同様に「順位」欄に順位指定コードのコード値を記録する。なお、同じ項目について順位指定コードのコード値が同じ値に設定されている場合、同じ値に設定されているエージェントは並行して対象処理を実行することができる。
(S106)事前処理部202は、エージェントとユニットとの間の接続を確認する。例えば、事前処理部202は、エージェントA171がメインユニット171に対して所定のコマンドを送るように指示し、メインユニット171からエージェントA171に正常な応答が返るかを確認する。正常な応答が返ってきている場合、事前処理部202は、メインユニット171とエージェントA171とが正常に接続されていると判断する。事前処理部202は、エージェントA181、A182についても同様に接続を確認する。
なお、接続の確認には、LAN通信の際に利用されるユーティリティのコマンド(例えば、"ping"(ネットワークレベルの動作確認)、"get unit status"、"show"(システムレベルの動作確認)など)を利用することができる。その他にも、監視サーバ200とコンポーネント107、108との接続方法によっては、SCSIコマンドなどを接続の確認に利用することもできる。
(S107)事前処理部202は、F/Wの集合から各ユニットに対応するF/Wを抽出し、該当エージェントに割り当てる。
例えば、コンポーネント107、108に対応するF/Wの集合が1つのファイルで与えられている場合、事前処理部202は、そのファイルからメインユニット171、181、サブユニット182にそれぞれ提供されるF/Wを抽出する。そして、事前処理部202は、メインユニット171、181、サブユニット182に対応するエージェントA171、A181、A182のそれぞれに対し、抽出したF/Wを割り当てる。
S107の処理が完了すると、図10に示した一連の処理は終了する。
(更新処理の流れ)
上記の事前処理が完了すると、更新処理部203により更新処理の実行が開始される。以下、図11を参照しながら、更新処理部203が実行する処理(更新処理)の流れについて説明する。図11は、第2実施形態に係る更新処理の流れを示したフロー図である。
(S111)更新処理部203は、進行管理テーブル201bにあるF/W版数の「稼働」欄に値(現時点で各ユニットに組み込まれているF/Wの版数)を設定する。メインユニット171、181、サブユニット182に現在組み込まれているF/Wの版数が「V00」である場合、更新処理部203は、F/W版数の「更新」欄に「V00」を設定する。なお、ここではF/W版数「V00」のF/WをF/W版数「V01」のF/Wに更新する例(図8を参照)について説明する。
(S112)更新処理部203は、事前処理部202が生成したエージェントA171、A181、A182を起動する。更新処理部203が起動したエージェントA171、A181、A182は、それぞれメインユニット171、181、サブユニット182に対するF/Wの更新処理を実行する。なお、エージェントA171、A181、A182によるF/Wの更新処理については後述する。
(S113)更新処理部203は、進行管理テーブル201bを参照し、保守モード解除の「状態」欄を監視する。保守モード解除の「状態」欄に記録されるコード値は、メインユニット171、181、サブユニット182に設定された保守モードが解除されたか否かを示す。後述するように、このコード値は、メインユニット171、181、サブユニット182におけるF/Wの組込みや再起動が完了した後、エージェントA171、A181、A182により更新される。
(S114)更新処理部203は、保守モード解除の「状態」欄にコード値99があるかを確認する。コード値99は、対象処理の終了状態を示す(図9を参照)。つまり、保守モード解除の「状態」欄にコード値99が記録されている場合、そのコード値99が記録されている欄に対応するエージェントが保守モード解除の処理を終了したことを示す。
更新処理部203は、保守モード解除の処理についてコード値99のエージェント(保守モード解除の処理を終了したエージェント)があるか否かを判定する。このとき、更新処理部203は、「更新完了」欄のコード値が99ではないエージェント(更新処理が未完了のエージェント)について上記の判定を実施する。保守モード解除の処理についてコード値99のエージェントがある場合、処理はS115へと進む。一方、保守モード解除の処理についてコード値99のエージェントがない場合、処理はS113へと進む。
(S115)更新処理部203は、保守モード解除の「状態」欄にあるコード値99に対応するエージェント(該当エージェント)について、進行管理テーブル201bにある「更新完了」欄のコード値を99に設定する。つまり、更新処理部203は、保守モード解除の処理を完了したユニットについて更新処理が全て完了したと認識し、そのユニットについてF/Wの更新が完了したことを示すコード値を進行管理テーブル201b(該当エージェントの「更新完了」欄)に記録する。
(S116)更新処理部203は、進行管理テーブル201bの「更新完了」欄が全てコード値99になったか否かを判定する。進行管理テーブル201bの「更新完了」欄が全てコード値99になっている場合(メインユニット171、181、サブユニット182におけるF/Wの更新が完了している場合)、処理はS117へと進む。一方、進行管理テーブル201bの「更新完了」欄が全てコード値99になっていない場合、処理はS113へと進む。
(S117、S118)更新処理部203は、進行管理テーブル201bにあるF/W版数の「稼働」欄を各ユニットに新たに組み込まれたF/Wの版数「V01」に更新する。そして、更新処理部203は、コンポーネント107、108の運転を再開するように制御する。つまり、ホストコンピュータ300によるコンポーネント107、108へのアクセスが許容され、仮想テープライブラリ装置100の運用が再開される。S118の処理が完了すると、図11に示した一連の処理は終了する。
(エージェントが実行する処理の流れ)
ここで、図12及び図13を参照しながら、エージェントが実行する処理(S112の処理に対応)の流れについて説明する。
図12は、第2実施形態に係るエージェントが実行する処理の流れを示したシーケンス図である。図13は、第2実施形態に係るエージェントが各段階で実行する処理の流れを示したフロー図である。なお、説明の都合上、ここでは、メインユニット171に対応するエージェントA171が実行する処理の流れについて説明する。但し、他のエージェントも更新処理を同様に実行する。
まず、図12を参照する。
(S121)エージェントA171は、メインユニット171に対して動作状態を確認するコマンドを送信する。例えば、エージェントA171は、メインユニット171との間のネットワークが正常に動作しているかを確認するコマンド("ping"など)や、メインユニット171のシステム状態を参照するコマンド("get unit status"など)を送信する。これらのコマンドを受信したメインユニット171は、そのコマンドに対する応答をエージェントA171に返す。
(S122)メインユニット171の正常動作が確認できると、エージェントA171は、進行管理テーブル201bを参照し、メインユニット171について保守モード設定の処理を実行可能であるか否かを判断する(実行可否の判断)。実行可能と判断した場合、エージェントA171は、処理をS123へと進める。一方、現時点で実行不可と判断した場合、エージェントA171は、一定時間(例えば、1〜5秒)待機し、再び実行可否の判断を実施する。なお、実行可否の判断に関する処理については後述する。
(S123)エージェントA171は、メインユニット171の動作モードを保守モード(メインユニット171における通常運用時の処理を禁止する動作モード)に設定するコマンドをメインユニット171に送信する。このコマンドを受信したメインユニット171は、動作モードを保守モードに切替え、保守モードへの切替えが完了したことを示す応答をエージェントA171に返す。
メインユニット171から応答を受信したエージェントA171は、進行管理テーブル201bにある保守モード設定の項目について、エージェントA171に対応する「状態」欄にコード値99を記録する。つまり、エージェントA171は、メインユニット171における保守モード設定の処理が終了したことを示す動作状態コードのコード値99(図9を参照)を進行管理テーブル201bに記録する。
(S124)エージェントA171は、進行管理テーブル201bを参照し、メインユニット171についてF/W取得の処理を実行可能であるか否かを判断する(実行可否の判断)。実行可能と判断した場合、エージェントA171は、処理をS125へと進める。一方、現時点で実行不可と判断した場合、エージェントA171は、一定時間(例えば、1〜5秒)待機し、再び実行可否の判断を実施する。なお、実行可否の判断に関する処理については後述する。
(S125)エージェントA171は、エージェントA171からF/Wを受信可能な状態(受信モード)に制御するコマンドをメインユニット171に送信する。このコマンドを受信したメインユニット171は、受信モードへの切替えを実施し、受信モードへの切替えが完了したことを示す応答をエージェントA171に返す。
(S126)S125でメインユニット171から応答を受けたエージェントA171は、メインユニット171のF/W更新用に事前処理部202が用意したF/Wをメインに送信する。このF/Wを受信したメインユニット171は、F/Wを正常に受信した旨を示す応答をエージェントA171に返す。
メインユニット171から応答を受信したエージェントA171は、進行管理テーブル201bにあるF/W取得の項目について、エージェントA171に対応する「状態」欄にコード値99を記録する。つまり、エージェントA171は、メインユニット171におけるF/W取得の処理が終了したことを示す動作状態コードのコード値99(図9を参照)を進行管理テーブル201bに記録する。
(S127)エージェントA171は、進行管理テーブル201bを参照し、メインユニット171についてF/W組込みの処理を実行可能であるか否かを判断する(実行可否の判断)。実行可能と判断した場合、エージェントA171は、処理をS128へと進める。一方、現時点で実行不可と判断した場合、エージェントA171は、一定時間(例えば、1〜5秒)待機し、再び実行可否の判断を実施する。なお、実行可否の判断に関する処理については後述する。
(S128)エージェントA171は、S126でメインユニット171に送信したF/Wの組込みを実施するように制御するコマンドをメインユニット171に送信する。F/Wの組込みは、F/Wをメモリ171bに格納し、起動時にメモリ171bからF/Wを読み込む状態に設定する処理である。このコマンドを受信したメインユニット171は、S126でメインユニット171から受信したF/Wの組込みを実施し、F/Wの組込みが完了したことを示す応答をエージェントA171に返す。
メインユニット171から応答を受信したエージェントA171は、進行管理テーブル201bにあるF/W組込みの項目について、エージェントA171に対応する「状態」欄にコード値99を記録する。つまり、エージェントA171は、メインユニット171におけるF/W組込みの処理が終了したことを示す動作状態コードのコード値99(図9を参照)を進行管理テーブル201bに記録する。
(S129)エージェントA171は、進行管理テーブル201bを参照し、メインユニット171について再起動の処理を実行可能であるか否かを判断する(実行可否の判断)。実行可能と判断した場合、エージェントA171は、処理をS130へと進める。一方、現時点で実行不可と判断した場合、エージェントA171は、一定時間(例えば、1〜5秒)待機し、再び実行可否の判断を実施する。なお、実行可否の判断に関する処理については後述する。
(S130)エージェントA171は、再起動を実施するように制御するコマンド("reboot"など)をメインユニット171に送信する(再起動指示)。このコマンドを受信したメインユニット171は、再起動を実施し、メモリ171bからF/Wを読み込んで起動した後、再起動が完了したことを示す応答をエージェントA171に返す。
メインユニット171から応答を受信したエージェントA171は、進行管理テーブル201bにある再起動の項目について、エージェントA171に対応する「状態」欄にコード値99を記録する。つまり、エージェントA171は、メインユニット171における再起動の処理が終了したことを示す動作状態コードのコード値99(図9を参照)を進行管理テーブル201bに記録する。
(S131)エージェントA171は、進行管理テーブル201bを参照し、メインユニット171について保守モード解除の処理を実行可能であるか否かを判断する(実行可否の判断)。実行可能と判断した場合、エージェントA171は、処理をS132へと進める。一方、現時点で実行不可と判断した場合、エージェントA171は、一定時間(例えば、1〜5秒)待機し、再び実行可否の判断を実施する。なお、実行可否の判断に関する処理については後述する。
(S132)エージェントA171は、メインユニット171の動作モードを保守モードから通常の動作モード(メインユニット171における通常運用時の処理を許容する動作モード)に設定するコマンドをメインユニット171に送信する。このコマンドを受信したメインユニット171は、動作モードを保守モードから通常の動作モードに切替え、保守モードの解除が完了したことを示す応答をエージェントA171に返す。
メインユニット171から応答を受信したエージェントA171は、進行管理テーブル201bにある保守モード解除の項目について、エージェントA171に対応する「状態」欄にコード値99を記録する。つまり、エージェントA171は、メインユニット171における保守モード解除の処理が終了したことを示す動作状態コードのコード値99(図9を参照)を進行管理テーブル201bに記録する。
S132の処理が完了すると、図12に示した一連の処理は終了する。
次に、図13を参照し、実行可否の判断に関する処理(S122、S124、S127、S129、S131の処理に対応)について説明する。
(S141)エージェントA171は、現段階の処理順序を規定する項目(該当項目)の「順位」欄にあるコード値を「状態」欄にコピーする。なお、該当項目は、S122の処理では「保守モード設定」、S124の処理では「F/W取得」、S127の処理では「F/W組込み」、S129の処理では「再起動」、S131の処理では「保守モード解除」となる。
(S142)エージェントA171は、該当項目について、他のエージェント(エージェントA181、A182)に対応する「状態」欄のコード値を参照し、コード値0に対応するエージェントを検索する。
(S143)コード値0のエージェントがある場合、処理はS144へと進む。一方、コード値0のエージェントがない場合、処理はS145へと進む。
(S144)エージェントA171は、コード値0のエージェントについては該当項目の「順位」欄にあるコード値を参照する。つまり、該当項目に対応する処理の実行可否を判断するに際し、エージェントA171は、「状態」欄のコード値が0のエージェントについては「順位」欄のコード値を判断の基準に利用する。
図9に示したように、コード値0は先行条件なく無条件で該当処理を実行することを意味する。つまり、コード値0のエージェントは、他のエージェントが同じ項目の処理を実行中でも無条件に処理を実行できる。言い換えると、コード値0のエージェントは該当項目について他のエージェントとの関連性がない(処理の実行順序に制限がない)。そのため、他のエージェントも該当処理の実行可否を判断する際にコード値0のエージェントを考慮せずとも正常に処理を実行することができる。そこで、エージェントA171は、コード値0のエージェントについて「順位」欄のコード値を参照する。
(S145)エージェントA171は、自身(エージェントA171)に対応する該当項目の「状態」欄にあるコード値よりもコード値が小さい他のエージェントがあるか否かを判定する。つまり、エージェントA171は、自身に先行して該当項目の処理を実行するように処理順序が規定されている他のエージェントがあるか否かを判定する。
エージェントA171のコード値よりもコード値が小さい他のエージェントがある場合、処理はS146へと進む。エージェントA171のコード値よりもコード値が小さい他のエージェントがない場合、処理はS147へと進む。なお、同じコード値に対応する他のエージェントがある場合も、処理はS147へと進む。
(S146)エージェントA171は、一定時間(例えば、1〜5秒)待機する。S146の処理が完了すると、処理はS142へと進む。
(S147)エージェントA171は、現段階の処理(該当項目の処理)を実行する。例えば、S122の処理では「保守モード設定」の処理、S124の処理では「F/W取得」の処理、S127の処理では「F/W組込み」の処理、S129の処理では「再起動」の処理、S131の処理では「保守モード解除」の処理が実行される。
(S148)エージェントA171は、該当項目の「状態」欄にあるコード値を99に設定する。つまり、エージェントA171は、該当項目の処理が完了したことを示す動作状態コードを進行管理テーブル201bに記録する。S148の処理が完了すると、図13に示した一連の処理は終了する。
以上、更新処理の流れについて説明した。
(更新処理の進行過程)
ここで、図14を参照しながら、更新処理の進行過程について説明する。図14は、第2実施形態に係る更新処理の進行過程の一例を示した図である。
図14の例は、エージェントA171、A181、A182が「保守モード設定」(P1)、「F/W取得」(P2)、「F/W組込み」(P3)、「再起動」(P4)、「保守モード解除」(P5)の処理順序を制御する様子を示している。
上述した進行管理テーブル201bを利用することで、図14に示すように、エージェントA171、A181、A182は、並行して進められる処理を並行に進め、処理の先後関係がある処理は順序を守って処理を進めることができる。そのため、エージェントA171、A181、A182の間における処理の先後を考慮しながら、P1からP5までの処理を効率的に進めることが可能になる。
例えば、コンポーネント107とコンポーネント108との間では処理の先後が規定されているが、コンポーネント108に含まれるメインユニット181とサブユニット182との間では処理を並行に実行できるとする。この場合、2桁のコード値で管理される進行管理テーブル201bを利用することで、エージェントA171における処理と、エージェントA181、A182のグループにおける処理との間のタイミング制御を容易に実現することができる。
[2−4.変形例]
これまでは、説明の都合上、コンポーネントモデルを利用して全てのコンポーネントのF/Wを一斉に更新する仕組みについて説明してきた。但し、第2実施形態の技術は、F/Wの対象となるコンポーネントの一部を先に更新し、所定の時間後に残りのコンポーネントを更新するような時間差制御を実施するシステムにも適用可能である。
例えば、バックエンドのテープライブラリ103が担う役割の1つは、TVCとして機能する記憶装置102の空き領域が不足しそうなタイミングでデータをバックアップすることにある。また、テープライブラリ103は、バックアップのために大容量の可搬記憶媒体であるテープ132a、132bにデータを移動する役割も担う。
こうした役割を考慮すると、ホストコンピュータ300から依頼されるアクセス要求に対しての即応性が低いテープライブラリ103についてはF/Wの更新タイミングに時間差を設けることが可能である。例えば、テープライブラリ103の更新処理を先に実施し、その間に生じたアクセス要求については記憶装置102で対応し、その更新処理が完了したタイミングで記憶装置102のF/Wを更新する仕組みなども実現可能である。
上記のように、コンポーネントやユニットの役割に応じて更新処理のタイミングをずらすことで、一部のコンポーネントやユニットによる運用の継続が可能になり、F/Wの更新に伴う運用の停止時間を短縮することが可能になる。
なお、テープライブラリ103の更新タイミングに時間差を設ける場合、テープライブラリ103を制御する仮想テープ制御装置101内のハードウェア要素もテープライブラリ103と同じ更新タイミングに設定することができる。更新タイミングをずらす場合、運用を継続するユニットについては進行管理テーブル201bの該当欄にコード値99を記録しておき、F/Wを更新するユニットについて更新処理部203が上述した更新処理を実行する。このように、進行管理テーブル201bを利用することで、細かく更新タイミングを制御する操作が容易になるという利点もある。
以上、第2実施形態について説明した。
10 更新制御装置
11 記憶部
11a 更新情報
12 制御部
21、22、23 処理部
21a、22a、23a 格納領域
FW#11、FW#12、FW#13 制御プログラム

Claims (7)

  1. 複数の処理部の各々に設定された制御プログラムを更新する更新制御装置であって、
    前記複数の処理部における前記制御プログラムの更新順序及び進捗状況を示す更新情報と、前記複数の処理部の各々に提供される新たな制御プログラムとを記憶する記憶部と、
    前記複数の処理部に前記新たな制御プログラムを提供し、前記複数の処理部のうち更新が完了した処理部の情報を前記進捗状況として前記更新情報に記録し、前記進捗状況に基づいて、前記更新情報が示す更新順序で前記制御プログラムが更新されるように前記複数の処理部における再起動のタイミングを制御する制御部と
    を有する、更新制御装置。
  2. 前記更新情報は、前記複数の処理部が前記新たな制御プログラムを取得する順序を示す情報を含み、
    前記制御部は、前記取得する順序で前記複数の処理部が前記新たな制御プログラムを取得するように前記複数の処理部を制御する
    請求項1に記載の更新制御装置。
  3. 前記更新情報は、前記制御プログラムの更新に関する処理を実行する動作モードを前記複数の処理部に設定する順序を示す情報を含み、
    前記制御部は、前記設定する順序で前記複数の処理部の動作モードが設定されるように前記複数の処理部を制御する
    請求項2に記載の更新制御装置。
  4. 前記複数の処理部の各々は、前記制御プログラムを格納するための記憶領域を有し、起動時に前記記憶領域から前記制御プログラムを読み出して前記設定を有効にし、
    前記更新情報は、前記複数の処理部が前記新たな制御プログラムを前記記憶領域に格納する処理の実行順序を示す情報を含み、
    前記制御部は、前記格納する処理の実行順序で前記複数の処理部が前記新たな制御プログラムを前記記憶領域に格納するように前記複数の処理部を制御する
    請求項3に記載の更新制御装置。
  5. 前記更新情報は、前記複数の処理部が前記再起動を実行する順序を示す情報を含み、
    前記複数の処理部のうち同時に前記再起動を実行可能な2以上の処理部がある場合、前記再起動を実行する順序を示す情報には、該2以上の処理部が同じタイミングで前記再起動するように該順序が規定され、
    前記制御部は、前記2以上の処理部が同じタイミングで前記再起動を実施するように前記複数の処理部を制御する
    請求項1〜4のいずれか1項に記載の更新制御装置。
  6. 前記更新制御装置は、データを一時的に格納する記憶領域を有するストレージ装置と、前記記憶領域に格納されたデータを可搬記録媒体にバックアップするライブラリ装置とに接続され、
    前記制御部は、前記複数の処理部として、前記ストレージ装置に含まれる処理部の集合と、前記ライブラリ装置に含まれる処理部の集合とを管理し、前記ライブラリ装置について前記制御プログラムの更新を実施している間、前記ストレージ装置の運用を継続させる
    請求項1〜5のいずれか1項に記載の更新制御装置。
  7. 複数の処理部の各々に設定された制御プログラムを更新するコンピュータに、
    記憶部から、前記複数の処理部における前記制御プログラムの更新順序及び進捗状況を示す更新情報と、前記複数の処理部の各々に提供される新たな制御プログラムとを取得し、
    前記複数の処理部に前記新たな制御プログラムを提供し、前記複数の処理部のうち更新が完了した処理部の情報を前記進捗状況として前記更新情報に記録し、前記進捗状況に基づいて、前記更新情報が示す更新順序で前記制御プログラムが更新されるように前記複数の処理部における再起動のタイミングを制御する
    処理を実行させる、更新制御プログラム。
JP2016157791A 2016-08-10 2016-08-10 更新制御装置、及び更新制御プログラム Active JP6744547B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016157791A JP6744547B2 (ja) 2016-08-10 2016-08-10 更新制御装置、及び更新制御プログラム
US15/617,690 US10296218B2 (en) 2016-08-10 2017-06-08 Update control method, update control apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016157791A JP6744547B2 (ja) 2016-08-10 2016-08-10 更新制御装置、及び更新制御プログラム

Publications (2)

Publication Number Publication Date
JP2018025995A true JP2018025995A (ja) 2018-02-15
JP6744547B2 JP6744547B2 (ja) 2020-08-19

Family

ID=61158931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016157791A Active JP6744547B2 (ja) 2016-08-10 2016-08-10 更新制御装置、及び更新制御プログラム

Country Status (2)

Country Link
US (1) US10296218B2 (ja)
JP (1) JP6744547B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021075361A1 (ja) * 2019-10-18 2021-04-22

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032015B (zh) * 2019-12-24 2022-02-18 中国科学院沈阳自动化研究所 一种用于精密运动控制的通信方法
JP2022100031A (ja) * 2020-12-23 2022-07-05 キヤノン株式会社 処理装置、装置、システム、方法およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2357382A1 (en) 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US20040187025A1 (en) * 2003-03-20 2004-09-23 Toshiba Tec Kabushiki Kaisha Remote data update system
JP2012073862A (ja) 2010-09-29 2012-04-12 Canon Inc 画像形成装置、そのファームウェア更新制御方法、及びファームウェア更新制御プログラム
AU2011379006A1 (en) * 2011-10-11 2014-05-08 Sandvik Mining And Construction Oy Arrangement for updating a control system
JP5825123B2 (ja) * 2012-02-01 2015-12-02 富士通株式会社 制御装置、制御システムおよび制御方法
JP6108219B2 (ja) 2013-02-28 2017-04-05 ブラザー工業株式会社 更新管理プログラム、更新管理装置、及び、画像処理システム
JP6311282B2 (ja) * 2013-11-13 2018-04-18 富士通株式会社 起動制御プログラム、装置、及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021075361A1 (ja) * 2019-10-18 2021-04-22

Also Published As

Publication number Publication date
US10296218B2 (en) 2019-05-21
JP6744547B2 (ja) 2020-08-19
US20180046379A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
US20120144110A1 (en) Methods and structure for storage migration using storage array managed server agents
US8762648B2 (en) Storage system, control apparatus and control method therefor
JP4486609B2 (ja) ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
US8381029B2 (en) Processing method, storage system, information processing apparatus, and computer-readable storage medium storing program
US8078815B2 (en) Power-saving-backup management method
US20120117555A1 (en) Method and system for firmware rollback of a storage device in a storage virtualization environment
TW201011538A (en) Managing cache data and metadata
US10809997B2 (en) Information processing apparatus and program update control method
JP2007293442A (ja) ストレージシステム及びその制御方法
US7216210B2 (en) Data I/O system using a plurality of mirror volumes
US20100138625A1 (en) Recording medium storing update processing program for storage system, update processing method, and storage system
US8108637B2 (en) Information processing system, controlling method in information processing system, and managing apparatus to manage remote copy in consideration of saving power
JP6744547B2 (ja) 更新制御装置、及び更新制御プログラム
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
JP5284604B2 (ja) 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム
US20150242147A1 (en) Storage management apparatus, storage apparatus, and computer readable storage medium
JP2015014906A (ja) データ管理装置、及びデータ管理装置の制御方法
US20080177960A1 (en) Export of Logical Volumes By Pools
US8225038B2 (en) Storage array boot and configuration
US20130031320A1 (en) Control device, control method and storage apparatus
JP2009042932A (ja) 記憶制御装置の制御プログラムの更新方法
US11079947B2 (en) Ensuring hardware-management-console powerup after external AC power loss
JP5807942B2 (ja) ディスクアレイ装置及びその制御方法
US9229797B1 (en) Deferred drive processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200615

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: 20200630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200713

R150 Certificate of patent or registration of utility model

Ref document number: 6744547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150