本発明の実施例は、コンピュータ技術に関し、特にディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置に関する。
コンピュータアプリケーション技術の急速な発展によって、大量のデータが生成され、記憶スペース及び性能に対するより高い要求を生じさせている。現在主流のディスクに対する操作は多数の機械的操作を依然として含むため、現在主流のディスクの性能とプロセッサ及びメモリのものとの間のギャップが存在する。キャッシュ(CACHE)技術は記憶分野に適用され、ホスト遅延を隠蔽可能にするだけでなく、データを統合することもまた可能であり、データはCACHEを利用することによってディスクフレンドリーな方式によりディスクに書き込まれ、すなわち、該ディスクはフラッシュされ、これにより、記憶システムの最適なスループットを達成する。
数十年の研究の後、既存のCACHEアルゴリズムは成熟した。しかしながら、コンピュータにより提供されるアプリケーションが日々多様化し、ディスクアレイにより提供されるスペースと性能との双方が、よりフレキシブルなスケジューリング方法を必要としている。同一のディスクアレイは、通常、異なるタイプのディスクを有するかもしれず、同じタイプのディスクを有するリダンダント・アレイ・オブ・インディペンデント・ディスク(Redundant Array of Independent Disks,以下では略してRAID)においてさえ、各RAIDグループに含まれるメンバーディスクの個数は通常は異なっている。さらに、単一のRAIDグループにおける論理ユニット番号(Logic Unit Number、以下では略してLUN)を利用することにより特定される論理ユニットの個数がまた徐々に増加している。
従来技術では、ディスクアレイのフラッシュ中、スケジューリングは論理ユニットレイヤにおいて実行され、すなわち、各フラッシュ入出力(Input/Output、以下では略してIO)は、単一の論理ユニットに対してである。しかしながら、ディスクアレイは複数のRAIDグループを含み、各RAIDグループは更に複数の論理ユニットを含む。すなわち、現在のディスクアレイ・フラッシュ方法は、この状況において適切に動作することができない。例えば、同じRAIDグループにおける複数の論理ユニットについて、単一の論理ユニットのフラッシュIOは、論理ユニットにおける順序づけされたフラッシュIOである。しかしながら、同時的なフラッシュが複数の論理ユニットに対して実行される必要があり、同時的なフラッシュが実行される複数の論理ユニットは離散的シーケンスを有するため、RAIDグループ全体における同時的フラッシュIOは、通常は離散的となる。離散的である同時的フラッシュIOは、ディスクの磁気アームをアドレッシングのため前後にジャンプさせるかもしれず、データの読み書きより磁気アームによるアドレッシングに多くの時間が費やされ、ディスクアレイの全体的な性能に対して重大な負の効果及びディスクアレイの低スループットをもたらす。
本発明の実施例は、ディスクアレイのフラッシュ効率を向上させ、ディスクアレイのスループットを増大させるのに利用されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置を提供する。
第1の態様によると、本発明の実施例は、ディスクアレイ・フラッシュ方法であって、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するステップと、前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、順次的にフラッシュするステップと、を有するディスクアレイ・フラッシュ方法を提供する。
第1の態様の第1の可能な実現方式では、前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップの前に、当該方法は更に、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップを有する。
第1の態様の第1の可能な実現方式によると、第1の態様の第2の可能な実現方式では、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップは、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するステップを有し、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第1の態様又は第1の態様の上記2つの可能な実現方式の1つによると、第1の態様の第3の可能な実現方式では、前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップは、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行するステップと、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュするステップと、を有する。
第1の態様の第3の可能な実現方式によると、第1の態様の第4の可能な実現方式では、前記現在の論理ユニットをフラッシュするステップは、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュするステップと、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するステップと、を有する。
第1の態様の第3又は第4の可能な実現方式によると、第1の態様の第5の可能な実現方式では、前記現在の論理ユニットをフラッシュするステップは、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュするステップと、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止するステップと、を有する。
第1の態様の第5の可能な実現方式によると、第1の態様の第6の可能な実現方式では、前記RAIDグループのフラッシュを停止するステップの後に、当該方法は更に、前記RAIDグループのフラッシュポインタを不変に維持するステップを有する。
第2の態様によると、本発明の実施例は、ディスクアレイ・フラッシュ装置であって、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するよう構成される取得モジュールと、前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成されるフラッシュモジュールであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、フラッシュモジュールと、を有するディスクアレイ・フラッシュ装置を提供する。
第2の態様の第1の可能な実現方式では、当該装置は、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するよう構成される決定モジュールを更に有する。
第2の態様の第1の可能な実現方式によると、第2の態様の第2の可能な実現方式では、前記決定モジュールは、具体的には、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第2の態様又は第2の態様の上記2つの可能な実現方式の1つによると、第2の態様の第3の可能な実現方式では、前記フラッシュモジュールは、具体的には、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュする、よう構成される。
第2の態様の第3の可能な実現方式によると、第2の態様の第4の可能な実現方式では、前記フラッシュモジュールが前記現在の論理ユニットをフラッシュするよう構成されることは、具体的には、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュし、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示することを含む。
第2の態様の第3又は第4の可能な実現方式によると、第2の態様の第5の可能な実現方式では、前記フラッシュモジュールは更に、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュし、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止する、よう構成される。
第2の態様の第5の可能な実現方式によると、第2の態様の第6の可能な実現方式では、前記フラッシュモジュールは更に、前記RAIDグループのフラッシュポインタを不変に維持するよう構成される。
第3の態様によると、本発明の実施例は、他のディスクアレイ・フラッシュ装置であって、命令を格納するよう構成されるメモリと、前記メモリに結合されるプロセッサであって、前記プロセッサは前記メモリに格納される命令を実行するよう構成され、前記プロセッサは、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得し、前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成され、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する他のディスクアレイ・フラッシュ装置を提供する。
第3の態様の第1の可能な実現方式では、前記プロセッサは、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するよう構成される。
第3の態様の第1の可能な実現方式によると、第3の態様の第2の可能な実現方式では、前記プロセッサは、具体的には、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第3の態様又は第3の態様の上記2つの可能な実現方式の1つによると、第3の態様の第3の可能な実現方式では、前記プロセッサは、具体的には、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュするよう構成される。
第3の態様の第3の可能な実現方式によると、第3の態様の第4の可能な実現方式では、前記プロセッサが前記現在の論理ユニットをフラッシュするよう構成されることは、具体的には、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュし、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示することを含む。
第3の態様の第3又は第4の可能な実現方式によると、第3の態様の第5の可能な実現方式では、前記プロセッサは更に、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュし、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止する、よう構成される。
第3の態様の第5の可能な実現方式によると、第3の態様の第6の可能な実現方式では、前記プロセッサは更に、前記RAIDグループのフラッシュポインタを不変に維持するよう構成される。
本発明の実施例において提供されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置によると、単一のRAIDグループにおける複数の論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのため前後にジャンプするのにより時間がかからず、RAIDグループ間の影響がRAIDグループに対する独立した制御によって防止され、これにより、ディスクアレイのフラッシュ効率性を改善し、ディスクアレイのスループットを増大させる。
本発明の実施例又は従来技術における技術的方策をより明確に説明するため、以下において、実施例又は従来技術を説明するのに必要な添付図面が簡単に紹介される。明らかに、以下の説明における添付図面は本発明のいくつかの実施例を示し、当業者は、創作的な努力なく、これらの添付図面から他の図面を依然として導出してもよい。
図1は、本発明によるディスクアレイ・フラッシュ方法の実施例1のフローチャートである。
図2は、本発明によるディスクアレイ・フラッシュ方法の実施例2のフローチャートである。
図3は、本発明によるディスクアレイ・フラッシュ方法の実施例3のフローチャートである。
図4は、本発明によるディスクアレイ・フラッシュ装置の実施例1の概略的な構成図である。
図5は、本発明によるディスクアレイ・フラッシュ装置の実施例2の概略的な構成図である。
本発明の実施例の課題、技術的方策及び効果をより明確にするため、以下において、本発明の実施例における添付図面を参照して、本発明の実施例における技術的方策が明確且つ完全に説明される。明らかに、説明される実施例は、本発明の全ての実施例というよりも一部である。創作的な努力なく本発明の実施例に基づき当業者により取得される他の全ての実施例は、本発明の保護範囲内に属する。
図1は、本発明によるディスクアレイ・フラッシュ方法の実施例1のフローチャートである。図1に示されるように、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS110:論理ユニットの物理アドレスに従っている、ディスクアレイの同一のRAIDグループにおける論理ユニットのシーケンスを取得する。
具体的には、ディスクアレイは複数のRAIDグループを有してもよく、各RAIDグループは複数の論理ユニットを有してもよく、論理ユニットは論理ユニット番号LUNを利用することによって特定されてもよく、論理ユニットはRAIDグループにおける記憶スペースを分割するのに利用される。一般に、論理ユニットが作成されると、記憶スペースは、RAIDグループにおける論理ユニットの物理アドレスのシーケンスに従って、同一のRAIDグループにおける全ての論理ユニットについて分割されてもよく、各論理ユニットは、RAIDグループにおける連続する物理アドレスのスペースを占有する。例えば、物理アドレスによるLUN1〜LUN5のシーケンスは、LUN2,LUN4,LUN1,LUN5,LUN3であってもよい。
ステップS120:論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュし、ここで、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要のある1以上のダーティページを含むものであってもよく、RAIDグループの1つの同時的フラッシュIOは、同時的フラッシュIOにおけるダーティページをRAIDグループにフラッシュする1つのフラッシュ処理として解釈可能である。一般に、RAIDグループにフラッシュされるべきダーティページは、同時的フラッシュIOを形成するため、ダーティページに対応するデスティネーションアドレスのシーケンスに従って連続的にパッケージ化され、ダーティページのデスティネーションアドレスは、ダーティページが書き込まれるべき論理ユニットの物理アドレスに対応する。フラッシュは、RAIDグループに対して別々に実行され、フラッシュ中、RAIDグループは互いに干渉しない。RAIDグループにおける同時的フラッシュIOは、シーケンスに従ってRAIDグループの論理ユニットに別々にフラッシュされる。シーケンスがRAIDグループにおける論理ユニットの物理アドレスの配置シーケンスに整合している場合、RAIDグループにおける論理ユニットの物理アドレスは連続的であるため、RAIDグループへのRAIDグループの同時的フラッシュIOをフラッシュする処理は、RAIDグループにおける磁気アームが順次的なアドレッシングを実行し、ダーティページをディスクに書き込む処理となる。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループ間の影響が、RAIDグループに対する独立した制御によって防止され、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
図2は、本発明によるディスクアレイ・フラッシュ方法の実施例2のフローチャートである。図2に示されるように、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS210:論理ユニットの物理アドレスに従っている、ディスクアレイの同一のRAIDグループにおける論理ユニットのシーケンスを取得する。
具体的には、ディスクアレイは複数のRAIDグループを有してもよく、各RAIDグループは複数の論理ユニットを有してもよく、論理ユニットは論理ユニット番号LUNを利用することによって特定されてもよく、論理ユニットはRAIDグループにおける記憶スペースを分割するのに利用される。一般に、論理ユニットが作成されると、記憶スペースは、RAIDグループにおける論理ユニットの物理アドレスのシーケンスに従って、同一のRAIDグループにおける全ての論理ユニットについて分割されてもよく、各論理ユニットは、RAIDグループにおける連続する物理アドレスのスペースを占有する。
ステップS220:ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定する。
当該ステップはまた、ステップS210の前に実行されてもよい。具体的には、ディスクアレイにフラッシュされるべきダーティページは、CACHEに書き込まれたが、ディスクアレイに書き込まれていないデータである。CACHEにおけるダーティページの個数が高い水準を超過した場合、すなわち、CACHEにダーティページを記憶するためのスペースが尽きた場合、各RAIDグループの同時的フラッシュ上限が、RAIDグループの同時的フラッシュIOの個数として利用される。CACHEにおけるダーティページの個数が高い水準に達していない場合、現在のフラッシュにおけるRAIDグループの論理ユニットの同時的フラッシュIOの個数は、ディスクアレイにフラッシュされるべきダーティページの合計数に対するRAIDグループにフラッシュされるべきダーティページの合計数の比、RAIDグループの同時的フラッシュ上限及びディスクアレイのビジー/アイドルの程度に従って決定されてもよい。RAIDグループの同時的フラッシュ上限は、各同時的フラッシュにおいてRAIDグループにおいて実行可能なフラッシュIOの個数の上限であり、RAIDグループの同時的フラッシュ上限は、RAIDグループのメンバーディスクのタイプ、メンバーディスクの個数及びRAIDグループにより利用されるRAIDレベルに従って決定される。メンバーディスクの速度が高速になるに従って、また、データディスクとして利用されるメンバーディスクの個数が多くなるに従って、RAIDグループの同時的フラッシュ上限はより高くなる。
任意的には、CACHEにおけるダーティページの個数が高い水準に達していない場合、現在のフラッシュにおけるRAIDグループの同時的フラッシュIOの個数が、以下の式、すなわち、
dn=M×(pn/P)×(1−U)
に従って決定可能であり、ここで、dnはRAIDグループの同時的フラッシュIOの個数であり、RAIDグループにおける全ての論理ユニットの同時的フラッシュIOの合計数を含み、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
ディスクアレイにフラッシュされるべきダーティページの合計数に対するRAIDグループにフラッシュされるべきダーティページの合計数の比が大きくなるに従って、RAIDグループの同時的フラッシュIOの個数は多くなり、ディスクアレイの現在の利用率が低くなるに従って、各RAIDグループの同時的フラッシュIOの個数が多くなる。
ステップS230:論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュし、ここで、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要がある1以上のダーティページを有してもよく、RAIDグループの1つの同時的フラッシュIOは、同時的フラッシュIOにおけるダーティページをRAIDグループにフラッシュする1つのフラッシュ処理として解釈可能であり、RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要がある1以上のダーティページを有してもよい。一般に、RAIDグループにフラッシュされるべきダーティページは、同時的フラッシュIOを形成するため、ダーティページに対応するデスティネーションアドレスのシーケンスに従って連続的にパッケージ化され、ダーティページのデスティネーションアドレスは、ダーティページが書き込まれるべき論理ユニットの物理アドレスに対応する。フラッシュはRAIDグループに対して別々に実行され、フラッシュ中、RAIDグループは互いに干渉しない。RAIDグループにおける同時的フラッシュIOは、シーケンスに従ってRAIDグループの論理ユニットに別々にフラッシュされる。シーケンスがRAIDグループにおける論理ユニットの物理アドレスの配置シーケンスに整合している場合、RAIDグループにおける論理ユニットの物理アドレスは連続的であるため、RAIDグループへのRAIDグループの同時的フラッシュIOをフラッシュする処理は、RAIDグループにおける磁気アームが順次的なアドレッシングを実行し、ダーティページをディスクに書き込む処理となる。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループ間の影響が、RAIDグループに対する独立した制御によって防止され、さらに、RAIDグループレイヤにおける各RAIDグループの同時的フラッシュIOの個数を統一的に管理することによって、RAIDグループの利用率がある程度バランスされ、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
さらに、論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュすることは、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含み、現在の論理ユニットに対応する同時的フラッシュIOが存在することを示す場合、現在の論理ユニットをフラッシュすることを含む。要約すると、単一のRAIDグループでは、フラッシュポインタが設定され、現在のフラッシュ処理がスタートする論理ユニット、すなわち、前の同時的フラッシュ処理が終了した論理ユニットを指示するのに利用される。フラッシュ中、RAIDグループにフラッシュされるべきダーティページが、フラッシュポインタが指示する現在の論理ユニットにフラッシュされるべきダーティページを含み、現在の論理ユニットに対応する同時的フラッシュIOが存在しないことを示す場合、フラッシュポインタは他の論理ユニットに指示され、ここで、他の論理ユニットは、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される論理ユニットであり、他の論理ユニットはフラッシュされる。現在の論理ユニットが物理アドレスのシーケンスに従ってRAIDグループのエンドに配置されている場合、フラッシュポインタは、物理アドレスのシーケンスに従ってRAIDグループの第1位置に配置される論理ユニットに指示される。
さらに、現在の論理ユニットをフラッシュすることは、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含む。要約すると、1つの同時的フラッシュIOにおけるダーティページが現在の論理ユニットにフラッシュされる前に、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していると判断される場合、現在の論理ユニットに対して実行されたフラッシュは停止され、フラッシュポインタは他の論理ユニットに指示され、ここで、他の論理ユニットは、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される論理ユニットであり、他の論理ユニットはフラッシュされる。
さらに、現在の論理ユニットをフラッシュすることは、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止することを含む。同様に、ダーティページが現在の論理ユニットにフラッシュされる前に、RAIDグループにおける全ての論理ユニットの完了した同時的フラッシュIOの個数がRAIDグループにおける論理ユニットの同時的フラッシュIOの個数に達していると判断された場合、すなわち、RAIDグループに対する現在のフラッシュが完了している場合、RAIDグループのフラッシュポインタはまた、現在の論理ユニットに留まり、RAIDグループに対する現在のフラッシュから抜け出る。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループに対する独立した制御によって、また、ディスクアレイにフラッシュされるべきダーティページの合計数、各RAIDグループにフラッシュされるべきダーティページの合計数及び各RAIDグループの同時的フラッシュ上限に従って、各RAIDグループの同時的フラッシュIOの個数を別々に決定することによって、RAIDグループの論理ユニットの個数の有意な相違により生じる効果が防止され、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
図3は、本発明によるディスクアレイ・フラッシュ方法の実施例3のフローチャートである。図3に示されるように、単一のRAIDグループをフラッシュするための方法として利用されるとき、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS302:RAIDグループの同時的フラッシュIOの個数を決定する。
具体的には、RAIDグループの同時的フラッシュIOの個数は、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って決定されてもよい。
ステップS304:RAIDグループのフラッシュポインタが指示する現在の論理ユニットを決定する。
単一のRAIDグループでは、フラッシュポインタが設定されてもよく、現在のフラッシュ処理がスタートする論理ユニット、すなわち、前の同時的フラッシュ処理が終了した論理ユニットを指示するのに利用される。
ステップS306:RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュIOの個数に達しているか判断し、達している場合、ステップS316を実行し、達していない場合、ステップS308を実行する。
ステップS308:RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含むか判断し、含む場合、ステップS310を実行し、含まない場合、ステップS316を実行する。
ステップS310:RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達しているか判断し、達している場合、ステップS320を実行し、達していない場合、ステップS312を実行する。
ステップS312:現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達しているか判断し、達している場合、ステップS316を実行し、達していない場合、ステップS314を実行する。
さらに、同時的フラッシュ上限はまた、RAIDグループにおける各論理ユニットに対して設定されてもよい。対応して、フラッシュポインタが指示する現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達しているか判断できる。
ステップS314:現在の論理ユニットに対応する1つの同時的フラッシュIOに含まれるダーティページを現在の論理ユニットに書き込み、ステップS306に戻る。
具体的には、ステップS314の前に、当該方法は更に、現在の論理ユニットに対応する少なくとも1つのダーティページを現在の論理ユニットに対応する1つの同時的フラッシュIOにパッケージ化することを含む。
ステップS316:フラッシュポインタが全ての論理ユニットをトラバースしたか、トラバースした場合、ステップ320を実行し、トラバースしていない場合、ステップS318を実行する。
具体的には、ここでの全ての論理ユニットは、RAIDグループにおける全ての論理ユニットを表す。
ステップS318:次の論理ユニットにフラッシュポインタを指示し、ステップS304に戻る。
具体的には、次の論理ユニットは、論理ブロックアドレッシングシーケンスに従って、フラッシュポインタが指示する現在の論理ユニットの次に配置される論理ユニットである。現在の論理ユニットが物理アドレスのシーケンスに従ってRAIDグループのエンドに配置されている場合、フラッシュポインタは、物理アドレスのシーケンスに従ってRAIDグループの第1位置に配置される論理ユニットに指示される。
ステップS320:フラッシュを完了する。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、上記のステップを利用することによって、単一のRAIDグループにおける論理ユニットが統一的にスケジューリングされ、物理アドレスのシーケンスに従ってフラッシュされ、従って、磁気アームがアドレッシングのため前後にジャンプするのに時間がかからず、RAIDグループに対する独立した制御によって、また、ディスクアレイにフラッシュされるべきダーティページの合計数、各RAIDグループにフラッシュされるべきダーティページの合計数及び各RAIDグループの同時的フラッシュ上限に従って、各RAIDグループの同時的フラッシュIOの個数を別々に決定することによって、RAIDグループの論理ユニットの個数の有意な相違により生じる効果が防止される。
図4は、本発明によるディスクアレイ・フラッシュ装置の実施例1の概略的な構成図である。図4に示されるように、本実施例によるディスクアレイ・フラッシュ装置400は、
論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける論理ユニットのシーケンスを取得するよう構成されてもよい取得モジュール410と、
論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成されてもよいフラッシュモジュール420であって、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、フラッシュモジュール420と、
を有してもよい。
さらに、ディスクアレイ・フラッシュ装置400は更に、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定するよう構成される決定モジュール430を有してもよい。
さらに、決定モジュール430は、具体的には、RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成されてもよく、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
さらに、フラッシュモジュール420は、具体的には、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含む場合、現在の論理ユニットをフラッシュするよう構成されてもよい。
さらに、フラッシュモジュール420が現在の論理ユニットをフラッシュするよう構成されることは、具体的には、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含むものであってもよい。
さらに、フラッシュモジュール420は更に、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止するよう構成されてもよい。
さらに、フラッシュモジュール420は更に、RAIDグループのフラッシュポインタを不変に維持するよう構成されてもよい。
本実施例において提供されるディスクアレイ・フラッシュ装置400は、図1〜3に示される何れかの方法の実施例の技術的方策を実現するのに利用されてもよく、ディスクアレイ・フラッシュ装置400の実現原理及び技術的効果は、方法の実施例と同様であり、ここでは再度説明しない。
図5は、本発明によるディスクアレイ・フラッシュ装置の実施例2の概略的な構成図である。図5に示されるように、本実施例によるディスクアレイ・フラッシュ装置500は、命令を記憶するよう構成されるメモリ501と、メモリに結合されるプロセッサ502とを有し、プロセッサ502は、メモリ501に記憶される命令を実行するよう構成され、ディスクアレイ・フラッシュ装置500は更に、ネットワークインタフェース503、他のユーザインタフェース504及び通信バス505を有してもよい。通信バス505は、これらの装置の間の接続及び通信を実現するよう構成される。メモリ501は、高速ランダム・アクセス・メモリ(Random Access Memory、略してRAM)を有してもよいし、又は、例えば、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non−volatile memory)を更に有してもよい。メモリ501は、任意的には、上記のプロセッサ502から遠く離れて配置された少なくとも1つの記憶装置を有してもよい。
プロセッサ502は、
論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける論理ユニットのシーケンスを取得し、論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成され、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
さらに、プロセッサ502は更に、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定するよう構成される。
さらに、プロセッサ502は、具体的には、RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
さらに、プロセッサ502は、具体的には、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含む場合、現在の論理ユニットをフラッシュするよう構成される。
さらに、プロセッサ502が現在の論理ユニットをフラッシュするよう構成されることは、具体的には、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含む。
さらに、プロセッサ502は更に、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止するよう構成される。
さらに、プロセッサ502は更に、RAIDグループのフラッシュポインタを不変に維持するよう構成される。
本実施例において提供されるディスクアレイ・フラッシュ装置500は、図1〜3に示される何れかの方法の実施例の技術的方策を実現するのに利用されてもよく、ディスクアレイ・フラッシュ装置500の実現原理及び技術的効果は、方法の実施例と同様であり、ここでは再度説明しない。図5は、本発明によるディスクアレイ・フラッシュ装置の構成の単なる1つの概略図であり、特定の構成が実際の要求に従って調整されてもよい。
要約すると、本発明の実施例において提供されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのため前後にジャンプするのに時間がかからず、RAIDグループ間の影響は、RAIDグループに対する独立した制御により防止され、さらに、RAIDグループレイヤにおけるRAIDグループのフラッシュIOの個数をバランスさせることによって、RAIDグループの利用率がある程度バランスされ、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増大させる。
当業者は、方法の実施例のステップの全て又は一部が関連するハードウェアに指示するプログラムにより実現されてもよいことを理解してもよい。当該プログラムは、コンピュータ可読記憶媒体に格納されてもよい。プログラムが実行されると、方法の実施例のステップが実行される。上記の記憶媒体は、ROM、RAM、磁気ディスク又は光ディスクなどのプログラムコードを記憶可能な何れかの媒体を含む。
最後に、上記の実施例は本発明の技術的方策を説明するためだけに意図され、本発明を限定するものでないことに留意すべきである。本発明が上記の実施例を参照して詳細に説明されたが、当業者は、それらが本発明の実施例の技術的方策の範囲を逸脱することなく、上記の実施例において説明された技術的方策に依然として修正を行ってもよいし、又はその一部若しくは全ての技術的特徴に等価な置換をしてもよいことを理解すべきである。
本発明の実施例は、コンピュータ技術に関し、特にディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置に関する。
コンピュータアプリケーション技術の急速な発展によって、大量のデータが生成され、記憶スペース及び性能に対するより高い要求を生じさせている。現在主流のディスクに対する操作は多数の機械的操作を依然として含むため、現在主流のディスクの性能とプロセッサ及びメモリのものとの間のギャップが存在する。キャッシュ(CACHE)技術は記憶分野に適用され、ホスト遅延を隠蔽可能にするだけでなく、データを統合することもまた可能であり、データはCACHEを利用することによってディスクフレンドリーな方式によりディスクに書き込まれ、すなわち、該ディスクはフラッシュされ、これにより、記憶システムの最適なスループットを達成する。
数十年の研究の後、既存のCACHEアルゴリズムは成熟した。しかしながら、コンピュータにより提供されるアプリケーションが日々多様化し、ディスクアレイにより提供されるスペースと性能との双方が、よりフレキシブルなスケジューリング方法を必要としている。同一のディスクアレイは、通常、異なるタイプのディスクを有するかもしれず、同じタイプのディスクを有するリダンダント・アレイ・オブ・インディペンデント・ディスク(Redundant Array of Independent Disks,以下では略してRAID)においてさえ、各RAIDグループに含まれるメンバーディスクの個数は通常は異なっている。さらに、単一のRAIDグループにおける論理ユニット番号(Logic Unit Number、以下では略してLUN)を利用することにより特定される論理ユニットの個数がまた徐々に増加している。
従来技術では、ディスクアレイのフラッシュ中、スケジューリングは論理ユニットレイヤにおいて実行され、すなわち、各フラッシュ入出力(Input/Output、以下では略してIO)は、単一の論理ユニットに対してである。しかしながら、ディスクアレイは複数のRAIDグループを含み、各RAIDグループは更に複数の論理ユニットを含む。すなわち、現在のディスクアレイ・フラッシュ方法は、この状況において適切に動作することができない。例えば、同じRAIDグループにおける複数の論理ユニットについて、単一の論理ユニットのフラッシュIOは、論理ユニットにおける順序づけされたフラッシュIOである。しかしながら、同時的なフラッシュが複数の論理ユニットに対して実行される必要があり、同時的なフラッシュが実行される複数の論理ユニットは離散的シーケンスを有するため、RAIDグループ全体における同時的フラッシュIOは、通常は離散的となる。離散的である同時的フラッシュIOは、ディスクの磁気アームをアドレッシングのため前後にジャンプさせるかもしれず、データの読み書きより磁気アームによるアドレッシングに多くの時間が費やされ、ディスクアレイの全体的な性能に対して重大な負の効果及びディスクアレイの低スループットをもたらす。
本発明の実施例は、ディスクアレイのフラッシュ効率を向上させ、ディスクアレイのスループットを増大させるのに利用されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置を提供する。
第1の態様によると、本発明の実施例は、ディスクアレイ・フラッシュ方法であって、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するステップと、前記論理ユニットの前記シーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、順次的にフラッシュするステップと、を有するディスクアレイ・フラッシュ方法を提供する。
第1の態様の第1の可能な実現方式では、前記論理ユニットの前記シーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップの前に、当該方法は更に、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップを有する。
第1の態様の第1の可能な実現方式によると、第1の態様の第2の可能な実現方式では、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップは、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するステップを有し、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第1の態様又は第1の態様の上記2つの可能な実現方式の1つによると、第1の態様の第3の可能な実現方式では、前記論理ユニットの前記シーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップは、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行するステップと、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュするステップと、を有する。
第1の態様の第3の可能な実現方式によると、第1の態様の第4の可能な実現方式では、前記現在の論理ユニットをフラッシュするステップは、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュするステップと、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するステップと、を有する。
第1の態様の第3又は第4の可能な実現方式によると、第1の態様の第5の可能な実現方式では、前記現在の論理ユニットをフラッシュするステップは、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュするステップと、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止するステップと、を有する。
第1の態様の第5の可能な実現方式によると、第1の態様の第6の可能な実現方式では、前記RAIDグループのフラッシュを停止するステップの後に、当該方法は更に、前記RAIDグループのフラッシュポインタを不変に維持するステップを有する。
第2の態様によると、本発明の実施例は、ディスクアレイ・フラッシュ装置であって、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するよう構成される取得モジュールと、前記論理ユニットの前記シーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成されるフラッシュモジュールであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、フラッシュモジュールと、を有するディスクアレイ・フラッシュ装置を提供する。
第2の態様の第1の可能な実現方式では、当該装置は、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するよう構成される決定モジュールを更に有する。
第2の態様の第1の可能な実現方式によると、第2の態様の第2の可能な実現方式では、前記決定モジュールは、具体的には、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第2の態様又は第2の態様の上記2つの可能な実現方式の1つによると、第2の態様の第3の可能な実現方式では、前記フラッシュモジュールは、具体的には、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュする、よう構成される。
第2の態様の第3の可能な実現方式によると、第2の態様の第4の可能な実現方式では、前記フラッシュモジュールが前記現在の論理ユニットをフラッシュするよう構成されることは、具体的には、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュし、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示することを含む。
第2の態様の第3又は第4の可能な実現方式によると、第2の態様の第5の可能な実現方式では、前記フラッシュモジュールは更に、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュし、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止する、よう構成される。
第2の態様の第5の可能な実現方式によると、第2の態様の第6の可能な実現方式では、前記フラッシュモジュールは更に、前記RAIDグループのフラッシュポインタを不変に維持するよう構成される。
第3の態様によると、本発明の実施例は、他のディスクアレイ・フラッシュ装置であって、命令を格納するよう構成されるメモリと、前記メモリに結合されるプロセッサであって、前記プロセッサは前記メモリに格納される命令を実行するよう構成され、前記プロセッサは、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得し、前記論理ユニットの前記シーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成され、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する他のディスクアレイ・フラッシュ装置を提供する。
第3の態様の第1の可能な実現方式では、前記プロセッサは、前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するよう構成される。
第3の態様の第1の可能な実現方式によると、第3の態様の第2の可能な実現方式では、前記プロセッサは、具体的には、前記RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pnは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である。
第3の態様又は第3の態様の上記2つの可能な実現方式の1つによると、第3の態様の第3の可能な実現方式では、前記プロセッサは、具体的には、前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュするよう構成される。
第3の態様の第3の可能な実現方式によると、第3の態様の第4の可能な実現方式では、前記プロセッサが前記現在の論理ユニットをフラッシュするよう構成されることは、具体的には、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュし、前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示することを含む。
第3の態様の第3又は第4の可能な実現方式によると、第3の態様の第5の可能な実現方式では、前記プロセッサは更に、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュし、前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止する、よう構成される。
第3の態様の第5の可能な実現方式によると、第3の態様の第6の可能な実現方式では、前記プロセッサは更に、前記RAIDグループのフラッシュポインタを不変に維持するよう構成される。
本発明の実施例において提供されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置によると、単一のRAIDグループにおける複数の論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのため前後にジャンプするのにより時間がかからず、RAIDグループ間の影響がRAIDグループに対する独立した制御によって防止され、これにより、ディスクアレイのフラッシュ効率性を改善し、ディスクアレイのスループットを増大させる。
本発明の実施例又は従来技術における技術的方策をより明確に説明するため、以下において、実施例又は従来技術を説明するのに必要な添付図面が簡単に紹介される。明らかに、以下の説明における添付図面は本発明のいくつかの実施例を示し、当業者は、創作的な努力なく、これらの添付図面から他の図面を依然として導出してもよい。
図1は、本発明によるディスクアレイ・フラッシュ方法の実施例1のフローチャートである。
図2は、本発明によるディスクアレイ・フラッシュ方法の実施例2のフローチャートである。
図3は、本発明によるディスクアレイ・フラッシュ方法の実施例3のフローチャートである。
図4は、本発明によるディスクアレイ・フラッシュ装置の実施例1の概略的な構成図である。
図5は、本発明によるディスクアレイ・フラッシュ装置の実施例2の概略的な構成図である。
本発明の実施例の課題、技術的方策及び効果をより明確にするため、以下において、本発明の実施例における添付図面を参照して、本発明の実施例における技術的方策が明確且つ完全に説明される。明らかに、説明される実施例は、本発明の全ての実施例というよりも一部である。創作的な努力なく本発明の実施例に基づき当業者により取得される他の全ての実施例は、本発明の保護範囲内に属する。
図1は、本発明によるディスクアレイ・フラッシュ方法の実施例1のフローチャートである。図1に示されるように、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS110:論理ユニットの物理アドレスに従っている、ディスクアレイの同一のRAIDグループにおける論理ユニットのシーケンスを取得する。
具体的には、ディスクアレイは複数のRAIDグループを有してもよく、各RAIDグループは複数の論理ユニットを有してもよく、論理ユニットは論理ユニット番号LUNを利用することによって特定されてもよく、論理ユニットはRAIDグループにおける記憶スペースを分割するのに利用される。一般に、論理ユニットが作成されると、記憶スペースは、RAIDグループにおける論理ユニットの物理アドレスのシーケンスに従って、同一のRAIDグループにおける全ての論理ユニットについて分割されてもよく、各論理ユニットは、RAIDグループにおける連続する物理アドレスのスペースを占有する。例えば、物理アドレスによるLUN1〜LUN5のシーケンスは、LUN2,LUN4,LUN1,LUN5,LUN3であってもよい。
ステップS120:論理ユニットのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュし、ここで、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要のある1以上のダーティページを含むものであってもよく、RAIDグループの1つの同時的フラッシュIOは、同時的フラッシュIOにおけるダーティページをRAIDグループにフラッシュする1つのフラッシュ処理として解釈可能である。一般に、RAIDグループにフラッシュされるべきダーティページは、同時的フラッシュIOを形成するため、ダーティページに対応するデスティネーションアドレスのシーケンスに従って連続的にパッケージ化され、ダーティページのデスティネーションアドレスは、ダーティページが書き込まれるべき論理ユニットの物理アドレスに対応する。フラッシュは、RAIDグループに対して別々に実行され、フラッシュ中、RAIDグループは互いに干渉しない。RAIDグループにおける同時的フラッシュIOは、シーケンスに従ってRAIDグループの論理ユニットに別々にフラッシュされる。シーケンスがRAIDグループにおける論理ユニットの物理アドレスの配置シーケンスに整合している場合、RAIDグループにおける論理ユニットの物理アドレスは連続的であるため、RAIDグループへのRAIDグループの同時的フラッシュIOをフラッシュする処理は、RAIDグループにおける磁気アームが順次的なアドレッシングを実行し、ダーティページをディスクに書き込む処理となる。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループ間の影響が、RAIDグループに対する独立した制御によって防止され、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
図2は、本発明によるディスクアレイ・フラッシュ方法の実施例2のフローチャートである。図2に示されるように、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS210:論理ユニットの物理アドレスに従っている、ディスクアレイの同一のRAIDグループにおける論理ユニットのシーケンスを取得する。
具体的には、ディスクアレイは複数のRAIDグループを有してもよく、各RAIDグループは複数の論理ユニットを有してもよく、論理ユニットは論理ユニット番号LUNを利用することによって特定されてもよく、論理ユニットはRAIDグループにおける記憶スペースを分割するのに利用される。一般に、論理ユニットが作成されると、記憶スペースは、RAIDグループにおける論理ユニットの物理アドレスのシーケンスに従って、同一のRAIDグループにおける全ての論理ユニットについて分割されてもよく、各論理ユニットは、RAIDグループにおける連続する物理アドレスのスペースを占有する。
ステップS220:ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定する。
当該ステップはまた、ステップS210の前に実行されてもよい。具体的には、ディスクアレイにフラッシュされるべきダーティページは、CACHEに書き込まれたが、ディスクアレイに書き込まれていないデータである。CACHEにおけるダーティページの個数が高い水準を超過した場合、すなわち、CACHEにダーティページを記憶するためのスペースが尽きた場合、各RAIDグループの同時的フラッシュ上限が、RAIDグループの同時的フラッシュIOの個数として利用される。CACHEにおけるダーティページの個数が高い水準に達していない場合、現在のフラッシュにおけるRAIDグループの論理ユニットの同時的フラッシュIOの個数は、ディスクアレイにフラッシュされるべきダーティページの合計数に対するRAIDグループにフラッシュされるべきダーティページの合計数の比、RAIDグループの同時的フラッシュ上限及びディスクアレイのビジー/アイドルの程度に従って決定されてもよい。RAIDグループの同時的フラッシュ上限は、各同時的フラッシュにおいてRAIDグループにおいて実行可能なフラッシュIOの個数の上限であり、RAIDグループの同時的フラッシュ上限は、RAIDグループのメンバーディスクのタイプ、メンバーディスクの個数及びRAIDグループにより利用されるRAIDレベルに従って決定される。メンバーディスクの速度が高速になるに従って、また、データディスクとして利用されるメンバーディスクの個数が多くなるに従って、RAIDグループの同時的フラッシュ上限はより高くなる。
任意的には、CACHEにおけるダーティページの個数が高い水準に達していない場合、現在のフラッシュにおけるRAIDグループの同時的フラッシュIOの個数が、以下の式、すなわち、
dn=M×(pn/P)×(1−U)
に従って決定可能であり、ここで、dnはRAIDグループの同時的フラッシュIOの個数であり、RAIDグループにおける全ての論理ユニットの同時的フラッシュIOの合計数を含み、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
ディスクアレイにフラッシュされるべきダーティページの合計数に対するRAIDグループにフラッシュされるべきダーティページの合計数の比が大きくなるに従って、RAIDグループの同時的フラッシュIOの個数は多くなり、ディスクアレイの現在の利用率が低くなるに従って、各RAIDグループの同時的フラッシュIOの個数が多くなる。
ステップS230:論理ユニットのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュし、ここで、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要がある1以上のダーティページを有してもよく、RAIDグループの1つの同時的フラッシュIOは、同時的フラッシュIOにおけるダーティページをRAIDグループにフラッシュする1つのフラッシュ処理として解釈可能であり、RAIDグループの1つの同時的フラッシュIOは、RAIDグループにおける同一の論理ユニットにフラッシュされる必要がある1以上のダーティページを有してもよい。一般に、RAIDグループにフラッシュされるべきダーティページは、同時的フラッシュIOを形成するため、ダーティページに対応するデスティネーションアドレスのシーケンスに従って連続的にパッケージ化され、ダーティページのデスティネーションアドレスは、ダーティページが書き込まれるべき論理ユニットの物理アドレスに対応する。フラッシュはRAIDグループに対して別々に実行され、フラッシュ中、RAIDグループは互いに干渉しない。RAIDグループにおける同時的フラッシュIOは、シーケンスに従ってRAIDグループの論理ユニットに別々にフラッシュされる。シーケンスがRAIDグループにおける論理ユニットの物理アドレスの配置シーケンスに整合している場合、RAIDグループにおける論理ユニットの物理アドレスは連続的であるため、RAIDグループへのRAIDグループの同時的フラッシュIOをフラッシュする処理は、RAIDグループにおける磁気アームが順次的なアドレッシングを実行し、ダーティページをディスクに書き込む処理となる。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループ間の影響が、RAIDグループに対する独立した制御によって防止され、さらに、RAIDグループレイヤにおける各RAIDグループの同時的フラッシュIOの個数を統一的に管理することによって、RAIDグループの利用率がある程度バランスされ、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
さらに、論理ユニットのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュすることは、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含み、現在の論理ユニットに対応する同時的フラッシュIOが存在することを示す場合、現在の論理ユニットをフラッシュすることを含む。要約すると、単一のRAIDグループでは、フラッシュポインタが設定され、現在のフラッシュ処理がスタートする論理ユニット、すなわち、前の同時的フラッシュ処理が終了した論理ユニットを指示するのに利用される。フラッシュ中、RAIDグループにフラッシュされるべきダーティページが、フラッシュポインタが指示する現在の論理ユニットにフラッシュされるべきダーティページを含み、現在の論理ユニットに対応する同時的フラッシュIOが存在しないことを示す場合、フラッシュポインタは他の論理ユニットに指示され、ここで、他の論理ユニットは、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される論理ユニットであり、他の論理ユニットはフラッシュされる。現在の論理ユニットが物理アドレスのシーケンスに従ってRAIDグループのエンドに配置されている場合、フラッシュポインタは、物理アドレスのシーケンスに従ってRAIDグループの第1位置に配置される論理ユニットに指示される。
さらに、現在の論理ユニットをフラッシュすることは、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含む。要約すると、1つの同時的フラッシュIOにおけるダーティページが現在の論理ユニットにフラッシュされる前に、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していると判断される場合、現在の論理ユニットに対して実行されたフラッシュは停止され、フラッシュポインタは他の論理ユニットに指示され、ここで、他の論理ユニットは、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される論理ユニットであり、他の論理ユニットはフラッシュされる。
さらに、現在の論理ユニットをフラッシュすることは、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止することを含む。同様に、ダーティページが現在の論理ユニットにフラッシュされる前に、RAIDグループにおける全ての論理ユニットの完了した同時的フラッシュIOの個数がRAIDグループにおける論理ユニットの同時的フラッシュIOの個数に達していると判断された場合、すなわち、RAIDグループに対する現在のフラッシュが完了している場合、RAIDグループのフラッシュポインタはまた、現在の論理ユニットに留まり、RAIDグループに対する現在のフラッシュから抜け出る。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのために前後にジャンプするのに時間がかからず、RAIDグループに対する独立した制御によって、また、ディスクアレイにフラッシュされるべきダーティページの合計数、各RAIDグループにフラッシュされるべきダーティページの合計数及び各RAIDグループの同時的フラッシュ上限に従って、各RAIDグループの同時的フラッシュIOの個数を別々に決定することによって、RAIDグループの論理ユニットの個数の有意な相違により生じる効果が防止され、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増加させる。
図3は、本発明によるディスクアレイ・フラッシュ方法の実施例3のフローチャートである。図3に示されるように、単一のRAIDグループをフラッシュするための方法として利用されるとき、本実施例によるディスクアレイ・フラッシュ方法は以下を含むものであってもよい。
ステップS302:RAIDグループの同時的フラッシュIOの個数を決定する。
具体的には、RAIDグループの同時的フラッシュIOの個数は、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って決定されてもよい。
ステップS304:RAIDグループのフラッシュポインタが指示する現在の論理ユニットを決定する。
単一のRAIDグループでは、フラッシュポインタが設定されてもよく、現在のフラッシュ処理がスタートする論理ユニット、すなわち、前の同時的フラッシュ処理が終了した論理ユニットを指示するのに利用される。
ステップS306:RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュIOの個数に達しているか判断し、達している場合、ステップS316を実行し、達していない場合、ステップS308を実行する。
ステップS308:RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含むか判断し、含む場合、ステップS310を実行し、含まない場合、ステップS316を実行する。
ステップS310:RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達しているか判断し、達している場合、ステップS320を実行し、達していない場合、ステップS312を実行する。
ステップS312:現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達しているか判断し、達している場合、ステップS316を実行し、達していない場合、ステップS314を実行する。
さらに、同時的フラッシュ上限はまた、RAIDグループにおける各論理ユニットに対して設定されてもよい。対応して、フラッシュポインタが指示する現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達しているか判断できる。
ステップS314:現在の論理ユニットに対応する1つの同時的フラッシュIOに含まれるダーティページを現在の論理ユニットに書き込み、ステップS306に戻る。
具体的には、ステップS314の前に、当該方法は更に、現在の論理ユニットに対応する少なくとも1つのダーティページを現在の論理ユニットに対応する1つの同時的フラッシュIOにパッケージ化することを含む。
ステップS316:フラッシュポインタが全ての論理ユニットをトラバースしたか、トラバースした場合、ステップ320を実行し、トラバースしていない場合、ステップS318を実行する。
具体的には、ここでの全ての論理ユニットは、RAIDグループにおける全ての論理ユニットを表す。
ステップS318:次の論理ユニットにフラッシュポインタを指示し、ステップS304に戻る。
具体的には、次の論理ユニットは、論理ブロックアドレッシングシーケンスに従って、フラッシュポインタが指示する現在の論理ユニットの次に配置される論理ユニットである。現在の論理ユニットが物理アドレスのシーケンスに従ってRAIDグループのエンドに配置されている場合、フラッシュポインタは、物理アドレスのシーケンスに従ってRAIDグループの第1位置に配置される論理ユニットに指示される。
ステップS320:フラッシュを完了する。
本発明の本実施例において提供されるディスクアレイ・フラッシュ方法によると、上記のステップを利用することによって、単一のRAIDグループにおける論理ユニットが統一的にスケジューリングされ、物理アドレスのシーケンスに従ってフラッシュされ、従って、磁気アームがアドレッシングのため前後にジャンプするのに時間がかからず、RAIDグループに対する独立した制御によって、また、ディスクアレイにフラッシュされるべきダーティページの合計数、各RAIDグループにフラッシュされるべきダーティページの合計数及び各RAIDグループの同時的フラッシュ上限に従って、各RAIDグループの同時的フラッシュIOの個数を別々に決定することによって、RAIDグループの論理ユニットの個数の有意な相違により生じる効果が防止される。
図4は、本発明によるディスクアレイ・フラッシュ装置の実施例1の概略的な構成図である。図4に示されるように、本実施例によるディスクアレイ・フラッシュ装置400は、
論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける論理ユニットのシーケンスを取得するよう構成されてもよい取得モジュール410と、
論理ユニットのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成されてもよいフラッシュモジュール420であって、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、フラッシュモジュール420と、
を有してもよい。
さらに、ディスクアレイ・フラッシュ装置400は更に、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定するよう構成される決定モジュール430を有してもよい。
さらに、決定モジュール430は、具体的には、RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成されてもよく、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
さらに、フラッシュモジュール420は、具体的には、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含む場合、現在の論理ユニットをフラッシュするよう構成されてもよい。
さらに、フラッシュモジュール420が現在の論理ユニットをフラッシュするよう構成されることは、具体的には、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含むものであってもよい。
さらに、フラッシュモジュール420は更に、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止するよう構成されてもよい。
さらに、フラッシュモジュール420は更に、RAIDグループのフラッシュポインタを不変に維持するよう構成されてもよい。
本実施例において提供されるディスクアレイ・フラッシュ装置400は、図1〜3に示される何れかの方法の実施例の技術的方策を実現するのに利用されてもよく、ディスクアレイ・フラッシュ装置400の実現原理及び技術的効果は、方法の実施例と同様であり、ここでは再度説明しない。
図5は、本発明によるディスクアレイ・フラッシュ装置の実施例2の概略的な構成図である。図5に示されるように、本実施例によるディスクアレイ・フラッシュ装置500は、命令を記憶するよう構成されるメモリ501と、メモリに結合されるプロセッサ502とを有し、プロセッサ502は、メモリ501に記憶される命令を実行するよう構成され、ディスクアレイ・フラッシュ装置500は更に、ネットワークインタフェース503、他のユーザインタフェース504及び通信バス505を有してもよい。通信バス505は、これらの装置の間の接続及び通信を実現するよう構成される。メモリ501は、高速ランダム・アクセス・メモリ(Random Access Memory、略してRAM)を有してもよいし、又は、例えば、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non−volatile memory)を更に有してもよい。メモリ501は、任意的には、上記のプロセッサ502から遠く離れて配置された少なくとも1つの記憶装置を有してもよい。
プロセッサ502は、
論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける論理ユニットのシーケンスを取得し、論理ユニットのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成され、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する。
さらに、プロセッサ502は更に、ディスクアレイにフラッシュされるべきダーティページの合計数、RAIDグループにフラッシュされるべきダーティページの合計数及びRAIDグループの同時的フラッシュ上限に従って、RAIDグループの同時的フラッシュIOの個数を決定するよう構成される。
さらに、プロセッサ502は、具体的には、RAIDグループの同時的フラッシュIOの個数dn=M×(pn/P)×(1−U)を決定するよう構成され、MはRAIDグループの同時的フラッシュ上限であり、pnはRAIDグループにフラッシュされるべきダーティページの合計数であり、Pはディスクアレイにフラッシュされるべきダーティページの合計数であり、Uはディスクアレイの現在の利用率である。
さらに、プロセッサ502は、具体的には、RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示するか、又は、RAIDグループにフラッシュされるべきダーティページが現在の論理ユニットにフラッシュされるべきダーティページを含む場合、現在の論理ユニットをフラッシュするよう構成される。
さらに、プロセッサ502が現在の論理ユニットをフラッシュするよう構成されることは、具体的には、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達していない場合、現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを現在の論理ユニットにフラッシュし、現在の論理ユニットの完了した同時的フラッシュIOの個数が現在の論理ユニットの同時的フラッシュ上限に達している場合、現在の論理ユニットのフラッシュを停止し、物理アドレスのシーケンスに従って現在の論理ユニットの次に配置される他の論理ユニットにRAIDグループのフラッシュポインタを指示することを含む。
さらに、プロセッサ502は更に、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達していない場合、現在の論理ユニットをフラッシュし、RAIDグループの完了した同時的フラッシュIOの個数がRAIDグループの同時的フラッシュ上限に達している場合、RAIDグループのフラッシュを停止するよう構成される。
さらに、プロセッサ502は更に、RAIDグループのフラッシュポインタを不変に維持するよう構成される。
本実施例において提供されるディスクアレイ・フラッシュ装置500は、図1〜3に示される何れかの方法の実施例の技術的方策を実現するのに利用されてもよく、ディスクアレイ・フラッシュ装置500の実現原理及び技術的効果は、方法の実施例と同様であり、ここでは再度説明しない。図5は、本発明によるディスクアレイ・フラッシュ装置の構成の単なる1つの概略図であり、特定の構成が実際の要求に従って調整されてもよい。
要約すると、本発明の実施例において提供されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのため前後にジャンプするのに時間がかからず、RAIDグループ間の影響は、RAIDグループに対する独立した制御により防止され、さらに、RAIDグループレイヤにおけるRAIDグループのフラッシュIOの個数をバランスさせることによって、RAIDグループの利用率がある程度バランスされ、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増大させる。
当業者は、方法の実施例のステップの全て又は一部が関連するハードウェアに指示するプログラムにより実現されてもよいことを理解してもよい。当該プログラムは、コンピュータ可読記憶媒体に格納されてもよい。プログラムが実行されると、方法の実施例のステップが実行される。上記の記憶媒体は、ROM、RAM、磁気ディスク又は光ディスクなどのプログラムコードを記憶可能な何れかの媒体を含む。
最後に、上記の実施例は本発明の技術的方策を説明するためだけに意図され、本発明を限定するものでないことに留意すべきである。本発明が上記の実施例を参照して詳細に説明されたが、当業者は、それらが本発明の実施例の技術的方策の範囲を逸脱することなく、上記の実施例において説明された技術的方策に依然として修正を行ってもよいし、又はその一部若しくは全ての技術的特徴に等価な置換をしてもよいことを理解すべきである。