JP2008041080A - 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ - Google Patents

記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ Download PDF

Info

Publication number
JP2008041080A
JP2008041080A JP2007105244A JP2007105244A JP2008041080A JP 2008041080 A JP2008041080 A JP 2008041080A JP 2007105244 A JP2007105244 A JP 2007105244A JP 2007105244 A JP2007105244 A JP 2007105244A JP 2008041080 A JP2008041080 A JP 2008041080A
Authority
JP
Japan
Prior art keywords
command
controller
determination result
port selector
data input
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.)
Pending
Application number
JP2007105244A
Other languages
English (en)
Inventor
Akio Nakajima
昭夫 中嶋
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
Priority claimed from US11/527,497 external-priority patent/US7761657B2/en
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007105244A priority Critical patent/JP2008041080A/ja
Publication of JP2008041080A publication Critical patent/JP2008041080A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】コマンドの論理的な異常に対して、コマンドの論理的な異常を検出する手段を提供し、適切なエラー処理、障害部位の検出・閉塞処理を実行する。
【解決手段】ホスト装置100からのデータの入出力要求に応答してドライブ150、160に対するデータ入出力処理を行うコントローラユニット130A、130Bと、コントローラユニット130A、130Bとドライブ150、160とをそれぞれ接続するスイッチ140A、140Bと、スイッチ140A、140Bとドライブ160との間に挿入されたポートセレクタ300とを備え、ポートセレクタ300は、MPU131の処理に基づいて生成されたコマンドを受信したときに、コマンドを構成するデータが正常であるときには、目的とするドライブ160をアクセスし、コマンドの論理不整合を検出したときには、この検出結果をスイッチ140A、140Bを介してMPU131に転送し、MPU131に対してリトライ処理を要求する。
【選択図】図5

Description

