JP2021503115A - Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム - Google Patents

Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム Download PDF

Info

Publication number
JP2021503115A
JP2021503115A JP2020522319A JP2020522319A JP2021503115A JP 2021503115 A JP2021503115 A JP 2021503115A JP 2020522319 A JP2020522319 A JP 2020522319A JP 2020522319 A JP2020522319 A JP 2020522319A JP 2021503115 A JP2021503115 A JP 2021503115A
Authority
JP
Japan
Prior art keywords
data
block
priority
storage device
blocks
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
JP2020522319A
Other languages
English (en)
Other versions
JP7233804B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021503115A publication Critical patent/JP2021503115A/ja
Application granted granted Critical
Publication of JP7233804B2 publication Critical patent/JP7233804B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/0614Improving the reliability of storage 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

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)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】RAIDのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラム製品およびコンピュータ・システムを提供する。【解決手段】(i)RAIDアレイの複数のディスク・ドライブにわたる複数のファイル、および(ii)ファイルのためのチェックサム・データを記憶するためのマシン・ロジック(例えば、ソフトウェア)。マシン・ロジック規則は、ファイルの1つまたは複数の属性に基づいて各ファイルに優先度値を割り当てる。これらの優先度値を用いて、最も重要なファイルが最初にリビルドされるように、チェックサム・データを用いてファイルがリビルドされる順序を決定する。【選択図】図2

Description

