JP6231661B2 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP6231661B2
JP6231661B2 JP2016511257A JP2016511257A JP6231661B2 JP 6231661 B2 JP6231661 B2 JP 6231661B2 JP 2016511257 A JP2016511257 A JP 2016511257A JP 2016511257 A JP2016511257 A JP 2016511257A JP 6231661 B2 JP6231661 B2 JP 6231661B2
Authority
JP
Japan
Prior art keywords
sub
controller
failure
unit
circuit
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
JP2016511257A
Other languages
English (en)
Other versions
JPWO2015151239A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015151239A1 publication Critical patent/JPWO2015151239A1/ja
Application granted granted Critical
Publication of JP6231661B2 publication Critical patent/JP6231661B2/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/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
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Description

本発明は、通信用半導体集積回路、ストレージ装置およびストレージ装置の障害管理方法に関する。
特許文献1に記載のように、一つの物理パス上に複数の論理パスが設けられる場合において、ある論理パスに関して発生した障害が、物理パスを共有する他の論理パスに波及するのを抑制できるようにした技術は知られている。
特開2009−294758号公報
通常の場合、関連する複数の構成要素(例えば特許文献1の論理パス)のいずれかに障害が発生したときには、正常に動作する他の構成要素に影響が及ばないように制御し、他の構成要素を可能な限り利用しようとする。
しかし、上位装置との一連の通信処理を複数の回路で分担して処理する場合において、いずれかの回路に障害が発生したとすると、例えば送信順序が変わったり、データ漏れが生じたりして、上位装置へ送信する通信内容が不正確となる。一連の通信処理を分担する複数の回路のうち正常な他の回路をそのまま作動させると、誤った通信が継続することになり、信頼性が低下する。
本発明は、上記課題に鑑みてなされたもので、上位装置との間で行われる一連の通信処理に含まれる複数のコマンドを複数の回路部で分担して正常かつ迅速に処理することができ、信頼性と処理性能を向上できるようにしたストレージ装置を提供することにある。
上記課題を解決すべく、本発明に従うストレージ装置は、上位装置に記憶領域を提供するストレージ装置であって、上位装置と通信する第1通信制御部であって、通信用半導体集積回路を有する第1通信制御部と、記憶装置と通信する第2通信制御部と、第1通信制御部および第2通信制御部に使用されるメモリ部と、第1通信制御部が上位装置から受領したコマンドを処理して、第2通信制御部を介して記憶装置にデータを読み書きし、コマンドの処理結果を第1通信制御部から上位装置へ送信するプロセッサ部であって、複数のマイクロプロセッサを有するプロセッサ部と、を備え、通信用半導体集積回路は、上位装置との通信を担当する複数の第1回路部と、複数の第1回路部のうち接続先の第1回路部を制御し、上位装置から受領する入出力要求内のコマンドを解析する複数の第2回路部であって、入出力要求に含まれる複数のコマンドの処理を他の第2回路部と分担する複数の第2回路部と、複数の第1回路部と複数の第2回路部を予め規定される接続関係に基づいて接続する共通接続部と、複数の第1回路部および複数の第2回路部のいずれかで障害が発生した場合、障害の発生した回路部に関連する関連回路部であって処理停止が必要な停止対象の関連回路部を、複数の第1回路部および複数の第2回路部の中から検出し、検出した停止対象の関連回路部での処理を停止させる障害管理部と、を含み、複数の第2回路部は、複数のマイクロプロセッサのうちいずれか所定のマイクロプロセッサに対して、上位装置から受領したコマンドの実行を依頼することができる
本発明によれば、一連の通信処理に含まれる複数のコマンドの処理を分担する複数の第2回路部は、自回路に障害が発生するか、または、障害管理部から障害を注入されるまで稼働することができ、各第2回路部は互いの処理状態を確認しながら処理を進める必要がない。従って、本発明によれば、処理性能が向上する。また、本発明によれば、ある回路部に障害が発生した場合に、停止対象の関連回路部に障害を注入して処理を停止させるため、上位装置への通信内容に不整合が生じたりするのを抑制でき、信頼性を向上することができる。
通信用半導体集積回路を使用するストレージ装置の全体構成を示すブロック図である。 ホストとの通信を担当する通信制御部(CHM)などの構成例を示すブロック図である。 ホストからのリードコマンドを処理するフローチャートである。 図3中のコマンド受信処理の詳細を示すフローチャートである。 図3中のコマンド応答送信処理の詳細を示すフローチャートである。 図3中のリードデータ送信処理の詳細を示すフローチャートである。 図3中のステータス送信処理およびステータス応答受信処理の詳細を示すフローチャートである。 プロトコルチップで障害が発生した場合の処理の詳細を示すフローチャートである。 障害の注入先などを管理する障害対策テーブルの第1例を示す。 障害対策テーブルの第2例を示す。 障害対策テーブルの第3例を示す。 障害発生時の動作を示すフローチャート。
以下、図面に基づいて、本発明の実施の形態を説明する。以下に述べるように、本実施形態では、「通信用半導体集積回路」としてのプロトコルチップ212を、例えばストレージ装置1の「第1通信制御部」としてのチャネルアダプタ(図中、CHA)21に使用する。
プロトコルチップ212は、それぞれ後述するように、「第1回路部」としての複数のポート制御部2121と、「第2回路部」としてのサブコントローラ2122と、共通接続部2123と、「障害管理部」としての障害通知部2124とを含む。複数のサブコントローラ2122が連携して、一つのI/O要求に含まれる複数のコマンドを並行処理できるようになっている。なお、図中では、ポート制御部をPORT_CTLと表示し、サブコントローラをSUB_CTLと表示する。さらに、サブコントローラ2122を、障害対策テーブルT11では便宜上「コア」と表示する。
障害通知部2124は、例えば共通接続部2123内に設けることができる。障害通知部2124は、各ポート制御部2121および各サブコントローラ2122のいずれかで障害が発生した場合、所定の障害対策処理を実施する。
障害対策処理には、後述のように、第1対策処理としての停止処理と、第2対策処理としての通知処理とがある。停止処理では、障害の発生した回路(2121、2122)と関連する回路のうち処理停止が必要な回路に障害を注入して停止させる。通知処理では、関連する回路に対して、障害が発生した旨を通知する。
図1は、ストレージ装置1を含む情報処理システムの全体構成を示す。情報処理システムは、少なくとも一つのストレージ装置1と、少なくとも一つの「上位装置」としてのホスト計算機4を備える。システム管理者などがストレージ装置1を管理するための管理端末5を情報処理システムに備えてもよい。管理端末5に代えて、ホスト計算機4がストレージ装置1を管理する構成にしてもよい。
ストレージ装置1は、コントロールユニット(以下、DKC)2と、ディスクコントローラ2により制御されるデータ格納ユニット(以下、DKU)3を備える。先にDKU3の構成を説明し、次にDKC2の構成を説明する。
DKU3は、複数のディスク搭載ボックス(以下、SBB)31を有する。各SBB31は、複数の記憶装置311と、それら記憶装置311をスイッチングを制御するスイッチ回路(SSW)312とを有する。記憶装置311としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス等のデータを読み書き可能な種々のドライブを利用可能である。
ハードディスクデバイスを用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。また、例えば、フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Phase-Change Memory)、ReRAM(Resistive random-access memory)、FeRAM(Ferroelectric Random Access Memory)等の種々のドライブを用いることもできる。さらに、例えば、種類の異なるドライブを混在させる構成でもよい。
複数の記憶装置311の有する物理的記憶領域からRAID(Redundant Arrays of Inexpensive Disks )グループを形成することができる。RAIDグループ内の論理的記憶領域から論理的記憶装置としての論理ボリューム(図示せず)を生成できる。ストレージ装置1は、ホスト計算機4に論理ボリュームを提供する。ホスト計算機4は、論理ボリュームに対してデータを読み書きする。
DKC2の構成を説明する。DKC2は、例えば、複数のチャネルアダプタ21と、複数のディスクアダプタ(図中、DKA)22と、複数のメモリ部(図中、キャッシュ)23と、複数のプロセッサ部(図中、MPB)24とを備える。DKC2は、さらにサービスプロセッサ(図中、SVP)25を含んでも良い。管理端末5は、サービスプロセッサ25を介して、ストレージ装置1に関する情報を取得したり、ストレージ装置1の構成を変更したりする。
チャネルアダプタ21は、ホスト計算機4との通信を制御する制御パッケージであり、例えば、複数の接続部(図中、SFP)211と、複数のプロトコルチップ212と、データ転送部213と、バッファメモリ214とを有する。
接続部211には、光ファイバまたはメタルケーブルから構成されるファイバチャネルケーブルが接続される。接続部211は、ファイバチャネルケーブルを介してホスト計算機4に接続される。接続部211とホスト計算機4の間に、ファイバチャネルスイッチを設けることもできる。
プロトコルチップ212は、ホスト計算機4との通信処理を担当する半導体集積回路である。ホスト計算機4がメインフレームである場合、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って、プロトコルチップ212はホスト計算機4と通信する。プロトコルチップ212の詳細は、図2で後述する。
データ転送部213は、バッファメモリ214とメモリ部23のキャッシュメモリ231との間のデータ転送を行う。さらに、バッファメモリ214内のデータは、データ転送部213からプロトコルチップ212および接続部211を介してホスト計算機4に送信される。バッファメモリ214は、プロトコルチップ212とキャッシュメモリ231との間のデータ転送を中継するための一時的記憶領域である。
ディスクアダプタ22は、DKU3内の記憶装置311との通信を制御するパッケージであり、例えば、複数の接続部(図中、PORT)221と、複数のプロトコルチップ212と、データ転送部222と、バッファメモリ224を有する。
接続部221は、SBB31のスイッチ312とケーブルを介して接続される。プロトコルチップ212は、記憶装置311との通信処理を担当する集積回路である。データ転送部223は、バッファメモリ224とメモリ部23との間のデータ転送を行う。さらに、バッファメモリ224内のデータはデータ転送部223からプロトコルチップ212および接続部221などを介して所定の記憶装置311に転送される。バッファメモリ224は、プロトコルチップ212とキャッシュメモリ231との間のデータ転送を中継するための一時的記憶領域である。
メモリ部23は、例えば、複数のキャッシュメモリ231と、スイッチ(図中、MSW)232を備える。キャッシュメモリ231は、記憶装置311から読み出したデータを一時的に記憶したり、ホスト計算機4から受信したデータを一時的に記憶したりするための一時的な記憶領域である。スイッチ232は、チャネルアダプタ21、ディスクアダプタ22、プロセッサ部24とキャッシュメモリ231との接続を制御する。
プロセッサ部24は、DKC2の動作を制御する。プロセッサ部24は、例えば、少なくとも一つのCPU(Central Processing Unit)241と、少なくとも一つのローカルメモリ242を有する。CPU241は、図2に示すように、複数のマイクロプロセッサ(図中、MP)2411を有する。
CPU241は、ローカルメモリ242に記憶されている所定のコンピュータプログラムを実行することで、ホスト計算機4から受領するコマンドを処理し、その処理結果をホスト計算機4へ送信する。
図2を用いて、プロトコルチップ212の構成例を説明する。図2は、CHA21、メモリ部23およびプロセッサ部24の関係を拡大して示す。
プロトコルチップ212は、例えば、複数のポート制御部2121と、複数のサブコントローラ2122と、それらポート制御部2121とサブコントローラ2122を接続する共通接続部2123と、障害通知部2124を備える。
ポート制御部2121は、接続部211に接続されており、ホスト計算機4との間でコマンドやデータを送受信するための論理部位である。サブコントローラ2122は、プロトコル解析を行う論理部位である。サブコントローラ2122は、I/O要求を解析し、I/O要求に含まれているコマンドの処理を所定のマイクロプロセッサ2411に依頼するようになっている。
ここで、本実施例では、チャネルアダプタ21は2つのプロトコルチップ212を有し、各プロトコルチップ212はそれぞれ4つずつのポート制御部2121およびサブコントローラ2122を有する。そして、プロセッサ部24のCPU241は、8個のマイクロプロセッサ2411を有する。従って、本実施例では、ストレージ装置1内において、ポート制御部2121の総数、サブコントローラ2122の総数、マイクロプロセッサ2411の総数は一致している。サブコントローラ2122は、複数のマイクロプロセッサ2411のうちいずれか一つに対して、コマンドの処理を依頼する。さらに、複数のサブコントローラ2122のうちいずれか一つまたは複数を代表サブコントローラ2122として設定することができる。代表サブコントローラ2122は、他のサブコントローラ2122および当該他のサブコントローラ2122に対応するマイクロプロセッサ2411に対して、コマンド処理を任せることができる。
共通接続部2123は、接続構成テーブルT10(図9〜図10で後述)に基づいて、ポート制御部2121とサブコントローラ2122とを接続する。共通接続部2123は、例えば、ストレージ装置1が起動したときに、接続構成テーブルT10に従ってポート制御部2121とサブコントローラ2122を接続する。
なお、共通接続部2123は、管理端末5から指示されたときに、ポート制御部2121とサブコントローラ2122の接続構成を変えることもできる。さらには、共通接続部2123は、I/O要求を受領するたびに、ポート制御部2122とサブコントローラ2122の接続構成を変えることもできる。本実施例では、ストレージ装置1が起動するときにポート制御部2121とサブコントローラ2122の接続構成が決定し、その後は変化しないものとして説明する。
ホスト計算機4から発行されるI/O要求(例えばリード要求)は、複数のコマンドC1、C2を含む。I/O要求内の最初のコマンドC1を受け付けたポート制御部2121は、接続先のサブコントローラ2122(代表サブコントローラ)にそのコマンドを引き渡す。最初のコマンドC1を処理するサブコントローラ2122(代表サブコントローラ)は、その管理下にある他のサブコントローラ2122にコマンド処理の分担を求めることができる。即ち、同一のI/O要求に含まれる次のコマンドC2は、他のサブコントローラ2122に引き渡される。これにより、複数のコマンドC1、C2は、それぞれ別々のサブコントローラ2122およびマイクロプロセッサ2411により処理される。
図3は、ホスト計算機4からのリードコマンドを処理するフローチャートである。ホスト計算機4は、ストレージ装置1からデータを読み出す場合、リード要求を発行する。そのリード要求には、複数のリードコマンドを含む(S11)。
ストレージ装置1のDKC2は、リードコマンドを受信すると(S12)、ホスト計算機4に対して、リードコマンドを受領した旨を示す応答を送信する(S13)。DKC2は、要求されたリードデータをホスト計算機4へ送信する(S14)。続いて、DKC2は、リードコマンドの処理を終了した旨を示すステータスを、ホスト計算機4へ送信する(S15)。
ホスト計算機4は、ストレージ装置1のDKC2からステータスを受領すると、ステータスを受領した旨を示すステータス応答をストレージ装置1へ送信する(S16)。DKC2は、ホスト計算機4からのステータス応答を受信すると(S17)、リード処理を終了する。以下、上述した各ステップの詳細を説明する。
図4は、図3中にステップS12として示すコマンド受信処理の詳細を示すフローチャートである。ここでは、一方のサブコントローラ2122(#0)と他方のサブコントローラ2122(#1)とがグループを構成しており、一方のサブコントローラ2122(#0)は一方のマイクロプロセッサ2411(#0)に対応付けられており、他方のサブコントローラ2122(#1)は他方のマイクロプロセッサ2411(#1)に対応付けられているものとする。一方のサブコントローラ2122は、グループを代表する代表サブコントローラであるとする。
ホスト計算機4から送信されたリードコマンドは(S11)、チャネルアダプタ21のプロトコルチップ212が受信する。プロトコルチップ212のポート制御部2121は、受信したリードコマンドをサブコントローラ2122(#0)へ送る。
サブコントローラ2122(#0)は、リードコマンドを受信すると(S21)、そのリードコマンドを解析する(S22)。サブコントローラ2122(#0)は、リード要求内の複数のリードコマンド処理をDKC2内で分担して実行すべく、グループ内の他のサブコントローラ2122(#1)へリードコマンドの処理を振り分けることができる(S23)。
ここで、コマンド処理を他のサブコントローラ2122へ振り分けるとは、そのコマンドの処理を他のサブコントローラ2122に任せることを意味する。コマンド処理を振り分けることを、コマンド処理を割り当てる、コマンドを分担して処理する、などと表現することもある。
サブコントローラ2122(#0)は、ステップS21で受信したリードコマンドの処理を他のサブコントローラ2122(#1)に振り分けない場合(S23:NO)、対応付けられているマイクロプロセッサ2411(#0)に対し、リードコマンドを受信した旨を通知する(S24)。
これに対し、サブコントローラ2122(#0)は、ステップS21で受信したリードコマンドの処理を他のサブコントローラ2122(#1)に振り分けることもできる(S23:YES)。サブコントローラ2122(#1)は、サブコントローラ2122(#0)からリードコマンド処理の振り分けを示す通知を受領すると(S25)、対応付けられているマイクロプロセッサ2411(#1)に対し、リードコマンドを受信した旨を通知する(S26)。
図5は、図3中にステップS13として示すコマンド応答送信処理の詳細を示すフローチャートである。
マイクロプロセッサ2411は、図4のステップS25またはS26に示すように、サブコントローラ2122からリードコマンドを受領した旨の通知を受け取ると(S31)、そのリードコマンドについて応答済みであるか判定する(S32)。応答していない場合(S32:NO)、マイクロプロセッサ2411は、サブコントローラ2122に対して、ホスト計算機4へコマンド応答を送信するように要求する(S33)。既に他のサブコントローラ2122からホスト計算機4にコマンド応答が送られている場合(S32:YES)、マイクロプロセッサ2411のコマンド応答に関する処理は終了する。
サブコントローラ2122は、対応付けられているマイクロプロセッサ2411から、コマンド応答を送信するようにとの要求を受信すると(S34)、ホスト計算機4に対してコマンド応答を送信する(S35)。ホスト計算機4は、ストレージ装置1のDKC2からコマンド応答を受信すると、リードコマンドが受け付けられたことを知る。
図6は、図3中にステップS14として示すリードデータ送信処理の詳細を示すフローチャートである。
リードコマンドを受領したマイクロプロセッサ2411は、要求されたデータ(リードデータ)のステージング処理を実行する(S41)。ステージング処理とは、リードデータを記憶装置311からキャッシュメモリ231へ転送させる処理である。図中、記憶装置311をディスクと表示している。
図1に示すように、マイクロプロセッサ2411は、リードデータを格納している記憶装置311からそのリードデータを読み出して、ディスクアダプタ22のバッファメモリ224へ転送する(S41A)。続いて、マイクロプロセッサ2411は、ディスクアダプタ22のバッファメモリ224内のリードデータをメモリ部23のキャッシュメモリ231へ転送させる(S41B)。これにより、リードデータがキャッシュメモリ231に格納され、ステージング処理が終了する。
図6に戻る。マイクロプロセッサ2411は、キャッシュメモリ231内のリードデータを、チャネルアダプタ21のバッファメモリ214へ転送させる(S42)。二点鎖線で示すステップS47〜S49は後述する。
マイクロプロセッサ2411は、サブコントローラ2122に対して、リードデータをホスト計算機4へ送信するように要求する(S43)。サブコントローラ2122は、マイクロプロセッサ2411からのデータ送信要求を受領すると(S44)、バッファメモリ214に格納されたリードデータを接続部211からホスト計算機4に向けて送信する(S45)。
マイクロプロセッサ2411は、リードコマンドで要求された全てのリードデータをホスト計算機4へ送信したか判定する(S46)。未送信のリードデータがある場合(S46:NO)、マイクロプロセッサ2411は、ステップS41へ戻る。リードコマンドで要求された全てのリードデータの送信が完了した場合(S46:YES)、リードデータ送信処理を終了する。
図6中に二点鎖線で示すステップS47〜S49について説明する。これらのステップS47〜S49は、本発明を適用しない場合に必要になるであろうと思われる処理を示している。
複数のサブコントローラ2122で、リード要求に含まれる複数のリードコマンドを分担して処理する場合、各サブコントローラ2122は、リードコマンドを分担して処理する他のサブコントローラ2122の動作を確認しながら処理を進める必要がある。もしも、一方のサブコントローラ2122に障害が生じて機能を停止した場合、他方のサブコントローラ2122が何も知らずにリードコマンドの処理を進めると、ストレージ装置1からホスト計算機4へ送信するデータの順序を保証することができなくなる。その場合、ホスト計算機4は、間違った順番でデータを受領してしまうことになり、ストレージ装置1の信頼性が低下する。
従って、複数のサブコントローラ2122がコマンド処理を分担する場合、一般的には、各サブコントローラ2122は互いの状態を確認しながら処理を進める必要がある。そこで、互いに状態を確認しながら処理を進める構成の例としてステップS47〜S49を図6に示す。それらステップS47〜49は、本発明の優位性を説明するための比較例であり、従来技術として記載するものではない。
比較例において、マイクロプロセッサ2411は、自分の担当するリードデータの送信前に、一つ前のリードデータの送信が正常に完了していることを確認する。そこで、マイクロプロセッサ2411は、サブコントローラ2122に対して、送信診断を要求する(S47)。サブコントローラ2122は、一つ前のリードデータの送信が正常に完了しているか確認し、その結果をマイクロプロセッサ2411へ返す(S48)。
マイクロプロセッサ2411は、一つ前のリードデータの送信が正常に完了していることを確認すると(S49:YES)、記憶装置311からチャネルアダプタ21内のバッファメモリ214へ転送させたリードデータをホスト計算機4へ送信するようにサブコントローラ2122に対して要求する。
このようにリードコマンド処理を分担する複数のサブコントローラ2122が、互いの状態を確認しながら処理を進める場合、確認のための通信オーバ−ヘッド時間が生じるため、ストレージ装置1の処理性能が低下する。
これに対し、本実施例では、複数のサブコントローラ2122がリードコマンド処理を分担する場合において、各サブコントローラ2122は、他のサブコントローラ2122の状態を確認することなく、コマンド処理を実行する。本実施例では、図6に示すように、ステップS47〜S49不要となるため、通信オーバヘッド時間が発生しない。従って、ストレージ装置1の処理性能を向上できる。
さらに、本実施例では、リードコマンド処理を分担するサブコントローラ2122のいずれかに障害が発生した場合、障害通知部2124は障害発生元のサブコントローラ2122と関連する他のサブコントローラ2122に障害を注入して停止させる。
従って、リードコマンド処理を分担する全てのサブコントローラ2122が処理を停止するため、誤った処理結果がホスト計算機4へ送信されるのを未然に防止でき、ストレージ装置1の信頼性が向上する。
このように本実施例では、障害発生時には、停止すべきサブコントローラ2122を全て停止させる構成のため、各サブコントローラ2122は、障害通知部から障害を注入されて停止しない限り、コマンド処理を実行することができ、サブコントローラ間で状態を確認する必要がない。
図7は、図3中にステップS15として示すステータス送信処理およびステップS17として示すステータス応答受信処理の詳細を示すフローチャートである。
リードコマンドを処理し、全てのリードデータをホスト計算機4へ送信させた後で、マイクロプロセッサ2411は、コマンド処理結果を示すステータスをホスト計算機4へ送信したか判定する(S51)。ステータスを送信していない場合(S51:NO)、マイクロプロセッサ2411は、サブコントローラ2122に対して、ホスト計算機4へステータスを送信するように要求する(S52)。
サブコントローラ2122は、マイクロプロセッサ2411からステータス送信要求を受信すると(S53)、ホスト計算機4へステータスを送信する(S54)。ただし、他のサブコントローラ2122が先にホスト計算機4へステータスを送信している場合、ステップS54はスキップする。
ホスト計算機4は、サブコントローラ2122からステータスを受信すると、ステータス受領を示すステータス応答をサブコントローラ2122へ送信する(S55)。サブコントローラ2122は、ホスト計算機4からステータス応答を受信すると(S56)、リードコマンドの処理を完了する(S57)。
図8は、プロトコルチップ212で発生する障害をプロトコルチップ212内で処理する障害処理の例を示すフローチャートである。
本実施例において、プロトコルチップ212で生じる障害は、論理部位としてのポート制御部2121やサブコントローラ2122の内部要因に基づく障害と、障害通知部2124からサブコントローラ2122へ注入される障害(外部要因に基づく障害)とに大別することができる。さらに、内部要因に基づく障害は、内部プログラムに関する障害と、内部プログラム以外の構成に関する障害とに分けることができる。本実施例では、以下に述べるように、障害の種類に応じて異なる対策を実行する。
なお、図8では、障害の発生する論理部位としてサブコントローラ2122を例に挙げて説明するが、ポート制御部2121でも同様である。
サブコントローラ2122は、障害が発生したか監視しており、障害の発生を検知すると(S61)、障害通知部2124へ障害が発生した旨を通知する(S62)。
サブコントローラ2122は、検出した障害が内部プログラムに関するものであるか判定する(S63)。内部のプログラム処理に関する障害である場合(S63:YES)、プログラムの解析をし易くするために、ただちにサブコントローラ2122を停止する(S64)。内部のプログラム処理に関する障害以外の障害としては、例えば、サブコントローラ2122内のハードウェア回路の障害がある。サブコントローラ2122は、内部のプログラム処理に関する障害ではないと判定した場合(S63:NO)、ただちに処理を停止する必要はない。
障害通知部2124は、サブコントローラ2122からの障害発生通知により、障害が発生したことを検出する(S65)。障害通知部2124は、障害対策テーブルT11(図9で後述)を参照し、障害の発生した論理部位(ここではサブコントローラ2122)と関連する論理部位(サブコントローラやポート制御部)を解析する(S67)。
障害通知部2124は、プロトコルチップ212内の全ての論理部位について(S68)、障害の発生した論理部位と関連するか否か判定し(S69)、障害の発生した論理部位と関連する論理部位には障害を注入する(S70)。
障害通知部2124は、論理部位の接続構成によっては、関連する論理部位の全てに障害を注入する必要はない。障害通知部2124は、停止させるべき論理部位にのみ障害を注入し、障害の発生した論理部位と関連する論理部位であっても停止させる必要のない論理部位には障害発生を知らせるだけでよい。
サブコントローラ2122は、障害通知部2124から注入された障害を検出すると、処理を停止する(S71)。マイクロプロセッサ2411は、サブコントローラ2122の処理停止を、後述する定期診断処理により検知する。定期診断処理については、図12のステップS110を参照しながら後述する。
なお、図8では、障害の発生したサブコントローラ2122を例に挙げているが、正常に動作しているサブコントローラ2122の場合は、ステップS61〜S64は実行されず、障害通知部2124から障害が通知されたときにステップS71を実行する。
図8に示す処理に代えて、障害通知部2124は、障害対策テーブルT11に設定されている内容に基づいて、停止すべき論理部位には障害を注入し、障害の発生した論理部位に関連はしても停止させる必要の無い論理部位には障害発生通知だけを送るようにしてもよい。この場合は、例えばステップS67〜S69まで省略可能である。
図9〜図11を用いて、接続構成テーブルT10および障害対策テーブルT11の例を説明する。
接続構成テーブルT10は、ポート制御部2121とサブコントローラ2122との接続関係を設定した管理情報である。障害対策テーブルT11は、ある論理部位で障害が発生した場合に、その障害発生元の論理部位と関連する論理部位に対して、所定の障害対策を適用するための管理情報である。接続構成テーブルT10は主に共通接続部2123が使用し、障害対策テーブルT11は障害通知部2124が使用する。接続構成テーブルT10と障害対策テーブルT11とは一体化することもできる。以下では、3種類の接続構成を例に挙げて、各接続構成における障害発生箇所と所定の障害対策を施す箇所との関係を説明する。
図9は、第1接続構成を示す。接続構成テーブルT10(1)に示すように、第1接続構成では、2つのサブコントローラ2122と2つのポート制御部2121とで複数のグループを形成し、各グループ内では各サブコントローラ2122が各ポート制御部2121をそれぞれ制御する。
図示の例では、サブコントローラ2122(#0)、2122(#1)と、ポート制御部2121(#0)、2121(#1)とで第1グループAを形成している。第1グループA内の一方のサブコントローラ2122(#0)は、ポート制御部2121(#0)と2121(#1)の両方を制御する。さらに、一方のサブコントローラ2122(#0)は、同じグループ内の他方のサブコントローラ2122(#1)と連携可能に接続されている。第1グループA内の他方のサブコントローラ2122(#1)も、ポート制御部2121(#0)と2121(#1)との両方を制御することができ、かつ、一方のサブコントローラ2122(#0)とも連携可能に接続されている。第1グループA内のポート制御部2121(#0)と2121(#1)は接続されている。
第2グループBは、サブコントローラ2122(#2)、2122(#3)と、ポート制御部2121(#2)、2121(#3)とから形成されている。第2グループB内の一方のサブコントローラ2122(#2)は、ポート制御部2121(#2)と2121(#3)の両方を制御し、かつ、他方のサブコントローラ2122(#3)と連携可能に接続されている。第1グループB内の他方のサブコントローラ2122(#3)も、ポート制御部2121(#2)と2121(#3)との両方を制御し、かつ、一方のサブコントローラ2122(#2)とも連携可能に接続されている。第2グループB内のポート制御部2121(#2)と2121(#3)は接続されている。
接続構成テーブルT10(1)で定義される第1接続構成において障害が発生した場合に使用する障害対策テーブルT11(1)を説明する。
障害対策テーブルT11において、白い丸印は障害の発生した論理部位を示す。黒い丸印は、障害の発生した論理部位に関連する論理部位のうち停止対象の論理部位であって、障害通知部2124が障害を注入する論理部位を示す。白い三角印は、障害の発生した論理部位に関連する論理部位のうち通知対象の論理部位であって、障害通知部2124が障害の発生を通知する論理部位を示す。ハイフンは、障害の発生した論理部位と無関係の論理部位を示す。
第1グループAの一方のサブコントローラ2122(#0)で障害が発生した場合、ペアを形成する他方のサブコントローラ2122(#1)には障害が注入されるため、処理が停止する。さらに、障害発生元であるサブコントローラ2122(#0)が制御する各ポート制御部2121(#0)、2121(#1)にもそれぞれ障害が注入されて、処理が停止する。
第1グループAの他方のサブコントローラ2122(#1)で障害が発生した場合も前記同様に、関連する全ての論理部位、即ち、一方のサブコントローラ2122(#0)、各ポート制御部2121(#0)、2121(#1)にそれぞれ障害が注入されて、処理が停止する。
第2グループBについても、第1グループAと同様の障害対策が実施される。サブコントローラ2122(#2)で障害が発生した場合は、サブコントローラ2122(#3)、各ポート制御部2121(#2)、2121(#3)に障害が注入されて、処理が停止する。サブコントローラ2122(#3)で障害が発生した場合は、サブコントローラ2122(#2)、各ポート制御部2121(#2)、2121(#3)に障害が注入されて、処理が停止する。
つまり、第1接続構成の場合、グループ内のいずれかのサブコントローラ2122で障害が発生した場合は、同一グループに属する他の全ての論理部位に障害が注入される。これにより、グループ全体で処理がほぼ同時に停止する。コマンド処理の結果に整合性を持たせ、誤った処理結果がホスト計算機4へ送信されるのを防止するためである。
ポート制御部2121で障害が発生した場合の障害対策を説明する。第1グループAの一方のポート制御部2121(#0)で障害が発生した場合、第1グループA内の各サブコントローラ2122(#0)、2122(#1)に障害発生が通知される。第1グループA内の他方のポート制御部2121(#1)には何の対策も行われない。サブコントローラ2122(#0)、2122(#1)は、正常なポート制御部2121(#1)を使用することができる。
第1グループA内の他方のポート制御部2121(#1)で障害が発生した場合も前記同様に、第1グループA内の各サブコントローラ2122(#0)、2122(#1)に障害発生が通知される。第2グループBについても同様なので、説明を省略する。
このように、ポート制御部2121で障害が発生した場合、障害発生元のポート制御部2121を制御するサブコントローラ2122には、障害が発生したことのみを通知し、障害は注入しない。つまり、障害発生元のポート制御部2121に関連するサブコントローラ2122は、処理を停止させない。障害の発生したポート制御部2121を制御するサブコントローラ2122は、正常に動作している他方のポート制御部2121も制御している。このため、正常なポート制御部2121に障害が波及するのを防止すべく、サブコントローラ2122には障害発生のみを通知し、停止させない。
図10は、第2接続構成を示す。接続構成テーブルT10(2)に示すように、第2接続構成では、一つのサブコントローラ2122(#0)と全てのポート制御部2121(#0)〜2121(#3)とで第1グループAを形成し、残された他のサブコントローラ2122(#1)〜2122(#3)が第2グループBを形成する。
第1グループAのサブコントローラ2122(#0)が代表サブコントローラとなり、全てのポート制御部2121(#0)〜2121(#3)を制御する。代表サブコントローラ2122(#0)は、他の全てのサブコントローラ2122(#1)〜2122(#3)と連携可能に接続されている。つまり、第2接続構成では、ポート制御を一つのサブコントローラ2122(#0)がまとめて実施し、他のサブコントローラ2122(#1)〜2122(#3)でコマンド処理を分担する。
第2接続構成に対応する障害対策テーブルT11(2)を説明する。全てのポート制御部2121(#0)〜2121(#3)を制御するサブコントローラ2122(#0)に障害が発生した場合、全てのポート制御部2121(#0)〜2121(#3)を使用することができない。従って、この場合は、全てのポート制御部2121(#0)〜2121(#3)および他の全てのサブコントローラ2122(#1)〜2122(#3)にそれぞれ障害を注入して、処理を停止させる。
これに対し、ポート制御を行わない他のいずれかのサブコントローラ2122(#1)〜2122(#3)で障害が発生した場合、障害の発生したサブコントローラ2122とは異なるサブコントローラ2122を用いてコマンド処理を再開すればよい。従って、この場合、関連する他のサブコントローラ2122に障害を注入しない。代表サブコントローラ2122(#0)には、障害発生を通知する。各ポート制御部2121(#0)〜2121(#3)は、障害の発生したサブコントローラ2122と直接の関係はないため、障害対策は何も行われない。
ポート制御部2121(#0)〜2121(#3)のいずれかで障害が発生した場合も、代表サブコントローラ2122(#0)のみに障害発生を通知し、他の論理部位を停止させない。代表サブコントローラ2122(#0)は、障害の発生したポート制御部2121とは異なるポート制御部2121を用いて、ホスト計算機4と通信できる。
図11は、第3接続構成を示す。接続構成テーブルT10(3)に示すように、第3接続構成では、一つのサブコントローラ2122(#0)と2つのポート制御部2121(#0)、2121(#1)とで第1グループAを形成する。他の一つのサブコントローラ2122(#1)と他の2つのポート制御部2121(#2)、2121(#3)とで第2グループBを形成する。残されたサブコントローラ2122(#2)、2122(#3)は、第3グループCを形成する。
第1グループAおよび第2グループBでは、それぞれ1つのサブコントローラ2122が2つずつのポート制御部2121を制御しており、第3グループCの各サブコントローラ2122(#2)、2122(#3)にコマンド処理を分担させる。具体的には、第1グループAを例に挙げると、サブコントローラ2122(#0)は、同一グループ内のポート制御部2121(#0)、2121(#1)を制御し、第3グループCの各サブコントローラ2122(#2)、2122(#3)と連携する。第2グループBと第3グループCとの関係も、第1グループAと第3グループCの関係と同様である。換言すれば、第3接続構成は、図10に示す第2接続構成がプロトコルチップ212内に複数設けられている場合を示す。
各グループにおいて、ポート制御を担当するサブコントローラ2122に障害が発生した場合は、制御対象のポート制御部2121に障害を注入して停止させる。障害発生元のサブコントローラ2122が連携するグループC内のサブコントローラ2122(#2)、2122(#3)には障害発生だけを通知する。
例えば、第1グループAのサブコントローラ2122(#0)に障害が発生した場合は、ポート制御部2121(#0)、2121(#1)に障害を注入して停止させ、連携先のサブコントローラ2122(#2)、2122(#3)には障害発生を通知する。第2グループBのサブコントローラ2122(#1)に障害が発生した場合は、ポート制御部2121(#2)、2121(#3)に障害を注入して停止させ、連携先のサブコントローラ2122(#2)、2122(#3)には障害発生を通知する。
ポート制御部2121(#0)〜2121(#3)のいずれかで障害が発生した場合、障害の発生したポート制御部2121を制御するサブコントローラ2122に障害発生を通知する。
図12は、ホスト計算機4から受信したコマンドを複数のサブコントローラ2122で分担して処理している間に、一方のサブコントローラ2122で障害が発生した場合の処理の様子を示す。図12では、一方のサブコントローラ2122(#0)は、一つのポート制御部2121(#0)を制御しており、他方のサブコントローラ2122(#1)と連携してコマンドを処理する場合を例に挙げる。
ステップS10において、サブコントローラ2122(#0)に障害が発生すると、サブコントローラ2122(#0)は、図9のステップS61、S62で述べたように障害が発生した旨を障害通知部2124に通知する。
障害通知部2124は、障害対策テーブルT11を用いて、停止対象のポート制御部2121(#0)およびサブコントローラ2122(#1)を検出する。障害通知部2124は、停止対象のサブコントローラ2122(#1)に障害を注入するとともに(S102)、停止対象のポート制御部2121(#0)にも障害を注入する。
サブコントローラ2122(#1)は、注入された障害を検出すると(S104)、コマンド処理を停止する(S106)。ポート制御部2121(#0)も、注入された障害を検出すると(S105)、処理を停止する(S106)。
上述のようにように、障害が発生したことにより、または、外部から意図的に障害が注入されたことにより、プロトコルチップ212内でコマンド処理を分担して担当する各サブコントローラ2122(#0)、2122(#1)およびポート制御部2121(#0)は、それぞれ停止する(S106)。
サブコントローラ2122(#0)に対応付けられたマイクロプロセッサ2411(#0)は、図6で述べたように、障害発生前のサブコントローラ2122(#0)から受領したリードコマンドに従って、リードデータをキャッシュメモリ231へ転送させる。ステージング処理を終えたマイクロプロセッサ2411(#0)は、キャッシュメモリ231上のリードデータをホスト計算機4に送信するよう、サブコントローラ2122(#0)に要求する(S107)。しかし、サブコントローラ2122(#0)は、障害が発生したために停止している。従って、マイクロプロセッサ2411(#0)が担当したリードデータは、ホスト計算機4に送信されない。
同様に、サブコントローラ2122(#1)に対応付けられたマイクロプロセッサ2411(#1)も、障害が注入される前のサブコントローラ2122(#1)から受領したリードコマンドに従って、リードデータをキャッシュメモリ231へ転送させる。その後、マイクロプロセッサ2411(#1)は、サブコントローラ2122(#1)に対して、キャッシュメモリ231上のリードデータをホスト計算機4へ送信するよう要求する(S108)。しかし、サブコントローラ2122(#1)は、障害通知部2124から障害が注入されたために停止している。従って、マイクロプロセッサ2411(#1)が担当したリードデータは、ホスト計算機4へ送信されない。
マイクロプロセッサ2411は、定期的に実行する定期診断処理S110により、サブコントローラ2122が停止したことを検出することができる。図12では、マイクロプロセッサ2411(#1)を例に挙げて説明するが、マイクロプロセッサ2411(#0)も同様の定期診断処理S110を実行する。
マイクロプロセッサ2411(#1)は、所定の定期診断時期が到来すると、所定のサブコントローラ2212に対して、診断情報の送信を要求する(S111)。所定のサブコントローラ2212とは、ポート制御を担当するサブコントローラ2122、および/または、要求元のマイクロプロセッサ2411に対応付けられているサブコントローラ2122である。図12では、ポート制御を担当するサブコントローラ2122(#0)に診断情報の送信を要求する場合を示す。
サブコントローラ2122(#0)は、マイクロプロセッサ2411(#1)から診断情報の送信要求を受領すると、診断情報を採取し(S112)、マイクロプロセッサ2411(#1)へ送信する(S113)。これにより、マイクロプロセッサ2411(#1)は、プロトコルチップ212で障害が発生し、コマンド処理を正常に終了できなかったことを確認できる。
本実施例によれば、複数のサブコントローラ2122とマイクロプロセッサ2411とにより、複数のコマンド処理を平行して実施できるため、処理時間を短縮できる。
しかし、もしも分担して処理する複数のサブコントローラ2122のうちいずれかのサブコントローラ2122で障害が発生した場合は、ホスト計算機4へ送信するリードデータの順序を保証することができない。このため、ホスト計算機4へ異常な送信をしてしまうおそれがある。
そこで、本実施例では、サブコントローラ2122で障害が発生した場合は、ポート制御に関連する他のサブコントローラ2122に対して障害を注入する。これにより、ポート制御に関連する動作を全て停止させることができる。従って、本実施例によれば、障害発生後に、ホスト計算機4に異常な送信をするのを未然に防止できる。
これに対し、図6で述べた比較例ステップS47〜S49では、ホスト計算機4へ正常な応答をしていることを確認すべく、サブコントローラ2122を診断した後でリードデータの送信をサブコントローラ2122へ要求する。
従って、比較例では、ホスト計算機4に対するデータ送信要求を発行するたびに、サブコントローラ2122を診断する必要があり、コマンド処理に要する時間が長い。本実施例では、各マイクロプロセッサ2411は、サブコントローラ2122の状態を気にせずに、サブコントローラ2122に対してデータ送信を要求することができる。マイクロプロセッサ2411は、定期的な診断処理S110を実行することで、サブコントローラ2122で生じた障害を検出すればよい。
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
1:ストレージ装置、2:コントロールユニット(DKC)、3:データ格納ユニット(DKU)、4:ホスト計算機、21:チャネルアダプタ(CHA)、22:ディスクアダプタ(DKA)、23:メモリ部、24:プロセッサ部、212:プロトコルチップ、2121:ポート制御部、2122:サブコントローラ、2123:共通接続部、2124:障害通知部

Claims (1)

  1. 上位装置に記憶領域を提供するストレージ装置であって、
    前記上位装置と通信する第1通信制御部であって、通信用半導体集積回路を有する第1通信制御部と、
    記憶装置と通信する第2通信制御部と、
    前記第1通信制御部および前記第2通信制御部に使用されるメモリ部と、
    前記第1通信制御部が前記上位装置から受領したコマンドを処理して、前記第2通信制御部を介して前記記憶装置にデータを読み書きし、前記コマンドの処理結果を前記第1通信制御部から前記上位装置へ送信するプロセッサ部であって、複数のマイクロプロセッサを有するプロセッサ部と、
    を備え、
    前記通信用半導体集積回路は、
    前記上位装置との通信を担当する複数の第1回路部と、
    前記複数の第1回路部のうち接続先の第1回路部を制御し、前記上位装置から受領する入出力要求内のコマンドを解析する複数の第2回路部であって、前記入出力要求に含まれる複数のコマンドの処理を他の第2回路部と分担する複数の第2回路部と、
    前記複数の第1回路部と前記複数の第2回路部を予め規定される接続関係に基づいて接続する共通接続部と、
    前記複数の第1回路部および前記複数の第2回路部のいずれかで障害が発生した場合、前記障害の発生した回路部に関連する関連回路部であって処理停止が必要な停止対象の関連回路部を、前記複数の第1回路部および前記複数の第2回路部の中から検出し、前記検出した停止対象の関連回路部での処理を停止させる障害管理部と、
    を含み、
    前記複数の第2回路部は、前記複数のマイクロプロセッサのうちいずれか所定のマイクロプロセッサに対して、前記上位装置から受領したコマンドの実行を依頼することができる、
    ストレージ装置。
JP2016511257A 2014-04-02 2014-04-02 ストレージ装置 Active JP6231661B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/059710 WO2015151239A1 (ja) 2014-04-02 2014-04-02 通信用半導体集積回路、ストレージ装置およびストレージ装置の障害管理方法

Publications (2)

Publication Number Publication Date
JPWO2015151239A1 JPWO2015151239A1 (ja) 2017-04-13
JP6231661B2 true JP6231661B2 (ja) 2017-11-15

Family

ID=54239605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016511257A Active JP6231661B2 (ja) 2014-04-02 2014-04-02 ストレージ装置

Country Status (3)

Country Link
US (1) US10055279B2 (ja)
JP (1) JP6231661B2 (ja)
WO (1) WO2015151239A1 (ja)

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5335352A (en) * 1990-09-24 1994-08-02 Emc Corporation Reconfigurable, multi-function data storage system controller selectively operable as an input channel adapter and a data storage unit adapter
US5771367A (en) * 1992-12-17 1998-06-23 International Business Machines Corporation Storage controller and method for improved failure recovery using cross-coupled cache memories and nonvolatile stores
JP3264465B2 (ja) * 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
JP3714613B2 (ja) * 2001-12-12 2005-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置、該記憶装置を含む情報処理装置および情報記憶システムのリカバリ方法
US20030135577A1 (en) * 2001-12-19 2003-07-17 Weber Bret S. Dual porting serial ATA disk drives for fault tolerant applications
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices
JP2005222379A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd ディスクアレイ装置およびその障害回避制御方法
JP4377279B2 (ja) * 2004-05-06 2009-12-02 株式会社日立製作所 ストレージシステム、コンピュータシステム、およびストレージシステムの設定方法
US7836204B2 (en) * 2005-06-01 2010-11-16 International Business Machines Corporation Apparatus, system, and method for accessing a preferred path through a storage controller
JP5089896B2 (ja) 2006-03-17 2012-12-05 株式会社日立製作所 マイクロプロセッサの負荷分散機能を備えたストレージシステム
JP2007280258A (ja) * 2006-04-11 2007-10-25 Hitachi Ltd 記憶制御装置
US7681089B2 (en) * 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability
JP2009104420A (ja) * 2007-10-23 2009-05-14 Hitachi Ltd 記憶制御装置及び記憶装置の障害検出方法
JP4977583B2 (ja) * 2007-11-22 2012-07-18 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP5153392B2 (ja) * 2008-03-11 2013-02-27 株式会社日立製作所 記憶制御装置及び方法
JP5212471B2 (ja) 2008-06-02 2013-06-19 富士通株式会社 データ処理システム、データ処理方法およびデータ処理プログラム
JP2009294758A (ja) 2008-06-03 2009-12-17 Hitachi Ltd 仮想計算機システム及びホストバスアダプタ用ドライバプログラム
JP4693893B2 (ja) * 2008-11-25 2011-06-01 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP5533252B2 (ja) * 2010-05-21 2014-06-25 富士通株式会社 ディスクアレイ装置及びディスクアレイ装置の制御方法
US9218257B2 (en) * 2012-05-24 2015-12-22 Stec, Inc. Methods for managing failure of a solid state device in a caching storage
JP5959733B2 (ja) * 2013-04-23 2016-08-02 株式会社日立製作所 ストレージシステムおよびストレージシステムの障害管理方法

Also Published As

Publication number Publication date
JPWO2015151239A1 (ja) 2017-04-13
US20170017540A1 (en) 2017-01-19
US10055279B2 (en) 2018-08-21
WO2015151239A1 (ja) 2015-10-08

Similar Documents

Publication Publication Date Title
US7451341B2 (en) Storage system and communications path control method for storage system
US9619311B2 (en) Error identification and handling in storage area networks
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US8201020B2 (en) Method apparatus and system for a redundant and fault tolerant solid state disk
US10282136B1 (en) Storage system and control method thereof
US8707085B2 (en) High availability data storage systems and methods
US8402189B2 (en) Information processing apparatus and data transfer method
US11372552B2 (en) Storage device
US8621121B1 (en) Detecting bogus IOs in a multipathing driver
JP5852674B2 (ja) 情報機器間のデータ転送のデータ欠落を検出する方法
US20090006863A1 (en) Storage system comprising encryption function and data guarantee method
CN103257908A (zh) 一种软硬件协同的多控制器磁盘阵列设计方法
US7421596B2 (en) Disk array system
US8381027B1 (en) Determining alternate paths in faulted systems
US20090210574A1 (en) Open host issued statesave to attached storage
US7752340B1 (en) Atomic command retry in a data storage system
US9507677B2 (en) Storage control device, storage apparatus, and computer-readable recording medium having storage control program stored therein
US20130232377A1 (en) Method for reusing resource and storage sub-system using the same
JP6231661B2 (ja) ストレージ装置
JP6039818B2 (ja) 情報システム、ホストシステム、及びアクセス制御方法
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法
US9304842B2 (en) Computer system, control method for computer system and coupling module
KR20160101705A (ko) 공정 관리 장치, 이와 연동하는 데이터 서버를 포함하는 반도체 공정 관리 시스템 및 이를 이용한 반도체 공정 관리 방법
US11467930B2 (en) Distributed failover of a back-end storage director
JP7007025B2 (ja) 障害処理装置、障害処理方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171019

R150 Certificate of patent or registration of utility model

Ref document number: 6231661

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150