本発明は、コントロールユニットが多重化され、複数のコントロールユニットが共通するメモリユニットにアクセスする記憶制御システム及びその制御方法に関するものである。
ミッドレンジクラスの記憶制御装置として、1つの筐体内に2重化されたコントロールユニットを備え、それぞれのコントロールユニットが共通する記憶装置にアクセスするように構成されているものが提案されている(特許文献1参照)。この記憶制御装置においては、複数の記憶デバイスがアレイ状に配列されて筐体内に収容され、各コントロールユニットは、別個に設けられた接続系統(接続経路)を介して記憶装置にアクセスすることができる。
各コントロールユニットは、上位装置であるホスト装置からのI/O要求を受けて、I/O要求先の記憶デバイスにアクセスする。各コントロールユニットは、コントロールユニット全体を制御するMPUと、キャッシュメモリと、上位装置であるホストが接続するポートと、MPUからの制御の下、アクセス系統を介して、複数の記憶デバイス(ハードディスクドライブ)のうちデータ入出力要求先のハードディスクドライブにアクセスするための制御を実行する、イニシエータとしてのディスクコントローラと、MPUとキャッシュメモリとディスクコントローラとの間でデータの交換を制御するデータコントローラとを備えている。
ホスト装置からのI/O要求に基づいて、コントロールユニットが記憶デバイスにアクセスするルートには、第1のコントロールユニットのディスクコントローラと第1の接続経路を通過するルートと、第2のコントロールユニットのディスクコントローラと第2の接続経路を通過するルートがある。これらのルートを用いてコントロールユニットが記憶デバイスにアクセスするに際しては、いずれかのルートで切断や障害が発生すると、コントロールユニットとハードディスクドライブとの通信ができなくなるため、ルートが切断されたり、ルートに障害が発生したりしたときには、ルートの一部やハードディスクドライブをバイパス(切り離し)するポートバイパス回路が設けられている。
一方、データの統一性を保全するに際して、物理的なチェックサム計算を行ったあとに、データブロック内に含まれるデータ上で論理チェックを行い、データブロックが論理チェックをパスしたときに、データブロックを不揮発性メモリに書き込み、そのあと、不揮発性メモリからデータブロックを読み出し、物理的なチェックサムの検証をデータブロック上で行うとともに、データブロック内に含まれるデータ上で論理チェックを行ってデータブロックが破損したか否かを判定する方法が提案されている(特許文献2参照)。
また、記憶デバイスから一連のデータをブロック単位で読み出してデータコントローラのデータ記憶部に記憶するに際して、データ制御部において、書き込みデータの書き込み先となるブロックとデータ記憶部に記憶されているブロックとが同じ場合は、データ記憶部に記憶されているデータを書き込みデータにより更新し、異なる場合は、データ記憶部に記憶されている一連のデータに基づいて保証コードを生成し、その一連のデータに保証コードを付加して記憶デバイスに転送するものがある(特許文献3参照)。また、この種の技術に関連するものとして、特許文献4、特許文献5、及び特許文献6に記載されているものがある。
特許文献5は、上位装置と下位装置との間で転送される転送情報の変換処理において、変換処理の検証をする情報転送処理装置を提供するために、情報処理装置と1または2以上の記憶装置との間に設けられ、情報処理装置と記憶装置との転送制御を行う情報変換処理装置において、前記情報処理装置からの前記記憶装置に対する論理的な転送情報を物理的な転送情報に変換して出力する物理情報生成部と、前記物理情報生成部で行われた変換が正しく変換されたか否かを検証し、検証結果を出力するチェック部とを有する、ことを開示している。
特許文献6は、SATAリンクまたはATAリンクを介してスイッチのデバイスポートに接続された単一ポート方式の格納ユニットへの2つのホストポートからの同時のアクセスを可能にする電子スイッチが必要であるとの目的の下、スイッチが、第1のホストユニットに接続される第1のシリアルアドバンスドテクノロジーアタッチメント(ATA)ポートと、第2のホストユニットに接続される第2のシリアルATAポートとデバイスに接続される第3のシリアルATAポートと、d)該第1のホストユニットまたは第2のホストユニットのどちらか一方が、該デバイスによって実行されるコマンドを送信する場合はいつでも、該スイッチを介して、該第1のホストユニットまたは該第2のホストユニットの該デバイスに接続されるべき一方を選択するアービトレーションおよびコントロール回路と、を備える、ことを開示している。
特開2005−31928号公報 特表2004−530964号公報 特開2005−84799号公報 特開2005−183420号公報 特開2002−251332号公報 特開2005−327230号公報
コントロールユニットから記憶デバイスにアクセスするに際して、コントロールユニットにおいて、ホストから発行されたコマンド情報を基にコマンドの変換処理を行う必要がある場合、無効コマンドを避けるためのパリティ計算を施すだけでは、例えば、アルファ線によって破損されたビットを検出することができず、ハードディスクドライブは正しくないコマンドを受領して不正なIOアクセスを実行してしまうおそれがある。
また、特許文献4に記載されているものでは、メモリサイズや配線幅サイズの縮小に伴ってノード容量を形成する拡散層(ゲート面積)が小さくなり、ノード容量も低下されることになってソフトエラーの課題が生じる。このソフトエラーはメモリセルに対してα線や中性子線が照射されたときに、ノード容量によって蓄積されていたデータ電荷が半導体基板側に逃げてしまい、データが消失してしまうことになる。
そこで、この発明は、記憶装置とコントロールユニットの間でコマンドを構成するデータを変換するときに、データが破損した場合においても、コマンドを構成するデータの破損を検出する手段を提供し、HDDに対して不正なIOアクセスを防止し、制御コントローラが適切なエラー処理を実施するための、記憶制御システムおよびその制御方法を提供することを目的とするものである。
前記目的を達成するために、本発明は、コントロールユニットを2重化した記憶制御システムにおいて、コントロールユニットとメモリユニットを結ぶ複数の接続経路のうちいずれかの接続経路に挿入されてデータの入出力を制御するポートセレクタがコマンドを受信したときに、コマンドの異常の有無を判定し、この判定結果にしたがった処理を少なくともコントロールユニットに対して実行することを特徴とするものである。
本発明によれば、コントロールユニットで生成されたコマンドが記憶装置に転送される過程で、コマンドを構成するデータが、コマンドを構成するデータの変換処理にて破損したときには、コマンドを構成するデータを検証する部位が、記憶装置に破損したコマンドを転送するのを防止して、コントローラに対してエラーを通知することにより、コントローラは、適切なエラー処理を実施することができる。
本発明は、さらに詳しくは、複数の記憶デバイスを備えるメモリユニットと、上位装置からのデータの入出力要求に応答して前記メモリユニットに対するデータ入出力処理を行う複数のコントロールユニットと、各々のコントロールユニットと前記メモリユニットとをそれぞれ接続する複数の接続経路と、前記複数の接続経路のうちいずれかの接続経路中に挿入されてデータの入出力を制御するポートセレクタと、を備え、前記コントロールユニットは、制御プログラムを格納するメモリと、前記データ入出力処理の全体制御を行うとともに、前記制御プログラムに基づいて前記データの入出力要求に応じたコマンドを生成するコントローラと、前記コマンドに基づいて前記メモリユニットのうち前記データ入出力要求の対象となっている記憶デバイスへアクセスするための制御を行うイニシエータと、を備え、前記ポートセレクタは、前記コマンドを受信したときに、前記コマンドの異常の有無を判定し、前記判定結果に従った処理を少なくとも前記コントローラに対して実行する記憶制御システムである。特に、前記ポートセレクタは、前記コマンドに関する判定結果として、正常の判定結果を得たときには、前記接続経路を介して目的とする記憶デバイスにアクセスし、異常の判定結果を得たときには、前記異常の判定結果を前記接続経路を介して前記コントローラに転送することを特徴とする。
本発明によれば、コマンドを構成するデータが、コマンドを構成するデータの変換処理にて破損し、コマンドを構成するデータが物理的な伝送経路を正常に転送した場合において、前記コマンドの論理的な異常に対して、コマンドの論理的な異常を検出する手段、および、適切なエラー処理を実施することができる、記憶装置システムおよびその制御方法を提供することができる。
以下、各図を参照して本発明の実施形態について説明する。以後、説明する実施形態は特許請求の範囲を限定するものではなく、また実施形態の中で説明されている特徴を適宜組み合わせることができる。
図1は、本発明の第1実施形態を示す記憶制御システム(ディスクアレイシステム)のブロック構成図、図2は、本発明の第2実施形態を示す記憶制御システム(ディスクアレイシステム)のブロック構成図である。ストレージシステム120は、記憶制御システムとして、通信ネットワーク110を介して、複数のホスト装置(上位ホスト装置)100に接続されている。各ホスト装置100は、ストレージシステム120の上位ホスト装置として機能するサーバ、パーソナルコンピュータ、ワークステーション、メインフレームなどである。通信ネットワーク110としては、例えば、LAN(Local Area Network)、SAN(Storage Area Network)、インターネット、専用回線などがある。この通信ネットワーク110には、ホスト100とストレージシステム120とを結ぶホストポート100A、100Bが設けられている。
オープン系ホストの場合は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)、FCP(Fibre Channel Protocol)、iSCSI(internet Small Computer System Interface)などのプロトコルに基づいてデータ転送が行われる。メインフレーム系ホストの場合は、例えば、FICON(Fibre Connection;登録商標)、ESCON(Enterprise System Connection;登録商標)、ACONARC(Advanced Connection Architecture;登録商標)、FIBARC(Fibre Connection Architecture;登録商標)などの通信プロトコルに基づいてデータ転送が行われる。なお、ホスト装置100からNFS(Network File System)などのプロトコルにより、ファイル名指定によるデータ出力要求を受付けるように構成されたNAS(Network Attached Storage)機能を搭載してもよい。
ディスクアレイシステム120は、2重化されたコントロールユニット130A、130B、スイッチ140A、140B、SAS(Serial Attached SCSI)ドライブ150、SATA(Serial Advanced Technology Attachment)ドライブ160、複数のポートセレクタ300を備えて構成されている。記憶装置としてはFCドライブでもよい。ポートセレクタ300は、SATAドライブ160が二重化されたコントローラからIO要求を受領するために、ホストポートが単一のSATAドライブ160を、2つのホストポートに拡張するために用いるスイッチである。
コントロールユニット130A、130Bは、それぞれ同一のもので構成されており、主に、MPU131、メモリ132、ファイバチャネル(FC)プロトコルコントローラ133、データコントローラ134、キャッシュメモリ135、SASプロトコルコントローラ136を備え、コントロールユニット130Aのデータコントローラ134とコントロールユニット130Bのデータコントローラ134がそれぞれデータミラーリングバス137を介して接続されている。なお、図2に示す第2実施形態は、SASプロトコルコントローラ136の代わりに、ファイバチャネル(FC)プロトコルコントローラ133、プロトコル変換コントローラ400を備えたものであり、他の構成は図1に示す第1実施形態のものと同様である。プロトコル変換コントローラ400は、ポートセレクタ300の部分にあってもよい(FCバックエンドの場合、ポートセレクタ300にプロトコル変換コントローラ400の機能を付加してもよい)。
MPU(CPU)131は、ホスト装置110からのデータ入出力要求に応答して、複数のSASドライブ150、SATAドライブ160へのデータ入出力処理(ライトアクセス、またはリードアクセスなど)を制御するプロセッサであり、ローカルメモリとしてのメモリ132に格納された制御プログラム500を実行することにより、ファイバチャネルプロトコルコントローラ133、データコントローラ134、SASプロトコルコントローラ136、プロトコル変換コントローラ400を制御する機能を有する。
データコントローラ134は、MPU131の制御により、ファイバチャネルプロトコルコントローラ133とキャッシュメモリ135との間のデータ転送を制御する。キャッシュメモリ135は、ファイバチャネルプロトコルコントローラ133を介してフロントインタフェイスまたはバックインタフェイスとの間で授受されるデータを一時的に記憶する。
SASプロトコルコントローラ136は、メモリユニットに属するSASドライブ150、SATAドライブ160のうちデータ入出力要求の対象となっている記憶デバイスへアクセスを制御するためのイニシエータとして、スイッチ140Aまたはスイッチ140Bを介してコマンドなどを規定するプロトコルにしたがって各記憶デバイス(SASドライブ150、SATAドライブ160)に対して、データ入出力要求を送信する機能を有する。
スイッチ140A、140Bは、コントロールユニット130A、130Bとメモリユニットに属するSASドライブ150、SATAドライブ160とをそれぞれ接続する接続経路を構成するようになっており、これら接続経路のうち特定の接続経路には、ポートセレクタ300が挿入されている。
各ポートセレクタ300は、図3に示すように、各種の演算を行うCPU310、メモリ311、SATAフレームのテンポラリメモリ312、スイッチ140Aに接続されるSATAホストポート(ポートA)320、スイッチ140Bに接続されるSATAホストポート(ポートB)321、SATAドライブ160に接続されるSATAドライブポート322を備えて構成されている。メモリ311にはコマンド検証プログラム330に関するデータが格納されているとともに、マッピングテーブル340に関するデータが格納されている。マッピングテーブル340には、ドライブポート341に関するデータとしてTag0〜Tag31が格納され、ホストポート342には、ホストポート342に関するデータとして、ホストポートA/Bと、ホストポート側のコマンドのTagに関するデータが格納されている。
一方、プロトコル変換コントローラ400は、図4に示すように、各種演算処理を行うCPU410、メモリ411、ファイバチャネル(FC)フレームとSATAフレームのテンポラリメモリ412、スイッチ140A、140Bに接続されるファイバチャネル(FC)ホストポート(ポートA)420、ファイバチャネル(FC)ホストポート(ポートB)421、スイッチ140A、140Bに接続されるSASポート422を備えて構成されている。メモリ411には、コマンド検証プログラム330に関するデータが格納されているとともに、変換テーブル440に関するデータが格納されている。変換テーブル440には、SCSI CMD441に関するデータとして、リード、ライトに関するデータが格納されているとともに、SCSI CMD441に対応して、ATA CMD442に関するデータが格納されている。
次に、ストレージシステム120におけるコマンド生成から実行までの処理内容を図5に基づいて説明する。MPU(CPU)131は、ホスト装置100からのデータの入出力要求に応答して、データ入出力処理の全体制御を行う。MPU 131は、制御プログラム500に基づいて、データの入出力要求に応じたコマンドを制御する。たとえば、MPU131は、ホスト装置100から入出力要求を受領したときに、HDDに発行するコマンドを制御プログラム500に基づいて生成する。この時、FCPコントローラ133がホスト100から受領するコマンドを構成するデータを書き込み、また、HDDに発行するコマンドを構成するデータを保持する、ローカルメモリ132と、ローカルメモリにアクセスする経路(PCI, PCI-Express等のBUS)は、パリティやECC、CRCにてデータの一貫性を保持している。
このあと、図6(a)に示す構成情報テーブル610と、図6(b)に示すアルゴリズムテーブル620の内容を参照しながら、チェックサムを計算し、コマンド情報とチェックサムを合わせた情報を取得する。SATAドライブ160に対してコマンドを発行する場合、ポートセレクタが変換した後のコマンドを構成するデータは、ポートセレクタ300のマッピングテーブル340にて計算できる。よって、MPU131は、ポートセレクタ300のマッピングテーブル340を考慮したチェックサムの計算アルゴリズム622(後述)に基づいて、ポートセレクタ300にて変換される後のコマンドを構成するデータを予測し、予測した前記コマンドを構成するデータに対してチェックサムを計算する。構成情報テーブル610には、筐体番号611、ドライブ番号612に対して、ドライブのポートID(WWN:World Wide Name)613、ドライブ種別614、計算アルゴリズム番号615に関するデータが格納され、アルゴリズムテーブル620には、計算アルゴリズム番号621に対応して、計算アルゴリズム622、コマンド検証の対象となるコマンド種別のリスト623、途中経路のデバイス624に関するデータが格納されている。
この処理の過程では、パリティ、ECC、チェックサムがコマンドの保護として行われることになる。コマンドを構成するデータは、ローカルメモリやバス(PCI, PCI-Express等)のパリティ, ECC, CRCに加えて、既述の計算に依るチェックサムにて保護される。このあとSASプロトコルコントローラ136は、プロトコルに応じたコマンドフレームを作成し、作成したコマンドフレームにCRC(Cyclic Redundancy Check)を付加し、CRCが付加されたコマンドフレームを発行する。SASプロトコルコントローラ136が発行するコマンドフレームは、フレームを保護するCRCと、コマンドを構成するデータを保護するチェックサムにて保護される。コマンドがスイッチ140A、140Bを介してポートセレクタ300に転送されると、ポートセレクタ300は、コマンドフレームを受領し、コマンドフレームのCRCを検証し、CRCが正しいとCRCを削除する。ポートセレクタは、マッピングテーブル340を参照して、コマンドを構成する情報のうちTag番号を、コマンドフレームを受領したポート番号とTag番号に対応する、新たなTag番号に変換する。この変換作業の間は、コマンドを構成するデータは、MPU131があらかじめ計算してコマンドを構成するデータとして付加したチェックサムによって保護される。その後、変換後のコマンドを構成するデータに対して、SATAプロトコルにて規定されたCRCをfooterに付加して、コマンドフレームを構成する。この時に、コマンドフレームは、CRCにて保護され、コマンドを構成するデータはMPU 131にてあらかじめ算出したチェックサムにて保護される。
この後、ポートセレクタ300は、MPU131が制御プログラム500に基づいてコマンドを発行する前にあらかじめ付加したチェックサムを用いて、コマンドが論理的に正しいかを検証する。具体的には、コマンド検証は、コマンド情報の論理的に破壊されたデータのチェックである。ポートセレクタ300は、コマンド検証プログラム330に基づいて、検証が正しい(valid)場合にはドライブに対してコマンドフレームを発行し、検証結果が正しくない(invalid)場合にはコマンドフレームを破棄して、コントローラに対してエラー通知を実行する。.ポートセレクタ300から目的とするドライブにコマンドが発行されたときには、例えば、SATAドライブ160は、論理的なコマンド検証を通過した正しいコマンドを受領し、アクセスに応答した処理を行うことになる。SATAドライブ160はコマンドの保護としてCRCを行なう。以上説明したとおり、コマンドを構成するデータに付加したチェックサムの値は、MPU131がコマンドとチェックサムを生成してから、ドライブがコマンドフレームを受領するまで、変化しない。ポートセレクタ300は、途中経路にてコマンドを構成するデータを変更するプロセスにてソフトエラー等による破損が生じた場合に、コマンドを構成するデータの破損を検出し、不正なコマンドをドライブに発行することを防止し、かつ、コントローラに適切なエラー処理を実施するように通知することができる。
図7(A)に、メモリ132に格納されたエラーカウンタテーブル710、720の構成を示す。エラーカウンタテーブル710には、図7(B)のテーブルで定義しているように、筐体番号611とドライブ番号612に関するデータがエラーカウンタ711に関連づけて格納されており、また閾値712に関するデータも格納されている。またエラーカウンタテーブル720には、プロトコルコントローラ番号721とエラーカウンタ722に関するデータが格納されているとともに、閾値723に関するデータが格納されている。
図8(A)は、SATAのRead/Write FPDMA Queuedコマンド810のフレーム情報の構成を示し、図8(B)は、SCSIのRead(10)コマンドのコマンド記述ブロック(CDB)のフォーマット820の構成を示し、図8(c)に、SISCのWrite(10)コマンドのCDBのフォーマット830およびCheck Sum801の挿入位置の例を示す。Check Sum801を計算する対象のフィールド802は、一例である。
次に、構成テーブル610を構成するときの処理を図9にしたがって説明する。まず、MPU131が構成情報テーブル610の構築を開始すると(S10)、制御プログラム500は、接続しているデバイスを探索する(S11)。このとき制御プログラム500は、デバイス種別として、プロトコル変換かドライブかを判別し(S12)、ドライブのときには、ドライブ種別を判別する(S13)。ステップS12においてプロトコル変換と判別されたときには、制御プログラム500は、プロトコル変換コントローラ400のデバイスの情報を取得するためのコマンドを発行し(S20)、ドライブ種別を判別する(S21)。ステップS13とS21においてドライブ種別としてSATAと判別されたときには、制御プログラム500は、SATAドライブ160の手前のポートセレクタ300に対して、ポートセレクタ300のチェックサム計算アルゴリズムを選択するための情報を取得するためのコマンドを発行し、ステップS40の処理に移行する(S30)。
一方、ステップS13において、SASドライブまたはFCドライブ(途中の接続経路に変換デバイスなし)と判別されたとき、あるいはステップS21においてFC/SASと判別されたときには、ステップS40の処理に移行する。ステップS40においては、制御プログラム500は、接続デバイスの種別及び途中の接続経路に接続しているデバイスからチェック関数を選択する(S40)。続いて制御プログラム500は、構成情報テーブル610に、チェック関数番号を登録し(S50)、さらに、ドライブに対してチェックサムが不正なコマンドを発行し、正常にエラー応答を返すかを確認するための処理行い(S60)、このルーチンでの処理を終了する。
次に、コマンドチェックが正常に終了したときの処理を図10にしたがって説明する。まず、MPU131の処理を基に、制御プログラム500は、リードコマンドの実行に必要な、コマンドを構成する情報(ドライブのアドレス、転送長、LBA、Tagなど)を生成し(S100)、特定のドライブを示す筐体#およびunit#を用いて、構成情報テーブル610からチェックサムの計算アルゴリズム622を選択し(S101)、ステップS100にて生成したコマンドの情報から、計算アルゴリズム622を用いて、ドライブが受領するコマンドのチェックサムを計算し、チェックサムをステップS100にて生成されたコマンドを構成するデータに付加し(S102)、SASプロトコルコントローラ135にチェックサムを付加したコマンドを登録する(S103)。コマンドが生成されると、SASプロトコルコントローラ136において、コマンドの発行(SATA H2D FISの発行)が行われる(S104)。このあとポートセレクタ300がコマンドを受領すると(S110)、ポートセレクタ300はコマンドを変換し、コマンド変換後のコマンドフレームに対してCRCを生成(S111)、コマンドの検証を行う(S112)。
このとき、“Valid”と判定したときには、ポートセレクタ300は、ドライブ160に対してコマンドを発行する(S113)。SATAドライブ160がコマンドを受領したときには(S130)、SATAドライブ160からSASプロトコルコントローラ136に対してコマンド受領の通知(SATA D2H FIS発行)を行う(S131)。SSプロトコルコントローラ136がD2H FISを受領する(S132)。このときSATAドライブ160はDMA転送準備(DMA Setup FIS発行)を行い(S133)、準備した内容をSASプロトコルコントローラ136に転送する(S133)。SSプロトコルコントローラ136がDMA Setup FISを受領する(S134)。
これにより、SATAドライブ160は、リードデータの転送(Data FIS送信)をSASプロトコルコントローラ136に対して行う。SSプロトコルコントローラ136は、Data FISを受領する(S136)。これにより、SATAドライブ160は、コマンド完了通知(SDB FIS、D2H FIS)をSSプロトコルコントローラ136に対して行う(S137)。SASプロトコルコントローラ136は、制御プログラム500にコマンドの完了を通知する(S138)。コマンド完了通知を受領した制御プログラム500はコマンドの生成に関する処理を完了し(S139)、このルーチンでの処理を終了する。
次に、コマンドチェックの結果が異常(invalid)である際の処理とリトライ処理を図11のフローチャートにしたがって説明する。まず、MPU131の処理に基づいて制御プログラム500は、コマンドチェック結果が正常である時と同様に、ステップS100〜S103までの処理を実行し、SASプロトコルコントローラ136はステップS104の処理を実行し、ポートセレクタ300はステップS110〜S112までの処理を行う。このあと、ポートセレクタ300は、コマンドの転送に伴う異常として、コマンドを構成するデータの破損を検出したときには検出結果をSAプロトコルコントローラ136に通知する(S161)。マンドを構成するデータの破損の結果を受領したSAプロトコルコントローラ136はその旨を制御プログラム500に転送する(S162)。制御プログラム500は、コマンドの論理不整合の検出結果を受けて、コマンドチェックエラーを認識し(S163)、発行先ドライブごとに、コマンド論理不正のエラーをカウントする(S170)。
このあと制御プログラム500は、リトライ判定を行うとともに、閉塞すべき部位を判定するための処理を行い(S180)、リトライ判定にしたがって、S100の処理に戻るとともに、閉塞すべき部位として、コントローラと判定したときには、その旨をホスト装置100に転送する(S180)。ホスト装置180は、ストレージシステム120に属するコントローラの閉塞に対して、冗長パスに切り替えを実施し、ホストIOに対するドライブIOを冗長パスにて継続し(S190)、このルーチンでの処理を終了する。
次に、リトライ判定処理と閉塞部位判定処理の具体的な内容を図12のフローチャートにしたがって説明する。図12は図11のステップ180の詳細である。先ず、制御プログラム500は、リトライ判定を開始し(S200)、エラーカウンタテーブル700の発生したドライブに該当するエントリのカウンタを加算し(S201)、エラー発生元のSSプロトコルコントローラ136に該当するエントリのカウンタを加算し(S202)、カウンタの値と閾値とを比較判定する(S203)。カウンタの値が閾値を超えているときには、障害部位の切り分けを開始し(S250)、閾値を超過しているエントリの部位を判定する(S251)。
このときドライブと判定したときには、制御プログラム500は、ドライブまたはドライブの手前のコマンドフォーマットを変換するデバイス(ポートセレクタ300やプロトコル変換コントローラ400など)に障害が発生していると判断し(S261)、ドライブ及び変換デバイスを閉塞する(S262)。このあとスペアドライブがあれば、RAID制御におけるコレクションコピーをバックグラウンドにて実施を開始し(S263)、ステップS203においてカウンタの値が閾値以下と判定されたときと同様に、コマンドをリトライするための処理を行い(S264)、図11のステップS100の処理に戻る。
一方、ステップS251において、閾値を超過しているエントリはプロトコルコントローラ136であると判定されたときには、制御プログラム500は、他系のコントローラ130Bのエラーカウンタテーブルにて、エラーが発生していないことを確認し(S271)、障害が発生している自系のコントローラ130Aを閉塞するための処理を行い(S272)、図11のステップ190の処理に移行する。
次に、コマンドチェックプログラムによるコマンドチェックの処理内容を図13のフローチャートにしたがって説明する。図13は図10及び図11のステップ12を詳細に説明したものである。
まず、ポートセレクタ300がコマンドを受領すると(S310)、メモリ311に格納されたコマンドチェックプログラム330は、受領したコマンドのうちチェック対象の部分について、チェックサムを計算し(S320)、計算したチェックサムと制御プログラム500が計算してコマンドに付加したチェックサムとを比較し(S330)、両者の内容が同一か否かを判定し(S340)、両者が同一のときには、コマンドは正しく変換されているとして処理し(S350)、一方、異なるときには、不正コマンドのため、プロトコルコントローラ136に対してエラー応答として報告し、受領した不正なコマンドを破棄し(S360)、このルーチンでの処理を終了する。
本実施形態によれば、MPU131の処理に基づいて生成されたコマンドをポートセレクタ300が受信したときに、ポートセレクタ300がコマンドを構成するデータが破損しているかどうかを判定し、コマンドが正常であるときには、目的とするドライブ160をアクセスし、一方、コマンドが異常であって、コマンドの論理的な不整合を検出したときには、この検出結果をスイッチ140A、140Bを介してMPU131に転送し、MPU131に対してリトライ処理及び障害部位の検出・閉塞の処理を実施することができる。したがって、本発明はコマンドの論理的な異常を検出する手段を提供し、さらに適切なエラー処理を実施することができる。
ることができる。
前記第2の実施形態において、プロトコル変換、ポートセレクタの両方にコマンドチェックの回路を持っている。制御プログラムが、プロトコル変換が検出して返すエラーと、ポートセレクタが検出して返すエラーを識別できるように、エラーレスポンスを複数種類用意する。これにより、第一の実施形態を組み合わせることにより、プロトコル変換とポートセレクタといった、複数の変換部位のうち、どの部分にコマンドの論理的なデータ化けが発生したかを、制御プログラムが識別することができ、適切に障害部位を切り分け、迅速に閉塞・交換することができる。
本発明の第1実施形態を示す記憶制御システムのブロック構成図である。 本発明の第2実施形態を示す記憶制御システムのブロック構成図である。 図3(A)はポートセレクタを示すブロックダイアグラムであり、図3(B)はポートセレクタのマッピングテーブルを示す。 図4(A)はプロトコル変換コントローラを示すブロックダイアグラムであり、図4(B)はプロトコル変換コントローラのマッピングテーブルである。 ストレージシステムによりコマンド生成から実行までの処理を説明するための図である。 (a)は、構成情報テーブルの構成図、(b)は、チェックサム計算アルゴリズムのテーブル構成図である。 (a)は、エラーカウンタテーブルの構成図、(b)は、エラーカウンタテーブルの構成図である。 (a)は、SATAのRead/Write FPDMA Queuedコマンドのフレームフォーマットであり、(b)は、SISCのReadコマンドのフレームフォーマットであり、(c)は、SCSIのWriteコマンドのフレームフォーマットである。 ストレージ装置のK情勢情報を取得するためのフローチャートである。 コマンドチェック結果が正常の際の処理を説明するためのフローチャートである。 コマンドチェック結果が異常である際の処理及びリトライ処理を説明するためのフローチャートである。 リトライ処理において障害部位を検出して閉塞を実施するまでの処理を説明するためのフローチャートである。 コマンド検証プログラムの処理を説明するためのフローチャートである。
符号の説明
100 ホスト装置
110 通信ネットワーク
120 ストレージシステム
130A、130B コントロールユニット
131 MPU
132 メモリ
133 FCプロトコルコントローラ
134 データコントローラ
135 キャッシュメモリ
136 SSプロトコルコントローラ
140A、140B スイッチ
150 SASドライブ
160 SATAドライブ
400 プロトコル変換コントローラ
500 制御プログラム

Claims (26)

  1. 複数の記憶デバイスを備えるメモリユニットと、上位装置からのデータの入出力要求に応答して前記メモリユニットに対するデータ入出力処理を行う複数のコントロールユニットと、各々のコントロールユニットと前記メモリユニットとをそれぞれ接続する複数の接続経路と、前記複数の接続経路のうちいずれかの接続経路中に挿入されてデータの入出力を制御するポートセレクタと、を備え、
    前記コントロールユニットは、制御プログラムを格納するメモリと、前記データ入出力処理の全体制御を行うとともに、前記制御プログラムに基づいて前記データの入出力要求に応じたコマンドを生成するコントローラと、前記コマンドに基づいて前記メモリユニットのうち前記データ入出力要求の対象となっている記憶デバイスへアクセスするための制御を行うイニシエータと、を備え、前記ポートセレクタは、前記コマンドを受信したときに、前記コマンドの異常の有無を判定し、前記判定結果に従った処理を少なくとも前記コントローラに対して実行する記憶制御システム。
  2. 前記ポートセレクタは、前記コマンドに関する判定結果として、正常の判定結果を得たときには、前記接続経路を介して目的とする記憶デバイスにアクセスし、異常の判定結果を得たときには、前記異常の判定結果を前記接続経路を介して前記コントローラに転送することを特徴とする請求項1に記載の記憶制御システム。
  3. 前記ポートセレクタは、前記コマンドの異常の有無を判定するときに、前記コマンドの論理不整合を検出したときには、この検出結果を前記異常の判定結果として前記接続経路を介して前記コントローラに転送することを特徴とする請求項2に記載の記憶制御システ
    ム。
  4. 前記コントローラは、前記ポートセレクタから異常の判定結果を受けたときには、前記異常の判定結果を認識して、前記コマンドを再度生成するためのリトライ処理を実行することを特徴とする請求項1に記載の記憶制御システム。
  5. 前記コントローラは、前記ポートセレクタから受けた前記異常の判定結果を認識したときに、前記認識結果から閉塞すべき部位を判定し、この判定結果に従って前記閉塞すべき部位を閉塞することを特徴とする請求項4に記載の記憶制御システム。
  6. 複数の記憶デバイスを備えるメモリユニットと、上位装置からのデータの入出力要求に応答して前記メモリユニットに対するデータ入出力処理を行う複数のコントロールユニットと、各々のコントロールユニットと前記メモリユニットとをそれぞれ接続する複数の接続経路と、を備え、
    前記コントロールユニットは、制御プログラムを格納するメモリと、前記データ入出力処理の全体制御を行うとともに、前記制御プログラムに基づいて前記データの入出力要求に応じたコマンドを生成するコントローラと、前記コマンドに基づいて前記メモリユニットのうち前記データ入出力要求の対象となっている記憶デバイスへアクセスするための制御を行うイニシエータと、を備え、
    前記各々のメモリユニットは、データの入出力を制御するポートセレクタを備え、前記ポートセレクタは、前記コマンドを受信したときに、前記コマンドの異常の有無を判定し、前記判定結果に従った処理を少なくとも前記コントローラに対して実行する記憶制御システム。
  7. 前記ポートセレクタは、前記コマンドに関する判定結果として、正常の判定結果を得たときには、目的とする記憶デバイスにアクセスし、異常の判定結果を得たときには、前記異常の判定結果を前記コントローラに転送することを特徴とする請求項6に記載の記憶制御システム。
  8. 前記ポートセレクタは、前記コマンドの異常の有無を判定するときに、前記コマンドの論理不整合を検出したときには、この検出結果を前記異常の判定結果として前記コントローラに転送することを特徴とする請求項7に記載の記憶制御システム。
  9. 前記コントローラは、前記ポートセレクタから異常の判定結果を受けたときには、前記異常の判定結果を認識して、前記コマンドを再度生成するためのリトライ処理を実行することを特徴とする請求項6に記載の記憶制御システム。
  10. 前記コントローラは、前記ポートセレクタから受けた前記異常の判定結果を認識したときに、前記認識結果から閉塞すべき部位を判定し、この判定結果に従って前記閉塞すべき部位を閉塞することを特徴とする請求項9に記載の記憶制御システム。
  11. 前記コントローラは、前記閉塞すべき部位を前記イニシエータと判定したときには、前記イニシエータを閉塞し、前記閉塞すべき部位を前記記憶デバイスと判定したときには、前記記憶デバイスを閉塞するための処理を実行することを特徴とする請求項5に記載の記憶制御システム。
  12. 前記コントローラは、前記閉塞すべき部位を判定したときに、前記閉塞すべき部位に対する判定回数が閾値を超えたことを条件に前記閉塞すべき部位に対する閉塞処理を実行することを特徴とする請求項6に記載の記憶制御システム。
  13. 前記コントローラは、前記閉塞すべき部位に対する閉塞処理を実行するときには、前記閉塞すべき部位の情報を前記上位装置に転送することを特徴とする請求項7に記載の記憶制御システム。
  14. 複数の記憶デバイスを備えるメモリユニットと、上位装置からのデータの入出力要求に応答して前記メモリユニットに対するデータ入出力処理を行う複数のコントロールユニットと、各々のコントロールユニットと前記メモリユニットとをそれぞれ接続する複数の接続経路と、前記複数の接続経路のうちいずれかの接続経路中に挿入されてデータの入出力を制御するポートセレクタと、を備え、前記コントロールユニットは、制御プログラムを格納するメモリと、前記データ入出力処理の全体制御を行うとともに、前記制御プログラムに基づいて前記データの入出力要求に応じたコマンドを生成するコントローラと、前記コマンドに基づいて前記メモリユニットのうち前記データ入出力要求の対象となっている記憶デバイスへアクセスするための制御を行うイニシエータと、を備え、前記メモリユニットと前記複数のコントロールユニットとの間で、前記複数の接続経路と前記ポートセレクタを介してデータの授受を行うに際して、
    前記ポートセレクタは、前記コマンドを受信したときに、前記コマンドの異常の有無を判定し、前記判定結果に従った処理を少なくとも前記コントローラに対して実行する記憶制御システムの制御方法。
  15. 前記ポートセレクタは、前記コマンドに関する判定結果として、正常の判定結果を得たときには、前記接続経路を介して目的とする記憶デバイスにアクセスし、異常の判定結果を得たときには、前記異常の判定結果を前記接続経路を介して前記コントローラに転送することを特徴とする請求項14に記載の記憶制御システムの制御方法。
  16. 前記ポートセレクタは、前記コマンドの異常の有無を判定するときに、前記コマンドの論理不整合を検出したときには、この検出結果を前記異常の判定結果として前記接続経路を介して前記コントローラに転送することを特徴とする請求項15に記載の記憶制御システムの制御方法。
  17. 前記コントローラは、前記ポートセレクタから異常の判定結果を受けたときには、前記異常の判定結果を認識して、前記コマンドを再度生成ためのリトライ処理を実行することを特徴とする請求項14に記載の記憶制御システムの制御方法。
  18. 前記コントローラは、前記ポートセレクタから受けた前記異常の判定結果を認識したときに、前記認識結果から閉塞すべき部位を判定し、この判定結果に従って前記閉塞すべき部位を閉塞することを特徴とする請求項17に記載の記憶制御システムの制御方法。
  19. 前記コントローラは、前記閉塞すべき部位を前記イニシエータと判定したときには、前記イニシエータを閉塞し、前記閉塞すべき部位を前記記憶デバイスと判定したときには、前記記憶デバイスを閉塞するための処理を実行することを特徴とする請求項18に記載の記憶制御システムの制御方法。
  20. 複数の記憶デバイスを備えるメモリユニットと、上位装置からのデータの入出力要求に応答して前記メモリユニットに対するデータ入出力処理を行う複数のコントロールユニットとをそれぞれ接続する複数の接続経路のうちいずれかの接続経路中に挿入されてデータの入出力を制御するポートセレクタにおいて、前記コントロールユニットで生成されたコマンドを受信したときに、前記コマンドの異常の有無を判定し、前記コマンドに関する判定結果として、正常の判定結果を得たときには、前記接続経路を介して目的とする記憶デバイスにアクセスし、異常の判定結果を得たときには、前記異常の判定結果を前記接続経路を介して前記コントロールユニットに転送することを特徴とするポートセレクタ。
  21. 前記コマンドの異常の有無を判定するときに、前記コマンドの論理不整合を検出したときには、この検出結果を前記異常の判定結果として前記接続経路を介して前記コントロールユニットに転送することを特徴とする請求項20に記載のポートセレクタ。
  22. 上位装置からのデータの入出力要求に応答して、複数の記憶デバイスを備えるメモリユニットに対するデータ入出力処理を行うコントロールユニットに属するコントローラであって、制御プログラムに基づいて前記データの入出力要求に応じたコマンドを生成し、生成したコマンドを、前記データ入出力要求の対象となっている記憶デバイスへアクセスするための制御を行うイニシエータを転送するコントローラにおいて、前記コントロールユニットと前記メモリユニットとをそれぞれ接続する複数の接続経路のうちいずれかの接続経路中に挿入されてデータの入出力を制御するポートセレクタから異常の判定結果を受けたときには、前記異常の判定結果を認識して、前記コマンドを再度生成するためのリトライ処理を実行することを特徴とするコントローラ。
  23. 前記ポートセレクタから受けた前記異常の判定結果を認識したときに、前記認識結果から閉塞すべき部位を判定し、この判定結果に従って前記閉塞すべき部位を閉塞することを特徴とする請求項22に記載のコントローラ。
  24. 前記閉塞すべき部位を前記イニシエータと判定したときには、前記イニシエータを閉塞し、前記閉塞すべき部位を前記記憶デバイスと判定したときには、前記記憶デバイスを閉塞するための処理を実行することを特徴とする請求項23に記載のコントローラ。
  25. 前記閉塞すべき部位を判定したときに、前記閉塞すべき部位に対する判定回数が閾値を超えたことを条件に前記閉塞すべき部位に対する閉塞処理を実行することを特徴とする請求項24に記載のコントローラ。
  26. 前記閉塞すべき部位に対する閉塞処理を実行するときには、前記閉塞すべき部位の情報を前記上位装置に転送することを特徴とする請求項25に記載のコントローラ。
