(57)【要約】【課題】検索キーワードの作成を高速に行なう。【解決手段】ストレージ装置１ａは、第１のデータと、第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部１１と、管理部１１によって第１の検索キーワードが管理されている第１のデータについての、情報処理装置１ｂからの読み出し要求に応じて、第１の検索キーワードを情報処理装置１ｂに通知する第１通知部１２と、を備える。【選択図】図２
2017123071.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置と、当該ストレージ装置が記憶するデータについての検索キーワードを作成する情報処理装置とを有するストレージシステムであって、
前記ストレージ装置は、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部と、
前記管理部によって前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する第１通知部と、
を備える、ストレージシステム。
【請求項２】
前記ストレージ装置は、
前記管理部によって検索キーワードが管理されていない第２のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第２のデータを前記情報処理装置に送信するデータ送信部
を更に備え、
前記情報処理装置は、
前記データ送信部から送信された前記第２のデータに対して、第２の検索キーワードを割り当てる割り当て部と、
前記割り当て部によって割り当てられた前記第２の検索キーワードを前記ストレージ装置に通知する第２通知部と、
を備える、請求項１に記載のストレージシステム。
【請求項３】
前記管理部は、前記第２のデータと、前記第２通知部によって通知された前記第２の検索キーワードとを関連付けて管理する、
請求項２に記載のストレージシステム。
【請求項４】
前記割り当て部は、既に前記第１の検索キーワードが割り当てられている第３のデータに加えて、前記第１のデータに前記第１通知部によって通知された前記第１の検索キーワードを割り当てる、
請求項１〜３のいずれか１項に記載のストレージシステム。
【請求項５】
前記管理部は、同一の内容のデータについての重複除去後のデータと、当該データに対応する検索キーワードとを関連付けて管理する、
請求項１〜４のいずれか１項に記載のストレージシステム。
【請求項６】
データについての検索キーワードを作成する情報処理装置と通信可能に接続され、前記データを記憶するストレージ装置であって、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部と、
前記管理部によって前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する通知部と、
を備える、ストレージ装置。
【請求項７】
データについての検索キーワードを作成する情報処理装置と通信可能に接続され、前記データを記憶するストレージ装置に備えられるコンピュータに、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理し、
前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する、
処理を実行させるデータ管理プログラム。
【請求項８】
ストレージ装置と、当該ストレージ装置が記憶するデータについての検索キーワードを作成する情報処理装置とを有するストレージシステムにおけるデータ管理方法であって、
前記ストレージ装置は、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理し、
前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する、
データ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ装置、データ管理プログラム及びデータ管理方法に関する。
【背景技術】
【０００２】
近年、ドキュメントや画像を集めたファイルＤＢ（データベース）からキーワードや画像に基づいた検索を行なう検索システム（「ストレージシステム」と称されてもよい。）が広く使用されている。
【０００３】
検索システムは、事前に、ファイルＤＢに含まれる全てのファイルについてのインデックス（「検索キーワード」と称されてもよい。）を作成する場合がある。検索システムは、ファイルの検索時に、作成されたインデックスを参照することによって、ファイルの高速な検索を行なうことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開２０１１／０１８８５２号パンフレット
【特許文献２】特開２００８−１５８９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ファイルＤＢに含まれるファイルが大量になると、インデックスの作成に数日以上かかる場合があるなど、インデックスの作成に長時間かかるおそれがある。
【０００６】
１つの側面では、本発明は、検索キーワードの作成を高速に行なうことを目的とする。
【課題を解決するための手段】
【０００７】
このため、このストレージシステムは、ストレージ装置と、当該ストレージ装置が記憶するデータについての検索キーワードを作成する情報処理装置とを有するストレージシステムであって、前記ストレージ装置は、第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部と、前記管理部によって前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する第１通知部と、を備える。
【発明の効果】
【０００８】
開示のストレージシステムによれば、検索キーワードの作成を高速に行なうことができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態の一例としてのストレージシステムの機能構成の第１の例を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムの機能構成の第２の例を模式的に示す図である。
【図３】重複除去技術を適用する前のオリジナルファイルを模式的に例示する図である。
【図４】重複除去技術を適用した後のファイルを模式的に例示する図である。
【図５】検索装置によるインデックス作成動作を説明するフローチャートである。
【図６】図５のステップＳ２の詳細な動作を説明するフローチャートである。
【図７】重複除去装置によるインデックス作成動作を説明するフローチャートである。
【図８】実施形態の一例としての重複除去装置によって管理される管理テーブルを例示する図である。
【図９】実施形態の一例としてのストレージシステムによるインデックス作成動作を説明するシーケンス図である。
【図１０】実施形態の一例としての検索装置によるインデックス作成動作を説明するフローチャートである。
【図１１】図１０のステップＳ１２の詳細な動作を説明するフローチャートである。
【図１２】実施形態の一例としての重複除去装置によるインデックス作成動作を説明するフローチャートである。
【図１３】実施形態の一例としての重複除去技術を適用する前のオリジナルファイルを模式的に例示する図である。
【図１４】実施形態の一例としての重複除去装置によって管理される仮想アドレス空間テーブルを例示する図である。
【図１５】実施形態の一例としての管理テーブルの使用例を示す図である。
【図１６】実施形態の一例としての管理テーブルの使用例を示す図である。
【図１７】実施形態の一例としての管理テーブルの使用例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１１】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【００１３】
〔Ａ〕実施形態の一例
〔Ａ−１〕システム構成
図１は実施形態の一例としてのストレージシステム１の機能構成の第１の例を模式的に示す図であり、図２は実施形態の一例としてのストレージシステム１の機能構成の第２の例を模式的に示す図である。
【００１４】
実施形態の一例としてのストレージシステム１は、図１に例示するように、ＣＰＵ（Central Processing Unit）１０，メモリ２０及び記憶装置３０を備える。
【００１５】
また、実施形態の一例としてのストレージシステム１は、図２に例示するように、互いにネットワーク４を介して通信可能に接続された重複除去装置１ａ及び検索装置１ｂを備えてもよい。そして、重複除去装置１ａはＣＰＵ１０ａ，メモリ２０ａ及び記憶装置３０ａを備え、検索装置１ｂはＣＰＵ１０ｂ，メモリ２０ｂ及び記憶装置３０ｂを備えてもよい。
【００１６】
「重複除去装置」は、「重複除去システム」や「ストレージ装置」と称されてもよい。また、「検索装置」は、「検索システム」や「情報処理装置」と称されてもよい。
【００１７】
以下、特筆しない限り、図２を参照しながら、ストレージシステム１のシステム構成を説明する。
【００１８】
重複除去装置１ａは、例示的に、後述する記憶装置３０ａを搭載し、サーバ（不図示）に対して記憶領域を提供する装置である。重複除去装置１ａは、例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を用いて記憶装置３０ａにデータを分散又は冗長化した状態で保存する。また、重複除去装置１ａは、ファイルに含まれる同じ内容のブロックの重複を除去した状態で、ファイルを記憶装置３０ａに格納してよい。
【００１９】
本明細書において、「ファイル」とは、複数の「データ」の集合を指す。また、「データ」は、「ブロック」と称されてもよい。
【００２０】
検索装置１ｂは、例示的に、重複除去装置１ａが備える記憶装置３０ａに格納されたデータを検索する装置である。また、検索装置１ｂは、データの検索に用いるインデックスを作成してよい。「インデックス」は、「検索キーワード」と称されてもよい。
【００２１】
実施形態の一例としてのストレージシステム１（重複除去装置１ａ及び検索装置１ｂ）の詳細について説明する前に、図３〜図７を参照して、重複除去技術について説明する。
【００２２】
図３〜図７を参照して説明される重複除去技術は、実施形態の一例としてのストレージシステム１（重複除去装置１ａ及び検索装置１ｂ）によって実現されてもよい。
【００２３】
図３は重複除去技術を適用する前のオリジナルファイルを模式的に例示する図であり、図４は重複除去技術を適用した後のファイルを模式的に例示する図である。
【００２４】
重複除去技術は、複数のファイルにおいて、同一の内容のブロックが複数含まれている場合に、同一の内容のブロックを１つにまとめる技術である。
【００２５】
図３に示すように、オリジナルファイルとしてのファイルＡ及びファイルＢが記憶装置に書き込まれる例を考える。ファイルＡには青，赤，紫，黄及び緑の画像データのブロックが含まれ、ファイルＢには緑，茶，赤，紫及び黄の画像データのブロックが含まれる。また、各ブロックのデータサイズは４ＫＢ（キロバイト）であり、ファイルＡ及びファイルＢの合計データサイズは４０ＫＢである。
【００２６】
ファイルＡ及びファイルＢに重複除去を適用する場合には、各ブロックにインデックスが付与される。
【００２７】
図４に示す例において、ファイルＡの青，赤，紫，黄及び緑の画像データのブロックには、インデックス０１，０２，０３，０４及び０５がそれぞれ付与される。また、ファイルＢの緑，茶，赤，紫及び黄の画像データのブロックには、インデックス０５，０６，０２，０３及び０４がそれぞれ付与される。別言すれば、ファイルＡ及びファイルＢにお０いて、同一の色の画像データのブロックには、同一のインデックスが付与される。
【００２８】
重複除去装置１ａは、重複除去したファイルを管理するために、図４に示すような管理テーブルに関する情報を記憶する。管理テーブルには、インデックスとポインタとが対応付けられている。
【００２９】
重複除去装置１ａは、管理テーブルにおいて、インデックスを参照することにより、ポインタを介してファイルに含まれるブロックを参照することができる。図４に示す例においては、インデックス０１，０２，０３，０４，０５及び０６に対して、青，赤，紫，黄，緑及び茶の各画像データのブロックを示すポインタがそれぞれ対応づけられている。
【００３０】
図５は検索装置１ａによるインデックス作成動作を説明するフローチャートであり、図６は図５のステップＳ２の詳細な動作を説明するフローチャートである。
【００３１】
図５に示すように、検索装置１ｂは、重複除去装置１ａに対して、インデックス作成開始通知を発行する（図５のステップＳ１）。
【００３２】
検索装置１ｂは、全ファイルの全ブロックに対して、ブロックのインデックスを作成する（図５のステップＳ２）。図５のステップＳ２の動作の詳細は、図６のフローチャートに示される。
【００３３】
図６に示すように、検索装置１ｂは、重複除去装置１ａに対して、ブロックの読み出し要求を発行する（図６のステップＳ４）。
【００３４】
検索装置１ｂは、ブロックの内容に含まれる単語のリストを作成し、作成したリストとブロックのアドレスとを含むインデックスを作成して、記録する（図６のステップＳ５）。
【００３５】
図５に戻り、検索装置１ｂは、重複除去装置１ａに対して、インデックス作成終了通知を発行し（図５のステップＳ３）、処理は終了する。
【００３６】
図７は、検索装置１ｂによるインデックス作成動作のための重複除去装置１ａの動作を説明するフローチャートである。
【００３７】
重複除去装置１ａは、検索装置１ｂからの要求を受け付ける（ステップＳ６）。
【００３８】
重複除去装置１ａは、ブロックの内容を返す（ステップＳ７）。
【００３９】
図３〜図７に示した重複除去は、ファイルの検索やインデックスの作成とは独立して行なわれる。
【００４０】
例えば、図３に示したファイルＡの「赤」のブロックのインデックス作成を行なったならば、ファイルＢの「赤」のブロックのインデックス作成の結果は同じになる。そのため、ファイルＡの「赤」のブロックのインデックス作成と、ファイルＢの「赤」のブロックのインデックス作成とは、重複して行なわれなくてもよい。
【００４１】
ファイルに含まれる全てのブロックについて、インデックスを作成すると、インデックスの作成に数日以上かかる場合があるなど、インデックスの作成に長時間かかるおそれがある。
【００４２】
そこで、実施形態の一例としてのストレージシステム１（重複除去装置１ａ，検索装置１ｂ）においては、同一の内容のブロックについてのインデックスを新たに作成しない。
【００４３】
図２に示すように、重複除去装置１ａはＣＰＵ１０ａ，メモリ２０ａ及び記憶装置３０ａを備えてよく、検索装置１ｂはＣＰＵ１０ｂ，メモリ２０ｂ及び記憶装置３０ｂを備えてよい。
【００４４】
記憶装置３０ａ，３０ｂは、例示的に、データを読み書き可能に記憶する装置であり、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）が用いられてよい。重複除去装置１ａの記憶装置３０ａには、図８を用いて後述する管理テーブルに関する情報が格納されてよい。また、検索装置１ｂの記憶装置３０ｂには、各ブロックについて生成されたインデックスが格納されてよい。
【００４５】
なお、図１に示す例においてストレージシステム１は１つの記憶装置３０を備え、図２に示す例において重複除去装置１ａ及び検索装置１ｂは記憶装置３０ａ，３０ｂをそれぞれ１つずつ備えることとしたが、これに限定されるものではない。ストレージシステム１（重複除去装置１ａ及び検索装置１ｂ）に備えられる記憶装置３０（３０ａ，３０ｂ）の数は、種々変更することができる。
【００４６】
メモリ２０ａ，２０ｂは、例示的に、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む記憶装置である。メモリ２０ａ，２０ｂのＲＯＭには、ＢＩＯＳ（Basic Input/Output System）等のプログラムが書き込まれてよい。メモリ２０ａ，２０ｂのソフトウェアプログラムは、ＣＰＵ１０ａ，１０ｂのそれぞれに適宜に読み込まれて実行されてよい。また、メモリ２０ａ，２０ｂのＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【００４７】
ＣＰＵ１０ａ，１０ｂは、例示的に、種々の制御や演算を行なう処理装置であり、メモリ２０ａ，２０ｂのそれぞれに格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１０ａは管理部１１，第１通知部１２及びデータ送信部１３として機能してよく、ＣＰＵ１０ｂは割り当て部１４及び第２通知部１５として機能してよい。
【００４８】
なお、これらの管理部１１，第１通知部１２，データ送信部１３，割り当て部１４及び第２通知部１５としての機能を実現するためのプログラムは、例えばフレキシブルディスク、ＣＤ（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等）、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＨＤ  ＤＶＤ等）、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ（本実施形態ではＣＰＵ１０ａ，１０ｂ）は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【００４９】
管理部１１，第１通知部１２，データ送信部１３，割り当て部１４及び第２通知部１５としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ２０ａ，２０ｂ）に格納されたプログラムがコンピュータ（本実施形態ではＣＰＵ１０ａ，１０ｂ）によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【００５０】
管理部１１は、例示的に、ファイルに含まれるブロックと、ブロックに対応するインデックスとを関連付けて管理する。管理部１１は、検索装置１ｂによって通知されたインデックスと、通知されたインデックスに対応するブロックとを関連付けて管理してよい。また、管理部１１は、同一の内容のブロックについての重複除去後のブロックと、重複除去後のブロックに対応するインデックスとを関連付けて管理してよい。
【００５１】
図８は、実施形態の一例としての重複除去装置１ａによって管理される管理テーブルを例示する図である。
【００５２】
管理部１１は、図８に例示する管理テーブルに関する情報を例えば記憶装置３０ａの所定の領域に格納して、管理テーブルに対する情報の書き込み及び読み出しを行なってよい。
【００５３】
図８に示すように、管理テーブルは、インデックス，記録領域及びポインタのカラムを含んでよい。
【００５４】
「インデックス」には、インデックスの識別子が登録されてよい。図示する例では「インデックス」として、各エントリに“０１”〜“０６”が登録されている。
【００５５】
「記録領域」には、インデックスのキーが登録されてよい。例えば、あるブロックに「赤い花」の画像が含まれている場合には、「記録領域」には、「赤い花」という文字列が登録される（図８には不図示）。
【００５６】
「ポインタ」には、インデックスのバリューが対応づけられてよい。管理部１１は、「ポインタ」に対応づけられたバリューを参照することによって、実際のブロックを読み出すことができる。例えば、あるエントリのインデックスがファイルＡの２番目のブロックに対応する場合には、「ポインタ」には、“Ｆｉｌｅ  Ａ，２”が対応づけられてよい（図８には不図示）。
【００５７】
第１通知部１２は、例示的に、管理テーブルに登録されているインデックスを検索装置１ｂへ通知する。具体的には、第１通知部１２は、管理部１１によってインデックスが管理されているブロックについての、検索装置１ｂからの読み出し要求に応じて、管理されているブロックのインデックスを検索装置１ｂに通知してよい。
【００５８】
データ送信部１３は、例示的に、記憶装置３０ａに格納されているファイルのブロックを検索装置１ｂへ送信する。具体的には、データ送信部１３は、管理部１１によって管理されていないブロックについての、検索装置１ｂからの読み出し要求に応じて、管理されていないブロックの内容を検索装置１ｂに送信してよい。
【００５９】
割り当て部１４は、例示的に、ファイルに含まれる各ブロックについて、インデックスを作成する。具体的には、割り当て部１４は、重複除去装置１ａから送信されたブロックに対して、インデックスを割り当ててよい。
【００６０】
割り当て部１４によって作成されるインデックスには、キー及びバリューが含まれてよい。割り当て部１４は、ブロックの内容である文書や画像データに基づき、キーを作成してよい。また、割り当て部１４は、ブロックが含まれるファイルとファイル内の位置とに基づき、バリューを作成してよい。
【００６１】
割り当て部１４は、既にインデックスが割り当てられているブロックと同一の内容のブロックに対して、同一のインデックスを割り当ててよい。
【００６２】
第２通知部１５は、例示的に、作成されたインデックスを重複除去装置１ａに通知する。別言すれば、第２通知部１５は、割り当て部１４によって割り当てられたインデックスを重複除去装置１ａに通知してよい。
【００６３】
〔Ａ−２〕動作
上述の如く構成された実施形態の一例としてのストレージシステム１によるインデックス作成動作（符号Ａ１〜Ａ１５）を、図９に例示するシーケンス図に従って説明する。
【００６４】
検索装置１ｂは、重複除去装置１ａに対して、インデックス作成開始通知を発行する（符号Ａ１）。
【００６５】
重複除去装置１ａは、検索装置１ｂからのインデックス作成開始通知の受信に応じて、インデックス作成中フラグを“ＯＮ”に設定する（符号Ａ２）。これにより、検索装置１ｂによるインデックス作成中における、重複除去装置１ａに対するデータの読み込み及び書き込みが保留される。
【００６６】
重複除去装置１ａの管理部１１は、管理テーブルの記録領域をクリアする（符号Ａ３）。
【００６７】
検索装置１ｂは、インデックス作成のために、全てのファイルの全てのブロックを順に読み出す。まず、検索装置１ｂは、重複除去装置１ａに対して、ファイルＡの読み出し要求を発行する（符号Ａ４）。
【００６８】
重複除去装置１ａのデータ送信部１３は、管理テーブルの記録領域が空の場合には、検索装置１ｂに対して、ブロックの内容を返す（符号Ａ５）。
【００６９】
図９に示す例において、データ送信部１３は、検索装置１ｂに対して、「赤い花」の画像データのブロックを返す（符号Ａ６）。
【００７０】
検索装置１ｂの割り当て部１４は、重複除去装置１ａから受信したブロックについてのインデックスを作成する（符号Ａ７）。図９に示す例において、割り当て部１４は、「赤い花」の画像データのブロックについてのインデックスのキーに文字列“赤い花”を割り当て、バリューに“Ｆｉｌｅ  Ａ，２”を割り当てる。
【００７１】
検索装置１ｂの第２通知部１５は、重複除去装置１ａに対して、作成されたインデックスの内容を通知する（符号Ａ８）。
【００７２】
重複除去装置１ａの管理部１１は、検索装置１ｂから通知されたインデックスの内容を管理テーブルの記録領域に記録する（符号Ａ９）。図９に示す例において、管理部１１は、インデックス“０２”のエントリの記録領域にインデックスのキー“赤い花”を関連付ける。
【００７３】
検索装置１ｂは、重複除去装置１ａに対して、ファイルＢの読み出し要求を発行する（符号Ａ１０）。
【００７４】
重複除去装置１ａの第１通知部１２は、管理テーブルの記録領域が空でない場合には、検索装置１ｂに対して、管理テーブルの記録領域の内容を返す（符号Ａ１１）。
【００７５】
図９に示す例において、第１通知部１２は、検索装置１ｂに対して、管理テーブルの記録領域に記録されたインデックスのキー“赤い花”を返す（符号Ａ１２）。
【００７６】
検索装置１ｂの割り当て部１４は、重複除去装置１ａから受信したブロックについてのインデックスを追加する（符号Ａ１３）。図９に示す例において、割り当て部１４は、インデックスのキー“赤い花”についてのバリューに、既に割り当てられている“Ｆｉｌｅ  Ａ，２”に加えて、“Ｆｉｌｅ  Ｂ，３”を割り当てる。
【００７７】
検索装置１ｂは、重複除去装置１ａに対して、インデックス作成終了通知を発行する（符号Ａ１４）。
【００７８】
重複除去装置１ａは、検索装置１ｂからのインデックス作成終了通知の受信に応じて、インデックス作成中フラグを“ＯＦＦ”に設定し（符号Ａ１５）、処理は終了する。
【００７９】
重複除去装置１ａは、インデックス作成中フラグを“ＯＦＦ”に設定した後は、重複している領域の読み出し要求があった場合においても、検索装置１ｂに対して、ブロックの内容を返してよい。
【００８０】
次に、実施形態の一例としての検索装置１ｂによるインデックス作成動作（ステップＳ１１〜Ｓ１３）を、図１０に示すフローチャートに従って説明する。
【００８１】
検索装置１ｂは、重複除去装置１ａに対して、インデックス作成開始通知を発行する（ステップＳ１１）。
【００８２】
検索装置１ｂの割り当て部１４は、全ファイルの全ブロックに対して、ブロックのインデックスを作成する（ステップＳ１２）。ステップＳ１２の動作の詳細については、図１１を用いて後述する。
【００８３】
検索装置１ｂは、重複除去装置１ａに対して、インデックス作成終了通知を発行し（ステップＳ１３）、処理は終了する。
【００８４】
次に、図１０のステップＳ１２の詳細な動作（ステップＳ１２１〜Ｓ１２５）を、図１１に示すフローチャートに従って説明する。
【００８５】
検索装置１ｂは、重複除去装置１ａに対して、ブロックの読み出し要求を発行する（ステップＳ１２１）。
【００８６】
検索装置１ｂは、重複除去装置１ａから受信した情報に基づき、ブロックの読み出し結果が、インデックスであるかブロックの内容であるかを判定する（ステップＳ１２２）。
【００８７】
ブロックの読み出し結果がインデックスである場合には（ステップＳ１２２の“インデックス”ルート参照）、検索装置１ｂの割り当て部１４は、読み出されたインデックスのアドレスを読み出し要求に係るブロックのアドレスに変更する。そして、割り当て部１４は、変更後のインデックスとアドレスとの関係を例えば記憶装置３０ｂに記録し（ステップＳ１２３）、処理は終了する。
【００８８】
一方、ブロックの読み出し結果がブロックの内容である場合には（ステップＳ１２２の“ブロックの内容”ルート参照）、検索装置１ｂの割り当て部１４は、ブロックの内容に含まれる単語リストを作成する。そして、割り当て部１４は、作成したリストとブロックのアドレスとを含むインデックスを作成し、例えば記憶装置３０ｂに記録する（ステップＳ１２４）。
【００８９】
検索装置１ｂの割り当て部１４は、重複除去装置１ａに対して、作成したインデックスを通知し（ステップＳ１２５）、処理は終了する。
【００９０】
次に、実施形態の一例としての重複除去装置１ａによるインデックス作成動作（ステップＳ２１〜Ｓ３０）を、図１２に示すフローチャートに従って説明する。
【００９１】
重複除去装置１ａは、検索装置１ｂから情報を受信する（ステップＳ２１）。
【００９２】
重複除去装置１ａは、検索装置１ｂから受信した情報の種別を判定する（ステップＳ２２）。
【００９３】
情報の種別がインデックス作成開始通知である場合には（ステップＳ２２の“インデックス作成開始通知”ルート参照）、重複除去装置１ａは、管理テーブルの記録領域をクリアする（ステップＳ２３）。
【００９４】
重複除去装置１ａは、インデックス作成中フラグを“ＯＮ”に設定し（ステップＳ２４）、処理はステップＳ２１へ戻る。
【００９５】
ステップＳ２２において、情報の種別がブロックの読み出し要求である場合には（ステップＳ２２の“ブロックの読み出し要求”ルート参照）、重複除去装置１ａは、インデックス作成中フラグがＯＮであるかを判定する（ステップＳ２５）。
【００９６】
インデックス作成中フラグがＯＦＦである場合には（ステップＳ２５のＮｏルート参照）、処理はステップＳ２７へ移行する。
【００９７】
一方、インデックス作成中フラグがＯＮである場合には（ステップＳ２５のＹｅｓルート参照）、重複除去装置１ａは、管理テーブルの記録領域が空であるかを判定する（ステップＳ２６）。
【００９８】
管理テーブルの記録領域が空である場合には（ステップＳ２６のＹｅｓルート参照）、重複除去装置１ａのデータ送信部１３は、検索装置１ｂに対してブロックの内容を返し（ステップＳ２７）、処理はステップＳ２１へ戻る。
【００９９】
一方、管理テーブルの記録領域が空でない場合には（ステップＳ２６のＮｏルート参照）、検索装置１ｂに対して管理テーブルの記録領域の内容を返し（ステップＳ２８）、処理はステップＳ２１へ戻る。
【０１００】
ステップＳ２２において、情報の種別がインデックスである場合には（ステップＳ２２の“インデックス”ルート参照）、重複除去装置１ａの管理部１１は、管理テーブルの記録領域に受信したインデックスを登録する（ステップＳ２９）。そして、処理はステップＳ２１へ戻る。
【０１０１】
ステップＳ２２において、情報の種別がインデックス作成終了通知である場合には（ステップＳ２２の“インデックス作成終了通知”ルート参照）、重複除去装置１ａは、インデックス作成中フラグを“ＯＦＦ”に設定する（ステップＳ３０）。そして、処理はステップＳ２１へ戻る。
【０１０２】
図１３は実施形態の一例としての重複除去技術を適用する前のオリジナルファイルを模式的に例示する図であり、図１４は実施形態の一例としての重複除去装置１ａによって管理される仮想アドレス空間テーブルを例示する図である。また、図１５〜図１７は、実施形態の一例としての管理テーブルの使用例を示す図である。
【０１０３】
図１３に示す例において、ファイルＡは、２つのブロックＡ−１及びＡ−２を含む。ブロックＡ−１は“花”という単語を含んでおり、ブロックＡ−２は“鳥”という単語を含んでいる。また、ファイルＢは２つのブロックＢ−１及びＢ−２を含む。ブロックＢ−１はブロックＡ−１と同内容で“花”という単語を含んでおり、ブロックＢ−２は“風”という単語を含んでいる。
【０１０４】
図１４には、ファイルＡ及びファイルＢを重複除去装置１ａの記憶装置に書き込んだ後の仮想アドレス空間テーブルが示されている。仮想アドレス空間テーブルには、重複除去装置１ａに展開される仮想ボリューム（不図示）における仮想アドレスと、インデックスの識別子とが対応づけられている。仮想アドレス空間テーブルに関する情報は、例えば、重複除去装置１ａの記憶装置３０ａに格納されてよい。
【０１０５】
図１４に示す例において、ファイルＡの仮想アドレスの開始アドレスは０ｘ００００であり、ファイルＢの仮想アドレスの開始アドレスは０ｘ２０００である。仮想アドレスが０ｘ００００，０ｘ１０００，０ｘ２０００及び０ｘ３０００から開始する各領域には、０１，０２，０１及び０３で特定されるインデックスの識別子がそれぞれ関連付けられている。
【０１０６】
また、図１５に示すように、インデックス作成前の管理テーブルの記録領域は、不定である。
【０１０７】
次に、図１６及び図１７を参照して、検索装置１ｂがインデックスを作成していく過程を示す。
【０１０８】
まず、検索装置１ｂは、インデックス作成のためのファイルの読み込みを開始することを重複除去装置１ａに通知する。重複除去装置１ａは、検索装置１ｂからの通知に応じて、管理テーブルの記録領域をクリアした後、インデックス作成中フラグを“ＯＮ”に設定する。その後、次の（１）〜（３）で示す動作が実行される。
【０１０９】
（１）ファイルＡのブロックＡ−１のインデックス作成
検索装置１ｂは、重複除去装置１ａに対して、図１３に示したファイルＡのブロックＡ−１（図１４に示した仮想アドレス“０ｘ００００”からの領域）の読み出しを要求する。
【０１１０】
図１５に示した状態において管理テーブルのインデックスの識別子が“０１”であるエントリの記録領域は空であるため、重複除去装置１ａは、検索装置１ｂに対して、単語“花”を含むブロックＡ−１の内容を返す。
【０１１１】
検索装置１ｂは、ブロックＡ−１に対応するインデックスを作成し、重複除去装置１ａに通知する。例えば、ブロックＡ−１のインデックスのキーは“花”に設定され、バリューは“０ｘ００００”に設定される。
【０１１２】
重複除去装置１ａは、図１４に示した仮想アドレス空間テーブルを参照して、仮想アドレス“０ｘ００００”からインデックスの識別子“０１”を取得する。そして、重複除去装置１ａは、図１６に示すように、管理テーブルのインデックスの識別子が“０１”のエントリの記録領域に、インデックスのキー“花”を登録する。
【０１１３】
（２）ファイルＡのブロックＡ−２のインデックス作成
検索装置１ｂは、ブロックＡ−１のインデックス作成と同様の処理により、図１３に示したブロックＡ−２に対応するインデックスを作成する。例えば、ブロックＡ−２のインデックスのキーは“鳥”に設定され、バリューは“０ｘ１０００”に設定される。
【０１１４】
重複除去装置１ａは、図１７に示すように、管理テーブルのインデックスの識別子が“０２”のエントリの記録領域に、インデックスのキー“鳥”を設定する。
【０１１５】
（３）ファイルＢのＢ−１ブロックのインデックス作成
検索装置１ｂは、重複除去装置１ａに対して、図１３に示したファイルＢのブロックＢ−１（図１４に示した仮想アドレス“０ｘ２０００”からの領域）の読み出しを要求する。
【０１１６】
重複除去装置１ａは、図１４に示した仮想アドレス空間テーブルを参照して、仮想アドレス“０ｘ２０００”からインデックスの識別子“０１”を取得する。図１７に示した状態において管理テーブルのインデックスの識別子が“０１”であるエントリの記録領域は空でないため、重複除去装置１ａは、検索装置１ｂに対して、ブロックＢ−１のインデックス（別言すれば、管理テーブルの記録領域の内容）を返す。
【０１１７】
検索装置１ｂは、重複除去装置１ａからブロックＢ−１のインデックス“花”を受信することにより、既に作成したキーが“花”でバリューが“０ｘ００００”のインデックスに対して、ブロックＢ−１の仮想アドレスをバリューとして追加する。別言すれば、検索装置１ｂは、既に作成したキーが“花”のインデックスのバリューを“０ｘ００００，０ｘ２０００”に更新する。
【０１１８】
上述した実施形態の一例としてのストレージシステム１によれば、例えば、以下の効果を奏することができる。
【０１１９】
重複除去装置１ａの管理部１１は、ブロックとブロックに対応するインデックスとを関連付けて管理する。また、重複除去装置１ａの第１通知部１２は、管理部１１によってインデックスが管理されているブロックについての、検索装置１ｂからの読み出し要求に応じて、インデックスを検索装置１ｂに通知する。
【０１２０】
既にインデックスが作成されたブロックと同内容のブロックを読み出すことなく、全てのブロックに対してインデックスを付与できる。一般に、インデックスよりもブロックの内容の方が大きなデータサイズを有する。例えば、ブロックの内容のデータサイズは数キロバイトであるのに対して、インデックスのデータサイズは数百バイトである。重複するブロックのインデックス作成において重複するブロックの読み出しを一度限り行なうことで、大きなデータサイズを有するブロックの読み出しを省略することで、ファイルのインデックス作成を高速に行なうことができる。
【０１２１】
重複除去装置１ａのデータ送信部１３は、管理部１１によってインデックスが管理されていないブロックについての、検索装置１ｂからの読み出し要求に応じて、ブロックを検索装置１ｂに送信する。また、検索装置１ｂの割り当て部１４は、データ送信部１３から送信されたブロックに対して、インデックスを割り当てる。そして、検索装置１ｂの第２通知部１５は、割り当て部１４によって割り当てられたインデックスを重複除去装置１ａに通知する。
【０１２２】
これにより、未だインデックスが作成されていないブロックに対して、インデックスを確実に割り当てることができる。
【０１２３】
管理部１１は、ブロックと、第２通知部１５によって通知されたインデックスとを関連付けて管理する。
【０１２４】
これにより、検索装置１ｂが作成したインデックスを重複除去装置１ａに通知することにより、同一の内容のブロックについて以降にインデックスを作成する際にブロックの読み出しを省略することができる。
【０１２５】
割り当て部１４は、既にインデックスが割り当てられているブロックに加えて、未だインデックスが割り当てられていないブロックに第１通知部１２によって通知されたインデックスを割り当てる。
【０１２６】
これにより、同一の内容のブロックに対して同一のインデックスを割り当てるため、インデックスの記録容量を低減させることができ、ブロックの検索時間を低減させることができる。
【０１２７】
管理部１１は、同一の内容のブロックについての重複除去後のデータと、対応するインデックスとを関連付けて管理する。
【０１２８】
これにより、既にインデックスが作成されている複数の同一の内容のブロックに加えて同一の内容の他のブロックに対してインデックスを作成する際においても、インデックス作成を高速に行なうことができる。
【０１２９】
〔Ｂ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１３０】
〔Ｃ〕付記
（付記１）
ストレージ装置と、当該ストレージ装置が記憶するデータについての検索キーワードを作成する情報処理装置とを有するストレージシステムであって、
前記ストレージ装置は、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部と、
前記管理部によって前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する第１通知部と、
を備える、ストレージシステム。
【０１３１】
（付記２）
前記ストレージ装置は、
前記管理部によって検索キーワードが管理されていない第２のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第２のデータを前記情報処理装置に送信するデータ送信部
を更に備え、
前記情報処理装置は、
前記データ送信部から送信された前記第２のデータに対して、第２の検索キーワードを割り当てる割り当て部と、
前記割り当て部によって割り当てられた前記第２の検索キーワードを前記ストレージ装置に通知する第２通知部と、
を備える、付記１に記載のストレージシステム。
【０１３２】
（付記３）
前記管理部は、前記第２のデータと、前記第２通知部によって通知された前記第２の検索キーワードとを関連付けて管理する、
付記２に記載のストレージシステム。
【０１３３】
（付記４）
前記割り当て部は、既に前記第１の検索キーワードが割り当てられている第３のデータに加えて、前記第１のデータに前記第１通知部によって通知された前記第１の検索キーワードを割り当てる、
付記１〜３のいずれか１項に記載のストレージシステム。
【０１３４】
（付記５）
前記管理部は、同一の内容のデータについての重複除去後のデータと、当該データに対応する検索キーワードとを関連付けて管理する、
付記１〜４のいずれか１項に記載のストレージシステム。
【０１３５】
（付記６）
データについての検索キーワードを作成する情報処理装置と通信可能に接続され、前記データを記憶するストレージ装置であって、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理する管理部と、
前記管理部によって前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する通知部と、
を備える、ストレージ装置。
【０１３６】
（付記７）
前記管理部によって検索キーワードが管理されていない第２のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第２のデータを前記情報処理装置に送信するデータ送信部
を更に備える、付記６に記載のストレージ装置。
【０１３７】
（付記８）
前記管理部は、前記第２のデータと、前記情報処理装置から通知された前記第２のデータに対応する第２の検索キーワードとを関連付けて管理する、
付記７に記載のストレージ装置。
【０１３８】
（付記９）
前記管理部は、同一の内容のデータについての重複除去後のデータと、当該データに対応する検索キーワードとを関連付けて管理する、
付記６〜８のいずれか１項に記載のストレージ装置。
【０１３９】
（付記１０）
データについての検索キーワードを作成する情報処理装置と通信可能に接続され、前記データを記憶するストレージ装置に備えられるコンピュータに、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理し、
前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する、
処理を実行させるデータ管理プログラム。
【０１４０】
（付記１１）
検索キーワードが管理されていない第２のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第２のデータを前記情報処理装置に送信する、
処理を前記コンピュータに実行させる、付記１０に記載のデータ管理プログラム。
【０１４１】
（付記１２）
前記第２のデータと、前記情報処理装置から通知された前記第２のデータに対応する第２の検索キーワードとを関連付けて管理する、
処理を前記コンピュータに実行させる、付記１１に記載のデータ管理プログラム。
【０１４２】
（付記１３）
同一の内容のデータについての重複除去後のデータと、当該データに対応する検索キーワードとを関連付けて管理する、
処理を前記コンピュータに実行させる、付記１０〜１２のいずれか１項に記載のデータ管理プログラム。
【０１４３】
（付記１４）
ストレージ装置と、当該ストレージ装置が記憶するデータについての検索キーワードを作成する情報処理装置とを有するストレージシステムにおけるデータ管理方法であって、
前記ストレージ装置は、
第１のデータと、当該第１のデータに対応する第１の検索キーワードとを関連付けて管理し、
前記第１の検索キーワードが管理されている前記第１のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第１の検索キーワードを前記情報処理装置に通知する、
データ管理方法。
【０１４４】
（付記１５）
前記ストレージ装置は、
検索キーワードが管理されていない第２のデータについての、前記情報処理装置からの読み出し要求に応じて、前記第２のデータを前記情報処理装置に送信し、
前記情報処理装置は、
前記送信された前記第２のデータに対して、第２の検索キーワードを割り当て、
前記割り当てられた前記第２の検索キーワードを前記ストレージ装置に通知する、
付記１４に記載のデータ管理方法。
【０１４５】
（付記１６）
前記ストレージ装置は、
前記第２のデータと、前記通知された前記第２の検索キーワードとを関連付けて管理する、
付記１５に記載のデータ管理方法。
【０１４６】
（付記１７）
前記情報処理装置は、
既に前記第１の検索キーワードが割り当てられている第３のデータに加えて、前記第１のデータに前記通知された前記第１の検索キーワードを割り当てる、
付記１４〜１６のいずれか１項に記載のデータ管理方法。
【０１４７】
（付記１８）
前記ストレージ装置は、
同一の内容のデータについての重複除去後のデータと、当該データに対応する検索キーワードとを関連付けて管理する、
付記１４〜１７のいずれか１項に記載のデータ管理方法。
【符号の説明】
【０１４８】
１      ストレージシステム
１ａ    重複除去装置
１ｂ    検索装置
１０    ＣＰＵ
１０ａ  ＣＰＵ
１０ｂ  ＣＰＵ
１１    管理部
１２    第１通知部
１３    データ送信部
１４    割り当て部
１５    第２通知部
２０ａ  メモリ
２０ｂ  メモリ
３０ａ  記憶装置
３０ｂ  記憶装置
４      ネットワーク
【図１】
2017123071.tif 000003
【図２】
2017123071.tif 000004
【図３】
2017123071.tif 000005
【図４】
2017123071.tif 000006
【図５】
2017123071.tif 000007
【図６】
2017123071.tif 000008
【図７】
2017123071.tif 000009
【図８】
2017123071.tif 000010
【図９】
2017123071.tif 000011
【図１０】
2017123071.tif 000012
【図１１】
2017123071.tif 000013
【図１２】
2017123071.tif 000014
【図１３】
2017123071.tif 000015
【図１４】
2017123071.tif 000016
【図１５】
2017123071.tif 000017
【図１６】
2017123071.tif 000018
【図１７】
2017123071.tif 000019