本発明は、一般に、独立ディスク冗長アレイデータストレージ(RAID)に関し、より詳細には、RAIDの実装をリビルドするためのプロセスに関する。
ストレージの独立ディスク冗長アレイ(RAIDアレイ)技術は、通常、大量のコンピュータデータを記憶するのに用いられる。データ冗長性のために、一般的な方法は、複数のドライブにわたってデータをストライピングし、そして故障時にフル・ドライブをコピー・バックすることである。故障時においてコピーが完了する場合、データ冗長性は成功する。RAIDアレイにおいて、パリティ・ドライブは、フォールト・トレランスを提供するハード・ドライブ(またはハード・ドライブの方式で機能する他の記憶装置)である。例えば、RAID3は、パリティ・ドライブを用いて、フォールト・トレラントであり、かつ(RAID3のデータ・ストライピングに起因して)高速なシステムを生成する。メッセージ内のビット数が奇数または偶数でることを確実にするために、データ・ブロックの最後に単一のデータビットが加えられる。RAIDアレイにおいてパリティ・ドライブを実装する1つの方式は、様々な形態のパリティ・データのうちの1つを記憶することである。
パリティ・データは、ソース・データの大きなセットから導出された、このソース・データの大きなセットよりも大幅に小さなデータである。パリティ・データは、(ソース・データのビットの選択された対にわたってXOR関数を用いる等の)様々な既知の方式で導出され、ソース・データの一部分が失われた場合(例えば、RAIDアレイ内の1つのドライブが誤動作する)、失われたデータを、(i)パリティ・ドライブにおけるパリティ・データと、(ii)残りの損なわれていないソース・データ(この例において、誤動作しなかったRAIDアレイのドライブ上のソース・データ)とを用いて導出することができるようにする。
本発明によれば、独立ディスク冗長アレイのリビルドを強化するための機械学習を提供することができる。
本発明の態様によれば、以下の動作(必ずしも以下の順序ではない)、すなわち、(i)複数の記憶装置を含む、ストライピングされた独立デバイス冗長アレイ(RAID)ストレージ・システムに複数のデータ・ブロックを記憶することと、(ii)複数のデータ・ブロックのためのパリティ・データを記憶することと、(iii)複数のデータ・ブロックの所与のデータ・ブロックの各々について、優先度データ値を所与のデータ・ブロックに割り当てることと、(iv)複数の記憶装置のうちの第1の記憶装置の故障に応答して、第1の記憶装置以外の複数の記憶装置に記憶されたパリティ・データおよびデータ・ブロックのデータを用いて、第1の記憶装置に記憶されていたデータ・ブロックの優先度値によって決定された順序で、第1の記憶装置に記憶されていたデータ・ブロックをリビルドすることと、を行う方法、コンピュータ、プログラム製品、またはシステム、あるいはその組合せが存在する。
ここで、単なる例として、本発明の実施形態を添付の図面を参照して説明する。
本発明の好ましい実施形態によるシステムの第1の実施形態のブロック図である。 第1の実施形態のシステムによって少なくとも部分的に実行される第1の実施形態の方法を示すフローチャートである。 第1の実施形態のシステムのマシン・ロジック(例えばソフトウェア)部分を示すブロック図である。 第1の実施形態のシステムのRAIDアレイの3つのディスク・ドライブ上のメモリ空間へのデータ・ブロック割り当てを示すブロック図である。 本発明の実施形態によるRAIDシステムにおける故障したディスク・ドライブのリビルドを示すブロック図である。 本発明の実施形態によるRAIDシステムにおける故障したディスク・ドライブのリビルドを示すブロック図である。 本発明の実施形態によるRAIDシステムにおける故障したディスク・ドライブのリビルドを示すブロック図である。 本発明の実施形態によるRAIDシステムにおける故障したディスク・ドライブのリビルドを示すブロック図である。 本発明の実施形態によるRAIDシステムにおける故障したディスク・ドライブのリビルドを示すブロック図である。
本発明のいくつかの実施形態は、(i)RAIDアレイの複数のディスク・ドライブにわたる複数のファイルと、(ii)ファイルのためのチェックサム・データとを記憶するためのマシン・ロジック(例えば、ソフトウェア)を対象とする。いくつかの実施形態では、次に、ファイルの1つまたは複数の属性に基づいて各ファイルに優先度値が割り当てられる。いくつかの実施形態では、これらの優先度値を用いて、最も重要なファイルが最初にリビルドされるように、チェックサム・データを用いてファイルがリビルドされる順序を決定する。この発明を実施するための形態のセクションは、以下のサブセクション、すなわち、(i)ハードウェアおよびソフトウェア環境、(ii)例示的な実施形態、(iii)更なる解説または実施形態あるいはその両方、ならびに(iv)定義に分割される。
I.ハードウェアおよびソフトウェア環境
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および格納できる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または上記のいずれかの適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、および上記の任意の適切な組合せが挙げられる。本明細書で使用される場合、コンピュータ可読記憶媒体は、電波、または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、またはワイヤを通って送られる電気信号等の、一過性の信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク、あるいはその組合せ等のネットワークを介して外部コンピュータもしくは外部記憶装置にダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、および、「C」プログラミング言語もしくは類似のプログラミング言語等の通常の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、または完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、または(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)外部コンピュータへの接続がなされる場合もある。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して説明される。フローチャート図またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図、あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロック内で指定された機能/動作を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えられてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体内に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ実施のプロセスを生成するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図面内のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能および動作を示す。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表すことができる。いくつかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、またはこれらのブロックはときとして逆順で実行されることもある。ブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方内のブロックの組合せは、指定された機能もしくは動作を実行する、または専用のハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
次に、図面を参照して、ソフトウェアまたは方法あるいはその両方のための可能なハードウェアおよびソフトウェア環境の実施形態を詳細に説明する。図1は、RAIDサブシステム102、クライアント・サブシステム104、106、108、110、112、通信ネットワーク114、RAIDコンピュータ200、通信ユニット202、プロセッサ・セット204、入力/出力(I/O)インタフェース・セット206、メモリ・デバイス208、持続性記憶装置(persistent storage device)210、ディスプレイ・デバイス212、RAIDディスク・ドライブのセット214、ランダム・アクセス・メモリ(RAM)デバイス216、キャッシュ・メモリ・デバイス218および制御プログラム300を含む、ネットワーク接続されたコンピュータ・システム100の様々な部分を示す機能ブロック図である。
サブシステム102は、多くの観点において、本発明の好ましい実施形態における様々なコンピュータ・サブシステムを表す。したがって、次に、以下の段落において、サブシステム102のいくつかの部分を論ずる。
サブシステム102は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯用情報端末(PDA)、スマート・フォン、またはネットワーク114を介してクライアント・サブシステムと通信することが可能な任意のプログラム可能な電子デバイスとすることができる。プログラム300は、以下でこの発明を実施するための形態のセクションの例示的な実施形態のサブセクションにおいて詳細に論じられる特定のソフトウェア機能を生成、管理および制御するのに用いられる機械可読命令またはデータあるいはその両方の集合である。
サブシステム102は、ネットワーク114を介して他のコンピュータ・サブシステムと通信することが可能である。ネットワーク114は、例えば、ローカル・エリア・ネットワーク(LAN)、インターネット等の広域ネットワーク(WAN)、または2つの組合せとすることができ、有線、無線、または光ファイバ接続を含むことができる。一般的に、ネットワーク114は、サーバとクライアント・サブシステムとの間の通信をサポートする接続およびプロトコルの任意の組合せとすることができる。
サブシステム102は、多くの両方向矢印を有するブロック図として示される。これらの両方向矢印(別個の参照符号を有しない)は、サブシステム102の様々なコンポーネント間の通信を提供する通信ファブリックを表す。この通信ファブリックは、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサ等)、システム・メモリ、周辺デバイス、およびシステム内の任意の他のハードウェア・コンポーネント間でデータまたは制御情報あるいはその両方を渡すように設計された任意のアーキテクチャを用いて実施することができる。例えば、通信ファブリックは、少なくとも部分的に、1つまたは複数のバスを用いて実施することができる。
メモリ208および持続性ストレージ210は、コンピュータ可読記憶媒体である。通常、メモリ208は、任意の適切な揮発性または不揮発性コンピュータ可読記憶媒体を含むことができる。現在または近い将来あるいはその両方に、(i)外部デバイス214は、いくらかのもしくは全てのメモリをサブシステム102に供給することが可能であり得るか、または(ii)サブシステム102の外部のデバイスがサブシステム102にメモリを提供することが可能であり得るか、あるいはその両方であることに更に留意されたい。
制御プログラム300は、通例、メモリ208のうちの1つまたは複数のメモリを通じてそれぞれのコンピュータプロセッサ204のうちの1つまたは複数のアクセスまたは実行あるいはその両方のために持続性ストレージ210に記憶される。持続性ストレージ210は、(i)少なくとも、輸送中の信号よりも持続性があり、(ii)有形媒体上(磁気または光領域等)にプログラム(そのソフト・ロジックまたはデータあるいはその両方を含む)を記憶し、(iii)永久ストレージよりも実質的に持続性が低い。代替的に、データ・ストレージは、持続性ストレージ210によって提供されるタイプのストレージよりも持続性が高いか、または永久であるか、あるいはその両方とすることができる。
制御プログラム300は、機械可読かつ実行可能命令または実体データ(すなわち、データベースに記憶されるデータのタイプ)あるいはその両方を含むことができる。この特定の実施形態において、持続性ストレージ210は、磁気ハードディスク・ドライブを含む。いくつかのあり得る変形を挙げると、持続性ストレージ210は、ソリッド・ステート・ハード・ドライブ、半導体記憶装置、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶することが可能な任意の他のコンピュータ可読記憶媒体を含むことができる。
持続性ストレージ210によって用いられる媒体は、取り外し可能であってもよい。例えば、取り外し可能なハード・ドライブは、持続性ストレージ210のために用いることができる。他の例には、同様に持続性ストレージ210の一部である別のコンピュータ可読記憶媒体への転送のためにドライブに挿入された、光ディスクおよび磁気ディスク、サム・ドライブ、ならびにスマート・カードが含まれる。
これらの例において、通信ユニット202は、サブシステム102の外部の他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット202は、1つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット202は、物理的通信リンクおよび無線通信リンクのいずれか、もしくはその両方の使用を通じて通信を提供することができる。本明細書において論考される任意のソフトウェア・モジュールは、通信ユニット(通信ユニット202等)を通じて持続性記憶装置(持続性記憶装置210等)にダウンロードすることができる。
I/Oインタフェース・セット206は、サーバ・コンピュータ200とローカルで接続してデータ通信することができる他のデバイスに対するデータの入力および出力を可能にする。例えば、I/Oインタフェース・セット206は、外部デバイス・セット214への接続を提供する。外部デバイス・セット214は、通常、キーボード、キーパッド、タッチ・スクリーンまたは何らかの他の適切な入力デバイス、あるいはその組合せなどのデバイスを含む。外部デバイス・セット214は、例えば、サム・ドライブ、ポータブル光または磁気ディスク、およびメモリカード等の、ポータブル・コンピュータ可読記憶媒体も含むことができる。本発明の実施形態を実施するのに用いられるソフトウェアおよびデータ、例えばプログラム300は、そのようなポータブル・コンピュータ可読記憶媒体上に記憶することができる。これらの実施形態において、関連ソフトウェアは、全体的にまたは部分的に、I/Oインタフェース・セット206を介して持続性記憶装置210にロードされてもよい(またはロードされなくてもよい)。また、I/Oインタフェース・セット206は、ディスプレイ・デバイス212と接続してデータ通信する。
ディスプレイ・デバイス212は、データをユーザに表示するメカニズムを提供し、例えば、コンピュータ・モニターまたはスマート・フォン表示スクリーンとすることができる。
本明細書に記載のプログラムは、本発明の特定の実施形態において実施される用途に基づいて識別される。しかしながら、本明細書における任意の特定のプログラムの命名は、単に便宜上用いられるものであるため、本発明は、そのような命名によって識別されるかまたは暗に意味されるかあるいはその両方である任意の特定の用途においてのみ用いられるように限定されるべきでない。
本発明の様々な実施形態の説明は、例示の目的で提示されたが、網羅的であることも、開示された実施形態に限定されることも意図したものではない。説明される実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者に明らかとなるであろう。本明細書において用いられる用語は、実施形態の原理、市場に見られる技術を上回る実際の用途もしくは技術的改善を最も良好に説明するように、または他の当業者が本明細書に開示された実施形態を理解することを可能にするように選択された。
II.例示的な実施形態
図2は、本発明の好ましい実施形態による方法を示すフローチャート250を示す。図3は、フローチャート250の方法動作の少なくともいくつかを実行するためのプログラム300を示す。(方法動作ブロックについて)図2、(ソフトウェアブロックについて)図3、および(データ・ブロックについて)図4を詳細に参照して、この方法および関連ソフトウェアを、以下の段落にわたって論考する。
処理は、動作S255において開始する。動作S255において、制御プログラム300は、RAIDディスク・ドライブ214のセットにわたってデータ・ブロックのセットを複数のストライプに記憶する(図1を参照)。この実施形態において、RAIDディスク・ドライブのセットを含む3つのディスク・ドライブにわたる3つのデータ・ストライプが存在する(図4を参照)。各ディスク・ドライブの各データ・ストライプは、データを記憶するためのブロックの6つのアドレスを含み、各アドレスはファイルのための1つのデータ・ブロックを含むことができる。すなわち、データ・ブロックは、単一のファイルに関連付けられたデータのみを含むが、単一のファイルは、通例、2つ以上のデータ・ブロックを有する。例えば、図4において、第1のファイル(F1)は、以下のように、(i)F1B1、(ii)F1B2および(iii)F1B3の3つのデータ・ブロックを含む。図4は、(i)RAIDディスク・ドライブのセット214と、(ii)ディスク・ドライブA352(a)と、(iii)(a)F1B1、(b)F1B2、(c)F2B1、(d)F2B2、(e)F2B3、および(f)F2B4を有する第1のストライプ354aと、(iv)ファイル・ブロックを有しない第2のストライプ356aと、(v)(a)F1B3、(b)F4B2、および(c)F4B1を有する第3のストライプ358aと、(vi)ディスク・ドライブB352bと、(vii)(a)F2B5、(b)F3B1、および(c)F4B4を有する第1のストライプ354bと、(viii)(a)F8B1、(b)F3B2、(c)F7B1、(d)F7B2、および(e)F7B3を有する第2のストライプ356bと、(ix)(a)F5B1、(b)F6B2、(c)F5B3、(d)F6B3、(e)F6B2、および(f)F6B1を有する第3のストライプ358bと、(x)ディスク・ドライブC352cと、(xi)(a)F2B6、(b)F4B3、および(c)F8B3を有する第1のストライプ354cと、(xii)(a)F3B3および(b)F2B7を有する第2のストライプ356cと、(xiii)F7B4を有する第3のストライプ358cとを含む。
この実施形態において、ブロックは、1バイトのメモリを含み、ここで、1バイトは8ビットとして定義される。各ファイルは、3つのディスク・ドライブの3つのストライプのブロックにわたって書き込むことができる複数のブロックを含む。例えば、図4に示すこの実施形態では、ファイル2は、(i)ディスク・ドライブA352a(F2B1、F2B2、F2B3、F2B4)の第1のストライプ354aに書き込まれた4つのブロックと、(ii)ディスク・ドライブB352b(F2B5)の第1のストライプ354bに書き込まれた1つのブロックと、(iii)ディスク・ドライブC352c(F2B6)の第1のストライプ354cに書き込まれた1つのブロックと、(iv)ディスク・ドライブC(F2B7)の第2のストライプ356cに書き込まれた1つのブロックとを有する。代替的に、RAIDディスク・ドライブのセットは、RAIDアレイに含まれる最大ディスク・ドライブ数に対する制限なしで、僅か2つのディスク・ドライブを含んでもよい。更なる代替形態として、RAIDディスク・ドライブのセットのディスク・ドライブにおけるストライプ数は、僅か1つとすることができ、最大ストライプ数は、ディスク・ドライブのストライプ・バイト配分およびストレージ容量によって決まる。例えば、ディスク・ドライブA、BおよびCが全て1メガバイト(100万バイト)の記憶容量を有し、各ストライプが1キロバイト(1000バイト)のストレージを配分される場合、各ディスク・ドライブは、最大で1000個のストライプを収容することができる。例示の目的で、図4に示すディスク・ドライブは、各々、18バイトのストレージ容量、および6バイトのストライプ配分を有するが、他のストレージ容量およびストライプ配分が可能である。更なる代替形態として、ブロックは、2バイト以上を含むように定義されてもよく、またはコンピュータ可読ストレージ容量を識別するための異なるユニットおよびラベルを用いてもよい。
処理は動作S260に進む。動作S260において、図3の優先値割り当てモジュール(「mod」)302が、マシン・ロジック規則のセット304を適用して、ブロックのセットにおける各ブロックの相対的優先度レーティングを決定することによって、ブロックのセットの各ブロックに相対的優先度値を割り当てる。この実施形態において、ブロックのセットの各ブロックへの割り当てに利用可能な整数1〜5の5つの異なる相対的優先度レーティングが存在し、1は最も重要であり、5は最も重要でない。
この実施形態において、マシン・ロジック規則のセット304は、以下の要素、すなわち、(i)ブロック・サイズ、(ii)ブロック・レベルにおける個々のブロックの最近の読出し頻度、(iii)ブロックが属するファイルの最近の読出し頻度、(iv)ブロックが属するファイルが属するファイル一式の読出し頻度、(v)ブロック・レベルにおける個々のブロックの履歴読出し総数、(vi)読出し頻度の変化率(読出し傾向とも呼ばれる)、(vii)ブロックのデータ保護レベル、(viii)重複排除されたブロックの参照数、(ix)ファイル、ファイル一式またはブロックの優先レベルのマニュアル決定(例えば、人間のシステム管理者による)、(x)ブロックへの様々なアクセスタイミング(例えば、非常にセキュアな動作中に行うアクセス)、(xi)ブロックの暗号化ステータス、(xii)様々なブロック、ファイル、またはファイル一式、あるいはその組合せへのアクセス許可を有するもののアイデンティティ、(xiii)様々なブロック、ファイル、またはファイル一式、あるいはその組合せの所有者のアイデンティティ、(xiv)ブロックが属するファイルのファイルタイプ、(xv)ブロックの経過時間(すなわち、ブロックが最初に作成されてからの時間)、および(xvi)ブロックが属するファイルのファイル名、に基づいて優先度レーティングを割り当てる。
以下のサブセクションにおいて更に説明されるように、k平均クラスタリング・アルゴリズムのユークリッド距離は、動作S260を行う際に用いることができる。以下のサブセクションは、重心の属性の分析等の優先度値を割り当てる際に用いることができ、各重心の相対的優先度をランク付けする他の技法についても論じる。
処理は動作S265に進み、動作S265において、図3の故障条件mod312が、図4のRAIDディスク・ドライブのセット214の1つのディスク・ドライブのドライブ故障条件を判断する。ドライブ故障条件は、物理的または論理的のいずれかであり得る。物理的ドライブ故障条件は、ディスクをスピンさせ、ドライブ・ヘッドを動かすモータ等の可動部の機械的故障、ドライブ・ヘッドまたはディスクの位置合わせ不良、およびディスクまたはドライブ・ヘッドの磁気特性に対する損傷または劣化を含む。論理ドライブ故障条件は、欠落するかまたは不適切に変更されたドライブ・レジストリからのファイル・システムの破損を含む。故障条件mod312は、図1のRAIDディスク・ドライブのセット214における各ディスク・ドライブからのログを監視することによって、これらの故障条件のうちの1つまたは複数を検出する。この例示的な実施形態において、故障条件mod312は、図4のRAIDディスク・ドライブのセット214のディスク・ドライブA352aのログ内の故障したモータの物理的エラーを読み取る。代替形態として、故障条件mod312は、自己監視、分析および報告技術(S.M.A.R.T.)監視システムを監視し、所定の閾値を超えるS.M.A.R.T.属性が検出されるときに、ドライブ故障を検出する。更なる代替形態として、S.M.A.R.T.監視システムからの閾値超過条件報告において報告される推定故障日付の前の所定の日付に故障条件が検出される。更なる代替形態として、故障条件mod312は、RAIDディスク・ドライブのセットの各ディスク・ドライブにおいて周期的自己試験を開始し、自己試験の結果に基づいてドライブ故障条件を判断する。
ほとんどのRAID故障はドライブ単位で生じる。上記の段落で論考した故障例に対する代替的な例として、ディスク・ドライブB352bが、突然かつ破滅的に電力サージを受け、故障すると仮定する。図4に示すように、このドライブは、故障前にそのドライブにわたってストライピングされた3つのストライプ部分354、356、358におけるファイルF2、F3、F4、F5、F6、F7およびF8からのデータを有する。この例において、チェックサム・データ・ストア308のパリティ・データに基づいたデータのリビルドが、別のディスク・ドライブが故障する前に完了する場合、ディスク・ドライブB352bの全てのデータを、フレッシュな新規のディスク・ドライブ(図示せず)上にリビルドすることができ、全てのファイルF2、F3、F4、F5、F6、F7およびF8のデータを完全に復元することができる。しかしながら、理解されるように、方法250が進行する際、この実施形態の優先度値は、ディスク・ドライブB352bからのデータがリビルドされている間、およびこれらの全てのファイルが完全に復元される前に、別のドライブが故障する場合に潜在的に重要である。より具体的には、優先度値は、ブロック、ファイル、またはファイル一式、あるいはその組合せがリビルドされる時間順序を決定するのに役立つ。このようにして、別のドライブがリビルド中に「ダウン」する場合、(i)残りの機能しているドライブのデータと、(ii)チェックサム・データ・ストア308のパリティ・データとを用いることによって、比較的重要なブロック/ファイル/ファイル一式が、更なるドライブ故障が生じ、ディスク・ドライブ352bの損失データが復元不可能になる前に復元される尤度を増大させる。
処理は動作S270に進み、動作S270において、図3の再構成mod314が、優先度値データ・ストア310から、図4のRAIDディスク・ドライブのセット214の故障したディスク・ドライブA352a上の全てのファイルのための優先度値を取り出す。この例示的な実施形態において、図4のRAIDディスク・ドライブのセット214の3つのディスク・ドライブ(ディスク・ドライブA352a、ディスク・ドライブB352bおよびディスク・ドライブC352c)の3つのストライプ(354a/b/c〜358a/b/c)のメモリに記憶された8つのファイルが存在する。図3の優先度値割り当てmod302によって、8つのファイルの各々が優先度値を割り当てられている。再構成modは、ドライブAが故障条件を有すると判断すると、図3のチェックサム・データ・ストア308を検査して、いずれのファイルがドライブA上のストライプに書き込まれたデータ・ブロックを有していたかを判断する。この例示的な実施形態において、再構成modは、チェックサム・データ・ストアから、ドライブAがファイル1(F1)、ファイル2(F2)およびファイル4(F4)からのブロックを含んでいたと判断し、次に、図3の優先度値データ・ストア310からファイル1、ファイル2およびファイル4の優先度値を取り出す。この例では、優先度値は、それぞれ、2、1および3である。
処理は動作S275に進み、S275において、図3の再構成mod314の順序付けサブmod316は、故障したディスク・ドライブ上のデータの優先度値に基づくデータ優先度順で故障したディスク・ドライブのデータをリビルドする。この例示的な実施形態では、順序付けサブmod316は、ファイル2が故障したディスク・ドライブA上に存在するいかなる他のファイルよりも高い相対的優先度値を有することを検出すると、チェックサム・データ・ストア308に記憶されたチェックサム・データを用いて、スペア・ディスク・ドライブ上に、まず、この例では故障したディスク・ドライブAの第1のストライプ354a上のブロック1〜4を含む、故障したディスク・ドライブA上に存在するファイル2のブロックをリビルドする。順序付けサブmod316が、故障したディスク・ドライブA上に存在するファイル2のブロックの、スペア・ディスク・ドライブ上へのリビルドを完了した後、次に順序付けサブmod316は、2つの残りのファイル(ファイル1およびファイル4)のうち、ファイル1が故障したディスク・ドライブA上に存在するいかなる他の残りのファイルよりも高い相対的優先度値を有すると判断し、第1のストライプ354aからブロック1および2をリビルドし、第3のストライプ358aからブロック3をリビルドする。次に、ファイル4のみが残っている順序付けサブmodは、第3のストライプ358aからのブロック1および2(F4B1およびF4B2)を含む、故障したディスク・ドライブA上に存在していたファイル4の全てのブロックをリビルドする。代替形態として、完全なデータ・バックアップ、リモートもしくはローカル、または他のバックアップ復元データ源等の、他のタイプのバックアップ・データを用いて、故障したディスク・ドライブのデータを復元してもよい。
処理は動作S280に進み、S280において、優先度値割り当てmod302の機械学習サブmod306は、優先度値を特定するためのマシン・ロジックを修正する。この例示的な実施形態では、図3の制御プログラム300の優先度値割り当てmod302の機械学習サブmod306は、マシン・ロジック規則のセット304によって8つのファイルに割り当てられた優先度値に精度の改善余地があるか否かを分析する。この例示的な実施形態では、機械学習サブmodは、ファイル3が、ファイル4と優先度値分類3を共有し、これにより、ファイル1よりも600%高い頻度で読み出されているにもかかわらず、ファイル1よりも低い優先度値を有するというファイル3の準最適な結果がもたらされたため、1分ごとの読出し数カテゴリの値に更なる重みが与えられるべきであると判断する。また、機械学習サブmodは、データ保護のための0値を有するファイルが、データ保護のための1値を有するファイルと優先度値を共有することができないという規則を生成する。これは、未来のディスク・ドライブの故障時に優先度値の割り当てを更に最適化する。
III.更なる解説または実施形態あるいはその両方
本発明のいくつかの実施形態は、現時点の最新技術に関する改善について、以下の事実、潜在的問題、または潜在的分野、あるいはその組合せを認識している。すなわち、(i)コピー・バック・プロセスが別の故障が生じる前にドライブ・コピーを完了することができず、RAIDアレイのスペアが使い果たされたとき、技術設計により、潜在的に、データの損失または関連する経済的損失、あるいはその両方が生じる、(ii)データがストライピングされているため、再構成プロセスが故障の前にドライブの30%をリビルドすることができたとしても、コピーがリビルドされたファイルを有することが保証されるのではなく、いくつかのリビルドされたファイル片が存在する一方で、他のいくつかのオリジナルファイル片が依然として欠落している場合があることのみが保証される、(iii)加えて、コピー・バック・プロセスは、ユーザ・データをコピーしたが、様々なファイルの様々なファイル片をどのように合わせるかを記載するメタデータを有していない場合がある、または(iv)コピー・バック・プロセスが、部分的リビルド(例えば、上述した30%のリビルド)の全ての片を、それと合わせるメタデータと共に識別したとしても、これはランダムOS(オペレーティング・システム)バッチ・ファイルである可能性があり、一方で重要なデータ・ファイルは部分的リビルドを通じて永久に失われる、あるいはその組合せである。
本発明のいくつかの実施形態は、以下の特徴、特性または利点、あるいはその組合せのうちの1つまたは複数を含むことができる。(i)機械学習を、RAIDアレイ技術と併せて利用して、リビルド中にRAIDアレイに記憶されるデータに重み値が割り当てられることを可能にする方法、(ii)アレイにわたるデータのそれぞれの優先度値に基づいてRAIDアレイに記憶されたデータをカテゴリ化すること、(iii)リビルド中に、具体的にいずれのデータが全体としてアレイおよびユーザの双方により関連しているかをアレイに指示し、関連データに対応する優先度カテゴリを有するデータがコピープロセスにおいてより早期にコピーされる(例えば、最初にコピーされる)ことを確実にすること、(iv)アレイにわたる更なるディスク故障が生じた場合、最も重要なデータが依然として保持されている尤度が増大すること、(v)RAIDアレイの使用パターンを追跡すること、(vi)使用パターンの追跡は、最後の読出しまたは書き込みの時点にのみ依拠するのではなく、使用の一貫性(例えば、年に約1回のみ用いられるデータは、1の使用の一貫性のカテゴリであり得る)にも依拠する。
本発明のいくつかの実施形態は、以下の特徴、特性または利点、あるいはその組合せのうちの1つまたは複数を含むことができる。(i)ユーザ・データに関連するアレイ・メタデータが、データ・タイプ間で直接の関連付けを可能にするように追跡される、(ii)ドライブおよび現在進行中のリビルドに関連するアレイ・ヘルスを一貫して監視する、(iii)数値的に量子化された重みシステムにおいてユーザ・データ「価値」を確立する(例えば、1〜5の取り得る所定の重みであり、1は最も価値が高く、5は最も価値が低い)、(iv)データ・タイプの認識により、優先度値が、全体的にまたは部分的にタイプ・データに基づいて割り当てられることが可能になる(例えば、ピクチャは通常、より小さいが、大きな価値を保持する可能性があり、このため、それらの利用頻度を考慮すると、RAIDアレイに記憶される際にそれらの対応データについて3の優先度値のみが保証される場合があるが、いくつかの実施形態では、このデータは、1の優先度値まで高まることになる)、(v)データ目録作成は、優先度値を適切に調整しながらアレイにわたって一貫して行われる、(vi)小さなデータは大きなデータに対し重み付けされる(例えば、ユーザの関心にとって、1000個の小さなファイルと3つの大きなファイルとのどちらを迅速にコピーする方が良いかを判断するのに役立つため)、(vii)ドライブ故障の場合、RAIDが通常、現時点において従来のRAIDシステムにおいて行うように設計されているように、故障したドライブに記憶されたデータのスペアをリビルドする、(viii)「価値」のシステム割り当てに基づいて、このリビルドは、比較的高い優先度値でフラグ付けされたデータのみを書き込むことから開始する(例えば、開始時に、1の優先度値を有するデータのみをリビルドする)、(ix)リビルド・プロセスの開始時に、ユーザ・データおよび比較的高い優先度データのメタデータの双方を転送し、リビルドの完了前に故障する場合のデータの使用可能性を可能にする、または(x)リビルド・プロセスは、リビルドが完了し、全てのデータがスペアにコピー・バックされ、アレイが再び正常状態になるまで、これらの価値に取り組む、あるいはその組合せである。
ここで、優先度値の割り当ての例が論考される。この例において、(i)アルゴリズムがk平均である(これは、クラスタまたはグループに対応する各要素にラベルを割り当てることによって、要素の特性の組合せに基づいて要素のグループを生成するクラスタリングのためのアルゴリズムである)、(ii)距離はユークリッドであり(別の一般的な距離関数はマンハッタンである)、ここで、異なる距離関数は、クラスタが形成される方式、およびそれらのサイズに影響を及ぼし、これは特定のタイプのデータ・パターンには有利であり得る一方、他のタイプにとっては不利であり得る、(iii)観測変数は、X(n)=(x(1),x(2),x(3),x(4),x(5))であり、ここで、x(1)はブロック・サイズであり、x(2)は時間ユニットあたりの読出し数で表される読出し頻度であり、x(3)は次の読出しまでの推定時間ユニットを有する読出し傾向であり、x(4)はデータ保護含有であり、x(5)は、重複排除ブロックの参照数のために用いられる。すなわち、重複排除環境におけるブロックへの参照数である。この例では、重複排除ブロックは、ブロックを1回のみ記憶することによって、重複情報を削除するために用いられ、同じデータ・パターンを再び記憶しようとするとき、この元のブロックへのポインタを単に1増大させる。この例において、x(1)、x(2)、x(3)、x(4)、x(5)は、nと呼ばれるデータ・ブロック(またはデータ・ブロックのセット)のための優先度値X(n)を特定するようにマシン・ロジック規則下で組み合わされた数値量である。検討される多くの更なる要素(および更には既に述べたものの組合せ)が存在し得る。本発明のいくつかの実施形態は、これらの要素を考慮に入れ(しかし、k平均アルゴリズムはこれらのみに限定されない)、優先度値がどのように特定されるかを調整および変更する柔軟性を有する機械学習アルゴリズムを提供する。更に、ファイル名は、ファイルが最終的に異なる複数のクラスタに入ることを防ぐための重要な要素である。
本発明のいくつかの実施形態は、(i)ブロック・サイズ、(ii)ブロック・レベルにおける個々のブロックの最近の読出し頻度、(iii)ブロックが属するファイルの最近の読出し頻度、(iv)ブロックが属するファイルが属するファイル一式の読出し頻度、(v)ブロック・レベルにおける個々のブロックの履歴読出し総数、(vi)読出し頻度の変化率(読出し傾向とも呼ばれる)、(vii)ブロックのデータ保護レベル、(viii)重複排除されたブロックの参照数、(ix)ファイル、ファイル一式またはブロックの優先レベルのマニュアル決定(例えば、人間のシステム管理者による)、(x)ブロックへの様々なアクセスタイミング(例えば、非常にセキュアな動作中に行うアクセス)、(xi)ブロックの暗号化ステータス、(xii)様々なブロック、ファイル、またはファイル一式、あるいはその組合せへのアクセス許可を有するもののアイデンティティ、(xiii)様々なブロック、ファイル、またはファイル一式、あるいはその組合せの所有者のアイデンティティ、(xiv)ブロックが属するファイルのファイルタイプ、(xv)ブロックの経過時間(すなわち、ブロックが最初に作成されてからの時間)、および(xvi)ブロックが属するファイルのファイル名、を含む、優先度値を割り当てる際に検討することができる要素のより大きなリストを検討することができる。
いくつかの実施形態は、RAIDアレイにおける故障したハードディスク・ドライブを、それぞれ図5〜図9における略図400a〜400eに示されるようなスペア・ハードディスク・ドライブにリビルドする。図5〜図9は、5つの連続する時点(図5におけるT0から図9におけるT4)における、RAIDアレイにおける故障したハードディスク・ドライブのスペア・ディスク・ドライブ400へのリビルドを示す図である。略図400a〜400eは、ハードディスク・ドライブ0(HDD0)402a〜402e(参照符号は、異なる連続時点を示す)、ハードディスク・ドライブ1(HDD1)404a〜404e、ハードディスク・ドライブ(HDD2)406a〜406e、パリティ・ドライブ408a〜408e、およびスペア・ドライブ410a〜410eを含む。
T0において、HDD0 402a、HDD1 404aおよびHDD2 406aは、各々、相対的重み値(代替的に、相対的優先度レベルと呼ばれる)によって1〜5をランク付けされたデータのブロックのクラスタを記憶する。この例において、クラスタは、異なるサイズとすることができる。T1において、HDD1 404bは故障し、HDD1 404bからリビルドされたデータを受信するためにスペア410bが利用可能となる。T2において、HDD1 404cからの第1のランクを付けられたクラスタがスペア410c上にリビルドされる。T3において、HDD1 404dからの第2のランクを付けられたクラスタがスペア410d上にリビルドされる。T4において、HDD1 404eからの残りのデータ・クラスタがスペア410e上にリビルドされ(第3〜第5のランクを付けられたクラスタをリビルドする個々のステップは示されていない)、リビルド動作が完了する。単一のクラスタは、異なる複数のHDD内に存在するブロックを含むことができる。ユーザは、RAIDのタイプ(連続vsストライピング)を選択することによって、または他の技法を用いることによってこれを制御することができる。本発明のいくつかの実施形態は、クラスタを形成するときに考慮するためのファイル名を要素のセットに追加することによって、所与のファイルの異なるフラグメントを異なるクラスタに割り当てることを回避する。
スクリーンショット400aを生成する本発明の実施形態において、優先度順に1〜5のランクを付けられた5つのデータ・クラスタが、3つのハードディスク・ドライブ(HDD0 402a、HDD1 404a、HDD2 406a)にわたってフラグメント化される。ここで、クラスタは、各ハードディスク・ドライブ上に異なる構成で記憶される。これらの実施形態において、ハードディスク・ドライブ上のデータ・クラスタの位置は、ドライブ故障の場合には無関係である。なぜなら、図8のスクリーンショット400dに示すように、リビルドは、重要なデータを、より重要でないデータの前にリビルドすることを優先するためである。これらの実施形態において、HDD1のデータ・クラスタ2は、HDD1上でデータ・クラスタ1、5および4の後ろに配置されているにもかかわらず、スペア上で2番目にリビルドされるデータ・クラスタである。
本発明のいくつかの実施形態は、RAIDアレイ・アーキテクチャ技術において用いられ、アレイにわたるデータの割り当てられた値に基づくカテゴリ化によって、優先度値がリビルド中に(ブロックのクラスタに)割り当てられることを可能にするように、機械学習をRAIDアレイと併せて利用することによって、ファイル・レベルにおけるリビルドを管理および優先付けする。これらの実施形態において、リビルド中に優先度値を用いて、いずれのデータがRAIDアレイおよびユーザの双方により関連しているかを特定し、より高い優先度値に対応するデータが、相対的に低い優先度値に対応するデータの前にまずコピーされることを確実にする。
本発明のいくつかの実施形態は、以下の特徴、特性または利点、あるいはその組合せのうちの1つまたは複数を含むことができる。(i)損傷したRAIDアレイのリビルド・プロセスを支援し、優先付けするための分類を作成する、(ii)ボリューム単位で優先度値を割り当てるのではなく、優先度割り当て目的でデータのブロック(例えば単一のファイルに対応するブロック)をグループ化する、(iii)同じボリューム内に異なる優先度値のデータが存在する可能性がある(しかし、本発明は、好ましくは、ボリュームのより低い優先度の部分の前に、より高い優先度の部分がコピーされることを可能にする)、(iv)潜在的に存在し得る異なるデータ・タイプに適応するクラスタリング・アルゴリズムを用いて、優先度値をブロック(あるいはブロックのセット)に割り当てる、(v)絶えず監視される異なる特徴に基づいて、データ・ブロックを分析し、グループ(クラスタ)を作成する、(vi)これらのラベル(グループ)を用いて、潜在的な後続の故障により、修復が及ばずRAIDアレイに損傷を与えることになることを防ぐために、最も重要なデータが最初にリビルドされるようにする、(vii)データ自体の読出し/書き込みアクティビティ、およびデータがアクセスされる頻度を動的に用い、次に、重大なデータを最初にリビルドするようにデータを自動的に分類する、(viii)リビルドを優先付けする方法を決定する、より複雑なアルゴリズム、(ix)書き込みアクティビティまたはアクセスの頻度あるいはその両方を用いて、優先度値をブロックのセットに割り当てる目的でデータの重要度を特定する、(x)適応可能なアルゴリズムを用いてデータをカテゴリ化し、履歴使用に基づいてデータを分類および優先付けする、(xi)相対的に最も高い優先度のデータを、後続の故障の場合に保持しようとして、このデータを最初にリビルドする、(xii)ホストが行っていることに対し、何を最初にリビルドするかに焦点を当てる、または(xiii)既に故障したドライブを取得し、何をどの順序でリビルドするかを決定する、あるいはその組合せ。
IV.定義
本発明:「本発明」という用語によって記述される主題が出願時の請求項または特許審査手続き後に最終的に交付することができる請求項のいずれかの範囲に含まれることの絶対的な指標として解釈すべきものではない。「本発明」という用語は、読者が、本明細書における開示が潜在的に新規であると考えられる一般的な心証を得ることを助けるために使用されるものであるが、この理解は、「本発明(現在の発明)」という用語の使用によって示されるように、仮の、暫定的なものであり、特許審査の過程で、関連情報が現れたときおよび請求項が潜在的に補正されたときに、変更を受ける。
実施形態:上記「本発明」の定義を参照のこと。同様の注意が用語「実施形態」にも当てはまる。
〜、または〜、あるいはその両方(組合せ):包含的論理和;例えば、「A、B、またはC、あるいはその組合せ」は、AまたはBまたはCのうちの少なくとも1つが真であり該当することを意味する。
含む:別段の明確な指示がない限り、「〜を含むが必ずしもこれ(ら)に限定されない」を意味する。
モジュール/サブモジュール:ある種類の機能を行うように動作可能に働くハードウェア、ファームウェア、またはソフトウェア、あるいはその組合せの任意の組であり、(i)単一の局所的近傍にある、(ii)広域に分散している、(iii)ソフトウェアコードのより大きな部分内の単一の近傍にある、(iv)ソフトウェアコードの単一部分内に位置する、(v)単一の記憶装置、メモリまたは媒体内に位置する、(vi)機械的に接続されている、(vii)電気的に接続されている、または(viii)データ通信接続されている、あるいはその組合せのいずれかを問わない。
コンピュータ:顕著なデータ処理能力または機械可読命令読み取り能力あるいはその両方を有する任意のデバイスであって、デスクトップ・コンピュータ、メインフレームコンピュータ、ラップトップ・コンピュータ、フィールドプログラム可能ゲートアレイ(FPGA)ベース・デバイス、スマート・フォン、携帯情報端末(PDA)、身体装着式または挿入式コンピュータ、埋込みデバイス型コンピュータ、特定用途向け集積回路(ASIC)ベース・デバイスを含むがこれらに限定されない。

