JP6302049B2 - ハードウェア故障に基づくデータの割り当て - Google Patents

ハードウェア故障に基づくデータの割り当て Download PDF

Info

Publication number
JP6302049B2
JP6302049B2 JP2016513985A JP2016513985A JP6302049B2 JP 6302049 B2 JP6302049 B2 JP 6302049B2 JP 2016513985 A JP2016513985 A JP 2016513985A JP 2016513985 A JP2016513985 A JP 2016513985A JP 6302049 B2 JP6302049 B2 JP 6302049B2
Authority
JP
Japan
Prior art keywords
data
data storage
physical
computer
storage device
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.)
Active
Application number
JP2016513985A
Other languages
English (en)
Other versions
JP2016521426A (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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2016521426A publication Critical patent/JP2016521426A/ja
Application granted granted Critical
Publication of JP6302049B2 publication Critical patent/JP6302049B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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
    • 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
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/02Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
    • G11B33/08Insulation or absorption of undesired vibrations or sounds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/04Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
    • G11B19/041Detection or prevention of read or write errors

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

(関連出願の相互参照)
本出願は、2013年5月15日にともに出願された、同時係属中の米国特許出願第13/895,237号及び同第13/895,205号に対する優先権を主張するものであり、これらの内容は、それらの全体が参照により本明細書に組み込まれる。本出願は、「REDUCING INTERFERENCE THROUGH CONTROLLED DATA ACCESS」と題され、2013年5月15日に出願された、米国特許出願第13/895,205号に関連した主題であり、この内容は、その全体が参照により本明細書に組み込まれる。
データ記憶システムは、それらのシステムを使用する組織の要求に対応するために進化してきており、また進化し続けている。例えば、多くの組織は、数ある理由の中でも、大容量のデータのデータアーカイビング、冗長性、及び記憶の目的のために、データ記憶システムを利用する。それらの多くの利点にかかわらず、最新のデータ記憶システムは、データ記憶システムプロバイダ及びそれらのシステムを利用する組織が負担する固有のリスクを抱えている。例えば、それを避ける最良の取り組みにかかわらず、データ記憶システムは、回転磁気媒体等の様々な可動部によって引き起こされるシステム内の振動から生じる過熱及び/または疲労損傷の影響を受けやすい可能性がある構成要素を含むことが多い。その結果として、データ記憶システム内に含まれるデータは、破損または損失の影響を受けやすい場合がある。データの適切な冗長記憶などによるこれらのリスクに適切に対処することは、データ記憶システムに依存する組織、及びサービスプロバイダにさらなるコストを提示する。
本開示に従う様々な実施形態は、図面を参照することにより記載される。
様々な実施形態が実践され得る環境の例示的な実施例を示す。 様々な実施形態が実践され得る環境の例示的な実施例を示す。 少なくとも一実施形態に従ってデータを記憶するためのプロセスの例示的な実施例を示す。 「単純ディスク束」ユニット(JBOD)などの複数の多重記憶デバイスユニットを含むデータ記憶システムラックの例示的な実施例を示す。 データ記憶ラック内に含まれ得るJBODなどの多重記憶デバイスユニットの例示的な実施例を示す。 データ記憶システムをホスティングし得る設備の例示的な実施例を示す。 少なくとも一実施形態に従ってデータオブジェクトを記憶するためのプロセスの例示的な実施例を示す。 少なくとも一実施形態に従ってデータ記憶システム内のハードウェア故障を追跡するためのプロセスの例示的な実施例を示す。 少なくとも一実施形態に従ってデータ記憶にデータオブジェクト断片を配置するためのプロセスの例示的な実施例を示す。 少なくとも一実施形態に従ってデータ記憶からデータオブジェクトを検索するためのプロセスの例示的な実施例を示す。 少なくとも一実施形態に従ってデータ記憶にデータオブジェクト断片を配置するためのプロセスの例示的な実施例を示す。 様々な実施形態が実践され得る環境の例示的な実施例を示す。
以下の説明では、様々な実施形態が記載される。説明のために、特定の構成及び詳細が実施形態の十分な理解を提供するために記載される。しかしながら、実施形態が特定の詳細を用いることなく実践され得ることも当業者に明らかであろう。さらに、周知の特徴は、記載される実施形態を分かりにくくしないために省略または簡略化され得る。
本明細書に記載及び提案された技術は、データ損失または破損のリスクを最小限にしながら、データを記憶し、それにアクセスすることに関する。一実施形態では、エンティティ(例えば、組織)は、サービスへの適切に構成されたアプリケーションプログラミングインターフェース(API)の呼び出しによるなどのサービスに連絡を取り、データオブジェクトのアーカイブまたはそのデータオブジェクトへのアクセスを要求する(例えば、データオブジェクトの検索)。一実施形態では、エンティティは、データ記憶サービスを運営するコンピューティングリソースサービスプロバイダの顧客である。要求を受信すると、サービスプロバイダは、顧客からデータオブジェクトを受信し、冗長符号化アルゴリズムを用いて、システムに記憶するためにオブジェクトを様々な断片に変換することができる。アルゴリズムは、例えば、データオブジェクトが、ごく少数の断片がオブジェクトを再コンパイルするのに必要とされるように、冗長断片に分割されるものであり得る。例となるアルゴリズムとしては、ビットの多重配列の真部分集合がビットの配列を再構築するのに好適であるように、消去コードを利用して、ビットの配列をビットの配列より集団的に大きいビットの多重配列に変換するものが挙げられる。
様々な実施形態では、データ記憶システムは、様々なネットワークラックを用いて促進される。これらのラックは、JBOD等の様々な多重記憶デバイスユニットを含み、このユニットは同様に、回転磁気媒体(例えば、プラッタ)、磁気テープ記憶デバイス、またはソリッドステートドライブ(SSD)を利用する記憶デバイスなどの様々な記憶デバイスからなり得る。これらの記憶デバイスは、動作環境による故障の影響を受けやすい場合がある。例えば、回転磁気媒体を利用する記憶デバイスの場合、各記憶デバイスは、極めて近接する他の記憶デバイスに影響を与え得る振動を生じさせる。この種の振動は、ヘッドクラッシュ(例えば、記憶デバイスのアーム上の読み取り/書き込みヘッドが回転プラッタと接触し、1つ以上のプラッタに物理的に損傷を与える)及びデータ損失につながり得る。記憶デバイスはまた、記憶デバイス自体の耐用年数を減少させ得る過熱を起こしやすい。サービスプロバイダは、データ記憶システム内の故障モードに関する情報を有することができ、この情報を使用して、損傷及びデータ損失のリスクを軽減することを試みることができる。これらの故障モードは、必ずしも故障を引き起こすことが既知であるモードではないが、それらが故障を引き起こすものである場合、データ耐久性を損なうであろうモードであり得ることに留意することが重要である。例えば、コンピュータリソースサービスプロバイダは、データが異なる記憶デバイス内の同じプラッタに書き込まれている場合、重大なデータ損失のリスクがあるかを決定する情報を有しないことがあるが、サービスプロバイダは、故障から生じる潜在的損傷のためこの状況を避けることを望むかもしれない。
様々な実施形態では、サービスプロバイダは、ハードウェア故障によるデータ損失のリスクを減少させる様式でデータ記憶システム内に断片を配置することを決定する。配置は、データ記憶システム内の物理的位置を示し得る。物理的位置は、サービスプロバイダが制御することができるくらい固有であり得る。例えば、配置は、複数の断片の各断片に対して、地理的領域、データセンタ、データセンタ室、ラック、ラックユニット(例えば、ラック内の多重記憶デバイスユニット)、及び/または断片が記憶される記憶デバイスなどの断片の位置の1つ以上の物理的特性を示すか、またはさもなければそれに対応することができる。いくつかの実施形態では、サービスプロバイダは、データ配置に対するさらにより高い粒度の制御を有し、したがって、配置は、複数の断片の各断片に対して、回転磁気媒体(プラッタ)を有する記憶デバイス内のプラッタ、プラッタの側面、プラッタ上の環状領域、記憶デバイスの特定のヘッドによってアクセス可能なプラッタ上の位置、及び/または他の物理的位置などの位置の物理的特性を示すか、またはさもなければそれに対応することができる。サービスプロバイダは、そのような損失を軽減する配置決定をするように構成される配置エンジン内に記述された特定の規則を有し得る。例えば、サービスプロバイダは、データ記憶システム内のハードウェア故障を使用して、故障モード及び他の故障モードを繰り返すことを避けるために配置エンジンに組み込まれた規則を更新する。
いくつかの実施例では、配置エンジンは、データ記憶システムにデータオブジェクトの断片を配置する要求を受信する。配置エンジンが第1の断片の位置を決定した後、エンジンは、データ損失のリスクを軽減するためにサービスプロバイダによって記述された様々な規則に基づいて次の断片のデータ記憶位置を選択することができる。例えば、選択された後続の断片の位置がエンジン内に記述された規則を満たさない場合、これは、適切な位置が識別されるまでその断片の位置を再選択し続ける。その時点で、配置エンジンは、次の断片に進むか、または分析する断片がもう残されていない場合、すべての断片をデータ記憶システムに配置する。
様々な状況では、データ記憶システムは、多くの顧客からの多くの要求を同時に処理することができるか、または概して、要求処理中に他の理由(例えば、ごみ収集)のためにデータ記憶デバイスにアクセスすることができる。結果として、要求に少なくとも部分的に応答するデータを記憶するデータ記憶システム内の記憶デバイスは、要求が顧客によって行われて、データオブジェクトにアクセスするか、またはそれをアーカイブに入れるかのいずれかであるときに動作している場合がある。上述のように、記憶デバイスは、振動を生じさせることができ、過熱の影響を受けやすい場合がある。したがって、様々な実施形態では、サービスプロバイダは、例えば、配置エンジン内の規則を使用することによってアーカイブまたは検索プロセス中に特定の記憶デバイスへのアクセスを防ぐことによってデータ損失のリスクを軽減する。例えば、断片が特定の記憶デバイスに記憶されるが、隣接した記憶デバイスが使用中であることを配置エンジンが確認した場合、エンジンは、断片をデータ記憶に配置する前に任意の他の断片の位置を決定することができる。データ検索の例では、データ記憶システムは、上述と同様の動作を実施してもよいが、その代わりにデータオブジェクトを再コンパイルする必要がある必要な断片のみを取得することを選択してもよい。いくつかの実施形態では、読み取り、書き込み、及び/または削除動作は、データ記憶システムの状態が、その読み取り、書き込み、及び/または削除動作が故障のリスクを低下させるために実施されることが許可されるような状態にあるまで遅延され得る。例えば、データが特定の記憶デバイスに書き込まれ、それから読み取られ、またはそれから削除される場合、データを書き込み、読み取り、または削除することは、任意の隣接した記憶デバイスがアイドル状態にあるまで遅延され得る。
このように、データ記憶システム内のデータは、システム内のハードウェア故障による損失の影響をあまり受けない。加えて、本明細書に記載及び提案された技術は、さらなる技術的優位性を促進する。例えば、いくつかの実施形態では、ある特定の記憶デバイスへのアクセスが任意の所定の時間での動作環境に基づいて制限され得るため、データ記憶システム内に含まれるハードウェアは、疲労損傷になりにくく、それ故に、サービスプロバイダの維持コストを削減することができる。同様に、これは、顧客のためにコストの減少につながり得る。追加の使用はまた、本明細書に記載された様々な技術によって可能にされる。
図1は、様々な実施形態が実践され得る環境100の例示的な実施例を示す。環境100では、顧客102は、データ記憶システムに記憶するために、データオブジェクト104(例えば、これは、これらに限定されないが、実行可能なプログラム、図面、及びテキスト文書などの1ビット以上からなるファイルを含み得る)をコンピューティングリソースサービスプロバイダに送信する。顧客及びコンピューティングリソースサービスプロバイダは、企業または他の組織などの組織エンティティであり得る。本開示は、コンピューティングリソースサービスプロバイダと通信する顧客を論じているが、特に文脈から明白ではない限り、このような通信は、後述されるものなどの1つ以上の通信プロトコルを用いて組織によって、及び/またはその代わりに操作されたデバイス(例えば、コンピュータシステム)によって生じ得ることに留意されるべきである。
データオブジェクト104は、冗長符号化エンジン106によって処理される。冗長符号化エンジン106は、1つ以上のアルゴリズムを利用して、顧客102によって提供されたデータオブジェクトを多くのデータ断片108に変換することができる。データ記憶システムは、親データオブジェクト104の識別子をデータ断片108のデータ記憶位置と関連付けるデータベースを維持することができる。加えて、データ断片108は、システム内で追跡するために符号化され得る。例えば、データ断片108は、親データオブジェクト104の名前、及び後でデータオブジェクトを再コンパイルすることが必要である断片の数で符号化され得る。
その後、図1に例示されるように、データ断片108は、データ記憶システム内の各データ断片108の位置を決定する配置エンジン110によって処理される。配置エンジン110は、データ断片108をデータ記憶システム内の記憶デバイス(例えば、ドライブ)112に配置するために規則の集合を適用するように構成されたコンピュータシステムまたはコンピュータシステムの構成要素であり得る。配置エンジン110は、サービスプロバイダによって指定された様々な規則を使用して、適切な位置を決定することができる。各データ断片108の位置が指定されると、データ断片108は、記憶するために対応する記憶デバイス112に転送される。
記憶デバイス112は、回転磁気媒体、磁気テープドライブ、SSD、または任意の他の形態のデータ記憶デバイスからなり得る。データ断片108は、顧客102がサービスプロバイダにデータオブジェクト104を修正する要求を提供するようなときまで、これらの記憶デバイス112に存在する。例えば、顧客102は、データオブジェクト104が削除、置換、または上書きされることを要求することができる。このような場合、サービスプロバイダは、データ断片108を含む記憶デバイス112にアクセスし、顧客の要求に従うであろう。
図2は、本開示の様々な実施形態が実践され得る環境200の例示的な実施例を示す。図2に例示される環境200は、図1に関連して上述されるものなどの構成要素を含み得る。例えば、図2の環境200は、顧客202及びコンピューティングリソースサービスプロバイダ206を含む。顧客202及びコンピューティングリソースサービスプロバイダ206は、図1に関連して上述されるなどのように構成され得る。図2に例示されるように、顧客202は、インターネット204などの1つ以上の通信ネットワークを通じてコンピューティングリソースサービスプロバイダ206と通信することができる。顧客202からコンピューティングリソースサービスプロバイダ206への一部の通信は、コンピューティングリソースサービスプロバイダ206を本明細書に記載される様々な技術またはその変形に従って動作させることができる。
上述のように、コンピューティングリソースサービスプロバイダ206は、その顧客202に様々なコンピューティングリソースサービスを提供することができる。例えば、この特定の例示的な実施例では、コンピューティングリソースサービスプロバイダ206は、データ記憶サービス208に加えて、仮想コンピュータシステムサービス、データベースサービス、及び/または1つ以上の他の種類のデータ記憶サービスなどの1つ以上の他のサービス210を顧客202に提供する。これらの追加のサービス210は、本明細書に明示的に記載されるサービスに加えて、またはその代替として提供されてもよい。
様々な実施形態では、データ記憶サービス208は、顧客のデータを記憶するように集団的に動作するコンピューティングリソースの収集を含む。データ記憶サービス208によって記憶されたデータは、データオブジェクトに整理され得る。データオブジェクトは、恐らく、サイズに対するある特定の制約を除いて任意のサイズを有し得る。したがって、データ記憶サービス208は、様々なサイズの多くのデータオブジェクトを記憶することができる。データ記憶サービス208は、データオブジェクトをデータオブジェクトの識別子と関連付けるキー値ストアとして動作することができる。データ記憶サービス208によって記憶されたデータオブジェクトに関連して検索し、または他の動作を実施するために顧客202によって使用され得るデータオブジェクトの識別子。データ記憶サービス208へのアクセスは、208の1つ以上のウェブサーバへのアクセスへのウェブサービス呼び出し等の適切に構成されたAPI呼び出しを通じてであってもよい。
図3は、本開示が実践され得る様々な実施形態における環境300の例示的な実施例を示す。環境300は、上述の環境200の一部分であり得る。環境300では、顧客302から受信されたデータオブジェクトは、冗長符号化スキームを利用して、データオブジェクトをより小さいデータ断片に分割し得る冗長符号化エンジン304を用いて処理され得る。冗長符号化エンジン304が使用し得るプロセスの一実施例が消去符号化である。消去符号化によって、様々な情報の断片からなるデータオブジェクトは、より小さいデータ断片に縮小される。各データ断片は、すべてのデータ断片内のデータの組み合わせが親データオブジェクトのものより大きくあり得るように、データのその比例配分より多くを含み得る。したがって、すべてのデータ断片が親データオブジェクトを再コンパイルする必要はない。消去符号化が例示の目的のために本開示全体にわたって広範に使用されるが、本開示の範囲は、必ずしも本明細書に明示的に示されるプロセスに限定されない。
データ記憶サービス300の様々な実施形態では、配置エンジン306を含む。ここで例示され、かつ図1のように、配置エンジン306は、データ記憶システム内の様々な位置にデータ断片を配置するために規則の集合を適用するように構成されるコンピュータシステムまたはコンピュータシステムの構成要素であり得る。一般に、データ記憶システム内のデータ記憶位置は、対応する物理的特性を有し得る。例えば、位置は、特定の記憶デバイス308上、特定の多重記憶デバイスユニット(例えば、JBOD)内、特定のデータ記憶システムラック内、特定のデータセンタ室内、特定のデータセンタ内、または特定のデータセンタの地理的位置内として画定され得る。加えて、位置は、記憶デバイス308内に画定され得る。例えば、位置は、記憶デバイス308もしくは多重記憶デバイス内の特定のプラッタ上、プラッタの特定の側面上、プラッタの特定の領域(例えば、内部環状領域もしくは外部環状領域)内、ある特定のヘッドによってアクセス可能な記憶デバイス308内の特定の領域内、または混成記憶デバイスの場合には特定のキャッシュ内として画定され得る。
規則は、1つ以上の物理的特性の間で断片の異種混在性の条件を強制するように構成され得る。例えば、規則は、同じ記憶デバイスプラッタ上、同じ多重記憶デバイスユニット上、同じデータ記憶ラック上、または同じデータセンタ内に2つ以上のデータ断片の配置を禁止してもよい。したがって、例えば、配置エンジン306の方法に含まれ得る規則は、2つ以上のデータ断片が単一記憶デバイス308内に配置されることを防ぎ得るものである。
規則はまた、本質的により複雑であってもよい。例えば、規則は、n個のデータ断片のうちのk個のみが損失または破損の同じ確率を共有することを可能にすることを含み得、そこでk及びnは、正の整数である。したがって、n−k(nマイナスk)個のデータ断片は、損失または破損のより低い確率を有する必要があり、場合により、親データオブジェクトの復元可能性を確実にすることができる。より複雑な規則の別の実施例は、n個の断片のうちのk個を、同じプラッタであるが、異なる記憶デバイスに記憶されることから禁止し得るものである。例えば、規則は、2つの断片のみが任意の記憶デバイスの2番目のプラッタに記憶され得ることを宣言してもよい。したがって、記憶デバイスAの2番目のプラッタに1つの断片を、記憶デバイスBの2番目のプラッタに1つの断片を、かつ記憶デバイスCの2番目のプラッタに1つの断片を記憶することは、規則に違反するであろう。したがって、配置エンジン306は、データ断片を対応する記憶デバイス308に配置することができる。加えて、配置エンジン306は、追加の情報をデータベース310に送信することができる。データベース310は、例えば、記憶デバイス308内の親データオブジェクト及び各データ断片の位置に関する情報を含み得る。顧客302がデータ記憶サービス300によってデータオブジェクトへのアクセスを要求する場合、データベース310は、このようなアクセスを取得するのに必要な関連情報のディレクトリとして機能を果たしてもよい。
図4は、データ記憶ラック402が様々な実施形態に従って様々なデータオブジェクトを含むために使用される環境400の例示的な実施例を示す。図4に例示される環境400は、上述されるデータ記憶システムの一部として機能を果たし得る。データ記憶ラック402は、多重記憶デバイスユニット404などの1つ以上の多重記憶デバイスユニットからなり、このユニットは、各々が1つ以上の記憶デバイス406を含む。上述のように、記憶デバイス406は、動作環境による故障の影響を受けやすい場合がある。図4に例示される環境400及びその変形は、例えば、記憶デバイス406に損傷を与え得る過熱及び過度の振動を受ける場合がある。
図4に例示される環境400では、ファン408は、気流、それ故に、データ記憶ラック402を冷却する方法を提供するために使用される。したがって、ファン408は、多重記憶デバイスユニット404及びその中に含まれる記憶デバイス406内の過熱を防ぐのに役立つ。しかしながら、ファン408がデータ記憶ラック402の下に位置し得るため、多重記憶デバイスユニット404内の温度は、ファン408から離れた距離との関連で増加し得る。したがって、この実施例では、ファン408から最も遠くに離れたデータ記憶ラック402内の記憶デバイス406は、損傷の影響をより受けやすい場合がある。
環境400はまた、データ記憶ラック402の動作に必要な他の構成要素を含み得る。例えば、データ記憶ラック402はまた、コンピュータリソースサービスプロバイダの従業員がデータ記憶システムにアクセスする必要があり得る場合に、電源、データ記憶ラック402の上に位置するスイッチ、及びサーバを含んでもよい。本開示の範囲は、本明細書に明示的に示されたデータ記憶ラック構成に必ずしも限定されないことに留意されるべきである。
上述のように、データ記憶ラックは、1つ以上の多重記憶デバイスユニットからなる。図5は、図4に例示されるようなデータ記憶ラックに組み込まれ得る多重記憶デバイスユニット500の例示的な実施例を示す。例示されるように、多重記憶デバイスユニット500は、アレイ状に配列された1つ以上の記憶デバイスを含むエンクロージャ502からなり得る。この実施例では、多重記憶デバイスユニット500内に囲繞された記憶デバイスは、3列で配列され、各々が4つの記憶デバイスを含み、エンクロージャ502内に合計12個の記憶デバイスを含む。しかしながら、多重記憶デバイスユニット500は、任意の数の記憶デバイスからなり得、様々な方法で配列され得る。例えば、多重記憶デバイスユニット500は、記憶デバイスの列(水平かつ/または垂直に配向される)を含んでもよく、この列は、多重記憶デバイスユニット500の中により深くあり、各記憶デバイスに多重記憶デバイスユニット500内の3次元位置を付与する。加えて、いくつかの記憶デバイスは、多重記憶デバイスユニット内に別の方法で配向され得る(例えば、斜めまたは対角線に配置される)。
図6は、データ記憶サービスが物理的に存在し得る環境600の例示的な実施例を示す。上述のように、データ記憶ラック602は、1つ以上の多重記憶デバイスユニットからなり得る。これらの多重記憶デバイスユニットは、様々な構成で配列された1つ以上の記憶デバイスを含み得る。環境600では、データ記憶ラック602は、1つ以上のデータセンタ604を含む建物内に維持され得る。これらのデータセンタ604は、コンピューティングリソースサービスプロバイダの従業員のうちの1人以上によって維持され得る。したがって、データセンタは、様々な従業員の任務を支援するために追加の事務所606を有してもよい。
ハードウェア故障の場合、その施設の従業員は、故障の根本原因を調査することができ、この情報をカタログに登録することができる。これにより、従業員は上述されるように、1つ以上の故障モードを防ぐために配置エンジン内で実装された規則を更新することができる。
図7は、様々な実施形態に従ってデータオブジェクトを記憶するためのプロセス700の例示的な実施例を示す。図7に例示されるプロセス700及びその変形は、冗長符号化エンジンを利用して、データオブジェクトを多くのデータ断片に変換し得るシステムと、データ断片をデータ記憶システムに配置するための規則の集合を含み得る配置エンジンと、データ断片が図3に例示されるように記憶され得る一連の記憶デバイスとを含む、任意の好適なシステムによって実施され得る。一実施形態では、プロセス700は、データ記憶システムに記憶するために顧客からデータオブジェクトを受信する(702)ことを含む。データオブジェクトは、任意の好適な様式で受信され得る。例えば、上述のように、顧客は、インターネット等の1つ以上の通信ネットワークを通じてデータ記憶サービスにアクセスすることができる。したがって、データオブジェクトを記憶する要求は、適切に構成されたウェブサービス要求または他のAPI呼び出しとして受信され得る。
顧客からデータオブジェクトを受信する(702)と、プロセス700は、記憶するために親データオブジェクトを多くのデータ断片に変換するために冗長符号化スキームを適用する(704)ことを含み得る。符号化スキームは、例えば、すべてのデータ断片が将来、親データオブジェクトを再コンパイルするのに必要ではないように、上述のように消去符号化することを含み得る。さらに、消去符号化が例示の目的のために本開示全体にわたって広範に使用されるが、本開示の範囲は、必ずしも本明細書に明示的に示されるプロセスに限定されない。
親データオブジェクトがより小さいデータ断片に縮小されると、プロセス700は、様々なデータ断片の配置を決定する(706)ことを含み得る。上述のように、様々な実施形態では、データ断片をデータ記憶システムに配置することは、配置エンジンを用いて行われ得る。したがって、コンピューティングリソースサービスプロバイダは、例えば、データ断片がデータベース内のカタログに登録され、データ記憶システム内のデータ記憶位置が割り当てられるように、上述されるような異種混在性を強制する規則などの様々な規則を配置エンジンに組み込むことができる。加えて、以下に説明されるように、配置エンジンは、データ断片の配置がデータ損失または破損のリスクを最小限にするように、データ記憶システム内の故障の検出に基づいて更新され得る。
配置エンジンが各データ断片の位置を決定すると、プロセス700は、その断片をデータ記憶システム内のデータ記憶位置に配置する(708)ことができる。データ断片は、記憶するために記憶デバイスに書き込まれ得る。上述のように、記憶デバイスは、回転磁気媒体、磁気テープ記憶デバイス、SSD、または任意の他の形態のデータ記憶デバイスからなり得る。各種の記憶デバイスが様々な故障モードの影響を受けやすい場合があるが、断片の配置(708)は、故障のリスクを軽減するように行われ得る。
加えて、様々な追加の動作は、図7に例示されるプロセス700に関連して実施され得る。以下に示されるように、例えば、データ記憶システムは、データ断片が記憶される現在の環境を取得し、そうすることが許可されるまで対応する記憶デバイスへのアクセスを遅延させることができる。加えて、データ記憶システムは、顧客から取得されたデータオブジェクト、または図3に例示されるような冗長符号化エンジンによって生成されたデータ断片を暗号化することができる。したがって、様々な実施形態では、プロセス700は、そのような動作を実施することを含み得る。
上述のように、配置エンジンは、データ記憶システム内のデータ断片の適切な配置を決定するために使用され得る。データ断片の適切な配置を管理する規則は、例えば、コンピュータリソースサービスプロバイダの従業員によって、図3に例示されたプロセスの繰り返される反復を通して、またはハードウェア故障等の外部条件によって決定され得る。いくつかの実施形態では、コンピューティングリソースサービスプロバイダの顧客には、コンピューティングリソースサービスプロバイダによって配置エンジンの規則を生成するために使用される配置条件を提供するウェブサービスまたは他のインターフェースによるなどの能力が提供される。データ配置の条件は、上述の条件を含み得る。この条件は、明示的(例えば、自分で規則を指定することによって)または黙示的に、各レベルが配置規則の集合に対応する、いくつかの冗長レベルのうちの1つを選択することによるなど、顧客によって指定され得る。顧客に対する請求金額は、顧客が指定するデータ配置規則がもしあればそれに少なくとも部分的に基づいて異なり得る。
図8は、少なくとも一実施形態に従ってデータ記憶システム内のハードウェア故障を追跡するためのプロセス800の例示的な実施例を示す。図8に例示されるプロセス800及びその変形は、配置エンジンを利用して、データ断片がどこに記憶されるべきであるかを決定し得るものを含む、任意の好適なシステムによって実施され得る。プロセス800では、データ記憶システムは、システム内の故障を検出する(802)ことができる。例えば、多重記憶デバイスユニット内に記憶デバイス故障がある場合、信号は、データ記憶システム、及びコンピュータリソースサービスプロバイダの従業員に送信され、故障を知らせることができる。故障は、多重記憶デバイスユニット内の記憶デバイスに組み込まれたセルフモニタリングアナリシスアンドリポーティングテクノロジー(Self−Monitoring Analysis and Reporting Technology)(SMART)に基づいて検出され得る。加えて、信号は、電源故障、データ記憶ラック内の通気障害、またはデータセンタ施設内の壊滅的な停電などのデータ記憶システム内のより深刻な障害がある場合に送信され得る。
検出された故障の深刻度及び影響を決定する際に、データ記憶システムまたはコンピュータリソースサービスプロバイダの従業員は、特定の故障モード、例えば、データ記憶システム内のすべての以前の障害の履歴の記録を含むログで記録することができる。したがって、このログは、データ記憶システムの故障統計を更新する(804)ために使用され得る。故障統計を更新する(804)ための目的の1つは、例えば、データ記憶システム内の将来のハードウェア障害の可能性を取得することである。これは、1つ以上の機能を果たすことができる。例えば、サーバのファンが特定の記憶デバイスの耐用年数を減少させ得るか、またはこれらの記憶デバイス内に間欠故障を引き起こし得る振動を発生させる場合、この情報は、コンピュータリソースサービスプロバイダがこれらの特定の記憶デバイスの使用を制限することを求め得るように、このプロバイダに対して価値のあるものであり得る。加えて、データサービスラック内の電源が配線の束または内部記憶デバイスなどのある特定の多重記憶デバイスユニット構成要素の耐性を超え得る熱を生じており、異なる故障モードをもたらす場合、コンピュータリソースサービスプロバイダは、その特定の多重記憶デバイスユニットへのアクセスを制限すること、またはデータサービスラックに記憶されるデータの量を制限することを求めることができる。
故障統計を更新する(804)ことによって取得された十分な情報を用いて、コンピュータリソースサービスプロバイダの従業員またはデータ記憶システムは、1つ以上のアルゴリズムによって、配置エンジンを更新する(806)ことができる。配置エンジンの更新(806)は、図1及び3に例示されるように、データ記憶システム内の1つ以上のデータ断片の配置を決定するために使用され得る新しい規則の修正または実装を含み得る。例えば、同じ親データオブジェクトを有する多重データ断片が、例えば、同じ記憶デバイスプラッタまたは記憶デバイスに記憶されることを防ぐ新しい規則が実装されてもよい。加えて、この規則は、例えば、2つ以上のデータ断片が同じデータ記憶ラック内、データセンタの同じ室内、同じデータセンタ内、または同じ地理的指定内に記憶されないような系を含み得る。
上述のように実装され得る規則は、静的でなくてもよい。例えば、データ記憶システムがさらなるハードウェア故障を検出する(802)場合、プロセス800は繰り返してもよく、故障統計のさらなる更新(804)をもたらし得る。したがって、配置エンジンは、データ記憶システム内のハードウェア故障の頻度に基づいていかなる時でも更新され得る(806)。
図9は、少なくとも一実施形態に従ってデータオブジェクトを記憶するためのプロセス900の例示的な実施例である。上述のように、データオブジェクトは、図3に例示されるものなどの冗長符号化エンジンを用いて、多くのデータ断片に変換され得る。この時点では、プロセス900は、親データオブジェクトのデータ断片をデータ記憶システムに配置する要求を受信する(902)ことができるものである。この時点では、図3に例示されるものなどの配置エンジンは、第1のセグメントの位置を選択する(904)ことができる。第1のセグメントの位置の選択(904)は、データ記憶システム内の任意の既知のハードウェア故障モードから独立してもよく、同じ親データオブジェクトを有する他のデータ断片の配置から独立してもよい。しかしながら、規則は、配置エンジン内に実装され、第1のセグメントが特定の位置に記憶されることを必要にし得る。
第1のデータ断片位置が選択される(904)と、プロセス900は、次のデータ断片の位置を選択する(906)ことを含み得る。第1のデータセグメントの位置を考慮すると、配置エンジンは、その中に含まれる上述のものなどの実装された規則に基づいて次のデータ断片の位置を調査する(908)ことができる。選択された位置が配置エンジン内に実装された規則を満たさない場合、データ記憶システムは、現在のデータ断片の新しいデータ記憶位置を選択する(910)ことができる。例えば、第1のデータ断片が多重記憶デバイスユニットXに記憶されると配置エンジンが決定し、配置エンジン状態内に実装された規則が、2つ以上のデータ断片が同じ多重記憶デバイスユニットに記憶されないと述べる場合、配置エンジンは、任意の後続のデータ断片に割り当てられた位置を調査することができ、それが多重記憶デバイスユニットXに記憶されるように現在割り当てられる場合にその位置を再選択することができる。データ断片の位置が配置エンジンに記述された規則を満たす場合、データ記憶システムは、これ以上データ断片が残っているかを評価する(912)ことができる。位置を必要とするより多くのデータ断片が存在する場合、プロセス900は、該データ断片の位置を決定する(906)ことを含み得る。このように、各データ断片の位置は、配置エンジンに含まれる様々な規則を満たすことができる。
各データ断片に配置エンジンに記述されたすべての規則を満たす位置が割り当てられると、プロセス900は、すべてのデータ断片をデータ記憶システムに書き込む(914)ことができる。規則の実装が例示の目的のために本開示全体にわたって広範に使用されるが、本開示の範囲は、本明細書に明示的に示されるプロセスに必ずしも限定されない。例えば、配置エンジンは、後続のデータ断片の可能な位置を制限する規則に加えて、プロセス900の前の繰り返しに基づいて現在のデータ断片がデータシステムに記憶される位置の前の集合選択するために実施され得る一連のアルゴリズムを含んでもよい。前の集合のリストは、データ損失または破損のリスクの減少をもたらしたこれまでに使用された位置を含み得る。
上述のように、記憶デバイスは、例えば、振動及び過熱から生じる損傷の影響を受けやすい場合がある。回転磁気媒体を利用する記憶デバイスの場合、このような記憶デバイスの通常動作は、周囲のデータ環境に悪影響を与え得る振動をもたらし得る。したがって、図10は、少なくとも一実施形態に従って周囲の悪条件によるデータ損失のリスクを減少させ得る様式でデータ記憶からデータオブジェクトを検索するためのプロセス1000の例示的な実施例である。
上記に詳述されたプロセス900と同様に、プロセス1000は、様々な記憶デバイスへのアクセスを必要とし得る動作を実施するように、例えば、顧客またはコンピューティングリソースサービスプロバイダからの要求を受信する(1002)ことを含み得る。これらの記憶デバイスは、親データオブジェクトと関連付けられたデータ断片を含み得る。要求を受信する(1002)と、データ記憶システムは、上述のようなデータベースを参照して、データ記憶システムに記憶されたデータ断片の位置を決定する(1004)ことができる。位置が決定される(1004)と、データ記憶システムは、現在のデータ断片の位置を取り囲む環境の現在の活動状態を取得する(1006)ことができる。例えば、現在のデータ断片が特定の記憶デバイスに位置する場合、その環境は、現在のデータ断片を含む記憶デバイスに空間的に近接した(例えば、振動伝達媒体または共通の取り付け具を共有する)任意の記憶デバイス、及び目標とした記憶デバイスを有する多重記憶デバイスユニットに空間的に近接した任意の多重記憶デバイスユニットを含み得る。加えて、その環境は、目標とした記憶デバイスを取り囲む現在の温度及び含水量、ならびに気圧または空気中の汚染物質を含み得る。現在の活動状態は、データ記憶システム内の任意の構成要素の動作状態を参照することができる。例えば、記憶デバイスについて、現在の活動状態は、記憶デバイスが回転している(例えば、記憶デバイス内の記憶媒体のアクセスを読み取り/書き込み/削除する)か、かつどの速度で、またはアイドル状態にあるかを指すことができる。上述のように、動作中の回転磁気媒体を利用する記憶デバイスは、振動及び熱を生じ得る。したがって、記憶デバイスの現在の活動状態は、周囲環境に対応する影響を与え得る。
周囲環境の評価は、既知の故障モードに基づいて1つ以上の分析を含み得る。これらの故障モードの深刻度は、上述のプロセス800などのプロセスによって、または既知の製作公差によってコンピューティングリソースサービスプロバイダに既知であり得る。例えば、任意のハードウェア構成要素(例えば、記憶デバイス、多重記憶デバイスユニット、データ記憶ラック)の供給前に、製造者は、これらの構成要素の耐性及び/または耐用年数を決定するために試験を実施することができる。これは、周囲の悪条件(例えば、過度の熱、振動、湿気)を決定する器具が埋め込まれた記憶デバイスなどの試験デバイスの使用を含み得る。したがって、製造者は、周囲環境に基づいてあらゆるハードウェア構成要素への損傷のリスクを詳述する情報を取得することができる。この情報は、例えば、コンピューティングリソースサービスプロバイダへのハードウェア構成要素の販売中、または製造者によって最初に発見されたとき、コンピューティングリソースサービスプロバイダに伝達され得る。この場合、製造者は、企業または他の組織などの組織エンティティであり得る。
コンピューティングリソースサービスプロバイダは、上述のように、プロセス800を用いて取得された統計、または製造者から取得された情報を使用して、周囲環境がデータ損失または破損のリスクを増加させるならば、記憶デバイスへのアクセスを防ぐであろう条件の集合を生じさせることができる。例えば、コンピューティングリソースサービスプロバイダは、アクセスされる記憶デバイスへの空間的近接に基づいた条件の集合を提供することができる。例えば、親データオブジェクトへのアクセスに必要なデータ断片を有するものに隣接した1つ以上の記憶デバイスが現在アクティブである(例えば、記憶デバイスがその媒体に1つ以上の動作を実施している)場合、データ記憶システムは、すべての隣接した記憶デバイスがアイドル状態にあるまで、データ断片を含む記憶デバイスへのアクセスを拒否することができる。空間的近接はまた、隣接した記憶デバイスに限定されない。例えば、統計的に、目標とした記憶デバイスに隣接しないが、振動伝達媒体を目標とした記憶デバイスと、または共通の取り付け具を目標とした記憶デバイスと共有する現在アクティブな記憶デバイスから生じる振動が目標とした記憶デバイスにより大きい潜在的損傷をもたらす場合、データ記憶システムはまた、これらのアクティブな記憶デバイスがアイドル状態にあるまで、データ断片を含む記憶デバイスへのアクセスを拒否することができる。したがって、コンピューティングリソースサービスプロバイダによって実装され得る条件を用いて、プロセス1000は、現在のデータ断片を含む記憶デバイスがアクセスされ得るかの決定1008を含み得る。現在の記憶デバイスへのアクセスが周囲の悪条件により許可されない場合、データ記憶システムは、現在のデータ断片を迂回し、次のデータ断片の位置を決定する(1004)ことができる。さもなければ、データ記憶システムは、すべての必要なデータ断片が位置特定され、かつ環境がデータ断片の検索に有利であるかを決定することを求める(1010)ことができる。
上述の条件は、様々な方法で実装され得ることに留意することが重要である。例えば、データ記憶システムは、記憶デバイスへのアクセスが必要であるときに実行される小さいスクリプトを含み得る。このスクリプトは、必要なデータ断片を含む記憶デバイスに隣接した記憶デバイスを調査し、すべての隣接した記憶デバイスの状態を含むファイルを生成することができる。同様に、このファイルは、プロセス1000と一致するデータ記憶システムによって処理され得る。
図3に上述されるように、冗長符号化スキームを利用する冗長符号化エンジンは、データオブジェクトをより小さいデータ断片に縮小するために使用され得る。消去符号化によって、冗長符号化エンジンを用いて生成されたすべてのデータ断片が親データオブジェクトを復元するのに必要でなくてもよい。したがって、プロセス1000は、データ記憶システムが親データオブジェクトを復元するのに必要なデータ断片を有するかを評価する(1010)ことを含むことができる。この評価は、データ断片を含む記憶デバイスが上述のようにアクセスされ得るとデータ記憶システムが決定する(1008)たびに生じ得る。必要なデータ断片を含む記憶デバイスがアクセスされ得るとデータ記憶システムが決定した場合、データ記憶システムは、必要な記憶デバイスへのアクセスを許可することができる。しかしながら、より多くのデータ断片が親データオブジェクトを再生するのに必要である場合、データ記憶システムは、次のデータ断片を選択し、データ記憶システム内の該データ断片の位置を決定する(1004)ことができる。
親データオブジェクトを再生するのに必要なすべてのデータ断片が識別されたと決定され(1010)、必要なデータ断片を含む記憶デバイスにアクセスする許可があるとデータ記憶システムが決定する(1008)と、データ記憶システムは、データ断片にアクセスし(1012)、親データオブジェクトを再コンパイルすることができる。
本明細書に記載されるすべてのプロセスと同様に、プロセス1000の変形は、本開示の範囲内であると見なされる。例えば、上述のように、プロセス1000は、記憶デバイスへのアクセス(1008)が存在する悪条件により禁止される場合、データ断片の位置を決定する(1004)ことを含み得る。プロセス1000の変形の一実施例は、記憶デバイスへのアクセスが次のデータ断片の位置を決定する(1004)前に許可されるまでデータ記憶システムが待つことができるものであり得る。プロセス1000の変形の別の実施例は、上述されるように、データ記憶システムがデータオブジェクトを構築するのに必要な単に最小の数の断片とは対照的に、すべてのデータ断片(またはより多数のデータ断片)を取得することを選択するものであり得る。
記憶デバイスへのアクセスは、読み取り動作のみに限定されなくてもよい。したがって、図11は、少なくとも一実施形態に従って周囲の悪条件によりデータ損失のリスクを減少させ得る様式でデータオブジェクト断片をデータ記憶に配置するためのプロセス1100の例示的な実施例である。上述のプロセス900とかなり類似して、プロセス1100は、親データオブジェクトの1つ以上のデータ断片をデータ記憶システムに配置する要求を受信する(1102)ことを含み得る。
上述のプロセス900と同様に、プロセス1100は、第1のデータ断片を記憶するように位置を決定する(1104)ことを含み得る。この決定1104は、図3に例示されるなどのように配置エンジンを用いて行われ得る。上述のように、第1のセグメントの位置の選択は、データ記憶システム内の任意の既知のハードウェア故障モードから独立してもよく、同じ親データオブジェクトを有する他のデータ断片の配置から独立してもよい。しかしながら、プロセス1100はその後、データ断片の所望の位置を取り囲む環境の現在の状態を取得する(1106)ことを含み得る。周囲環境の評価は、上記に記載された技術を利用する様式で行われ得る。加えて、コンピューティングリソースサービスプロバイダは、上記に記載されたプロセス800に基づいて、またはデータ記憶システム構成要素の製造者から受信された情報に基づいて、配置エンジンに組み込まれた規則を更新することができる。
プロセス1000と同様に、プロセス1100は、データ断片の記憶のために選択された記憶デバイスへのアクセスが許可されるかどうかの決定1108を含み得る。この決定は、上記に記載されるような方法を用いて行われ得る。選択された記憶デバイスへのアクセスが許可されない場合、データ記憶システムは、次のデータ断片の位置を決定する(1104)ために進むことができる。さもなければ、データ記憶システムは、親データオブジェクトと関連付けられたすべてのデータ断片が位置特定され、かつその環境がデータ断片の記憶に有利であるかを決定する(1110)ことを求めることができる。データ記憶システムがすべてのデータ断片を記憶するように識別された記憶デバイスにアクセスする許可を有すると、データ記憶システムは、これらのデータ断片をそれぞれの記憶デバイスに配置する(1112)ことができる。
本明細書に記載されるすべてのプロセスと同様に、プロセス1100の変形は、本開示の範囲内であると見なされる。例えば、プロセス1100は代わりに、選択された位置が環境の悪条件により許可されない場合、データ断片の新しい位置を決定することを含み得る。したがって、データ記憶システムは、1つのデータ断片に焦点を合わせ、好適な位置が選択されるまで次のデータ断片に移らないようにすることができる。別の実施例は、n個のデータ断片のうちのk個が同じ損失または破損の確率を共有することを可能にするものなど、配置エンジン内のより複雑な規則に基づいてもよい。したがって、データ記憶システムは、k個のデータ断片の選択された位置を取り囲む環境を無視することを含み得る。n−k個の断片が残ると、データ記憶システムは、これらの断片の周囲環境を評価し始め、プロセス1100に従って適切な位置を選択するであろう。
図12は、様々な実施形態に従った態様を実装するための環境1200の態様を例示する。理解され得るように、ウェブベースの環境が説明の目的のために使用されるが、異なる環境は必要に応じて、様々な実施形態を実装するために使用され得る。この環境は、電子クライアントデバイス1202を含み、これは、適切なネットワーク1204上で要求、メッセージ、または情報を送受信し、かつ情報をデバイスのユーザに送り返すように動作可能な任意の適切なデバイスを含み得る。このようなクライアントデバイスの実施例としては、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末、埋込み型コンピュータシステム、電子書籍リーダーなどが挙げられる。ネットワークとしては、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、もしくは任意の他のこのようなネットワーク、またはこれらの組み合わせを含む任意の適切なネットワークが挙げられ得る。このようなシステムに使用される構成要素は、選択されたネットワーク及び/または環境の種類に少なくとも部分的に依存し得る。このようなネットワークを介して通信するためのプロトコル及び構成要素は周知であり、本明細書で詳細に説明されない。ネットワーク上の通信は、有線または無線接続及びこれらの組み合わせによって有効にされ得る。この実施例では、ネットワークは、その環境が要求を受信し、かつそれに応答してコンテンツを供給するためのウェブサーバ1206を含むときにインターネットを含むが、他のネットワークでは、当業者に明らかであるように、同様の目的を果たす代替のデバイスが使用され得る。
例示的な環境は、少なくとも1つのアプリケーションサーバ1208と、データストア1210とを含む。つながれるか、または別の方法で構成され得る、いくつかのアプリケーションサーバ、層、または他の要素、プロセス、もしくは構成要素があり得、これらは、適切なデータストアからデータを取得することなどのタスクを実施するようにやり取りすることができる。本明細書で使用されるとき、サーバは、ハードウェアデバイスまたは仮想コンテンツシステムなどの様々な方法で実装され得る。場合により、サーバは、コンピュータシステムで実行されるプログラミングモジュールを指すことができる。本明細書で使用されるとき、用語「データストア」は、データを記憶し、それにアクセスし、かつそれを検索することができる任意のデバイス、またはデバイスの組み合わせを指し、これは、あらゆる基準の分散型またはクラスタ化環境で任意の組み合わせ及び任意の数のデータサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体を含み得る。アプリケーションサーバは、クライアントデバイスのための1つ以上のアプリケーションの態様を実行する必要に応じて、データストアと一体化し、アプリケーションのためのデータアクセス及びビジネスロジックのうちのいくつか(さらに大部分)を処理するための任意の適切なハードウェア及びソフトウェアを含み得る。アプリケーションサーバは、データストアと協働でアクセス制御サービスを提供することができ、ユーザに転送されるテキスト、グラフィックス、音声、及び/または映像などのコンテンツを生成することができ、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、またはこの実施例における別の適切な構造化言語の形態でウェブサーバによってユーザに供給され得る。すべての要求及び応答の処理、ならびにクライアントデバイス1202とアプリケーションサーバ1208との間のコンテンツの配信は、ウェブサーバによって処理され得る。ウェブサーバ及びアプリケーションサーバは必須ではなく、本明細書に説明される構造化コードが本明細書のどこかで考察されるような任意の適切なデバイスまたはホストマシンで実行され得るように、単に例示的な構成要素であることが理解されるべきである。さらに、単一デバイスによって実施されると本明細書に記載される動作は、特に文脈から明らかでない限り、分散型システムを形成し得る多重デバイスによって集団的に実施され得る。
データストア1210は、本開示の特定の態様に関するデータを記憶するためのいくつかの別個のデータ表、データベース、または他のデータ記憶機構及び媒体を含み得る。例えば、例示されるデータストアは、生産側のコンテンツを供給するために使用され得る生産データ1212及びユーザ情報1216を記憶するための機構を含み得る。データストアはまた、報告、分析、または他のこのような目的のために使用され得るログデータ1214を記憶するための機構を含むように示される。ページイメージ情報のためなどのデータストアに記憶され、かつ正確な情報にアクセスする必要があり得る多くの他の態様があり得、これらは、必要に応じて上記に列記された機構のうちのいずれかに、またはデータストア1210における追加の機構において記憶され得ることが理解されるべきである。データストア1210は、それと関連付けられた論理によって、アプリケーションサーバ1208から命令を受信し、かつそれに応答してデータを取得、更新、またはさもなければ処理するように動作可能である。一実施例では、ユーザは、ユーザによって操作されたデバイスによって、ある特定の種類の項目の検索要求を提出してもよい。この場合、データストアは、ユーザの身元を検証するユーザ情報にアクセスしてもよく、カタログ詳細情報にアクセスして、その種類の項目に関する情報を取得することができる。次に、この情報は、ユーザがユーザデバイス1202上のブラウザを介して見ることができるウェブページ上に列挙する結果などでユーザに返され得る。特定の対象項目の情報は、ブラウザの専用ページまたはウィンドウで見られ得る。しかしながら、本開示の実施形態がウェブページの文脈に必ずしも限定されないが、要求が必ずしもコンテンツの要求ではない場合、概して処理要求により一般に適用可能であり得ることに留意されるべきである。
各サーバは典型的に、そのサーバの一般的な管理及び動作のために実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的に、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実施することを可能にする命令を記憶するコンピュータ可読記憶媒体(例えば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を含む。オペレーティングシステムの好適な実装形態及びサーバの一般的な機能性は既知であるか、または市販のものであり、特に本明細書の本開示に照らして当業者に容易に実装される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を用いて、通信リンクを介して相互接続されるいくつかのコンピュータシステム及び構成要素を利用する分散型コンピューティング環境である。しかしながら、このようなシステムは、図12に例示されるより少ないか、またはより多い数の構成要素を有するシステムで等しく良好に動作し得ることが当業者に理解されるであろう。したがって、図12におけるシステム1200の描写は、本質的に例示的であり、本開示の範囲に限定しないと見なされるべきである。
様々な実施形態はさらに、多種多様の動作環境で実装され得、これらは、場合により、いくつかのアプリケーションのうちのいずれかを動作するために使用され得る1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザデバイスまたはクライアントデバイスは、標準的オペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータなどのいくつかの汎用パーソナルコンピュータ、ならびにモバイルソフトウェアを実行し、かついくつかのネットワーキング及びメッセージングプロトコルを支援することができるセルラー、無線、及びハンドヘルドデバイスのうちのいずれかを含み得る。このようなシステムはまた、様々な市販のオペレーティングシステム、ならびに開発及びデータベース管理などの目的のための他の既知のアプリケーションのうちのいずれかを実行するいくつかのワークステーションを含み得る。これらのデバイスはまた、ダミー端子、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを含み得る。
本開示の様々な実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、開放型システム間相互接続(「OSI」)モデルの様々な層で動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、共通インターネットファイルシステム(「CIFS」)、及びAppleTalkなどの様々な市販のプロトコルのうちのいずれかを用いて通信を支援するために当業者によく知られている少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びこれらの任意の組み合わせであり得る。
ウェブサーバを利用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、共通ゲートウェイインターフェース(「CGI」)サーバ、データサーバ、Javaサーバ、及び業務アプリケーションサーバを含む様々なサーバまたは中間階層アプリケーションのうちのいずれかを実行することができる。サーバ(複数可)はまた、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCL等のスクリプト言語、ならびにこれらの組み合わせで書き込まれた1つ以上のスクリプトまたはプログラムとして実装され得る1つ以上のウェブアプリケーションを実行することによるなど、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができる。サーバ(複数可)はまた、これらに限定するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販のものを含むデータベースサーバを含み得る。
この環境は、上記に説明されるような様々なデータストア、他のメモリ、及び記憶媒体を含み得る。これらは、コンピュータのうちの1つ以上のローカル(及び/またはそれに固有)か、またはネットワークにわたってコンピュータのうちのいずれかもしくはすべてからリモートの記憶媒体上などの様々な位置に存在することができる。特定の実施形態の集合では、情報は、当業者によく知られている記憶領域ネットワーク(「SAN」)に存在し得る。同様に、コンピュータ、サーバ、またはネットワークデバイスに起因する機能を実施するための任意の必要なファイルは、必要に応じてローカル及び/またはリモートに記憶され得る。システムがコンピュータ化されたデバイスを含む場合、各々のこのようなデバイスは、バスを介して電気的に連結され得るハードウェア要素を含み得、この要素は、例えば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカ)を含む。このようなシステムはまた、ランダムアクセスメモリ(「RAM」)または読み取り専用メモリ(「ROM」)、ならびに取り外し可能なメディアデバイス、メモリカード、フラッシュカードなどのディスクドライブ、光学記憶デバイス及びソリッドステート記憶デバイスなどの1つ以上の記憶デバイスを含み得る。
このようなデバイスはまた、コンピュータ可読記憶媒体リーダー、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及び上記に記載されるようなワーキングメモリを含み得る。コンピュータ可読記憶媒体リーダーは、リモート、ローカル、固定、及び/または取り外し可能な記憶デバイスを表すコンピュータ可読記憶媒体、ならびにコンピュータ可読情報を一時的及び/またはより永久に含み、記憶し、送信し、かつ検索するための記憶媒体と接続されるか、またはそれらを受信するように構成され得る。システム及び様々なデバイスはまた、典型的に、いくつかのソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置する他の要素を含み、これらは、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む。代替の実施形態が上記に記載されるものから多くの変形を有し得ることが理解されるべきである。例えば、カスタマイズされたハードウェアも使用されてもよく、かつ/または特定の要素がハードウェア、ソフトウェア(アプレット等の携帯用ソフトウェアを含む)、もしくはその両方で実装され得る。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が利用されてもよい。
コードまたはコードの部分を含むための記憶媒体及びコンピュータ可読媒体は、限定されないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び/または送信のための任意の方法または技術で実装された揮発性及び不揮発性の取り外し可能、及び取り外し可能ではない媒体などの記憶媒体及び通信媒体を含む、当該技術分野において既知であるか、または使用される任意の適切な媒体を含み得、これらの媒体としては、RAM、ROM、電気的消去可能なプログラマブル読み取り専用メモリ(「EEPROM」)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み取り専用メモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)もしくは他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され得、かつシステムデバイスによってアクセスされ得る任意の他の媒体が挙げられる。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実装する他の手法及び/または方法を理解するであろう。
したがって、本明細書及び図面は、限定的意味ではなく例示で見なされる。しかしながら、特許請求の範囲に記載される本発明のより広範な趣旨及び範囲から逸脱することなく、様々な修正及び変更がそれに行われ得ることが明白であろう。
前述は、以下の付記を考慮して理解され得る。
1.データを記憶するためのコンピュータ実装方法であって、
実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
データ記憶システムに記憶されるデータオブジェクトを受信することであって、データ記憶システムが、複数の物理的データ記憶位置を含み、複数の物理的データ記憶位置の各位置が、複数の物理的特性を有する、受信することと、
データ断片の真部分集合がデータオブジェクトを構築するのに使用可能であるように構成された複数のデータ断片を生成するように、冗長符号化スキームを適用することと、
複数の物理的データ記憶位置の少なくとも部分集合の物理的特性に適用されたデータ配置規則の集合に少なくとも部分的に基づいて、生成されたデータ断片の配置を決定することであって、配置が、データ配置規則の集合を満たす複数の物理的データ記憶位置からの複数の位置を示す、決定することと、
決定された配置に従ってデータ断片を記憶させることと、を含む、コンピュータ実装方法。
2.物理的特性は、多重記憶デバイスの構成内の位置、データ記憶ラック内の多重記憶デバイスユニットの位置、データ記憶ラックの位置、データセンタ室、データセンタ、及びデータセンタ地理的位置を含む群から選択される1つ以上の物理的特性を含む、付記1に記載のコンピュータ実装方法。
3.物理的特性は、プラッタ、オンプラッタ配置、プラッタ側、及び読み取り/書き込みヘッドを含む群から選択される1つ以上の物理的特性を含む、付記1または2に記載のコンピュータ実装方法。
4.データ配置規則の集合は、データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、付記1〜3のいずれか一付記に記載のコンピュータ実装方法。
5.生成されたデータ断片の配置は、データオブジェクトを受信する前にデータ配置規則を満たすと予め決定された複数の配置からその配置を選択することによって決定される、付記1〜4のいずれか一付記に記載のコンピュータ実装方法。
6.データ記憶システムは、コンピューティングリソースサービスプロバイダによって複数の顧客に提供されたデータ記憶サービスを支援して動作し、
データオブジェクトは、データ記憶システムに記憶するための顧客のデータを含む、付記1〜5のいずれか一付記に記載のコンピュータ実装方法。
7.データを記憶するためのコンピュータ実装方法であって、
実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
データ記憶システムに記憶されるデータを受信することであって、データ記憶システムが、複数の物理的データ記憶位置を含み、複数の物理的データ記憶位置の各位置が、複数の物理的特性を有する、受信することと、
複数の物理的データ記憶位置の少なくとも部分集合の物理的特性に適用されたデータ配置規則の集合に少なくとも部分的に基づいて、データの断片の配置を決定することであって、配置が、データ配置規則の集合を満たす複数の物理的データ記憶位置からの複数の位置を示す、決定することと、
決定された配置に従って断片を記憶させることと、を含む、コンピュータ実装方法。
8.冗長符号化スキームを用いて断片を生成することをさらに含む、付記7に記載のコンピュータ実装方法。
9.物理的特性は、多重記憶デバイスの構成を含む多重記憶デバイスユニット内の位置、及び1つ以上の多重記憶デバイスユニットを含むデータ記憶ラック内の位置を含む、付記7または8に記載のコンピュータ実装方法。
10.物理的特性は、記憶デバイスの複数のプラッタからのプラッタ上の位置を示す1つ以上の物理的特性を含む、付記7〜9のいずれか一付記に記載のコンピュータ実装方法。
11.データ配置規則の集合は、データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、付記7〜10のいずれか一付記に記載のコンピュータ実装方法。
12.断片の集団的サイズは、受信されたデータのサイズを超え、断片の各々は、受信されたデータのサイズ未満の個別サイズを有する、付記7〜11のいずれか一付記に記載のコンピュータ実装方法。
13.システムであって、
複数のデータ記憶デバイスであって、各々が、対応する複数の物理的特性を有する1つ以上の物理的データ記憶位置を含む、複数のデータ記憶デバイスと、
1つ以上のプロセッサと、
メモリであって、1つ以上のプロセッサによって実行されるとき、システムに、以下のこと、
データの断片の配置を決定することであって、配置が、データ配置規則の集合を満たす対応する物理的特性を有する複数の物理的データ記憶位置から複数の物理的データ記憶位置を示す、決定することと、
配置に従って複数の物理的データ記憶デバイスの少なくとも部分集合の中で断片を記憶することと、を行わせる命令を含むメモリと、を備える、システム。
14.物理的特性は、多重記憶デバイスユニット内の位置、及びデータ記憶ラック内の位置を含む群から選択される1つ以上の物理的特性を含む、付記13に記載のシステム。
15.物理的特性は、記憶デバイス内の物理的配置を示す1つ以上の物理的特性を含む、付記13または14に記載のシステム。
16.データ配置規則の集合は、データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、付記13〜15のいずれか一付記に記載のシステム。
17.データの断片は、冗長符号化エンジンをデータに適用することによって生成され、
断片は、データのサイズ未満のデータ量を個別に含むがデータのサイズを超えるデータ量を集団的に含む、付記13〜16のいずれか一付記に記載のシステム。
18.システムは、コンピューティングリソースサービスプロバイダによって複数の顧客に提供されたデータ記憶サービスを支援して動作し、
データの断片は、システム内の記憶のためにコンピューティングリソースサービスプロバイダの顧客のデータを含む、付記13〜17のいずれか一付記に記載のシステム。
19.1つ以上のコンピュータ可読記憶媒体であって、システムの1つ以上のプロセッサによって実行されるとき、システムに、以下のこと、
データ配置規則の集合を、データの断片に、対応する物理的特性を有する複数の物理的データ記憶位置からの複数の位置の中でデータの断片の配置を決定するように、適用することであって、配置が、対応する物理的特性を有する物理的データ記憶位置がデータ配置規則を満たすと決定されたことを示す、適用することと、
データ配置規則の集合の適用に従って、データの断片をデータ記憶システムに持続的に記憶させることと、を行わせる命令をその中に集団的に記憶させる、1つ以上のコンピュータ可読記憶媒体。
20.物理的特性は、多重記憶デバイスの構成内の位置、データ記憶ラック内の多重記憶デバイスユニットの位置、データ記憶ラック位置、データセンサ室、データセンタ、及びデータセンタの地理的位置を含む群から選択される1つ以上の物理的特性を含む、付記19に記載の1つ以上のコンピュータ可読記憶媒体。
21.物理的特性は、プラッタ、オンプラッタ配置、プラッタ側、及び読み取り/書き込みヘッドを含む群から選択される1つ以上の物理的特性を含む、付記19または20に記載の1つ以上のコンピュータ可読記憶媒体。
22.データ配置規則の集合は、データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、付記19〜21のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
23.データ配置規則の集合を適用することは、データの断片を受信する前にデータ配置規則を満たすと決定された複数の配置から配置を選択することを含む、付記19〜22のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
24.コンピュータ可読記憶媒体は、コンピューティングリソースサービスプロバイダによって複数の顧客に提供されたデータ記憶サービスを支援して動作し、
データの断片は、データ記憶システムによって記憶するためのコンピューティングリソースサービスプロバイダの顧客のデータを含む、付記19〜23のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
25.実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
データ記憶システム内の動作を実施する要求を受信することであって、データ記憶システムが、複数の記憶デバイスを含み、複数の記憶デバイスの部分集合の各記憶デバイスが、動作を実施するのに使用可能な記憶デバイスと同時にアクティブであるときに、記憶デバイスの障害を潜在的に引き起こすと決定される、受信することと、
複数の記憶デバイスの部分集合の現在の活動状態に少なくとも部分的に基づいて、動作を実施する様式を決定することであって、現在の活動状態が、部分集合の1つ以上の記憶デバイスが現在アクティブであるかを示す、決定することと、
決定された様式に従って動作を実施させることと、を含む、コンピュータ実装方法。
26.複数の記憶デバイスの部分集合は、記憶デバイスに物理的に隣接した1つ以上の記憶デバイスを含む、付記25に記載のコンピュータ実装方法。
27.部分集合の記憶デバイスのうちの1つ以上が現在アクティブであると現在の活動状態が示すとき、動作を実施する様式を決定することは、現在の活動状態が、動作の実施が許可される状態に変更するまで動作を遅延させることを決定することを含む、付記25または26に記載のコンピュータ実装方法。
28.部分集合の記憶デバイスのうちの1つ以上が現在アクティブであると現在の活動状態が示すとき、動作を実施する様式を決定することは、動作を実施するための異なる記憶デバイスを選択することを含む、付記25〜27のいずれか一付記に記載のコンピュータ実装方法。
29.動作を実施する要求は、データ記憶システムから検索されることを要求されたデータオブジェクトのためのデータを取得する要求である、付記25〜28のいずれか一付記に記載のコンピュータ実装方法。
30.データ記憶システムは、コンピューティングリソースサービスプロバイダによって複数の顧客に提供されたデータ記憶サービスを支援して動作し、
動作を実施する要求は、複数の顧客のうちの1人の顧客のデータに関連している、付記25〜29のいずれか一付記に記載のコンピュータ実装方法。
31.実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
データ記憶デバイスの記憶媒体に少なくとも部分的にアクセスすることによって実施可能な動作を実施する要求を受信することであって、データ記憶デバイスが、データ記憶デバイスの動作を潜在的に妨げるように決定されたデバイスの集合に対応する、受信することと、
デバイスの集合の現在の活動状態に少なくとも部分的に基づいて、動作が実施され得る様式を決定することと、
決定された様式で動作を実施することと、を含む、コンピュータ実装方法。
32.データ記憶デバイスは、1つ以上の機械的可動部を利用してデータにアクセスする、付記31に記載のコンピュータ実装方法。
33.データ記憶デバイスの記憶媒体へのアクセスは、データ記憶デバイス上の読み取り、書き込み、または削除動作を実施する能力を含む、付記31または32に記載のコンピュータ実装方法。
34.現在の活動状態は、デバイスの集合の1つ以上のデバイス状態がデータ記憶デバイスの動作を潜在的に妨げるために1つ以上の条件を満たすかを示す、付記31〜33のいずれか一付記に記載のコンピュータ実装方法。
35.エラーを潜在的に引き起こすと各々決定されたデバイスの集合は、要求されたデータ記憶デバイスへの空間的近接のための1つ以上の条件を満たす、付記31〜34のいずれか一付記に記載のコンピュータ実装方法。
36.動作を実施することは、データ記憶デバイスの記憶媒体へのアクセスを遅延させることを含む、付記31〜35のいずれか一付記に記載のコンピュータ実装方法。
37.システムであって、
複数のデータ記憶デバイスと、
1つ以上のプロセッサと、
メモリであって、1つ以上のプロセッサによって実行されるとき、システムに、以下のこと、
特定のデータ記憶デバイスの動作を潜在的に妨げると決定された複数のデータ記憶デバイスからのデータ記憶デバイスの集合の現在の活動状態を決定することと、
決定された現在の活動状態に少なくとも部分的に基づいて、動作が特定のデータ記憶デバイスを用いて実施可能である様式を決定することと、
決定された様式に従って動作を実施させることと、を行わせる命令を含むメモリと、を備える、システム。
38.複数のデータ記憶デバイスのうちのデータ記憶デバイスは、1つ以上の機械的可動部を利用して1つ以上の動作を実施する、付記37に記載のシステム。
39.動作は、特定のデータ記憶デバイス上の読み取り、書き込み、または削除動作を含む、付記37または38に記載のシステム。
40.現在の活動状態は、その集合内のデータ記憶デバイスの少なくとも部分集合がアクティブであるかに少なくとも部分的に基づいている、付記37〜39のいずれか一付記に記載のシステム。
41.特定のデータ記憶デバイスの動作を潜在的に妨げると決定された記憶デバイスは、特定のデータ記憶デバイスに空間的に近接であると決定される、付記37〜40のいずれか一付記に記載のシステム。
42.特定のデータ記憶デバイスに空間的に近接であると決定された記憶デバイスは、共通の取り付け具を共有する、付記41に記載のシステム。
43.特定のデータ記憶デバイスに空間的に近接であると決定された記憶デバイスは、振動伝達媒体を共有する、付記41または42に記載のシステム。
44.動作を実施することは、現在の活動状態が変化するまで動作を遅延させることを含む、付記37〜43のいずれか一付記に記載のシステム。
45.1つ以上のコンピュータ可読記憶媒体であって、システムの1つ以上のプロセッサによって実行されるとき、システムに、以下のこと、
動作を実施するデータ記憶システム内のデータ記憶デバイスを選択することと、
選択されたデータ記憶デバイスの動作を潜在的に妨げると決定されたデバイスの現在の活動状態に少なくとも部分的に基づいて、動作を実行する様式を決定することと、
決定された様式に従って動作を実施することと、を行わせる命令をその中に記憶させる、1つ以上のコンピュータ可読記憶媒体。
46.デバイスは、データ記憶デバイスを含むデータ記憶デバイスのアレイからのものである、付記45に記載の1つ以上のコンピュータ可読記憶媒体。
47.動作は、選択されたデータ記憶デバイス上の読み取り、書き込み、または削除動作を含む、付記45または46に記載の1つ以上のコンピュータ可読記憶媒体。
48.現在の活動状態は、選択されたデータ記憶デバイスの動作を潜在的に妨げると決定されたデバイスのうちの1つ以上のデバイスがアクティブであるかに少なくとも部分的に基づいている、付記45〜47のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
49.動作を実施する様式を決定することは、動作を実施するための異なるデータ記憶デバイスを選択することを含む、付記45〜48のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
50.選択されたデータ記憶デバイスを用いて実施される動作は、選択されたデータ記憶デバイスの動作を潜在的に妨げると決定された記憶デバイスがアイドル状態にあるまで遅延する、付記45〜49のいずれか一付記に記載の1つ以上のコンピュータ可読記憶媒体。
他の変形は、本開示の趣旨の範囲内である。したがって、開示される技術は、様々な修正及び代替の構築物の影響を受けやすいが、ある特定の例示されるこれらの実施形態は、図面に示され、詳細に上記に記載されている。しかしながら、本発明を開示された特定の1つの形態または複数の形態に限定する意図はないが、それとは逆に、意図は、添付の特許請求の範囲に規定されるように、本発明の趣旨及び範囲内に入るすべての修正、代替の構築物、及び均等物を網羅することであることが理解されるべきである。
開示される実施形態を説明することにおいて(特に以下の特許請求の範囲において)、用語「1つの(a)」、「1つの(an)」、「その(the)」、及び同様の指示語の使用は、特に本明細書に示されない限り、または文脈により明らかに矛盾しない限り、単数形及び複数形の両方を網羅するように解釈されるべきである。用語「備える(comprising)」、「有する(having)」、「含む(including)」、及び「含む(containing)」は、特に記載されない限り、非限定的用語(すなわち、「含むが限定されない」を意味する)と解釈されるべきである。用語「接続された(connected)」は、修正されず、物理的接続を指すとき、何か介在するものがある場合であっても、部分的または完全に中に含まれ、取り付けられ、またはともに結合されると解釈されるべきである。本明細書の値の範囲の列挙は、特に本明細書に示されない限り、範囲内に入る各別個の値を個別に参照する簡単な方法として機能を果たすことが単に意図され、各別個の値は、本明細書に個別に列挙されるかのように本明細書に組み込まれる。用語「集合」(例えば、「項目の集合」)または「部分集合」は、特に記載されない限り、または文脈により矛盾しない限り、1つ以上の元を含む非空集合と解釈されるべきである。さらに、特に記載されない限り、または文脈により矛盾しない限り、対応する集合の用語「部分集合」は、対応する集合の真部分集合を必ずしも示さないが、部分集合及び対応する集合は等しくてもよい。
「A、B、及びCのうちの少なくとも1つ」または「A、B及びCのうちの少なくとも1つ」という形態の語句などの接続語は、具体的に特に記載されない限り、または特に文脈により明らかに矛盾しない限り、そうでなければ、項目、用語などがA、B、もしくはC、またはA、B、及びCの集合の任意の非空部分集合のいずれかであり得ることを提示するために一般に使用される文脈で理解される。例えば、上記の接続語で使用される3つの元を有する集合の例示的な実施例では、「A、B、及びCのうちの少なくとも1つ」及び「A、B及びCのうちの少なくとも1つ」は、以下の集合{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のうちのいずれかを指す。したがって、このような接続語は、ある特定の実施形態がAのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つが各々存在する必要があることを暗示することが概して意図されない。
本明細書に記載されるプロセスの動作は、特に本明細書に示さない限り、または特に文脈により明らかに矛盾しない限り、任意の好適な順序で実施され得る。本明細書に記載されるプロセス(またはこれらの変形及び/または組み合わせ)は、実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で実施されてもよく、これらのハードウェアまたは組み合わせによって、1つ以上のプロセッサ上で集団的に実行するコード(例えば、実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装されてもよい。このコードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態でコンピュータ可読記憶媒体に記憶されてもよい。コンピュータ可読記憶媒体は、非一時的であってもよい。
本明細書に提供された任意及びすべての実施例、または例示的な用語(例えば、「などの(such as)」)の使用は、本発明の実施形態を単により良く解明することが意図され、特に特許請求されない限り、本発明の範囲に制限を課すものではない。本明細書における用語は、本発明の実践に不可欠なものとしてあらゆる特許請求されない要素も示すと解釈されるべきではない。
本開示の好ましい実施形態が本明細書に記載され、本発明を実施するために本発明者らに既知である最良のモードを含む。これらの好ましい実施形態の変形は、前述の説明を読むことで当業者に明らかになり得る。本発明者らは、当業者が必要に応じてこのような変形を利用することを予期し、本発明者らは、本開示の実施形態に対して、本明細書に具体的に記載されるのとは別の方法で実践されることを意図する。したがって、本開示の範囲は、適用法によって許可されるとき、ここに添付される特許請求の範囲に列挙される主題のすべての修正及び均等物を含む。さらに、すべての可能な変形における上述の要素の任意の組み合わせは、特に本明細書に示されない限り、または特に文脈により明らかに矛盾しない限り、本開示の範囲によって包含される。
本明細書に引用される公表文献、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照によって組み込まれるように個別かつ具体的に示され、その全体が本明細書に記載されたかのように、同じ程度まで参照により本明細書に組み込まれる。

Claims (15)

  1. データを記憶するためのコンピュータ実装方法であって、
    実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
    データ記憶システムに記憶されるデータオブジェクトを受信することであって、前記データ記憶システムが、複数の物理的データ記憶位置を含み、前記複数の物理的データ記憶位置の各位置が、複数の物理的特性を有する、前記受信することと、
    複数のデータ断片であって、前記データ断片の真部分集合が前記データオブジェクトを構築するのに使用可能であるように構成された、前記複数のデータ断片を生成するように、冗長符号化スキームを適用することと、
    前記複数の物理的データ記憶位置の少なくとも部分集合の物理的特性に適用されたデータ配置規則の集合に少なくとも部分的に基づいて、前記生成されたデータ断片の配置を決定することであって、前記配置が、前記生成されたデータ断片のうちのそれぞれのデータ断片について、前記データ配置規則の集合を満たす前記複数の物理的データ記憶位置からの複数の位置を示す、前記決定することと、
    前記決定された配置に従って前記データ断片を記憶させることと、を含む、前記コンピュータ実装方法。
  2. 前記物理的特性は、多重記憶デバイスの構成内の位置、データ記憶ラック内の多重記憶デバイスユニットの位置、データ記憶ラックの位置、データセンタ室、データセンタ、及びデータセンタ地理的位置を含む群から選択される1つ以上の物理的特性を含む、請求項1に記載の前記コンピュータ実装方法。
  3. 前記物理的特性は、プラッタ、オンプラッタ配置、プラッタの面、及び読み取り/書き込みヘッドを含む群から選択される1つ以上の物理的特性を含む、請求項1または2に記載の前記コンピュータ実装方法。
  4. 前記データ配置規則の集合は、前記データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、請求項1〜3のいずれか一項に記載の前記コンピュータ実装方法。
  5. 前記生成されたデータ断片の前記配置は、前記データオブジェクトを受信する前に前記データ配置規則を満たすと前記データ記憶システムによって予め決定された複数の配置から、前記データ記憶システムが前記配置を選択することによって決定される、請求項1〜4のいずれか一項に記載の前記コンピュータ実装方法。
  6. 前記データ記憶システムは、コンピューティングリソースサービスプロバイダによって複数の顧客に提供されたデータ記憶サービスを支援して動作し、
    前記データオブジェクトは、前記データ記憶システムに記憶するための顧客のデータを含む、請求項1〜5のいずれか一項に記載の前記コンピュータ実装方法。
  7. データを記憶するためのコンピュータ実装方法であって、
    実行可能な命令によって構成された1つ以上のコンピュータシステムの制御下で、
    データ記憶システムに記憶されるデータを受信することであって、前記データ記憶システムが、複数の物理的データ記憶位置を含み、前記複数の物理的データ記憶位置の各位置が、複数の物理的特性を有する、前記受信することと、
    前記複数の物理的データ記憶位置の少なくとも部分集合の物理的特性に適用されたデータ配置規則の集合に少なくとも部分的に基づいて、前記データの断片の配置を決定することであって、前記配置が、前記データの断片のうちのそれぞれのデータの断片について、前記データ配置規則の集合を満たす前記複数の物理的データ記憶位置からの複数の位置を示す、前記決定することと、
    前記決定された配置に従って前記断片を記憶させることと、を含む、前記コンピュータ実装方法。
  8. 冗長符号化スキームを用いて前記断片を生成することをさらに含む、請求項7に記載の前記コンピュータ実装方法。
  9. 前記物理的特性は、多重記憶デバイスの構成を含む多重記憶デバイスユニット内の位置、及び1つ以上の多重記憶デバイスユニットを含むデータ記憶ラック内の位置を含む、請求項7または8に記載の前記コンピュータ実装方法。
  10. 前記物理的特性は、記憶デバイスの複数のプラッタからのプラッタ上の位置を示す1つ以上の物理的特性を含む、請求項7〜9のいずれか一項に記載の前記コンピュータ実装方法。
  11. 前記データ配置規則の集合は、前記データ配置規則の集合が満たされるとき、1つ以上の異種混在性の条件を満たすように構成される、請求項7〜10のいずれか一項に記載の前記コンピュータ実装方法。
  12. 前記断片の全体的サイズは、前記受信されたデータのサイズを超え、前記断片の各々は、前記受信されたデータの前記サイズ未満の個別サイズを有する、請求項7〜11のいずれか一項に記載の前記コンピュータ実装方法。
  13. システムであって、
    1つ以上のプロセッサと、
    1つ以上のメモリであって、前記システムの前記1つ以上のプロセッサによって実行されるとき、前記システムに、以下のこと、
    データ配置規則の集合を、データの断片に、対応する物理的特性を有する複数の物理的データ記憶位置からの複数の位置の中で前記データの断片の配置を決定するように、適用することであって、前記配置が、前記データの断片のうちのそれぞれのデータの断片について、対応する物理的特性を有する物理的データ記憶位置が前記データ配置規則を満たすと決定されたことを示す、前記適用することと、
    前記データ配置規則の集合の前記適用に従って、前記データの断片をデータ記憶システムに持続的に記憶させることと、を行わせる命令をその上に記憶させた、前記1つ以上のメモリと、を備える、前記システム。
  14. 前記物理的特性は、多重記憶デバイスの構成内の位置、データ記憶ラック内の多重記憶デバイスユニットの位置、データ記憶ラック位置、データセンサ室、データセンタ、及びデータセンタの地理的位置を含む群から選択される1つ以上の物理的特性を含む、請求項13に記載の前記システム。
  15. 前記物理的特性は、プラッタ、オンプラッタ配置、プラッタの面、及び読み取り/書き込みヘッドを含む群から選択される1つ以上の物理的特性を含む、請求項13または14に記載の前記システム。
JP2016513985A 2013-05-15 2014-05-07 ハードウェア故障に基づくデータの割り当て Active JP6302049B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/895,205 2013-05-15
US13/895,205 US9378075B2 (en) 2013-05-15 2013-05-15 Reducing interference through controlled data access
US13/895,237 US9697063B2 (en) 2013-05-15 2013-05-15 Allocating data based on hardware faults
US13/895,237 2013-05-15
PCT/US2014/037143 WO2014186191A1 (en) 2013-05-15 2014-05-07 Allocating data based on hardware faults

Publications (2)

Publication Number Publication Date
JP2016521426A JP2016521426A (ja) 2016-07-21
JP6302049B2 true JP6302049B2 (ja) 2018-03-28

Family

ID=51898788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016513985A Active JP6302049B2 (ja) 2013-05-15 2014-05-07 ハードウェア故障に基づくデータの割り当て

Country Status (5)

Country Link
US (3) US9697063B2 (ja)
EP (1) EP2997476A4 (ja)
JP (1) JP6302049B2 (ja)
CN (1) CN105308580B (ja)
WO (1) WO2014186191A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
US9098446B1 (en) * 2013-05-20 2015-08-04 Amazon Technologies, Inc. Recovery of corrupted erasure-coded data files
US9098447B1 (en) * 2013-05-20 2015-08-04 Amazon Technologies, Inc. Recovery of corrupted erasure-coded data files
US9158927B1 (en) 2013-06-24 2015-10-13 Amazon Technologies, Inc. Cross-region recovery of encrypted, erasure-encoded data
US9489252B1 (en) 2013-11-08 2016-11-08 Amazon Technologies, Inc. File recovery using diverse erasure encoded fragments
US9753807B1 (en) 2014-06-17 2017-09-05 Amazon Technologies, Inc. Generation and verification of erasure encoded fragments
US20160062832A1 (en) 2014-09-02 2016-03-03 Netapp. Inc. Wide spreading data storage architecture
US9767104B2 (en) 2014-09-02 2017-09-19 Netapp, Inc. File system for efficient object fragment access
US9823969B2 (en) 2014-09-02 2017-11-21 Netapp, Inc. Hierarchical wide spreading of distributed storage
US9489254B1 (en) 2014-09-29 2016-11-08 Amazon Technologies, Inc. Verification of erasure encoded fragments
US9552254B1 (en) 2014-09-29 2017-01-24 Amazon Technologies, Inc. Verification of erasure encoded fragments
US9431061B1 (en) 2015-04-24 2016-08-30 Netapp, Inc. Data write deferral during hostile events
US9817715B2 (en) 2015-04-24 2017-11-14 Netapp, Inc. Resiliency fragment tiering
US10146612B1 (en) * 2015-06-08 2018-12-04 Sprint Communications Company L.P. Historical disk error monitoring
US10379742B2 (en) 2015-12-28 2019-08-13 Netapp, Inc. Storage zone set membership
US10514984B2 (en) 2016-02-26 2019-12-24 Netapp, Inc. Risk based rebuild of data objects in an erasure coded storage system
US10055317B2 (en) 2016-03-22 2018-08-21 Netapp, Inc. Deferred, bulk maintenance in a distributed storage system
US10725857B2 (en) * 2018-02-27 2020-07-28 Western Digital Technologies, Inc. Data storage system for improving data throughput and decode capabilities
JP7039348B2 (ja) * 2018-03-20 2022-03-22 キオクシア株式会社 書き込み制御装置、ストレージ装置、ネットワークシステム、および書き込み制御方法
CN110597453A (zh) * 2018-06-13 2019-12-20 杭州海康威视系统技术有限公司 一种云存储系统中的视频数据存储方法及装置
US11662938B2 (en) * 2020-05-11 2023-05-30 Nantcell, Inc. Object storage and access management systems and methods
US20210103403A1 (en) * 2020-11-09 2021-04-08 Shaopeng He End-to-end data plane offloading for distributed storage using protocol hardware and pisa devices

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485474A (en) * 1988-02-25 1996-01-16 The President And Fellows Of Harvard College Scheme for information dispersal and reconstruction
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US6304406B1 (en) * 1998-06-05 2001-10-16 Seagate Technology Llc Rotational vibration compensation using a fixed head and a constant frequency pattern
US7253982B1 (en) * 2000-08-15 2007-08-07 Maxtor Corporation Dynamic shock detection in disk drive using hair trigger timer
US6948102B2 (en) * 2002-04-29 2005-09-20 International Business Machines Corporation Predictive failure analysis for storage networks
US6789165B2 (en) * 2002-05-10 2004-09-07 International Business Machines Corporation Data storage array method and system
GB0221638D0 (en) * 2002-09-17 2002-10-30 Ibm Device system and method for predictive failure analysis
CN1195274C (zh) * 2003-01-25 2005-03-30 华中科技大学 基于集群视频服务器的节目源分片分布式存储方法
US7185222B2 (en) * 2003-11-14 2007-02-27 International Business Machines Corporation Apparatus, system, and method for maintaining data in a storage array
JP2005157622A (ja) * 2003-11-25 2005-06-16 Hitachi Ltd アイドルシークのためのディスクアレイ装置
KR20060133555A (ko) * 2003-12-29 2006-12-26 셔우드 인포메이션 파트너스 인코포레이션 멀티플 hdd 케이스를 이용한 대량 저장 시스템 및 방법
US7770076B2 (en) 2004-11-02 2010-08-03 Nvidia Corporation Multi-platter disk drive controller and methods for synchronous redundant data operations
US7533330B2 (en) 2005-06-27 2009-05-12 Seagate Technology Llc Redundancy for storage data structures
JP2007087558A (ja) * 2005-09-26 2007-04-05 Fujitsu Ltd ディスク制御装置、ディスク制御方法およびディスク制御プログラム
JP4718340B2 (ja) 2006-02-02 2011-07-06 富士通株式会社 ストレージシステム、制御方法及びプログラム
CN100495362C (zh) * 2006-07-18 2009-06-03 威盛电子股份有限公司 可锁定码的快取及其处理器、控制器与控制方法
US8271140B2 (en) * 2006-08-25 2012-09-18 International Business Machines Corporation Periodic rotational vibration check for storage devices to compensate for varying loads
US8286029B2 (en) * 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
JP5137409B2 (ja) 2007-02-05 2013-02-06 株式会社日立製作所 ファイル格納方法及び計算機システム
US7792882B2 (en) 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
US8108502B2 (en) 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
US20100049931A1 (en) 2008-08-20 2010-02-25 Jacobson Michael B Copying Logical Disk Mappings Between Arrays
US8560639B2 (en) 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US9037541B2 (en) * 2009-04-30 2015-05-19 Microsoft Technology Licensing, Llc Metadata for data storage array
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US7965460B2 (en) * 2009-08-20 2011-06-21 Seagate Technology Llc Jerk detection for data storage device
US8370312B1 (en) 2009-09-15 2013-02-05 Symantec Corporation Systems and methods for using cloud-based storage to optimize data-storage operations
US9135018B2 (en) 2009-12-11 2015-09-15 Deutsche Telekom Ag Computer cluster and method for providing a disaster recovery functionality for a computer cluster
US8468302B2 (en) 2010-01-14 2013-06-18 Hitachi, Ltd. Storage system
JP5598124B2 (ja) 2010-07-09 2014-10-01 日本電気株式会社 データ記録再生装置、データ記録方法、及び、データ記録プログラム
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
CN102646024B (zh) * 2011-02-17 2015-02-18 纬创资通股份有限公司 多硬盘的读写管理方法与系统、电子装置
US9128910B1 (en) * 2011-03-16 2015-09-08 Tintri Inc. Avoiding long access latencies in redundant storage systems
JP5732959B2 (ja) * 2011-03-26 2015-06-10 富士通株式会社 ストレージ装置及びストレージシステム
JP5958020B2 (ja) * 2012-03-30 2016-07-27 富士通株式会社 ストレージシステム
US8930663B2 (en) * 2012-09-24 2015-01-06 Infinidat Ltd. Handling enclosure unavailability in a storage system
US9594619B2 (en) * 2012-10-08 2017-03-14 Hewlett Packard Enterprise Development Lp Robust hardware fault management system, method and framework for enterprise devices
US9003086B1 (en) * 2012-10-27 2015-04-07 Twitter, Inc. Dynamic distribution of replicated data
US9009424B2 (en) 2012-10-29 2015-04-14 International Business Machines Corporation Data placement for loss protection in a storage system
CN103984607A (zh) 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
US8862847B2 (en) * 2013-02-08 2014-10-14 Huawei Technologies Co., Ltd. Distributed storage method, apparatus, and system for reducing a data loss that may result from a single-point failure
US8824261B1 (en) 2013-03-07 2014-09-02 Seagate Technology Llc Peer to peer vibration mitigation
US20140259023A1 (en) * 2013-03-07 2014-09-11 Seagate Technology Llc Adaptive vibration mitigation

Also Published As

Publication number Publication date
EP2997476A1 (en) 2016-03-23
EP2997476A4 (en) 2016-12-28
WO2014186191A1 (en) 2014-11-20
US9378075B2 (en) 2016-06-28
US9697063B2 (en) 2017-07-04
JP2016521426A (ja) 2016-07-21
US20170300396A1 (en) 2017-10-19
CN105308580A (zh) 2016-02-03
US20140344531A1 (en) 2014-11-20
CN105308580B (zh) 2019-08-13
US20140344532A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
JP6302049B2 (ja) ハードウェア故障に基づくデータの割り当て
US11334533B2 (en) Dynamic storage tiering in a virtual environment
US10705767B2 (en) Optimizing user satisfaction when training a cognitive hierarchical storage-management system
US20190163564A1 (en) Data transfer priority levels
US8307014B2 (en) Database rebalancing in hybrid storage environment
JP6258494B2 (ja) 仮想コンピュータ処理のインスタンス移動
CA2910211C (en) Object storage using multiple dimensions of object information
US9165002B1 (en) Inexpensive deletion in a data storage system
US8862800B2 (en) Distributed storage network including memory diversity
US8560801B1 (en) Tiering aware data defragmentation
JP2005267600A (ja) 長期データ保護システム及び方法
JP2016515731A (ja) レプリケーションターゲットサービス
US8924359B1 (en) Cooperative tiering
US20200293219A1 (en) Multi-tiered storage
JP2023517564A (ja) リモート・ファイルの予測プロビジョニング方法、システム、プログラム
CA2893594C (en) Virtual tape library system
US9734195B1 (en) Automated data flow tracking
US9898485B2 (en) Dynamic context-based data protection and distribution
Yin et al. D $^{3} $: A dynamic dual-phase deduplication framework for distributed primary storage
US10268376B2 (en) Automated deployment and assignment of access devices in a dispersed storage network
US9128823B1 (en) Synthetic data generation for backups of block-based storage
US10540329B2 (en) Dynamic data protection and distribution responsive to external information sources
US9569453B1 (en) Systems and methods for simulating file system instances
Fu et al. Data adaptively storing approach for hadoop distributed file system
US10241689B1 (en) Surface-based logical storage units in multi-platter disks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180301

R150 Certificate of patent or registration of utility model

Ref document number: 6302049

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250