(57)【要約】  ストレージシステムは、データを格納する複数の格納装置と、データを保持するキャッシュメモリと、情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、いずれかの格納装置へアクセスすると共に、対象データをキャッシュメモリへ格納するアクセス制御部と、キャッシュメモリへ格納した対象データを、複数の格納装置のうち対象データが格納されていない格納装置へ書き込む書込部と、を含む。
2013093994.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する複数の格納装置と、
データを保持するキャッシュメモリと、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、いずれかの前記格納装置へアクセスすると共に、前記対象データを前記キャッシュメモリへ格納するアクセス制御部と、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む書込部と、
を備えることを特徴とするストレージシステム。
【請求項２】
前記ストレージシステムは、さらに、
前記格納装置に対する、読み込みまたは書き込みによるアクセス負荷の監視を行う負荷監視部を備え、
前記アクセス制御部は、前記情報処理端末から前記アクセス要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記アクセス制御部は、前記情報処理端末から前記対象データへの読み込み要求があった場合、前記監視の結果に基づいて、該対象データを格納する前記格納装置のうち前記アクセス負荷の最も少ない格納装置から該対象データを取得して、該対象データを前記キャッシュメモリへ格納し、該対象データを前記情報処理端末へ送信する
ことを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記アクセス制御部は、前記情報処理端末から対象データの書き込み要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置に前記対象データを書き込み、該対象データを前記キャッシュメモリへ格納し、
前記書込部は、前記キャッシュメモリへ格納した前記対象データを、前記書込みを行った格納装置以外の格納装置へ書き込む
ことを特徴とする請求項２に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、さらに、
前記複数の格納装置のボリュームを仮想化した仮想ボリュームのレプリカの書込みアクセス負荷が閾値を超えた場合、または、前記レプリカの作成において前記格納装置の空き容量が第1の閾値より少ない場合、前記仮想ボリュームのレプリカが前記複数の格納装置に３以上あれば、いずれかの格納装置に格納された前記レプリカを削除するレプリカ削除部
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記レプリカ削除部は、前記監視の結果に基づいて、前記レプリカを含む格納装置のうち前記アクセス負荷の最も少ない格納装置のレプリカを選択し、時刻毎に集計した前記格納装置に対するアクセス頻度を示すアクセス頻度情報に基づいて、前記選択したレプリカに対して、現時刻以降、第2の閾値を越えるアクセス頻度の読み込みアクセスがないと判定した場合、前記選択したレプリカを削除する
ことを特徴とする請求項５に記載のストレージシステム。
【請求項７】
前記ストレージシステムは、さらに、
いずれかの前記格納装置に対する時刻毎の前記アクセス負荷のうちいずれかの時間帯のアクセス負荷と、全ての前記格納装置に対する該時間帯の前記アクセス負荷の平均との差分が第3の閾値を超えている場合において、該時間帯を細分化し、該細分化したいずれかの時間帯のうち前記いずれかの格納装置のいずれかのディスクに対するアクセス負荷と、該いずれかの格納装置の全ディクスの該細分化したいずれかの時間帯のアクセス負荷の平均との差分が第4の閾値より小さい場合、該細分化したいずれかの時間帯より前で前記いずれかの格納装置のアクセス負荷が第5の閾値を超えていない時間に、最もアクセス負荷の多いディスクにレプリカを作成するレプリカ作成部
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項８】
コンピュータに、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、データを格納する複数の格納装置のうちいずれかの格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む
処理を実行させるデータリバランシングプログラム。
【請求項９】
前記コンピュータに、さらに、
前記格納装置に対する、読み込みまたは書き込みによるアクセス負荷の監視を行う処理を実行させ、
前記情報処理端末から前記アクセス要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納する
ことを特徴とする請求項８に記載のデータリバランシングプログラム。
【請求項１０】
前記情報処理端末から前記対象データへの読み込み要求があった場合、前記監視の結果に基づいて、該対象データを格納する前記格納装置のうち前記アクセス負荷の最も少ない格納装置から該対象データを取得して、該対象データを前記キャッシュメモリへ格納し、該対象データを前記情報処理端末へ送信する
ことを特徴とする請求項９に記載のデータリバランシングプログラム。
【請求項１１】
前記情報処理端末から対象データの書き込み要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置に前記対象データを書き込み、該対象データを前記キャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記書込みを行った格納装置以外の格納装置へ書き込む
ことを特徴とする請求項９に記載のデータリバランシングプログラム。
【請求項１２】
前記コンピュータに、さらに、
前記複数の格納装置のボリュームを仮想化した仮想ボリュームのレプリカの書込みアクセス負荷が閾値を超えた場合、または、前記レプリカの作成において前記格納装置の空き容量が第1の閾値より少ない場合、前記仮想ボリュームのレプリカが前記複数の格納装置に３以上あれば、いずれかの格納装置に格納された前記レプリカを削除する
処理を実行させる請求項８に記載のデータリバランシングプログラム。
【請求項１３】
前記監視の結果に基づいて、前記レプリカを含む格納装置のうち前記アクセス負荷の最も少ない格納装置のレプリカを選択し、時刻毎に集計した前記格納装置に対するアクセス頻度を示すアクセス頻度情報に基づいて、前記選択したレプリカに対して、現時刻以降、第2の閾値を越えるアクセス頻度の読み込みアクセスがないと判定した場合、前記選択したレプリカを削除する
ことを特徴とする請求項１２に記載のデータリバランシングプログラム。
【請求項１４】
前記コンピュータに、さらに、
いずれかの前記格納装置に対する時刻毎の前記アクセス負荷のうちいずれかの時間帯のアクセス負荷と、全ての前記格納装置に対する該時間帯の前記アクセス負荷の平均との差分が第3の閾値を超えている場合において、該時間帯を細分化し、該細分化したいずれかの時間帯のうち前記いずれかの格納装置のいずれかのディスクに対するアクセス負荷と、該いずれかの格納装置の全ディクスの該細分化したいずれかの時間帯のアクセス負荷の平均との差分が第4の閾値より小さい場合、該細分化したいずれかの時間帯より前で前記いずれかの格納装置のアクセス負荷が第5の閾値を超えていない時間に、最もアクセス負荷の多いディスクにレプリカを作成する
処理を実行させる請求項８に記載のデータリバランシングプログラム。
【請求項１５】
コンピュータにより実行される、格納装置間のデータのリバランシング方法であって、
前記コンピュータは、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、データを格納する複数の格納装置のうちいずれかの格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む
処理を実行するデータリバランシング方法。
【請求項１６】
前記コンピュータは、さらに、
前記格納装置に対する、読み込みまたは書き込みによるアクセス負荷の監視を行い、
前記情報処理端末から前記アクセス要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納する
ことを特徴とする請求項１５に記載のデータリバランシング方法。
【請求項１７】
前記コンピュータは、
前記情報処理端末から前記対象データへの読み込み要求があった場合、前記監視の結果に基づいて、該対象データを格納する前記格納装置のうち前記アクセス負荷の最も少ない格納装置から該対象データを取得して、該対象データを前記キャッシュメモリへ格納し、該対象データを前記情報処理端末へ送信する
ことを特徴とする請求項１６に記載のデータリバランシング方法。
【請求項１８】
前記コンピュータは、
前記情報処理端末から対象データの書き込み要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置に前記対象データを書き込み、該対象データを前記キャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記書込みを行った格納装置以外の格納装置へ書き込む
ことを特徴とする請求項１６に記載のデータリバランシング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の技術は、ストレージシステムに関する。
【背景技術】
【０００２】
ストレージシステムは、複数のストレージ装置と、それらを統括するサーバ装置とを含む。スケールアウト型ストレージシステムでは、ストレージ装置の追加時にデータの平準化を確保するため、ストレージ装置間でデータリバランス（データの再配置）処理が行われる。データリバランスは多くの場合、ストレージ装置において偏ったデータを別のストレージ装置にコピーする。そのため、データリバランスを行っている間は、ネットワーク帯域とシステムリソースが使用される。【０００３】
論理ボリュームの負荷分散に関して、次の論理ボリューム負荷分散技術がある。ストレージ装置において、性能測定機構は、データ転送機構により転送されるデータ量およびコマンド処理量に基づいて、論理ボリュームの負荷状況を測定する。コピー機構は、性能測定機構の測定結果に基づいて、物理ボリュームに設定された論理ボリュームの内容を予備物理ボリュームに設定された論理ボリュームにコピーする。複数のコピーしたデータを持つことで、データアクセスの負荷分散を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０５３６０１号公報
【特許文献２】特開２００７−１４９０６８号公報
【特許文献３】特開２００５−２８４６３２号公報
【特許文献４】特開２００６−９９７４８号公報
【特許文献５】特開２００４−５６３４号公報
【特許文献６】特開２００７−７２５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常行われるデータリバランシングでは、ストレージ装置に格納されているデータを、追加したストレージにコピーすることで、特定のストレージへのアクセス集中を回避することができる。このコピー処理には、ストレージ装置間のネットワーク帯域を使用する。したがって、ストレージ装置間でのデータのコピーは、ネットワークに負荷がかかるため、ストレージ装置の負荷が低い時間帯にコピーを行うことが考えられる。【０００６】
しかしながら、ストレージ統合を行ったストレージ装置の場合、そのストレージ装置は、複数のシステムから利用されるため、ネットワークが低負荷となる時間帯が確保できないケースも考えられる。また、データのコピー中は、ネットワークの帯域を一度に使用するため、そのコピーが、ストレージ装置とサーバ間の入出力のボトルネックとなる要因になる。【０００７】
１つの側面では、本発明は、ストレージシステムにおけるデータリバランスの効率化を図る技術を提供する。
【課題を解決するための手段】
【０００８】
ストレージシステムは、複数の格納装置、キャッシュメモリ、アクセス制御部、書込部を含む。格納装置は、データを格納する。キャッシュメモリは、データを保持する。アクセス制御部は、情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、いずれかの前記格納装置へアクセスすると共に、前記対象データを前記キャッシュメモリへ格納する。書込部は、前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む。
【発明の効果】
【０００９】
１実施形態によれば、ストレージシステムにおけるデータリバランスの効率化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態におけるストレージシステムの構成を示す。
【図２】本実施形態におけるシステムの全体構成図を示す。
【図３】ボリューム管理サーバ１５とI/Oサーバ１８のブロック図を示す。
【図４】レプリカ表３１の一例を示す。
【図５】書き込み保留表３２の一例を示す。
【図６】I/O周期表３３の一例を示す。
【図７】read/writeアクセス負荷対応表３４の一例を示す。
【図８】read/writeディスクアクセス負荷対応表３５の一例を示す。
【図９】レプリカ完成度表３６の一例を示す。
【図１０】ディスクI/O周期表３７の一例を示す。
【図１１】read/write位置アクセス負荷対応表３８の一例を示す。
【図１２】ストレージ容量表３９の一例を示す。
【図１３】負荷統計情報４０の一例を示す。
【図１４】本実施形態におけるデータ読み込みフローを示す。
【図１５】本実施形態におけるデータ書込みフローを示す。
【図１６】本実施形態におけるレプリカ作成処理フロー（その１）を示す。
【図１７】本実施形態におけるレプリカ作成処理フロー（その２）を示す。
【図１８】本実施形態におけるレプリカ削除処理フロー（その１）を示す。
【図１９】本実施形態におけるレプリカ削除処理フロー（その２）を示す。
【図２０】I/O周期表を利用した予測レプリカ作成処理フローを示す。
【図２１】ストレージ装置ＡについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２２】ストレージ装置ＢについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２３】ストレージ装置ＣについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２４】図２１−図２３で示す作業表（Ａ）の１時間毎のアクセス頻度の平均値と、そのグラフ（Ｂ）を示す。
【図２５】ストレージ装置ＢのディスクＢ１についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２６】ストレージ装置ＢのディスクＢ２についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２７】ストレージ装置ＢのディスクＢ３についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。
【図２８】図２５−図２７で示す作業表（Ａ）の１分毎のアクセス頻度の平均値と、そのグラフ（Ｂ）を示す。
【発明を実施するための形態】
【００１１】
上述した論理ボリューム負荷分散技術では、アクセス頻度を分析し、レプリカおよび一部データの複製を独自に作成することで負荷分散を行っている。しかし、この場合、業務で用いる入出力（I/O）とは別にコピー用の帯域が必要となり、このコピーによる業務への影響も考えられる。また、論理ボリュームの性能を拡充することができるのは、論理ボリュームを定義する初期設定時のみであり、オンデマンドな性能拡充は行うことはできない。また、複数のミラーが作成され、そのミラーに書込みが行われる場合において、書込みによる負荷が増大した場合には、ミラーを解体する手法が用いられる。しかし、一時の負荷によりミラーを解体することが、返って性能劣化につながる問題もある。さらに、データの読込みの際、ネットワーク帯域を使用するため、ストレージ装置とクライアント間のネットワーク帯域を圧迫してしまう。そのため、上述した論理ボリューム負荷分散技術は、大規模なストレージシステムのでは使用することができない。
【００１２】
そこで、ストレージ装置の追加時や運用中の負荷不均衡時に行うデータリバランスの効率化を図る。このとき、複数のストレージ装置へのデータの複製を作成する場合に、情報処理端末からのアクセス要求を効率的に利用することで、ストレージシステムの入出力の性能の向上を図る。
【００１３】
図１は、本実施形態におけるストレージシステムの構成を示す。本実施形態におけるストレージシステム１は、複数の格納装置２、キャッシュメモリ３、アクセス制御部４、書込部５を含む。
【００１４】
格納装置２は、データを格納する。格納装置２の一例は、ストレージ装置２５である。キャッシュメモリ３は、データを保持する。キャッシュメモリ３の一例は、キャッシュメモリ１８ｄの一例である。
【００１５】
アクセス制御部４は、情報処理端末９から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、いずれかの格納装置２へアクセスすると共に、対象データをキャッシュメモリ３へ格納する。アクセス制御部４の一例は、I/Oサーバ１８である。
【００１６】
書込部５は、キャッシュメモリ３へ格納した対象データを、複数の格納装置２のうち対象データが格納されていない格納装置２へ書き込む。書込部５の一例は、I/Oサーバ１８である。
【００１７】
このように構成することにより、ストレージ間のリバランシング処理の効率化を図ることができる。すなわち、ストレージ装置を追加した場合に、情報処理端末９からのアクセス要求を有効利用することで、ストレージ間のリバランシング処理を、ネットワークに負荷を掛けずに効率的に行うことができる。
【００１８】
前記ストレージシステムは、さらに、負荷監視部６を含む。負荷監視部６は、格納装置２に対する、読み込みまたは書き込みによるアクセス負荷の監視を行う。負荷監視部６の一例は、負荷監視部１７の一例である。
【００１９】
アクセス制御部４は、情報処理端末９からアクセス要求があった場合、監視の結果に基づいて、格納装置２のうちアクセス負荷の最も少ない格納装置へアクセスすると共に、対象データをキャッシュメモリ３へ格納する。
【００２０】
アクセス制御部４は、情報処理端末９から対象データへの読み込み要求があった場合、監視の結果に基づいて、対象データを格納する格納装置２のうちアクセス負荷の最も少ない格納装置から対象データを取得する。アクセス制御部４は、対象データをキャッシュメモリ３へ格納し、対象データを情報処理端末へ送信する。
【００２１】
アクセス制御部４は、情報処理端末９から対象データの書き込み要求があった場合、監視の結果に基づいて、格納装置２のうちアクセス負荷の最も少ない格納装置に対象データを書き込み、対象データをキャッシュメモリ３へ格納する。
【００２２】
書込部５は、キャッシュメモリ３へ格納した対象データを、書込みを行った格納装置２以外の格納装置２へ書き込む。
【００２３】
このように構成することにより、監視の結果に基づいて、格納装置２のうちアクセス負荷の最も少ない格納装置に対象データを書き込むことができる。
【００２４】
ストレージシステム１は、さらに、レプリカ削除部７を含む。レプリカ削除部７は、複数の格納装置２のボリュームを仮想化した仮想ボリュームのレプリカの書込みアクセス負荷が閾値を超えた場合、仮想ボリュームのレプリカが複数の格納装置２に３以上あれば、いずれかの格納装置２に格納されたレプリカを削除する。または、レプリカ削除部７は、レプリカの作成において格納装置２の空き容量が第1の閾値より少ない場合、仮想ボリュームのレプリカが複数の格納装置２に３以上あれば、いずれかの格納装置２に格納されたレプリカを削除する。
【００２５】
このように構成することにより、情報処理端末からの書込み要求が頻繁にある場合、またはストレージ装置の空き容量が少なくなった場合に、3以上のレプリカを有する仮想ボリュームのいずれかのレプリカを削除することができる。
【００２６】
レプリカ削除部７は、監視の結果に基づいて、レプリカを含む格納装置２のうちアクセス負荷の最も少ない格納装置２のレプリカを選択する。レプリカ削除部７は、時刻毎に集計した格納装置２に対するアクセス頻度を示すアクセス頻度情報に基づいて、選択したレプリカに対して、現時刻以降、第2の閾値を越えるアクセス頻度の読み込みアクセスがないと判定した場合、選択したレプリカを削除する。
【００２７】
このように構成することにより、書込み後に閾値を超えるアクセスが一定時間継続する場合には、その仮想ボリュームのレプリカを削除対象から除くことができる。
【００２８】
ストレージシステム１は、さらに、レプリカ作成部８を含む。レプリカ作成部８は、いずれかの格納装置２に対する時刻毎のアクセス負荷のうちいずれかの時間帯のアクセス負荷と、全ての格納装置２に対する時間帯のアクセス負荷の平均との差分が第3の閾値を超えている場合、次の処理を行う。すなわち、レプリカ作成部８は、時間帯を細分化する。レプリカ作成部８は、細分化したいずれかの時間帯のうちいずれかの格納装置２のいずれかのディスクに対するアクセス負荷と、いずれかの格納装置２の全ディクスの該細分化したいずれかの時間帯のアクセス負荷の平均との差分が第4の閾値より小さいか判定する。その差分が第4の閾値より小さい場合、レプリカ作成部８は、細分化したいずれかの時間帯より前で、いずれかの格納装置のアクセス負荷が第5の閾値を超えていない時間に、最もアクセス負荷の多いディスクにレプリカを作成する。
【００２９】
このように構成することにより、各ディスクのアクセス負荷は低いが、ストレージ装置全体として高い負荷がかかっているストレージ装置について、最もアクセス負荷の多いディスクにレプリカを作成することができる。
【００３０】
本実施形態におけるストレージシステムには、ストレージ装置が２台以上ある。以下では、ストレージ装置Ａとストレージ装置Ｂの２台がある前提で説明する。ストレージ装置Ａ内のディスクは、ストレージ装置Ｂのディスクとミラー状態（すなわちレプリカは２個である）を保っているものとする。この２つディスクは、I/Oサーバ内で１つの仮想ディスクとして見せている。
【００３１】
ここでミラー状態を保つ理由は、ディスクやストレージ装置が故障した場合でも、データロストや、運用を停止しないためである。ストレージにアクセスを行うクライアント装置は、クラウドシステムのように複数存在するものとする。
【００３２】
図２は、本実施形態におけるシステムの全体構成図を示す。本実施形態におけるシステムは、クライアント装置１１とストレージシステム１４とがLAN（Local Area Network）１３により接続されている。クライアント装置１１は、通信インターフェース（以下、インターフェースを「IF」と称する。）１２を介してLAN１３と接続されている。なお、LAN１３は、一例であって、インターネット、イントラネット、その他のネットワークであってよい。
【００３３】
ストレージシステム１４は、ボリューム管理サーバ１５、I/Oサーバ１８、ストレージ装置２５、管理用LAN２７、I/O用LAN２８を含む。
【００３４】
ボリューム管理サーバ１５は、ストレージシステム１４全体を制御し、I/Oサーバ１８で用いる仮想ボリューム２１を管理する。ボリューム管理サーバ１５は、制御部１５ａ、管理用ＬＡＮ  ＩＦ１５ｂ、記憶部１５ｃを含む。制御部１５ａは、ボリューム管理サーバ１５の動作を制御するものであって、例えば、ＣＰＵ（central processing unit）である。管理用ＬＡＮ  ＩＦ１５ｂは、管理用ＬＡＮ２７と接続するための通信インターフェースである。記憶部１５ｃには、制御部１５ａを動作させるプログラム、本実施形態にかかるプログラム及び後述する表等が格納されている。記憶部１５ｃは、例えば、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、ハードディスク、フラッシュメモリ等を用いることができる。
【００３５】
I/Oサーバ１８は、クライアント装置１１からの入力やクライアント装置１１への出力を制御する。I/Oサーバ１８は、外部用通信IF１８ａ、制御部１８ｂ、記憶部２８ｃ、キャッシュメモリ（以下、「キャッシュ」と称する）１８ｄ、ストレージ用通信ＩＦ１８ｅ、管理用ＬＡＮ  ＩＦ１８ｆを含む。外部用通信IF１８ａは、ＬＡＮ１３と接続するための通信インターフェースである。制御部１８ｂは、I/Oサーバ１８の動作を制御し、ストレージのディスクを仮想化した仮想ボリュームを制御するものであって、例えば、ＣＰＵ（central processing unit）である。記憶部１８ｃには、制御部１８ｂを動作させるプログラム、本実施形態にかかるプログラム及び後述する表、仮想ボリューム等が格納されている。記憶部１８ｂは、例えば、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、ハードディスク、フラッシュメモリ等を用いることができる。ストレージ用通信ＩＦ１８ｅは、I/O用LAN２８と接続するための通信インターフェースである。管理用ＬＡＮ  ＩＦ１８ｆは、管理用ＬＡＮ２７と接続するための通信インターフェースである。
【００３６】
ストレージ装置２５は、複数のディスク２６を含む。ストレージ装置２５は、管理用LAN２７と、I/O用LAN２８に接続されている。管理用LAN２７は、ボリューム管理サーバ１５、I/Oサーバ１８、ストレージ装置２５間で、命令や負荷の監視の監視等のために用いられるネットワークである。I/O用LAN２８は、ストレージ装置２５に格納されたデータまたはストレージ装置２５へ格納するデータを転送するためのネットワークである。管理用LAN２７と、I/O用LAN２８は、ＬＡＮに限定されず、たとえば、ＳＡＮ（ストレージ・エリア・ネットワーク）等のネットワークであってもよい。
【００３７】
以下の実施形態で説明する処理を実現するプログラムは、プログラム提供者側からＬＡＮ１３を介して、例えば記憶部１５ｃ，１８ｂに格納されてもよい。また、以下の実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体はストレージシステム１４の読み取り装置（不図示）にセットされて、制御部１５ａ，１８ｂによってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置によって読み取られる。
【００３８】
図３は、ボリューム管理サーバ１５とI/Oサーバ１８のブロック図を示す。ボリューム管理サーバ１５は、ボリューム管理部１６、負荷監視部１７を含む。ボリューム管理部１６は、各I/Oサーバ１８の仮想ボリューム２１を管理する。負荷監視部１７は、各ストレージ装置２５の負荷情報及びストレージ装置２５内のボリュームの負荷を監視する。
【００３９】
ボリューム管理部１６は、レプリカ表３１、書き込み保留表３２、I/O周期表３３、read/writeアクセス負荷対応表３４、read/writeディスクアクセス負荷対応表３５を含む。レプリカ表３１、書き込み保留表３２、I/O周期表３３、read/writeアクセス負荷対応表３４、read/writeディスクアクセス負荷対応表３５は、ボリューム管理サーバ１５の記憶部１５ｃに格納されている。
【００４０】
I/Oサーバ１８は、I/O管理部２０、仮想ボリューム２１を含む。I/O管理部２０は、クライアント装置１１から仮想ボリューム２１へのアクセスや仮想ボリューム２１からクライアント装置１１への出力を制御する。仮想ボリューム２１は、I/Oサーバ１８に設けられた記憶部１８ｃに格納されている。
【００４１】
I/O管理部２０は、レプリカ完成度表３６、ディスクI/O周期表３７、read/write位置アクセス負荷対応表３８を含む。レプリカ完成度表３６、ディスクI/O周期表３７、read/write位置アクセス負荷対応表３８は、I/Oサーバ１８の記憶部１８ｃに格納されている。
【００４２】
図４は、レプリカ表３１の一例を示す。レプリカ表３１とは、仮想ボリューム２１のレプリカがどのストレージ装置２５に作成されているか、またはそのレプリカがどのような状態であるかを示す表である。
【００４３】
レプリカ表３１は、「仮想ボリューム ID」、「ストレージID 1」、「ストレージID 2」、・・・のデータ項目を含む。「仮想ボリューム ID」には、仮想ボリューム２１を識別する識別情報が格納される。「ストレージID 1」、「ストレージID 2」・・・には、仮想ボリューム２１に対応するストレージ装置２５におけるレプリカの完成度が設定される。ここで、レプリカの完成度が100%の場合は、「Created」が設定される。レプリカの完成度が“0 < 完成度 < 100”の場合は、「Copying」が設定される。レプリカの完成度が0%の場合は、「None」が設定される。また、レプリカが削除中である場合は、「Deleting」が設定される。
【００４４】
図５は、書き込み保留表３２の一例を示す。書き込み保留表３２は、キャッシュ１８ｄに保留した書込み対象のデータを管理する表である。書き込み保留表３２は、「仮想ディスク ID」、「ストレージID」、「位置」、「日付」のデータ項目を含む。「仮想ディスク ID」には、仮想ボリューム２１を識別する識別情報が格納される。「ストレージID」には、仮想ボリューム２１に対応するストレージ装置２５を識別する情報（ストレージID）が格納される。「位置」には、データの書き込みを行ったストレージ２５における書き込み位置が格納される。「日付」には、書き込んだ日付が格納される。
【００４５】
図６は、I/O周期表３３の一例を示す。I/O周期表３３は、単位時間当たりの各ストレージ装置２５の各ディスクのアクセス（read/write）数を集計した表である。I/O周期表３３は、ストレージ装置２５のディスク毎に作成される。
【００４６】
I/O周期表３３は、「時刻」、「read」、「write」のデータ項目を含む。「時刻」には、一定間隔の時刻が格納される。「read」には、その時刻におけるreadアクセス数が格納される。「write」には、その時刻におけるwriteアクセス数が格納される。
【００４７】
図７は、read/writeアクセス負荷対応表３４の一例を示す。read/writeアクセス負荷対応表３４は、read/writeディスクアクセス負荷対応表３５のディスクIDとread/write位置アクセス負荷対応表３８のディスクIDを関連付けさせた表である。read/writeディスクアクセス負荷対応表３５、read/write位置アクセス負荷対応表３８については後述する。
【００４８】
図８は、read/writeディスクアクセス負荷対応表３５の一例を示す。read/writeディスクアクセス負荷対応表３５は、全ストレージ２５内に存在する各ディスクへのreadアクセスとwriteアクセスの回数をカウントする表である。
【００４９】
read/writeディスクアクセス負荷対応表３５は、ストレージ装置単位であり、「ディスクID」、「Readアクセス頻度」、「Writeアクセス頻度」のデータ項目を含む。「ディスクID」には、ストレージ装置２５内のディスク２６を識別する識別情報が設定される。「Readアクセス頻度」には、そのディスクに対するReadアクセス頻度が設定される。「Writeアクセス頻度」には、そのディスクに対するWriteアクセス頻度が設定される。
【００５０】
図９は、レプリカ完成度表３６の一例を示す。レプリカ完成度表３６は、仮想ボリュームのストレージ装置２５毎のレプリカの完成度を位置毎に示している表である。レプリカ完成度表３６は、ストレージ装置２５においてレプリカが格納されている「位置」、各ストレージ装置の「レプリカ完成度」、ストレージ装置２５に格納されているレプリカの「状態」が格納される。
【００５１】
レプリカ完成度とは、どの程度レプリカが完成しているかを示す値である。レプリカの「状態」には、「None」、「Copying」、「Created」、「Deleting」の４つの状態が存在する。「None」は、レプリカが作成されていないことを示す。「Copying」は、レプリカ作成先にwrite処理を発行する前であることを示す。また、「Created」は、レプリカ作成が完了されていることを示す。「Deleting」は、レプリカの削除中であることを示す。
【００５２】
図１０は、ディスクI/O周期表３７の一例を示す。単位時間当たりのストレージ２５の各ディスクのアクセス数を集計した表である。ディスクI/O周期表３７は、当該I/Oサーバが一定の時刻毎にストレージ装置２５の各ディスク２６にアクセスした回数を集計した表である。ディスクI/O周期表３３は、ストレージ装置２５のディスク毎に作成される。
【００５３】
ディスクI/O周期表３３は、「時刻」、「read」、「write」のデータ項目を含む。「時刻」には、一定間隔の時刻が格納される。「read」には、その時刻におけるreadアクセス数が格納される。「write」には、その時刻におけるwriteアクセス数が格納される。
【００５４】
図１１は、read/write位置アクセス負荷対応表３８の一例を示す。read/write位置アクセス負荷対応表３８は、I/Oサーバ１８がアクセスを行っているディスク２６の位置毎にread/writeのアクセス負荷を管理している表である。ここで、ディスク２６におけるread/writeする位置とは、データをread/writeするための、ディスク２６の先頭位置に対する位置を示す。
【００５５】
read/write位置アクセス負荷対応表３８は、ディスク単位に設けられ、「ディスクID」、「Readアクセス頻度」、「Writeアクセス頻度」のデータ項目を含む。「ディスクID」には、ストレージ装置２５内のディスク２６を識別する識別情報が設定される。「Readアクセス頻度」には、そのディスク２６に対するReadアクセス頻度が設定される。「Writeアクセス頻度」には、そのディスク２６に対するWriteアクセス頻度が設定される。
【００５６】
図１２は、ストレージ容量表３９の一例を示す。ストレージ容量表３９は、各ストレージ装置２５の容量が格納された表である。ストレージ容量表３９は、ボリューム管理サーバ１５の負荷監視部１７によって各ストレージ装置２５から取得した、ストレージ装置が使用している容量を一覧にしたものである。
【００５７】
図１３は、負荷統計情報４０の一例を示す。負荷統計情報４０は、ストレージ装置２５毎の、単位時間当たりのread/write（I/O per second）、帯域使用率が格納された表である。ボリューム管理サーバ１５は、負荷監視部１７を用いて、各ストレージ装置２５から負荷統計情報４０を取得する。
【００５８】
本実施形態において、ストレージ装置が追加されるストレージシステム１４は、ストレージ装置が２台以上ある。例えば、ストレージシステム１４は、ストレージ装置Ａとストレージ装置Ｂの２台がある。ストレージ装置Ａ内のディスクは、ストレージ装置Ｂのディスクとミラー状態（すなわちレプリカは２個である）を保っているものとする。ストレージシステム１４に追加するストレージ装置をストレージ装置Ｃとする。
【００５９】
（１）ストレージ装置Cをストレージシステム１４に追加する。
【００６０】
（２）クライアント１１を用いて、ユーザがデータ読込み・書き込みを行う契機で以下の処理が実施される。 
（２−１）負荷監視部１７を利用して、負荷が少ないストレージ装置２５を選択する。
（２−２）選択したストレージ装置２５からデータの読込みを行う。
（２−３）読み込んだデータをクライアント１１へ返す。
【００６１】
（３）データ読み込み時のキャッシュに保持したデータを、ストレージ装置Cのネットワーク帯域が圧迫されていない時間に、ストレージ装置Cのディスクへ書込みを行う（この時点で、レプリカが３になる）。このように、負荷が少ないストレージ装置Cにデータが移動することで、次に読込む際の読込み性能が向上できる。 
【００６２】
（４）readのみが高い頻度で行われ、かつ、いずれのレプリカも読込み性能が低下している場合、新たに追加されたストレージ装置があるならば、レプリカを作成する。 
【００６３】
（５）ストレージ装置２５の空き容量が少なく（ある閾値を設定。たとえば80%）となったら、レプリカが３以上のものに関して、削除することで空き容量を増やす。ここで、I/O周期表３３を用いて、書込み後に大量の読込み期間が続くボリュームのレプリカは削除対象から外す。レプリカ数が３以上存在し、書き込み処理が頻繁に行われる場合は、少なくとも２つのレプリカを維持することを条件に、負荷の高いストレージ装置のレプリカを削除する。
【００６４】
以下では、本実施形態の詳細について説明する。
ストレージシステム１４に追加するストレージ装置をストレージ装置Ｃ（２５ｃ）とする。本実施形態では、ストレージ装置２５の新規追加の場面で説明をするが、運用開始後にも同様なアルゴリズムでリバランスをすることができる。
【００６５】
（１）ストレージ装置C（２５ｃ）の追加
ストレージ装置C（２５ｃ）は、全てのクライアント１１からアクセスできるように、ストレージシステム１４内に設置され、I/O用LAN２７と接続される。
【００６６】
（２）データ読込み
図１４は、本実施形態におけるデータ読み込みフローを示す。以下では、図１４を用いて、ボリューム管理サーバ１５とI/Oサーバ１８の動作を説明する。
【００６７】
［読込みストレージの選択］
ボリューム管理サーバ１５の負荷監視部１７は、各ストレージ装置２５の負荷状況・ストレージ装置内のボリュームの負荷を監視する（Ｓ１１）。ここでは、負荷監視部１７は、ストレージ装置２５から送信された負荷統計情報４０を取得する。
【００６８】
ボリューム管理サーバ１５は、I/Oサーバ１８に対して、定期的に、ストレージ装置２５から取得した負荷統計情報を送信する（Ｓ１２）。
【００６９】
［読込みデータのキャッシュの保持］
クライアント１１からデータの読込み要求があると、I/Oサーバ１８は、ストレージ装置２５内のディスク２６よりデータの読み込みを行う（Ｓ２１）。レプリカ完成度表３６を参照して複数のレプリカが存在すると判定した場合、I/Oサーバ１８は、アクセス負荷が最も低いストレージ装置２５またはアクセス負荷が最も低いディスク２６を有するストレージ装置２５を選択する（Ｓ２２）。例えば、I/Oサーバ１８は、ボリューム管理サーバ１５から受信した負荷統計情報の帯域使用率またはI/Opsを用いて、アクセス負荷が最も低いストレージ装置２５を選択する。またはI/Oサーバ１８は、read/write位置アクセス負荷対応表３８を用いて、アクセス負荷が最も低いディスク２６を有するストレージ装置２５を選択する。
【００７０】
I/Oサーバ１８は、Ｓ２１で選択したストレージ装置２５またはアクセス負荷が最も低いディスク２６を有するストレージ装置２５に対して、データの読込みを行う（Ｓ２３）。このとき、I/Oサーバ１８は、read/write位置アクセス負荷対応表３８において、ディスク２６を読み込んだ位置のreadアクセス頻度を更新する（Ｓ２４）。
【００７１】
データの読込みの際、I/Oサーバ１８は、同じデータの再読込み時の性能を上げるために、キャッシュ１８ｄに、その読み込んだデータを保持する（Ｓ２５）。I/Oサーバ１８は、キャッシュ１８ｄに保持したデータをクライアント１１へ送信する（Ｓ２６）。これにより、データの読込みが完了する。
【００７２】
ストレージ装置２５のファイルシステム上のファイルを読み込む場合には、I/Oサーバ１８は、データの先読みを行い、その先読みしたデータをキャッシュ１８ｄに保持する。
【００７３】
［読込みデータのキャッシュの利用］
I/Oサーバ１８は、読込み時にキャッシュ１８ｄに保持したデータ（存在するなら先読みデータも含む）を用いて、クライアント１１からのデータ読込み要求のバックグランドで、追加したストレージ装置２５ｃのレプリカに書込み要求を行う（Ｓ２７）。このキャッシュ１８ｄに保持したデータを使用することで、コピーのための読込みを行わないので、データのリバランスのデータコピーにかかるネットワーク負荷を1/2に抑えることができる。
【００７４】
ボリューム管理サーバ１５からのレプリカ開始指示の前にキャッシュ１８ｄにデータを保持している場合は、I/Oサーバ１８は、次の処理を行う。I/Oサーバ１８は、図１６のＳ５６以降で説明するように、仮想ボリューム２１に新規に追加するレプリカ作成先が選択された時点で、レプリカ作成先にそのデータの書込みを行う。このように、このキャッシュ１８ｄに保持したデータを利用することで、効率的なレプリカ作成ができる。
【００７５】
（３）データ書き込み
図１５は、本実施形態におけるデータ書込みフローを示す。以下では、図１５を用いて、ボリューム管理サーバ１５とI/Oサーバ１８の動作を説明する。
【００７６】
クライアント１１からデータの書込み要求があった場合、I/Oサーバ１８は、仮想ボリューム２１の実ディスク２６に対して、データの書込み処理を開始する（Ｓ３１）。このとき、I/Oサーバ１８は、データの整合性を保つために、レプリカ完成度表３６を読み出して（Ｓ３３）、書き込み対象のレプリカの存在するストレージ装置（対象ストレージ装置）の情報を取得する（Ｓ３２）。
【００７７】
I/Oサーバ１８は、Ｓ１２においてボリューム管理サーバ１５から受信した負荷統計情報を用いて、対象ストレージ装置２５の負荷状況を確認する（Ｓ３４）。I/Oサーバ１８は、負荷統計情報を用いて、全ての対象ストレージ装置２５に負荷がないか、すなわち、全ての対象ストレージ装置２５の帯域使用率が閾値より低いかを判定する（Ｓ３５）。全ての対象ストレージ装置２５の帯域使用率が閾値より低い場合（Ｓ３５で「Ｙｅｓ」）、I/Oサーバ１８は、全ての対象ストレージ装置２５へデータの書き込みを行う（Ｓ４２）。I/Oサーバ１８は、データの書き込みを行った対象ストレージ装置２５についてのread/write位置アクセス負荷対応表３４を更新する（Ｓ４３）。I/Oサーバ１８は、データ書込みが完了した旨を書き込み要求元のクライアント１１へ通知する（Ｓ４４）。
【００７８】
［複数レプリカへの書き込み］
いずれかの対象ストレージ装置２５の負荷が閾値より高い場合（Ｓ３５で「Ｎｏ」）、I/Oサーバ１８は、次を行う。すなわち、I/Oサーバ１８は、負荷統計情報またはread/write位置アクセス負荷対応表３８を用いて、書込み対象のデータを、負荷が最も低いストレージ装置２５、または負荷が最も低いディスクへ書込む。１つの書込みが完了した時点で、I/Oサーバ１８は、データ書込みが完了した旨を書き込み要求元のクライアント１１へ通知する（Ｓ３６）。
【００７９】
［書込み保留したストレージへの対処］
I/Oサーバ１８は、他へのストレージ装置２５への書込みも必要になるが、高負荷時にデータを書き込むことで、性能劣化の要因となってしまう。そのため、I/Oサーバ１８は、負荷の高さが閾値を超えI/Oの余裕がないストレージ装置２５への書込みデータをキャッシュ１８ｄに保持し、データの書き込みを一旦保留する。このキャッシュ１８ｄに保持したデータは、破棄させない。これについて、以下に説明する。
【００８０】
ストレージ装置２５への書込み対象のデータを保留した場合、I/Oサーバ１８は、ボリューム管理サーバ１５へ保留情報を通知する（Ｓ３７）。保留情報は、書き込みを行わなかった対象ストレージ装置２５のストレージＩＤ、ディスクＩＤ、ディスクの書込み位置、及び書き込みデータを含む。ボリューム管理サーバ１５は、I/Oサーバ１８から通知された保留情報を用いて、書込み保留表３２を更新する（Ｓ３８）。I/Oサーバ１８は、書き込みデータをキャッシュ１８ｄへ保持する（Ｓ３９）。
【００８１】
他I/Oサーバ１８からのデータ読込み時は、他I/Oサーバ１８は、書込み保留表３２を参照して、最新データがある書込み完了したデータが存在するストレージ装置２５へデータの読込み処理を行う。これにより、最新のデータの読込みができる。
【００８２】
その後、I/Oサーバ１８は、I/Oサーバ１８は、負荷統計情報またはread/write位置アクセス負荷対応表３８を用いて、ストレージ装置２５の負荷が閾値より下がった時点で、キャッシュ１８ｄに保持したデータをそのストレージ装置２５へ書込む（Ｓ４０）。このとき、I/Oサーバ１８は、read/write位置アクセス負荷対応表３８において、ストレージ装置２５のディスク２６に書き込んだ位置のwriteアクセス頻度を更新する（Ｓ４１）。ストレージ装置２５への書込みが完了した時点で、I/Oサーバ１８は、ボリューム管理サーバ１５へ完了通知を出す。これにより、すべてのストレージ装置２５から同一データの読込みができる。
【００８３】
また、書込み対象のデータをキャッシュ１８ｄに保留した状態でI/Oサーバ１８がダウンした場合は、キャッシュ１８ｄに保留した書込み対象のデータが失われるため、どのレプリカが最新であるか管理することができない。そのため、I/Oサーバ１８のダウン後の起動時に、ボリューム管理サーバ１５は、書込み保留表３２の中にキャッシュ１８ｄに書込み対象のデータがあるかどうかを調べ、必要に応じてレプリカ作成を行う。
【００８４】
レプリカ作成を行っているストレージ装置２５に対してキャッシュ１８ｄに保留したデータのストレージ装置２５への書込みが完了することで、ストレージ装置Ａ，Ｂ、及び、追加したストレージ装置Ｃが同じデータを保持する。このとき、ストレージ装置Ａとストレージ装置Ｂとは、ミラー状態が保たれている。また、ストレージ装置Cについては、書込みを行った部分のみのデータが書かれた状態になる。
【００８５】
ここで、追加したストレージ装置Cにおいて、read/write処理でキャッシュ１８ｄに保持したデータ（よくアクセスがあるデータ）に関しては、ミラー状態を保つことができるが、ディスク全体をミラー化することはできてはいない。したがって、この時点では、レプリカの元のディスク全体のデータ削除はできない。しかし、この場合、読込みがあるデータに関しては、ミラー状態を保っているので（レプリカができているので）、ストレージ装置２５へのI/Oサーバ１８のデータの読込みを分散させることができる。これにより、読み込み先となるストレージ装置へのアクセス（負荷）が１つに集中しないので、ストレージシステム１４の性能を向上することができる。
【００８６】
（４）レプリカ作成によるアクセス負荷分散方法
［レプリカ作成方法］
図１６及び図１７は、本実施形態におけるレプリカ作成処理フローを示す。以下では、図１６及び図１７を用いて、ボリューム管理サーバ１５とI/Oサーバ１８の動作を説明する。
【００８７】
ボリューム管理サーバ１５は、負荷監視部１７から得られる情報を、随時read/writeディスクアクセス負荷対応表３５に反映する。さらに、ボリューム管理サーバ１５は、read/writeディスクアクセス負荷対応表３５と、定期的に全I/Oサーバ１８から送付されるread/write位置アクセス負荷対応表３８を用いて、read/writeアクセス負荷対応表３４を作成する。
【００８８】
まず、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４を用いて、ストレージ装置単位でアクセス負荷（read/writeアクセス頻度）が予め設定された閾値を超えているか否かを判定する（Ｓ５１）。
【００８９】
アクセス負荷が閾値を超えていた場合（Ｓ５１で「Ｙｅｓ」）、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４のディスクのread/writeアクセス頻度を参照し、アクセス負荷の高いデータの位置を特定する（Ｓ５２）。すなわち、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４を用いて、アクセス負荷（read/writeアクセス頻度）が閾値を超えているストレージ装置２５内のどのディスクのどの位置のデータに対して、read/writeが多いのかを判定する。
【００９０】
さらに、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４を用いて、レプリカの作成先を決定する（Ｓ５３）。ここでは、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４を用いて、アクセス負荷が最も低いストレージ装置２５を選択する。さらに、ボリューム管理サーバ１５は、その選択したストレージ装置２５から、空き容量が最も多いストレージ装置をレプリカ作成先として選択する。
そして、ボリューム管理サーバ１５は、I/Oサーバ１８にレプリカ作成先を通知する（Ｓ５４）。
【００９１】
I/Oサーバ１８は、ボリューム管理サーバ１５よりレプリカの作成先の通知を受けると、仮想ボリューム２１についてのレプリカ完成度表３６を作成する（Ｓ５５）。なお、Read処理（図１４）、write処理（図１５）は、Ｓ５５とＳ５６との間で発生する。
【００９２】
I/Oサーバ１８は、レプリカ完成度表３６を作成後、該当仮想ボリューム２１の実ディスクの１つに、レプリカ作成先のディスクを追加する（Ｓ５６）。I/Oサーバ１８は、レプリカ作成先のディスクへのキャッシュに保持したデータの書込みを開始することをボリューム管理サーバ１５に通知する（Ｓ５７）。
【００９３】
ボリューム管理サーバ１５は、I/Oサーバ１８から、レプリカ作成先のディスクへのキャッシュに保持したデータの書込みを開始する通知を受けると、レプリカ表３１の該当箇所を「Copying」に更新する（Ｓ５８）。
【００９４】
［レプリカへのデータの書込み］
キャッシュ１８ｄにレプリカ元のデータが存在する場合（Ｓ６１で「Ｙｅｓ」）、I/Oサーバ１８は、クライアント１１からレプリカ元となるストレージ装置２５へのデータの読込み処理に続いて、キャッシュ１８ｄを利用し、レプリカ作成処理を開始する（Ｓ６２）。また、さらに、ボリューム管理サーバ１５からレプリカ作成依頼が来る前に、キャッシュ１８ｄに保持していたデータについても、I/Oサーバ１８は、レプリカ完成度表３６の更新と、レプリカ作成対象のディスクに書込みを行う。キャッシュ１８ｄに既に保持されているデータを利用することで、レプリカの更新処理を進めることができる。
【００９５】
I/Oサーバ１８は、ボリューム管理サーバ１５より通知された情報（レプリカ作成先、書き込み時刻）を用いて、データ読み出し時のキャッシュ１８ｄに保持したデータを、予め設定された時刻にレプリカ先に書き込む（Ｓ６３）。書込み完了後、I/Oサーバ１８は、レプリカ完成度表３６において、書き込んだストレージ装置２５のディスク２６について「Created」と更新する（Ｓ６４）。
【００９６】
レプリカ完成度表３６において、レプリカ完成度が100%となったら、I/Oサーバ１８は、ボリューム管理サーバ１５に、レプリカ作成が完了した旨を通知する（Ｓ６５）。ボリューム管理サーバ１５は、レプリカ表３１の該当箇所を「Created」に更新する（Ｓ６６）。
【００９７】
I/Oサーバ１８は、キャッシュ１８ｄに保持したデータをレプリカ作成先のディスクへ書き込む処理を開始することをボリューム管理サーバ１５に通知する（Ｓ６７）。
【００９８】
［レプリカ削除方法］
クライアント１１からの書込み要求が頻繁にある場合は、全てのレプリカへの書込みが頻繁に起こるため、ネットワーク帯域の負荷が高くなってしまう。書込みが頻発する場合は、I/Oサーバ１８は、以下の処理により、レプリカを削除するか否かを判断する。
【００９９】
（i）I/Oサーバ１８は、書込み対象のデータについてディスクI/O周期表３７を用いて、データの読込み量・書込み量から、その後に、大量の読み込み期間があると判定した場合は、レプリカを削除しない。
（ii）I/Oサーバ１８は、ディスクI/O周期表３７を用いて、書込み期間が一定期間続くと判定した場合は、レプリカを削除する。
【０１００】
図１８及び図１９は、本実施形態におけるレプリカ削除処理フローを示す。以下では、図１８及び図１９を用いて、ボリューム管理サーバ１５とI/Oサーバ１８の動作を説明する。
【０１０１】
ボリューム管理サーバ１５は、以下のいずれかの条件（Ｓ７１，Ｓ７２）に合致したと判定したときに、I/Oサーバ１８にレプリカ削除処理開始を通知する（Ｓ７３）。Ｓ７１の条件は、ボリューム管理サーバ１５が、read/writeアクセス負荷対応表３４のwriteアクセス頻度から、いずれかの仮想ボリュームのレプリカ内のデータへのwriteアクセス頻度が閾値を超えたと判定することである。また、Ｓ７２の条件は、ボリューム管理サーバ１５がストレージ容量表３９を用いて、いずれかの仮想ボリュームのレプリカ作成時にストレージ装置２５の空き容量が閾値を下回ると判定することである。
【０１０２】
−−削除するレプリカの決定方法−−
レプリカ削除処理では、ボリューム管理サーバ１５は、レプリカ表３１を参照して、「Created」となっているいずれかの仮想ボリュームのレプリカ数が３以上存在するか判定する（Ｓ７４）。レプリカ数が３未満である場合（Ｓ７４で「Ｎｏ」）、ボリューム管理サーバ１５は、レプリカ削除処理を実行しない。
【０１０３】
レプリカ数が３以上存在する場合、ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４のwriteアクセス頻度項目を用いて、最も高いアクセス負荷がかかっているストレージ装置２５内にあるレプリカを選択する（Ｓ７５）。
【０１０４】
ボリューム管理サーバ１５は、read/writeアクセス負荷対応表３４とI/O周期表３３とを関係付けて、現時刻から所定の時間内に、選択したレプリカの存在するディスクに対して、閾値を超えるreadアクセスがあるか否かを判定する（Ｓ７６）。
【０１０５】
選択したレプリカに対して、現時刻から所定の時間内に、閾値を超えるreadアクセスがされないと判定した場合（Ｓ７６で「Ｙｅｓ」）、ボリューム管理サーバ１５は、その仮想ボリューム２１についてのレプリカ削除処理を実行しない。このとき、ボリューム管理サーバ１５は、他の仮想ボリューム２１のレプリカを検索する（Ｓ７８）。
【０１０６】
他の仮想ボリュームのレプリカが存在する場合（Ｓ７９で「Ｙｅｓ」）、ボリューム管理サーバ１５は、当該他の仮想ボリュームについて、Ｓ７３の処理以降の処理を行う。
他の仮想ボリュームのレプリカが存在しない場合（Ｓ７９で「Ｎｏ」）、ボリューム管理サーバ１５は、I/Oサーバ１８に、Ｓ８４で用いるレプリカ完成度の閾値を動的に所定値下げるように通知する（Ｓ８０）。そして、ボリューム管理サーバ１５は、当該仮想ボリュームについて、再びＳ７３以降の処理を行う。I/Oサーバ１８は、その通知を受信すると、Ｓ８４で用いるレプリカ完成度の閾値を動的に所定値下げる。
【０１０７】
‐レプリカ削除の実行
選択したレプリカに対して、現時刻から所定の時間内に、閾値を超えるreadアクセスがされると判定した場合（Ｓ７６で「Ｎｏ」）、ボリューム管理サーバ１５は、レプリカ表３１の該当箇所を「Deleting」に更新する。その後、ボリューム管理サーバ１５は、選択したレプリカについての削除情報（仮想ボリュームID、データ配置場所）を該当レプリカへアクセスを行っているI/Oサーバ１８に通知する（Ｓ７７）。
【０１０８】
I/Oサーバ１８は、選択したレプリカについての削除情報をボリューム管理サーバ１５から受信する。I/Oサーバ１８は、レプリカ完成度表３６を用いて、通知された仮想ボリュームIDに関するレプリカ完成度100%のレプリカが３つ以上存在するか判定する（Ｓ８１）。
【０１０９】
レプリカ完成度表３６において、レプリカ完成度100%であるレプリカが３つ以上存在しない場合（Ｓ８１で「Ｎｏ」）、I/Oサーバ１８は、作成中の状態にあるレプリカに対して、そのレプリカ作成を続行させる。レプリカ完成後、I/Oサーバ１８は、Ｓ７５で選択した負荷の高いストレージ装置２５のレプリカを削除し（Ｓ８３）、レプリカ削除処理を終了する。
【０１１０】
I/Oサーバ１８は、レプリカ完成度表３６において、通知された仮想ボリュームＩＤの全レプリカ完成度が所定の閾値以下であるかを判定する（Ｓ８４）。通知された仮想ボリュームＩＤの全レプリカ完成度が所定の閾値（例えば80%）以下である場合（Ｓ８４で「Ｙｅｓ」）、I/Oサーバ１８は、ボリューム管理サーバ１５に、他の仮想ボリュームのレプリカの削除対象の変更依頼を行う（Ｓ８５）。
【０１１１】
他の仮想ボリュームのレプリカが存在する場合（Ｓ７９で「Ｙｅｓ」）、ボリューム管理サーバ１５は、当該他の仮想ボリュームについて、Ｓ７３の処理以降の処理を行う。他の仮想ボリュームのレプリカが存在しない場合（Ｓ７９で「Ｎｏ」）、ボリューム管理サーバ１５は、I/Oサーバ１８に、Ｓ８４で用いるレプリカ完成度の閾値を動的に所定値下げるように通知する（Ｓ８０）。そして、ボリューム管理サーバ１５は、当該仮想ボリュームについて、再びＳ７３以降の処理を行う。I/Oサーバ１８は、その通知を受信すると、Ｓ８４で用いるレプリカ完成度の閾値を動的に所定値下げる。これにより、ボリューム管理サーバ１５は、再度、I/Oサーバ１８へレプリカ削除依頼を行うことができる。
【０１１２】
通知された仮想ボリュームＩＤの全レプリカ完成度が所定の閾値（例えば80%）より高い場合（Ｓ８４で「Ｎｏ」）、I/Oサーバ１８は、次の処理を行う。すなわち、I/Oサーバ１８は、Ｓ５４でボリューム管理サーバ１５より通知されたレプリカ作成先情報を用いて、データ読み込み時にキャッシュ１８ｄに保持したデータをレプリカ作成先に書き込み、レプリカ完成度を100%にする（Ｓ８６）。
【０１１３】
レプリカ完成度表３６において、通知された仮想ボリュームIDに関係するレプリカ完成度100%のレプリカが３つ以上存在する場合（Ｓ８１で「Ｙｅｓ」）、またはＳ８６の処理完了後、I/Oサーバ１８は、次の処理を行う。すなわち、I/Oサーバ１８は、ストレージ装置２５の空き容量が閾値を下回ったかを判定する（Ｓ８７）。ストレージの空き容量が閾値を上回った場合（Ｓ８７で「Ｎｏ」）、レプリカ削除処理を終了する。
【０１１４】
ストレージ装置２５の空き容量が下回った場合（Ｓ８７で「Ｙｅｓ」）、I/Oサーバ１８は、read/write位置アクセス負荷対応表３８を用いて、レプリカ完成度100%のレプリカから、readアクセス頻度が閾値を下回っているレプリカを選択する（Ｓ８８）。このとき、I/Oサーバ１８は、レプリカ完成度100%であるレプリカを保持するストレージ装置２５の中で、最も負荷が高いストレージ装置２５のレプリカを選択する。I/Oサーバ１８は、選択したレプリカを削除する（Ｓ８９）。
【０１１５】
そして、I/Oサーバ１８は、ボリューム管理サーバ１５にレプリカ削除処理の完了を通知する（Ｓ９０）。ボリューム管理サーバ１５は、I/Oサーバ１８からレプリカ削除処理の完了通知を受けると、レプリカ表３１の該当箇所を「Deleting」から「None」に更新し（Ｓ９１）、レプリカ削除処理を終了する。
【０１１６】
［I/O周期表を利用した予測レプリカ作成処理］
上記「（４）レプリカ作成によるアクセス負荷分散方法」で捕捉しきれないアクセス負荷が低いディスクが多数存在する場合に、ストレージ装置単位でみると、負荷が高くなる場合がある。そこで、このような状況でのデータリバランスでは、I/O周期表を利用し、レプリカを作成することで負荷分散をさせる手法を用いる。
【０１１７】
図２０は、I/O周期表を利用した予測レプリカ作成処理フローを示す。I/Oサーバ１８は、ストレージ装置２５内のディスク単位で、予め設定した期間で、一定間隔（周期）の入出力（I/O）（すなわちreadアクセス回数、writeアクセス回数）の集計を行い、ディスクI/O周期表３７に記憶する。この一定間隔（周期）が1週間単位の業務の場合は、I/Oサーバ１８は、1週間で集計をとることも可能である。なお、図２０の処理は、図１６のＳ５４の処理において、実行させるようにしてもよい。
【０１１８】
ボリューム管理サーバ１５は、所定の時刻に、全I/Oサーバ１８からディスクI/O周期表３７を収集する。ボリューム管理サーバ１５は、収集した全ディスクI/O周期表３７を用いて、ストレージ装置のディスクの時刻毎に、readアクセス回数、writeアクセス回数を集計して、I/O周期表３３を作成する。
【０１１９】
ボリューム管理サーバ１５は、作成したI/O周期表３３から、各ストレージ装置２５に対する時刻あたりのI/O（readアクセス回数とwriteアクセス回数の合計）について一定周期で集計を行い、ストレージ装置２５のアクセス負荷を計算する（Ｓ１０１）。例えば、ボリューム管理サーバ１５は、1時間ごとのストレージ装置２５のアクセス負荷を1日分計算する。ここで、アクセス負荷とは、readアクセス回数とwriteアクセス回数の合計をいう。
【０１２０】
次に、ボリューム管理サーバ１５は、全ストレージ装置２５に対するアクセス負荷の平均値を計算する（Ｓ１０２）。その後、ボリューム管理サーバ１５は、集計した時間帯において、平均値と各ストレージ装置２５のアクセス負荷の差分が、予め設定した閾値を超えているかを判定する（Ｓ１０３）。そのサクセス負荷の差分が閾値を超えていない場合（Ｓ１０３で「Ｎｏ」）、ボリューム管理サーバ１５は、予測処理を終了する。
【０１２１】
そのサクセス負荷の差分が閾値を超えている場合（Ｓ１０３で「Ｙｅｓ」）、ボリューム管理サーバ１５は、次の処理を行う。すなわち、ボリューム管理サーバ１５は、該当ストレージ装置２５の該当時間に対して、より細かい時間単位でそのストレージ装置２５に属する、各ディスク２６のアクセス負荷と、全ディスク２６のアクセス負荷の平均値の差分を求める。より細かい時間単位とは、例えば、1分単位である。
【０１２２】
ボリューム管理サーバ１５は、その差分が予め設定した閾値を下回っているか判定する（Ｓ１０４）。その差分が予め設定した閾値を下回っていれば（Ｓ１０４で「Ｙｅｓ」）、ボリューム管理サーバ１５は、I/O周期表３３を用いて、該当ストレージ装置２５内のディスク２６の中で、最もread処理が多いディスク１６を選択する。ボリューム管理サーバ１５は、該当時間より前、かつ、ストレージ装置２５のアクセス負荷が予め設定している閾値を超えていない時間帯に、その選択したディスク２６にレプリカを作成する（Ｓ１０５）。
【０１２３】
以下では、I/O周期表３３を用いた、ストレージ装置２５単位でのアクセス負荷が高く、かつ、ディスク単位のアクセス負荷が低いデータに対する予測レプリカ作成処理の例を示す。まずは、図２１−図２４を用いて、図２０のＳ１０１−Ｓ１０３の処理を説明する。
【０１２４】
図２１は、ストレージ装置ＡについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２２は、ストレージ装置ＢについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２３は、ストレージ装置ＣについてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１時間毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２４は、図２１−図２３で示す作業表（Ａ）の１時間毎のアクセス頻度の平均値と、そのグラフ（Ｂ）を示す。
【０１２５】
ボリューム管理サーバ１５は、全てのI/Oサーバ１８からディスクI/O周期表３７を収集してI/O周期表３３を作成後、図２１−図２３に示すように、３つのストレージ装置Ａ，Ｂ，Ｃのアクセス負荷を算出する。アクセス負荷の算出後、ボリューム管理サーバ１５は、図２４に示すように、３つのストレージ装置Ａ，Ｂ，Ｃに対するアクセス負荷の平均値を計算する。ここでは、時間帯４：００〜５：００のアクセス負荷に着目して説明する。
【０１２６】
図２１に示すように、ストレージ装置Aのアクセス負荷は、５４５である。図２２に示すように、ストレージ装置Bのアクセス負荷は、５４３５である。図２３に示すように、ストレージ装置Cのアクセス負荷は、２３である。図２４に示すように、アクセス負荷の平均値は、２００１となる。
【０１２７】
ボリューム管理サーバ１５は、各ストレージ装置２５のアクセス負荷と平均値の差分を計算する。ここで、ストレージ装置Bと平均値の差分は、５４３５−２００１＝３４３４となる。予め設定していた閾値を２０００とする。ストレージ装置Bのアクセス負荷と平均値の差分（３４３４）がその閾値（２０００）を超えているため、ボリューム管理サーバ１５は、図２０のＳ１０４−Ｓ１０５の処理を実行する。これについて、図２５−図２８を用いて説明する。
【０１２８】
図２５は、ストレージ装置ＢのディスクＢ１についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２６は、ストレージ装置ＢのディスクＢ２についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２７は、ストレージ装置ＢのディスクＢ３についてのI/O周期表３３のread頻度とwrite頻度とを加算して得られるアクセス頻度を１分毎に集計した作業表（Ａ）と、そのグラフ（Ｂ）を示す。図２８は、図２５−図２７で示す作業表（Ａ）の１分毎のアクセス頻度の平均値と、そのグラフ（Ｂ）を示す。
【０１２９】
ボリューム管理サーバ１５は、ストレージ装置２５のアクセス負荷と平均値の差分が閾値を超えるストレージ装置２５の該当時間（時間帯４：００〜５：００）に対して、次の処理を行う。すなわち、ボリューム管理サーバ１５は、１分単位でそのストレージ装置２５に属する各ディスクのアクセス負荷と、全ディスクのアクセス負荷の平均値の差分を求める。ここでは、ストレージ装置B内に３つのディスクB1，B2，B3があるとし、時間帯４：３１〜４：３２に着目して説明する。
【０１３０】
まず、ストレージ装置Bの1分単位のアクセス負荷の平均値は、５４３５/６０≒９１となる。さらにストレージ装置B内のディスクが３つのため、各ディスクの１分単位のアクセス負荷の平均値は、９１/３≒３１となる。ここで、ディスクB1，B2，B3の４：３１〜４：３２の時間帯でのアクセス負荷はそれぞれ、２７、２４、２９である。ディスクB1，B2，B3のアクセス負荷と平均値との差分はそれぞれ、４、７、２となる。予め設定した閾値が１０とすると、ディスクB1，B2，B3のアクセス負荷と平均値との差分はいずれも、閾値を下回っている。他の時間帯も全て、ディスクB1，B2，B3のアクセス負荷と平均値との差分はいずれも、閾値を下回っている。このことから、ストレージ装置Bに対するアクセス負荷は高いが、ストレージ装置内の各ディスクB1，B2，B3へのアクセス負荷が低いことがわかる。本例において、レプリカ作成処理では、ストレージ装置Bはリバランスの対象から外れてしまい、ストレージ装置Bのアクセス負荷を分散させるためのリバランスを実施できない。
【０１３１】
そのため、ボリューム管理サーバ１５は、I/O周期表３３を利用した予測レプリカ作成処理を用いて、ディスクB1，B2，B3のうち、最もread処理が多いディスクを選択する。ボリューム管理サーバ１５は、その選択したディスク２６にデータのレプリカを作成する胸の指示をI/Oサーバ１８に行う。
【０１３２】
上記のようにストレージ装置間のリバランシングを行うことにより、ストレージ装置、または、ストレージ装置内のディスクに異常が発生した場合でも、データを失うことはない。例えば、ストレージ装置Ａからストレージ装置Ｃへデータを移行している際に、ストレージ装置Ｂが故障した場合には、レプリカの冗長度が下がるが、データはストレージ装置Ａとストレージ装置Ｃを合わせることで最新性を保証できる。また、ボリューム管理サーバ１５は、レプリカの冗長度が下がったことを認識すると、強制的にレプリカ作成処理を行い、レプリカの冗長度を２になるようにする。
【０１３３】
複数のストレージ装置２５や、I/Oサーバ１８がある大規模なクラウドのような環境では、I/Oサーバ１８とストレージ装置２５間の帯域が重要になっている。キャッシュに保持された、入力/出力要求に対応する読込み・書込みに必要なデータを有効的に利用することにより、ネットワーク帯域に負荷をかけずに、ストレージ装置２５のリバランスを行うことができる。
【０１３４】
本実施形態によれば、ストレージ装置を追加した場合に、クライアント装置からのアクセス要求を有効利用することで、ストレージ間のリバランシング処理を、ネットワーク帯域に負荷を掛けずに効率的に行うことができる。また、ストレージシステムの入力／出力性能を最大限に活用することができる。そのため、本実施形態におけるストレージシステムを用いれば、業務に影響を与えずに、業務やサービスの効率を改善することができる。
【０１３５】
また、本実施形態におけるストレージシステムに含まれるストレージ装置またはディスクに異常が発生した場合も、データは常に冗長されているために、データを失うことがなく業務を継続できる。
【０１３６】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１３７】
１      ストレージシステム
２      格納装置
３      キャッシュメモリ
４      アクセス制御部
５      書込部
６      負荷監視部
７      レプリカ削除部
８      レプリカ作成部
９      情報処理端末
１１    クライアント装置
１２    通信インターフェース
１３    LAN
１４    ストレージシステム
１５    ボリューム管理サーバ
１６    ボリューム管理部
１７    負荷監視部
１８    I/Oサーバ
１８ｄ  キャッシュメモリ
２０    I/O管理部
２１    仮想ボリューム
２５    ストレージ装置
２６    ディスク
２７    管理用LAN
２８    I/O用LAN
３１    レプリカ表
３２    書き込み保留表
３３    I/O周期表
３４    read/writeアクセス負荷対応表
３５    read/writeディスクアクセス負荷対応表
３６    レプリカ完成度表
３７    ディスクI/O周期表
３８    read/write位置アクセス負荷対応表
【図１】
2013093994.tif 000003
【図２】
2013093994.tif 000004
【図３】
2013093994.tif 000005
【図４】
2013093994.tif 000006
【図５】
2013093994.tif 000007
【図６】
2013093994.tif 000008
【図７】
2013093994.tif 000009
【図８】
2013093994.tif 000010
【図９】
2013093994.tif 000011
【図１０】
2013093994.tif 000012
【図１１】
2013093994.tif 000013
【図１２】
2013093994.tif 000014
【図１３】
2013093994.tif 000015
【図１４】
2013093994.tif 000016
【図１５】
2013093994.tif 000017
【図１６】
2013093994.tif 000018
【図１７】
2013093994.tif 000019
【図１８】
2013093994.tif 000020
【図１９】
2013093994.tif 000021
【図２０】
2013093994.tif 000022
【図２１】
2013093994.tif 000023
【図２２】
2013093994.tif 000024
【図２３】
2013093994.tif 000025
【図２４】
2013093994.tif 000026
【図２５】
2013093994.tif 000027
【図２６】
2013093994.tif 000028
【図２７】
2013093994.tif 000029
【図２８】
2013093994.tif 000030
【手続補正書】
【提出日】平成26年6月18日(2014.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを格納する複数の格納装置と、
データを保持するキャッシュメモリと、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、いずれかの前記格納装置へアクセスすると共に、前記対象データを前記キャッシュメモリへ格納するアクセス制御部と、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む書込部と、
を備えることを特徴とするストレージシステム。
【請求項２】
前記ストレージシステムは、さらに、
前記格納装置に対する、読み込みまたは書き込みによるアクセス負荷の監視を行う負荷監視部を備え、
前記アクセス制御部は、前記情報処理端末から前記アクセス要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記アクセス制御部は、前記情報処理端末から前記対象データへの読み込み要求があった場合、前記監視の結果に基づいて、該対象データを格納する前記格納装置のうち前記アクセス負荷の最も少ない格納装置から該対象データを取得して、該対象データを前記キャッシュメモリへ格納し、該対象データを前記情報処理端末へ送信する
ことを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記アクセス制御部は、前記情報処理端末から対象データの書き込み要求があった場合、前記監視の結果に基づいて、前記格納装置のうち前記アクセス負荷の最も少ない格納装置に前記対象データを書き込み、該対象データを前記キャッシュメモリへ格納し、
前記書込部は、前記キャッシュメモリへ格納した前記対象データを、前記書込みを行った格納装置以外の格納装置へ書き込む
ことを特徴とする請求項２に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、さらに、
前記複数の格納装置のボリュームを仮想化した仮想ボリュームのレプリカの書込みアクセス負荷が閾値を超えた場合、または、前記レプリカの作成において前記格納装置の空き容量が第1の閾値より少ない場合、前記仮想ボリュームのレプリカが前記複数の格納装置に３以上あれば、いずれかの格納装置に格納された前記レプリカを削除するレプリカ削除部
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記レプリカ削除部は、前記監視の結果に基づいて、前記レプリカを含む格納装置のうち前記アクセス負荷の最も少ない格納装置のレプリカを選択し、時刻毎に集計した前記格納装置に対するアクセス頻度を示すアクセス頻度情報に基づいて、前記選択したレプリカに対して、現時刻以降、第2の閾値を越えるアクセス頻度の読み込みアクセスがないと判定した場合、前記選択したレプリカを削除する
ことを特徴とする請求項５に記載のストレージシステム。
【請求項７】
前記ストレージシステムは、さらに、
いずれかの前記格納装置に対する時刻毎の前記アクセス負荷のうちいずれかの時間帯のアクセス負荷と、全ての前記格納装置に対する該時間帯の前記アクセス負荷の平均との差分が第3の閾値を超えている場合において、該時間帯を細分化し、該細分化したいずれかの時間帯のうち前記いずれかの格納装置のいずれかのディスクに対するアクセス負荷と、該いずれかの格納装置の全ディクスの該細分化したいずれかの時間帯のアクセス負荷の平均との差分が第4の閾値より小さい場合、該細分化したいずれかの時間帯より前で前記いずれかの格納装置のアクセス負荷が第5の閾値を超えていない時間に、最もアクセス負荷の多いディスクにレプリカを作成するレプリカ作成部
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項８】
コンピュータに、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、データを格納する複数の格納装置のうちいずれかの格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む
処理を実行させるデータリバランシングプログラム。
【請求項９】
コンピュータにより実行される、格納装置間のデータのリバランシング方法であって、
前記コンピュータは、
情報処理端末から、対象データの読み込みまたは対象データの書込みのためのアクセス要求があった場合、データを格納する複数の格納装置のうちいずれかの格納装置へアクセスすると共に、前記対象データをキャッシュメモリへ格納し、
前記キャッシュメモリへ格納した前記対象データを、前記複数の格納装置のうち該対象データが格納されていない格納装置へ書き込む
処理を実行するデータリバランシング方法。
【国際調査報告】
2013093994.tif 000031
2013093994.tif 000032