説明

ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減するシステム

【課題】ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減する方法及び/又は装置を提供する。
【解決手段】ドライブアレイを複数のハード・ディスク・ドライブと、ソリッドステートデバイスと、抽象化レイヤとしてのコントローラで構成する。ソリッドステートデバイスは、書き込みキャッシュ領域と読み出しキャッシュ領域とを含む。読み出しキャッシュ領域は、書き込みキャッシュ領域のミラーである。抽象化レイヤは、(i)複数のIO要求を受信し、(ii)複数のIO要求を処理し、(iii)複数のIO要求を書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本願は同時係属中の出願である、2008年4月22日に出願された米国特許出願第61/046,815号、2008年6月20日に出願された米国特許出願第12/143,123号、2008年7月15日に出願された米国特許出願第61/080,806号、2008年7月15日に出願された米国特許出願第61/080,762号、2008年7月23日に出願された米国特許出願第12/178,064号、2008年9月26日に出願された米国特許出願第12/238,858号、2008年9月25日に出願された米国特許出願第61/100,034号、2008年11月26日に出願された米国特許出願第12/324,224号、2009年1月15日に出願された米国特許出願第12/354,126号、2009年3月2日に出願された米国特許出願第12/395,786に関連し、それぞれここに全体を参考として援用される。
【0002】
本発明は、一般にストレージアレイ、特に、ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減する方法及び/又は装置に関するものである。
【背景技術】
【0003】
現在のストレージアレイ(又はコントローラ)は、コントローラキャッシュの使用を制限されている。ライトスルーキャッシュポリシーモードにおいて、入力/出力(IO)書き込み要求は、特定のハード・ディスク・ドライブ(HDD)の応答時間に依存しなければならない。ストレージアレイネットワーク(SAN)環境の重いIO要求においては、HDD応答時間はさらに遅れさえする。IO先読みキャッシュポリシーにおいては、要求されないデータがフェッチされると、結果としてHDD応答時間に対応する遅れと共にダイレクトリードtoHDDをもたらす。要求されないデータフェッチで費やされた時間は無駄になる。
【0004】
DRAMに格納された書き込みキャッシュと読み出しキャッシュは、キャッシュのためにバックアップバッテリが全くないときライトスルーキャッシュポリシーのためのHDDへの書き込みに依存する。ライトスルーキャッシュポリシーのためのHDDへの書き込みは、HDDの待ち時間に加わる。先読みキャッシュポリシーは、要求されないデータのプレフェッチの結果、書き込みデータを得る際に遅延時間を加えるのでHDDの待ち時間を軽減することを助けない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減する方法及び/又は装置を実現するのは望ましいだろう。
【課題を解決するための手段】
【0006】
本発明はホスト、ソリッドステートデバイス及び抽象化レイヤを含むシステムに関する。前記ホストは、複数の入力/出力(IO)要求を生成するように構成されても良い。前記ソリッドステートデバイスは、書き込みキャッシュ領域と読み出しキャッシュ領域とを含んでいても良い。前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域のミラーであっても良い。前記抽象化レイヤは、(i)前記複数のIO要求を受信し、(ii)前記複数のIO要求を処理し、(iii)前記複数のIO要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成されても良い。
【0007】
本発明の目的、特徴及び利点は、(i)ハードディスクオーバーヘッドを軽減する、(ii)ストレージアレイでミラー化されたキャッシュボリュームを実現する、(iii)典型的なハード・ディスク・ドライブ(HDD)に代わってソリッドステートドライブ(SSD)キャッシュに書き込むためのライトスルーモードを許容する、(iv)LUNの作成の間、ミラー化されたキャッシュボリュームでLUNを作成する、(v)LUNが作成された後にミラー化されたキャッシュボリュームを作成する、(vi)全てのデータがミラー化されるまで既存のデータを非同期的にミラー化すると共にHDDやミラー化されたLUNに同期的に書き込む、(vii)HDD待ち時間を避けるべく、読み出しIO要求のためにミラー化されたキャッシュボリュームを用いる、(viii)ユーザが選択可能なミラー化されたキャッシュボリュームを提供する、(ix)読み出しキャッシュがSSD(又はフラッシュドライブ)であるミラー化されたキャッシュボリュームを用いることを許容する、(x)DRAMから分離したSSDに書き込みキャッシュと読み出しキャッシュとを有する、(xi)書き込みキャッシュのためのバックアップバッテリがない場合、ライトスルーキャッシュポリシーのためにHDDに書き込む、(xii)SSD書き込みキャッシュに書き込まれても良い、(xiii)読み出しIO要求が読み出しキャッシュ領域のミラー化されたキャッシュボリュームを有するLUNのためにより速く供給されることを許容する、(xiv)プレフェッチリードキャッシュモードとその結果として生じる間違った予測による要求されないデータを排除する、及び/又は(xv)処理時間とHDD待ち時間を節約する方法及び/又は装置を提供することを含んでいる。
【0008】
これらと他の本発明の目的、特徴及び利点は以下の詳細な説明、添付された特許請求の範囲及び図面から明らかになろう。
【図面の簡単な説明】
【0009】
【図1】図1は本発明の実施の形態のブロック図である。
【図2】図2は本発明の実施の形態のより詳細なブロック図である。
【図3】図3は本発明の他の実施の形態のブロック図である。
【発明を実施するための形態】
【0010】
図1を参照すると、本発明の好適な実施の形態に従ってシステム100のブロック図が示される。一般に、システム100は、モジュール102、モジュール104、モジュール106、モジュール108、モジュール110、モジュール112及びコネクション114を含む。モジュール102は、サーバとして実現されても良い。一例では、モジュール102は、ホストとして実現されても良い。モジュール104は、コントローラとして実現されても良い。モジュール106は、ストレージアレイとして実現されても良い。モジュール108は、ハード・ディスク・ドライブ(HDD)として実現されても良い。一例では、HDD108は多くの物理的なディスク(例えば、P1、P2、P3)で実現されても良い。特定の実施の設計基準を満足するために物理的なディスクの数を変更されても良い。一例では、HDD108は、ストレージアレイ106の一部であっても良い。コントローラ104は、モジュール110を含んでいても良い。モジュール110は、入力/出力(IO)抽象化レイヤとして実現されても良い。モジュール106は、モジュール112を含んでいても良い。モジュール112は、ソリッドステートデバイスとして実現されても良い。コネクション114は、ファイバーチャネルコネクション又は他のタイプのネットワーク接続などのようにネットワーク接続であっても良い。システム100は、ストレージアレイ106のHDD108へのアクセスの待ち時間によって生じるオーバーヘッドを軽減することができるだろう。
【0011】
図2を参照すると、システム100のより詳細なブロック図が示される。一般に、モジュール112は、書き込みキャッシュ領域116と読み出しキャッシュ領域118とを含む。一例では、書き込みキャッシュ領域116と読み出しキャッシュ領域118は、SSD112の別の場所に位置(例えば、マップ)しても良い。一般に、書き込みキャッシュ領域116は、複数のLUN120a−120n(例えば、LUN0、LUN1、LUN2等)を含む。一般に、読み出しキャッシュ領域118は、LUN122(例えば、LUN0’)を含む。一例では、LUN122は、LUN120a−120nの特定の一つのミラー化されたキャッシュボリュームとして実現されても良い。特定の実施(例えば、2048まで又はそれ以上)の設計基準を満足するためにLUN120a−120nとLUN122の特定の数が変更(例えば、増加及び/又は減少)されても良い。通常、IO要求は、ストレージアレイ106のストレージデバイス(例えば、物理的なディスクP1、P2、又はP3)へのそのようなリクエストを翻訳するLUN120a−120nとLUN122に送信する。IOコントローラ104(又はファームウェア)は、IO抽象化レイヤで構成されても良い。ホスト102からの処理されるべきIO要求は、IO抽象化レイヤ110に送信しても良い。IO抽象化レイヤ110は、ソリッドステートデバイス112(例えば、LUN120a−120nとLUN122)の書き込みキャッシュ領域116と読み出しキャッシュ領域118へのマッピングを有することができるだろう。書き込みキャッシュ領域116は、SSD112でマップされても良い。読み出しキャッシュ領域118は、SSD112の別の場所(又は領域)でマップされても良い。一例では、読み出しキャッシュ領域118は、フラッシュドライブでマップされても良い。読み出しキャッシュ領域118は、LUN120a−120nの特定の一つの書き込みキャッシュ領域116のミラーであっても良い。例えば、LUN120a(例えば、LUN0)のためのIO書き込み要求は、SSD112の書き込みキャッシュ領域116にマップされても良い。IO書き込み要求は、読み出しキャッシュ領域118に同期的(又は非同期的)にミラー化されても良い。
【0012】
IO抽象化レイヤ110は、IO書き込みが終了したときに信号(例えば、グッドステータス信号)をホスト102に返信する。LUN122(例えば、LUN0’)のためのIO読み出し要求は、ホスト102からIO抽象化レイヤ110に送信しても良い。IO抽象化レイヤ110は、必要なデータを検索するためにLUN122からミラー化された読み出しキャッシュ領域118を読み出しても良い。必要なデータがSSD112の読み出しキャッシュ領域118に格納されるのであれば、IO抽象化レイヤ110はHDD108から読み出す必要はないだろう。必要なデータがSSD112の読み出しキャッシュ領域118に格納されるのであれば、HDD108からの読み出しと関連している応答時間の遅れを避けることができるだろう。一つの実施では、IO書き込み要求は、HDD108(例えば、書き込みキャッシュ領域116)とSSD112のミラー化された読み出しキャッシュ領域118とに非同期的に書き込まれても良い。
【0013】
IO書き込み要求は、ホスト(又はイニシエータ)102からIO抽象化レイヤ110に送信されても良い。IO抽象化レイヤ110は、IO要求をSSD112(例えば、書き込みキャッシュ領域116)に書き込んでも良い。IO抽象化レイヤ110は、信号(例えば、「グッド」ステータス信号)をホスト102に送信しても良い。一例では、IO抽象化レイヤ110は、SSD112にIO要求を書き込み、ライトスルーキャッシュポリシーでグッドステータス信号をホスト102に送信しても良い。IO抽象化レイヤ110は、コントローラ/アレイDRAMにIO要求を書き込んでいる間、ライトバックキャッシュポリシーでグッドステータス信号をホスト102に送信しても良い。抽象化レイヤ110は、SSD112の書き込みキャッシュ領域116(例えば、LUN120a)からのIO読み出し要求を処理する代わりにLUN122からのIO読み出し要求を処理しても良い。
【0014】
IO読み出し要求は、ホスト102から送信されても良い。IO読み出し要求は、IO抽象化レイヤ110に送信しても良い。IO抽象化レイヤ100は、先のIO要求をHDD108のLUN120a−120n(例えば、LUN0)に非同期的に書き込んでも良い。IO要求は、読み出しキャッシュ領域118のLUN122にミラー化されても良い。一例では、LUN122は、LUN120a−120n(例えば、LUN0)の特定の一つのミラー化されたキャッシュボリュームであっても良い。LUN120a−120nとLUN122は、IO抽象化レイヤ110によって同期的(又は非同期的)に書き込まれても良い。読み出しキャッシュ領域118のミラー化されたLUN122は、LUN120a−120nが構成される間に作成されても良い。LUN122は、LUN120a−120nが構成される間にマップされても良い。一例では、LUN122は、特定の設計実施に係るユーザ選択に基づいてマップされても良い。
【0015】
一つ又はそれ以上のLUN120a−120n(例えば、120b−120n)は、ミラー化されたキャッシュボリュームなしに構成されても良い。LUN120a−120nは、リードプレフェッチキャッシュポリシー(例えば、現在一般的なLSIストレージアレイ)を用いて構成されても良い。IO読み出し要求のために、IO抽象化レイヤ110は、LUN122からミラー化されたキャッシュボリューム(例えば、読み出しキャッシュ領域118)を読み出すだろう。LUN122からのIO読み出し要求の処理は、HDD108(例えば、書き込みキャッシュ領域116)からのIO読み出し要求の処理よりも速いだろう。IO読み出し要求は、ホスト102に返信されても良い。
【0016】
図3を参照すると、システム100’のブロック図が示される。一般に、システム100’は、ホスト102、コントローラ104、モジュール106’及びHDD108を含む。コントローラ104は、IO抽象化レイヤ110を実現しても良い。モジュール106’は、ストレージアレイとして実現されても良い。一般に、ストレージアレイ106’は、モジュール112’とモジュール130とを含む。モジュール112’は、ソリッドステートデバイス(SSD)として実現されても良い。一般に、SSD112’は、書き込みキャッシュ領域116を含む。一般に、書き込みキャッシュ領域は、複数のLUN120a−120nを含む。モジュール130は、フラッシュドライブとして実現されても良い。一般に、フラッシュドライブ130は、読み出しキャッシュ領域118を含む。読み出しキャッシュ領域は、LUN122を含んでいても良い。一例では、フラッシュドライブ130は、複数のLUN120a−120nをミラー化するために作成された複数のLUNを含んでいても良い。製造コストは、ミラー化されたLUN全体を格納するためのソリッドステートデバイス(SSD)又はフラッシュドライブの実現に関連されるだろう。特定のLUNのためにミラー化を実現することによって、性能とコストのバランスを達成できるだろう。通常、業務の改善はSSD実現の別途費用で釣り合う。
【0017】
これまで本発明は、特に好適な実施の形態を参照して示し、説明してきたが、本発明の範囲から逸脱しないで形態と詳細の様々な変更を行うことができることが当業者によって理解されるであろう。

