(57)【要約】  本願は、記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む方法であって、少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用される方法を提供する。本方法は、物理記憶部内の各々内の全てのブロックの累計消去カウントを取得すること（３１０）と、事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に記憶対象のデータを書き込むこと（３２０）とを含む。この技術ソリューションは、一高可用性シナリオでは、異なる物理記憶部の間の平衡がとれた消去及び書き込みを達成し、１つの物理記憶部への過剰な消去及び書き込み回数による前記物理記憶部の早期の損傷を回避し、前記物理記憶部が配置されたシステムの安定性を向上させる。
2019532413.tif 000002
【特許請求の範囲】
【請求項１】
記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む方法であって、前記方法が少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用され、前記方法が、
前記物理記憶部の各々内の全てのブロックの累計消去カウントを取得することと、
事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に前記記憶対象のデータを書き込むこととを含む方法。
【請求項２】
２つの物理記憶部の累計消去カウントの差が事前設定の偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つの物理記憶部の一方からより小さい累計消去カウントを有する物理記憶部へ記憶対象のデータを移動することをさらに含む請求項１に記載の方法。
【請求項３】
前記事前設定の偏差範囲が前記全ての物理記憶部の累計消去カウントの平均に基づいて決定される請求項２に記載の方法。
【請求項４】
前記記憶対象のデータがファイル移動のために書き込まれる記憶対象のデータ及び／又はファイル記憶のために書き込まれる記憶対象のデータを含む請求項１に記載の方法。
【請求項５】
前記物理記憶部がホストマシンを備え、前記中央制御機能モジュールが全てのホストマシンを備えるクラスタのクラスタ制御モジュールを備え、
前記物理記憶部の各々内の全てのブロックの累計消去カウントを取得する前記ことが事前設定の周期で各ホストマシンによって報告される累計消去カウントを受信することを含む請求項１から４の何れか一項に記載の方法。
【請求項６】
前記物理記憶部がハードドライブを備え、前記中央制御機能モジュールがホストマシンの記憶制御モジュールを備え、
前記物理記憶部の各々内の全てのブロックの累計消去カウントを取得する前記ことが各ハードドライブのスーパーブロック内に維持された累計消去カウントを読み出すことを含み、前記累計消去カウントが前記ハードドライブの各ブロックが割り当てられた後で１だけインクリメントされる請求項１から４の何れか一項に記載の方法。
【請求項７】
記憶対象のデータを書き込むデバイスであって、前記デバイスが少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用され、前記デバイスが、
前記物理記憶部内の各々内の全てのブロックの累計消去カウントを取得するように構成された累計消去カウント部材と、
事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に前記記憶対象のデータを書き込むように構成された物理記憶部部材とを備えるデバイス。
【請求項８】
２つの物理記憶部の累計消去カウントの差が事前設定の偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つの物理記憶部の一方からより小さい累計消去カウントを有する物理記憶部へ記憶対象のデータを移動するように構成された偏差移動部材をさらに備える請求項７に記載のデバイス。
【請求項９】
前記事前設定の偏差範囲が前記全ての物理記憶部の累計消去カウントの平均に基づいて決定される請求項８に記載のデバイス。
【請求項１０】
前記記憶対象のデータがファイル移動のために書き込まれる記憶対象のデータ及び／又はファイル記憶のために書き込まれる記憶対象のデータを含む請求項７に記載のデバイス。
【請求項１１】
前記物理記憶部がホストマシンを備え、前記中央制御機能モジュールが全てのホストマシンを備えるクラスタのクラスタ制御モジュールを備え、
前記累計消去カウント部材が事前設定の周期で各ホストマシンによって報告される累計消去カウントを受信するように構成された請求項７から１０の何れか一項に記載のデバイス。
【請求項１２】
前記物理記憶部がハードドライブを備え、前記中央制御機能モジュールがホストマシンの記憶制御モジュールを備え、
前記累計消去カウント部材が各ハードドライブのスーパーブロック内に維持された累計消去カウントを読み出すように構成され、前記累計消去カウントが前記ハードドライブの各ブロックが割り当てられた後で１だけインクリメントされる請求項７から１０の何れか一項に記載のデバイス。
【請求項１３】
記憶対象のデータをクラスタに書き込む方法であって、前記クラスタが少なくとも２つのホストマシンを備え、各ホストマシンが記憶媒体としてフラッシュメモリを使用する少なくとも２つのハードドライブを備え、前記方法が、
クラスタ制御モジュールが各ホストマシン上の全てのブロックの累計消去カウントを取得することと、
各ホストマシン上の記憶制御モジュールが前記ホストマシン上の各ハードドライブの累計消去カウントを取得することと、
前記クラスタ制御装置が事前設定のホストマシン書き込み条件を満足する複数のホストマシンから最も小さいホストマシン累計消去カウントを有するホストマシンの少なくとも１つを対象ホストマシンとして選択することと、
各対象ホストマシン上で、前記ホストマシンの前記記憶制御装置が事前設定のハードドライブ書き込み条件を満足し最も小さいハードドライブ累計消去カウントを有する少なくとも１つのハードドライブに前記記憶対象のデータを書き込むこととを含む方法。
【請求項１４】
２つのホストマシンの累計消去カウントの差が事前設定のホストマシン偏差範囲を超える場合、前記クラスタ制御装置がより大きい累計消去カウントを有する前記２つのホストマシンの一方からより小さい累計消去カウントを有するホストマシンへ記憶対象のデータを移動することと、
ホストマシン上の２つのハードドライブの累計消去カウントの差が事前設定のハードドライブ偏差範囲を超える場合、前記ホストマシンの記憶制御装置がより大きい累計消去カウントを有する前記２つのハードドライブの一方からより小さい累計消去カウントを有するハードドライブへ記憶対象のデータを移動することとをさらに含む請求項１３に記載の方法。
【請求項１５】
前記記憶対象のデータがファイル移動のために書き込まれる記憶対象のデータを含む請求項１３に記載の方法。
【請求項１６】
少なくとも２つのホストマシンを備え、各ホストマシンが記憶媒体としてフラッシュメモリを使用する少なくとも２つのハードドライブを備えるクラスタであって、前記クラスタが、
各ホストマシン上の全てのブロックの累計消去カウントを取得し、記憶対象のデータの書き込みが必要な場合、事前設定のホストマシン書き込み条件を満足する複数のホストマシンから最も小さいホストマシン累計消去カウントを有するホストマシンの少なくとも１つを対象ホストマシンとして選択するように構成されたクラスタ制御モジュールと、
前記ホストマシン上の各ハードドライブの累計消去カウントを取得し、前記ホストマシンが対象ホストマシンとして選択された場合、事前設定のハードドライブ書き込み条件を満足し最も小さいハードドライブ累計消去カウントを有する少なくとも１つのハードドライブに前記記憶対象のデータを書き込むように構成された各ホストマシン上の記憶制御モジュールとをさらに備えるクラスタ。
【請求項１７】
前記クラスタ制御モジュールが、２つのホストマシンの累計消去カウントの差が事前設定のホストマシン偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つのホストマシンの一方からより小さい累計消去カウントを有するホストマシンへ前記記憶対象のデータを移動するようにさらに構成され、
各ホストマシン上の前記記憶制御モジュールが、前記ホストマシン上の２つのハードドライブの累計消去カウントの差が事前設定のハードドライブ偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つのハードドライブの一方からより小さい累計消去カウントを有するハードドライブへ前記記憶対象のデータを移動するようにさらに構成された請求項１６に記載のクラスタ。
【請求項１８】
前記記憶対象のデータがファイル移動のために書き込まれる記憶対象のデータを含む請求項１６に記載のクラスタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ及びネットワーク技術の分野に関し、特に、記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む方法及びデバイスに関する。
【背景技術】
【０００２】
記憶媒体としてフラッシュメモリを使用し電子読み出し／書き込みを採用するＳＳＤ（ソリッドステートドライブ）は優れた読み出し／書き込み性能を有し、パーソナルコンピュータ及びサーバの主流の記憶ハードウェアになっている。ＳＳＤの記憶媒体はＮＡＮＤフラッシュセルであり、その各ビットはビットの値がトランジスタを充電することで１から０に変更でき、またその値が消去によってのみ０から１にリセットできるという物理的特性を有する。消去動作はブロック単位で実行される。
【０００３】
ＮＡＮＤフラッシュセルの寿命はセル上の消去及び書き込み回数によって測定される。ブロックがこの消去及び書き込み回数に達すると、ブロックをデータ記憶に使用することは不可能になり、ブロックは不良ブロックになる。不良ブロックの数が増加するにつれて、ＳＳＤの耐用年数は急激に減少する。
【０００４】
したがって、ＦＴＬ（フラッシュトランスレーションレベル）バランス消去及び書き込みアルゴリズム又はバランス消去及び書き込み機能を有するファイルシステムレイヤを現在の技術内で使用し、可能な限り、個々のＳＳＤの耐用年数を延ばすように同じＳＳＤ上の全てのブロックについてバランス消去及び書き込みが達成される。その例は、ＦＴＬレイヤ動的バランシングストラテジー、ＦＴＬレイヤ静的バランシングストラテジー、ＪＡＦＦ２（ジャーナリングフラッシュファイルシステムバージョン２）、ＹＡＦＦＳ（イエットアナザーフラッシュファイルシステム）及び同種のものを含む。
【０００５】
但し、複数の利用可能なＳＳＤを有するシステムでは、１つ又は複数のＳＳＤに対して１つ又は複数のその他のＳＳＤ上と比較してはるかに多くの回数の消去及び書き込みが実行されることがしばしばある。その結果、過剰に使用されたＳＳＤは早期に損傷する。ＳＳＤ上に記憶されたデータに高可用性ソリューションが適用されない場合、ＳＳＤはデータ損失を来す可能性がある。高可用性記憶ソリューションを採用するシステムでは、データ移動がさらに発生するためにシステムの安定性が弱まる可能性がある。
【発明の概要】
【０００６】
この点に鑑みて、本願は記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む方法であって、少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用され、前記方法が、
前記物理記憶部の各々内の全てのブロックの累計消去カウントを取得することと、
事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に前記記憶対象のデータを書き込むこととを含む方法を提供する。
【０００７】
本願は、記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込むデバイスであって、前記デバイスが少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用され、前記デバイスが、
前記物理記憶部内の各々内の全てのブロックの累計消去カウントを取得するように構成された累計消去カウント部材と、
事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に前記記憶対象のデータを書き込むように構成された物理記憶部部材とを備えるデバイスをさらに提供する。
【０００８】
上記の技術ソリューションから、本願の実施形態で、一非高可用性シナリオでは、前記中央制御機能モジュールが、各物理記憶部内の全てのブロックの累計消去カウントに基づいて、記憶対象のデータを書き込むための事前設定の書き込み条件を満足する複数の物理記憶部から最も小さい累計消去カウントを有する物理記憶部を選択し、それによって、異なる物理記憶部の間でのバランスがとれた消去及び書き込みを達成し、１つの物理記憶部への過剰な消去及び書き込み回数による前記物理記憶部の早期の損傷を回避し、データ損失の可能性を低下させ、一高可用性シナリオでは、さらに、前記物理記憶部が配置されたシステムの安定性を向上させることが分かる。
【図面の簡単な説明】
【０００９】
【図１】本願のいくつかの実施形態の第１の適用例におけるホストマシンの構成の概略構造図である。
【図２】本願のいくつかの実施形態の第２の適用例におけるクラスタの構成の概略構造図である。
【図３】本願の実施形態Ｉの記憶対象のデータを書き込む方法のフローチャートである。
【図４】本願の実施形態ＩＩのクラスタに記憶対象のデータを書き込む方法のフローチャートである。
【図５】本願のいくつかの実施形態のデバイスのハードウェア構造図である。
【図６】本願のいくつかの実施形態の記憶対象のデータを書き込むデバイスの論理構造図である。
【図７】本願のいくつかの実施形態のクラスタの論理構造図である。
【発明を実施するための形態】
【００１０】
本願の実施形態は、記憶対象のデータをフラッシュメモリベースの記憶媒体に書き込む新規の方法であって、前記方法が、各物理記憶部内の全てのブロックの累計消去カウントの統計データに基づいて、記憶対象のデータを書き込むための事前設定の書き込み条件を満足する複数の物理記憶部から最も小さい累計消去カウントを有する１つ又は複数の物理記憶部を選択し、それによって、異なる物理記憶部の耐用年数が互いに近づくように異なる物理記憶部の間でのバランスがとれた消去及び書き込みを達成し、それによって、１つの物理記憶部への早期の損傷の結果としてのデータ損失の可能性又はシステムの安定性への影響の可能性を低減し、現在の技術における問題を解決することを含む方法を提供する。
【００１１】
本願の実施形態では、２つ以上の物理記憶部が書き込み制御のために中央制御機能モジュールによって制御される。すなわち、前記中央制御機能モジュールはどの１つ又は複数の物理記憶部に記憶対象のデータを書き込むかを決定する。ここで、物理記憶部は他の物理記憶部から物理的に独立したエンティティであり、フラッシュメモリベースの記憶媒体を使用する。物理記憶部は独立したフラッシュメモリベースの物理記憶コンポーネント（例えば、フラッシュチップ、ハードドライブ、及び同種のもの）、少なくとも１つの独立したフラッシュメモリベースの物理記憶コンポーネントを備えるホストマシン（例えば、ディスクアレイキャビネット、パーソナルコンピュータ、サーバ）、及び同種のものであってもよい。前記中央制御機能モジュールは、ソフトウェアによって又はソフトウェアとハードウェアとの組み合わせによって実施され、物理記憶部上で稼働でき、又は前記中央制御機能モジュールによって制御される全ての物理記憶部から独立した別のホストマシン上で稼働できる。
【００１２】
図１は、ホストマシンが複数のハードドライブ（本適用シナリオでは物理記憶部）と共に設置され、記憶制御モジュール（本適用シナリオでは中央制御機能モジュール)がどのハードドライブにどのデータを記憶するかの決定を含めて全てのハードドライブ上の読み出し／書き込み制御を実行するためにホストマシン上で稼働する本願のいくつかの実施形態の適用シナリオの例を示す図である。
【００１３】
図２は、複数のホストマシン（本適用シナリオでは物理記憶部）によって形成されるクラスタ内の１つのホストマシンが主制御ノードであり、他のホストマシンが動作ノードである本願のいくつかの実施形態の適用シナリオの別の例である。クラスタのクラスタ制御モジュール（本適用シナリオでは中央制御機能モジュール）は主制御ノード上で稼働して複数のホストマシンに関するデータ記憶の割り当て及び管理を実行する。主制御ノードとして機能しているホストマシンに障害が発生した場合、別のホストマシンを主制御ノードにアップグレードしてクラスタの動作を継続することができる。
【００１４】
本願のいくつかの実施形態の適用分野における中央制御機能モジュールは計算及び記憶が可能な任意のデバイス、例えば、タブレットコンピュータ、ＰＣ（パーソナルコンピュータ）、ラップトップコンピュータ、及びサーバ上で稼働できる。
【００１５】
本願の実施形態Ｉでは、記憶対象のデータを書き込む方法のプロセスが図３に示されている。
【００１６】
ステップ３１０で、各物理記憶部内の全てのブロックの累計消去カウントを取得する。
【００１７】
ブロックはデータ記憶域内の記憶空間割り当ての最小単位である。ブロックが割り当てられると、そのブロックについて消去動作が実行され、ブロックの空間を取得するアプリケーション（又はスレッド、プロセス、及び同種のもの）はブロックを用いてデータを書き込むことができる。したがって、ブロックが割り当てられたカウントはブロックが消去された累積カウントである。
【００１８】
物理的に独立した記憶コンポーネント（例えば、ハードドライブ、フラッシュチップ、及び同種のもの）の場合、ブロック分割は、通常、記憶コンポーネントの起動時に実行される。ハードドライブを例にとると、大半のファイルシステムで、アドミニストレータはハードドライブを初期化する際にブロックのサイズを指定できる。ハードドライブが配置されたホストマシンの記憶制御モジュールがハードドライブ上で記憶管理を行うと仮定すると、記憶制御モジュールはハードドライブ上の全てのブロックのうちハードドライブの各ブロックを表す一意的なブロック識別子を使用し、ハードドライブの各ブロック識別子と累積消去カウントとの間の対応関係を維持することができる。あるブロックのブロック識別子の累積消去カウントはそのブロックが割り当てられるたびに１だけインクリメントされる。この適用シナリオでハードドライブが前記物理記憶部として機能する場合、全てのブロックの累積消去カウントを合計してハードドライブの累計消去カウントを取得することができる。或いは、記憶制御モジュールはハードドライブのスーパーブロック内の全てのブロックの累計消去カウントを維持することもできる。累計消去カウントは複数のブロックが割り当てられるたびに割り当てられるブロックの数だけインクリメントされる。言い換えると、累計消去カウントは１ブロックが割り当てられるたびに１だけインクリメントされる。上記の方法で、物理的に独立した記憶コンポーネントの全てのブロックの累計消去カウントを取得できる。
【００１９】
前記物理記憶部が少なくとも１つの独立した物理記憶コンポーネントを備えるホストマシンの場合、各ホストマシン上の記憶制御モジュールはその記憶制御モジュールによって制御される物理記憶コンポーネントの累計消去カウントを計数し、前記累計消去カウントを中央制御機能モジュールに報告することができる。報告の方法は、例えば、一適用シナリオの実施態様に従って決定できる。例えば、全てのホストマシンが1つのクラスタを形成すると仮定すると、そのクラスタのクラスタ制御モジュールはその適用シナリオにおける中央制御機能モジュールである。各ホストマシンはホストマシン上の全てのブロックの累計消去カウントを事前設定の周期でクラスタ制御モジュールにプロアクティブに報告することができる。或いは、クラスタ制御モジュールは全てのブロックの累計消去カウントについて全てのホストマシンを事前設定の周期でポーリングでき、次いでクラスタ制御モジュールは各ホストマシン上の全てのブロックの累計消去カウントを事前設定の周期で受信することができる。
【００２０】
ステップ３２０で、事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に記憶対象のデータを書き込む。
【００２１】
記憶対象のデータをＮ個（Ｎは自然数）の物理記憶部に書き込む必要があると仮定すると、現在の技術において１つ又は複数の条件を用いて、記憶対象のデータを書き込むための複数の物理記憶部がある場合にどの物理記憶部に記憶対象のデータを書き込むかが決定される。例えば、満足すべき条件は、通常、残り記憶空間が書き込まれる記憶対象のデータを収容するのに充分であるということを含む。本願のいくつかの実施形態では、事前設定の書き込み条件は上記の条件の１つ以上の許容範囲に従って生成できるが、これについて２つの実施例を用いて以下に説明する。
【００２２】
第１の実施例では、複数のハードドライブのうち、最大残り記憶空間を有するＮ個のハードドライブが記憶対象のデータを書き込むハードドライブとして使用される。次いで、本願のいくつかの実施形態では、事前設定の書き込み条件は残り記憶空間が事前設定の値又はハードドライブ容量の事前設定のパーセントより小さくないということであってもよい。
【００２３】
第２の実施例では、複数のホストマシンのうち、記憶対象のデータを収容するのに充分で前記複数のホストマシンにすでに記憶されているデータへの最も少ないアクセス回数を有する残り記憶空間を有するＮ個のホストマシンが選択される。次いで、本願のいくつかの実施形態では、事前設定の書き込み条件は残り記憶空間が記憶対象のデータを収容するのに充分でホストマシンにすでに記憶されているデータへのアクセス回数がしきい値を超えていないということであってもよい。
【００２４】
物理記憶部に書き込まれる記憶対象のデータはファイルを保存するときに書き込まれる記憶対象のデータであってもよく、又はファイルを移動するときに書き込まれる記憶対象のデータであってもよい。中央制御機能モジュールの場合、ファイルを保存するときに書き込まれる記憶対象のデータは、通常、新しく追加された記憶対象のデータであるが、ファイルを移動するときに書き込まれる記憶対象のデータはすでに保存されている記憶対象のデータの保守を意味する。一適用シナリオの好ましい実施態様によれば、ファイルを保存するときには記憶対象のデータのコピーが１つあればよく、又はファイルを保存するときには記憶対象のデータのコピーが２つ以上あればよく、後者の場合、各々のコピーを異なる物理記憶部にコピーすることが通常必要である。ファイル移動は２つのケースを含む。１つのケースでは、ファイルを記憶する物理記憶部が置き換えられる。すなわち、記憶されたファイルは新しい物理記憶部に書き込まれ、そのファイルを元々記憶していた物理記憶部から削除される。その適用シナリオがファイルの３つ以上のコピーを記憶する別のケースでは、ファイルの１つが損傷したか又はファイルの１つが配置された物理記憶部が故障した場合、正常に動作している物理記憶部にファイルをコピーしてシステム全体の高可用性要求事項を満足する必要がある。ファイル移動中、事前設定の書き込み条件を用いて前記ファイルのコピーをすでに記憶している物理記憶部及び／又は故障した物理記憶部を除外することができる。
【００２５】
したがって、ファイル記憶又はファイル移動の何れかのための記憶対象のデータの書き込みに複数の物理記憶部が必要であるという可能性がある。それゆえに、各物理記憶部について全てのブロックの累計消去カウントを取得した後で、中央制御機能モジュールは、事前設定の書き込み条件に従って、記憶対象のデータの書き込み動作の必要があるときに選択可能な複数の物理記憶部を決定し、前記複数の物理記憶部から、記憶対象のデータを書き込むための最小累計消去カウントを有するＮ個（Ｎは自然数）の物理記憶部を選択する。こうして、異なる物理記憶部の間でのバランスがとれた消去及び書き込みを達成できる。
【００２６】
本願の実施形態では、記憶対象のデータを書き込むときの異なる物理記憶部の間でのバランスがとれた消去及び書き込みを実行することに加えて、中央制御機能モジュールは、物理記憶部の間に消去及び書き込みの大幅な差がある場合にファイル移動をプロアクティブに実行して複数の物理記憶部の使用のバランスをとることもできる。例えば、中央制御機能モジュールは各物理記憶部の消去及び書き込みをモニタできる。２つの物理記憶部の累計消去カウントの差が事前設定の偏差範囲を超える場合、記憶対象のデータはより大きい累計消去カウントを有する物理記憶部の一方からより小さい累計消去カウントを有する物理記憶部へ移動される。
【００２７】
例示的な一適用シナリオでは、事前設定の偏差範囲は記憶するファイルのサイズ及びバランスがとれた消去及び書き込み要求事項などの要因に従って決定できる。一適用シナリオでは、事前設定の偏差範囲は全ての物理記憶部の累計消去カウントの平均に基づいて決定できる。例えば、平均の２０％を事前設定の偏差範囲として使用できる。
【００２８】
したがって、本願の実施形態Iで、一非高可用性シナリオでは、前記中央制御機能モジュールが、各物理記憶部内の全てのブロックの累計消去カウントの統計データに基づいて、記憶対象のデータを書き込むための事前設定の書き込み条件を満足する複数の物理記憶部から最も小さい累計消去カウントを有する物理記憶部を選択し、それによって、異なる物理記憶部の間でのバランスがとれた消去及び書き込みを達成し、異なる物理記憶部の耐用年数が互いに近づくように１つの物理記憶部への過剰な消去及び書き込み回数による前記物理記憶部の早期の損傷を回避し、それによって、データ損失の可能性を低下させることができ、一高可用性シナリオでは、さらに、前記物理記憶部が配置されたシステムの安定性を向上させることができる。
【００２９】
少なくともいくつかのホストマシンが複数のホストマシンからなるクラスタ内に３つ以上のハードドライブ又はその他の独立した複数の物理記憶コンポーネントを有する場合、本願の実施形態はクラスタレベルとホストマシンレベルとにそれぞれ適用できることに留意すべきである。すなわち、異なるホストマシンの間でのバランスがとれた消去及び書き込みがクラスタレベルで達成され、１つのホストマシン上の異なるハードドライブ又はその他の複数の物理記憶コンポーネント間でのバランスがとれた消去及び書き込みがホストマシンレベルで達成される。さらに、現在の技術においてＦＴＬバランス消去及び書き込みアルゴリズム又はバランス消去及び書き込み機能を有するファイルシステムレイヤを１つのホストマシン又はその他の複数の物理記憶コンポーネント上で使用して物理記憶コンポーネントのレベルでのバランスがとれた消去及び書き込みを達成し、それによって、クラスタシステム全体の全てのレベルでのバランスがとれた消去及び書き込みを達成し、クラスタシステム内の記憶デバイスの耐用年数を延ばし、クラスタシステムの安定性を向上させることができる。
【００３０】
本願の実施形態ＩＩでは、記憶対象のデータをクラスタに書き込む方法のフローチャートが図４に示されている。この実施形態のクラスタは少なくとも２つのホストマシンを備え、前記ホストマシンはクラスタ制御モジュールによる記憶管理の対象になる。各ホストマシンは記憶媒体としてフラッシュメモリを使用する少なくとも２つのハードドライブを備え、各ホストマシン上の記憶制御モジュールはホストマシンのハードドライブ上の記憶管理を実行する。実施形態ＩＩは２つのレベル（クラスタレベル及びホストマシンレベル）での実施形態Ｉの同時適用の好ましい実施態様を提供し、全てのステップの詳細な説明については実施形態Ｉの説明が参照できるので、ここでは繰り返さない。
【００３１】
ステップ４１０で、クラスタ制御モジュールは各ホストマシン上の全てのブロックの累計消去カウントを取得する。
【００３２】
ステップ４２０で、各ホストマシンの記憶制御モジュールは前記ホストマシン上の各ハードドライブの累計消去カウントをそれぞれ取得する。
【００３３】
ステップ４３０で、クラスタ制御装置は事前設定のホストマシン書き込み条件を満足する複数のホストマシンから最も小さいホストマシン累計消去カウントを有する少なくとも１つのホストマシンを対象ホストマシンとして選択する。
【００３４】
クラスタが、書き込まれる記憶対象のデータ、例えば、ファイル移動及び／又はファイル記憶中に書き込まれる記憶対象のデータを有する場合、記憶対象のデータをＮ個のホストマシンに書きこむ必要があると仮定すると、クラスタ制御装置は事前設定のホストマシン書き込み条件を満足する複数のホストマシンから最も小さいホストマシン累計消去カウントを有する少なくともＮ個のホストマシンを対象ホストマシン、すなわち、記憶対象のデータを書き込む必要があるホストマシンとして選択する。
【００３５】
ステップ４４０で、各対象ホストマシン上で、前記ホストマシンの記憶制御装置は、事前設定のハードドライブ書き込み条件を満足し最も小さいハードドライブ累計消去カウントを有する少なくとも１つのハードドライブに記憶対象のデータを書き込む。
【００３６】
ホストマシンが対象ホストマシンとして選択された場合、記憶対象のデータを前記ホストマシン上のＭ個（Ｍは自然数）のハードドライブに書きこむ必要があると仮定すると、前記ホストマシンの記憶制御装置は、事前設定のハードドライブ書き込み条件を満足する複数のハードドライブから最も小さいハードドライブ累計消去カウントを有するＭ個のホストマシンを対象ハードドライブとして選択し、前記記憶対象のデータを前記対象ハードドライブに書き込む。
【００３７】
クラスタ制御装置は複数のホストマシンの累計消去カウントの差をモニタできる。２つのホストマシンの累計消去カウントの差が事前設定のホストマシン偏差範囲を超える場合、クラスタ制御装置はより大きい累計消去カウントを有する２つのホストマシンの一方からより小さい累計消去カウントを有するホストマシンへ記憶対象のデータを移動する。移動された記憶対象のデータを書き込むホストマシンに関して、前記ホストマシンの記憶制御装置は事前設定のハードドライブ書き込み条件を満足し最も小さいハードドライブ累計消去カウントを有するハードドライブに前記データを書き込むことができる。
【００３８】
各ホストマシンの記憶制御装置は前記ホストマシン上の複数のハードドライブの累計消去カウントの差をモニタできる。ホストマシン上の２つのハードドライブの累計消去カウントの差が事前設定のハードドライブ偏差範囲を超える場合、前記ホストマシンの記憶制御装置はより大きい累計消去カウントを有する２つのハードドライブの一方からより小さい累計消去カウントを有するハードドライブへ前記記憶対象のデータを移動することができる。
【００３９】
したがって、実施形態Ｉの方法をクラスタレベル（ホストマシン間）及びホストマシンレベル（各ホストマシン上のハードドライブ間）にそれぞれ適用することによって、本願の実施形態ＩＩはクラスタシステム全体の全ての物理記憶コンポーネントについてバランスがとれた消去及び書き込みを達成し、クラスタシステム内の記憶デバイスの耐用年数を延ばし、クラスタシステムの安定性を向上させる。
【００４０】
本願の一適用例では、高可用性クラスタシステムはＫ個（Ｋは３以上の自然数）のホストマシンを備え、各ホストマシンは記憶媒体としてフラッシュメモリを使用する少なくとも３つのハードドライブを備える。クラスタ内に記憶された各ファイルの1つのコピーをそれぞれ３つの異なるホストマシンに記憶しなければならない。クラスタのクラスタ制御装置はクラスタの主制御ノード（ホストマシンの１つ）上で稼働し、どの３つのホストマシンにファイルを記憶するかを制御するために使用される。記憶制御装置は各ホストマシン上で稼働し、どのハードドライブにファイルを記憶するかを制御するために使用される。
【００４１】
各ホストマシン上で、記憶制御装置は、各ハードドライブのスーパーブロック内に、ハードドライブの各ブロックの累積消去カウントｂｌｏｃｋ＿ｗｅａｒ＿ｃｏｕｎｔとハードドライブの全てのブロックの累計消去カウントｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔとを維持する。ハードドライブ上のあるブロックが割り当てられると、前記ブロックのブロック識別子ｂｌｏｃｋ＿ｎｕｍに対応する累積消去カウントｂｌｏｃｋ＿ｗｅａｒ＿ｃｏｕｎｔが１だけインクリメントされ、ハードドライブの全てのブロックの累計消去カウントｄｉｓｋ_ｗｅａｒ_ｃｏｕｎｔが１だけインクリメントされる。
【００４２】
さらに、記憶制御装置はホストマシンの全てのブロックの累計消去カウントｓｅｒｖｅｒ_ｗｅａｒ_ｃｏｕｎｔを維持し、ｓｅｒｖｅｒ_ｗｅａｒ_ｃｏｕｎｔはホストマシン上の全てのハードドライブのｄｉｓｋ_ｗｅａｒ_ｃｏｕｎｔの総計に等しい。クラスタ内の各動作ノードは主制御ノードに周期的にハートビート信号を送信しなければならず、動作ノードが配置されたホストマシンのｓｅｒｖｅｒ_ｗｅａｒ_ｃｏｕｎｔを周期的なハートビート信号に乗せてクラスタ制御装置に報告できる。また、主制御ノード上の記憶制御装置は主制御ノードが配置されたホストマシンのｓｅｒｖｅｒ_ｗｅａｒ_ｃｏｕｎｔをハートビート信号と同じ周期でクラスタ制御装置に報告することができる。
【００４３】
クラスタに新しいファイルが書き込まれるとき、クラスタ制御装置はＫ個のホストマシンから事前設定のホストマシン書き込み条件を満足する複数のホストマシンを決定する。本適用例における新しいファイルを書き込むための事前設定のホストマシン書き込み条件は残り記憶容量がホストマシンの総記憶容量の１５％を超えており記憶対象のデータへのアクセス数が設定されたしきい値を超えていないということである。新しいファイルを書き込むための事前設定のホストマシン書き込み条件を満足する複数のホストマシンのうち、クラスタ制御装置はｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの最小値を有する３つのホストマシンを新しいファイルを書き込むホストマシンとして選択する。
【００４４】
選択された３つのホストマシン上で、各ホストマシンの記憶制御装置はホストマシンの複数のハードドライブから事前設定のハードドライブ書き込み条件を満足する複数のハードドライブを決定する。本適用例の事前設定のハードドライブ書き込み条件は残り記憶容量がハードドライブの総記憶容量の１０％を超えているということである。ハードドライブ書き込み条件を満足する前記複数のハードドライブから、記憶制御装置は新しいファイルを書き込むための最も小さいｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔを有するハードドライブを選択する。
【００４５】
クラスタ内のホストマシン又はホストマシン上のハードドライブが故障した場合、クラスタ制御装置はホストマシン又はハードドライブ上に記憶されたファイルをもはや使用不能とみなす。その結果、これらのファイルの記憶されたコピーは３コピーよりも少ない。ファイルを移動するための事前設定のホストマシン書き込み条件が残り記憶容量がホストマシンの総記憶容量の１５％を超えており、記憶対象のデータへのアクセス回数が設定されたしきい値を超えておらず、書き込まれるファイルファイルが記憶されていないことであると仮定すると、クラスタ制御装置は、ファイルを移動するための事前設定のホストマシン書き込み条件を満足する複数のホストマシンから、最も小さいｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔを有する複数のホストマシンを移動したファイルを書き込むホストマシンとして選択する。選択された複数のホストマシン上で、記憶制御装置は、前記ハードドライブ書き込み条件を満足する複数のハードドライブから、移動したファイルを書き込むための最も小さいｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔを有する１つのハードドライブを選択する。
【００４６】
クラスタ制御装置は、前記複数のホストマシンの累計消去カウントｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの差を一定のホストマシンモニタリング周期でモニタする。クラスタ内のｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの最大値と最小値との差が全てのｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの平均の２０％を超えた場合、最大ｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔを有するホストマシン上のファイルは、クラスタ内のｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの最大値と最小値との差が全てのｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔの平均の２０％以内になるまで、最小ｓｅｒｖｅｒ＿ｗｅａｒ＿ｃｏｕｎｔを有するホストマシンへ移動される。移動ファイルの選択は現在の技術を参照して実施できるので、ここでは繰り返さない。
【００４７】
各ホストマシン上で、記憶制御装置はホストマシン上の複数のハードドライブの累計消去カウントｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔの差を一定のハードドライブモニタリング周期でモニタする。ホストマシン上のｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔの最大値と最小値との差が全てのｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔの平均の１５％を超えた場合、最大ｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔを有するハードドライブ上のファイルは、ホストマシン上のｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔの最大値と最小値との差が全てのｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔの平均の１５％以内になるまで、最小ｄｉｓｋ＿ｗｅａｒ＿ｃｏｕｎｔを有するハードドライブへ移動される。移動ファイルの選択は上記と同様に現在の技術を参照して実施できる。
【００４８】
上記のプロセスに対応して、本願の実施形態は記憶対象のデータを書き込むデバイスをさらに提供する。このデバイスは、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアとの組み合わせによって実施できる。ソフトウェア実施態様を例にとると、論理という意味での前記デバイスは、前記デバイスが対応するコンピュータプログラム命令を実行するためにメモリに読み込んでいる装置のＣＰＵ（中央処理装置）によって形成される。ハードウェアの観点からは、ＣＰＵに加えて、図５に示すメモリ及び不揮発性メモリと、記憶対象のデータを書き込むデバイスが配置された装置とは、通常、無線信号の受信や送信を行うチップ等の他のハードウェア及び／又はネットワーク通信機能を達成するボード等の他のハードウェアをさらに備える。
【００４９】
図６は、本願のいくつかの実施形態の記憶対象のデータを書き込むデバイスであって、前記デバイスが少なくとも２つの物理記憶部に対する書き込み制御を実行する中央制御機能モジュールに適用され、前記デバイスが累計消去カウント部材及び物理記憶部部材を備え、前記累計消去カウント部材が各物理記憶部内の全てのブロックの累計消去カウントを取得するように構成され、前記物理記憶部部材が事前設定の書き込み条件を満足する複数の物理記憶部のうち最も小さい累計消去カウントを有する少なくとも１つの物理記憶部に前記記憶対象のデータを書き込むように構成された前記デバイスを示す。
【００５０】
いくつかの実施例では、前記デバイスは、２つの物理記憶部の累計消去カウントの差が事前設定の偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つの物理記憶部の一方からより小さい累計消去カウントを有する物理記憶部へ前記記憶対象のデータを移動するように構成された偏差移動部材をさらに備える。
【００５１】
前記実施例では、前記事前設定の偏差範囲は全ての物理記憶部の累計消去カウントの平均に基づいて決定できる。
【００５２】
オプションとして、前記記憶対象のデータはファイル移動の際に書き込まれる記憶対象のデータ及び／又はファイル保存の際に書き込まれる記憶対象のデータを含む。
【００５３】
オプションとして、前記物理記憶部はホストマシンを備え、前記中央制御機能モジュールは全てのホストマシンを備えるクラスタのクラスタ制御モジュールを備え、前記累計消去カウント部材は事前設定の周期で各ホストマシンによって報告される累計消去カウントを受信するように構成されている。
【００５４】
オプションとして、前記物理記憶部はハードドライブを備え、前記中央制御機能モジュールはホストマシンの記憶制御モジュールを備え、前記累計消去カウント部材は各ハードドライブのスーパーブロック内に維持された累計消去カウントを読み出すように構成され、前記累計消去カウントは前記ハードドライブの各ブロックが割り当てられた後で１だけインクリメントされる。
【００５５】
図７は、本願のいくつかの実施形態のクラスタを示す図である。前記クラスタは少なくとも２つのホストマシンを備え、各ホストマシンは記憶媒体としてフラッシュメモリを使用する少なくとも２つのハードドライブを備える。前記クラスタは各ホストマシン上のクラスタ制御モジュールと記憶制御モジュールとを備え、前記クラスタ制御モジュールは、各ホストマシン上の全てのブロックの累計消去カウントを取得し、記憶対象のデータの書き込みが必要な場合、事前設定のホストマシン書き込み条件を満足する複数のホストマシンから最も小さいホストマシン累計消去カウントを有する少なくとも１つのホストマシンを対象ホストマシンとして選択するように構成されている。各ホストマシン上の前記記憶制御モジュールは、前記ホストマシン上の各ハードドライブの累計消去カウントを取得し、前記ホストマシンが対象ホストマシンとして選択された場合、事前設定のハードドライブ書き込み条件を満足し最も小さいハードドライブ累計消去カウントを有する少なくとも１つのハードドライブに前記記憶対象のデータを書き込むように構成されている。
【００５６】
オプションとして、前記クラスタ制御モジュールは、２つのホストマシンの累計消去カウントの差が事前設定のホストマシン偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つのホストマシンの一方からより小さい累計消去カウントを有するホストマシンへ前記記憶対象のデータを移動するようにさらに構成されている。各ホストマシン上の前記記憶制御モジュールは、ホストマシン上の２つのハードドライブの累計消去カウントの差が事前設定のハードドライブ偏差範囲を超える場合、より大きい累計消去カウントを有する前記２つのハードドライブの一方からより小さい累計消去カウントを有するハードドライブへ前記記憶対象のデータを移動するようにさらに構成されている。
【００５７】
オプションとして、前記記憶対象のデータはファイル移動の際に書き込まれる記憶対象のデータを含む。
【００５８】
本願の好ましい実施形態のみを上述してきたが、上記実施形態は本願を限定するものではない。本願の趣旨及び原理を逸脱することなくなされたあらゆる変更、均等物との置換又は改良は本願の保護範囲に包含されるものとする。
【００５９】
通常の構成では、計算デバイスは１つ又は複数のプロセッサ（ＣＰＵ）、入出力インタフェース、ネットワークインタフェース、及びメモリを備える。
【００６０】
メモリは、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は不揮発性メモリ、例えば、読み出し専用メモリ（ＲＯＭ）又はフラッシュＲＡＭ等を含んでいてもよい。メモリはコンピュータ可読媒体の一例である。
【００６１】
コンピュータ可読媒体は、任意の方法又は技術によって情報記憶を実行できる永続的, 揮発性、モバイル及び非モバイル媒体を含む。情報はコンピュータ可読命令、データ構造体、プログラムモジュール又はその他のデータであってもよい。コンピュータの記憶媒体の例は、これに限定されないが、計算デバイスがアクセス可能な情報を記憶するために使用できる相変化ＲＡＭ（ＰＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、その他のタイプのランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ又はその他のタイプのメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、ディジタルバーサタイルディスク（ＤＶＤ）又はその他の光メモリ、カセット、カセット及びディスクメモリ又はその他の任意の非伝送媒体を含む。本明細書の定義によれば、コンピュータ可読媒体は変調データ信号及び搬送波等の一時的媒体を含まない。
【００６２】
「含む」、「備える」という用語又はそれらの任意の別の変形語は非排他的な包含を含むように意図されており、したがって、一連の要素を含むプロセス、方法、商品又はデバイスはそれらの要素を含むだけでなく、具体的に列挙されていないその他の要素も含み、又は前記プロセス、方法、商品又はデバイス固有の要素をさらに含むということにさらに留意すべきである。別の制約がない場合、「１つの…を含む」という言明によって定義される要素は、上記要素を含むプロセス、方法、商品又はデバイスが追加の同一要素をさらに含むということを除外しない。
【００６３】
当業者であれば、本願の実施形態が方法、システム、又はコンピュータプログラムプロダクトとして提供できることを理解するはずである。したがって、本願は完全なハードウェア実施形態、完全なソフトウェア実施形態、又はソフトウェアとハードウェアとを組み合わせた実施形態として実施できる。さらに、本願は、コンピュータで使用可能なプログラムコードを内蔵した１つ又は複数のコンピュータで使用可能な記憶媒体（これに限定されないが、磁気ディスクメモリ、ＣＤ−ＲＯＭ、光メモリ、及び同種のもの）上で実施されるコンピュータプログラムプロダクトの形態であってもよい。
【図１】
2019532413.tif 000003
【図２】
2019532413.tif 000004
【図３】
2019532413.tif 000005
【図４】
2019532413.tif 000006
【図５】
2019532413.tif 000007
【図６】
2019532413.tif 000008
【図７】
2019532413.tif 000009
【国際調査報告】
2019532413.tif 000010
2019532413.tif 000011
2019532413.tif 000012
2019532413.tif 000013