JP2007011687A - ストレージシステム、ストレージ制御装置及びストレージ制御方法 - Google Patents

ストレージシステム、ストレージ制御装置及びストレージ制御方法 Download PDF

Info

Publication number
JP2007011687A
JP2007011687A JP2005191641A JP2005191641A JP2007011687A JP 2007011687 A JP2007011687 A JP 2007011687A JP 2005191641 A JP2005191641 A JP 2005191641A JP 2005191641 A JP2005191641 A JP 2005191641A JP 2007011687 A JP2007011687 A JP 2007011687A
Authority
JP
Japan
Prior art keywords
read
data
disk
response
disk device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005191641A
Other languages
English (en)
Other versions
JP4409483B2 (ja
Inventor
Hidejiro Ookurotani
秀治郎 大黒谷
秀夫 ▲高▼橋
Hideo Takahashi
Yoshihito Konta
與志仁 紺田
Yasutake Sato
靖丈 佐藤
Hiroaki Sato
弘章 佐藤
Norihide Kubota
典秀 久保田
Masami Ikeno
雅己 池野
Tadashi Hirano
忠司 平野
Takeshi Nakagami
剛 中神
Yuji Noda
祐司 野田
Yusuke Inai
祐介 稲井
Naoyoshi Tone
直佳 利根
Mikio Ito
実希夫 伊藤
Kazuhiko Ikeuchi
和彦 池内
Yukihiro Yoshiya
行裕 吉屋
Nobuyuki Kikuchi
伸之 菊地
Masaru Aramitsu
勝 新満
Eisaku Takahashi
栄作 高橋
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 JP2005191641A priority Critical patent/JP4409483B2/ja
Priority to US11/237,662 priority patent/US7590884B2/en
Publication of JP2007011687A publication Critical patent/JP2007011687A/ja
Application granted granted Critical
Publication of JP4409483B2 publication Critical patent/JP4409483B2/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1879Direct read-after-write methods
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/183Testing wherein at least one additional attempt is made to read or write the data when a first attempt is unsuccessful

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ディスク装置が、リカバリーして、リードデータを転送するストレージシステムにおいて、リカバリーの正当性を判定し、誤ったデータ転送を防止する。
【解決手段】制御装置(10)が、ディスク装置(15)にリードアクセスし、ディスク装置(15)が、リードデータとリカバリードエラー応答を返送する。制御装置(10)は、初回のリカバードリードエラー時に、同様のコマンドによるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。リカバリードエラー発生時の不確かなデータ(被偽データ)を、ディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
【選択図】図7

Description

本発明は、コンピュータシステムの外部記憶装置として用いられるストレージシステム、ストレージ制御装置及びストレージ制御方法に関し、特に、複数のディスクドライブのデータをリード/ライト制御するストレージシステム、ストレージ制御装置及びストレージ制御方法に関する。
近年、様々なデータが電子化され、且つコンピュータ上で扱われるようになるに従い、大量のデータを安全に格納することのできるストレージシステムが、広く利用されている。このストレージシステムでは、ホストコンピュータのアクセスにより、大量のデータをリード又はライトする。
このようなストレージシステムは、多数の記憶装置と、これらを制御する制御装置とからなる。特に、記憶装置として、大容量、安価、小型なハード・ディスク・ドライブ等のディスクドライブが、利用される。制御装置は、ホストや内部処理の要求により、要求されたデータを格納する記憶装置をアクセスして、データのリード/ライトを実行する。
このようなストレージシステムにおいて、リードアクセスでは、記憶装置の記憶媒体にライトされているデータをリードする。即ち、制御装置は、リードアクセスコマンドを受けると、対象データを格納する記憶装置を求め、その記憶装置に、対象データのリード動作を指示するリードコマンドを発行する。
記憶装置は、リードコマンドを解析し、データの物理的格納位置を求め、その位置のデータを読み出し、制御装置へ転送する。例えば、ディスクドライブでは、記憶媒体の対象データの格納位置に、ヘッドを位置付け、ヘッドで、その位置のデータを読み出す。
このような記憶装置のデータは、エラーチエックコード(ECC)が付加されており、読み出したデータのエラーチエックコードをチエックし、リード動作の正当性を判定している。そして、エラーチエック結果が良好であり、リード動作が的確な場合には、読み出したデータを制御装置へ転送する。更に、エラー訂正可能な場合は、エラー訂正して、エラー訂正したデータを転送する。
一方、読み出したデータにエラーが検出され、訂正不可である場合には、再度、記憶媒体のその物理的位置のデータを読み出し(これをリトライという)、同様に、エラーチエック、エラー訂正する。そして、リード動作が正しい場合に、そのデータを同様に転送する。即ち、読み出しは、必ずしも1回の読み出しで、媒体の指定されたデータが正しく読み出されるとは限らない。この事実を、制御装置に転送するため、例えば、SCSI(Small Computer System Interface)では、1回のリードで、リード動作が的確な場合には、「good」を,リトライで、リード動作が的確な場合には、「recovered error」を、ステータスとして、制御装置に、データとともに、報告している(例えば、非特許文献1参照)。
「SCSI−2 詳細解説」(1995年8月1日発行、CQ出版株式会社)(170乃至172ページ)
従来技術では、記憶装置(ディスクドライブ)へのリード要求に対し、制御装置は、Good応答とリカバードエラー応答の両方が、正常な結果として、扱っていた。このリカバードエラー応答は、1回のリードで、エラーを検出しない場合以外に、即ち、ディスクドライブ内部のリトライ等で、データをリードできた場合に返すステータスである。
しかしながら、リカバードエラー応答時に、前回ライトしたデータとは、違うデータがリードされ、転送される可能性があり、Good応答のリードデータに比較して、リカバードエラー応答のリードデータの信用性が低いという問題が生じている。
例えば、ライトコマンドによるライト動作は、通常、記憶媒体の物理位置の領域を消去しないで、以前のデータに、今回のライトデータを上書きする。これにより、消去やベリファイを行わないため、ライト速度が向上する。
特に、ディスクドライブでは、ヘッドを指定された物理位置に位置付け、リード/ライト動作するため、各リード、ライト時に、若干のリード、ライト位置のずれが、存在する。このため、ライトする際に、1つのトラックで、前回のライト時と今回のライト時のヘッド位置が許容範囲内でずれていても、今回のライト時のデータで、前回のライト時のデータを、完全に上書きできないことがある。又、ライト位置によっては、隣接トラックの影響を受け、リード時に、そのライトデータを正確にリードできないことも考えられる。
この場合、次回のリード時に、1回のリードで、リードできない場合には、一般に、ヘッドをオフセットして、リトライリード動作を行う。又は、1回目のリードで、エラーチエックにより、エラー検出され、エラー訂正できるものは、エラー訂正して、エラー訂正したデータを転送する。
そして、エラー訂正できない場合には、リトライ動作を行い、再度、ヘッドを位置付け、記憶媒体からデータを読み取り、エラーチエックし、エラーを検出しない場合や、エラーを検出しても、エラー訂正できる場合には、これらを、リードデータとして、転送する。
このようなリードエラーを検出しても、リトライやエラー訂正で救済して、データを転送するが、これらのリードデータは、前述のように、隣接トラックのデータの影響や上書きの不完全さにより、リードされたデータが、ライトしたデータと異なる可能性がある。これらの現象は、ごくたまに、発生し、一過性のものであるが、リードデータを処理する制御装置やホストでは、影響が大きい。
従って、本発明の目的は、リカバードリードエラー応答時のリードデータの信頼性を向上するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
又、本発明の他の目的は、リカバードリードエラー応答時に、リードデータの正当性を判断するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
更に、本発明の別の目的は、リカバードリードエラー応答時に、リードデータの異常を検出するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
更に、本発明の別の目的は、リカバードリードエラー応答時に、リードデータの異常を検出し、リカバードリードエラーの再度の発生を防止するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
この目的の達成のため、本発明のストレージシステムは、少なくとも1つのディスク装置と、上位からの要求に応じて、前記ディスク装置のデータのリード/ライトを行う制御ユニットとを有し、前記制御ユニットは、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する。
又、本発明のストレージ制御装置は、上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御装置であり、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する。
又、本発明のストレージ制御方法は、上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御方法であり、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受けるステップと、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップとを有する。
更に、本発明では、好ましくは、前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する。
更に、本発明では、好ましくは、前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、1の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行う。
更に、本発明では、好ましくは、前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送する。
更に、本発明では、好ましくは、前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行する。
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行する。
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行する。
更に、本発明では、好ましくは、前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する。
更に、本発明では、好ましくは、前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行する。
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送する。
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知する。
本発明では、初回のリカバードリードエラー時に、同様のコマンドによるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ(被偽データ)を、ディスクのリトライにより、回復し、ホスト等の外部へ正確なリードデータを転送できる。
以下、本発明の実施の形態を、ストレージシステム、リード処理の第1の実施の形態、リード処理の第2の実施の形態、他の実施の形態の順で説明するが、本発明は、かかる実施の形態に限られず、種々の変形が可能である。
[ストレージシステム]
図1は、本発明のストレージシステムの一実施の形態の全体構成図、図2は、図1の主要部の詳細構成図、図3は、図1のディスクドライブの構成図、図4は、リードコマンドのフォーマット図である。
図1に示すように、ストレージシステムは、主要ユニットであるキャッシュメモリとキャッシュ制御部とをそなえるキャッシュマネージャ(図中、CMと表記)10−1〜10−4、ホストコンピュータ(図示略)とのインターフェイスであるチャネルアダプタ(図中、CAと表記)11−1〜11−8、複数のディスクドライブを備えるディスクエンクロージャ12−1〜12−4、及び、このディスクエンクロージャ12−1〜12−4とのインターフェイスであるデバイスアダプタ(図中、DAと表記)13−1〜13−8を備える。
そして、キャッシュマネージャ10−1〜10−4,チャネルアダプタ11−1〜11−8,及びデバイスアダプタ13−1〜13−8間を互いに接続し、これら主要ユニット間のデータ転送と通信を行うルータ(Router;図中、RTと表記)14−1〜14−4とが備えられている。
このストレージシステムは、キャッシュマネージャ10−1〜10−4が4つそなえられ、これらのキャッシュマネージャ10−1〜10−4に対応して4つのルータ14−1〜14−4が備えられている。各キャッシュマネージャ10−1〜10−4と各ルータ14−1〜14−4とは、1対1で相互に接続されている。これによって、複数のキャッシュマネージャ10−1〜10−4間の接続が冗長化され、可用性が高められている。
つまり、1つのルータ14−1の故障した場合にも、別のルータ14−2,14−3,14−4を経由することで、複数のキャッシュマネージャ10−1〜10−4間の接続は確保されており、かかる場合にも、ストレージシステムは通常の動作を継続することができる。
また、このストレージシステムは、各ルータ14−1〜14−4に、2つのチャネルアダプタ11−1,11−8と2つのデバイスアダプタ13−1〜13−8とが接続されている。従って、ストレージシステムは、合計8つのチャネルアダプタ11−1〜11−8と合計8つのデバイスアダプタ13−1〜13−8とを備えている。
これらのチャネルアダプタ11−1〜11−8及びデバイスアダプタ13−1〜13−8は、キャッシュマネージャ10−1〜10−4とルータ14−1〜14−4との相互接続により、全てのキャッシュマネージャ10−1〜10−4との間で通信が可能になっている。
このチャネルアダプタ11−1〜11−4は、例えば、ファイバチャネルやEthernet(登録商標)によって、複数のディスクに保持されたデータを処理対象とするホストコンピュータ(図示略)に接続されている。又、デバイスアダプタ13−1〜13−8は、例えば、ファイバチャネルによって、ディスクエンクロージャ12の各ディスクドライブに接続されている。
そして、チャネルアダプタ11−1〜11−8とキャッシュマネージャ10−1〜10−4との間、及びデバイスアダプタ13−1〜13−8とキャッシュマネージャ10−1〜10−4との間では、ホストコンピュータからのユーザデータだけではなく、ディスクアレイ装置の内部の動作の一貫性を保つための様々な情報のやり取り(例えば、複数のキャッシュメモリ間のデータのミラーリング処理)がなされる。
そのため、キャッシュマネージャ10−1〜10−4,チャネルアダプタ11―1〜11−8及びデバイスアダプタ13−1〜13−8と、ルータ14−1〜14−4との間は、ディスクアレイ装置とホストコンピュータとの間や、ディスク装置との間よりも低いレイテンシ(速い応答速度)を実現できるインターフェイスを介して接続されている。例えば、PCI(Peripheral Component Interconnect)バスのように、LSI(Large Scale Integration)やプリント基板の間を接続するために設計されたバスである。
さらに、ディスクエンクロージャ12−1〜12−4は、2つのファイバチャネルのポートを有し、各ポートには異なるルータ14−1〜14−4配下に属するデバイスアダプタ13−1〜13−8が接続される。これにより、デバイスアダプタ13−1〜13−8の故障時、もしくはルータ14−1〜14−4の故障時にも、キャッシュマネージャ10−1〜10−4からの接続が切断されないようになっている。
このストレージシステムは、一般にキャッシュメモリを内蔵することにより、データへのアクセス時間を短くすることを可能にしている。又、RAID技術を採用することができる。例えば、複数のディスクに同じデータを記憶させる(RAID-1)、パリティ情報をディスクに分散して記憶させる(RAID-5)などの手法により信頼性を高めている。更に、ストレージシステムの多くは、データに対してチェックコードを付加することにより、更にデータの保証を行い、信頼性を高める手法が採用されている。
図2に示すように、デバイスアダプタ13(13−1〜1−8を総称する)は、ディスクエンクロージャ12−1(又は12−2〜12−4)と接続するためのファイバーチャネルチップ30と、DMAエンジン40を有するインターフェイス回路32と、CPU34と、メモリコントローラ36と、キャッシュメモリ38とを有する。CPU34は、ファイバーチャネルチップ30とメモリコントローラ36を操作して、後述するディスクインターフェイス制御や、ホストとのリード/ライト処理を行う。
キャッシュマネージャモジュール10(10−1〜10−4を総称する)は、2つのCPU20、22と、キャッシュメモリ26と、ブリッジ回路の役目も果たすメモリコントローラ24とを有し、後述するアクセス処理を行う。ルータ14(14−1〜14−4を総称)は、スイッチ機能を有する他に、DMAエンジン15を搭載する。又、ルータ14は、チャネルアダプタ(チャネルアダプタ)11(11−1から11−8を総称)にも接続される。
キャッシュメモリ38,26は、DDR(Double Data Rate)のDRAM(Dynamic Random Access Memory)で構成され、アドレスバスA−BUS(例えば、8ビット)でアドレスが指定され、データバスD−BUSで、データをやりとりする。
次に、上述の構成において、ホストコンピュータがデータを格納する(ライトする)時のストレージシステムの動作を説明する。ホストコンピュータがディスクへ格納するデータは、まずチャネルアダプタ11へ送信される。チャネルアダプタ11は、デバイスアダプタ13と同様の構成を有す。
チャネルアダプタ11は、受信したデータを、内部メモリに書き込み、ホストからのデータ受信を完了すると、内部のDMAエンジンを起動し、内部メモリのライトデータ(受信データ)を読み出し、ルータ14を介し、キャッシュマネージャ10のメモリコントローラ24に、データにブロックチェックコード(BCC)を付加した上で、転送する。
メモリコントローラ24は、CPU20,22の制御に従い、キャッシュメモリ26に、転送データを格納する。その後に、DMAエンジン15を起動して,図1のように、他のキャッシュマネージャ10のメモリコントローラ24へ当該データを転送する。これにより、ミラーリング処理を行う。
ミラーリングが正常に完了すると、キャッシュマネージャ10は、チャネルアダプタ11に、通知を行い、チャネルアダプタ11は、ホストコンピュータにデータの格納を正常に終了したことを知らせる。更に、キャッシュマネージャ10は、内部シーケンスに従い、デバイスアダプタ13を介し、図1の磁気ディスクエンクロージャ12−1に、キャッシュメモリ26内のライトデータをライトバックし、磁気ディスクエンクロージャ12−1にデータを格納する。
次に、ホストコンピュータからリード要求が発行された場合、まず、ホストコンピュータからのリード要求をチャネルアダプタ11が受信する。次いで、リード要求を受信したチャネルアダプタ11は、担当のキャッシュマネージャ10に対して当該リード要求の対象データの要求を行う。
そして、担当のキャッシュマネージャ10は、自身のキャッシュメモリ26内に当該対象データがあれば、当該対象データが保持されたキャッシュメモリ26のアドレスを、チャネルアダプタ11、ルータ14に通知するとともに、ルータ14のDMAエンジン15に読出し指示をする。これにより、ルータ14は、DMAエンジン15を起動し、キャッシュメモリ26の対象データを、読み出し、チャネルアダプタ11の内部メモリに転送する。その後、内部のDMAエンジンを起動し、内部メモリの対象データを、ホストへ転送する。
一方、担当のキャッシュマネージャ10のキャッシュメモリ26内に当該対象データがない場合、デバイスアダプタ13に対してディスクエンクロージャ12−1から当該対象データを読み出して、キャッシュメモリ26へ転送するようにリード要求する。デバイスアダプタ13では、CPU34が、インターフェイス回路32、FC回路30を介し、ディスクエンクロージャ12−1に、図4で説明するリードコマンドを発行する。
ディスクエンクロージャ12−1から読み出されたリードデータは、FC回路30、インターフェイス回路32、メモリコントローラ36を介し、キャッシュメモリ38に格納される。キャッシュマネージャ10のCPU20,22は、デバイスアダプタ13から読み出し完了の通知を受けると、DMAエンジン15を起動して、キャッシュメモリ38のリードデータを、キャッシュメモリ26に書き込み、キャッシュマネージャ10に対して当該対象データの書き込みが終了したことを通知する。
更に、キャッシュマネージャ10は、デバイスアダプタ13から当該対象データのキャッシュメモリ26への書き込みが終了したことを示す通知を受け取ると、キャッシュマネージャ10は、チャネルアダプタ11に対して当該対象データの準備ができたことを通知するとともに、ルータ14に当該対象データの読み出しを指示する。
これにより、ルータ14は、DMAエンジン15を起動し、キャッシュメモリ26の対象データを、読み出し、チャネルアダプタ11に転送する。その後、チャネルアダプタ11は、対象データ(リードデータ)を、ホストへ転送する。
図3は、ディスクエンクロージャ12−1(12−2〜12−4)内のディスクドライブの構成図であり、ハード・ディスク・ドライブ(HDD)60を例に説明する。ハード・ディスク・ドライブ60は、ディスクエンクロージャ12−1(12−2〜12−4)に設けられた一対のFCケーブル50,52に接続される。このため、一対のFCインターフェイス回路62,64を有する。又、磁気ディスク72と、磁気ヘッド76を先端に有するアクチュエータ74とを有するドライブ機構70を制御する制御回路66と、リードデータ及びライトデータを格納するキャシュメモリ68とを有する。
このHDD60においても、磁気ディスク72からリードしたデータは、キャッシュメモリ68に格納しておき、デバイスアダプタ13に転送するとともに、次回の同一データに対するリードコマンドに対し、磁気ディスク72をアクセスすることなく、キャッシュメモリ68からデータを、デバイスアダプタ13に転送する。又、デバイスアダプタ13のライトデータは、一旦、キャッシュメモリ68に格納して、ライト完了を通知した後、磁気ディスク72に書き込む。
図4は、SCSI−2でのリードコマンドのフォーマットの説明図である。リードコマンドは、「0」〜「9」の10バイトで構成され、0バイト目が、オペレーションコード(リードオペレーション)、1バイト目が、LUN(論理ユニット番号)とキャッシュ制御情報DPO,FUA、2バイト目から5バイト目が、論理ブロックアドレス、7バイト目と8バイト目が、転送データ長である。
この内、FUA(Force Unit Access)フラグは、そのコマンドの実行時に、媒体アクセスを強制するかを指定する。例えば、FUA=「0」であるときは、指定されたデータが、キャッシュにヒットしていれば、媒体をアクセスすることなく、キャッシュ68からデータを転送する。一方、FUA=「1」であるときは、そのコマンドは、必ず媒体72をアクセスすることを指定し、リードコマンドでは、要求されたデータが、キャッシュにヒットしていても、媒体72からデータを読み出す。
[リード処理の第1の実施の形態]
図5及び図6は、本発明の第1の実施の形態のリード処理フロー図、図7は、その動作説明図である。この第1の実施の形態は、図7に示すように、この実施の形態は、RAID1等の冗長性ある場合のリード処理である。即ち、ディスク60Aのデータのコピーを、ペアのディスク60Bに格納した例である。
以下、図7を参照して、図5及び図6により、冗長性のあるシステムのリード処理を説明する。
(S10)先ず、キャッシュモジュール(以下、CMという)10は、DA13を介し、要求ディスク60A(P1)へリード要求を発行する。
(S12)CM10は、DA13を介するディスク60Aからの応答を受信したかを判定し、応答を受信した場合には、応答に「リカバードリードエラー」が含まれるかを判定する。「good」応答であれば、前述のように、リードデータをキャッシュメモリ26に格納した後、ホストへ転送する通常の転送プロセスを実行し、終了する。
(S14)一方、CM10は、リカバードリードエラー応答であると判定すると、ディスク60Aからのリードデータを、キャッシュメモリ26にステージングする。
(S16)次に、CM10は、DA13を介し、要求ディスク60A(P1)のペアのディスク60B(S1)へリード要求(リトライ)を発行する。
(S18)CM10は、DA13を介するディスク60Bからの応答を受信したかを判定し、応答を受信した場合には、応答が、「good」応答であるかを判定する。「good」応答でなければ、「リカバードエラー」応答のため、エラー処理を実行して、終了する。
(S20)一方、CM10は、「good」応答であると判定すると、ディスク60Bからのリードデータを、キャッシュメモリ26のディスク60Aのリードデータに上書きする。そして、CM10は、この「good」応答のリードデータをホストへ転送する。
(S22)次に、CM10は、ホストに非同期に、要求ディスク60Aの診断を開始する。先ず、キャッシュメモリ26に診断用ワーク領域を確保する。
(S24)次に、CM10は、DA13を介し、要求ディスク60A(P1)のペアのディスク60B(S1)へ再度リード要求を発行する。
(S26)CM10は、DA13を介するディスク60Bからの応答を受信したかを判定し、応答を受信した場合には、応答が、「good」応答であるかを判定する。「good」応答でなければ、「リカバードエラー」応答のため、エラー処理を実行して、終了する。
(S28)一方、CM10は、「good」応答であると判定すると、ディスク60Bからのリードデータを、キャッシュメモリ26の獲得したワーク領域に格納する。
(S30)そして、CM10は、DA13に、RAID整合要求 (要求ディスク60AのリードコマンドはFUA=「1」, 要求範囲は、ステップS24と同じ)を発行する。図7に示すように、DA13は、この整合要求に応じて、要求ディスク60A(P1)へ再度リード要求を発行する。この時、図4で説明したように、ディスク60Aでは、リードコマンドのFUAは、「1」(キャッシュ無効)であるから、ステップS10のリードコマンドで、ディスク60Aのキャッシュメモリ68に格納されたリードデータは、無視され、直接、磁気ディスク72からリードする。そして、DA13は、CM10のキャッシュメモリ26のワーク領域のディスク60BのリードデータS1 dataと、ディスク60AのリードデータP1 dataとを比較し、比較一致(good),比較不一致(error)を、整合要求の応答として、CM10へ返す。
(S32)CM10は、DA13からの整合要求に対する応答を受信したかを判定し、応答を受信した場合には、応答が、「good」応答であるかを判定する。「good」応答であれば、ディスク60Aの当該領域の交代処理を行うアサイン命令と、交代した領域のライト及びベリファイコマンドを、DA13を介しディスク60Aに発行する。ディスク60Aは、その領域の交代処理を実行し、且つベリファイ動作して、交代処理が確実であるかを判断する。一方、error応答であれば、ディスク60Aを切り離し、終了する。
このように、RAID1系に関しては、要求ディスク(P1)で、リカバードエラーが発生した場合は、直ちに、CM10でペアディスク(S1)へのリトライを実施し、キャッシュへステージングを完了する。これにより、リカバリードエラー発生時の不確かなデータ(被偽データ)を、ペアディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
そして、リカバードエラーLBAを含む要求範囲に,診断を実施し,結果によって,要求ディスクP1の交代処理や切離しを実施する。このため、再度のリカバリードエラーの発生を低減できる。
この診断に、要求ディスクのリード処理を、キャッシュを無効とするリードコマンドで実行するため、要求ディスク自体のデータを直接リードでき、診断が確実となる。又、ペアディスクのリードデータと比較するため、簡単に、要求ディスクの対象データの診断ができる。
更に、診断前に、ホストへ正確なデータを転送するため、ホストへの応答速度をそれ程、損なうことなく、非同期で、診断できる。
図8は、図5及び図7の処理を、RAID5系で、実行する変形例である。図8に示すように、RAID5系は、4つのディスク60A,60B,60C,60Dに、データを分散して、格納する。従って、ディスク60Aを、ディスクP1と、ディスク60B,60C,60Dを、ディスクS1と対応させることにより、同様の処理で実現できる。但し、ステップS28は、Regeneration Readコマンドを、DA13に発行し、ディスク60B,60C,60Dのデータを読み出し、XORにより、ディスク60Aの等価データを作成する。
このように、初回のリカバードエラー発生時にリトライを行う。冗長系では、ペアディスクへのリトライを行い、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ(被偽データ)を、ペアディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
又、この初回のリカバードエラー発生時は、FUAイネーブル(媒体より再読み込み)の設定により、同様コマンド(分割しない)によるリトライを実施する機能を追加し、ペアディスクのリードデータとのデータ比較による診断を行う。比較が、一致した場合のみ、要求ディスクが正常と判断する。尚、一回、リカバードエラーが発生しているため、再度、リカバードエラーが発生する可能性があるから、交代処理し、再度のリカバードエラーを防止する。しかも、ライト・ベリファイを行い、交代処理データのリード/ライトを保証する。
一方、比較一致しない場合には、要求ディスクの切り離しを行い、ディスク自体の診断や交換に供する。
[リード処理の第2の実施の形態]
図9及び図10は、本発明の第2の実施の形態のリード処理フロー図、図11は、その動作説明図である。この第2の実施の形態は、図11に示すように、この実施の形態は、RAID0の冗長性のない場合のリード処理である。即ち、ディスク60のデータのコピーを、他のディスク60に格納していない例である。
以下、図11を参照して、図9及び図10により、冗長性のないシステムのリード処理を説明する。
(S40)先ず、キャッシュモジュール(以下、CMという)10は、DA13を介し、要求ディスク60(P1)へリード要求を発行する。
(S42)CM10は、DA13を介するディスク60からの応答を受信したかを判定し、応答を受信した場合には、応答に「リカバードリードエラー」が含まれるかを判定する。「good」応答であれば、前述のように、リードデータをキャッシュメモリ26に格納した後、ホストへ転送する通常の転送プロセスを実行し、終了する。
(S44)一方、CM10は、リカバードリードエラー応答であると判定すると、ディスク60からのリードデータを、キャッシュメモリ26にステージングする。
(S46)次に、CM10は、DA13を介し、要求ディスク60(P1)へリード要求(リトライ)を発行する。この要求ディスク60のリードコマンドはFUA=「1」, 要求範囲は、ステップS40と同じである。図4で説明したように、ディスク60では、リードコマンドのFUAは、「1」(キャッシュ無効)であるから、ステップS40のリードコマンドで、ディスク60のキャッシュメモリ68に格納されたリードデータは、無視され、直接、磁気ディスク72からリードする。
(S48)CM10は、DA13を介するディスク60Bからの応答を受信したかを判定し、応答を受信した場合には、応答が、「good」応答であるかを判定する。「good」応答でなければ、「リカバードエラー」応答のため、ステップS52に進む。
(S50)一方、CM10は、「good」応答であると判定すると、ディスク60からのリードデータを、キャッシュメモリ26のディスク60のリードデータに上書きする。そして、CM10は、この「good」応答のリードデータをホストへ転送し、終了する。
(S52)次に、ステップS48で、リカバードエラーと判定すると、CM10は、ホストに同期した状態で、要求ディスク60の診断を開始する。先ず、CM10は、要求ディスク60からのリードデータを、キャッシュメモリ26の前回のリードデータに上書きする。
(S54)そして、CM10は、DA13に、RAID整合要求 (要求ディスク60AのリードコマンドはFUA=「1」, 要求範囲は、ステップS40と同じ)を発行する。図11に示すように、DA13は、この整合要求に応じて、要求ディスク60(P1)へ再度リード要求を発行する。この時、図4で説明したように、ディスク60Aでは、リードコマンドのFUAは、「1」(キャッシュ無効)であるから、ステップS40のリードコマンドで、ディスク60のキャッシュメモリ68に格納されたリードデータは、無視され、直接、磁気ディスク72からリードする。そして、DA13は、ディスク60からのgood応答があるかを判定し、good応答があると、CM10のキャッシュメモリ26のワーク領域のディスク60のリードデータP1 dataと、ディスク60のリードデータP1 dataとを比較する。good応答でなければ、これを、good応答であれば、比較一致(good),比較不一致(error)を、整合要求の応答として、CM10へ返す。
(S56)CM10は、DA13からの整合要求に対する応答を受信したかを判定し、応答を受信した場合には、応答が、「good」応答であるかを判定する。「good」応答でなければ、リカバード応答のため、ステップS60に進む。
(S58)一方、ディスク60からの「good」応答であれば、DAからの比較結果が、「good」であるかを判定する。比較結果が、「good」であれば、ディスク60の当該領域の交代処理を行うアサイン命令と、交代した領域のライト及びベリファイコマンドを、DA13を介しディスク60に発行する。ディスク60Aは、その領域の交代処理を実行し、且つベリファイ動作して、交代処理が確実であるかを判断する。そして、キャッシュメモリ26にステージングしたディスク60のデータP1 dataをホストへ転送して、終了する。
(S60)一方、リカバードエラー応答又は、比較結果がerror応答であれば、当該領域の交代処理を行うアサイン命令と、交代した領域へのバッドデータ(無意味なデータ、例えば、ヌル)のライトコマンドを、DA13を介しディスク60に発行する。ディスク60は、その領域の交代処理を実行し、且つその交代領域にバッドデータをライトする。そして、ホストへエラー通知を転送して、終了する。
このように、非冗長な場合には、RAIDレベルに無関係で,I/O処理の延長上で、診断まで実施してからキャッシュへ応答を行う。即ち、初回のリカバードリードエラー時も、FUAイネーブル(媒体より再読み込み)の設定により、同様コマンド(分割しない)によるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ(被偽データ)を、ディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
2回目のリカバードエラー発生時は、ディスクの再リードデータとのデータ比較による診断を行い、一致した場合のみ、要求ディスクが正常と判断し、ホストへ転送する。尚、一回、リカバードエラーが発生しているため、再度、リカバードエラーが発生する可能性があるから、交代処理し、再度のリカバードエラーを防止する。しかも、ライト・ベリファイを行い、交代処理データのリード/ライトを保証する。
又、比較が一致しない場合には、非冗長系のため、切り離すことは、得策でない。このため、交代処理を行い、且つバッドデータを書き込み、そのデータをあきらめ、ホストへエラー通知する。
[他の実施の形態]
図12は、本発明の他の実施の形態の説明図であり、図9乃至図11の非冗長系のリカバードエラー処理を、リビルド動作に適用した例である。リビルド動作は、故障ディスクのデータを復元し、予備又は新ディスクに格納するものである。
図12は、RAID5のリビルド動作を示し、ディスク#0が故障した場合に、故障ディスク#0以外のディスク#1〜#3のデータをキャッシュメモリ10に、読み出し、それらのデータのXORをとり、復元データを作成し、予備又は新ディスクHSに書き込む。
Rebuildも、図9乃至図11の動作と同様であり、整合性エラーや3回目のリカバードエラーでは、同様に、交代処理を行い、バッドデータを書き込む又は、RAID故障のどちらかを実施する。
図13及び図14は、本発明の更に他の実施の形態の説明図であり、図5乃至図8の冗長系のリカバードエラー処理を、コピーバック動作(図13)、リダンダントコピー動作(図14)に適用した例である。コピーバック動作は、ディスクのデータを、コピーディスクに格納するものである。
図13は、RAID5のコピーバック動作を示し、ディスクHSのデータをキャッシュメモリ10に、読み出し、新ディスクNewに書き込む。図14は、RAID5のリダンダントコピー動作を示し、ディスク#4のデータをキャッシュメモリ10に読み出し、予備ディスクHSに書き込む。
このコピーバックやリダンダントコピーでは、図8の動作と同様であり、但し、図6のステップS24〜S28は、必要ない。そして、整合性エラーの場合には、ディスクを切り離し、図12のリビルド処理に移行する。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、上述した実施形態では、データを保持する記憶部として磁気ディスク装置を例にあげて説明したが、本発明はこれに限定されるものではなく、記憶部における記憶媒体は、光ディスク、光磁気ディスク等にも適用できる。また、各構成ユニット(ディスク装置、ホストコンピュータ、制御モジュール、キャッシュマネージャ、チャネルアダプタ、ディスクアダプタ、DMAエンジン)の数、もしくは、これら各ユニットが有するポートの数は、本発明において限定されるものではなく、必要に応じて適宜変更、組み合わせをして構成してもよい。
(付記1)少なくとも1つのディスク装置と、上位からの要求に応じて、前記ディスク装置のデータのリード/ライトを行う制御ユニットとを有し、前記制御ユニットは、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とするストレージシステム。
(付記2)前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記1のストレージシステム。
(付記3)前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、1の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うことを特徴とする付記1のストレージシステム。
(付記4)前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送することを特徴とする付記3のストレージシステム。
(付記5)前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行することを特徴とする付記1のストレージシステム。
(付記6)前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行することを特徴とする付記5のストレージシステム。
(付記7)前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行することを特徴とする付記5のストレージシステム。
(付記8)前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とする付記1のストレージシステム。
(付記9)前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記8のストレージシステム。
(付記10)前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送することを特徴とする付記9のストレージシステム。
(付記11)前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知することを特徴とする付記9のストレージシステム。
(付記12)上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御装置において、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とするストレージ制御装置。
(付記13)前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記12のストレージ制御装置。
(付記14)前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、1の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うことを特徴とする付記12のストレージ制御装置。
(付記15)前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送することを特徴とする付記14のストレージ制御装置。
(付記16)前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行することを特徴とする付記12のストレージ制御装置。
(付記17)前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行することを特徴とする付記16のストレージ制御装置。
(付記18)前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行することを特徴とする付記16のストレージ制御装置。
(付記19)前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とする付記12のストレージ制御装置。
(付記20)前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記19のストレージ制御装置。
(付記21)前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送することを特徴とする付記20のストレージ制御装置。
(付記22)前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知することを特徴とする付記20のストレージ制御装置。
(付記23)上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御方法において、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受けるステップと、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップとを有することを特徴とするストレージ制御方法。
(付記24)前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行うステップと、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行するステップを更に有することを特徴とする付記23のストレージ制御方法。
(付記25)リトライリードアクセスステップは、冗長系を構成する複数のディスク装置で構成された前記ディスク装置の1の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うステップからなることを特徴とする付記24のストレージ制御方法。
(付記26)正当性判定ステップは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送するステップからなることを特徴とする付記25のストレージ制御方法。
(付記27)前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受けるステップと、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行するステップを更に有することを特徴とする付記23のストレージ制御方法。
(付記28)前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行するステップを更に有することを特徴とする付記27のストレージ制御方法。
(付記29)前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行するステップを更に有することを特徴とする付記27のストレージ制御方法。
(付記30)前記リトライリードアクセスステップは、前記リカバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行うステップからなり、前記正当性判定ステップは、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップからなることを特徴とする付記23のストレージ制御方法。
(付記31)前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行うステップと、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行するステップとを更に有することを特徴とする付記30のストレージ制御方法。
(付記32)前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送するステップを更に有することを特徴とする付記31のストレージ制御方法。
(付記33)前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知するステップを更に有することを特徴とする付記31のストレージ制御方法。
初回のリカバードリードエラー時に、同様のコマンドによるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断するため、リカバリードエラー発生時の不確かなデータ(被偽データ)を、ディスクのリトライにより、回復し、ホストへ正確なリードデータを転送でき、ストレージシステムの信頼性向上に寄与する。
本発明の一実施の形態のストレージシステムの構成を示すブロック図である。 図1の実施の形態の制御モジュールの構成を示すブロック図である。 図1のディスクドライブの構成図である。 図1のリードコマンドのフォーマットの説明図である。 本発明の第1の実施の形態のリードアクセス処理フロー図(その1)である。 本発明の第1の実施の形態のリードアクセス処理フロー図(その2)である。 本発明の第1の実施の形態のリードアクセス動作の説明図である。 本発明の第1の実施の形態の他のストレージシステムの構成を示すブロック図である。 本発明の第2の実施の形態のリードアクセス処理フロー図(その1)である。 本発明の第2の実施の形態のリードアクセス処理フロー図(その2)である。 本発明の第2の実施の形態のリードアクセス動作の説明図である。 図11の実施の形態のリードアクセス処理を、リビルド処理に適用した説明図である。 図7の実施の形態のリードアクセス処理を、コピーバック処理に適用した説明図である。 図7の実施の形態のリードアクセス処理を、リダンダントコピー処理に適用した説明図である。
符号の説明
10、10−1,10−2,10−3,10−4 制御モジュール(キャッシュマネージャ)
11、11−1〜11−8 チャネルアダプタ
12−1〜12−4 ディスクエンクロージャ(ディスクドライブ群)
13、13−1〜13−8 デバイスアダプタ
14,14−1〜14−8 ルータ
26 キャッシュメモリ
20,22 CPU
15,40 DMA回路
60 ディスクドライブ

Claims (5)

  1. 少なくとも1つのディスク装置と、
    上位からの要求に応じて、前記ディスク装置のデータのリード/ライトを行う制御ユニットとを有し、
    前記制御ユニットは、
    前記ディスク装置のデータを格納するキャッシュメモリと、
    前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
    前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する
    ことを特徴とするストレージシステム。
  2. 前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する
    ことを特徴とする請求項1のストレージシステム。
  3. 上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御装置において、
    前記ディスク装置のデータを格納するキャッシュメモリと、
    前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
    前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する
    ことを特徴とするストレージ制御装置。
  4. 前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する
    ことを特徴とする請求項4のストレージ制御装置。
  5. 上位からの要求に応じて、少なくとも1つのディスク装置のデータのリード/ライトを行うストレージ制御方法において、
    前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受けるステップと、
    前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、
    前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップとを有する
    ことを特徴とするストレージ制御方法。
JP2005191641A 2005-06-30 2005-06-30 ストレージシステム、ストレージ制御装置及びストレージ制御方法 Expired - Fee Related JP4409483B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005191641A JP4409483B2 (ja) 2005-06-30 2005-06-30 ストレージシステム、ストレージ制御装置及びストレージ制御方法
US11/237,662 US7590884B2 (en) 2005-06-30 2005-09-29 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005191641A JP4409483B2 (ja) 2005-06-30 2005-06-30 ストレージシステム、ストレージ制御装置及びストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2007011687A true JP2007011687A (ja) 2007-01-18
JP4409483B2 JP4409483B2 (ja) 2010-02-03

Family

ID=37589192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005191641A Expired - Fee Related JP4409483B2 (ja) 2005-06-30 2005-06-30 ストレージシステム、ストレージ制御装置及びストレージ制御方法

Country Status (2)

Country Link
US (1) US7590884B2 (ja)
JP (1) JP4409483B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010287285A (ja) * 2009-06-11 2010-12-24 Nec Corp ディスク装置、ホストコントローラ、ディスクシステム、代替処理方法及びプログラム
JP2011008650A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd エラー検証方法,エラー検証システムおよびエラー検証プログラム
US7895375B2 (en) 2007-02-13 2011-02-22 Fujitsu Limited Data transfer apparatus and data transfer method
JP2012094215A (ja) * 2010-10-27 2012-05-17 Nec Corp ディスク装置及びその代替処理方法
JP2014041646A (ja) * 2010-04-08 2014-03-06 Hitachi Ltd 外部ストレージシステムに結合されたストレージシステムのエラーコード管理方法及び装置
JP2019053486A (ja) * 2017-09-14 2019-04-04 Necプラットフォームズ株式会社 故障予兆検出装置、故障予兆検出方法、及び、故障予兆検出プログラム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US7721143B2 (en) * 2005-12-06 2010-05-18 Lsi Corporation Method for reducing rebuild time on a RAID device
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US20070294588A1 (en) * 2006-05-09 2007-12-20 Coulson Richard L Performing a diagnostic on a block of memory associated with a correctable read error
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20070282967A1 (en) * 2006-06-05 2007-12-06 Fineberg Samuel A Method and system of a persistent memory
CN101459679A (zh) * 2007-12-12 2009-06-17 华为技术有限公司 网络存储设备及数据读写控制方法
US8700852B2 (en) * 2010-02-03 2014-04-15 International Business Machines Corporation Processing read and write requests in a storage controller
US8843803B2 (en) 2011-04-01 2014-09-23 Cleversafe, Inc. Utilizing local memory and dispersed storage memory to access encoded data slices
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
US9317382B2 (en) 2013-05-21 2016-04-19 International Business Machines Corporation Storage device with error recovery indication
KR20150001146A (ko) * 2013-06-26 2015-01-06 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US9239797B2 (en) * 2013-08-15 2016-01-19 Globalfoundries Inc. Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache
US10528272B2 (en) * 2015-02-20 2020-01-07 International Business Machines Corporation RAID array systems and operations using mapping information
US20170329684A1 (en) * 2016-05-13 2017-11-16 Synology Incorporated Method and apparatus for performing data recovery in redundant storage system
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
EP3776207B1 (en) 2018-03-26 2023-08-09 Rambus Inc. Command/address channel error detection

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420807A (en) * 1981-08-31 1983-12-13 International Business Machines Corporation Selectively holding data in a buffer for defective backing store tracks
US4667288A (en) * 1983-06-30 1987-05-19 Honeywell Information Systems Inc. Enable/disable control checking apparatus
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
JP2770611B2 (ja) * 1991-07-17 1998-07-02 日本電気株式会社 データエラー再試行回路
US5355471A (en) * 1992-08-14 1994-10-11 Pyramid Technology Corporation Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort
US5615335A (en) * 1994-11-10 1997-03-25 Emc Corporation Storage system self-test apparatus and method
US5592616A (en) * 1995-06-07 1997-01-07 Dell Usa, Lp Method for performing efficient memory testing on large memory arrays using test code executed from cache memory
US5835704A (en) * 1996-11-06 1998-11-10 Intel Corporation Method of testing system memory
US5912906A (en) * 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US5975738A (en) * 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
JP4176908B2 (ja) 1999-04-05 2008-11-05 東芝ソリューション株式会社 ディスクアレイ装置
JP2002042303A (ja) 2000-07-19 2002-02-08 Hitachi Ltd 磁気ディスク装置及び磁気ディスク装置のエラー処理方法
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
JP2003022626A (ja) 2001-07-06 2003-01-24 Toshiba Corp ディスク装置及びディスク装置の制御方法
US7051156B2 (en) * 2002-11-06 2006-05-23 Synology Inc. Raid-5 disk having cache memory
EP1597674B1 (en) * 2003-02-10 2008-04-09 Netezza Corporation Rapid regeneration of failed disk sector in a distributed database system
JP4413508B2 (ja) 2003-03-04 2010-02-10 株式会社日本デジタル研究所 ディスクアレイシステム、リトライ方法、及びプログラム
US7321986B2 (en) * 2004-03-31 2008-01-22 International Business Machines Corporation Configuring cache memory from a storage controller

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895375B2 (en) 2007-02-13 2011-02-22 Fujitsu Limited Data transfer apparatus and data transfer method
JP2010287285A (ja) * 2009-06-11 2010-12-24 Nec Corp ディスク装置、ホストコントローラ、ディスクシステム、代替処理方法及びプログラム
JP2011008650A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd エラー検証方法,エラー検証システムおよびエラー検証プログラム
JP2014041646A (ja) * 2010-04-08 2014-03-06 Hitachi Ltd 外部ストレージシステムに結合されたストレージシステムのエラーコード管理方法及び装置
JP2012094215A (ja) * 2010-10-27 2012-05-17 Nec Corp ディスク装置及びその代替処理方法
JP2019053486A (ja) * 2017-09-14 2019-04-04 Necプラットフォームズ株式会社 故障予兆検出装置、故障予兆検出方法、及び、故障予兆検出プログラム

Also Published As

Publication number Publication date
US20070002482A1 (en) 2007-01-04
US7590884B2 (en) 2009-09-15
JP4409483B2 (ja) 2010-02-03

Similar Documents

Publication Publication Date Title
JP4409483B2 (ja) ストレージシステム、ストレージ制御装置及びストレージ制御方法
US7877626B2 (en) Method and system for disk storage devices rebuild in a data storage system
US7421535B2 (en) Method for demoting tracks from cache
US7562264B2 (en) Fault tolerant soft error detection for storage subsystems
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US6760814B2 (en) Methods and apparatus for loading CRC values into a CRC cache in a storage controller
US7600152B2 (en) Configuring cache memory from a storage controller
US6981171B2 (en) Data storage array employing block verification information to invoke initialization procedures
US6854071B2 (en) Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
US6243827B1 (en) Multiple-channel failure detection in raid systems
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
US7475279B2 (en) Data storage system, data storage control device, and write error diagnosis method for disks thereof
US20060101216A1 (en) Disk array apparatus, method of data recovery, and computer product
JP4322870B2 (ja) Raid装置、raid制御方法、及びraid制御プログラム
JP4114877B2 (ja) 不正データを検出するための装置、方法、及びプログラム
US20070036055A1 (en) Device, method and program for recovering from media error in disk array device
KR100708567B1 (ko) Dma 회로 및 이것을 이용한 디스크 어레이 장치
US7730370B2 (en) Apparatus and method for disk read checking
US20040216012A1 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
JP2003036146A (ja) ディスクアレイ制御方式
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JP3798773B2 (ja) ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法
JP2004158029A (ja) ファイル制御装置
JP2001005615A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090612

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091111

R150 Certificate of patent or registration of utility model

Ref document number: 4409483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees