説明

記憶装置,記憶システム及び制御方法

【課題】ライト・ベリファイ機能を伴うデータのライト時においてもライト性能が低下することがなく、ライト速度を向上させるとともに信頼性を向上させる。
【解決手段】上位装置から受信するデータに関する命令が読出命令であるか否かを判断する命令解析部22と、この命令が読出命令であると判断された場合において、この読出命令が強制アクセス命令であるか否かを判定する強制アクセス判定部23と、命令が読出命令であり、且つ、強制アクセス命令であると判定された場合に、先読み機能を抑止する先読み抑止部24とをそなえる。

【発明の詳細な説明】
【技術分野】
【0001】
本件は、RAID(Redundant Arrays of Inexpensive Disks)装置等の記憶システムにおけるデータの書込処理時の制御技術に関する。
【背景技術】
【0002】
図5は従来のRAIDシステムのハードウェア構成を模式的に示す図である。
RAID(Redundant Arrays of Inexpensive Disks)システムは、ディスク装置の故障等によるデータ損失の防止や、処理性能の向上のために、複数のディスク装置(例えば、ハードディスク装置)を組み合わせて構成されたディスクアレイシステムである。
図5に示す例においては、情報処理装置501に接続されたRAIDシステム502が示されており、このRAIDシステム502は、RAID装置503およびディスク装置群504をそなえて構成されている。
【0003】
ディスク装置群504は複数のHDD(Hard disk drive)505をそなえて構成されている。HDD505は、磁性体を塗布した円盤状の記録媒体(図示省略)に磁気ヘッド(図示省略)を用いて情報を記録、または読み出す記憶装置である。
RAID装置503は、これらの複数のHDD505を組み合わせて仮想的な1台のハードディスクとして運用することにより、データの信頼性や利便性を向上させるようになっている。
【0004】
また、このような従来のRAIDシステム502においては、HDD505にデータの書き込み(ライト)を実施する際に、ライトしたデータをHDD505から読み出して(リード)、この読み出したデータと元のデータとを比較して、HDD505に正常にデータの書き込みが行なわれたことを検証・確認するライト・ベリファイ(コンペアリード)機能を備えているものがある(例えば、特許文献1参照)。
【0005】
このようなライト・ベリファイ機能により、RAIDシステム502においては、データのライト時にHDD505内に正常にデータの書き込みが行なわれたことを確認することにより、HDD505に書き込むデータの信頼性を向上させることができる。
従って、RAIDシステム502においては、情報処理装置501からのデータのライト処理時であっても、上述の如きライト・ベリファイ機能が有効な状態においては、HDD505においてライト処理とリード処理とが交互に行なわれるのである。
【0006】
また、一般に、HDD505にはそれぞれキャッシュメモリがそなえられており、情報処理装置501からの要求に基づくデータの読み出し時に、読み出し対象のデータがこのキャッシュメモリに残っている場合には、HDD505は、記録媒体にアクセスしてデータを読み出す代わりに、このキャッシュメモリに格納されているデータを、情報処理装置501に対して応答データとして送出するキャッシュ機能もそなえている。このキャッシュ機能により、HDD505において、記憶媒体へのアクセス回数を低減し、データの読み出し速度を向上させることができるのである(例えば、特許文献2参照)。
【0007】
また、HDD505においては、情報処理装置501からリード要求が行なわれたデータのロジカル・ブロック・アドレス(LBA)に後続するLBAのデータを予め磁気ディスクから読み出してHDDのキャッシュに格納しておく、先読み(read ahead)機能が知られている(例えば、特許文献3参照)。
一般的に、データはある特定のデータの固まりで処理されるので、記録媒体における特定位置のデータを読み込んだ後には、そのデータに後続するデータも続けて読まれることが多い。そこで、先読み機能においては、これらのデータを効率良く処理する為に、リード指示されたデータに加えて、そのデータの格納場所に続く所定サイズの領域(先読み領域)のデータも含めてまとめてリードしてキャッシュに保管しておく。これにより(先読み)、情報処理装置501から、先読み領域に格納されているデータに対する読み出し要求が行なわれた場合に、予めキャッシュに格納したキャッシュデータからデータを構築することにより、データの読み出し速度を向上させることができるのである。
【特許文献1】特開2007−52509号公報
【特許文献2】特開2007−11687号公報
【特許文献3】特開2001−101075号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、このような従来のRAIDシステム505において、キャッシュ機能が有効になっている状態では、ライト・ベリファイ機能により、HDD505に対してライト指示を行なった直後に同一場所をリードする場合に、記録媒体からのデータの読み込みが行なわれない。HDD505は、キャッシュ機能により、そのキャッシュメモリ内に残っているデータをリードデータとしてRAID装置503に報告することにより、実際に記録媒体からのデータの読み込みが行なわれないのである。
【0009】
すなわち、HDD505に書き込んだデータを、前述したライト・ベリファイ機能により検証しようとしても、HDD505のキャッシュ機能によって、キャッシュメモリに格納されているデータが応答データとしてRAID装置503に送出され、HDD505に書き込んだデータを正しく検証することができないという課題がある。
これにより、例えば、HDD505の磁気ヘッドや記録媒体の異常により記録媒体にデータがライトされていないといった不具合を検出することができず、ライト・ベリファイ機能においてデータの信頼性を向上させることができないのである。
【0010】
なお、HDD505においては、上述したキャッシュ機能を無効(OFF)に設定することにより、必ず記録媒体上のデータを読み込むようにすることも考えられるが、このようにキャッシュ機能を無効にした場合には、情報処理装置501からのリード要求に基づく通常のリード処理にもキャッシュ機能を用いることができない。これにより、HDD505のリード処理の性能が大幅に低下し、RAIDシステム502におけるリード性能の低下を引き起こしてしまうおそれがある。
【0011】
また、従来のRAIDシステム502において、上述の如く、ライト・ベリファイ機能を有効としてHDD505にデータの書込を行なう場合には、データの書き込みを行なった後に、そのデータが記憶媒体に正しく記録されたかを検証するためのリードが行なわれる。
しかしながら、このリードは、情報処理装置501からのライトデータがHDD505に正常に書き込まれたことを確認するためのリードであるので、実際には、HDD505においては、このリードされるデータに続く場所に格納されたデータがリードされずに、情報処理装置501から送信される次のデータのライトが行なわれる。
【0012】
従って、従来のRAIDシステム502においては、ライト・ベリファイ機能を有効にしたデータのライト時には、先読み機能によりリードしてキャッシュに保管したデータが用いられることがない。又、この先読みしたデータは無意味なキャッシュデータであるので、HDD505は、この先読みしたデータを破棄する処理を行なう必要もある。
図6は従来のRAIDシステムにおけるHDD505に書き込まれるライトデータ600の構成例を模式的に示す図である。なお、この図6に示す例においては、ライトデータ600は0〜19の20個のブロックをそなえて構成されている。
【0013】
このようなライトデータ600をHDD505に書き込む場合には、情報処理装置501は、RAIDシステム502に対して、このライトデータ600を先行する0〜9の部分(先行ライト部分)と後続する10〜19の部分(引き続くライト部分)との2つに分けてライト指示を行なう。
すなわち、情報処理装置501は、先行ライト部分0〜9のライト指示をRAID装置503に送信した後に、引き続くライト部分10〜19のライト指示をRAID装置503に送信する。
【0014】
一方、RAID装置503においては、先行ライト部分0〜9のライト指示をHDD505に与え、更に、RAID装置503は、ライト・ベリファイ機能による先行ライト部分0〜9のリード指示をHDD505に与える。そして、RAID装置503は、HDD505にライトしたデータと、HDD505からリードしたデータとを比較し正常性の確認を行なう。
【0015】
その後、RAID装置503は、引き続くライト部分10〜19のライト指示をHDD505に与え、更に、ライト・ベリファイ機能による引き続くライト部分10〜19のリード指示をHDD505に与える。そして、RAID装置503は、HDD505にライトしたデータと、HDD505からリードしたデータとを比較し正常性を確認する。
HDD505においては、受信した先行ライト部分0〜9を記憶媒体に記録(ライト)する。そして、HDD505は、先読み機能により、記憶媒体に記録した先行ライト部分0〜9と、この先行ライト部分0〜9の格納領域に続く所定サイズの先読み領域のデータとを一括してリード(一括リード)する。
【0016】
ここで、HDD505は、RAID装置503からの書き込み指示に従い、引き続くライト部分10〜19を記録媒体における先行ライト部分0〜9の格納位置に後続する位置に書き込みを行なう。しかしながら、ここで、先読み機能による先読み領域のリードが完了するまで待つ必要があり(リード終了待ち状態)、この間、次のライト処理を行なうことができない。
【0017】
また、先読み領域のリードが完了しても、その先読み領域のリードの完了時点においては、記録媒体における引き続くライト部分10〜19を書き込む位置、すなわち、先行ライト部分0〜9の書込位置に後続する位置が磁気ヘッドとの相対位置を通過してしまっている。これにより、記録媒体が1回転して、引き続くライト部分10〜19の書き込み位置が磁気ヘッドとの相対位置に到達するまで待つ必要があり(回転待ち状態)、この間も、次のライト処理を行なうことができない。
【0018】
このように、従来のRAIDシステム502においては、HDD505において、ライト・ベリファイ機能を有効にしたデータのライト時には、先読み機能によりリードが行なわれる。これにより、このリードが完了するまでのリード終了待ち時間や回転待ち時間が発生し、これによってライトの処理速度が低下し、ライト性能の低下も引き起こしてしまう。
【0019】
本件の目的の一つは、このような課題に鑑み創案されたもので、ライト・ベリファイ機能を伴うデータのライト時においてもライト性能が低下することがなく、ライト速度を向上させるとともに信頼性を向上できるようにすることである。
【課題を解決するための手段】
【0020】
このため、この記憶装置は、録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえるものである。
【0021】
また、この記憶システムは、データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、該制御部が、該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令(FUA;Force Unit Access)であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、該記憶装置が、該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえるものである。
【0022】
さらに、この制御方法は、データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえるものである。
【発明の効果】
【0023】
開示の記憶装置,記憶システム及び制御方法によれば、以下の少なくともいずれか1つの効果ないし利点が得られる。
(1)強制アクセス命令にかかる読出命令については先読みを行なわないので、書き込みの処理速度が低下することがなく、書き込み性能を向上させることができる。
【0024】
(2)強制アクセス命令にかかる読出命令以外の読出命令については、先読み機能を抑止しないので、読み出し性能を高く維持することができる。
(3)無意味な先読みデータを破棄する処理を行なう必要がなく効率的である。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照して本記憶装置,記憶システムおよび制御方法にかかる実施の形態を説明する。
(A)第1実施形態の説明
図1は第1実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【0026】
本第1実施形態のストレージシステム1は、図1に示すように、ホスト2に対してRAID(Redundant Arrays of Inexpensive Disks)装置10を通信可能に接続することにより構成されている。
ホスト2は、RAID装置10により提供される論理デバイスに対してデータの書き込みや読み出しを要求(ライト要求,リード要求)する情報処理装置である。なお、この図1においては、ストレージシステム1に1つのホスト2がそなえられている例を示しているが、これに限定されるものではなく、2以上のホスト2がそなえられ、これらの2以上のホスト2がそれぞれRAID装置10に接続されてもよい。
【0027】
RAID装置(ストレージ装置)10は、ホスト2にチャネルインタフェース11を介して接続され、ホスト2に対して論理デバイスを提供するものである。このRAID装置10は、図1に示すように、チャネルインタフェース11,RAIDキャッシュ制御部12,HDD制御部(制御部,上位装置)13,及びHDD(Hard disk drive:記憶装置)20a,20b,20cをそなえて構成されている。
【0028】
HDD20a,20b,20cは、磁性体を塗布した円盤状の記録媒体30(詳細は後述)に、磁気ヘッド(図示省略)を用いてデータの書き込みや読み出しを行なう記憶装置であり、HDD制御部13のHDDインタフェース16を介してそれぞれ通信可能に接続されている。
なお、これらのHDD20a,20b,20cは、互いにほぼ同様の構成をそなえており、以下、HDDを示す符号としては、複数のHDDのうち1つを特定する必要があるときには符号20a,20b,20cを用いるが、任意のHDDを指すときには符号20を用いる。又、図1に示す例においては、便宜上、HDD20aについてのみ、その詳細な構成を図示している。更に、HDD20(20a,20b,20c)の構成についての詳細な説明は後述する。
【0029】
また、本実施形態においては、HDD20は、先読み(read ahead)機能をそなえている。先読み機能は、ホスト2からデータのリード要求が行なわれた場合に、記録媒体30における、リードを要求されたデータのロジカル・ブロック・アドレス(LBA;格納位置)に後続するLBAの所定サイズのデータを、予め記録媒体30から読み出してキャッシュ領域25(後述)に格納するものである。なお、この先読み機能は既知の技術であり、その詳細な説明は省略する。
【0030】
チャネルインタフェース11は、RAID装置10とホスト2とを通信可能に接続するためのインタフェースであり、FC(Fibre Channel)やSCSI(Small Computer System Interface)等の規格に従って構成されている。なお、このチャネルインタフェース11の規格としては、これらのFC,SCSI等に限定されるものではなく、種々変形して実施することができる。
【0031】
RAIDキャッシュ制御部12は、ホスト2から送信されたデータ(ライトデータ)やHDD20から読み出されて送信されたデータ(リードデータ)を一時的に保持するキャッシュメモリ(図示省略)をそなえている。そして、RAIDキャッシュ制御部12は、このキャッシュメモリへのデータの格納および取り出しを制御するようになっており、例えば、ホスト2から送信される書込命令や読出命令に応じて、これらの制御を行なうようになっている。
【0032】
HDDインタフェース16は、HDD制御部13とHDD20とを通信可能に接続するためのインタフェースであり、FCやシリアルATA(SATA:SATA:Serial Advanced Technology Attachment),SAS(Serial Attached SCSI)等の規格に基づいて構成されている。なお、このHDDインタフェース16の規格としては、これらのFC,ATA,SATA等に限定されるものではなく、種々変形して実施することができる。
【0033】
HDD制御部(制御部,上位装置)13は、HDD20に対してデータの書き込みや読み出しの命令(ライト命令,リード命令)を送信することにより、HDD20の制御を行なうものであり、図1に示すように、ライト制御部14,リード制御部15およびHDDインタフェース16をそなえて構成されている。
リード制御部15は、ホスト2からのリード要求に基づいて、HDD20からのデータの読み出し(リード)を制御するものであり、HDDホストリード制御部151としての機能をそなえている。
【0034】
このHDDホストリード制御部151は、ホスト2から受信したデータのリード要求に基づいて、そのリード対象のデータが格納されたHDD20に対して、HDDインタフェース16を介してデータのリード命令(ホストリード命令)を送信するようになっている。又、HDDホストリード制御部151は、このリード命令に応じてHDD20から読み出され、HDD20から送信(返信)されたデータ(リードデータ)を、HDDインタフェース16を介して受信し、更に、この受信したリードデータをRAIDキャッシュ制御部12及びチャネルインタフェース11を介してホスト2に送信するようになっている。
【0035】
なお、HDDホストリード制御部151は、ホスト2によるデータのリード要求に基づいてHDD20に対してリード命令(ホストリード命令)を送信する場合に、そのリード命令(リードコマンド)におけるFUA(Force Unit Access)フラグとして“0(FUA=0)”を設定するようになっている。
ここで、FUAフラグとは、HDD20のリード命令のパラメータのひとつであって、そのリード命令の実行時に、媒体アクセスを強制するかを指定するフラグである。
【0036】
具体的には、HDD20において、HDD制御部13から送信されたリード命令のFUAフラグが“0(FUA=0)”であるときは、そのリード命令によって指定されるデータが、キャッシュ領域25(詳細は後述)に格納されている場合には、HDD20は、記録媒体30(詳細は後述)にアクセスすることなく、キャッシュ領域25からその格納されているデータを取得し、ホスト2へ送信することを示している。
【0037】
一方、HDD制御部13から送信されたリード命令のFUAフラグが“1(FUA=1)”であるときは、そのリード命令は必ず記録媒体30にアクセスしてデータの読み出しを行なうことを示している。HDD20は、リード要求されたデータがキャッシュにヒットしていても、このキャッシュ領域25に格納されたデータを使用する代わりに、記録媒体30からリード対象のデータを読み出し(強制アクセス)、ホスト2へ送信するのである。すなわち、FUAフラグが“1(FUA=1)”のリード命令は、記録媒体30に対する強制的なアクセスを伴う強制アクセス命令である。
【0038】
また、HDDホストリード制御部151は、HDD20から読み出されたデータを、RAIDキャッシュ制御部12及びチャネルインタフェース11を介してホスト2に送信するようになっている。
ライト制御部14は、HDD20に対するデータの書き込み(ライト)を制御するものであり、ホスト2から送信されるライト要求に従って、データをHDD20に書込ませるための制御を行なうようになっている。
【0039】
また、このライト制御部14は、HDD20に対して単にデータをライトさせる他、HDD20にデータのライトを実施するに際して、ライトしたデータを読み出(リード)して、この読み出したデータと元のデータ(ライトデータ)とを比較することにより、HDD20内に正常にデータの書き込みが行なわれたことを検証・確認するライト・ベリファイ(コンペアリード)も行なうようになっている。
【0040】
なお、HDD20にデータのライトを実施するに際してライト・ベリファイを行なうか否かは、例えば、図示しない入力装置を介してオペレータが任意に設定することができるようになっている。
オペレータは、HDD20の信頼性等に合わせて、ライト・ベリファイを行なうか否かを設定したり、又、ライト・ベリファイを行なう頻度等を任意に設定することができる。例えば、SATA系のHDD20については、全てのライト処理においてライト・ベリファイを行ない、比較的信頼性が高いFC系やSCSI系のHDD20については、所定回数(例えば16回)に1回の頻度でライト・ベリファイを行なう。このように、HDD20の種類や性能,信頼性,データの重要度等に合わせて、オペレータが任意に設定することができるのである。
【0041】
すなわち、本ストレージシステム1においては、ライト制御部14によるライト・ベリファイにより、ライトの正常性確認を行なうことができるようになっている。
また、オペレータによって入力された、ライト・ベリファイを行なうか否かの設定情報やライト・ベリファイの頻度等の設定情報は、HDD20や図示しないメモリ等の所定の記憶領域に保存されるようになっている。
【0042】
ライト制御部14は、図1に示すように、HDDライト制御部141,ライトデータコンペア部142およびHDDコンペアリード制御部143をそなえて構成されている。
HDDライト制御部141は、HDD20に対するデータのライトを制御するものであり、HDD20に対して、ホスト2からライト要求とともに送信されたライトデータとライト命令(ライトコマンド,書込命令)とをHDD20に対して送信することにより、HDD20にデータのライトを行なわせるようになっている。
【0043】
また、HDDライト制御部(読出命令送信部)141は、上述したライト・ベリファイを行なう際には、ライトデータ及びライト命令をHDD20に対して送信してHDD20の記録媒体30にデータのライトを行なわせるようになっている。その後、HDDライト制御部141は、HDD20に対して、その直前にライトを行なった領域を指定して、その領域からデータをリードさせるリード命令(読出命令)を送信するようになっている。
【0044】
なお、以下、ライト・ベリファイを行なうためにHDDライト制御部141からHDD20に対して送信するリード命令のことを、ホスト2からのリード要求に基づいてリード制御部15から送信されるリード命令(ホストリード命令)と区別するために、コンペアリード命令という場合がある。
また、HDDライト制御部(強制アクセス命令情報設定部)141は、上述の如きライト・ベリファイにかかるリード命令(コンペアリード命令)に対して、そのコンペアリード命令がHDD20の記録媒体30に対する強制的なアクセスを伴う強制アクセス(FUA;Force Unit Access)命令であることを示すフラグ(強制アクセス命令情報:FUA=1)を設定するようになっている。なお、以下、リード命令(コンペアリード命令)がFUA命令であることを示すフラグ(FUA=1)のことを、単にFUAフラグという場合がある。
【0045】
すなわち、HDDライト制御部141は、ホスト2からのライト命令について、ライトの正常性確認を行なう場合に、そのリード命令(コンペアリード命令)に対してFUAフラグを有効(FUA=1)に設定するようになっている。
つまり、HDD制御部13においては、ホスト2よりのリード命令によりHDD20からリードさせる場合にはFUAフラグを無効とし、ホスト2からのライト命令により、ライトの正常性確認を行なう場合にのみFUAフラグを有効とするようになっている。
【0046】
HDDコンペアリード制御部143は、ライト制御部141によってHDD20に対して送信されたコンペアリード命令に対してHDD20から読み出されたデータ(ベリファイ・リードデータ)を取得(リード)するものである。又、このHDDコンペアリード制御部143によって取得されたベリファイ・リードデータは、ライトデータコンペア部142に渡されるようになっている。
【0047】
なお、HDDコンペアリード制御部143が、HDDライト制御部141によって出力されたコンペアリード命令に対応するデータ(ベリファイ・リードデータ)を取得する手法は、既知の種々の手法を用いて実現することができるものであり、その具体的な説明は省略する。
ライトデータコンペア部(データ比較部)142は、HDD20にライトしたデータと、HDD20の記録媒体30から読み出したデータとを比較するものである。このライトデータコンペア部142は、RAIDキャッシュ制御部12のキャッシュに格納されているライトデータと、HDDコンペアリード143によって取得された、そのライトデータに対応するベリファイ・リードデータとが一致するか否かを確認するようになっている。
【0048】
例えば、ライト制御部14において、ライト命令に識別情報を設定するとともに、この識別情報を、対応するライトデータや、そのライト命令に対応するコンペアリード命令、更には、このコンペアリード命令に対応するベリファイ・リードデータにそれぞれ付加することにより、相互に対応付けることができる。すなわち、ライト制御部14は、このように、ライト命令に対して、ライトデータやコンペアリード命令,ベリファイ・リードデータを対応付けて管理する機能もそなえているのである。
【0049】
そして、ライトデータコンペア部142は、上述したライトデータと対応するベリファイ・リードデータとの比較結果(例えば、一致/不一致)を、ホスト2等に送信するようになっている。
HDD20は、HDD制御部13のHDDインタフェース16と、図示しないインタフェースを介して通信可能に接続されている。このHDD20は、図1に示すように、HDDキャッシュ制御部21,HDDライト回路28,HDDリード回路29及び記録媒体(メディア)30をそなえて構成されている。
【0050】
記録媒体30は、データを読出可能に保持(記録)するものであって、本実施形態においては、表面に磁性体を塗布もしくは蒸着した1以上の円盤(プラッタ)により構成され、その表面にデータを記録可能に構成されている。
また、本実施形態においては、記録媒体30における所定領域(先読みフラグ格納部)には、当該HDD20において前述した先読み機能を有効にするか無効にするかの設定値がフラグ(先読みフラグ)として格納されるようになっている。
【0051】
HDDライト回路28は記録媒体30における所定位置にデータをライトするものであり、HDDリード回路29は記録媒体30に記録されているデータをリードするものである。そして、これらのHDDライト回路28及びHDDリード回路29は、例えば、図示しない磁気ヘッド(ライトヘッド,リードヘッド)をそなえて構成されている。
この磁気ヘッドは、アーム(図示省略)の先端部分に配置され、記録媒体30に相対した状態で、記録媒体30上の磁性体を磁化させることによりデータのライトを行なったり、記録媒体30上の磁化の状態を読み取ることにより、データのリードを行なうものである。又、この磁気ヘッドは、同じく図示しないアクチュエータにより記録媒体30に対する位置決めが行なわれるようになっている。
【0052】
HDD20においては、記録媒体30をモータ(図示省略)により回転させるとともに、アクチュエータにより磁気ヘッドを移動させる。そして、磁気ヘッドにより記録媒体30上における所定位置の磁性体を磁化させることによりデータのライトを行ない、又、磁気ヘッドにより記録媒体30上における所定位置の磁化の状態を読み取ることにより、データのリードを行なうようになっている。
【0053】
なお、これらの記録媒体30,HDDライト回路28及びHDDリード回路29としての機能は、既知の技術を用いて実現することができるものであり、その詳細な説明は省略する。
HDDキャッシュ制御部12は、記録媒体30へのデータのライトやリードを制御するものであって、図1に示すように、MPU(Micro Processing Unit)201およびRAM(Random Access Memory)202をそなえて構成されている。
【0054】
RAM202は種々のデータやプログラムを一時的に記録する記録装置であって、本第1実施形態においては、図1に示すように、キャッシュ領域25及び先読み長記憶部26として機能するようになっている。
キャッシュ領域25は、記録媒体30にライトするためにHDD制御部13から受信したライトデータや、記録媒体30からリードされたリードデータおよびベリファイ・リードデータを一時的に格納(キャッシュ)するものである。すなわち、RAM202はキャッシュメモリとして機能するようになっている。
【0055】
なお、このキャッシュ領域25のサイズ(容量)は予め設定されており、又、オペレータ等が、図示しない入力装置等を介してこのキャッシュ領域25のサイズを任意に設定してもよい。
先読み長記憶部26は、前述した先読み機能について、先読みするデータのサイズ(LBAのサイズ)を示す情報を記録する領域であり、後述するライト・リード制御部24が、先読み機能を実施する際に、この先読み長記憶部26に記憶されたサイズ(以下、先読み長という場合がある)を参照して、この先読み長に相当するサイズのデータを先読みするようになっている。
【0056】
また、この先読み長記憶部26に記憶される先読み長としては、予め規定されたデータサイズが設定されている。又、この先読み長記憶部26に記憶される先読み長は、後述するライト・リード制御部24が変更することができるようになっている。更に、この先読み長記憶部26に記録される先読み長は、オペレータ等が図示しない入力装置を介して任意に設定することもできるようになっている。
【0057】
なお、このRAM202には、MPU201が演算処理等を行なう際に、データやプログラムが一時的に展開(格納)される場合もある。
MPU201は、プログラムを実行することにより種々の演算や制御を行なう制御装置であって、例えば、RAM202や図示しないROM(Read Only Memory)に格納されたプログラムを実行することにより、種々の機能を実現するようになっている。
【0058】
本実施形態においては、MPU201は、図1に示すように、コマンド解析部(命令解析部)22,FUA判定部(強制アクセス判定部)23及びライト・リード制御部(比較部,強制アクセス判定抑止部,先読み抑止部)24として機能するようになっている。
コマンド解析部22は、HDD制御部13から受信するデータに関する命令を解析し、その命令がリード命令(読出命令)であるか否かを判断するものである。このコマンド解析部22は、HDD制御部12からリード命令を受信したことを検出すると、その旨をライト・リード制御部24に通知するようになっている。
【0059】
FUA判定部23は、コマンド解析部22により、受信した命令がリード命令であると判断された場合において、そのリード命令が、記録媒体30に対する強制的なアクセスを伴うFUA命令(強制アクセス命令)であるか否かを判定するものである。
具体的には、FUA判定部23は、受信したリード命令におけるFUAフラグの設定値が“0(FUA=0)”であるか“1(FUA=1)”であるかを確認することにより、FUA命令であるか否かの判定を行なうようになっている。又、FUA判定部23は、その判定結果をライト・リード制御部24に通知するようになっている。
【0060】
ライト・リード制御部24は、HDDライト回路28及びHDDリード回路29を制御して、記録媒体30に対するデータのライトやリードを制御するものである。又、ライト・リード制御部24は、キャッシュ領域25に格納されたライトデータを、HDDライト回路28により記録媒体30の所定領域にライトさせたり、記録媒体30の所定領域に記録されたデータをHDDリード回路29によってリードさせて、キャッシュ領域25に格納させたりするようになっている。
【0061】
また、ライト・リード制御部(先読み処理部)24は、前述した先読み機能を実現するようになっている。前述した先読みフラグ格納部において、先読み機能を有効にする旨のフラグ(例えば“1”)が設定されている場合に、ライト・リード制御部24は、HDD制御部13からデータのリード命令を受信すると、そのリード命令を処理する。
そして、ライト・リード制御部24は、記録媒体30からリード対象データのデータをリードしてキャッシュ領域25に格納する。又、ライト・リード制御部24は、そのリード対象データの格納位置(LBA)に後続するLBAから先読み長分のデータを、記録媒体30からリード(プリリード)する。又、ライト・リード制御部24は、このプリリードした先読み長分のデータをキャッシュ領域25に格納するのである。
【0062】
さらに、ライト・リード制御部(先読み抑止部)24は、受信した命令がコマンド解析部22によりリード命令であると判断され、且つ、FUA判定部23によりそのリード命令がFUA命令であると判定された場合に、前述した先読み機能を抑止するようになっている。
具体的には、ライト・リード制御部24は、例えば、先読み長記憶部26に記憶されている先読み長を“0”にすることにより実質的に先読みが行なわれないようにしたり、先読み自体を行なわないことにより、先読み機能を抑止するようになっている。
【0063】
上述の如く構成された本第1実施形態としてのストレージシステムにおけるHDDキャッシュ制御部21の一例としての処理を、図2に示すフローチャート(ステップA10〜A90)に従って説明する。
HDD20がHDDインタフェース16から命令を受信すると、HDDキャッシュ制御部21において、コマンド解析部22が、その受信した命令の解析を行なう(ステップA10;命令解析ステップ)。この解析の結果、受信した命令がライトコマンド(ライト命令)であった場合には(ステップA10の“ライトコマンド”ルート参照)、ライト・リード制御部24が、HDD制御部13によりライトを指示されたデータ(ライトデータ)をキャッシュ領域25に格納する(ステップA20)。その後、ライト・リード制御部24は、このライトデータをHDDライト回路28を介して記録媒体30にライトさせ(ステップA30)、処理を終了する。
【0064】
一方、コマンド解析部22による解析の結果、受信した命令がリードコマンド(リード命令)であった場合には(ステップA10の“リードコマンド”ルート参照)、FUA判定部23が、そのリード命令におけるFUAフラグの設定値を確認し、このFUAフラグが“1(FUA=1)”であるか否かを確認する(ステップA40;強制アクセス判定ステップ)。
【0065】
このFUA判定部23による判定の結果、FUAフラグが“0(FUA=0)”であった場合には(ステップA40の“FUA=0”ルート参照)、ライト・リード制御部24は、そのリード対象のデータと同一のリードデータがキャッシュ領域25に格納されているか否かを確認する(ステップA50)。
リード対象のデータと同一のリードデータがキャッシュ領域25に格納されていない場合には(ステップA50の“無し”ルート参照)、ライト・リード制御部24は、記録媒体30におけるHDD制御部13によってリードを指示された領域(リード領域)をHDDリード回路29によりリードして、このリードしたリードデータをキャッシュ領域25に格納する(ステップA60)。
【0066】
また、FUA判定部23による判定の結果、UFAフラグが“1(FUA=1)”であった場合にも(ステップA40の“FUA=1”ルート参照)、このステップA60に移行する。
そして、FUA判定部23は、再度、そのリード命令におけるFUAフラグの設定値の確認を行ない、このFUAフラグが“1(FUA=1)”であるか否かを確認する(ステップA70)。
【0067】
このFUA判定部23による判定の結果、FUAフラグが“0(FUA=0)”であった場合には(ステップA70の“FUA=0”ルート参照)、ライト・リード制御部24は、記録媒体30における、ステップA60においてリードを行なったリード領域に続く(後続の)先読み長分の領域のデータをリードする。そして、ライト・リード制御部24は、そのデータをキャッシュ領域25に格納する(ステップA80)。すなわち、先読み機能を実行するのである。
【0068】
そして、HDDキャッシュ制御部21(MPU201)は、HDD制御部13からリード指示された領域のデータ(リード対象のデータ)をキャッシュ領域25から取り込み、HDD制御部13に送出して(ステップA90)、処理を終了する。
一方、FUA判定部23による判定結果が“1(FUA=1)”であった場合には(ステップA70の“FUA=1”ルート参照)、先読み機能を実行せずに(先読み抑止ステップ)、ステップA90に移行する。
【0069】
また、リード対象のデータと同一のリードデータがキャッシュ領域25に格納されている場合には(ステップA50の“有る”ルート参照)、ライト・リード制御部24は、そのままステップA90に移行する。
次に、上述の如く構成された本第1実施形態としてのストレージシステムにおいて、例えば、図6に例示したような0〜19の20個のブロックをそなえて構成されたライトデータをライト・ベリファイを伴うデータのライトをHDD20に行なう場合について説明する。
【0070】
まず、ホスト2は、RAID装置10に対して、ライトデータの先行する0〜9の部分(先行ライト部分)と後続する10〜19の部分(引き続くライト部分)との2つに分けてライト指示を行なう。
すなわち、ホスト2は、先行ライト部分0〜9のライト指示をRAID装置10に送信した後に、引き続くライト部分10〜19のライト指示(ライト命令)をRAID装置10に送信する。
【0071】
RAID装置10においては、HDD制御部13のHDDライト制御部141が、先行ライト部分0〜9のライト指示をHDD20に与える。又、HDDライト制御部141は、更に、ライト・ベリファイ機能による先行ライト部分0〜9のリード指示(リード命令)をHDD20に与える。そして、この際、HDDライト制御部141は、このリード命令においてFUAフラグを有効(FUA=1)に設定する。
【0072】
そして、HDD制御部13においては、ライトデータコンペア部142が、先行ライト部分0〜9のライトデータと、HDD20からリードし、HDDコンペアリード制御部143によって取得された先行ライト部分0〜9のデータ(ベリファイ・リードデータ)とを比較し、正常性の確認を行なう。
その後、RAID装置10において、ライト制御部14(HDDライト制御部141)が、引き続くライト部分10〜19のライト指示をHDD20に与える。更に、ライト制御部14は、ライト・ベリファイ機能による引き続くライト部分10〜19のリード命令を、FUAフラグを有効(FUA=1)に設定した状態でHDD20に与える。
【0073】
そして、HDD制御部13においては、ライトデータコンペア部142が、引き続くライト部分10〜19のライトデータと、HDD20からリードし、HDDコンペアリード制御部143によって取得された引き続くライト部分10〜19のデータ(ベリファイ・リードデータ)とを比較し、正常性の確認を行なう。
HDD20においては、ライト・リード制御部24が、HDD制御部13から受信したライト命令に従って、先行ライト部分0〜9を記憶媒体30にライトする。
【0074】
そして、HDDキャッシュ制御部21においては、HDD制御部13から受信した先行ライト部分0〜9にかかるリード命令について、FUA判定部23により、FUAフラグが有効(FUA=1)に設定されていることが判定され、ライト・リード制御部24は、記録媒体30から、先行ライト部分0〜9のみのリードを行なう。
すなわち、引き続くライト部分10〜19については、先読み(一括リード)を行なわずに、次のライトを行なうための準備、例えば、磁気ヘッド(ライトヘッド)をトラックセンタに位置付けする等、を行なう。
【0075】
HDD20においては、ライト・リード制御部24が、HDD制御部13から受信したライト命令に従って、引き続くライト部分10〜19をHDDライト回路28により記憶媒体30にライトさせる。
そして、HDDキャッシュ制御部21において、HDD制御部13から受信した引き続くライト部分10〜19にかかるリード命令について、FUA判定部23により、FUAフラグが有効(FUA=1)に設定されていることが判定され、ライト・リード制御部24は、HDDリード回路29により、記録媒体30から引き続くライト部分10〜19のみのリードを行なわせる。
【0076】
HDD20においては、この引き続くライト部分10〜19に後続する領域のデータについては、先読み(一括リード)を行なう代わりに、次のライトを行なうための準備を行なう。
このように、本第1実施形態の一例としてのストレージシステムによれば、ライト・ベリファイを伴うデータのライトをHDD20に対して行なう場合に、ライト・ベリファイ機能によるリード命令については先読みを行なわない。これにより、先にライトされたデータのリードが完了するまで後続するデータのライトを待つリード終了待ち時間や、記録媒体30における書き込み位置が磁気ヘッドに到達するまでの回転待ち時間が生じることがない。従って、ライトの処理速度が低下することがなく、ライト性能を向上させることができる。
【0077】
すなわち、HDD制御部13において、HDDライト制御部141が、ライト・ベリファイにかかるリード命令(コンペアリード命令)に対してFUAフラグを設定するので、HDD20(FUA判定部23)においては、そのリード命令がライト・ベリファイにかかるコンペアリード命令であることを容易に判定することができ利便性が高い。
HDD20においては、HDD制御部13から受信した命令がリード命令であり、且つ、そのリード命令がFUA命令である場合には、そのリード命令はコンペア・リード命令であって、次に、リード命令ではなくライト命令がHDD制御部13から送信される可能性が高い。
【0078】
そこで、本ストレージシステムにおいては、HDD20において、HDD制御部13から受信した命令がコマンド解析部22によりリード命令であると判断され、且つ、FUA判定部23によりそのリード命令がFUA命令であると判定された場合に、前述した先読み機能を抑止する。これにより、後続するライト命令を迅速に処理することができるのである。
【0079】
また、この際、先読み機能を抑止するとともに、例えば、磁気ヘッド(ライトヘッド)をトラックセンタに位置付けする等の、次のライトを行なうための準備にとりかかることにより、後続するライト命令をより迅速に処理することができるのである。
さらに、ライト・リード制御部24が、コマンド解析部22によるリード命令の解析や、FUA判定部23によるFUA命令の判定に基づき、受信したリード命令がコンペア・リード命令であって、次にライト命令がHDD制御部13から送信されるとの判断を行なうことができる。これにより、効率的に先読み機能の抑止を行なうことができる。
【0080】
また、ライト・ベリファイを伴うデータのライトをHDD20に対して行なう場合に、キャッシュ領域25において、無意味なキャッシュデータが先読み機能により格納されることがない。これにより、先読みした無意味なキャッシュデータをキャッシュ領域25から破棄する処理を行なう必要がなく効率的である。
さらに、ホスト2からのリード指示等、ライト・ベリファイ機能によるリード命令以外のリード命令については、リード制御部15において、ホストリード制御部151がそのリード命令のFUAフラグを無効(FUA=0)に設定する。これにより、HDD20のHDDキャッシュ制御部21において、FUA判定部23によりリード命令のFUAフラグが無効であると判定され、ライト・リード制御部24が、先読み機能を抑止しない(すなわち、先読み機能を実施する)のでリード性能を高く維持することができる。
【0081】
(B)第2実施形態の説明
図3は第2実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
この図3に示すように、第2実施形態のストレージシステム1′は、第1実施形態のHDD20のHDDキャッシュ制御部21に代えてHDDキャッシュ制御部21′をそなえるものであり、その他の部分は第1実施形態のストレージシステム1と同様に構成されている。
【0082】
そして、この第2実施形態のストレージシステム1′においては、RAM202が、キャッシュ領域25および先読み長記憶部26として機能する他、更に、ライト領域記憶部27として機能するようになっている。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【0083】
ライト領域記憶部(書込領域記憶部)27は、記録媒体30におけるライト命令にかかるデータ(ライトデータ)の書込位置に関する情報を記憶するものである。
本第2実施形態にかかるストレージシステム1′においては、MPU21(例えば、ライト・リード制御部24)が、ライト・リード制御部24により記録媒体30に対してライトデータの書き込みを行なう。この際、MPU21は、記録媒体30における、そのライト命令にかかるライトデータの書き込み位置に関する情報を、このライト領域記憶部27に書込む(格納する)ようになっている。
【0084】
そして、以下、この記録媒体30のライト領域記憶部27に格納される、ライト命令にかかるライトデータの書き込み位置を示す情報のことを、単にライト位置情報という場合がある。
また、このライト位置情報としては、例えば、LBAのような、記録媒体30におけるライトデータの格納位置を具体的に表す情報を用いてもよく、又、例えば、ポインタのような、記録媒体30におけるライトデータの格納位置を間接的に表す情報を用いてもよい。
【0085】
すなわち、ライト領域記憶部27には、記録媒体30において最後にライトが行なわれた領域(直前のライト領域)を示す情報が格納されるのである。
また、本第2実施形態のストレージシステム1′においては、ライト・リード制御部(比較部)24は、記録媒体30からリードデータのリードを行なう際に、記録媒体30におけるそのリード命令にかかるリードデータの読出位置を取得する。又、この際、ライト・リード制御部24は、この取得した読出位置と、ライト領域記憶部27に記憶されたライトデータの書込位置とを比較するようになっている。
【0086】
本第2実施形態のストレージシステム1′においては、ライト・リード制御部(強制アクセス判定抑止部)24は、上述したリードデータのリード位置(リード領域)と、ライト領域記憶部27に記憶された書込命令にかかるデータのライト位置(ライト領域)とが一致しない場合には、そのリード命令はコンペアリード命令ではないことが明らかである。すなわち、これらのリード領域と直前のライト領域とが一致しない場合には、ホスト2からのリード要求に基づくリード命令である可能性が高い。
【0087】
そこで、ライト・リード制御部24は、上述したリードデータのリード領域と、ライト領域記憶部27に記憶された書込命令にかかるデータのライト領域とが一致しない場合に、FUA判定部23によるFUA命令であるか否かの判定の実行を抑止して、先読み機能を実行するようになっている。
これにより、MPU201において、FUA判定部23によるFUAフラグが設定されているかの判断処理が省略され、リード命令をより高速に処理することが可能となるのである。
【0088】
一方、上述したリードデータの読出位置と、ライト領域記憶部27に記憶されたライトデータの書込位置との比較の結果、リードデータのリード位置(読出位置に関する情報)と、ライト領域記憶部27に記憶された書込命令にかかるデータのライト位置(書込位置に関する情報)とが一致する場合には、そのリード命令が、コンペアリード命令である可能性が高い。
【0089】
そこで、本第2実施形態のストレージシステム1′においては、ライト・リード制御部(先読み抑止部)24は、上述したリードデータのリード位置と、ライト領域記憶部27に記憶された書込命令にかかるデータのライト位置とが一致する場合にのみ、FUA判定部23によるFUAフラグが設定されているかの判断を行なうようになっている。そして、FUA判定部23による判定の結果、そのリード命令にFUAフラグが設定されている場合には(FUA=1)、先読み機能を抑止するのである。
【0090】
上述の如く構成された本第2実施形態としてのストレージシステムにおけるHDDキャッシュ制御部21の処理を、図4に示すフローチャート(ステップA10〜A30,B31,A40〜A60,B61,A70〜A90)に従って説明する。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の処理を行なうステップを示しているので、その詳細な説明は省略する。
【0091】
本第2実施形態のストレージシステム1′においては、ライト・リード制御部24は、ライトデータをHDDライト回路28を介して記録媒体30にライトさせた後(ステップA30)、そのライト処理を行なった記録媒体30における位置(ライト領域)を示す情報を、ライト領域記憶部27に記録してから(ステップB31;書込領域記憶ステップ)、処理を終了する。
【0092】
また、受信した命令がリード命令であり(ステップA10の“リードコマンド”ルート参照)、FUA判定部23による判定の結果、FUAフラグが“0(FUA=0)”であり(ステップA40の“FUA=0”ルート参照)、更に、リード対象のデータと同一のリードデータがキャッシュ領域25に格納されていない場合には(ステップA50の“無し”ルート参照)、ライト・リード制御部24は、記録媒体30におけるHDD制御部13によって指示された領域(リード領域)のデータをHDDリード回路29によりリードする。
【0093】
そして、ライト・リード制御部24は、このリードしたリードデータをキャッシュ領域25に格納する。その後(ステップA60)、ライト・リード制御部24は、そのリード命令に関する記録媒体30におけるリードデータの読出位置(リード領域)と、ライト領域記憶部27に記憶されたライトデータの書込位置(ライト領域)とを比較して、これらが一致するか否かを確認する(ステップB61;比較ステップ)。
【0094】
これらのライト領域とリード領域が一致する場合に(ステップB61のYESルート参照)、FUA判定部23は、再度、そのリード命令におけるFUAフラグの設定値の確認を行ない、このFUAフラグが“1(FUA=1)”であるか否かを確認する(ステップA70)。
このFUA判定部23による判定の結果、FUAフラグが“0(FUA=0)”であった場合には(ステップA70の“FUA=0”ルート参照)、ライト・リード制御部24は、記録媒体30における、ステップA60においてリードを行なったリード領域に続く(後続の)先読み長分の領域のデータをリードする。そして、ライト・リード制御部24は、そのデータをキャッシュ領域25に格納する(ステップA80)。すなわち、先読み機能を実行する。
【0095】
一方、FUA判定部23による判定の結果、FUAフラグが“1(FUA=1)”であった場合には(ステップA70の“FUA=1”ルート参照)、先読み機能を実行せずに(抑止して)、ステップA90に移行する。
そして、本第2実施形態のストレージシステム1′においては、ライト・リード制御部24は、ライト領域とリード領域との比較の結果、これらの領域が一致しない場合に(ステップB61のNOルート参照)、ステップA80に移行する。これにより、FUA判定部23によるFUA命令であるか否かの判定の実行を抑止して(強制アクセス判定抑止ステップ)、先読み機能を実行する。
【0096】
すなわち、ライト・リード制御部24は、記録媒体30における、ステップA60においてリードを行なったリード領域に続く(後続の)先読み長分の領域のデータをリードして、そのデータをキャッシュ領域25に格納した後(ステップA80)、ステップA90に移行する。
このように、本第2実施形態としてのストレージシステム1′によれば、上述した第1実施形態と同様の作用効果を得ることができる。更に、本第2実施形態のストレージシステム1′によれば、リードデータのリード領域と、ライト領域記憶部27に記憶された書込命令にかかるデータのライト領域とが一致しない場合に、ライト・リード制御部24が、FUA判定部23によるFUA命令であるか否かの判定の実行を抑止して先読み機能を実行するようになっている。これにより、MPU201において、FUA判定部23によるFUAフラグが設定されているかの判断処理を省略することができる。従って、MPU201の負荷を軽減し、リード命令を高速に処理することが可能となる。
【0097】
(C)その他
そして、開示の記憶装置、記憶システム及び制御方法は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、RAM202が上述したキャッシュ領域25や先読み長記憶部26,ライト領域記憶部27としての機能を実現しているが、これに限定されるものではない。例えば、これらのキャッシュ領域25や先読み長記憶部26,ライト領域記憶部27のうち少なくともいずれか1つを、他の記憶装置(メモリ等)で実現してもよい。
【0098】
また、上述した各実施形態においては、先読みフラグを、HDD20における記録媒体30に設定する例を示しているが、これに限定されるものではない。例えば、この記録媒体30以外の場所に設定してもよく、例えば、図示しないRAM202や図示しない不揮発性メモリ等にこの先読みフラグを設定してもよい。
さらに、上述した各実施形態においては、RAID装置10において、表面に磁性体を塗布もしくは蒸着した1以上の円盤により構成された記録媒体30をそなえるHDD20をそなえた例について説明しているが、これに限定されるものではない。例えば、記憶媒体30として、例えば、光磁気ディスクや半導体記憶装置等の他の記録媒体をそなえてもよい。
【0099】
なお、上述した各実施形態が開示されていれば、開示の記憶装置、記憶システム及び制御方法を当業者によって実施・製造することが可能である。
(D)付記
(付記1) データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶装置。
【0100】
(付記2) 該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、付記1記載の記憶装置。
【0101】
(付記3) データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、
該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、
該制御部が、
該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、
該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令(FUA;Force Unit Access)であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、
該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、
該記憶装置が、
該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶システム。
【0102】
(付記4) 該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、付記3記載の記憶システム。
【0103】
(付記5) データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえることを特徴とする、制御方法。
【0104】
(付記6) 該記録媒体における該書込命令にかかるデータの書込位置に関する情報を書込領域記憶部に記憶する書込領域記憶ステップと、
該命令解析ステップにおいて、該命令の解析を行なった結果、当該命令が読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較ステップと、
該比較ステップにおける比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定ステップにおける判定を抑止する強制アクセス判定抑止ステップとをそなえることを特徴とする、付記5記載の制御方法。
【産業上の利用可能性】
【0105】
先読み機能をそなえた種々の記憶装置における、ライト・ベリファイ機能を伴うデータの書き込みに適用できる。
【図面の簡単な説明】
【0106】
【図1】第1実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図2】第1実施形態のストレージシステムにおけるHDDキャッシュ制御部の一例としての処理を説明するためのフローチャートである。
【図3】第2実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図4】第2実施形態としてのストレージシステムにおけるHDDキャッシュ制御部の一例としての処理を説明するためのフローチャートである。
【図5】従来のRAIDシステムのハードウェア構成を模式的に示す図である。
【図6】従来のRAIDシステムにおけるHDDに書き込まれるライトデータの構成例を模式的に示す図である。
【符号の説明】
【0107】
1,1′ ストレージシステム
2 ホスト
10 RAID装置(記憶システム)
11 チャネルインタフェース
12 RAIDキャッシュ制御部
13 HDD制御部(制御部,上位装置)
14 ライト制御部
15 リード制御部
16 HDDインタフェース
20a,20b,20c,20 HDD(記憶装置)
21 HDDキャッシュ制御部
22 コマンド解析部(命令解析部)
23 FUA判定部(強制アクセス判定部)
24 ライト・リード制御部(先読み抑止部,比較部,強制アクセス判定抑止部)
25 キャッシュ領域
26 先読み長記憶部
27 ライト領域記憶部(書込領域記憶部)
28 HDDライト回路
29 HDDリード回路
30 記録媒体
141 HDDライト制御部(強制アクセス命令情報設定部)
142 ライトデータコンペア部(データ比較部)
143 HDDコンペアリード制御部
201 MPU
202 RAM

【特許請求の範囲】
【請求項1】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶装置。
【請求項2】
該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、請求項1記載の記憶装置。
【請求項3】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、
該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、
該制御部が、
該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、
該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令(FUA;Force Unit Access)であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、
該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、
該記憶装置が、
該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶システム。
【請求項4】
該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、請求項3記載の記憶システム。
【請求項5】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえることを特徴とする、制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−128887(P2010−128887A)
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願番号】特願2008−304226(P2008−304226)
【出願日】平成20年11月28日(2008.11.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】