(57)【要約】【課題】ファイルベースで操作性よくデータを取り扱うことが可能となるストレージシステムを実現するための情報処理装置、情報処理方法、プログラム及び情報処理システムを提供すること。【解決手段】本技術の一形態に係る情報処理装置は、取得部と、保持部と、送信部とを具備する。前記取得部は、所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する。前記保持部は、前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する。前記送信部は、前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する。【選択図】図２
2013161383.tif 000002
【特許請求の範囲】
【請求項１】
所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する取得部と、
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する保持部と、
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する送信部と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記取得部は、１以上の記憶装置の各記憶領域において実アドレスを取得し、
前記仮想記憶領域は、前記各記憶領域において取得された実アドレスにそれぞれ対応する前記仮想アドレスを有する
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記記憶領域は、複数の階層を有し、
前記実アドレスは、前記複数の階層のうち前記ファイルが記憶される階層の情報を含む
情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記仮想記憶領域は、第１の記憶装置に記憶された第１のファイルの第１の実アドレスに対応する第１の仮想アドレスを、前記第１の記憶装置とは異なる第２の記憶装置に記憶された前記第１のファイルの複製である第２のファイルの第２の実アドレスに対応する第２の仮想アドレスとして共通して有する
情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記第１の仮想アドレスへのアクセス要求がリードアクセスかライトアクセスかを判定する第１の判定部をさらに具備し、
前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第１の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信する
情報処理装置。
【請求項６】
請求項４に記載の情報処理装置であって、
前記第１及び第２の記憶装置のそれぞれの負荷状態を判定する第２の判定部をさらに具備し、
前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第２の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信する
情報処理装置。
【請求項７】
所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得し、
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持し、
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する
情報処理方法。
【請求項８】
所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得し、
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持し、
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する
ことをコンピュータに実行させるプログラム。
【請求項９】
所定のアドレスにファイルが記憶される記憶領域を有する記憶装置と、
前記記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する取得部と、
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する保持部と、
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する送信部と
を有する情報処理装置と
を具備する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ストレージシステムを実現するための情報処理装置、情報処理方法、プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
従来、例えばＳＡＮ（Storage Area Network）等のネットワークに接続された複数のストレージを有するストレージシステムが知られている。このようなストレージシステムでは、例えばデータを処理する計算機システムに対して、複数のストレージを仮想的に１つに見せるストレージ仮想化技術が用いられる。特許文献１には、そのようなストレージ仮想化技術に関する種々の方式が記載されている（例えば特許文献１の段落[０００７]−[００１０]等参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２４０８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記したようなストレージシステムにより種々のデータが記憶される。近年では、例えばカメラ等で撮影された動画コンテンツ等のデータが、ファイルベースで取り扱われることが多くなっている。従って、このようなコンテンツデータ等をファイルベースで操作性よく取り扱うことが可能なストレージシステムが求められる。
【０００５】
以上のような事情に鑑み、本技術の目的は、ファイルベースで操作性よくデータを取り扱うことが可能となるストレージシステムを実現するための情報処理装置、情報処理方法、プログラム及び情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本技術の一形態に係る情報処理装置は、取得部と、保持部と、送信部とを具備する。
前記取得部は、所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する。
前記保持部は、前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する。
前記送信部は、前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する。
【０００７】
この情報処理装置では、記憶装置に記憶されるファイルの実アドレスが取得される。また実アドレスに対応する仮想アドレスを有する仮想記憶領域が保持される。仮想アドレスへのアクセス要求があった場合には、当該アクセス要求に応じて仮想アドレスに対応する実アドレスが送信される。これにより実アドレスを用いたアクセス要求を記憶装置に対して行うことが可能となる。この結果、ファイルベースで操作性よくデータを取り扱うことが可能となるストレージシステムを実現することができる。
【０００８】
前記取得部は、１以上の記憶装置の各記憶領域において実アドレスを取得してもよい。この場合、前記仮想記憶領域は、前記各記憶領域において取得された実アドレスにそれぞれ対応する前記仮想アドレスを有してもよい。
これにより複数の記憶装置の各記憶領域を仮想的に１つに見せることが可能となる。この結果、操作性のよいストレージシステムが実現される。
【０００９】
前記記憶領域は、複数の階層を有してもよい。この場合、前記実アドレスは、前記複数の階層のうち前記ファイルが記憶される階層の情報を含んでもよい。
これにより、ファイルが記憶される階層の情報をもとにしたアクセス要求を記憶装置に対して行うことが可能となる。
【００１０】
前記仮想記憶領域は、第１の記憶装置に記憶された第１のファイルの第１の実アドレスに対応する第１の仮想アドレスを、前記第１の記憶装置とは異なる第２の記憶装置に記憶された前記第１のファイルの複製である第２のファイルの第２の実アドレスに対応する第２の仮想アドレスとして共通して有してもよい。
【００１１】
例えば記憶されるファイルの冗長化を目的として、第１の記憶装置に記憶された第１のファイルの複製である第２のファイルが、第２の記憶装置に記憶される。このような場合に、第１及び第２の実アドレスにそれぞれ対応する仮想アドレスとして、同じものが共通して用いられてもよい。
【００１２】
前記情報処理装置は、前記第１の仮想アドレスへのアクセス要求がリードアクセスかライトアクセスかを判定する第１の判定部をさらに具備してもよい。この場合、前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第１の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信してもよい。
これによりロードバランスが可能となる。
【００１３】
前記情報処理装置は、前記第１及び第２の記憶装置のそれぞれの負荷状態を判定する第２の判定部をさらに具備してもよい。この場合、前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第２の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信してもよい。
これによりロードバランスが可能となる。
【００１４】
本技術の一形態に係る情報処理方法は、所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得することを含む。
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域が保持される。
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスが送信される。
【００１５】
本技術の一形態に係るプログラムは、前記情報処理方法をコンピュータに実行させる。
【００１６】
本技術の一形態に係る情報処理システムは、記憶装置と、情報処理装置とを具備する。
前記記憶装置は、所定のアドレスにファイルが記憶される記憶領域を有する。
前記情報処理装置は、取得部と、保持部と、送信部とを有する。
前記取得部は、前記記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する。
前記保持部は、前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する。
前記送信部は、前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する。
【発明の効果】
【００１７】
以上のように、本技術によれば、ファイルベースで操作性よくデータを取り扱うことが可能となるストレージシステムを実現することができる。
【図面の簡単な説明】
【００１８】
【図１】本技術の一実施形態に係る情報処理システムとしてのストレージシステムの構成例を示す模式的な図である。
【図２】仮想記憶領域の情報として保持されるデータベースのテーブル例である。
【図３】ストレージシステムにおけるミラーリングの設定情報を示すテーブルである。
【図４】クライアント装置が仮想記憶領域の所定のディレクトリを開く際のストレージシステムの動作を示す模式的な図である。
【図５】クライアント装置が所定のファイルを開く（オープンアクセス実行）際のストレージシステムの動作を示す模式的な図である。
【図６】クライアント装置がファイルを新規作成する際のストレージシステムの動作を示す模式的な図である。
【図７】クライアント装置がファイルにデータを書く際のストレージシステムの動作を示す模式的な図である。
【図８】クライアント装置がファイルの削除・名前変更等を行う際のストレージシステムの動作を示す模式的な図である。
【図９】クライアント装置からのオープンアクセスに対して、ロードバランス（負荷分散）を実行するストレージシステムの動作を示す模式的な図である。
【図１０】ストレージサーバとしての記憶装置が新たに追加される際のストレージシステムの動作を示す模式的な図である。
【図１１】ストレージシステムからストレージサーバとしての記憶装置が削除される際のストレージシステムの動作を示す模式的な図である。
【図１２】ファイルサーバに障害が発生した際の、ストレージシステムの動作を示す模式的な図である。
【図１３】ファイルサーバ管理サーバである管理装置に障害が発生した際の、ストレージシステムの動作を示す模式的な図である。
【発明を実施するための形態】
【００１９】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００２０】
［ストレージシステムの構成］
図１は、本技術の一実施形態に係る情報処理システムとしてのストレージシステムの構成例を示す模式的な図である。
【００２１】
ストレージシステム１００は、第１の記憶装置１０と、第２の記憶装置２０と、第１及び第２の記憶装置１０及び２０のそれぞれの動作を管理する管理装置３０とを有する。管理装置３０は、本実施形態に係る情報処理装置として機能する。ストレージシステム１００に含まれる記憶装置の数は限定されない。
【００２２】
以後、ストレージシステム１００に含まれる記憶装置をストレージサーバと記載する場合がある。また管理装置３０を、ファイルサーバ管理サーバと記載する場合がある。
【００２３】
第１及び第２の記憶装置１０及び２０と、管理装置３０とは、ネットワーク４０を通じて相互に接続される。ネットワーク４０としては、例えばＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等が用いられる。ネットワーク４０の種類やそれに用いられるプロトコル等は限定されない。例えば第１の記憶装置１０と管理装置３０とがＬＡＮで接続され、これらと第２の記憶装置２０とがそれぞれＷＡＮで接続されるといった構成も可能である。
【００２４】
第１及び第２の記憶装置１０及び２０は、動画コンテンツ等のファイルを記憶する図示しない記憶デバイスをそれぞれ有する。記憶デバイスとしては、例えばＳＳＤ（Solid State Drive）、複数のディスクがＲＡＩＤ（Redundant Arrays of Inexpensive Disks）技術により束ねられたＲＡＩＤデバイス等が用いられる。又はｉＳＣＳＩ（Internet Small Computer System Interface）イニシエータによりディスクが束ねられたもの等が用いられてもよい。あるいは、ＨＤＤ（Hard Disk Drive）やテープを用いた記憶デバイス等が用いられてもよい。その他種々の記憶デバイスが用いられてよい。
【００２５】
これら記憶デバイスは、第１及び第２の記憶装置１０及び２０に内蔵されてもよい。あるいは第１及び第２の記憶装置１０及び２０に、外部の記憶デバイスとしてネットワーク等を通じて接続されてもよい。また各記憶デバイスとして、クラスタストレージを構成するものが用いられてもよい。
【００２６】
第１及び第２の記憶装置１０及び２０のそれぞれが有する記憶デバイスにより、第１及び第２の記憶装置１０及び２０のそれぞれにおいて記憶領域が形成される。本実施形態では、記憶領域は、複数の階層を有するディレクトリ構造を有する。動画コンテンツ等のファイルは、記憶領域の所定のディレクトリに格納される。
【００２７】
所定のディレクトリに格納されたファイルは、記憶領域上のアドレスである実アドレスで表される。典型的には、実アドレスはパスである（図２の実パス名を参照）。以下、第１及び第２の記憶装置１０及び２０の各記憶領域の実アドレスとしてのパスを、実ファイルパスと記載する。
【００２８】
実ファイルパスの表記は、限定されない。また各記憶領の実アドレスとしてパス以外のものが用いられてもよい。
【００２９】
また管理装置３０も、例えばＨＤＤ、フラッシュメモリ、その他の固体メモリ等からなる不揮発性の記憶デバイスを有する。
【００３０】
第１及び第２の記憶装置１０及び２０、及び管理装置３０としては、例えばＰＣ（Personal Computer）等のコンピュータがそれぞれ用いられる。各装置による情報処理は、コンピュータが有するＲＯＭ（Read Only Member）等に記憶された等のソフトウェアと、ＰＣ等のハードウェア資源との協働により実現される。具体的には、ＣＰＵ（Central Processing Unit）がＲＯＭ等に記憶されたソフトウェアを構成するプログラムを、ＲＡＭ（Random Access Memory）にロードして実行することにより実行される。
【００３１】
すなわち図１に示す各装置の機能ブロックやモジュールは、プログラムをもとにＣＰＵ等が動作することで実現される。プログラムは、例えば記録媒体を介して各装置にインストールされる。又はグローバルネットワーク等を介してインストールされてもよい。なお各ブロックやモジュールを実現するためにハードウェアが適宜設けられてもよい。
【００３２】
本実施形態に係るストレージシステム１００に対して、ネットワーク４０を通じて接続された外部機器（ホスト）により、種々のファイルアクセスが実行される。外部機器としては、例えばストレージシステム１００に映像データや音声データ等の素材データをファイルとして出力する出力装置がある。また、ストレージシステム１００から所定のファイルを読み出して編集処理等を実行する編集装置がある。その他、外部機器として、ファイルを取り扱う種々のクライアント装置５０があげられる。
【００３３】
ファイルアクセスとしては、例えばファイルを開く（ファイルの作成を含む）、ファイルにデータを書く、ファイルからデータを読む、ファイルのメタデータを変更する、ファイルを閉じる等の様々なアクセスがある。ファイルアクセスの種類は限定されない。
【００３４】
なお本実施形態では、ファイルにデータを書くライトアクセスを、ファイルを開くオープンアクセスを含んで定義する。すなわちライトアクセスは、ライト属性のオープンアクセスにより開かれたファイルにデータを書き込むアクセスを意味する。またファイルに書き込まれたデータを読むリードアクセスも、ファイルを開くオープンアクセスを含んで定義する。すなわちリードアクセスは、リード属性のオープンアクセスにより開かれたファイルからデータを読み出すアクセスを意味する。
【００３５】
従ってオープンアクセスの属性の判定は、ファイルアクセスがリードアクセスであるかまたはライトアクセスであるかの判定に含まれる。
【００３６】
本実施形態では仮想環境等を利用することで、クライアント装置５０からはストレージシステム１００全体が１つのストレージとして認識される。
【００３７】
図１に示すように、管理装置３０は、ファイルアクセス受付モジュール３１と、ファイルアクセス応答モジュール３２と、ファイル管理モジュール３３とを有する。また管理装置３０は、ファイルサーバ管理モジュール３４と、ファイルサーバ障害検知モジュール３５と、ミラー管理モジュール３６とを有する。
【００３８】
ファイル管理モジュール３３は、第１及び第２の記憶装置１０及び２０の各記憶領域を仮想的に１つに見せるための仮想ボリュームを作成する。仮想ボリュームは、第１及び第２の記憶装置１０及び２０の各記憶領域に記憶されるファイルの仮想的な記憶領域となる。
【００３９】
ファイル管理モジュール３３により、第１及び第２の記憶装置１０及び２０の各記憶領域上の実ファイルパスが取得される。第１及び第２の記憶装置１０及び２０の各記憶領域において取得された実ファイルパスに対応する仮想アドレスが設定される。仮想アドレスは、各記憶領域にて実ファイルパスに記憶されるファイルの仮想的なアドレスである。
【００４０】
本実施形態では、仮想記憶領域は、複数の階層を有するディレクトリ構造を有する。従って、動画コンテンツ等のファイルは、仮想記憶領域の所定のディレクトリに仮想的に記憶されることになる。
【００４１】
仮想的なディレクトリに記憶されたファイルは、典型的にはパスにより表される（図２の仮想パス名を参照）。以下、仮想アドレスとしてのパスを仮想ファイルパスと記載する。なお、仮想ファイルパスの表記は限定されない。また仮想アドレスとしてパス以外のものが用いられてもよい。
【００４２】
仮想記憶領域は、クライアント装置５０に提供される。クライアント装置５０は、例えば所定のアプリケーション等を用いて、仮想記憶領域を認識（例えばマウント）し管理する。クライアント装置５０は、仮想記憶領域が有する仮想ファイルパスを用いて、仮想記憶領域に仮想的に記憶されるファイルへの種々のファイルアクセスを実行する。
【００４３】
クライアント装置による仮想ファイルパスを用いたファイルアクセスの実行は、本実施形態において、仮想記憶領域上の仮想アドレスへのアクセス要求を意味する。
【００４４】
このように本実施形態では、第１及び第２の記憶装置１０及び２０の各記憶領域上の実ファイルパスがファイル管理モジュール３３により取得される。図２の実パス名に示すように、実ファイルパスは、ファイルが記憶される所定の階層の情報を含む。
【００４５】
取得された実ファイルパスに対応して、仮想ファイルパスが設定される。このような仮想ファイルパスを有する、ディレクトリ構造の仮想記憶領域が作成される。仮想記憶領域は、管理装置３０の所定の記憶デバイスに記憶される。ファイル管理モジュール３３は、本実施形態に係る取得部として機能する。
【００４６】
またファイル管理モジュール３３は、仮想記憶領域の情報であるテーブル２００（図２参照）をもとに、第１及び第２の記憶装置１０及び２０の各記憶領域に記憶されるファイルの、実アドレス及び仮想アドレスを管理する。ファイル管理モジュール３３は、テーブル２００の更新や変更等の処理も実行する。すなわち本実施形態では、ファイル管理モジュール３３により、仮想記憶領域の情報が保持されて管理される。従ってファイル管理モジュール３３は、本実施形態に係る保持部としても機能する。
【００４７】
図２は、仮想記憶領域の情報として保持されるデータベースのテーブル例である。図２に示すテーブル２００は、仮想ファイルパス名が書かれるカラム（列）２１０と、実ファイルパスが表す対象の種類を表すカラム２２０と、実ファイルパス名を表すカラム２３０及び２４０とを含む。またテーブル２００は、実ファイルパスと仮想ファイルパスとの対応の状態を示すカラム２５０と、前回アクセスした時間を示すカラム２６０等を含む。
【００４８】
テーブル２００の１番目のレコード（行）２７０と、上記した各カラムとの交差するフィールドを見てみると、実ファイルパス名１として、第１の記憶装置１０であるストレージサーバ１のディレクトリ１が書かれている。また実ファイルパス名２として、第２の記憶装置２０であるストレージサーバ２のディレクトリ２が書かれている。これらの実ファイルパスに対応する仮想ファイルパスとして仮想ディレクトリ１がカラム２１０に書かれている。
【００４９】
また、テーブル２００の２番目のレコード２７１について見てみると、実ファイルパス名１として、ストレージサーバ１のディレクトリ１に格納されたファイル１が書かれている。また実ファイルパス名２として、ストレージサーバ２のディレクトリ２に格納されたファイル１が書かれている。これらの実ファイルパスに対応する仮想ファイルパスとして仮想ディレクトリ１に格納された仮想ファイル１が書かれている。
【００５０】
同様に、テーブル２００の３番目のレコード２７２について見てみると、実ファイルパス名１として、ストレージサーバ１のディレクトリ１に格納されたファイル２が書かれている。また実ファイルパス名２として、ストレージサーバ２のディレクトリ２に格納されたファイル２が書かれている。これらの実ファイルパスに対応する仮想ファイルパスとして仮想ディレクトリ１に格納された仮想ファイル２が書かれている。
【００５１】
テーブル２００の４番目以降のレコード（レコード２８０〜２８２）には、仮想的なディレクトリ２についての情報が書き込まれる。典型的には、テーブル２００には、図２に示すものより多くの情報が書き込まれる。
【００５２】
このように本実施形態では、第１及び第２の記憶装置１０及び２０の所定のディレクトリ同士に共通の仮想ファイルパスが設定される。また第１及び第２の記憶装置１０及び２０の所定のファイル同士に共有の仮想ファイルパスが設定される。このことを説明する。
【００５３】
本実施形態では、基本的には、アクティブ／パッシブ構成にて第１及び第２の記憶装置１０及び２０が動作する。すなわち第１及び第２の記憶装置１０及び２０は、それぞれメインクラスタ及びサブクラスタとして動作する。
【００５４】
従って、本実施形態では、ミラー元である第１の記憶装置１０に書き込まれたファイルがミラー元である第２の記憶装置２０にミラーリングされる。この結果、第１の記憶装置１０に記憶された第１のファイルの複製である第２のファイルが、第２の記憶装置２０に記憶される。
【００５５】
図３は、ストレージシステム１００におけるミラーリングの設定情報を示すテーブルである。このようなテーブル３００が記憶デバイスに記憶され、図１に示すミラー管理モジュール３６により参照される。ミラー管理モジュール３６については後述する。
【００５６】
図３に示すテーブル３００のカラム３１０には、ミラー元となるストレージ名としてファイルサーバ１が書かれる。そして、カラム３２０に、ファイルサーバ１のディレクトリ１の実ファイルパスが書かれる。カラム３３０には、ファイルサーバ２のディレクトリ１の実ファイルパスが書かれる。このディレクトリ１は、ファイルサーバ１のディレクトリ１に記憶される第１のファイルの複製である第２のファイルが記憶されるディレクトリである。ミラー先が複数ある場合には、他のカラム３４０にもミラー先の実ファイルパス名が記載される。カラム３５０には、設定されたミラーリングの稼動状態が書かれる。
【００５７】
このミラーリングの設定のもと、本実施形態では、第１のファイルの第１の実アドレス（図２に示すカラム２２０）に対応する第１の仮想アドレス（カラム２１０）が設定される。本実施形態では、第１の仮想アドレスは、コピーされた第２のファイルの第２の実アドレス（カラム２４０）に対応する第２の仮想アドレスとして共通して用いられる。すなわち図２に示すカラム２１０の仮想ファイルパス名は、本実施形態において、第１及び第２の仮想アドレスの両方に相当する。
【００５８】
このように、例えば記憶されるファイルの冗長化を目的として、ミラーリングが設定される場合等において、第１及び第２の実アドレスにそれぞれ対応する仮想アドレスとして、同じものが共通して用いられてもよい。
【００５９】
図２のテーブル２００のカラム２５０に示す実ファイルパスと仮想ファイルパスとの対応の状態について説明する。例えばストレージシステム１００に含まれる記憶装置の削除や追加等により、あるいはファイルが格納される実ディレクトリや仮想ディレクトリの変更等により、一時的に仮想ファイルパスと実ファイルパスとの間に不整合が出る場合がある。従って実ファイルパスと仮想ファイルパスとの対応の状態が判定され、その結果がカラム２５０に書き込まれる。例えばレコード２７２に示すように、実ファイルパスと仮想ファイルパスとの間に不整合があると判定された場合、リビルド中をあらわす情報が書き込まれる。
【００６０】
テーブル２００のカラム２６０に示す前回アクセスした時間の情報は、例えばファイル管理モジュール３３によるテーブル２００の参照を省略するか否かの判定に用いられる。例えばクライアント装置５０からの仮想ファイルパスへのファイルアクセスが、前回のアクセスから所定の時間以内であったとする。その場合、テーブル２００の参照が省略され、前回送信した実ファイルパスが送信される。このような処理を実行することで、管理装置３０にかかる負荷を抑えることができる。
【００６１】
図１に示すファイルアクセス受付モジュール３１は、クライアント装置５０からのファイルアクセスを受け付ける。具体的には、ファイルアクセスの実行により発行されるＩ／Ｏリクエストを受信する。ファイルアクセス受付モジュール３１は、受け付けたファイルアクセスの種類に応じて所定の動作を実行する。
【００６２】
ファイルアクセス応答モジュール３２は、クライアント装置５０からのファイルアクセスに応答した所定のコマンド等をクライアント装置に返す。ファイルアクセス応答モジュール３２は、本実施形態に係る送信部として機能する。
【００６３】
ファイルサーバ管理モジュール３４は、ストレージシステム１００に含まれるファイルサーバを管理する。例えばストレージシステム１００へのストレージサーバの追加や、ストレージシステム１００からのストレージサーバの削除等が行われるときに、ファイルサーバ管理モジュール３４により後述する処理が実行される。
【００６４】
ミラー管理モジュール３６は、図３に示すミラーリングの設定情報を示すテーブルをもとに、ストレージシステム１００におけるミラーリングの設定を管理する。
【００６５】
ファイルサーバ障害検知モジュール３５は、ファイルサーバ１（第１の記憶装置１０）及びファイルサーバ２（第２の記憶装置２０）がそれぞれ正常に動作しているかを検知する。ファイルサーバ障害検知モジュール３５は、例えば各ファイルサーバからのハートビートを取るか、障害が発生した時にその障害の通達を受けるか等の手段により障害を検知する。
【００６６】
次に第１及び第２の記憶装置１０及び２０の機能的な構成について説明する。図１に示すように、本実施形態では、第１の記憶装置１０及び第２の記憶装置２０は互いに略等しい構成を有する。従って第１の記憶装置１０の構成を代表して説明する。
【００６７】
第１の記憶装置１０は、ファイルシステム１１と、ＩＲＰ（I/O Request Packet）オペレーションモジュール１２と、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４と、障害通達モジュール１５とを有する。
【００６８】
ファイルシステム１１は、第１の記憶装置１０の記憶領域に記憶されたファイルの管理を行う。例えばクライアント装置５０が有する所定のアプリケーションによりファイルアクセスが実行される。実行されたファイルアクセスが、ファイルシステム１１に対するＩ／Ｏリクエストとして発行される。Ｉ／Ｏリクエストを受けたファイルシステム１１は所定のアクセスを実行する。このアクセスの結果は、ＩＲＰオペレーションモジュール１２に返される。
【００６９】
ＩＲＰオペレーションモジュール１２は、ファイルシステム１１のフィルタドライバとして実装される。ＩＲＰオペレーションモジュール１２は、ファイルシステム１１に送信されたＩ／Ｏリクエストをフックして、そのコピーをミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信することが可能である。
【００７０】
ミラーリングモジュール１３は、ミラーリングを実行する。例えばミラー元である第１の記憶装置１０に対してライトアクセスが実行され、第１の記憶装置１０の記憶領域へのファイルの書き込みが実行される。書き込みは、Ｉ／Ｏリクエストを受けたファイルシステム１１により実行され、そのアクセス結果（以下、第１のアクセス結果と記載する）は、ＩＲＰオペレーションモジュール１２に返される。
【００７１】
ミラーリングモジュールは、書き込み対象のファイルを、ミラー先である第２の記憶装置２０に転送する。また本実施形態では、ミラーリングモジュール１３により、ＩＲＰオペレーションモジュール１２から送信されたＩ／Ｏリクエストのコピーも送信される。Ｉ／Ｏリクエストのコピーは、第２の記憶装置２０のファイルシステム２１に転送する。
【００７２】
Ｉ／Ｏリクエストのコピーを受信したファイルシステム２１は、第２の記憶装置２０の記憶領域へのファイルの書き込みを実行する。書き込みの結果は、アクセス結果（以下、第２のアクセス結果と記載する）として、第１の記憶装置１０のＩＲＰオペレーションモジュール１２に返される。
【００７３】
第１及び第２のアクセス結果は、ＩＲＰオペレーションモジュール１２からミラーリングモジュール１３に送信される。そしてミラーリングモジュール１３により、第１及び第２のアクセス結果の整合性が判別される。整合性の判別は、例えば第１及び第２のアクセス結果がトランザクションで管理されることで行われる。その他、整合性を判別する任意の方法が採用されてよい。
【００７４】
例えば第１及び第２のアクセス結果が、ともに成功又は失敗の場合は、第１の記憶装置へ１０のＩ／Ｏリクエストの成功又は失敗の結果がクライアント装置５０に返される。
【００７５】
第１及び第２のアクセスが一方が成功で、他方が失敗であった場合、第１及び第２のアクセス結果の整合性が保たれていない判定され、エラー処理が実行される。エラー処理は、典型的には、管理装置３０により実行されるが、第１の記憶装置１０により実行されてもよい。
【００７６】
例えば第１のアクセス結果が成功で、第２のアクセス結果が失敗となった場合、失敗となった第２の記憶装置２０へのライトアクセスに関する書き込み先のアドレスがエラーアドレスとして登録される。そして第２の記憶装置２０へのライトアクセス及びファイルが再送される。これにより第２の記憶装置２０のファイルシステムによる書き込みが再び実行される。なおエラーアドレスとして登録されたアドレスへのリードアクセスは制限される。
【００７７】
第１のアクセス結果が失敗で、第２のアクセス結果が成功となった場合、失敗となった第１の記憶装置１０へのライトアクセスに関する書き込み先のアドレスがエラーアドレスとして登録される。そして第２の記憶装置２０の記憶領域に書き込まれたファイルが第１の記憶装置１０に戻されて、ファイルシステム１１によりファイルの書き込みが実行される。
【００７８】
このように本実施形態では、第１の記憶装置１０へのファイルアクセスが第２の記憶装置２０に転送され、双方のアクセス結果の整合性が判別される。そして第１及び第２のアクセス結果の整合性が保たれていないと判別された場合に、上記したようなエラー処理が適宜実行される。これによりファイルレベルのミラーリングを用いた高品質なストレージシステム１００を実現することが可能となる。
【００７９】
またファイルアクセスが転送されることで、ファイルアクセスの排他機構を共有することができ、複数のファイルエントリを１つのファイルエントリと等価に扱うことが可能となる。この結果、例えば複数の記憶装置で管理されている複数のファイルを、透過的に１つのファイルとして扱うことが可能となる。
【００８０】
つまりはファイルレベルでＲＡＩＤ１と同じようにファイルアクセスの状態まで同期を取ることが可能となる。またミラー先のＤｉｓｋ容量やミラー先の個数を問わない柔軟なシステムを構築することが可能となる。例えば従クラスタとなる第２の記憶装置２０に特別なハードウェアやソフトウェアを準備する必要がない。第２の記憶装置２０として、例えばＮＡＳ（Network Attached Storage）等の周知のディスク装置等が利用可能である。この結果、システム構築を行う上での利便性が高くなる。
【００８１】
また、１つの第１の記憶装置１０に対して第２の記憶装置２０を複数アサインしたり、フォルダ毎に従クラスタを変えたりするなど、柔軟な設定が可能である。また特定のファイルは特定の従クラスタに記録するなど、柔軟な構成のミラーリングが可能となる。
【００８２】
さらに、ミラー先に複数の従クラスタが用意されている際には、新規にミラー元にフォルダを作成するとき、ミラー先の残り容量などから、そのフォルダのミラー先を選ぶことも可能になり、負荷分散構成を行うことも可能になる。
【００８３】
なお上記したエラー処理は一例であり、エラー処理として他の任意の処理が実行されてよい。
【００８４】
図１に示すファイルアクセス状態通達モジュール１４は、第１の記憶装置１０に対して実行されているファイルアクセスの状態を管理装置３０に通達する。ファイルアクセスの状態とは、典型的には、クライアント装置５０からのファイルアクセスにともなう、第１の記憶装置１０の負荷状態を意味する。
【００８５】
第１の記憶装置１０の負荷状態は、例えばＩＲＰオペレーションモジュール１２から送信されるＩ／Ｏリクエストやアクセス結果、ミラーリングモジュール１３によるアクセス結果の整合性の判別結果、又はエラー処理の実行状態等をもとに判定される。判定された第１の記憶装置１０の負荷状態は、管理装置３０に送信される。
【００８６】
例えば開かれているファイルの数や、開かれたファイルに書き込まれるデータのバイト数、あるいは開かれたファイルから読み出されるデータのバイト数等の情報が、負荷状態を表す情報として通達されてもよい。
【００８７】
ファイルアクセス状態通達モジュール１４から管理装置３０への通達は、例えば管理装置３０からの通達要求を受信することで行われてもよい。あるいは、所定のタイミングでファイルアクセス状態通達モジュール１４から管理装置３０へ負荷状態を表す情報が送信されてもよい。
【００８８】
上記したように、第１及び第２の記憶装置１０及び２０は、それぞれメインクラスタ及びサブクラスタとして動作する。従って第１の記憶装置１０のファイルアクセス状態通達モジュール１４により、第２の記憶装置２０のファイルアクセスの状態も管理される。従って、第１の記憶装置１０のファイルアクセス状態通達モジュール１４から管理装置３０へ、第１及び第２の記憶装置１０及び２０の両方の負荷状態が通達される。
【００８９】
なお、第２の記憶装置２０の負荷状態は、第２の記憶装置２０のファイルアクセス状態通達モジュール２４により管理されてもよい。
【００９０】
障害通達モジュール１５は、第１の記憶装置１０において、ソフトウェア又はハードウェア等に関する障害が発生したときに、その障害の発生を管理装置３０に通達する。
【００９１】
［ストレージシステムの動作］
図４から図１３は、本実施形態のストレージシステム１００の動作を説明するための模式な図である。以下では、本実施形態に係る情報処理装置である管理装置３０の動作を中心に説明する。
【００９２】
図４は、クライアント装置５０が仮想記憶領域の所定のディレクトリを開く際のストレージシステム１００の動作を示す模式的な図である。
【００９３】
クライアント装置５０からのファイルアクセスは、管理装置３０に対して実行される。クライアント装置５０から管理装置３０に、所定の仮想ディレクトリ下のファイルをリストアップする旨のコマンドが発行される（ステップ１０１）。当該コマンドは、ファイルアクセス受付モジュール３１により受け付けられる。
【００９４】
ファイルアクセス受付モジュール３１は、ファイル管理モジュール３３に仮想ディレクトリ下のファイルを問い合わせる（ステップ１０２）。ファイル管理モジュール３３は、仮想記憶領域のデータベースに保存されているテーブル２００（図４参照）を参照し、その仮想ディレクトリ下で管理しているファイルのリストを返す。ファイルのリストは、ファイルアクセス応答モジュール３２を介してクライアント装置５０に送信される（ステップ１０２）。
【００９５】
クライアント装置５０の所定のアプリケーション等により、例えば受信したファイルのリストがディスプレイ等に表示される。これによりクライアント装置５０のユーザが仮想ディレクトリ下のファイルを認識することができる。ユーザにより例えば仮想ディレクトリ下の所定のファイルを開く旨の指示がクライアント装置５０に入力される。
【００９６】
このように本実施形態では、クライアント装置５０に仮想記憶領域のディレクトリの情報までが提供される。そしてディレクトリを開く旨のコマンドが管理装置３０に送信されることで、ディレクトリ下のファイルの情報がクライアント装置５０に送信される。しかしながら仮想記憶領域の情報として、ディレクトリ下のファイルの情報も含めてクライアント装置５０に提供されてもよい。
【００９７】
図５は、クライアント装置５０が所定のファイルを開く（オープンアクセス実行）際のストレージシステム１００の動作を示す模式的な図である。
【００９８】
クライアント装置５０から管理装置に３０に、オープンアクセスのＩ／Ｏリクエストが送信される（ステップ２０１）。Ｉ／Ｏリクエストは、ファイルアクセス受付モジュール３１により受け付けられる。ファイルアクセス受付モジュール３１からファイル管理モジュール３３に、実ファイルパスの問合せが行われる。すなわちオープンアクセスの対象となるファイルの仮想ファイルパスに対応する実ファイルパスが問い合わされる（ステップ２０２）。
【００９９】
ファイル管理モジュール３３は、仮想記憶領域に関するテーブル２００を参照して、仮想ファイルパスに対応する実ファイルパスを返す（ステップ２０３）。実ファイルパスは、ファイルアクセス応答モジュール３２を介してクライアント装置５０に送信される（ステップ２０４）。
【０１００】
本実施形態では、ファイルアクセス応答モジュール３２からクライアント装置５０へ、実ファイルパスとともに実パス解析要求が送信される。クライアント装置５０では、実ファイルパス及び実パス解析要求をもとに、再解析モジュール５１による再解析処理が実行される。この再解析処理により、実ファイルパスをもとにした第１の記憶装置１０へのオープンアクセスが実行される（ステップ２０５）。これにより、第１の記憶装置１０の記憶領域にて、実ファイルパスに対応するファイルが開かれる。なお典型的には、再解析処理により、第１の記憶装置１０へのファイルアクセスのための新たな実ファイルパスが生成される。しかしこれに限定されない。
【０１０１】
このように本実施形態では、再解析モジュール５１により、実ファイルパスに基づいた第１の記憶装置１０へのファイルアクセスが自動的に実行される。再解析モジュール５１としては、例えばショートカット等に用いられる名前解決のためのモジュール等が用いられる。例えばWindows（登録商標）ではそのようなモジュールが実装されており、ＤＦＳ（Distributed File System）クライアントやシンボリックリンクの解決に利用されている。そのようなモジュールを本実施形態に係る再解析モジュール５１として利用することも可能である。また、他のＯＳ（Operating System）でも同様なモジュールを入れることで、再解析モジュール５１を実現することができる。
【０１０２】
なおクライアント装置５０により、上記したような再解析処理が必ずしも実行されなくてもよい。任意のアルゴリズムに基づいて、管理装置３０から送信された実ファイルパスをもとに、第１の記憶装置１０へのファイルアクセスが実行されればよい。
【０１０３】
図５に示すように、クライアント装置５０から第１の記憶装置１０へのオープンアクセスのＩ／Ｏリクエストが、ＩＲＰオペレーションモジュール１２によりフックされる。Ｉ／Ｏリクエストのコピーが、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信される（ステップ２０６）。ミラーリングモジュール１３により、上記で説明したミラーリングが実行される（ステップ２０７）。またファイルアクセス状態通達モジュール１４により、第１の記憶装置１０に対して実行されているファイルアクセスの状態が管理装置３０に通達される。
【０１０４】
図６は、クライアント装置５０がファイルを新規作成する際のストレージシステム１００の動作を示す模式的な図である。
【０１０５】
クライアント装置５０から管理装置に３０に、オープンアクセス（新規作成）のＩ／Ｏリクエストが送信される（ステップ３０１）。例えば所定の仮想ディレクトリを指定して、ファイルの新規作成のＩ／Ｏリクエストが送信されてもよい。仮想ディレクトリの指定がなくてもよい。
【０１０６】
Ｉ／Ｏリクエストは、ファイルアクセス受付モジュール３１により受け付けられる。ファイルアクセス受付モジュール３１からファイル管理モジュール３３に、ファイルの新規作成の要求が送信される（ステップ３０２）。
【０１０７】
ファイル管理モジュール３３は、自身内に保持するデータベース（図２参照）に新しくレコードを追加する。この際には、ミラー管理モジュール３６内にある図３のテーブルに従って、実パス名１及び実パス名２を新規作成する。
【０１０８】
すなわち図３に示すミラー元パス名をもとに第１の記憶装置１０のディレクトリ１又はディレクトリ２内の所定の実ファイルパスを、新規に作成されるファイルの実アドレスとして設定する。またミラー先のパス名１を参照して、第２の記憶装置２０のディレクトリ１又はディレクトリ２内の所定の実ファイルパスを、新規に作成されるファイルのコピーの実アドレスとして設定する。設定された実ファイルパスが、テーブル２００の実パス名１及び実パス名２のフィールドに追加される。
【０１０９】
ファイル管理モジュール３３により新たに設定された実ファイルパスは、ファイルアクセス受付モジュール３１に返される（ステップ３０３）。当該実ファイルパスは、ファイルアクセス応答モジュール３２を介してクライアント装置５０に送信される（ステップ３０４）。なお、ファイル管理モジュール３３により新たに設定された実ファイルパスのうち、第１の記憶装置１０についての実ファイルパスがクライアント装置５０に送信されればよい。
【０１１０】
クライアント装置５０では、再解析モジュール５１による再解析処理が実行される。そして、管理装置３０から送信された実ファイルパスをもとにした、ファイルの新規作成のファイルアクセスが第１の記憶装置１０に対して実行される（ステップ３０５）。ファイルの新規作成のＩ／Ｏリクエストのコピーが、ＩＲＰオペレーションモジュール１２から、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信される（ステップ３０６）。ミラーリングモジュール１３により、ミラーリングが実行され（ステップ３０７）、ファイルアクセス状態通達モジュール１４により、ファイルアクセスの状態が管理装置３０に通達される。
【０１１１】
例えば、ミラー元のファイルサーバとして複数の記憶装置が設定されている場合、その中から、新規なファイルが記憶されるファイルサーバが選択される。その選択の方法として様々な方法が考えられるが、もっとも簡単な実装はラウンドロビンでミラー元の複数の記憶装置に、順番にファイルを作成していく方法である。その他、複数の記憶装置のそれぞれに対するファイルアクセスの状態を見て、負荷の少ない記憶装置にファイルを新規作成するということも可能である。これによりロードバランスを実行することができる。
【０１１２】
図７は、クライアント装置５０がファイルにデータを書く際のストレージシステム１００の動作を示す模式的な図である。
【０１１３】
例えば図５等に示すような動作によりファイルが開かれた後は、第１の記憶装置１０がクライアント装置５０からのファイルアクセスに対して所定のファイルサービスを実行する。従って図７に示すように、クライアント装置５０により第１の記憶装置１０に対してライトアクセスが実行される。
【０１１４】
ライトアクセスのＩ／Ｏリクエストが第１の記憶装置１０のファイルシステム１１に送信される（ステップ４０１）。この際、第１の記憶装置１０に対してオープンアクセスを実行するために用いられた実ファイルパス（オープンアクセスの際に管理装置３０から送信された実ファイルパスをもとにしたパス）が用いられる。
【０１１５】
ファイルシステム１１により、オープンアクセスにより開かれたファイルにデータが書き込まれる。Ｉ／Ｏリクエストのコピーが、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信される（ステップ４０２）。ミラーリングモジュール１３により、ミラーリングが実行される（ステップ４０３）。これにより、ミラー先の第２の記憶装置２０の記憶領域に格納されたファイルにもデータが書き込まれる。
【０１１６】
なおファイルが開かれた後に実行されるファイルアクセスは、上記したライトアクセスに限られず、クライアント装置５０から第１の記憶装置１０へ種々のファイルアクセスが実行される。そのようなファイルアクセスとしては、例えば、次に示ようなファイルの削除・名前変更等がある。
【０１１７】
図８は、クライアント装置５０がファイルの削除・名前変更等を行う際のストレージシステム１００の動作を示す模式的な図である。
【０１１８】
クライアント装置５０により第１の記憶装置１０に対してファイルの削除・名前変更等のファイルアクセスが実行される。当該ファイルアクセスのＩ／Ｏリクエストが第１の記憶装置１０のファイルシステム１１に送信される（ステップ５０１）。
【０１１９】
Ｉ／Ｏリクエストのコピーが、ＩＲＰオペレーションモジュール１２から、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信される（ステップ５０２）。ファイルアクセス状態通達モジュール１４から管理装置３０のファイル管理モジュール３３に、ファイルの削除・名前変更等のファイルアクセスが実行された旨が通達される（ステップ５０３）。
【０１２０】
ファイル管理モジュール３３は、ファイルアクセス状態通達モジュール１４からの通達をもとに、自身が保持するデータベース（図２参照）を更新する。更新が完了した旨がファイル管理モジュール３３から第１の記憶装置１０の例えばファイルアクセス状態通達モジュール１４等へ返される。
【０１２１】
データベースの更新完了の通知が受信されると、ファイルシステム１１により、ファイルの削除・名前変更等のアクセスが実行される。ミラーリングモジュール１３により、ミラーリングが実行され（ステップ５０４）、ファイルアクセス状態通達モジュール１４により、ファイルアクセスの状態が管理装置３０に通達される。
【０１２２】
このように本実施形態では、管理装置３０のファイル管理モジュール３３が保持するデータベースが更新された後に、ファイルシステム１１によるアクセスが実行される。これにより、第１及び第２の記憶装置１０及び２０の各記憶領域に記憶されているファイルと、データベースとの整合性を高く維持することができる。しかしながら、ファイルシステム１１によるファイルの削除・名前変更等の後、あるいはそれと並行して、データベースの更新が実行されてもよい。
【０１２３】
図９は、クライアント装置５０からのオープンアクセスに対して、ロードバランス（負荷分散）を実行するストレージシステム１００の動作を示す模式的な図である。
【０１２４】
クライアント装置５０から管理装置に３０に、オープンアクセスのＩ／Ｏリクエストが送信される（ステップ６０１）。Ｉ／Ｏリクエストは、ファイルアクセス受付モジュール３１により受け付けられる。
【０１２５】
ファイルアクセス受付モジュール３１は、オープンアクセスがＷｒｉｔｅ属性であるか又はＲｅａｄ属性であるかを判定する。この判定は、例えばオープンアクセスに付与されたフラグを参照することで行われる。オープンアクセスがＷｒｉｔｅ属性であるか又はＲｅａｄ属性であるかを判定するための方法は限定されない。判定された属性の情報は、ファイルアクセス応答モジュール３２に送信される。ファイルアクセス受付モジュール３１は、本実施形態に係る第１の判定部として機能する。
【０１２６】
ファイルアクセス受付モジュール３１からファイル管理モジュール３３に、実ファイルパスの問合せが行われる（ステップ６０２）。ファイル管理モジュール３３は、仮想記憶領域のテーブル２００を参照して、仮想ファイルパスに対応する実ファイルパスを返す（ステップ６０３）。実ファイルパスは、ファイルアクセス応答モジュール３２に送信される。
【０１２７】
ファイルアクセス応答モジュール３２は、第１の記憶装置１０のファイルアクセス状態通達モジュール１４に、ファイルアクセス状態の通達を要求する（ステップ６０４）。これによりファイルアクセス状態通達モジュール１４からファイルアクセス応答モジュール３２へ、第１及び第２の記憶装置１０及び２０の両方の負荷状態が通達される。
【０１２８】
ファイルアクセス状態の通達要求が送信されるタイミングは、ファイル管理モジュール３３からの実ファイルパスを受信した後に限定されない。例えばクライアント装置５０からのオープンアクセスが受け付けられたときに、要求の送信が実行されてもよい。あるいは、クライアント装置５０からのファイルアクセスの有無にかかわらず、所定のタイミングで定期的に要求が送信されてもよい。ファイルアクセス応答モジュール３２は、本実施形態に係る第２の判定部としても機能する。
【０１２９】
ファイルアクセス応答モジュール３２は、オープンアクセスの属性、第１及び第２の記憶装置１０及び２０のそれぞれの負荷状態をもとに、クライアント装置５０へ送信する実ファイルパスを選択する。選択された実ファイルパスはクライアント装置５０へ送信される（ステップ６０５）。
【０１３０】
例えばオープンアクセスの属性がライト属性である場合、ミラー元である第１の記憶装置１０の記憶領域の実ファイルパスがクライアント装置５０に送信される。すなわち図２に示すテーブルの実パス名１のカラム２３０に書き込まれたパスがクライアント装置５０に送信される。
【０１３１】
オープンアクセスの属性がリード属性である場合、ミラー元である第１の記憶装置１０とミラー先である第２の記憶装置２０の負荷状態の情報が参照される。第１の記憶装置１０と第２の記憶装置２０のうち負荷が少ない方の記憶装置の記憶領域の実パスファイルがクライアント装置５０に送信される。
【０１３２】
このように本実施形態では、管理装置３０が保持する仮想記憶領域の仮想ファイルパスへのファイルアクセスが、リードアクセスかライトアクセスかが判定される。また本実施形態では、第１及び第２の記憶装置１０及び２０のそれぞれの負荷状態が判定される。これらの判定結果をもとに、仮想ファイルパスへのファイルアクセスに応じて、第１の及び第２の実アドレスのいずれか１つがクライアント装置５０に送信される。これによりストレージシステム１００においてロードバランスが可能となる。
【０１３３】
実ファイルパスを受信したクライアント装置５０により、第１の記憶装置１０又は第２の記憶装置２０に対してオープンアクセスが実行される（ステップ６０６）。オープンファイルのＩ／Ｏリクエストのコピーが、ミラーリングモジュール１３と、ファイルアクセス状態通達モジュール１４とにそれぞれ送信される（ステップ６０７）。ミラーリングモジュール１３により、ミラーリングが実行され（ステップ６０８）、ファイルアクセス状態通達モジュール１４により、ファイルアクセスの状態が管理装置３０に通達される。
【０１３４】
なお、図９では、第１の記憶装置１０に対してオープンアクセスが実行された場合の動作が図示されている。ステップ６０５にてクライアント装置５０に第２の記憶装置２０の記憶領域の実ファイルパスが送信された場合、オープンファイルのＩ／Ｏリクエストは、第２の記憶装置２０のファイルシステム２１に送信される。
【０１３５】
また本実施形態では、ファイルアクセス受付モジュール３１が第１の判定部として機能し、ファイルアクセス応答モジュール３２が第２の判定部として機能した。しかしながら例えばファイル管理モジュール３３やファイルアクセス応答モジュール３２等の他のモジュールが第１の判定部として機能してもよい。またファイルアクセス受付モジュール３１やファイル管理モジュール３３が第２の判定部として機能してもよい。さらに、第１の判定部として機能するモジュールや第２の判定部として機能するモジュールがそれぞれ独立して設けられてもよい。
【０１３６】
図１０は、ストレージサーバとしての記憶装置が新たに追加される際のストレージシステム１００の動作を示す模式的な図である。ここでは、図１０に示す第３の記憶装置６０が、第４の記憶装置７０をミラー先とする、ミラー元のストレージサーバとして追加された場合の動作が図示されている。
【０１３７】
ストレージサーバの追加は、例えば以下のようなケースで行われる。例えばカメラで撮影した映像データを直接ストレージに記録し、そのストレージがストレージシステム１００に繋げられるケースが考えられる。また、ストレージシステム１００の記憶容量を増やすためにストレージが追加されるケースも考えられる。さらに、近年ではカメラ内部にストレージをもつものもあり、当該カメラ自身がストレージシステム１００に繋げられるといったケースもある。その他、例えば不具合が発生したストレージサーバが後に説明する削除処理によりストレージシステム１００が削除される。不具合が修正された後当該ストレージサーバが復旧される場合にも、以下に示す追加処理の動作が実行される。その他、種々のケースが考えられる。
【０１３８】
所定のＵＩ（User Interface）等を介したクライアント装置５０への操作をもとに、クライアント装置５０から管理装置３０へストレージ追加要求が送信される（ステップ７０１）。ストレージ追加要求は、管理装置３０のファイルサーバ管理モジュール３４に送信される。
【０１３９】
ファイルサーバ管理モジュール３４は、追加される第３の記憶装置６０に対してミラーリングの設定を行うかどうかを判定する。例えばクライアント装置５０からの指示をもとに当該判定が実行される。本実施形態のように、第３の記憶装置６０がミラー元のストレージサーバとして用いられる場合には、ファイルサーバ管理モジュール３４からミラー管理モジュール３６へミラーリングの設定要求が送信される（ステップ７０２）。
【０１４０】
ミラー管理モジュール３６は、ミラーリングの設定要求をもとに、ミラーリングの設定情報を更新する。例えば図３に示すテーブルのカラム３１０に第３の記憶装置６０であるストレージサーバ３が追加される。カラム３２０のミラー元パス名には、第３の記憶装置６０の記憶領域の所定のディレクトリが書き込まれる。カラム３３０のミラー先パス名には、第４の記憶装置７０の記憶領域の所定のディレクトリが書き込まれる。
【０１４１】
ミラー管理モジュール３６によるミラーリングの設定情報の更新が完了すると、第３の記憶装置６０のミラーリングモジュール６３に、ミラーリング設定の要求が送信される（ステップ７０３）。このミラーリング設定要求は、ミラー管理モジュール３６にて更新されたミラーリングの設定情報に基づくものである。ミラーリングモジュール６３は、受信したミラーリング設定要求に基づいて、ミラーリングを実行する。
【０１４２】
ファイルサーバ管理モジュール３４により、第３の記憶装置６０に対してミラーリングの設定が不要と判定された場合、ミラー管理モジュール３６にミラーリングの設定要求は送信されない。例えばクライアント装置５０からミラーリングの設定は不要の旨が送信された場合や、第３の記憶装置６０がミラーリング設定不可のストレージサーバであるとき等は、ミラーリングの設定要求は送信されない。
【０１４３】
ファイルサーバ管理モジュール３４からファイル管理モジュール３３に、ファイルサーバが追加されたことが通知される（ステップ７０４）。通知を受けたファイル管理モジュール３３は、自身が保持する仮想記憶領域のテーブル２００を更新する。例えば仮想ディレクトリ名と、第３の記憶装置６０の記憶領域の所定のディレクトリと、第４の記憶装置７０の記憶領域の所定のディレクトリとを含むレコードが追加される。
【０１４４】
本実施形態では、クライアント装置５０からのストレージ追加要求を受信することでストレージ追加処理が実行された。例えば管理装置３０に、ネットワーク４０上へのストレージサーバの新たな接続を検知するモジュールが設けられる。このモジュールによる検知がストレージ追加処理のトリガとされてもよい。
【０１４５】
図１１は、ストレージシステム１００からストレージサーバとしての記憶装置が削除される際のストレージシステム１００の動作を示す模式的な図である。図１１では、ミラー元となる第１の記憶装置１０が削除される場合の動作が図示されている。
【０１４６】
クライアント装置５０から管理装置３０へストレージ削除要求が送信される（ステップ８０１）。ストレージ削除要求は、管理装置３０のファイルサーバ管理モジュール３４に送信される。
【０１４７】
なお、例えば管理装置３０に、ネットワーク４０上へのストレージサーバの接続の有無を検知するモジュールが設けられる。このモジュールにより、ネットワーク４０への第１の記憶装置１０の接続が遮断されたことが検知され、当該検知により以下に示す動作が実行されてもよい。
【０１４８】
ファイルサーバ管理モジュール３４からファイルアクセス応答モジュール３２へ、削除される第１の記憶装置１０の記憶領域上の実ファイルパスを送信しない旨の指示が出力される（ステップ８０２）。例えばクライアント装置５０から仮想記憶領域の所定のファイルにアクセスがあり、ファイル管理モジュール３３から第１の記憶装置１０の記憶領域上の実ファイルパスが出力されたとする。このような場合でも、クライアント装置５０に第１の記憶装置１０へのアクセスの指示が送信されないように、ファイルアクセス応答モジュール３２の動作が適宜設定される。
【０１４９】
またファイルサーバ管理モジュール３４からミラー管理モジュール３６へ、ミラーリングの停止要求が送信される（ステップ８０３）。ミラー管理モジュール３６は、ミラーリングの停止要求をもとに、ミラーリングの設定情報を更新する。例えば図３に示すテーブルから、第１の記憶装置１０に関する情報が削除される。
【０１５０】
ミラー管理モジュール３６によるミラーリングの設定情報の更新が完了すると、第１の記憶装置１０のミラーリングモジュール１３に、ミラーリング停止の要求が送信される（ステップ８０４）。ミラーリングの停止要求は、現在ミラーリングされているファイルへのアクセスや、ミラーリングされているアクセスが全て終わった後に送信される。
【０１５１】
第１の記憶装置１０のミラーリングモジュール１３は、受信したミラーリング停止要求に基づいてミラーリングの設定を解除する。
【０１５２】
ファイルサーバ管理モジュール３４からファイル管理モジュール３３に、ファイルサーバが削除されたことが通知される（ステップ８０５）。通知を受けたファイル管理モジュール３３は、自身が保持する仮想記憶領域のテーブル２００を更新する。例えばテーブル２００から第１の記憶装置１０に関する情報が削除される。
【０１５３】
図１２は、ファイルサーバに障害が発生した際の、ストレージシステム１００の動作を示す模式的な図である。図１２では、第２の記憶装置２０に障害が発生した場合の動作が図示されている。
【０１５４】
第２の記憶装置２０の障害通達モジュール２５により、管理装置３０のファイルサーバ障害検知モジュール３５に障害発生の通達が送信される（ステップ９０１）。これにより第２の記憶装置２０に障害が発生したことが検知される。なお障害通達モジュール１５からファイルサーバ障害検知モジュール３５にハートビートが送信されてもよい。ハートビートの受信が停止することにより、第２の記憶装置２０の障害が検知されてもよい。
【０１５５】
ファイルサーバ障害検知モジュールから３５ファイルアクセス応答モジュール３２へ、第２の記憶装置２０に障害が発生した旨が送信される（ステップ９０２）。例えば第２の記憶装置２０の記憶領域上の実ファイルパスをクライアント装置５０に送信しない旨の指示が出力される。
【０１５６】
ファイルサーバ障害検知モジュール３５からファイルサーバ管理モジュール３４へ、第２の記憶装置２０を削除するためのストレージ削除要求が送信される（ステップ９０３）。ストレージ削除要求を受けたファイルサーバ管理モジュール３４により、ミラー管理モジュール３６へミラーリングの停止要求が送信される（ステップ９０４）。
【０１５７】
ミラーリングの停止要求を受けたミラー管理モジュール３６により、ミラーリングの設定情報が更新される。当該更新が完了すると、第２の記憶装置２０のミラー元となる第１の記憶装置１０のミラーリングモジュール１３に、ミラーリング停止の要求が送信される（ステップ９０５）。
【０１５８】
第１の記憶装置１０のミラーリングモジュール１３は、受信したミラーリング停止要求に基づいてミラーリングの設定を解除する。なお、ミラーリング停止の要求が第２の記憶装置２０のミラーリングモジュール２３に送信されてもよい。そしてミラーリングモジュール２３により、ミラーリングの設定が解除されてもよい。
【０１５９】
ファイルサーバ管理モジュール３４からファイル管理モジュール３３に、第２の記憶装置２０に障害が発生した旨が送信される（ステップ９０６）。通知を受けたファイル管理モジュール３３は、自身が保持する仮想記憶領域のテーブル２００を更新する。例えばテーブル２００から第２の記憶装置２０に関する情報が削除される。
【０１６０】
図１３は、ファイルサーバ管理サーバである管理装置３０に障害が発生した際の、ストレージシステム１００の動作を示す模式的な図である。
【０１６１】
管理装置３０のファイルサーバ障害検知モジュール３５により、管理装置３０に発生した障害が検知される（ステップ１００１）。障害の種類や障害の検知方法は限定されない。
【０１６２】
本実施形態では、ファイルサーバ管理サーバは冗長化されており、管理装置３０が管理する種々のデータの同期が完全に取られているとする。管理装置３０に障害が発生した場合、管理装置３０へのアクセスが、同期が取られている他の情報処理装置に飛ばされる。
【０１６３】
例えば、Microsoft（登録商標）のＮＬＢ（Node Load Balancing）の機能を利用することで、あるＩＰアドレス（Internet Protocol Address）にアクセスすると、障害が発生していないＩＰアドレスにアクセスを飛ばすことが可能となる。例えばこの機能を利用することでダウンタイムを最低限に抑えることが可能である。その他の情報処理方法が適宜用いられてもよい。
【０１６４】
以上、本実施形態に係るストレージシステム１００では、第１及び第２の記憶装置１０及び２０に記憶されるファイルの実ファイルパスが取得される。また実ファイルパスに対応する仮想ファイルパスを有する仮想記憶領域が保持される。仮想ファイルパスへのファイルアクセスがあった場合には、当該ファイルアクセスに応じて仮想ファイルパスに対応する実ファイルパスが送信される。これにより実ファイルパスを用いたファイルアクセスを第１又は第２の記憶装置１０又は２０に対して行うことが可能となる。この結果、ファイルベースで操作性よくデータを取り扱うことが可能となるストレージシステム１００を実現することができる。
【０１６５】
また第１及び第２の記憶装置１０及び２０の各記憶領域を仮想的に１つに見せることが可能となる。この結果、操作性のよいストレージシステム１００が実現される。また本実施形態では、ファイルが記憶される階層の情報をもとにしたファイルアクセスを第１又は第２の記憶装置１０又は２０に対して行うことが可能となる。
【０１６６】
複数の記憶装置を有するストレージシステムにおいて記憶領域を仮想化する手法として、ブロックレベルの仮想化とファイルレベルの仮想化の大きく２つの手法が存在する。ブロックレベルの仮想化としては、例えばＳＡＮ等のように各ストレージクラスタがＦＣ（Fibre Channel）やｉＳＣＳＩなどのプロトコルを用いてブロックデバイスとしてＩＦ（Interface）を公開する手法がある。
【０１６７】
またストレージのコントローラと、ブロックデバイスとして認識されるストレージクラスタとを利用して、ＳＡＮが構築される場合もある。この手法では、冗長化はブロックを統合する部分で行われ、例えばＲＡＩＤ１やＲＡＩＤ５を構成することで保たれる。
【０１６８】
近年ではＲＡＩＤ５のような固定的なブロック配置ではなく、この冗長化の部分を独自アルゴリズムで実装する仮想化装置も存在する。しかし、この方法ではホスト１台１台にＳＡＮクライアントのソフトウェアのインストールが必要となる。
【０１６９】
また、ストレージを管理しているＳＡＮコントローラに障害が発生した場合には、ストレージのブロックを管理している装置が存在しなくなってしまうため、障害発生中はファイルにアクセスすることができなくなる。また通常は冗長化されているが、災害時にＳＡＮコントローラのデータがなくなってしまったり、データに不整合が生じたりすると、データの復旧が難しくなってしまう。
【０１７０】
このようなブロックレベルの仮想化に対して、ファイルレベルの仮想化という手法がある。ファイルレベルの仮想化は、複数のファイルサーバに存在するファイルを一つの仮想ディレクトリの下に配置するように見せるような仮想化を行う手法である。
【０１７１】
ファイルレベルの仮想化の方式としては、インバンド、アウトバンドの２方式がある。インバンド方式とは、コントロールとデータアクセスを同じパスで行う方式を指す。アウトオブバンド方式とは、ファイルアクセスのコントロールとデータの送受信を別のパスで行う方式を指す。ファイルレベルの仮想化に関しては一般的にはインバンド方式を採用することが多い。
【０１７２】
ファイルレベルの仮想化のインバンド方式として、中間装置を挟んでファイルレベルの仮想化を行う方法がある。この方式は中間装置にアクセスが集中するため、中間装置自身の帯域がボトルネックになってしまう。また、ホストが中間装置にアクセスしてから、中間装置が各ファイルサーバにアクセスする形式をとるため、データ送信に二重のステップが存在し、スループットも大きく低下してしまう。
【０１７３】
ファイルレベルの仮想化のアウトオブバンド方式として、各ホストにＳＡＮクライアントのファイルシステムソフトウェアをインストールし、そのレイヤーで仮想化する方法がある。この方式はＳＡＮと一緒で、ホスト一台一台にファイルシステムをインストールするため、管理コストが高くなってしまい、ストレージ管理サーバに障害が発生した際に、データが紛失されてしまうとファイルにアクセスができなくなってしまう。
【０１７４】
上記したようにＳＡＮなどで利用されている既存の方式では、データがブロックベースで管理されており、コントローラのデータが破損した際には二度とデータが復旧できなくなる恐れがある。かつホストにソフトウェアを入れて管理コストを上げてしまう点が課題としてあげられる。ＮＡＳヘッドのような中間装置を介して全てのストレージにアクセスする方式では、ストレージの管理と設計は楽だが、帯域を下げてしまうという課題が残ってしまう。
【０１７５】
一方、近年ではカメラの映像データを直接ストレージにファイルとして保存できるデバイスが増えてきている。近年のＩＴの進化により、放送局がテープベースのワークフローから、ファイルベースのワークフローへと移行してきているという時代の流れがある。従来のシステムではデータがブロックベースで管理されているものが多い。従ってカメラの映像データが記憶されたストレージをストレージシステムに繋いでも利用することができず、セントラルストレージにファイルをコピーしてはじめて編集者達は利用できるようになっていた。
【０１７６】
また映像データ等はデータ容量が非常に多いため、ＵＳＢＨＤＤやＮＡＳなどにデータを入れて素材をスニーカーネットするケースも多い。このようなケースにもファイルコピーなしで、そのストレージをファイルサーバクラスタの一員として利用することも求められる。またホストが、ストレージから直接データを読み出して十分な帯域でアクセスすることが可能であることも求められる。またファイルレベルの仮想化が実現されれば、無駄なファイルコピーの回数を減らすことができる。
【０１７７】
ファイルレベルの仮想化の例として、例えば、Microsoft DFSを利用してグローバルネームスペースの解決を行うことで、ファイルのアクセス先を変える方法が考えられる。この方法は限定された条件のもとで機能する。例えばネームスペースの分岐、例えばDir1/File1とか、Dir1/File2というように２つのファイルを、別々のファイルサーバに保存するといったことが難しい。
【０１７８】
Windows （登録商標）DFSではロードバランスを指定することができるが、ファイルサーバ１にDir1/File1を保存した直後に、Dir1をアクセスすると、別のファイルサーバ２のDir1に飛ばされて書き込んだFile1が存在しないケースも存在する。この問題はディレクトリのサービスを、各ファイルサーバが提供していることに問題が起因すると考えられる。
【０１７９】
本技術の実施形態で説明したストレージシステム１００では、アウトオブバンドでファイルレベルの仮想化を実現することが可能となる。すなわちストレージシステム１００では、アウトオブバンドで、ファイルサーバのクラスタを一つの仮想ストレージとして見せることが可能である。
【０１８０】
その結果、クライアント装置５０からのアクセスの高速化を実現することができる。また複雑な処理を要することなくロードバランスを実行することが可能となる。またストレージサーバの削除や追加等を、簡単な処理で、ミラーリング等の整合性を保ちつつ高速に実現することが可能となる。
【０１８１】
またストレージシステム１００にアクセスするクライアント装置５０に所定のソフトウェアをインストールする必要がなく管理コストを抑えることができる。また図８に示す削除処理及び図１０に示す追加処理を実行することで、ストレージサーバの復旧やデータの復旧を容易に実行することが可能となる。
【０１８２】
＜変形例＞
本技術に係る実施形態は、上記で説明した実施形態に限定されず種々変形される。
【０１８３】
例えばストレージシステム１００に含まれるストレージサーバとしての記憶装置の数はもっと多くてもよい。その場合、図２や図３に示すテーブルとして、より多くのレコードをもったテーブルが適宜用いられればよい。
【０１８４】
なお、本技術は以下のような構成も採ることができる。
（１）所定のアドレスにファイルが記憶される記憶領域を有する記憶装置の、前記ファイルが記憶される前記記憶領域上のアドレスである実アドレスを取得する取得部と、
前記記憶領域上の実アドレスに対応し当該実アドレスに記憶されるファイルの仮想的なアドレスとなる仮想アドレスを有する、仮想的な記憶領域である仮想記憶領域を保持する保持部と、
前記仮想記憶領域上の前記仮想アドレスへのアクセス要求に応じて、当該アクセス要求の対象の前記仮想アドレスに対応する前記実アドレスを送信する送信部と
を具備する情報処理装置。
（２）（１）に記載の情報処理装置であって、
前記取得部は、１以上の記憶装置の各記憶領域において実アドレスを取得し、
前記仮想記憶領域は、前記各記憶領域において取得された実アドレスにそれぞれ対応する前記仮想アドレスを有する
情報処理装置。
（３）（１）又は（２）に記載の情報処理装置であって、
前記記憶領域は、複数の階層を有し、
前記実アドレスは、前記複数の階層のうち前記ファイルが記憶される階層の情報を含む
情報処理装置。
（４）（２）又は（３）に記載の情報処理装置であって、
前記仮想記憶領域は、第１の記憶装置に記憶された第１のファイルの第１の実アドレスに対応する第１の仮想アドレスを、前記第１の記憶装置とは異なる第２の記憶装置に記憶された前記第１のファイルの複製である第２のファイルの第２の実アドレスに対応する第２の仮想アドレスとして共通して有する
情報処理装置。
（５）（４）に記載の情報処理装置であって、
前記第１の仮想アドレスへのアクセス要求がリードアクセスかライトアクセスかを判定する第１の判定部をさらに具備し、
前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第１の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信する
情報処理装置。
（６）（４）又は（５）に記載の情報処理装置であって、
前記第１及び第２の記憶装置のそれぞれの負荷状態を判定する第２の判定部をさらに具備し、
前記送信部は、前記第１の仮想アドレスへのアクセス要求に応じて、前記第２の判定部による判定をもとに、前記第１及び前記第２の実アドレスのうちいずれか１つを送信する
情報処理装置。
【符号の説明】
【０１８５】
１０…第１の記憶装置
２０…第２の記憶装置
３０…管理装置
３１…ファイルアクセス受付モジュール
３２…ファイルアクセス応答モジュール
３３…ファイル管理モジュール
３４…ファイルサーバ管理モジュール
３５…ファイルサーバ障害検知モジュール
３６…ミラー管理モジュール
６０…第３の記憶装置
７０…第４の記憶装置
１００…ストレージシステム
２００…テーブル
３００…テーブル
【図１】
2013161383.tif 000003
【図２】
2013161383.tif 000004
【図３】
2013161383.tif 000005
【図４】
2013161383.tif 000006
【図５】
2013161383.tif 000007
【図６】
2013161383.tif 000008
【図７】
2013161383.tif 000009
【図８】
2013161383.tif 000010
【図９】
2013161383.tif 000011
【図１０】
2013161383.tif 000012
【図１１】
2013161383.tif 000013
【図１２】
2013161383.tif 000014
【図１３】
2013161383.tif 000015