Claims (21)

  1. 複数の記憶装置を含む、ストライピングされた独立デバイス冗長アレイ(RAID)ストレージ・システムに複数のデータ・ブロックを記憶することと、
    前記複数のデータ・ブロックのためのパリティ・データを記憶することと、
    前記複数のデータ・ブロックの所与のデータ・ブロックの各々について、優先度データ値を前記所与のデータ・ブロックに割り当てることと、
    前記複数の記憶装置のうちの第1の記憶装置の故障に応答して、前記第1の記憶装置以外の前記複数の記憶装置に記憶された前記パリティ・データおよび前記データ・ブロックのデータを用いて、前記第1の記憶装置に記憶されていたデータ・ブロックの優先度値によって決定された順序で、前記第1の記憶装置に記憶されていた前記データ・ブロックをリビルドすることと、
    を含む、方法。
  2. マシン・ロジックによって、優先度データ値を割り当てるときに検討される要素のセットに割り当てられた相対的重みと、前記複数のデータ・ブロックの各データ・ブロックにどの優先度データ値が割り当てられたかとの再検討に少なくとも部分的に基づいて、前記優先度データ値を割り当てるためのアルゴリズムを更新することを更に含む、請求項1に記載の方法。
  3. 前記優先度データ値を割り当てることは、ブロック・サイズ、読出し頻度、読出し傾向、データ保護含有、および重複排除されたブロックに対する参照数のうちの少なくとも1つに、少なくとも部分的に基づく、請求項1に記載の方法。
  4. 前記優先度データ値を割り当てることは、k平均クラスタリング・アルゴリズムを用いて、前記複数のデータ・ブロックの各データ・ブロックをクラスタリングすることを含む、請求項1に記載の方法。
  5. 前記リビルドすることは、前記データ・ブロックを第2の記憶装置上にリビルドする、請求項1に記載の方法。
  6. 前記第1の記憶装置の前記データ・ブロックに関連付けられた前記パリティ・データを、前記第2の記憶装置の前記データ・ブロックに再マッピングすることを更に含む、請求項5に記載の方法。
  7. 前記所与のブロックのための優先度データ値を割り当てることは、前記所与のブロックに関連付けられたメタデータを含むデータ・ブロックにも同一の優先度値を割り当てる、請求項1に記載の方法。
  8. コンピュータ・プログラム製品であって、
    機械可読記憶媒体と、
    前記機械可読記憶媒体に記憶されたコンピュータ・コードであって、前記コンピュータ・コードは、プロセッサ・セットに以下を含む動作、
    複数の記憶装置を含む、ストライピングされた独立デバイス冗長アレイ(RAID)ストレージ・システムに複数のデータ・ブロックを記憶することと、
    前記複数のデータ・ブロックのためのパリティ・データを記憶することと、
    前記複数のデータ・ブロックの所与のデータ・ブロックの各々について、優先度データ値を前記所与のデータ・ブロックに割り当てることと、
    前記複数の記憶装置のうちの第1の記憶装置の故障に応答して、前記第1の記憶装置以外の前記複数の記憶装置に記憶された前記パリティ・データおよび前記データ・ブロックのデータを用いて、前記第1の記憶装置に記憶されていたデータ・ブロックの優先度値によって決定された順序で、前記第1の記憶装置に記憶されていた前記データ・ブロックをリビルドすることと、
    を実行させるための命令を含む、コンピュータ・コードと、
    を備える、コンピュータ・プログラム製品。
  9. 前記コンピュータ・コードは、前記プロセッサ・セットに、以下の動作、
    マシン・ロジックによって、優先度データ値を割り当てるときに検討される要素のセットに割り当てられた相対的重みと、前記複数のデータ・ブロックの各データ・ブロックにどの優先度データ値が割り当てられたかとの再検討に少なくとも部分的に基づいて、前記優先度データ値を割り当てるためのアルゴリズムを更新することを実行させるための命令を更に含む、請求項8に記載のコンピュータ・プログラム製品。
  10. 前記優先度データ値を割り当てることは、、ブロック・サイズ、読出し頻度、読出し傾向、データ保護含有、および重複排除されたブロックに対する参照数のうちの少なくとも1つに、少なくとも部分的に基づく、請求項8に記載のコンピュータ・プログラム製品。
  11. 前記優先度データ値を割り当てることは、k平均クラスタリング・アルゴリズムを用いて、前記複数のデータ・ブロックの各データ・ブロックをクラスタリングすることを含む、請求項8に記載のコンピュータ・プログラム製品。
  12. 前記リビルドすることは、前記データ・ブロックを第2の記憶装置上にリビルドする、請求項8に記載のコンピュータ・プログラム製品。
  13. 前記コンピュータ・コードは、前記プロセッサ・セットに、以下の動作、 前記第1の記憶装置の前記データ・ブロックに関連付けられた前記パリティ・データを、前記第2の記憶装置の前記データ・ブロックに再マッピングすることを実行させるための命令を更に含む、請求項12に記載のコンピュータ・プログラム製品。
  14. 前記所与のブロックのための優先度データ値を割り当てることは、前記所与のブロックに関連付けられたメタデータを含むデータ・ブロックにも同一の優先度値を割り当てる、請求項8に記載のコンピュータ・プログラム製品。
  15. コンピュータ・システムであって、
    プロセッサ・セットと、
    機械可読記憶装置と、
    前記機械可読記憶装置に記憶されたコンピュータ・コードであって、前記コンピュータ・コードは、プロセッサ・セットに以下を含む動作、
    複数の記憶装置を含む、ストライピングされた独立デバイス冗長アレイ(RAID)ストレージ・システムに複数のデータ・ブロックを記憶することと、
    前記複数のデータ・ブロックのためのパリティ・データを記憶することと、
    前記複数のデータ・ブロックの所与のデータ・ブロックの各々について、優先度データ値を前記所与のデータ・ブロックに割り当てることと、
    前記複数の記憶装置のうちの第1の記憶装置の故障に応答して、前記第1の記憶装置以外の前記複数の記憶装置に記憶された前記パリティ・データおよび前記データ・ブロックのデータを用いて、前記第1の記憶装置に記憶されていたデータ・ブロックの優先度値によって決定された順序で、前記第1の記憶装置に記憶されていた前記データ・ブロックをリビルドすることと、
    を実行させるための命令を含む、コンピュータ・コードと、
    を備える、コンピュータ・システム。
  16. 前記コンピュータ・コードは、前記プロセッサ・セットに、以下の動作、 マシン・ロジックによって、優先度データ値を割り当てるときに検討される要素のセットに割り当てられた相対的重みと、前記複数のデータ・ブロックの各データ・ブロックにどの優先度データ値が割り当てられたかとの再検討に少なくとも部分的に基づいて、前記優先度データ値を割り当てるためのアルゴリズムを更新することを実行させるための命令を更に含む、請求項15に記載のシステム。
  17. 前記優先度データ値を割り当てることは、ブロック・サイズ、読出し頻度、読出し傾向、データ保護含有、および重複排除されたブロックに対する参照数のうちの少なくとも1つに、少なくとも部分的に基づく、請求項15に記載のシステム。
  18. 前記優先度データ値を割り当てることは、k平均クラスタリング・アルゴリズムを用いて、前記複数のデータ・ブロックの各データ・ブロックをクラスタリングすることを含む、請求項15に記載のシステム。
  19. 前記リビルドすることは、前記データ・ブロックを第2の記憶装置上にリビルドする、請求項15に記載のシステム。
  20. 前記コンピュータ・コードは、前記プロセッサ・セットに、以下の動作、
    前記第1の記憶装置の前記データ・ブロックに関連付けられた前記パリティ・データを、前記第2の記憶装置の前記データ・ブロックに再マッピングすることを実行させるための命令を更に含む、請求項19に記載のシステム。
  21. 前記所与のブロックのための優先度データ値を割り当てることは、前記所与のブロックに関連付けられたメタデータを含むデータ・ブロックにも同一の優先度値を割り当てる、請求項15に記載のシステム。
