JP5923977B2 - ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法 - Google Patents

ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法 Download PDF

Info

Publication number
JP5923977B2
JP5923977B2 JP2011286026A JP2011286026A JP5923977B2 JP 5923977 B2 JP5923977 B2 JP 5923977B2 JP 2011286026 A JP2011286026 A JP 2011286026A JP 2011286026 A JP2011286026 A JP 2011286026A JP 5923977 B2 JP5923977 B2 JP 5923977B2
Authority
JP
Japan
Prior art keywords
commands
issued
response
command
download
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.)
Expired - Fee Related
Application number
JP2011286026A
Other languages
English (en)
Other versions
JP2013134689A (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 JP2011286026A priority Critical patent/JP5923977B2/ja
Priority to US13/685,963 priority patent/US9104230B2/en
Publication of JP2013134689A publication Critical patent/JP2013134689A/ja
Application granted granted Critical
Publication of JP5923977B2 publication Critical patent/JP5923977B2/ja
Expired - Fee Related 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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、ストレージシステム等に関する。
ストレージシステムには、複数のディスク装置が搭載されており、各ディスク装置は入出力インタフェースであるSAS(Serial Attached SCSI)を介してコントローラモジュール(CM:Controller Module)と接続されている。ストレージシステムは、ホストコンピュータと接続され、ホストコンピュータから発行される、ディスク装置に対する入出力コマンドに基づいてデータの読み書きを行う。すなわち、ホストコンピュータからストレージ装置に発行される入出力コマンドは、CM内に搭載された入出力制御チップ(IOC:I/O Controller)のファームウェア(IOCFW:I/O Controller Firmware)により制御され、対象のディスク装置へ発行される。
ところで、IOCFWは、CMを制御するファームウェア(CFW:Controller Firmware)と独立したファームウェアである。冗長化された複数のCMが搭載されたストレージシステムでは、運用中のシステムを停止することなくCFWを更新する仕組みが知られている。この仕組みは「活性ファームウェアローディング(CFL:Concurrent Firmware Loading)」と呼ばれる。CFLには、CMの電源をオフおよびオンを実行してCFWを更新する方式とCMの電源をオフおよびオンを実行しないでCFWを更新する方式(以降、「WarmBoot処理」という。)が存在する。
図11は、WarmBoot処理によるCFWの更新を示す図である。図11に示すように、WarmBoot処理では、冗長化された0系のCM#0と1系のCM#1について、例えば、CM#1のCFWを更新した後、CM#0のCFWを更新する。なお、更新後のCM#1、CM#0を網掛けで示す。すなわち、WarmBoot処理は、CMの冗長性を利用し、CM単位に順次リブートして新たなCFWを順次更新する。
そして、WarmBoot処理では、ホストコンピュータとのパスが切断されないようにするため、処理を高速で行うことが望まれる。このため、秒オーダの時間がかかるIOCFWのダウンロード処理は、WarmBoot処理内に取り入れられず、WarmBoot処理前に実行される。
特開2007−323356号公報 特開2009−81582号公報 特開2003−78946号公報
しかしながら、IOCFWのダウンロード処理がディスク装置に対する入出力処理と並行して実行されると、入出力処理が滞ってしまう場合があるという問題があった。例えば、IOCFWのダウンロード処理がディスク装置に対する入出力処理と並行して実行されると、ディスク装置に発行中の入出力コマンドにおける入出力処理が滞り、入出力コマンドに対する応答が遅延してしまう場合がある。
1つの側面では、本発明は、ファームウェアのダウンロード処理と記憶装置に対する入出力処理が並行して実行されても、入出力処理が滞ることを防止できるストレージシステム等を提供することを目的とする。
本願の開示するストレージシステムは、一つの態様において、データを記憶する記憶装置と、前記記憶装置へのデータの制御を実施する第1の装置および前記第1の装置と二重化された第2の装置とを有し、前記第1の装置は、前記記憶装置に記憶されるデータの入出力に関わるコマンドを処理する処理装置と、前記処理装置を制御するファームウェアのダウンロード時に前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部と、前記ファームウェアのダウンロード要求があった場合、前記記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を検索し、前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、検索した発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を制限する制御部とを有する。
本願の開示するストレージシステムの一つの態様によれば、ファームウェアのダウンロード処理と記憶装置に対する入出力処理が並行して実行されても、入出力処理が滞ることを防止できるという効果を奏する。
図1は、実施例に係るストレージシステムの構成を示す機能ブロック図である。 図2は、実施例に係る応答遅延時間テーブルのデータ構造の一例を示す図である。 図3は、実施例に係る許容応答遅延時間テーブルのデータ構造の一例を示す図である。 図4は、実施例に係る発行中のコマンド数がxである場合の発行中応答待ち時間テーブルのデータ構造の一例を示す図である。 図5は、実施例に係る応答遅延時間テーブル作成処理のフローチャートを示す図である。 図6は、実施例に係る許容応答遅延時間テーブル作成処理のフローチャートを示す図である。 図7は、実施例に係るIOCFWダウンロード制御処理のフローチャートを示す図(1)である。 図8は、実施例に係るIOCFWダウンロード制御処理のフローチャートを示す図(2)である。 図9は、実施例に係るコマンド遅延時間更新処理のフローチャートを示す図である。 図10は、実施例に係るコマンドの応答を監視する処理のフローチャートを示す図である。 図11は、WarmBoot処理によるCFWの更新を示す図である。
以下に、本願の開示するストレージシステム、コントローラモジュールおよびストレージシステムの制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、冗長化された2台のコントローラモジュールが搭載されたストレージシステムに適用する場合を示す。しかし、本実施例によりこの発明が限定されるものではない。
[実施例に係るストレージシステムの構成]
図1は、実施例に係るストレージシステムの構成を示す機能ブロック図である。図1に示すように、ストレージシステム2は、上位装置であるホストコンピュータ1と保守用端末7とそれぞれ接続する。そして、ストレージシステム2は、コントローラエンクロージャ(CE)3と複数のディスク装置(以降、「ディスク」という。)5と複数のデバイスエンクロージャ(DE)6とを有する。
コントローラエンクロージャ3は、外部アクセスの処理機能を有する制御筐体であり、2台のコントローラモジュール(CM)4を有し、ディスク5等のデバイスに対するアクセス経路を二重化している。ディスク5は、データを記憶する記憶装置であり、例えばHDD(Hard Disk Drive)やSSD(Solid State Disk)等に対応する。デバイスエンクロージャ6は、その内部に有するエクスパンダ62を介して複数のディスク5と接続する。
コントローラモジュール4は、ディスク5へのデータ制御を実施する装置である。コントローラモジュール4は、2台のチャンネルアダプタ(CA)41とエクスパンダ42とI/Oコントローラ(IOC)43とBUD44と記憶部45と制御部46とを有する。
チャンネルアダプタ41は、ホストコンピュータ1と通信接続する通信インタフェースである。エクスパンダ42は、ホストコンピュータ1と、ディスク5またはデバイスエンクロージャ6との間で行われるデータの送受信を中継する装置である。
I/Oコントローラ43は、ディスク5に記憶されるデータの入出力に関わるコマンド(入出力コマンド)を処理する入出力制御装置である。ここで、入出力コマンドとは、例えばディスク5に記憶されたデータを読み出すリードコマンドであったり、データをディスク5に書き込むライトコマンドであったりする。また、I/Oコントローラ43は、I/Oコントローラ43を制御するコントローラファームウェアであるIOCFW431を有する。IOCFW431は、例えば、入出力コマンドを該当するディスク5に発行したり、発行した入出力コマンドの応答を発行元に返却したりする。
BUD(Bootup and Utility Device)44は、新しくリリースされるIOCFW(新IOCFW441)を記憶する記憶装置である。新IOCFW441は、I/Oコントローラ43の障害修正や機能追加の際にリリースされ、BUDに記憶される。ここで、リリースされた新IOCFW441は、所定のタイミングで、I/Oコントローラ43に対してダウンロードされることで、I/Oコントローラ43のIOCFW431と置き換えられる。新IOCFW441のダウンロード処理は、ディスク5に対する入出力コマンドの処理と並行して実行される場合であっても、入出力コマンドの処理と並行しないで実行される場合であっても良い。なお、所定のタイミングとは、コントローラモジュール4を制御するコントローラファームウェア(CFW)を更新する方式であるWarmBoot処理前を一例とする。WarmBoot処理は、運用中のストレージシステム2を停止することなくCFWを更新する仕組みの1つであり、コントローラモジュール4の冗長性を利用してコントローラモジュール4の電源をオフおよびオンを実行しないでCFWを更新する。しかしながら、所定のタイミングは、WarmBoot処理前に限定されず、WarmBoot処理と無関係なタイミングであっても良い。
記憶部45は、応答遅延時間テーブル451、許容応答遅延時間テーブル452および発行中応答待ち時間テーブル453を記憶する。記憶部45は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置に対応する。
応答遅延時間テーブル451は、IOCFWのダウンロードによって入出力コマンドのディスク5からの応答が遅延する時間(応答遅延時間)を記憶するテーブルである。かかる応答遅延時間テーブル451は、入出力コマンドを纏めて発行するコマンド数に対応する応答遅延時間を表す。応答遅延時間テーブル451は、例えばストレージシステム2の運用前にテーブル作成部461により作成され、運用中の応答待ち時間を補整する場合に用いられる。なお、応答遅延時間テーブル451の詳細は、後述する。
許容応答遅延時間テーブル452は、IOCFWのダウンロード時における許容可能な応答遅延時間を記憶するテーブルである。許容応答遅延時間テーブル452は、例えばストレージシステム2の運用前に作成され、運用中の応答待ち時間を補整する場合に用いられる。
発行中応答待ち時間テーブル453は、IOCFWのダウンロードと並行して発行される入出力コマンドの応答待ち時間を記憶するテーブルである。かかる発行中応答待ち時間テーブル453は、入出力コマンドのコマンド数に対応する応答待ち時間を、発行される入出力コマンド毎に記憶する。応答待ち時間とは、入出力コマンドをディスク5に発行してからディスク5からの応答を検出するまでの時間であってタイムアウトとなる時間を意味する。この応答待ち時間は、ストレージシステム2の運用中のIOCFWのダウンロード時に、応答遅延時間テーブル451を用いて補整される。なお、許容応答遅延時間テーブル452および発行中応答待ち時間テーブル453の詳細は、後述する。
制御部46は、コントローラモジュール4を制御する。例えば、制御部46は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。さらに、制御部46は、テーブル作成部461と、IOCFWダウンロード制御部462と、応答監視部463とを有する。なお、制御部46に含まれる各機能部は、例えば、コントローラモジュール4を制御するCFWによって実現される。
テーブル作成部461は、応答遅延時間テーブル451を作成する。なお、テーブル作成部461による処理は、例えば、ストレージシステム2の運用前に実行される。例えば、テーブル作成部461は、IOCFWのダウンロード中に、一度に纏めて入出力コマンドを発行し、発行した入出力コマンドの数毎の応答遅延時間を算出する。そして、テーブル作成部461は、算出した入出力コマンドの数毎の応答遅延時間を応答遅延時間テーブル451に格納する。
ここで、応答遅延時間テーブル451のデータ構造について、図2を参照して説明する。図2は、実施例に係る応答遅延時間テーブルのデータ構造の一例を示す図である。図2に示すように、応答遅延時間テーブル451は、コマンド数451aと応答時間451bとダウンロード時の応答時間451cとダウンロード時の遅延時間451dとを対応付けて記憶する。コマンド数451aは、一度に纏めて発行する入出力コマンドの数を示し、1から発行可能な最大数までの数が該当する。発行可能な最大数は、I/Oコントローラ43の資源によって異なるが、例えば2000を示す。応答時間451bは、IOCFWのダウンロード実行時でない場合にコマンド数分入出力コマンドを纏めて発行したときの平均応答時間を示す。ダウンロード時の応答時間451cは、IOCFWのダウンロード実行時である場合にコマンド数分入出力コマンドを纏めて発行したときの平均応答時間を示す。ダウンロード時の遅延時間451dは、IOCFWのダウンロードによって応答が遅延した時間を示す。すなわち、ダウンロード時の遅延時間451dは、ダウンロード時の応答時間451cから応答時間451bを差し引いて得られる時間となる。
一例として、コマンド数451aが「x」である場合、応答時間451bにT_r(x)が示す値を記憶している。ダウンロード時の応答時間451cにT_rf(x)が示す値を記憶している。ダウンロード時の遅延時間451dにT_d(x)が示す値を記憶している。
図1に戻って、テーブル作成部461は、応答遅延時間テーブル451に基づいて、許容応答遅延時間テーブル452を作成する。例えば、テーブル作成部461は、予め定められたダウンロード時における入出力コマンドの許容可能な応答遅延時間を、許容応答遅延時間テーブル452に設定する。そして、テーブル作成部461は、応答遅延時間テーブル451に基づいて、設定した許容可能な応答遅延時間に最も近いダウンロード時の遅延時間を読み出す。そして、テーブル作成部461は、読み出したダウンロード時の遅延時間に対応するコマンド数を検索し、検索したコマンド数をダウンロード時の発行可能なコマンド数として許容応答遅延時間テーブル452に格納する。すなわち、IOCFWのダウンロード時に、ダウンロード時の発行可能なコマンド数まで入出力コマンドが発行されたとしても、ダウンロードによって遅延する各コマンドの応答遅延時間が許容可能な応答遅延時間の範囲内となる。このため、IOCFWのダウンロード時であって、入出力処理が滞らない。
図3は、実施例に係る許容応答遅延時間テーブルのデータ構造の一例を示す図である。図3に示すように、許容応答遅延時間テーブル452は、許容応答遅延時間452aと発行可能コマンド数452bとを対応付けて記憶する。許容応答遅延時間452aは、ダウンロード時における入出力コマンドの許容可能な応答遅延時間を示す。発行可能コマンド数452bは、ダウンロード時の発行可能なコマンド数を示す。一例として、許容応答遅延時間テーブル452は、許容応答遅延時間452aが「T_m」である場合、発行可能コマンド数452bに「L」を記憶している。
図1に戻って、IOCFWダウンロード制御部462は、IOCFWのダウンロード中に、発行中のコマンドの数が、ダウンロード時の発行可能なコマンド数以上であれば、新たに発行要求があった入出力コマンドの発行を制限する。
例えば、IOCFWダウンロード制御部462は、IOCFWのダウンロード中に入出力コマンドの発行要求があったとき、許容応答遅延時間テーブル452から発行可能コマンド数を読み出す。そして、IOCFWダウンロード制御部462は、既に発行中のコマンドの数が、読み出した発行可能コマンド数以上であれば、新たに発行要求があった入出力コマンドの発行を制限する。一例として、IOCFWダウンロード制御部462は、発行が制限された入出力コマンドの処理を、二重化されたコンローラモジュール4のI/Oコントローラ43に依頼する。
また、IOCFWダウンロード制御部462は、既に発行中のコマンドの数が、読み出した発行可能コマンド数以上でなければ、新たに発行要求があった入出力コマンドを発行する。そして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451に基づいて、発行中のコマンドの数に対応するダウンロード時の遅延時間を取得する。そして、IOCFWダウンロード制御部462は、取得したダウンロード時の遅延時間を、発行中応答待ち時間テーブル453に記憶された、発行中のコマンドの数に対応する応答待ち時間に加算する。すなわち、IOCFWダウンロード制御部462は、応答遅延時間テーブル451に記憶されたコマンド数に対応するダウンロード時の遅延時間を用いて、IOCFWのダウンロード時の応答待ち時間を補整する。言い換えれば、IOCFWダウンロード制御部462は、IOCFWのダウンロード時の入出力コマンドのタイムアウトとなる時間を補整する。後述する応答監視部463は、補整した応答待ち時間を用いて、IOCFWのダウンロード時における、入出力コマンドの応答を監視することとなる。そして、IOCFWダウンロード制御部462は、IOCFWのダウンロードが完了するまでの間、入出力コマンドの新規発行または入出力コマンドの応答により発行中のコマンドの数が変化する都度、発行中のコマンドの数に対応する応答待ち時間を補整する。
また、IOCFWダウンロード制御部462は、IOCFWのダウンロードに移行する際、既に発行中のコマンドの数が、読み出した発行可能コマンド数より大きければ、ダウンロード要求があったIOCFWのダウンロードの実行の開始を待つ。既に発行中のコマンドの数が、発行可能コマンド数より超えているので、この状況下でIOCFWのダウンロードが実行されると入出力処理が滞ってしまうからである。
ここで、発行中応答待ち時間テーブル453のデータ構造について、図4を参照して説明する。図4は、実施例に係る発行中のコマンド数がxである場合の発行中応答待ち時間テーブルのデータ構造の一例を示す図である。図4に示すように、発行中応答待ち時間テーブル453は、発行中コマンド数453aとシーケンシャル番号453bとコマンド453cと応答待ち時間453dとを対応付けて管理する。発行中コマンド数453aは、並行して発行されている入出力コマンドのコマンド数を示す。シーケンシャル番号453bは、並行して発行されている入出力コマンドの発行順に応じて付けられた番号である。コマンド453cは、シーケンシャル番号453bに対応する入出力コマンドの内容を示す。応答待ち時間453dは、入出力コマンドがディスク5に発行されてからディスク5からの応答を検出するまでの時間であってタイムアウトとなる時間を示す。応答待ち時間453dの初期値は、IOCFWのダウンロード実行時でない場合の応答待ち時間を示し、例えばコマンド453cに共通して一律5秒である。なお、応答待ち時間453dの初期値は、コマンド453cに共通しなくても良く、コマンド453cの内容に応じて異なる値であっても良い。一例として、リードコマンドを4秒とし、ライトコマンドを5秒としても良い。
一例として、発行中コマンド数453aが「x」であって、シーケンシャル番号452bが「2」である場合、コマンド453cに発行中の入出力コマンドの内容を示す「B」を記憶している。応答待ち時間453dに「T_w(B)+T_d(x)」を記憶している。なお、T_w(B)は、入出力コマンドBの応答待ち時間の初期値を示す。T_d(x)は、コマンド数が「x」である場合のダウンロード時の遅延時間を示す。すなわち、応答待ち時間453dは、応答遅延時間テーブル451のダウンロード時の遅延時間451dを用いて、初期値の「T_w(B)」から「T_w(B)+T_d(x)」に補整されている。
図1に戻って、応答監視部463は、入出力コマンドの応答を監視する。例えば、応答監視部463は、入出力コマンドが発行された場合、発行された入出力コマンドに関し、発行中応答待ち時間テーブル453の応答待ち時間を初期値に設定する。その後、応答監視部463は、発行中応答待ち時間テーブル453に記憶された各入出力コマンドの応答待ち時間を参照しながら、発行中の入出力コマンド毎に応答を監視する。なお、初期値に設定された応答待ち時間は、IOCFWがダウンロードされた場合、IOCFWダウンロード制御部462によって補整された値となる。したがって、応答監視部463は、IOCFWのダウンロードの開始から完了までの間、補整された応答待ち時間を参照しながら、発行中の入出力コマンドの応答を監視する。
[応答遅延時間テーブル作成処理の手順]
次に、応答遅延時間テーブル451の作成処理の手順について、図5を参照して説明する。図5は、実施例に係る応答遅延時間テーブル作成処理のフローチャートを示す図である。なお、応答遅延時間テーブル作成処理は、例えば、ストレージシステム2の運用前に実行される。
まず、テーブル作成部461は、纏めて入出力コマンドを発行するコマンド数(発行コマンド数)Nに1を設定する(ステップS11)。そして、テーブル作成部461は、発行コマンド数Nが最大数Max以下であるか否かを判定する(ステップS12)。発行コマンド数Nが最大数Maxより大きい場合(ステップS12;No)、テーブル作成部461は、応答遅延時間テーブル451の作成処理を終了する。
一方、発行コマンド数Nが最大数Max以下である場合(ステップS12;Yes)、テーブル作成部461は、N個の入出力コマンドを同時にディスク5に対して発行する(ステップS13)。そして、テーブル作成部461は、N個の入出力コマンドの応答時間を算出し、算出した応答時間の平均値T_r(N)を算出する(ステップS14)。
続いて、テーブル作成部461は、IOCFWのダウンロードを実行する(ステップS15)。そして、テーブル作成部461は、IOCFWのダウンロードの実行中にN個の入出力コマンドを同時にディスク5に対して発行する(ステップS16)。そして、テーブル作成部461は、N個の入出力コマンドの応答時間を算出し、算出した応答時間の平均値T_rf(N)を算出する(ステップS17)。
そして、テーブル作成部461は、発行コマンド数Nに対する入出力コマンドの応答遅延時間T_d(N)を算出する(ステップS18)。具体的には、テーブル作成部461は、T_rf(N)からT_r(N)を減算し、減算して得た値を入出力コマンドの応答遅延時間T_d(N)とする。そして、テーブル作成部461は、算出した入出力コマンドの応答遅延時間T_d(N)を応答遅延時間テーブル451のダウンロード時の遅延時間451dに設定する(ステップS19)。具体的には、テーブル作成部461は、発行コマンド数Nと応答時間の平均値T_r(N)とダウンロード時の応答時間の平均値T_rf(N)と応答遅延時間T_d(N)とを対応付けて応答遅延時間テーブル451に追加する。
さらに、テーブル作成部461は、発行コマンド数Nを1だけ加算する(ステップS20)。そして、テーブル作成部461は、加算した発行コマンド数Nにおける処理を継続すべく、ステップS12に移行する。
[許容応答遅延時間テーブル作成処理の手順]
次に、許容応答遅延時間テーブル452の作成処理の手順について、図6を参照して説明する。図6は、実施例に係る許容応答遅延時間テーブル作成処理のフローチャートを示す図である。なお、許容応答遅延時間テーブル作成処理は、応答遅延時間テーブル451の作成が完了した後実行される。
まず、テーブル作成部461は、ダウンロード時における入出力コマンドの許容可能な応答遅延時間を示す許容応答遅延時間T_mを許容応答遅延時間テーブル452に設定する(ステップS21)。そして、テーブル作成部461は、応答遅延時間テーブル451のダウンロード時の遅延時間451dから許容応答遅延時間T_mに最も近い値の遅延時間T_d(L)を検索する(ステップS22)。
さらに、テーブル作成部461は、ダウンロード時の遅延時間451dの値がT_d(L)であるときの入出力コマンドのコマンド数451aを応答遅延時間テーブル451から読み出す。そして、テーブル作成部461は、読み出した値をダウンロード時の発行可能なコマンド数Lとする(ステップS23)。
そして、テーブル作成部461は、ダウンロード時の発行可能なコマンド数Lを許容応答遅延時間テーブル452の発行可能コマンド数に設定する(ステップS24)。
[IOCFWダウンロード制御処理の手順]
次に、IOCFWダウンロード制御処理の手順について、図7および図8を参照して説明する。図7および図8は、実施例に係るIOCFWダウンロード制御処理のフローチャートを示す図である。
まず、IOCFWダウンロード制御部462は、保守用端末7からIOCFWのダウンロード実行要求が依頼されたか否かを判定する(ステップS30)。IOCFWのダウンロード実行要求が依頼されていないと判定した場合(ステップS30;No)、IOCFWダウンロード制御部462は、IOCFWのダウンロード実行要求が依頼されるまで判定処理を繰り返す。
一方、IOCFWのダウンロード実行要求が依頼されたと判定した場合(ステップS30;Yes)、IOCFWダウンロード制御部462は、発行中のコマンド数(Kとする)が発行可能コマンド数(Lとする)以下であるか否かを判定する(ステップS31)。具体的には、IOCFWダウンロード制御部462は、許容応答遅延時間テーブル452の発行可能コマンド数452bからダウンロード時の発行可能なコマンド数(L)を読み出す。そして、IOCFWダウンロード制御部462は、発行中のコマンド数(K)が、読み出したコマンド数(L)以下であるか否かを判定する。
発行中のコマンド数(K)が発行可能コマンド数(L)以下であると判定した場合(ステップS31:Yes)、IOCFWダウンロード制御部462は、IOCFWのダウンロードの実行を開始する(ステップS32)。その後、IOCFWダウンロード制御部462は、ステップS41に移行する。
一方、発行中のコマンド数(K)が発行可能コマンド数(L)より大きいと判定した場合(ステップS31:No)、IOCFWダウンロード制御部462は、IOCFWのダウンロードの実行の開始を待つ。既に発行中のコマンドの数が発行可能コマンド数より超えているので、この状況下でIOCFWのダウンロードが実行されると、入出力処理が滞ってしまうからである。そこで、IOCFWダウンロード制御部462は、入出力コマンドの発行要求があるか否かを判定する(ステップS33)。
入出力コマンドの発行要求があると判定した場合(ステップS33;Yes)、IOCFWダウンロード制御部462は、ペアのコントローラモジュール(CM)4のI/Oコントローラ(IOC)43に入出力処理を依頼する(ステップS34)。そして、IOCFWダウンロード制御部462は、ステップS35に移行する。
一方、入出力コマンドの発行要求がないと判定した場合(ステップS33;No)、IOCFWダウンロード制御部462は、ステップS35に移行する。そして、ステップS35では、IOCFWダウンロード制御部462は、入出力コマンドの応答があるか否かを判定する(ステップS35)。
入出力コマンドの応答がないと判定した場合(ステップS35;No)、IOCFWダウンロード制御部462は、ステップS30に移行する。一方、入出力コマンドの応答があると判定した場合(ステップS35;Yes)、IOCFWダウンロード制御部462は、発行コマンド数Kから、応答があった入出力コマンドの数を減算し、減算した値を発行コマンド数Kに設定する(ステップS36)。そして、IOCFWダウンロード制御部462は、ステップS30に移行する。
IOCFWのダウンロードの実行が開始されると、IOCFWダウンロード制御部462は、応答遅延時間テーブル451から、発行中コマンド数Kに対応するダウンロード時の遅延時間T_d(K)を取得する(ステップS41)。さらに、IOCFWダウンロード制御部462は、発行中応答待ち時間テーブル453の応答待ち時間453dに、取得したダウンロード時の遅延時間T_d(K)を加算する(ステップS42)。すなわち、IOCFWダウンロード制御部462は、発行中応答待ち時間テーブル453の、発行コマンド数分の入出力コマンドの応答待ち時間を、初期値にダウンロード時の遅延時間T_d(K)を加算した値に更新する。なお、例えば、初期値は、IOCFWのダウンロード実行時でない場合の入出力コマンドの応答待ち時間を示し、応答監視部463が設定する。
続いて、IOCFWダウンロード制御部462は、IOCFWのダウンロードが完了したか否かを判定する(ステップS43)。IOCFWのダウンロードが完了していないと判定した場合(ステップS43;No)、IOCFWダウンロード制御部462は、入出力コマンドの発行要求があるか否かを判定する(ステップS44)。入出力コマンドの発行要求がないと判定した場合(ステップS44;No)、IOCFWダウンロード制御部462は、入出力コマンドの応答の有無を判定すべく、ステップS51に移行する。
入出力コマンドの発行要求があると判定した場合(ステップS44;Yes)、IOCFWダウンロード制御部462は、発行中のコマンド数(K)が発行可能コマンド数(L)より小さいか否かを判定する(ステップS45)。ここで、発行中のコマンド数(K)が発行可能コマンド数(L)より小さくない(K≧L)場合(ステップS45;No)、IOCFWダウンロード制御部462は、ペアのCM4のI/Oコントローラ(IOC)43に入出力処理を依頼する(ステップS46)。
一方、発行中のコマンド数(K)が発行可能コマンド数(L)より小さい場合(ステップS45;Yes)、IOCFWダウンロード制御部462は、発行要求があった入出力コマンドをI/Oコントローラ(IOC)43に発行する(ステップS47)。そして、IOCFWダウンロード制御部462は、発行中のコマンド数Kに、発行した入出力コマンドの数を加算し、加算した値を発行コマンド数Kに設定する(ステップS48)。
そして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451から、発行中コマンド数Kに対応するダウンロード時の遅延時間T_d´(K)を取得する(ステップS49)。さらに、IOCFWダウンロード制御部462は、発行中応答待ち時間テーブル453の応答待ち時間453dのT_d(K)を、取得したT_d´(K)に更新する(ステップS50)。すなわち、IOCFWダウンロード制御部462は、発行中応答待ち時間テーブル453の、初期値を示す応答待ち時間453dに、取得したダウンロード時の遅延時間T_d´(K)を加算することで、応答待ち時間453dを更新する。そして、IOCFWダウンロード制御部462は、入出力コマンドの応答の有無を判定すべく、ステップS51に移行する。
そして、ステップS51では、IOCFWダウンロード制御部462は、入出力コマンドの応答があるか否かを判定する(ステップS51)。入出力コマンドの応答がないと判定した場合(ステップS51;No)、IOCFWダウンロード制御部462は、ステップS43に移行する。一方、入出力コマンドの応答があると判定した場合(ステップS51;Yes)、IOCFWダウンロード制御部462は、発行コマンド数Kから、応答があった入出力コマンドの数を減算し、減算した値を発行コマンド数Kに設定する(ステップS52)。そして、IOCFWダウンロード制御部462は、ステップS43に移行する。
ステップS43では、IOCFWのダウンロードが完了したと判定した場合(ステップS43;Yes)、IOCFWダウンロード制御部462は、次の処理を行う。すなわち、IOCFWダウンロード制御部462は、応答遅延時間テーブル451から、発行中コマンド数Kに対応するダウンロード時の遅延時間T_d(K)を取得する(ステップS53)。そして、IOCFWダウンロード制御部462は、発行中応答待ち時間テーブル453の入出力コマンドの応答待ち時間453dから、取得したダウンロード時の遅延時間T_d(K)を減算する(ステップS54)。すなわち、発行中応答待ち時間テーブル453の入出力コマンドの応答待ち時間453dは、初期値に更新される。そして、IOCFWダウンロード制御部462は、IOCFWダウンロード制御処理を終了する。
ところで、応答遅延時間テーブル451は、テーブル作成部461によってストレージシステム2の運用前に作成されるものとして説明した。すなわち、応答遅延時間テーブル451のダウンロード時の遅延時間451dは、ストレージシステム2の運用前に設定される。しかしながら、応答遅延時間テーブル451のダウンロード時の遅延時間451dは、これに限定されるものではなく、ストレージシステム2の運用前に設定された後、運用中に実測値に即して設定し直されても良い。そこで、応答遅延時間テーブル451のダウンロード時の遅延時間451dが、ストレージシステム2の運用前に設定された後、運用中に実測値に即して設定し直される場合について説明する。
[コマンド遅延時間更新処理の手順]
図9は、実施例に係るコマンド遅延時間更新処理のフローチャートを示す図である。なお、IOCFWのダウンロード中にM−1個の入出力コマンドが並行して発行され、さらにM個目の入出力コマンドが発行されたものとする。
IOCFWダウンロード制御部462は、M個目に発行された入出力コマンドの発行時刻T_reqを保持する(ステップS61)。そして、IOCFWダウンロード制御部462は、入出力コマンドの応答時刻T_repを保持するとともに、発行中のコマンド数Mを保持する(ステップS62)。なお、入出力コマンドの発行時刻等を保持する場所は、例えば、記憶部45の一時領域である。
続いて、IOCFWダウンロード制御部462は、入出力コマンドの応答時間T_rf´(M)を算出する(ステップS63)。具体的には、IOCFWダウンロード制御部462は、入出力コマンドの応答時刻T_repから入出力コマンドの発行時刻T_reqを差し引いて得た値を入出力コマンドの応答時間T_rf´(M)とする。
そして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451のコマンド数Mに対応するダウンロード時の応答時間T_rf(M)をT_rf´(M)に置換する(ステップS64)。そして、IOCFWダウンロード制御部462は、入出力コマンドの遅延時間T_d´(M)を算出する(ステップS65)。具体的には、IOCFWダウンロード制御部462は、置換したダウンロード時の応答時間T_rf´(M)から入出力コマンドの応答時間T_r(M)を差し引いて得た値を入出力コマンドの遅延時間T_d´(M)とする。
そして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451のコマンド数Mに対応するダウンロード時の遅延時間T_d(M)をT_d´(M)に置換する(ステップS66)。
このようにして、IOCFWダウンロード制御部462は、IOCFWのダウンロードの実行中に並行して発行された入出力コマンドのコマンド数に対応する遅延時間を、実測値に即して設定し直すべく更新する。すなわち、IOCFWダウンロード制御部462は、IOCFWのダウンロードの実行中に発行された入出力コマンドが応答されたときのコマンド数分更新する。
しかしながら、IOCFWダウンロード制御部462は、応答遅延時間テーブル451に記憶された全てのコマンド数分実測結果を反映するようにしても良い。例えば、IOCFWダウンロード制御部462は、IOCFWのダウンロードの実行中に並行して発行された入出力コマンドのコマンド数に対応する遅延時間の更新前後の値の割合を算出する。そして、IOCFWダウンロード制御部462は、算出した割合を応答遅延時間テーブル451に記憶された他のコマンド数に対応する遅延時間に乗じる。さらに、IOCFWダウンロード制御部462は、乗じて得た値を当該コマンド数に対応する新たな遅延時間として応答遅延時間テーブル451に更新する。このようにして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451に記憶された全てのコマンド数分実測結果を反映できる。
[コマンド応答監視処理の手順]
次に、コマンド応答監処理の手順の一例について、図10を参照して説明する。図10は、実施例に係るコマンドの応答を監視する処理のフローチャートを示す図である。なお、以下に示す処理の手順は、1つの入出力コマンドの応答に関する監視に絞って説明する。
まず、応答監視部463は、入出力コマンドが発行されたか否かを判定する(ステップS71)。入出力コマンドが発行されていないと判定した場合(ステップS71;No)、応答監視部463は、入出力コマンドが発行されるまで、判定処理を繰り返す。
入出力コマンドが発行されたと判定した場合(ステップS71;Yes)、応答監視部463は、発行中応答待ち時間テーブル453の応答待ち時間を初期値に設定する(ステップS72)。なお、初期値は、IOCFWのダウンロード実行時でない場合の応答待ち時間を示す。
そして、応答監視部463は、入出力コマンドの応答があるか否かを判定する(ステップS73)。入出力コマンドの応答があると判定した場合(ステップS73;Yes)、応答監視部463は、入出力コマンドの応答処理を実行し(ステップS74)、監視処理を終了する。
一方、入出力コマンドの応答がないと判定した場合(ステップS73;No)、応答監視部463は、入出力コマンドがタイムアウトであるか否かを判定する(ステップS75)。例えば、応答監視部463は、発行中応答待ち時間テーブル453に記憶されたコマンドに対応する応答待ち時間を用いて、入出力コマンドの応答が、入出力コマンドに対応する応答待ち時間を経過しているか否かを判定する。
入出力コマンドがタイムアウトであると判定した場合(ステップS75;Yes)、応答監視部463は、エラー処理を実行し(ステップS76)、監視処理を終了する。一方、入出力コマンドがタイムアウトでないと判定した場合(ステップS75;No)、応答監視部463は、入出力コマンドの応答を待つべく、監視処理を所定時間だけ遅延(ディレイ)させ(ステップS77)、その後ステップS73に移行する。
[実施例の効果]
上記実施例によれば、IOCFWダウンロード制御部462は、運用開始時にIOCFWのダウンロード時における入出力コマンドの許容可能な応答遅延時間を設定する。そして、IOCFWダウンロード制御部462は、IOCFWのダウンロード要求があった場合、応答遅延時間テーブル451に記憶された情報に基づいて、設定した許容可能な応答遅延時間に対応する発行可能なコマンド数を検索する。そして、IOCFWダウンロード制御部462は、IOCFWのダウンロード中に、発行中の入出力コマンドの数が、検索した発行可能なコマンド数以上であれば、新たに発行要求があった入出力コマンドの発行を制限する。かかる構成によれば、IOCFWダウンロード制御部462は、IOCFWのダウンロード時の同時点で発行されている入出力コマンドの数を、許容可能な応答遅延時間に対応する発行可能なコマンド数に抑えることができる。この結果、IOCFWダウンロード制御部462は、IOCFWのダウンロードが入出力処理と並行して実行されても、入出力処理が滞ることを防止できる。
また、上記実施例によれば、IOCFWダウンロード制御部462は、発行中の入出力コマンドの数が、発行可能なコマンド数以上であれば、新たに発行要求があった入出力コマンドの発行を二重化されたコントローラモジュール4に依頼する。かかる構成によれば、IOCFWダウンロード制御部462は、入出力コマンドの処理を継続させながら、且つ、IOCFWのダウンロード時における入出力処理の影響を抑えることができる。
また、上記実施例によれば、IOCFWダウンロード制御部462は、さらに、発行中の入出力コマンドの数が、発行可能なコマンド数を超えていれば、ダウンロード要求があったIOCFWの実行の開始を待つようにした。かかる構成によれば、IOCFWダウンロード制御部462は、IOCFWのダウンロードによって入出力処理が滞ることを防止できる。
また、上記実施例によれば、IOCFWダウンロード制御部462は、発行中の入出力コマンドの数が、発行可能なコマンド数以上でなければ、新たに発行要求があった入出力コマンドを発行する。そして、IOCFWダウンロード制御部462は、応答遅延時間テーブル451に記憶された情報に基づいて得られる、発行中の入出力コマンド数に対応する応答遅延時間を、予め定められた入出力コマンドの応答待ち時間に加算する。かかる構成によれば、IOCFWダウンロード制御部462は、発行中の入出力コマンドの数に対応した応答遅延時間を用いることにより当該数に対応した応答待ち時間を補整することができるので、入出力処理が滞ることを防止できる。例えば、発行中の入出力コマンドの数に対応した応答待ち時間が一律であった場合と比較して、同時点の発行中の入出力コマンド数が多くなるにつれて、入出力コマンドの応答の遅延を異常であると誤認してしまうことを防止できる。
また、上記実施例によれば、IOCFWダウンロード制御部462は、新たに発行要求があった入出力コマンドの発行時刻および当該入出力コマンドの応答時刻の差分を算出する。そして、IOCFWダウンロード制御部462は、算出した差分を発行中の入出力コマンドの数に対応する応答時間とし、当該応答時間を用いて発行中の入出力コマンドの数に対応する、応答遅延時間テーブル451に記憶された応答遅延時間を更新する。かかる構成によれば、IOCFWダウンロード制御部462は、新たに発行要求があった入出力コマンドの応答時間を用いて応答遅延時間を更新するので、実際の運用に即した応答遅延時間となる。この結果、IOCFWダウンロード制御部462は、入出力コマンドの応答待ち時間を、更新した応答遅延時間を用いて補整することにより、実際の運用に即した応答待ち時間となり、さらに入出力処理が滞ることを防止できる。
また、上記実施例によれば、IOCFWダウンロード制御部462は、発行中の入出力コマンドの数に対応する応答遅延時間の更新前後の値の割合を算出する。そして、IOCFWダウンロード制御部462は、算出した割合を、応答遅延時間テーブル451に記憶された、発行中の入出力コマンドの数と異なるコマンド数に対応する応答遅延時間に乗じる。そして、IOCFWダウンロード制御部462は、乗じて得た値を当該コマンド数に対応する応答遅延時間として応答遅延時間テーブル451に更新する。かかる構成によれば、IOCFWダウンロード制御部462は、発行中の入出力コマンドの数に対応する応答遅延時間の更新前後の値の割合を用いて、発行中の入出力コマンドの数と異なるコマンド数に対応する応答遅延時間も更新できる。この結果、IOCFWダウンロード制御部462は、応答遅延時間を更新したコマンド数に対応する応答待ち時間を、当該応答遅延時間を用いて補整することができ、実際の運用に即した応答待ち時間によって、さらに入出力処理が滞ることを防止できる。
[その他]
なお、ストレージシステム2は、冗長化された2台のコントローラモジュール4が搭載された場合を説明した。しかしながら、ストレージシステム2は、冗長化された3台以上のコントローラモジュール4が搭載された場合でも適用可能である。
また、コントローラモジュール4の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、コントローラモジュール4の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、IOCFWダウンロード制御部462と応答監視部463とを1つの部として統合しても良い。また、テーブル作成部461を、応答遅延時間テーブル451を作成する第1のテーブル作成部と許容応答遅延時間テーブル452を作成する第2のテーブル作成部とに分散しても良い。また、IOCFWダウンロード制御部462をIOCFWのダウンロードの実行開始前の前処理部とIOCFWのダウンロードの実行開始後の後処理部とに分散しても良い。また、記憶部45をコントローラモジュール4の外部装置としてネットワーク経由で接続するようにしても良い。
また、コントローラモジュール4にて行われる各処理機能は、その全部または任意の一部が、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、コントローラモジュール4にて行われる各処理機能は、その全部または任意の一部が、CPU(またはMPU、MCU等のマイクロ・コンピュータ)にて解析実行されるプログラムにて実現されても良い。
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
(付記1)データを記憶する記憶装置と、
前記記憶装置へのデータの制御を実施する第1の装置および前記第1の装置と二重化された第2の装置とを有し、
前記第1の装置は、
前記記憶装置に記憶されるデータの入出力に関わるコマンドを処理する処理装置と、
前記処理装置を制御するファームウェアのダウンロード時に前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部と、
前記ファームウェアのダウンロード要求があった場合、前記記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を検索し、前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、検索した発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を制限する制御部と
を有することを特徴とするストレージシステム。
(付記2)前記制御部は、発行中の前記コマンドの数が、前記発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を前記第2の装置に依頼する
ことを特徴とする付記1に記載のストレージシステム。
(付記3)前記制御部は、さらに、発行中の前記コマンドの数が、前記発行可能なコマンド数を超えていれば、前記ダウンロード要求があったファームウェアのダウンロードの実行の開始を待つ
ことを特徴とする付記1に記載のストレージシステム。
(付記4)前記制御部は、さらに、発行中の前記コマンドの数が、前記発行可能なコマンド数以上でなければ、新たに発行要求があった前記コマンドを発行し、前記記憶部に記憶された情報に基づいて得られる、発行中のコマンド数に対応する応答遅延時間を、予め定められた前記コマンドの応答待ち時間に加算する
ことを特徴とする付記1または付記2に記載のストレージシステム。
(付記5)前記制御部は、新たに発行要求があった前記コマンドの発行時刻および前記コマンドの応答時刻の差分を算出し、算出した差分を発行中の前記コマンドの数に対応する応答時間とし、発行中の前記コマンドの数に対応する、前記記憶部に記憶された応答遅延時間を更新する
ことを特徴とする付記4に記載のストレージシステム。
(付記6)前記制御部は、発行中の前記コマンドの数に対応する応答遅延時間の更新前後の値の割合を算出し、算出した割合を発行中の前記コマンドの数と異なるコマンド数に対応する応答遅延時間に乗じ、乗じて得た値を前記コマンド数に対応する応答遅延時間として前記記憶部に更新する
ことを特徴とする付記5に記載のストレージシステム。
(付記7)データを記憶する記憶装置へのデータの制御を実施するコントローラモジュールであって、
前記記憶装置に記憶されるデータの入出力に関わるコマンドを処理する装置と、
前記装置を制御するファームウェアのダウンロード時に前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部と、
前記ファームウェアのダウンロード要求があった場合、前記記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を検索し、前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、検索した発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を制限する制御部と
を有することを特徴とするコントローラモジュール。
(付記8)データを記憶する記憶装置へのデータの制御を実施する第1の装置および前記第1の装置と二重化された第2の装置とを有するストレージシステムの制御方法であって、
前記第1の装置は、前記ファームウェアのダウンロード要求があった場合に、前記データの入出力に関わるコマンドを処理する処理装置を制御するファームウェアのダウンロード時に前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を検索し、
前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、前記検索する処理によって検索された発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を、前記第2の装置に依頼する
処理を含むことを特徴とするストレージシステムの制御方法。
1 ホストコンピュータ
2 ストレージシステム
3 コントローラエンクロージャ
4 コントローラモジュール
5 ディスク
6 デバイスエンクロージャ
7 保守用端末
41 チャンネルアダプタ
42、62 エクスパンダ
43 I/Oコントローラ
44 BUD
45 記憶部
46 制御部
431 IOCFW
441 新IOCFW
451 応答遅延時間テーブル
452 許容応答遅延時間テーブル
453 発行中応答待ち時間テーブル
461 テーブル作成部
462 IOCFWダウンロード制御部
463 応答監視部

Claims (7)

  1. データを記憶する記憶装置と、
    前記記憶装置へのデータの制御を実施する第1の装置および前記第1の装置と二重化された第2の装置とを有し、
    前記第1の装置は、
    前記第1の装置を制御する制御部と、
    前記記憶装置に記憶されるデータの入出力に関わるコマンドを処理する処理装置と、
    前記処理装置を制御するファームウェアの、当該ファームウェアが格納された第1の記憶部から前記処理装置へのダウンロード時に前記制御部が前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部と、を有し、
    前記制御部は、
    前記ファームウェアのダウンロード要求があった場合、前記記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を取得し、前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、取得した発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を制限する
    ことを有することを特徴とするストレージシステム。
  2. 前記制御部は、発行中の前記コマンドの数が、前記発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を前記第2の装置に依頼する
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 前記制御部は、さらに、前記ファームウェアのダウンロードに移行する際に、発行中の前記コマンドの数が、前記発行可能なコマンド数を超えていれば、前記ダウンロード要求があったファームウェアのダウンロードの実行の開始を待つ
    ことを特徴とする請求項1に記載のストレージシステム。
  4. 前記制御部は、さらに、発行中の前記コマンドの数が、前記発行可能なコマンド数以上でなければ、新たに発行要求があった前記コマンドを発行し、前記記憶部に記憶された情報に基づいて得られる、発行中のコマンド数に対応する応答遅延時間を、予め定められた前記コマンドの応答待ち時間に加算する
    ことを特徴とする請求項1または請求項2に記載のストレージシステム。
  5. 前記制御部は、新たに発行要求があった前記コマンドの発行時刻および前記コマンドの応答時刻の差分を算出し、算出した差分を発行中の前記コマンドの数に対応する応答時間とし、発行中の前記コマンドの数に対応する、前記記憶部に記憶された応答遅延時間を更新する
    ことを特徴とする請求項4に記載のストレージシステム。
  6. データを記憶する記憶装置へのデータの制御を実施するコントローラモジュールであって、
    前記コントローラモジュールを制御する制御部と、
    前記記憶装置に記憶されるデータの入出力に関わるコマンドを処理する装置と、
    前記装置を制御するファームウェアの、当該ファームウェアが格納された第1の記憶部から前記装置へのダウンロード時に前記制御部が前記コマンドを纏めて発行したコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部と、を有し、
    前記制御部は、
    前記ファームウェアのダウンロード要求があった場合、前記記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を取得し、前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、取得した発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を制限する
    ことを有することを特徴とするコントローラモジュール。
  7. データを記憶する記憶装置へのデータの制御を実施する第1の装置および前記第1の装置と二重化された第2の装置とを有するストレージシステムの制御方法であって、
    前記第1の装置は、
    前記データの入出力に関わるコマンドを処理する処理装置を制御するファームウェアのダウンロード要求があった場合に、前記ファームウェアの、当該ファームウェアが格納された第1の記憶部から前記処理装置へのダウンロード時に纏めて発行した前記コマンドのコマンド数と、前記ファームウェアのダウンロードによって応答が遅延した時間を示す応答遅延時間とを対応付けて記憶する記憶部に記憶された情報に基づいて、当該ダウンロード時における前記コマンドの許容可能な応答遅延時間に対応する発行可能なコマンド数を取得し、
    前記ファームウェアのダウンロード中に、発行中の前記コマンドの数が、前記取得する処理によって取得された発行可能なコマンド数以上であれば、新たに発行要求があった前記コマンドの発行を、前記第2の装置に依頼する
    処理を含むことを特徴とするストレージシステムの制御方法。
JP2011286026A 2011-12-27 2011-12-27 ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法 Expired - Fee Related JP5923977B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011286026A JP5923977B2 (ja) 2011-12-27 2011-12-27 ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法
US13/685,963 US9104230B2 (en) 2011-12-27 2012-11-27 Storage system, controller module and method of controlling storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011286026A JP5923977B2 (ja) 2011-12-27 2011-12-27 ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
JP2013134689A JP2013134689A (ja) 2013-07-08
JP5923977B2 true JP5923977B2 (ja) 2016-05-25

Family

ID=48655691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011286026A Expired - Fee Related JP5923977B2 (ja) 2011-12-27 2011-12-27 ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法

Country Status (2)

Country Link
US (1) US9104230B2 (ja)
JP (1) JP5923977B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023015488A (ja) 2021-07-20 2023-02-01 富士通株式会社 データ中継装置、中継制御方法およびストレージシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US6587878B1 (en) * 1999-05-12 2003-07-01 International Business Machines Corporation System, method, and program for measuring performance in a network system
JP2003078946A (ja) 2001-09-04 2003-03-14 Nec Corp マイクロ波無線通信システムの時刻設定方式と時刻設定方法
JP4176341B2 (ja) * 2001-10-23 2008-11-05 株式会社日立製作所 記憶制御装置
JP4927339B2 (ja) * 2005-02-23 2012-05-09 株式会社日立製作所 記憶制御装置及びその制御方法
JP4901310B2 (ja) * 2006-05-31 2012-03-21 株式会社日立製作所 記憶制御装置及び記憶制御装置のコマンド実行数制御方法
JP5096853B2 (ja) 2007-09-25 2012-12-12 パナソニック株式会社 遠隔制御システム
JP2009163658A (ja) * 2008-01-10 2009-07-23 Hitachi Ltd 入出力制御装置およびそのファームウェア更新方法
JP2009282834A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
JP5223612B2 (ja) * 2008-11-14 2013-06-26 日本電気株式会社 ディスク制御装置およびファームウェアの更新方法
JP2010211428A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd ストレージ装置、中継装置、及びコマンド発行制御方法
JP5287633B2 (ja) * 2009-09-18 2013-09-11 富士ゼロックス株式会社 制御プログラム更新装置及びプログラム

Also Published As

Publication number Publication date
US20130166782A1 (en) 2013-06-27
US9104230B2 (en) 2015-08-11
JP2013134689A (ja) 2013-07-08

Similar Documents

Publication Publication Date Title
CN107544923B (zh) 用于控制对存储器设备的访问的装置以及相关方法
JP5653177B2 (ja) メモリインターフェース回路及び半導体装置
JP6160236B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
US8255596B2 (en) Multipath-based migration of data across storage controllers
JP2002245022A (ja) マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム
JP2023508519A (ja) 自動メモリオーバークロック
CN107315449B (zh) 计算机设备、读取时间的方法和写入时间的方法
JP5923977B2 (ja) ストレージシステム、コントローラモジュールおよびストレージシステムの制御方法
CN109284214B (zh) 信息共享电路及共享内存状态的方法
JP2010211318A (ja) デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム
JP2017204121A (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
US20080281576A1 (en) Interface board, simulator, synchronization method, and synchronization program
US20130238881A1 (en) Data transmission device, data transmission method, and computer program product
US8862793B2 (en) Storage system, control device, and storage system control method of controlling storage system
WO2019111303A1 (ja) データ書き込み装置及び方法
JP5505192B2 (ja) 競合試験装置
US8891515B2 (en) Method for node communication
JP6230092B2 (ja) 監視システム
US20150058684A1 (en) Test method, information processing device, and non-transitory computer-readable storage medium
WO2015033388A1 (ja) 情報処理システム、サーバ装置、情報処理方法及びプログラム
JP2008101921A (ja) 半導体テスト装置
JP6379841B2 (ja) 情報処理装置、試験方法および試験制御プログラム
US8843687B2 (en) Semiconductor device controlling outbound and inbound path switching sections based on a setting state and controlling method thereof
WO2020230413A1 (ja) 情報処理装置
JP2015052963A (ja) ストレージ装置の試験装置、試験方法、および試験プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160404

R150 Certificate of patent or registration of utility model

Ref document number: 5923977

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees