JP6863037B2 - ストレージ制御装置およびストレージ制御プログラム - Google Patents

ストレージ制御装置およびストレージ制御プログラム Download PDF

Info

Publication number
JP6863037B2
JP6863037B2 JP2017083710A JP2017083710A JP6863037B2 JP 6863037 B2 JP6863037 B2 JP 6863037B2 JP 2017083710 A JP2017083710 A JP 2017083710A JP 2017083710 A JP2017083710 A JP 2017083710A JP 6863037 B2 JP6863037 B2 JP 6863037B2
Authority
JP
Japan
Prior art keywords
firmware
electronic device
storage
switching
electronic
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.)
Active
Application number
JP2017083710A
Other languages
English (en)
Other versions
JP2018181195A (ja
Inventor
智彦 室山
智彦 室山
雅裕 吉田
雅裕 吉田
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 JP2017083710A priority Critical patent/JP6863037B2/ja
Priority to US15/911,247 priority patent/US10977107B2/en
Publication of JP2018181195A publication Critical patent/JP2018181195A/ja
Application granted granted Critical
Publication of JP6863037B2 publication Critical patent/JP6863037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。
ストレージ装置には多数のモジュール(電子部品,電子装置)が備えられている。例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置を格納するデバイスエンクロージャには、IOM(Input Output Module)やFEM(Fan Expander Module)等のモジュールが備えられている。また、近年のストレージの大容量化や高密度化に伴い、ストレージ装置に搭載されるモジュールの数も増加している。
これらのモジュールでは、それぞれファームウェアが実行されている。ストレージ装置の安定化や運用の効率化を図ったり新機能を利用できるようにするためには、モジュールに最新のファームウェアを適用することが不可欠である。
また、ファームウェアの適用は、装置の運用状態を維持したまま、搭載された全てのモジュールに対して行なうことが望ましい。従って、モジュールにファームウェアを適用する機能の重要性は高い。
上述の如く、ストレージ装置は複数のモジュールを備え、各モジュールがそれぞれ独立したファームウェアで動作する。それぞれのモジュールは、一般に、ファームウェアを書き込む記憶領域として稼働面側領域と非稼働面側領域との2つの領域を有する。
モジュールに更新用のファームウェア(以下、新ファームウェアという)を適用する際には、先ず、非稼働面側領域に新ファームウェアを書き込む。その後、新ファームウェアが書き込まれた非稼働面側領域を稼働面側領域に切り替えてから、モジュールのリセット(リブート,再起動)を行ない、稼働面側領域に書き込まれた新ファームウェアを用いて起動させる。なお、以下、新ファームウェアを適用することを、ファームウェアの改版または単に改版という場合がある。
システムを運用状態に維持したままファームウェアの切り替えを行なう処理を、活性ファームウェア適用処理という場合がある。活性ファームウェア適用処理においては、複数のモジュールを前半モジュール群と後半モジュール群との2つの系統のモジュール群に分けて、オンライン状態を維持したまま片系ずつファームウェア改版を行なう。
図13および図14はそれぞれ従来の活性ファームウェア適用処理を説明するための図である。図13はローエンドモデルのストレージ装置における活性ファームウェア適用処理を、図14はハイエンドモデルのストレージ装置における活性ファームウェア適用処理を、それぞれ例示する図である。
活性ファームウェア適用処理は、モジュールに備えられたメモリ等の記憶領域(非稼働面側領域)に予め新ファームウェアを書き込んでおいた状態から開始する。活性ファームウェア適用処理は、非稼働面側領域への新ファームウェア書き込み後において、前半と後半との2つの段階に分けて実施される。
図13に例示するローエンドモデルのストレージ装置においては、前半に、IOM(Input Output Module)#1系,FEM(Fan Expander Module)#1系のモジュールの改版を行なった後に、CM(Controller Module)#1に備えられた各モジュールの改版を行なう。そして、後半において、CM#0に備えられた各モジュールの改版を行なった後に、IOM#0系,FEM#0系のモジュール改版を行なう。
図14に例示するハイエンドモデルのストレージ装置においては、前半に、SVC(Service Controller)#1の改版を行なった後に、IOM#1系,FEM#1系のモジュールの改版を行ない、その後、CEx−CM#1に備えられた各モジュールの改版を行なう。
後半においては、CEx−CM#0に備えられた各モジュールの改版を行なった後に、IOM#0系,FEM#0系のモジュール改版を行ない、その後、SVC#0の改版を行なう。
図15は従来のストレージ装置におけるIOMのファームウェアの切り替え手順を説明するための図である。
図15に示すストレージ装置500は、CE(Controller Enclosure)510と、複数のDE(Device Enclosure)520−1〜520−4とを備える。DE520−1,520−2,520−3,520−4を、それぞれDE#00,#01,#02,#03という場合がある。
CE510には、CM−EXP(Controller Module−Expander)511と、二重化された図示しない2つのCM(Controller Module)とが備えられる。このCE510に備えられるCMが、DE520−1〜520−4に格納される図示しない記憶装置に対するデータアクセスの制御を行なう。
CM−EXP511には、DE520−1〜520−4がカスケード接続されている。
DE520−1はIOM521−1,521−2を備えており、これにより、DE520−1において、IOM521−1,521−2が二重化されている。
同様に、DE520−2はIOM521−3,521−4を、DE520−3はIOM521−5,521−6を、DE520−4はIOM521−7,521−8を、それぞれ備える。
以下、IOM521−1をDE#00−IOM#0と表す場合がある。同様に、IOM521−2をDE#00−IOM#1と、IOM521−3をDE#01−IOM#0と、IOM521−4をDE#01−IOM#1と表す場合がある。また、IOM521−5をDE#02−IOM#0と、IOM521−6をDE#02−IOM#1と、IOM521−7をDE#03−IOM#0と、IOM521−8をDE#03−IOM#1と、それぞれ表す場合がある。
なお、以下、IOMを示す符号としては、複数のIOMのうち1つを特定する必要があるときには符号521−1〜521−8を用いるが、任意のIOMを指すときには符号521を用いる。また、以下、DEを示す符号としては、複数のDEのうち1つを特定する必要があるときには符号520−1〜520−4を用いるが、任意のDEを指すときには符号520を用いる。
CM−EXP511には、IOM521−1,IOM521−3,IOM521−5およびIOM521−7が、この順にカスケード接続されている。このCM−EXP511からIOM521−1,IOM521−3,IOM521−5およびIOM521−7が接続される経路を0系の経路という場合がある。0系の経路に接続された各IOM521は、CE510に備えられた2つのCMのうち、一方のCM(0系のCM)により管理される。
また、CM−EXP511には、IOM521−8,IOM521−6,IOM521−4およびIOM521−2が、この順にカスケード接続されている。このCM−EXP511からIOM521−8,IOM521−6,IOM521−4およびIOM521−2が接続される経路を1系の経路という場合がある。1系の経路に接続された各IOM521は、CE510に備えられた2つのCMのうち、0系のCMとは異なるCM(1系のCM)により管理される。また、1系の経路は、0系の経路に対してリバースケーブリングされている。
ストレージ装置500においては、1系の経路のIOM521が前半モジュール群に、また、0系の経路のIOM521が後半モジュール群に、それぞれ属し、二重化されたCMと同様に、前半後半で片系ずつファームウェアの切り替えが行なわれる。
上述の如く、ストレージ装置500に複数のDE520が搭載される場合に、複数のIOM521がCM−EXP511に系毎にカスケード状態で接続される。このため、CM−EXP511に最も近い(根元の)IOM521からリブートを行なうと、その先のIOM521の制御を行なうことができなくなる。
図15に示す例においては、0系の経路におけるIOM521−1および1系の経路におけるIOM521−8が、それぞれCM−EXP511に最も近いIOM521に相当する。これらのIOM521−1,IOM521−8のリブートを行なうと、このリブート処理中は同系の経路上の他のIOM521の制御を行なうことができない。
そのため、リブートはCM−EXP511から最も遠い末端のIOM521から順に行ない、また、根元のIOM521から組み込み監視を順に行なう。
ファームウェアの切り替えにおいては、切り替え作業中のIOM521がI/O(Input/Output)経路として使用されることを防止するために、装置構成を管理する情報(装置構成管理情報)において、この切り替え対象のIOM521に対してファーム切替中であることを示す特別なステータスを設定し、順次リブートを行ないシステムへの組込処理を行なう。
さて、ストレージ装置500に搭載される各モジュールは、故障等の発生時にシステム運用を継続したままでの交換(活性交換)が可能であり、IOM521についても活性交換が可能である。ストレージ装置500のCMにおいては、IOM521の抜き出しを検出するために、一定時間ごとにIOM521に対して状態(IOM状態)を問い合わせる通信を行なうことでIOM521の状態を監視する監視処理が実施される。
また、各DE520内において、IOM521は、同一のDE520内に備えられたペアとなる他系のIOM521を監視し、CMからのIOM状態の問い合わせに対して、このペアのIOM521の状態を応答する機能を備える。
特開2012−79175号公報 特開2016−53855号公報
ストレージ装置500に備えられる各モジュールは、一時的に発生した不具合から復旧するためにリセット(リブート;再起動)を行なう場合がある。このような一時的なリセットは、ファームウェアの切り替え中であるか否かに関係なく発生する可能性がある。
ファームウェア切り替え中に、IOM521が一時的な不具合でリセットした場合に、リセットしたIOM521は、記憶領域に書き込み済みの新ファームウェアで起動する。新ファームウェアで起動した後のIOM521においては、記憶領域から新ファームウェアを読み出すことができない。従って、その後にCMのファームウェア管理部から行なわれるファームウェア切り替え指示に対しては、IOM521は異常応答を行なう。
ファームウェア管理部においては、ファームウェア切り替え処理において異常応答がされた場合には、異常応答を行なったモジュールを異常部品と判断し、当該モジュールを装置から切り離す縮退処理を行なう。
図16(a),(b)は従来のストレージ装置におけるファームウェア切り替え処理の過程を例示する図である。図16(a)の状態の後に、図16(b)の状態に移行する。
図16(a)においては、0系の経路において、IOM521−1,521−3,521−7に、ファーム切替中であることを示す特別なステータスとして、“CFL_BOOT”が設定されている。また、1系の経路において、IOM521−2,521−4,521−6,521−8に、正常動作中であることを示すステータスとして、“ONLINE”が設定されている。
また、この図16(a)に示すストレージ装置500においては、0系の経路上において、IOM521−7,521−5,521−3,521−1の順にリセットが行なわれる。
そして、この図16(a)に示す状態においては、IOM521−7のリセットを行なった後に、IOM521−5においてリセットが失敗し、このIOM521−5に、縮退された状態を表す“DEGRADE ”が設定されている(矢印P1参照)。
ファーム切り替え処理でのIOMリセット処理におけるIOM組み込み処理と、IOM保守によるIOM組み込み処理とが共通の処理となっている場合、CMは、当該モジュールの装置からの縮退処理において、まだリセットが行なわれていないIOM521を使用可能と認識する。
これにより、CMは、装置構成管理情報において、当該モジュールをファームウェア切り替え中を示すステータス(CFL_BOOT)から正常動作中を示すステータス(ONLINE)に変更し、正常なモジュールとして組み込んでしまう。すなわち、ファームウェアの切り替え中のステータス(CFL_BOOT)が解除されてしまう。
図16(b)においては、0系の経路において、IOM521−1,521−3のステータスが、正常動作中を示すステータスである“ONLINE”に変更されている(矢印P2,P3参照)。
CMのファームウェア管理処理部は、I/O処理で使用中であっても、ファームウェア切り替え処理を継続する場合に、縮退完了後にすでに組み込まれ、且つ正常なモジュールであるとみなされているIOM521をリセット(IOMリセット)させる。図16(b)に示す例においては、IOM521−1,521−3のリセットが行なわれている(矢印P2,P3参照)。
ここで、CMの監視処理においては、定期的にIOM521の状態を監視しており、「正常」なステータスのIOM521に対して、ポーリングにより状態を問い合わせる(IOM状態の問い合わせ)処理を行なう。従って、IOM521のステータスが“ONLINE”となることで、CMの監視処理部からIOM521に対して、ポーリングによる定期的な状態監視が行なわれる。また、DE520においてペアを成すIOM521は、相互に監視を行ない、CMの監視処理部からのIOM状態の問い合わせに対して状態を応答する。
ここで、IOM251(例えば、IOM521−3)のリセット中は、ペアとなる他のIOM521(例えばIOM521−4)と一時的に通信できなくなる。そのため、このタイミングで監視処理部がIOM251(例えば、IOM521−3)に対してIOM状態の問い合わせを行なうと、リセットしているIOM521(例えば、IOM521−3)とペアを成すIOM521(例えばIOM521−4)が抜かれたと誤検出される場合がある。これにより、これらのIOM521(例えばIOM521−3,521−4)が格納されたDE520への経路がなくなってしまうという課題がある。
1つの側面では、本発明は、活性ファームウェア適用処理を行なう際においても安定した装置運用を行なうことができるようにすることを目的とする。
このため、このストレージ制御装置は、複数の電子装置を搭載するデバイス筐体を複数備えるストレージ装置において、前記複数の電子装置を制御するストレージ制御装置であって、前記の各デバイス筐体中の前記複数の電子装置のうちの一の電子装置どうしが前記ストレージ制御装置に対してカスケード接続された第1経路系を構成するとともに、前記の各デバイス筐体中の前記複数の電子装置のうちの前記一の電子装置とは異なる他の電子装置どうしが前記ストレージ制御装置に対してカスケード接続された第2経路系を構成し、前記電子装置のファームウェアの切り替えに用いられる新ファームウェアを前記電子装置の記憶部に格納した後に、当該電子装置のファームウェアを前記新ファームウェアに切り替える前の状態で、前記第1経路系または第2経路系を構成する複数の電子装置のうちの第1の電子装置において発生した異常に基づき当該第1の電子装置を縮退させる縮退処理中に、前記第1の電子装置と同じ経路系に属するとともに前記ファームウェアの切り替え処理対象であり前記新ファームウェアを適用するためのリブート処理が行なわれた第2の電子装置と同じ経路系に属する第3の電子装置について新ファームウェアへの切り替え済みであるかを確認する確認部と、前記第3の電子装置が前記新ファームウェアへの切り替え済みでない場合に、該第3の電子装置を使用装置として組み込むことを抑止することで、前記ストレージ制御装置から該第3の電子装置への状態監視の問い合わせ実施を抑止する抑止部とを備える。
一実施形態によれば、活性ファームウェア適用処理を行なう際においても安定した装置運用を行なうことができる。
実施形態の一例としてのストレージ装置のハードウェア構成を模式的に示す図である。 実施形態の一例としてのストレージ装置の機能構成を示す図である。 実施形態の一例としてのストレージ装置におけるファームウェア切り替え進捗情報の構成を例示する図である。 実施形態の一例としてのストレージ装置におけるファームウェア版数情報の構成例を示す図である。 実施形態の一例としてのストレージ装置における部品進捗ステータス情報の構成例を示す図である。 実施形態の一例としてのストレージ装置における装置構成情報に含まれるファームウェア版数管理情報を例示する図である。 実施形態の一例としてのストレージ装置におけるファームウェア全体版数情報を例示する図である。 (a),(b)は実施形態の一例としてのストレージ装置におけるファームウェア切り替え処理の過程を例示する図である。 実施形態の一例としてのストレージ装置におけるIOMのファームウェア切り替え処理を説明するフローチャートである。 実施形態の一例としてのストレージ装置におけるファームウェア切り替え中のIOMの組み込み処理を説明するフローチャートである。 実施形態の一例としてのストレージ装置におけるIOMが組み込み可能か否かの判断手法を説明するフローチャートである。 ハイエンドのストレージシステムの構成を例示する図である。 従来の活性ファームウェア適用処理を説明するための図である。 従来の活性ファームウェア適用処理を説明するための図である。 従来のストレージシステムにおけるIOMのファームウェアの切り替え手順を説明するための図である。 (a),(b)は従来のストレージシステムにおけるファームウェア切り替え処理の過程を例示する図である。
以下、図面を参照して本ストレージ制御装置およびストレージ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)装置構成
図1は実施形態の一例としてのストレージ装置1のハードウェア構成を模式的に示す図、図2はその機能構成を示す図である。
本実施形態の一例におけるストレージ装置1は、図示しない1つもしくは2つ以上のホスト装置と、LAN(Local Area Network)ケーブル等の通信線を介して通信可能に接続され、このホスト装置に対して記憶領域を提供する。
ストレージ装置1は、後述する複数の記憶装置21を搭載し、RAID(Redundant Arrays of Inexpensive Disks)を用いて複数の記憶装置21にデータを分散し、冗長化した状態で保存する。ストレージ装置1は、CE2および複数のDE20a−1〜20a−n,20b−1〜20b−mを備える(なお、n,mはそれぞれ自然数)。
以下、DEを示す符号としては、複数のDEのうち1つを特定する必要があるときには符号20a−1〜20a−n,20b−1〜20b−mを用いるが、任意のDEを指すときには符号20を用いる。
CE2は、複数(図1に示す例では2つ)のCM10a,10bを備える。
CM10a,10bは、ストレージ装置1内の動作を制御する制御装置(コントローラ,ストレージ制御装置)であり、ホスト装置等から送信されるI/O要求に従って、DE20の記憶装置21へのデータアクセス制御等、各種制御を行なう。又、CM10a,10bは互いに同様の構成を有している。以下、CMを示す符号としては、複数のCMのうち1つを特定する場合には符号10a,10bを用い、任意のCMを指すときには符号10を用いる。また、CM10aをCM#0と、CM10bをCM#1と、それぞれ表す場合がある。
CM#0とCM#1とは、例えばPCIe(Peripheral Component Interconnect Express)バス等の通信線(図示省略)を介して通信可能に接続されており、各CM10と各DE20とは例えばバス線を介して通信可能に接続されている。
DE20は、記憶装置21やIOM23a−A1〜23a−An,23b−A1〜23b−An,23a−B1〜23a−Bm,23b−B1〜23b−Bmを搭載するデバイス筐体である。
DE20は、2つのCM#0,#1のぞれぞれとデータアクセスパスで通信可能に接続されており、それぞれ、2つのIOM23と、複数の記憶装置21もしくはFEM22とを備える。
なお、IOMを示す符号としては、複数のIOMのうち1つを特定する必要があるときには符号23a−A1〜23a−An,23b−A1〜23b−An,23a−B1〜23a−Bm,23b−B1〜23b−Bmを用いるが、任意のIOMを指すときには符号23を用いる。
図1に示す例においては、DE20a−1およびDE20b−mに2つのFEM22−1,22−2が備えられ、これら以外のDE20に、複数の記憶装置21が備えられている。
記憶装置21は、データを読み書き可能に格納する既知の装置であり、例えば、HDDやSSDである。これらの記憶装置21は、互いに同様の機能構成を備える。各DE20が備える複数の記憶装置21の一部はホットスペアとして機能する。
なお、以下、FEMを示す符号としては、複数のFEMのうち1つを特定する必要があるときには符号22−1,22−2を用いるが、任意のFEMを指すときには符号22を用いる。
FEM22は、IOM23で受領したSAS(Serial Attached Small Computer System Interface)フレームをCM10から指定された記憶装置21へ転送する処理を行なう。また、FEM22は、ファンを搭載し、DE20内の冷却も行なう。FEM22は、例えば、3.5インチ用高密度(High Density)ドライブエンクロージャ用second tier expander搭載モジュールである。
また、FEM22は、1つ以上(図1に示す例では2つ)のFEM−EXP(FEM-Expander)221を備える。FEM−EXP221は、SAS/SATA(Serial Advanced Technology Attachment)接続用のExpanderチップである。
DE20a−1はIOM23a−A1,23b−A1を備えている。同様に、DE20a−2はIOM23a−A2,23b−A2を、DE20a−nはIOM23a−An,23b−Anを、DE20b−1はIOM23a−B1,23b−B1を、DE20b−2はIOM23a−B2,23b−B2を、DE20b−mはIOM23a−Bm,23b−Bmを、それぞれ備える。これらにより、各DE20において、IOM23が二重化されている。
DE20a−1において、IOM23a−A1はFEM22−1の制御を、IOM23b−A1はFEM22−2の制御を、それぞれ行なう。同様に、DE20b−mにおいて、IOM23a−BmはFEM22−1の制御を、IOM23b−BmはFEM22−2の制御を、それぞれ行なう。
また、DE20a−2において、IOM23a−A2,23b−A2は、それぞれ記憶装置21へのデータアクセスを制御する。同様に、DE20a−nにおいて、IOM23a−An,23b−Anは、それぞれ記憶装置21へのデータアクセスを制御する。また、DE20b−1において、IOM23a−B1,23b−B1は、それぞれ記憶装置21へのデータアクセスを制御する。さらに、DE20b−2において、IOM23a−B2,23b−B2は、それぞれ記憶装置21へのデータアクセスを制御する。
後述するCM10a(CM#0)のCM−EXP14aには、IOM23a−A1,IOM23a−A2,・・・,IOM23a−Anが、この順にカスケード接続されている。また、CM−EXP14aには、IOM23a−B1,IOM23a−B2,・・・,IOM23a−Bmも、この順にカスケード接続されている。
このように、CM10aのCM−EXP14aからIOM23a−A1,IOM23a−A2,・・・,IOM23a−Amが接続される経路、およびCM−EXP14aからIOM23a−B1,IOM23a−B2,・・・,IOM23a−Bmが接続される経路を、0系の経路という場合がある。また、この0系の経路に接続されるIOM23を、IOM#0と表す場合がある。
0系の経路に接続された各IOM23は、0系のCM10a(CM#0)により管理される。
また、後述するCM10b(CM#1)のCM−EXP14bには、IOM23b−Bm,・・・,IOM23b−B2,IOM23b−B1が、この順にカスケード接続されている。また、CM−EXP14bには、IOM23b−An,・・・,IOM23b−A2,IOM23b−A1も、この順にカスケード接続されている。
このように、CM10bのCM−EXP14bからIOM23b−Bm,・・・,IOM23b−B2,IOM23b−B1が接続される経路、および、CM−EXP14bからIOM23b−An,・・・,IOM23b−A2,IOM23b−A1が接続される経路を、それぞれ1系の経路という場合がある。また、この1系の経路に接続されるIOM23を、IOM#1と表す場合がある。
1系の経路に接続された各IOM23は、1系のCM10b(CM#1)により管理される。また、1系の経路は、0系の経路に対してリバースケーブリングされている。
CM10は、種々の制御を行なうストレージ制御装置であり、図示しないホスト装置からのストレージアクセス要求(アクセス制御信号:以下、ホストI/Oという)に従って、各種制御を行なう。
CM10は、図1に示すように、CPU(Central Processing Unit)11,メモリ12,IOC13,CM−EXP14a(14b),BUD(Bootup and Utility Device)16,CM−BIOSメモリ17およびCA15を備える。
CA15は、ホスト装置や管理端末等の図示しない外部装置から送信されたデータを受信したり、CM10から出力するデータを外部装置に送信したりするアダプタである。すなわち、CA15は外部装置との間でのデータの入出力を制御する。
CA15は、例えば、NAS(Network Attached Storage)を介して外部装置と通信可能に接続するネットワークアダプタであり、例えば、LANインタフェース等である。各CM10は、CA15により図示しない通信回線を介して外部装置とNASにより接続され、I/O要求の受信やデータの送受信等を行なう。図1に示す例においては、CM10a,10bのそれぞれに2つのCA15が備えられている。
また、CA15は、SAN(Storage Area Network)を介して外部装置と通信可能に接続するネットワークアダプタであってもよい。すなわち、例えば、iSCSI(Internet Small Computer System Interface)インタフェースやFC(Fibre Channel)インタフェースであってもよい。各CM10は、CA15により図示しない通信回線を介して外部装置とSANにより接続され、I/O要求の受信やデータの送受信等を行なってもよい。
各CM10において、複数のCA15は、CM10から脱着自在に構成されたライザーカード(ドータカード)151に備えられている。
CM−EXP14a,14bは、DE20や記憶装置21等と通信可能に接続するための拡張インタフェース(Expander)であり、例えば、IC(Integrated Circuit)チップとして構成されている。このCM−EXP14a,14bは、CM10と複数の記憶装置21とを接続するスイッチとして機能する。
なお、以下、CM−EXPを示す符号としては、複数のCM−EXPのうち1つを特定する必要があるときには符号14a,14bを用いるが、任意のCM−EXPを指すときには符号14を用いる。
CM−EXP14にはDE20の記憶装置21が接続され、各CM10は、ホスト装置から受信したI/O要求に基づき、記憶装置21に対するアクセス制御を行なう。
各CM10は、CM−EXP14を介して、記憶装置21に対するデータの書き込みや読み出しを行なう。
本実施形態においては、各DE20に備えられるIOM23が、ファームウェアの切り替え対象のモジュール(電子装置,電子部品)である例について示す。以下、IOM23をモジュールもしくは部品という場合がある。
各IOM23は改版後の新ファームウェアを格納する記録領域(メモリ,記憶部)を備える。IOM23は、その起動時(リセットによる起動時,リブート時;再起動時)に、この記録領域に格納された新ファームウェアを読み出して自身に適用することで、ファームウェアの改版が行なわれる。以下、IOM23のリセットには、リブート(再起動)が含まれるものとする。
なお、IOM23に記憶領域から読み出された新ファームウェアが適用されると、記憶領域にはこの新ファームウェアが存在しない状態となり、この記憶領域から新ファームウェアを読み出すことができなくなる。
CM−BIOSメモリ17は、CM10の起動時にCPU11によって実行されるBIOS(Basic Input Output System)を格納する。
メモリ12は、Read Only Memory(ROM)及びRandom Access Memory(RAM)を含む記憶装置である。メモリ12のROMには、ソフトウェアプログラムが書き込まれている。メモリ12上のソフトウェアプログラムは、CPU11に適宜読み込まれて実行される。また、メモリ12のRAMは、一次記録メモリあるいはワーキングメモリとして利用され、CM−BIOSメモリ17から読み出されたBIOSやソフトウェアプログラムが一時的に格納される。本実施形態の一例において、メモリ12には、後述するファームウェア切り替え進捗情報201等が格納される。
IOC13は、CM10内におけるデータ転送を制御する制御装置であり、例えば、メモリ12に格納されたデータをCPU11を介することなく転送させるDMA(Direct Memory Access)転送を実現する。
BUD16は、例えば、CA15からコピーされたダンプデータを格納する記憶装置である。
CPU11は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ(マルチコアCPU)である。CPU11は、メモリ12等に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。特に、本実施形態において、CPU11は、ストレージ制御プログラムを実行することで、図2に示す、システム制御部101,保守制御部107およびバックエンド制御部108としての機能を果たす。
なお、これらのシステム制御部101,保守制御部107およびバックエンド制御部108としての機能を実現するためのプログラム(ストレージ制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
システム制御部101,保守制御部107およびバックエンド制御部108としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12のRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
バックエンド制御部108は、CM10内のファームウェアの各コンポーネントが記憶装置21に対してディスクアクセスを行なうためのドライバを備える。ファームウェアの各コンポーネントは、ディスクアクセスを行なう際に、ディスクドライバ(Disk Drv)が提供するインタフェースを経由して記憶装置21にデータアクセスを行なう。ディスクドライバはSASドライバ(SAS Drv)を経由して記憶装置21にアクセスを行なう。
SASドライバは、CM−EXP14a,14bからデバイス接続状態の変化の通知が入力されると、BC(Broadcast Change)を発行する。
システム制御部101は、本ストレージ装置1に備えられた各モジュールのファームウェアの切り替えを制御する。システム制御部101は、図2に示すように、ホットスワップ制御部102,システム監視部103,ディスクイベント部104,SASデバイス管理部105および構成管理部106としての機能を備える。
ホットスワップ制御部102は、障害が発生したモジュール(障害部品)を、本ストレージ装置1を停止(システム停止)させることなく交換(ホットスワップ)する機能を提供する。ホットスワップの対象部品が、例えば、DE20の図示しないスロットに抜き差しされて、交換された場合に、ホットスワップ制御部102は、対象部品のステータスが“ONLINE”になるまで本ストレージ装置1への組み込み処理を行なう。
システム監視部103は、本ストレージ装置1に搭載されている各モジュールの状態を監視し、検出した各状態に応じてシステムの制御を行なう。システム監視部103は、各モジュールの状態が変化した場合に、その状態に応じてモジュールの切り離し処理やステータス変更処理等の処理を実施する。
SASデバイス管理部105は、SASドメイン上のデバイスに関する情報(SAS)を管理する。SASデバイス管理部105は、バックエンド制御部108からBCが発行されると、このBCをトリガに、SASマップの作成を行なう。また、SASデバイス管理部105は、IOM23のマウント状態を認識する機能も有する。
このSASデバイス管理部105は、IOM23等のデバイスが使用可能な状態である場合に、当該デバイスを使用装置として組み込む。そして、SASデバイス管理部105は、デバイスに適用されているファームウェアが新ファームウェアである場合に、当該デバイスを使用装置として組み込む組込部として機能する。
また、SASデバイス管理部105は、バックグラウンドにおいて、SASデバイス情報に変化が発生した場合に、イベント通知(Event Notify)を発行する。
ディスクイベント部104は、バックグラウンドにおいて、SASデバイス情報に変化が発生した場合に、SASデバイス管理部105から通知されるEvent Notify をトリガに起動される。ディスクイベント部104は、SASデバイス情報のテーブルを解析して、記憶装置21の組み込みや切り離しを主に実施する。
なお、上述したシステム制御部101の各部の機能は既知であり、それらの詳細な説明は省略する。
構成管理部106は、本ストレージ装置1における各種設定情報や部品情報などのシステム全体についての情報を管理する。構成管理部106は、本ストレージ装置1に備えられる各モジュール(部品)について、構成等の各種情報を装置構成情報(図示省略)として管理する。
例えば、構成管理部106は、装置構成情報を参照することで、構成に変更が生じたデバイス(例えば、IOM23)を抽出する。
また、構成管理部106は、異常が生じたモジュールを縮退させる縮退処理を行なう機能を備える。構成管理部106は、縮退させるモジュールについて、構成管理情報において縮退済みであることを示す“DEGRADE”を設定する。
また、構成管理部106は、ファーム切り替え中のモジュールについて、構成管理情報において、ファームウェア切り替え中であることを示す特別なステータスとして、“CFL_BOOT”を設定する。
さらに、構成管理部106は、正常動作中のモジュールについて、構成管理情報において、正常動作中であることを示すステータスとして“ONLINE”を設定する。
なお、ストレージ装置における各モジュールについての情報を管理するための装置構成情報は既知であり、その説明は省略する。
保守制御部107は、ユーザ等が図示しない管理端末のGUI(Graphical User Interface)やCLI(Command Line Interface)を介して入力したコマンドを受け付け、本ストレージ装置1におけるファームウェアの更新等の保守に関する全体処理のシーケンスを管理する。保守制御部107は、本ストレージ装置1に備えられたIOM23等のデバイス(電子装置)に対して、活性ファームウェア適用処理を行なう。
例えば、保守制御部107は、ファームウェアの切り替え対象のIOM23に対してファームウェア切替コマンドを発行する。ファームウェア切替コマンドを受信したIOM23は、自身が正常に動作した状態であり、自身の記憶領域に新ファームウェアが格納された状態である場合には、保守制御部107に対して正常応答を行なう。また、IOM23は、自身の記憶領域に新ファームウェアが格納されていない場合には、その旨のエラー応答(異常応答)を保守制御部107に対して行なう。例えば、IOM23の記憶領域に新ファームウェアが格納された後に、IOM23のリブートが行なわれ、その過程で記憶領域の新ファームウェアの適用が行なわれると、記憶領域にはファームウェアが存在しない状態になる。この状態において、ファームウェア切替コマンドを受信すると、ファームウェアの切り替えは失敗となり、IOM23は保守制御部107に対して、新ファームウェアが格納されていない旨のエラー応答を行なう。
また、保守制御部107は、本ストレージ装置1の各モジュール(部品進)のファームウェアに関する各種情報を管理するファームウェア管理部としての機能を備える。
上述の如く、本実施形態においては、各DE20に備えられるIOM23をファームウェアの切り替え対象のモジュール(部品)とする例について示す。
保守制御部107は、ファームウェア切り替え進捗情報201を管理する。
図3は実施形態の一例としてのストレージ装置1におけるファームウェア切り替え進捗情報201の構成を例示する図である。
ファームウェア切り替え進捗情報201は、ファームウェアの切り替え作業の進捗状態を示す進捗情報である。このファームウェア切り替え進捗情報201は、メモリ12における、ファームウェアの活性交換を行なう際に各種データの格納等に用いられる領域(ファーム活性交換制御領域)に格納される。
図3に例示するファームウェア切り替え進捗情報201は、制御CM ID,切替先稼働面,前半系,後半系,エラー情報,適用ファームウェア情報,総合ステータス,対象モジュール数および部品進捗ステータス情報を備える。
制御CM IDは、ファームウェアの切り替えを制御するCM10を特定する情報(CM ID)である。
切替先稼働面は、新ファームウェアが格納されている領域を示す。前半系は、前半系について先にファームウェアの書き換えを行なうのが0系であるか1系であるかを示す。後半系は、後半系について先にファームウェアの書き換えを行なうのが0系であるか1系であるかを示す。エラー情報は、エラーが発生している場合における当該エラーについての情報を示す。
適用ファームウェア情報は、適用されるファームウェアの版数に関する情報(ファームウェア版数情報)である。
図4に実施形態の一例としてのストレージ装置1におけるファームウェア版数情報の構成例を示す。図4に例示するファームウェア版数情報は、ファームウェアの、バージョン(Version),レベル(Level)およびサフィックス(Suffix)を備える。
総合ステータスは、本ストレージ装置1の全体のステータスを示す。対象モジュール数は、ファームウェア改版対象のモジュールの総数を示す。
部品進捗ステータス情報は、個々のモジュールにおけるファームウェア改版の進捗状況を示す。図4に示す例においては、複数の部品進捗ステータス情報に[0]〜[n-1]の識別情報を付すことで、複数(n個)の部品進捗ステータス情報を示している。
図5に実施形態の一例としてのストレージ装置1における部品進捗ステータス情報の構成例を示す。図5に例示する部品進捗ステータス情報は、部品ID,部品サブ情報,ファームタイプおよび進捗情報を備える。
部品IDは、ファームウェア改版対象のモジュールであるIOM23を特定するための識別情報である。部品サブ情報は、部品IDで特定されるモジュールについての情報である。ファームタイプは、ファームウェアの種別である。進捗情報は、ファームウェア書き換え作業の進捗状況を示す情報であり、例えば、準備中,切り離し中,切り離し完了,リブート中,リブート完了,組み込み中および組み込み完了のいずれかの状態を示す。
また、本ストレージ装置1においては、構成管理部106が個々のモジュールの構成等を管理するのに用いる装置構成情報においてもファームウェアの版数を管理する情報が含まれる。
図6は実施形態の一例としてのストレージ装置1における装置構成情報に含まれるファームウェア版数管理情報を例示する図である。
図6に例示するファームウェア版数管理情報は、稼働面,次回稼働面およびファームウェア全体の版数情報を備える。
稼働面は、モジュールに現在適用されているファームウェアが格納されている記憶領域を示す。次回稼働面は、次のファームウェアの改版時に用いられる新ファームウェアが格納される記憶領域を示す。
ファームウェア全体の版数情報は、本ストレージ装置1に備えられる各モジュールのファームウェアの情報である。図6に示す例においては、2つのファームウェア全体の版数情報として [0]もしくは[1]の識別情報を登録することで、2世代分の情報を示している。
図7は実施形態の一例としてのストレージ装置1におけるファームウェア全体の版数情報を例示する図である。
この図7に例示するファームウェア全体の版数情報は、有効フラグおよび総合版数を備えるとともに、複数の部品版数を備え、更に、総合版数と複数の部品版数とのそれぞれに対応付けて日付を備える。
有効フラグは、当該ファームウェアが有効であるか否かを示す。総合版数はファームウェアの総合的な版数を示す。この総合版数は、図4に例示したファームウェア版数情報と同様のフォーマットを有する。また、この総合版数には、当該ファームウェアが登録された日付が関連付けられている。
部品版数は、そのモジュールのファームウェアに関する情報であり、図4に例示したファームウェア版数情報と同様のフォーマットを有する。また、この部品版数には、当該ファームウェアが登録された日付が関連付けられている。
図2に戻り、保守制御部107は、リセット確認部121,更新抑止部122,版数確認部123およびデバイス処理部124としての機能を備える。
リセット確認部121は、CM10から認識可能であり、本ストレージ装置1に組み込み可能な状態のIOM23について、ファームウェア切り替えのためのリセット処理が動作したものであるか否かを確認する。例えば、リセット確認部121は、保守制御部(ファームウェア管理部)107に問い合わせてファームウェア切り替え進捗情報201を参照することで、本ストレージ装置1に組み込み可能な状態のIOM23を把握することができる。
リセット確認部121は、IOM23に対して発行したファームウェア切替コマンドについてIOM23からエラー応答を受信し、このIOM23を縮退させる処理が動作した場合に、この縮退されたIOM23以外のIOM23の状態を確認する。
リセット確認部121は、ファームウェアの切り替え処理中のIOM23と同系の経路上(同じ接続グループ)のIOM23について、新ファームウェアへの切り替え状態を確認する。
具体的には、リセット確認部121は、保守制御部(ファームウェア管理部)107に問い合わせてファームウェア切り替え進捗情報201を参照することで、IOM23がファームウェア切り替えのためのリセット処理が動作済みであるかを確認する。すなわち、リセット確認部121は、IOM23がファームウェアの改版でリブートを実施済みであるかを確認する。
このように、リセット確認部121は、複数のIOM23のうち、ファームウェアの切り替え処理対象であるIOM23a−4と同じ接続経路上のIOM23a−1,23a−2が新ファームウェアへの切り替え済みであるかを確認する確認部として機能する。
なお、リセット確認部121は、ファームウェア切り替え進捗情報201を参照することで、IOM23がファームウェア切り替えのためのリセット処理が動作済みであるかを確認してもよい。
更新抑止部122は、リセット確認部121による確認の結果、ファームウェア切り替えのためのリセット処理が動作していない、すなわち、新ファームウェアへの切り替えがされていないと判断されたIOM23については、本ストレージ装置1への組み込みを、一時的に抑止する。例えば、更新抑止部122は、構成管理部106により管理される装置構成情報において、当該IOM23のステータスを、“CFL_BOOT”のまま維持(もしくは“CFL_BOOT”に設定)させる。これにより、縮退処理の延長では当該IOM23の組み込みは実行されず、その後にファームウェアの切り替え処理が実行される際に、当該IM23の当該ストレージ装置1への組み込みが行なわれる。
従って、更新抑止部122は、IOM23a−1,23a−2が新ファームウェアへの切り替え済みでない(進捗管理でリセットしていない)場合に、このIOM23a−1,23a−2を使用装置としての組み込みを抑止(システムへの組み込み要求を抑止)する抑止部として機能する。
一方、リセット確認部121による確認の結果、ファームウェア切り替えのためのリセット処理が動作している、すなわち、新ファームウェアへの切り替えがされていると判断されたIOM23については、更新抑止部122は、本ストレージ装置1への組み込みを許可する。例えば、更新抑止部122は、構成管理部106により管理される装置構成情報において、当該IOM23のステータスを、組み込み対象であることを示す値に設定する。
図8(a),(b)は実施形態の一例としてのストレージ装置1におけるファームウェア切り替え処理の過程を例示する図である。図8(a)の状態の後に、図8(b)の状態に移行する。
なお、これらの図8(a),(b)に示すストレージ装置1は、DE20−1〜20−4の4つのDE20をそなえ、IOM23a−1〜23a−4およびIOM23b−1〜23b−4の8つのIOM23を備える。DE20−1,20−2,20−3,20−4を、それぞれDE#00,#01,#02,#03という場合がある。
図8(a)においては、0系の経路において、IOM23a−1,23a−2,23a−4のそれぞれに、ファーム切替中であることを示す特別なステータスとして、“CFL_BOOT”が設定されている。また、1系の経路において、IOM23b−1〜23b−4のそれぞれに、正常動作中であることを示すステータスとして、“ONLINE”が設定されている。
また、この図8(a)に示すストレージ装置1においては、0系の経路上において、IOM23a−4,23a−3,23a−2,23a−1の順にリブートが行なわれる。
そして、この図8(a)に示す状態においては、IOM23a−4のリセットを行なった後に(矢印S1参照)、IOM23a−3においてリセットが失敗し、このIOM23a−3に、縮退された状態を表す“DEGRADE”が設定されている(矢印S2参照)。
保守制御部107は、ファームウェアの切り替え対象であるIOM23a−1〜23a−4のそれぞれに対してファームウェア切替コマンドを発行し、IOM23a−3は、このファームウェア切替コマンドに対して、エラー応答を送信する。そして、このIOM23a−3を縮退させる処理が動作する。
リセット確認部121は、CM10から認識可能であり、本ストレージ装置1に組み込み可能な状態のIOM23a−1,23a−2について、例えば、SASマップを参照することで、ファームウェア切り替えのためのリセット処理が動作したものであるか否かを確認する。ここでは、図8(b)に示すように、IOM23a−1,23a−2は、ファームウェア切り替えのためのリセット処理が動作していない(矢印S3,S4参照)。
その後、更新抑止部122は、リセット確認部121による確認の結果、ファームウェア切り替えのためのリセット処理が動作していないIOM23a−1,23a−2のステータスを、“CFL_BOOT”のまま維持させる(矢印S5,S6参照)。これにより、IOM23a−1,23a−2には、CM10の監視処理による、ポーリングによる状態を問い合わせは実施されない。従って、これらのIOM23a−1,23a−2の縮退は行なわれず、その後にファームウェアの切り替え処理が実行される際に、リセットされ、このタイミングで新ファームウェアが適用される。
版数確認部123は、IOM23に対して発行したファームウェア切替コマンドについてIOM23からエラー応答を受信した場合に、例えば、ファームウェア切り替え進捗情報201を参照して、このIOM23のファームウェア版数を確認する。
デバイス処理部124は、版数確認部123による確認の結果、このIOM23のファームウェアが新ファームに切り替わっている場合は正常とみなし、本ストレージ装置1に組み込むためにリブート指示を実行する。一方、IOM23のファームウェアが新ファームの版数と一致していない場合は、当該IOM23を異常部品と判断する。デバイス処理部124は、この異常部品と判断したIOM23を本ストレージ装置1から切り離す縮退処理を実施する。
(B)動作
上述の如く構成された実施形態の一例としてのストレージ装置1におけるIOM23のファームウェア切り替え処理(ステップA1〜A8)を、図9に従って説明する。
ステップA1において、保守制御部107は、ファームウェアの切り替えを行なう対象となるIOM23のリストを作成する。例えば、保守制御部107は、本ストレージ装置1に備えられるIOM23を構成管理部106から取得することで、ファームウェアの切り替え対象のIOM23を把握する。
ステップA2において、保守制御部107は、IOM23のファームウェアの切り替え指示(ファームウェア切替コマンド)を発行する。
ステップA3において、版数確認部123は、発行したファームウェア切替コマンドに対してIOM23が正常応答を行なったかを確認する。
IOM23に対して発行したファームウェア切替コマンドについてIOM23からエラー応答を受信した場合、すなわち、IOM23から正常応答が行なわれない場合には(ステップA3のNOルート参照)、ステップA4に移行する。
ステップA4において、版数確認部123は、例えば、ファームウェア切り替え進捗情報201を参照して、このIOM23のファームウェア版数を確認し、ファームウェアが新版であるかを確認する。
確認の結果、IOM23のファームウェアが新版である場合には(ステップA4のYESルート参照)、ステップA6において、デバイス処理部124が、そのIOM23に対してリブート指示を行なって新ファームウェアを適用させる。
一方、確認の結果、IOM23のファームウェアが新版でない場合には(ステップA4のNOルート参照)、ステップA5に移行する。
ステップA5において、デバイス処理部124は、そのIOM23を本ストレージ装置1から切り離す縮退指示を発行して、縮退処理を実施させる。
その後、ステップA7において、保守制御部107は、ステップA1において作成したIOM23のリストにおいて、未処理のIOM23があるかを確認する。
未処理のIOM23が残っている場合には(ステップA7のYESルート参照)、ステップA2に戻る。
未処理のIOM23が残っていない場合には(ステップA7のNOルート参照)、ステップA8に移行する。
ステップA8において、保守制御部107は、IOM23の組み込み状態を監視し、処理を終了する。
次に、実施形態の一例としてのストレージ装置1におけるファームウェア切り替え中のIOM23の組み込み処理を、図10に示すフローチャート(ステップB1〜B4)に従って説明する。
例えば、SASデバイス管理部105がSASデバイスの構成変更を検出すると、構成管理部106に通知が行なわれる。
ステップB1において、構成管理部106は、SASデバイス情報の作成処理を行ない、本ストレージ装置1に搭載されるデバイスの管理を行なう。
ステップB2において、構成管理部106は、作成したSASデバイス情報と、装置構成情報とを比較し、状態に変化があったIOM23を抽出する。
ステップB3において、リセット確認部121は、保守制御部(ファームウェア管理部)107に問い合わせて装置構成情報を参照することで、本ストレージ装置1に処理対象のIOM23が組み込み可能な状態であるかを確認する。なお、IOM23が組み込み可能であるかの具体的は判断手法については、図11を用いて後述する。
ステップB4において、構成管理部106は、装置構成情報上のIOM23のステータスを最新の状態に更新する。例えば、ファームウェア切り替えのためのリセット処理が動作している、すなわち、新ファームウェアへの切り替えがされていると判断されたIOM23については、更新抑止部122は、本ストレージ装置1への組み込みを許可する。すなわち、構成管理部106が管理する装置構成情報において、当該IOM23のステータスを“ONLINE”に変更させる。
ただし、ファームウェア切り替えのためのリセット処理が動作していない、すなわち、新ファームウェアへの切り替えがされていないと判断されたIOM23については、更新抑止部122が、装置構成情報において、当該IOM23のステータスの更新を阻止して、“CFL_BOOT”のまま維持(もしくは“CFL_BOOT”に設定)させる。その後、処理を終了する。
次に、実施形態の一例としてのストレージ装置1におけるIOM23が組み込み可能か否かの判断手法を、図11に示すフローチャート(ステップC1〜C3)に従って説明する。
保守制御部(ファームウェア管理部)107は、ファームウェア切り替え進捗情報201を参照して、判断対象のIOM23がファームウェアの切り替え中であるかを確認する。
確認の結果、ファームウェアの切り替え中でない場合には(ステップC1のNOルート参照)、当該IOM23は組み込み可能であると判断され、組み込み可能である旨の応答が行なわれる。
また、ステップC1における確認の結果、ファームウェアの切り替え中である場合には(ステップC1のYESルート参照)、ステップC2に移行する。
ステップC2においては、保守制御部107は、判断対象のIOM23が、ファームウェア切り替え進捗情報201における当該IOM23のステータスを確認して、“CFL_BOOT”が設定されているかを確認する。すなわち、保守制御部107は、判断対象のIOM23に対して、ファーム切替中であることを示す特別なステータス(CFL_BOOT)が設定されているかを確認する。確認の結果、IOM23に“CFL_BOOT”が設定されていない場合には(ステップC2のNOルート参照)、当該IOM23は組み込み可能であると判断され、組み込み可能である旨の応答が行なわれる。
一方、ステップC2における確認の結果、IOM23に“CFL_BOOT”が設定されている場合には(ステップC2のYESルート参照)、ステップC3に移行する。
ステップC3において、保守制御部107は、ファームウェア切り替え進捗情報201を参照して、判断対象のIOM23が、ファームウェアの切り替え処理を実施済みであるか、すなわち、ファームウェアの書き換え後、リブートが実行されているかを確認する。
確認の結果、リブートが実行されている場合には(ステップC3のYESルート参照)、ファームウェアの切り替え処理を実施済みであり、当該IOM23は組み込み可能であると判断され、組み込み可能である旨の応答が行なわれる。
一方、ステップC3における確認の結果、リブートが実行されていない場合には(ステップC3のNOルート参照)、ファームウェアの切り替え処理は未実施であり、当該IOM23は組み込み不可であると判断され、組み込み不可である旨の応答が行なわれる。
(C)効果
このように、実施形態の一例としてのストレージ装置1によれば、活性ファームウェア適用処理において、一のIOM23に異常が生じこのIOM23を縮退させた場合に、リセット確認部121が、ファームウェアの切り替え対象のIOM23と同系のIOM23に新ファームウェアの適用がされたかを確認する。
そして、更新抑止部122が、新ファームウェアへの切り替えが行なわれていないIOM23のシステムへの組み込みを抑止して、そのステータスをCFL_BOOTのまま維持させる。
これにより、新ファームウェアへの切り替えが行なわれていないIOM23へのCM10からのアクセスが生じることがなく、この新ファームウェアが未適用のIOM23の意図しない縮退の発生を阻止することができる。なお、このIOM23については、以後にリセット処理が行なわれることで、新ファームウェアが適用される。
また、活性ファームウェア適用処理中の異常なIOM23の切り離し処理においては、まだファームウェアの切り替えが完了していないIOM23と区別することで、異常なIOM23のみの切り離しを実現でき、安定した装置運用を行なうことができる。
IOM23に対して発行したファームウェア切替コマンドについてIOM23からエラー応答を受信した場合に、版数確認部123が、このIOM23のファームウェア版数を確認する。
この確認の結果、このIOM23のファームウェアが新ファームに切り替わっている場合は、デバイス処理部124は、ストレージ装置1に組み込むためにリブート指示を実行する。これにより、活性ファームウェア適用処理において、IOM23からエラー応答があった場合でも、IOM23がリセットされてメモリに格納されていた新ファームウェアが正常に適用されることを原因とするエラー応答について、ファームウェアの適用処理を正常終了することができる。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、ストレージ装置1のハードウェア構成は、図1に例示した構成に限定されるものではなく、適宜変更して実施することができる。
すなわち、図1に例示したローエンドもしくはミドルレンジの装置構成を有するストレージ装置1に限定されるものではなく、例えば、図12に例示するような、所謂ハイエンドのストレージ装置システム300に備えられるストレージ装置1に適用してもよい。
図12に例示するストレージシステム300は、FE(Front Enclosure)301と、複数(図12に示す例では2つ)のストレージ装置1を備えている。なお、図中、既述の符号の同一の符号は同様の部分を示しているのでその説明は省略する。また、この図12においては、便宜上、一部の構成の図示を省略している。
FE301は、複数のCM10を接続するための接続装置であり、1のSVC(Service Controller)302と、2つのFRT(Front-End Router)303とを組み合わせたユニットを2組(#0,#1)備える。FE301における、各SVC302,FRT303は、NTB(Non Transparent Bridge)304を介して各CM10a,10bに接続されている。
このような構成により、各CM10a,10bは、いずれかのFRT303を経由して、他のCM10a,10bとの間で通信を行なうことができる。このように、ストレージシステム300においてはCM10a,10b間通信の経路の冗長化が図られている。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
記憶装置と複数の電子装置とを搭載する複数のデバイス筐体を備えるストレージ装置において、前記複数の電子装置を制御するストレージ制御装置であって、
前記電子装置のファームウェアの切り替えに用いられる新ファームウェアを前記電子装置の記憶部に格納した後に、前記複数の電子装置のうち第1の電子装置において発生した異常に基づき当該第1の電子装置を縮退させる縮退処理中に、
前記複数の電子装置のうち、前記ファームウェアの切り替え処理対象である第2の電子装置と当該ストレージ制御装置とを接続する接続経路上の第3の電子装置が新ファームウェアへの切り替え済みであるかを確認する確認部と、
前記第3の電子装置が前記新ファームウェアへの切り替え済みでない場合に、該第3の電子装置を使用装置としての組み込みを抑止する抑止部と
を備えることを特徴とする、ストレージ制御装置。
(付記2)
前記抑止部が、前記第3の電子装置が、接続上組み込み対象であり、且つ、前記新ファームウェアへの切替え済みでない場合に、前記組み込みを抑止する
ことを特徴とする、付記1記載のストレージ制御装置。
(付記3)
前記抑止部が、前記複数の電子装置のそれぞれについての前記新ファームウェアへの切り替えの進捗状態を示す進捗情報を参照することで、前記新ファームウェアへの切替え済みであるか確認する
ことを特徴とする、付記1または2記載のストレージ制御装置。
(付記4)
前記複数の電子装置のうち、前記ファームウェアの切り替え処理対象である第2の電子装置と当該ストレージ制御装置とを接続する接続経路上の第4の電子装置に適用されているファームウェアの版を確認する版確認部と、
前記電子装置に適用されているファームウェアが前記新ファームウェアである場合に、前記第4の電子装置を使用装置として組み込む組込部と
を備えることを特徴とする、付記1〜3のいずれか1項に記載のストレージ制御装置。
(付記5)
記憶装置と複数の電子装置とを搭載する複数のデバイス筐体を備えるストレージ装置において、前記複数の電子装置を制御するストレージ制御装置の処理装置に、
前記電子装置のファームウェアの切り替えに用いられる新ファームウェアを前記電子装置の記憶部に格納した後に、前記複数の電子装置のうち第1の電子装置において発生した異常に基づき当該第1の電子装置を縮退させる縮退処理中に、
前記複数の電子装置のうち、前記ファームウェアの切り替え処理対象である第2の電子装置と当該ストレージ制御装置とを接続する接続経路上の第3の電子装置が新ファームウェアへの切り替え済みであるかを確認し、
前記第3の電子装置が前記新ファームウェアへの切り替え済みでない場合に、該第3の電子装置を使用装置としての組み込みを抑止する
処理を実行させる、ストレージ制御プログラム。
(付記6)
前記第3の電子装置が、接続上組み込み対象であり、且つ、前記新ファームウェアへの切替え済みでない場合に、前記組み込みを抑止する
処理を、前記処理装置に実行させる、付記5記載のストレージ制御プログラム。
(付記7)
前記複数の電子装置のそれぞれについての前記新ファームウェアへの切り替えの進捗状態を示す進捗情報を参照することで、前記新ファームウェアへの切替え済みであるか確認する
処理を、前記処理装置に実行させる、付記5または6記載のストレージ制御プログラム。
(付記8)
前記複数の電子装置のうち、前記ファームウェアの切り替え処理対象である第2の電子装置と当該ストレージ制御装置とを接続する接続経路上の第4の電子装置に適用されているファームウェアの版を確認し、
前記電子装置に適用されているファームウェアが前記新ファームウェアである場合に、前記第4の電子装置を使用装置として組み込む
処理を、前記処理装置に実行させる、付記5〜7のいずれか1項に記載のストレージ制御プログラム。
1 ストレージ装置
2 CE
10a,10b,10 CM
11 CPU
12 メモリ
13 IOC
14 CM−EXP
15 CA
151 ライザーカード
16 BUD
20a−1〜20a−n,20b−1〜20b−m,20 DE
22−1,22−2,22 FEM
21 記憶装置
23a−A1〜23a−An,23b−A1〜23b−An,23a−B1〜23b−Bm,23b−B1〜23b−Bn,23 IOM
101 システム制御部
102 ホットスワップ制御部
103 システム監視部
104 ディスクイベント部
105 SASデバイス管理部
106 構成管理部
107 保守制御部
108 バックエンド制御部
121 リセット確認部
122 更新抑止部
123 版数確認部
124 デバイス処理部
201 ファームウェア切り替え進捗情報
202 部品進捗ステータス情報
203 ファームウェア版数情報

Claims (5)

  1. 記憶装置と複数の電子装置とを搭載するデバイス筐体を複数備えるストレージ装置において、前記複数の電子装置を制御するストレージ制御装置であって、
    前記の各デバイス筐体中の前記複数の電子装置のうちの一の電子装置どうしが前記ストレージ制御装置に対してカスケード接続された第1経路系を構成するとともに、前記の各デバイス筐体中の前記複数の電子装置のうちの前記一の電子装置とは異なる他の電子装置どうしが前記ストレージ制御装置に対してカスケード接続された第2経路系を構成し、
    前記電子装置のファームウェアの切り替えに用いられる新ファームウェアを前記電子装置の記憶部に格納した後に、当該電子装置のファームウェアを前記新ファームウェアに切り替える前の状態で、前記第1経路系または第2経路系を構成する複数の電子装置のうちの第1の電子装置において発生した異常に基づき当該第1の電子装置を縮退させる縮退処理中に、
    前記第1の電子装置と同じ経路系に属するとともに前記ファームウェアの切り替え処理対象であり前記新ファームウェアを適用するためのリブート処理が行なわれた第2の電子装置と同じ経路系に属する第3の電子装置について新ファームウェアへの切り替え済みであるかを確認する確認部と、
    前記第3の電子装置が前記新ファームウェアへの切り替え済みでない場合に、該第3の電子装置を使用装置として組み込むことを抑止することで、前記ストレージ制御装置から該第3の電子装置への状態監視の問い合わせ実施を抑止する抑止部と
    を備えることを特徴とする、ストレージ制御装置。
  2. 前記抑止部が、前記第3の電子装置が、当該ストレージ制御装置から認識可能であり、且つ、前記新ファームウェアへの切替え済みでない場合に、前記組み込みを抑止する
    ことを特徴とする、請求項1記載のストレージ制御装置。
  3. 前記抑止部が、前記複数の電子装置のそれぞれについての前記新ファームウェアへの切り替えの進捗状態を示す進捗情報を参照することで、前記新ファームウェアへの切替え済みであるか確認する
    ことを特徴とする、請求項1または2記載のストレージ制御装置。
  4. 前記複数の電子装置のうち、前記ファームウェアの切り替え処理対象であり前記新ファームウェアを適用するためのリブート処理が行なわれた前記第2の電子装置と、前記の第1の電子装置、第2電子装置及び第3電子装置と同じ経路系に属する第4の電子装置に対して発行したファームウェア切替コマンドについて、前記第4の電子装置からエラー応答を受信した場合に、前記第4の電子装置に適用されているファームウェアの版を確認する版確認部と、
    前記第4の電子装置に適用されているファームウェアが前記新ファームウェアである場合に、前記第4の電子装置を使用装置として組み込む組込部と
    を備えることを特徴とする、請求項1〜3のいずれか1項に記載のストレージ制御装置。
  5. 記憶装置と複数の電子装置とを搭載するデバイス筐体を複数備えるとともに、前記の各デバイス筐体中の前記複数の電子装置のうちの一の電子装置どうしがカスケード接続された第1経路系を構成するとともに、前記の各デバイス筐体中の前記複数の電子装置のうちの前記一の電子装置とは異なる他の電子装置どうしがカスケード接続された第2経路系を構成し、前記複数の電子装置を制御するストレージ制御装置を備えるストレージ装置において、
    前記ストレージ制御装置の処理装置に、
    前記電子装置のファームウェアの切り替えに用いられる新ファームウェアを前記電子装置の記憶部に格納した後に、当該電子装置のファームウェアを前記新ファームウェアに切り替える前の状態で、前記第1経路系または第2経路系を構成する複数の電子装置のうちの第1の電子装置において発生した異常に基づき当該第1の電子装置を縮退させる縮退処理中に、
    前記第1の電子装置と同じ経路系に属するとともに前記ファームウェアの切り替え処理対象であり前記新ファームウェアを適用するためのリブート処理が行なわれた第2の電子装置と同じ経路系に属する第3の電子装置について新ファームウェアへの切り替え済みであるかを確認し、
    前記第3の電子装置が前記新ファームウェアへの切り替え済みでない場合に、該第3の電子装置を使用装置として組み込むことを抑止することで、前記ストレージ制御装置から該第3の電子装置への状態監視の問い合わせ実施を抑止する
    処理を実行させる、ストレージ制御プログラム。
JP2017083710A 2017-04-20 2017-04-20 ストレージ制御装置およびストレージ制御プログラム Active JP6863037B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017083710A JP6863037B2 (ja) 2017-04-20 2017-04-20 ストレージ制御装置およびストレージ制御プログラム
US15/911,247 US10977107B2 (en) 2017-04-20 2018-03-05 Apparatus and method to control a storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017083710A JP6863037B2 (ja) 2017-04-20 2017-04-20 ストレージ制御装置およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2018181195A JP2018181195A (ja) 2018-11-15
JP6863037B2 true JP6863037B2 (ja) 2021-04-21

Family

ID=63853902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017083710A Active JP6863037B2 (ja) 2017-04-20 2017-04-20 ストレージ制御装置およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US10977107B2 (ja)
JP (1) JP6863037B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516171B2 (en) * 2005-04-06 2013-08-20 Raritan Americas Inc. Scalable, multichannel remote device KVM management system for converting received signals into format suitable for transmission over a command network
JP4940967B2 (ja) * 2007-01-30 2012-05-30 富士通株式会社 ストレージシステム、ストレージ装置、ファームウェアの活性交換方法、ファームウェアの活性交換プログラム
JP4770982B2 (ja) * 2007-03-16 2011-09-14 富士通株式会社 ストレージシステム、ストレージ装置、ファームウェアの活性交換方法
JP5152603B2 (ja) * 2010-10-04 2013-02-27 日本電気株式会社 ディスクアレイ装置及びそのファームウェア更新方法
JP6281413B2 (ja) * 2014-05-28 2018-02-21 富士通株式会社 ファームウェア更新装置、ストレージ制御装置およびプログラム
JP6484965B2 (ja) 2014-09-03 2019-03-20 富士通株式会社 ストレージ装置、ファームウェアの更新方法、およびファームウェアの更新プログラム
JP5997740B2 (ja) * 2014-09-17 2016-09-28 クラリオン株式会社 車載機のオンライン更新方法
WO2016125294A1 (ja) * 2015-02-06 2016-08-11 株式会社日立製作所 計算機システム、管理装置及び方法

Also Published As

Publication number Publication date
JP2018181195A (ja) 2018-11-15
US20180307554A1 (en) 2018-10-25
US10977107B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
JP5147824B2 (ja) Raidストレージ・システム、これを動作させる方法及びプログラム
JP6011210B2 (ja) ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム
US9361262B2 (en) Redundant storage enclosure processor (SEP) implementation for use in serial attached SCSI (SAS) environment
TWI453592B (zh) 利用儲存區域網路回復電腦系統的系統及方法
JP2016057795A (ja) ストレージ制御装置,ストレージシステム及びストレージ制御プログラム
JP6850331B2 (ja) マルチノードストレージシステムにおけるファームウェアアップグレード方法
WO2014132373A1 (ja) ストレージシステム及び記憶デバイス障害回復方法
JP2007087039A (ja) ディスクアレイシステム及びその制御方法
JP4939180B2 (ja) 接続された装置を構成するための初期設定コードの実行
US20130117502A1 (en) Method for managing system firmware in nas server
JP6863037B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2015099541A (ja) ストレージ制御装置,プログラム及び制御方法
JP6933107B2 (ja) ストレージシステム,ストレージ制御装置およびストレージ制御プログラム
US9665310B2 (en) Storage control apparatus, storage control system, and control method
JP5913078B2 (ja) ディスクアレイシステム、データ復旧方法、および、データ復旧プログラム
JP6277878B2 (ja) ストレージ装置の制御装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム
JP2017041110A (ja) マルチコンピュータシステム,管理装置および管理プログラム
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置
JP2007334770A (ja) Raid装置、そのモジュール、ディスク組込み可否判定方法、及びプログラム
JP7371483B2 (ja) ストレージ制御装置及び制御プログラム
JP6838299B2 (ja) ストレージ装置、ストレージ制御装置、及びストレージ制御プログラム
JP2009238003A (ja) ディスクアレイ制御装置、ディスクアレイ制御方法、ディスクアレイ制御プログラム、及び該プログラムを記録した記録媒体
JP5365703B2 (ja) 情報処理装置、ドライブ制御プログラムおよびドライブ制御方法
JP2016126594A (ja) 制御装置,ストレージ装置及び制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210315

R150 Certificate of patent or registration of utility model

Ref document number: 6863037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150