JP2007105244A 2006-07-10 2007-04-12 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ Pending JP2008041080A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007105244A JP2008041080A (ja) 2006-07-10 2007-04-12 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006189782 2006-07-10
US11/527,497 US7761657B2 (en) 2006-07-10 2006-09-27 Storage control system, control method for storage control system, port selector, and controller
JP2007105244A JP2008041080A (ja) 2006-07-10 2007-04-12 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ

Publications (1)

Publication Number Publication Date
JP2008041080A true JP2008041080A (ja) 2008-02-21

Family

ID=39175959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007105244A Pending JP2008041080A (ja) 2006-07-10 2007-04-12 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ

Country Status (1)

Country Link
JP (1) JP2008041080A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282739A (ja) * 2008-05-22 2009-12-03 Nec Computertechno Ltd ネットワークシステム、ネットワーク接続方法、接続装置、接続カード
JP2016212531A (ja) * 2015-04-30 2016-12-15 富士通株式会社 ストレージ装置、制御装置、制御プログラム
JP2022031959A (ja) * 2017-06-22 2022-02-22 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161935A (ja) * 1992-11-27 1994-06-10 Fujitsu Ltd 入出力制御装置におけるscsi制御方式
JP2004326769A (ja) * 2003-04-25 2004-11-18 Hewlett-Packard Development Co Lp 情報転送プロトコル
JP2005157636A (ja) * 2003-11-25 2005-06-16 Hitachi Ltd 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置
JP2006072717A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ディスクサブシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161935A (ja) * 1992-11-27 1994-06-10 Fujitsu Ltd 入出力制御装置におけるscsi制御方式
JP2004326769A (ja) * 2003-04-25 2004-11-18 Hewlett-Packard Development Co Lp 情報転送プロトコル
JP2005157636A (ja) * 2003-11-25 2005-06-16 Hitachi Ltd 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置
JP2006072717A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ディスクサブシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282739A (ja) * 2008-05-22 2009-12-03 Nec Computertechno Ltd ネットワークシステム、ネットワーク接続方法、接続装置、接続カード
JP2016212531A (ja) * 2015-04-30 2016-12-15 富士通株式会社 ストレージ装置、制御装置、制御プログラム
JP2022031959A (ja) * 2017-06-22 2022-02-22 マイクロン テクノロジー,インク. 不揮発性のメモリシステム又はサブシステム

Similar Documents

Publication Publication Date Title
US7831767B2 (en) Storage control system, control method for storage control system, port selector, and controller
US7562264B2 (en) Fault tolerant soft error detection for storage subsystems
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
US8713251B2 (en) Storage system, control method therefor, and program
US6981171B2 (en) Data storage array employing block verification information to invoke initialization procedures
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
US9047220B2 (en) Storage system and data management method
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
US7779202B2 (en) Apparatus and method for controlling disk array with redundancy and error counting
US20090106583A1 (en) Storage controller, and storage device failure detection method
EP3608791B1 (en) Non-volatile memory switch with host isolation
US8438429B2 (en) Storage control apparatus and storage control method
JP7080863B2 (ja) ストレージ装置
US20150378858A1 (en) Storage system and memory device fault recovery method
JP2006139478A (ja) ディスクアレイシステム
JP2006268673A (ja) 記憶制御装置及び記憶デバイスのエラー制御方法
WO2014094250A1 (zh) 数据处理方法和设备
US9760296B2 (en) Storage device and method for controlling storage device
US6938188B1 (en) Method for verifying functional integrity of computer hardware, particularly data storage devices
US10025655B2 (en) Storage system
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
US10014983B2 (en) System, receiving device, and method

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120703