(57)【要約】【課題】ストレージデバイスへの書き込みアクセスと、ストレージデバイスからの読み出しアクセスの競合によるアクセス性能低下を抑制する。【解決手段】ストレージシステム１は、同一のデータを保持する３つのストレージ装置７に、書き込み位置に応じてシーケンシャルにデータを記録する。ストレージ装置７は、４つのストレージデバイス８を備える。書き込み位置管理部３は、ストレージ装置７ごとに異なるデータの初期書き込み開始位置（ＩＷ）と、データの現在書き込み位置（ＣＷ）とを管理する。オフセット管理部５は、ストレージ装置７ごとに、現在書き込み位置（ＣＷ）に対応するストレージデバイス８の先頭からの書き込み位置（ＯＳ）をオフセット情報として管理する。読み出し部６は、オフセット情報（ＯＳ）に基づいて選択したストレージ装置７にデータの読み出しを指示する。【選択図】図１
2014191773.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置と、前記複数のストレージ装置へのリクエストを分配する分配装置と、を備えるストレージシステムであって、
前記ストレージ装置は、
書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備え、
前記分配装置は、
前記ストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とを前記ストレージ装置ごとに管理する書き込み位置管理部と、
書き込みリクエストを受け付けて、前記ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、前記複数のストレージ装置に分配して指示する書き込み部と、
前記ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理するオフセット管理部と、
読み出しリクエストを受け付けて、前記オフセット情報に基づいて、前記複数のストレージ装置のいずれかにデータの読み出しを指示する読み出し部と、
を備えること、
を特徴とするストレージシステム。
【請求項２】
前記複数のストレージ装置は、同じ記憶容量のストレージデバイスを同数ずつ備えることを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記書き込み位置管理部は、前記ストレージ装置ごとの前記初期書き込み開始位置を前記複数のストレージ装置の間で等間隔となる位置に配置することを特徴とする請求項２記載のストレージシステム。
【請求項４】
前記等間隔は、前記ストレージデバイスの記憶容量を前記ストレージ装置の数で除した間隔であることを特徴とする請求項３記載のストレージシステム。
【請求項５】
前記読み出し部は、前記複数のストレージ装置のうち前記オフセット情報の大きさが最小のストレージ装置にデータの読み出しを指示することを特徴とする請求項１記載のストレージシステム。
【請求項６】
前記分配装置は、前記書き込みリクエストのあったデータを記憶容量の範囲で保持するキャッシュメモリを備え、
前記読み出し部は、前記読み出しリクエストを受け付けて前記キャッシュメモリでキャッシュミスした場合に、前記オフセット情報に基づいて前記複数のストレージ装置のいずれかにデータの読み出しを指示することを特徴とする請求項１記載のストレージシステム。
【請求項７】
複数のストレージ装置へのリクエストを分配する分配装置であって、
書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備える前記ストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とを前記ストレージ装置ごとに管理する書き込み位置管理部と、
書き込みリクエストを受け付けて、前記ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、前記複数のストレージ装置に分配して指示する書き込み部と、
前記ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理するオフセット管理部と、
読み出しリクエストを受け付けて、前記オフセット情報に基づいて、前記複数のストレージ装置のいずれかにデータの読み出しを指示する読み出し部と、
を備えることを特徴とする分配装置。
【請求項８】
複数のストレージ装置へのリクエストを分配する分配装置の制御プログラムであって、
前記分配装置に、
書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備える前記ストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とを前記ストレージ装置ごとに管理し、
書き込みリクエストを受け付けて、前記ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、前記複数のストレージ装置に分配して指示し、
前記ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理し、
読み出しリクエストを受け付けて、前記オフセット情報に基づいて、前記複数のストレージ装置のいずれかにデータの読み出しを指示する、
処理を実行させることを特徴とする分配装置の制御プログラム。
【請求項９】
複数のストレージ装置と、前記複数のストレージ装置へのリクエストを分配する分配装置と、を備えるストレージシステムの制御方法であって、
前記分配装置が、
書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備える前記ストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とを前記ストレージ装置ごとに管理し、
書き込みリクエストを受け付けて、前記ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、前記複数のストレージ装置に分配して指示し、
前記ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理し、
読み出しリクエストを受け付けて、前記オフセット情報に基づいて、前記複数のストレージ装置のいずれかにデータの読み出しを指示する、
処理を実行することを特徴とするストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、分配装置、分配装置の制御プログラム、およびストレージシステムの制御方法に関する。
【背景技術】
【０００２】
分散ストレージなどのストレージシステムは、複数のストレージ装置（ストレージノード）に複製データを分散配置してデータの可用性および信頼性を確保するミラーリングをおこなっている。
【０００３】
クライアント・サーバ型の分散ストレージシステムは、プロキシサーバがクライアントからのリクエストを受け付けてストレージ装置にリクエストを転送する。たとえば、プロキシサーバは、書き込みリクエストを受け付けると、すべてのストレージ装置に書き込みリクエストを転送する。また、プロキシサーバは、読み出しリクエストを受け付けると、いずれか１つのストレージ装置に読み出しリクエストを転送する。
【０００４】
ストレージ装置は、一般に複数のＨＤＤ（Hard Disk Drive）を備えるが、書き込みアクセス中のＨＤＤへの読み出しアクセスが発生すると書き込み性能が低下する。そのため、ストレージ装置は、キャッシュメモリを備え、読み出しアクセスに対してキャッシュヒットした場合にキャッシュメモリからデータを読み出し、キャッシュミスした場合にＨＤＤからデータを読み出す。
【０００５】
また、ミラーリングがおこなわれたディスクドライブのうちから優先順位にしたがいアクセス対象のディスクドライブを選択するディスクアレイサブシステムが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２９３６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、キャッシュメモリは高価であり、ストレージシステムは、キャッシュメモリに頼って書き込み性能の改善を図ると高コスト化する。また、ミラーリングがおこなわれたディスクドライブは、優先順位に有意な差が生じるとは限らないため、書き込み性能の低下抑止が限定的となる場合がある。
【０００８】
１つの側面では、本発明は、ストレージデバイスへの書き込みアクセスと、ストレージデバイスからの読み出しアクセスの競合によるアクセス性能低下を抑制できるストレージシステム、分配装置、分配装置の制御プログラム、およびストレージシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、以下に示すような、ストレージシステムが提供される。ストレージシステムは、複数のストレージ装置と、複数のストレージ装置へのリクエストを分配する分配装置と、を備える。ストレージ装置は、書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備える。分配装置は、書き込み位置管理部と、書き込み部と、オフセット管理部と、読み出し部と、を備える。書き込み位置管理部は、ストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とをストレージ装置ごとに管理する。書き込み部は、書き込みリクエストを受け付けて、ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、複数のストレージ装置に分配して指示する。オフセット管理部は、ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理する。読み出し部は、読み出しリクエストを受け付けて、オフセット情報に基づいて、複数のストレージ装置のいずれかにデータの読み出しを指示する。
また、上記目的を達成するために、以下に示すような、分配装置が提供される。分配装置は、複数のストレージ装置へのリクエストを分配する。分配装置は、書き込み位置管理部と、書き込み部と、オフセット管理部と、読み出し部と、を備える。書き込み位置管理部は、書き込み位置に応じてシーケンシャルにデータを記録可能な複数のストレージデバイスを備えるストレージ装置ごとに異なるデータの書き込み位置の初期位置である初期書き込み開始位置と、データの書き込み位置の現在位置である現在書き込み位置とをストレージ装置ごとに管理する。書き込み部は、書き込みリクエストを受け付けて、ストレージ装置ごとの現在書き込み位置へのデータの書き込みを、複数のストレージ装置に分配して指示する。オフセット管理部は、ストレージ装置ごとに、現在書き込み位置に対応するストレージデバイスの先頭からの書き込み位置をオフセット情報として管理する。読み出し部は、読み出しリクエストを受け付けて、オフセット情報に基づいて、複数のストレージ装置のいずれかにデータの読み出しを指示する。
【発明の効果】
【００１０】
１態様によれば、ストレージシステム、分配装置、分配装置の制御プログラム、およびストレージシステムの制御方法において、ストレージデバイスへの書き込みアクセスと、ストレージデバイスからの読み出しアクセスの競合によるアクセス性能低下を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のアクセス分配装置がアクセス装置に転送するアクセス要求の一例を示す図である。
【図４】第２の実施形態のアクセス装置とデバイスエンクロージャの接続例を示す図である。
【図５】第２の実施形態のアクセス分配装置のハードウェア構成の一例を示す図である。
【図６】第２の実施形態のストレージデバイス構成の一例を示す図である。
【図７】第２の実施形態のアクセス分配装置が保持するストレージ装置に共通の共通情報の一例を示す図である。
【図８】第２の実施形態のアクセス分配装置が保持するストレージ装置に固有の固有情報の一例を示す図である。
【図９】第２の実施形態のストレージ装置ごとのオフセット情報と、データの書込み位置と、データの読み出し位置の一例を示す図である。
【図１０】第２の実施形態の初期書き込み位置決定処理のフローチャートを示す図である。
【図１１】第２の実施形態の書き込みリクエスト処理のフローチャートを示す図である。
【図１２】第２の実施形態のオフセット情報更新処理のフローチャートを示す図である。
【図１３】第２の実施形態の読み出しリクエスト処理のフローチャートを示す図である。
【図１４】第２の実施形態のオフセット情報と競合発生確率の関係を示す図である。
【図１５】第３の実施形態のアクセス分配装置のハードウェア構成の一例を示す図である。
【図１６】第３の実施形態の読み出しリクエスト処理のフローチャートを示す図である。
【図１７】第３の実施形態のオフセット情報と競合発生確率の関係を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態を図面を参照して詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１３】
ストレージシステム１は、クライアント・サーバ型の分散ストレージシステムである。ストレージシステム１は、シーケンシャルにデータを記録する。たとえば、ストレージシステム１は、パケット通信のキャプチャなどｗｒｉｔｅ−ｏｎｃｅなワークロードを記録するストレージシステムや、ログ構造化ファイルシステムである。
【００１４】
ストレージシステム１は、分配装置２と、複数のストレージ装置７（７ａ，７ｂ，７ｃ）と、を備える。ストレージシステム１は、３つのストレージ装置７ａ，７ｂ，７ｃが同一のデータを保持する３重のミラーリングをおこなう。なお、ストレージシステム１は、３つのストレージ装置７ａ，７ｂ，７ｃを備えるが、２つであってもよいし、４つ以上のストレージ装置７を備えるものであってもよい。
【００１５】
ストレージ装置７は、複数のストレージデバイス８（ＳＤ（１），ＳＤ（２），ＳＤ（３），ＳＤ（４））を備える。ストレージデバイス８は、データを保持可能であり、たとえば、ＨＤＤやＳＳＤ（Solid State Drive:フラッシュメモリドライブ）などである。なお、ストレージ装置７は、４つのストレージデバイス８（ＳＤ（１），ＳＤ（２），ＳＤ（３），ＳＤ（４））を備えるが、２つ、または３つ、５つ以上のストレージデバイス８を備えるものであってもよい。
【００１６】
各ストレージ装置７におけるストレージデバイス８の構成は、同一である。３つのストレージ装置７ａ，７ｂ，７ｃは、いずれも４つのストレージデバイス８（ＳＤ（１），ＳＤ（２），ＳＤ（３），ＳＤ（４））を備え、各ストレージデバイス８の記憶容量が同じである。各ストレージ装置７は、４つのストレージデバイス８（ＳＤ（１），ＳＤ（２），ＳＤ（３），ＳＤ（４））に書き込み位置に応じてシーケンシャルにデータを記録する。
【００１７】
分配装置２は、複数のストレージ装置７と通信可能に接続する。また、分配装置２は、クライアント９と通信可能に接続する。分配装置２は、クライアント９からのアクセス要求（たとえば、書き込みリクエスト、読み出しリクエストなど）を受け付ける。分配装置２は、受け付けたアクセス要求をストレージ装置７に転送する。たとえば、分配装置２は、クライアント９からの書き込みリクエストを受け付けると、すべてのストレージ装置７に書き込みリクエストを転送する。したがって、分配装置２は、クライアント９からの書き込みリクエストを複数のストレージ装置７に分配する。
【００１８】
また、分配装置２は、クライアント９からの読み出しリクエストを受け付けると、複数あるストレージ装置７のうちの１つに読み出しリクエストを転送する。したがって、分配装置２は、クライアント９からの読み出しリクエストを複数のストレージ装置７のいずれかに分配する。
【００１９】
分配装置２は、書き込み位置管理部３と、書き込み部４と、オフセット管理部５と、読み出し部６と、を備える。書き込み位置管理部３は、ストレージ装置７ごとに異なる初期書き込み開始位置（ＩＷ）と、ストレージ装置７ごとのデータの現在書き込み位置（ＣＷ）とを管理する。
【００２０】
初期書き込み開始位置（ＩＷ）は、データの書き込み位置の初期位置である。ストレージ装置７ａのストレージデバイス８（ＳＤ（１））は、先頭アドレスを初期書き込み開始位置（ＩＷａ）とする。また、ストレージ装置７ｂのストレージデバイス８（ＳＤ（１））は、先頭アドレスからｄ１だけ先を初期書き込み開始位置（ＩＷｂ）とする。また、ストレージ装置７ｃのストレージデバイス８（ＳＤ（１））は、先頭アドレスからｄ２だけ先を初期書き込み開始位置（ＩＷｃ）とする。このとき、ｄ１，ｄ２＞０、かつｄ１≠ｄ２である。
【００２１】
現在書き込み位置（ＣＷ）は、データの書き込み位置の現在位置である。たとえば、ストレージ装置７ａの現在書き込み位置（ＣＷａ）、ストレージ装置７ｂの現在書き込み位置（ＣＷｂ）、およびストレージ装置７ｃの現在書き込み位置（ＣＷｃ）は、各ストレージ装置７のストレージデバイス８（ＳＤ（３））にある。
【００２２】
書き込み部４は、書き込みリクエストを受け付けて、ストレージ装置７（７ａ，７ｂ，７ｃ）ごとの現在書き込み位置（ＣＷ）へのデータの書き込みを、ミラーリング対象のストレージ装置７（７ａ，７ｂ，７ｃ）に分配して指示する。
【００２３】
オフセット管理部５は、ストレージ装置７（７ａ，７ｂ，７ｃ）ごとに、現在書き込み位置（ＣＷ）に対応するストレージデバイス８の先頭からの書き込み位置（ＯＳ）をオフセット情報として管理する。たとえば、ストレージ装置７ａのオフセット情報（ＯＳａ）であり、ストレージ装置７ｂａのオフセット情報（ＯＳｂ）であり、ストレージ装置７ｃのオフセット情報（ＯＳｃ）である。ストレージ装置７（７ａ，７ｂ，７ｃ）ごとにオフセット情報（ＯＳａ，ＯＳｂ，ＯＳｃ）が異なる。これは、書き込み位置管理部３がストレージ装置７ごとにデータの初期書き込み開始位置（ＩＷ）を異ならせたことによる。
【００２４】
読み出し部６は、読み出しリクエストを受け付けて、オフセット情報（ＯＳ）に基づいてミラーリング対象のストレージ装置７（７ａ，７ｂ，７ｃ）のいずれか、すなわちストレージ装置７の１つを選択する。読み出し部６は、選択したストレージ装置７にデータの読み出しを指示する。たとえば、読み出し部６は、オフセット情報（ＯＳａ，ＯＳｂ，ＯＳｃ）の大きさを比較して最小の値のオフセット情報（ＯＳａ）を有するストレージ装置７ａをデータの読み出し先として選択する。このように、最小の値のオフセット情報（ＯＳ）を有するストレージ装置７をデータの読み出し先として選択する場合、書き込みリクエストと読み出しリクエストとによる同一のストレージデバイス８でのアクセス競合によるアクセス性能低下を抑制できる。すなわち、読み出しリクエストに伴うデータ読み出しがランダムアクセスである場合、書き込みリクエストに伴うデータ書き込みをおこなうストレージデバイス８とアクセス競合する確率は、オフセット情報（ＯＳ）の大きさに関係する。
【００２５】
ストレージ装置７ａの現在書き込み位置（ＣＷａ）は、ストレージデバイス８（ＳＤ（３））であるから、オフセット情報（ＯＳａ）の大きさが小さいほど読み出しリクエストによる読み出し位置がストレージデバイス８（ＳＤ（３））である確率は低減する。なお、読み出しリクエストに伴うデータ読み出しがランダムアクセスでなく、アクセス位置が直近の書き込みデータ（現在書き込み位置（ＣＷａ））近傍に多い場合など、アクセス位置が偏在する場合も同様である。
【００２６】
このように、ストレージシステム１は、ストレージデバイス８への書き込みアクセスと、ストレージデバイス８からの読み出しアクセスの競合によるアクセス性能低下を抑制できる。
【００２７】
［第２の実施形態］
次に、第２の実施形態のストレージシステムの構成について図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２８】
ストレージシステム１０は、クライアント・サーバ型の分散ストレージシステムである。ストレージシステム１０は、複数のストレージ装置１２と、ネットワーク１６を介してストレージ装置と通信可能に接続するアクセス分配装置（分配装置）１１を備える。アクセス分配装置１１は、ネットワーク１７を介してクライアント１５と通信可能に接続する。アクセス分配装置１１は、クライアント１５からアクセス要求（たとえば、書き込みリクエスト、読み出しリクエストなど）を受け付けて、受け付けたアクセス要求をストレージ装置１２に転送する。
【００２９】
たとえば、ストレージシステム１０は、パケット通信のキャプチャなどｗｒｉｔｅ−ｏｎｃｅなワークロードを記録するストレージシステムや、ログ構造化ファイルシステムであり、ストレージ装置１２にシーケンシャルにデータを記録する。また、ストレージシステム１０は、複数（たとえば、３つ）のストレージ装置１２が同一のデータを保持する３重のミラーリングをおこなう。
【００３０】
ストレージ装置１２は、アクセス装置１３とデバイスエンクロージャ１４を含む。アクセス装置１３は、アクセス分配装置１１から転送されるアクセス要求に基づいてデバイスエンクロージャ１４にアクセスし、アクセス分配装置１１に応答する。デバイスエンクロージャ１４は、２以上のストレージデバイスにより構成され、データを保持可能にしている。
【００３１】
次に、第２の実施形態のアクセス分配装置１１がアクセス装置１３に転送するアクセス要求について図３を用いて説明する。図３は、第２の実施形態のアクセス分配装置がアクセス装置に転送するアクセス要求の一例を示す図である。
【００３２】
アクセス分配装置１１は、クライアント１５から書き込みリクエストを受け付けると、すべてのアクセス装置１３（１３ａ，１３ｂ，１３ｃ）に対して書き込みリクエストに基づくデータの書き込みを指示（書き込みリクエストの転送）する。これにより、ストレージシステム１０は、３つのストレージ装置１２が同一のデータを保持する３重のミラーリングをおこなう。
【００３３】
また、アクセス分配装置１１は、クライアント１５から読み出しリクエストを受け付けると、アクセス装置１３（１３ａ，１３ｂ，１３ｃ）のうちの１つ（たとえば、アクセス装置１３ｃ）を選択する。アクセス分配装置１１は、選択したアクセス装置１３にデータの読み出しを指示（読み出しリクエストを転送）する。
【００３４】
このとき、データの読み出しを指示されたアクセス装置１３は、データの書き込みを指示されていて、なおかつ１つのＨＤＤが共通のアクセス対象である場合に、アクセス競合が生じてアクセス性能が低下するおそれがある。そのため、アクセス分配装置１１は、読み出しリクエストの転送先として、アクセス競合のおそれの小さなアクセス装置１３を選択する。
【００３５】
次に、第２の実施形態のアクセス装置１３とデバイスエンクロージャ１４について図４を用いて説明する。図４は、第２の実施形態のアクセス装置とデバイスエンクロージャの接続例を示す図である。
【００３６】
アクセス装置１３は、デバイスエンクロージャ１４と接続する。デバイスエンクロージャ１４は、複数のストレージデバイス１８を収容する。ストレージデバイス（記憶装置）１８は、所要の情報を記録可能であり、たとえば、ＨＤＤの他にＳＳＤなどであってもよい。
【００３７】
図４ではデバイスエンクロージャ１４が４つのストレージデバイス１８（ＨＤＤ＃１，ＨＤＤ＃２，ＨＤＤ＃３，ＨＤＤ＃４）を備える例を示すが、２以上であればいくつであってもよい。なお、以降、デバイスエンクロージャ１４は、同じ記憶容量の４つのストレージデバイス１８（ＨＤＤ＃１，ＨＤＤ＃２，ＨＤＤ＃３，ＨＤＤ＃４）を備えるものとして説明する。
【００３８】
なお、アクセス装置１３がデバイスエンクロージャ１４を外部接続したストレージ装置１２を図２に示したが、デバイスエンクロージャ１４は、アクセス装置１３に内蔵されるものであってもよい。また、アクセス装置１３がデバイスエンクロージャ１４なしに、ストレージデバイス１８と接続するものであってもよい。
【００３９】
次に、第２の実施形態のアクセス分配装置１１のハードウェア構成について図５を用いて説明する。図５は、第２の実施形態のアクセス分配装置のハードウェア構成の一例を示す図である。
【００４０】
アクセス分配装置１１は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０６を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４１】
ＲＡＭ１０２は、アクセス分配装置１１の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるオペレーティングシステム（Operating System）のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データ（たとえば、システム制御の情報管理）が格納される。また、ＲＡＭ１０２は、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
【００４２】
バス１０６に接続されている周辺機器としては、不揮発性メモリ１０３、入出力インタフェース１０４、および通信インタフェース１０５がある。
不揮発性メモリ１０３は、アクセス分配装置１１の電源遮断時においても記憶内容を保持する。不揮発性メモリ１０３は、たとえば、ＥＥＰＲＯＭやフラッシュメモリなどの半導体記憶装置や、ＨＤＤなどである。また、不揮発性メモリ１０３は、アクセス分配装置１１の補助記憶装置として使用される。不揮発性メモリ１０３には、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【００４３】
入出力インタフェース１０４は、ストレージデバイス１８などの入出力装置と接続して入出力をおこなう。
通信インタフェース１０５は、ネットワーク１６，１７と接続することで、ネットワーク１６，１７を介して、アクセス装置１３やクライアント１５との間でデータの送受信をおこなう。
【００４４】
以上のようなハードウェア構成によって、第２の実施形態のアクセス分配装置１１の処理機能を実現することができる。なお、アクセス分配装置１１の他、アクセス装置１３、第１の実施形態に示した分配装置２、ストレージ装置７も、図５に示したアクセス分配装置１１と同様のハードウェアにより実現することができる。
【００４５】
アクセス分配装置１１およびアクセス装置１３は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。アクセス分配装置１１およびアクセス装置１３に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、アクセス分配装置１１およびアクセス装置１３に実行させるプログラムを不揮発性メモリ１０３に格納しておくことができる。プロセッサ１０１は、不揮発性メモリ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。またアクセス分配装置１１およびアクセス装置１３に実行させるプログラムを、図示しない光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。メモリ装置は、入出力インタフェース１０４あるいは図示しない機器接続インタフェースとの通信機能を搭載した記録媒体である。たとえば、メモリ装置は、メモリリーダライタによりメモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなうことができる。メモリカードは、カード型の記録媒体である。
【００４６】
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０１からの制御により、不揮発性メモリ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４７】
次に、第２の実施形態のストレージ装置の初期書き込み開始位置について図６を用いて説明する。図６は、第２の実施形態のストレージデバイス構成の一例を示す図である。
ストレージシステム１０は、３台のストレージ装置１２（ストレージ装置＃１，＃２，＃３）を備えているとする。各ストレージ装置１２は、４台のＨＤＤ（ＨＤＤ＃１，＃２，＃３，＃４）を備え、ＨＤＤ＃１からＨＤＤ＃２，ＨＤＤ＃３，ＨＤＤ＃４の順にシーケンシャルにデータの書き込みをおこなう。このとき、各ストレージ装置１２は、シーケンシャルなデータ書き込み順で１番目のＨＤＤ＃１の書き込み開始位置（初期書き込み開始位置）がそれぞれ異なるアドレスである。
【００４８】
ストレージ装置＃１は、アドレス（ＡＤＲ０）を初期書き込み開始位置として、アドレス（ＡＤＲ０）からアドレス（ＡＤＲＥ）までの領域（ＳＲ１）にシーケンシャルにデータの書き込みをおこなう。ストレージ装置＃２は、アドレス（ＡＤＲ１）を初期書き込み開始位置として、アドレス（ＡＤＲ１）からアドレス（ＡＤＲＥ）までの領域（ＳＲ３）にシーケンシャルにデータの書き込みをおこなう。なお、ストレージ装置＃２は、アドレス（ＡＤＲＥ）までのシーケンシャルなデータの書き込みを終えた後、アドレス（ＡＤＲ０）からアドレス（ＡＤＲ１）までの領域（ＳＲ２）にシーケンシャルにデータの書き込みをおこなうものであってもよい。ストレージ装置＃３は、アドレス（ＡＤＲ２）を初期書き込み開始位置として、アドレス（ＡＤＲ２）からアドレス（ＡＤＲＥ）までの領域（ＳＲ５）にシーケンシャルにデータの書き込みをおこなう。なお、ストレージ装置＃３は、アドレス（ＡＤＲＥ）までのシーケンシャルなデータの書き込みを終えた後、アドレス（ＡＤＲ０）からアドレス（ＡＤＲ２）までの領域（ＳＲ４）にシーケンシャルにデータの書き込みをおこなうものであってもよい。
【００４９】
このように、ストレージシステム１０は、システムの稼働開始時に、３台のストレージ装置１２がＨＤＤ＃１のそれぞれ異なる初期書き込み開始位置からデータの書き込みを開始する。
【００５０】
なお、初期書き込み開始位置は、ストレージ装置１２の数がＮｓ（≧２）、ＨＤＤの記憶容量がＣHDDのとき、ｉ（ｉ＝１，２，…，Ｎｓ）番目のストレージ装置１２の初期書き込み開始位置（ＡＤＲｉ）を、以下に示す（１）式のように決定することができる。
【００５１】
ＡＤＲｉ＝（ｉ−１）×ＣHDD／Ｎｓ  ・・・（１）
なお、複数のストレージ装置１２の初期書き込み開始位置をそれぞれ等間隔となるように決定したが、これは、後述するオフセット間隔が最適化され競合発生確率が最小となるというシミュレーション結果を受けたものである。
【００５２】
次に、第２の実施形態のアクセス分配装置１１が保持するストレージ装置１２に共通の共通情報と、アクセス分配装置１１が保持するストレージ装置１２に固有の固有情報について図７から図９を用いて説明する。まず、アクセス分配装置１１が保持するストレージ装置１２に共通の共通情報について図７を用いて説明する。図７は、第２の実施形態のアクセス分配装置が保持するストレージ装置に共通の共通情報の一例を示す図である。
【００５３】
アクセス分配装置１１は、共通情報２０を保持する。たとえば、アクセス分配装置１１は、アクセス分配装置１１の記憶部（不揮発性メモリ１０３またはＲＡＭ１０２）に共通情報２０を記憶する。共通情報２０は、すべてのストレージ装置１２に共通の情報である。
【００５４】
共通情報２０は、少なくともストレージ容量２１を含み、ストレージ構成２２、データフォーマット２３など、その他の情報を含むものであってもよい。ストレージ容量２１は、ストレージデバイス１８の記憶容量であり、ＨＤＤ＃１，＃２，＃３，＃４に共通の記憶容量である。ストレージ構成２２は、ストレージ装置１２が備えるストレージデバイス１８の数である。データフォーマット２３は、ストレージデバイス１８が保持するデータのフォーマットである。
【００５５】
次に、アクセス分配装置１１が保持するストレージ装置１２に固有の固有情報について図８を用いて説明する。図８は、第２の実施形態のアクセス分配装置が保持するストレージ装置に固有の固有情報の一例を示す図である。
【００５６】
アクセス分配装置１１は、固有情報２５を保持する。たとえば、アクセス分配装置１１は、アクセス分配装置１１の記憶部（不揮発性メモリ１０３またはＲＡＭ１０２）に固有情報２５を記憶する。固有情報２５は、ストレージ装置１２に固有の情報である。
【００５７】
固有情報２５は、少なくとも書き込み開始アドレス（初期書き込み開始位置）２６を含む。たとえば、ストレージ装置＃１の書き込み開始アドレス２６は、アドレス（ＡＤＲ０）であり、ストレージ装置＃２の書き込み開始アドレス２６は、アドレス（ＡＤＲ１）であり、ストレージ装置＃３の書き込み開始アドレス２６は、アドレス（ＡＤＲ２）である。
【００５８】
また、アクセス分配装置１１は、ストレージ装置１２ごとのオフセット情報２７を保持する。たとえば、アクセス分配装置１１は、アクセス分配装置１１の記憶部（不揮発性メモリ１０３またはＲＡＭ１０２）にオフセット情報２７を記憶する。オフセット情報２７は、ストレージ装置１２ごとの現在のデータ書き込み位置（現在書き込み位置）に応じて変化する不定情報である。
【００５９】
ここで、オフセット情報２７について図９を用いて説明する。図９は、第２の実施形態のストレージ装置ごとのオフセット情報と、データの書込み位置と、データの読み出し位置の一例を示す図である。
【００６０】
オフセット情報２７は、現在のデータ書き込み位置のあるＨＤＤの先頭アドレスから現在のデータ書き込み位置のアドレスとの差分を示す情報である。たとえば、ストレージ装置＃１の現在のデータ書き込み位置Ｗは、ＨＤＤ＃３にあり、オフセット情報２７は、ＯＳａである。ストレージ装置＃２の現在のデータ書き込み位置Ｗは、ＨＤＤ＃４にあり、オフセット情報２７は、ＯＳｂである。ストレージ装置＃３の現在のデータ書き込み位置Ｗは、ＨＤＤ＃４にあり、オフセット情報２７は、ＯＳｃである。ここで、ストレージ装置＃１，＃２，＃３のオフセット情報２７の大きさを比較すると、図９に示した例では、ＯＳｂ＜ＯＳｃ＜ＯＳａである。
【００６１】
このとき、アクセス分配装置１１がクライアント１５からデータの読み出しリクエストを受け付けたとする。ログなどのデータをシーケンシャルに書き込む場合、経験的にログ構造化ファイルシステムは、古いデータよりも新しいデータに対するアクセス頻度が高く、データの読み出しリクエストは、データの書込み位置近傍が多い。図９に示した例では、ストレージ装置＃１のデータ読み出し位置ＲはＨＤＤ＃３にあり、ストレージ装置＃２のデータ読み出し位置ＲはＨＤＤ＃３にあり、ストレージ装置＃３のデータ読み出し位置ＲはＨＤＤ＃４にある。
【００６２】
このとき、ストレージ装置＃１は、現在のデータ書き込み位置Ｗとデータ読み出し位置ＲがともにＨＤＤ＃３にあるため、データ書き込みとデータ読み出しとでアクセス競合となる。また、ストレージ装置＃３は、現在のデータ書き込み位置Ｗとデータ読み出し位置ＲがともにＨＤＤ＃４にあるため、データ書き込みとデータ読み出しとでアクセス競合となる。一方、ストレージ装置＃２は、現在のデータ書き込み位置ＷがＨＤＤ＃４にあり、データ読み出し位置ＲがＨＤＤ＃３にあるため、データ書き込みとデータ読み出しとでアクセス競合とならない。
【００６３】
このことから、アクセス分配装置１１は、オフセット情報２７の大きさが最小となるストレージ装置＃２にデータの読み出しリクエストを転送することでストレージシステム１０のアクセス競合によるアクセス性能の低下を抑制できる。
【００６４】
次に、第２の実施形態の初期書き込み位置決定処理について図１０を用いて説明する。図１０は、第２の実施形態の初期書き込み位置決定処理のフローチャートを示す図である。
【００６５】
初期書き込み位置決定処理は、ストレージシステム１０を構成するストレージ装置１２ごとの初期書き込み位置を決定する処理である。初期書き込み位置決定処理は、システムの稼働開始に先立ち、初期化処理の１つとしてアクセス分配装置１１が実行する処理である。
【００６６】
［ステップＳ１１］アクセス分配装置１１の書き込み位置管理部（プロセッサ１０１）は、記憶部（不揮発性メモリ１０３またはＲＡＭ１０２）にアクセスして共通情報２０を取得する。
【００６７】
［ステップＳ１２］書き込み位置管理部は、ストレージシステム１０を構成するすべてのストレージ装置１２のうち初期書き込み位置決定対象のストレージ装置１２を特定する。
【００６８】
［ステップＳ１３］書き込み位置管理部は、特定したストレージ装置１２の初期書き込み位置を算出する。たとえば、書き込み位置管理部は、上述した（１）式にしたがい初期書き込み位置を算出することができる。
【００６９】
［ステップＳ１４］書き込み位置管理部は、算出した初期書き込み位置を、特定したストレージ装置１２の初期書き込み位置に決定し、固有情報２５の書き込み開始アドレス２６として記憶部に格納する。
【００７０】
［ステップＳ１５］書き込み位置管理部は、ストレージシステム１０を構成するすべてのストレージ装置１２について初期書き込み位置を決定したか否かを判定する。書き込み位置管理部は、すべてのストレージ装置１２について初期書き込み位置を決定していない場合にステップＳ１２にすすむ。一方、書き込み位置管理部は、すべてのストレージ装置１２について初期書き込み位置を決定している場合に初期書き込み位置決定処理を終了する。
【００７１】
次に、第２の実施形態の書き込みリクエスト処理について図１１を用いて説明する。図１１は、第２の実施形態の書き込みリクエスト処理のフローチャートを示す図である。
書き込みリクエスト処理は、クライアント１５から書き込みリクエストを受信することを契機にしてアクセス分配装置１１が実行する処理である。
【００７２】
［ステップＳ２１］アクセス分配装置１１の書き込み部（プロセッサ１０１）は、記憶部（不揮発性メモリ１０３またはＲＡＭ１０２）から共通情報２０を取得する。
［ステップＳ２２］書き込み部は、書き込みリクエストから書き込み対象のデータのデータサイズを取得する。
【００７３】
［ステップＳ２３］書き込み部は、ストレージシステム１０を構成するすべてのストレージ装置１２について記憶部から固有情報２５である書き込み開始アドレス２６を取得する。
【００７４】
［ステップＳ２４］書き込み部は、ストレージシステム１０を構成するすべてのストレージ装置１２について記憶部からオフセット情報２７を取得する。
［ステップＳ２５］アクセス分配装置１１のオフセット管理部（プロセッサ１０１）は、オフセット情報更新処理を実行する。オフセット情報更新処理は、ストレージシステム１０を構成するすべてのストレージ装置１２についてオフセット情報２７を更新する処理である。オフセット情報更新処理については、図１２を用いて後で説明する。
【００７５】
［ステップＳ２６］書き込み部は、ストレージシステム１０を構成するすべてのストレージ装置１２に、クライアント１５から受信した書き込みリクエストを転送して、書き込みリクエスト処理を終了する。
【００７６】
次に、第２の実施形態のオフセット情報更新処理について図１２を用いて説明する。図１２は、第２の実施形態のオフセット情報更新処理のフローチャートを示す図である。
オフセット情報更新処理は、書き込みリクエスト処理のステップＳ２５でオフセット管理部が実行する処理である。
【００７７】
［ステップＳ３１］オフセット管理部は、ストレージシステム１０を構成するすべてのストレージ装置１２のうちオフセット情報更新対象のストレージ装置１２を特定する。
［ステップＳ３２］オフセット管理部は、特定したストレージ装置１２に対応するオフセット情報２７に、書き込みリクエスト処理のステップＳ２２で取得したデータサイズを加算する。なお、加算するデータサイズは、ＨＤＤにデータを保持する形式（フォーマット）に依存する。そのため、加算するデータサイズは、書き込みデータを所要の形式に変換した後のデータサイズとなる。たとえば、ＨＤＤにデータを保持する形式がデータの前に固定長のヘッダが付加される形式の場合には、書き込みデータのデータサイズとヘッダのデータサイズの和が加算されるデータサイズとなる。
【００７８】
［ステップＳ３３］オフセット管理部は、加算値（加算結果）と、書き込みリクエスト処理のステップＳ２１で取得したストレージ容量２１（共通情報２０）とを比較する。オフセット管理部は、加算値がストレージ容量２１を超える場合にステップＳ３４にすすみ、加算値がストレージ容量２１を超えない場合にステップＳ３５にすすむ。
【００７９】
［ステップＳ３４］オフセット管理部は、加算値からストレージ容量２１を減算する。
［ステップＳ３５］オフセット管理部は、算出結果を新たなオフセット情報２７として、オフセット情報２７を更新する。
【００８０】
［ステップＳ３６］オフセット管理部は、ストレージシステム１０を構成するすべてのストレージ装置１２についてオフセット情報２７を更新したか否かを判定する。オフセット管理部は、すべてのストレージ装置１２についてオフセット情報２７を更新していない場合にステップＳ３１にすすむ。一方、オフセット管理部は、すべてのストレージ装置１２についてオフセット情報２７を更新している場合にオフセット情報更新処理を終了する。
【００８１】
次に、第２の実施形態の読み出しリクエスト処理について図１３を用いて説明する。図１３は、第２の実施形態の読み出しリクエスト処理のフローチャートを示す図である。
読み出しリクエスト処理は、クライアント１５から読み出しリクエストを受信することを契機にしてアクセス分配装置１１が実行する処理である。
【００８２】
［ステップＳ４１］アクセス分配装置１１の読み出し部（プロセッサ１０１）は、記憶部からオフセット情報２７を取得する。
［ステップＳ４２］読み出し部は、ストレージシステム１０を構成するすべてのストレージ装置１２のうちからオフセット情報２７が最小のストレージ装置１２を特定する。
【００８３】
［ステップＳ４３］読み出し部は、クライアント１５から受信した読み出しリクエストを、特定したストレージ装置１２に転送して読み出しリクエスト処理を終了する。
このようにして、アクセス分配装置１１は、読み出しリクエストの転送先を決定するので、書き込みリクエストと読み出しリクエストとが１つのストレージ装置１２の１つのストレージデバイス１８で競合する確率を低減することができる。これにより、ストレージシステム１０は、アクセス競合によるアクセス性能の低下を抑制できる。
【００８４】
次に、第２の実施形態のストレージシステム１０におけるアクセス競合によるアクセス性能の低下の抑制効果について説明する。
ストレージ装置１２の数をＮｓ（≧２）、１台のストレージ装置１２あたりのＨＤＤの数をＮHDD、ＨＤＤの記憶容量をＣHDDとする。ここで、読み出し対象となるデータの範囲は、経験的にログ構造化ファイルシステムのアクセス頻度がより新しいデータに対して高いことに鑑みて、現在のデータ書き込み位置Ｗからストレージ装置１２が格納しているデータサイズの１／２の範囲と仮定する。読み出し対象となるデータの範囲、すなわち読み出しリクエストの対象範囲ＴＳ（Ｒ）は、以下に示す（２）式のようになる。
【００８５】
ＴＳ（Ｒ）＝（ＮHDD×ＣHDD）／２  ・・・（２）
読み出しリクエストは、読み出しリクエストの対象範囲ＴＳ（Ｒ）に対して一様な確率で発生すると、書き込みリクエストと読み出しリクエストが同一のＨＤＤに対してアクセスする平均アクセス競合確率ＣＰ１は、以下に示す（３）式のようになる。
【００８６】
ＣＰ１＝１／（ＮHDD×Ｎｓ）  ・・・（３）
一方、ストレージ装置１２ごとに初期書き込み開始位置を変えない場合、書き込みリクエストと読み出しリクエストが同一のＨＤＤに対してアクセスする平均アクセス競合確率ＣＰ２は、以下に示す（４）式のようになる。
【００８７】
ＣＰ１＝１／ＮHDD  ・・・（４）
ストレージ装置１２の数をＮｓ＝３、１台のストレージ装置１２あたりのＨＤＤの数をＮHDD＝２の場合の、ストレージ装置＃１のアクセス競合の確率のシミュレーション結果を図１４に示す。図１４は、第２の実施形態のオフセット情報と競合発生確率の関係を示す図である。
【００８８】
ストレージシステム１０は、アクセス分配装置１１がオフセット情報２７に基づいて読み出しリクエストの転送先を決定するので、アクセス競合確率は、実線に示すような鋸歯形状となる。一方、ストレージ装置１２ごとに初期書き込み開始位置を変えない場合、アクセス競合確率は、一点鎖線に示すように単調増加となる。
【００８９】
このように、ストレージシステム１０は、アクセス競合確率を低減することができる。よって、ストレージシステム１０は、アクセス競合によるアクセス性能の低下を抑制できる。また、ストレージシステム１０は、読み出しリクエストの発生が不確定な場合にまでキャッシュメモリをあらかじめ備えなくともよく、システム構築のコストメリットが大きい。
【００９０】
［第３の実施形態］
次に、第３の実施形態のストレージシステムについて説明する。第３の実施形態のストレージシステムは、アクセス分配装置がキャッシュメモリを備える点で第２の実施形態のストレージシステムと異なる。
【００９１】
まず、第３の実施形態のアクセス分配装置について図１５を用いて説明する。図１５は、第３の実施形態のアクセス分配装置のハードウェア構成の一例を示す図である。なお、第２の実施形態と同様の構成については、符号を同一にして説明を省略する。
【００９２】
アクセス分配装置３０は、第２の実施形態のアクセス分配装置１１が備える構成に加えて、キャッシュメモリ１０７を備える。キャッシュメモリ１０７は、直近の書き込みリクエストのあったデータを記憶容量の範囲で保持する。なお、キャッシュメモリ１０７の記憶容量を共通情報２０の１つとしてもよい。
【００９３】
次に、第３の実施形態の読み出しリクエスト処理について図１６を用いて説明する。図１６は、第３の実施形態の読み出しリクエスト処理のフローチャートを示す図である。
読み出しリクエスト処理は、クライアント１５から読み出しリクエストを受信することを契機にしてアクセス分配装置３０が実行する処理である。
【００９４】
［ステップＳ５１］アクセス分配装置３０の読み出し部（プロセッサ１０１）は、キャッシュメモリ１０７が読み出しリクエストの対象データを保持（キャッシュヒット）しているか否かを判定する。読み出し部は、キャッシュヒットした場合にステップＳ５２にすすみ、キャッシュミスした場合にステップＳ５３にすすむ。
【００９５】
［ステップＳ５２］読み出し部は、キャッシュメモリ１０７から読み出しリクエストの対象データを読み出して、クライアント１５に読み出しリクエストを応答して読み出しリクエスト処理を終了する。
【００９６】
［ステップＳ５３］読み出し部は、記憶部からオフセット情報２７を取得する。
［ステップＳ５４］読み出し部は、ストレージシステム１０を構成するすべてのストレージ装置１２のうちからオフセット情報２７が最小のストレージ装置１２を特定する。
【００９７】
［ステップＳ５５］読み出し部は、クライアント１５から受信した読み出しリクエストを、特定したストレージ装置１２に転送して読み出しリクエスト処理を終了する。
このようにして、アクセス分配装置３０は、読み出しリクエストの転送先を決定するので、書き込みリクエストと読み出しリクエストとが１つのストレージ装置１２の１つのストレージデバイス１８で競合する確率を低減することができる。これにより、ストレージシステム１０は、アクセス競合によるアクセス性能の低下を抑制できる。また、アクセス分配装置３０は、キャッシュメモリ１０７によってもアクセス性能の改善を図ることができる。
【００９８】
次に、第３の実施形態のストレージシステム１０におけるアクセス競合によるアクセス性能の低下の抑制効果について説明する。
ストレージ装置１２の数をＮｓ（≧２）、１台のストレージ装置１２あたりのＨＤＤの数をＮHDD、ＨＤＤの記憶容量をＣHDD、キャッシュメモリ１０７の記憶容量をＣCACHEとする。ここで、読み出し対象となるデータの範囲は、経験的にログ構造化ファイルシステムのアクセス頻度がより新しいデータに対して高いことに鑑みて、現在のデータ書き込み位置Ｗからストレージ装置１２が格納しているデータサイズの１／２の範囲と仮定する。読み出し対象となるデータの範囲、すなわち（２）式に示した読み出しリクエストの対象範囲ＴＳ（Ｒ）のうち、現在のデータ書き込み位置ＷからＣCACHEの範囲にあるデータは、ＨＤＤへのアクセスによらずキャッシュメモリ１０７へのアクセスによるとする。
【００９９】
読み出しリクエストは、読み出しリクエストの対象範囲ＴＳ（Ｒ）に対して一様な確率で発生すると、書き込みリクエストと読み出しリクエストが同一のＨＤＤに対してアクセスする平均アクセス競合確率ＣＰ３は、以下に示す（５）式のようになる。
【０１００】
ＣCACHE＜（ＣHDD／Ｎｓ）の場合：
ＣＰ３＝｛１／（ＮHDD×Ｎｓ）｝×〔１−｛（ＣCACHE×Ｎｓ）／ＣHDD）｝〕2
ＣCACHE≧（ＣHDD／Ｎｓ）の場合：ＣＰ３＝０
・・・（５）
一方、ストレージ装置１２ごとに初期書き込み開始位置を変えない場合、書き込みリクエストと読み出しリクエストが同一のＨＤＤに対してアクセスする平均アクセス競合確率ＣＰ４は、以下に示す（６）式のようになる。
【０１０１】
ＣＰ４＝（１／ＮHDD）×｛１−（ＣCACHE／ＣHDD）｝2  ・・・（６）
ストレージ装置１２の数をＮｓ＝３、１台のストレージ装置１２あたりのＨＤＤの数をＮHDD＝２、ＣCACHE＝ＣHDD／１０の場合の、ストレージ装置＃１のアクセス競合の確率のシミュレーション結果を図１７に示す。図１７は、第３の実施形態のオフセット情報と競合発生確率の関係を示す図である。
【０１０２】
ストレージシステム１０は、キャッシュミス時にアクセス分配装置３０がオフセット情報２７に基づいて読み出しリクエストの転送先を決定するので、アクセス競合確率は、実線に示すようなキャッシュヒットとキャッシュミスを繰り返す鋸歯形状となる。一方、ストレージ装置１２ごとに初期書き込み開始位置を変えない場合、アクセス競合確率は、ＣCACHEの範囲でキャッシュヒットするものの、キャッシュミス後は一点鎖線に示すように単調増加となる。
【０１０３】
このように、ストレージシステム１０は、アクセス競合確率を低減することができる。よって、ストレージシステム１０は、アクセス競合によるアクセス性能の低下を抑制できる。また、ストレージシステム１０は、読み出しリクエストの発生が不確定な場合にまでキャッシュメモリを過大に備えなくともよく、システム構築のコストメリットが大きい。
【０１０４】
なお、ストレージシステム１０は、すべてのストレージ装置１２が同じ記憶容量のストレージデバイス１８を同数備えるとしたが、ストレージ装置１２ごとにストレージデバイス１８の構成を違えるものであっても適用可能である。たとえば、ＨＤＤ（ＨＤＤ＃１，＃２，＃３，＃４）の記憶容量が異なる時は、ＨＤＤの記憶容量としてＣHDDに平均値や中央値、最頻値などの代表値を採用することができる。ストレージシステム１０は、このようなＣHDDを用いて初期書き込み開始位置を算出することができる。
【０１０５】
このような場合であっても、ストレージ装置１２ごとに初期書き込み開始位置を変えない場合と比較して、ストレージシステム１０は、確率的にアクセス競合確率を低減することができる。
【０１０６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、分配装置２，１１，３０、ストレージ装置１２、アクセス装置１３が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０７】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０８】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０９】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１１０】
１，１０  ストレージシステム
２  分配装置
３  書き込み位置管理部
４  書き込み部
５  オフセット管理部
６  読み出し部
７，７ａ，７ｂ，７ｃ，１２  ストレージ装置
８，１８  ストレージデバイス
９，１５  クライアント
１１，３０  アクセス分配装置
１３，１３ａ，１３ｂ，１３ｃ  アクセス装置
１４  デバイスエンクロージャ
１６，１７  ネットワーク
２０  共通情報
２１  ストレージ容量
２２  ストレージ構成
２３  データフォーマット
２５  固有情報
２６  書き込み開始アドレス
２７  オフセット情報
１０１  プロセッサ
１０２  ＲＡＭ
１０３  不揮発性メモリ
１０４  入出力インタフェース
１０５  通信インタフェース
１０６  バス
１０７  キャッシュメモリ
【図１】
2014191773.tif 000003
【図２】
2014191773.tif 000004
【図３】
2014191773.tif 000005
【図４】
2014191773.tif 000006
【図５】
2014191773.tif 000007
【図６】
2014191773.tif 000008
【図７】
2014191773.tif 000009
【図８】
2014191773.tif 000010
【図９】
2014191773.tif 000011
【図１０】
2014191773.tif 000012
【図１１】
2014191773.tif 000013
【図１２】
2014191773.tif 000014
【図１３】
2014191773.tif 000015
【図１４】
2014191773.tif 000016
【図１５】
2014191773.tif 000017
【図１６】
2014191773.tif 000018
【図１７】
2014191773.tif 000019