JP2020522319A 2017-11-14 2018-11-07 Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム Active JP7233804B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/811,822 US10691543B2 (en) 2017-11-14 2017-11-14 Machine learning to enhance redundant array of independent disks rebuilds
US15/811,822 2017-11-14
PCT/IB2018/058741 WO2019097360A1 (en) 2017-11-14 2018-11-07 Machine learning to enhance redundant array of independent disks rebuilds

Publications (2)

Publication Number Publication Date
JP2021503115A true JP2021503115A (ja) 2021-02-04
JP7233804B2 JP7233804B2 (ja) 2023-03-07

Family

ID=66432224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020522319A Active JP7233804B2 (ja) 2017-11-14 2018-11-07 Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム

Country Status (6)

Country Link
US (1) US10691543B2 (ja)
JP (1) JP7233804B2 (ja)
CN (1) CN111344679B (ja)
DE (1) DE112018004637B4 (ja)
GB (1) GB2582505B (ja)
WO (1) WO2019097360A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691543B2 (en) 2017-11-14 2020-06-23 International Business Machines Corporation Machine learning to enhance redundant array of independent disks rebuilds
JP7405608B2 (ja) * 2019-12-26 2023-12-26 株式会社日立製作所 ストレージシステム
US11734121B2 (en) * 2020-03-10 2023-08-22 EMC IP Holding Company LLC Systems and methods to achieve effective streaming of data blocks in data backups
US11372543B2 (en) * 2020-04-10 2022-06-28 Western Digital Technologies, Inc. Zone-append command scheduling based on zone state
US11604698B2 (en) * 2020-12-02 2023-03-14 Code42 Software, Inc. Method and process for automatic determination of file/object value using meta-information
CN114721585A (zh) * 2021-01-06 2022-07-08 伊姆西Ip控股有限责任公司 存储管理方法、设备和计算机程序产品
US11762782B2 (en) * 2021-03-19 2023-09-19 Dell Products, L.P. Caching system and method for a workspace environment
CN113535086B (zh) * 2021-07-12 2023-07-25 中飞赛维智能科技股份有限公司 一种固态硬盘中重建的加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065625A (ja) * 2009-09-17 2011-03-31 Hitachi Ltd 大容量ディスクドライブの使用方法及び装置
JP2012079162A (ja) * 2010-10-04 2012-04-19 Fujitsu Ltd 管理プログラム、管理装置、および管理方法
US20140365819A1 (en) * 2013-06-05 2014-12-11 International Business Machines Corporation Rebuilding data of a storage system
JP2017059057A (ja) * 2015-09-17 2017-03-23 ヤフー株式会社 推定装置、推定方法及び推定プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301297A (en) 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
US7620843B2 (en) * 2005-03-02 2009-11-17 International Business Machines Corporation Rebuilding a storage system
US7305579B2 (en) * 2005-03-22 2007-12-04 Xiotech Corporation Method, apparatus and program storage device for providing intelligent rebuild order selection
US20090271659A1 (en) 2008-04-24 2009-10-29 Ulf Troppens Raid rebuild using file system and block list
US8006128B2 (en) * 2008-07-31 2011-08-23 Datadirect Networks, Inc. Prioritized rebuilding of a storage device
US7904749B2 (en) 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
US8726070B2 (en) 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US8751861B2 (en) 2012-02-08 2014-06-10 Lsi Corporation System and method for improved rebuild in RAID
US20140006369A1 (en) * 2012-06-28 2014-01-02 Sean Blanchflower Processing structured and unstructured data
US9135096B2 (en) 2012-12-06 2015-09-15 Compellent Technologies RAID surveyor
US20140215147A1 (en) 2013-01-25 2014-07-31 Hewlett-Packard Development Company, L.P. Raid storage rebuild processing
US20140281689A1 (en) 2013-03-15 2014-09-18 Teradata Corporation Method and system for rebuilding data following a disk failure within a raid storage system
US9292389B2 (en) * 2014-01-31 2016-03-22 Google Inc. Prioritizing data reconstruction in distributed storage systems
CN103823728B (zh) 2014-03-13 2015-11-18 深圳市迪菲特科技股份有限公司 一种独立冗余磁盘阵列智能重建的方法
US10452315B2 (en) * 2014-09-24 2019-10-22 Hewlett Packard Enterprise Development Lp Block priority information
US10691543B2 (en) 2017-11-14 2020-06-23 International Business Machines Corporation Machine learning to enhance redundant array of independent disks rebuilds

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065625A (ja) * 2009-09-17 2011-03-31 Hitachi Ltd 大容量ディスクドライブの使用方法及び装置
JP2012079162A (ja) * 2010-10-04 2012-04-19 Fujitsu Ltd 管理プログラム、管理装置、および管理方法
US20140365819A1 (en) * 2013-06-05 2014-12-11 International Business Machines Corporation Rebuilding data of a storage system
JP2017059057A (ja) * 2015-09-17 2017-03-23 ヤフー株式会社 推定装置、推定方法及び推定プログラム

