JP2016503209A - ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置 - Google Patents

ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置 Download PDF

Info

Publication number
JP2016503209A
JP2016503209A JP2015549916A JP2015549916A JP2016503209A JP 2016503209 A JP2016503209 A JP 2016503209A JP 2015549916 A JP2015549916 A JP 2015549916A JP 2015549916 A JP2015549916 A JP 2015549916A JP 2016503209 A JP2016503209 A JP 2016503209A
Authority
JP
Japan
Prior art keywords
raid group
flash
logical unit
simultaneous
flushed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015549916A
Other languages
English (en)
Other versions
JP6060277B2 (ja
Inventor
翔 ▲張▼
翔 ▲張▼
浩 董
浩 董
▲權▼ 李
▲權▼ 李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016503209A publication Critical patent/JP2016503209A/ja
Application granted granted Critical
Publication of JP6060277B2 publication Critical patent/JP6060277B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Manufacturing Of Magnetic Record Carriers (AREA)
  • Brushes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本発明の実施例は、ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置を提供する。本方法は、論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける論理ユニットのシーケンスを取得するステップと、論理ユニットの物理アドレスのシーケンスに従って、RAIDグループにおける論理ユニットへのRAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップであって、各同時的フラッシュIOは、RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、順次的にフラッシュするステップとを有する。本発明の実施例において提供されるディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置によると、単一のRAIDグループにおける論理ユニットを統一的にスケジューリングし、物理アドレスのシーケンスに従ってフラッシュを実行することによって、磁気アームがアドレッシングのため前後にジャンプするのに時間がかからず、RAIDグループ間の影響は、RAIDグループに対する独立した制御により防止され、これにより、ディスクアレイのフラッシュ効率を改善し、ディスクアレイのスループットを増大させる。

Description

本発明の実施例は、コンピュータ技術に関し、特にディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置に関する。
コンピュータアプリケーション技術の急速な発展によって、大量のデータが生成され、記憶スペース及び性能に対するより高い要求を生じさせている。現在主流のディスクに対する操作は多数の機械的操作を依然として含むため、現在主流のディスクの性能とプロセッサ及びメモリのものとの間のギャップが存在する。キャッシュ(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の個数d=M×(p/P)×(1−U)を決定するステップを有し、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数d=M×(p/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数d=M×(p/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数が、以下の式、すなわち、
=M×(p/P)×(1−U)
に従って決定可能であり、ここで、dはRAIDグループの同時的フラッシュIOの個数であり、RAIDグループにおける全ての論理ユニットの同時的フラッシュIOの合計数を含み、MはRAIDグループの同時的フラッシュ上限であり、pは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の個数d=M×(p/P)×(1−U)を決定するよう構成されてもよく、MはRAIDグループの同時的フラッシュ上限であり、pは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の個数d=M×(p/P)×(1−U)を決定するよう構成され、MはRAIDグループの同時的フラッシュ上限であり、pは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の個数d=M×(p/P)×(1−U)を決定するステップを有し、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数d=M×(p/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数d=M×(p/P)×(1−U)を決定するよう構成され、Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記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の個数が、以下の式、すなわち、
=M×(p/P)×(1−U)
に従って決定可能であり、ここで、dはRAIDグループの同時的フラッシュIOの個数であり、RAIDグループにおける全ての論理ユニットの同時的フラッシュIOの合計数を含み、MはRAIDグループの同時的フラッシュ上限であり、pは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の個数d=M×(p/P)×(1−U)を決定するよう構成されてもよく、MはRAIDグループの同時的フラッシュ上限であり、pは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の個数d=M×(p/P)×(1−U)を決定するよう構成され、MはRAIDグループの同時的フラッシュ上限であり、pは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、磁気ディスク又は光ディスクなどのプログラムコードを記憶可能な何れかの媒体を含む。
最後に、上記の実施例は本発明の技術的方策を説明するためだけに意図され、本発明を限定するものでないことに留意すべきである。本発明が上記の実施例を参照して詳細に説明されたが、当業者は、それらが本発明の実施例の技術的方策の範囲を逸脱することなく、上記の実施例において説明された技術的方策に依然として修正を行ってもよいし、又はその一部若しくは全ての技術的特徴に等価な置換をしてもよいことを理解すべきである。

Claims (14)

  1. ディスクアレイ・フラッシュ方法であって、
    論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するステップと、
    前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、順次的にフラッシュするステップと、
    を有するディスクアレイ・フラッシュ方法。
  2. 前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップの前に、当該方法は更に、
    前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップを有する、請求項1記載の方法。
  3. 前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するステップは、
    前記RAIDグループの同時的フラッシュIOの個数d=M×(p/P)×(1−U)を決定するステップを有し、
    Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である、請求項2記載の方法。
  4. 前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするステップは、
    前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行するステップと、
    前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュするステップと、
    を有する、請求項1乃至3何れか一項記載の方法。
  5. 前記現在の論理ユニットをフラッシュするステップは、
    前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュするステップと、
    前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するステップと、
    を有する、請求項4記載の方法。
  6. 前記現在の論理ユニットをフラッシュするステップは、
    前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュするステップと、
    前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止するステップと、
    を有する、請求項4又は5記載の方法。
  7. 前記RAIDグループのフラッシュを停止するステップの後に、当該方法は更に、前記RAIDグループのフラッシュポインタを不変に維持するステップを有する、請求項6記載の方法。
  8. ディスクアレイ・フラッシュ装置であって、
    論理ユニットの物理アドレスに従っている、ディスクアレイの同一のリダンダント・アレイ・オブ・インディペンデント・ディスクRAIDグループにおける前記論理ユニットのシーケンスを取得するよう構成される取得モジュールと、
    前記論理ユニットの物理アドレスのシーケンスに従って、前記RAIDグループにおける論理ユニットへの前記RAIDグループの同時的フラッシュ入出力IOを順次的にフラッシュするよう構成されるフラッシュモジュールであって、各同時的フラッシュIOは、前記RAIDグループにおける1つの論理ユニットにフラッシュされるべき少なくとも1つのダーティページを有する、フラッシュモジュールと、
    を有するディスクアレイ・フラッシュ装置。
  9. 前記ディスクアレイにフラッシュされるべきダーティページの合計数、前記RAIDグループにフラッシュされるべきダーティページの合計数及び前記RAIDグループの同時的フラッシュ上限に従って、前記RAIDグループの同時的フラッシュIOの個数を決定するよう構成される決定モジュールを更に有する、請求項8記載の装置。
  10. 前記決定モジュールは、具体的には、
    前記RAIDグループの同時的フラッシュIOの個数d=M×(p/P)×(1−U)を決定するよう構成され、
    Mは前記RAIDグループの同時的フラッシュ上限であり、pは前記RAIDグループにフラッシュされるべきダーティページの合計数であり、Pは前記ディスクアレイにフラッシュされるべきダーティページの合計数であり、Uは前記ディスクアレイの現在の利用率である、請求項9記載の装置。
  11. 前記フラッシュモジュールは、具体的には、
    前記RAIDグループのフラッシュポインタが指示する現在の論理ユニットからのトラバースを実行し、
    前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含まない場合、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示するか、又は、前記RAIDグループにフラッシュされるべきダーティページが前記現在の論理ユニットにフラッシュされるべきダーティページを含む場合、前記現在の論理ユニットをフラッシュする、
    よう構成される、請求項8乃至10何れか一項記載の装置。
  12. 前記フラッシュモジュールが前記現在の論理ユニットをフラッシュするよう構成されることは、具体的には、
    前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットに対応する同時的フラッシュIOにおけるダーティページを前記現在の論理ユニットにフラッシュし、
    前記現在の論理ユニットの完了した同時的フラッシュIOの個数が前記現在の論理ユニットの同時的フラッシュ上限に達している場合、前記現在の論理ユニットのフラッシュを停止し、前記物理アドレスのシーケンスに従って前記現在の論理ユニットの次に配置される他の論理ユニットに前記RAIDグループのフラッシュポインタを指示する、
    ことを含む、請求項11記載の装置。
  13. 前記フラッシュモジュールは更に、
    前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達していない場合、前記現在の論理ユニットをフラッシュし、
    前記RAIDグループの完了した同時的フラッシュIOの個数が前記RAIDグループの同時的フラッシュ上限に達している場合、前記RAIDグループのフラッシュを停止する、
    よう構成される、請求項11又は12記載の装置。
  14. 前記フラッシュモジュールは更に、前記RAIDグループのフラッシュポインタを不変に維持するよう構成される、請求項13記載の装置。
JP2015549916A 2012-12-26 2012-12-26 ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置 Active JP6060277B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087506 WO2014100996A1 (zh) 2012-12-26 2012-12-26 磁盘阵列刷盘方法及磁盘阵列刷盘装置

Publications (2)

Publication Number Publication Date
JP2016503209A true JP2016503209A (ja) 2016-02-01
JP6060277B2 JP6060277B2 (ja) 2017-01-11

Family

ID=48838328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015549916A Active JP6060277B2 (ja) 2012-12-26 2012-12-26 ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置

Country Status (5)

Country Link
US (1) US9582433B2 (ja)
EP (1) EP2927779B1 (ja)
JP (1) JP6060277B2 (ja)
CN (1) CN103229136B (ja)
WO (1) WO2014100996A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015065449A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Cache controller for non-volatile memory
CN103577349B (zh) * 2013-11-06 2016-11-23 华为技术有限公司 在高速缓存中选择数据进行刷盘的方法和装置
CN104461936B (zh) * 2014-11-28 2017-10-17 华为技术有限公司 缓存数据的刷盘方法及装置
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
CN105095112B (zh) * 2015-07-20 2019-01-11 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN106557430B (zh) * 2015-09-19 2019-06-21 成都华为技术有限公司 一种缓存数据刷盘方法及装置
CN107870732B (zh) * 2016-09-23 2020-12-25 伊姆西Ip控股有限责任公司 从固态存储设备冲刷页面的方法和设备
CN107577439B (zh) * 2017-09-28 2020-10-20 苏州浪潮智能科技有限公司 分配处理资源的方法、装置、设备及计算机可读存储介质
CN107844436B (zh) * 2017-11-02 2021-07-16 郑州云海信息技术有限公司 一种缓存中脏数据的组织管理方法、系统及存储系统
CN110413545B (zh) * 2018-04-28 2023-06-20 伊姆西Ip控股有限责任公司 存储管理方法、电子设备和计算机程序产品
US11138122B2 (en) * 2019-07-29 2021-10-05 EMC IP Holding Company, LLC System and method for dual node parallel flush

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
US20070220201A1 (en) * 2006-03-20 2007-09-20 International Business Machines Cor Wise ordering for writes-combining spatial and temporal locality in write caches
JP2010160544A (ja) * 2009-01-06 2010-07-22 Core Micro Systems Inc キャッシュメモリシステム及びキャッシュメモリの制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539815B2 (en) * 2004-12-29 2009-05-26 International Business Machines Corporation Method, system and circuit for managing task queues in a disk device controller
CN101526882B (zh) * 2008-03-03 2011-06-22 中兴通讯股份有限公司 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置
CN101458668A (zh) * 2008-12-19 2009-06-17 成都市华为赛门铁克科技有限公司 缓存数据块的处理方法和硬盘
US9665442B2 (en) * 2010-03-29 2017-05-30 Kaminario Technologies Ltd. Smart flushing of data to backup storage
WO2011121590A1 (en) * 2010-03-31 2011-10-06 Kaminario Technologies Ltd. Log structure array

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
US20070220201A1 (en) * 2006-03-20 2007-09-20 International Business Machines Cor Wise ordering for writes-combining spatial and temporal locality in write caches
JP2010160544A (ja) * 2009-01-06 2010-07-22 Core Micro Systems Inc キャッシュメモリシステム及びキャッシュメモリの制御方法

Also Published As

Publication number Publication date
EP2927779A4 (en) 2015-12-23
CN103229136A (zh) 2013-07-31
EP2927779A1 (en) 2015-10-07
US9582433B2 (en) 2017-02-28
JP6060277B2 (ja) 2017-01-11
US20150293856A1 (en) 2015-10-15
EP2927779B1 (en) 2018-06-13
CN103229136B (zh) 2016-03-02
WO2014100996A1 (zh) 2014-07-03

Similar Documents

Publication Publication Date Title
JP6060277B2 (ja) ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置
US10579270B2 (en) Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes
US11687446B2 (en) Namespace change propagation in non-volatile memory devices
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US10860494B2 (en) Flushing pages from solid-state storage device
US20230350595A1 (en) Data Migration Method, Host, and Solid State Disk
JP5583227B1 (ja) 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
US10564865B2 (en) Lockless parity management in a distributed data storage system
US10089234B2 (en) Disk cache allocation
JP2013513881A (ja) フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム
KR20100037416A (ko) 반도체 스토리지 시스템 및 그 제어 방법
CN114127677B (zh) 用于写高速缓存架构中的数据放置的方法和系统
US11036427B2 (en) Using content addressable memory to perform read-modify-write operations in non-volatile random access memory (NVRAM)
CN111857552A (zh) 存储管理方法、电子设备和计算机程序产品
US11861175B2 (en) Latency in data storage systems
CN110990301A (zh) 多plane存储介质的顺序读方法及相关装置
US10552053B2 (en) Hybrid data storage device with performance mode data path
US11119855B2 (en) Selectively storing parity data in different types of memory
US20170052899A1 (en) Buffer cache device method for managing the same and applying system thereof
US11797183B1 (en) Host assisted application grouping for efficient utilization of device resources
JP7496841B2 (ja) 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6060277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250