(57)【要約】【課題】リードキャッシュ処理を効率化できるストレージ、ストレージシステムを提供する。【解決手段】実施形態によれば、ストレージ１Ａは、記憶媒体１０と、前記記憶媒体を制御するコントローラ１３０と、コントローラにより前記記憶媒体からリードされたバリューを記憶する第１メモリ９０と、前記キーを構成する構成情報であって前記バリューを構成する単位の数を示す第１情報７１とを具備する。コントローラは、前記バリューを前記記憶媒体からリードする際に、前記第１情報が示す前記バリューを構成する単位の数と、リードした前記バリューを構成する単位の数とが一致するか否かを判定する第１判定を実行し、前記第１判定の判定条件を満たす場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させる。【選択図】図１
2017151609.tif 000002
【特許請求の範囲】
【請求項１】
キーと前記キーに対応づけられたバリューとを記憶する記憶媒体と、
外部から指定されるキーに対応づけられたバリューを前記記憶媒体からリードするコントローラと、
前記コントローラにより前記記憶媒体からリードされるバリューを記憶する第１メモリと、
前記キーを構成する構成情報であって、前記バリューを構成する単位の数を示す第１情報と、を具備し、
前記コントローラは、外部から指定されたキーに対応するバリューを前記記憶媒体からリードする際に、前記第１情報を参照し、前記第１情報が示す前記バリューを構成する単位の数と、リードした前記バリューを構成する単位の数とが一致するか否かを判定する第１判定を実行し、
前記第１判定の判定条件を満たす場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させ、
前記第１判定の判定条件を満たさない場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させず、前記外部から指定されたキーに対応するバリューをリードするまで前記第１判定を繰り返す
ストレージ。
【請求項２】
前記記憶媒体にライトされたキーと、前記キーに対応づけられたバリューと、外部から指定された前記バリューを構成する単位の前記記憶媒体における位置情報との対応関係を示す管理テーブルを更に具備する
請求項１に記載のストレージ。
【請求項３】
前記キーを構成する構成情報は、前記キー対応づけられた前記バリューを特定するＩＤ情報、前記バリューが格納されるストレージ、前記バリューが格納されるファイル名、前記バリューがライトされた日付、前記バリューのサイズ、前記バリューのタイトル、および前記バリューの注釈の少なくとも１つを含む
請求項１または２に記載のストレージ。
【請求項４】
前記コントローラは、前記バリューを前記記憶媒体からリードする際に、前記外部からキーを指定され、
前記管理テーブルを参照し、前記記憶媒体における位置情報に基づいて、前記指定されたキーに対応するバリューを前記記憶媒体からリードデータとしてリードし、
リードした前記バリューを前記第１メモリに記憶させ、前記第１メモリから前記バリューを外部に送信し、前記外部からのリード要求に応答する
請求項２に記載のストレージ。
【請求項５】
前記コントローラは、前記バリューを前記記憶媒体からリードする際に、前記第１情報を参照し、前記第１情報が示す前記バリューを構成する単位の数と、リードした前記バリューを構成する単位の数とが一致するか否かを判定する第２判定を更に実行し、
前記第２判定の判定条件を満たす場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させ、
前記第２判定の判定条件を満たさない場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させず、前記第１メモリの残存容量が所定の閾値未満となるまで前記第２判定を繰り返す
請求項４に記載のストレージ。
【請求項６】
キーおよび前記キーに対応づけられたバリューを記憶する記憶媒体を備えるストレージと、
前記記憶媒体からリードされるバリューを記憶する第１メモリと、
前記キーを構成する構成情報であって、前記バリューを構成する単位の数を示す第１情報と、
前記ストレージを管理するホストと、を具備し、
前記ストレージは、前記ホストから指定されたキーに対応するバリューを前記記憶媒体からリードする際に、前記第１情報を参照し、前記第１情報が示す前記バリューを構成する単位の数と、リードした前記バリューを構成する単位の数とが一致するか否かを判定する第１判定を実行し、
前記第１判定の判定条件を満たす場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させ、
前記第１判定の判定条件を満たさない場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させず、前記ホストから指定されたキーに対応するバリューがリードされるまで前記第１判定を繰り返す
ストレージシステム。
【請求項７】
前記ストレージは、前記記憶媒体である磁気ディスクを有するハードディスクドライブと、前記記憶媒体であるフラッシュメモリを有するソリッドステートドライブと、を備える
請求項６に記載のストレージシステム。
【請求項８】
前記ホストは、外部からのライト要求に基づき、前記ソリッドステートドライブに前記外部から受信したキーをライトし、前記ハードディスクドライブに前記外部から受信した前記キーおよび前記キーに対応づけられたバリューをライトする
請求項７に記載のストレージシステム。
【請求項９】
前記ホストは、前記外部からリードデータであるバリューに対応するキーを受信し、
前記ソリッドステートドライブに記憶された前記キーを検索して前記キーを取得し、
前記取得したキーに対応し、前記ハードディスクドライブに記憶されるバリューをリードし、
前記リードしたバリューを前記外部に送信し、リード要求に応答する
請求項７または８に記載のストレージシステム。
【請求項１０】
前記ストレージは、前記記憶媒体である磁気ディスクをそれぞれ有する複数のハードディスクドライブと、前記記憶媒体であるフラッシュメモリをそれぞれ有する複数のソリッドステートドライブと、を更に備え、
前記ホストは、前記外部からのライト要求に基づき、前記複数のソリッドステートドライブに前記外部から受信したキーをライトし、前記複数のハードディスクドライブに前記外部から受信した前記キーおよび前記キーに対応づけられたバリューをライトし、ＲＡＩＤグループを形成する
請求項７乃至９のいずれかに記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、概して、ストレージ、ストレージシステムに関する。
【背景技術】
【０００２】
近年、キーと当該キーに対応づけられたバリューとを記憶媒体に記憶したストレージや当該ストレージを備えるストレージシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３２１６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、リードキャッシュ処理を効率化できるストレージ、ストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ストレージは、記憶媒体と、前記記憶媒体にキーに対応するバリューをライトし、前記記憶媒体にライトしたキーに対応するバリューをリードするように制御するコントローラと、前記コントローラにより前記記憶媒体からリードされたバリューを記憶する第１メモリと、前記キーを構成する構成情報であって、前記バリューを構成する単位の数を示す第１情報と、を具備し、前記コントローラは、前記バリューを前記記憶媒体からリードする際に、前記第１情報が示す前記バリューを構成する単位の数と、リードした前記バリューを構成する単位の数とが一致するか否かを判定する第１判定を実行し、前記第１判定の判定条件を満たす場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させ、前記第１判定の判定条件を満たさない場合、リードした前記バリューをキャッシュデータとして前記第１メモリに記憶させず、リード要求に係るバリューをリードするまで前記第１判定を繰り返す。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るストレージシステムを示すブロック図
【図２】記憶媒体に格納されるバリューおよびキーを説明するための図
【図３】図１中の管理テーブルＴ１を示す図
【図４】図１中のキー管理情報の一例を示す図
【図５】第１実施形態に係るストレージシステムのリード（リードキャッシュ）処理を示すフローチャート
【図６】第１実施形態に係るストレージシステムのリード（リードキャッシュ）処理を説明するための図
【図７】リード処理後のバッファメモリのメモリ空間を示す図
【図８】リードキャッシュ処理後のバッファメモリのメモリ空間を示す図
【図９】比較例に係るストレージシステムのリードキャッシュ処理を説明するための概略図
【図１０】変形例１に係るストレージシステムのリード（リードキャッシュ）処理を示すフローチャート
【図１１】変形例１に係るストレージシステムのリード（リードキャッシュ）処理を説明するための図
【図１２】リードキャッシュ処理１およびリード処理後のバッファメモリのメモリ空間を示す図
【図１３】リードキャッシュ処理２の後のバッファメモリのメモリ空間を示す図
【図１４】第２実施形態に係るストレージシステムを示すブロック図
【図１５】第３実施形態に係るストレージシステムを示すブロック図
【図１６】第３実施形態に係るストレージシステムのＰＵＴ（ライト）動作を示すブロック図
【図１７】第３実施形態に係るストレージシステムのＧＥＴ（リード）動作を示すブロック図
【発明を実施するための形態】
【０００７】
以下、図面を参照して、発明の実施形態について説明する。この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
（第１実施形態）  
［１．構成］  
１−１．ストレージシステム  
図１を用い、第１実施形態に係るストレージシステム１Ａについて説明する。ストレージシステム１Ａは、記憶媒体である磁気ディスク１０を備え、ＩＰ（Internet Protocol）等のネットワーク３０１を介して外部のストレージアクセスクライアント（以下、「クライアント」）３００が、ＡＰＩ（Application Programming Interface）２３０を用いてアクセス可能であるように構成される。ここで、ＡＰＩとは、あるプロセッサ（ここでは、ＣＰＵ２１０）のプログラムの機能等を、外部（ここでは、クライアント３００）のプログラムから呼び出して利用するための手順やデータ形式などを定めたインタフェースをいう。例えば、クライアント３００は、ＡＰＩ２３０を用いて、定められた所定の手順（例えば、ＣＰＵ２１０の汎用的なリード機能を呼び出すためのコマンドを指定すること）に従って、ストレージシステム１Ａにリード要求を行うことができる。リード要求を受信したストレージシステム１Ａは、クライアント３００からのリード要求に従い、リードデータを返信する。このように、クライアント３００は、共通して利用する汎用的な機能を、ＡＰＩ２３０に定められた所定の手順に従ってＣＰＵ２１０から呼び出し、当該機能を利用することができる。従って、クライアント３００は、当該汎用的な機能を利用するための複雑なプログラム等をいちから作成することが不要となり、リード要求等の汎用的な機能を利用するための簡単な命令をクライアント３００が知っていれば、ストレージシステム１Ａにアクセスすることができる。
【０００８】
また、ストレージシステム１Ａは、磁気ディスク１０にキーＫと当該キーＫに対応づけられたバリューＶとを記憶する。
【０００９】
図２に示すように、バリューＶは、クライアント３００からライト要求またはリード要求等される情報である。一例として、バリューＶは、クライアント３００から送信された動画データ、画像データ、およびテキストデータ等のユーザデータである。
【００１０】
図２に示すように、キーＫは、バリューＶ以外の情報であって、キーＫと対応するバリューＶに関連して意味付けられた情報である。一例として、キーＫは、ＩＤ情報、構成ブロック数、組織名、ファイル名、ファイル形式等を含む。ＩＤ情報は、対応づけられたバリューＶを識別する固有の識別情報である。構成ブロック数は、バリューＶを構成するブロックの数を示す情報である。組織名は、例えば、ＨＤＤ１等である。ファイル名は、例えば、File_A等である。ＩＤ情報は、例えば、2150333等である。構成ブロック数は、例えば、１等である。ファイル形式は、例えば、テキストファイル形式、画像ファイル形式、動画ファイル形式、および音声ファイル形式等である。なお、キーＫを構成する情報（構成情報）は、上記のものに限定されない。上記構成情報の詳細については、図４を用いて後述する。
【００１１】
上記説明したようなストレージシステム（ＫＶ型ストレージシステム）１Ａでは、任意のサイズの識別情報であるキーＫと、当該キーＫに対応づけられた任意のサイズのバリューＶとが、ストレージ１００に記憶される。上記構成によれば、クライアント３００がキーＫを指定すると、キーＫに対応づけられたバリューＶを、ＰＵＴ（ライト）、ＧＥＴ（リード）、およびＤＥＬＥＴＥ（イレーズ）することが可能となる。これらの詳細については、後述する。
【００１２】
図１に戻り、ストレージシステム１Ａは、外部のクライアント３００からの要求を受け付けるホスト２００と、ホスト２００により管理される複数のストレージ１００とを備える。
ホスト２００は、ストレージシステム１Ａとクライアント３００とを含む全体から見れば、クライアント３００と複数のストレージ１００とが互いにアクセスを行うための仲立ちを行うブリッジ部である。ホスト２００は、例えば、サーバ、パーソナルコンピュータ、またはインターフェースデバイス等である。ここで、ホスト２００とは、クライアント３００とストレージ１００とが互いにアクセスを行うための制御を行うものをいう。第１実施形態において、ホスト２００は、複数のストレージ１００を集中的に制御し、クライアント３００からの要求に応答する。ホスト２００に備えられるアプリケーション等は、上記ＡＰＩ２３０を介して各ストレージ１００にアクセスすることができる。
【００１３】
ホスト２００は、クライアント３００からの要求に応じてリードコマンド等の所定のコマンドを発行してストレージＩ／Ｆを介して各ストレージ１００を制御し、ストレージシステム１Ａの全体の動作（例えば、リード、ライト等）を制御するＣＰＵ（Central Processing Unit）２１０を備える。ＣＵＰ２１０は、ＫＶ管理部２２０と、ＡＰＩ２３０と、ＫＶ管理テーブル２４０とを備える。
【００１４】
ＫＶ管理部２２０は、クライアント３００からの命令を処理する。具体的には、ＫＶ管理部２２０は、クライアント３００から受信した一対のキーおよびバリュー（Ｋ,Ｖ）に基づき、ＳＳＤ１にキーＫを記憶させ、バリューＶの位置を示すＬＢＡ（Logical Block Address）を指定してＨＤＤ１またはＨＤＤ２にバリューＶおよびキーＫを記憶させる。そのため、ＫＶ管理部２２０は、キーＫと当該キーに対応するバリューＶとホスト２００が指定したＬＢＡとの対応関係を示すＫＶ管理テーブル２４０を、必要に応じて参照する。
【００１５】
ＫＶ管理テーブル２４０は、各ストレージ１００にライトしたクライアント３００から送信された全てのキーＫとバリューＶ、およびホスト２００が指定したＬＢＡとの対応関係を記憶する。また、ＫＶ管理テーブル２４０の内容は、例えばライトによって新たなＬＢＡにおけるディスク１０に新たなキーＫおよびバリューＶが記憶された場合等の必要に応じて更新される。
第１実施形態では、ストレージ１００として、記憶媒体である磁気ディスク（以下、「ディスク」と称する）１０を備えるＨＤＤ１を一例に挙げて説明する。
【００１６】
ＨＤＤ１は、後述するヘッドディスクアセンブリ（head-disk assembly：ＨＤＡ）と、ドライバＩＣ２０と、ヘッドアンプ集積回路（以下、「ヘッドアンプＩＣ」）３０と、揮発性メモリ７０と、不揮発性メモリ８０と、バッファメモリ（キャッシュメモリ）９０と、１チップの集積回路からなるシステムコントローラ１３０とを備える。ＨＤＤ１は、ホスト２００と、デバイスＩ／ＦであるＳＡＴＡ  Ｉ／ＦやＳＡＳ  Ｉ／Ｆ等を介して接続される。ＨＤＤ１は、ホスト２００から転送されたライトデータＶをディスク１０にライトし、ディスク１０からリードしたリードデータＶをホスト２００に転送する。
【００１７】
ＨＤＡは、ディスク１０と、スピンドルモータ（ＳＰＭ）１２と、ヘッド１５を搭載するアーム１３と、ボイスコイルモータ（ＶＣＭ）１４とを有する。ディスク１０は、スピンドルモータ１２により回転する。アーム１３およびＶＣＭ１４は、アクチュエータを構成する。アクチュエータは、ＶＣＭ１４の駆動により、アーム１３に搭載されるヘッド１５をディスク１０上の所定の位置まで移動させる。ディスク１０およびヘッド１５は、２つ以上であってもよい。
【００１８】
ヘッド１５は、先端部に設けられたライトヘッド１５Ｗおよびリードヘッド１５Ｒを備える。ライトヘッド１５Ｗは、ディスク１０の表面に対して垂直方向の磁界を発生させ、ディスク１０の表面のトラックにライトデータをライトする。リードヘッド１５Ｒは、ディスク１０のトラックに記録されたデータをリードする。
【００１９】
ドライバＩＣ２０は、システムコントローラ１３０（詳細には、後述するＭＰＵ６０）の制御に従い、ＳＰＭ１２およびＶＣＭ１４の駆動を制御する。
ヘッドアンプＩＣ３０は、リードアンプおよびライトドライバを有する。リードアンプは、リードヘッド１５Ｒにより読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル４０に伝送する。ライトドライバは、Ｒ／Ｗチャネル４０から出力されるライトデータに応じたライト電流をライトヘッド１５Ｗに伝送する。
【００２０】
揮発性メモリ７０は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ７０は、ストレージシステム１Ａの各部での処理や演算の際に必要なデータ等を格納する。例えば、揮発性メモリ７０は、後述するリードキャッシュ処理の際に、各キーＫを構成する構成情報（構成パラメータ）を管理するキー管理情報７１を展開する。揮発性メモリ７０は、例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等である。
【００２１】
不揮発性メモリ８０は、電力供給が断たれても保存しているデータを保持する半導体メモリである。不揮発性メモリ８０は、例えば、フラッシュＲＯＭ（Flash Read Only Memory : FROM）等である。
バッファメモリ９０は、ディスク１０とホスト２００との間で送受信されるリードデータＶ等を一時的に保持する半導体メモリである。なお、バッファメモリ９０は、揮発性メモリ７０と一体に配置されていてもよい。バッファメモリ９０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）、ＳＤＲＡＭ、ＦｅＲＡＭ（Ferroelectric Random Access memory）、およびＭＲＡＭ（Magnetoresistive Random Access Memory）等である。
【００２２】
システムコントローラ（メモリコントローラ）１３０は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(SoC)と称される大規模集積回路（ＬＳＩ）を用いて実現される。システムコントローラ１３０は、リード／ライト（Ｒ／Ｗ）チャネル４０と、ハードディスクコントローラ（ＨＤＣ）５０と、マイクロプロセッサ（ＭＰＵ）６０とを含む。
【００２３】
Ｒ／Ｗチャネル４０は、リードデータおよびライトデータの信号処理を実行する。Ｒ／Ｗチャネル４０は、リードデータの信号品質を測定する回路、又は機能を有する。
ＨＤＣ５０は、ＭＰＵ６０からの指示に応じて、ホスト２００とＲ／Ｗチャネル４０との間のデータ転送を制御する。ＨＤＣ５０は、ＣＰＵ５５と、テーブルＴ１とを備える。
【００２４】
ＣＰＵ５５は、ＨＤＣ５０の全体（ここでの「全体」とは、ホスト２００を除き、ＨＤＣ５０が制御するストレージ（ＨＤＤ１）１００の全体をいう。）の動作を制御する。テーブルＴ１は、キーＶとバリューＶとＬＢＡとの対応関係を示す管理テーブル（変換テーブル）である。テーブルＴ１の詳細については、後述する。
ＭＰＵ６０は、ＨＤＤ１の各部を制御し、全体の動作を制御するメインコントローラである。ＭＰＵ６０は、例えば、ドライバＩＣ２０を介してＶＣＭ１４を制御し、ヘッド１５の位置決めを行うサーボ制御を実行する。
【００２５】
なお、ＨＤＤ２の構成は、ＨＤＤ１と同様である。また、ホスト２００やＨＤＤ１の構成は、上述したものに限られない。例えば、ＫＶ管理テーブル２４０やテーブルＴ１のように、テーブル形式に限定されず、所定の関数や数式、および所定のマッピング形式等であってもよい。これらが配置される場所も限定されない。
【００２６】
また、ＳＳＤ１は、記憶媒体であるＮＡＮＤ型フラッシュメモリ等のフラッシュメモリを備える。フラッシュメモリは、ワード線とビット線との交差位置に複数のメモリセルが配置されたメモリセルアレイを備える。各メモリセルは、制御ゲートと浮遊ゲートを備える。ワード線に接続される制御ゲートの電圧制御に従い、浮遊ゲートに注入される電子の有無が制御されることで、データが不揮発に記憶される。ＳＳＤ１のその他の構成の詳細な説明については、省略する。
【００２７】
１−２．テーブルＴ１
図３は、図１のテーブルＴ１を示す図である。図３に示すように、テーブルＴ１は、ストレージ１００のディスク１０にライトされたバリューＶと、当該バリューＶに対応するキーＫと、ホストから指定されたＬＢＡ（バリューＶを構成する単位（ブロック／セクタ）の位置情報）と、の対応関係を示す管理テーブルである。
【００２８】
テーブルＴ１には、例えば、キーＫ１とバリューＶ１とＬＢＡ１とが互いに関連付けられた対応関係にあることが示される。以下同様に、キーＫ２とバリューＶ２とＬＢＡ２とが対応関係にある。キーＫ３とバリューＶ３とＬＢＡ３とが対応関係にある。キーＫｎとバリューＶｎとＬＢＡｎ〜ＬＢＡｎ＋２とが対応関係にある。キーＫｘとバリューＶｘとＬＢＡｎ−３〜ＬＢＡｎ−１とが対応関係にある。キーＫｙとバリューＶｙとＬＢＡｎ＋３とが対応関係にある。キーＫｚとバリューＶｚとＬＢＡｎ＋４〜ＬＢＡｎ＋７とが対応関係にある。
【００２９】
このように、ストレージシステム１Ａでは、キーＫに対応づけられた任意のサイズのバリューＶがディスク１０に記憶される。そのため、１つのバリューＶに対応づけられたＬＢＡは、任意であり、必ずしも１つではない。例えば、１つのバリューＶｎに対して、３つのＬＢＡｎ〜ＬＢＡｎ＋２（３ブロック）が対応づけられる。また、１つのバリューＶｙに対して、１つのＬＢＡｎ＋３（１ブロック）が対応づけられる。
【００３０】
また、図２で説明したように、各キーＫは、当該キーＫに対応づけられるバリューＶを識別するＩＤ情報だけでなく、対応づけられたバリューＶに関連して意味づけられた日付等その他の構成情報を含む。
１−３．キー管理情報
図４は、図１のキー管理情報７１を示す図である。ここでは、キーＫｙのキー管理情報７１を一例として示している。キーＫｙは、例えば、以下の構成情報（構成データ、構成パラメータ）を含む。ここで、図４に示す「構成情報」とは、当該キーＫｙを構成する情報であって、上述したように当該キーＫｙに対応づけられたバリューＶｙに関連して意味づけられた情報である。
【００３１】
図４に示すように、key y（ＩＤ情報）は、その値が例えば“2150333”であって、対応づけられたバリューＶｙを特定するための固有の情報である。num y（第１情報）は、その値が例えば“１”であって、バリューＶｙの構成ブロックの数を示す。具体的には、num yは、ホスト２００から転送されたライトデータを構成する単位の数（ブロック数／セクタ数）を示す情報である。換言すれば、num yは、キーＫｙに対応づけられたバリューＶｙのサイズに対応する。Storage y（組織名）は、その値が例えば“hdd1”であり、バリューＶｙが格納されるストレージ（ここでは、ＨＤＤ１）を示す。file y（ファイル名）は、その値が例えば“File_A”であり、バリューＶｙが格納されるファイル名を示す。data y（日付）は、その値が例えば“1127”であり、バリューＶｙが作成された１１月２７日を示す。
【００３２】
なお、図４に示した構成情報は、あくまで例示であり、これらに限定されない。例えば、構成情報は、例えば、バリューＶのサイズ、タイトル、および注釈等のその他のバリューＶの属性データを含んでもよい。
［２．動作］  
２−１．リード（リードキャッシュ）処理  
図５乃至図７を用い、ストレージシステム１Ａのリード（リードキャッシュ）処理について説明する。なお、第１実施形態では、ホスト２００が、クライアント３００からリードデータであるバリューＶｎ（ＬＢＡで示すＬＢＡｎ〜ＬＢＡｎ＋２（構成ブロックの数：３））のリード要求を受けた場合を一例に挙げる。そのため、まず、リード要求に係るリード処理について説明する。
【００３３】
［リード処理］
図５のステップＳ１１において、ホスト２００は、ＡＰＩ２３０を介してクライアント３００からキーＫｎが指定されたリード要求を受信する。リード要求を受けたホスト２００のＫＶ管理部２２０は、ＫＶ管理テーブル２４０を参照し、ＫＶ管理テーブルに示されるキーＫｎとバリューＶｎとの対応関係に基づいて、バリューＶｎに対応するキーＫｎが記憶されるストレージ１００を検索する。検索の結果、ＫＶ管理部２２０は、キーＫｎが記憶されるストレージがＨＤＤ１であると判定すると、ＫＶ管理テーブル２４０を参照し、ＫＶ管理テーブルに示されるキーＫｎとＬＢＡｎ〜ＬＢＡｎ＋２との対応関係に基づいて、ＬＢＡｎ〜ＬＢＡｎ＋２を指定してリードデータであるバリューＶｎを指定する。
【００３４】
なお、上記キーＫｎを検索する際、ＫＶ管理部２２０は、ストレージであるＳＳＤ１から検索してもよい。この詳細については、後述する。
ステップＳ１２において、バリューＶｎを指定されたデバイス１００のＣＰＵ５５は、リードヘッド１５Ｒのディスク１０の位置を、現在のトラックからリードデータであるバリューＶｎが記憶される目標のトラックに移動させる（シーク）。具体的には、ＣＰＵ５５は、図３に示したように、バリューＶｎと当該バリューＶｎに対応するＬＢＡｎ〜ＬＢＡｎ＋２との対応関係が示されたテーブルＴ１を参照し、参照した対応関係（Ｖｎ，ＬＢＡｎ〜ＬＢＡｎ＋２）に基づいて、リードヘッド１５Ｒの位置を目標トラックに移動させる。
【００３５】
ステップＳ１３において、上記シーク完了後、ＨＤＤ１は、ディスク１０の目標トラックから、リードデータであるバリューＶｎをリードする。例えば、図６に示すように、ＨＤＤ１のＭＰＵ６０は、ディスク１０の目標トラック１９から、テーブルＴ１から参照したＬＢＡｎ〜ＬＢＡｎ＋２のバリューＶｎを、リードヘッド１５Ｒによりリードする。より具体的には、図中の矢印で示すディスク１０の回転に伴い、バリューＶｎ（ＬＢＡｎ〜ＬＢＡｎ＋２）が、リードヘッド１５Ｒの位置までくると、リードヘッド１５ＲによりバリューＶｎをリードする。リードされたバリューＶｎは、バッファメモリ９０に記憶される。
【００３６】
図５に戻り、ステップＳ１４において、ＨＤＤ１は、リードしたバリューＶｎを、ホスト２００に転送し、リード要求に応答する。具体的には、ＨＤＤ１のＣＰＵ５５は、バッファメモリ９０からバリューＶｎをホスト２００に転送する。
図７に示すように、リード処理の結果、バッファメモリ９０のメモリ空間には、リードデータであるバリューＶｎが記憶される。図７に示すように、バッファメモリ９０の全メモリ領域からリードデータであるバリューＶｎを除いた領域は、残余領域ＲＡとなる。
【００３７】
［リードキャッシュ処理］
続いて、リードキャッシュ処理について説明する。リードキャッシュ処理は、リード要求があったデータ（ここでは、バリューＶｎ）に引き続く領域やその近傍の領域等に対しては、リード要求がされる傾向が高いことを利用するものである。例えば、ある領域（ここでは、ＬＢＡｎ〜ＬＢＡｎ＋２）へのリード要求がされた後、これに引き続く先の領域（ここでは、ＬＢＡｎ＋３）に記憶されるデータをリードし、あらかじめバッファメモリ９０に記憶させておく。このようにリードキャッシュ処理をしておくことで、次にあらかじめバッファメモリ９０に記憶させておいたデータに対してリード要求がされた場合、ディスク１０からリードすることなく、バッファメモリ９０から直接的に当該リード要求に係るデータを転送することができる。この結果、ストレージシステム１Ａのリードアクセスを高速化することができる。
【００３８】
ステップＳ１５において、ＨＤＤ１は、バッファメモリ９０にリードキャッシュ処理を行うための領域があるか否かを判定する。この際、例えば、ＨＤＤ１のＣＰＵ５５は、リードデータが記憶されていること等により、バッファメモリ９０の残余領域ＲＡの容量が所定の閾値Ｃｔｈ未満である場合（Ｓ１５でＮｏ）、リードキャッシュ処理を終了させる。ここで、所定の閾値Ｃｔｈとは、バッファメモリ９０のメモリ領域における、バッファメモリ９０を使用するための空き領域（残余領域）が占める割合をいう。例えば、図８に示す場合、閾値Ｃｔｈは、バッファメモリ９０のメモリ領域（リードデータＶｎとキャッシュデータＶｙとが格納される領域、および残余領域ＲＡ）における、残余領域ＲＡが占める割合である。この場合、閾値Ｃｔｈは、例えば、１割から２割程度である。
【００３９】
ステップＳ１６において、ＨＤＤ１は、ステップＳ１５の条件を満たす場合（Ｓ１５でＹｅｓ）、ディスク１０の目標トラック１９から、同様に、バリューをリードすることを継続する。
ステップＳ１７において、ＨＤＤ１は、リードするバリューＶのキーＫを参照し、参照したキーＫに示されるバリューＶの全てが、バッファメモリ９０に含まれるか否かを判定する。換言すれば、この際、ＨＤＤ１は、キーＫを参照することで、中途半端なデータや使用されないデータ等を判定する。
【００４０】
具体的には、ＨＤＤ１のＣＰＵ５５は、揮発性メモリ７０に展開されたキー管理情報７１（図４）を参照し、キーＫを構成する各構成データのうちのバリューＶの構成ブロックの数を示す情報（第１情報）num に基づき、バリューＶの全てが、バッファメモリ９０に含まれるか否かを判定する。ステップＳ１７の条件を満たさない場合（Ｓ１７でＮｏ）、ＨＤＤ１は、ステップＳ１７の処理を繰り返す。
【００４１】
この際、例えば、図６に示す位置（ＬＢＡｎ−３の途中）からリードキャッシュ処理が開始される場合、ＣＰＵ５５は、キー管理情報７１を参照し、キーＫｘを構成するバリューＶｘの構成ブロックの数を示す情報（第１情報）num xの値である“３”に基づき、バリューＶｘ（ＬＢＡｎ−３〜ＬＢＡｎ−１）の全てが、バッファメモリ９０に含まれない、と判定する。これは、情報num xが示す構成ブロックの数が３ブロックである一方、リードしたバリューＶｘを構成するブロックの数が２ブロック（ＬＢＡｎ−２およびＬＢＡｎ−１）であり、参照した数とリードした数とが一致しない。従って、ＣＰＵ５５が、バリューＶｘを構成する全てのデータをリードできないと判定する。
【００４２】
さらに、図６に示すリードヘッド１５Ｒが位置ＬＢＡｎ＋３に来た場合、ＣＰＵ５５は、図４に示したキー管理情報７１を参照し、キーＫｙを構成するバリューＶｖの構成ブロックの数を示す情報（第１情報）num yの値である“１”に基づき、バリューＶｙ（ＬＢＡｎ＋３）の全てが、バッファメモリ９０に含まれる（キャッシュとして利用可能）、と判定する。これは、構成ブロックの数を示す情報num yが１ブロックであり、リードしたバリューＶｙを構成するブロックも１ブロックである。そのため、情報num yが示す構成ブロックの数“１”と、リードしたバリューＶｙを構成するブロックの数“１”とが一致する。従って、ＣＰＵ５５は、リードしたバリューＶｙについて、全てのデータをリードでき、バッファメモリ９０に記憶させることができると判定する。
【００４３】
なお、図８に示すように、ここでは、これ以上のデータをバッファメモリ９０に記憶させると、キャッシュデータＶｙおよびリードデータＶｎが記憶されていることにより、バッファメモリ９０の残余領域ＲＡの容量が所定の閾値Ｃｔｈ未満となるとする。
そのため、図６に示すリードヘッド１５Ｒが位置ＬＢＡｎ＋４に来た場合、ＣＰＵ５５は、キー管理情報７１を参照し、キーＫｚを構成するバリューＶｚの構成ブロックの数に関連付けられた情報（第１情報）num zの値である“４”に基づき、バリューＶｚ（ＬＢＡｎ＋３〜ＬＢＡｎ＋７）の全てが、バッファメモリ９０に含まれない（キャッシュとして利用不可能）、と判定する。
【００４４】
ステップＳ１８において、ステップＳ１７の条件を満たす場合（Ｓ１７でＹｅｓ）、当該バリューＶを、バッファメモリ９０に記憶させ、キャッシュリード処理を終了する。その結果、例えば、図８に示すように、ステップＳ１７の条件を満たしたバリューＶｙ（ＬＢＡｎ＋３）を、キャッシュデータとしてバッファメモリ９０に記憶させることができる。
【００４５】
なお、その他のストレージ１００であるＨＤＤ２等のリードおよびリードキャッシュ処理ついても、上記ＨＤＤ１と実質的に同様である。そのため、その詳細な説明を省略する。
［３．作用効果］  
以上説明したように、第１実施形態に係るストレージシステム１Ａの構成および動作によれば、少なくとも下記（１）および（２）の効果が得られる。
【００４６】
（１）リードキャッシュ処理を効率化できる。
リード処理（図５のＳ１１〜Ｓ１４）の後、ＨＤＤ１のＣＰＵ５５は、キャッシュリードするバリューＶのキーＫを参照し、参照したキーＫに示されるバリューＶの全てが、バッファメモリ９０に含まれるか否かを判定する（図５のＳ１７）。換言すれば、ＨＤＤ１は、キーＫの構成データを参照することで、リードしたバリューが、当該バリューを構成する全てのデータを備えていない中途半端なデータや使用されないデータ等か否かを判定する。より具体的には、ＣＰＵ５５は、揮発性メモリ７０に展開されたキー管理情報７１（図４）を参照し、キーＫを構成する各構成データのうちのバリューＶの構成ブロックの数を示す情報（第１情報）と、リードしたバリューを構成するブロックの数とが一致するか否かを判定する。
【００４７】
ステップＳ１７の判定条件を満たす場合（Ｓ１７でＹｅｓ）、当該バリューＶを、バッファメモリ９０に記憶させる。その結果、例えば、図８に示したように、ステップＳ１７の条件を満たしたバリューＶｙ（ＬＢＡｎ＋３）を、キャッシュデータとしてバッファメモリ９０に記憶させることができる。
【００４８】
そのため、中途半端なデータ（ここでのバリューＶｘ等）や使用されないデータ等のキャッシュデータとしての取得を防止できる。従って、当該中途半端なデータや不必要なデータの断片等の無駄なデータに対して、バッファメモリ９０のキャッシュ領域を用意する必要がない。具体的には、図３に示したように、バリューＶｘは、３つのＬＢＡ（ＬＢＡｎ−３〜ＬＢＡ−１）の３つのデータで構成される。そのため、バリューＶｘのうち、１つのデータや２つのデータしかリードされない場合、当該データは、バリューＶｘを構成する全てのデータを備えていない中途半端なデータであって、バッファメモリ９０に記憶させる必要のない無駄なデータである。このように、第１実施形態によれば、上記無駄なデータをバッファメモリ９０に記憶させる必要がなく、例えば、限られたバッファメモリ９０のキャッシュ容量内でヒット率の向上等が期待でき、リードキャッシュ処理を効率化できる。
【００４９】
図９に示す比較例は、第１実施形態と比較して、セクタ／ブロック単位のコマンド管理である。そのため、キャッシュとしてリードされたデータが、その後に使用されるかどうかの判定が非常に困難である。例えば、図９に示すように、ＬＢＡｎ−３〜ＬＢＡｎ−１にある中途半端なデータや、ＬＢＡｎ＋４〜ＬＢＡｎ＋７にあるバッファメモリの閾値を超えるような使用されないデータに対しても、バッファメモリの記憶領域を用意する必要がある。このように、比較例に係るリードキャッシュ処理の場合、図９に示すリードヘッドのリード範囲ＣＲｃが、第１実施形態のリード範囲ＣＲ１よりも大きくなり（ＣＲｃ＞ＣＲ１）、バッファメモリのキャッシュ領域の無駄な範囲が大きくなることは明らかである。
【００５０】
（２）バッファメモリ９０のキャッシュ容量を削減でき、バッファメモリ９０の専有面積を削減可能である。
上述の通り、第１実施形態に係るストレージシステム１Ａによれば、無駄なく有効なバリュー（データ）Ｖのみ、バッファメモリ９０に記憶させることができる。そのため、バッファメモリ９０のキャッシュ容量を削減でき、バッファメモリ９０の専有面積を削減可能である点でも有利である。
【００５１】
（変形例１）
変形例１に係るストレージシステム１Ａの動作について説明する。この説明において、ストレージシステム１Ａの構成については、第１実施形態と実質的に同様であるため、その詳細な説明を省略する。
［動作］
リード（リードキャッシュ）処理  
図１０乃至図１３を用い、ストレージシステム１Ａのリード（リードキャッシュ）処理について説明する。変形例１は、シーク完了後のリードヘッド１５Ｒの位置が、リードデータであるバリューＶｎ位置より前にある場合の一例について説明する。この場合では、バリューＶｎより前のバリューのリードキャッシュを行うことが可能となる。
【００５２】
図１０に示すように、変形例１に係るストレージシステム１Ａのリードおよびリードキャッシュ処理は、リードキャッシュ処理１（ステップＳ２７およびＳ２８）を更に行う点で、第１実施形態と相違する。
まず、ステップＳ１３において、上記シーク完了後、ＨＤＤ１は、ディスク１０の目標トラック１９から、バリューＶをリードする。変形例１の場合、図１１に示すように、シーク完了後のリードヘッド１５Ｒの位置が、リードデータであるバリューＶｎ位置より前にある。そのため、ＨＤＤ１のＭＰＵ６０は、テーブルＴ１を参照し、ディスク１０の目標トラック１９から、ＬＢＡｎ−３〜ＬＢＡｎ−１のバリューＶｘを、リードヘッド１５Ｒによりリードする。
【００５３】
ステップＳ２７において、ＨＤＤ１は、リードするバリューＶのキーＫを参照し、参照したキーＫに示されるバリューＶの全てが、バッファメモリ９０に含まれるか否かを判定する。具体的には、ＨＤＤ１のＣＰＵ５５は、揮発性メモリ７０に展開されたキー管理情報７１（図４）を参照し、キーＫｘを構成する構成データのうちのバリューＶｘの構成ブロックの数を示す情報（第１情報）num に基づき、バリューＶｘの全てが、バッファメモリ９０に含まれるか否かを判定する。ステップＳ２７の条件を満たさない場合（Ｓ２７でＮｏ）、ＨＤＤ１は、リード要求に係るバリューＶをリードするまで、ステップＳ２７の処理を繰り返す。
【００５４】
この際、変形例１のように、図１１に示す位置（ＬＢＡｎ−４の途中であってＬＢＡｎ−３の前）からリードキャッシュ処理１が開始される場合、ＣＰＵ５５は、キー管理情報７１を参照し、キーＫｘを構成するバリューＶｘの構成ブロックの数を示す情報（第１情報）num xの値である“３”に基づき、バリューＶｘ（ＬＢＡｎ−３〜ＬＢＡｎ−１）の全てが、バッファメモリ９０に含まれる、と判定する。これは、情報num xが示す構成ブロックの数“３”とホスト２００から指定されリードしたブロックの数“３”とが一致（３ブロック）する。そのため、ＣＰＵ５５は、バリューＶｘを構成する全てのデータをリードできると判定できる。
【００５５】
ステップＳ２８において、ステップＳ２７の条件を満たす場合（Ｓ２７でＹｅｓ）、当該バリューＶを、バッファメモリ９０に記憶させる。その結果、例えば、図１２に示すように、ステップＳ２７の条件を満たしたバリューＶｘ（ＬＢＡｎ−３〜ＬＢＡｎ−１）を、キャッシュデータとしてバッファメモリ９０に記憶させることができる。
【００５６】
その後、ストレージシステム１Ａは、上記第１実施形態と同様のリード処理およびリードキャッシュ処理２（ステップＳ１５乃至Ｓ１８）を行う。その結果、変形例１では、図１３に示すように、リードデータであるバリューＶｎ（ＬＢＡｎ〜ＬＢＡｎ＋２）の前後に位置するキャッシュデータＶｘ（ＬＢＡｎ−３〜ＬＢＡｎ−１）およびキャッシュデータＶｙ（ＬＢＡｎ＋３）を、バッファメモリ９０に記憶させることができる。
【００５７】
［作用効果］  
以上説明したように、変形例１に係るストレージシステム１Ａの構成および動作によれば、少なくとも上記（１）および（２）の効果が得られる。変形例１に係るストレージシステム１Ａは、図１０に示したリードキャッシュ処理１（ステップＳ２７およびＳ２８）を更に実行する。
【００５８】
そのため、図１３に示したように、リードデータであるバリューＶｎ（ＬＢＡｎ〜ＬＢＡｎ＋２）の前後に位置するキャッシュデータＶｘ（ＬＢＡｎ−３〜ＬＢＡｎ−１）およびキャッシュデータＶｙ（ＬＢＡｎ＋３）を、バッファメモリ９０に記憶させることができる。このように、リードデータであるバリューＶｎの前後に位置するバリューＶｘおよびＶｙをキャッシュデータとしてバッファメモリ９０に記憶させることで、ヒット率の向上が更に期待できる点で有利である。
【００５９】
（第２実施形態）
第２実施形態に係るストレージシステム１Ｂについて説明する。この説明において、上記第１実施形態と重複する部分の詳細な説明を省略する。
［構成］  
ストレージシステム
図１４に示すように、第２実施形態に係るストレージシステム１Ｂは、ホスト（ブリッジ部）２００を備えておらず、ストレージ１００のＣＰＵ５５がＫＶ管理部２２０，ＡＰＩ２３０，およびＫＶ管理テーブル２４０を備えている点で、第１実施形態と相違する。
【００６０】
その他の構成については、第１実施形態と実質的に同様であるため、その詳細な説明を省略する。
［動作］  
リード（リードキャッシュ）処理  
第２実施形態に係るストレージシステム１Ｂのリードおよびリードキャッシュ処理は、ホスト２００が行う処理（例えば、図５のＳ１１等）をストレージ１００が行う点で、第１実施形態と相違する。
【００６１】
その他の動作については、第１実施形態と実質的に同様であるため、その詳細な説明を省略する。
［作用効果］  
以上説明したように、第２実施形態に係るストレージシステム１Ｂの構成および動作によれば、少なくとも上記（１）および（２）の効果が得られる。さらに、第２実施形態に係るストレージシステム１Ｂは、ホスト（ブリッジ部）２００を備えておらず、ストレージ１００のＣＰＵ５５がＫＶ管理部２２０，ＡＰＩ２３０，およびＫＶ管理テーブル２４０を備える。
【００６２】
そのため、ストレージシステム１Ｂの各ストレージ１００は、直接ネットワーク３０１に接続することができる。従って、ストレージシステム１Ｂの各ストレージ１００は、オブジェクトストレージシステム１Ｂの各ノードとしての機能を有し、通信の一部を直接クライアント３００と行うことができる。このように、必要に応じて、ストレージシステム１Ｂを適用することが可能である。
【００６３】
（第３実施形態）
第３実施形態に係るストレージシステム１について説明する。この説明において、上記第１，第２実施形態と重複する部分の詳細な説明を省略する。ここでは、ＫＶ型ストレージシステム１の構成、ＰＵＴ（ライト）動作、およびＧＥＴ（リード）動作の概略について説明する。
【００６４】
［構成］  
ストレージシステム
図１５に示すように、ストレージシステム１は、ＩＰ等のネットワーク３０１を用い、外部のクライアント３００からＡＰＩを利用してアクセス可能であるように構成される。ストレージシステム１は、データＶと、このデータＶを識別するための識別子Ｋとを含むデータ群（オブジェクト）の単位でクライアント３００から転送されるデータを管理する。このようなＫＶ型ストレージシステムでは、任意のサイズの識別子キーＫと、当該キーＫに関連付けられた任意のサイズのデータＶとが、ストレージ１００に記憶される。上記構成によれば、クライアント３００がキーＫを指定すると、キーＫに関連付けられたバリューＶを、ＰＵＴ（ライト）、ＧＥＴ（リード）、およびＤＥＬＥＴＥ（イレーズ）することが可能となる。
【００６５】
ストレージシステム１は、さらに複数のストレージ１００（ＳＳＤ１，ＳＳＤ２，，，ＨＤＤ１，ＨＤＤ２，ＨＤＤ３，，，）を備え、ＫＶ管理部２２０によりこれらを管理する。
ＳＳＤのリード速度ＶＳＳＤは、ＨＤＤのリード速度ＶＨＤＤよりも速い（ＶＳＳＤ ＞ＶＨＤＤ）。一方、ＳＳＤのデータ容量ＣＳＳＤは、ＨＤＤのデータ容量ＣＨＤＤよりも小さい（ＣＳＳＤ ＜ ＣＨＤＤ）。後述するように、ストレージシステム１は、ストレージの特性に基づく上記関係を利用して、動作を行う。
【００６６】
なお、ストレージシステム１の構成は、図１６に示したものに限られない。例えば、ストレージシステム１は、キーＫに対応するデータＶを記憶しているストレージ１００がいずれであるかというキー構成を管理する管理部等を更に備えてもよい。
［動作］  
ＰＵＴ（ライト）処理
図１６に示すように、ＰＵＴ（ライト）処理を行う場合、クライアント３００は、ホスト２００に、キーＫとバリューＶとがペアとなったＰＵＴ要求であるＰＵＴ（Ｋ，Ｖ）を送信する。
【００６７】
続いて、ホスト２００のＫＶ管理部２２０は、受信したＰＵＴ（Ｋ，Ｖ）に基づき、ＳＳＤ１およびＳＳＤ２にキーＫをライトし、ＨＤＤ１およびＨＤＤ２にキーＫおよびバリューＶのセット（Ｋ，Ｖ）をライトする。このようにして、同一のキーＫが記憶されたＳＳＤ１，ＳＳＤ２、および同一のセット（Ｋ，Ｖ）が記憶されたＨＤＤ１，ＨＤＤ２は、所定のＲＡＩＤ（Redundant Array of Independent [Inexpensive] Disks）グループを形成してもよい。
【００６８】
続いて、ＫＶ管理部２２０は、キーＫおよびセット（Ｋ，Ｖ）とこれを記憶したストレージ（ＳＳＤ１，ＳＳＤ２，ＨＤＤ１，ＨＤＤ２）１００との対応関係を、ＫＶ管理テーブル２４０に記憶する。
続いて、ＫＶ管理部２２０は、ＰＵＴ処理が完了した旨を、クライアント３００に応答してもよい。
【００６９】
上記処理により、ストレージ装置１００に、ＰＵＴ要求に係るセット（Ｋ，Ｖ）が記憶される。
ＧＥＴ（リード）処理
図１７に示すように、ＧＥＴ（リード）処理を行う場合、クライアント３００は、ＧＥＴ要求として所望のバリューＶに対応するキーＫ（ＧＥＴ（Ｋ））をストレージシステム１に送信する。
【００７０】
キーＫを受信したＫＶ管理部２２０は、キーＫと当該キーＫがライトされたＳＳＤとの関係が示されるＫＶ管理テーブル２４０を参照し、例えばＳＳＤ１に記憶されたキーＫを検索してキーＫを得て、キーＫ構造である例えばエントリ構造体等を得る。
続いて、ＫＶ管理部２２０は、エントリ構造体が示すＨＤＤ１のポインタが示す位置に記憶されているバリューＶを、ストレージ１００であるＨＤＤ１からリードする。
【００７１】
続いて、ＫＶ管理部２２０は、リードしたバリューＶをクライアント３００送信し、クライアント３００に応答する。
なお、ＫＶ管理部２２０がＳＳＤ１およびＳＳＤ２に記憶されているキーを検索してもヒットしなかった場合、ＫＶ管理部２２０は、クライアント３００に対して、エラー応答またはペアとなるバリューＶがなかった旨を応答してもよい。
【００７２】
［作用効果］  
以上説明したように、第３実施形態に係るストレージシステム１の構成および動作によれば、少なくとも上記（１）および（２）の効果が得られる。
さらに、上述したように第３実施形態に係るストレージシステム１は、可変長のキーＫを指定して可変長のバリューＶのライトおよびリードを行うことができる。そのため、非構造化データを処理でき、ソフトウェア構成を簡略化することができる。
【００７３】
ホスト（ブリッジ部）２００のＫＶ管理部２２０が、一括してストレージ１００を管理する。そのため、大規模ストレージを構成しても、ストレージ１００を管理するための管理サーバの数を削減または管理サーバの数を不要とすることができる。そのため、ストレージシステム１は、低ＴＣＯ（Total Cost of Ownership）化および高性能化に有利である。
【００７４】
ストレージシステム１は、応答速度や容量が異なるＳＳＤやＨＤＤ等の複数の種類のストレージを一括して制御する。そのため、処理目的に合わせたストレージの選択が不要となる。
さらに、ストレージシステム１は、ＳＳＤのリード速度ＶＳＳＤとＨＤＤのリード速度ＶＨＤＤとの関係（ＶＳＳＤ ＞ＶＨＤＤ）、およびＳＳＤのデータ容量ＣＳＳＤとＨＤＤの容量ＣＨＤＤとの関係（ＣＳＳＤ ＜ ＣＨＤＤ）を利用することで、ＰＵＴ処理およびＧＥＴ処理を効率化できる。例えば、ＰＵＴ処理において、ＫＶ管理部２２０は、サイズの大きいバリューＶをＨＤＤ１，ＨＨＤ２にライトすることで、ＰＵＴ要求を満たすことができる。例えば、ＧＥＴ処理において、ＫＶ管理部２２０は、リード速度の速いＳＳＤ１，ＳＳＤ２からキーＫを検索することで、クライアント３００の所定の応答速度内にＧＥＴ要求を満たすことができる。
【００７５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
３００…ストレージアクセスクライアント、３０１…ネットワーク、２００…ホスト（ブリッジ部）、２１０…ＣＰＵ、２２０…ＫＶ管理部、２３０…ＡＰＩ、２４０…ＫＶ管理テーブル、１３０…システムコントローラ、１００…ストレージ、９０…バッファメモリ、８０…不揮発性メモリ、７０…揮発性メモリ、６０…ＭＰＵ、５５…ＣＰＵ、Ｔ１…テーブル、５０…ＨＤＣ、４０…Ｒ／Ｗチャネル、３０…ヘッドアンプＩＣ、２０…ドライバＩＣ、１５…ヘッド、１４…ＶＣＭ、１３…アーム、１２…ＳＰＭ、１０…磁気ディスク、１，１Ａ，１Ｂ…ストレージシステム。
【図１】
2017151609.tif 000003
【図２】
2017151609.tif 000004
【図３】
2017151609.tif 000005
【図４】
2017151609.tif 000006
【図５】
2017151609.tif 000007
【図６】
2017151609.tif 000008
【図７】
2017151609.tif 000009
【図８】
2017151609.tif 000010
【図９】
2017151609.tif 000011
【図１０】
2017151609.tif 000012
【図１１】
2017151609.tif 000013
【図１２】
2017151609.tif 000014
【図１３】
2017151609.tif 000015
【図１４】
2017151609.tif 000016
【図１５】
2017151609.tif 000017
【図１６】
2017151609.tif 000018
【図１７】
2017151609.tif 000019