(57)【要約】【課題】ストレージ・ＰＬＴ支援ユニット及びストレージ・ＰＬＴ支援アーキテクチャを提供する。【解決手段】ストレージ・システム・アーキテクチャが開示される。環境サービス・モジュール（ＥＳＭ）が、１つまたは複数のアレイ・コントローラに結合される。ＥＳＭは、中央処理装置および１つまたは複数の支援機能を備えて構成される。支援機能は、不揮発性メモリを含んでもよい。この不揮発性メモリは、書込みキャッシング、ミラーリング・データ、および／または構成データのために使用することができる。支援機能、またはＥＳＭは、ＳＣＳＩコマンドまたはＲＤＭＡコマンドを使用してアレイ・コントローラによって制御されることができる。【選択図】図２
2010287208.tif 000002
【特許請求の範囲】
【請求項１】
シリアル・アタッチトＳＣＳＩ（ＳＡＳ）ターゲットとして構成された入／出力コントローラ（ＩＯＣ）であって、ＣＰＵおよび不揮発性メモリを備え、少なくとも１つのオフロードされたアレイ・コントローラ機能を実行するように構成されたＩＯＣと、
ＳＡＳエキスパンダと
を備えるオフロード環境サービス・モジュール（ＥＳＭ）。
【請求項２】
前記少なくとも１つのオフロードされたアレイ・コントローラ機能が書込みキャッシュ入／出力（Ｉ／Ｏ）処理を備える、請求項１に記載のオフロードＥＳＭ。
【請求項３】
書込みデータがＳＣＳＩコマンドを介してオフロードＥＳＭによって受け取られる、請求項２に記載のオフロードＥＳＭ。
【請求項４】
書込みデータがＲＤＭＡコマンドを介してオフロードＥＳＭによって受け取られる、請求項２に記載のオフロードＥＳＭ。
【請求項５】
前記少なくとも１つのオフロードされたアレイ・コントローラ機能が書込みキャッシュ・データをミラーリングすることを備える、請求項１に記載のオフロードＥＳＭ。
【請求項６】
前記書込みキャッシュ・データが別のオフロードＥＳＭにミラーリングされる、請求項５に記載のオフロードＥＳＭ。
【請求項７】
前記オフロードされたＥＳＭが、ストレージ・アレイ・コントローラに記憶されているデータをミラーリングする、請求項５に記載のオフロードＥＳＭ。
【請求項８】
前記オフロードされたＥＳＭが構成情報を前記不揮発性メモリに記憶する、請求項５に記載のオフロードＥＳＭ。
【請求項９】
前記オフロードＥＳＭが、書き込まれるべきデータを記憶し、トラッキングし、Ｉ／Ｏ装置が書込み動作を完了したことを確認する、請求項５に記載のオフロードＥＳＭ。
【請求項１０】
アレイ・コントローラと、
ＣＰＵおよび不揮発性メモリを含むＩＯＣを備えるＪＢＯＤユニットであって、前記ＩＯＣが、少なくとも１つのオフロードされたアレイ・コントローラ機能を実行するように構成された、ＪＢＯＤユニットと、
ＳＡＳエキスパンダと
を備えるストレージ・システム。
【請求項１１】
前記ＩＯＣがＳＡＳ領域内の複数の装置を表す、請求項１０に記載のストレージ・システム。
【請求項１２】
前記ＩＯＣが書込みキャッシュ入／出力（Ｉ／Ｏ）処理を行う、請求項１０に記載のストレージ・システム。
【請求項１３】
前記ＩＯＣがＳＣＳＩコマンドを介して書込みデータを受け取る、請求項１２に記載のストレージ・システム。
【請求項１４】
前記ＩＯＣがＲＤＭＡコマンドを介して書込みデータを受け取る、請求項１２に記載のストレージ・システム。
【請求項１５】
前記ＩＯＣが、前記アレイ・コントローラに送られた書込みキャッシュ・データをミラーリングする、請求項１０に記載のストレージ・システム。
【請求項１６】
前記ＩＯＣが別のＪＢＯＤユニットにミラーリングする、請求項１０に記載のストレージ・システム。
【請求項１７】
前記ＩＯＣが前記不揮発性メモリに構成情報を記憶する、請求項１０に記載のストレージ・システム。
【請求項１８】
前記ＩＯＣが、書き込まれるべきデータを記憶し、トラッキングし、Ｉ／Ｏ装置が書込み動作を完了したことを確認する、請求項１０に記載のストレージ・システム。
【請求項１９】
前記ＩＯＣが正規表現検索を支援する、請求項１０に記載のストレージ・システム。
【請求項２０】
前記ＩＯＣが圧縮機能を支援する、請求項１０に記載のストレージ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・ＰＬＴ支援ユニット及びストレージ・ＰＬＴ支援アーキテクチャを提供する。
【背景技術】
【０００２】
大容量記憶システムは、ユーザの需要に応えるために、増大された記憶容量を提供し続けている。写真および動画の保存、ならびに写真および動画の共有は、ますます大きなストレージ・システムを求める需要の増加を助長する利用形態の例である。
【０００３】
これらの増大する需要に対する解決策は、複数の安価なディスクのアレイの使用である。これらのアレイは、データのいかなる損失もなしに冗長性およびエラー回復を提供するように構成することができる。これらのアレイはまた、複数のディスクドライブに対して、データを同時に読み出させる、または書き込ませることにより、読出しおよび書込み性能を向上させるように構成することができる。これらのアレイはまた、アレイのストレージ・サービスを中断することなく故障したディスクを交換することができる「ホットスワッピング」を可能にするように構成することができる。冗長性が提供されるか否かにかかわらず、これらのアレイは、一般に、独立ディスク冗長アレイと（または、より一般的には、頭字語ＲＡＩＤで）呼ばれる。「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」という表題の、カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎ等による１９８７年の刊行物は、ＲＡＩＤ技術の基本概念およびレベルについて論じている。
【０００４】
ＲＡＩＤストレージ・システムは、通常、ユーザまたはホストシステムをストレージ・アレイ管理の詳細から遮蔽するコントローラを利用する。コントローラは、ストレージ・アレイが１つまたは複数のディスクドライブ（またはボリューム）として見えるようにする。これは、特定のボリュームに関するデータ（または冗長データ）が複数のディスクドライブに分散される可能性があるにもかかわらず達成される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」という表題の、カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎ等による１９８７年の刊行物
【発明の概要】
【課題を解決するための手段】
【０００６】
したがって、本発明の一実施形態は、シリアル・アタッチトＳＣＳＩ（ＳＡＳ）ターゲットとして構成された入／出力コントローラ（ＩＯＣ）であって、ＣＰＵおよび不揮発性メモリを備え、少なくとも１つのオフロードされたアレイ・コントローラ機能を実行するように構成されたＩＯＣと、ＳＡＳエキスパンダと、を備えるオフロード環境サービス・モジュール（ＥＳＭ）を備えることができる。
【０００７】
したがって、本発明の一実施形態は、アレイ・コントローラと、ＣＰＵおよび不揮発性メモリを含むＩＯＣを備えるＪＢＯＤユニットであって、ＩＯＣが、少なくとも１つのオフロードされたアレイ・コントローラ機能を実行するように構成された、ＪＢＯＤユニットと、ＳＡＳエキスパンダとを備えるストレージ・システムをさらに備えることができる。
【図面の簡単な説明】
【０００８】
【図１】ストレージ・アレイ支援ユニットのブロック図である。
【図２】ストレージ・アレイ支援アーキテクチャのブロック図である。
【図３】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
図１は、ストレージ・アレイ支援ユニットのブロック図である。ストレージ・アレイ・システム１００は、オフロード・ジャスト・ア・バンチ・オブ・ディスクス（単なるディスクの集まり；ＪＢＯＤ）ユニット１２０、アレイ・コントローラ（図示せず）、および追加のＪＢＯＤユニット（図示せず）を備える。図１では、オフロードＪＢＯＤユニット１２０は、シリアル・アタッチトＳＣＳＩ（ＳＡＳ）ポートを介して、複数のアレイ・コントローラに結合されてもよい。オフロードＪＢＯＤユニット１２０は、ＳＡＳポートによって追加のＪＢＯＤユニットに結合されてもよい。オフロードＪＢＯＤユニット１２０は、ディスクドライブを含んでもよい。
【００１０】
オフロードＪＢＯＤユニット１２０は、オフロード環境サービス・モジュール（ＥＳＭ）１４０およびオフロードＥＳＭ１４１を含む。オフロードＥＳＭ１４０は、入／出力コントローラ（ＩＯＣ）１５０、不揮発性メモリ（ＮＶメモリ）１６０、ＳＡＳエキスパンダ（ＳＥ）１９０、および支援機能１８０−１、１８０−２を備える。ＩＯＣ１５０は、ＣＰＵ１７０を含んでもよい。オフロードＥＳＭ１４１は、ＩＯＣ１５１、不揮発性メモリ１６１、ＳＡＳエキスパンダ１９１、および支援機能１８１−１、１８１−２を備える。ＩＯＣ１５１は、ＣＰＵ１７１を含んでもよい。オフロードＥＳＭ１４０およびオフロードＥＳＭ１４１は、データを交換することができるようにリンク１２１によって結合されてもよい。オフロードＥＳＭ１４０およびオフロードＥＳＭ１４１は、エキスパンダおよび環境サービス・モニタリングおよび管理機能を提供する。支援機能１８０−１および１８０−２は、本明細書では、まとめて支援機能１８０と呼ばれることもある。支援機能１８１−１および１８１−２は、本明細書では、まとめて支援機能１８１と呼ばれることもある。
【００１１】
一実施形態では、オフロードＥＳＭ１４０およびオフロードＥＳＭ１４１は、パリティおよびＥＣＣ生成、バッテリ・バックアップ式データメモリ、ＮＶＲＡＭ、ならびにコントローラ間書込みキャッシングを含むことができる支援機能１８０−１、１８０−２、１８１−１、および１８１−２を含んでもよい。これらの支援機能は、専用ハードウェア、追加のプロセッサ、ソフトウェア、またはハードウェアとソフトウェアの組合せによって実行させることができる。例えば、ＮＶメモリ１６０およびＮＶメモリ１６１は、書込みデータの不揮発性キャッシングを可能にすることができる。このデータを、ＮＶメモリ１６０とＮＶメモリ１６１との間でミラーリングし、その結果、このキャッシュされたデータの冗長ストレージを提供することができる。ＮＶメモリ１６０およびＮＶメモリ１６１は、ディスク機能を約束することができる。
【００１２】
オフロードＪＢＯＤ１２０の特別の支援機能は、データ保護層（ＤＰＬ）ソフトウェアによって利用されることができる。ＤＰＬソフトウェアは、アレイ・コントローラ上で実行させることができる。支援機能は、ＩＯＣ１５０およびＩＯＣ１５１をＳＡＳターゲットとして構成することにより実行させることができる。組込みＣＰＵ１７０および１７１、または支援機能１８０および１８１内の組込みＣＰＵは、処理機能を提供することができる。ＮＶメモリ１６０および１６１は、停電、システムのシャットダウンなどの後で機能し続けるトレージを提供することができる。ＮＶメモリ１６０および１６１は、フラッシュメモリ、バッテリ・バックアップ式メモリなどでもよい。ＩＯＣ１５０、組込みＣＰＵ１７０、およびＳＡＳエキスパンダ１９０は、同一のＡＳＩＣに組み込まれてもよいことに留意されたい。同様に、ＩＯＣ１５１、組込みＣＰＵ１７１、およびＳＡＳエキスパンダ１９１は、同一のＡＳＩＣに組み込まれてもよい。
【００１３】
ストレージ・アレイ・システム１００は、書込みキャッシュＩ／Ｏ処理を行うために、ＮＶメモリ１６０およびＮＶメモリ１６１などの不揮発性メモリを含んでもよい。書込みキャッシュＩ／Ｏ処理は、停電またはＩ／Ｏ中断の場合にデータが保護されることを保証する。ストレージ・アレイ・システム１００では、書込みデータは、アレイ・コントローラによって、例えば、ＳＣＳＩコマンドおよび／またはＲＤＭＡコマンドを使用して、オフロードＪＢＯＤユニット１２０内のＮＶメモリ１６０または１６１に書き込まれることができる。データがＮＶメモリ１６０または１６１に書き込まれた後は、データは永続的であるとみなされ、アレイ・コントローラは、このステータスをホストに返すことができるはずである。オフロードＥＳＭ１４０または１４１は、データをそれぞれＮＶメモリ１６０または１６１に書き込むフォーク書込み機能を実行することができ、さらに、データを複製し、それをそれぞれもう一方のオフロードＥＳＭのＮＶメモリ１６１または１６０に送ることができる。この書込みデータは、リンク１２１を介してオフロードＥＳＭ１４０と１４１との間で交換されることができる。リンク１２１は、例えば、ＳＡＳ、ＰＣＩｅ、またはインフィニバンド接続でもよい。他のタイプのリンクも考えられる。
【００１４】
ストレージ・アレイ・システム１００は、データがストレージ・アレイ・コントローラ、オフロードＥＳＭ、オフロードＪＢＯＤ、またはそれらの任意の組合せの故障に耐えて存続することを保証するために、書込みキャッシュ・データを複数のオフロードＥＳＭ１４０〜１４１にミラーリングすることができる。そのような場合には、代替コントローラ、ＪＢＯＤ、またはオフロードＥＳＭが、冗長フェイルオーバ機構の一部分としてそれにミラーリングされたデータを再利用することができる。
【００１５】
一実施形態では、オフロードＪＢＯＤユニット１２０は、アレイ・コントローラによって使用され、データの第２のＮＶメモリ１６０または１６１へのミラーを作成することができる。このＮＶメモリ１６０または１６１は、同一のオフロードＪＢＯＤユニット１２０内のもう一方のオフロードＥＳＭ１４０または１４１にあってもよく、あるいはシステム内の別のオフロードＪＢＯＤユニット（図示せず）にあってもよい。他の実施形態では、オフロードＪＢＯＤユニット１２０内のＮＶメモリ１６０および１６１は、アレイ・コントローラ自体内のメモリとして使用することができる。
【００１６】
ＮＶメモリ１６０または１６１はまた、ストレージ・アレイ・システム１００が初期化中にどのように構成されるべきかを記述する構成メタデータを記憶するために使用することができる。これは、電源投入シーケンスを速めることがきる、あるいは特定の動作環境（例えば、ホスト・タイプ、デフォルト設定など）を示すことができる。
【００１７】
ストレージ・アレイ・コントローラがディスクにライトバック・キャッシュ・データをコミットする用意ができた場合、オフロードＪＢＯＤ１２０は、ＣＰＵ１７０または１７１にＮＶメモリ１６０または１６１に記憶されているライトバック・キャッシュ・データをＳＡＳ領域内の適切なディスクのロケーションに転送するよう指令する特定のコマンドの発行を受けることができる。このコマンドを受け取るオフロードＥＳＭ１４０または１４１は、データのメモリアドレス、Ｉ／Ｏ装置（例えば、磁気ディスクまたは半導体ディスク）、書込み先ＬＢＡ、および書き込まれるべきデータの長さを受け取ることができる。コマンドを受け取った後は、オフロードＥＳＭ１４０または１４１は、Ｉ／Ｏ装置に適切なＳＣＳＩコマンドまたはＳＡＴＡコマンドを発行することができる。Ｉ／Ｏ装置が動作を完了したことを確認するステータスを受け取った後は、オフロードＥＳＭ１４０または１４１は、ライトバック・キャッシュ・データをもはやダーティではないとマーキングし、ストレージ・アレイ・コントローラにステータスを返すことができる。
【００１８】
他の実施形態では、オフロードＥＳＭ１４０または１４１は、ストレージ・アレイ・コントローラに対する論理ユニット番号（ＬＵＮ）として、オフロードＪＢＯＤユニット１２０、および同一のＳＡＳ領域内のその他のＪＢＯＤ内のディスクのための単一のターゲットを提示するターゲット・デバイスとして使用することができる。これは、多くの電源投入およびリセット状態中にストレージ・アレイ・コントローラの発見を速めることができる。
【００１９】
支援機能１８０および１８１は、複数のディスクドライブにわたってＲＡＩＤ方式を実施するために冗長データを計算するのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。支援機能１８０および１８１は、正規表現検索を行うのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。この正規表現検索は、ディープ・パケット検査（ＤＰＩ）またはウィルス・シグネチャ認識のような機能のために使用することができる。支援機能１８０および１８１は、重複除外を支援するためのハッシュ関数を計算するのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。支援機能１８０および１８１は、ＸＯＲ機能、ＥＣＣ機能、圧縮機能を提供することができる。支援機能１８０および１８１は、他のハードウェア機能および／またはソフトウェア機能を提供することができる。
【００２０】
図２は、ストレージ・アレイ・ハードウェア支援アーキテクチャのブロック図である。図２では、ストレージ・アレイ・システム２００は、オフロードＪＢＯＤユニット２２０、アレイ・コントローラ・エンクロージャ２１０、および追加のＪＢＯＤユニット２２１を備える。オフロードＪＢＯＤユニット２２０はまた、環境サービス・モジュール（ＥＳＭ）として知られていることもある。図２では、オフロードＪＢＯＤユニット２２０は、ＳＡＳポートを介して複数のアレイ・コントローラに結合されてもよい。オフロードＪＢＯＤユニット２２０は、ＳＡＳポートによってＪＢＯＤユニット２２１に結合されてもよい。オフロードＪＢＯＤユニット２２０およびＪＢＯＤユニット２２１は、ディスクドライブを含んでもよい。アレイ・コントローラ・エンクロージャ２１０またはオフロードＪＢＯＤユニット２２０は、１つまたは複数のＳＡＳエキスパンダを含んでもよい。
【００２１】
アレイ・コントローラ・エンクロージャ２１０は、複数のアレイ・コントローラ２３０〜２３１を含んでもよい。これらのアレイ・コントローラ２３０〜２３１はそれぞれ、オフロードＪＢＯＤユニット２２０に結合されてもよい。アレイ・コントローラ２３０〜２３１は、１つまたは複数のＳＡＳポートを介してオフロードＪＢＯＤユニット２２０内のオフロードＥＳＭ２４０〜２４１に結合されてもよい。
【００２２】
オフロードＪＢＯＤユニット２２０は、オフロードＥＳＭ２４０およびオフロードＥＳＭ２４１を含む。オフロードＥＳＭ２４０は、ＩＯＣ２５０、支援機能２６０−１、および支援機能２６０−２を備える。オフロードＥＳＭ２４１は、ＩＯＣ２５１、支援機能２６１−１、および支援機能２６１−２を備える。オフロードＥＳＭ２４０およびオフロードＥＳＭ２４１は、データおよび情報を交換することができるようにリンク２４３によって結合されてもよい。支援機能２６０−１および２６０−２は、本明細書では、まとめて支援機能２６０と呼ばれることもある。支援機能２６１−１および２６１−２は、本明細書では、まとめて支援機能２６１と呼ばれることもある。
【００２３】
一実施形態では、オフロードＥＳＭ２４０およびオフロードＥＳＭ２４１は、パリティおよびＥＣＣ生成、バッテリ・バックアップ式データメモリ、ＮＶＲＡＭ、ならびにコントローラ間書込みキャッシングを含んでもよい支援機能２６０〜２６１を含んでもよい。これらの支援機能は、専用ハードウェア、追加のプロセッサ、ソフトウェア、または、ハードウェアとソフトウェアの組合せによって実行させることができる。例えば、支援機能２６０−１は、ＮＶメモリを含んでもよい。このＮＶメモリは、書込みデータの不揮発性キャッシングを可能にすることができる。このデータは、オフロードＥＳＭ２４０とオフロードＥＳＭ２４１との間でミラーリングされることができ、その結果、このキャッシュされたデータの冗長ストレージを提供する。
【００２４】
オフロードＪＢＯＤ２２０の特別の支援機能２６０〜２６１は、データ保護層（ＤＰＬ）ソフトウェアによって利用されることができる。この機能は、ＳＡＳターゲットとしてＩＯＣ２５０およびＩＯＣ２５１を構成することにより実行させることができる。さらに、ＩＯＣ２５０および２５１は、処理機能を提供することができる。支援機能２６０〜２６１内のＮＶメモリは、停電、システムのシャットダウンなどの後で機能し続けるトレージを提供することができる。
【００２５】
アレイ・コントローラ２３０および２３１は、書込みキャッシュＩ／Ｏ処理を行うために不揮発性メモリを含んでもよい。これは、停電またはＩ／Ｏ中断の場合にデータが保護されることを保証することができる。ストレージ・アレイ・システム２００では、書込みデータは、例えば、ＳＣＳＩコマンドおよび／またはＲＤＭＡコマンドを使用してオフロードＪＢＯＤユニット２２０内の支援機能２６０〜２６１にアレイ・コントローラ２３０または２３１によって書き込まれることができる。データがオフロードＪＢＯＤユニット２２０内の支援機能２６０〜２６１に書き込まれた後は、データは永続的であるとみなされることができる。したがって、アレイ・コントローラ２３０または２３１は、Ｉ／Ｏに関するステータスをホストに返すことができ得る。オフロードＥＳＭ２４０または２４１は、データを支援機能２６０に書き込むフォーク書込み機能を実行することができ、さらに、データを複製し、それをもう一方のオフロードＥＳＭ２４１内のＮＶメモリに送ることができる。この書込みデータは、リンク２４３を介してオフロードＥＳＭ２４０と２４１との間で交換されることができる。リンク２４３は、例えば、ＳＡＳ、ＰＣＩｅ、またはインフィニバンド接続でもよい。他のタイプのリンクも考えられる。
【００２６】
ストレージ・アレイ・システム２００は、データがアレイ・コントローラ２３０または２３１の故障に耐えて存続することを保証するために、書込みキャッシュ・データをアレイ・コントローラ２３０およびアレイ・コントローラ２３１にミラーリングすることができる。そのような場合には、代替コントローラが、第１のコントローラが故障した場合、冗長フェイルオーバ機構の一部分としてそれにミラーリングされたデータを再利用することができる。
【００２７】
一実施形態では、オフロードＪＢＯＤユニット２２０は、アレイ・コントローラ２３０または２３１によって使用され、支援機能２６０〜２６１内のＮＶメモリへのデータのミラーを作成することができる。このＮＶメモリは、同一のオフロードＪＢＯＤユニット２２０内のもう一方のオフロードＥＳＭ２４０または２４１にあってもよく、あるいはシステム内の別のオフロードＪＢＯＤユニット（図示せず）にあってもよい。他の実施形態では、オフロードＪＢＯＤユニット２２０は、アレイ・コントローラ２３０または２３１自体内のメモリのミラーとして使用することができる。
【００２８】
支援機能２６０〜２６１はまた、ストレージ・アレイ・システム２００が初期化中にどのように構成されるべきかを記述する構成メタデータのために使用することができる。これは、電源投入シーケンスを速めることができる、あるいは特定の動作環境（例えば、ホスト・タイプ、デフォルト設定など）を示すことができる。
【００２９】
ストレージ・アレイ・コントローラ２３０または２３１がディスクにライトバック・キャッシュ・データをコミットする用意ができた場合、オフロードＪＢＯＤユニット２２０は、それに支援機能２６０〜２６１に記憶されているライトバック・キャッシュ・データをＳＡＳ領域内の適切なディスクに転送するよう指令する特定のコマンドの発行を受けることができる。このコマンドを受け取るオフロードＥＳＭ２４０または２４１は、データのメモリアドレス、Ｉ／Ｏ装置（磁気ディスクまたは半導体ディスク）、書込み先ＬＢＡ、および書き込まれるべきデータの長さを受け取ることができる。コマンドを受け取った後は、オフロードＥＳＭ２４０または２４１は、Ｉ／Ｏ装置に適切なＳＣＳＩコマンドまたはＳＡＴＡコマンドを発行することができる。Ｉ／Ｏ装置が動作を完了したことを確認するステータスを受け取った後は、オフロードＥＳＭ２４０または２４１は、ライトバック・キャッシュ・データをもはやダーティではないとマーキングし、ストレージ・アレイ・コントローラ２３０または２３１にステータスを返すことができる。
【００３０】
他の実施形態では、オフロードＥＳＭ２４０または２４１は、ストレージ・アレイ・コントローラに対するＬＵＮとして、オフロードＪＢＯＤユニット２２０、および同一のＳＡＳ領域内のその他のＪＢＯＤ内のディスクのための単一のターゲットを提示するターゲット・デバイスとして使用することができる。これは、多くの電源投入およびリセット状態中にストレージ・アレイ・コントローラの発見を速めることができる。
【００３１】
支援機能２６０および２６１は、複数のディスクドライブにわたってＲＡＩＤ方式を実施するために冗長データを計算するのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。支援機能２６０および２６１は、正規表現検索を行うのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。この正規表現検索は、ディープ・パケット検査（ＤＰＩ）またはウィルス・シグネチャ認識のような機能のために使用することができる。支援機能２６０および２６１は、重複除外を支援するためのハッシュ関数を計算するのを支援するハードウェア機能および／またはソフトウェア機能を提供することができる。支援機能２６０および２６１は、ＸＯＲ機能、ＥＣＣ機能、圧縮機能を提供することができる。支援機能２６０および２６１は、他のハードウェア機能および／またはソフトウェア機能を提供することができる。
【００３２】
前述のシステム、ユニット、ドライブ、装置、機器、および機能は、１つまたは複数のコンピュータシステムとともに実装されるか、あるいは１つまたは複数のコンピュータシステムによって実行させることができる。前述の方法はまた、コンピュータ可読媒体上に記憶されることができる。ストレージ・アレイ・システム１００およびストレージ・アレイ・システム２００の要素の多くは、コンピュータシステムでも、それらを備えても、あるいは含んでもよい。これは、オフロードＪＢＯＤ１２０、オフロードＥＳＭ１４０、オフロードＥＳＭ１４１、ＩＯＣ１５０、ＩＯＣ１５１、ＣＰＵ１７０、ＣＰＵ１７１、ＳＡＳエキスパンダ１９０、ＳＡＳエキスパンダ１９１、支援機能１８０−１、１８０−２、１８１−１、１８１−２、アレイ・コントローラ２３０、アレイ・コントローラ２３１、オフロードＪＢＯＤユニット２２０、ＪＢＯＤユニット２２１、オフロードＥＳＭ２４０、オフロードＥＳＭ２４１、ＩＯＣ２５０、ＩＯＣ２５１、支援機能２６０〜２６１、およびストレージ・アレイ・システム１００またはストレージ・アレイ・システム２００に含まれる任意のディスクドライブを含むがそれらに限定されない。
【００３３】
図３は、コンピュータシステムのブロック図を示す。コンピュータシステム３００は、通信インターフェース３２０、処理システム３３０、ストレージ・システム３４０、およびユーザインターフェース３６０を含む。処理システム３３０は、ストレージ・システム３４０に動作可能に結合される。ストレージ・システム３４０は、ソフトウェア３５０およびデータ３７０を記憶する。処理システム３３０は、通信インターフェース３２０およびユーザインターフェース３６０に動作可能に結合される。コンピュータシステム３００は、プログラムされた汎用コンピュータを備えてもよい。コンピュータシステム３００は、マイクロプロセッサを含んでもよい。コンピュータシステム３００は、プログラマブル回路または専用回路を備えてもよい。コンピュータシステム３００は、まとめて要素３２０〜３７０を備える複数の装置、プロセッサ、ストレージ、および／またはインターフェースに分散されてもよい。
【００３４】
通信インターフェース３２０は、ネットワークインターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を備えてもよい。通信インターフェース３２０は、複数の通信装置に分散されてもよい。処理システム３３０は、マイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備えてもよい。処理システム３３０は、複数の処理装置に分散されてもよい。ユーザインターフェース３６０は、キーボード、マウス、音声認識インターフェース、マイクロホンおよびスピーカ、グラフィカル・ディスプレイ、タッチスクリーン、または他のタイプのユーザインターフェース装置を備えてもよい。ユーザインターフェース３６０は、複数のインターフェース装置に分散されてもよい。ストレージ・システム３４０は、ディスク、テープ、集積回路、ＲＡＭ、ＲＯＭ、ネットワークストレージ、サーバ、または他のメモリ機能を備えてもよい。ストレージ・システム３４０は、コンピュータ可読媒体でもよい。ストレージ・システム３４０は、複数のメモリ装置に分散されてもよい。
【００３５】
処理システム３３０は、ストレージ・システム３４０からソフトウェア３５０を取り出し、実行する。処理システムは、データ３７０を取り出し、記憶することができる。処理システムはまた、通信インターフェース３２０を介してデータを取り出し、記憶することができる。処理システム３５０は、有形の結果を達成するために、ソフトウェア３５０またはデータ３７０を作成または変更することができる。処理システムは、有形の結果を達成するために、通信インターフェース３２０またはユーザインターフェース３７０を制御することができる。処理システムは、通信インターフェース３２０を介して、リモートに記憶されているソフトウェアを取り出し、実行することができる。
【００３６】
ソフトウェア３５０およびリモートに記憶されているソフトウェアは、オペレーティングシステム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および、通常はコンピュータシステムによって実行される他のソフトウェアを備えてもよい。ソフトウェア３５０は、アプリケーションプログラム、アプレット、ファームウェア、または、通常はコンピュータシステムによって実行される他の形態の機械可読処理命令を備えてもよい。処理システム３３０によって実行された場合、ソフトウェア３５０、またはリモートに記憶されているソフトウェアは、コンピュータシステム３００に本明細書に記載されているように動作するよう指図することができる。
【００３７】
本発明の上記の記述は、例示および説明のために提示されてきた。網羅的であること、または、本発明を開示された厳密な形態に限定することを意図するものではなく、他の変更形態および変形形態が上記の教示にかんがみて可能であり得る。実施形態は、本発明の原理およびその実用的な適用形態を最もわかりやすく説明し、それによって、他の当業者が本発明を企図された特定の用途に適するように様々な実施形態および様々な変更形態において最もうまく利用することができるようにするために選択され記述された。添付の特許請求の範囲は、従来技術によって制限されない限り、本発明の他の代替実施形態を含むと解釈されるものとする。
【図１】
2010287208.tif 000003
【図２】
2010287208.tif 000004
【図３】
2010287208.tif 000005