【特許請求の範囲】
【請求項1】
複数の入力/出力(IO)要求を生成するように構成されたホストと、
(i)ソリッドステートデバイスと(ii)複数のハード・ディスク・ドライブ(HDD)とを含むドライブアレイであって、前記ソリッドステートデバイスが(a)書き込みキャッシュ領域と(b)読み出しキャッシュ領域とを含み、(A)前記ドライブアレイが前記複数のIO要求に応じてデータを格納及び/又は検索し、(B)前記読み出しキャッシュ領域が前記書き込みキャッシュ領域の一部のデータミラーであり、(C)前記読み出しキャッシュ領域と前記書き込みキャッシュ領域との間の前記データミラーは、前記読み出しキャッシュ領域にアクセスするときに待ち時間オーバーヘッドを避けるべく、前記データが前記書き込みキャッシュ領域に書き込まれた後に同時に同期されるドライブアレイと、
(i)前記複数のIO要求を受信し、(ii)前記複数のIO要求を処理し、(iii)前記複数のIO要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成された抽象化レイヤを含むコントローラと、
を含み、
前記ソリッドステートデバイスと前記複数のHDDとが前記コントローラから分離しており、前記複数のHDDに代わって前記ソリッドステートデバイスへの書き込みがライトスルーキャッシュポリシーであるシステム。
【請求項2】
IO書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込まれる請求項1に記載のシステム。
【請求項3】
IO読み出し要求は、前記読み出しキャッシュ領域で処理される請求項1に記載のシステム。
【請求項4】
前記抽象化レイヤは、コントローラ上で実行される請求項1に記載のシステム。
【請求項5】
前記ソリッドステートデバイスは、ストレージアレイ上で実現される請求項1に記載のシステム。
【請求項6】
前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域とは別の場所にマップされる請求項1に記載のシステム。
【請求項7】
前記抽象化レイヤは、IO書き込み要求が終了したときに信号を前記ホストに返信する請求項1に記載のシステム。
【請求項8】
前記書き込みキャッシュ領域と前記読み出しキャッシュ領域のそれぞれは、LUNを含む請求項1に記載のシステム。
【請求項9】
IO書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込まれる請求項1に記載のシステム。
【請求項10】
(A)ホストが複数の入力/出力(IO)要求を生成するステップと、
(B)コントローラの抽象化レイヤが前記複数のIO要求を受信するステップと、
(C)前記抽象化レイヤが、ソリッドステートデバイスと複数のハード・ディスク・ドライブ(HDD)とを含むドライブアレイからデータを格納及び/又は検索することによって、前記複数のIO要求を処理するステップと、
(D)前記抽象化レイヤが前記複数のIO要求を前記ソリッドステートデバイスの書き込みキャッシュ領域と読み出しキャッシュ領域とにマップするステップと、
(E)前記ドライブアレイが、データミラーを形成すべく、前記書き込みキャッシュ領域の一部を前記読み出しキャッシュ領域にミラーリングし、前記読み出しキャッシュ領域と前記書き込みキャッシュ領域との間の前記データミラーは、前記読み出しキャッシュ領域にアクセスするときに待ち時間オーバーヘッドを避けるべく、前記データが前記書き込みキャッシュ領域に書き込まれた後に同時に同期されるステップと、
を含み、
前記ソリッドステートデバイスと前記複数のHDDとが前記コントローラから分離しており、前記複数のHDDに代わって前記ソリッドステートデバイスへの書き込みがライトスルーキャッシュポリシーである方法。
【請求項11】
前記ステップ(D)は、IO書き込み要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込むサブステップを更に含む請求項10に記載の方法。
【請求項12】
前記ステップ(C)は、IO読み出し要求を前記読み出しキャッシュ領域で処理するサブステップを更に含む請求項10に記載の方法。
【請求項13】
IO書き込み要求が終了した後に信号をホストに返信するステップを更に含む請求項10に記載の方法。
【請求項14】
前記読み出しキャッシュ領域と前記書き込みキャッシュ領域のそれぞれは、LUNを含む請求項10に記載の方法。
【請求項15】
前記ステップ(D)は、IO書き込み要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込むサブステップを更に含む請求項10に記載の方法。
【請求項16】
前記読み出しキャッシュ領域は、フラッシュドライブを含む請求項10に記載の方法。
【請求項17】
前記読み出しキャッシュ領域は、前記書き込みキャッシュ領域とは別の場所にマップされる請求項10に記載の方法。
【請求項18】
複数の入力/出力(IO)要求を生成するように構成されたホストと、
(i)ソリッドステートデバイスと(ii)複数のハード・ディスク・ドライブ(HDD)とを含むドライブアレイであって、前記ソリッドステートデバイスが書き込みキャッシュ領域を含み、前記ドライブアレイが前記複数のIO要求に応じてデータを格納及び/又は検索するドライブアレイと、
読み出しキャッシュ領域を含むフラッシュドライブであって、(A)前記読み出しキャッシュ領域が前記書き込みキャッシュ領域の一部のデータミラーであり、(B)前記読み出しキャッシュ領域と前記書き込みキャッシュ領域との間の前記データミラーは、前記読み出しキャッシュ領域にアクセスするときに待ち時間オーバーヘッドを避けるべく、前記データが前記書き込みキャッシュ領域に書き込まれた後に同時に同期され、(C)前記フラッシュドライブが前記ソリッドステートデバイスから分離しているフラッシュドライブと、
(i)前記複数のIO要求を受信し、(ii)前記複数のIO要求を処理し、(iii)前記複数のIO要求を前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とにマップするように構成された抽象化レイヤを含むコントローラと、
を含み、
前記ソリッドステートデバイスと前記複数のHDDと前記フラッシュドライブとが前記コントローラから分離しており、前記複数のHDDに代わって前記ソリッドステートデバイスへの書き込みがライトスルーキャッシュポリシーであるシステム。
【請求項19】
IO書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに同期的に書き込まれる請求項18に記載のシステム。
【請求項20】
IO書き込み要求は、前記書き込みキャッシュ領域と前記読み出しキャッシュ領域とに非同期的に書き込まれる請求項18に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2013−47965(P2013−47965A)
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願番号】特願2012−226878(P2012−226878)
【出願日】平成24年10月12日(2012.10.12)
【分割の表示】特願2010−71656(P2010−71656)の分割
【原出願日】平成22年3月26日(2010.3.26)
【出願人】(591007686)エルエスアイ コーポレーション (93)
【Fターム(参考)】