(57)【要約】【課題】  縞々ライトの状態となったときであってもリードの回数を減らしライト性能を向上させることができるストレージ装置を提供することである。【解決手段】  ホストコンピュータ１３で演算処理するデータを記憶する単一または複数の記録媒体を有し論理ディスクを構成する記憶装置１４と、ホストコンピュータ１３と記憶装置１４との間のデータ転送の処理をするコントローラ１５とを備え、コントローラ１５内の縞々ライト判定手段２３は、ホストコンピュータ１３から縞々にライト命令が発行される縞々ライトの状態であるか否かを判定し、縞々ライト判定手段２３が縞々ライトの状態であると判断したときは、先読み処理手段２４は複数のキャッシュブロック分のデータをまとめて記憶装置１４からキャッシュメモリ１９に先読みする。【選択図】  図１
2007188408.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータで演算処理するデータを記憶する単一または複数の記録媒体を有し論理ディスクを構成する記憶装置と、前記ホストコンピュータと前記記憶装置との間のデータ転送の処理をするコントローラとを備えたストレージ装置において、前記コントローラは、キャッシュブロックを最小管理単位として前記記憶装置よりも高速にアクセスが可能で前記ホストコンピュータからのリード命令やライト命令に対するデータをリード及びライトするためのキャッシュメモリと、前記ホストコンピュータから縞々にライト命令が発行される縞々ライトの状態であるか否かを判定する縞々ライト判定手段と、前記縞々ライト判定手段が縞々ライトの状態であると判断したときは複数のキャッシュブロック分のデータをまとめて前記記憶装置から前記キャッシュメモリに先読みする先読み処理手段とを備えたことを特徴とするストレージ装置。
【請求項２】
ホストコンピュータで演算処理するデータをコントローラによりキャッシュメモリを介して記憶装置に記憶するようにしたストレージ方法において、前記ホストコンピュータから縞々にライト命令が発行される縞々ライトの状態であるか否かを判定し、縞々ライトの状態であるときは複数のキャッシュブロック分のデータをまとめて記憶装置からキャッシュメモリに先読し、前記キャッシュメモリに前記ホストコンピュータからのデータをライトすることを特徴とするストレージ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータと記憶装置との間のデータ送受信処理をコントローラで制御するストレージ装置及び方法に関する。
【背景技術】
【０００２】
ストレージ装置は、ホストコンピュータで演算処理するデータを記憶装置と、ホストコンピュータと記憶装置との間のデータ転送の処理をするコントローラとを備えており、さらに、記憶装置よりも高速にアクセスが可能で、ホストコンピュータからのリード命令やライト命令に対するデータをリード及びライトするためのキャッシュメモリを有している。通常、キャッシュメモリは、専用のキャッシュメモリ管理モジュールにより管理されており、そのキャッシュメモリの最小管理単位はキャッシュブロックである。ストレージ装置には、キャッシュブロック内に有効なデータは１つしか存在できないものと複数存在できるものがある。
【０００３】
図７は、キャッシュブロック内に有効なデータが１つしか存在できないキャッシュメモリでのデータのライトの説明図であり、図７（ａ）はライトするデータが連続している場合の説明図、図７（ｂ）はライトするデータが不連続である場合の説明図である。図７（ａ）に示すように、最小管理単位であるキャッシュブロック１１に既にライトデータＤ１が（例えば４ＫＢ分）格納されている状態でライト命令またはリード命令があり、このキャッシュブロック１１のライトデータＤ１に連続したアドレスのＩＯデータＤ２を読み書きする場合には、管理情報の更新だけで済むため、そのキャッシュブロック１１に格納できる。このように、キャッシュブロック１１内に有効なデータが１つしか存在できないストレージ装置でも既存のデータＤ１と新しいＩＯデータＤ２のブロックアドレスが連続している場合は、そのキャッシュブロック１１に新しいＩＯデータＤ２を格納できる。
【０００４】
一方、図７（ｂ）に示すように、キャッシュブロック１１のライトデータＤ１に不連続のアドレスのＩＯデータＤ２の場合には、そのキャッシュブロック１１にＩＯデータＤ２を格納できない。このような場合、図８に示すように、単純な対策として、新しいライト命令によるＩＯデータＤ２はキャッシュメモリのキャッシュブロック１１をバイパスして、そのまま記憶装置のＨＤＤ１２に発行する方法がある。
【０００５】
ここで、データを記憶するディスク装置への入出力データを一時的に格納するキャッシュメモリと、ホストとキャッシュメモリとの間のデータの転送を制御するプロセッサ及びデータ転送アダプタ手段を有するチャネルアダプタ部と、ディスク装置とキャッシュメモリとの間のデータの転送を制御するプロセッサ及びデータ転送アダプタ手段を有するディスクアダプタ部とを備え、データ転送パラメータをデータ転送アダプタおよび制御装置からアクセスできるようにし高速なデータ転送を可能としたものがある（例えば、特許文献１参照）。
【特許文献１】特開２００３−３４５５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＮＴＦＳ等のファイルシステムでは、ホストコンピュータから縞々にライト命令が発行され続ける場合がある。例えば、図９に示すように、４ＫＢライトと４ＫＢスキップとが交互に断続して縞々にライト命令が来ることがある（以下、縞々ライトという）。このような縞々ライトの状態となると、図７に示した処理では、バイパスライトが頻発して性能劣化を招くことになる。
【０００７】
そこで、図１０に示すように、キャッシュブロック１１にデータＤ１のある場合は、新しいＩＯデータＤ２を一旦ペンディングし、キャッシュブロック１１の不連続領域ＤｘにＨＤＤ１２からデータＤ１’をリードした後、ペンディングしたＩＯデータＤ２を実行する処理を行う。図１０の処理では、キャッシュブロック１１内のデータが連続するので、キャッシュブロック１１に新しいＩＯデータＤ２を格納することができる。
【０００８】
この場合、キャッシュメモリからのＨＤＤ１２へのデータ書き込み時（デステージング時）に、ＩＯデータのブロックアドレスが連続するため、連結して１つの大きなＩＯデータにまとめて発行することができ、トータルとしてＨＤＤ１２へのＩＯ数が減らせるから高速に処理できる。しかし、図１０の場合でも、不要なリードが発生するのでその分性能は下がってしまう。
【０００９】
本発明の目的は、縞々ライトの状態となったときであってもリードの回数を減らしライト性能を向上させることができるストレージ装置を提供することである。
【課題を解決するための手段】
【００１０】
請求項１の発明に係わるストレージ装置は、ホストコンピュータで演算処理するデータを記憶する単一または複数の記録媒体を有し論理ディスクを構成する記憶装置と、前記ホストコンピュータと前記記憶装置との間のデータ転送の処理をするコントローラとを備えたストレージ装置において、前記コントローラは、キャッシュブロックを最小管理単位として前記記憶装置よりも高速にアクセスが可能で前記ホストコンピュータからのリード命令やライト命令に対するデータをリード及びライトするためのキャッシュメモリと、前記ホストコンピュータから縞々にライト命令が発行される縞々ライトの状態であるか否かを判定する縞々ライト判定手段と、前記縞々ライト判定手段が縞々ライトの状態であると判断したときは複数のキャッシュブロック分のデータをまとめて前記記憶装置から前記キャッシュメモリに先読みする先読み処理手段とを備えたことを特徴とする。
【００１１】
請求項２の発明に係わるストレージ方法は、ホストコンピュータで演算処理するデータをコントローラによりキャッシュメモリを介して記憶装置に記憶するようにしたストレージ方法において、前記ホストコンピュータから縞々にライト命令が発行される縞々ライトの状態であるか否かを判定し、縞々ライトの状態であるときは複数のキャッシュブロック分のデータをまとめて記憶装置からキャッシュメモリに先読し、前記キャッシュメモリに前記ホストコンピュータからのデータをライトすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、縞々ライトが続いていると判断したときは、キャッシュメモリの空きを埋めるリードを１キャッシュブロックのみにとどまらず、複数のキャッシュブロック分のデータをまとめて先読みするので、リードの回数を減らしライト性能を向上させることができる。
【発明を実施するための最良の形態】
【００１３】
図１は本発明の実施の形態に係わるストレージ装置の構成図である。ストレージ装置は、ホストコンピュータ１３で演算処理するデータを記憶する記憶装置１４と、ホストコンピュータ１３と記憶装置１４との間のデータ転送の処理をするコントローラ１５とから構成される。記憶装置１４は、単一または複数の記録媒体例えばＨＤＤ１２ａ〜１２ｎを有し、これらＨＤＤ１２ａ〜１２ｎで論理ディスクを構成し、ホストコンピュータ１３で演算処理するデータを記憶する。
【００１４】
コントローラ１５は、ホストコンピュータ１３とのインタフェースであるホストドライバ１６と、ホストコンピュータからのライト命令やリード命令のＩＯを管理するＩＯマネージャ１７と、キャッシュブロック１８を最小管理単位として記憶装置１４よりも高速にアクセスが可能でホストコンピュータ１３からのリード命令やライト命令に対するデータをリード及びライトするためのキャッシュメモリ１９と、キャッシュメモリ１９を管理するキャッシュメモリ管理モジュール２０と、記憶装置１４のＨＤＤ１２ａ〜１２ｎを使用してＲＡＩＤが構成された論理ディスクを管理するＲＡＩＤ管理部２１と、記憶装置１４のＨＤＤ１２ａ〜１２ｎとのインタフェースであるドライバ２２とから構成される。
【００１５】
そして、キャッシュメモリ管理モジュール２０は、ホストコンピュータ１３から縞々にライト命令が発行される縞々ライトの状態であるか否かを判定する縞々ライト判定手段２３と、縞々ライト判定手段２３が縞々ライトの状態であると判断したときは複数のキャッシュブロック１８分のデータをまとめて記憶装置１４からキャッシュメモリ１９に先読みする先読み処理手段２４とを備えている。
【００１６】
図２は本発明の実施の形態に係わるストレージ装置の処理内容を示すフローチャートである。いま、ホストコンピュータ１３からライト命令があったとする。この場合、キャッシュブロック１８内に記憶装置１４から読み出したリードデータがあるか否かを判定し（Ｓ１）、そのキャッシュブロック１８内にリードデータがある場合には、ライト命令のデータがそのキャッシュブロック１８内のリードデータに連続しているか否かを判定する（Ｓ２）。
【００１７】
そして、ライト命令のデータがそのキャッシュブロック１８内のリードデータに不連続の場合には、前回リードしたキャッシュブロック１８と今回ライトしようとしているキャッシュブロック１８とは連続しているか否かを判定する（Ｓ３）。前回リードしたキャッシュブロック１８と今回ライトしようとしているキャッシュブロック１８が連続している場合には、ホストコンピュータからのライト命令は縞々ライトであると判断し（Ｓ４）、先読み処理を行う（Ｓ５）。例えば、ｍ個のキャッシュブロック１８分のデータを記憶装置１４から先読みする。先読みする範囲（ｍ）は予め定めておく。これにより、記憶装置１４から先読みされたｍ個のキャッシュブロック１８分のデータをキャッシュメモリ１９にライトする（Ｓ６）。
【００１８】
ステップＳ１の判定で、キャッシュブロック１８内にリードデータがある場合には、ライト命令によるデータを記憶装置１４から読み出しキャッシュメモリ１９にライトする（Ｓ６）。また、ステップＳ２の判定で、ライト命令のデータがそのキャッシュブロック１８内のリードデータに連続である場合には、ライト命令によるデータを記憶装置１４から読み出しキャッシュメモリ１９にライトする（Ｓ６）。
【００１９】
次に、前回リードしたキャッシュブロック１８と今回ライトしようとしているキャッシュブロック１８が不連続である場合には、１つのキャッシュブロック１８分のデータだけ記憶装置１４からリードし（Ｓ７）、キャッシュメモリ１９にライトする（Ｓ６）。
【００２０】
図３は図２のステップＳ７の処理内容の説明図である。図３（ａ）に示すように、同じキャッシュブロック１８内に、ブロックアドレスが不連続のライト命令によるＩＯデータＤ１、Ｄ２が連続して下りてくると、２つ目のＩＯデータＤ２をペンディングする。そして、図３（ｂ）に示すように、そのキャッシュブロック１８全体に対し記憶装置１４からデータをリードする。キャッシュブロック１８全体に対し記憶装置１４からデータＤ’をリードすることを、以下、内部リードと呼ぶことにする。その内部リードの後に、図３（ｃ）に示すように、ペンディングしていたＩＯデータＤ２をそのキャッシュブロック１８に格納する。
【００２１】
図４は図２のステップＳ３、Ｓ４の処理内容の説明図、図５は図２のステップＳ５の処理内容の説明図である。図４に示すように同じキャッシュブロック１８ｂ内に、ブロックアドレスが不連続のライト命令によるＩＯデータＤ３、Ｄ４が下りてきたとすると、前回リードしたキャッシュブロック１８ａと今回ライトしようとしているキャッシュブロック１８ｂとが連続しているか否かを判定し、連続している場合には縞々ライトの状態であると判断する。
【００２２】
そして、図５に示すように、ｍ個のキャッシュブロック１８分のデータを内部リードする。つまり、記憶装置１４からｍ個のキャッシュブロック１８分のデータを先読みし、その先読みしたｍ個のキャッシュブロック１８分のデータをキャッシュメモリ１９にライトする（Ｓ６）。図５では、４個のキャッシュブロック１８ｂ〜１８ｅ分のデータを先読みした場合を示している。
【００２３】
このように、ライト命令に伴う内部リードが前回のライト命令に伴う内部リードとブロックアドレスが連続している場合には縞々ライトと判断し、先読み（まとめ読み）を実施し、ｍキャッシュブロック分を一度にリードする。例えば、ｍが１６である場合には、１６キャッシュブロック分で２５６ＫＢ分のデータを一度にリードする。
【００２４】
図６は先読みした４個のキャッシュブロック１８ｂ〜１８ｅ分のデータに縞々ライト命令によるデータをライトしている状態の説明図である。図６では７個めのライト命令が完了し、８個めの縞々ライト命令に対するＩＯデータをライトしている状態を示している。このように、キャッシュブロック１８に対して先読みするので、以降の縞々ライトに対し記憶装置１４からのリード無しにキャッシュメモリにヒットさせることができる。なお、先読みリード範囲を超えて、縞々ライトが発生した場合は、図２のステップＳ１の処理に戻る。
【００２５】
第１の実施の形態によれば、縞々ライトに対してｍキャッシュブロック分を一度に先読みするので、リードの回数が減り縞々ライトに対する性能が向上する。ＩＯデータの読み書きの回数を減らせるため、キャッシュメモリ１９内に複数のデータを格納できるストレージ装置に対しても性能向上が期待できる。また、内部リードの連続性を、ステップＳ３のように、縞々ライトの判断基準とすることにより、縞々ライトの判断基準が単純になる。  
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係わるストレージ装置の構成図。
【図２】本発明の実施の形態に係わるストレージ装置の処理内容を示すフローチャート。
【図３】図２のステップＳ７の処理内容の説明図。
【図４】図２のステップＳ３、Ｓ４の処理内容の説明図。
【図５】図２のステップＳ５の処理内容の説明図。
【図６】本発明の実施の形態における先読みしたキャッシュブロック分のデータに縞々ライト命令によるデータをライトしている状態の説明図。
【図７】従来のキャッシュメモリでのデータのライトの一例の説明図。
【図８】従来のキャッシュメモリでのデータのライトの他の一例の説明図。
【図９】ホストコンピュータから発行される縞々ライトの説明図。
【図１０】従来のキャッシュメモリでのデータのライトのさらに別の他の一例の説明図。
【符号の説明】
【００２７】
１１…キャッシュブロック、１２…ＨＤＤ、１３…ホストコンピュータ、１４…記憶装置、１５…コントローラ、１６…ホストドライバ、１７…ＩＯマネージャ、１８…キャッシュブロック、１９…キャッシュメモリ、２０…キャッシュメモリ管理モジュール、２１…ＲＡＩＤ管理部、２２…ドライバ、２３…縞々ライト判定手段、２４…先読み処理手段
【図１】
2007188408.tif 000003
【図２】
2007188408.tif 000004
【図３】
2007188408.tif 000005
【図４】
2007188408.tif 000006
【図５】
2007188408.tif 000007
【図６】
2007188408.tif 000008
【図７】
2007188408.tif 000009
【図８】
2007188408.tif 000010
【図９】
2007188408.tif 000011
【図１０】
2007188408.tif 000012
【手続補正書】
【提出日】平成18年2月23日(2006.2.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の目的は、縞々ライトの状態となったときでもリードの回数を減らしライト性能を向上させることができるストレージ装置及び方法を提供することである。