(57)【特許請求の範囲】
【請求項１】
複数のゾーンに分散して配置された複数のストレージ装置と、
前記複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備え、
前記複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置は、前記ファイルを同じ前記ゾーン内の第２のストレージ装置にレプリケートし、
前記第２のストレージ装置は、レプリケートされた前記ファイルに関して、前記第１および第２のストレージ装置の情報を含むレプリケーション情報と、前記第１および第２のストレージ装置のそれぞれに格納された前記ファイルが最新であるか否かを示すステータス情報とを生成し、生成した前記レプリケーション情報および前記ステータス情報を前記第１および第２のストレージ装置間で同期させるとともに、前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を前記管理サーバ装置に送信するストレージシステム。
【請求項２】
前記ストレージ装置は、
自身が格納するファイルへのアクセスによる負荷を検知する負荷検知部と、
前記負荷検知部によってアクセス負荷が増大したと検知されてレプリケートされたファイルに関する前記レプリケーション情報および前記ステータス情報を生成するレプリケーション制御部と、
前記レプリケートされたファイルに関する前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を前記管理サーバ装置に送信する情報送信部と、
前記レプリケートされたファイルが変更された際に、前記レプリケートされたファイルに関する前記ステータス情報を変更するステータス制御部とを含む制御手段を有する請求項１に記載のストレージシステム。
【請求項３】
前記第１のストレージ装置は、
前記第１のストレージ装置内の前記負荷検知部が自装置のファイルへのアクセス負荷が増大したと検知した際に、前記アクセス負荷が増大したファイルを前記同じゾーン内の前記第２のストレージ装置にレプリケートし、
前記第２のストレージ装置は、
前記第１のストレージ装置からレプリケートされた前記ファイルに関して前記レプリケーション情報および前記ステータス情報を前記レプリケーション制御部によって生成し、生成した前記レプリケートされたファイルに関する前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を前記管理サーバ装置に前記情報送信部によって送信する請求項２に記載のストレージシステム。
【請求項４】
クライアント装置から前記ストレージ装置に格納されたファイルへのアクセス要求があった際に、
前記管理サーバ装置は、
自装置が有する前記アクセス要求されたファイルに関する前記レプリケーション情報および前記ステータス情報を参照して、前記アクセス要求されたファイルを格納する前記ストレージ装置を前記クライアント装置に通知し、
前記管理サーバ装置の通知に応じた前記クライアント装置にアクセスされた前記ストレージ装置は、
自装置が有する前記アクセス要求されたファイルに関する前記レプリケーション情報および前記ステータス情報を参照し、
自装置が格納する前記アクセス要求されたファイルが最新であった場合、前記アクセス要求されたファイルに関する前記ステータス情報を変更し、前記アクセス要求されたファイルへのアクセスを前記クライアント装置から受け付け、
自装置が格納する前記アクセス要求があったファイルが最新ではなかった場合、前記アクセス要求があったファイルの最新版を格納する前記ストレージ装置に関する情報を前記クライアント装置に通知する請求項１乃至３のいずれか一項に記載のストレージシステム。
【請求項５】
前記管理サーバ装置は、
レプリケートされていないファイルに関して、前記ファイルのファイル名を用いて前記ファイルが格納されている前記ストレージ装置を検索する通常モード用ハッシュ手段と、
レプリケートされたファイルに関して、前記レプリケーション情報を参照し、前記ファイルに紐付けられた前記ストレージ装置を検索するレプリケーションモード用ハッシュ手段とを有する請求項１乃至４のいずれか一項に記載のストレージシステム。
【請求項６】
前記管理サーバ装置に接続され、所望のファイルへのアクセス要求をする少なくとも一つのクライアント装置を備える請求項１乃至５のいずれか一項に記載のストレージシステム。
【請求項７】
前記管理サーバ装置に接続され、クライアント装置からのファイルへのアクセス要求に対応させて、ネットワーク上の負荷を分散する負荷分散装置を備える請求項１乃至６のいずれか一項に記載のストレージシステム。
【請求項８】
複数のゾーンに分散して配置された複数のストレージ装置と、前記複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムを構成するストレージ装置であって、
自装置が格納するファイルが所定条件に達した際に、前記ファイルを同じ前記ゾーン内の他のストレージ装置にレプリケートし、
他装置からファイルがレプリケートされた際に、前記自装置および前記他装置の情報を含むレプリケーション情報と、前記自装置および前記他装置のそれぞれに格納された前記ファイルが最新であるか否かを示すステータス情報とを生成し、生成した前記レプリケーション情報および前記ステータス情報を前記自装置と前記他装置との間で同期させるとともに、前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を前記管理サーバ装置に送信するストレージ装置。
【請求項９】
複数のゾーンに分散して配置された複数のストレージ装置と、前記複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムを構成する管理サーバ装置であって、
前記複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置が前記ファイルを同じ前記ゾーン内の第２のストレージ装置にレプリケートし、前記第２のストレージ装置がレプリケートされた前記ファイルに関して生成した前記第１および第２のストレージ装置の情報を含むレプリケーション情報と、前記第１および第２のストレージ装置のそれぞれに格納された前記ファイルが最新であるか否かを示すステータス情報とのうち少なくとも一方を受信し、受信した前記ファイルに関する前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を参照して、クライアント装置からのファイル要求に応答する管理サーバ装置。
【請求項１０】
複数のゾーンに分散して配置された複数のストレージ装置と、前記複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムにおけるファイル管理方法であって、
前記複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置によって、前記ファイルを同じ前記ゾーン内の第２のストレージ装置にレプリケートし、
前記第２のストレージ装置によって、レプリケートされた前記ファイルに関して、前記第１および第２のストレージ装置の情報を含むレプリケーション情報と、前記第１および第２のストレージ装置のそれぞれに格納された前記ファイルが最新であるか否かを示すステータス情報とを生成し、
生成した前記レプリケーション情報および前記ステータス情報を前記第１および第２のストレージ装置間で同期させるとともに、前記レプリケーション情報および前記ステータス情報のうち少なくとも一方を前記管理サーバ装置に送信するファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ、管理サーバおよびファイル管理方法に関する。特に、本発明は、複数のゾーンにデータを分散して管理するストレージシステム、ストレージ、管理サーバおよびファイル管理方法に関する。
【背景技術】
【０００２】
データが三重ミラー化されたストレージシステムにおいては、あるゾーンで障害が発生したときに他のゾーンに影響が波及しないように、複数のゾーンを互いに遠隔させて設置することによって冗長性を確保している。
【０００３】
特許文献１には、分散配置された複数のストレージ装置のファイルに、ＧＵＩＤ（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）を付与して管理するファイル管理方法について開示されている。
【０００４】
複数のゾーンにデータが分散されていると、特定のゾーンに近いクライアント群からのアクセスが多くなって負荷が集中する場合もある。そのような場合は、負荷を分散するためには、遠隔のゾーンにレプリケートされたデータにアクセスすることになる。遠隔のゾーンのデータにアクセスすると、レイテンシが悪化し、性能劣化することが想定される。また、負荷分散するためにゾーンごとレプリケーションし、データの多重度をゾーンの数で管理することによって、特定のゾーンに集中した負荷を解消する方法もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−０５０１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の方法によれば、レプリケーション中のファイルにアクセス要求があった場合、基準ストレージ装置からオリジナルのファイルを転送することによって、レプリケーション中であっても整合性を保ちながらファイルにアクセスできる。しかし、特許文献１の方法では、遠隔のストレージゾーンに格納されたファイルへのアクセスによるレイテンシの悪化や性能劣化を改善することはできない。
【０００７】
また、ゾーンをまるごとレプリケートする方法では、負荷の大小に関わらずにレプリケートするため、物理的なデータ格納領域が大幅に増大するという問題点がある。
【０００８】
本発明の目的は、遠隔された複数のゾーンにデータを分散して格納する場合において、データへの負荷集中が発生した際に、性能劣化することなく、負荷分散することができるストレージシステムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のストレージシステムは、複数のゾーンに分散して配置された複数のストレージ装置と、複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備え、複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置は、ファイルを同じゾーン内の第２のストレージ装置にレプリケートし、第２のストレージ装置は、レプリケートされたファイルに関して、第１および第２のストレージ装置の情報を含むレプリケーション情報と、第１および第２のストレージ装置のそれぞれに格納されたファイルが最新であるか否かを示すステータス情報とを生成し、生成したレプリケーション情報およびステータス情報を第１および第２のストレージ装置間で同期させるとともに、レプリケーション情報およびステータス情報のうち少なくとも一方を管理サーバ装置に送信する。
【００１０】
本発明のストレージ装置は、複数のゾーンに分散して配置された複数のストレージ装置と、複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムを構成するストレージ装置であって、自装置が格納するファイルが所定条件に達した際に、ファイルを同じゾーン内の他のストレージ装置にレプリケートし、他装置からファイルがレプリケートされた際に、自装置および他装置の情報を含むレプリケーション情報と、自装置および他装置のそれぞれに格納されたファイルが最新であるか否かを示すステータス情報とを生成し、生成したレプリケーション情報およびステータス情報を自装置と他装置との間で同期させるとともに、レプリケーション情報およびステータス情報のうち少なくとも一方を管理サーバ装置に送信する。
【００１１】
本発明の管理サーバ装置は、複数のゾーンに分散して配置された複数のストレージ装置と、複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムを構成する管理サーバ装置であって、複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置がファイルを同じゾーン内の第２のストレージ装置にレプリケートし、第２のストレージ装置がレプリケートされたファイルに関して生成した第１および第２のストレージ装置の情報を含むレプリケーション情報と、第１および第２のストレージ装置のそれぞれに格納されたファイルが最新であるか否かを示すステータス情報とのうち少なくとも一方を受信し、受信したファイルに関するレプリケーション情報およびステータス情報のうち少なくとも一方を参照して、クライアント装置からのファイル要求に応答する。
【００１２】
本発明のファイル管理方法は、複数のゾーンに分散して配置された複数のストレージ装置と、複数のストレージ装置を管理する少なくとも一つの管理サーバ装置とを備えるストレージシステムにおけるファイル管理方法であって、複数のストレージ装置のうち所定条件に達したファイルを格納する第１のストレージ装置によって、ファイルを同じゾーン内の第２のストレージ装置にレプリケートし、第２のストレージ装置によって、レプリケートされたファイルに関して、第１および第２のストレージ装置の情報を含むレプリケーション情報と、第１および第２のストレージ装置のそれぞれに格納されたファイルが最新であるか否かを示すステータス情報とを生成し、生成したレプリケーション情報およびステータス情報を第１および第２のストレージ装置間で同期させるとともに、レプリケーション情報およびステータス情報のうち少なくとも一方を管理サーバ装置に送信する。
【発明の効果】
【００１３】
本発明によれば、遠隔された複数のゾーンにデータを分散して格納する場合において、データへの負荷集中が発生した際に、性能劣化することなく、負荷分散することができるストレージシステムを提供することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るストレージシステムの概略を示すブロック図である。
【図２】本発明の実施形態に係るストレージシステムの構成を示すブロック図である。
【図３】本発明の実施形態に係るストレージシステムのゾーン内におけるレプリケーション構成の一例を示す概念図である。
【図４】本発明の実施形態に係るストレージシステムのストレージの機能構成を示すブロック図である。
【図５】本発明の実施形態に係るストレージシステムにおいて、レプリケーション直後に生成されるレプリケーション／ステータス情報テーブルの一例である。
【図６】本発明の実施形態に係るストレージシステムにおいて、ファイル更新時にステータス情報が変更されたレプリケーション／ステータス情報テーブルの一例である。
【図７】本発明の実施形態に係るストレージシステムの管理サーバの構成を示すブロック図である。
【図８】本発明の実施形態に係るストレージシステムの管理サーバの機能構成を示すブロック図である。
【図９】本発明の実施形態に係るストレージシステムの管理サーバ内に格納されるレプリケーション／ステータス情報テーブルの一例である。
【図１０】本発明の実施形態に係るストレージシステムにおいて、クライアントがファイルにアクセスする際の流れについて説明するためのシーケンス図である。
【図１１】本発明の実施形態に係るストレージシステムにおいて、ファイルをレプリケートする際の流れについて説明するためのシーケンス図である。
【図１２】本発明の実施形態に係るストレージシステムにおいて、ファイルを変更するときの流れについて説明するためのシーケンス図である。
【図１３】本発明の実施形態に係るストレージシステムにおけるレプリケーションおよびファイル変更時における各ストレージのステータス情報が遷移する例を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由が無い限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
【００１６】
（第１の実施形態）
［構成］
まず、本発明の第１の実施形態に係るストレージシステムの構成について図面を参照しながら説明する。なお、図面においては、同じ機能を有する構成要素については代表的な符号を付与するとともに、個別の要素を区別するための識別番号をハイフン「−」に続けて付与することがある。例えば、後述するストレージ２１−１１に関しては、ハイフン「−」の前の「２１」が代表的な符号であり、ハイフン「−」の後の「１１」が識別番号である。
【００１７】
図１は、本実施形態に係るストレージシステムの全体構成を示す概念図である。なお、図１は、多重化されたストレージシステムの一例として、三重ミラーストレージシステムを示す。これ以降、三重ミラーストレージシステムを例として説明していくが、本実施形態に係るストレージシステムは三重以上に多重化されたストレージシステムにも適用することができる。
【００１８】
図１のように、本実施形態に係るストレージシステムは、少なくとも一つの管理サーバ１１、複数のゾーン２０に分散された複数のストレージ２１、ロードバランサ４０を備える。管理サーバ１１、ストレージ２１およびロードバランサ４０は、フロントエンドＬＡＮ７１（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）によって互いに接続されている。フロントエンドＬＡＮ７１は、クライアント５０にサービスを提供するためのＬＡＮである。また、フロントエンドＬＡＮ７１には、少なくとも一つのクライアント５０が接続される。なお、クライアント５０は、ストレージシステムの構成の一部とみなしてもよいし、ストレージシステムを外部から利用するものとみなしてもよい。
【００１９】
管理サーバ１１は、クライアント５０からのデータを含むファイルへのアクセス要求に応じて、クライアント５０の要求するファイルが格納されているストレージ２１をクライアント５０に通知する。管理サーバ１１は、一般的なサーバの機能を有する管理サーバ装置である。
【００２０】
管理サーバ１１は、各ゾーン２０内のストレージ２１間におけるファイルのレプリケーションに関する情報（レプリケーション／ステータス情報とも呼ぶ）を、そのファイルのレプリケート先のストレージ２１から取得する。
【００２１】
図１のように、複数の管理サーバ１１のうち管理サーバ１１−１がレプリケートされたファイルに関するレプリケーション情報を受信した場合、管理サーバ１１−１は、他の管理サーバ１１−２および１１−３にそのレプリケーション情報を送信する。
【００２２】
管理サーバ１１は、クライアント５０からファイルへのアクセス要求があった場合、ストレージから受信した情報に基づいて、適切なアクセス先となるストレージ２１をクライアント５０に通知する。
【００２３】
なお、図１は、本実施形態に係るストレージシステムが３つの管理サーバ１１を備える例を示すが、管理サーバ１１は一つであってもよいし、三つ以上であってもよい。
【００２４】
複数のストレージ２１は、複数のゾーン２０に分散されて配置される。各ストレージ２１は、一般的なストレージの機能を有するストレージ装置である。
【００２５】
複数のゾーン２０は、互いに離れた場所に配置される。例えば、ゾーン２０−１（以下、ゾーン１）で障害が発生した場合であっても、その障害の影響が及ばないような場所にゾーン２０−２（以下、ゾーン２）やゾーン２０−３（以下、ゾーン３）は配置される。自然災害に対しての冗長性を持たせるためには、各ゾーン２０を互いに遠隔して配置することが好ましい。また、施設内で起こる障害に対しての冗長性を持たせるためには、施設内において各ゾーン２０を離れた位置に配置するように構成してもよい。
【００２６】
各ゾーン２０は、インターネットやＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク８０によって互いに接続される。各ゾーン２０を接続するネットワーク８０は、単一のネットワークであってもよいし、複数の異なるネットワークであってもよい。なお、ネットワーク８０がインターネットである場合は、ネットワーク８０は本実施形態に係るストレージシステムの構成に含まない。一方、ネットワーク８０がＬＡＮやＷＡＮである場合は、ネットワーク８０を本実施形態に係るストレージシステムの構成に含んでもよい。
【００２７】
図１の例では、ゾーン１にはストレージ２１−１１および２１−１２、ゾーン２にはストレージ２２−２１および２２−２２、ゾーン３にはストレージ２２−３１が配置されている。また、図１には、各ゾーン２０にファイルＡ、Ｂ、Ｃ、ＤおよびＥが３重化されて格納されている。
【００２８】
図２には、本実施形態に係るストレージシステムに関して、ゾーン２のみを抜き出して図示している。図２において、各ゾーン２内の各ストレージ２１（２１−２１、２１−２２および２１−２３）は、フロントエンドＬＡＮ７１を含むネットワーク８０に接続される。また、各ゾーン２内の各ストレージ２１は、フロントエンドＬＡＮ７１とは異なるバックエンドＬＡＮ７２によって互いに接続されている。各ゾーン２内の各ストレージは、バックエンドＬＡＮ７２を介して同期している。なお、ゾーン２以外の各ゾーン２０（ゾーン１および３）も、ゾーン２と同様の接続状態をもつ。
【００２９】
図３に、ゾーン２内におけるファイルのレプリケーションの一例を示す。図３は、ストレージ２１−２１（以下、ストレージ１）のファイルＡをストレージ２１−２２（以下、ストレージ２）にレプリケートし、ストレージ２１−２２のファイルＢをストレージ２１−２３（以下、ストレージ３）にレプリケートする例を示す。ゾーン２内の各ストレージ２１は、バックエンドＬＡＮ７２を介してファイルをレプリケートする。
【００３０】
なお、ファイルのレプリケーションは二つのストレージ間で行えばよいが、ゾーン２に含まれる三つ以上のストレージ２１間でレプリケーションを行ってもよい。また、ゾーン２以外のゾーン１および３においても、ゾーン２と同様にレプリケーションが行われる。
【００３１】
ロードバランサ４０は、クライアント５０からのファイルアクセス要求に対応させて、ネットワーク８０上の負荷を分散する負荷分散装置である。ロードバランサ４０は、一般的な負荷分散装置であり、例えば、ラウンドロビン方式や最小接続方式、最速時間応答方式などの方式によって要求の割り当てを行う。
【００３２】
ロードバランサ４０は、管理サーバ１１およびクライアント５０が接続されるフロントエンドＬＡＮ７１に接続される。なお、ロードバランサ４０は、管理サーバ１１と各ゾーン２０との間に挿入するように配置してもよい。また、ロードバランサ４０は、冗長構成を有していてもよい。
【００３３】
クライアント５０は、ファイルにアクセスするクライアント装置である。クライアント５０は、所望するファイルにアクセスするため、そのファイルへのアクセス要求を管理サーバ１１に送信する。また、クライアント５０は、管理サーバ１１から通知されたストレージ２１にアクセスする。
【００３４】
［ストレージ］
次に、ストレージ２１の内部構成について図４を用いて説明する。複数のストレージ２１のうち所定条件に達したデータを格納するストレージ２１（第１のストレージ）は、そのファイルを同じゾーン２０内部の他のストレージ２１（第２のストレージ）にレプリケートする。なお、所定条件とは、データへのアクセスが許容される上限値であり、任意に設定することができる。
【００３５】
例えば、あるクライアント５０がストレージ２１のデータにアクセスしていれば、ストレージ２１が格納するそのデータへのアクセスが所定条件に達したとみなせる。また、例えば、あるクライアント５０がストレージ２１のデータにアクセスする頻度が一定の閾値を超えた段階で、ストレージ２１が格納するそのデータへのアクセスが所定条件に達したとみなしてもよい。また、例えば、あるクライアント５０がストレージ２１のデータにアクセスする単位時間当たりの頻度が一定の閾値を超えた段階で、ストレージ２１が格納するそのデータへのアクセスが所定条件に達したとみなしてもよい。また、例えば、あるクライアント５０がストレージ２１のデータにアクセスし、そのデータを更新する頻度が一定の閾値を超えた段階で、ストレージ２１が格納するそのデータへのアクセスが所定条件に達したとみなしてもよい。
【００３６】
図４は、ストレージ２１内部の制御手段３０の構成を示すブロック図である。図４のように、ストレージ２１は、負荷検知部３１、レプリケーション制御部３２、ステータス制御部３３、情報送信部３４を有する。また、ストレージ２１は、同一ゾーン２０内の各ファイルのレプリケーションに関するレプリケーション情報と、レプリケートされた各ファイルが最新であるか否かを示すステータス情報とを生成し、管理する。なお、レプリケーション情報とステータス情報とを併せてレプリケーション／ステータス情報とも呼ぶ。また、レプリケーション／ステータス情報は、レプリケーション／ストアオーナー（ｒｅｐｌｉｃａｔｉｏｎ／ｓｔｏｒｅ  ｏｗｎｅｒ）情報ともよぶ。
【００３７】
なお、図４のストレージ２１内の構成においては、ファイルを格納する格納部、ファイルの送受信を行う送受信部などは省略している。また、ゾーン２以外のゾーン１および３の各ストレージ２１も、ゾーン２と同様の構成をもつ。
【００３８】
負荷検知部３１は、ファイルへのアクセスによる負荷を検知する。
【００３９】
例えば、ファイルＡへのアクセス頻度が大きくなった場合、負荷検知部３１は、ファイルＡへのアクセスが高頻度であると検知する。負荷検知部３１が負荷の大きいファイルを検知すると、ストレージ２１は、自身のレプリケーション機能によって、対象ファイルを同一ゾーン２０内の他のストレージ２１にレプリケートする。すなわち、負荷検知部３１によって負荷が大きいと判定されたファイルは、ゾーン２０内の他のストレージ２１にレプリケートされることになる。なお、負荷検知部３１は、ファイルＡへのアクセス頻度以外の所定条件に基づいてレプリケートするファイルを判定してもよい。
【００４０】
レプリケーション制御部３２は、同一ゾーン２０内のストレージ２１間でレプリケートされたファイルに関するレプリケーション／ステータス情報を生成し、管理する。具体的には、レプリケート先のレプリケーション制御部３２は、レプリケートされたファイルを格納するストレージ２１に関する情報を含むレプリケーション／ステータス情報を生成し、生成した情報を管理する。
【００４１】
図５に、レプリケーション直後に生成されるレプリケーション／ステータス情報を格納する情報テーブル２００の一例（レプリケーション／ステータス情報２０１および２０２）を示す。以下、レプリケーション／ステータス情報２０１を情報テーブル２０１、レプリケーション／ステータス情報２０２を情報テーブル２０２と記載する。例えば、情報テーブル２０１はゾーン２内のストレージ１に格納され、情報テーブル２０２はストレージ２に格納される。
【００４２】
図５の情報テーブル２０１は、レプリケートされたファイルに関するレプリケーション情報として、ストレージ１が格納するファイルのファイル名、ストレージ１の属するゾーン２０のゾーン番号を格納する。また、図５の情報テーブル２０１は、各ストレージ２１に格納されたファイルが最新であるか否かを示すステータス情報を格納する。
【００４３】
図５のように、情報テーブル２０１は、各ストレージ２１に格納されたファイルのステータス情報を格納する。ファイルのステータス情報は、ストレージ２１に格納されたファイルが最新である場合はｖａｌｉｄ（有効）、最新ではない場合はｉｎｖａｌｉｄ（無効）になる。図５の例では、ストレージ１からストレージ２へとファイルＡをレプリケーションした直後は、ストレージ１および２に格納されたファイルＡは共に最新であるため、情報テーブル２０１および２０２のステータス状態は共にｖａｌｉｄである。
【００４４】
図５の情報テーブル２０１には、ストレージ１が格納するファイルＡのファイル名の欄に「／ｍｎｔ／ｈｏｍｅ／ｄｉｒＡ／ｆｉｌｅＡ」、ストレージ１が属するゾーン２０の番号の欄にゾーン２の番号「２」が格納されている。同様に、図５の情報テーブル２０１には、ストレージ１が格納するファイルＢのファイル名の欄に「／ｍｎｔ／ｈｏｍｅ／ｄｉｒＢ／ｆｉｌｅＢ」、ストレージ１が属するゾーン２０の番号の欄にゾーン２の番号「２」が格納されている。
【００４５】
情報テーブル２０２についても、情報テーブル２０１と同様の情報が格納される。
【００４６】
なお、図５の情報テーブル２０１および２０２においては、ファイルＡのレプリケーション／ステータス情報に関して、ストレージ１およびストレージ２のいずれがレプリケート元・レプリケート先になるのかを区別せずに格納している。図５の情報テーブル２０１および２０２は、いずれのストレージ２１がレプリケート元・レプリケート先であるのか明確にする情報を含んでいてもよい。これ以降、レプリケート元のストレージ２１（第１のストレージとも呼ぶ）と、レプリケート先のストレージ２１（第２のストレージとも呼ぶ）とを併せて、レプリケーション関係にあるストレージ２１とも呼ぶ。
【００４７】
例えば、ゾーン２内のストレージ１からストレージ２にファイルＡがレプリケートされたものとする。このとき、ストレージ２のレプリケーション制御部３２は、ファイルＡのレプリケート元であるストレージ１の情報と、レプリケート先であるストレージ２の情報とを含むレプリケーション情報を生成する。併せて、ストレージ２のレプリケーション制御部３２は、ストレージ１および２に格納されたファイルＡが最新であるか（ｖａｌｉｄ）否か（ｉｎｖａｌｉｄ）を示すステータス情報を生成する。すなわち、ストレージ２のレプリケーション制御部３２は、レプリケートされたファイルＡのレプリケーション／ステータス情報を生成する。この段階では、ストレージ２のレプリケーション制御部３２によって、図５の下段の情報テーブル２０２に記載された内容のレプリケーション／ステータス情報が生成されている。
【００４８】
この後、ストレージ１とストレージ２との間で同期がとられ、図５の上段の情報テーブル２０１に記載された内容のレプリケーション／ステータス情報がストレージ１にも生成される。なお、レプリケーション／ステータス情報は、図５のようなテーブル形式をもたなくてもよい。
【００４９】
レプリケーション制御部３２は、レプリケーション／ステータス情報を生成すると、生成したレプリケーション／ステータス情報を情報送信部３４に出力する。
【００５０】
ステータス制御部３３は、ストレージ２１に格納された各ファイルのレプリケーション／ステータス情報に含まれるステータス情報を生成し、管理する。
【００５１】
具体的には、レプリケートされたファイルが更新された際に、そのファイルを格納するストレージ２１のステータス制御部３３は、各ストレージ２１に格納されたそのファイルに関するステータス情報を生成する。ステータス制御部３３は、自身が生成したステータス情報に基づいて、レプリケーション制御部３２によって生成されたレプリケーション／ステータス情報に含まれるステータス情報を更新する。
【００５２】
例えば、既にファイルＡのレプリケーション／ステータス情報が生成されている状況において、ストレージ２に格納されたファイルＡがクライアント５０−１（以下、クライアント１）によって更新されたものとする。このとき、ストレージ２のステータス制御部３３は、ストレージ２に格納されたファイルＡは最新であり（ｖａｌｉｄ）、ストレージ１に格納されたファイルＡは最新ではない（ｉｎｖａｌｉｄ）というステータス情報を生成する。なお、このとき変更されたステータス情報は、ストレージ２からストレージ１に送信されることによって、ストレージ１とストレージ２の同期がとられる。
【００５３】
ファイル変更時における情報テーブル２０１および２０２のステータス情報の一例を図６に示す。図６は、ストレージ２のファイルＡが変更され、ストレージ１のファイルＢが変更された例を示す。このとき、ファイルＡに関しては、ストレージ２の方が最新であるためにｖａｌｉｄになり、ストレージ１の方は最新ではないためにｉｎｖａｌｉｄになる。一方、ファイルＢに関しては、ストレージ１の方が最新であるためにｖａｌｉｄになり、ストレージ２の方は最新ではないためにｉｎｖａｌｉｄになる。なお、このとき変更されたステータス情報は、ストレージ１とストレージ２との間で同期がとられるため、情報テーブル２０１と２０２のステータス情報は同じになる。
【００５４】
通常、いずれかのストレージ２１でファイルに変更があった場合、当該ファイルのステータス情報を変更した後に、再度ストレージ２１間でレプリケーションを行い、当該ファイルのステータス情報を最新（ｖａｌｉｄ）に戻す。再びレプリケーションされた後のファイルのステータス情報は、図５の情報ファイル２０１および２０２のように全て最新（ｖａｌｉｄ）に戻る。
【００５５】
情報送信部３４は、ストレージ２１内でファイルのレプリケーションが行われると、そのファイルがレプリケートされたことを管理サーバ１１に通知する。すなわち、情報送信部３４は、レプリケーション制御部３２によって生成されたレプリケーション／ステータス情報を管理サーバ１１に送信する。なお、情報送信部３４は、レプリケーション情報のみを管理サーバ１１に送信するように設定してもよい。また、情報送信部３４は、レプリケーション情報およびステータス情報のうち少なくとも一方を管理サーバ１１に送信するように設定してもよい
例えば、ファイルＡがストレージ１からストレージ２にレプリケートされた場合、情報送信部３４は、ファイルＡがストレージ１とストレージ２との間でレプリケートされたことを管理サーバ１１に通知する。このとき、ファイルＡのレプリケート先であるストレージ２の情報送信部３４は、レプリケーション／ステータス情報を管理サーバ１１に送信する。
【００５６】
また、情報送信部３４は、クライアント５０からファイルへのアクセスがあった場合、自装置が格納する当該ファイルが最新であればそのファイルへのアクセスを受け付ける。一方、情報送信部３４は、自装置が格納する当該ファイルが最新でなければ、当該ファイルのステータス情報が最新（ｖａｌｉｄ）であるストレージ２１の情報をクライアント５０に対して通知する。
【００５７】
例えば、図６の情報テーブル２０１のようなステータスの場合、クライアント１からストレージ１のファイルＡへのアクセスがあったものとする。ストレージ１の情報送信部３４は、ストレージ１のファイルＡは最新ではない（ｉｎｖａｌｉｄ）ため、ファイルＡのステータス情報と、最新のファイルＡがストレージ２に格納されているという情報とをクライアント１に通知する。
【００５８】
［管理サーバ］
次に、管理サーバ１１の内部構成について図７および図８を用いて説明する。
【００５９】
図７は、管理サーバ１１が内部にハッシュ手段１３を含むこと示すブロック図である。また、図８は、ハッシュ手段１３内部の機能構成を示すが概念図である。
【００６０】
図７のように、各管理サーバ１１−１〜３（以下、管理サーバ１１）は、それぞれハッシュ手段１３−１〜３（ハッシュ手段１３）を含む。ハッシュ手段１３は、クライアント５０からファイルへのアクセス要求を受けた際に、そのファイルを格納するストレージ２１の情報をクライアント５０に返す。例えば、ハッシュ手段１３は、ファイル名にいずれかのストレージ２１を対応させた情報を含むハッシュ表を有し、そのハッシュ表に基づいてクライアント５０からの要求に応える。
【００６１】
図８のように、ハッシュ手段１３は、データ三重ミラーストレージシステム用ハッシュ手段１３１（以下、通常モード用ハッシュ手段１３１）、レプリケートモード用ハッシュ手段１３３を有する。ハッシュ手段１３は、ファイルのレプリケーションが行われたストレージ２１から受信したレプリケーション／ステータス情報を格納する。
【００６２】
ハッシュ手段１３は、図９のレプリケーション情報テーブル３００（以下、情報テーブル３００）に含まれるようなレプリケーション情報を管理する。図９に示す管理サーバ１１の情報テーブル３００は、ファイルＡがゾーン＃２のストレージ１とストレージ２とに分散配置され、レプリケートモードであるという情報を有する。なお、情報テーブル３００は、対象ファイルがどこのストレージ２１においてレプリケートされたのかという情報を含むが、いずれのストレージ２１に格納されたファイルが最新であるか否かを示す情報は含まない。また、情報テーブル３００にレプリケート元とレプリケート先の情報を追加してもよい。
【００６３】
通常モード用ハッシュ手段１３１は、レプリケートされていないファイルに関して、ファイル名から格納場所を検索するハッシュ手段である。すなわち、レプリケートされていないファイルについては、通常モード用ハッシュ手段１３１が、ファイル名からファイルの格納場所を検索し、そのファイルが格納されるゾーン２０およびストレージ２１に関する情報を確定する。
【００６４】
レプリケートモード用ハッシュ手段１３３は、レプリケートされているファイルに関して、情報テーブル３００を参照し、そのファイルのファイル名に紐付けられた格納場所を検索するハッシュ手段である。なお、レプリケートモード用ハッシュ手段１３３は、ファイル名に紐付けられた格納場所として、レプリケート元およびレプリケート先のいずれを選択してもよい。
【００６５】
ファイルがレプリケートされていない場合、レプリケートモード用ハッシュ手段１３３は、そのファイルのファイル名を用いて情報テーブル３００から格納先を検索できない。なぜならば、情報テーブル３００には、そのファイルに関するレプリケーション／ステータス情報が含まれないためである。そのため、レプリケートされていないファイルについては、通常モード用ハッシュ手段１３１が格納場所を検索する。
【００６６】
例えば、クライアント１からファイルＡおよびＢへのアクセス要求があったとする。ただし、ファイルＡはレプリケートされており、ファイルＢはレプリケートされていないものとする。
【００６７】
このとき、ファイルＡはレプリケートされているため、レプリケートモード用ハッシュ手段１３３がファイルＡのファイル名から情報テーブル３００を参照し、レプリケート先の格納場所（ストレージ２）を検出する。また、ファイルＢはレプリケーションされていないため、通常モード用ハッシュ手段１３１が、ファイル名から格納場所（ストレージ１）を確定する。
【００６８】
そして、ハッシュ手段１３は、通常モード用ハッシュ手段１３１およびレプリケートモード用ハッシュ手段１３３が確定した格納先のうち、低負荷であるレプリケート先ストレージ２の情報をクライアント１に通知する。レプリケート元のストレージ１においてファイルＡへのアクセスが高負荷となり、低負荷であるレプリケート先のストレージ２へのレプリケーションが行われたため、レプリケート先であるストレージ２のファイルＡの方が低負荷であることになる。
【００６９】
以上が、本実施形態に係るストレージシステムの構成に関する説明である。
【００７０】
次に、本実施形態に係るストレージシステムにおける特徴的な処理について例を挙げて説明する。なお、以下の例においては、レプリケーション／ステータス情報に基づいて情報テーブル２０１、２０２および３００が生成されるものとして説明する。
【００７１】
＜レプリケーション処理＞
ゾーン２のストレージ１に格納するファイルＡ（ｍｎｔ／ｈｏｍｅ／ｄｉｒＡ／ｆｉｌｅＡ）に対するクライアント１または２からのアクセスが高頻度であり、ストレージ１において高負荷が発生する例について説明する。なお、以下の例においては、ファイルＢ（ｍｎｔ／ｈｏｍｅ／ｄｉｒＢ／ｆｉｌｅＢ）へのアクセスについても同様である。
【００７２】
ストレージ１は、ファイルＡをゾーン２内のストレージ２に対してバックエンドＬＡＮ７２を介してレプリケートする。
【００７３】
ファイルＡがレプリケートされるとき、ファイルＡがレプリケートされ、そのレプリケート先がストレージ２であるというレプリケーション情報を含む情報テーブル２０２（図５下側）がストレージ２において生成される。情報テーブル２０２には、レプリケート元あるいはレプリケート先のいずれのファイルが最新であるのかをしめすステータス情報も格納される。ステータス情報は、レプリケート直後においては、いずれのファイルも最新である（ｖａｌｉｄ）。ただし、レプリケーション情報は、情報テーブル２０２のようなテーブル形式ではなくてもよい。
【００７４】
ストレージ２が情報テーブル２０２の情報をストレージ１に伝播させると、ストレージ１はストレージ２から伝播された情報を情報テーブル２０１（図５上側）に格納する。ストレージ１が格納する情報テーブル２０１（図５上側）と、ストレージ２が格納する情報テーブル２０２（図５下側）とに格納された情報は、ストレージ１とストレージ２とが同期された段階で同じ情報を含む。
【００７５】
＜ファイル更新＞
クライアント１がストレージ２にアクセスし、ファイルＡを更新しようとする例について説明する。
【００７６】
クライアント１がストレージ２のファイルＡにアクセスすると、ストレージ２の情報テーブル２０２におけるファイルＡのステータス情報は、ストレージ１の欄がｉｎｖａｌｉｄ、ストレージ２の欄がｖａｌｉｄに変更される（図６下側）。ストレージ２の情報テーブル２０２におけるファイルＡのステータス情報はストレージ１にも伝播される。その結果、ストレージ１の情報テーブル２０１におけるファイルＡのステータス情報も、ストレージ１の欄がｉｎｖａｌｉｄ、ストレージ２の欄がｖａｌｉｄに変更される（図６上側）。
【００７７】
ステータス情報の伝播後、ストレージ２のファイルＡはクライアント１により変更可能となる。クライアント１によるストレージ２のファイルＡの変更完了後、ファイルＡがストレージ１とストレージ２との間でレプリケートされると、ストレージ１および２のステータス情報はともにｖａｌｉｄに遷移する（図５）。
【００７８】
同様に、クライアント２がストレージ１にアクセスし、ファイルＢを更新しようとする場合について説明する。
【００７９】
クライアント２がストレージ１のファイルＢを更新すると、ストレージ１の情報テーブル２０１におけるファイルＢのステータス情報は、ストレージ１の欄がｖａｌｉｄ、ストレージ２の欄がｉｎｖａｌｉｄに変更される（図６下側）。ストレージ１の情報テーブル２０１におけるファイルＢのステータス情報はストレージ２にも伝播される。その結果、ストレージ２の情報テーブル２０２におけるファイルＢのステータス情報も、ストレージ１の欄がｖａｌｉｄ、ストレージ２の欄がｉｎｖａｌｉｄに変更される（図６上側）。
【００８０】
ステータス情報の伝播後、ストレージ１のファイルＢはクライアント２により変更可能となる。クライアント２によるストレージ１のファイルＢの変更完了後、ファイルＢがストレージ１とストレージ２との間でレプリケーションされると、各ストレージのステータス情報はともにｖａｌｉｄに遷移する（図５）。
【００８１】
＜負荷分散アクセス＞
次に、ストレージ１が、ファイルＡをゾーン２内の他のストレージ２に対してバックエンドＬＡＮ７２を使用してファイルＡをレプリケートするときの負荷分散アクセスの例について説明する。なお、ファイルＢ（ｍｎｔ／ｈｏｍｅ／ｄｉｒＢ／ｆｉｌｅＢ）へのアクセスについても同様である。
【００８２】
ファイルＡがレプリケートされると、レプリケート先のストレージ２において、情報テーブル２０２（図５下段）が生成される。
【００８３】
ストレージ２は、情報テーブル２０２の情報に基づいて、ファイルＡがストレージ１とストレージ２との間でレプリケートされたことを管理サーバ１に対して通知する。
【００８４】
管理サーバ１は、ファイルＡがストレージ１とストレージ２との間でレプリケートされたという情報をストレージ２から受信し、受信した情報に基づいて情報テーブル３００を生成し、生成した情報テーブル３００を格納する。管理サーバ１は、ファイルＡがレプリケートされ、そのレプリケート先のストレージがストレージ２であるという情報を含む情報テーブル３００を管理サーバ２に伝播する。なお、この段階では、情報テーブル３００が管理サーバ３には伝播していないものとする。
【００８５】
ここで、クライアント１がファイルＡへのアクセスを管理サーバ２に要求する。
【００８６】
管理サーバ２は、レプリケートモード用ハッシュ手段１３３によって情報テーブル３００を参照し、ファイルＡのファイル名を用いてファイルＡのレプリケート先の格納情報場所（ストレージ２）を引き出す。
【００８７】
ところで、ファイルＡがレプリケートされていない場合、管理サーバ２は、クライアント１からのファイルＡへのアクセス要求を受信すると、通常モード用ハッシュ手段１３１によってファイルＡの格納場所（ストレージ１）を引き出す。
【００８８】
管理サーバ２は、クライアント１に対して、ゾーン２におけるファイルＡの格納場所のうち、低負荷であるストレージ２にレプリケートされたファイルＡがあることを通知する。この通知を受け、クライアント１は、ストレージ２のファイルＡにアクセスするように誘導される。その結果、クライアント１は、ストレージ２のファイルＡにアクセスし、ファイルＡを変更することが可能になる。
【００８９】
ここで、情報テーブル３００が管理サーバ１から管理サーバ３には未だ伝播していない段階で、クライアント２がファイルＡに対するアクセスを管理サーバ３に要求する例について説明する。
【００９０】
クライアント２がファイルＡに対するアクセスを管理サーバ３に要求すると、管理サーバ３は、通常モード用ハッシュ手段１３１によって、ファイルＡのファイル名を用いてファイルＡの格納場所（ストレージ１）を引き出す。
【００９１】
管理サーバ３の情報テーブル３００には、ファイルＡがレプリケートされたことに関する情報が伝播されていないため、レプリケートモード用ハッシュ手段１３３はファイルＡのファイル名からレプリケート先の格納情報場所を引き出せない。そのため、管理サーバ３は、ストレージ１のファイルＡへのアクセスをするようにクライアント２を誘導する。この場合、クライアント２は、ファイルＡに対して負荷分散アクセスをすることができない。
【００９２】
ここで、情報テーブル３００が管理サーバ１から管理サーバ３には伝播した後の段階で、クライアント２がファイルＡに対するアクセスを管理サーバ３に要求する例について説明する。
【００９３】
クライアント２がファイルＡに対するアクセスを管理サーバ３に要求すると、管理サーバ３は、レプリケートモード用ハッシュ手段１３３によってファイルＡの格納場所（ストレージ２）を引き出す。
【００９４】
管理サーバ３は、ファイルＡの格納場所（ストレージ２）に関する情報をクライアント２に送信する。クライアント２は、管理サーバ３からファイルＡの格納場所に関する情報を受信するとき、ゾーン２におけるファイルＡの格納場所のうち、低負荷のストレージ２にレプリケートされたファイルＡにアクセスするように誘導される。クライアント２は、管理サーバ３からの情報によって、ファイルＡへのアクセスおよび変更が可能となる。
【００９５】
すなわち、ファイルＡがレプリケートされ、かつレプリケート先情報を含む情報テーブル３００が管理サーバ１から管理サーバ３に伝播された後は、クライアント２はファイルＡに対して負荷分散アクセスすることができる。
【００９６】
＜最新ファイルへの誘導＞
次に、クライアント１がストレージ２のファイルＡを更新する例について説明する。
【００９７】
ストレージ２にクライアント１がアクセスし、ファイルＡにアクセスすると、ストレージ２の情報テーブル２０２におけるファイルＡのステータス情報は、ストレージ１の欄がｉｎｖａｌｉｄ、ストレージ２の欄がｖａｌｉｄに変更される。ストレージ２の情報テーブル２０２におけるステータス情報は、ストレージ１の情報テーブル２０１にも伝播される。
【００９８】
ここで、クライアント２がストレージ２のファイルＡにアクセスすると、ストレージ２は、情報テーブル２０２を参照することによって、ストレージ２のファイルＡのステータス情報がｖａｌｉｄであることから、当該ファイルが最新であることを知る。その結果、クライアント２は、ストレージ２のファイルＡにアクセスし、ファイルＡの変更が可能になる。
【００９９】
一方、クライアント２がストレージ１のファイルＡにアクセスすると、ストレージ１は、情報テーブル２０１を参照することによって、ストレージ１のファイルＡのステータスがｉｎｖａｌｉｄであることから、当該ファイルが最新ではないことを知る。ストレージ１は、ストレージ２に格納されたファイルＡのステータス情報がｖａｌｉｄであることから、ストレージ１のファイルＡは最新ではなく、ストレージ２のファイルＡで最新があるということをクライアント２に通知する。すなわち、ストレージ１は、クライアント２をストレージ２へアクセスするように誘導する。その結果、クライアント２は、ストレージ２に格納された最新のファイルＡにアクセスし、ファイルＡの変更が可能になる。
【０１００】
以上が、本実施形態に係るストレージシステムにおける特徴的な処理についての説明である。
【０１０１】
［動作］
次に、本実施形態に係るストレージシステムの動作について、図１０〜図１３のシーケンス図を用いて説明する。なお、図１０〜図１３のシーケンス図において、ストレージ１および２はゾーン２に配置され、ファイルＡはストレージ１に格納されているものとする。また、図１０〜図１３のシーケンス図においては、ストレージシステムは図２の構成を持つものとする。
【０１０２】
＜通常時＞
図１０は、クライアント１が、レプリケーションの行われていないファイルＡにアクセスする場合のシーケンス図である。すなわち、図１０は、通常用モードにおいて、管理サーバ１がファイルＡを格納するストレージ１をクライアント１に通知する例である。
【０１０３】
まず、図１０において、クライアント１からファイルＡにアクセスするために、クライアント１は、管理サーバ１にファイルＡへのアクセスを要求する（ステップＳ１０１）。
【０１０４】
管理サーバ１は、クライアント１からの要求に応じて、ファイルＡにアクセスするためには、ゾーン２のストレージ１にアクセスするように通知する（ステップＳ１０２）。なお、管理サーバ１は、自身が有するファイルＡの格納情報に基づいて、ファイルＡの格納先がゾーン２のストレージ１であることを検知する。
【０１０５】
クライアント１は、管理サーバ１１の通知に基づいて、ゾーン２のストレージ１にアクセスする（ステップＳ１０３）。
【０１０６】
以上のステップＳ１０１〜Ｓ１０３の処理によって、クライアント１はレプリケーションの行われていないストレージ１のファイルＡにアクセスできる。
【０１０７】
＜レプリケーション時＞
図１１は、クライアント１がストレージ１のファイルＡに高頻度にアクセスし、ストレージ１のファイルＡに高負荷が発生している状況において、クライアント２がファイルＡにアクセスする場合のシーケンス図である。すなわち、図１１は、レプリケーション用モードにおいて、管理サーバ１が最新のファイルＡを格納するストレージ２をクライアント２に通知する例である。
【０１０８】
まず、図１１において、クライアント１はストレージ１のファイルＡに頻繁にアクセスをする（ステップＳ２０１）。
【０１０９】
そのため、ストレージ１のファイルＡは高負荷状態になる（ステップＳ２０２）。
【０１１０】
このとき、ストレージ１は、ファイルＡの高負荷を検知し、ファイルＡをストレージ２にレプリケートする（ステップＳ２０３）。
【０１１１】
ストレージ２は、ファイルＡに関するレプリケーション／ステータス情報を生成する（ステップＳ２０４）。
【０１１２】
ストレージ２は、ストレージ２のレプリケーション／ステータス情報をストレージ１に送信し、その情報をストレージ１に格納させる（ステップＳ２０５）。
【０１１３】
併せて、ストレージ２は、レプリケーション／ステータス情報を管理サーバ１に送信する（ステップＳ２０６）。
【０１１４】
管理サーバ１は、受信したレプリケーション／ステータス情報に基づいて、レプリケーション／ステータス情報を生成・格納する（ステップＳ２０７）。
【０１１５】
管理サーバ１は、生成したレプリケーション／ステータス情報を、管理サーバ２に送信して格納させる（ステップＳ２０８）とともに、管理サーバ３に送信して格納させる（ステップＳ２０９）。その結果、管理サーバ１が生成したレプリケーション／ステータス情報は、各管理サーバ１１間において同期格納される。
【０１１６】
ここで、クライアント２がファイルＡにアクセスするために、管理サーバ１にファイルＡへのアクセスを要求する。（ステップＳ２１０）。
【０１１７】
管理サーバ１は、情報テーブル３００の情報に基づいて、低負荷のストレージであるストレージ２にアクセスするようにクライアント２を誘導する（ステップＳ２１１）。
【０１１８】
そして、クライアント２は、管理サーバ１の誘導を受け、ストレージ２のファイルＡにアクセスし、ファイルＡを変更する（ステップＳ２１２）。
【０１１９】
以上のステップＳ２０１〜Ｓ２１２の処理によって、ストレージ１に格納されたファイルＡに高負荷が発生する状況下において、クライアント２は低負荷であるストレージ２のファイルＡにアクセスできる。
【０１２０】
＜ファイル変更時＞
図１２は、クライアント１がストレージ２のファイルＡを変更することによって、ストレージ２のファイルＡが最新（ｖａｌｉｄ）となった状況において、クライアント２がファイルＡにアクセスする場合のシーケンス図である。すなわち、図１２は、管理サーバ１１の通知に応じてストレージ１にアクセスしたクライアント２が、最新のファイルＡはストレージ２に格納されていることをストレージ１から通知され、その通知に応じてストレージ２にアクセスする例である。
【０１２１】
まず、図１２において、クライアント１がストレージ２のファイルＡを変更しようとして、ストレージ２にアクセスする（ステップＳ３０１）。
【０１２２】
クライアント１は、ストレージ２のファイルＡを変更する（ステップＳ３０２）。
【０１２３】
ストレージ２は、自装置が格納する当該ファイルのステータス情報（情報テーブル２０２）を変更する（ステップＳ３０３）。
【０１２４】
ストレージ２は、変更した当該ファイルのステータス情報をレプリケート関係にあるストレージ１に送信し、ストレージ１が格納する当該ファイルのステータス情報（情報テーブル２０１）を変更させる（ステップＳ３０４）。
【０１２５】
ここで、クライアント２がファイルＡにアクセスするために、管理サーバ１に対してファイルＡへのアクセスを要求する。（ステップＳ３０５）。
【０１２６】
管理サーバ１は、自身のレプリケーション／ステータス情報（情報テーブル３００）に基づいて、ストレージ１にアクセスするようにクライアント２を誘導する（ステップＳ３０６）。なお、ステップ３０６では、情報テーブル３００においてｖａｌｉｄとされたストレージ１に接続されるものとする。
【０１２７】
そして、クライアント２は、管理サーバ１の誘導を受け、ストレージ１のファイルＡにアクセスしようとする（ステップＳ３０７）。
【０１２８】
このとき、ストレージ１に格納されたステータス情報（情報テーブル２０１）においては、ストレージ１のファイルＡはｉｎｖａｌｉｄであり、ストレージ１のファイルＡはｖａｌｉｄである。そのため、ストレージ１は、情報テーブル２０１のステータス情報に基づいて、クライアント２に対してストレージ２にアクセスするように通知する（ステップＳ３０８）。
【０１２９】
クライアント２は、ストレージ１の通知を受け、ストレージ１のファイルＡにアクセスし、ファイルＡを変更する（ステップＳ３０９）。
【０１３０】
以上のステップＳ３０１〜Ｓ３０９の処理によって、ストレージ２のファイルＡが変更されて最新である（ｖａｌｉｄ）状況において、クライアント２は最新のファイルＡに正しくアクセスできる。
【０１３１】
＜ステータス情報の遷移＞
図１３は、ストレージ１および２に格納されたファイルＡに関するレプリケーション／ステータス情報のステータス情報が、レプリケーション時およびファイル変更時に遷移する様子を示す。なお、初期状態においては、ストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄあったものとする。
【０１３２】
図１３において、まず、レプリケート元ストレージ１とレプリケート先ストレージ２との間でレプリケートが開始された段階では（ステップＳ４０１）、ストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄである。
【０１３３】
レプリケート元ストレージ１とレプリケート先ストレージ２との間でレプリケートが完了し、同期する（ステップＳ４０２）と、ストレージ１およびストレージ２のステータス情報は共にｖａｌｉｄとなる。
【０１３４】
クライアント１からストレージ１のファイルＡが変更されることになる（ステップＳ４０３）と、ストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄに遷移する。その結果、ストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄとなり、クライアント１は、ストレージ１のファイルＡを変更することが可能となる。
【０１３５】
そして、ストレージ１のファイルＡが変更完了した段階（ステップＳ４０４）では、ストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄである。
【０１３６】
ストレージ１とストレージ２との間でレプリケートが開始された段階（ステップＳ４０５）では、情報テーブル２０１におけるストレージ１のステータス情報はｖａｌｉｄ、ストレージ２のステータス情報はｉｎｖａｌｉｄである。
【０１３７】
レプリケートが完了し、同期すると（ステップＳ４０６）、情報テーブル２０１におけるファイルＡのステータス情報は、ストレージ１および２のいずれにおいてもｖａｌｉｄに遷移する。
【０１３８】
以上が、レプリケーション／ステータス情報のステータス情報の遷移に関する説明である。
【０１３９】
以上のように、本実施形態に係るストレージシステムによれば、遠隔された複数のゾーンにデータを分散して格納する場合において、データへの負荷集中が発生した際に、性能劣化することなく、負荷分散することが可能になる。なぜならば、近傍ゾーンのデータに負荷集中が発生しても、負荷集中が発生したデータがその近傍ゾーン内にレプリケートされているため、遠方ゾーンのデータにアクセスする必要がなくなるためである。遠方ゾーンのデータにアクセスする必要がなくなれば、レイテンシが悪化に起因する性能劣化は起こらない。
【０１４０】
本実施形態では、負荷分散させるデータを同一ゾーン内でレプリケートし、レプリケーションに関する情報をレプリケーション関係にあるストレージ間で同期させるとともに、そのレプリケーションに関する情報を管理サーバに通知する。その結果、クライアントの近傍ゾーンのファイルにアクセス負荷が発生している状況であっても、クライアントをその近傍ゾーン内の低負荷のファイルに導くことによって、性能劣化せずに負荷分散することができる。
【０１４１】
本実施形態では、レプリケートされたデータの更新時に、レプリケーション関係にあるストレージ間においては最新のデータの格納場所を共有するため、管理サーバには最新のデータの格納場所を通知しなくてもよい。
【０１４２】
上述の効果から、本実施形態によれば、ゾーンを遠隔地に配備することによる冗長性の確保と、近傍ゾーンにおいて負荷集中したデータに対する性能劣化のない負荷分散とを両立することができる。
【０１４３】
また、本実施形態に係るストレージシステムによれば、ゾーン全体をレプリケートするこれまでの方法と比較して、物理的なデータ格納領域を大幅に節約できるという効果も得られる。
【０１４４】
ここで、本実施形態に係るストレージシステムの機能や効果について列挙する。
【０１４５】
本実施形態に係るストレージシステムでは、データ三重ミラーストレージにおけるゾーンを遠隔地に配備する構成はそのままに、高頻度アクセスのファイルを同一ゾーン内の他のストレージにレプリケートして分散配置する。
【０１４６】
本実施形態に係るストレージシステムにおいては、レプリケートされた情報をレプリケート元とレプリケート先の各ストレージ、管理サーバで共有する。その結果、本実施形態に係るストレージシステムの管理サーバは、クライアントから当該ファイルへのアクセスが要求された際に、低負荷のレプリケート先ストレージにクライアントを効率的に誘導することができる。
【０１４７】
また、本実施形態においては、レプリケート先の該当ファイルが更新される場合、当該ファイルが最新であるかどうかを示す情報をレプリケート関係にあるレプリケート元とレプリケート先の各ストレージで共有する。その結果、別のクライアントが、当該ファイルの最新版が格納されたレプリケート先にアクセスした場合、ストレージの当該情報に基づいて当該ファイルが最新であることがわかるためアクセスが継続される。また、別のクライアントが、当該ファイルが最新版ではないレプリケート元にアクセスした場合、ストレージの当該情報に基づいて当該ファイルが最新でないことがわかる。そのため、そのクライアントのアクセスを受けたストレージは、そのクライアントに対して当該ファイルが最新ではないことを通知するとともに、最新版がレプリケート先に格納されていることを通知し、そのクライアントを正しく最新のファイルへと誘導する。
【０１４８】
その結果、本実施形態に係るストレージシステムにおいて、クライアントは、低負荷のストレージのファイルにアクセスし、かつ常に正しく最新のファイルにアクセスすることが可能となる。
【０１４９】
本実施形態のストレージシステムのストレージは、レプリケーションおよびファイル更新に必要な情報を常に自身で生成し、格納する。また、本実施形態のストレージシステムの管理サーバは、どのファイルがレプリケートされ、そのレプリケート先における当該ストレージ情報を格納するだけで、クライアントからのアクセスを効率的に負荷分散することを可能とする。
【０１５０】
以下に、本実施形態の主な特徴についてまとめる。
【０１５１】
まず、データを複数ゾーンに多重化するストレージシステムにおいて、特定のゾーンに着目する。
【０１５２】
特定ファイルの高頻度アクセス・負荷情報に基づいて、同一のゾーンに属する複数のストレージ間においてレプリケーションを行うことによってファイルを分散配置し、クライアントからのアクセスを平準化する。
【０１５３】
このとき、特定ファイルの分散配置情報をストレージと管理サーバのみに配備することによって、クライアントによるアクセスの平準化を効率的にする。
【０１５４】
また、分散先のファイルの最新情報をストレージのみに配備することによって、クライアントが最新ではないファイルにアクセスしても、ストレージが最新のファイル格納場所にクライアントを誘導することが可能とする。
【０１５５】
以上の特徴により、本実施形態によれば、管理サーバを含めたシステム全体の負荷を軽減することが可能となる。
【０１５６】
以下に、本実施形態に係る効果を列挙する。なお、以下の効果には、本実施形態に係るストレージシステムの本質的な効果だけではなく、副次的な効果も記載している。
【０１５７】
一般的なストレージシステムのシステム構成におけるレプリケーション機構をそのまま使用しながら、ゾーン内においてアクセスが集中するファイルをレプリケートし、クライアントからのアクセス平準化を容易に実現する。
【０１５８】
近傍ゾーンのストレージ内のファイルにアクセスが集中している際に、同一ゾーン内の別のストレージにクライアントを誘導させることが可能となるため、遠方ゾーンのストレージにアクセスを分散させることで想定される性能劣化を解消する。
【０１５９】
レプリケート関係のストレージおよび管理サーバのみに、ストレージがファイルをレプリケーションしたという情報と、レプリケート先の情報とを保有する機能を追加するため、一般的なシステム構成を大きく変更する必要がない。
【０１６０】
各ストレージは、所属するゾーンのストレージとのみ通信すればよく、他のゾーンに属するストレージの存在情報を有する必要がない。そのため、各ストレージは、他のゾーンのストレージと通信しなくてもよい。
【０１６１】
ファイルをレプリケートした場合、低負荷のストレージにクライアントをアクセスさせるため、管理サーバにレプリケートしたという情報を共有させることで容易であり、効率的にアクセスを平準化することができる。
【０１６２】
当該ストレージにアクセスするようにコントロールした管理サーバのみにレプリケートしたという情報を共有させ、当該情報を管理サーバ間で拡散配置させる。そのため、管理サーバが複数ある場合であっても、ストレージシステムが全ての管理サーバの存在情報を有する必要がない。
【０１６３】
ストレージ内のファイルが更新される場合には、当該ストレージのファイルが最新であり、レプリケート先のストレージのファイルは最新ではないという情報がレプリケート関係にあるストレージ間において共有される。クライアントのアクセスを受けたストレージが格納するファイルが最新ではない場合、そのストレージは当該ファイルの最新版が格納されたストレージに関する情報をクライアントに返却し、クライアントを正しく最新のストレージにコントロールできる。
【０１６４】
マスタストレージの障害時に、その障害範囲が同一ゾーン内のストレージにレプリケートされたファイルにまで及んでいる場合、障害が発生したストレージが近傍に存在することになる。そのため、障害を復旧するためにそのゾーンに到着するまでのルートが短距離ですむことから、短時間で復旧することが期待できる。
【０１６５】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１６６】
１１    管理サーバ
１３    ハッシュ手段
２０    ゾーン
２１    ストレージ
３０    制御手段
３１    負荷検知部
３２    レプリケーション制御部
３３    ステータス制御部
３４    情報送信部
４０    ロードバランサ
５０    クライアント
７１    フロントエンドＬＡＮ
７２    バックエンドＬＡＮ
８０    ネットワーク
【図１】
0006432392.tif 000002
【図２】
0006432392.tif 000003
【図３】
0006432392.tif 000004
【図４】
0006432392.tif 000005
【図５】
0006432392.tif 000006
【図６】
0006432392.tif 000007
【図７】
0006432392.tif 000008
【図８】
0006432392.tif 000009
【図９】
0006432392.tif 000010
【図１０】
0006432392.tif 000011
【図１１】
0006432392.tif 000012
【図１２】
0006432392.tif 000013
【図１３】
0006432392.tif 000014