(57)【要約】【課題】データが元の階層に戻される場合に、階層制御の無駄な処理をなくすこと。【解決手段】移動処理部４２は、階層移動元の空き容量が１０％以上である場合に移動元の領域にデータを保持する。リード処理部４３は、リード要求を受けたデータが複数の階層にある場合に、負荷の低い階層からデータを読み出す。ライト処理部４４は、負荷が高い場合にはコピーの更新を行うことなくビットマップテーブル３１に更新状態を記憶し、負荷が低い状態が１０分以上継続した状況でコピーデータの更新を行う。【選択図】図３
2015052853.tif 000002
【特許請求の範囲】
【請求項１】
自動階層制御機能を有するストレージ制御装置において、
階層間でデータを移動する必要があるか否かを判定する判定部と、
前記判定部がデータを移動する必要があると判定した場合に、移動先へのデータの複写を制御するとともに、移動元の空き容量に基づいて移動元のデータの保持を制御する移動部と
を有することを特徴とするストレージ制御装置。
【請求項２】
前記移動部は、移動先に移動元のデータと同一のデータがある場合には、データの複写を省略することを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
複数の階層に同一データがある場合に、該複数の階層の入出力負荷に基づいて記憶装置からのデータの読み出しを制御する読出部をさらに有することを特徴とする請求項１又は２に記載のストレージ制御装置。
【請求項４】
複数の階層に同一データがある場合に、現階層にデータを書き込む際に現階層の入出力負荷に基づいて他の階層へのデータの書き込みを制御する書込部をさらに有することを特徴とする請求項１、２又は３に記載のストレージ制御装置。
【請求項５】
自動階層制御機能を有するストレージ制御装置の制御方法において、
階層間でデータを移動する必要があるか否かを判定し、
データを移動する必要があると判定した場合に、移動先へのデータの複写を制御するとともに、移動元の空き容量に基づいて移動元のデータの保持を制御する
処理を前記ストレージ制御装置が実行することを特徴とする制御方法。
【請求項６】
自動階層制御機能を有するストレージ制御装置に組み込まれたコンピュータにより実行されるプログラムにおいて、
階層間でデータを移動する必要があるか否かを判定し、
データを移動する必要があると判定した場合に、移動先へのデータの複写を制御するとともに、移動元の空き容量に基づいて移動元のデータの保持を制御する
処理を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ストレージシステムでは、自動階層制御が行われている。自動階層制御とは、ストレージへのデータアクセスを監視し、異種ドライブ混在環境で、データのアクセス頻度を検出し、設定したポリシーに応じて、ドライブ間で自動的にデータ再配置を行う機能である。
【０００３】
例えば、使用頻度の低いデータは大容量で安価なＨＤＤ（Hard  Disk  Drive）を記憶装置とする低階層へ配置することで、ストレージシステムは、保管コストを低減できる。また、アクセス頻度が高いデータは高性能なＳＳＤ（Solid  State  Drive）を記憶装置とする高階層に配置することで、ストレージシステムは、レスポンス時間を短縮し、パフォーマンスを向上できる。
【０００４】
なお、複数のボリュームを有するストレージ装置において、ファイルをブロック単位に分割して、複数のボリュームに同一のブロックを書き込み、複数のボリュームから異なるブロックを並列的に読み込む従来技術がある（例えば、特許文献１参照。）。
【０００５】
また、低速ボリュームと高速ボリュームにデータを書き込み、所定の保存期間が経過すると高速ボリュームからデータを消去する従来技術がある（例えば、特許文献２参照。）。また、低速な記憶デバイスで構成された記憶装置と高速な記憶デバイスで構成された記憶装置にデータを書き込み、アクセス頻度が低下したデータを高速な記憶デバイスで構成された記憶装置から削除する従来技術がある（例えば、特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１４８８５４号公報
【特許文献２】特開２００６−１３９５５２号公報
【特許文献３】特開２０１１−２４２８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
自動階層制御では、ストレージ制御装置は、所定の大きさ（例えば、約１．３４ギガバイト）の領域を一定時間（例えば４時間）監視し、閾値ＩＯＰＳ（Input/Output  Per  Second）による判断でデータの再配置（階層移動）を行う。また、ストレージ制御装置は、階層移動した後の移動元の領域に対してはデータを初期化している。
【０００８】
しかしながら、階層移動後、アクセス状況の変化により、データを再度元の階層へ移動する、すなわちデータを戻すケースでは、階層制御はシステム性能を低下させるという問題がある。
【０００９】
具体的には、データを戻すと、先の階層移動処理やデータの初期化処理は無駄な処理となる。また、再配置による階層移動後は一定時間の監視を行った後でないと、ストレージ制御装置は、再配置を行わない。したがって、例えば、低階層へ移動したデータに対してアクセス負荷が高くなった場合でも、再配置は一定時間以降であるため、低階層の性能しか得られない。
【００１０】
本発明は、１つの側面では、自動階層制御により一定の条件で発生するシステム性能の低下を抑えるストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示するストレージ制御装置は、１つの態様において、自動階層制御機能を有し、階層間でデータを移動する必要があるか否かを判定する判定部を有する。また、本願の開示するストレージ制御装置は、判定部がデータを移動する必要があると判定した場合に、移動先へのデータの複写を制御するとともに、移動元の空き容量に基づいて移動元のデータの保持を制御する移動部を有する。
【発明の効果】
【００１２】
１実施態様によれば、自動階層制御により一定の条件で発生するシステム性能の低下を抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係るストレージ制御装置による自動階層制御を説明するための図である。
【図２】図２は、実施例に係るストレージシステムのハードウェア構成を示す図である。
【図３】図３は、ＣＭの機能構成を示す図である。
【図４】図４は、ビットマップテーブルのイメージを示す図である。
【図５】図５は、配置テーブルの一例を示す図である。
【図６】図６は、移動処理部による階層移動処理のフローを示すフローチャートである。
【図７】図７は、リード処理部によるリード処理のフローを示すフローチャートである。
【図８】図８は、ライト処理部によるライト処理のフローを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本願の開示するストレージ制御装置、制御方法及びプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１５】
まず、実施例に係るストレージ制御装置による自動階層制御について説明する。図１は、実施例に係るストレージ制御装置による自動階層制御を説明するための図である。図１に示すように、サーバ１は、論理ボリューム２に対してリード／ライトアクセスを行う。
【００１６】
論理ボリューム２のデータは、ＩＯＰＳに基づいて低階層３、中階層４又は高階層５に記憶される。低階層３は、ニアラインディスクドライブであり、中階層４は、オンラインディスクドライブであり、高階層５はＳＳＤである。また、各階層はＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）グループを有する。なお、以下では、ＳＳＤを含め、記憶装置を「ディスク」と呼ぶこととする。
【００１７】
例えば、中階層４から高階層５へデータの階層移動が行われると、実施例に係るストレージ制御装置は、中階層４の空き容量によっては中階層４のデータを初期化することなく保持する。
【００１８】
したがって、高階層５に移動したデータのＩＯＰＳが減少して中階層４にデータを戻す場合に、実施例に係るストレージ制御装置は、データに変更がなければ、保持したデータを用いることができる。このため、実施例に係るストレージ制御装置は、無駄なデータ初期化処理やデータ移動処理を行う必要がなく、無駄な処理の実行によるシステム性能の低下を抑えることができる。
【００１９】
次に、実施例に係るストレージシステムのハードウェア構成について説明する。図２は、実施例に係るストレージシステムのハードウェア構成を示す図である。図２に示すように、ストレージシステム１００は、４台のＣＭ（Controller  Module）１０と、ＤＥ（Drive  Enclosure）２０とを有する。なお、ここでは、説明の便宜上１台のＤＥ２０を示すが、ストレージシステム１００は複数のＤＥ２０を有することができる。
【００２０】
ＣＭ１０は、サーバ１からの要求に基づいてストレージシステム１００を制御する装置である。ＤＥ２０は、ＳＳＤ２１と２台のＨＤＤ２２を搭載する機構であり、低階層３、中階層４及び高階層５の記憶領域を提供する。ＳＳＤ２１は、高階層５の記憶領域を提供し、２台のＨＤＤ２２は、それぞれ中階層４及び低階層３の記憶領域を提供する。なお、ここでは、説明の便宜上１台のＳＳＤ２１と２台のＨＤＤ２２を示すが、ＤＥ２０は任意の台数のＳＳＤ２１及びＨＤＤ２２を有することができる。
【００２１】
ＣＭ１０は、２つのＣＡ（Channel  Adapter）１１と、キャッシュメモリ１２と、ＣＰＵ１３と、フラッシュメモリ１４と、ＩＯＣ（Input  Output  Controller）１５とを有する。
【００２２】
ＣＡ１１は、サーバ１と接続するためのモジュールである。キャッシュメモリ１２は、ストレージシステム１００が読み書きするデータを一時的に記憶するメモリであり、システムの制御のためのデータなども記憶する。
【００２３】
ＣＰＵ１３は、フラッシュメモリ１４に記憶されたプログラムを実行することによりＣＭ１０を制御装置として機能させる中央処理装置である。フラッシュメモリ１４は、ＣＰＵ１３で実行されるプログラムを記憶する不揮発性メモリである。
【００２４】
ＩＯＣ１５は、ＳＳＤ２１及びＨＤＤ２２へのデータの書き込み、ＳＳＤ２１及びＨＤＤ２２からのデータの読み出しを制御する。なお、多数のＤＥ２０をＣＭ１０に接続する場合には、ＩＯＣ１５の代わりにエクスパンダ（Expander）を介してＣＭ１０はＤＥ２０に接続される。
【００２５】
次に、ＣＭ１０の機能構成について説明する。図３は、ＣＭ１０の機能構成を示す図である。図３に示すように、ＣＭ１０は、記憶部３０と、制御部４０とを有する。記憶部３０は、制御部４０が使用するデータを記憶する。記憶部３０は、図２に示したキャッシュメモリ１２により実現される。
【００２６】
記憶部３０は、ビットマップテーブル３１と配置テーブル３２とを有する。ビットマップテーブル３１は、階層ごとに更新された領域を示すテーブルである。図４は、ビットマップテーブル３１のイメージを示す図である。
【００２７】
図４は、低階層用、中階層用及び高階層用の３枚のビットマップを示す。各ビットマップでは、３２メガバイト毎に１ビットが割り当てられ、対応する３２メガバイトの領域が更新されるとビットに「１」が設定される。図４において、黒丸は、ビットに「１」が設定されていることを示す。
【００２８】
配置テーブル３２は、SubLUN毎にデータがどの階層に記憶されているかを示す。ここでLUN（Logical  Unit  Number）は、ストレージの各領域を識別する番号であり、SubLUNは、LUNで識別される領域を約１．３４ギガバイト毎に分割した領域を識別する番号である。データは、SubLUNで識別される領域単位で階層間で移動される。
【００２９】
図５は、配置テーブル３２の一例を示す図である。図５において、現階層は、SubLUNで識別される領域のデータが現在どの階層に記憶されているかを示し、残階層1及び残階層2は、コピーがどの階層に記憶されているかを示す。
【００３０】
例えば、SubLUNが「１００」で識別される領域のデータは、現在、高階層５にだけ記憶され、SubLUNが「１０１」で識別される領域のデータは、現在、中階層４に記憶され、コピーが高階層５に記憶されている。
【００３１】
また、記憶部３０は、各階層について、空き容量、ディスク使用率、ディスクビジー率、リスポンス時間などを記憶する。
【００３２】
図３に戻って、制御部４０は、ＣＭ１０の制御機能を実現し、判定部４１と、移動処理部４２と、リード処理部４３と、ライト処理部４４と、コピー部４５とを有する。制御部４０は、図２に示したＣＰＵ１３がフラッシュメモリ１４に記憶されたプログラムを実行することにより実現される。
【００３３】
判定部４１は、階層間でデータを移動する必要があるか否かをＩＯＰＳに基づいて判定し、データを移動するSubLUNを特定する。
【００３４】
移動処理部４２は、判定部４１によりデータ移動対象として特定されたSubLUNについて、階層間でのデータの移動を制御する。具体的には、移動処理部４２は、移動先にデータのコピーがあるか否かを配置テーブル３２を用いて判定し、データのコピーがない場合には、移動元の階層から移動先の階層にデータをコピーし、データのコピーがある場合には、データのコピーは行わない。
【００３５】
また、移動処理部４２は、移動元の階層の空き領域が１０％以上あるか否かを判定し、１０％以上ある場合には、移動元の階層にデータを保持させ、１０％以上ない場合には、移動元の領域を初期化する。
【００３６】
移動処理部４２が、移動元の階層の空き領域が１０％以上ある場合に、移動元の階層にデータを保持させることによって、データが戻された場合に無駄となる初期化処理、データを戻すための移動処理をなくすことができる。
【００３７】
リード処理部４３は、サーバ１からの要求に基づいて、データを現在記憶する現階層からデータを読み出し、サーバ１に送信する。ただし、リード処理部４３は、データのコピーを他の階層が記憶し、現階層の負荷が高く、他の階層の負荷が高くない場合には、他の階層からデータを読み出してサーバ１に送信する。
【００３８】
ライト処理部４４は、サーバ１からの要求に基づいて、データを現階層に書き込む。また、ライト処理部４４は、データのコピーを他の階層が記憶し、現階層の負荷が高い場合には、ビットマップテーブル３１のデータに対応する箇所を更新し、他の階層へのデータのコピーは行わない。そして、ライト処理部４４は、他の階層の負荷が低い状況が一定時間以上続いたときに、他の階層へのデータのコピーを行う。
【００３９】
また、ライト処理部４４は、データのコピーを他の階層が記憶し、現階層の負荷が高くない場合には、他の階層の負荷及び空き容量に基づいて他の階層へのデータのコピーを制御する。
【００４０】
コピー部４５は、移動処理部４２及びライト処理部４４の指示に基づいてコピー元の階層からコピー先の階層へのデータのコピーを行う。
【００４１】
次に、移動処理部４２による階層移動処理のフローについて説明する。図６は、移動処理部４２による階層移動処理のフローを示すフローチャートである。図６に示すように、移動処理部４２は、移動先にコピーデータがあるか否かを判定する（ステップＳ１）。その結果、移動先にコピーデータがない場合には、移動処理部４２は、コピー部４５を用いて、移動先へ全データをコピーする（ステップＳ２）。
【００４２】
一方、移動先にコピーデータがある場合には、移動処理部４２は、移動先と移動元との間でデータの整合性があるか否かを判定し（ステップＳ３）、整合性がある場合には、データのコピーを行うことなくステップＳ５に進む。一方、整合性がない場合には、移動処理部４２は、ビットマップテーブル３１のビットマップに基づいて更新分をコピーする（ステップＳ４）。
【００４３】
そして、移動処理部４２は、階層移動元の空き容量は１０％以上であるか否かを判定し（ステップＳ５）、１０％以上である場合には、領域データを保持する処理を行い（ステップＳ６）、１０％以上でない場合には、移動元領域を初期化する（ステップＳ７）。
【００４４】
このように、移動処理部４２が階層移動元の空き容量が１０％以上である場合に移動元の領域にデータを保持することによって、移動元にデータが戻される場合に、データの移動処理を省くことができる。
【００４５】
次に、リード処理部４３によるリード処理のフローについて説明する。図７は、リード処理部４３によるリード処理のフローを示すフローチャートである。図７に示すように、リード処理部４３は、他階層のコピーとデータの整合性があるか否かを判定し（ステップＳ１１）、整合性がない場合には、現階層からのリード処理を行う（ステップＳ２０）。
【００４６】
一方、整合性がある場合には、リード処理部４３は、現階層ＲＡＩＤのディスク使用率が９０％以上であるか否かを判定し（ステップＳ１２）、９０％未満である場合には、現階層からのリード処理を行う（ステップＳ２０）。
【００４７】
一方、９０％以上である場合は、リード処理部４３は、現階層のリスポンス時間は１０ミリ秒（ｍｓ）以上であるか否かを判定し（ステップＳ１３）、１０ｍｓ以上でない場合には、現階層からのリード処理を行う（ステップＳ２０）。
【００４８】
一方、１０ｍｓ以上である場合には、リード処理部４３は、３階層全てにデータがあるか否かを判定する（ステップＳ１４）。その結果、３階層全てにはデータがない場合には、２階層にデータがある場合なので、リード処理部４３は、残りの階層である残階層のリスポンス時間が１０ｍｓ以上であるか否かを判定する（ステップＳ１５）。
【００４９】
その結果、リード処理部４３は、１０ｍｓ以上である場合には、現階層からのリード処理を行い（ステップＳ２０）、１０ｍｓ以上でない場合には、残階層からのリード処理を行う（ステップＳ１６）。
【００５０】
一方、３階層全てにデータがある場合には、リード処理部４３は、残階層のうちの現階層より高い階層である残高階層があり、残高階層のディスクビジー率が９５％以上であるか否かを判定する（ステップＳ１７）。
【００５１】
その結果、残高階層のディスクビジー率が９５％以上である場合には、リード処理部４３は、ステップＳ１５に進み、残高階層以外の残階層についてリスポンス時間をチェックする。一方、残高階層のディスクビジー率が９５％以上でない場合には、リード処理部４３は、残高階層のリスポンス時間が５ｍｓ以上であるか否かを判定する（ステップＳ１８）。
【００５２】
その結果、５ｍｓ以上である場合には、リード処理部４３は、ステップＳ１５に進み、残高階層以外の残階層についてリスポンス時間をチェックし、５ｍｓ以上でない場合には、残高階層からのリード処理を行う（ステップＳ１９）。
【００５３】
このように、リード処理部４３は、リード要求を受けたデータのコピーがある場合に、負荷の低い階層からデータを読み出すので、システムの応答性能を向上することができる。
【００５４】
次に、ライト処理部４４によるライト処理のフローについて説明する。図８は、ライト処理部４４によるライト処理のフローを示すフローチャートである。図８に示すように、ライト処理部４４は、現階層へのライト処理を行い（ステップＳ２１）、ライト処理したデータについて、他階層のコピーがあるか否かを判定する（ステップＳ２２）。その結果、他階層のコピーがない場合には、ライト処理部４４は、処理を終了する。
【００５５】
一方、他階層のコピーがある場合には、ライト処理部４４は、現階層ＲＡＩＤのディスク使用率は５０％以上であるか否かを判定する（ステップＳ２３）。その結果、５０％以上である場合には、ライト処理部４４は、ビットマップテーブル３１のうちのコピーがある階層分のビットマップを更新する（ステップＳ２４）。
【００５６】
その後、ライト処理部４４は、更新が必要な全対象階層についてＲＡＩＤのディスク使用率は５０％以上であるか否かを判定し（ステップＳ２５）、１つでも５０％以上である場合には、ステップＳ２５の処理を繰り返す。
【００５７】
一方、更新が必要な全対象階層のＲＡＩＤのディスク使用率が５０％未満の場合には、ライト処理部４４は、全対象階層のＲＡＩＤのディスク使用率が５０％未満の時間が１０分以上であるか否かを判定する（ステップＳ２６）。
【００５８】
その結果、ＲＡＩＤのディスク使用率が５０％未満の時間が１０分未満の階層が１つでもある場合には、ライト処理部４４は、ステップＳ２５に戻る。一方、全対象階層のＲＡＩＤのディスク使用率が５０％未満の時間が１０分以上である場合には、ライト処理部４４は、コピー部４５を用いて、他階層へデータのコピーを行う（ステップＳ２７）。
【００５９】
また、現階層ＲＡＩＤのディスク使用率が５０％以上でない場合は、ライト処理部４４は、コピーがある他階層ＲＡＩＤのディスク使用率は５０％以上であるか否かを判定する（ステップＳ２８）。その結果、５０％以上である階層については、ライト処理部４４は、ステップＳ２４に進んで、ビットマップテーブル３１のうちの対応するビットマップを更新する。
【００６０】
一方、５０％未満である階層については、ライト処理部４４は、他階層（その階層）の空き容量は１０％以上であるか否かを判定し（ステップＳ２９）、１０％以上である場合には、ステップＳ２７へ進んで、他階層へデータのコピーを行う（ステップＳ２７）。一方、１０％以上でない場合には、ライト処理部４４は、対象階層のデータを初期化する（ステップＳ３０）。
【００６１】
このように、ライト処理部４４は、負荷が低い状態が１０分以上継続した状況でコピーデータの更新を行うので、システム性能に与える影響を抑えてデータの整合性を維持することができる。
【００６２】
上述してきたように、実施例では、移動処理部４２は、階層移動元の空き容量が１０％以上である場合に移動元の領域にデータを保持することとしたので、移動元にデータが戻される場合に、データの移動処理及びデータの初期化処理を省くことができる。したがって、ＣＭ１０は、自動階層制御により階層間でデータの戻りが発生した場合のシステム性能の低下を抑えることができる。
【００６３】
また、実施例では、リード処理部４３は、リード要求を受けたデータが複数の階層にある場合に、負荷の低い階層からデータを読み出すので、システムの応答性能を向上することができる。
【００６４】
また、実施例では、ライト処理部４４は、負荷が高い場合にはコピーの更新を行うことなくビットマップテーブル３１に更新状態を記憶し、負荷が低い状態が１０分以上継続した状況でコピーデータの更新を行う。したがって、ライト処理部４４は、システム性能に与える影響を抑えてデータの整合性を維持することができる。
【００６５】
また、実施例では、３階層の自動階層制御について説明したが、本発明はこれに限定されるものではなく、より多くの階層の自動階層制御にも同様に適用することができる。
【００６６】
また、実施例では、ＳＳＤ及びＨＤＤを有するストレージシステムについて説明したが、本発明はこれに限定されるものではなく、他のドライブ装置を有するストレージシステムにも同様に適用することができる。
【符号の説明】
【００６７】
１    サーバ
２    論理ボリューム
３    低階層
４    中階層
５    高階層
１０    ＣＭ
１１    ＣＡ
１２    キャッシュメモリ
１３    ＣＰＵ
１４    フラッシュメモリ
１５    ＩＯＣ
２０    ＤＥ
２１    ＳＳＤ
２２    ＨＤＤ
３０    記憶部
３１    ビットマップテーブル
３２    配置テーブル
４０    制御部
４１    判定部
４２    移動処理部
４３    リード処理部
４４    ライト処理部
４５    コピー部
１００    ストレージシステム
【図１】
2015052853.tif 000003
【図２】
2015052853.tif 000004
【図３】
2015052853.tif 000005
【図４】
2015052853.tif 000006
【図５】
2015052853.tif 000007
【図６】
2015052853.tif 000008
【図７】
2015052853.tif 000009
【図８】
2015052853.tif 000010