(57)【要約】ストレージ動作を合体させるための一つまたは複数の技法および／またはシステムが提供される。たとえば、一つまたは複数の記憶装置内に記憶されたデータへのアクセスを提供するよう構成されたファイル・サーバーによってクライアントからストレージ動作が受領される。追跡目的のために該ストレージ動作の通知が生成されてもよい。その後のストレージ動作については合体ポリシーが（たとえばあらかじめ定義された時間期間の経過後に）施行停止になるまで追加的な通知が生成されないよう、合体ポリシーが施行されてもよい。合体ポリシーの施行はたとえば、過大な数のストレージ動作を追跡することを緩和する。さもなければ、そのようなストレージ動作は、処理資源を利用し、帯域幅を消費し、ほとんどまたは全く価値のないことがありうる冗長な情報を提供するなどしうる。
2017526066.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ動作を合体させるための方法であって：
クライアント装置から、ストレージ動作型および前記クライアント装置のクライアント識別子に対応する第一のストレージ動作を受領する段階と；
前記第一のストレージ動作の第一のレコードを生成する段階と；
前記第一のレコードについて満了イベントを定義する段階と；
前記第一のレコードに基づいて前記第一のストレージ動作についての第一の通知の生成をトリガーする段階と；
前記第一の通知をサービスに送る段階と；
前記満了イベントの満了まで合体ポリシーを施行する段階であって、前記合体ポリシーは、前記ストレージ動作型および前記クライアント識別子に関連付けられたその後のストレージ動作のその後の通知の生成をトリガーすることをブロックする、段階と；
前記合体ポリシーの施行中に前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作を受領することに応答して、前記合体ポリシーに基づいて、その後の通知の生成をトリガーすることなく、前記その後のストレージ動作を前記第一のレコードと合体させる段階と；
前記満了イベントの満了に応答して：
前記第一のレコードを削除し；
前記合体ポリシーを施行停止する段階とを含む、
方法。
【請求項２】
満了イベントを定義することが：
満了時刻を前記満了イベントとして指定することを含む、
請求項１記載の方法。
【請求項３】
満了イベントを定義することが：
前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作の閾値回数を前記満了イベントとして指定することを含む、
請求項１記載の方法。
【請求項４】
満了イベントを定義することが：
前記サービスからの、前記ストレージ動作型および前記クライアント識別子に対応するレコード情報の要求の受領イベントを、前記満了イベントとして指定することを含む、
請求項１記載の方法。
【請求項５】
前記第一の通知を送ることが：
少なくとも一つのその後のストレージ動作が受領される前に前記第一の通知を前記サービスに送ることを含む、
請求項１ないし４のうちいずれか一項記載の方法。
【請求項６】
前記第一の通知を送ることが：
前記満了イベントの満了に応答して、前記第一の通知を前記サービスに送ることを含む、
請求項１ないし５のうちいずれか一項記載の方法。
【請求項７】
前記満了イベントの満了前に受領された一つまたは複数のその後のストレージ動作の記述を、前記第一の通知内に含めることを含む、請求項６記載の方法。
【請求項８】
前記第一の通知を送ることが：
前記第一の通知を、前記第一のストレージ動作によってターゲットとされるファイルを管理するファイル・サーバーから、前記サービスをホストするリモート装置に送ることを含み、前記リモート装置は前記ファイル・サーバーに対してリモートであり、前記クライアント装置に対してリモートである、請求項１ないし７のうちいずれか一項記載の方法。
【請求項９】
前記第一のストレージ動作の第一のレコードを生成することが：
前記第一のストレージ動作によってターゲットとされるファイルを管理するファイル・サーバーによって、前記第一のレコードを生成することを含み、前記ファイル・サーバーは前記クライアント装置に対してリモートである、請求項１ないし８のうちいずれか一項記載の方法。
【請求項１０】
前記第一の通知を送ることが：
前記第一の通知を監査サービスに送ることを含む、
請求項１ないし９のうちいずれか一項記載の方法。
【請求項１１】
前記第一の通知を送ることが：
前記第一の通知をポリシー・サービスに送ることを含む、
請求項１ないし９のうちいずれか一項記載の方法。
【請求項１２】
前記クライアント識別子が、前記クライアント装置のIPアドレスまたはユーザー識別子のうちの少なくとも一方を含む、請求項１ないし１１のうちいずれか一項記載の方法。
【請求項１３】
前記第一のストレージ動作がネットワーク・ファイル・システム（NFS）ストレージ動作を含む、請求項１ないし１２のうちいずれか一項記載の方法。
【請求項１４】
前記合体ポリシーを施行停止することに応答して：
前記クライアント装置から、前記ストレージ動作型および前記クライアント装置の前記クライアント識別子に対応する第二のストレージ動作を受領し；
前記第二のストレージ動作の第二のレコードを生成し；
前記第二のレコードについて第二の満了イベントを定義し；
前記第二のレコードに基づいて前記第二のストレージ動作についての第二の通知の生成をトリガーし；
前記第二の通知を前記サービスに送り；
前記第二の満了イベントの満了まで前記合体ポリシーを施行することを含む、
請求項１ないし１３のうちいずれか一項記載の方法。
【請求項１５】
前記合体ポリシーの施行中に前記ストレージ動作型および前記クライアント識別子に対応する第二のその後のストレージ動作を受領することに応答して、前記合体ポリシーに基づいて、第二のその後の通知の生成をトリガーすることなく、前記第二のその後のストレージ動作を前記第二のレコードと合体させ；
前記第二の満了イベントの満了に応答して：
前記第二のレコードを削除し；
前記合体ポリシーを施行停止することを含む、
請求項１４記載の方法。
【請求項１６】
一つまたは複数のプロセッサによって実行されたときに請求項１ないし１５のうちいずれか一項記載の方法のストレージ動作を合体させる方法を実行する命令を含むコンピュータ・プログラム。
【請求項１７】
合体コンポーネントを有する、ストレージ動作を合体させるためのシステムであって、前記合体コンポーネントは：
クライアント装置から、ストレージ動作型および前記クライアント装置のクライアント識別子に対応する第一のストレージ動作を受領する段階と；
前記第一のストレージ動作の第一のレコードを生成する段階と；
前記第一のレコードについて満了イベントを定義する段階と；
前記第一のレコードに基づいて前記第一のストレージ動作についての第一の通知の生成をトリガーする段階と；
前記第一の通知をサービスに送る段階と；
前記満了イベントの満了まで合体ポリシーを施行する段階であって、前記合体ポリシーは、前記ストレージ動作型および前記クライアント識別子に関連付けられたその後のストレージ動作のその後の通知の生成をトリガーすることをブロックする、段階と；
前記合体ポリシーの施行中に前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作を受領することに応答して、前記合体ポリシーに基づいて、その後の通知の生成をトリガーすることなく、前記その後のストレージ動作を前記第一のレコードと合体させる段階と；
前記満了イベントの満了に応答して：
前記第一のレコードを削除し；
前記合体ポリシーを施行停止する段階とを実行するよう構成されている、
システム。
【請求項１８】
前記第一のストレージ動作がネットワーク・ファイル・システム（NFS）ストレージ動作を含む、請求項１７記載のシステム。
【請求項１９】
前記合体コンポーネントがさらに：
前記第一の通知を、前記第一のストレージ動作によってターゲットとされるファイルを管理するファイル・サーバーから、前記サービスをホストするリモート装置に送ることを含み、前記リモート装置は前記ファイル・サーバーに対してリモートであり、前記クライアント装置に対してリモートである、請求項１７または１８記載のシステム。
【請求項２０】
前記合体コンポーネントがさらに：
前記満了イベントを、満了時刻、その後のストレージ動作の閾値回数または前記サービスからのレコード情報の受領イベントのうちの少なくとも一つに基づいて定義するよう構成されている、請求項１７ないし１９のうちいずれか一項記載のシステム。
【請求項２１】
実行されたときにストレージ動作を合体させるための方法を実行する命令を有するコンピュータ可読媒体であって、前記方法は：
クライアント装置から、ストレージ動作型および前記クライアント装置のクライアント識別子に対応する第一のストレージ動作を受領する段階と；
前記第一のストレージ動作の第一のレコードを生成する段階と；
前記第一のレコードについて満了イベントを定義する段階と；
前記第一のレコードに基づいて前記第一のストレージ動作についての第一の通知の生成をトリガーする段階と；
前記第一の通知をサービスに送る段階と；
前記満了イベントの満了まで合体ポリシーを施行する段階であって、前記合体ポリシーは、前記ストレージ動作型および前記クライアント識別子に関連付けられたその後のストレージ動作のその後の通知の生成をトリガーすることをブロックする、段階と；
前記合体ポリシーの施行中に前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作を受領することに応答して、前記合体ポリシーに基づいて、その後の通知の生成をトリガーすることなく、前記その後のストレージ動作を前記第一のレコードと合体させる段階と；
前記満了イベントの満了に応答して：
前記第一のレコードを削除し；
前記合体ポリシーを施行停止する段階とを含む、
コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ファイル・サーバー（たとえば、サーバー、ストレージ・サーバー、データ記憶および管理サーバーなど）は、一つまたは複数の記憶装置上に記憶されたファイルへのアクセスをクライアントに提供しうる。記憶ポリシーを実装するポリシー・サービス、ファイルへのユーザー・アクセスを追跡する監査サービスおよび／または他のサービスは、クライアントのためにファイル・サーバーによって実行されたストレージ動作を追跡しうる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
比較的多数のストレージ動作が追跡されることがあるので、レイテンシー、処理資源消費、帯域幅消費、本質的でない追跡情報からのノイズ（たとえば、監査サービスは単にユーザーがファイルを開くかどうかに関する情報を求めることがあり、よってファイルが開いている間に実行される各書き込み動作は監査サービスのためにはノイズとなりうる）および／または他の問題の増大が帰結しうる。
【図面の簡単な説明】
【０００３】
【図１】本稿に記載される施策の一つまたは複数に基づく、例示的なクラスタリングされたネットワークを示すコンポーネント・ブロック図である。
【図２】本稿に記載される施策の一つまたは複数に基づく、例示的なデータ・ストレージ・システムを示すコンポーネント・ブロック図である。
【図３】ストレージ動作を合体させる例示的な方法を示すフローチャートである。
【図４】満了時間に基づいてストレージ動作を合体させるための例示的なシステムを示すコンポーネント・ブロック図である。
【図５】満了時間に基づいてストレージ動作を合体させるための例示的なシステムを示すコンポーネント・ブロック図である。
【図６】閾値回数のその後のストレージ動作に基づいてストレージ動作を合体させるための例示的なシステムを示すコンポーネント・ブロック図である。
【図７】受領イベントに基づいてストレージ動作を合体させるための例示的なシステムを示すコンポーネント・ブロック図である。
【図８】本稿に記載される施策の一つまたは複数に基づくコンピュータ可読媒体の例である。
【発明を実施するための形態】
【０００４】
特許請求される主題のいくつかの例についてこれから図面を参照しつつ記述する。図面において、同様の参照符号は一般に、全体を通じて同様の要素を指すために使われる。以下の記述では、説明の目的で、特許請求される主題の理解を提供するために数多くの個別的詳細が記載されるが、特許請求される主題はそれらの個別的詳細なしで実施されてもよい。詳細な説明のどの部分も従来技術として自認されるものではない。
【０００５】
ストレージ動作を合体させる（coalescing）ための一つまたは複数のシステムおよび／または技法が提供される。クライアント装置からの第一のストレージ動作が受領される（たとえば、クライアントがファイル・サーバーを通じてテキスト文書を開こうとする）とき、前記ストレージ動作の第一のレコードが生成されてもよい。該第一のレコードについて満了イベントが定義されてもよい（たとえば、第一のレコードは、三秒間保持されてもよい；閾値回数のその後のストレージ動作が受領されるまで保持されてもよい；サービスがレコード情報へのアクセスを要求するまで保持されてもよい；など）。第一のストレージ動作の第一の通知が、該第一のレコードに基づいて生成されてもよい。第一のストレージ動作の第一の通知は、サービスに送られてもよい（たとえば、監査サービスが、テキスト文書にアクセスするストレージ動作の通知を受領することに対する関心を表明してもよい）。合体ポリシーは、満了イベントの満了まで施行されてもよい。合体ポリシーは、その後のストレージ動作について新たな通知を生成するのをトリガーすることをブロックしてもよい（たとえば、ユーザーによって当該テキスト文書になされる編集に基づいて、該テキスト文書への多すぎるその後の書き込み動作がクライアント装置から受領されることがありうる；50mbのテキスト文書の読み取り動作はかなりの数の増分的な64kb読み取り動作を含みうる、など；だが合体ポリシーの存在のため、新たな通知の生成はそのようなストレージ動作によってトリガーされなくてもよい）。満了イベントの満了に応答して、第一のレコードが削除されてもよく、合体ポリシーは不施行となってもよい（たとえば、クライアント装置からのそのテキスト文書に対するその後のストレージ動作が新たなレコードおよび新たな通知の生成をトリガーしてもよい）。ストレージ動作の合体は、サービスに送られる通知回数を減らすことができ、そのことはネットワーク帯域幅利用、ノイズ（たとえば、監査サービスは単にユーザーがテキスト文書にアクセスしたことを知ることに関心があるだけであることがあり、テキスト文書に対する編集についてのさらなる通知には関心がないことがありうる。
【０００６】
ストレージ動作を合体させるためのコンテキストを提供するために、図１はクラスタリングされたネットワーク環境またはネットワーク・ストレージ環境１００の実施形態を示している。しかしながら、本稿に記載される技法等は、クラスタリングされたネットワーク１００、非クラスター・ネットワーク環境および／またはデスクトップ・コンピューティング環境のような多様な他のコンピューティング環境内で実装されうる。すなわち、付属の請求項の範囲を含め本開示は、本稿で与えられる例に限定されることは意図されていない。同じまたは類似したコンポーネント、要素、特徴、項目、モジュールなどがのちに図に示されるとき、前の図に関して以前に論じられた場合には、その同様の（たとえば冗長な）議論はその後の図について述べるときには（たとえば簡単のためおよび理解を容易にするため）割愛されることがありうる。
【０００７】
図１は、本稿に記載される技法および／またはシステムの少なくともいくつかの実施形態を実装しうる例示的なクラスタリングされたネットワーク環境１００を示すブロック図である。例示的な環境１００は、データ・ストレージ・システムまたはストレージ・サイト１０２および１０４を有しており、これらはストレージ・システム１０２と１０４（およびたとえばノード１１６および１１８のような、その中の一つまたは複数のモジュール、コンポーネントなど）の間の通信を容易にするプライベートなインフィニバンド（Infiniband）またはファイバーチャネル（FC:  Fibre  Channel）ネットワークとして具現されたコンピューティング・ネットワークのようなクラスター・ファブリック１０６を通じて結合されている。図１には二つのデータ・ストレージ・システム１０２および１０４ならびに二つのノード１１６および１１８が示されているが、任意の好適な数のそのようなコンポーネントが考えられていることは理解されるであろう。一例では、ノード１１６および１１８は記憶コントローラを有し（たとえば、ノード１１６は一次またはローカルな記憶コントローラを有していてもよく、ノード１１８は二次またはリモートの記憶コントローラを有していてもよい）、それらがホスト装置１０８、１１０のようなクライアント装置に、データ記憶装置１２８、１３０内に記憶されたデータへのアクセスを提供する。同様に、本稿でそうでないことが明記されない限り、同じことは本稿で言及されるおよび／または付属の図面に示される他のモジュール、要素、特徴、項目などについても成り立つ。すなわち、本稿に開示される特定の数のコンポーネント、モジュール、要素、特徴、項目などは、限定する意味に解釈されることは意図されていない。
【０００８】
さらに、クラスタリングされるネットワークがいかなる特定の地理的領域にも限定されず、ローカルおよび／またはリモートにクラスタリングされることができることは理解されるであろう。このように、ある実施形態では、クラスタリングされたネットワークは、複数の地理的位置に位置する複数のストレージ・システムおよび／またはノードにわたって分散されることができる。一方、別の実施形態では、クラスタリングされたネットワークは、同じ地理的位置に（たとえばデータ記憶装置の単一のオンサイト・ラック内に）存在するデータ・ストレージ・システム（たとえば１０２、１０４）を含むことができる。
【０００９】
図示した例では、たとえばクライアント装置、パーソナル・コンピュータ（PC）、記憶のために使われるコンピューティング装置（たとえばストレージ・サーバー）および他のコンピュータまたは周辺装置（たとえばプリンター）を含んでいてもよい一つまたは複数のホスト装置１０８、１１０は、それぞれのデータ・ストレージ・システム１０２、１０４にストレージ・ネットワーク接続１１２、１１４によって結合される。ネットワーク接続は、データ・パケットを交換するためにたとえば共通インターネット・ファイル・システム（CIFS:  Common  Internet  File  System）プロトコルまたはネットワーク・ファイル・システム（NFS:  Network  File  System）プロトコルのようなネットワーク・アタッチト・ストレージ（NAS:  Network  Attached  Storage）プロトコルを利用するローカル・エリア・ネットワーク（LAN）または広域ネットワーク（WAN）をなしていてもよい。例示的に、ホスト装置１０８、１１０はアプリケーションを実行する汎用コンピュータであってもよく、情報の交換のためのクライアント／サーバー・モデルを使ってデータ・ストレージ・システム１０２、１０４と対話してもよい。すなわち、ホスト装置がデータ・ストレージ・システムからのデータ（たとえば、ネットワーク・ストレージ・コントロールによって管理される記憶装置上のデータ。該ネットワーク・ストレージ・コントロールが該記憶装置のためにホスト装置によって発されたI/Oコマンドを処理するよう構成される）を要求してもよく、データ・ストレージ・システムは、該要求の結果を、一つまたは複数のネットワーク接続１１２、１１４を介してホスト装置に返してもよい。
【００１０】
クラスタリングされたデータ・ストレージ・システム１０２、１０４上のノード１１６、１１８は、データ記憶および管理サービスをたとえば複数のリモートな位置をもつ企業に提供するためにクラスターとして相互接続されているネットワークまたはホスト・ノードであることができる。データ記憶および管理ネットワーク・クラスター環境１００におけるそのようなノードは、たとえば接続点、再分配点または通信端点としてネットワークに取り付けられた装置であることができる。ノードは、ネットワーク通信チャネルを通じて情報を送信、受信および／または転送できてもよく、これらの基準の任意のものまたは全部を満たすいかなる装置であってもよい。ノードの一例は、ネットワークに取り付けられたデータ記憶および管理サーバーであってもよく、該サーバーは、データ記憶および管理システムにおいてサーバーとして動作するよう特に構成された、汎用コンピュータまたはコンピューティング装置を有することができる。
【００１１】
一例では、ノード１１６、１１８のようなノードの第一のクラスター（たとえば、一つまたは複数の記憶装置の第一の論理的なグループ化を含む第一の記憶アグリゲートへのアクセスを提供するよう構成された記憶コントローラの第一の集合）が第一のストレージ・サイトに位置していてもよい。図示しないノードの第二のクラスター（たとえば、一つまたは複数の記憶装置の第二の論理的なグループ化を含む第二の記憶アグリゲートへのアクセスを提供するよう構成された記憶コントローラの第二の集合）が第二のストレージ・サイトに位置していてもよい。ノードの第一のクラスターおよびノードの第二のクラスターは、災害復旧構成に従って構成されていてもよい。災害復旧構成では、災害ノード・クラスターを有する災害ストレージ・サイトにおいて災害が起こった場合に、生き残ったノードのクラスターが、災害ノード・クラスターの記憶装置へのスイッチオーバー・アクセスを提供する（たとえば、第二のストレージ・サイトにおいて災害が起こった場合、第一のクラスターのノードが、第二の記憶アグリゲートの記憶装置へのスイッチオーバー・データ・アクセスをクライアント装置に提供する）。
【００１２】
例示的環境１００において示されているように、ノード１１６、１１８は、クラスターのために分散式記憶アーキテクチャーを提供するよう協調するさまざまな機能コンポーネントを有することができる。たとえば、これらのノードはネットワーク・モジュール１２０、１２２（たとえばNモジュールまたはNブレード）およびデータ・モジュール１２４、１２６（たとえばDモジュールまたはDブレード）を有することができる。ネットワーク・モジュール１２０、１２２は、ノード１１６、１１８（たとえば、ネットワーク・ストレージ・コントローラ）がネットワーク接続１１２、１１４を通じてホスト装置１０８、１１０と接続することを許容し、たとえばホスト装置１０８、１１０が分散式ストレージ・システムに記憶されたデータにアクセスすることを許容するよう構成されていることができる。さらに、ネットワーク・モジュール１２０、１２２は、クラスター・ファブリック１０６を通じて一つまたは複数の他のコンポーネントとの接続を提供することができる。たとえば、図１において、第一のノード１１６の第一のネットワーク・モジュール１２０は、第二のノード１１８の第二のデータ・モジュール１２６を通じて要求を送ることによって第二のデータ記憶装置１３０にアクセスすることができる。
【００１３】
データ・モジュール１２４、１２６は、ディスクもしくはディスクのアレイ、フラッシュ・メモリまたは他の何らかの形のデータ記憶のような一つまたは複数のデータ記憶装置１２８、１３０をノード１１６、１１８に接続するよう構成されていることができる。ノード１１６、１１８は、クラスター・ファブリック１０６によって相互接続され、たとえばクラスター中のそれぞれのノードがクラスター中の異なるノードに接続されたデータ記憶装置１２８、１３０上のデータにアクセスすることを許容することができる。しばしば、データ・モジュール１２４、１２６は、たとえば小型コンピュータ・システム・インターフェース（SCSI:  Small  Computer  System  Interface）またはファイバー・チャネル・プロトコル（FCP:  Fiber  Channel  Protocol）のような記憶領域ネットワーク（SAN:  storage  area  network）プロトコルに従ってデータ記憶装置１２８、１３０と通信する。このように、ノード１１６、１１８上のオペレーティング・システムから見ると、データ記憶装置１２８、１３０は、オペレーティング・システムにローカルに取り付けられているように見えることができる。このようにして、異なるノード１１６、１１８などが、抽象的なファイルを明示的に要求するのではなく、オペレーティング・システムを通じて、データ・ブロックにアクセスしうる。
【００１４】
例示的実施形態１００は同数のNおよびDモジュールを示しているものの、他の実施形態はこれらのモジュールの異なる数を含んでいてもよいことは理解しておくべきである。たとえば、NモジュールとDモジュールの間に一対一対応がないクラスターにおいて相互接続された複数のNおよび／またはDモジュールがあってもよい。すなわち、異なるノードは異なる数のNおよびDモジュールを有することができ、同じノードはDモジュールとは異なる数のNモジュールを有することができる。
【００１５】
さらに、ホスト装置１０８、１１０はクラスター中のノード１１６、１１８と、ネットワーク接続１１２、１１４を通じてネットワーク接続されることができる。例として、クラスターにネットワーク接続されるそれぞれのホスト装置１０８、１１０はクラスター中のノード１１６、１１８のサービス（たとえば、データ・パケットの形の情報の交換）を要求してもよく、ノード１１６、１１８は要求されたサービスの結果をホスト装置１０８、１１０に返すことができる。ある実施形態では、ホスト装置１０８、１１０は、データ・ストレージ・システム１０２、１４０中でそれらのノード（たとえばネットワーク・ホスト）１１６、１１８に存在するネットワーク・モジュール１２０、１２２と情報を交換することができる。
【００１６】
ある実施形態では、データ記憶装置１２８、１３０はボリューム１３２を有する。これは、ディスク・ドライブまたはディスク・アレイまたは他の記憶（たとえばフラッシュ）への情報の記憶の、たとえばデータのためのファイル・システムとしての実装である。ボリュームは、たとえばディスクの一部、複数のディスクの集合または複数のディスクの諸部分にまたがることができ、典型的にはストレージ・システムにおけるディスク・スペース上のファイル記憶の全体的な論理的配置を定義する。ある実施形態では、ボリュームは、ボリューム内の階層的ディレクトリー構造において存在する一つまたは複数のファイルとして、記憶されるデータを有することができる。
【００１７】
ボリュームは典型的には、特定のストレージ・システムに関連付けられていてもよいフォーマットで構成されており、それぞれのボリューム・フォーマットは、典型的には、それらのボリュームに機能性を提供する、たとえば諸ボリュームがクラスターを形成する能力を提供する特徴を有する。たとえば、第一のストレージ・システムは自分の諸ボリュームのために第一のフォーマットを利用してもよく、第二のストレージ・システムは自分の諸ボリュームのために第二のフォーマットを利用してもよい。
【００１８】
例示的環境１００では、ホスト装置１０８、１１０は、データを記憶し、ボリューム１３２からデータを取り出すためにデータ・ストレージ・システム１０２、１０４を利用することができる。この実施形態では、たとえば、ホスト装置１０８はデータ・パケットをデータ・ストレージ・システム１０２内のノード１１６内のNモジュール１２０に送ることができる。ノード１１６はそのデータをDモジュール１２４を使ってデータ記憶装置１２８に転送することができる。ここで、データ記憶装置１２８はボリューム１３２Ａを有する。このように、この例では、ホスト装置は記憶ボリューム１３２Ａにアクセスし、ネットワーク接続１１２を使って接続されたデータ・ストレージ・システム１０２を使ってデータを記憶および／または取得することができる。さらに、この実施形態において、ホスト装置１１０は、（たとえばデータ・ストレージ・システム１０２からリモートであってもよい）データ・ストレージ・システム１０４内のホスト１１８内のNモジュール１２２とデータを交換することができる。ホスト１１８は、Dモジュール１２６を使って該データをデータ記憶装置１３０に転送し、それによりデータ記憶装置１３０に関連付けられたボリューム１３２Ｂにアクセスすることができる。
【００１９】
ストレージ動作を合体させることが、クラスタリングされたネットワーク環境１００内で実装されてもよいことが理解されうる。たとえば、ノード１１６および／またはノード１１８について合体コンポーネントが実装されてもよい。合体コンポーネントは、ノード１１６および／またはノード１１８によってホスト装置１０８および／またはホスト装置１１０から受領されるストレージ動作を合体するよう構成されていてもよい。
【００２０】
図２は、データ・ストレージ・システム２００（たとえば図１の１０２、１０４）の例解用の例であり、本稿に記載される技法および／またはシステムの一つまたは複数を実装しうるコンポーネントの実施形態のさらなる詳細を与えている。例示的なデータ・ストレージ・システム２００は、ノード２０２（たとえば図１のホスト・ノード１１６、１１８）と、データ記憶装置２３４（たとえば、図１のデータ記憶装置１２８、１３０）とを有する。ノード２０２はたとえば汎用コンピュータまたはストレージ・サーバーとして動作するよう特に構成された他の何らかのコンピューティング装置であってもよい。データ記憶装置２３４上に記憶されたファイルおよび／または他のデータへのアクセスを提供するために、ホスト装置２０５（たとえば図１の１０８、１１０）は、たとえばネットワーク２１６を通じてノード２０２に接続されることができる。一例では、ノード２０２は、ホスト装置２０５のようなクライアント装置に、データ記憶装置２３４内に記憶されたデータへのアクセスを提供する、記憶コントローラを有する。
【００２１】
データ記憶装置２３４は、ディスク・アレイ２１８、２２０、２２２のディスク２２４、２２６、２２８のような大容量記憶装置を有することができる。本稿に記載される技法およびシステムは例示的実施形態によって限定されないことは理解されるであろう。たとえば、ディスク２２４、２２６、２２８は、磁気ディスク・ドライブ、フラッシュ・メモリおよび情報を記憶するよう適応された他の任意の同様の媒体を含むがそれに限定されないいかなる型の大容量記憶装置を有していてもよい。該情報は、たとえばデータ（D）および／またはパリティ（P）情報を含む。
【００２２】
ノード２０２は、一つまたは複数のプロセッサ２０４、メモリ２０６、ネットワーク・アダプター２１０、クラスター・アクセス・アダプター２１２およびストレージ・アダプター２１４がシステム・バス２４２によって相互接続されたものを有する。ストレージ・システム２００は、ノード２０２のメモリ２０６にインストールされたオペレーティング・システム２０８をも含む。該メモリ２０６はたとえば、アレイ内の障害を起こしたディスクのデータの再構成プロセスを最適化する、独立な（または安価な）ディスクの冗長アレイ（RAID:  Redundant  Array  of  Independent  [Inexpensive]  Disks）最適化技法を実装することができる。
【００２３】
オペレーティング・システム２０８は、データ・ストレージ・システムのための通信ならびにクラスター・ファブリック２１５（たとえば図１の１０６）に取り付けられるなどしたクラスタリングされたネットワーク内にあってもよい他のデータ・ストレージ・システムの間の通信をも管理することができる。このように、ネットワーク・ストレージ・コントローラのようなノード２０２は、ホスト装置要求に応答して、該ホスト装置要求に従ってデータ記憶装置２３４（またはたとえば追加的なクラスタリングされた諸装置）上のデータを管理することができる。オペレーティング・システム２０８はしばしば、データ・ストレージ・システム２００上に一つまたは複数のファイル・システムを確立することができる。ここで、ファイル・システムは、たとえばファイルおよびディレクトリーの持続的な階層的な名前空間を実装するソフトウェア・コードおよびデータ構造を含むことができる。一例として、新たなデータ記憶装置（図示せず）がクラスタリングされたネットワーク・システムに追加されるとき、オペレーティング・システム２０８は、既存のディレクトリー木のどこに該新たなデータ記憶装置に関連付けられた新たなファイルが記憶されるかを通知される。これはしばしば、ファイル・システムを「マウントする」と称される。
【００２４】
例示的なデータ・ストレージ・システム２００では、メモリ２０６は、関係するソフトウェア・プログラム・コードおよびデータ構造を記憶するためにプロセッサ２０４およびアダプター２１０、２１２、２１４によってアドレッシング可能な記憶位置を含むことができる。プロセッサ２０４およびアダプター２１０、２１２、２１４はたとえば、ソフトウェア・コードを実行し、データ構造を操作するよう構成された処理要素および／または論理回路を含んでいてもよい。オペレーティング・システム２０８の諸部分は典型的にはメモリ２０６に存在し、処理要素によって実行される。オペレーティング・システム２０８は、ストレージ・システムによって実装されるファイル・サービスをサポートするストレージ動作を呼び出すことなどによって、ストレージ・システムを機能的に編成する。さまざまなコンピュータ可読媒体を含む他の処理およびメモリ機構が、本稿に記載される技法に関するプログラム命令を記憶および／または実行するために使われてもよいことは当業者には明白であろう。たとえば、オペレーティング・システムは、仮想機械のプロビジョニングを支援するために一つまたは複数の制御ファイル（図示せず）を利用することもできる。
【００２５】
ネットワーク・アダプター２１０は、データ・ストレージ・システム２００をホスト装置２０５にコンピュータ・ネットワーク２１６を通じて接続するために必要とされる機械的、電気的および信号伝達回路を含む。コンピュータ・ネットワーク２１６は、ポイントツーポイント接続または共有媒体など、たとえばローカル・エリア・ネットワークを含んでいてもよい。ホスト装置２０５（たとえば図１の１０８、１１０）は、アプリケーションを実行するよう構成された汎用コンピュータであってもよい。上記のように、ホスト装置２０５は、情報送達のクライアント／ホスト・モデルに従ってデータ・ストレージ・システム２００と対話してもよい。
【００２６】
ストレージ・アダプター２１４は、ホスト装置２０５によって要求された情報にアクセスする（たとえばネットワーク・ストレージ・コントローラによって管理されている記憶装置上のデータにアクセスする）ためにノード２０２上で実行されているオペレーティング・システム２０８と協働する。その情報は、磁気ディスク・ドライブ、フラッシュ・メモリおよび／または情報を記憶するよう適応された他の任意の同様の媒体といった書き込み可能媒体の任意の型に取り付けられたアレイに記憶されてもよい。例示的なデータ・ストレージ・システム２００では、情報はディスク２２４、２２６、２２８上のデータ・ブロックにおいて記憶されることができる。ストレージ・アダプター２１４は、記憶領域ネットワーク（SAN:  storage  area  network）プロトコル（たとえば、小型コンピュータ・システム・インターフェース（SCSI）、iSCSI、ハイパーSCSI、ファイバー・チャネル・プロトコル（FCP））のような、I/O相互接続構成を通じてディスクに結合する入出力（I/O）インターフェース回路を含むことができる。情報は、ストレージ・アダプター２１４によって取り出され、システム・バス２４２を通じてネットワーク・アダプター２１０に（および／またはクラスター中の別のノードに送る場合にはクラスター・アクセス・アダプター２１２に）転送されるのに先立ち、必要なら、一つまたは複数のプロセッサ２０４（またはストレージ・アダプター２１４自身）によって処理される。ここで、情報はデータ・パケットにフォーマット化され、ネットワーク接続２１６を通じてホスト装置２０５に返される（および／またはクラスター・ファブリック２１５を通じてクラスターに取り付けられた別のノードに返される）。
【００２７】
ある実施形態では、アレイ２１８、２２０、２２２上の情報の記憶は、ディスク・スペースの全体的な論理的配置を定義する、ディスク２２４、２２６、２２８のクラスターからなる一つまたは複数の記憶「ボリューム」２３０、２３２として実装されることができる。一つまたは複数のボリュームをなすディスク２２４、２２６、２２８は典型的には、RAIDの、一つまたは複数のグループとして編成される。例として、ボリューム２３０は、ディスク２２４および２２６のクラスターを有するディスク・アレイ２１８および２２０のアグリゲート〔集合体〕を有する。
【００２８】
ある実施形態では、ディスク２２４、２２６、２２８へのアクセスを容易にするために、オペレーティング・システム２０８は、前記情報をディスク上のディレクトリーおよびファイルの階層構造として論理的に編成するファイル・システム（たとえば随所書き込みファイル・システム（write  anywhere  file  system））を実装していてもよい。この実施形態では、それぞれのファイルは、情報を記憶するよう構成された一組のディスク・ブロックとして実装されてもよく、ディレクトリーは他のファイルおよびディレクトリーについての情報が記憶される特別にフォーマットされたファイルとして実装されてもよい。
【００２９】
このデータ・ストレージ・システム２００内の根底にある物理構成が何であれ、データは物理的および／または仮想ボリューム内のファイルとして記憶されることができる。ボリュームは、一例では32ビットの長さであることのできるファイル・システム識別子（FSID:  file  system  identifier）のようなそれぞれのボリューム識別子と関連付けられることができる。
【００３０】
物理的なボリュームは、一つまたは複数のデータ記憶装置２３４（たとえば、独立な（または安価な）ディスクの冗長アレイ（RAIDシステム））の少なくとも一部のような、アドレス、アドレッシング可能空間、位置などが変化しない、物理的な記憶装置の少なくとも一部に対応する。典型的には、物理的なボリュームの位置が変化しないというのは、それにアクセスするために使われるアドレス（の範囲）が一般に一定のままであるという意味においてである。
【００３１】
対照的に、仮想ボリュームは、異なる物理的記憶装置の別個の部分のアグリゲートに記憶される。仮想ボリュームは、ディスク２２４、２２６および／または２２８のそれぞれからのいくらかの利用可能なスペースのような、異なる物理的記憶装置の異なる利用可能な部分の集まりであってもよい。仮想ボリュームはどの一つの特定の記憶装置にも「結びつけられて」いないので、仮想ボリュームは抽象化または仮想化のレイヤーを含むと言うことができることが理解されるであろう。これにより、仮想ボリュームはサイズ変更されたり、および／または何らかの点で柔軟であったりすることができる。
【００３２】
さらに、仮想ボリュームは、一つまたは複数の論理ユニット番号（LUN:  logical  unit  number）２３８、ディレクトリー２３６、qtree  ２３５およびファイル２４０を含むことができる。中でも、これらの特徴、特にLUNSのため、その中にデータが記憶される別個のメモリ位置が、データ記憶ユニットとしてたとえば識別され、グループ化されることができる。よって、LUN  ２３８は、前記アグリゲート内でその中に仮想ボリュームが記憶されている仮想ディスクまたはドライブを構成するものとして特徴付けられてもよい。たとえば、LUNはしばしば仮想ドライブと称され、実際にはボリュームのさまざまな部分に記憶されたデータ・ブロックからなるのに、汎用コンピュータのハードドライブをエミュレートする。
【００３３】
ある実施形態では、一つまたは複数のデータ記憶装置２３４は一つまたは複数の物理ポートを有することができる。各物理ポートは目標アドレス〔ターゲット・アドレス〕（たとえばSCSI目標アドレス）を割り当てられることができる。データ記憶装置上に記憶されたそれぞれのボリュームを表わすために、データ記憶装置上の目標アドレスが、一つまたは複数のLUN  ２３８を識別するために使用されることができる。こうして、たとえば、ノード２０２がストレージ・アダプター２１４を通じてボリューム２３０、２３２に接続するとき、ノード２０２とボリュームの根底にある前記一つまたは複数のLUN  ２３８との間の接続が生成される。
【００３４】
ある実施形態では、それぞれの目標アドレスは複数のLUNを同定することができ、目標アドレスは複数のボリュームを表わすことができる。I/Oインターフェースは、たとえばストレージ・アダプター２１４内の回路および／またはソフトウェアとして、あるいはメモリ２０６に存在し、プロセッサ２０４によって実行される実行可能コードとして実装でき、LUN  ２３８を同定する一つまたは複数のアドレスを使ってボリューム２３０に接続できる。
【００３５】
ストレージ動作の合体が、データ・ストレージ・システム２００のために実装されてもよいことが理解されうる。たとえば、ノード２０２について合体コンポーネントが実装されてもよい。合体コンポーネントは、ホスト２０５からノード２０２によって受領されるストレージ動作を合体させるよう構成されていてもよい。
【００３６】
ストレージ動作を合体させることの一つの実施形態が、図３の例示的な方法３００によって示されている。ファイル・サーバーは、第一のクライアントのようなクライアントに、一つまたは複数の記憶装置に記憶されているファイルへのアクセスを提供してもよい。一例では、ファイル・サーバーはクライアント装置に対してリモートであってもよい。サービスが、そのようなクライアントからファイル・サーバーによって受領される、ストレージ動作の通知を受領することに対する関心を表明してもよい。クライアントがファイル・ハンドルを使ってファイルにアクセスする間に多すぎるストレージ動作が生起することがありうるので（たとえば、ネットワーク・ファイル・システム（NFS）ストレージ動作は、記憶され、キャッシュされおよび／またはクライアント・リブートにまたがって持続させられうるファイル・ハンドルを利用してもよく、書き込み動作のようなかなりの数のストレージ動作が、該ファイル・ハンドルを使って該ファイルにアクセスしている間に起こりうる）、本願で提供されるように、ストレージ動作が合体させられてもよい。それにより、合体ポリシーが施行されている間に、単に単一の通知が生成され、サービスに送られる。
【００３７】
３０２では、第一のストレージ動作がクライアント装置から受領されてもよい。第一のストレージ動作はあるストレージ動作型（たとえばテキスト・ファイルに対する書き込み動作）およびクライアント装置のクライアント識別子（たとえば、クライアント装置のIPアドレスおよび／またはクライアント装置のユーザーのユーザー識別子）に対応してもよい。一例では、第一のストレージ動作は、ファイルにアクセスするためにファイル・ハンドルを利用するNFSストレージ動作を含み、ここで、該ファイル・ハンドルは記憶され、キャッシュされおよび／またはクライアント装置のリブートにまたがって持続させられうる。一例では、NFSストレージ動作は、ファイル・オープン動作および／またはファイル・クローズ動作をサポートしなくてもよく、および／またはファイル・オープン動作および／またはファイル・クローズ動作をサポートしないプロトコルに関連付けられていてもよく、よって、該NFSストレージ動作について、ファイル・アクセス・セッションがサポートされないことがある（該NFSストレージ動作は他の点では該ファイル・アクセス・セッションに関連するストレージ動作を合体させるために使用できる）。
【００３８】
３０４では、前記ストレージ動作の第一のレコードが生成されてもよい。たとえば、ファイル・サーバーはレコード記憶データ構造中に前記第一のレコードを記憶してもよい。第一のレコードは、IPアドレス、ユーザー識別子、テキスト・ファイルのファイル識別子、ストレージ動作型、前記ストレージ動作に関連付けられた時間などといったさまざまな情報を含んでいてもよい。３０６では、前記第一のレコードについて満了イベント（expiration  event）が定義されてもよい。一例では、満了イベントとして、満了時間（たとえば3分）が指定されてもよい。別の例では、満了イベントとして、前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作（たとえば、前記クライアント装置の前記ユーザーからの前記テキスト・ファイルへの書き込み動作）の閾値回数が指定されてもよい。別の例では、満了イベントとして、前記サービスから受領される、前記ストレージ動作型および前記クライアント識別子に対応するレコード情報の要求の受領イベントが指定されてもよい。満了イベントは、前記第一のレコードの削除および／または前記第一のストレージ動作と同様なその後のストレージ動作（たとえば、前記クライアント装置の前記ユーザーによる前記テキスト・ファイルへのその後の書き込み動作）を合体させるために使われる合体ポリシーの不施行をトリガーするために使われてもよい。
【００３９】
３０８では、前記第一のストレージ動作についての第一の通知の生成が、前記第一のレコードに基づいてトリガーされてもよい。該第一の通知は。IPアドレス、ユーザー識別子、テキスト・ファイルのファイル識別子、ストレージ動作型、ストレージ動作に関連付けられた時間などといったさまざまな情報を含んでいてもよい。３１０では、前記第一の通知が前記サービスに送られてもよい。一例では、前記サービスは、前記ファイル・サーバーにリモートなおよび／または前記クライアントにリモートなリモート装置上にホストされていてもよい。一例では、前記ファイル・サーバーは、前記第一の通知を、前記クライアント装置のようなクライアントによってアクセスされるデータについてのさまざまな記憶ポリシーを施行してもよいポリシー・サービスに送ってもよい。別の例では、前記ファイル・サーバーは、前記第一の通知を、諸クライアントが諸ファイルにアクセスすることに関係した情報を追跡してもよい監査サービスに送ってもよい。一例では、前記第一の通知は、少なくとも一つのその後のストレージ動作が受領される前に前記サービスに送られてもよい。これは、満了イベントの満了の前に前記ファイル・サーバーの障害が発生する場合に、前記サービスへの通知送達の信頼性を改善しうる。もう一つの例では、前記第一の通知は、満了イベントの満了後に前記サービスに送られてもよく、よって、満了イベントの満了前に受領された一つまたは複数のその後のストレージ動作（たとえば合体させられたストレージ動作）の記述が前記第一の通知内に含められてもよく、それにより、より詳細な量のストレージ動作情報が、単に単一の通知を使うことによって、前記サービスに提供されてもよい（たとえば、前記第一の通知が複数のストレージ動作にマッピングしていてもよい）。
【００４０】
前記サービスは、前記テキスト・ファイルにクライアント装置が書き込みをするかどうかに関心があるが、前記テキスト・ファイルへの一つ一つの書き込み動作には関心がないことがある（たとえば、ユーザーが前記ファイル・ハンドルを使って前記テキスト・ファイルにアクセスし、これを修正し、保存する間に、前記テキスト・ファイルに対する多すぎる書き込み動作が生起することがありうる）。その後の書き込み動作は前記サービスにとってノイズとなり、レイテンシーを増すことがあり、および／またはネットワーク帯域幅および処理資源を消費することがあるので、一つまたは複数のその後のストレージ動作は、合体ポリシーの施行に基づいて、本願で提供されるように合体させられてもよい。
【００４１】
３１２では、満了イベントの満了までは合体ポリシーが施行されてもよい。合体ポリシーは、前記ストレージ動作型および前記クライアント識別子に関連付けられたその後のストレージ動作（たとえば、前記クライアント装置の前記ユーザーによる前記テキスト・ファイルに対するその後の書き込み動作）のその後の通知の生成をトリガーすることをブロックしてもよい。３１４では、合体ポリシーの施行中に前記ストレージ動作型および前記クライアント識別子に対応するその後のストレージ動作を受領することに応答して、該その後のストレージ動作は、合体ポリシーに基づいて、その後の通知の生成をトリガーすることなく、前記第一のレコードと合体させられてもよい。合体の一例において、前記第一のレコードは、前記その後のストレージ動作に関する追加的な詳細を用いて更新されてもよく、前記第一の通知は、満了イベントの満了後に、前記その後のストレージ動作（および３０２で受領された第一のストレージ動作）の記述とともに、前記サービスに送られてもよい。合体のもう一つの例では、前記第一のレコードは不変のままであってもよく、前記その後のストレージ動作については何の追加的なレコード情報も維持されなくてもよい。
【００４２】
３１６では、満了イベントが満了する（たとえば、3分の満了時間の満了）。満了イベントが満了することに応答して、第一のレコードは削除されてもよい（たとえばレコード記憶データ構造から除去されてもよい）。満了イベントの満了に応答して、合体ポリシーは不施行となってもよく、その後のストレージ動作は、前記サービスに送られうる新たな通知の生成をトリガーしてもよい。たとえば、合体ポリシーが不施行である間に前記クライアント装置から第二のストレージ動作が受領されてもよい。前記第二のストレージ動作は前記ストレージ動作型および／または前記クライアント装置の前記クライアント識別子に対応する（たとえば、前記クライアント装置のユーザーが前記テキスト・ファイルに対する第二の書き込み動作を実行してもよい）。前記第二のストレージ動作の第二のレコードが生成されてもよい。前記第二のレコードについての第二の満了イベントが定義されてもよい（たとえば3分の満了時間）。前記第二のストレージ動作についての第二の通知の生成が、前記第二のレコードに基づいてトリガーされてもよい。前記第二の通知が前記サービスに送られてもよい。合体ポリシーは、第二の満了イベントの満了まで施行されてもよい。たとえば、合体ポリシーの施行中に前記ストレージ動作型および／または前記クライアント識別子に対応する第二のその後のストレージ動作を受領することに応答して、前記第二のその後のストレージ動作は、合体ポリシーに基づいて、前記第二のレコードと合体されてもよい。第二の満了イベントの満了に応答して、前記第二のレコードは削除されてもよく、および／または合体ポリシーが不施行となってもよい。
【００４３】
図４は、ストレージ動作を合体させるための合体コンポーネント４５０を有するシステム４００の例を示している。合体コンポーネント４５０は、クライアント装置４０２に、一つまたは複数の記憶装置内に記憶されているデータへのアクセスを提供するよう構成されたファイル・サーバー４０４と関連付けられてもよい。監査サービス４０６が、クライアント装置４０２および／または他のクライアント装置がファイルに書き込みをする時の通知を受け取ることに関心を表明してもよい。一例では、第一のストレージ動作４１２が、第一の時刻４１４においてクライアント装置４０２から、ファイル・サーバー４０４によって受領されてもよい。第一のストレージ動作４１２はストレージ動作型（たとえばファイルへの書き込み動作）およびクライアント装置４０２のクライアント識別子を有していてもよい。合体コンポーネント４５０は、レコード記憶データ構造４１０内に第一のストレージ動作４１２の第一のレコードを生成してもよい。合体コンポーネント４５０は、第一のレコードに基づいて、第一のストレージ動作４１２の第一の通知４１６を生成し、監査サービス４０６に送ってもよい。満了イベントが第一のレコードについて決定されてもよい（たとえば、第一の時刻４１４と第二の時刻４２４との間のタイムスパン）。
【００４４】
合体コンポーネント４５０は、満了イベントの満了までは合体ポリシー４０８を施行してもよい。合体ポリシー４０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント４５０は、満了時間の満了までは（たとえば第二の時間４２４より前）ファイル・サーバー４０４によって受領される第二のストレージ動作４１８、第三のストレージ動作４２０および第四のストレージ動作４２２を合体させてもよい。
【００４５】
満了イベントの満了に応答して（たとえば、第二の時刻４２４において）、第一のレコードは削除されてもよく、および／または合体ポリシー４０８が不施行となってもよい。それにより、その後のストレージ動作は監査サービス４０６に送るべき新たな通知をトリガーしてもよい。たとえば、合体ポリシー４０８が不施行である間に（たとえば第二の時刻４２４後の第三の時刻４２８に）、第五のストレージ動作４２６がファイル・サーバー４０４によってクライアント装置４０２から受領されてもよい。第五のストレージ動作４２６は前記ストレージ動作型（たとえば書き込み動作型）および／または前記クライアント装置４０２の前記クライアント識別子を有していてもよい。合体コンポーネント４５０は、レコード記憶データ構造４１０内に第五のストレージ動作４２６の第二のレコードを生成してもよい。合体コンポーネント４５０は、前記第二のレコードに基づいて、第五のストレージ動作４２６の第二の通知４３０を生成し、監査サービス４０６に送ってもよい。第二のレコードについて、第二の満了イベントが定義されてもよい（たとえば第三の時刻４２８と第四の時刻４３６との間のタイムスパン）。合体コンポーネント４５０は、合体ポリシー４０８を、第二の満了イベントの満了まで施行してもよい。合体ポリシー４０８は、その後のストレージ動作のその後の通知の生成をブロックしてもよい。たとえば、合体コンポーネント４５０は、第二の満了時間の満了までは（たとえば第四の時間４３６より前）ファイル・サーバー４０４によって受領される第六のストレージ動作４３２、第七のストレージ動作４３４および／または他のストレージ動作を合体させてもよい。このようにして、監査サービス４０６は、クライアント装置４０２が書き込み動作を実行するために前記ファイルにアクセスしたことの少なくとも一つの通知を受領しうるが、一つ一つの個々の書き込み動作の通知が殺到することはない。
【００４６】
図５は、ストレージ動作を合体させるための合体コンポーネント５５０を有するシステム５００の例を示している。合体コンポーネント５５０は、クライアント装置５０２に、一つまたは複数の記憶装置内に記憶されているデータへのアクセスを提供するよう構成されたファイル・サーバー５０４と関連付けられてもよい。ポリシー・サービス５０６が、クライアント装置５０２および／または他のクライアント装置がファイルを読み出す時の通知を受け取ることに関心を表明してもよい。一例では、第一のストレージ動作５１２が、第一の時刻５１４においてクライアント装置５０２から、ファイル・サーバー５０４によって受領されてもよい。第一のストレージ動作５１２はストレージ動作型（たとえばファイルに対する読み出し動作）およびクライアント装置５０２のクライアント識別子を有していてもよい。合体コンポーネント５５０は、レコード記憶データ構造５１０内に第一のストレージ動作５１２の第一のレコードを生成してもよい。第一のレコードについての満了イベントが決定されてもよい（たとえば、第一の時刻５１４と第二の時刻５２４との間のタイムスパン）。
【００４７】
合体コンポーネント５５０は、満了イベントの満了までは合体ポリシー５０８を施行してもよい。合体ポリシー５０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント５５０は、満了時間の満了までは（たとえば第二の時間５２４より前）ファイル・サーバー５０４によって受領される第二のストレージ動作５１８、第三のストレージ動作５２０および第四のストレージ動作５２２を合体させてもよい。
【００４８】
満了イベントの満了に応答して（たとえば、第二の時刻５２４において）、合体コンポーネント５５０は、第一のレコードに基づいて、第一のストレージ動作５１２の第一の通知５１６を生成し、ポリシー・サービス５０６に送ってもよい。一例では、前記第一のレコードに合体させられている第二のストレージ動作５１８、第三のストレージ動作５２０および第四のストレージ動作５２２についての記述情報が第一の通知５１６に含められてもよく、それによりポリシー・サービス５０６はそのようなストレージ動作の通知を受領しうる。満了イベントの満了に応答して（たとえば第二の時刻５２４において）、第一のレコードは削除されてもよく、および／または合体ポリシー５０８が不施行となってもよい。それにより、その後のストレージ動作はポリシー・サービス５０６に送るべき新たな通知を生成するために使われる第二のレコードの生成トリガーしてもよい。たとえば、合体ポリシー５０８が不施行である間に（たとえば第三の時刻５２８に）、第五のストレージ動作５２６がクライアント装置５０２から、ファイル・サーバー５０４によって受領されてもよい。第五のストレージ動作５２６は前記ストレージ動作型（たとえば読み出し動作型）および／または前記クライアント装置５０２の前記クライアント識別子を有していてもよい。合体コンポーネント５５０は、レコード記憶データ構造５１０内に第五のストレージ動作５２６の第二のレコードを生成してもよい。第二のレコードについて第二の満了イベントが決定されてもよい（たとえば、第三の時刻５２８と第四の時刻５３６との間のタイムスパン）。合体コンポーネント５５０は、合体ポリシー５０８を、第二の満了イベントの満了まで施行してもよい。合体ポリシー５０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント５５０は、第二の満了時間の満了までは（たとえば第四の時間５３６より前）ファイル・サーバー５０４によって受領される第六のストレージ動作５３２、第七のストレージ動作５３４および／または他のストレージ動作を合体させてもよい。満了イベントの満了に応答して、合体コンポーネント５５０は、前記第二のレコードに基づいて、第五のストレージ動作５２６の第二の通知５３０を生成し、ポリシー・サービス５０６に送ってもよい。一例では、前記第一のレコード中に合体させられている第六のストレージ動作５３２、第七のストレージ動作５３４および／または他のストレージ動作についての記述情報が第二の通知５１６に含められてもよく、それによりポリシー・サービス５０６はそのようなストレージ動作の通知を受領しうる。このようにして、ポリシー・サービス５０６は、クライアント装置５０２が読み出し動作を実行するために前記ファイルにアクセスしたことの少なくとも一つの通知を受け受領しうるが、一つ一つの個々の読み出し動作の通知が殺到することはない（たとえば、単一の通知が複数の読み出し動作の生起の指示を提供しうる）。
【００４９】
図６は、ストレージ動作を合体させるための合体コンポーネント６５０を有するシステム６００の例を示している。合体コンポーネント６５０は、クライアント装置６０２に、一つまたは複数の記憶装置内に記憶されているデータへのアクセスを提供するよう構成されたファイル・サーバー６０４と関連付けられてもよい。サービス６０６が、クライアント装置６０２および／または他のクライアント装置がファイルに書き込みをする時の通知を受け取ることに関心を表明してもよい。一例では、第一のストレージ動作６１２が、クライアント装置６０２から、ファイル・サーバー６０４によって受領されてもよい。第一のストレージ動作６１２はストレージ動作型（たとえばファイルへの書き込み動作）およびクライアント装置６０２のクライアント識別子を有していてもよい。合体コンポーネント６５０は、レコード記憶データ構造６１０内に第一のストレージ動作６１２の第一のレコードを生成してもよい。合体コンポーネント６５０は、第一のレコードに基づいて、第一のストレージ動作６１２の第一の通知６１６を生成し、サービス６０６に送ってもよい。満了イベントが第一のレコードについて決定されてもよい（たとえば、5回のその後のストレージ動作という閾値回数）。
【００５０】
合体コンポーネント６５０は、満了イベントの満了までは合体ポリシー６０８を施行してもよい（たとえば、次の5回のストレージ動作が第一のレコードと合体させられてもよい）。合体ポリシー６０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント６５０は、満了イベントの満了前に（たとえば満了イベントは、第六のストレージ動作６１４の合体が5回のその後のストレージ動作という閾値回数６２６を満足させることに基づいて満了となってもよい）ファイル・サーバー６０４によって受領される第二のストレージ動作６１４、第三のストレージ動作６１６、第四のストレージ動作６２０、第五のストレージ動作６２２および第六のストレージ動作６２４という合計5つのその後のストレージ動作を合体させてもよい。
【００５１】
満了イベントの満了（たとえば、合計5つの合体したその後のストレージ動作６２４を与える第六のストレージ動作６２４の合体）に応答して、第一のレコードは削除されてもよく、および／または合体ポリシー６０８が不施行となってもよい。それにより、その後のストレージ動作はサービス６０６に送るべき新たな通知をトリガーしてもよい。たとえば、第七のストレージ動作６２８がクライアント装置６０２から、ファイル・サーバー６０４によって受領されてもよい。前記第七のストレージ動作６２８は前記ストレージ動作型（たとえば書き込み動作型）および／またはクライアント装置６０２の前記クライアント識別子を有していてもよい。合体コンポーネント６５０は、レコード記憶データ構造６１０内に第七のストレージ動作６２８の第二のレコードを生成してもよい。合体コンポーネント６５０は、前記第二のレコードに基づいて、第七のストレージ動作６２８の第二の通知６３０を生成し、サービス６０６に送ってもよい。第二のレコードについて、第二の満了イベントが定義されてもよい（たとえば第二のレコードの生成後に受領される次の5つのその後のストレージ動作）。合体コンポーネント６５０は、合体ポリシー６０８を、第二の満了イベントの満了まで施行してもよい。合体ポリシー６０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント６５０は、第二の満了イベントの満了前に（たとえば閾値回数の5回のその後のストレージ動作が合体される前に）ファイル・サーバー６０４によって受領される第八のストレージ動作６３２、第九のストレージ動作６３４および／または他のストレージ動作を合体させてもよい。このようにして、サービス６０６は、クライアント装置６０２が書き込み動作を実行するために前記ファイルにアクセスしたことの少なくとも一つの通知を受領しうるが、一つ一つの個々の書き込み動作の通知が殺到することはない。
【００５２】
図７は、ストレージ動作を合体させるための合体コンポーネント７５０を有するシステム７００の例を示している。合体コンポーネント７５０は、クライアント装置７０２に、一つまたは複数の記憶装置内に記憶されているデータへのアクセスを提供するよう構成されたファイル・サーバー７０４と関連付けられてもよい。サービス７０６が、クライアント装置７０２がファイルに書き込みをする時の通知を受け取ることに関心を表明してもよい。一例では、第一のストレージ動作７１２が、クライアント装置７０２から、ファイル・サーバー７０４によって受領されてもよい。第一のストレージ動作７１２はストレージ動作型（たとえばファイルへの書き込み動作）およびクライアント装置７０２のクライアント識別子を有していてもよい。合体コンポーネント７５０は、レコード記憶データ構造７１０内に第一のストレージ動作７１２の第一のレコードを生成してもよい。満了イベントが第一のレコードについて決定されてもよい（たとえば、レコード情報の要求の受領イベントがサービス７０６から受領されるまで、その後のストレージ動作が第一のレコードと合体させられてもよい）。
【００５３】
合体コンポーネント７５０は、満了イベントの満了までは合体ポリシー７０８を施行してもよい（たとえば、レコード情報の要求の受領イベントがサービス７０６から受領されるまで、その後のストレージ動作が第一のレコードと合体させられてもよい）。合体ポリシー７０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント７５０は、満了イベントの満了前にファイル・サーバー７０４によって受領される第二のストレージ動作７１４を合体させてもよい。たとえば、満了イベントは、サービス７０６からの第一の要求７１６の受領に基づいて満了してもよい。これは、サービス７０６に送るべき第一の通知７１８の生成をトリガーしてもよい。第一の通知は、第一のストレージ動作７１２および／または合体した第二の記憶動作７１４の記述の前記第一のレコードについての情報を含んでいてもよい。
【００５４】
満了イベントの満了（たとえば、第一の要求７１６の受領）に応答して、第一のレコードは削除されてもよく、および／または合体ポリシー７０８が不施行となってもよい。それにより、その後のストレージ動作はサービス７０６に送るべき新たな通知を生成するために使用されうる新たなレコードの生成をトリガーしてもよい。たとえば、第三のストレージ動作７２０がクライアント装置７０２からファイル・サーバー７０４によって受領されてもよい。第三のストレージ動作７２０は前記ストレージ動作型（たとえば書き込み動作型）および前記クライアント装置７０２の前記クライアント識別子を有していてもよい。合体コンポーネント７５０は、レコード記憶データ構造７１０内に第三のストレージ動作７２０の第二のレコードを生成してもよい。第二のレコードについて、第二の満了イベントが決定されてもよい（たとえばレコード情報の要求の受領イベントがサービス７０６から受領されるまで、その後のストレージ動作は第二のレコードと合体させられてもよい）。合体コンポーネント７５０は、合体ポリシー７０８を、第二の満了イベントの満了まで施行してもよい。合体ポリシー７０８は、その後のストレージ動作の新たな通知の生成をブロックしてもよい。たとえば、合体コンポーネント７５０は、第二の満了時間の満了前にファイル・サーバー７０４によって受領される第四のストレージ動作７２２、第五のストレージ動作７２４および第六のストレージ動作７３２を合体させてもよい。第二の満了イベントの満了に応答して、第二の通知７３６がサービス７０６に送られてもよい。たとえば、第二の満了イベントは、サービス７０６からの第二の要求７３４の受領に基づいて満了となってもよい。第二の通知７３６はサービス７０６に送られてもよい。第二の通知７３６は、第三のストレージ動作７２０および／または合体したストレージ動作（たとえば第四のストレージ動作７２２、第五のストレージ動作７２４および第六のストレージ動作７３２）の記述の第二のレコードについての情報を含んでいてもよい。このようにして、サービス７０６は、クライアント装置７０２が書き込み動作を実行するために前記ファイルにアクセスしたことの少なくとも一つの通知を受領しうるが、一つ一つの個々の書き込み動作の通知が殺到することはない。
【００５５】
さらにもう一つの実施形態は、本稿に呈示される技法の一つまたは複数を実装するよう構成されたプロセッサ実行可能な命令を有するコンピュータ可読媒体に関わる。このように構成されたコンピュータ可読媒体またはコンピュータ可読デバイスの例示的な実施形態が図８に示されている。実装８００は、CD-ROM、DVD-R、フラッシュドライブ、ハードディスクドライブの円盤などといったコンピュータ可読媒体８０８を含み、そこにコンピュータ可読データ８０６がエンコードされる。このコンピュータ可読データ８０６はたとえば0または1の少なくとも一つを含むバイナリー・データであり、本稿に記載される原理の一つまたは複数に従って動作するよう構成された一組のコンピュータ命令８０４を含む。いくつかの実施形態では、プロセッサ実行可能なコンピュータ命令８０４は、たとえば図３の例示的な方法３００の少なくとも一部のような方法８０２を実行するよう構成されている。いくつかの実施形態では、プロセッサ実行可能命令８０４は、図４の例示的システムの少なくとも一部、図５の例示的システムの少なくとも一部、図６の例示的システムの少なくとも一部および／または図７の例示的システムの少なくとも一部などのようなシステムを実装するよう構成されている。本稿に呈示される技法に従って動作するために多くのそのようなコンピュータ可読媒体が考えられている。
【００５６】
本稿に記載されるプロセス、アーキテクチャーおよび／または手順がハードウェア、ファームウェアおよび／またはソフトウェアにおいて実装できることは理解されるであろう。本稿に記載される施策が、ストレージ・システムとして具現されたまたはストレージ・システムを含む、スタンドアローンのコンピュータもしくはその一部を含め、任意の型の特殊目的コンピュータ（たとえばファイル・ホスト、ストレージ・サーバーおよび／またはストレージ・サービス機器）および／または汎用コンピュータに適用されうることも理解されるであろう。さらに、本稿の教示は、ネットワーク・アタッチト・ストレージ環境および／または記憶領域ネットワークおよびディスク・アセンブリーであってクライアントもしくはホスト・コンピュータに直接取り付けられたものを含むがそれに限られない多様なストレージ・システム・アーキテクチャーに構成されることができる。したがって、ストレージ・システムは、ストレージ機能を実行するよう構成されており他の設備またはシステムと関連付けられている任意のサブシステムに加えて、そのような構成を含むと広義に解釈されるべきである。
【００５７】
いくつかの実施形態では、本開示において記述および／または例解される方法は、完全にまたは部分的にコンピュータ可読媒体上で実現されうる。コンピュータ可読媒体は、本稿に呈示される方法の一つまたは複数を実装するよう構成されたプロセッサ実行可能命令を含むことができ、その後コンピュータ・システムによって読まれることのできるこのデータを記憶するためのいかなる機構を含んでいてもよい。コンピュータ可読媒体の例は（ハード）ドライブ（たとえばネットワーク・アタッチト・ストレージ（NAS）を介してアクセス可能）、記憶領域ネットワーク（SAN）、揮発性および不揮発性メモリ、たとえば読み出し専用メモリ（ROM）、ランダム・アクセス・メモリ（RAM）、EEPROMおよび／またはフラッシュ・メモリ、CD-ROM、CD-ROM、CD-RW、DVD、カセット、磁気テープ、磁気ディスク記憶、光学式もしくは非光学式データ記憶デバイスおよび／またはデータを格納するために使用できる他の任意の媒体を含む。むしろ、上記の具体的な特徴および工程は、請求項の少なくともいくつかを実装する例示的な形として開示されている。
【００５８】
実施形態のさまざまな動作が本稿で与えられている。動作の一部または全部が記述される順序は、それらの動作が必ず順序依存であることを含意するものと解釈されるべきではない。本稿の恩恵を与えられれば、代替的な順序が認識されるであろう。さらに、すべての動作が本稿で与えられる各実施形態に必ず存在するわけではないことは理解されるであろう。また、いくつかの実施形態ではすべての動作が必要なわけではないことが理解されるであろう。
【００５９】
さらに、特許請求される主題は、開示される主題を実装するようコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェアまたはその任意の組み合わせを生成するための標準的なプログラミングまたはエンジニアリング技法を使って、方法、装置または製造物として実装される。本稿で使うところの用語「製造物」は、任意のコンピュータ可読デバイス、搬送波または媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。むろん、特許請求される主題の範囲および精神から外れることなくこの構成に多くの修正がなされうる。
【００６０】
本願での用法では、「コンポーネント」、「モジュール」、「システム」、「インターフェース」などの用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェアまたは実行中のソフトウェアのいずれかのコンピュータ関係のエンティティに言及することが一般に意図されている。たとえば、コンポーネントは、プロセッサ上で走っているプロセス、プロセッサ、オブジェクト、実行可能形式、実行のスレッド、プログラムまたはコンピュータを含む。例として、コントローラ上で走っているアプリケーションおよび該コントローラの両方がコンポーネントであることができる。一つまたは複数のコンポーネントはプロセスまたは実行のスレッドの内部に存在することができ、コンポーネントは、一つのコンピュータ上に局在化されることも、および／または二つ以上のコンピュータの間に分散されることもできる。
【００６１】
さらに、「例示的」は、本稿では、必ずしも有利ではなく、例、事例、例解などのはたらきをすることを意味するために使われている。本願での用法では、「または」は、排他的な「または」ではなく包含的な「または」を意味することが意図されている。さらに、本願で用いるところの「ある（或る）」は一般に、特にそうでないと明記されているのではく、単数形に向けられていることが文脈から明白なのでない限り、「一つまたは複数」を意味すると解釈される。また、AおよびBの少なくとも一つおよび／または同様の表現は一般に、AまたはBおよび／またはAとB両方を意味する。さらに、「有する」「もつ」またはその変形が使われる限りにおいて、そのような用語は用語「含む」と同様に包含的であることが意図されている。
【００６２】
特許請求される主題の範囲や精神から外れることなく、本開示に多くの修正がなされてもよい。特に断わりのない限り、「第一」、「第二」などは時間的な側面、空間的な側面、順序などを含意することは意図されていない。むしろ、そのような用語は単に、特徴、要素、項目などについての識別符、名称などとして使われている。たとえば、第一の組の情報および第二の組の情報は一般に情報の集合Aおよび情報の集合Bまたは情報の二つの異なるもしくは二つの同一の集合または情報の同一の集合に対応する。
【００６３】
また、本開示は、一つまたは複数の実装に関して図示され記述されたが、本明細書および付属の図面を読み、理解することに基づいて、他の当業者にも等価な変更および修正が思いつくであろう。本開示はそのようなすべての修正および変更を含み、付属の請求項の範囲によってのみ限定される。特に上記のコンポーネント（たとえば要素、資源など）によって実行されるさまざまな機能に関し、そのようなコンポーネントを記述するために使われる用語は、特にそうでないことが示されていない限り、開示された構造と構造的に等価でないとしても、記述されるコンポーネントの指定される機能を実行する（たとえば、機能的に等価な）任意のコンポーネントに対応することが意図されている。さらに、本開示の特定の特徴はいくつかの実装の一つのみに関して開示されたことがありうるが、そのような特徴は、任意の所与のまたは特定の応用のために所望されるまたは有利でありうるように、他の実装の一つまたは複数の他の特徴と組み合わされてもよい。
【図１】
2017526066.tif 000003
【図２】
2017526066.tif 000004
【図３】
2017526066.tif 000005
【図４】
2017526066.tif 000006
【図５】
2017526066.tif 000007
【図６】
2017526066.tif 000008
【図７】
2017526066.tif 000009
【図８】
2017526066.tif 000010
【国際調査報告】
2017526066.tif 000011
2017526066.tif 000012