JP4922496B2 - I/o要求に優先順位を与える方法 - Google Patents
I/o要求に優先順位を与える方法 Download PDFInfo
- Publication number
- JP4922496B2 JP4922496B2 JP2001075172A JP2001075172A JP4922496B2 JP 4922496 B2 JP4922496 B2 JP 4922496B2 JP 2001075172 A JP2001075172 A JP 2001075172A JP 2001075172 A JP2001075172 A JP 2001075172A JP 4922496 B2 JP4922496 B2 JP 4922496B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- host
- data
- rebuild
- raid
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、記憶アレイに関し、より具体的には、本発明は、I/O要求に優先順位を与えて、再構築中におけるホストのI/Oパフォーマンスおよび記憶アレイの可用性を向上させることに関する。
【0002】
【従来の技術】
従来からのディスクアレイデータ記憶システムは、単一の大容量記憶システムを形成するよう配置され調整された複数の記憶ディスクドライブ装置を有している。大容量記憶システムの一般的な設計目的には、メガバイト単位の低コスト、高い入出力パフォーマンス、および高いデータ可用性が含まれる。データ可用性は、ディスクまたは他のコンポーネントが故障した場合に動作の継続を保証しつつ、記憶システムに格納されたデータにアクセスすることができる能力を含む。データ可用性は、データまたはデータ間の関係を記憶システムの複数の場所に格納するといった冗長性を使用することによって提供されることが多い。ディスクが故障した場合、冗長データが、システムの動作可能な部分から検索され、コンポーネントの故障に起因して失われた元のデータを再生するのに使用される。
【0003】
ディスクドライブに冗長データを格納する2つの一般的な方法がある。すなわち、ミラーリングおよびパリティである。ミラーリングの冗長性では、格納されるデータは複製され、記憶システムの同じサイズの2つの別々の領域(元のデータの記憶領域および冗長データの記憶領域)に格納される。パリティの冗長性では、元のデータは元のデータの記憶領域に格納され、冗長データは冗長データの記憶領域に格納されるが、冗長データはパリティデータのみであるので、冗長データの記憶領域のサイズは元のデータの記憶領域のサイズより小さい。
【0004】
RAID(Redundant Array of IndependentDisks)記憶システムは、冗長データを格納するために物理記憶容量の一部が使用されるディスクアレイシステムである。一般に、RAIDシステムは、頭文字RAIDのもとで示される7つのアーキテクチャすなわちレベルのうちの1で特徴付けられる。RAID0アーキテクチャは、いかなる冗長性もなく構成されているディスクアレイシステムである。このアーキテクチャは、実際には冗長アーキテクチャではないため、RAID0はしばしばRAIDシステムの議論からは省かれる。
【0005】
RAID1アーキテクチャは、ミラーリングの冗長性に従って構成された記憶ディスクを含む。元のデータはディスクのあるセットに格納され、そのデータの複製コピーは別のディスクに保持される。RAID2〜RAID6アーキテクチャは、すべてパリティタイプの冗長記憶を伴う。特に、RAID5アーキテクチャは、ディスクのすべてにわたってデータおよびパリティ情報を分散させる。一般に、ディスクは、「ブロック」と呼ばれる等しいサイズのアドレス領域に分割される。同じユニットアドレス範囲を有するそれぞれのディスクからの一組のブロックを、「ストライプ」と呼ぶ。RAID5において、それぞれのストライプは、Nブロックのデータと、そのNブロックにおけるデータについての冗長情報を含む1つのパリティブロックと、を有している。
【0006】
RAID5において、パリティブロックは、ストライプごとに異なるディスクを循環する。例えば、5つのディスクを有するRAID5アーキテクチャにおいて、第1のストライプのパリティブロックは5番目のディスクにあり、第2のストライプのパリティブロックは4番目のディスクにあり、第3のストライプのパリティブロックは3番目のディスクにある、等である。後に続くストライプのパリティブロックは、一般に、螺旋パターン(他のパターンも可能であるが)でディスクドライブを循環する(これを、「precess」と呼ぶ)。RAID2〜RAID4アーキテクチャは、どのようにしてパリティブロックをディスクに配置するかにおいてRAID5と異なっている。
【0007】
RAID6アーキテクチャは、データがストライプ化されているという点でRAID4および5と同様であるが、元のデータに対し2つの独立した別個のパリティ値(本明細書では、PおよびQと呼ぶ)を利用するという点で異なっている。Pパリティは、一般に、元のデータのすべてのディスクからのストライプにおいて、対応するデータ・チャンク(ひとかたまりのデータ)のビット毎の排他的論理和関数を使用して計算される。これは、1つの方程式の1つの未知数の積和演算に対応する。一方、Qパリティは、Pとは無関係に、積和演算に対して異なるアルゴリズムを使用して線形に計算される。その結果、各パリティ値は独立したアルゴリズムを使用して計算され、それぞれ別個のディスクに格納される。したがって、RAID6システムは、ストライプにおいて2つの別々のディスクが故障した場合であってもデータを再構築することができるが(再構築空間が使用可能であると仮定する)、RAID5システムは、ストライプにおいて1つのディスクが故障した場合にのみデータを再構築することができる。
【0008】
RAID5と同様に、RAID6アーキテクチャは、2つのパリティブロックを、ストライプにおけるデータ記憶装置のすべてにわたって分散させる。すなわち、N+2個のデータ記憶装置のストライプにおいて、各ストライプは、Nブロックの元のデータと2ブロックの独立したパリティデータとを有する。パリティデータ・ブロックのうちの一方は、N+2個のデータ記憶装置のうちの1つに格納され、パリティデータ・ブロックのうちの他方は、N+2個のデータ記憶装置のうちの別のものに格納される。RAID5と同様に、RAID6におけるパリティブロックは、ストライプごとに異なるディスクを循環される。例えば、所定のストライプにおいて5つのデータ記憶装置を使用するRAID6システムにおいて、ブロックの第1のストライプのパリティブロックは、4番目と5番目の装置に書込まれ、ブロックの第2のストライプのパリティブロックは、3番目と4番目の装置に書込まれ、ブロックの第3のストライプのパリティブロックは、2番目と3番目の装置に書込まれる、等である。一般に、この場合も、次に続くブロックについてのパリティブロックの場所は、他のパターンも使用可能であるが、そのストライプにおける次の論理装置にシフトする。
【0009】
階層型データ記憶システムにより、異なる技術に従ってデータを格納することができる。階層型RAIDシステムでは、冗長性技術の利点と欠点との間のトレードオフを可能にするために、データは、RAID1およびRAID5等の複数のRAIDアーキテクチャに従って格納されることができる。
【0010】
さらに、データ記憶システムは、データが。システム内に同時に存在している複数の冗長グループに格納されることを可能にする。RAIDシステムでは、それぞれの冗長グループは、同じRAIDアーキテクチャ(または、階層型RAIDシステムについての複数のRAIDアーキテクチャ)を使用して冗長性を提供する、該RAIDシステムにおける一組のディスクである。例として、合計30個のディスクを有するRAIDシステムにおいて、10個のディスクは、第1のRAIDアーキテクチャを使用して(例えばRAID1を使用して)第1の冗長グループにいることができ、他の12個のディスクは、第2のRAIDアーキテクチャを使用して(例えば、RAID1およびRAID5を使用して)第2の冗長グループにいることができ、残りの8個のディスクは、第3のRAIDアーキテクチャを使用して(例えばRAID1およびRAID6を使用して)第3の冗長グループにいることができる。
【0011】
「Memory Systems with Data Storage Redundancy Management」と題されたJacobson等の米国特許第5,392,244号は、データ記憶状態および空間要求が変化した場合にデータを1つのRAIDタイプから他のRAIDタイプに移行させることができる階層型RAIDシステムを記述している。この特許(ヒューレット・パッカード社に譲渡されている)は、物理的記憶空間が、ミラーリングおよびパリティRAID領域(例えば、RAID1およびRAID5)を有するRAIDレベルの仮想記憶空間にマップされるマルチレベルRAIDアーキテクチャを記述している。RAIDレベルの仮想記憶空間は、アプリケーションレベルの仮想記憶空間にマップされる。このアプリケーションレベルの仮想記憶空間は、ユーザに対し、記憶空間を、1つの大きい連続してアドレス指定可能な空間として示すものである。動作中、ユーザの記憶要求がアプリケーションレベルの仮想空間で変化すると、データは、その変化に適応するために、RAIDレベル仮想空間においてミラーリングRAID領域とパリティRAID領域との間で移行することができる。例えば、ミラーリング冗長性に従っていったん格納されたデータは、シフトされて、パリティ冗長性を使用して格納されることができ、またその逆も可能である。さらなる背景技術の情報を提供するため、この米国特許第5,392,244号を参照によりこの明細書に取り入れる。
【0012】
【発明が解決しようとする課題】
RAIDシステムにおいてディスクが故障した場合、アレイにおけるデータは「再構築」される。これは一般に、ディスクアレイに対し複数の読出しおよび/または書込み要求を発行することを含むプロセスである。また一般に、RAIDシステムは、この再構築プロセス中、ホストコンピュータからの読出しおよび書込み要求に対して使用可能である。しかしながら、これらのホスト要求は、しばしば再構築要求によって使用されるものと同じリソース(資源)にアクセスする必要があり、そのため再構築要求と競合する。
【0013】
システムによっては、ホスト要求および再構築要求の間のこのような競合は、常に再構築要求を優先してホスト要求を遅延させる(その結果、記憶アレイのデータがより迅速に再構築され、記憶アレイが永久的にデータを失いつつある場合でなくても、ホスト要求に応答するシステムのパフォーマンスが低下する)か、または、常にホスト要求を優先して再構築要求を遅延させる(その結果、ホスト要求に応答するシステムのパフォーマンスは低下しないが、記憶アレイが永久的にデータを失いつつある場合であっても、記憶アレイのデータの再構築に非常に長い時間がかかる可能性がある)ことによって、解決される。記憶アレイは、例えば記憶アレイのもう1つの所定のディスクの故障によってデータが失われる結果となるときに、永久的にデータを失いつつある。
【0014】
後述されるが、I/O要求に優先順位を与えることによる、再構築中のホストのI/Oパフォーマンスおよび記憶アレイの可用性の向上は、これらおよび他の欠点を解決しようとするものである。
【0015】
【課題を解決するための手段】
入出力(I/O)要求に優先順位を与えることにより、再構築中におけるホストのI/Oパフォーマンスおよび記憶アレイの可用性を向上することが開示される。
【0016】
この発明の1つの側面によると、I/O要求に優先順位を与える方法が提供され、該方法は、記憶アレイが永久的にデータを失いつつあることを識別するステップと、記憶アレイが永久的にデータを失いつつあることが識別されことに応答して、該記憶アレイの少なくとも一部を再構築するI/O要求に、ホストのI/O要求に対する優先権を与えるステップとを含む。
【0017】
この発明の1つの側面によると、記憶アレイが永久的にデータを失いつつある(例えば、記憶アレイにおけるもう1つの所定のディスクの故障によってデータが失われる結果となる)とき、再構築I/O要求に、ホストI/O要求に対する優先権が与えられる。記憶アレイが永久的にデータを失いつつある状態でなくなるまで、再構築I/O要求はホストI/O要求に対する優先権を有し続け、上記状態でなくなった時点で、ホストI/O要求に、再構築I/O要求に対する優先権が与えられる。
【0018】
この発明の他の側面によると、ホストI/O要求および再構築I/O要求は、共に処理を待つために待ち行列に入力される。再構築I/O要求が優先権を有する時(例えば、「再構築優先」モードの時)、新たなI/O要求(ホストまたは再構築に関わらず)は、待ち行列の最下位に入力されて該待ち行列の最上位に向かって伝搬され、そこで先入れ先出し(FIFO)方式で処理される。しかしながら、ホストI/O要求が優先権を有する(例えば、「ホスト優先」モードである)時、新たな再構築I/O要求は待ち行列の最下位に入力され、新たなホストI/O要求は、該待ち行列の他のすべてのホストI/O要求より下であるがすべての再構築I/O要求より上に挿入される。これは、ホスト優先モードの場合はホストI/O要求が再構築I/O要求の前に処理されるが、再構築優先モードの場合はホストI/O要求および再構築I/O要求が受け取られた順序で処理される(その結果、ホストI/O要求よりも再構築I/Oモードに対し、より多くのシステムリソースが割当てられる)、という効果を有する。
【0019】
この発明の他の側面によると、再構築I/O要求が、ホストI/O要求に対する優先権を有するとき、ホストI/O要求に対する1つまたは複数のシステムリソースの割当てが制限される。この場合、ホストI/O要求によるシステムリソースの使用が閾値量を超えない限り、I/O要求(ホストまたは再構築に関わらず)は、受け取られた順序で処理される。閾値量を超えると、再構築I/O要求がホストI/O要求よりも前に処理される。
【0020】
この発明の他の側面によると、I/O要求(ホストまたは再構築に関わらず)の処理は複数の段階で発生する。より優先順位が高い方を優先するように、ある所定の要求の処理は、2つの段階の間で割り込みをかけられることができる。例として、再構築優先モードの時に新たな再構築I/O要求が受け取られた場合、ホストI/O要求の処理に割り込みをかけて、該再構築I/O要求の処理を可能にすることができる。
【0021】
【発明の実施の形態】
図1は、入出力(I/O)インターフェースバス26を介してデータ記憶システム24に接続されたホストコンピュータ22を備えるコンピュータシステム20を示す。ホストコンピュータ22は、例えばサーバまたはワークステーションとして構成されることができる汎用コンピュータである。コンピュータ22は、表示装置28と、中央処理装置(CPU)30と、キーボード32と、マウス34と、を有する。また、プリンタ、テープドライブ、CD−ROMドライブ、ネットワークインターフェース等、他のデータ入力および出力周辺装置を含んでもよい。図1において、ホストコンピュータ22は、ネットワーク36に接続されることにより、データ記憶システム24から1つまたは複数のクライアント(図示せず)にデータを提供する。
【0022】
データ記憶システム24は、ユーザデータおよび他の情報を保持するよう構成された記憶アレイを表す。1つの実施形態によると、データ記憶システム24は、異なるおよび/または複数の冗長方式に従ってデータを格納することができる階層型RAIDシステムである。ホストコンピュータ22は、診断の実行、パフォーマンスの評価、動作パラメータの設定のように、管理者または他のユーザがRAID記憶システムを管理するためのインターフェースを提供する。説明を簡単にするため、本明細書ではデータ記憶システム24をRAIDシステムとして述べるが、代替的に他のタイプの記憶アレイを使用することも可能である。
【0023】
図2は、ホストコンピュータ22およびデータ記憶システム24をより詳細に示す。コンピュータ22は、プロセッサ40と、揮発性メモリ(すなわち、RAM)42と、キーボード32と、マウス34と、不揮発性メモリ(例えば、ROM、ハードディスク、フロッピーディスク、CD−ROM、DVD等)44と、表示装置28と、を有する。管理モジュール46は、メモリ44に格納されており、プロセッサ40上で実行される。管理モジュール46は、データ記憶システム24の種々のパラメータを設定することができると共に、診断、パフォーマンス審査、容量分析等の管理機能を提供する。管理モジュール46は、表示装置28に視覚的なインターフェースを提供する記憶マネージャ・ユーザインターフェース(UI)48をサポートする。管理者は、後により詳細に説明するように、UI48を介して、データ記憶システム24の種々のパラメータを変更することにより、再構築I/O要求対ホストI/O要求に与えられる優先権を制御することができる。
【0024】
データ記憶システム24は、複数の記憶ディスク52、ディスクアレイコントローラ54aと54b、およびRAID管理システム56を備えたディスクアレイ50を含む。本明細書で使用される「ディスク」は、あらゆる大容量記憶装置、一般的には不揮発性でランダムアクセス可能な、再書込み可能の大容量記憶装置を言う。ディスクには、不揮発性電子記憶素子(例えば、PROM、EPROM、EEPROM等)だけでなく、磁気ディスクおよび光ディスクが含まれる。
【0025】
ディスクアレイコントローラ54aおよび54bは、スカジー(SCSI)のような、1つまたは複数のインターフェースバス58を介して、ディスクアレイ50に連結されている。RAID管理システム56は、インターフェースプロトコル60を介してディスクアレイコントローラ54aおよび54bに連結されている。RAID管理システム56を、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せによって具現化することができるということに注意されたい。さらに、RAID管理システム56を、別個のコンポーネント(図示せず)として、またはディスクアレイコントローラ54aおよび54b内に、またはホストコンピュータ22内に具現化することもできるということに注意されたい。1つの実施形態によると、RAID管理システム56は、データ記憶システム24の処理装置上で、またはコンピュータ22のプロセッサ40上で実行されるソフトウェアモジュールである。代替的に、RAID管理システム56は、他の処理装置によって実行されることができ、またはファームウェアにおいて具現化されることができ、またはハードウェア(例えば、ASIC)において具現化されることができる。
【0026】
ディスクアレイコントローラ54aおよび54bは、ディスクアレイ50へのデータの転送およびディスクアレイ50からのデータの転送を調整する。1つまたは複数の冗長グループをディスクアレイ50上で実現することができ、1つまたは複数のRAIDアーキテクチャレベルを、それぞれの冗長グループにおいて実現することができる。図2において、ディスクアレイコントローラ54aおよび54bは、まったく同じコントローラボードである。この並列なコントローラは、一方のコントローラが動作不能となった場合に連続したバックアップおよび冗長性を提供することにより、信頼性を向上させる。並列のディスクアレイコントローラ54aおよび54bは、リンク64を介してそれぞれのミラーリングされたメモリ62aおよび62bを有している。1つの実施形態によると、ミラーリングされたメモリ62aおよび62bは、バッテリーバックアップ式不揮発性RAM(NVRAM)であるが、代替的に他のタイプのメモリを使用することもできる。ミラーリングされたメモリ62aおよび62bは、ディスクアレイ50における記憶空間のメモリマップ、ディスクアレイ50から読み出されているデータのための読出しキャッシュ、ディスクアレイ50に書き込まれる前のデータのための書込みキャッシュのような、数種類の情報を格納する。図2には二重ディスクアレイコントローラ54aおよび54bが示されているが、3つ以上のコントローラが使用されるマルチコントローラ構成、または代替的にシングルコントローラ構成のような、異なる構成を使用することもできる。
【0027】
RAID管理システム56は、要求待ち行列66、待ち行列コントローラ68、優先順位識別部70、要求ディスパッチャ72、再構築コントローラ74および要求プロセッサ76を含む。再構築コントローラ74は、1つまたは複数のディスク52が故障した場合に、ディスクアレイ50によって維持される1つまたは複数のRAIDアーキテクチャレベルのいずれかにおけるデータの再構築を管理する。ディスク52の故障は、ディスク自体の問題またはディスクのアクセスに使用されるコンポーネント(例えば、バス)の問題に起因して、ディスク52全体またはディスク52の一部がアクセス不能になることを示す。ディスク故障の検出は当業者にとって周知であるため、本発明に関連する部分を除いてこれ以上の説明は省略する。
【0028】
ディスクアレイ50に異なるRAIDレベルが格納されることができることに起因して、異なるディスクが故障すると、異なるRAIDレベルが再構築されることとなる場合がある。記憶アレイのデータが再構築される方法は、故障の原因、アレイに採用されるRAIDレベル、冗長グループにおけるディスクの数のような多くの要因に依存して変わる。アレイにおいてデータを再構築する例としては、故障したディスクが使用されないように他のディスクおよび/またはRAIDレベルにデータを移行させること、新たにインストールされたディスクにデータをコピーする(または書込むべきデータを判断してそのデータを書込む)こと、指定されたバックアップまたはスペアディスクにデータを書込むこと、が含まれる。いずれにしても、RAIDレベルの再構築は、典型的には、ディスクアレイ50からのデータの読出しおよび/またはディスクアレイ50へのデータの書込みを含む。さらに、再構築プロセスは、故障の検出に応じて自動的に実行されることができ、または代替的に、ユーザ(または管理者)の要求に応じて実行されてもよい。RAIDレベルの再構築は当業者には周知であるため、本発明に関連する部分を除いてこれ以上の説明は省略する。
【0029】
図2に要求待ち行列66が示されているが、本明細書ではこれを、論理待ち行列構造(実際の待ち行列機構の実現を抽象化したもの)として説明する。要求待ち行列66は、広範囲な様々な方法のいずれによって実現されてもよい。かかる実現の例には、以下のものが含まれる。すなわち、すべてのI/O要求(ホストまたは再構築に関わりなく)が配置される単一の待ち行列を使用してもよい。または、複数の待ち行列を使用して、I/O要求を1つの待ち行列に配置し、再構築要求を他の待ち行列に配置するようにしてもよいし、代替的に、優先順位の異なる要求を異なる待ち行列に配置するようにしてもよい。または、要求および各要求の受け取りの時刻の簡単なリストを保持してもよい(このリストに、さらに各要求の優先順位をオプションとして含めてもよい)。
【0030】
要求待ち行列66は、コントローラ54aおよび54bによって処理されるべき、ディスクアレイ50に対するI/O要求を格納する。これらのI/O要求は、ホストコンピュータ22、または代替的に再構築コントローラ74で発生することができ、さらに、入力および/または出力要求(例えば、読出し要求、書込み要求等)であることができる。示されている実施例では、要求は、待ち行列コントローラ68によって要求待ち行列66に入力されるが、代替的に、ホストコンピュータ22または再構築コントローラ74によって要求待ち行列66に直接入力されてもよい。要求は、異なる方法で(たとえば、受け取られた順序で)要求待ち行列66に入力されることができ、または、後でより詳細に述べるようにいくつかの他の順序方式に従って、要求待ち行列66に入力されることができる。
【0031】
要求は、要求ディスパッチャ72によって要求待ち行列66から検索され、処理のために要求プロセッサ76に渡される。要求の処理は、要求の種類に基づいて変わるが、概して、要求を遂行するのに必要な動作を実行することを言う。これら動作には、例えば、パリティ値を計算すること、1つまたは複数のディスクにデータを書込むこと、1つまたは複数のディスクからデータを読出すこと、等が含まれることができる。要求ディスパッチャ72は、待ち行列に配置された順序で、または代替的に、後でより詳細に述べるような他の順序に従って、要求待ち行列66から要求を抽出することができる。
【0032】
優先順位識別部70は、ホストI/O要求または再構築I/O要求のどちらが他方に対する優先権を有するべきかを判断する。待ち行列コントローラ68および/または要求ディスパッチャ72の振舞いは、後でより詳細に説明するように、ホストI/O要求または再構築I/O要求のどちらが他方に対する優先権を有するべきかに基づいて変わることができる。
【0033】
概して、ホストI/O要求または再構築I/O要求に互いに対する優先権を与えるために、要求待ち行列66、待ち行列コントローラ68、優先順位識別部70および要求ディスパッチャ72は協調して動作する。ある特定の時刻に、ホスト要求または再構築要求のどちらが優先権を有しているかは、アレイ50が、永久的にデータを失う状態にどれくらい近い状態にあるかに従って決まる。一方のタイプの要求に、他方のタイプの要求に対する優先権を与えることは、要求ベースで行うことができ(例えば、他のいずれの要求よりも前に処理されるために、優先要求のすべてがディスクアレイコントローラ54aおよび54bに渡される)、または代替的に、リソースベースで行うことができる(例えば、優先権を持たない要求は、優先権を持つ要求よりもリソースの使用がより制限される)。
【0034】
図3は、ホストI/O要求および再構築I/O要求を管理する例示的なプロセスを示すフローチャートである。図3のプロセスは、図2のRAID管理システム56によって実現され、図2の要素を参照しつつ説明される。
【0035】
最初に、データ記憶システム24においてディスクの故障が無いとき、ホストI/O要求は優先権を有している(これを、「ホスト優先」と呼ぶ)(92)。ホストI/O要求は、RAIDレベルの低下をもたらすディスク故障が発生するまで、優先権を持ち続ける(94)。低下したRAIDレベルとは、1つまたは複数のディスクが故障したRAIDレベルを言う。1つまたは複数のRAIDレベルのデータを格納しているディスクが故障した場合、そのディスク故障によってRADIレベルが低下する。しかしながら、すべてのディスク故障がRAIDレベルの低下をもたらすものではない(例えば、ディスクがスペアディスクであってデータをまったく格納していない、またはディスクアレイが新しくまだRAIDレベルについて初期化されていない、または故障したディスクが別の冗長グループにある、等)。
【0036】
RAIDレベルの低下をもたらすディスク故障が発生すると、優先順位識別部70は、1つまたは複数のRAIDレベルが臨界点にあるか否かをチェックする(96)。臨界点とは、RAIDレベルが永久的にデータを失いつつある状態を言う。永久的にデータを失うとは、データを失って、該失ったデータを回復することができないことを言う。データを永久的に失うことは、単純にデータを失うこと(例えば、ディスク故障により)とは異なる。なぜならば、RAID記憶システムの本質は、いくつかのディスク故障が発生しても、永久的に失うことなく再構築することによって該ディスク上のデータを回復させることのできる冗長性を提供することだからである。
【0037】
1つの実施形態によると、RAIDレベルは、1つ(またはもう1つ)のディスクの故障によってそのRAIDレベルの少なくとも一部のデータが永久的に失われるであろうという場合、永久的にデータを失いつつあると識別される。RAIDアーキテクチャレベルにより、データの喪失無しに持ちこたえることができる故障の数は変化するため、冗長グループにおいて1つのディスクが故障すると、いくつかのRAIDレベル(例えば、RAID1またはRAID5)は永久的にデータを失いつつある状態になるが、他のRAIDレベル(例えば、RAID6)は、該冗長グループのさらに他のディスク(1つまたは複数)が故障するまで、永久的にデータを失いつつある状態にはならない、ということが、階層型データ記憶システムにおいては可能である。
【0038】
示されている実施例では、優先順位識別部70は、各RAIDレベルにおいてデータ喪失がもたらされる前にいくつのディスクの故障が許容されるか、および、どのRAIDレベルおよびどの冗長グループに、アレイ50のどのディスク52が使用されているか、に関してプログラムされている。ディスク52が故障すると、優先順位識別部70には、どのディスク(1つまたは複数)が故障したか(例えば、直接に、または再構築コントローラ74を介して)が通知される。同様に、故障したディスクの結果としてシステムがデータの再構築を完了した時も、優先順位識別部70に(例えば、再構築コントローラ74によって)通知される。したがって、優先順位識別部70は、どの冗長グループおよび各冗長グループ内のどのRAIDレベルが臨界点にあるかを、正確に判断することができる。
【0039】
優先順位識別部70が、ディスク故障の結果としていずれのRAIDレベルも臨界点に無いと判断した場合、ホストI/O要求に優先権が与えられ続ける(92)。こうして、かかる状況においては、ホストI/O要求は受け取られた順序で処理され、再構築I/O要求は、ホストI/O要求によって消費されていない使用可能なリソースがある場合に処理される。
【0040】
ステップ96に戻り、1つまたは複数のRAIDレベルがその臨界点にある場合、それらのRAIDレベルについて、再構築I/O要求にホストI/O要求に対する優先権が与えられる(それらのRAIDレベルの「再構築優先」と呼ばれる)(98)。再構築優先である場合、再構築I/O要求には、ホストI/O要求よりも優先的処置が与えられる(例えば、最初に処理される、またはより多くのリソースが割当てられる、等)。臨界点にあるRAIDレベルのそれぞれについてのこの優先順位は、そのRAIDレベルが臨界点にある限り続き(96)、臨界点でなくなった時、そのRAIDレベルについて、ホストI/O要求は再構築I/O要求に対する優先権を有する。例えば、冗長グループがRAID1データおよびRAID6データを含み、その冗長グループにおける1つのディスクが故障した場合、その冗長グループのRAID1は臨界点にあるがRAID6は臨界点にない。そのため、RAID1は再構築優先の状態にあるが、RAID6はまだホスト優先の状態にある。RAIDレベルがその臨界点にある時に、再構築I/O要求にホストI/O要求に対する優先権を与えることにより、そのRAIDレベルのデータをより迅速に再構築して、永久的にデータを失うかもしれないことに対する保護を支援することができる。
【0041】
代替的な実施形態によると、ステップ98において、少なくとも1つのRAIDレベルが臨界点にある場合、そのRAIDレベルおよび少なくとも1つの他のRAIDレベル(または、1つの実施例によるとすべてのRAIDレベル)は、ホストI/O要求に対する優先権が与えられた再構築I/O要求を有する。例えば、冗長グループがRAID1データおよびRAID6データを含み、その冗長グループの1つのディスクが故障した場合、その冗長グループのRAID1はその臨界点にあり、そのため、その冗長グループのRAID1およびRAID6は共に、(RAID6がその臨界点に無い場合であっても)再構築優先の状態になる。この場合、冗長グループ全体が再構築優先の状態にある。
【0042】
さらに、ステップ98において、臨界点にあるRAIDレベルの再構築I/O要求に、すべての冗長グループのホストI/O要求に対する優先権が与えられる(ある特定の冗長グループにおけるRAIDレベルのいずれもが臨界点にない場合であっても)ようにしてもよい。代替的に、臨界点にあるRAIDレベルの再構築I/O要求に、該臨界点にあるRAIDレベルと同じ冗長グループにおけるホストI/O要求に対してのみ優先権が与えられるようにしてもよい(この場合、その臨界点にあるRAIDレベルが無い他の冗長グループは、ホスト優先の状態を維持する)。
【0043】
図4は、ホストI/O要求または再構築I/O要求のどちらが優先権を有しているかに基づいて要求待ち行列を管理する例示的なプロセスを示すフローチャートである。図4のプロセスは、図2のRAID管理システム56によって実現され、図2の要素を参照しながら説明される。
【0044】
図4のプロセスにおいて、要求は、優先順位に基づいて要求待ち行列66の、ある場所に配置される。RAIDレベルが再構築優先の状態にある場合、要求は、受け取られた順序で要求待ち行列66に配置され、先入れ先出し(FIFO)方式で処理される。これにより、いくつかの再構築I/O要求が取出されて処理される前に、ホストI/O要求が要求待ち行列66から取出されて処理されることがあるが、通常は、再構築I/O要求は、処理においてホストI/O要求よりも多くのシステムリソースを消費するので、再構築I/O要求が優先権を有することとなる。
【0045】
最初に、I/O要求(ホストまたは再構築のいずれか)が受け取られ(108)、待ち行列コントローラ68は、(例えば優先順位識別部70に問い合せることにより)その要求が対応するRAIDレベル(代替的には、冗長グループ、またはディスクアレイ全体でもよい)が再構築優先の状態にあるかどうかをチェックする(110)。RAIDレベルが再構築優先の状態にある場合、待ち行列コントローラ68は、要求がホストI/O要求であるか再構築I/O要求であるかに関わらず、受け取られた要求を要求待ち行列66の最下位に配置する(112)。その後、処理は、別のI/O要求(ホストまたは再構築のいずれか)を受け取るため、ステップ108に戻る。
【0046】
一方、RAIDレベルがホスト優先状態である場合、待ち行列コントローラ68は、要求が、ホストI/O要求であるか再構築I/O要求であるかをチェックする(114)。要求が再構築I/O要求である場合、コントローラ68は、要求を、要求待ち行列66の最下位に配置する(112)。要求がホストI/O要求である場合、待ち行列コントローラ68は、要求待ち行列66に再構築要求があるか否かをチェックする(116)。要求待ち行列66に再構築要求が無い場合、コントローラ68は、要求を、要求待ち行列66の最下位に配置する(112)。一方、要求待ち行列66に再構築要求がある場合、コントローラ68は、要求を、待ち行列の他のすべてのホスト要求より下であるがすべての再構築要求よりも上に配置する(118)。その後、処理は、他のI/O要求を受け取るため、ステップ108に戻る。
【0047】
図4のプロセスにより、待ち行列コントローラ68が要求待ち行列66における要求の順序付けに責任を持つよう動作するため、要求ディスパッチャ72は、常に要求待ち行列66の最上位からI/O要求を取出すことができる。代替的に、コントローラ68に、受け取られた順序で要求を要求待ち行列66に配置させ、要求ディスパッチャ72に、要求待ち行列66から要求を処理のために取り出す順序を変更させることにより、同じ結果を得ることができる(例えば、ホスト優先状態にある場合、要求待ち行列66のホストI/O要求を探索し、処理のための何らかの再構築I/O要求を選択する前に、処理のためのホストI/O要求を(例えばFIFO方式で)選択する)。
【0048】
図5は、ホストI/O要求または再構築I/O要求のどちらが優先権を有しているかに基づいて要求待ち行列を管理する代替的なプロセスを示すフローチャートである。図5のプロセスは、図2のRAID管理システム56によって実現され、図2の要素を参照しつつ説明される。
【0049】
図5の例において、待ち行列コントローラ68は、受け取られた順序で要求を要求待ち行列66に配置する。その後、要求ディスパッチャ72は、再構築優先の状態にある時に、ある制限されたリソースの再構築I/Oの使用を確実に保証する方法で、要求待ち行列66から処理のための要求を選択する。再構築優先の状態にある時、制限されたリソースのホストI/Oによる使用が閾値量を超えた場合、再構築要求は、その閾値量を超えた状態でなくなるまで、ホスト要求よりも前に処理される。これにより、要求待ち行列66にホストI/O要求が無い場合には、再構築I/O要求は、その制限されたリソースを完全に使用することができると同時に、要求待ち行列66にホストI/O要求がある場合には、その制限されたリソースの再構築I/Oによる使用が特定の量(すなわち、下限)より低下することが防止される。制限されたリソースの再構築I/Oによる使用量をそのように保証することにより、RAIDレベルが再構築優先の状態にある時にいくつかのホストI/O要求が処理されるが、再構築I/O要求に対するリソースが不足することが防止される。
【0050】
図5は、制限されたリソースのホストI/Oによる使用を制限することに関して説明されているが、代替的に、RAID管理システム56は、類似した方法で、制限されたリソースの再構築I/Oによる使用を制限してもよい。このような実施形態では、ホスト優先の状態にある時に、制限されたリソースの再構築I/Oによる使用が閾値量を超えた場合、その閾値量を超えた状態でなくなるまで、ホスト要求は再構築要求よりも前に処理される。
【0051】
図2を参照すると、記憶システム24は、種々のリソースの任意のものを使用して実現することができる。かかるリソースの例には、メモリ、CPU、バス等が含まれる。システム24のこれらリソースのいずれについても、制限を設けることができる。1つの実施形態によると、ディスクアレイコントローラ54aおよび54b、またはディスクアレイコントローラ54aおよび54bとディスク52との間のバス(または他のチャネル)のように、「ボトルネック」であると考えられるリソースには制限がある。
【0052】
図5に戻ると、要求ディスパッチャ72は、ディスクアレイコントローラ54aおよび54bが他のI/O要求を処理することができるまで待機する(128)。用意ができると、要求ディスパッチャ72は、要求待ち行列66における次のI/O要求に対応するRAIDレベル(代替的には、冗長グループ、またはディスクアレイ全体でもよい)が再構築優先の状態にあるか否かをチェックする(130)。要求待ち行列66における要求のRAIDレベルは、該要求と共に要求待ち行列66に格納することができ、または、代替的に要求ディスパッチャ72が、対応するRAIDレベルを判断することができる(例えば、要求ディスパッチャ72を、RAIDレベルに対するアドレスのマッピングを持つようプログラムしてもよく、または、要求ディスパッチャ72が、RAIDレベルに対するアドレスのマッピングへのアクセスを持つようにしてもよい)。
【0053】
要求待ち行列66における次の要求に対応するRAIDレベルが再構築優先の状態に無い場合、処理のための次の要求が要求待ち行列66から選択される(132)。RAIDレベルが再構築優先の状態にある場合、要求ディスパッチャ72は、そのRAIDレベルについて、制限されたリソースのホストI/Oによる使用が閾値を超えているか否かをチェックする(134)。該制限されたリソースのホストI/Oによる使用が閾値を超えていない場合、要求待ち行列66における次の要求が、処理のために要求待ち行列66から選択される(132)。しかしながら、該制限されたリソースのホストI/Oによる使用が閾値を超えた場合、そのRAIDレベルについての次の再構築I/O要求が、処理のために要求待ち行列66から選択される(136)。
【0054】
代替的に、要求ディスパッチャ72は、ステップ130において、異なるRAIDレベル間の区別に関与しなくてもよい。例えば、いずれかのRAIDレベルが再構築優先の状態であると判断されたならば、ステップ134における判断は、そのいずれかのRAIDレベル(または組み合わされたRAIDレベルのすべて)についてのホストI/Oによる使用が閾値を超えているか否かに関して行うことができる。
【0055】
ホスト優先から再構築優先に変更するのに、または再構築優先からホスト優先に変更するのに超えるべき上記閾値をどれくらいにするか、およびどのリソースを制限するか、という決定は、種々の方法で行うことができる。図2のRAID管理システム56は、どのシステムリソースが制限されるべきかの特定およびそれらの対応する閾値について、事前に構成されることができる。かかるリソースの制限は、管理者または他のユーザにより変更されることにより、または代替的に管理者または他のユーザにより最初に入力されていてもよい。かかる入力は、例えば図2のユーザインターフェース48を介して受取られることが可能である。例として、RAID管理システムにおける種々のリソースの識別子がユーザに提示され、それらリソースのうちのいずれが制限されるべきかをユーザが選択することができるようにすることができる。さらに、特定の閾値を入力することもできる(例えば、ユーザが、再構築優先の状態にある時は、ホストI/O要求によって、ある特定のリソースが25%より多くは使用されるべきではないと示すことにより)。代替的に、特定の値に対応する複数の事前設定が与えられるようにしてもよい(例えば、ユーザは「低」、「中」または「高」という制限を選択することができ、それらの各々が、管理モジュール46またはRAID管理システム56によって、それぞれ25%、50%および75%等の特定の値に変換されるようにすることができる)。
【0056】
図2から図5は、記憶システム24によってサポートされるすべてのRAIDレベルおよび冗長グループについて、単一の要求待ち行列66、待ち行列コントローラ68、優先順位識別部70および要求ディスパッチャ72を有するデータ記憶システム24に関して述べられている。代替的に、各冗長グループが、それ自身の要求待ち行列66、待ち行列コントローラ68、優先順位識別部70および要求ディスパッチャ72を有してもよく、および/または各RAIDレベル(またはRAIDレベルの他の組合せ)が、それ自身の要求待ち行列66、待ち行列コントローラ68、優先順位識別部70およびディスパッチャ72を有してもよい。
【0057】
さらに、RAID管理システムは、要求の処理中に、再構築I/O要求および/またはホストI/O要求に対して優先権を与えることができる。一般に、I/O要求の処理は、それぞれの段階間に種々の遅延がある複数の段階において発生する。例えば、図2の要求プロセッサ76は、1つの要求を処理するために1つまたは複数のディスク52からデータを読出す必要があるかもしれない。しかしながら、ディスク52から実際にデータを読出す際の遅延により、要求プロセッサ76が該ディスクからデータが取得されるのを単に待っている期間がしばしばある。この期間中、さらなる要求が要求ディスパッチャ72から受け取られて、先行する要求に割り込みをかけることができ、その結果要求プロセッサ76は、その新たな要求の処理を開始(および処理を完了する可能性もある)ことができる。
【0058】
図6は、I/O要求の割り込みの一例を示すフローチャートである。図6は、例示的な要求として書込み要求を示しているが、他のタイプのI/O要求に対しても同様の段階が発生する。
【0059】
最初に、ホスト書込み要求が受け取られる(ブロック142)。このホスト書込み要求に基づいて、読出しコマンドが図2のディスク52のうちの1つまたは複数に対して発行される(ブロック144)。ある期間の後、要求したデータがディスクから受け取られる(ブロック146)。その後、パリティ演算のような種々の演算が実行される(ブロック148)。かかる演算が実行される方法は、要求に関連するRAIDレベルによって変わりうる。かかる演算が完了すると、ホスト書込み要求に対応するデータを伴う書込みコマンドが、ディスク52のうちの1つまたは複数に対して発行される。
【0060】
一方、図6の例では、読出しデータがディスク52から受取られている間に(ブロック146)、再構築の読出し要求が受け取られている(ブロック152)。要求プロセッサ76は、データが受け取られた後(ブロック146)、再構築読出し要求を優先してホスト書込み要求に割り込みをかけ、再構築読出し要求をディスク52のうちの1つまたは複数に対して発行する(ブロック154)。ある期間の後、要求したデータがディスクから受取られ(ブロック156)、該データが要求側に返される。要求側が再構築読出し要求の処理を完了すると、割り込まれたホスト書込み要求は再開することができ、要求プロセッサ76は、必要な演算を実行し(ブロック148)、ディスクに対して書込みコマンドを発行する(ブロック150)。
【0061】
代替的に、ホスト書込み要求に対して完全に割り込みをかけるのではなく、ホスト書込み要求または再構築読出し要求のどちらかを処理することができる状況の場合に、再構築読出し要求が単に優先されるようにしてもよい。例えば、ディスクに対して再構築読出し要求についての読出しコマンドが発行された後(ブロック154)、要求プロセッサ76は、再構築読出し要求について該要求されたデータをディスクから受け取るのを待っている間に、種々のパリティ演算を実行することができ(ブロック148)、それによって、要求プロセッサ76がアイドル状態である時間を低減することができる。
【0062】
要求プロセッサ76は、オプションとして、割り込まれたホストI/O要求が再構築I/O要求と同じアドレスおよび/またはディスクの場所を変更するかどうかをチェックしてもよく、データの整合性を保証するために、ホストI/O要求が再構築I/O要求の前に処理を終了することができるよにしてもよい。
【0063】
上記説明は、ホストI/O要求および再構築I/O要求が共にRAID管理システムによって待ち行列に入れられるように述べている。代替の実施形態では、かかる待ち行列処理は不要である。例として、ホストコンピュータまたは再構築コントローラが、I/O要求を有したときに信号またはメッセージをRAID管理システムに送信し、その後、RAID管理システムから受入れまたは肯定応答信号あるいは何らかのメッセージを受け取ったときに、処理のためのI/O要求を送信してもよい。
【0064】
このように、I/O要求に優先権を与えることにより再構築中にホストI/Oパフォーマンスおよび記憶アレイの可用性を向上させることについて説明した。再構築I/O要求には、記憶アレイが永久的にデータを失いつつある場合にのみ、ホストI/O要求に対する優先権が与えられるのが有利である。それ以外の場合は、データ喪失の機会を増大させることなく、ホストI/O要求に応答して記憶アレイのパフォーマンスを向上させるために、ホストI/O要求に、再構築I/O要求に対する優先権を与える。
【0065】
上記説明では、構成の特徴および/または方法の動作に特有の言語を用いたが、特許請求の範囲で定義されている発明は、説明された特定の特徴または動作に限定されるものではない、ということは理解されるべきである。この特定の特徴および動作は、本発明を実現する例示的な形態として開示されている。
【0066】
本発明は、以下の実施態様を含む。
【0067】
(1)記憶アレイ(24)が永久的にデータを失いつつあることを識別するステップ(96)と、
前記記憶アレイ(24)が永久的にデータを失いつつあると識別したことに応答して、該記憶アレイの少なくとも一部を再構築する入出力(I/O)要求に、ホストI/O要求に対する優先権を与えるステップ(98)と、
を含む方法。
【0068】
(2)前記識別するステップ(96)は、前記記憶アレイ(24)における複数の記憶装置(50)のうちの1つのさらなる記憶装置(52)の故障が、該記憶アレイ(24)において永久的なデータ喪失の結果となる場合に、該記憶アレイ(24)が永久的にデータを失いつつあると識別するステップを含む上記(1)に記載の方法。
【0069】
(3)前記記憶アレイ(24)がRAIDシステムである上記(1)に記載の方法。
【0070】
(4)前記RAIDシステムは複数のRAIDレベルを含み、
前記識別するステップは、前記複数のRAIDレベルのうちの少なくとも1つが永久的にデータを失いつつある時を識別するステップ(96)を含み、
永久的にデータを喪失しつつある前記少なくとも1つのRAIDレベルについてのみ、再構築I/O要求に、ホストI/O要求に対する優先権を与えるステップ(98)をさらに含む上記(3)に記載の方法。
【0071】
(5)前記記憶アレイが永久的にデータを失いつつある状態でない場合、ホストI/O要求に、再構築I/O要求に対する優先権を与えるステップ(92)をさらに含む上記(1)に記載の方法。
【0072】
(6)前記記憶アレイの少なくとも一部を再構築するI/O要求に、ホストのI/O要求に対する優先権を与える前記ステップ(98)は、
前記アレイの少なくとも一部を再構築するI/O要求とホストのI/O要求とを共に、受け取られた順序で待ち行列(66)に配置するステップ(112)と、前記再構築のためのI/O要求と前記ホストのI/O要求とを先入れ先出し(FIFO)方式で前記待ち行列から処理するステップと、
を含む上記(1)に記載の方法。
【0073】
(7)前記記憶アレイの少なくとも一部を再構築するI/O要求に、ホストのI/O要求に対する優先権を与える前記ステップ(98)は、前記記憶アレイおよび対応するコントローラにおける複数のリソースの間で、前記ホストのI/O要求よりも前記再構築するI/O要求に、より多くのリソースの使用を割当てるステップ(134,136)を含む上記(1)に記載の方法。
【0074】
(8)前記記憶アレイ(24)および対応するコントローラ(54a,54b)は複数のリソースを有し、
前記記憶アレイ(24)の少なくとも一部を再構築するI/O要求に、ホストI/O要求に対する優先権を与える前記ステップ(98)は、ホストのI/Oによるリソースの使用を閾値量を超えないように制限するステップ(134,136)を含む上記(1)に記載の方法。
【0075】
(9)前記閾値量(134)はユーザが構成可能である上記(8)に記載の方法。
【0076】
(10)前記記憶アレイの少なくとも一部を再構築するI/O要求に、ホストI/O要求に対する優先権を与える前記ステップ(98)は、再構築I/O要求を優先して、ホストI/O要求に割り込みをかけるステップ(146,148,152)を含む上記(1)に記載の方法。
【0077】
(11)コンピュータの1つまたは複数のプロセッサによって実行される場合に、該1つまたは複数のプロセッサに動作を実行させるコンピュータプログラムを格納した1つまたは複数のコンピュータ読取り可能媒体であって、
記憶アレイ(24)が永久的にデータを失いつつあることを識別するステップ(96)と、
前記記憶アレイ(24)が永久的にデータを失いつつあることを識別したことに応答して、該記憶アレイの少なくとも一部を再構築する入出力(I/O)要求に、ホストI/O要求に対する優先権を与えるステップ(98)と、
を実行させるためのプログラムを格納した、1つまたは複数のコンピュータ読取り可能媒体。
【0078】
(12)前記識別するステップ(96)は、前記記憶アレイ(24)における複数の記憶装置(50)のうちの1つのさらなる記憶装置(52)の故障が、該記憶アレイ(24)において永久的なデータ喪失の結果となる場合に、該記憶アレイ(24)が永久的にデータを失いつつあると識別するステップを含む、上記(11)に記載の1つまたは複数のコンピュータ読取り可能媒体。
【0079】
(13)前記記憶アレイの少なくとも一部を再構築するI/O要求に、ホストI/O要求に対する優先権を与える前記ステップ(98)は、
前記記憶アレイおよび対応するコントローラにおける複数のリソースの間で、ホストI/O要求よりも再構築I/O要求により多くのリソース使用を割当てるステップ(134,136)を含む上記(11)に記載の1つまたは複数のコンピュータ読取り可能媒体。
【0080】
(14)前記記憶アレイ(24)および対応するコントローラ(54a,54b)は複数のリソースを有し、
前記記憶アレイ(24)の少なくとも一部を再構築するI/O要求に、ホストI/O要求に対する優先権を与える前記ステップ(98)は、ホストI/Oによるリソースの使用を閾値量を超えないように制限するステップ(134,136)を含む、上記(11)に記載の1つまたは複数のコンピュータ読取り可能媒体。
【0081】
(15)記憶アレイ(24)に対するホストの入出力(I/O)要求または再構築のI/O要求のどちらが優先権を有するべきかを判断する優先順位識別部(70)と、
前記優先順位識別部(70)に通信可能なように連結されており、前記ホストI/O要求または再構築I/O要求のどちらが優先権を有するべきかに少なくとも部分的に基づいて、実行のためのホストI/O要求および再構築I/O要求を選択する要求ディスパッチャ(72)と、
を備える装置。
【0082】
(16)前記記憶アレイ(24)がRAIDシステムを備えている上記(15)に記載の装置。
【0083】
(17)前記RAIDシステムは複数のRAIDレベルを有しており、
前記複数のRAIDレベルのそれぞれに関連付けられた優先順位識別部(70)と、
前記複数のRAIDレベルのそれぞれに関連付けられた要求ディスパッチャ(72)と、
をさらに備える上記(16)に記載の装置。
【0084】
(18)前記要求ディスパッチャ(72)による実行のための選択を待つために、前記再構築I/O要求および前記ホストI/O要求が配置される要求待ち行列構造(66)をさらに備える上記(15)に記載の装置。
【0085】
(19)前記要求ディスパッチャ(72)は、前記要求がホストI/O要求か再構築I/O要求かに関わらず、前記待ち行列構造(66)の最上位から要求を選択するよう構成されている上記(18)に記載の装置。
【0086】
(20)前記要求待ち行列構造(66)に通信可能なように連結され、ホストI/O要求が優先権を有するべきである場合にのみホストI/O要求が再構築要求よりも上位にあるように、前記待ち行列構造(66)における要求を順位付けするよう構成された待ち行列コントローラ(68)をさらに備える上記(18)に記載の装置。
【0087】
(21)前記要求待ち行列構造(66)は、複数の待ち行列を含む上記(18)に記載の装置。
【0088】
(22)複数のリソース(60,54a,54b,62a,62b,58)をさらに備えており、
前記要求ディスパッチャ(72)は、再構築I/O要求が優先権を有するべきである場合に、前記複数のリソース(60,54a,54b,62a,62b,58)の少なくとも1つの前記ホストI/O要求による使用を制限する上記(15)に記載の装置。
【0089】
(23)前記優先順位識別部(70)は、前記記憶アレイ(24)における複数の記憶装置(50)のうちの1つのさらなる記憶装置(52)の故障が該記憶アレイ(24)におけるデータ喪失の結果となる場合に、再構築I/O要求が優先権を有するべきであると判断する、上記(15)に記載の装置。
【0090】
(24)前記要求ディスパッチャ(72)と通信可能なように連結され、I/O要求を処理し、再構築I/O要求を優先してホストI/O要求に割り込みをかける要求プロセッサ(76)をさらに備える、上記(15)に記載の装置。
【0091】
【発明の効果】
再構築中のホストのI/Oパフォーマンスおよび記憶アレイの可用性を向上させることができる。
【図面の簡単な説明】
【図1】データ記憶システムに接続されているホストコンピュータを有する例示的なコンピュータシステムを示すブロック図。
【図2】例示的なホストコンピュータおよび例示的なデータ記憶システムをより詳細に示すブロック図。
【図3】ホストI/O要求および再構築I/O要求を管理する例示的なプロセスを示すフローチャート。
【図4】ホストI/O要求または再構築I/O要求のどちらが優先権を有するかに基づき要求待ち行列を管理する例示的なプロセスを示すフローチャート。
【図5】ホストI/O要求または再構築I/O要求のどちらが優先権を有するかに基づき要求待ち行列を管理する代替的なプロセスを示すフローチャート。
【図6】I/O要求の割り込みの例を示すフローチャート。
【符号の説明】
24…データ記憶システム
50…ディスクアレイ
52…ディスク
54a,54b…ディスクアレイコントローラ
58…インターフェースバス
62a,62b…ミラーリングされたメモリ
66…要求待ち行列
Claims (10)
- 記憶アレイにおける複数の記憶ディスクにおいて、もう1つの記憶ディスクの故障によって該記憶アレイが永久にデータを失うことになる状態を、該記憶アレイが永久にデータを失う直前の状態であると識別するステップと、
前記記憶アレイが永久にデータを失う直前の状態であることを識別したことに応答して、ホストの入出力(I/O)要求によるリソースの使用が閾値量を超えないよう制限することによって、該ホストのI/O要求に対し、該記憶アレイの少なくとも一部を再構築する再構築入出力(I/O)要求に優先権を与えるステップと、を含み、
前記記憶アレイが前記永久にデータを失う直前の状態でなければ、前記再構築I/O要求に対し、前記ホストのI/O要求に優先権を与える、方法であって、
前記再構築I/O要求を優先するとき、前記ホストのI/O要求によるリソースの使用が閾値量を超えなければ、該ホストのI/O要求および前記再構築I/O要求を、受け取った順番で処理し、前記ホストのI/O要求によるリソースの使用が該閾値量を超えたならば、該受け取ったI/O要求から、次の再構築I/O要求を選択して処理する、
方法。 - 前記記憶アレイは、RAIDシステムを備える、
請求項1に記載の方法。 - 前記RAIDシステムは、複数のRAIDレベルを含んでおり、
前記識別するステップは、該複数のRAIDレベルのうちの少なくとも1つが前記永久にデータを失う直前の状態であることを識別し、
さらに、該永久にデータを失う直前の状態であると識別された少なくとも1つのRAIDレベルについてのみ、前記ホストのI/O要求に対し、前記再構築I/O要求に優先権を与える、
請求項2に記載の方法。 - 前記複数のRAIDレベルのうちの少なくとも1つは、RAIDレベル6を含む、
請求項3に記載の方法。 - 前記ホストI/O要求を優先するとき、前記記憶アレイの少なくとも一部を再構築する再構築I/O要求と前記ホストのI/O要求の両方を、受け取った順番に待ち行列に入れるステップと、
先入れ先出し(FIFO)の順番で、該待ち行列から、前記再構築I/O要求および前記ホストI/O要求を処理するステップと、
を含む、請求項1に記載の方法。 - 前記再構築I/O要求を優先するとき、前記記憶アレイおよび対応するコントローラの複数のリソースのうち、前記ホストI/O要求よりも前記再構築I/O要求に、より多くのリソースの使用を割り当てることをさらに含む、
請求項1に記載の方法。 - 前記記憶アレイにおいて、永久にデータを失うことなく故障が許されるディスクの数は、該記憶アレイのRAIDアーキテクチャのレベルに少なくとも基づいて変動する、
請求項1に記載の方法。 - コンピュータの1つまたは複数のプロセッサによって実行される場合に、該1つまたは複数のプロセッサに動作を実行させるコンピュータプログラムを格納した1つまたは複数のコンピュータ読取り可能媒体であって、
記憶アレイにおける複数の記憶ディスクにおいて、もう1つの記憶ディスクの故障によって該記憶アレイが永久にデータを失うことになる状態を、該記憶アレイが永久にデータを失う直前の状態であると識別するステップと、
前記記憶アレイが永久にデータを失う直前の状態であると識別したことに応答して、ホストの入出力(I/O)要求によるリソースの使用が閾値量を超えないよう制限することによって、該ホストのI/O要求に対し、該記憶アレイの少なくとも一部を再構築する再構築入出力(I/O)要求に優先権を与えるステップと、を含み、
前記記憶アレイが前記永久にデータを失う直前の状態でなければ、前記再構築I/O要求に対し、前記ホストのI/O要求に優先権を与える、
ことを実行させるためのプログラムを格納したコンピュータ読み取り可能媒体であって、
前記再構築I/O要求を優先するとき、前記ホストのI/O要求によるリソースの使用が閾値量を超えなければ、該ホストのI/O要求および前記再構築I/O要求を、受け取った順番で処理し、前記ホストのI/O要求によるリソースの使用が該閾値量を超えたならば、該受け取ったI/O要求から、次の再構築I/O要求を選択して処理する、
コンピュータ読み取り可能媒体。 - 前記再構築I/O要求を優先するとき、前記記憶アレイおよび対応するコントローラの複数のリソースのうち、前記ホストI/O要求よりも前記再構築I/O要求に、より多くのリソースの使用を割り当てることをさらに含む、
請求項8に記載のコンピュータ読み取り可能媒体。 - 前記記憶アレイにおいて、永久にデータを失うことなく故障が許されるディスクの数は、該記憶アレイのRAIDアーキテクチャのレベルに少なくとも基づいて変動する、
請求項8に記載のコンピュータ読み取り可能媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/534,921 US6647514B1 (en) | 2000-03-23 | 2000-03-23 | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
US09/534921 | 2000-03-23 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001290746A JP2001290746A (ja) | 2001-10-19 |
JP2001290746A5 JP2001290746A5 (ja) | 2007-08-02 |
JP4922496B2 true JP4922496B2 (ja) | 2012-04-25 |
Family
ID=24132081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001075172A Expired - Fee Related JP4922496B2 (ja) | 2000-03-23 | 2001-03-16 | I/o要求に優先順位を与える方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6647514B1 (ja) |
JP (1) | JP4922496B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733518A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机可读介质 |
Families Citing this family (311)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2923702B2 (ja) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
US6968463B2 (en) | 2001-01-17 | 2005-11-22 | Hewlett-Packard Development Company, L.P. | System for controlling access to resources in a storage area network |
US6915397B2 (en) | 2001-06-01 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for generating point in time storage copy |
US6931487B2 (en) * | 2001-10-22 | 2005-08-16 | Hewlett-Packard Development Company L.P. | High performance multi-controller processing |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US6947981B2 (en) * | 2002-03-26 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Flexible data replication mechanism |
US7032131B2 (en) * | 2002-03-26 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for ensuring merge completion in a storage area network |
US7007042B2 (en) * | 2002-03-28 | 2006-02-28 | Hewlett-Packard Development Company, L.P. | System and method for automatic site failover in a storage area network |
US7359397B2 (en) * | 2002-04-19 | 2008-04-15 | Seagate Technology Llc | Prioritizing transfers across an interface |
US6839817B2 (en) * | 2002-04-24 | 2005-01-04 | International Business Machines Corporation | Priority management of a disk array |
US7139931B2 (en) * | 2002-08-19 | 2006-11-21 | Aristos Logic Corporation | Method of controlling the system performance and reliability impact of hard disk drive rebuild |
US6952794B2 (en) * | 2002-10-10 | 2005-10-04 | Ching-Hung Lu | Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
JP2005100259A (ja) | 2003-09-26 | 2005-04-14 | Hitachi Ltd | ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法 |
JP4703959B2 (ja) * | 2003-12-03 | 2011-06-15 | 株式会社日立製作所 | 記憶装置システムおよびそのレプリケーション作成方法 |
US20050138306A1 (en) * | 2003-12-19 | 2005-06-23 | Panchbudhe Ankur P. | Performance of operations on selected data in a storage area |
US8006056B2 (en) * | 2004-01-30 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Storage system including capability to move a virtual storage device group without moving data |
US7305520B2 (en) * | 2004-01-30 | 2007-12-04 | Hewlett-Packard Development Company, L.P. | Storage system with capability to allocate virtual storage segments among a plurality of controllers |
US7363541B2 (en) * | 2004-02-23 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Command management using task attributes |
US7246259B2 (en) * | 2004-03-18 | 2007-07-17 | Aristos Logic Coporation | Method of calculating parity for surviving dual drive failures in a disk array |
JP2005275829A (ja) * | 2004-03-25 | 2005-10-06 | Hitachi Ltd | ストレージシステム |
JP2005301590A (ja) * | 2004-04-09 | 2005-10-27 | Hitachi Ltd | ストレージシステム及びデータ複製方法 |
JP4324088B2 (ja) * | 2004-12-17 | 2009-09-02 | 富士通株式会社 | データ複製制御装置 |
US20060168472A1 (en) * | 2005-01-25 | 2006-07-27 | Inventec Corporation | Data storage unit failure condition responding method and system |
US8127088B2 (en) * | 2005-01-27 | 2012-02-28 | Hewlett-Packard Development Company, L.P. | Intelligent cache management |
US7301718B2 (en) * | 2005-01-31 | 2007-11-27 | Hewlett-Packard Development Company, L.P. | Recording errors in tape drives |
JP4815825B2 (ja) * | 2005-03-10 | 2011-11-16 | 日本電気株式会社 | ディスクアレイ装置及びその再構築方法 |
JP4754852B2 (ja) * | 2005-03-15 | 2011-08-24 | 富士通株式会社 | ストレージ制御装置および方法 |
US7711989B2 (en) * | 2005-04-01 | 2010-05-04 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US7523350B2 (en) * | 2005-04-01 | 2009-04-21 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
US20060230243A1 (en) * | 2005-04-06 | 2006-10-12 | Robert Cochran | Cascaded snapshots |
US20060236149A1 (en) * | 2005-04-14 | 2006-10-19 | Dell Products L.P. | System and method for rebuilding a storage disk |
US7363426B2 (en) * | 2005-04-26 | 2008-04-22 | Dell Products L.P. | System and method for RAID recovery arbitration in shared disk applications |
US7779218B2 (en) * | 2005-07-22 | 2010-08-17 | Hewlett-Packard Development Company, L.P. | Data synchronization management |
US7206156B2 (en) * | 2005-07-27 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Tape drive error management |
US8352782B2 (en) * | 2005-09-30 | 2013-01-08 | Cleversafe, Inc. | Range based rebuilder for use with a dispersed data storage network |
US11221917B1 (en) | 2005-09-30 | 2022-01-11 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
JP4817783B2 (ja) * | 2005-09-30 | 2011-11-16 | 富士通株式会社 | Raidシステム及びそのリビルド/コピーバック処理方法 |
US11620185B2 (en) * | 2005-09-30 | 2023-04-04 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US10860424B1 (en) | 2005-09-30 | 2020-12-08 | Pure Storage, Inc. | Background verification processing in a storage network |
US8555109B2 (en) * | 2009-07-30 | 2013-10-08 | Cleversafe, Inc. | Method and apparatus for distributed storage integrity processing |
US8880799B2 (en) * | 2005-09-30 | 2014-11-04 | Cleversafe, Inc. | Rebuilding data on a dispersed storage network |
US7325078B2 (en) * | 2005-10-06 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | Secure data scrubbing |
US7721053B2 (en) * | 2005-10-24 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Intelligent logical unit provisioning |
JP4472617B2 (ja) * | 2005-10-28 | 2010-06-02 | 富士通株式会社 | Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 |
US7631143B1 (en) * | 2006-01-03 | 2009-12-08 | Emc Corporation | Data storage system employing virtual disk enclosure |
JP2007206931A (ja) * | 2006-02-01 | 2007-08-16 | Hitachi Ltd | 記憶システム、データ処理方法並びにストレージ装置 |
US7467268B2 (en) | 2006-04-14 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Concurrent data restore and background copy operations in storage networks |
US7934027B2 (en) | 2007-01-19 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Critical resource management |
JP4933284B2 (ja) | 2007-01-25 | 2012-05-16 | 株式会社日立製作所 | ストレージ装置及び負荷分散方法 |
US7861031B2 (en) * | 2007-03-01 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Access control management |
US8024514B2 (en) * | 2007-03-01 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Access control management |
US7694079B2 (en) | 2007-04-04 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Tagged sequential read operations |
US8201018B2 (en) * | 2007-09-18 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Control of sparing in storage systems |
US7962690B2 (en) * | 2008-01-04 | 2011-06-14 | International Business Machines Corporation | Apparatus and method to access data in a raid array |
US7979635B2 (en) * | 2008-02-14 | 2011-07-12 | International Business Machines Corporation | Apparatus and method to allocate resources in a data storage library |
US8234444B2 (en) * | 2008-03-11 | 2012-07-31 | International Business Machines Corporation | Apparatus and method to select a deduplication protocol for a data storage library |
US8019728B2 (en) * | 2008-04-17 | 2011-09-13 | Nec Laboratories America, Inc. | Dynamically quantifying and improving the reliability of distributed data storage systems |
JP2010009442A (ja) * | 2008-06-30 | 2010-01-14 | Fujitsu Ltd | ディスクアレイシステム、ディスク制御装置及びその再構築処理方法 |
US8006128B2 (en) * | 2008-07-31 | 2011-08-23 | Datadirect Networks, Inc. | Prioritized rebuilding of a storage device |
WO2010042109A1 (en) * | 2008-10-07 | 2010-04-15 | Hewlett-Packard Development Company, L.P. | Creating snapshots of data using a selected one of different snapshot algorithms |
US8086911B1 (en) * | 2008-10-29 | 2011-12-27 | Netapp, Inc. | Method and apparatus for distributed reconstruct in a raid system |
US9128895B2 (en) * | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
WO2010113165A1 (en) * | 2009-04-01 | 2010-10-07 | Kaminario Tehnologies Ltd. | System and method for storage unit building while catering to i/o operations |
JP5409159B2 (ja) * | 2009-07-23 | 2014-02-05 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US8719495B2 (en) * | 2010-03-30 | 2014-05-06 | Lenovo (Singapore) Pte. Ltd. | Concatenating a first raid with a second raid |
US9898373B2 (en) * | 2010-04-26 | 2018-02-20 | International Business Machines Corporation | Prioritizing rebuilding of stored data in a dispersed storage network |
CN102754090B (zh) * | 2010-06-17 | 2015-09-16 | 株式会社日立制作所 | 包括多个微处理器的存储系统以及用于在该存储系统中分担处理的方法 |
US8612699B2 (en) | 2010-06-25 | 2013-12-17 | International Business Machines Corporation | Deduplication in a hybrid storage environment |
US8726070B2 (en) * | 2010-09-27 | 2014-05-13 | Dell Products L.P. | System and method for information handling system redundant storage rebuild |
US8417989B2 (en) * | 2010-10-15 | 2013-04-09 | Lsi Corporation | Method and system for extra redundancy in a raid system |
JP5980798B2 (ja) * | 2010-12-01 | 2016-08-31 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | 独立したシリコン素子の動的な上位レベルの冗長モード管理 |
JP2013058103A (ja) * | 2011-09-08 | 2013-03-28 | Toshiba Corp | 映像収録再生装置及びリビルド処理方法 |
US8719619B2 (en) * | 2011-09-20 | 2014-05-06 | International Business Machines Corporation | Performance enhancement technique for raids under rebuild |
US8707090B2 (en) * | 2011-10-19 | 2014-04-22 | Hitachi, Ltd. | Storage system |
US9606929B2 (en) | 2011-11-08 | 2017-03-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Simulated NVRAM |
US8966172B2 (en) | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US9652182B2 (en) | 2012-01-31 | 2017-05-16 | Pavilion Data Systems, Inc. | Shareable virtual non-volatile storage device for a server |
US8751861B2 (en) | 2012-02-08 | 2014-06-10 | Lsi Corporation | System and method for improved rebuild in RAID |
US8856431B2 (en) * | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
JP2014059659A (ja) * | 2012-09-14 | 2014-04-03 | Toshiba Corp | 映像収録再生装置及びリビルド再開方法 |
US8892939B2 (en) | 2012-11-21 | 2014-11-18 | Hewlett-Packard Development Company, L.P. | Optimizing a RAID volume |
US9645859B1 (en) * | 2012-12-18 | 2017-05-09 | Veritas Technologies Llc | Performing I/O quiesce and drain operations in multi-node distributed systems |
US9430333B2 (en) * | 2013-03-14 | 2016-08-30 | Microsoft Technology Licensing, Llc | Recovery of application from snapshot |
GB2514810A (en) * | 2013-06-05 | 2014-12-10 | Ibm | Rebuilding data of a storage system |
US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
WO2015114643A1 (en) * | 2014-01-30 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Data storage system rebuild |
US9396068B2 (en) * | 2014-04-17 | 2016-07-19 | International Business Machines Corporation | Adaptive rebuild scheduling scheme |
US9075773B1 (en) * | 2014-05-07 | 2015-07-07 | Igneous Systems, Inc. | Prioritized repair of data storage failures |
US9201735B1 (en) | 2014-06-25 | 2015-12-01 | Igneous Systems, Inc. | Distributed storage data repair air via partial data rebuild within an execution path |
US9594632B2 (en) | 2014-07-09 | 2017-03-14 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9734007B2 (en) | 2014-07-09 | 2017-08-15 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9582355B2 (en) * | 2014-07-09 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9053114B1 (en) | 2014-08-07 | 2015-06-09 | Igneous Systems, Inc. | Extensible data path |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9712619B2 (en) | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
US9098451B1 (en) | 2014-11-21 | 2015-08-04 | Igneous Systems, Inc. | Shingled repair set for writing data |
US9747177B2 (en) * | 2014-12-30 | 2017-08-29 | International Business Machines Corporation | Data storage system employing a hot spare to store and service accesses to data having lower associated wear |
JP6299617B2 (ja) * | 2015-01-27 | 2018-03-28 | コニカミノルタ株式会社 | 画像形成装置、画像形成装置の制御プログラム、コントローラー、およびコントローラーの制御プログラム |
US9276900B1 (en) | 2015-03-19 | 2016-03-01 | Igneous Systems, Inc. | Network bootstrapping for a distributed storage system |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
US9851762B1 (en) | 2015-08-06 | 2017-12-26 | Pure Storage, Inc. | Compliant printed circuit board (‘PCB’) within an enclosure |
US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US10198194B2 (en) | 2015-08-24 | 2019-02-05 | Pure Storage, Inc. | Placing data within a storage device of a flash array |
US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
US9384082B1 (en) | 2015-10-23 | 2016-07-05 | Pure Storage, Inc. | Proactively providing corrective measures for storage arrays |
US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
US10275302B2 (en) * | 2015-12-18 | 2019-04-30 | Microsoft Technology Licensing, Llc | System reliability by prioritizing recovery of objects |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
US11995315B2 (en) | 2016-03-16 | 2024-05-28 | Pure Storage, Inc. | Converting data formats in a storage system |
US10120769B2 (en) | 2016-04-13 | 2018-11-06 | Dell Products L.P. | Raid rebuild algorithm with low I/O impact |
US9841921B2 (en) * | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US10157021B2 (en) * | 2016-06-29 | 2018-12-18 | International Business Machines Corporation | Processing incomplete data access transactions |
US10452310B1 (en) | 2016-07-13 | 2019-10-22 | Pure Storage, Inc. | Validating cabling for storage component admission to a storage array |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US10459652B2 (en) | 2016-07-27 | 2019-10-29 | Pure Storage, Inc. | Evacuating blades in a storage array that includes a plurality of blades |
US10474363B1 (en) | 2016-07-29 | 2019-11-12 | Pure Storage, Inc. | Space reporting in a storage system |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
CN114036078A (zh) * | 2016-12-21 | 2022-02-11 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统中的缓存设备的方法和系统 |
US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
US10503700B1 (en) | 2017-01-19 | 2019-12-10 | Pure Storage, Inc. | On-demand content filtering of snapshots within a storage system |
US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
WO2018231350A1 (en) | 2017-06-12 | 2018-12-20 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
US11989429B1 (en) | 2017-06-12 | 2024-05-21 | Pure Storage, Inc. | Recommending changes to a storage system |
US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
US11561714B1 (en) | 2017-07-05 | 2023-01-24 | Pure Storage, Inc. | Storage efficiency driven migration |
US11477280B1 (en) | 2017-07-26 | 2022-10-18 | Pure Storage, Inc. | Integrating cloud storage services |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US10671434B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Storage based artificial intelligence infrastructure |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
CN109725823B (zh) * | 2017-10-27 | 2021-11-16 | 伊姆西Ip控股有限责任公司 | 用于管理混合存储盘阵列的方法和设备 |
US10671494B1 (en) | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
US10509581B1 (en) | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10467107B1 (en) | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
US10725776B2 (en) * | 2017-12-01 | 2020-07-28 | International Business Machines Corporation | Reducing a rate at which requests are sent from one processor to another to reduce processor utilization at the processor receiving the requests |
US10417069B2 (en) | 2017-12-01 | 2019-09-17 | International Business Machines Corporation | Handling zero fault tolerance events in machines where failure likely results in unacceptable loss |
US10664187B2 (en) | 2017-12-01 | 2020-05-26 | International Business Machines Corporation | Reducing a rate at which data is mirrored from a primary server to a secondary server |
US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US20190354628A1 (en) | 2018-05-21 | 2019-11-21 | Pure Storage, Inc. | Asynchronous replication of synchronously replicated data |
US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
US10901848B2 (en) | 2018-08-03 | 2021-01-26 | Western Digital Technologies, Inc. | Storage systems with peer data recovery |
US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US11379254B1 (en) | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11182258B2 (en) * | 2019-01-04 | 2021-11-23 | Western Digital Technologies, Inc. | Data rebuild using dynamic peer work allocation |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
US11550514B2 (en) | 2019-07-18 | 2023-01-10 | Pure Storage, Inc. | Efficient transfers between tiers of a virtual storage system |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11526408B2 (en) | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
US11625416B1 (en) | 2019-09-13 | 2023-04-11 | Pure Storage, Inc. | Uniform model for distinct types of data replication |
US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
US11194663B2 (en) * | 2019-09-20 | 2021-12-07 | DigitalOcean, LLC | Protocol for improving rebuild times of redundant array of independent disks |
US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
US20210173945A1 (en) | 2019-12-06 | 2021-06-10 | Pure Storage, Inc. | Replicating data to a storage system that has an inferred trust relationship with a client |
US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
US12014065B2 (en) | 2020-02-11 | 2024-06-18 | Pure Storage, Inc. | Multi-cloud orchestration as-a-service |
US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
US11301162B2 (en) * | 2020-05-31 | 2022-04-12 | EMC IP Holding Company LLC | Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems |
US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
US11563744B2 (en) | 2021-02-22 | 2023-01-24 | Bank Of America Corporation | System for detection and classification of intrusion using machine learning techniques |
CN115237330A (zh) * | 2021-04-22 | 2022-10-25 | 伊姆西Ip控股有限责任公司 | 用于raid重建的方法、电子设备和程序产品 |
US20220365827A1 (en) | 2021-05-12 | 2022-11-17 | Pure Storage, Inc. | Rebalancing In A Fleet Of Storage Systems Using Data Science |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
US12001300B2 (en) | 2022-01-04 | 2024-06-04 | Pure Storage, Inc. | Assessing protection for storage resources |
US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2923702B2 (ja) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
JP3172872B2 (ja) * | 1991-04-01 | 2001-06-04 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
JP3172873B2 (ja) * | 1991-04-01 | 2001-06-04 | 株式会社日立製作所 | 記憶装置 |
US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
JP2549222B2 (ja) * | 1991-12-17 | 1996-10-30 | 富士通株式会社 | アレイディスク装置のバックグラウンド処理実行方法 |
US5392244A (en) | 1993-08-19 | 1995-02-21 | Hewlett-Packard Company | Memory systems with data storage redundancy management |
US5586250A (en) * | 1993-11-12 | 1996-12-17 | Conner Peripherals, Inc. | SCSI-coupled module for monitoring and controlling SCSI-coupled raid bank and bank environment |
US5500940A (en) * | 1994-04-25 | 1996-03-19 | Hewlett-Packard Company | Method for evaluating failure in an electronic data storage system and preemptive notification thereof, and system with component failure evaluation |
US5680539A (en) * | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US5822584A (en) * | 1995-10-13 | 1998-10-13 | Compaq Computer Corporation | User selectable priority for disk array background operations |
US5881311A (en) * | 1996-06-05 | 1999-03-09 | Fastor Technologies, Inc. | Data storage subsystem with block based data management |
US6032217A (en) * | 1997-11-04 | 2000-02-29 | Adaptec, Inc. | Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing |
JPH11184643A (ja) * | 1997-12-22 | 1999-07-09 | Nec Corp | ディスクアレイ装置の管理方法及びプログラムを記録した機械読み取り可能な記録媒体 |
US6799283B1 (en) * | 1998-12-04 | 2004-09-28 | Matsushita Electric Industrial Co., Ltd. | Disk array device |
US6516425B1 (en) * | 1999-10-29 | 2003-02-04 | Hewlett-Packard Co. | Raid rebuild using most vulnerable data redundancy scheme first |
-
2000
- 2000-03-23 US US09/534,921 patent/US6647514B1/en not_active Expired - Lifetime
-
2001
- 2001-03-16 JP JP2001075172A patent/JP4922496B2/ja not_active Expired - Fee Related
-
2003
- 2003-09-22 US US10/667,949 patent/US7213165B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733518A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机可读介质 |
CN108733518B (zh) * | 2017-04-17 | 2021-07-09 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US7213165B2 (en) | 2007-05-01 |
JP2001290746A (ja) | 2001-10-19 |
US20040059958A1 (en) | 2004-03-25 |
US6647514B1 (en) | 2003-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4922496B2 (ja) | I/o要求に優先順位を与える方法 | |
US6341342B1 (en) | Method and apparatus for zeroing a transfer buffer memory as a background task | |
EP0768599B1 (en) | On-line disk array reconfiguration | |
EP0801344B1 (en) | An apparatus for reallocating logical to physical disk devices using a storage controller and method of the same | |
US5881311A (en) | Data storage subsystem with block based data management | |
US6609145B1 (en) | User selectable priority for disk array background operations | |
US6912635B2 (en) | Distributing workload evenly across storage media in a storage array | |
US9524107B2 (en) | Host-based device drivers for enhancing operations in redundant array of independent disks systems | |
JP4220724B2 (ja) | ストレージ装置 | |
JP3541744B2 (ja) | ストレージサブシステム及びその制御方法 | |
US6718434B2 (en) | Method and apparatus for assigning raid levels | |
US9547528B1 (en) | Pizza scheduler | |
WO2015114643A1 (en) | Data storage system rebuild | |
US6105118A (en) | System and method for selecting which data copy to read in an information handling system | |
US7080196B1 (en) | Raid apparatus and access control method therefor which balances the use of the disk units | |
JP2006285808A (ja) | ストレージシステム | |
US6684313B2 (en) | Managing storage contention in automated storage systems | |
US6754897B1 (en) | Operation prioritization and selection in a probability-based job scheduler | |
WO1998038559A2 (en) | I/o controller software using groups of threads | |
US11907551B2 (en) | Performance efficient and resilient creation of network attached storage objects | |
JP4708669B2 (ja) | パス冗長化装置及び方法 | |
JP2000172570A5 (ja) | 情報記録装置並びにこの装置におけるデータの入出力方法及び再構築方法 | |
JPH08339341A (ja) | 主記憶ページ選択方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070615 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100401 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20100401 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100823 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100928 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20101105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4922496 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |