JP2020112865A - ストレージ装置、ストレージ制御装置及びストレージ制御プログラム - Google Patents

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

Info

Publication number
JP2020112865A
JP2020112865A JP2019001235A JP2019001235A JP2020112865A JP 2020112865 A JP2020112865 A JP 2020112865A JP 2019001235 A JP2019001235 A JP 2019001235A JP 2019001235 A JP2019001235 A JP 2019001235A JP 2020112865 A JP2020112865 A JP 2020112865A
Authority
JP
Japan
Prior art keywords
command
management unit
storage device
control unit
task
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
JP2019001235A
Other languages
English (en)
Other versions
JP7115322B2 (ja
Inventor
智彦 室山
Tomohiko Muroyama
智彦 室山
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 JP2019001235A priority Critical patent/JP7115322B2/ja
Priority to US16/720,815 priority patent/US11113003B2/en
Publication of JP2020112865A publication Critical patent/JP2020112865A/ja
Application granted granted Critical
Publication of JP7115322B2 publication Critical patent/JP7115322B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

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

Abstract

【課題】ストレージ装置のファーム活性適用の際に、ストレージ装置に構成制御を依頼したサーバ上のソフトウェアが異常を検出してサーバが停止することを防ぐこと。【解決手段】APIプロバイダ32が外部ソフトウェア31のAPI実行を受け付けてCLIコマンドに変換し、CLI制御部41が、CLIコマンドのうち非同期コマンドからコマンドセットを生成してコマンド管理部42に渡す。コマンド管理部42は、コマンドセットからコマンドを1つずつ取り出してコマンド制御部43に実行を依頼する。コマンド制御部43は、コマンドを実行する。また、コマンド制御部43は、ストレージ装置1のファームウェアの改版を制御し、改版処理においてコマンドを実行できないタイミングでコマンド管理部42にコマンドの実行停止を指示する。コマンド管理部42は、外部ソフトウェア31が異常を検出しないための処理を行った後でコマンドの実行を停止する。【選択図】図2

Description

本発明は、ストレージ装置、ストレージ制御装置及びストレージ制御プログラムに関する。
ストレージ装置を停止することなく、ストレージ装置をオンライン状態に維持したまま、ストレージ装置のファームウェアを改版するファーム活性適用機能は、ストレージ装置の重要な機能の1つである。なお、「ファーム」は、ファームウェアを表す。
ストレージ装置は複数のモジュールから構成され、各モジュールはそれぞれ独立したファームウェアで動作する。各モジュールには、稼働面と非稼働面の2つの面にファームウェアを書き込む領域が存在する。ファーム活性適用時には、非稼働面に改版後のファームウェアが書き込まれた後で非稼働面に切替が行われ、リブート時に改版後のファームウェアでストレージ装置が起動される。
また、ストレージ制御装置は、マスター系と、マスター系に異常がある場合に動作する系の2つの系を有し、ファームウェアの改版を片系ずつ行うことで、ストレージ装置をオンライン状態に維持したままファームウェアの改版を行うことができる。
なお、ファームウェアの適用対象となるストレージ装置に対するアクセス状況を監視し、監視結果に基づいて、適用対象のストレージ装置についてのファームウェアの適用を指示することで、稼働中でもファームウェアの適用を実行できるようにする従来技術がある。
また、複数のプログラムが階層的に呼び出されて一つの機能を提供するシステムにおいて、ユーザが下位レイヤのプログラムの動作を直接意識することなく、ユーザが操作する上位プログラムの操作性を向上する従来技術がある。この従来技術では、下位レイヤのプログラムは、多数のリクエストを受け付けた場合に、リクエストのタイムアウト要件と、各リクエストの元になったタスクとの関連を特定する。そして、下位レイヤのプログラムは、リクエスト発行元のプログラムにおけるタスクの実行順序と各リクエストのタイムアウト要件にしたがって、タイムアウトをできるだけ抑止するようにリクエスト実行順を制御する。
特開2009−282834号公報 国際公開第2017/056208号
近年、クラウドシステムでの運用自動化や仮想化ソフトウェアを使用する環境が増加している。クラウドシステムでの運用自動化や仮想化ソフトウェアを使用する環境では、サーバで動作するソフトウェアがストレージ装置の構成制御を行う。ここで、構成制御とは、RAID(Redundant Arrays of Inexpensive Disks)設定等の装置設定や、RAID構成変更等の装置構成変更である。このため、ファーム活性適用中にストレージ装置の構成制御が行われることがある。
しかしながら、ファーム活性適用は改版対象モジュールのリブートを伴うことから、モジュール内部の各種制御テーブルの整合性を2つの系の間で維持するために、外部ソフトウェアからの構成制御を受け付けることができないタイミングが存在する。ここで、外部ソフトウェアとは、サーバで動作するソフトウェアである。
外部ソフトウェアからの構成制御を受け付けることができないと、外部ソフトウェアが異常を検出し、外部ソフトウェアを使用しているシステムの運用が止まるという問題がある。なお、ストレージ制御装置は、外部ソフトウェア以外にもユーザから構成制御を受け付けることがある。
本発明は、1つの側面では、ファーム活性適用の際に外部ソフトウェアからの構成制御によるシステム運用の停止を防ぐことを目的とする。
1つの態様では、ストレージ装置は、データを記憶する不揮発性記憶装置と該不揮発性記憶装置へのアクセスを制御する2つの制御装置とを有し、前記制御装置は、コマンドセット生成部と、コマンド管理部と、コマンド制御部とを有する。前記コマンドセット生成部は、外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成する。前記コマンド管理部は、前記コマンドセット生成部により生成されたコマンドセットに含まれるコマンドの実行を管理する。前記コマンド制御部は、前記コマンド管理部により管理されるコマンドを実行する。また、前記コマンド制御部は、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングで前記コマンド管理部に前記コマンドの実行停止を指示する。前記コマンド管理部は、前記実行停止を指示されると、外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止する。
1つの側面では、本発明は、ファーム活性適用の際に外部ソフトウェアからの構成制御によるシステム運用の停止を防ぐことができる。
図1は、実施例に係るストレージ装置の構成を示す図である。 図2は、CMの機能構成を示す図である。 図3は、コマンドセットの一例を示す図である。 図4は、コマンド管理部が管理するタスクの状態を示す図である。 図5は、ステップ1の一時停止動作を示す図である。 図6は、ステップ2の一時停止動作を示す図である。 図7は、ステップ1の完全停止動作を示す図である。 図8は、ステップ2の完全停止動作を示す図である。 図9は、非同期コマンドの処理の流れを示す図である。 図10は、ファームウェア改版の処理のフローを示す図である。 図11Aは、ファーム活性適用の動作を示す第1の図である。 図11Bは、ファーム活性適用の動作を示す第2の図である。 図11Cは、ファーム活性適用の動作を示す第3の図である。 図11Dは、ファーム活性適用の動作を示す第4の図である。 図12は、一時停止指示のフローを示すフローチャートである。 図13は、他のストレージ装置の構成例を示す図である。
以下に、本願の開示するストレージ装置、ストレージ制御装置及びストレージ制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るストレージ装置の構成について説明する。図1は、実施例に係るストレージ装置の構成を示す図である。図1に示すように、実施例に係るストレージ装置1は、CE(Controller Enclosure)1aと、DE(Drive Enclosure)#00〜DE#19で表される20個のDE1bを有する。CE1aは、CM(Controller Module)#0及びCM#1で表される2つのCM10を有する筐体である。DE1bは、HDD(Hard Disk Drive)23を搭載する筐体である。なお、DE1bは、HDD23の代わりにSSD(Solid State Drive)等の他の不揮発性記憶装置を搭載してもよい。あるいは、DE1bは、複数種類の不揮発性記憶装置を搭載してもよい。
CM10は、ストレージ装置1を制御する制御装置である。CM#0とCM#1は冗長系を構成し、一方がマスターとして動作する。CM10は、CPU(Central Processing Unit)11と、メモリ11aと、IOC(Input Output Controller)12と、CM−EXP(EXPander)13と、CM−BIOS(Basic Input/Output System)14とを有する。また、CM10は、BUD(Bootup and Utility Device)15と、2つのCA(Channel Adapter)16とを有する。
CPU11は、メモリ11aが記憶するファームウェアを実行することでCM10を制御装置として動作させる。メモリ11aは、CPU11で実行されるファームウェアやファームウェアが使用するデータ等を記憶するRAM(Random Access Memory)である。CPU11で実行されるファームウェアは、例えばフラッシュメモリから読み出されてメモリ11aに格納される。あるいは、CPU11で実行されるファームウェアは、コンピュータ読取可能媒体であるCD−Rから読み出されてメモリ11aに格納されてもよい。
IOC12は、SAS(Serial Attached SCSI)のコントローラである。CM−EXP13は、SASによって、CM10とDE1bを接続する。CM−BIOS14は、CPU11で動作するOS(Operating System)を起動するBIOSを記憶するROM(Read Only Memory)である。BUD(Bootup and Utility Device)15は、ストレージ装置1の構成設定情報等を記憶する。CA16は、サーバ等の情報処理装置とのインタフェースである。サーバ等の情報処理装置は、ストレージ装置1へのデータの書き込み及びストレージ装置1からのデータの読み出しを行う。
DE1bは、IOM(I/O Module)#0及びIOM#1で表されるIOM21を有する。IOM21は、CM10により指定されたHDD23へSASフレームを転送する。なお、DE#00及びDE#19で表されるDE1bは、FEM(Fan Expander Module)#00及びFEM#01で表されるFEM22を有し、他のDE1bは、複数のHDD23を有する。FEM22は、複数のHDD23を有し、IOM21が転送したSASフレームをCM10により指定されたHDD23へ転送する。また、FEM22は、ファンを有し、DE1bを冷却する。
なお、ストレージ装置1は、より多くのDE1b、あるいは、より少ないDE1bを有してもよい。また、より多くのDE1bがFEM22を有してもよく、より少ないDE1bがFEM22を有してもよい。
次に、CM10の機能構成について説明する。図2は、CM10の機能構成を示す図である。なお、2つのCM10は同様の機能構成を有するので、図2では1つのCM10だけを示す。CM10の機能は、メモリ11aに記憶されたファームウェアがCPU11で実行されることにより実現される。図2に示すように、CM10は、CLI(Command Line Interface)制御部41と、コマンド管理部42と、コマンド制御部43と、構成制御部44と、IO制御部45とを有する。
CLI制御部41は、API(Application Programming Interface)プロバイダ32からCLIコマンドを受け取り、受け取ったCLIコマンドが同期コマンドであればコマンド制御部43に渡す。また、CLI制御部41は、受け取ったCLIコマンドが非同期コマンドであれば対応するコマンドセットを生成してコマンド管理部42に渡す。
ここで、APIプロバイダ32は、サーバ3で動作する外部ソフトウェア31によるAPI実行を受け付けて1つ以上のCLIコマンドに変換してストレージ装置1に送信するソフトウェアである。APIプロバイダ32は、CLIコマンドの実行状態や実行結果をストレージ装置1から受け取って外部ソフトウェア31に応答する。なお、ここでは、APIプロバイダ32はサーバ3で動作するが、ストレージ装置1がAPIプロバイダ32の機能を備えてもよい。
また、同期コマンドは、外部ソフトウェア31がAPI復帰時に応答を受信することを期待するコマンドであり、非同期コマンドは、外部ソフトウェア31がAPI実行の進捗状況を確認するコマンドである。また、非同期コマンドには、タイムアウト要件があるAPIから変換されたコマンドとタイムアウト要件がないAPIから変換されたコマンドがある。なお、ストレージ装置1は、処理中の同期コマンドが存在しないタイミングを検出してファームウェア改版を実行する。
図3は、コマンドセットの一例を示す図である。図3に示すように、コマンドセットには、API名と、コマンドセット中のコマンド数と、コマンド数のコマンドが含まれる。図3では、コマンド数はn(正の整数)である。コマンドには、コマンドコードとコマンドコードの制御データが含まれる。API名は、コマンドセットの元となるAPIを識別する名前である。
コマンド管理部42は、コマンドセットに含まれるコマンドを1つずつコマンド制御部43に渡して実行を依頼する。コマンド管理部42は、APIをタスクに紐づけ、タスク情報をキューを用いて管理し、外部ソフトウェア31からAPI実行の進捗状況の問合せがあると、CLI制御部41及びAPIプロバイダ32を介してタスクの進捗状況を応答する。
図4は、コマンド管理部42が管理するタスクの状態を示す図である。図4に示すように、タスクの状態には、「Queued」と「Running」と「Success」と「Error」とがある。「Queued」は、タスク情報がキューイングされていてタスクが未実行の状態である。「Running」は、タスクが開始されていてコマンド実行が開始されている状態である。「Success」は、タスクの全コマンドが正常終了した状態である。「Error」は、タスクのコマンドの実行に失敗した状態である。なお、タスク情報は、2つのCM10の間で同期がとられる。
コマンド制御部43は、CLI制御部41から受け取った同期コマンド、コマンド管理部42から受け取ったコマンドを実行する。コマンド制御部43は、同期コマンドの実行結果をCLI制御部41に通知し、コマンドの実行結果をコマンド管理部42に通知する。コマンド制御部43は、構成制御に関するコマンドについては構成制御部44に処理を依頼する。コマンド制御部43は、同期コマンドの実行及びコマンドの実行においてHDD23へのアクセスが必要になるとIO制御部45に処理を依頼する。なお、サーバ3からのデータの読み出し及び書き込み要求については、図2に示す経路とは別の経路でIO制御部45に処理が依頼される。
構成制御部44は、構成制御を行い、構成制御の結果をコマンド制御部43に通知する。構成制御部44は、構成制御においてHDD23へのアクセスが必要になるとIO制御部45に処理を依頼する。
IO制御部45は、コマンド制御部43から処理を依頼されると処理結果をコマンド制御部43に通知する。IO制御部45は、構成制御部44から処理を依頼されると処理結果を構成制御部44に通知する。なお、IO制御部45は、図2に示す経路とは別の経路でサーバ3からのデータの読み出し及び書き込み要求を受け取り、HDD23へのデータの書き込み及びHDD23からのデータの読み出しを制御する。
コマンド制御部43は、改版制御部50を有する。改版制御部50は、ファームウェア活性適用を制御する。改版制御部50は、ファーム活性適用処理中に、APIを用いて実行される構成制御を受け付けることができないタイミングにおいて、コマンド管理部42に停止指示を出す。
ここで、ファーム活性適用処理中に構成制御を受け付けることができないタイミングとしては、CM10のファームウェアの改版におけるCM10の切り離し及びCM10の組み込み、CM10のファームウェアの改版におけるキャッシュテーブルの同期処理がある。また、ファーム活性適用処理中に構成制御を受け付けることができない他のタイミングとして、マスターCM10の切替がある。
そこで、改版制御部50は、CM10の切り離し及びCM10の組み込みを開始する前に、コマンド管理部42に一時停止を指示する。また、改版制御部50は、キャッシュテーブルの同期処理を開始する前に、コマンド管理部42に一時停止を指示する。
コマンド管理部42は、一時停止を指示されると、ステップ1として、タイムアウト要件があるAPIについては、外部ソフトウェア31がタイムアウトを検出しないように優先的に処理し、停止前にコマンド掃き出し処理を行う。ここで、コマンド掃き出し処理とは、タスクの状態が「Success(成功)」又は「Error(失敗)」になるまで処理を実行することである。また、コマンド管理部42は、ステップ1として、タイムアウト要件がないAPIについては、処理途中のコマンドの処理結果を受領後に、後続するコマンドの処理を停止する。
図5は、ステップ1の一時停止動作を示す図である。図5に示すように、タイムアウト要件があり、タスクの状態が「Queued」又は「Running」である場合には、コマンド管理部42は、コマンド掃き出し処理を行い、タスクの状態が「Success」又は「Error」に確定されるまで処理を行う。また、タイムアウト要件があり、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
また、一時停止を指示され、タイムアウト要件がなく、タスクの状態が「Queued」である場合には、コマンド管理部42は、「Queued」を維持する。すなわち、「Queued」の状態のタスクの実行は停止される。また、一時停止を指示され、タイムアウト要件がなく、タスクの状態が「Running」である場合には、コマンド管理部42は、コマンドの応答受信時に処理を停止する。すなわち、「Runninng」の状態のタスクの次のコマンドの実行は停止される。また、一時停止を指示され、タイムアウト要件がなく、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
そして、コマンド管理部42は、改版制御部50からの状態確認に対して、一時停止処理が完了すると一時停止完了を応答し、改版制御部50は、一時停止完了を受け取るか第1閾値時間が経過すると、一時停止指示を出す原因となった処理を開始する。すなわち、コマンド管理部42は、CM10の切り離し及びCM10の組み込み開始前に一時停止指示を出した場合には、CM10の切り離し及びCM10の組み込みを開始する。また、コマンド管理部42は、キャッシュテーブルの同期処理の開始前に一時停止指示を出した場合には、キャッシュテーブルの同期処理を開始する。そして、改版制御部50は、CM10の切り離し及びCM10の組み込み、又はキャッシュテーブルの同期処理を完了すると、コマンド管理部42に再開を指示する。
また、コマンド管理部42は、ステップ1の一時停止動作が第2閾値(<第1閾値)時間内に完了しない場合には、ステップ2に移行する。図6は、ステップ2の一時停止動作を示す図である。図6に示すように、タイムアウト要件があり、タスクの状態が「Queued」である場合には、コマンド管理部42は、「Queued」を維持する。また、タイムアウト要件があり、タスクの状態が「Running」である場合には、コマンド管理部42は、コマンド掃き出し処理を行い、タスクの状態が「Success」又は「Error」に確定されるまで処理を実行する。また、タイムアウト要件があり、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
また、ステップ2の一時停止動作において、タイムアウト要件がなく、タスクの状態が「Queued」である場合には、コマンド管理部42は、「Queued」を維持する。また、ステップ2の一時停止動作において、タイムアウト要件がなく、タスクの状態が「Running」である場合には、コマンド管理部42は、コマンドの応答受信時に処理を停止する。また、ステップ2の一時停止動作において、タイムアウト要件がなく、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
また、マスターCM10の切替では、ネットワークが一旦リセットされるため、外部ソフトウェア31とマスターCM10の通信が一度切断される。外部ソフトウェア31は、ストレージ装置1との接続が切れたことを検出した後では、接続リトライ回数によっては、処理を継続することができず、異常を検出する。外部ソフトウェア31による異常検出を可能な限り回避するため、改版制御部50は、切替前に、コマンド管理部42に完全停止を指示し、キューイングされているタスクがない状態でファームウェア改版を継続する。
コマンド管理部42は、完全停止を指示されると、ステップ1として、タイムアウト要件の有無にかかわらず、停止前にコマンド掃き出し処理を行う。
図7は、ステップ1の完全停止動作を示す図である。図7に示すように、タイムアウト要件の有無にかかわらず、タスクの状態が「Queued」又は「Running」である場合には、コマンド管理部42は、コマンド掃き出し処理を行う。また、タイムアウト要件の有無にかかわらず、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
そして、コマンド管理部42は、改版制御部50からの状態確認に対して、完全停止動作の完了後に完全停止完了を応答し、改版制御部50は、完全停止完了を受け取るか第1閾値時間が経過すると、CM10の切替を開始する。そして、改版制御部50は、CM10の切替を完了すると、コマンド管理部42に再開を指示する。
また、コマンド管理部42は、ステップ1の完全停止動作が第2閾値時間内に完了しない場合には、ステップ2に移行する。図8は、ステップ2の完全停止動作を示す図である。図8に示すように、タイムアウト要件があり、タスクの状態が「Queued」である場合には、コマンド管理部42は、「Queued」を維持する。また、タイムアウト要件があり、タスクの状態が「Running」である場合には、コマンド管理部42は、コマンド掃き出し処理を行う。また、タイムアウト要件があり、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
また、ステップ2の完全停止動作において、タイムアウト要件がなく、タスクの状態が「Queued」である場合には、コマンド管理部42は、コマンド掃き出し処理を行う。また、ステップ2の完全停止動作において、タイムアウト要件がなく、タスクの状態が「Running」である場合には、コマンド管理部42は、コマンドの応答受信時に処理を停止する。また、ステップ2の完全停止動作において、タイムアウト要件がなく、タスクの状態が「Success」又は「Error」である場合には、コマンド管理部42は、タスク情報を保持し、「成功」又は「失敗」を通知後にタスク情報を削除する。
次に、非同期コマンドの処理の流れについて説明する。図9は、非同期コマンドの処理の流れを示す図である。図9に示すように、外部ソフトウェア31は、APIを実行する(t1)。また、外部ソフトウェア31は、実行したAPIに関して、ストレージ装置1による処理の結果をポーリングする(t1’)。
APIプロバイダ32は、API実行を受け付けて1つ以上のCLIコマンドに変換し、ストレージ装置1にCLIコマンド実行を指示する(t2)。CLI制御部41は、非同期コマンドからコマンドセットを生成してコマンド管理部42に実行を依頼する(t3)。
コマンド管理部42は、コマンドセットからコマンドを1つずつ取り出してコマンド制御部43にコマンドの処理を依頼する(t4)。コマンド制御部43は、構成制御については構成制御部44に処理を依頼する(t5)。コマンド管理部42は、コマンド処理の進捗を管理し(t6)、依頼したコマンドの処理結果をコマンド制御部43から受け取ると、コマンドセットから次のコマンドを取り出してコマンド制御部43にコマンドの処理を依頼する(t4)。
このように、コマンド処理が完了するまでt4〜t6の処理が繰り返される。ただし、ファーム活性適用が行われると、コマンド処理は停止される場合がある。特に、タイムアウト要件がない非同期コマンドは、タイムアウト要件がある非同期コマンドと比較すると、停止される可能性が高い。
次に、ファームウェア改版の処理のフローについて説明する。図10は、ファームウェア改版の処理のフローを示す図である。なお、図10において、「改版」はファームウェアの改版を意味する。図10に示すように、改版制御部50は、IOM21及びFEM22の改版を行う(ステップS1)。
そして、改版制御部50は、CM10の改版を行う(ステップS2)。CM10の改版中、CM10の切り離し及び組み込みを開始するタイミングにおいて、改版制御部50は、コマンド管理部42に一時停止を指示する(ステップS3)。コマンド管理部42は、一時停止を指示されると、一時停止処理を実行し(ステップS4)、改版制御部50からの状態確認に対して、一時停止処理が完了すると完了を応答する(ステップS5)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、CM10の切り離し及び組み込みを開始し、CM10の切り離し及び組み込みが完了すると、コマンド管理部42に処理の再開を指示する。
また、改版制御部50は、キャッシュテーブルの同期処理を開始するタイミングにおいて、コマンド管理部42に一時停止を指示する(ステップS3)。コマンド管理部42は、一時停止を指示されると、一時停止処理を実行し(ステップS4)、改版制御部50からの状態確認に対して、一時停止処理が完了すると完了を応答する(ステップS5)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、キャッシュテーブルの同期処理を開始し、キャッシュテーブルの同期処理が完了すると、コマンド管理部42に処理の再開を指示する。
そして、改版制御部50は、マスターCM切替の前に、コマンド管理部42に完全停止を指示する(ステップS6)。コマンド管理部42は、完全停止を指示されると、完全停止処理を実行し(ステップS7)、改版制御部50からの状態確認に対して、完全停止処理が完了すると完了を応答する(ステップS8)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、マスターCM切替を実行し(ステップS9)、マスターCM切替が完了すると、コマンド管理部42に処理の再開を指示する。
そして、改版制御部50は、CM10の改版を行う(ステップS10)。CM10の改版中、CM10の切り離し及び組み込みを開始するタイミングにおいて、改版制御部50は、コマンド管理部42に一時停止を指示する(ステップS11)。コマンド管理部42は、一時停止を指示されると、一時停止処理を実行し(ステップS12)、改版制御部50からの状態確認に対して、一時停止処理が完了すると完了を応答する(ステップS13)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、CM10の切り離し及び組み込みを開始し、CM10の切り離し及び組み込みが完了すると、コマンド管理部42に処理の再開を指示する。
また、改版制御部50は、キャッシュテーブルの同期処理を開始するタイミングにおいて、コマンド管理部42に一時停止を指示する(ステップS11)。コマンド管理部42は、一時停止を指示されると、一時停止処理を実行し(ステップS12)、改版制御部50からの状態確認に対して、一時停止処理が完了すると完了を応答する(ステップS13)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、キャッシュテーブルの同期処理を開始し、キャッシュテーブルの同期処理が完了すると、コマンド管理部42に処理の再開を指示する。
そして、改版制御部50は、マスターCM切替の前に、コマンド管理部42に完全停止を指示する(ステップS14)。コマンド管理部42は、完全停止を指示されると、完全停止処理を実行し(ステップS15)、改版制御部50からの状態確認に対して、完全停止処理が完了すると完了を応答する(ステップS16)。改版制御部50は、コマンド管理部42から完了応答を受け取るか第1閾値時間が経過すると、マスターCM切替を実行し(ステップS17)、マスターCM切替が完了すると、コマンド管理部42に処理の再開を指示する。
そして、改版制御部50は、IOM21及びFEM22の改版を行う(ステップS18)。
このように、改版制御部50は、ファーム活性適用処理中に、APIを用いて実行される構成制御を受け付けることができないタイミングにおいて、コマンド管理部42に停止指示を出す。そして、コマンド管理部42は、停止指示を受け取ると、外部ソフトウェア31が異常を検出することがないように対策をとった後に処理を停止する。したがって、改版制御部50は、ファーム活性適用の際に、外部ソフトウェア31が構成制御を実行して異常を検出することを防ぐことができる。
次に、ファーム活性適用の動作について図11A〜図11D用いて説明する。図11A〜図11Dは、ファーム活性適用の動作を示す図である。図11A〜図11Dにおいて、○で囲まれたMは、マスターCM10を示す。図11A(a)は、ファーム活性適用処理を開始する前の状態を示す。図11A(a)では、CM#0、IOM#0、FEM#0がマスターとして動作している。
改版制御部50は、まず、マスターとしては動作していないIOM#1系及びFEM#1系のファームウェアの改版を行う。図11A(b)は、IOM#1系及びFEM#1系のファーム改版動作を示す。図11A(b)に示すように、DE#00〜DE#19において、IOM#1系及びFEM#1系のファームウェアが改版される。
そして、改版制御部50は、CM#1のファームウェアの改版を行う。CM#1のファームウェアの改版中に、CM#1の切り離し及びCM#1の組み込みのタイミング、キャッシュテーブルの同期処理のタイミングになると、改版制御部50は、コマンド管理部42に一時停止を指示する。図11B(c)は、CM#1のファーム改版動作を示す。図11B(c)に示すように、CM#1のCPU11、IOC12及びCM−EXP13で実行されるファームの改版中に、CM#1の切り離し及びCM#1の組み込みのタイミング、キャッシュテーブルの同期処理のタイミングになると一時停止指示が行われる。
そして、改版制御部50は、マスターCM10の切替を行う。マスターCM10の切替の前に改版制御部50は、コマンド管理部42に完全停止を指示する。図11B(d)は、マスターCM10の切替動作を示す。図11B(d)に示すように、完全停止指示が行われた後、マスターCM10がCM#0からCM#1に切替られる。
そして、改版制御部50は、CM#0のファームウェアの改版を行う。CM#0のファームウェアの改版中に、CM#0の切り離し及びCM#0の組み込みのタイミング、キャッシュテーブルの同期処理のタイミングになると、改版制御部50は、コマンド管理部42に一時停止を指示する。図11C(e)は、CM#0のファーム改版動作を示す。図11C(c)に示すように、CM#0のCPU11、IOC12及びCM−EXP13で実行されるファームの改版中に、CM#0の切り離し及びCM#0の組み込みのタイミング、キャッシュテーブルの同期処理のタイミングになると一時停止指示が行われる。
そして、改版制御部50は、マスターCM10の切り戻しを行う。マスターCM10の切り戻しの前に改版制御部50は、コマンド管理部42に完全停止を指示する。図11C(f)は、マスターCM10の切り戻し動作を示す。図11C(f)に示すように、完全停止指示が行われた後、マスターCM10がCM#1からCM#0に切り戻される。
そして、改版制御部50は、マスターとしては動作していないIOM#0系及びFEM#0系のファームウェアの改版を行う。図11D(g)は、IOM#1系及びFEM#1系のファーム改版動作を示す。図11D(g)に示すように、DE#00〜DE#19において、IOM#1系及びFEM#1系のファームウェアが改版される。
そして、改版制御部50は、ファーム改版を終了する。図11D(h)は、ファーム改版終了後の状態を示す。図11D(h)では、ストレージ装置1の状態は、ファームウェア改版前の図11A(a)の状態に戻る。
次に、一時停止指示のフローについて説明する。図12は、一時停止指示のフローを示すフローチャートである。図12に示すように、改版制御部50は、コマンド管理部42に一時停止を指示する(ステップS21)。そして、改版制御部50は、コマンド管理部42に状態を問い合わせることで、コマンド管理部42から状態を取得し(ステップS22)、取得した状態に基づいて、コマンド管理部42の一時停止処理が完了したか否かを判定する(ステップS23)。
そして、コマンド管理部42の一時停止処理が完了した場合には、改版制御部50は、次の処理に進む。一方、コマンド管理部42の処理が完了していない場合には、改版制御部50は、第1閾値内か否かを判定し(ステップS24)、第1閾値内の場合には、ステップS22へ戻り、第1閾値内でない場合には、次の処理に進む。
このように、改版制御部50は、第1閾値内にコマンド管理部42の一時停止処理が完了しない場合には、次の処理に進むので、ファームウェアの改版処理の中断時間を抑えることができる。なお、完全停止指示についても図12と同様なフローで処理が行われる。
上述してきたように、実施例では、APIプロバイダ32が外部ソフトウェア31のAPI実行を受け付けてCLIコマンドに変換し、CLI制御部41が、CLIコマンドのうち非同期コマンドからコマンドセットを生成してコマンド管理部42に渡す。そして、コマンド管理部42は、コマンドセットからコマンドを1つずつ取り出してコマンド制御部43に実行を依頼する。そして、コマンド制御部43は、コマンドを実行する。また、コマンド制御部43は、ストレージ装置1のファームウェアの改版を制御し、改版処理においてコマンドを実行できないタイミングでコマンド管理部42にコマンドの実行停止を指示する。そして、コマンド管理部42は、外部ソフトウェア31が異常を検出しないための処理を行った後でコマンドの実行を停止する。したがって、CM10は、外部ソフトウェア31が異常を検出してサーバ3が停止することを防ぐことができる。
また、実施例では、コマンド制御部43は、CM10のファームウェアの改版において、CM10の切り離し及び組み込みのタイミングとCM10間でのキャッシュテーブルの同期処理のタイミングでコマンド管理部42に一時停止を指示する。また、コマンド制御部43は、マスターCM10の切替のタイミングでコマンド管理部42に完全停止を指示する。したがって、コマンド制御部43は、適切なタイミングで停止を指示することができる。
また、実施例では、コマンド管理部42は、一時停止を指示されると、APIにタイムアウト要件があるタスクについては、掃き出し処理を行って処理を停止する。また、コマンド管理部42は、一時停止を指示されると、タイムアウト要件がなく状態が実行中であるタスクについては、実行中のコマンドについて応答を受信した時点で処理を停止する。したがって、コマンド管理部42は、外部ソフトウェア31がAPI実行のタイムアウトにより異常を検出することを防ぐことができる。
また、実施例では、コマンド管理部42は、一時停止を指示され、掃き出し処理が第2閾値時間内に完了しない場合には、APIにタイムアウト要件があってもタスクの状態が未実行の状態であると、タスクの状態を未実行に維持して処理を停止する。したがって、コマンド管理部42は、ファームウェアの改版処理に著しい遅れが生じることを防ぐことができる。
また、実施例では、コマンド管理部42は、完全停止を指示されると、APIにタイムアウト要件があるかないかにかかわらず、掃き出し処理を行って処理を停止する。したがって、コマンド制御部43は、非同期コマンドが実行されない状態でマスターCM10の切替を行うことができる。
また、実施例では、コマンド管理部42は、掃き出し処理が第2閾値時間内に完了しない場合には、APIにタイムアウト要件があってもタスクの状態が未実行の状態であると、タスクの状態を未実行に維持して処理を停止する。したがって、コマンド管理部42は、ファームウェアの改版処理に著しい遅れが生じることを防ぐことができる。
なお、実施例に係るストレージ装置には、図1に示した以外に様々な構成がある。そこで、他のストレージ装置の構成例について説明する。図13は、他のストレージ装置の構成例を示す図である。図13に示すように、ストレージ装置2は、CE#0〜CE#Bで表される12個のCE2aと、DE#00〜DE#BFで表される192個のDE2bと、FE(Front Enclosure)2cとを有する。
FE2cは、FM(Front Module)#00及びFM#01で表される2つのFM60を有する筐体である。FM60は、CE2aを管理するとともに、CE2a間の通信を中継する。FM#0は、SVC(Service Controller)#0で表されるSVC61と、FRT(Frontend Router)#0及びFRT#1で表される2つのFRT62を有する。FM#1は、SVC#1で表されるSVC61と、FRT#2及びFRT#3で表される2つのFRT62を有する。SVC61は、CE2aを管理し、CE2aに搭載されるモジュールの監視及び制御を行う。FRT62は、CE2a間の通信経路を提供する。
CE2aは、CM#0とCM#1で表される2つのCM10aを有する。CM10aは、CPU11と、2つのIOC12と、CM−EXP13と、CM−BIOS14と、4つのCA16と、NTB(Non Transparent Bridge)17とを有する。NTB17は、FRT62と接続するインタフェースである。
DE2bは、IOM#0及びIOM#1で表される2つのIOM21と、FEM#0及びFEM#1で表される2つのFEM22を有する。
なお、ストレージ装置2は、より多くの又はより少ないCE2aを有してもよい。また、ストレージ装置2は、より多くの又はより少ないDE2bを有してもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)データを記憶する不揮発性記憶装置と該不揮発性記憶装置へのアクセスを制御する2つの制御装置とを有するストレージ装置において、
前記制御装置は、
外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成するコマンドセット生成部と、
前記コマンドセット生成部により生成されたコマンドセットに含まれるコマンドの実行を管理するコマンド管理部と、
前記コマンド管理部により管理されるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングで前記コマンド管理部に前記コマンドの実行停止を指示するコマンド制御部とを有し、
前記コマンド管理部は、前記実行停止を指示されると、外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止することを特徴とするストレージ装置。
(付記2)前記コマンド制御部は、前記制御装置の切り離し及び組み込みのタイミングと他の制御装置とのキャッシュテーブルの同期処理のタイミングで前記コマンドの実行の一時停止を指示し、他の制御装置をマスター制御装置に切り替えるタイミングで前記コマンドの実行の完全停止を指示することを特徴とする付記1に記載のストレージ装置。
(付記3)前記コマンド管理部は、前記コマンド制御部に前記一時停止を指示されると、前記外部ソフトウェアからの指示にタイムアウト要件がある場合には、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がない場合には、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする付記2に記載のストレージ装置。
(付記4)前記コマンド管理部は、前記タスクの状態が成功又は失敗になるまでの処理が所定の時間内に完了しない場合には、前記外部ソフトウェアからの指示にタイムアウト要件があって前記タスクの状態が未実行の状態であると、前記タスクの状態を未実行に維持して処理を停止することを特徴とする付記3に記載のストレージ装置。
(付記5)前記コマンド管理部は、前記コマンド制御部に前記完全停止を指示されると、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止することを特徴とする付記2に記載のストレージ装置。
(付記6)前記コマンド管理部は、前記タスクの状態が成功又は失敗になるまでの処理が所定の時間内に完了しない場合には、前記外部ソフトウェアからの指示にタイムアウト要件があって前記タスクの状態が未実行の状態であると、前記タスクの状態を未実行に維持して処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がなくて前記タスクの状態が実行中の状態であると、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする付記5に記載のストレージ装置。
(付記7)不揮発性記憶装置へデータを記憶するストレージ装置を制御するストレージ制御装置において、
外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成するコマンドセット生成部と、
前記コマンドセット生成部により生成されたコマンドセットに含まれるコマンドの実行を管理するコマンド管理部と、
前記コマンド管理部により管理されるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングで前記コマンド管理部に前記コマンドの実行停止を指示するコマンド制御部とを有し、
前記コマンド管理部は、前記実行停止を指示されると、外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止することを特徴とするストレージ制御装置。
(付記8)前記コマンド制御部は、前記制御装置の切り離し及び組み込みのタイミングと他の制御装置とのキャッシュテーブルの同期処理のタイミングで前記コマンドの実行の一時停止を指示し、他の制御装置をマスター制御装置に切り替えるタイミングで前記コマンドの実行の完全停止を指示することを特徴とする付記7に記載のストレージ制御装置。
(付記9)前記コマンド管理部は、前記コマンド制御部に前記一時停止を指示されると、前記外部ソフトウェアからの指示にタイムアウト要件がある場合には、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がない場合には、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする付記8に記載のストレージ制御装置。
(付記10)前記コマンド管理部は、前記コマンド制御部に前記完全停止を指示されると、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止することを特徴とする付記8に記載のストレージ制御装置。
(付記11)不揮発性記憶装置へデータを記憶するストレージ装置を制御するストレージ制御装置が有するコンピュータで実行されるストレージ制御プログラムにおいて、
外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成し、
生成したコマンドセットに含まれるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングにおいて、前記外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止する
処理を前記コンピュータに実行させることを特徴とするストレージ制御プログラム。
(付記12)前記コマンドの実行を停止する処理は、前記制御装置の切り離し及び組み込みのタイミングと他の制御装置とのキャッシュテーブルの同期処理のタイミングで前記コマンドの実行を一時停止し、他の制御装置をマスター制御装置に切り替えるタイミングで前記コマンドの実行を完全停止することを特徴とする付記11に記載のストレージ制御プログラム。
(付記13)前記一時停止する処理は、前記外部ソフトウェアからの指示にタイムアウト要件がある場合には、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がない場合には、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする付記12に記載のストレージ制御プログラム。
(付記14)前記完全停止する処理は、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止することを特徴とする付記12に記載のストレージ制御プログラム。
1,2 ストレージ装置
1a,2a CE
1b,2b DE
2c FE
3 サーバ
10,10a CM
11 CPU
11a メモリ
12 IOC
13 CM−EXP
14 CM−BIOS
15 BUD
16 CA
17 NTB
21 IOM
22 FEM
23 HDD
31 外部ソフトウェア
32 APIプロバイダ
41 CLI制御部
42 コマンド管理部
43 コマンド制御部
44 構成制御部
45 IO制御部
50 改版制御部
60 FM
61 SVC
62 FRT

Claims (8)

  1. データを記憶する不揮発性記憶装置と該不揮発性記憶装置へのアクセスを制御する2つの制御装置とを有するストレージ装置において、
    前記制御装置は、
    外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成するコマンドセット生成部と、
    前記コマンドセット生成部により生成されたコマンドセットに含まれるコマンドの実行を管理するコマンド管理部と、
    前記コマンド管理部により管理されるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングで前記コマンド管理部に前記コマンドの実行停止を指示するコマンド制御部とを有し、
    前記コマンド管理部は、前記実行停止を指示されると、外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止することを特徴とするストレージ装置。
  2. 前記コマンド制御部は、前記制御装置の切り離し及び組み込みのタイミングと他の制御装置とのキャッシュテーブルの同期処理のタイミングで前記コマンドの実行の一時停止を指示し、他の制御装置をマスター制御装置に切り替えるタイミングで前記コマンドの実行の完全停止を指示することを特徴とする請求項1に記載のストレージ装置。
  3. 前記コマンド管理部は、前記コマンド制御部に前記一時停止を指示されると、前記外部ソフトウェアからの指示にタイムアウト要件がある場合には、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がない場合には、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする請求項2に記載のストレージ装置。
  4. 前記コマンド管理部は、前記タスクの状態が成功又は失敗になるまでの処理が所定の時間内に完了しない場合には、前記外部ソフトウェアからの指示にタイムアウト要件があって前記タスクの状態が未実行の状態であると、前記タスクの状態を未実行に維持して処理を停止することを特徴とする請求項3に記載のストレージ装置。
  5. 前記コマンド管理部は、前記コマンド制御部に前記完全停止を指示されると、前記タスクの状態が成功又は失敗になるまで処理を行って処理を停止することを特徴とする請求項2に記載のストレージ装置。
  6. 前記コマンド管理部は、前記タスクの状態が成功又は失敗になるまでの処理が所定の時間内に完了しない場合には、前記外部ソフトウェアからの指示にタイムアウト要件があって前記タスクの状態が未実行の状態であると、前記タスクの状態を未実行に維持して処理を停止し、前記外部ソフトウェアからの指示にタイムアウト要件がなくて前記タスクの状態が実行中の状態であると、実行中のコマンドについて応答を受信した時点で処理を停止することを特徴とする請求項5に記載のストレージ装置。
  7. 不揮発性記憶装置へデータを記憶するストレージ装置を制御するストレージ制御装置において、
    外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成するコマンドセット生成部と、
    前記コマンドセット生成部により生成されたコマンドセットに含まれるコマンドの実行を管理するコマンド管理部と、
    前記コマンド管理部により管理されるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングで前記コマンド管理部に前記コマンドの実行停止を指示するコマンド制御部とを有し、
    前記コマンド管理部は、前記実行停止を指示されると、外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止することを特徴とするストレージ制御装置。
  8. 不揮発性記憶装置へデータを記憶するストレージ装置を制御するストレージ制御装置が有するコンピュータで実行されるストレージ制御プログラムにおいて、
    外部ソフトウェアからの指示をタスクとして受け付けて前記不揮発性記憶装置を制御するコマンドセットを生成し、
    生成したコマンドセットに含まれるコマンドを実行すると共に、前記ストレージ装置のファームウェアの改版処理を制御し、前記改版処理において前記コマンドを実行できないタイミングにおいて、前記外部ソフトウェアが異常を検出しないための処理を実行した後で前記コマンドの実行を停止する
    処理を前記コンピュータに実行させることを特徴とするストレージ制御プログラム。
JP2019001235A 2019-01-08 2019-01-08 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム Active JP7115322B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019001235A JP7115322B2 (ja) 2019-01-08 2019-01-08 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム
US16/720,815 US11113003B2 (en) 2019-01-08 2019-12-19 Storage apparatus, storage control device, and recording medium with execution command pausing or stopping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019001235A JP7115322B2 (ja) 2019-01-08 2019-01-08 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2020112865A true JP2020112865A (ja) 2020-07-27
JP7115322B2 JP7115322B2 (ja) 2022-08-09

Family

ID=71404408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019001235A Active JP7115322B2 (ja) 2019-01-08 2019-01-08 ストレージ装置、ストレージ制御装置及びストレージ制御プログラム

Country Status (2)

Country Link
US (1) US11113003B2 (ja)
JP (1) JP7115322B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068946B (zh) * 2020-09-18 2024-06-21 广州粤能电力科技开发有限公司 汽轮机阀门活动性检测结果获取方法、装置、系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128885A (ja) * 2008-11-28 2010-06-10 Fujitsu Ltd ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
JP2011204267A (ja) * 2011-06-10 2011-10-13 Fujitsu Ltd データ処理装置間の基本入出力プログラムの同期化方法及びコンピュータシステム
US9798534B1 (en) * 2015-07-01 2017-10-24 EMC IP Holding Company LLC Method and system to perform non-intrusive online disk firmware upgrades
JP2018195088A (ja) * 2017-05-17 2018-12-06 富士通株式会社 ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959413B2 (en) * 2002-06-18 2005-10-25 Lsi Logic Corporation Method of handling unreadable blocks during rebuilding of a RAID device
US7558915B2 (en) * 2005-06-06 2009-07-07 Dell Products L.P. System and method for updating the firmware of a device in a storage network
JP2009282834A (ja) 2008-05-23 2009-12-03 Fujitsu Ltd ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
US8694724B1 (en) * 2011-09-06 2014-04-08 Emc Corporation Managing data storage by provisioning cache as a virtual device
WO2017056208A1 (ja) 2015-09-30 2017-04-06 株式会社日立製作所 リクエスト実行順序制御方式
JP6555096B2 (ja) * 2015-11-18 2019-08-07 富士通株式会社 情報処理装置およびプログラム更新制御方法
JP2018160156A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128885A (ja) * 2008-11-28 2010-06-10 Fujitsu Ltd ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
JP2011204267A (ja) * 2011-06-10 2011-10-13 Fujitsu Ltd データ処理装置間の基本入出力プログラムの同期化方法及びコンピュータシステム
US9798534B1 (en) * 2015-07-01 2017-10-24 EMC IP Holding Company LLC Method and system to perform non-intrusive online disk firmware upgrades
JP2018195088A (ja) * 2017-05-17 2018-12-06 富士通株式会社 ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム

Also Published As

Publication number Publication date
US11113003B2 (en) 2021-09-07
US20200218472A1 (en) 2020-07-09
JP7115322B2 (ja) 2022-08-09

Similar Documents

Publication Publication Date Title
JP4420275B2 (ja) フェイルオーバクラスタシステム及びフェイルオーバクラスタシステムを用いたプログラムのインストール方法
JP4585463B2 (ja) 仮想計算機システムを機能させるためのプログラム
JP5463267B2 (ja) 仮想計算機システムおよび仮想計算機の移行方法
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US8762648B2 (en) Storage system, control apparatus and control method therefor
US20100228960A1 (en) Virtual memory over baseboard management controller
US9069640B2 (en) Patch applying method for virtual machine, storage system adopting patch applying method, and computer system
US10809997B2 (en) Information processing apparatus and program update control method
JP2011060055A (ja) 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
JP6464777B2 (ja) 情報処理装置及びプログラム
JP2015007880A (ja) ストレージ制御装置,ストレージシステム,および制御プログラム
JP2007025933A (ja) ストレージシステム及びそのファームウェア自動更新方法
US7861112B2 (en) Storage apparatus and method for controlling the same
JP7115322B2 (ja) ストレージ装置、ストレージ制御装置及びストレージ制御プログラム
US10296218B2 (en) Update control method, update control apparatus, and storage medium
JP6708928B2 (ja) ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム
US20130185582A1 (en) Storage apparatus, controller module, and storage apparatus control method
JP6749072B2 (ja) ストレージ管理装置及びストレージ管理プログラム
JP6674101B2 (ja) 制御装置および情報処理システム
JP2009042932A (ja) 記憶制御装置の制御プログラムの更新方法
US10860078B2 (en) Managing power request during cluster operations
JP2016143248A (ja) ストレージ制御装置及びストレージ制御プログラム
WO2014155654A1 (ja) 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法
JP4945774B2 (ja) ディスクアレイ装置およびトランスポート制御用プロセッサコアの障害情報データ採取方法
WO2015037078A1 (ja) 情報処理装置、バックアッププログラム、バックアップ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220711

R150 Certificate of patent or registration of utility model

Ref document number: 7115322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150