(57)【要約】      （修正有）【課題】ストレージアレイ（又はコントローラ）は、コントローラキャッシュの使用を制限されている。ライトスルーキャッシュポリシーモードにおいて、入力／出力（ＩＯ）書き込み要求は、特定のハード・ディスク・ドライブ（ＨＤＤ）の応答時間に依存しないストレージアレイを提供する。【解決手段】ストレージアレイ１０６’をソリッドステートデバイス１１２’と抽象化レイヤ１１０を含んで構成する。ソリッドステートデバイスは、書き込みキャッシュ領域１１６と読み出しキャッシュ領域１１８とを含んでいても良い。読み出しキャッシュ領域は、書き込みキャッシュ領域のミラーであっても良い。抽象化レイヤは、（ｉ）複数のＩＯ要求を受信し、（ｉｉ）複数のＩＯ要求を処理し、（ｉｉｉ）複数のＩＯ要求を書き込みキャッシュ領域と読み出しキャッシュ領域とにマップするように構成されても良い。【選択図】図３
2010244532.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力／出力（ＩＯ）要求を生成するように構成されたホストと、
書き込みキャッシュ領域と読み出しキャッシュ領域とを含み、前記読み出しキャッシュ領域が前記書き込みキャッシュ領域のミラーであるソリッドステートデバイスと、
（ｉ）前記複数のＩＯ要求を受信し、（ｉｉ）前記複数のＩＯ要求を処理し、（ｉｉｉ）前記複数のＩＯ要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成された抽象化レイヤと、
を含むシステム。
【請求項２】
ＩＯ書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込まれる請求項１に記載のシステム。
【請求項３】
ＩＯ読み出し要求は、前記読み出しキャッシュ領域で処理される請求項１に記載のシステム。
【請求項４】
前記抽象化レイヤは、コントローラ上で実行される請求項１に記載のシステム。
【請求項５】
前記ソリッドステートデバイスは、ストレージアレイ上で実現される請求項１に記載のシステム。
【請求項６】
前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域とは別の場所にマップされる請求項１に記載のシステム。
【請求項７】
前記抽象化レイヤは、ＩＯ書き込み要求が終了したときに信号を前記ホストに返信する請求項１に記載のシステム。
【請求項８】
前記書き込みキャッシュ領域と前記読み出しキャッシュ領域のそれぞれは、ＬＵＮを含む請求項１に記載のシステム。
【請求項９】
ＩＯ書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込まれる請求項１に記載のシステム。
【請求項１０】
（Ａ）複数の入力／出力（ＩＯ）要求を生成するステップと、
（Ｂ）前記複数のＩＯ要求を受信するステップと、
（Ｃ）前記複数のＩＯ要求を処理するステップと、
（Ｄ）前記複数のＩＯ要求を書き込みキャッシュ領域と読み出しキャッシュ領域とにマップするステップと、
（Ｅ）前記読み出しキャッシュ領域を前記書き込みキャッシュ領域の後にミラーリングするステップと、
を含む方法。
【請求項１１】
前記ステップ（Ｄ）は、前記ＩＯ書き込み要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込むサブステップを更に含む請求項１０に記載の方法。
【請求項１２】
前記ステップ（Ｃ）は、ＩＯ読み出し要求を前記読み出しキャッシュ領域で処理するサブステップを更に含む請求項１０に記載の方法。
【請求項１３】
ＩＯ書き込み要求が終了したときに信号を前記ホストに返信するステップを更に含む請求項１０に記載の方法。
【請求項１４】
前記読み出しキャッシュ領域と前記書き込みキャッシュ領域のそれぞれは、ＬＵＮを含む請求項１０に記載の方法。
【請求項１５】
前記ステップ（Ｄ）は、前記ＩＯ書き込み要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込むサブステップを更に含む請求項１０に記載の方法。
【請求項１６】
前記読み出しキャッシュ領域は、フラッシュドライブを含む請求項１０に記載の方法。
【請求項１７】
前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域とは別の場所にマップされる請求項１０に記載の方法。
【請求項１８】
複数の入力／出力（ＩＯ）要求を生成するように構成されたホストと、
書き込みキャッシュ領域を含むソリッドステートデバイスと、
読み出しキャッシュ領域を含み、前記読み出しキャッシュ領域が前記書き込みキャッシュ領域のミラーであるフラッシュドライブと、
（ｉ）前記複数のＩＯ要求を受信し、（ｉｉ）前記複数のＩＯ要求を処理し、（ｉｉｉ）前記複数のＩＯ要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成された抽象化レイヤと、
を含むシステム。
【請求項１９】
ＩＯ書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込まれる請求項１８に記載のシステム。
【請求項２０】
ＩＯ書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込まれる請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は同時係属中の出願である、２００８年４月２２日に出願された米国特許出願第６１／０４６，８１５号、２００８年６月２０日に出願された米国特許出願第１２／１４３，１２３号、２００８年７月１５日に出願された米国特許出願第６１／０８０，８０６号、２００８年７月１５日に出願された米国特許出願第６１／０８０，７６２号、２００８年７月２３日に出願された米国特許出願第１２／１７８，０６４号、２００８年９月２６日に出願された米国特許出願第１２／２３８，８５８号、２００８年９月２５日に出願された米国特許出願第６１／１００，０３４号、２００８年１１月２６日に出願された米国特許出願第１２／３２４，２２４号、２００９年１月１５日に出願された米国特許出願第１２／３５４，１２６号、２００９年３月２日に出願された米国特許出願第１２／３９５，７８６に関連し、それぞれここに全体を参考として援用される。
【０００２】
本発明は、一般にストレージアレイ、特に、ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減する方法及び／又は装置に関するものである。
【背景技術】
【０００３】
現在のストレージアレイ（又はコントローラ）は、コントローラキャッシュの使用を制限されている。ライトスルーキャッシュポリシーモードにおいて、入力／出力（ＩＯ）書き込み要求は、特定のハード・ディスク・ドライブ（ＨＤＤ）の応答時間に依存しなければならない。ストレージアレイネットワーク（ＳＡＮ）環境の重いＩＯ要求においては、ＨＤＤ応答時間はさらに遅れさえする。ＩＯ先読みキャッシュポリシーにおいては、要求されないデータがフェッチされると、結果としてＨＤＤ応答時間に対応する遅れと共にダイレクトリードｔｏＨＤＤをもたらす。要求されないデータフェッチで費やされた時間は無駄になる。
【０００４】
ＤＲＡＭに格納された書き込みキャッシュと読み出しキャッシュは、キャッシュのためにバックアップバッテリが全くないときライトスルーキャッシュポリシーのためのＨＤＤへの書き込みに依存する。ライトスルーキャッシュポリシーのためのＨＤＤへの書き込みは、ＨＤＤの待ち時間に加わる。先読みキャッシュポリシーは、要求されないデータのプレフェッチの結果、書き込みデータを得る際に遅延時間を加えるのでＨＤＤの待ち時間を軽減することを助けない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減する方法及び／又は装置を実現するのは望ましいだろう。
【課題を解決するための手段】
【０００６】
本発明はホスト、ソリッドステートデバイス及び抽象化レイヤを含むシステムに関する。前記ホストは、複数の入力／出力（ＩＯ）要求を生成するように構成されても良い。前記ソリッドステートデバイスは、書き込みキャッシュ領域と読み出しキャッシュ領域とを含んでいても良い。前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域のミラーであっても良い。前記抽象化レイヤは、（ｉ）前記複数のＩＯ要求を受信し、（ｉｉ）前記複数のＩＯ要求を処理し、（ｉｉｉ）前記複数のＩＯ要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成されても良い。
【０００７】
本発明の目的、特徴及び利点は、（ｉ）ハードディスクオーバーヘッドを軽減する、（ｉｉ）ストレージアレイでミラー化されたキャッシュボリュームを実現する、（ｉｉｉ）典型的なハード・ディスク・ドライブ（ＨＤＤ）に代わってソリッドステートドライブ（ＳＳＤ）キャッシュに書き込むためのライトスルーモードを許容する、（ｉｖ）ＬＵＮの作成の間、ミラー化されたキャッシュボリュームでＬＵＮを作成する、（ｖ）ＬＵＮが作成された後にミラー化されたキャッシュボリュームを作成する、（ｖｉ）全てのデータがミラー化されるまで既存のデータを非同期的にミラー化すると共にＨＤＤやミラー化されたＬＵＮに同期的に書き込む、（ｖｉｉ）ＨＤＤ待ち時間を避けるべく、読み出しＩＯ要求のためにミラー化されたキャッシュボリュームを用いる、（ｖｉｉｉ）ユーザが選択可能なミラー化されたキャッシュボリュームを提供する、（ｉｘ）読み出しキャッシュがＳＳＤ（又はフラッシュドライブ）であるミラー化されたキャッシュボリュームを用いることを許容する、（ｘ）ＤＲＡＭから分離したＳＳＤに書き込みキャッシュと読み出しキャッシュとを有する、（ｘｉ）書き込みキャッシュのためのバックアップバッテリがない場合、ライトスルーキャッシュポリシーのためにＨＤＤに書き込む、（ｘｉｉ）ＳＳＤ書き込みキャッシュに書き込まれても良い、（ｘｉｉｉ）読み出しＩＯ要求が読み出しキャッシュ領域のミラー化されたキャッシュボリュームを有するＬＵＮのためにより速く供給されることを許容する、（ｘｉｖ）プレフェッチリードキャッシュモードとその結果として生じる間違った予測による要求されないデータを排除する、及び／又は（ｘｖ）処理時間とＨＤＤ待ち時間を節約する方法及び／又は装置を提供することを含んでいる。
【０００８】
これらと他の本発明の目的、特徴及び利点は以下の詳細な説明、添付された特許請求の範囲及び図面から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】図１は本発明の実施の形態のブロック図である。
【図２】図２は本発明の実施の形態のより詳細なブロック図である。
【図３】図３は本発明の他の実施の形態のブロック図である。
【発明を実施するための形態】
【００１０】
図１を参照すると、本発明の好適な実施の形態に従ってシステム１００のブロック図が示される。一般に、システム１００は、モジュール１０２、モジュール１０４、モジュール１０６、モジュール１０８、モジュール１１０、モジュール１１２及びコネクション１１４を含む。モジュール１０２は、サーバとして実現されても良い。一例では、モジュール１０２は、ホストとして実現されても良い。モジュール１０４は、コントローラとして実現されても良い。モジュール１０６は、ストレージアレイとして実現されても良い。モジュール１０８は、ハード・ディスク・ドライブ（ＨＤＤ）として実現されても良い。一例では、ＨＤＤ１０８は多くの物理的なディスク（例えば、Ｐ１、Ｐ２、Ｐ３）で実現されても良い。特定の実施の設計基準を満足するために物理的なディスクの数を変更されても良い。一例では、ＨＤＤ１０８は、ストレージアレイ１０６の一部であっても良い。コントローラ１０４は、モジュール１１０を含んでいても良い。モジュール１１０は、入力／出力（ＩＯ）抽象化レイヤとして実現されても良い。モジュール１０６は、モジュール１１２を含んでいても良い。モジュール１１２は、ソリッドステートデバイスとして実現されても良い。コネクション１１４は、ファイバーチャネルコネクション又は他のタイプのネットワーク接続などのようにネットワーク接続であっても良い。システム１００は、ストレージアレイ１０６のＨＤＤ１０８へのアクセスの待ち時間によって生じるオーバーヘッドを軽減することができるだろう。
【００１１】
図２を参照すると、システム１００のより詳細なブロック図が示される。一般に、モジュール１１２は、書き込みキャッシュ領域１１６と読み出しキャッシュ領域１１８とを含む。一例では、書き込みキャッシュ領域１１６と読み出しキャッシュ領域１１８は、ＳＳＤ１１２の別の場所に位置（例えば、マップ）しても良い。一般に、書き込みキャッシュ領域１１６は、複数のＬＵＮ１２０ａ−１２０ｎ（例えば、ＬＵＮ０、ＬＵＮ１、ＬＵＮ２等）を含む。一般に、読み出しキャッシュ領域１１８は、ＬＵＮ１２２（例えば、ＬＵＮ０’）を含む。一例では、ＬＵＮ１２２は、ＬＵＮ１２０ａ−１２０ｎの特定の一つのミラー化されたキャッシュボリュームとして実現されても良い。特定の実施（例えば、２０４８まで又はそれ以上）の設計基準を満足するためにＬＵＮ１２０ａ−１２０ｎとＬＵＮ１２２の特定の数が変更（例えば、増加及び／又は減少）されても良い。通常、ＩＯ要求は、ストレージアレイ１０６のストレージデバイス（例えば、物理的なディスクＰ１、Ｐ２、又はＰ３）へのそのようなリクエストを翻訳するＬＵＮ１２０ａ−１２０ｎとＬＵＮ１２２に送信する。ＩＯコントローラ１０４（又はファームウェア）は、ＩＯ抽象化レイヤで構成されても良い。ホスト１０２からの処理されるべきＩＯ要求は、ＩＯ抽象化レイヤ１１０に送信しても良い。ＩＯ抽象化レイヤ１１０は、ソリッドステートデバイス１１２（例えば、ＬＵＮ１２０ａ−１２０ｎとＬＵＮ１２２）の書き込みキャッシュ領域１１６と読み出しキャッシュ領域１１８へのマッピングを有することができるだろう。書き込みキャッシュ領域１１６は、ＳＳＤ１１２でマップされても良い。読み出しキャッシュ領域１１８は、ＳＳＤ１１２の別の場所（又は領域）でマップされても良い。一例では、読み出しキャッシュ領域１１８は、フラッシュドライブでマップされても良い。読み出しキャッシュ領域１１８は、ＬＵＮ１２０ａ−１２０ｎの特定の一つの書き込みキャッシュ領域１１６のミラーであっても良い。例えば、ＬＵＮ１２０ａ（例えば、ＬＵＮ０）のためのＩＯ書き込み要求は、ＳＳＤ１１２の書き込みキャッシュ領域１１６にマップされても良い。ＩＯ書き込み要求は、読み出しキャッシュ領域１１８に同期的（又は非同期的）にミラー化されても良い。
【００１２】
ＩＯ抽象化レイヤ１１０は、ＩＯ書き込みが終了したときに信号（例えば、グッドステータス信号）をホスト１０２に返信する。ＬＵＮ１２２（例えば、ＬＵＮ０’）のためのＩＯ読み出し要求は、ホスト１０２からＩＯ抽象化レイヤ１１０に送信しても良い。ＩＯ抽象化レイヤ１１０は、必要なデータを検索するためにＬＵＮ１２２からミラー化された読み出しキャッシュ領域１１８を読み出しても良い。必要なデータがＳＳＤ１１２の読み出しキャッシュ領域１１８に格納されるのであれば、ＩＯ抽象化レイヤ１１０はＨＤＤ１０８から読み出す必要はないだろう。必要なデータがＳＳＤ１１２の読み出しキャッシュ領域１１８に格納されるのであれば、ＨＤＤ１０８からの読み出しと関連している応答時間の遅れを避けることができるだろう。一つの実施では、ＩＯ書き込み要求は、ＨＤＤ１０８（例えば、書き込みキャッシュ領域１１６）とＳＳＤ１１２のミラー化された読み出しキャッシュ領域１１８とに非同期的に書き込まれても良い。
【００１３】
ＩＯ書き込み要求は、ホスト（又はイニシエータ）１０２からＩＯ抽象化レイヤ１１０に送信されても良い。ＩＯ抽象化レイヤ１１０は、ＩＯ要求をＳＳＤ１１２（例えば、書き込みキャッシュ領域１１６）に書き込んでも良い。ＩＯ抽象化レイヤ１１０は、信号（例えば、「グッド」ステータス信号）をホスト１０２に送信しても良い。一例では、ＩＯ抽象化レイヤ１１０は、ＳＳＤ１１２にＩＯ要求を書き込み、ライトスルーキャッシュポリシーでグッドステータス信号をホスト１０２に送信しても良い。ＩＯ抽象化レイヤ１１０は、コントローラ／アレイＤＲＡＭにＩＯ要求を書き込んでいる間、ライトバックキャッシュポリシーでグッドステータス信号をホスト１０２に送信しても良い。抽象化レイヤ１１０は、ＳＳＤ１１２の書き込みキャッシュ領域１１６（例えば、ＬＵＮ１２０ａ）からのＩＯ読み出し要求を処理する代わりにＬＵＮ１２２からのＩＯ読み出し要求を処理しても良い。
【００１４】
ＩＯ読み出し要求は、ホスト１０２から送信されても良い。ＩＯ読み出し要求は、ＩＯ抽象化レイヤ１１０に送信しても良い。ＩＯ抽象化レイヤ１００は、先のＩＯ要求をＨＤＤ１０８のＬＵＮ１２０ａ−１２０ｎ（例えば、ＬＵＮ０）に非同期的に書き込んでも良い。ＩＯ要求は、読み出しキャッシュ領域１１８のＬＵＮ１２２にミラー化されても良い。一例では、ＬＵＮ１２２は、ＬＵＮ１２０ａ−１２０ｎ（例えば、ＬＵＮ０）の特定の一つのミラー化されたキャッシュボリュームであっても良い。ＬＵＮ１２０ａ−１２０ｎとＬＵＮ１２２は、ＩＯ抽象化レイヤ１１０によって同期的（又は非同期的）に書き込まれても良い。読み出しキャッシュ領域１１８のミラー化されたＬＵＮ１２２は、ＬＵＮ１２０ａ−１２０ｎが構成される間に作成されても良い。ＬＵＮ１２２は、ＬＵＮ１２０ａ−１２０ｎが構成される間にマップされても良い。一例では、ＬＵＮ１２２は、特定の設計実施に係るユーザ選択に基づいてマップされても良い。
【００１５】
一つ又はそれ以上のＬＵＮ１２０ａ−１２０ｎ（例えば、１２０ｂ−１２０ｎ）は、ミラー化されたキャッシュボリュームなしに構成されても良い。ＬＵＮ１２０ａ−１２０ｎは、リードプレフェッチキャッシュポリシー（例えば、現在一般的なＬＳＩストレージアレイ）を用いて構成されても良い。ＩＯ読み出し要求のために、ＩＯ抽象化レイヤ１１０は、ＬＵＮ１２２からミラー化されたキャッシュボリューム（例えば、読み出しキャッシュ領域１１８）を読み出すだろう。ＬＵＮ１２２からのＩＯ読み出し要求の処理は、ＨＤＤ１０８（例えば、書き込みキャッシュ領域１１６）からのＩＯ読み出し要求の処理よりも速いだろう。ＩＯ読み出し要求は、ホスト１０２に返信されても良い。
【００１６】
図３を参照すると、システム１００’のブロック図が示される。一般に、システム１００’は、ホスト１０２、コントローラ１０４、モジュール１０６’及びＨＤＤ１０８を含む。コントローラ１０４は、ＩＯ抽象化レイヤ１１０を実現しても良い。モジュール１０６’は、ストレージアレイとして実現されても良い。一般に、ストレージアレイ１０６’は、モジュール１１２’とモジュール１３０とを含む。モジュール１１２’は、ソリッドステートデバイス（ＳＳＤ）として実現されても良い。一般に、ＳＳＤ１１２’は、書き込みキャッシュ領域１１６を含む。一般に、書き込みキャッシュ領域は、複数のＬＵＮ１２０ａ−１２０ｎを含む。モジュール１３０は、フラッシュドライブとして実現されても良い。一般に、フラッシュドライブ１３０は、読み出しキャッシュ領域１１８を含む。読み出しキャッシュ領域は、ＬＵＮ１２２を含んでいても良い。一例では、フラッシュドライブ１３０は、複数のＬＵＮ１２０ａ−１２０ｎをミラー化するために作成された複数のＬＵＮを含んでいても良い。製造コストは、ミラー化されたＬＵＮ全体を格納するためのソリッドステートデバイス（ＳＳＤ）又はフラッシュドライブの実現に関連されるだろう。特定のＬＵＮのためにミラー化を実現することによって、性能とコストのバランスを達成できるだろう。通常、業務の改善はＳＳＤ実現の別途費用で釣り合う。
【００１７】
これまで本発明は、特に好適な実施の形態を参照して示し、説明してきたが、本発明の範囲から逸脱しないで形態と詳細の様々な変更を行うことができることが当業者によって理解されるであろう。
【図１】
2010244532.tif 000003
【図２】
2010244532.tif 000004
【図３】
2010244532.tif 000005