(57)【要約】  本発明は、メモリに格納された監視レコードを管理するために使用される監視レコード管理技術を提供する。監視レコードは、ストレージのチャンクを監視するために使用され、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取ることにより、監視パラメータが閾値を満たす監視レコードが結合又は分割される。本発明で提供される監視レコード管理技術が適用された後に、メモリの占有が低減され得る、或いは、管理レコードの精度が改善され得る。
2016500459.tif 000002
【特許請求の範囲】
【請求項１】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つ以上のチャンクを監視するために使用され、前記監視レコードは、少なくとも１つの監視パラメータのセットである監視レコード管理方法であって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成するステップであり、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、前記読み取られた監視レコードを削除するステップであり、前記結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しいステップと、
前記結合監視レコードをメモリに書き込むステップであり、前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用されるステップと
を有する監視レコード管理方法。
【請求項２】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記ストレージにおけるチャンクのI/O要求を監視するステップと、
前記メモリの前記結合監視レコードの各監視パラメータを更新するために、前記結合監視レコードにより監視される前記チャンクのI/O要求レコードを使用するステップと
を更に有する、請求項１に記載の監視レコード管理方法。
【請求項３】
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取ることは、具体的に、
IOPSが前記IOPSの予め設定された閾値を満たし、IO回数が前記IO回数の予め設定された閾値を満たす監視レコードを読み取ることである、請求項１又は２に記載の監視レコード管理方法。
【請求項４】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割するステップであり、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードにおいて、監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しいステップと、
前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記結合監視レコードにより監視される前記メモリに書き込むステップと
を更に有する、請求項１ないし３のうちいずれか１項に記載の監視レコード管理方法。
【請求項５】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットである監視レコード分割方法であって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、
前記読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するステップであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しいステップと、
前記分割監視レコードを前記メモリに書き込むステップであり、前記分割監視レコードは、オフセットアドレス及びデータ長を保持するデータを監視するために使用されるステップと
を有する監視レコード分割方法。
【請求項６】
各分割監視レコードの各監視パラメータの値は、具体的に、各分割監視レコードに保持されたデータ長に従って、分割前の前記監視レコードの各監視パラメータの値を各分割監視レコードに配分することにより取得された値である、請求項５に記載の監視レコード分割方法。
【請求項７】
前記監視パラメータは、IOの総数に対するランダムIOの数の割合である、請求項５又は６に記載の監視レコード分割方法。
【請求項８】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つ以上のチャンクを監視するために使用され、前記監視レコードは、少なくとも１つの監視パラメータのセットである監視レコード管理デバイスであって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第１の読み取りモジュールと、
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成するように構成された結合モジュールであり、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、前記読み取られた監視レコードを削除するように構成された結合モジュールであり、前記結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しい結合モジュールと、
前記結合監視レコードを前記メモリに書き込むように構成された第１の書き込みモジュールであり、前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される第１の書き込みモジュールと
を有する監視レコード管理デバイス。
【請求項９】
前記第１の書き込みモジュールは、前記ストレージにおけるチャンクのI/O要求を監視し、前記メモリの前記結合監視レコードの各監視パラメータを更新するために、前記結合監視レコードにより監視される前記チャンクのI/O要求レコードを使用するように更に構成される、請求項８に記載の監視レコード管理デバイス。
【請求項１０】
前記第１の読み取りモジュールは、前記メモリの各監視レコードにおいて、１秒当たりの入出力操作（IOPS）がIOPSの予め設定された閾値を満たし、IO回数がIO回数の予め設定された閾値を満たす監視レコードを読み取るように構成される、請求項８又は９に記載の監視レコード管理デバイス。
【請求項１１】
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割するように構成された第１の分割モジュールであり、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードにおいて、監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しく、前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記メモリに書き込むように構成された第１の分割モジュールを更に有する、請求項８ないし１０のうちいずれか１項に記載の監視レコード管理デバイス。
【請求項１２】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットである監視レコード分割デバイスであって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第２の読み取りモジュールと、
前記読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するように構成された第２の分割モジュールであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい第２の分割モジュールと、
前記分割監視レコードを前記メモリに書き込むように構成された第２の書き込みモジュールであり、前記分割監視レコードは、オフセットアドレス及びデータ長を保持するデータを監視するために使用される第２の書き込みモジュールと
を有する監視レコード分割デバイス。
【請求項１３】
前記第２の分割モジュールは、前記読み取られた監視パラメータの各監視パラメータが前記予め設定された閾値を満たす監視レコードを分割し、分割後に前記少なくとも２つの監視レコードを生成するように具体的に構成され、前記データの前記オフセットアドレス及び前記データ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、前記監視パラメータの値の合計は、前記結合監視レコードの前記監視パラメータの値に等しく、分割前の前記監視レコードの各監視パラメータの値は、各分割監視レコードに保持されたデータ長に従って、各分割監視レコードに配分される、請求項１２に記載の監視レコード分割デバイス。
【請求項１４】
前記第２の読み取りモジュールは、前記メモリの各監視レコードから、ランダムIOの数とIOの総数とを読み取るように具体的に構成され、前記閾値は、IOの総数に対するランダムIOの数の割合である、請求項１１又は１２に記載の監視レコード分割デバイス。
【請求項１５】
CPUと、前記CPUと通信する通信インタフェースと、前記CPUと通信するメモリとを有するストレージコントローラであって、
前記通信インタフェースは、ストレージと通信するように構成され、
前記メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、前記ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、
プロセッサは、プログラムを実行するように構成され、
前記プログラムは、
前記メモリの監視レコードから少なくとも１つの監視パラメータを読み取り、
前記読み取られた監視パラメータについて、異なる監視レコードの間で同じ種類の監視パラメータの差を計算し、
前記メモリから、それぞれの監視パラメータの差が対応する予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成し、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、結合された前記監視レコードを削除し、前記結合監視レコードにおける少なくとも１つの監視パラメータの値は、全ての監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しく、
前記結合監視レコードを前記メモリに書き込むために使用され、
前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用されるストレージコントローラ。
【請求項１６】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記ストレージにおけるチャンクのI/O要求を監視し、
前記チャンクのI/O要求に従って、前記メモリの前記結合監視レコードの各監視パラメータを更新することを更に有し、前記I/O要求は、前記結合監視レコードにより監視される、請求項１５に記載のストレージコントローラ。
【請求項１７】
前記メモリから、それぞれの監視パラメータの差が対応する予め設定された閾値を満たす監視レコードを読み取ることは、具体的に、
前記メモリから、IPOSの値の差が予め設定されたIPOS閾値を満たし、IO回数の差が予め設定されたIO回数閾値を満たす監視レコードを読み取ることを有する、請求項１６又は１７に記載のストレージコントローラ。
【請求項１８】
前記結合監視レコードを前記メモリに書き込むステップの後に、
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割し、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードの監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しく、
前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記メモリに書き込むことを更に有する、請求項１５ないし１７のうちいずれか１項に記載のストレージコントローラ。
【請求項１９】
CPUと、前記CPUと通信する通信インタフェースと、前記CPUと通信するメモリとを有するストレージコントローラであって、
前記通信インタフェースは、ストレージと通信するように構成され、
前記メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、前記ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットであり、
プロセッサは、プログラムを実行するように構成され、
前記プログラムは、前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取り、
前記監視パラメータの各値が予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成し、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードの監視パラメータの値の合計は、結合監視レコードの同じ種類の監視パラメータの値に等しく、
前記分割監視レコードを前記メモリに書き込むために使用され、
前記分割監視レコードは、前記分割監視レコードに保持された前記オフセットアドレス及び前記データ長により記述されるデータを監視するために使用されるストレージコントローラ。
【請求項２０】
各分割監視レコードの各監視パラメータの値は、具体的に、各分割監視レコードに保持されたデータ長に従って、分割前の前記監視レコードの各監視パラメータの値を各分割監視レコードに配分することにより取得された値である、請求項１９に記載のストレージコントローラ。
【請求項２１】
前記監視パラメータは、IOの総数に対するランダムIOの数の割合である、請求項１９又は２０に記載のストレージコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージの分野に関し、特に監視レコード管理技術に関する。
【背景技術】
【０００２】
ストレージシステムにおけるデータは、ライフサイクルの特性を有する。例えば、最近に生成されたネットワークビデオは、多くの人々により見られ、大量のアクセス量を有する。このため、ビデオサーバでは、ビデオはホット・スポット・データである。時間が経過すると、数ヶ月後に、ビデオは人々により着目されず、ビデオのアクセス量は急速に減少する。このため、ビデオサーバでは、ビデオは一般的な人気のデータになる。数年後に、ビデオは人々によりほとんど見られなくなり、また、人々によりほとんどアクセスされない。このため、ビデオはコールド・スポット・データになる。
【０００３】
ライフサイクルの異なる段階において異なる管理がデータで実行され得る。例えば、階層ストレージがデータで実行され得る。ホット・スポット・データは、ストレージシステムの高性能の階層にマイグレーションされる。データの入力速度を改善するために、入力速度は高性能の階層で高速である。コールド・スポット・データは、ストレージシステムにおける階層ストレージシステムの低性能の階層にマイグレーションされる。ストレージシステムの性能及び容量要件を低価格で満たすために、入力速度は低性能の階層では低速である。
【０００４】
チャンクは、ストレージシステムにおける基本的なストレージ単位であり、データは、チャンクで格納される。アクセス頻度及びIOサイズのような各チャンクの監視パラメータは監視され、監視を通じて取得されたデータは、ストレージ媒体（メモリ等）に格納され、監視データを分析することにより、チャンクのデータのライフサイクルの監視が実現され得る。しかし、監視レコードの数は、チャンクの総数により判断される。このため、ユーザの実際の要件を満たすことがしばしば困難になる。例えば、大量のチャンクがストレージシステムに格納された後に、大量の監視レコードは、ストレージシステムの容量に非常に大きい課題をもたらす。
【発明の概要】
【０００５】
本発明は、監視レコードの監視精度が変更され得るような監視レコード管理方法及びデバイスを提供する。
【０００６】
第１の態様では、本発明の実施例は、監視レコード管理方法を提供し、複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）を含み、この方法は、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、読み取られた監視レコードを結合し、結合監視レコードを生成するステップであり、監視されるチャンクのアイデンティティは、結合監視レコードに記録され、メモリから、読み取られた監視レコードを削除するステップであり、結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しいステップと、結合監視レコードをメモリに書き込むステップであり、結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用されるステップとを含む。
【０００７】
第１の態様の第１の可能な実現方式では、結合監視レコードをメモリに書き込んだ後に、この方法は、ストレージにおけるチャンクのI/O要求を監視するステップと、メモリの結合監視レコードの各監視パラメータを更新するために、結合監視レコードにより監視されるチャンクのI/O要求レコードを使用するステップとを更に含む。
【０００８】
第１の態様、第１の態様の第１の可能な実現方式、又は第１の態様の第２の可能な実現方式と組み合わせて、第１の態様の第３の可能な実現方式では、メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取ることは、具体的に、IOPSがIOPSの予め設定された閾値を満たし、IO回数がIO回数の予め設定された閾値を満たす監視レコードを読み取ることである。
【０００９】
第１の態様、第１の態様の第１の可能な実現方式、第１の態様の第２の可能な実現方式、又は第１の態様の第３の可能な実現方式と組み合わせて、第１の態様の第４の可能な実現方式では、結合監視レコードをメモリに書き込んだ後に、この方法は、メモリから、結合監視レコードを読み取り、結合監視レコードを少なくとも１つの分割監視レコードに分割するステップであり、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しいステップと、メモリから、読み取られた結合監視レコードを削除し、各分割監視レコードをメモリに書き込むステップとを更に含む。
【００１０】
第２の態様では、本発明の実施例では、監視レコード分割方法を提供し、複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）を含み、この方法は、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、監視パラメータの各値が予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するステップであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードの監視パラメータの値の合計は、結合監視レコードの同じ種類の監視パラメータの値に等しいステップと、分割監視レコードをメモリに書き込むステップであり、分割監視レコードは、分割監視レコードに保持されたオフセットアドレス及びデータ長により記述されるデータを監視するために使用されるステップとを含む。
【００１１】
第２の態様の第１の可能な実現方式では、各分割監視レコードの各監視パラメータの値は、具体的に、各分割監視レコードに保持されたデータ長に従って、分割前の監視レコードの各監視パラメータの値を各分割監視レコードに配分することにより取得された値である。
【００１２】
第３の態様では、本発明の実施例は、監視レコード管理デバイスを提供し、複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）を含み、このデバイスは、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第１の読み取りモジュールと、メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、読み取られた監視レコードを結合し、結合監視レコードを生成するように構成された結合モジュールであり、監視されるチャンクのアイデンティティは、結合監視レコードに記録され、メモリから、読み取られた監視レコードを削除するように構成された結合モジュールであり、結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しい結合モジュールと、結合監視レコードをメモリに書き込むように構成された第１の書き込みモジュールであり、結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される第１の書き込みモジュールとを含む。
【００１３】
第３の態様の第１の可能な実現方式では、第１の書き込みモジュールは、ストレージにおけるチャンクのI/O要求を監視し、メモリの結合監視レコードの各監視パラメータを更新するために、結合監視レコードにより監視されるチャンクのI/O要求レコードを使用するように更に構成される。
【００１４】
第３の態様、第３の態様の第１の可能な実現方式と組み合わせて、第３の態様の第２の可能な実現方式では、第１の分割モジュールは、メモリから、結合監視レコードを読み取り、結合監視レコードを少なくとも１つの分割監視レコードに分割するように構成され、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しく、メモリから、読み取られた結合監視レコードを削除し、各分割監視レコードをメモリに書き込むように構成される。
【００１５】
第４の態様では、本発明の実施例は、監視レコード分割デバイスを提供し、複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）を含み、このデバイスは、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第２の読み取りモジュールと、読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するように構成された第２の分割モジュールであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい第２の分割モジュールと、分割監視レコードをメモリに書き込むように構成された第２の書き込みモジュールであり、分割監視レコードは、オフセットアドレス及びデータ長を保持するデータを監視するために使用される第２の書き込みモジュールとを含む。
【００１６】
第４の態様の第１の可能な実現方式では、読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードが分割され、少なくとも２つの監視レコードが分割後に生成され、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しく、分割前の監視レコードの各監視パラメータの値は、各分割監視レコードに保持されたデータ長に従って、各分割監視レコードに配分される。
【００１７】
第４の態様、第４の態様の第１の可能な実現方式、又は第４の態様の第２の可能な実現方式と組み合わせて、第２の読み取りモジュールは、メモリの各監視レコードから、ランダムIOの数とIOの総数とを読み取るように具体的に構成され、閾値は、IOの総数に対するランダムIOの数の割合である。
【００１８】
第５の態様では、本発明の実施例は、ストレージコントローラを提供し、ストレージコントローラは、CPUと、CPUと通信する通信インタフェースと、CPUと通信するメモリとを含み、通信インタフェースは、ストレージと通信するように構成され、メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、CPUは、プログラムを実行するように構成され、プログラムは、メモリの監視レコードから少なくとも１つの監視パラメータを読み取り、読み取られた監視パラメータについて、異なる監視レコードの間で同じ種類の監視パラメータの差を計算し、メモリから、それぞれの監視パラメータの差が対応する予め設定された閾値を満たす監視レコードを読み取り、読み取られた監視レコードを結合し、結合監視レコードを生成し、監視されるチャンクのアイデンティティは、結合監視レコードに記録され、メモリから、結合された監視レコードを削除し、結合監視レコードにおける少なくとも１つの監視パラメータの値は、全ての監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しく、結合監視レコードをメモリに書き込むために使用され、結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される。
【００１９】
第６の態様では、本発明の実施例は、ストレージコントローラを提供し、ストレージコントローラは、CPUと、CPUと通信する通信インタフェースと、CPUと通信するメモリとを含み、通信インタフェースは、ストレージと通信するように構成され、メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットであり、CPUは、プログラムを実行するように構成され、プログラムは、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取り、監視パラメータの各値が予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成し、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードの監視パラメータの値の合計は、結合監視レコードの同じ種類の監視パラメータの値に等しく、分割監視レコードをメモリに書き込むために使用され、分割監視レコードは、分割監視レコードに保持されたオフセットアドレス及びデータ長により記述されるデータを監視するために使用される。
【００２０】
本発明の実施例が適用された後に、監視レコードは分割又は結合されてもよい。すなわち、監視レコードの監視精度は変更されてもよい。
【図面の簡単な説明】
【００２１】
本発明の実施例又は従来技術の技術的対策を説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導くことができる。
【図１】本発明の実施例１を適用したトポロジ図
【図２】本発明の実施例の構成図
【図３】本発明の実施例の構成図
【図４】本発明の実施例による監視レコード記録方法のフローチャート
【図５】本発明の実施例による監視レコード分割方法の実施例のフローチャート
【図６】本発明の実施例による監視レコード管理デバイスの構成図
【図７】本発明の実施例による監視レコード分割デバイスの構成図
【発明を実施するための形態】
【００２２】
以下に、本発明の実施例の添付図面を参照して、本発明の実施例の技術的対策を明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、単に一部に過ぎない。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２３】
ストレージシステムは、データストレージサービスを提供するために使用されるシステムであり、物理的及び相対的に独立したストレージコントローラ及びストレージにより形成されてもよく、ストレージ機能を有するサーバでもよい。チャンク（Chunk）は、ストレージにおける基本的な論理ストレージ単位であり、データを格納するために使用される。チャンクは、ストレージにおける論理的に連続したストレージ空間であり、各チャンクは、物理的なストレージ媒体にマッピングする。これらの物理的なストレージ媒体は、不連続的でもよい。チャンクは、固定長を有してもよく、可変長を有してもよく、その容量のサイズは、数Kバイトのみでもよく、数Gバイトでもよい。
【００２４】
格納されたデータのコールド・ホット度のような情報を識別するために、格納されたデータは監視される必要がある。監視レコードは、基本監視単位としてチャンクを使用することにより生成され、監視レコードは、少なくとも１つの監視パラメータにより形成される。各監視パラメータは、チャンクの入出力状況の規模を監視するために使用される。
【００２５】
１つの監視レコードは、チャンク毎に設定されてもよい。これらの監視レコードは、ストレージ媒体を使用することにより格納される必要がある。監視レコードは、サービスデータと共に格納されてもよい。監視効率を改善するために、サービスデータの入出力（Input/Output、I/O）への影響はできるだけ低減される。I/OはIOとして記載されることもある。これらの監視レコードはまた、サービスデータとは別に格納されてもよく、例えば、ストレージシステム内のメモリに格納されてもよい。メモリは、ランダムアクセスメモリ（Random  Access  Memory、RAM）、ソリッドステートディスク（Solid  State  Disk、SSD）又はフラッシュ（Flash）を採用してもよく、入出力速度があまり必要ない場合には磁気ディスク又は磁気テープのようなストレージ媒体が使用されてもよい。
【００２６】
IO要求が処理される場合、IO要求の長さがチャンクのサイズを超える場合、IO要求は、チャンクのサイズに従って分割され、異なるチャンクに格納される。対応して、本発明の実施例では、各チャンクの監視レコードは、IO要求を通じてカウントされ、分割されたIO要求がカウントの基礎として使用される。例えば、出力IO要求の長さが100Kであり、単一のチャンクが30Kである場合、IO要求は４つのサブIO要求に分割されてもよい。データは４つのチャンクに書き込まれる。各チャンクの監視レコードは、チャンクに対応するサブIO要求のみを監視する。すなわち、本発明の実施例では、IO要求が分割された場合、“IO要求”という用語は、分割されたIO要求を示す。
【００２７】
図１は、本発明の実施例１を適用したトポロジ図である。ホストがストレージシステムのストレージにおいて入出力アクセスを実行した場合、監視プログラムは、サービスにより配信されたIO要求を監視してもよい。IOPS及びチャンクのIO配信頻度のような監視パラメータは、監視を通じて取得され、監視パラメータにより形成された監視レコードはメモリに格納される。データライフサイクル管理プログラムは、監視レコードを分析し、データ管理命令をストレージに配信することにより、ストレージのチャンクを管理する。例えば、IOが頻繁に配信されるチャンクを入出力速度がストレージにおいてより高速である領域にマイグレーションする。図面のメモリは、ストレージシステムのコントローラに設定されており、監視プログラム及びデータライフサイクル管理プログラムは、ストレージコントローラのCPUで実行される。
【００２８】
各監視レコードは、複数の監視パラメータを含む。監視パラメータは、チャンクの入出力状況を記録し、監視パラメータは、チャンクの１秒当たりの入力操作（Input  Operations  per  Second）、１秒当たりの出力操作（Output  Operations  Per  Second）及び１秒当たりの入出力操作（IOPS、Input/Output  Operations  Per  Second）のうち１つ以上を含んでもよい。監視パラメータは、入力IOカウント（read  IO  count）、出力IOカウント（write  IO  count）及び入出力IOカウント（IO  count）のうち１つ以上を更に含んでもよい。更に、監視パラメータは、入力IOサイズ（read  IO  size）を更に含んでもよい。入力IOサイズは、１つの入力IO要求が入力のために要求するデータのサイズを示し、IO要求が入力を想定するデータのサイズは、チャンクのサイズより小さくてもよい。すなわち、１つのチャンクにおいてデータの一部のみが入力される。監視パラメータは、出力IOサイズ（write  IO  size）を更に含んでもよい。出力IOサイズは、出力IO要求が出力のために要求するデータのサイズを示し、IO要求が出力を想定するデータのサイズは、チャンクのサイズより小さくてもよい。すなわち、１つのチャンクの一部のみが占有される。監視パラメータは、入力操作の数、出力操作の数、ランダム性を更に含んでもよい。ランダム性は、IOの総数に対するランダムなIOの数の割合を示す。監視パラメータは、I/O頻度を更に含んでもよい。I/O頻度は、単位時間におけるIO要求の数を示す。監視パラメータは、I/O待ち時間（IO  latency）サイズ（ホスト要求に対するストレージサーバの応答時間）を更に含んでもよい。
【００２９】
大量のチャンクがストレージに存在する場合、監視レコードは、非常に大きいメモリを占有する必要がある。本発明の実施例では、メモリの空間が十分でないため、監視レコードが新たに追加されたチャンクのために生成できない状況を回避するために、１つの監視レコードは、複数のチャンクを監視するために使用されてもよい。他の態様では、本発明の実施例では、複数の監視レコードはまた、監視結果の細かさを向上させるために、同じチャンクの異なる範囲を監視してもよい。
【００３０】
＜実施例１＞
本発明の実施例は、ストレージコントローラに適用され得る監視レコード管理方法を提供する。
【００３１】
複数の監視レコードがストレージコントローラのメモリに格納され、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）、チャンクの入出力頻度及びチャンクの入出力ランダム性を含む。監視プログラムは、チャンクの入出力要求を監視し、監視結果を使用することにより、メモリの監視レコードをリアルタイムで更新する。ネットワークストレージ技術（Network  Storage  Technologies、NAS）又はストレージアエリアネットワーク（Storage  Area  Network、SAN）では、ストレージコントローラは、ストレージに対して物理的に独立しており、ストレージサーバでは、ストレージサーバ自体がストレージコントローラを有する。これは、ストレージコントローラがストレージサーバに統合されていることと等価であり、従って、この方法はストレージサーバ自体により実行され、他の形式のストレージシステムでは、この方法は、ストレージコントローラと同様の計算能力を有するデバイスにより実行されてもよい。本発明の実施例では、物理的に独立しても独立していなくても、同様の機能を有するストレージコントローラが併せてストレージコントローラと呼ばれる。
【００３２】
図２又は図３を参照すると、ストレージシステム4は、ストレージコントローラ41とストレージ42とにより形成される。ストレージコントローラ41は、CPU411と、CPU411と通信する通信インタフェース412と、CPU411と通信するメモリ413とを含む。ストレージコントローラは、通信インタフェース412を通じてストレージ42と通信する。CPU411は、コンピュータプログラムを実行し、コンピュータプログラムは、プログラムコードを含んでもよく、図４に示すステップがプログラムコードを実行するように実行されてもよい。
【００３３】
ステップ11:メモリの各監視レコードから少なくとも１つの監視パラメータを読み取る。
【００３４】
このステップでは、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、各監視レコードは、少なくとも１つの監視パラメータにより形成され、各監視パラメータは、チャンクのIO要求の入出力状況を監視することにより取得される。図２の例を参照すると、合計で５つの監視レコードがメモリ413に存在し、これらは、それぞれ監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEである。各監視レコードは、１つのチャンクを監視するために使用され、合計で５つのチャンクが監視され、各監視レコードは、３つの監視パラメータを含む。例えば、監視レコードAは、監視パラメータA1、監視パラメータA2及び監視パラメータA3を含み、３つの監視パラメータは、例えば、それぞれIOPS、入出力頻度及びIOカウントでもよい。
【００３５】
ステップ11は、ユーザによりアクティブに起動されてもよく、予め設定された閾値条件に従ってストレージシステムにより自動的に起動されてもよい。例えば、既存の監視パラメータが完全にメモリを占有した場合、すなわち、メモリが更に監視レコードを格納するための空間をもはや有さない場合、ステップ11が実行されてもよい。この時点で、新たなチャンクが監視される必要がある場合、メモリが新たなチャンクの監視パラメータにより使用できないという状況が生じる。或いは、監視されるチャンクは、一般的に小さく、例えば、数Kのみのサイズを有し、チャンク毎に監視パラメータを別々に設定する必要はなく、ステップ11がまた実行されてもよい。
【００３６】
ステップ12:メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、読み取られた監視レコードを結合し、結合監視レコードを生成する。監視されるチャンクのアイデンティティは、結合監視レコードに記録される。メモリから、読み取られた監視レコードを削除する。結合監視レコードにおける各監視パラメータの値は、複数の監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しい。
【００３７】
本発明の実施例では、読み取られた監視レコードを結合し、結合監視レコードを生成することは、読み取られた監視レコードの中から、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを結合することを示す。異なるアプリケーションの目的に従って、各監視パラメータの差の閾値は、ユーザにより指定されてもよい。監視されるチャンクのアイデンティティは、結合監視レコードに保持され、異なるチャンクは、異なるアイデンティティを有する。
【００３８】
結合前に、各監視レコードはまた、各監視レコードにより監視されるチャンクのアイデンティティを記録する。結合監視レコードは、複数のチャンクを監視するために使用され、従って、複数のチャンクのアイデンティティは、結合監視レコードに記録される。異なるチャンクは、異なるアイデンティティを有する。アイデンティティを通じて、ユーザは、どのチャンクが監視パラメータにより具体的に監視されるかを認識してもよい。
【００３９】
このステップにおいて、差の閾値検出は、ステップ11において読み取られた内容で実行される。検出された監視パラメータの数は、１つ又は複数でもよい。すなわち、１つのみの監視パラメータが決定されてもよい。異なる監視レコードにおいて監視パラメータの差が閾値を満たし、閾値を満たす方式が差が具体的な値より小さいことである場合又は具体的な値より大きくないことである場合、これらの監視レコードは全体として読み取られる。ステップ101において、読み取られた監視パラメータがIOPSを含み、監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEに記録されたIOPSがそれぞれ50、52、60、61及び70であり、IOPSの閾値が3であること、すなわち、IOPSの差が3より小さい監視レコードが全て結合の条件を満たすことを仮定する。監視レコードAのIOPSと監視レコードBのIOPSとの間の差52-50=2は閾値を満たし、監視レコードCのIOPSと監視レコードDのIOPSとの間の差は61-60=1も閾値を満たす。従って、監視レコードAの各監視パラメータと、監視レコードBの各監視パラメータとは、メモリから読み取られ、別々に結合され、チャンクAの監視レコードとチャンクBの監視レコードも結合監視レコードに記録される。監視レコードCの各監視パラメータと、監視レコードDの各監視パラメータも、メモリから読み取られ、結合され、チャンクCの監視レコードとチャンクDの監視レコードも結合監視レコードに記録される。
【００４０】
閾値検出が異なる種類の監視パラメータの差で実行される状況を適切に理解するために、前述の例に基づいて、以下に例が更に挙げられる。IOPSに加えて、監視パラメータのIOカウント（IO  count）の差が更に比較され、監視パラメータA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEのIOカウントがそれぞれ10、11、20、30及び40であり、IOカウントの閾値が5であることを仮定する。すなわち、監視パラメータAのIOカウントと監視パラメータBのIOカウントとの差11-10=1のみが閾値より小さいという要件を満たす。このように、監視レコードA及び監視レコードBは、IOPS及びIOカウントの閾値の要件を同時に満たす。監視レコードC及び監視レコードDはIOPSの閾値の要件を満たすが、監視レコードC及び監視レコードDは、IOカウントの閾値の要件を満たさない。従って、監視レコードA及び監視レコードBのみがメモリから読み取られ、結合監視レコードを生成するように結合され、監視レコードCも監視レコードDもメモリから読み取られない。
【００４１】
結合監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされたときの各監視パラメータの値、又は監視されるチャンクのセットが監視されるときに取得された監視パラメータの値に等しい。チャンクのセットのいずれかのチャンクのIO要求は、チャンクの全セットのIO要求としてマーキングされる。結合監視パラメータの値は、全ての監視されるチャンクの監視パラメータを結合することにより生成され、結合監視パラメータにより監視されるチャンクは、結合された監視パラメータにより監視されるチャンクにより形成されたセットである。監視レコードにより監視されるチャンクのI/O要求レコードは、結合前の監視レコードに記録される。監視されるチャンクのセットのI/O要求レコードは、結合監視レコードに記録される。
【００４２】
このように、監視精度が相当に拡張され、単一のチャンクの監視パラメータの元々の記録は、複数のチャンクの監視パラメータの記録に変更される。すなわち、結合された監視レコードは、自分のチャンクを元々監視し、結合監視パラメータにおいて、各監視レコードの値は、これらのチャンクを一緒に監視することにより取得された値に等しい。結合監視パラメータにおいて、各監視レコードはまた、結合監視パラメータとも呼ばれることがある。
【００４３】
例えば、図２において、監視パラメータA及び監視パラメータBは共に、それぞれIOPS、IOカウント及びIO頻度である３つの監視パラメータにより形成される。監視レコードAにおいて、IOPSの値は50であり、IOカウントの値は10であり、IO頻度の値は10である。監視レコードBにおいて、IOPSの値は52であり、IOカウントの値は11であり、IO頻度の値は20である。本発明のこの実施例では、監視パラメータの値が直接加算され、チャンクA及びチャンクBにより形成されたセットが新たなチャンクABとして見なされた場合、IOPSを例として挙げることにより、チャンクA又はチャンクBのIOはチャンクABのIOに属し、IOは、結合されたIOPSにカウントされるべきである。従って、結合監視レコードの監視パラメータの値は、IOPS=50+52=102、IOカウント10+11=21及びIO頻度=10+20=30である。結合により生成された結合監視パラメータは、結合された監視パラメータの内容によって統合されるため、結合された監視パラメータにより監視されるチャンクのIO状況は、結合監視レコードに記録され、結合された監視レコードは、削除されてもよく、結合監視レコードと置換される。結合された監視レコードを削除する動作は、これらのパラメータが読み取られた後且つ結合動作が完了する前に実行されてもよく、結合動作が完了した後に実行されてもよい点に特に留意すべきである。前者はできるだけ早くメモリの空間を解放することができ、後者はセキュリティを改善することができ、例えば、結合監視レコードが計算されていない場合に生じた停電によりもたらされるデータロスが回避可能になる。
【００４４】
本発明のこの実施例では、チャンクのコールド・ホット度は、これらの２つの監視パラメータ（IOPS及びIOカウント）を通じて決定されてもよい。２つの監視レコードのIOPS及びIOカウントが近い場合、これらの２つの監視レコードに対応するチャンクのコールド・ホット度が近いと考えられる。チャンクが共にホット・チャンクである場合、チャンクは、入力速度が高速であるストレージ媒体に一緒にマイグレーションされてもよい。チャンクが共にコールド・データである場合、チャンクは、入力速度が低速であるストレージ媒体に一緒にマイグレーションされてもよい。
【００４５】
本発明のこの実施例では、チャンクのコールド・ホット変化規則は、３つの監視パラメータ（コールド・ホット変化時点、コールド・ホット変化時間間隔及び突然のIOアクセス頻度）を通じて決定されてもよい。２つの監視レコードにおいて、これらの３つの監視パラメータの差がそれぞれの予め設定された閾値を満たす場合、すなわち、コールド・ホット変化時点が近く、コールド・ホット変化時間間隔が近く、突然のIOの数が近い場合、これらの２つの監視レコードにより監視されるチャンクが近いコールド・ホット変化規則を有すると考えられ、これらのチャンクの監視レコードは、結合されて格納されてもよい。
【００４６】
ステップ13:結合監視レコードをメモリに書き込む。結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される。
【００４７】
メモリに書き込まれた後に、結合監視パラメータは、結合されていない残りの監視パラメータとしてユーザにより使用されてもよい。この実施例の例が続けて挙げられる。図３を参照すると、監視レコードABは、図２の監視レコードA及び監視レコードBを結合することにより生成され、図２及び図３の点線は、監視レコードとチャンクとの間の対応関係を表す。メモリの監視レコードの数は、図２の5から図３の4に低減される。このことは、メモリの空間の占有を低減する。
【００４８】
監視レコードABの各監視パラメータの値は、監視レコードA及び監視レコードBの監視パラメータを結合することにより生成され、監視レコードABは、チャンクA及びチャンクBのIO要求を同時に監視してもよい。
【００４９】
＜実施例２＞
図４に示すように、実施例１に基づいて、この方法はステップS14を更に含んでもよい。
【００５０】
ステップS14:ストレージのチャンクについてのホストのI/O要求を監視し、メモリの結合監視レコードの各監視パラメータを更新するために、結合監視レコードにより監視されるチャンクのI/O要求レコードを使用する。すなわち、新たに追加されたIO要求が結合監視レコードにより監視されるチャンクのIO要求である限り、それぞれの新たに追加されたIO要求は、結合監視レコードの各監視パラメータにカウントされる。実施例１の具体的な例が挙げられる。結合監視レコードがメモリに書き込まれた後に、チャンクAにアクセスするための又はチャンクBにアクセスするための新たなIO要求が存在する場合、新たなIO要求は、監視レコードABにカウントされる。
【００５１】
＜実施例３＞
更に、実施例１又は２に基づいて、監視レコード分割方法が更に含まれてもよい。分割方法１についてステップS15に参照が行われる。監視レコードの結合が完了した後に、必要に応じて、結合監視レコードは、再び分割されてメモリに格納されてもよい。この実施例では、分割を通じて生成された監視レコードは、分割監視レコードと呼ばれる。例えば、メモリの大量の空間がアイドルである場合、又はユーザが監視精度を低減することを期待する場合、分割方法は、結合監視レコードがメモリから読み取られ、結合監視レコードが少なくとも１つの分割監視レコードに分割されることでもよい。各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、分割監視レコードにおいて、各監視レコードの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視レコードの値に等しい。
【００５２】
監視されるチャンクのアイデンティティは、結合監視レコードに保持される。１つの結合監視レコードが３つ以上の監視レコードを監視するために使用される場合、分割方法はもはや一意ではない。例えば、結合監視レコードが３つのチャンクを監視するために使用され、結合監視レコードは３つの監視レコードに分割されてもよい。各監視レコードは１つのチャンクを監視するために使用される。或いは、結合監視レコードは、２つの監視レコードに分割されてもよい。監視レコードのうち１つは２つのチャンクを監視するために使用され、他の監視レコードは、１つのチャンクを監視するために使用される。
【００５３】
監視レコードの分割は、監視レコードの結合の逆の処理である。実施例１及び２の理解に基づいて、複数の分割方法が存在してもよい。例えば、分割の後に、各監視パラメータは、監視されるチャンクの数に従って配分されてもよい。簡単な例は、３つのチャンクを監視する監視レコードにおいて監視パラメータIOPS=60であり、監視レコードが２つの部分に分割される場合、１つの部分が２つのチャンクを監視し、他の部分が１つのチャンクを監視し、分割監視レコードでは、前者のIOPS=40になり、後者のIOPS=20になる。
【００５４】
この実施例は、他の分割方法を更に提供する。図５を参照すると、分割処理は、監視データにより監視されるチャンクの数又はチャンクのサイズに依存しなくてもよい。結合監視レコード又は単一のチャンクの監視レコードが分割され、分割を通じて生成された監視レコードは、分割監視レコードと呼ばれる。すなわち、図５に示す方法は、実施例１及び２のものと一緒に実行されてもよく、別々に実行されてもよい。分割監視レコードは、監視されるデータのオフセットアドレス及び長さを保持してもよく、監視データが属するチャンクを更に保持してもよい。分割監視レコードでは、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい。実現方式では、各監視パラメータの値は、分割された監視レコードにより監視されるデータ量に対する監視されるデータ量の割合に従って配分されてもよい。すなわち、監視パラメータは、各分割監視レコードで保持されたデータ長に従って各分割監視レコードに配分される。
【００５５】
図５に示す分割方法は、以下のステップを含む。
【００５６】
ステップ21:メモリの各監視レコードから少なくとも１つの監視パラメータを読み取る。
【００５７】
ステップ22:監視パラメータの各値が予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成する。データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードの監視パラメータの値の合計は、結合監視レコードの同じ種類の監視パラメータの値に等しい。
【００５８】
ステップ23:分割監視レコードをメモリに書き込む。分割監視レコードは、分割監視レコードに保持されたオフセットアドレス及びデータ長により記述されるデータを監視するために使用される。
【００５９】
簡単な例は、監視レコードの監視パラメータIOPS=60であり、監視レコードがいずれかの数のチャンクを監視するために使用されるものである。監視レコードが２つの監視レコードに分割される場合、且つ、監視レコードの各監視パラメータがデータ量の長さに従って配分される場合、第１の監視レコードにより監視されるデータ量が第２の監視レコードにより監視されるデータ量の２倍である場合には、分割監視レコードにおいて、前者のIOPS=40であり、後者のIOPS=20である。各監視レコードは、監視されるデータのオフセットアドレス及び長さを更に保持する。オフセットアドレスは、データの開始アドレスであり、監視されるデータは、オフセットアドレス及び長さを通じて見つけられ得る。
【００６０】
ランダム性は、監視レコードを分割するか否かの基礎として使用されてもよい。メモリの監視レコードが分析され、２つの監視パラメータ（ランダムIOの数及びIOの総数）があり、IOの総数に対するランダムIOの数の割合がランダム性として使用される。高いランダム性を有するチャンクのデータについては、異なる部分のアクセス頻度は非常に異なる可能性がある。このような監視レコードでは、メモリが十分である場合に、分割が監視精度を改善し得る。ランダムIOの数及びIOの総数は共に監視パラメータである。連続IOに対して、ランダムIOは、２つの異なる入出力IOについて前の終了アドレスと次の開始アドレスとが非常に異なることを意味する。閾値がユーザにより指定されてもよい。前の終了アドレスと次の開始アドレスとの間の差が閾値を超えた場合、これらの２つのIOはランダムIOとして考えられる。連続IOは、２つの異なる入出力IOについて前の終了アドレスと次の開始アドレスとの間の差が大きくないことを意味する。他の実施例では、ランダム性以外の他のパラメータが使用されてもよい。例えば、IOPSが予め設定された閾値より大きい監視レコードが分割される。或いは、出力IOサイズ及びIO待ち時間がそれぞれの閾値を満たす監視レコードが分割される。
【００６１】
＜実施例４＞
本発明の実施例は、監視レコード管理デバイスを更に提供する。このデバイスは、例えば、ストレージコントローラ又はストレージコントローラで実行されるプログラムでもよい。このデバイスは、前述の方法を適用してもよい。ストレージシステムは、ストレージコントローラ、メモリ及びストレージにより形成される。複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、監視パラメータは、例えば、監視されるチャンクの１秒当たりの入出力操作（IOPS）、チャンクの入出力頻度及びチャンクの入出力ランダム性を含む。監視プログラムは、チャンクの入出力要求を監視し、監視結果を使用することにより、メモリの監視レコードをリアルタイムで更新する。ネットワークストレージ技術（Network  Storage  Technologies、NAS）又はストレージアエリアネットワーク（Storage  Area  Network、SAN）では、ストレージコントローラは、ストレージに対して物理的に独立しており、ストレージサーバでは、ストレージサーバ自体がストレージコントローラを有する。これは、ストレージコントローラがストレージサーバに統合されていることと等価であり、従って、この方法はストレージサーバ自体により実行され、他の形式のストレージシステムでは、この方法は、ストレージコントローラと同様の計算能力を有するデバイスにより実行されてもよい。本発明の実施例では、物理的に独立しても独立していなくても、NAS又はSANのストレージコントローラのものと同様の機能を有するストレージコントローラが併せてストレージコントローラと呼ばれる。
【００６２】
図６を参照すると、監視レコード管理デバイス5は、第１の読み取りモジュール51と、第１の読み取りモジュール51に接続された結合モジュール52と、結合モジュール52に接続された第１の書き込みモジュール53とを含む。各機能モジュールの機能は、以下に１つずつ続けて紹介される。
【００６３】
第１の読み取りモジュール51は、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成される。
【００６４】
このステップでは、各監視レコードは、ストレージの１つのチャンクを監視するために使用され、各監視レコードは、少なくとも１つの監視パラメータにより形成され、各監視パラメータは、チャンクのIO要求の入出力状況を監視することにより取得される。図２の例を参照すると、合計で５つの監視レコードがメモリに存在し、これらは、それぞれ監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEである。各監視レコードは、１つのチャンクを監視するために使用され、合計で５つのチャンクが監視され、各監視レコードは、３つの監視パラメータを含む。例えば、監視レコードAは、監視パラメータA1、監視パラメータA2及び監視パラメータA3を含み、３つの監視パラメータは、例えば、それぞれIOPS、入出力頻度及びIOカウントでもよい。
【００６５】
第１の読み取りモジュールの動作の実行は、ユーザによりアクティブに起動されてもよく、予め設定された閾値条件に従ってストレージシステムにより自動的に起動されてもよい。例えば、既存の監視パラメータが完全にメモリを占有した場合、すなわち、メモリが更に監視レコードを格納するための空間をもはや有さない場合、第１の読み取りモジュールの動作が実行されてもよい。この時点で、新たなチャンクが監視される必要がある場合、メモリが新たなチャンクの監視パラメータにより使用できないという状況が生じる。或いは、監視されるチャンクは、一般的に小さく、例えば、数Kのみのサイズを有し、チャンク毎に監視パラメータを別々に設定する必要はなく、第１の読み取りモジュールの動作がまた実行されてもよい。
【００６６】
結合モジュール52は、メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、読み取られた監視レコードを結合し、結合監視レコードを生成するように構成される。監視されるチャンクのアイデンティティは、結合監視レコードに記録される。結合モジュール52は、メモリから、読み取られた監視レコードを削除するように構成される。結合監視レコードにおける各監視パラメータの値は、複数の監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しい。
【００６７】
本発明の実施例では、読み取られた監視レコードを結合し、結合監視レコードを生成することは、読み取られた監視レコードの中から、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを結合することを示す。異なるアプリケーションの目的に従って、各監視パラメータの差の閾値は、ユーザにより指定されてもよい。監視されるチャンクのアイデンティティは、結合監視レコードに保持され、異なるチャンクは、異なるアイデンティティを有する。
【００６８】
結合前に、各監視レコードはまた、各監視レコードにより監視されるチャンクのアイデンティティを記録する。結合監視レコードは、複数のチャンクを監視するために使用され、従って、複数のチャンクのアイデンティティは、結合監視レコードに記録される。異なるチャンクは、異なるアイデンティティを有する。アイデンティティを通じて、ユーザは、どのチャンクが監視パラメータにより具体的に監視されるかを認識してもよい。
【００６９】
結合モジュール52は、読み取りモジュール51により読み取られた内容で差の閾値検出を実行する。検出された監視パラメータの数は、１つ又は複数でもよい。すなわち、１つのみの監視パラメータが決定されてもよい。異なる監視レコードにおいて監視パラメータの差が閾値を満たし、閾値を満たす方式が差が具体的な値より小さいことである場合又は具体的な値より大きくないことである場合、これらの監視レコードは全体として読み取られる。ステップ101において、読み取られた監視パラメータがIOPSを含み、監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEに記録されたIOPSがそれぞれ50、52、60、61及び70であり、IOPSの閾値が3であること、すなわち、IOPSの差が3より小さい監視レコードが全て結合の条件を満たすことを仮定する。監視レコードAのIOPSと監視レコードBのIOPSとの間の差52-50=2は閾値を満たし、監視レコードCのIOPSと監視レコードDのIOPSとの間の差は61-60=1も閾値を満たす。従って、監視レコードAの各監視パラメータと、監視レコードBの各監視パラメータとは、メモリから読み取られ、別々に結合され、チャンクAの監視レコードとチャンクBの監視レコードも結合監視レコードに記録される。監視レコードCと、監視レコードDも、メモリから読み取られ、結合され、チャンクCの監視レコードとチャンクDの監視レコードも結合監視レコードに記録される。
【００７０】
閾値検出が異なる種類の監視パラメータの差で実行される状況を適切に理解するために、前述の例に基づいて、以下に例が更に挙げられる。IOPSに加えて、監視パラメータのIOカウント（IO  count）の差が更に比較され、監視パラメータA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEのIOカウントがそれぞれ10、11、20、30及び40であり、IOカウントの閾値が5であることを仮定する。すなわち、監視パラメータAのIOカウントと監視パラメータBのIOカウントとの差11-10=1のみが閾値より小さいという要件を満たす。このように、監視レコードA及び監視レコードBは、IOPS及びIOカウントの閾値の要件を同時に満たす。監視レコードC及び監視レコードDはIOPSの閾値の要件を満たすが、監視レコードC及び監視レコードDは、IOカウントの閾値の要件を満たさない。従って、監視レコードA及び監視レコードBのみがメモリから読み取られ、結合監視レコードを生成するように結合され、監視レコードCも監視レコードDもメモリから読み取られない。
【００７１】
結合監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされたときの各監視パラメータの値、又は監視されるチャンクのセットが監視されるときに取得された監視パラメータの値に等しい。チャンクのセットのいずれかのチャンクのIO要求は、チャンクの全セットのIO要求としてマーキングされる。結合監視パラメータの値は、全ての監視されるチャンクの監視パラメータを結合することにより生成され、結合監視パラメータにより監視されるチャンクは、結合された監視パラメータにより監視されるチャンクにより形成されたセットである。監視レコードにより監視されるチャンクのI/O要求レコードは、結合前の監視レコードに記録される。監視されるチャンクのセットのI/O要求レコードは、結合監視レコードに記録される。
【００７２】
このように、監視精度が相当に拡張され、単一のチャンクの監視パラメータの元々の記録は、複数のチャンクの監視パラメータの記録に変更される。すなわち、結合された監視レコードは、自分のチャンクを元々監視し、結合監視パラメータにおいて、各監視レコードの値は、これらのチャンクを一緒に監視することにより取得された値に等しい。結合監視パラメータにおいて、各監視レコードはまた、結合監視パラメータとも呼ばれることがある。
【００７３】
例えば、図２において、監視パラメータA及び監視パラメータBは共に、それぞれIOPS、IOカウント及びIO頻度である３つの監視パラメータにより形成される。監視レコードAにおいて、IOPSの値は50であり、IOカウントの値は10であり、IO頻度の値は10である。監視レコードBにおいて、IOPSの値は52であり、IOカウントの値は11であり、IO頻度の値は20である。本発明のこの実施例では、監視パラメータの値が直接加算され、チャンクA及びチャンクBにより形成されたセットが新たなチャンクABとして見なされた場合、IOPSを例として挙げることにより、チャンクA又はチャンクBのIOはチャンクABのIOに属し、IOは、結合されたIOPSにカウントされるべきである。従って、結合監視レコードの監視パラメータの値は、IOPS=50+52=102、IOカウント10+11=21及びIO頻度=10+20=30である。結合により生成された結合監視パラメータは、結合された監視パラメータの内容によって統合されるため、結合された監視パラメータにより監視されるチャンクのIO状況は、結合監視レコードに記録され、結合された監視レコードは、削除されてもよく、結合監視レコードと置換される。結合された監視レコードを削除する動作は、これらのパラメータが読み取られた後且つ結合動作が完了する前に実行されてもよく、結合動作が完了した後に実行されてもよい点に特に留意すべきである。前者はできるだけ早くメモリの空間を解放することができ、後者はセキュリティを改善することができ、例えば、結合監視レコードが計算されていない場合に生じた停電によりもたらされるデータロスが回避可能になる。
【００７４】
本発明のこの実施例では、チャンクのコールド・ホット度は、これらの２つの監視パラメータ（IOPS及びIOカウント）を通じて決定されてもよい。２つの監視レコードのIOPS及びIOカウントが近い場合、これらの２つの監視レコードに対応するチャンクのコールド・ホット度が近いと考えられる。チャンクが共にホット・チャンクである場合、チャンクは、入力速度が高速であるストレージ媒体に一緒にマイグレーションされてもよい。チャンクが共にコールド・データである場合、チャンクは、入力速度が低速であるストレージ媒体に一緒にマイグレーションされてもよい。
【００７５】
本発明のこの実施例では、チャンクのコールド・ホット変化規則は、３つの監視パラメータ（コールド・ホット変化時点、コールド・ホット変化時間間隔及び突然のIOアクセス頻度）を通じて決定されてもよい。２つの監視レコードにおいて、これらの３つの監視パラメータの差がそれぞれの予め設定された閾値を満たす場合、すなわち、コールド・ホット変化時点が近く、コールド・ホット変化時間間隔が近く、突然のIOの数が近い場合、これらの２つの監視レコードにより監視されるチャンクが近いコールド・ホット変化規則を有すると考えられ、これらのチャンクの監視レコードは、結合されて格納されてもよい。
【００７６】
第１の書き込みモジュール53は、結合監視レコードをメモリに書き込むように構成される。結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される。
【００７７】
メモリに書き込まれた後に、結合監視パラメータは、結合されていない残りの監視パラメータとしてユーザにより使用されてもよい。この実施例の例が続けて挙げられる。図３を参照すると、監視レコードABは、図２の監視レコードA及び監視レコードBを結合することにより生成される。メモリの監視レコードの数は、図２の5から図３の4に低減される。このことは、メモリの空間の占有を低減する。
【００７８】
監視レコードABの各監視パラメータの値は、監視レコードA及び監視レコードBの監視パラメータを結合することにより生成され、監視レコードABは、チャンクA及びチャンクBのIO要求を同時に監視してもよい。
【００７９】
＜実施例５＞
図６を参照して、実施例４に基づいて、書き込みモジュールは、ストレージのチャンクについてのホストのI/O要求を監視し、メモリの結合監視レコードの各監視パラメータを更新するために、結合監視レコードにより監視されるチャンクのI/O要求レコードを使用するように更に構成されてもよい。すなわち、新たに追加されたIO要求が結合監視レコードにより監視されるチャンクのIO要求である限り、それぞれの新たに追加されたIO要求は、結合監視レコードの各監視パラメータにカウントされる。実施例４の具体的な例が挙げられる。結合監視レコードがメモリに書き込まれた後に、チャンクAにアクセスするための又はチャンクBにアクセスするための新たなIO要求が存在する場合、新たなIO要求は、監視レコードABにカウントされる。
【００８０】
＜実施例６＞
更に、実施例４又は５に基づいて、第１の書き込みモジュール53に接続された分割モジュール54が更に含まれてもよい。図６を参照すると、監視レコードの結合が完了した後に、必要に応じて、分割モジュール54は、結合監視レコードを再び分割し、分割監視レコードをメモリに格納してもよい。この実施例では、分割を通じて生成された監視レコードは、分割監視レコードと呼ばれる。例えば、メモリの大量の空間がアイドルである場合、又はユーザが監視精度を低減することを期待する場合、分割モジュール54の機能は、メモリから結合監視レコードを読み取り、結合監視レコードを少なくとも１つの分割監視レコードに分割するために使用されてもよい。各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、分割監視レコードにおいて、各監視レコードの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視レコードの値に等しい。
【００８１】
監視されるチャンクのアイデンティティは、結合監視レコードに保持される。１つの結合監視レコードが３つ以上の監視レコードを監視するために使用される場合、分割方法はもはや一意ではない。例えば、結合監視レコードが３つのチャンクを監視するために使用され、結合監視レコードは３つの監視レコードに分割されてもよい。各監視レコードは１つのチャンクを監視するために使用される。或いは、結合監視レコードは、２つの監視レコードに分割されてもよい。監視レコードのうち１つは２つのチャンクを監視するために使用され、他の監視レコードは、１つのチャンクを監視するために使用される。
【００８２】
監視レコードの分割は、監視レコードの結合の逆の処理である。実施例１、２、４及び５の理解に基づいて、複数の分割方法が存在してもよい。例えば、分割の後に、各監視パラメータは、監視されるチャンクの数に従って配分されてもよい。簡単な例は、３つのチャンクを監視する監視レコードにおいて監視パラメータIOPS=60であり、監視レコードが２つの部分に分割される場合、１つの部分が２つのチャンクを監視し、他の部分が１つのチャンクを監視し、分割監視レコードでは、前者のIOPS=40になり、後者のIOPS=20になる。
【００８３】
＜実施例７＞
この実施例は、他の分割技術を提供する。図７を参照すると、分割処理は、監視データにより監視されるチャンクの数又はチャンクのサイズに依存しなくてもよい。結合監視レコード又は単一のチャンクの監視レコードが分割され、分割を通じて生成された監視レコードは、分割監視レコードと呼ばれる。分割監視レコードは、監視されるデータのオフセットアドレス及び長さを保持してもよく、監視データが属するチャンクを更に保持してもよい。分割監視レコードでは、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい。実現方式では、各監視パラメータの値は、分割された監視レコードにより監視されるデータ量に対する監視されるデータ量の割合に従って配分されてもよい。すなわち、監視パラメータは、各分割監視レコードで保持されたデータ長に従って各分割監視レコードに配分される。
【００８４】
図７に示すチャンク分割デバイスは、第２の読み取りモジュール61と、第２の読み取りモジュールに接続された第２の分割モジュール62と、第２の分割モジュールに接続された第２の書き込みモジュール63とを含む。
【００８５】
第２の読み取りモジュール61は、メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成される。これらの監視レコードは、結合監視レコードでもよく、結合されていない監視レコードでもよい。
【００８６】
第２の分割モジュール62は、読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するように構成される。データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい。分割された監視レコードの対応する監視パラメータの値に対する分割監視レコードの各監視パラメータの値の比は、分割された監視レコードにより監視されるデータ量に対する分割監視レコードにより監視されるデータ量の比でもよい。
【００８７】
第２の書き込みモジュールは、分割監視レコードをメモリに書き込む。分割監視レコードは、オフセットアドレス及びデータ長を保持するデータを監視するために使用される。
【００８８】
簡単な例は、監視レコードの監視パラメータIOPS=60であり、監視レコードがいずれかの数のチャンクを監視するために使用されるものである。監視レコードが２つの監視レコードに分割される場合、且つ、監視レコードの各監視パラメータがデータ量の長さに従って配分される場合、第１の監視レコードにより監視されるデータ量が第２の監視レコードにより監視されるデータ量の２倍である場合には、分割監視レコードにおいて、前者のIOPS=40であり、後者のIOPS=20である。各監視レコードは、監視されるデータのオフセットアドレス及び長さを更に保持する。オフセットアドレスは、データの開始アドレスであり、監視されるデータは、オフセットアドレス及び長さを通じて見つけられ得る。
【００８９】
ランダム性は、監視レコードを分割するか否かの基礎として使用されてもよい。メモリの監視レコードが分析され、２つの監視パラメータ（ランダムIOの数及びIOの総数）があり、IOの総数に対するランダムIOの数の割合がランダム性として使用される。高いランダム性を有するチャンクのデータについては、異なる部分のアクセス頻度は非常に異なる可能性がある。このような監視レコードでは、メモリが十分である場合に、分割が監視精度を改善し得る。ランダムIOの数及びIOの総数は共に監視パラメータである。連続IOに対して、ランダムIOは、２つの異なる入出力IOについて前の終了アドレスと次の開始アドレスとが非常に異なることを意味する。閾値がユーザにより指定されてもよい。前の終了アドレスと次の開始アドレスとの間の差が閾値を超えた場合、ランダムIOとして考えられる。連続IOは、２つの異なる入出力IOについて前の終了アドレスと次の開始アドレスとの間の差が大きくないことを意味する。他の実施例では、ランダム性以外の他のパラメータが使用されてもよい。例えば、IOPSが予め設定された閾値より大きい監視レコードが分割される。或いは、出力IOサイズ及びIO待ち時間がそれぞれの閾値を満たす監視レコードが分割される。
【００９０】
本発明のこの実施例では、各監視パラメータが予め設定された閾値を満たすことは、監視パラメータ自体が閾値を満たすことでもよく、予め設定されたアルゴリズムを通じて計算された後に、監視パラメータが閾値を満たすことでもよい。例えば、２つの監視パラメータの間の差が閾値を満たすこと、２つの監視パラメータの間の比が閾値を満たすことでもよい。
【００９１】
前述の実施例では、例を挙げる便宜上、結合された監視パラメータは１つのみのチャンクを監視する点に特に留意すべきである。実際には、結合監視レコードは、再び更に結合されてもよい。結合監視レコードを再び結合することは単に本発明の前述の実施例の繰り返しの適用であるため、詳細は再びここで説明しないことが当業者は分かる。同様に、分割監視レコードも再び分割されてもよい。
【００９２】
実施例の前述の説明を通じて、本発明は、ソフトウェアに加えて必要な普遍のハードウェアにより実現されてもよく、明らかにハードウェアにより実現されてもよいが、多くの場合にはソフトウェアの実現が好ましいことが、当業者により明確に分かる。このような理解に基づいて、本発明の技術的対策は、本質的に又は従来技術に寄与する部分は、ソフトウェアプロダクトの形式で実現されてもよい。コンピュータソフトウェアプロダクトは、読み取り可能ストレージ媒体（例えば、コンピュータのフロッピー（登録商標）ディスク、ハードディスク又は光ディスク）に格納され、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワークデバイスでもよい）に対して本発明の実施例に記載の方法を実行するように命令する複数の命令を含む。
【００９３】
前述の説明は、本発明の単に具体的な実施例に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術範囲内で当業者により容易に理解できる如何なる変更又は置換も、本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の保護範囲に従うものとする。
【図１】
2016500459.tif 000003
【図２】
2016500459.tif 000004
【図３】
2016500459.tif 000005
【図４】
2016500459.tif 000006
【図５】
2016500459.tif 000007
【図６】
2016500459.tif 000008
【図７】
2016500459.tif 000009
【手続補正書】
【提出日】平成27年7月29日(2015.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つ以上のチャンクを監視するために使用され、前記監視レコードは、少なくとも１つの監視パラメータのセットである監視レコード管理方法であって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成するステップであり、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、前記読み取られた監視レコードを削除するステップであり、前記結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しいステップと、
前記結合監視レコードをメモリに書き込むステップであり、前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用されるステップと
を有する監視レコード管理方法。
【請求項２】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記ストレージにおけるチャンクのI/O要求を監視するステップと、
前記メモリの前記結合監視レコードの各監視パラメータを更新するために、前記結合監視レコードにより監視される前記チャンクのI/O要求レコードを使用するステップと
を更に有する、請求項１に記載の監視レコード管理方法。
【請求項３】
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取ることは、
IOPSの差が前記IOPSの予め設定された閾値を満たし、IO回数の差が前記IO回数の予め設定された閾値を満たす監視レコードを読み取ることである、請求項１又は２に記載の監視レコード管理方法。
【請求項４】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割するステップであり、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードにおいて、監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しいステップと、
前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記メモリに書き込むステップと
を更に有する、請求項１ないし３のうちいずれか１項に記載の監視レコード管理方法。
【請求項５】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットである監視レコード分割方法であって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るステップと、
前記読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するステップであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しいステップと、
前記分割監視レコードを前記メモリに書き込むステップであり、前記分割監視レコードは、前記分割監視レコードに保持された前記オフセットアドレス及び前記データ長により記述されるデータを監視するために使用されるステップと
を有する監視レコード分割方法。
【請求項６】
各分割監視レコードの各監視パラメータの値は、各分割監視レコードに保持されたデータ長に従って、分割前の前記監視レコードの各監視パラメータの値を各分割監視レコードに配分することにより取得された値である、請求項５に記載の監視レコード分割方法。
【請求項７】
前記監視パラメータは、IOの総数に対するランダムIOの数の割合である、請求項５又は６に記載の監視レコード分割方法。
【請求項８】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの１つ以上のチャンクを監視するために使用され、前記監視レコードは、少なくとも１つの監視パラメータのセットである監視レコード管理デバイスであって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第１の読み取りモジュールと、
前記メモリから、１つ以上の監視パラメータの差が予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成するように構成された結合モジュールであり、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、前記読み取られた監視レコードを削除するように構成された結合モジュールであり、前記結合監視レコードにおける各監視パラメータの値は、監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しい結合モジュールと、
前記結合監視レコードを前記メモリに書き込むように構成された第１の書き込みモジュールであり、前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用される第１の書き込みモジュールと
を有する監視レコード管理デバイス。
【請求項９】
前記第１の書き込みモジュールは、前記ストレージにおけるチャンクのI/O要求を監視し、前記メモリの前記結合監視レコードの各監視パラメータを更新するために、前記結合監視レコードにより監視される前記チャンクのI/O要求レコードを使用するように更に構成される、請求項８に記載の監視レコード管理デバイス。
【請求項１０】
前記第１の読み取りモジュールは、前記メモリの各監視レコードにおいて、１秒当たりの入出力操作（IOPS）の差がIOPSの予め設定された閾値を満たし、IO回数の差がIO回数の予め設定された閾値を満たす監視レコードを読み取るように構成される、請求項８又は９に記載の監視レコード管理デバイス。
【請求項１１】
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割するように構成された第１の分割モジュールであり、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードにおいて、監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しく、前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記メモリに書き込むように構成された第１の分割モジュールを更に有する、請求項８ないし１０のうちいずれか１項に記載の監視レコード管理デバイス。
【請求項１２】
複数の監視レコードがメモリに格納され、各監視レコードは、ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットである監視レコード分割デバイスであって、
前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取るように構成された第２の読み取りモジュールと、
前記読み取られた監視パラメータの各監視パラメータが予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成するように構成された第２の分割モジュールであり、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、監視パラメータの値の合計は、結合監視レコードの監視パラメータの値に等しい第２の分割モジュールと、
前記分割監視レコードを前記メモリに書き込むように構成された第２の書き込みモジュールであり、前記分割監視レコードは、前記分割監視レコードに保持された前記オフセットアドレス及び前記データ長により記述されるデータを監視するために使用される第２の書き込みモジュールと
を有する監視レコード分割デバイス。
【請求項１３】
前記第２の分割モジュールは、前記読み取られた監視パラメータの各監視パラメータが前記予め設定された閾値を満たす監視レコードを分割し、分割後に前記少なくとも２つの監視レコードを生成するように構成され、前記データの前記オフセットアドレス及び前記データ長は、各分割監視レコードに保持され、前記分割監視レコードにおいて、前記監視パラメータの値の合計は、前記結合監視レコードの前記監視パラメータの値に等しく、分割前の前記監視レコードの各監視パラメータの値は、各分割監視レコードに保持されたデータ長に従って、各分割監視レコードに配分される、請求項１２に記載の監視レコード分割デバイス。
【請求項１４】
前記第２の読み取りモジュールは、前記メモリの各監視レコードから、ランダムIOの数とIOの総数とを読み取るように構成され、前記閾値は、IOの総数に対するランダムIOの数の割合である、請求項１２又は１３に記載の監視レコード分割デバイス。
【請求項１５】
プロセッサと、前記プロセッサと通信する通信インタフェースと、前記プロセッサと通信するメモリとを有するストレージコントローラであって、
前記通信インタフェースは、ストレージと通信するように構成され、
前記メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、前記ストレージの１つのチャンクを監視するために使用され、１つの監視レコードは、１つのチャンクの監視パラメータのセットであり、
前記プロセッサは、プログラムを実行するように構成され、
前記プログラムは、
前記メモリの監視レコードから少なくとも１つの監視パラメータを読み取り、
前記読み取られた監視パラメータについて、異なる監視レコードの間で同じ種類の監視パラメータの差を計算し、
前記メモリから、それぞれの監視パラメータの差が対応する予め設定された閾値を満たす監視レコードを読み取り、前記読み取られた監視レコードを結合し、結合監視レコードを生成し、監視されるチャンクのアイデンティティは、前記結合監視レコードに記録され、前記メモリから、結合された前記監視レコードを削除し、前記結合監視レコードにおける少なくとも１つの監視パラメータの値は、全ての監視されるチャンクが１つのチャンクとして見なされるときに各監視パラメータの値に等しく、
前記結合監視レコードを前記メモリに書き込むために使用され、
前記結合監視レコードは、結合前の各監視レコードにより監視されるチャンクを監視するために使用されるストレージコントローラ。
【請求項１６】
前記結合監視レコードを前記メモリに書き込んだ後に、
前記プログラムは、
前記ストレージにおけるチャンクのI/O要求を監視し、
前記チャンクのI/O要求に従って、前記メモリの前記結合監視レコードの各監視パラメータを更新するために更に使用され、前記I/O要求は、前記結合監視レコードにより監視される、請求項１５に記載のストレージコントローラ。
【請求項１７】
前記メモリから、それぞれの監視パラメータの差が対応する予め設定された閾値を満たす監視レコードを読み取ることは、
前記メモリから、IOPSの値の差が予め設定されたIOPS閾値を満たし、IO回数の差が予め設定されたIO回数閾値を満たす監視レコードを読み取ることを有する、請求項１５又は１６に記載のストレージコントローラ。
【請求項１８】
前記結合監視レコードを前記メモリに書き込むステップの後に、
前記プログラムは、
前記メモリから、前記結合監視レコードを読み取り、前記結合監視レコードを少なくとも１つの分割監視レコードに分割し、各分割監視レコードは、少なくとも１つのチャンクを監視するために使用され、前記分割監視レコードの監視パラメータの値の合計は、前記結合監視レコードの監視パラメータの値に等しく、
前記メモリから、前記読み取られた結合監視レコードを削除し、各分割監視レコードを前記メモリに書き込むために更に使用される、請求項１５ないし１７のうちいずれか１項に記載のストレージコントローラ。
【請求項１９】
プロセッサと、前記プロセッサと通信する通信インタフェースと、前記プロセッサと通信するメモリとを有するストレージコントローラであって、
前記通信インタフェースは、ストレージと通信するように構成され、
前記メモリは、複数の監視レコードを格納するように構成され、各監視レコードは、前記ストレージの少なくとも１つのチャンクを監視するために使用され、各監視レコードは、監視されるチャンクの監視パラメータのセットであり、
前記プロセッサは、プログラムを実行するように構成され、
前記プログラムは、前記メモリの各監視レコードから少なくとも１つの監視パラメータを読み取り、
前記監視パラメータの各値が予め設定された閾値を満たす監視レコードを分割し、分割後に少なくとも２つの監視レコードを生成し、データのオフセットアドレス及びデータ長は、各分割監視レコードに保持され、前記分割監視レコードの監視パラメータの値の合計は、結合監視レコードの同じ種類の監視パラメータの値に等しく、
前記分割監視レコードを前記メモリに書き込むために使用され、
前記分割監視レコードは、前記分割監視レコードに保持された前記オフセットアドレス及び前記データ長により記述されるデータを監視するために使用されるストレージコントローラ。
【請求項２０】
各分割監視レコードの各監視パラメータの値は、各分割監視レコードに保持されたデータ長に従って、分割前の前記監視レコードの各監視パラメータの値を各分割監視レコードに配分することにより取得された値である、請求項１９に記載のストレージコントローラ。
【請求項２１】
前記監視パラメータは、IOの総数に対するランダムIOの数の割合である、請求項１９又は２０に記載のストレージコントローラ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
ライフサイクルの異なる段階において異なる管理がデータで実行され得る。例えば、階層ストレージがデータで実行され得る。ホット・スポット・データは、ストレージシステムの高性能の階層にマイグレーションされる。データの入力速度を改善するために、入力速度は高性能の階層で高速である。コールド・スポット・データは、低性能の階層にマイグレーションされる。ストレージシステムの性能及び容量要件を低価格で満たすために、入力速度は低性能の階層では低速である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
結合前に、各監視レコードはまた、各監視レコードにより監視されるチャンクのアイデンティティを記録する。結合監視レコードは、複数のチャンクを監視するために使用され、従って、複数のチャンクのアイデンティティは、結合監視レコードに記録される。異なるチャンクは、異なるアイデンティティを有する。アイデンティティを通じて、ユーザは、どのチャンクが監視レコードにより具体的に監視されるかを認識してもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
このステップにおいて、差の閾値検出は、ステップ11において読み取られた内容で実行される。検出された監視パラメータの数は、１つ又は複数でもよい。すなわち、１つのみの監視パラメータが決定されてもよい。異なる監視レコードにおいて監視パラメータの差が閾値を満たし、閾値を満たす方式が差が具体的な値より小さいことである場合又は具体的な値より大きくないことである場合、これらの監視レコードは全体として読み取られる。ステップ11において、読み取られた監視パラメータがIOPSを含み、監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEに記録されたIOPSがそれぞれ50、52、60、61及び70であり、IOPSの閾値が3であること、すなわち、IOPSの差が3より小さい監視レコードが全て結合の条件を満たすことを仮定する。監視レコードAのIOPSと監視レコードBのIOPSとの間の差52-50=2は閾値を満たし、監視レコードCのIOPSと監視レコードDのIOPSとの間の差は61-60=1も閾値を満たす。従って、監視レコードAの各監視パラメータと、監視レコードBの各監視パラメータとは、メモリから読み取られ、別々に結合され、チャンクAの監視レコードとチャンクBの監視レコードも結合監視レコードに記録される。監視レコードCの各監視パラメータと、監視レコードDの各監視パラメータも、メモリから読み取られ、結合され、チャンクCの監視レコードとチャンクDの監視レコードも結合監視レコードに記録される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
閾値検出が異なる種類の監視パラメータの差で実行される状況を適切に理解するために、前述の例に基づいて、以下に例が更に挙げられる。IOPSに加えて、監視パラメータのIOカウント（IO  count）の差が更に比較され、監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEのIOカウントがそれぞれ10、11、20、30及び40であり、IOカウントの閾値が5であることを仮定する。すなわち、監視レコードAのIOカウントと監視レコードBのIOカウントとの差11-10=1のみが閾値より小さいという要件を満たす。このように、監視レコードA及び監視レコードBは、IOPS及びIOカウントの閾値の要件を同時に満たす。監視レコードC及び監視レコードDはIOPSの閾値の要件を満たすが、監視レコードC及び監視レコードDは、IOカウントの閾値の要件を満たさない。従って、監視レコードA及び監視レコードBのみがメモリから読み取られ、結合監視レコードを生成するように結合され、監視レコードCも監視レコードDもメモリから読み取られない。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
このように、監視精度が相当に拡張され、単一のチャンクの監視パラメータの元々の記録は、複数のチャンクの監視パラメータの記録に変更される。すなわち、結合された監視レコードは、自分のチャンクを元々監視し、結合監視レコードにおいて、各監視パラメータの値は、これらのチャンクを一緒に監視することにより取得された値に等しい。結合監視レコードにおいて、各監視パラメータはまた、結合監視パラメータとも呼ばれることがある。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
例えば、図２において、監視レコードA及び監視レコードBは共に、それぞれIOPS、IOカウント及びIO頻度である３つの監視パラメータにより形成される。監視レコードAにおいて、IOPSの値は50であり、IOカウントの値は10であり、IO頻度の値は10である。監視レコードBにおいて、IOPSの値は52であり、IOカウントの値は11であり、IO頻度の値は20である。本発明のこの実施例では、監視パラメータの値が直接加算され、チャンクA及びチャンクBにより形成されたセットが新たなチャンクABとして見なされた場合、IOPSを例として挙げることにより、チャンクA又はチャンクBのIOはチャンクABのIOに属し、IOは、結合されたIOPSにカウントされるべきである。従って、結合監視レコードの監視パラメータの値は、IOPS=50+52=102、IOカウント10+11=21及びIO頻度=10+20=30である。結合により生成された結合監視パラメータは、結合された監視パラメータの内容によって統合されるため、結合された監視パラメータにより監視されるチャンクのIO状況は、結合監視レコードに記録され、結合された監視レコードは、削除されてもよく、結合監視レコードと置換される。結合された監視レコードを削除する動作は、これらのパラメータが読み取られた後且つ結合動作が完了する前に実行されてもよく、結合動作が完了した後に実行されてもよい点に特に留意すべきである。前者はできるだけ早くメモリの空間を解放することができ、後者はセキュリティを改善することができ、例えば、結合監視レコードが計算されていない場合に生じた停電によりもたらされるデータロスが回避可能になる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
結合モジュール52は、読み取りモジュール51により読み取られた内容で差の閾値検出を実行する。検出された監視パラメータの数は、１つ又は複数でもよい。すなわち、１つのみの監視パラメータが決定されてもよい。異なる監視レコードにおいて監視パラメータの差が閾値を満たし、閾値を満たす方式が差が具体的な値より小さいことである場合又は具体的な値より大きくないことである場合、これらの監視レコードは全体として読み取られる。ステップ11において、読み取られた監視パラメータがIOPSを含み、監視レコードA、監視レコードB、監視レコードC、監視レコードD及び監視レコードEに記録されたIOPSがそれぞれ50、52、60、61及び70であり、IOPSの閾値が3であること、すなわち、IOPSの差が3より小さい監視レコードが全て結合の条件を満たすことを仮定する。監視レコードAのIOPSと監視レコードBのIOPSとの間の差52-50=2は閾値を満たし、監視レコードCのIOPSと監視レコードDのIOPSとの間の差は61-60=1も閾値を満たす。従って、監視レコードAの各監視パラメータと、監視レコードBの各監視パラメータとは、メモリから読み取られ、別々に結合され、チャンクAの監視レコードとチャンクBの監視レコードも結合監視レコードに記録される。監視レコードCと、監視レコードDも、メモリから読み取られ、結合され、チャンクCの監視レコードとチャンクDの監視レコードも結合監視レコードに記録される。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
このように、監視精度が相当に拡張され、単一のチャンクの監視パラメータの元々の記録は、複数のチャンクの監視パラメータの記録に変更される。すなわち、結合された監視レコードは、自分のチャンクを元々監視し、結合監視レコードにおいて、各監視パラメータの値は、これらのチャンクを一緒に監視することにより取得された値に等しい。結合監視レコードにおいて、各監視パラメータはまた、結合監視パラメータとも呼ばれることがある。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
例えば、図２において、監視レコードA及び監視レコードBは共に、それぞれIOPS、IOカウント及びIO頻度である３つの監視パラメータにより形成される。監視レコードAにおいて、IOPSの値は50であり、IOカウントの値は10であり、IO頻度の値は10である。監視レコードBにおいて、IOPSの値は52であり、IOカウントの値は11であり、IO頻度の値は20である。本発明のこの実施例では、監視パラメータの値が直接加算され、チャンクA及びチャンクBにより形成されたセットが新たなチャンクABとして見なされた場合、IOPSを例として挙げることにより、チャンクA又はチャンクBのIOはチャンクABのIOに属し、IOは、結合されたIOPSにカウントされるべきである。従って、結合監視レコードの監視パラメータの値は、IOPS=50+52=102、IOカウント10+11=21及びIO頻度=10+20=30である。結合により生成された結合監視パラメータは、結合された監視パラメータの内容によって統合されるため、結合された監視パラメータにより監視されるチャンクのIO状況は、結合監視レコードに記録され、結合された監視レコードは、削除されてもよく、結合監視レコードと置換される。結合された監視レコードを削除する動作は、これらのパラメータが読み取られた後且つ結合動作が完了する前に実行されてもよく、結合動作が完了した後に実行されてもよい点に特に留意すべきである。前者はできるだけ早くメモリの空間を解放することができ、後者はセキュリティを改善することができ、例えば、結合監視レコードが計算されていない場合に生じた停電によりもたらされるデータロスが回避可能になる。
【国際調査報告】
2016500459.tif 000010
2016500459.tif 000011
2016500459.tif 000012
2016500459.tif 000013