(57)【特許請求の範囲】
【請求項１】
複数のストレージ装置と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行う複数の記憶処理装置と、を備え、
前記記憶処理装置は、
ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えると共に、
自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択するオーナノード選択部を備えた、
ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナノード選択部は、前記他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、自装置が管理する特定のファイルを構成する前記分割データが前記他の記憶処理装置のキャッシュメモリに最も多く含まれている前記他の記憶処理装置を、前記特定のファイルを管理する記憶処理装置として選択する、
ストレージシステム。
【請求項３】
請求項１又は２に記載のストレージシステムであって、
前記記憶処理装置は、
自装置が管理する特定のファイルを構成する前記分割データと当該分割データの前記コンテンツアドレスとの対応を表すファイル情報テーブルを記憶すると共に、
前記オーナノード選択部にて前記特定のファイルを管理する記憶処理装置として選択された前記他の記憶処理装置に、前記特定のファイルの前記ファイル情報テーブルを送信して記憶させるオーナ移動部を備えた、
ストレージシステム。
【請求項４】
請求項３に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置の前記キャッシュメモリ内のデータを消去する、
ストレージシステム。
【請求項５】
請求項３又は４に記載のストレージシステムであって、
前記記憶処理装置が管理する特定のファイルを指定する管理指定テーブルを記憶し、当該管理指定テーブルに基づいて特定のファイルの処理要求を当該特定のファイルが指定された前記記憶処理装置に振り分ける振り分け装置を備え、
前記記憶処理装置が有する前記オーナ移動部は、前記オーナノード選択部にて選択された前記他の記憶処理装置が前記特定のファイルを管理するよう前記管理指定テーブルを更新する、
ストレージシステム。
【請求項６】
請求項３乃至５のいずれかに記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置が管理していた前記特定のファイルの前記ファイル情報テーブルを送信した前記他の記憶処理装置から、当該他の記憶処理装置が管理する特定のファイルを自装置が管理するよう当該特定のファイルの前記ファイル情報テーブルを受け取って記憶する、
ストレージシステム。
【請求項７】
請求項６に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置が管理していた前記特定のファイルの前記ファイル情報テーブルを送信した前記他の記憶処理装置が装備した前記キャッシュメモリの空き容量が、自装置が装備した前記キャッシュメモリの空き容量以下である場合に、前記他の記憶処理装置から当該他の記憶処理装置が管理する特定のファイルを自装置が管理するよう当該特定のファイルの前記ファイル情報テーブルを受け取って記憶する、
ストレージシステム。
【請求項８】
請求項１乃至７のいずれかに記載のストレージシステムであって、
前記記憶処理装置は、自装置が管理する前記特定のファイルを構成する前記分割データの前記コンテンツアドレスの参照数が「１」である当該コンテンツアドレスの数をカウントする非重複データ数算出部を備え、
前記記憶処理装置が有する前記オーナノード選択部は、前記非重複データ数算出部にてカウントした値が予め設定された閾値を超えた場合に、自装置が管理する特定のファイルを構成する前記分割データの前記コンテンツアドレスを前記他の記憶処理装置に送信して前記キャッシュメモリ状況情報を要求する、
ストレージシステム。
【請求項９】
請求項８に記載のストレージシステムであって、
前記記憶処理装置が有する前記非重複データ数算出部は、自装置が管理する前記特定のファイルを構成する前記分割データの前記コンテンツアドレスの参照数が「１」である当該コンテンツアドレスに加えて、前記コンテンツアドレスの参照数が「２」以上であるが参照するファイルの数が「１」である前記コンテンツアドレスの数をカウントする、
ストレージシステム。
【請求項１０】
複数のストレージ装置と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行い、ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えた複数の記憶処理装置と、を備えたストレージシステムによる情報処理方法であって、
前記記憶処理装置が、自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにかかり、特に、重複記憶排除機能を有するストレージシステムに関する。
【背景技術】
【０００２】
通常、ファイルサーバは、アクセス速度の遅いハードディスクドライブに対するアクセスを減少させるため、データをメモリ上にキャッシュしている。そして、ハードディスクドライブなどの不揮発性ストレージの容量は年々拡大を続けているが、キャッシュとして利用されるメモリの容量が追いついていなかった。しかし、近年になり、より大容量のＳＳＤが普及したことで、このＳＳＤをキャッシュとして利用するストレージが現れてきた。このため、大容量のキャッシュを扱うにあたり、そのキャッシュをいかに効率的に利用するかが１つの課題となっている。
【０００３】
例えば、分散ノード型のネットワークストレージでは、負荷を分散することに重きを置いており、キャッシュ領域の効率化にまで十分な検討がされていなかった。今後、分散ノード型ストレージにおけるノード数が拡大していった場合、ノードを跨ったキャッシュの効率化は重要になってくると考えられる。
【０００４】
上述した分散ノード型のネットワークストレージの一例として、近年では、特許文献１に開示された、同一内容のデータを重複して記憶しないよう制御する重複排除システムがある。このような重複排除システムは、物理的な格納位置を仮想化したコンテンツアドレスストレージ（ＣＡＳ）装置を構成しており、重複排除技術によりハードディスクドライブに同じデータを持たないように制御すると共に、複数のノードから任意のファイルにアクセスが可能なよう制御している。このとき、重複排除ファイルシステムでは、同じデータを複数保持しないことでハードディスクドライブを効率的に使用しており、メモリ上のキャッシュについても、１つのノード内では同じデータを複数保持しないよう制御している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−７９８８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、コンテンツアドレスストレージシステムでは、ファイルをどのノードで処理するかについてはクライアントからのアクセス次第であり、システム全体における負荷分散による効率化はなされていなかった。一方で、複数のノードに処理を分散させることによって、図１に示すように、同じキャッシュデータが複数のノードに存在するという無駄が増加する、という問題あった。
【０００７】
このため、本発明の目的は、上述した課題である、複数のノード装置を備えたストレージシステムにおいて、特定のノード装置の負荷の増加を抑制しつつ、キャッシュの無駄を抑制する、ことにある。
【課題を解決するための手段】
【０００８】
上記目的を達成すべく、本発明の一形態であるストレージシステムは、
複数のストレージ装置と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行う複数の記憶処理装置と、を備え、
前記記憶処理装置は、
ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えると共に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択するオーナノード選択部を備えた、
という構成を取る。
【０００９】
また、本発明の他の形態である記憶処理装置は、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データのストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行う記憶処理装置であって、
ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えると共に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する記憶処理装置を選択するオーナノード選択部を備えた、
という構成を取る。
【００１０】
また、本発明の他の形態であるプログラムは、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データのストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行い、ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えた記憶処理装置に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する記憶処理装置を選択するオーナノード選択部、を実現させるためのプログラムである。
【００１１】
また、本発明の他の形態である情報処理方法は、
複数のストレージ装置と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行い、ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えた複数の記憶処理装置と、を備えたストレージシステムによる情報処理方法であって、
前記記憶処理装置が、予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択する、
という構成を取る。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、複数のノード装置を備えたストレージシステムにおいて、特定のノード装置の負荷の増加を抑制しつつ、キャッシュの効率的な利用を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】ストレージシステムを構成するアクセラレータノード内で処理されるデータの様子を示す図である。
【図２】ストレージシステムを構成するアクセラレータノード内で処理されるデータの様子を示す図である。
【図３】ストレージシステムを構成するアクセラレータノードの構成を示す機能ブロック図である。
【図４】図３に開示したオーナ制御機能部の動作を説明する図である。
【図５】図３に開示したオーナ制御機能部の動作を説明する図である。
【図６】図３に開示したオーナ制御機能部の動作を説明する図である。
【図７】図３に開示したオーナ制御機能部の動作の他の例を説明する図である。
【図８】本発明の付記１におけるストレージシステムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１４】
本発明の第１の実施形態を、図１乃至図７を参照して説明する。図１乃至図３は、ストレージシステムの構成を説明するための図であり、図４乃至図７は、動作を説明するための図である。
【００１５】
図１に、本実施形態におけるストレージシステムの全体構成を示す。この図に示すように、ストレージシステムは、ファイルの書き込みや読み出しを要求するNFSクライアント３０２に接続されたロードバランサ３０１と、ファイルの記憶処理や読み出し処理を行う記憶処理装置である複数のノード３０３（ノードＡ，ノードＢ）と、ファイルを記憶する複数のストレージ装置からなる大容量不揮発ストレージ３０６と、を備えている。
【００１６】
なお、本実施形態では、ストレージシステムとして、ネットワークストレージシステム（Network File System：ＮＦＳ）を一例に挙げて説明するが、ストレージシステムは、ＮＦＳに限定されない。
【００１７】
上記ロードバランサ３０１（振り分け装置）は、ＮＦＳクライアント３０２からのファイルの書き込みや読み出しなど当該ファイルに対する処理要求を、そのファイルのファイル識別子（ＦＨ）を元に、任意のノード３０３に振り分けて転送する。このとき、ロードバランサ３０１には、ファイル毎に当該ファイルを管理するノードを指定したＦＨ／宛先テーブル（管理指定テーブル）が記憶されており、このＦＨ／宛先テーブルに従って、処理要求にかかるファイルを指定されたノードに転送する。但し、処理要求にかかるファイルが新規ファイルである場合には、各ノード３０３の負荷や当該各ノード３０３に接続されたネットワーク帯域などを参照して決定されたノードに転送する。
【００１８】
そして、上記ロードバランサ３０１は、後述するように、ノード３０３からファイルを管理するノードの指定を変更する旨のＦＨ／宛先テーブルの更新要求があった場合には、かかる更新要求に応じてＦＨ／宛先テーブルの内容を更新する。
【００１９】
なお、本実施形態では、処理要求にかかるファイルの転送先を制御する装置として、ロードバランサを一例に挙げて説明するが、かかる制御を行う装置は他の装置であってもよい。例えば、ノード３０３のうちのいずれかがロードバランサとして機能してもよい。
【００２０】
上記各ノード３０３は、ＮＦＳサーバ機能部３０４と重複排除ＦＳ３０５とを備えており、ロードバランサ３０１から転送されたＮＦＳクライアント３０２からのファイルの記憶要求に応じて、当該ファイルを大容量不揮発ストレージ３０６に重複排除を行って記憶する機能を有する。なお、図では、ノード３０３を２つのみ図示しているが、実際にはさらに多くのノード３０３が装備されている。但し、ノード３０３の数は複数であればよく、上記数に限定されない。
【００２１】
そして、重複排除ＦＳ３０５による重複排除処理は、具体的には、まず、記憶対象となるファイルを所定容量の分割データに分割する。そして、分割データの内容に応じて設定される固有のコンテンツアドレスによって大容量不揮発ストレージ３０６における格納位置を特定し、その格納位置に分割データをさらに分散すると共に冗長化して格納する。なお、データを大容量不揮発ストレージ３０６に格納する際における分散や冗長化の処理については、既存技術であるため、詳細な説明を省略する。
【００２２】
このとき、上記コンテンツアドレスは、分割データのデータ内容に固有であるため、この分割データと同一内容の他の分割データを格納する場合には、既に記憶されている分割データのコンテンツアドレスを他の分割データとして参照することで、当該他の分割データを記憶する必要が無くなる。そして、この他の分割データを読み出すときには、上記コンテンツアドレスを参照して、その参照先に記憶されているデータを読み出すことで、同一内容のデータを読み出すことができる。このようにして、重複排除ＦＳ３０５では、ファイルの重複記憶を排除した重複排除処理を実現している。
【００２３】
なお、ファイルのデータは、ファイルと、当該ファイルを分割した各分割データの各コンテンツアドレスと、が関連付けられたＣＡ情報３０９で管理されている。例えば、ＣＡ情報３０９は、図２に示すように、ファイルから当該ファイルを構成する各分割データのコンテンツアドレス（ＣＡリンク：ＣＡ１等）を辿る順方向のリンクと、コンテンツアドレスからファイルを辿る逆方向のリンクを有している。そして、ＣＡ情報３０９は、各ノードに、自ノードにて管理するファイルのＣＡ情報３０９が記憶されている。なお、コンテンツアドレスは、各ノードで共通である。
【００２４】
また、各ノード３０３は、当該各ノード３０３がファイルの処理に利用するデータをキャッシュしておくキャッシュメモリ３０７をそれぞれ装備している。そして、各ノード３０３は、同じノード内では同じデータをキャッシュメモリに持たず、重複排除するようキャッシュ情報管理部にて制御している。
【００２５】
また、各ノード３０３は、オーナ制御機能部３１３を備えており、当該オーナ制御記憶部３１３は、特定のファイルを管理するノードを指定する情報、つまり、ファイルをどのノードで処理するか、という情報を記憶したオーナ情報３１４を有する。なお、オーナ情報３１４は、上述したようにロードバランサ３０１に記憶されているＦＨ／宛先テーブルと同様の情報である。さらに、オーナ制御機能部３１３は、特定のファイルを管理するノードを変更する処理を実行すべく、図３に示すように、非重複データ数算出部３１５と、オーナノード選択部３０６と、オーナ移動部３１７と、を備えている。これら各部３１５，３１６，３１７の構成及び動作について、以下詳述する。
【００２６】
ここで、上記オーナ制御機能部３１３が有する上記非重複データ数算出部３１５、オーナノード選択部３１６、オーナ移動部３１７は、以下の（１）〜（３）の３つの動作を起点として動作する。但し、上記各部３１５〜３１７が動作する条件は、以下の場合に限定されない。
【００２７】
（１）ＮＦＳの処理
ＮＦＳクライアント３０２からWRITE要求が来て、そのファイルを管理するノードの当該ファイルに対するキャッシュが更新されると、オーナ制御機能部３１３が動作して、オーナノードつまりそのファイルを処理すべきノードの選択を行う。さらに必要に応じてオーナの移動を行い、以降はロードバランサ３０１が適切なノードにNFSを転送する。
【００２８】
（２）キャッシュの追い出し
キャッシュの空き領域がなくなり古いキャッシュがメモリ上から追い出されると、それまでのノード内のキャッシュにおける重複データの数が変化している可能性がある。そのためオーナノードの再選択を行う。つまり、追い出されたキャッシュのコンテンツアドレスを確認し、そのコンテンツアドレスからリンクされた全てのファイルをリストする。リストされた全てのファイルに対して「非重複データ数の算出」、「オーナノードの選択」、「オーナの移動」を行う。
【００２９】
（３）タイマ
時間が経つとネットワーク帯域が変化している可能性がある。そのため、高負荷時にオーナの移動を諦めたファイルに対して、定期的にオーナノードの再選択を行う。定期的なオーナノードの再選択では全てのファイルに対して行う。オーナノードの再選択を行っている間は負荷が上がる可能性がある。そのため、予め期間（例えば、深夜２時など）を設けておき、期間内に終わらないファイルは再選択を諦める。ただし、どこまでオーナノードの再選択を行ったか覚えておき、次回は続きから行う。
【００３０】
次に、一つの例として、NFSのWRITE処理を起点としたオーナ制御機能部３１３の動作を説明する。なお、READ処理やキャッシュの追い出し、タイマを起点とした場合にも、以下で説明する「非重複データ数の算出」、「オーナノード選択部」と「オーナ移動部」における処理は変わらない。
【００３１】
１．まず、ＮＦＳクライアント３０２がファイルの書き込みを行う際、ロードバランサ３０１に対してWRITE要求を送信する。
２．ロードバランサは自身が持つＦＨ／宛先テーブルから、適切なノード３０３を選択しWRITE要求を転送する。
３．WRITE要求を転送されたノード３０３では、通常の書き込み処理を行う。
４．WRITEによりファイルデータがある程度溜まった場合には、以下に示す非重複データ数算出部３１５による「非重複データ数の算出」を行う。
【００３２】
「非重複データ数の算出」（図４）
Ｓ１．上述したＣＡ情報３０９のうち、ファイルを構成する各分割データの各コンテンツアドレスが記憶されたファイル情報テーブル４０１から、WRITE要求されたファイルが参照するコンテンツアドレス群であるＣＡリストを取得する。なお、ファイル情報テーブル４０１は、図２に示すように、ファイルとコンテンツアドレスとを関連付けた情報を記憶している。
Ｓ２．ＣＡリストを構成する各コンテンツアドレスについて、自ノード内での参照数４０２を確認する。
【００３３】
Ｓ３．コンテンツアドレスの参照数が「１」の場合、非重複データ変数４０４をインクリメントして、その値を「１」増加させる。
Ｓ４．コンテンツアドレスの参照数が「２」以上の場合には、上述したＣＡ情報３０９のうちコンテンツアドレスからファイルへのリスト４０３を辿り、参照数が「２」以上であるコンテンツアドレスを参照しているファイルが「１つ」か「２つ以上」存在するかを確認する。
Ｓ５．コンテンツアドレスを参照しているファイルが「１つ」だけの場合、非重複データ変数４０４をインクリメントして、その値を「１」増加させる。
【００３４】
そして、WRITE要求にかかるファイルの全てのコンテンツアドレスに対して確認が終わったら、次に、オーナノード選択部３１６による「オーナノードの選択」を行う。
【００３５】
「オーナノードの選択」（図５）
Ｓ１１．上述したように非重複データ数算出部３１５でカウントした非重複データ変数５０１の値が、予め設定された閾値を超えているか確認し、閾値を超えていなければ処理を終了する。
Ｓ１２．非重複データ数変数５０１が閾値を超えている場合は、ネットワークの帯域５０２の使用率を確認する。
Ｓ１３．自ノード３０３が記憶しており、当該自ノード３０３が管理するファイルのコンテンツアドレス群であるＣＡリストを、他の全てのノードにブロードキャストで転送する。例えば、図２のノードＡ（３０３）で、当該ノードＡが管理する「ファイル３」が対象ファイルである場合には、この「ファイル３」を構成する分割データのコンテンツアドレスＣＡ８，ＣＡ９を他のノードに転送する。そして、他のノードに対して、当該他のノードのキャッシュメモリに転送するコンテンツアドレスに対応するデータの格納状況（キャッシュメモリ状況情報）を問い合わせて要求する。
【００３６】
Ｓ１４．ＣＡリストを受け取った他のノードのオーナ制御機能部は、ＣＡリストに含まれるコンテンツアドレスと同一のコンテンツアドレスが、当該他のノードのキャッシュメモリにいくつ存在するか、を調べる。つまり、ＣＡリストに含まれるコンテンツアドレスと同一のコンテンツアドレスの存在を調べることで、ＣＡリストを送信したノードと受け取ったノードとの各キャッシュメモリに、同一の分割データが記憶されている数を調べる。そして、他のノードは、重複データ数とその時のネットワーク帯域の使用率を確認し、ＣＡリストを送信してきたノードに返信する。
Ｓ１５．他のノードから重複データ数とネットワーク帯域を受けたノードは、他のノードのキャッシュメモリに重複する分割データが多く保有されているファイルについては、当該ファイルを管理するノードの移動を行う。例えば、特定のファイルの分割データが最も多くキャッシュメモリに保有されている他のノードを選択して、当該他のノードが特定のファイルを管理するよう変更する。このとき、ネットワークの帯域が所定値以上空いていることが望ましい。その後、オーナ移動部３１７にて、実際にファイルを管理するノードの変更処理を行う。
【００３７】
「オーナの移動」（図６）
Ｓ２１．上述したように、あるファイルを管理するノードの変更があると、まず、自ノード内に記憶されているファイルと管理ノードとの関係を表すオーナ情報６０１を更新する。
Ｓ２２．そして、あるファイルの管理ノードであるオーナが変わったことを、他のノードに通知する。具体的には、自ノードが管理していたファイルとコンテンツアドレスとの対応関係を表すＣＡ情報３０９であるファイル情報を、管理の移動先となる選択された他のノードに送信して記憶させる（図２の下部に図示する矢印参照）。
【００３８】
Ｓ２３．上述したようにあるファイルを管理するノードとして選択されたノードと、当該ファイルと、を関連付けたロードバランサ３０１上のＦＨ／宛先テーブル６０２を更新する。
Ｓ２４．自ノード内に既に蓄えているキャッシュ６０３をフラッシュする。つまり、キャッシュ６０３内のデータを削除する。
Ｓ２５．自ノードと相手ノードのキャッシュの空き領域サイズを比較し、相手ノードの空き領域サイズが同等もしくは小さければ、キャッシュを均等に保つために一方向の移動だけではなく反対方向への移動（交換）も行う。つまり、管理の移動先となる他のノードのキャッシュに記憶されているファイルの管理を、自ノードに移動させる。具体的には、他のノードで管理していたファイルとコンテンツアドレスとの対応関係を表すファイル情報を他のノードから自ノードに移動して当該自ノードに記憶し、これに対応して、そのファイルを管理するノードを指定するオーナ情報やＦＨ／宛先テーブルを更新する。
【００３９】
以降は、ロードバランサ３０１が、処理要求にかかるファイルを、ＦＨ／宛先テーブルを参照して、指定されたノードに転送する。
【００４０】
以上により、本実施形態におけるストレージシステムによると、ストレージに対するデータ処理を行う各ノードにて、キャッシュメモリに格納されるデータの重複を抑制でき、キャッシュメモリの効率的な使用を図ることができる。従って、より多くのデータがキャッシュに載るため、ＮＦＳアクセスの高速化を図ることができる。特に、複数のクライアントが同時に複数のファイルを読み書きするときや、１つのファイルによってキャッシュを使い切ることはないが、複数のファイルによってキャッシュを使い切る場合（例：キャッシュが4GByteで、ファイルサイズが100MByteなど）に有効である。
【００４１】
また、分散ノード型のストレージシステムでは、ノードの増設に比例してキャッシュのサイズも増えるが、上述した本発明におけるストレージシステムでは、増えたキャッシュを有効に利用し、ノード数に比例したスループットが確保できるため、システム設計が容易になる。
【００４２】
ここで、上記では、コンテンツアドレスを用いて、どのノードでファイルを処理するか、を決めているが、ファイルに関する他の情報を補助的に用いて当該ファイルを処理するノードを決定してもよい。例えば、予めファイル名などのメタデータを基に、ノードを決定することで、負荷は小さくなる。
【００４３】
以下、上述したコンテンツアドレスを使用した方法と併せて、メタデータを使用したオーナノードの選択方法を、図７を参照して説明する。なお、メタデータの情報は、WRITE時には知りえない場合があるため、WRITE時だけではなく、CREATE（ファイルの作成）やLOOKUP（ファイルの検索）の際にも、以下に示す事前設定によるオーナノードの選択を行う。
【００４４】
「事前設定によるオーナノードの選択」（図７）
Ｓ３１．予め設定された設定情報７０１から条件式を取得する。
Ｓ３２．キャッシュ７０２からパス名の情報を取得する。パス名がキャッシュされていない場合には終了する。
Ｓ３３．パス名と条件式を比較して、合致した場合は、条件に設定されているノードに「オーナの移動」を行う。例えば、条件式が「kernel-2.6.18-*.x86_64.rpm」である場合、「*」を任意の文字列と解釈し、「kernel-2.6.18-release1.x86_64.rpm」は合致する、「kernel-2.6.18-release2.ia64.rpm」は合致しない、と判断する。
【００４５】
また、上記では、ロードバランサによってファイルごとに処理するノードを振り分けるとしているが、分散ファイルシステムを構成するノードがロードバランサの役割を担っても良い。つまり、図３において、ノードＡがＦＨ／宛先テーブルを持ち、必要に応じてノードＢにＮＦＳクライアントからの要求を転送する形態も可能とする。また、特定のノードを介さなくても、ＡＲＰなどのネットワーク制御を用いてクライアントが直接ノードにアクセスする形態も可能とする。
【００４６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステムの構成の概略を、図８を参照して説明する。但し、本発明は、以下の構成に限定されない。
【００４７】
（付記１）
複数のストレージ装置１０と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行う複数の記憶処理装置２０と、を備え、
前記記憶処理装置２０は、
ファイルに対する所定の処理を行う際に利用するキャッシュメモリ２１を備えると共に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択するオーナノード選択部２２を備えた、
ストレージシステム。
【００４８】
（付記２）
付記１に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナノード選択部は、前記他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、自装置が管理する特定のファイルを構成する前記分割データが前記他の記憶処理装置のキャッシュメモリに最も多く含まれている前記他の記憶処理装置を、前記特定のファイルを管理する記憶処理装置として選択する、
ストレージシステム。
【００４９】
（付記３）
付記１又は２に記載のストレージシステムであって、
前記記憶処理装置は、
自装置が管理する特定のファイルを構成する前記分割データと当該分割データの前記コンテンツアドレスとの対応を表すファイル情報テーブルを記憶すると共に、
前記オーナノード選択部にて前記特定のファイルを管理する記憶処理装置として選択された前記他の記憶処理装置に、前記特定のファイルの前記ファイル情報テーブルを送信して記憶させるオーナ移動部を備えた、
ストレージシステム。
【００５０】
（付記４）
付記３に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置の前記キャッシュメモリ内のデータを消去する、
ストレージシステム。
【００５１】
（付記５）
付記３又は４に記載のストレージシステムであって、
前記記憶処理装置が管理する特定のファイルを指定する管理指定テーブルを記憶し、当該管理指定テーブルに基づいて特定のファイルの処理要求を当該特定のファイルが指定された前記記憶処理装置に振り分ける振り分け装置を備え、
前記記憶処理装置が有する前記オーナ移動部は、前記オーナノード選択部にて選択された前記他の記憶処理装置が前記特定のファイルを管理するよう前記管理指定テーブルを更新する、
ストレージシステム。
【００５２】
（付記６）
付記３乃至５のいずれかに記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置が管理していた前記特定のファイルの前記ファイル情報テーブルを送信した前記他の記憶処理装置から、当該他の記憶処理装置が管理する特定のファイルを自装置が管理するよう当該特定のファイルの前記ファイル情報テーブルを受け取って記憶する、
ストレージシステム。
【００５３】
（付記７）
付記６に記載のストレージシステムであって、
前記記憶処理装置が有する前記オーナ移動部は、自装置が管理していた前記特定のファイルの前記ファイル情報テーブルを送信した前記他の記憶処理装置が装備した前記キャッシュメモリの空き容量が、自装置が装備した前記キャッシュメモリの空き容量以下である場合に、前記他の記憶処理装置から当該他の記憶処理装置が管理する特定のファイルを自装置が管理するよう当該特定のファイルの前記ファイル情報テーブルを受け取って記憶する、
ストレージシステム。
【００５４】
（付記８）
付記１乃至７のいずれかに記載のストレージシステムであって、
前記記憶処理装置は、自装置が管理する前記特定のファイルを構成する前記分割データの前記コンテンツアドレスの参照数が「１」である当該コンテンツアドレスの数をカウントする非重複データ数算出部を備え、
前記記憶処理装置が有する前記オーナノード選択部は、前記非重複データ数算出部にてカウントした値が予め設定された閾値を超えた場合に、自装置が管理する特定のファイルを構成する前記分割データの前記コンテンツアドレスを前記他の記憶処理装置に送信して前記キャッシュメモリ状況情報を要求する、
ストレージシステム。
【００５５】
（付記９）
付記８に記載のストレージシステムであって、
前記記憶処理装置が有する前記非重複データ数算出部は、自装置が管理する前記特定のファイルを構成する前記分割データの前記コンテンツアドレスの参照数が「１」である当該コンテンツアドレスに加えて、前記コンテンツアドレスの参照数が「２」以上であるが参照するファイルの数が「１」である前記コンテンツアドレスの数をカウントする、
ストレージシステム。
【００５６】
（付記１０）
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データのストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行う記憶処理装置であって、
ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えると共に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する記憶処理装置を選択するオーナノード選択部を備えた、
記憶処理装置。
【００５７】
（付記１１）
付記１０に記載の記憶処理装置であって、
前記オーナノード選択部は、前記他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、自装置が管理する特定のファイルを構成する前記分割データが前記他の記憶処理装置のキャッシュメモリに最も多く含まれている前記他の記憶処理装置を、前記特定のファイルを管理する記憶処理装置として選択する、
記憶処理装置。
【００５８】
（付記１２）
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データのストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行い、ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えた記憶処理装置に、
予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する記憶処理装置を選択するオーナノード選択部、を実現させるためのプログラム。
【００５９】
（付記１３）
付記１２に記載のプログラムであって、
前記オーナノード選択部は、前記他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、自装置が管理する特定のファイルを構成する前記分割データが前記他の記憶処理装置のキャッシュメモリに最も多く含まれている前記他の記憶処理装置を、前記特定のファイルを管理する記憶処理装置として選択する、
プログラム。
【００６０】
（付記１４）
複数のストレージ装置と、
ファイルを分割した各分割データを、当該分割データのデータ内容に固有であり当該分割データの前記ストレージ装置に対する格納位置を特定するコンテンツアドレスを用いて前記複数のストレージ装置に分散して記憶すると共に、前記ストレージ装置に既に記憶されている分割データと同一内容である他の分割データを格納する際に前記既に記憶されている分割データの前記コンテンツアドレスを前記他の分割データとして参照させる重複排除処理を行い、ファイルに対する所定の処理を行う際に利用するキャッシュメモリを備えた複数の記憶処理装置と、を備えたストレージシステムによる情報処理方法であって、
前記記憶処理装置が、予め設定された自装置が管理する特定のファイルを構成する前記分割データの格納位置を表す前記コンテンツアドレスを他の前記記憶処理装置に送信して、当該コンテンツアドレスにて特定される前記分割データの前記他の記憶処理装置における前記キャッシュメモリに対する格納状況を表すキャッシュメモリ状況情報を当該他の記憶処理装置に要求し、当該他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、前記特定のファイルを管理する前記記憶処理装置を選択する、
情報処理方法。
【００６１】
（付記１５）
付記１４に記載の情報処理方法であって、
前記記憶処理装置が、前記他の記憶処理装置から取得した前記キャッシュメモリ状況情報に基づいて、自装置が管理する特定のファイルを構成する前記分割データが前記他の記憶処理装置のキャッシュメモリに最も多く含まれている前記他の記憶処理装置を、前記特定のファイルを管理する記憶処理装置として選択する、
情報処理方法。
【符号の説明】
【００６２】
３０１  ロードバランサ
３０２  ＮＦＳクライアント
３０３  ノード
３０４  ＮＦＳサーバ機能部
３０５  重複排除ＦＳ
３０６  大容量不揮発ストレージ
３０７  キャッシュ
３０９  ＣＡ情報
３１０  設定情報
３１１  ネットワーク帯域情報
３１２  タイマ装置
３１３  オーナ制御機能部
３１４  オーナ情報
３１５  非重複データ数算出部
３１６  オーナノード選択部
３１７  オーナ移動部
１０  ストレージ装置
２０  記憶処理装置
２１  キャッシュメモリ
２２  オーナノード選択部
【図１】
0005673232.tif 000002
【図２】
0005673232.tif 000003
【図３】
0005673232.tif 000004
【図４】
0005673232.tif 000005
【図５】
0005673232.tif 000006
【図６】
0005673232.tif 000007
【図７】
0005673232.tif 000008
【図８】
0005673232.tif 000009