(57)【特許請求の範囲】
【請求項１】
ストレージシステムに適用されるデータマイグレーション方法であり、前記ストレージシステムは、ディスクグループを含み、前記ディスクグループは、複数のソリッドステートディスク（SSD）を含み、前記SSDのそれぞれは、ストレージコントローラにより、同じサイズの細かいchunkに分割されるデータマイグレーション方法であって、
前記複数のSSDのそれぞれの不良ブロックの容量を監視するステップであり、前記複数のSSDのそれぞれは、複数のブロックを含み、前記複数のブロックのいくつかは不良であるステップと、
ソースSSDに含まれる不良ブロックの容量が予め設定された容量より大きい場合、前記複数のSSD内の前記ソースSSDを識別するステップであり、前記ソースSSDに含まれる不良ブロックの前記容量に関連する前記ソースSSDの容量使用率は、前記ディスクグループの平均容量使用率より大きく、前記ソースSSDの前記容量使用率は、前記ソースSSDの利用可能な物理容量に対する前記ソースSSDの使用された容量の割合であり、前記ディスクグループの前記平均容量使用率は、前記ディスクグループの利用可能な物理容量に対する前記ディスクグループの使用された容量の割合であるステップと、
容量使用率が前記ディスクグループの前記平均容量使用率より小さい前記ディスクグループ内の１つ以上の宛先SSDを選択するステップと、
前記ソースSSDの前記容量使用率と前記平均容量使用率とに従って、前記ソースSSDからマイグレーションされるべきデータ量を計算するステップと、
前記ソースSSDからマイグレーションされるべきchunkの数に従って、前記ソースSSDからマイグレーションされるべきデータを前記１つ以上の宛先SSDにマイグレーションするステップであり、前記chunkの数は、前記ソースSSDからマイグレーションされるべき前記データ量と各chunkのサイズとに基づいて決定され、前記ソースSSDからマイグレーションされるべき前記データは、chunkの単位でマイグレーションされるステップと
を有するデータマイグレーション方法。
【請求項２】
前記ソースSSDからマイグレーションされるべき前記データ量に従って、前記ソースSSDからマイグレーションされるべきデータを前記１つ以上の宛先SSDにマイグレーションするステップは、
前記宛先SSDの容量使用率と前記平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算するステップと、
前記ソースSSDからマイグレーションされるべき前記データ量と各宛先SSDにマイグレーションされるべき前記データ量とに基づいて、前記ソースSSDの前記データを各宛先SSDにマイグレーションするステップと
を有する、請求項１に記載の方法。
【請求項３】
前記宛先SSDの容量使用率と前記平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算するステップは、
各宛先SSDの容量使用率と前記平均容量使用率との間の差分値を取得するステップと、
各宛先SSDにマイグレーションされるべき前記データ量を取得するために、各宛先SSDの前記容量使用率と前記平均容量使用率との間の前記差分値を、各宛先SSDの利用可能な物理容量で乗算するステップと
を有する、請求項２に記載の方法。
【請求項４】
前記ソースSSDの前記容量使用率と前記平均容量使用率とに従って、前記ソースSSDからマイグレーションされるべきデータ量を計算するステップは、
前記ソースSSDの前記容量使用率と前記平均容量使用率との間の差分値を取得するステップと、
前記ソースSSDからマイグレーションされるべき前記データ量を取得するために、前記ソースSSDの前記容量使用率と前記平均容量使用率との間の前記差分値を、前記ソースSSDの利用可能な物理容量で乗算するステップと
を有する、請求項１ないし３のうちいずれか１項に記載の方法。
【請求項５】
複数のSSDのそれぞれの不良ブロックの容量を監視するように構成された決定モジュールであり、前記SSDのそれぞれは、ストレージコントローラにより、同じサイズの細かいchunkに分割され、前記複数のSSDのそれぞれは、複数のブロックを含み、前記複数のブロックのいくつかは不良であり、ソースSSDに含まれる不良ブロックの容量が予め設定された容量より大きい場合、前記複数のSSD内の前記ソースSSDを識別するように構成され、前記ソースSSDに含まれる不良ブロックの前記容量に関連する前記ソースSSDの容量使用率は、ディスクグループの平均容量使用率より大きく、前記ソースSSDの前記容量使用率は、前記ソースSSDの利用可能な物理容量に対する前記ソースSSDの使用された容量の割合であり、前記ディスクグループの前記平均容量使用率は、前記ディスクグループの利用可能な物理容量に対する前記ディスクグループの使用された容量の割合であり、容量使用率が前記ディスクグループの前記平均容量使用率より小さい前記ディスクグループ内の１つ以上の宛先SSDを選択するように構成された決定モジュールと、
前記ソースSSDの前記容量使用率と前記平均容量使用率とに従って、前記ソースSSDからマイグレーションされるべきデータ量を計算するように構成された計算モジュールと、
前記ソースSSDからマイグレーションされるべきchunkの数に従って、前記ソースSSDからマイグレーションされるべきデータを前記１つ以上の宛先SSDにマイグレーションするように構成されたマイグレーションモジュールであり、前記chunkの数は、前記ソースSSDからマイグレーションされるべき前記データ量と各chunkのサイズとに基づいて決定され、前記ソースSSDからマイグレーションされるべき前記データは、chunkの単位でマイグレーションされるステップと
を有するデータマイグレーション装置。
【請求項６】
前記マイグレーションモジュールは、前記宛先SSDの容量使用率と前記平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算し、前記ソースSSDからマイグレーションされるべき前記データ量と各宛先SSDにマイグレーションされるべき前記データ量とに基づいて、前記ソースSSDの前記データを各宛先SSDにマイグレーションするように構成される、請求項５に記載の装置。
【請求項７】
前記マイグレーションモジュールは、各宛先SSDの容量使用率と前記平均容量使用率との間の差分値を取得し、各宛先SSDにマイグレーションされるべき前記データ量を取得するために、各宛先SSDの前記容量使用率と前記平均容量使用率との間の前記差分値を、各宛先SSDの利用可能な物理容量で乗算するように構成される、請求項６に記載の装置。
【請求項８】
前記計算モジュールは、前記ソースSSDの前記容量使用率と前記平均容量使用率との間の差分値を取得し、前記ソースSSDからマイグレーションされるべき前記データ量を取得するために、前記ソースSSDの前記容量使用率と前記平均容量使用率との間の前記差分値を、前記ソースSSDの利用可能な物理容量で乗算するように構成される、請求項５ないし７のうちいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ技術に関し、特にデータマイグレーション方法、データマイグレーション装置及びストレージデバイスに関する。
【背景技術】
【０００２】
NANDフラッシュ（フラッシュメモリ）は、不揮発性メモリであり、電源オフの後にデータが消滅しないことを特徴とする。従って、NANDフラッシュは、外部又は内部メモリとして広く使用されている。例えば、近年にコンピュータシステムでますます使用されているソリッドステートディスク（SSD：Solid  State  Device）は、フラッシュメモリに基づいて実現されている。ソリッドステートディスクはまた、ソリッドステートドライブ（SSD：Solid  State  Drive）とも呼ばれることがある。SSDは、限られた数の消去回数を特徴としており、SSDにおけるそれぞれの読み書き動作（消去動作とも呼ばれることがある）は、或る程度だけSSDを消耗する。従って、SSDの寿命は、消耗度に関係する。高い消耗度は、短い寿命を示す。NAND  Flashが長期間使用される場合、プログラミングエラー又は消去エラーのため不良ブロックが生じる可能性があり、不良ブロックの数の増加は、全体SSD内のNAND  Flashの読み書き回数の数の増加をもたらす可能性があるため、消耗度が増加し、これにより、SSDの耐用寿命を短縮する。
【０００３】
現在では、大きいデータストレージの要件を満たすために、通常では、複数のSSDがSSDストレージアレイを形成することが必要となっている。SSDストレージアレイの１つのSSDの寿命が不良ブロックの増加のため短縮された場合、SSDストレージアレイの寿命も短縮される。すなわち、SSDストレージアレイの寿命は、SSDストレージアレイに含まれる最短の寿命を有するSSDに依存する。
【発明の概要】
【０００４】
本発明の実施例は、SSDストレージアレイの耐用寿命を延長するためのデータマイグレーション方法、データマイグレーション装置及びストレージデバイスを提供する。
【０００５】
本発明の実施例の第１の態様は、データマイグレーション方法を提供する。この方法はストレージシステムに適用され、ストレージシステムは、ディスクグループを含み、ディスクグループは、複数のソリッドステートディスク（SSD）を含む。この方法は、ディスクグループ内のソースSSDを決定し、ソースSSDの容量使用率は、ディスクグループの平均容量使用率より大きく、ディスクグループ内の少なくとも１つの宛先SSDを決定し、ソースSSDの容量使用率と平均容量使用率とに従って、ソースSSDからマイグレーションされるべきデータ量を計算し、ソースSSDからマイグレーションされるべきデータ量に従って、ソースSSDのデータを宛先SSDにマイグレーションすることを含む。
【０００６】
本発明の実施例の第１の態様の第１の実現方式では、宛先SSDは、ソースSSDを除くディスクグループ内の他のSSDである。
【０００７】
本発明の実施例の第１の態様の第２の実現方式では、宛先SSDは、容量使用率がディスクグループ内の平均容量使用率より小さいSSDである。
【０００８】
本発明の実施例の第１の態様の第３の実現方式では、宛先SSDは、ソースSSDに対応する予め設定されたSSDである。
【０００９】
本発明の実施例の第１の態様の第４の実現方式では、ディスクグループ内の少なくとも１つの宛先SSDを決定することは、負荷バランシングに従ってディスクグループ内の少なくとも１つの宛先SSDを決定することを含む。
【００１０】
本発明の実施例の第１の態様の第５の実現方式では、ソースSSDからマイグレーションされるべきデータ量に従って、ソースSSDのデータを宛先SSDにマイグレーションすることは、宛先SSDの容量使用率と平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算し、ソースSSDからマイグレーションされるべきデータ量と各宛先SSDにマイグレーションされるべきデータ量とに従って、ソースSSDのデータを各宛先SSDにマイグレーションすることを含む。
【００１１】
本発明の実施例の第１の態様の第５の実現方式を参照して、本発明の実施例の第１の態様の第６の実現方式では、宛先SSDの容量使用率と平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算することは、各宛先SSDの容量使用率と平均容量使用率との間の差分値を取得し、各宛先SSDの容量使用率と平均容量使用率との間の差分値を、各宛先SSDの利用可能な物理容量で乗算することを含み、取得された積が各宛先SSDにマイグレーションされるべきデータ量になる。
【００１２】
本発明の実施例の第１の態様の第７の実現方式では、ソースSSDの容量使用率と平均容量使用率とに従って、ソースSSDからマイグレーションされるべきデータ量を計算することは、ソースSSDの容量使用率と平均容量使用率との間の差分値を取得し、ソースSSDの容量使用率と平均容量使用率との間の差分値を、ソースSSDの利用可能な物理容量で乗算することを含み、取得された積がソースSSDからマイグレーションされるべきデータ量になる。
【００１３】
本発明の実施例の第２の態様は、データマイグレーション装置を提供する。この装置は、ディスクグループ内のソースSSDを決定し、ディスクグループ内の少なくとも１つの宛先SSDを決定するように構成された決定モジュールであり、ソースSSDの容量使用率は、ディスクグループの平均容量使用率より大きい決定モジュールと、ソースSSDの容量使用率と平均容量使用率とに従って、ソースSSDからマイグレーションされるべきデータ量を計算するように構成された計算モジュールと、ソースSSDからマイグレーションされるべきデータ量に従って、ソースSSDのデータを宛先SSDにマイグレーションするように構成されたマイグレーションモジュールとを含む。
【００１４】
本発明の実施例の第２の態様の第１の実現方式では、宛先SSDは、ソースSSDを除くディスクグループ内の他のSSDである。
【００１５】
本発明の実施例の第２の態様の第２の実現方式では、宛先SSDは、容量使用率がディスクグループ内の平均容量使用率より小さいSSDである。
【００１６】
本発明の実施例の第２の態様の第３の実現方式では、宛先SSDは、ソースSSDに対応する予め設定されたSSDである。
本発明の実施例の第２の態様の第４の実現方式では、マイグレーションモジュールは、宛先SSDの容量使用率と平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算し、ソースSSDからマイグレーションされるべきデータ量と各宛先SSDにマイグレーションされるべきデータ量とに従って、ソースSSDのデータを各宛先SSDにマイグレーションするように特に構成される。
【００１７】
本発明の実施例の第２の態様の第４の実現方式を参照して、本発明の実施例の第２の態様の第５の実現方式では、マイグレーションモジュールは、各宛先SSDの容量使用率と平均容量使用率との間の差分値を取得し、各宛先SSDの容量使用率と平均容量使用率との間の差分値を、各宛先SSDの利用可能な物理容量で乗算するように特に構成され、取得された積が各宛先SSDにマイグレーションされるべきデータ量になる。
【００１８】
本発明の実施例の第２の態様の第６の実現方式では、計算モジュールは、ソースSSDの容量使用率と平均容量使用率との間の差分値を取得し、ソースSSDの容量使用率と平均容量使用率との間の差分値を、ソースSSDの利用可能な物理容量で乗算するように特に構成され、取得された積がソースSSDからマイグレーションされるべきデータ量になる。
【００１９】
本発明の実施例の第３の態様は、プロセッサと、メモリと、システムバスと、通信インタフェースとを含むストレージデバイスを提供し、プロセッサ、メモリ及び通信インタフェースは、システムバスを使用することにより相互に接続されて相互に通信する。通信インタフェースは、ストレージデバイスと通信するように構成され、メモリは、コンピュータ実行可能命令を記憶するように構成され、プロセッサは、コンピュータ実行可能命令を実行し、第１の態様によるデータマイグレーション方法を実行するように構成される。
【００２０】
本発明の実施例の第４の態様は、コンピュータプログラムプロダクトを提供し、コンピュータプログラムプロダクトは、プログラムコードを記憶するコンピュータ読み取り可能記憶媒体を含み、プログラムコードに含まれる命令は、第１の態様によるデータマイグレーション方法を実行するために使用される。
【００２１】
本発明の実施例では、容量使用率がディスクグループの平均容量使用率より大きいSSDのデータが、決定された宛先SSDにマイグレーションされる。これにより、ディスクグループ内の各SSDの容量使用率が平均容量使用率に近づくことにより、消耗の平準化を実現し、ディスクグループの耐用寿命を延長させる。
【図面の簡単な説明】
【００２２】
本発明の実施例の技術的対策を明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施例を示しており、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導くことができる。
【図１】本発明の実施例によるデータマイグレーション方法の適用ネットワークアーキテクチャの概略図
【図２】本発明の実施例によるデータマイグレーション方法のフローチャート
【図３】本発明の実施例によるデータマイグレーション装置の概略構成図
【図４】本発明の実施例によるストレージデバイスの概略構成図
【発明を実施するための形態】
【００２３】
本発明の実施例の目的、技術的対策及び利点を明確にするために、以下では、本発明の実施例の添付図面を参照して本発明の実施例の技術的対策を明確に説明する。明らかに、説明する実施例は本発明の全てではなく、一部である。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２４】
＜本発明の実施例のシステムアーキテクチャ＞
本発明の実施例によるストレージアレイ管理方法は、ストレージシステムに実現されてもよい。図１は、本発明のこの実施例によるストレージアレイ管理方法のシステムアーキテクチャの概略図である。図１に示すように、ストレージシステムは、コントローラ11と、ストレージデバイス22とを含む。この実施例では、ストレージデバイス22がソリッドステートディスク（SSD：Solid  State  Device）であることが説明の一例として使用される。ソリッドステートディスクはまた、ソリッドステートドライブ（SSD：Solid  State  Drive）とも呼ばれ、略してハードディスクとも呼ばれることがある。
【００２５】
図１は、単なる例示的な記載に過ぎず、特定のネットワーキング方式に限定することを意図するものではない。例えば、コントローラ11及びストレージデバイス22が相互に通信することができる限り、カスケードツリー型ネットワーキング及びリング型ネットワーキングの双方が許容できる。
【００２６】
コントローラ11は、サーバ又はデスクトップコンピュータのような従来技術において知られているいずれかのコンピューティングデバイスを含んでもよい。コントローラ11には、オペレーティングシステム及び他のアプリケーションプログラムがインストールされる。コントローラ11は、ストレージデバイス22を管理してもよく、例えば、ストレージデバイス22内のデータマイグレーションを制御してもよい。
【００２７】
ストレージデバイス22は、SSD又は直接アクセスストレージデバイス（Direct  Access  Storage  Device、DASD）のような従来技術において知られているストレージデバイスでもよい。図１では、ストレージデバイス22がSSDであることが説明の一例として使用される。N個の物理SSDは、ストレージアレイ（storage  array）を形成し、ストレージアレイは、ディスクグループとも呼ばれることがある。ストレージアレイの基本的な概念は、高価で巨大な容量のハードディスクの性能と同等又はそれを凌ぐ性能を実現するために、比較的コスト効率の良い複数のハードディスクを組み合わせることにある。１つのストレージアレイ内の物理SSDの数Nは、下限値（例えば、10）未満にならなくてもよく、１つのストレージアレイ内の物理SSDの数Nは、上限値（例えば、30）より大きくならなくてもよい。特にストレージアレイに含まれるN個の物理SSDは、異なるモデル及び異なる容量のSSDでもよく、異なるモデル及び同じ容量のSSDでもよく、同じモデル及び異なる容量のSSDでもよく、同じモデル及び同じ容量のSSDでもよい。
【００２８】
特に言及しない限り、本発明のこの実施例で呼ばれるSSDは、全て物理SSDを示す。
【００２９】
各物理SSDは、同じサイズの細かいチャンク（Chunk、CK）221に分割されてもよい。Chunkは、論理SSDとも呼ばれることがある。
【００３０】
更に、複数のCKは、指定の種類のリダンダント・アレイ・オブ・インディペンデント・ディスク（Redundant  Array  of  Independent  Disks、RAID）に従って論理空間を形成してもよい。論理空間は、チャンクグループ（Chunk  Group、CKG）である。１つのCKGに含まれる全てのCKは、異なるSSDに属さなければならない。リダンダント・アレイ・オブ・インディペンデント・ディスクはまた、リダンダント・アレイ・オブ・インエクスペンシブ・ディスク（Redundant  Array  of  Inexpensive  Disks、RAID）とも呼ばれることがある。
【００３１】
多数の不良ブロックがSSDに発生すると、SSDの容量使用率が増加し、SSDの寿命が短縮される。SSDストレージアレイの寿命は、SSDストレージアレイに含まれる最短の寿命を有するSSDに依存する。従って、SSDストレージアレイの寿命を延長させるために、容量使用率がSSDストレージアレイの平均容量使用率より大きいSSDのデータの一部は、SSD間の消耗度を平準化するため、SSDストレージアレイの他のSSDにマイグレーションされてもよい。
【００３２】
＜データマイグレーション方法＞
以下に、本発明の実施例によるデータマイグレーション方法を紹介する。図２は、本発明のこの実施例によるデータマイグレーション方法のフローチャートである。以下のステップは、コントローラ内のプロセッサにより実行されてもよい。図２を参照すると、この方法は以下を含む。
【００３３】
ステップS201：ディスクグループ内のソースSSDを決定する。ソースSSDの容量使用率は、ディスクグループの平均容量使用率より大きい。
【００３４】
本発明のこの実施例では、容量使用率がディスクグループの平均容量使用率より大きいSSDがソースSSDとして使用される。ディスクグループの平均容量使用率は、ディスクグループの利用可能な物理容量に対する、ユーザによりディスクグループに書き込まれたデータ量の割合である。SSDの容量使用率は、SSDの利用可能な物理容量に対する、ユーザによりSSDに書き込まれたデータ量の割合である。ユーザによりディスクグループに書き込まれたデータ量は、ユーザによりディスクグループ内の全てのSSDに書き込まれた合計データ量である。ディスクグループの利用可能な物理容量は、ディスクグループ内の全てのSSDの利用可能な物理容量の和である。
【００３５】
本発明のこの実施例では、１つのディスクグループは、１つのSSDストレージアレイとして考えられてもよい点に留意すべきである。
【００３６】
物理的に、SSDは複数のblockを含む。SSDが長期間使用される場合、プログラミングエラー又は消去エラーのため、いくつかのblockが障害に直面する可能性があり、これらのブロックで読み書き動作が実行できない。従って、これらのブロックは不良ブロックと呼ばれる。１つのSSDでは、SSDの容量使用率の増加は、一般的にSSDの不良ブロックの数の増加によって引き起こされる。従って、ディスクグループ内のソースSSDを決定することは、ディスクグループ内の各SSDの不良ブロックのサイズを監視することにより実現されてもよい。SSDの不良ブロックのサイズが予め設定された閾値を超えた場合、SSDの容量使用率は、ディスクグループの平均容量使用率より大きくなる。更に、Flashグラニュルのピンへの損傷のようないくつかのハードウェアに関する障害もまた、SSDの容量使用率の増加を生じる可能性がある。
【００３７】
任意選択で、コントローラは、リアルタイムでディスクグループ内の各SSDの不良ブロックの容量を監視してもよい。SSDの不良ブロックのサイズが予め設定された閾値を超えた場合、SSDの容量使用率が増加すると考えられ、SSDがソースSSDであると決定される。或いは、SSDの不良ブロックのサイズが予め設定された閾値を超えた場合、SSDは、自動的に不良ブロックのサイズをコントローラに報告してもよい。
【００３８】
任意選択で、コントローラは、リアルタイムでディスクグループ内の各SSDの容量使用率を監視してもよい。SSDの容量使用率が平均容量使用率より大きい場合、SSDがディスクグループ内のソースSSDであると決定される。或いは、SSDの容量使用率が平均容量使用率より大きい場合、SSDは、自動的に不良ブロックのサイズをコントローラに報告してもよい。
【００３９】
任意選択で、コントローラは、リアルタイムでディスクグループ内の各SSDのユーザ可視容量を監視してもよい。SSDのユーザ可視容量が減少した場合、SSDがディスクグループ内のソースSSDであると決定される。或いは、SSDのユーザ可視容量が減少した場合、SSDは、自動的に不良ブロックのサイズをコントローラに報告してもよい。１つのSSDでは、SSDの内部ストレージ空間は、２つの部分（データストレージ空間及び冗長空間）に分割される。SSDのデータストレージ空間のサイズは、ユーザ可視容量である。SSDの冗長空間は、SSDにより提供され、ユーザ可視容量を超えるNANDフラッシュストレージ空間である。一例として400GBのSSDを使用すると、このディスクは実際に512GBのNANDフラッシュグラニュルを含むが、ユーザ可視空間は400GBのみであり、残りの112GBは、冗長空間として使用される。NANDフラッシュが長期間使用される場合、プログラミングエラー又は消去エラーのため、不良ブロックが生じる可能性がある。不良ブロックでは読み書き動作は実行できない。従って、不良ブロックに記憶されたデータは、SSDの冗長空間にマイグレーションされる必要がある。不良ブロックは、SSDの内部でラベル付けされ、これにより、ラベル付けされた不良ブロックが次にもはや使用されなくなる。冗長空間は、主に不良ブロックを置換するために使用され、これにより、SSDが使用される場合に常に400GBのデータストレージ空間を有することを確保する。
【００４０】
ステップS202：ディスクグループ内の少なくとも１つの宛先SSDを決定する。
【００４１】
ソースSSDの容量使用率を低くするために、ソースSSDに記憶されたデータは、ディスクグループ内の他のSSDにマイグレーションされてもよい。従って、少なくとも１つの宛先SSDがディスクグループ内で決定される必要がある。
【００４２】
任意選択で、ソースSSDを除くディスクグループ内の他のSSDが宛先SSDとして使用されてもよい。
【００４３】
任意選択で、容量使用率がディスクグループ内の平均容量使用率より小さいSSDが宛先SSDとして使用されてもよい。
【００４４】
任意選択で、ソースSSDと宛先SSDとの間の対応関係が予め設定されてもよく、宛先SSDは、ソースSSDに従って対応関係の問い合わせにより取得される。
【００４５】
任意選択で、ディスクグループ内の各SSDの負荷が取得されてもよく、宛先SSDは、負荷バランシングの原理に従って決定される。
【００４６】
前述の説明から、宛先SSDは、ソースSSDを除くディスクグループ内の全てのSSDでもよく、ソースSSDを除くディスクグループ内のいくつかのSSDでもよく、ここでは限定されないことが分かる点に留意すべきである。
【００４７】
ステップS203：ソースSSDの容量使用率と平均容量使用率とに従って、ソースSSDからマイグレーションされるべきデータ量を計算する。
【００４８】
本発明のこの実施例では、ソースSSDからマイグレーションされるべきデータ量は、ソースSSDの容量使用率を平均容量使用率に到達させる目的でソースSSDからマイグレーションされるべきデータ量である。
【００４９】
任意選択で、ソースSSDの容量使用率と平均容量使用率との間の差分値が取得されてもよく、ソースSSDの容量使用率と平均容量使用率との間の差分値は、ソースSSDの利用可能な物理容量で乗算される。取得された積がソースSSDからマイグレーションされるべきデータ量である。
【００５０】
任意選択で、ユーザによりソースSSDに書き込まれたデータ量及びソースSSDの利用可能な物理容量が取得されてもよい。ユーザによりソースSSDに書き込まれたデータ量からソースSSDの利用可能な物理容量と平均容量使用率との積を減算することにより取得された差分値は、ソースSSDからマイグレーションされるべきデータ量である。
【００５１】
ステップS202とステップS203との間に順序は存在しない点に留意すべきである。
【００５２】
ステップS204：ソースSSDからマイグレーションされるべきデータ量に従って、ソースSSDのデータを宛先SSDにマイグレーションする。
【００５３】
本発明のこの実施例では、データは、chunkの単位でソースSSDからマイグレーションされ、各chunkは固定のサイズである。従って、ソースSSDからマイグレーションされるべきchunkの数は、ソースSSDからマイグレーションされるべきデータ量をchunkのサイズで除算することにより取得されてもよい。ソースSSDからマイグレーションされるべきデータ量がちょうど除算できない場合、ソースSSDからマイグレーションされるべきchunkの数は、剰余を四捨五入する方式で取得されてもよい。
【００５４】
データはchunkの単位でマイグレーションされるため、データのマイグレーション後のディスクグループ内の各SSDの容量使用率は、平均容量使用率にほぼ等しくなり、完全に平均容量使用率に等しくならなくてもよい点に留意すべきである。
【００５５】
本発明の実施例では、容量使用率がディスクグループの平均容量使用率より大きいSSDのデータが、決定された宛先SSDにマイグレーションされる。これにより、ディスクグループ内の各SSDの容量使用率が平均容量使用率に近づくことにより、消耗の平準化を実現し、ディスクグループの耐用寿命を延長させる。
【００５６】
任意選択で、前述の実施例において、ステップS204は特に以下を含んでもよい。
【００５７】
ステップS2041：宛先SSDの容量使用率と平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算する。
【００５８】
本発明のこの実施例では、各宛先SSDにマイグレーションされるべきデータ量は、各宛先SSDの容量使用率を平均容量使用率に到達させる目的で各宛先SSDにマイグレーションされるべきデータ量である。
【００５９】
１つより多くの決定された宛先SSDが存在してもよい。従って、各宛先SSDにマイグレーションされるべきデータ量は、別々に計算される必要がある。
【００６０】
任意選択で、各宛先SSDの容量使用率と平均容量使用率との間の差分値が取得されてもよく、各宛先SSDの容量使用率と平均容量使用率との間の差分値は、各宛先SSDの利用可能な物理容量で乗算される。取得された積が各宛先SSDにマイグレーションされるべきデータ量である。
【００６１】
任意選択で、ユーザにより各宛先SSDに書き込まれたデータ量及び各宛先SSDの利用可能な物理容量が取得されてもよい。各宛先SSDの利用可能な物理容量と平均容量使用率との積からユーザにより各宛先SSDに書き込まれたデータ量を減算することにより取得された差分値は、各宛先SSDにマイグレーションされるべきデータ量である。
【００６２】
任意選択で、ソースSSDからマイグレーションされるべきデータ量は、各宛先SSDにマイグレーションされるべきデータ量を取得するために、宛先SSDの数で除算されてもよい。
【００６３】
ステップS2042：ソースSSDからマイグレーションされるべきデータ量と各宛先SSDにマイグレーションされるべきデータ量とに従って、ソースSSDのデータを各宛先SSDにマイグレーションする。
【００６４】
本発明のこの実施例では、データは、chunkの単位で各宛先SSDにマイグレーションされ、各chunkは固定のサイズである。従って、各宛先SSDにマイグレーションされるべきchunkの数は、各宛先SSDにマイグレーションされるべきデータ量をchunkのサイズで除算することにより取得されてもよい。各宛先SSDにマイグレーションされるべきデータ量がちょうど除算できない場合、各宛先SSDにマイグレーションされるべきchunkの数は、剰余を四捨五入する方式で取得されてもよい。
【００６５】
任意選択で、ソースSSDからマイグレーションされるべきchunkの数（この数をNと仮定し、Nは1より大きい自然数である）が計算された後、N個のchunkは、ソースSSDからランダムに選択されてもよい。予め設定されたディスク選択アルゴリズム及び各宛先SSDにマイグレーションされるべきchunkの数に従って、N個のchunkのうちそれぞれのchunkについてアイドルのchunkが宛先SSDにおいて引き続き決定される。次に、ソースSSDのN個のchunkに記憶されたデータは、宛先SSDに別々にマイグレーションされる。
【００６６】
例えば、まず、ソースSSDの第iのchunkが決定される。iは、自然数であり、0<i<N+1である。
【００６７】
各宛先SSDにマイグレーションされるべきchunkの数及び予め設定されたディスク選択アルゴリズムに従って、ソースSSDを除くディスクグループ内の他のSSDにおいてアイドルのchunkが決定される。アイドルのchunkが位置するSSDは、CKGに含まれる他のchunkが位置するSSDとは異なり、第iのchunkはCKGに属する。
【００６８】
ソースSSDの第iのchunkに記憶されたデータは、アイドルのchunkにマイグレーションされる。
【００６９】
i<Nの場合、i=i+1が実行される。すなわち、ソースSSDの第iのchunkが引き続き決定される。
【００７０】
以下に、データマイグレーション処理を説明するための特定の例を使用する。ディスクグループ（disk  group）内に合計で9個のSSDが存在し、各SSDの物理容量が128GBであり、各SSDが持つ耐用力は同じであり、ユーザにより各SSDに書き込まれたデータ量は60GBであることを仮定する。
【００７１】
SSDの不良ブロックのサイズが8GBに到達した場合、SSDの利用可能な物理容量は、128-8=120(GB)であり、SSDの容量使用率は60/120=0.5である。
【００７２】
ユーザにより全体のdisk  groupに書き込まれたデータ量は、60*9=540(GB)であり、全体のdisk  groupの利用可能な物理容量は、128*8+(128-8)=1144(GB)である。従って、disk  groupの平均容量使用率は、540/1144=0.4720である。
【００７３】
従って、不良ブロックが生成されたSSDがソースSSDであることが決定され、そのSSDの容量使用率0.5は、平均容量使用率0.4720より大きい。全体のdisk  groupの各SSDの容量使用率を平均容量使用率に到達させるために、ソースSSDのデータは、他のSSDにマイグレーションされる必要がある。残りの8個のSSDが宛先SSDとして使用されることがここでの一例として使用される。
【００７４】
ソースSSDからマイグレーションされるべきデータ量は、ユーザによりソースSSDに書き込まれたデータ量-ソースSSDの容量使用率*ソースSSDの利用可能な物理容量である。従って、ソースSSDからマイグレーションされるべきデータ量=60-(540/1144)*120=3.3566(GB)である。
【００７５】
或いは、ソースSSDからマイグレーションされるべきデータ量は、(ソースSSDの容量使用率-平均容量使用率)*ソースSSDの利用可能な物理容量=(0.5-540/1144)*120=3.3566(GB)である。
【００７６】
各宛先SSDにマイグレーションされるべきデータ量は、平均容量使用率*宛先SSDの利用可能な物理容量-ユーザにより宛先SSDに書き込まれたデータ量=(540/1144)*128-60=0.4196(GB)である。
【００７７】
或いは、各宛先SSDにマイグレーションされるべきデータ量は、(平均容量使用率-宛先SSDの容量使用率)*宛先SSDの利用可能な物理容量=(540/1144-60/128)*128=0.4196(GB)である。
【００７８】
次に、ソースSSDのデータは、ソースSSDからマイグレーションされるべきデータ量と各宛先SSDにマイグレーションされるべきデータ量とに従って、chunkの単位で各宛先SSDにマイグレーションされる。
【００７９】
データマイグレーションが完了した後に、ソースSSDの容量使用率は、(60-3.3566)/120=0.4720であり、他のSSDのそれぞれの容量使用率は、(60+0.4196)/128=0.4720である。
【００８０】
データマイグレーションが完了した後に、disk  group内の各SSDの容量使用率は、平均容量使用率に等しくなることが分かる。これは、SSDの間の消耗の平準化が実現されることにより、全体のSSDストレージアレイの耐用寿命を延長させることを示す。
【００８１】
＜本発明の実施例による装置＞
以下に、本発明の実施例によるデータマイグレーション装置を紹介する。図３は、本発明のこの実施例によるデータマイグレーション装置の構成図である。この装置は、ディスクグループ内のソースSSDを決定し、ディスクグループ内の少なくとも１つの宛先SSDを決定するように構成された決定モジュールであり、ソースSSDの容量使用率は、ディスクグループの平均容量使用率より大きい決定モジュール301と、ソースSSDの容量使用率と平均容量使用率とに従って、ソースSSDからマイグレーションされるべきデータ量を計算するように構成された計算モジュール302と、ソースSSDからマイグレーションされるべきデータ量に従って、ソースSSDのデータを宛先SSDにマイグレーションするように構成されたマイグレーションモジュール303とを含む。
【００８２】
任意選択で、宛先SSDは、ソースSSDを除くディスクグループ内の他のSSDである。
【００８３】
任意選択で、宛先SSDは、容量使用率がディスクグループ内の平均容量使用率より小さいSSDである。
【００８４】
任意選択で、宛先SSDは、ソースSSDに対応する予め設定されたSSDである。
【００８５】
マイグレーションモジュール303は、宛先SSDの容量使用率と平均容量使用率とに従って、各宛先SSDにマイグレーションされるべきデータ量を計算し、ソースSSDからマイグレーションされるべきデータ量と各宛先SSDにマイグレーションされるべきデータ量とに従って、ソースSSDのデータを各宛先SSDにマイグレーションするように特に構成される。特に、各宛先SSDの容量使用率と平均容量使用率との間の差分値が取得されてもよく、各宛先SSDの容量使用率と平均容量使用率との間の差分値は、各宛先SSDの利用可能な物理容量で乗算される。取得された積が各宛先SSDにマイグレーションされるべきデータ量である。
【００８６】
計算モジュール302は、ソースSSDの容量使用率と平均容量使用率との間の差分値を取得し、ソースSSDの容量使用率と平均容量使用率との間の差分値を、ソースSSDの利用可能な物理容量で乗算するように特に構成され、取得された積がソースSSDからマイグレーションされるべきデータ量になる。
【００８７】
本発明の実施例による装置は、前述の実施例に記載のコントローラに配置され、前述の実施例に記載のデータマイグレーション方法を実行するように構成されてもよい。各モジュールの機能の詳細な説明については、方法の実施例の説明に参照が行われてもよく、ここでは詳細は繰り返し説明しない。
【００８８】
本発明のこの実施例では、容量使用率がディスクグループの平均容量使用率より大きいSSDのデータが、決定された宛先SSDにマイグレーションされる。これにより、ディスクグループ内の各SSDの容量使用率が平均容量使用率に近づくことにより、消耗の平準化を実現し、ディスクグループの耐用寿命を延長させる。
【００８９】
図４に示すように、本発明の実施例に従ってストレージデバイス1200が提供され、プロセッサ101と、メモリ102と、システムバス（略してバス）105と、通信インタフェース103とを含む。プロセッサ101、メモリ102及び通信インタフェース103は、システムバス105を使用することにより相互に接続されて相互に通信する。
【００９０】
プロセッサ101は、本発明のこの実施例を実現するように構成されたシングルコア若しくはマルチコアの中央処理装置、特定用途向け集積回路、又は１つ以上の集積回路でもよい。
【００９１】
メモリ102は、高速RAMメモリでもよく、不揮発性メモリ（non-volatile  memory）でもよく、例えば、少なくとも１つのハードディスクメモリでもよい。
【００９２】
通信インタフェース103は、ストレージデバイスと通信するように構成される。
【００９３】
メモリ102は、コンピュータ実行可能命令1021を記憶するように構成される。特に、コンピュータ実行可能命令1021は、プログラムコードを含んでもよい。
【００９４】
コンピュータが実行する場合、プロセッサ101は、図２に記載の方法の処理を実行するように、コンピュータ実行可能命令1021を実行する。
【００９５】
本発明の実施例は、データ処理のためのコンピュータプログラムプロダクトを更に提供し、コンピュータプログラムプロダクトは、プログラムコードを記憶するコンピュータ読み取り可能記憶媒体を含み、プログラムコードに含まれる命令は、図２に記載の方法の処理を実行するために使用される。
【００９６】
本発明のこの実施例では、容量使用率がディスクグループの平均容量使用率より大きいSSDのデータが、決定された宛先SSDにマイグレーションされる。これにより、ディスクグループ内の各SSDの容量使用率が平均容量使用率に近づくことにより、消耗の平準化を実現し、ディスクグループの耐用寿命を延長させる。
【００９７】
当業者は、本発明の各態様又は各態様の可能な実現方式が、システム、方法又はコンピュータプログラムプロダクトとして特に実現されてもよいことを認識すべきである。従って、本発明の各態様及び各態様の可能な実現方式は、完全なハードウェアの実施例、完全なソフトウェアの実施例（ファームウェア、常駐ソフトウェア等を含む）、又はソフトウェアとハードウェアとを組み合わせた実施例の形式を使用してもよく、ここでは一様に“回路”、“モジュール”又は“システム”と呼ばれる。更に、本発明の各態様又は各態様の可能な実現方式は、コンピュータプログラムプロダクトの形式を使用してもよく、コンピュータプログラムプロダクトは、コンピュータ読み取り可能媒体に記憶されたコンピュータ読み取り可能プログラムコードを示す。
【００９８】
コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体又はコンピュータ読み取り可能記憶媒体でもよい。コンピュータ読み取り可能記憶媒体は、ランダムアクセスメモリ（RAM）、読み取り専用メモリ（ROM）、消去可能プログラム可能読み取り専用メモリ（EPROM又はフラッシュメモリ）、光ファイバ又はポータブル読み取り専用メモリ（CD-ROM）のような、電気、磁気、光、電磁気、赤外線又は半導体のシステム、デバイス若しくは装置、又はこれらのいずれか適切な組み合わせを含むが、これらに限定されない。
【００９９】
コンピュータのプロセッサは、プロセッサがフローチャートの各ステップ又はステップの組み合わせで指定された機能及び動作を実行することができるように、コンピュータ読み取り可能媒体に記憶されたコンピュータ読み取り可能プログラムコードを読み取り、ブロック図の各ブロック又はブロックの組み合わせで指定された機能及び動作を実施する装置が生成される。
【０１００】
コンピュータ読み取り可能プログラムコードは、完全にユーザのコンピュータで実行されてもよく、部分的にユーザのコンピュータで実行されてもよく、別々のソフトウェアパッケージとして使用されてもよく、部分的にユーザのコンピュータで実行されて部分的に遠隔コンピュータで実行されてもよく、完全に遠隔コンピュータ又はサーバで実行されてもよい。また、或る別の実現の対策では、フローチャートの各ステップ又はブロック図の各ブロックに示す機能は、図面に示す順序で生じなくてもよい点に留意すべきである。例えば、関与する機能に応じて、連続して示されている２つのステップ又は２つのブロックは、ほぼ同時に実行されてもよく、これらのブロックが場合によっては逆の順序で実行されてもよい。
【０１０１】
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップは、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実現されてもよいことを認識し得る。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的対策の特定の用途及び設計上の制約条件に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現は本発明の範囲を超えるものと考えられるべきではない。
【０１０２】
前述の説明は、本発明の単に特定の実現方式に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術的範囲内で当業者により容易に理解できる如何なる変更又は置換も本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【図１】
0006318173.tif 000002
【図２】
0006318173.tif 000003
【図３】
0006318173.tif 000004
【図４】
0006318173.tif 000005