Also Published As

Publication number Publication date
DE112018004637B4 (de) 2021-06-10
US10691543B2 (en) 2020-06-23
GB202008683D0 (en) 2020-07-22
DE112018004637T5 (de) 2020-06-04
JP7233804B2 (ja) 2023-03-07
CN111344679B (zh) 2023-07-11
GB2582505B (en) 2022-08-10
GB2582505A (en) 2020-09-23
CN111344679A (zh) 2020-06-26
WO2019097360A1 (en) 2019-05-23
US20190146875A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
JP7233804B2 (ja) Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム
US10127110B2 (en) Reallocating storage in a dispersed storage network
US10126988B1 (en) Assigning RAID extents and changing drive extent allocations within RAID extents when splitting a group of storage drives into partnership groups in a data storage system
US10664367B2 (en) Shared storage parity on RAID
US10365983B1 (en) Repairing raid systems at per-stripe granularity
US10146447B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
US8880801B1 (en) Techniques for reliability and availability assessment of data storage configurations
US11099953B2 (en) Automatic data healing using a storage controller
US8732411B1 (en) Data de-duplication for information storage systems
US10114716B2 (en) Virtual failure domains for storage systems
CN107870731B (zh) 独立盘冗余阵列系统的管理方法和电子设备
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
CN111104051B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN110413208B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US11422909B2 (en) Method, device, and storage medium for managing stripe in storage system
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
US10977130B2 (en) Method, apparatus and computer program product for managing raid storage in data storage systems
US11226746B2 (en) Automatic data healing by I/O
US11513712B2 (en) Method for storage management, device and computer program product
US11281535B2 (en) Method and system for performing a checkpoint zone operation for a spare persistent storage
US11301327B2 (en) Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11416357B2 (en) Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11119858B1 (en) Method and system for performing a proactive copy operation for a spare persistent storage
US11520488B2 (en) Method and apparatus for identifying a device missing from a consistency group
US10061524B2 (en) Wear-leveling of memory devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200619

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20200930

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230126

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: 20230207

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230220

R150 Certificate of patent or registration of utility model

Ref document number: 7233804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150