(57)【要約】【課題】ストレージシステムにおいて特別な検索装置を要することなくデータ検索を実現する。【解決手段】ファイルシステム１２と、検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信する受信部１１と、ファイルアクセス要求に含まれる検索文字列を用いて、記憶装置に格納されるデータの検索を行なう検索処理部１４と、検索処理部１４による検索結果を、第１のディレクトリのファイルリストとして、ファイルアクセス要求の送信元に対して応答する応答処理部１１とを備える。【選択図】図２
2017130010.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を制御するストレージ制御装置であって、
前記記憶装置に格納されるデータを管理するファイルシステムと、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信する受信部と、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行なう検索処理部と、
前記検索処理部による検索結果を、前記第１のディレクトリのファイルリストとして、前記ファイルアクセス要求の送信元に対して応答する応答処理部と
を備えることを特徴とする、ストレージ制御装置。
【請求項２】
前記識別情報が、前記記憶装置において存在しない架空のディレクトリのディレクトリ名であることを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
記憶装置を制御するストレージ制御装置のプロセッサに、
前記記憶装置に格納されるデータを管理し、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信し、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行ない、
検索結果を、前記第１のディレクトリのファイルリストとして、前記ファイルアクセス要求の送信元に対して応答する
処理を実行させることを特徴とする、ストレージ制御プログラム。
【請求項４】
ストレージ装置と、入力装置とを備えるストレージシステムであって、
前記入力装置が、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を作成する作成部と、
作成された前記ファイルアクセス要求を前記ストレージ装置に送信する送信部とを備え、
前記ストレージ装置が、
データを格納する記憶装置と、  
前記記憶装置に格納されるデータを管理するファイルシステムと、
前記ファイルアクセス要求を受信する受信部と、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行なう検索処理部と、
前記検索処理部による検索結果を、前記第１のディレクトリのファイルリストとして、前記入力装置に対して応答する応答処理部と
を備えることを特徴とする、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラムおよびストレージシステムに関する。
【背景技術】
【０００２】
ストレージ装置として、ＮＡＳ（Network Attached Storage）装置が知られている。ＮＡＳ装置においては、記憶装置に記録されているデータを管理するファイルシステムが備えられている。
すなわち、ＮＡＳ装置においては、このファイルシステムの機能を用いて、記憶装置にファイルやフォルダ（ディレクトリ）の作成や、データの移動，削除等が行なわれる。
【０００３】
このような従来のＮＡＳ装置においてファイルシステムにより管理されているデータに対して検索を行なうためには、ＮＡＳ装置の他に検索装置を備え、この検索装置を用いて行なう。
検索装置は、例えばインデックス型の全文検索システムである。インデックス型の検索装置は、あらかじめ検索対象となる文書群を走査しておき、高速な検索が可能になるような索引データ（インデックス）を準備する。
【０００４】
そして、ユーザは、クライアント装置から、例えばＷｅｂベース等の専用インタフェースを介して、検索装置に対して検索要求を発行する。検索要求を受けた検索装置は、インデックスにアクセスすることで検索を行ない、検索結果として例えばファイル名等をクライアント装置に応答する。
ユーザは、検索装置から応答された検索結果に基づき、ＣＩＦＳ（Common Internet File System）／ＮＦＳ（Network File System）等のファイルアクセスプロトコルを用いてストレージ装置にアクセスすることで、所望するデータにアクセスする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２２７０２号公報
【特許文献２】特表２００５−５３９３１５号公報
【特許文献３】特開２００３−１３１９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＮＡＳ装置の検索システムにおいては、ＮＡＳ装置の他に検索装置を備え、さらに、クライアント装置からの検索装置に対する検索を実現するために、例えば、ＨＴＴＰ（HyperText Transfer Protocol）のプロトコルサポートやＷｅｂブラウザ等の、検索装置に対するアクセスを実現するための機能やインタフェースを備える必要がある。これにより、装置コストが増大する。
【０００７】
また、ユーザにおいては、検索装置に対して検索処理を行なった後に、この検索結果を用いて、ＮＡＳ装置に対してファイルアクセスプロトコルを用いて実際のファイルにアクセスする必要があり、煩雑である。
１つの側面では、本発明は、ストレージシステムにおいて、特別な検索装置を要することなくデータ検索を実現できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
このため、このストレージ制御装置は、記憶装置を制御するストレージ制御装置であって、前記記憶装置に格納されるデータを管理するファイルシステムと、検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信する受信部と、前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行なう検索処理部と、前記検索処理部による検索結果を、前記第１のディレクトリのファイルリストとして、前記ファイルアクセス要求の送信元に対して応答する応答処理部とを備える。
【発明の効果】
【０００９】
一実施形態によれば、ストレージシステムにおいて、特別な検索装置を要することなくデータ検索を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としてのストレージ装置を備えるストレージシステムのハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムの機能構成を示す図である。
【図３】実施形態の一例としてのストレージシステムにおけるファイルリストを例示する図である。
【図４】実施形態の一例としてのストレージシステムにおけるファイルリストを例示する図である。
【図５】実施形態の一例としてのストレージシステムにおける処理を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本ストレージ制御装置、ストレージ制御プログラムおよびストレージシステムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
（Ａ）構成
図１は実施形態の一例としてのストレージシステム４のハードウェア構成を模式的に示す図、図２はその機能構成を示す図である。
図１に例示するストレージシステム４においては、ストレージ装置１と１つ以上（図１に示す例では１つ）のクライアント装置２とが通信線を介して接続されている。
【００１３】
ストレージ装置１は、ＮＡＳ装置であって、ドライブエンクロージャ（ＤＥ：Drive Enclosure）３０に格納された記憶装置３１を仮想化して、仮想ストレージ環境を形成する。そしてストレージ装置１は、仮想ボリューム（ＬＵＮ：Logical Unit Number）を上位装置であるクライアント装置２に提供する。以下、仮想ボリュームを単にボリュームという。
【００１４】
本実施形態においては、ポート１０１とクライアント装置２とは、ＬＡＮ（Local Area Network）によって接続されている。すなわち、クライアント装置２とストレージ装置１とはイーサネット（登録商標）ＬＡＮ上のＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）ネットワークで通信する。
（Ａ−１）クライアント装置
クライアント装置２は、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置１との間において、ＮＡＳのコマンドを送受信する。
【００１５】
クライアント装置２は、図示しないＣＰＵ（Central Processing Unit）やメモリを備え、ＣＰＵがメモリ等に格納されたＯＳ（Operating System）やプログラムを実行することで、種々の機能を実行する。
また、クライアント装置２は、図示しないキーボードやマウス等の入力機器を備え、ユーザはこの入力機器を用いて種々の入力操作を行なう。
【００１６】
クライアント装置２は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
そして、ストレージ装置１は、クライアント装置２からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージ（記憶装置３１）に対して、データの読み出しや書き込み等の処理を行なう。なお、クライアント装置２からの入出力要求のことをＩＯコマンドという場合がある。
【００１７】
また、ユーザはクライアント装置２の入力機器から検索文字列を入力することで、ストレージ装置１において管理されているデータに対する検索を行なうことができる。
検索文字列の入力等は、例えば、クライアント装置２の図示しないディスプレイに表示されるＧＵＩ（Graphical User Interface）等を介して行なわれる。
このため、クライアント装置２のＣＰＵは、制御プログラムを実行することにより、図２に示すように、検索リクエスト作成部２１およびファイルアクセス要求送信部２２としての機能を実現する。
【００１８】
なお、これらの検索リクエスト作成部２１およびファイルアクセス要求送信部２２としての機能を実現するためのプログラム（制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００１９】
検索リクエスト作成部２１およびファイルアクセス要求送信部２２としての機能を実現する際には、内部記憶装置（本実施形態ではクライアント装置２のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではクライアント装置２のＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００２０】
検索リクエスト作成部２１は、ストレージ装置１のボリュームに格納されているデータに対する検索を行なうための検索リクエストを作成する。
検索リクエストは、ストレージ装置１における特定のディレクトリに対するリード要求としてのフォーマットを有する。以下、この検索リクエストに用いられる特定のディレクトリを特殊ディレクトリという場合があり、また、そのディレクトリ名を、特殊ディレクトリ名という場合がある。
【００２１】
検索リクエストは、この特殊ディレクトリへのアクセスパス（検索用アクセスパス）を備える。
ここで、特殊ディレクトリは、ストレージ装置１においては実際に存在しない架空のディレクトリである。
本実施形態においては、一般的にディレクトリ名に使用されることの少ない“~”で始まる文字列を特殊ディレクトリのディレクトリ名として用いる。本実施形態においては、ディレクトリ名“~search”を特殊ディレクトリのディレクトリ名として用いる。
【００２２】
すなわち、検索用アクセスパスとして、例えば、ディレクトリ“/~search/”と、このディレクトリ“/~search/”の下層に位置し、検索文字列をディレクトリ名とするディレクトリ“/[検索文字列]”とを階層的に組み合わせた検索用アクセスパス“/~search/[検索文字列]/”を用いる例を示す。
例えば、ユーザが、ストレージ装置１のボリューム（ＮＡＳボリューム）において文字列“123456”を検索する場合について説明する。ユーザは、クライアント装置２の入力機器を用いて、検索文字列として“123456”を入力する。
【００２３】
検索リクエスト作成部２１は、架空のディレクトリ“/~search/”の下層に位置し、入力された検索文字列“123456”をディレクトリ名とする架空のディレクトリ“/123456/”へのアクセスパス“/~search/123456/”を検索用アクセスパスとして作成する。
ディレクトリ“/search/”は、ストレージ装置１に実際には存在しないものであるので、その下層のディレクトリ“/1234546/”もストレージ装置１に実際には存在しない。
【００２４】
そして、検索リクエスト作成部２１は、この作成した検索用アクセスパス“/~search/123456/”と、リードを意味するコマンド（リードコマンド）とを組み合わせることで、検索用アクセスパス“/~search/123456/”で示される架空のディレクトリに対するリードリクエスト（ファイルアクセス要求）を作成する。
以下、このようにして作成された架空のディレクトリに対するリードリクエストを検索用アクセスリクエストという場合がある。
【００２５】
すなわち、検索リクエスト作成部２１は、検索リクエストを示す識別情報（特殊ディレクトリ）をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を作成する作成部として機能する。
上述の如く、検索用アクセスリクエストは、架空のディレクトリ“/~search/”の下層のディレクトリに対するアクセス要求（リードリクエスト）の形式を有する。
【００２６】
そして、このようにして作成された検索用アクセスリクエストは、ストレージ装置１において、検索クエリとして扱われる。
また、検索文字列を複数（ｎ個）用いる場合には、検索リクエスト作成部２１は、例えば、これらの複数の検索文字列１〜ｎをネスト（入れ子）構造とした検索用アクセスパスを用いる。すなわち、検索リクエスト作成部２１は、検索用アクセスパスとして、“/~search/[検索文字列1]/ [検索文字列2]/ ・・・/[検索文字列n]/”を用いる。
【００２７】
例えば、文字列“議事録”と、文字列“201511”とを有するファイル検索を行なう場合には、“/~search/議事録/ 201511/”という検索用アクセスパスが用いられる。
さらに、クライアント装置２は、ストレージ装置１のボリュームの特定のデータ（ファイル）に対してリードやライトのデータアクセスを行なう場合には、このデータを特定する情報とＩＯコマンドとを含むファイルアクセス要求を作成する。
【００２８】
ファイルアクセス要求送信部２２は、クライアント装置２において作成されたファイルアクセス要求を、ＮＦＳやＣＩＦＳのプロトコルに従って、ストレージ装置１に送信する。すなわち、ファイルアクセス要求送信部２２は、検索リクエスト作成部２１が作成した検索リクエストをストレージ装置１に対してＮＡＳのファイルアクセス要求として送信する。
従って、ファイルアクセス要求送信部２２は、検索リクエスト作成部２１によって作成された検索リクエスト（ファイルアクセス要求）をストレージ装置１に送信する送信部として機能する。
【００２９】
（Ａ−２）ストレージ装置
ストレージ装置１は、図１に示すように、１つ以上（本実施形態では１つ）のＣＭ１００及び１つ以上（図１に示す例では１つ）のドライブエンクロージャ（ＤＥ）３０をそなえる。
ドライブエンクロージャ３０には、１以上（図１に示す例では４つ）の記憶装置（物理ディスク）３１が搭載され、これらの記憶装置３１の記憶領域（実ボリューム，実ストレージ）を、本ストレージ装置１に対して提供する。
【００３０】
記憶装置３１は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）、ＳＳＤ（Solid State Drive）等の記憶装置であって、種々のデータを格納するものである。
ドライブエンクロージャ３０は、例えば複数段のスロット（図示省略）を備えて構成され、これらのスロットに記憶装置３１を挿入することにより、実ボリューム容量を随時変更することができる。
【００３１】
また、ドライブエンクロージャ３０に備えられた複数の記憶装置３１を用いてＲＡＩＤ
（Redundant Arrays of Inexpensive Disks）が構成されている。
ドライブエンクロージャ３０は、ＣＭ１００のデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とそれぞれ接続されている。
コントローラエンクロージャ４０は、１以上（図１に示す例では１つ）のＣＭ１００を備える。
【００３２】
ＣＭ１００は、ストレージ装置１内の動作を制御するストレージ制御装置であり、クライアント装置２から送信されるＩＯコマンドに従って、ドライブエンクロージャ３０の記憶装置３１へのアクセス制御等、各種制御を行なう。また、ＣＭ１００は、クライアント装置２から送信される検索リクエストに応じて、記憶装置３１の記憶領域に格納されたデータに対して、検索リクエストに含まれる検索文字列を検索キーとする検索処理を実行する。なお、このＣＭ１００による検索処理の詳細については後述する。
【００３３】
ＣＭ１００はポート１０１を介してクライアント装置２に接続される。そして、ＣＭ１００は、クライアント装置２から送信されるリード／ライト等のＩＯコマンドを受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。
ＣＭ１００は、図１に示すように、ポート１０１と複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ１１０，メモリ１０６，ＳＳＤ１０７及びＩＯＣ（Input Output Controller）１０８をそなえる。
【００３４】
ポート１０１は、クライアント装置２等から送信されたデータを受信したり、ＣＭ１００から出力するデータをクライアント装置２等に送信する。すなわち、ポート１０１は、クライアント装置等の外部装置との間でのデータの入出力（ＩＯ）を制御する。
ポート１０１は、ＮＡＳを介してクライアント装置２と通信可能に接続され、例えば、ＬＡＮインタフェースのＮＩＣ（Network Interface Card）ポートである。ＣＭ１００は、このポート１０１により通信線を介してクライアント装置２等と接続され、ＩＯコマンドの受信やデータの送受信等を行なう。
【００３５】
なお、図１に示す例においてはＣＭ１００に１つのポート１０１が備えられているが、これに限定されるものではなく、２つ以上のポートを備えてもよい。
ＤＡ１０３は、ドライブエンクロージャ３０や記憶装置３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３にはドライブエンクロージャ３０の記憶装置３１が接続され、ＣＭ１００は、クライアント装置２から受信したＩＯコマンドに基づき、これらの記憶装置３１に対するアクセス制御を行なう。
【００３６】
ＣＭ１００は、これらのＤＡ１０３を介して、記憶装置３１に対するデータの書き込みや読み出しを行なう。又、図１に示す例においては、ＣＭ１００に１つのＤＡ１０３がそなえられている。そして、ＣＭ１００において、ＤＡ１０３にドライブエンクロージャ３０が接続されている。これにより、ドライブエンクロージャ３０の記憶装置３１には、ＣＭ１００からデータの書き込みや読み出しを行なうことができる。
【００３７】
ＳＳＤ１０７は、ＣＰＵ１１０が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、クライアント装置２から受信したデータや、クライアント装置２に対して送信するデータを一時的に格納する。メモリ領域には、ＣＰＵ１１０がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
【００３８】
例えば、メモリ１０６には、後述するＲＡＩＤ管理部１３によるＲＡＩＤ制御に用いられる、仮／実ボリューム変換テーブルやディスク構成情報，ＲＡＩＤ構成テーブル等が格納される。なお、これらはＲＡＩＤを管理するための情報として既知のものであり、その詳細な説明は省略する。
また、メモリ１０６には、後述するインデックス管理部１５によって管理されるインデックス情報や、ファイルシステム処理部１２によって用いられる、記憶装置３１における各データ（ファイル）の格納を管理する情報等も格納される。
【００３９】
ＩＯＣ１０８は、ＣＭ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１１０を介することなく転送させるＤＭＡ転送（Direct Memory Access）を実現する。
ＣＰＵ１１０は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１１０は、ＳＳＤ１０７等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００４０】
図２に示すように、ストレージ装置１は、プロトコル処理部１１，ファイルシステム処理部１２，ＲＡＩＤ管理部１３，検索結果応答処理部１４，インデックス管理部１５およびインデックス作成処理部１６としての機能を有する。
そして、ＣＭ１００のＣＰＵ１１０が、プログラム（ストレージ制御プログラム）を実行することにより、これらのプロトコル処理部１１，ファイルシステム処理部１２，ＲＡＩＤ管理部１３，検索結果応答処理部１４，インデックス管理部１５およびインデックス作成処理部１６として機能する。
【００４１】
なお、これらのプロトコル処理部１１，ファイルシステム処理部１２，ＲＡＩＤ管理部１３，検索結果応答処理部１４，インデックス管理部１５およびインデックス作成処理部１６としての機能を実現するためのプログラム（ストレージ制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４２】
プロトコル処理部１１，ファイルシステム処理部１２，ＲＡＩＤ管理部１３，検索結果応答処理部１４，インデックス管理部１５およびインデックス作成処理部１６としての機能を実現する際には、内部記憶装置（本実施形態ではＳＳＤ１０７やメモリ１０６）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４３】
ＲＡＩＤ管理部１３は、複数の記憶装置３１を用いてＲＡＩＤを実現し、ＲＡＩＤを構成する記憶装置３１の制御を行なう。すなわち、ＲＡＩＤ管理部１３は、複数の記憶装置３１を用いた冗長構成を設定する。
また、ＲＡＩＤ管理部１３は、記憶装置３１を用いてＮＡＳボリュームの設定・管理を行ない、クライアント装置２はこの設定されたＮＡＳボリュームに対してデータアクセスを行なう。
【００４４】
なお、ＲＡＩＤ管理部１３によるＲＡＩＤやＮＡＳボリュームの作成や管理は既知の手法で実現することができ、その説明は省略する。
ファイルシステム処理部１２は、ＮＡＳボリュームに格納されたデータを管理し（ファイル管理）、クライアント装置２等から送信されるファイルアクセス要求を処理して、その処理結果を応答する。
【００４５】
例えば、クライアント装置２からファイルアクセス要求としてデータのリード要求が送信された場合には、ＮＡＳボリュームからこのリード要求に対応するデータを読み出し、応答する。また、クライアント装置２からファイルアクセス要求としてデータのライト要求が送信された場合には、ＮＡＳボリュームに対してこのライト要求に従ってデータの書き込みを行ない、処理結果を応答する。
【００４６】
プロトコル処理部１１は、クライアント装置２から送信されるファイルアクセス要求等をファイルアクセスプロトコルに従って処理する。ファイルアクセスプロトコルは、例えば、ＣＩＦＳやＮＦＳ等のファイル共有プロトコルである。
プロトコル処理部１１は、クライアント装置２からＣＩＦＳやＮＦＳ等のプロトコルに従ったファイルアクセス要求（例えば、リード要求やライト要求等のＩＯコマンド）を受信すると、このファイルアクセス要求をファイルシステム処理部１２に通知する。
【００４７】
また、プロトコル処理部１１は、ファイルシステム処理部１２から応答される応答データを、ファイルアクセス要求元のクライアント装置２に送信する。
さらに、プロトコル処理部１１は、クライアント装置２から、検索リクエストを受信すると、その検索リクエストを検索結果応答処理部１４に送信する。
本ストレージシステムにおいては、上述の如く、クライアント装置２からの検索リクエストにおいて、検索用アクセスパスに、特殊ディレクトリのディレクトリ名（/~search/）と検索文字列（[検索文字列]）とが含まれている。
【００４８】
検索用アクセスパスに、特殊ディレクトリ（第１のディレクトリ）のディレクトリ名（/~search/）が含まれていることで、そのファイルアクセス要求が検索リクエストであると判断することができる。すなわち、検索用アクセスパスにおける特殊ディレクトリ名は、そのファイルアクセス要求が検索リクエストであることを示す識別情報として機能する。
【００４９】
特殊ディレクトリは、前述の如くストレージ装置１において実際には存在しないものであるので、本来であれば、ファイルシステム処理部１２等による処理時に、不存在のディレクトリに対するファイルアクセス要求であることを理由にエラー処理が発生する。
しかし、プロトコル処理部１１は、特殊ディレクトリに対するファイルアクセス要求を受信すると、この特殊ディレクトリに対するファイルアクセス要求を、ファイルシステム処理部１２の代わりに検索結果応答処理部１４に処理させる。すなわち、プロトコル処理部１１は特殊ディレクトリに対するファイルアクセス要求をファイルシステム処理部１２に処理させることを阻止する。これにより、ストレージ装置１において、特殊ディレクトリに対するファイルアクセス要求を原因とするエラー処理の発生が抑止される。
【００５０】
また、この特殊ディレクトリの下層のディレクトリ（第２のディレクトリ）のディレクトリ名として検索文字列が用いられているので、検索結果応答処理部１４は、このディレクトリ名を確認することで検索文字列を取得することができる。
すなわち、クライアント装置２からストレージ装置１に対して、検索用アクセスパスを含む検索リクエストをファイルアクセス要求として送信することで、既存のＮＡＳファイルシステムを用いて検索要求を送信することができる。
【００５１】
そして、プロトコル処理部１１は、特殊ディレクトリと、検索文字列とを含むアクセスパス（検索用アクセスパス）を有する検索リクエスト（ファイルアクセス要求）を受信する受信部として機能する。
インデックス作成処理部１６は、ＮＡＳボリュームに格納されているデータについて、予めインデックス化を行ない、検索用の見出し（インデックス）を設定する。なお、データのインデックス化は既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
【００５２】
インデックス管理部１５は、インデックス作成処理部１６によって設定されたインデックスを管理する。インデックス管理部１５は、設定したインデックスを、その抽出元のデータのファイル名や格納位置等と関連付けて管理する。
インデックス管理部１５は、インデックス作成処理部１６によって設定された全てのインデックスを文字列検索可能な状態で、メモリ１０６やＳＳＤ１０７，記憶装置３１等の記憶領域に格納する。
【００５３】
検索結果応答処理部１４は、プロトコル処理部１１から通知された、検索リクエストに含まれる検索用アクセスパスから、検索用文字列を抽出する。
検索結果応答処理部１４は、抽出した検索文字列について、インデックス管理部１５によって管理されているインデックスを対象に文字列検索を行なう。すなわち、検索結果応答処理部１４は、検索文字列を用いてＮＡＳボリュームのデータのインデックス検索を行なう。
【００５４】
そして、検索結果応答処理部１４は、インデックス検索の結果をプロトコル処理部１１に応答する。
また、検索結果応答処理部１４は、検索結果を用いて、検索リクエストに含まれる特殊ディレクトリ内のファイルリスト（ディレクトリリスト）を作成し、この作成したファイルリストをプロトコル処理部１１に応答する。
【００５５】
検索結果応答処理部１４は、クライアント装置２から送信された検索用アクセスパスに検索結果のファイル名を追加することで、検索結果を応答するためのファイルリストを作成する。
例えば、クライアント装置２から検索用アクセスパス“/~search/123456/”を含む検索リクエストが送信された場合について説明する。
【００５６】
検索結果応答処理部１４は検索文字列“123456”についてのインデックス検索を行ない、その結果、ファイル名“文書.txt”が得られたものとする。
この場合、検索結果応答処理部１４は、クライアント装置２から送信された検索用アクセスパス“/~search/123456/”に、検索結果である“文書.txt”を付加することで、ファイルリスト“/~search/123456/文書.txt”を作成する。
【００５７】
このファイルリスト“/~search/123456/文書.txt”は、ディレクトリ“/~search/123456/”内のファイルリストとしてのフォーマットを有する。
そして、検索結果応答処理部１４は、この作成したファイルリスト“/~search/123456/文書.txt”を、プロトコル処理部１１に応答し、プロトコル処理部１１は、このファイルリストを検索リクエストの送信元であるクライアント装置２に送信する。
【００５８】
このファイルリストを受信したクライアント装置２においては、このファイルリストにファイル名が含まれているファイル（データ）、すなわち、ファイルリスト上のファイルに直接アクセスすることができる。
クライアント装置２からの“/~search/[検索文字列]/文書.txt ”というファイルに対するアクセスは、ストレージ装置１において、ファイルシステム処理部１２が、検索結果のファイルリスト上の“文書.txt”に対するアクセスとして処理する。
【００５９】
図３および図４は実施形態の一例としてのストレージシステムにおけるファイルリストを例示する図である。
図３に示すファイルリストは、検索用アクセスパス“/~search/議事録/201511/”に対して、プロトコル処理部１１からクライアント装置２に対して応答されるファイルリストを例示する。
【００６０】
この図３に示す例においては、検索結果として、△△設計会議20151120.doc，××説明会議事20151108.txt，○○第二回検討会.pdfおよび○○第三回検討会.pdfがファイルリストとして示されている。
また、図４に示すファイルリストは、検索用アクセスパス“/~search/議事録/201511/○○/”に対して、プロトコル処理部１１からクライアント装置２に対して応答されるファイルリストを例示する。
【００６１】
すなわち、この図４に示す例においては、図３についての検索用アクセスパス“/~search/議事録/201511/”に、検索文字列“○○”が検索条件として追加されたものであり、検索結果として、○○第二回検討会.pdfおよび○○第三回検討会.pdfがファイルリストとして示されている。
プロトコル処理部１１は、クライアント装置２からのreaddir callに対して、図３，図４に例示するようなファイルリストを応答する。
【００６２】
検索結果としてファイルリストを受信したクライアント装置２においては、応答されたファイルリストのファイル（例えば、○○第二検討会.pdf）をオープンすることで、当該ファイルに対する処理を実行することができる。
なお、クライアント装置２においては、応答されたファイルリストから処理対象のファイルを指定することで、ファイルの実際の格納位置を意識することなく処理することができる。
【００６３】
上述の如く、検索結果応答処理部１４は、クライアント装置２に対して、検索結果を、検索リクエストに含まれる特殊ディレクトリ内のファイルリストとして応答することで、既存のＮＡＳファイルシステムにおいて検索結果の応答を実現させることができる。
なお、検索結果のファイルリストは常に動的に生成される。すなわち、インデックス作成処理部１６によるインデックスの更新処理に伴い検索結果は変化する。
【００６４】
また、“文書.txt”という一般的なファイル名を有するファイルは、ストレージ装置１内に複数存在する可能性があり、単一の検索文字列に対して、同一のファイル名を有する複数のドキュメントが該当する可能性がある。
このように、検索の結果、同一のファイル名を有する複数のデータが得られる場合に、検索結果応答処理部１４は、対象ファイルを一時的に付与した別名としてクライアント装置２に提示してもよい。
【００６５】
また、検索結果応答処理部１４は、検索結果を、対象ファイルに対するシンボリックリンク、あるいはショートカットとして通知してもよい。例えば、クライアント装置２がＮＦＳクライアントである場合には、検索結果応答処理部１４はシンボリックリンクを用いて応答してもよい。
さらに、検索結果応答処理部１４は、クライアント装置２に応じて応答方法を変更してもよい。例えば、クライアント装置２毎に異なる特殊ディレクトリ名（上記例では“/~search/”）を用意し、これらの特殊ディレクトリ名を使い分けることで、複数のクライアント装置２に対する応答を切り替えることができる。
【００６６】
また、検索結果応答処理部１４は、ファイルリストに含まれるファイル数は予め設定した一定の数に制限する。
例えば、検索結果応答処理部１４は、検索結果として応答するファイル数が所定の閾値よりも多い場合に、検索結果の上位から閾値数分の応答を行なう。なお、検索結果応答処理部１４は、検索結果として応答するファイル数が所定の閾値よりも多い場合に含まれるファイル数が閾値以下となるように複数のファイルリストに分割してクライアント装置２に応答してもよい。
【００６７】
このように、検索結果応答処理部１４がファイルリストに含まれるファイル数は予め設定した一定の数に制限することにより、検索結果に膨大な数のファイルが含まれる場合においても処理に必要なリソースを抑えることができる。
（Ｂ）動作
クライアント装置２において、ユーザは、ストレージ装置１のボリュームのデータ（ファイル）に対して特定の文字列を用いた検索を行なう場合には、ディスプレイに表示されたＧＵＩ（入力画面）において、キーボード等を用いて検索文字列を入力する。
【００６８】
検索リクエスト作成部２１は、入力された検索文字列を特殊ディレクトリのディレクトリ名“~search”と組み合わせて、検索用アクセスパス “/~search/[検索文字列]/”を作成する。
そして、検索リクエスト作成部２１は、この作成した検索用アクセスパス“/~search/[検索文字列]/”と、リードコマンド（ファイルアクセスコマンド）とを組み合わせて、この架空の特殊ディレクトリ“/~search/”以下の架空のディレクトリ“/~search/[検索文字列]/”に対するリードリクエスト（検索用アクセスリクエスト）を作成する。
【００６９】
クライアント装置２において、ファイルアクセス要求送信部２２は、検索リクエスト作成部２１が作成した検索用アクセスリクエストを、ファイルアクセス要求として、ＮＦＳやＣＩＦＳのプロトコルに従ってストレージ装置１に送信する。
一方、ユーザがストレージ装置１のボリュームの特定のデータ（ファイル）に対してリードやライト等のファイルアクセスを行なう場合には、ユーザは、ディスプレイに表示されたＧＵＩ（入力画面）において、アクセス対象のデータを特定する情報（例えばファイル名）と、このデータに対して行なうＩＯコマンドとを入力する。
【００７０】
クライアント装置２において、ファイルアクセス要求送信部２２は、入力されたファイル名やＩＯコマンド等を、ファイルアクセス要求としてＮＦＳやＣＩＦＳのプロトコルに従ってストレージ装置１に送信する。
次に、上述の如く構成された実施形態の一例としてのストレージシステム４における処理を、図５に示すフローチャート（ステップＳ１〜Ｓ９）に従って説明する。
【００７１】
ステップＳ１において、プロトコル処理部１１は、クライアント装置２から送信されたファイルアクセス要求を受信する。
ステップＳ２において、プロトコル処理部１１は、受信したファイルアクセス要求が、ディレクトリ“/~search/”以下のディレクトリに対するアクセス要求であるかを確認する。すなわち、プロトコル処理部１１は、受信したファイルアクセス要求が検索用アクセスリクエストであるかを確認する。
【００７２】
確認の結果、受信したファイルアクセス要求が、特殊ディレクトリ“/~search/”以下のディレクトリに対するアクセス要求である場合には（ステップＳ２のＹＥＳルート参照）、ステップＳ３に移行する。
ステップＳ３において、プロトコル処理部１１は、受信した検索リクエストを検索結果応答処理部１４に通知して、この検索リクエストを処理させる。
【００７３】
プロトコル処理部１１から検索処理の実行を要求された検索結果応答処理部１４は、ステップＳ４において、検索リクエストに含まれる検索用アクセスパスから検索文字列を抽出する。検索結果応答処理部１４は、この抽出した検索文字列を検索キーとして用いて、インデックス管理部１５によって管理されているインデックスを対象に文字列検索を行なう。
【００７４】
ステップＳ５において、検索結果応答処理部１４は、ステップＳ４において行なった検索キーによるインデックス検索の結果をリストとして構成することでファイルリストを生成する。
ステップＳ６において、検索結果応答処理部１４は、ステップＳ５において生成したファイルリストを検索結果としてプロトコル処理部１１に応答する。
【００７５】
ステップＳ７において、プロトコル処理部１１は、検索結果の出力方法を確認する。すなわち、プロトコル処理部１１は検索結果をディレクトリリストとして表示させるかを確認する。
例えば、プロトコル処理部１１は、クライアントからのファイルアクセス要求が、ディレクトリを読み込むためのライブラリコールであるかを確認する。
【００７６】
検索結果の出力方法は、クライアント装置２からストレージ装置１に対して、予め、もしくは検索リクエストとともに通知してもよく、また、ユーザに対して、クライアント装置２から入力させてもよく、種々変形して実施することができる。
確認の結果、検索結果をディレクトリリストとして表示させる場合には（ステップＳ７のＹＥＳルート参照）、ステップＳ８に移行する。
【００７７】
ステップＳ８において、プロトコル処理部１１は、検索リクエスト（ファイルアクセス要求）の送信元のクライアント装置２に対して、ディレクトリリストとして作成された検索結果を送信（応答）する。
クライアントからのファイルアクセス要求が、“~search/[検索文字列/”の形式を有するreaddir call であれば、プロトコル処理部１１は、検索結果のファイルリストを応答する。
【００７８】
その後、処理を終了する。
送信した検索リクエストに対する応答をディレクトリリストとして受信したクライアント装置２においては、受信したディレクトリリストの内容を、例えばディスプレイ等に表示させる。
一方、ステップＳ２における確認の結果、受信したファイルアクセス要求が、ディレクトリ“/~search/”以下のディレクトリに対するアクセス要求でない場合には（ステップＳ２のＮＯルート参照）、ステップＳ９に移行する。
【００７９】
受信したファイルアクセス要求が、 ディレクトリ“/~search/”以下のディレクトリに対するアクセス要求でない場合は、当該ファイルアクセス要求は、ファイルシステムによって管理されているデータ（ファイル）に対するリードやライト等のＩＯコマンドによるファイルアクセスである。
ステップＳ９において、プロトコル処理部１１は、ファイルシステム処理部１２に対して、ファイルアクセス要求を通知する。ファイルシステム処理部１２は、通知されたファイルアクセス要求を処理し、その処理結果をプロトコル処理部１１に送信（応答）する。
【００８０】
その後、ステップＳ８において、プロトコル処理部１１は、ファイルアクセス要求の送信元のクライアント装置２に対して、ファイルシステム処理部１２による処理結果を送信（応答）して、処理を終了する。
また、ステップＳ７における確認の結果、検索結果をディレクトリリストとして表示させない場合（ステップＳ７のＮＯルート参照）、ステップＳ９に移行する。例えば、検索リクエストにおいて、検索要求とともにアクセス対象のデータのファイル名（例えば、“test.txt”）が指定されている場合には、検索結果はディレクトリリストとして表示されない。
【００８１】
例えば、クライアントからのファイルアクセス要求が、“/~search/test/test.txt”のようなopen file call等 であれば、ディレクトリリスト表示が行なわれる代わりに、そのファイルアクセス要求に応じて、指定されたアクセス対象のデータに対する処理（例えばファイルオープン）が応答として実行される。
すなわち、ステップＳ９において、プロトコル処理部１１は、ファイルシステム処理部１２に対して、当該データへのファイルアクセス要求（例えば、“test.txt”に対するファイルオープン要求）を通知する。
【００８２】
ファイルシステム処理部１２は、通知されたファイルアクセス要求を処理し、その処理結果をプロトコル処理部１１に送信（応答）する。その後、ステップＳ８に移行する。
（Ｃ）効果
このように、実施形態の一例としてのストレージ装置１によれば、クライアント装置２において、検索リクエスト作成部２１が、所定の特殊ディレクトリへのアクセスパスと、当該特殊ディレクトリに対するファイルアクセス要求とを含む検索リクエストを作成する。そして、ファイルアクセス要求送信部２２が、この作成された検索リクエストをストレージ装置１に送信する。
【００８３】
特に、検索リクエストとして、ストレージ装置１においては存在しない架空のディレクトリ（特殊ディレクトリ）へのアクセスパス（検索用アクセスパス）を含む。
これにより、クライアント装置２において入力される検索要求をＮＡＳストレージ装置１のボリュームに対する検索リクエストを、既存のＮＡＳのファイルアクセスプロトコルで送信することができる。
【００８４】
また、ストレージ装置１においては、検索結果応答処理部１４が、インデックス検索の結果を、検索リクエストに含まれる特殊ディレクトリ内のファイルリスト（ディレクトリリスト）として作成する。
そして、プロトコル処理部１１が、この作成されたファイルリストを、ストレージ装置１からクライアント装置２への検索応答として送信する。
【００８５】
これにより、ストレージ装置１において行なわれた検索の結果を、既存のＮＡＳのファイルアクセスプロトコルでクライアント装置２に送信することができる。
すなわち、ストレージシステム４において、既存のＮＡＳのファイルアクセスプロトコルで検索リクエストおよび検索結果を送受信することができ、ファイルアクセスプロトコルでストレージ装置１のデータ検索を実現することができる。従って、特別な検索装置を要することなく低コストでデータ検索を実現できる。また、これにより、システムの製造や運用にかかるコストを低減することができる。
【００８６】
ＮＡＳストレージにおいて、インデックス検索を実現するための検索装置を別途備えることなく検索を実現することができ、装置コストを低減することができる。
（Ｄ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【００８７】
上述した実施形態においては、図１に示すように、ストレージ装置１に１つのＣＭ１００が備えられているが、これに限定されるものではなく、２つ以上のＣＭ１００を備えてもよい。すなわち、複数のＣＭ１００により冗長化を行ない、通常は、いずれかのＣＭ１００がプライマリとして各種制御を行ない、このプライマリＣＭ１００の故障時には、セカンダリのＣＭ１００がプライマリとしての動作を引き継いでもよい。
【００８８】
また、上述した実施形態においては、検索リクエスト作成部２１は、検索用アクセスリクエストとして、架空の特殊ディレクトリ“/~search/”の下層のディレクトリに対するリードリクエストを作成しているが、これに限定されるものではない。
すなわち、検索用アクセスリクエストにおいて、特殊ディレクトリのディレクトリ名として“~search”以外のディレクトリ名を用いてもよい。また、検索用アクセスリクエストにおいて、リードリクエストに代えて、ライトリクエスト等の他のデータアクセス要求を用いてもよい。
【００８９】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
（Ｅ）付記
（付記１）
記憶装置を制御するストレージ制御装置であって、
前記記憶装置に格納されるデータを管理するファイルシステムと、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信する受信部と、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行なう検索処理部と、
前記検索処理部による検索結果を、前記第１のディレクトリのファイルリストとして、前記ファイルアクセス要求の送信元に対して応答する応答処理部と
を備えることを特徴とする、ストレージ制御装置。
【００９０】
（付記２）
前記識別情報が、前記記憶装置において存在しない架空のディレクトリのディレクトリ名であることを特徴とする、付記１記載のストレージ制御装置。
（付記３）
記憶装置を制御するストレージ制御装置のプロセッサに、
前記記憶装置に格納されるデータを管理し、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を受信し、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行ない、
検索結果を、前記第１のディレクトリのファイルリストとして、前記ファイルアクセス要求の送信元に対して応答する
処理を実行させることを特徴とする、ストレージ制御プログラム。
【００９１】
（付記４）
前記識別情報が、前記記憶装置において存在しない架空のディレクトリのディレクトリ名であることを特徴とする、付記３記載のストレージ制御プログラム。
（付記５）
ストレージ装置と、入力装置とを備えるストレージシステムであって、
前記入力装置が、
検索リクエストを示す識別情報をディレクトリ名とする第１のディレクトリと、検索文字列をディレクトリ名とする第２のディレクトリとを含むアクセスパスを有するファイルアクセス要求を作成する作成部と、
作成された前記ファイルアクセス要求を前記ストレージ装置に送信する送信部とを備え、
前記ストレージ装置が、
データを格納する記憶装置と、  
前記記憶装置に格納されるデータを管理するファイルシステムと、
前記ファイルアクセス要求を受信する受信部と、
前記ファイルアクセス要求に含まれる前記検索文字列を用いて、前記記憶装置に格納されるデータの検索を行なう検索処理部と、
前記検索処理部による検索結果を、前記第１のディレクトリのファイルリストとして、前記入力装置に対して応答する応答処理部と
を備えることを特徴とする、ストレージシステム。
【００９２】
（付記６）
前記識別情報が、前記ストレージ装置において存在しない架空のディレクトリのディレクトリ名であることを特徴とする、付記５記載のストレージシステム。
【符号の説明】
【００９３】
１    ストレージ装置
２    クライアント装置
４    ストレージシステム
１１    プロトコル処理部
１２    ファイルシステム処理部
１３    ＲＡＩＤ管理部
１４    検索結果応答処理部
１５    インデックス管理部
１６    インデックス作成処理部
２１    検索リクエスト作成部
２２    ファイルアクセス要求送信部
３０    ドライブエンクロージャ
３１    記憶装置
４０    コントローラエンクロージャ
１００    ＣＭ（ストレージ制御装置）
１０１    ポート
１０３    デバイスアダプタ
１０６    メモリ
１０７    ＳＳＤ
１０８    ＩＯＣ
１１０    ＣＰＵ
【図１】
2017130010.tif 000003
【図２】
2017130010.tif 000004
【図３】
2017130010.tif 000005
【図４】
2017130010.tif 000006
【図５】
2017130010.tif 000007