"RAIDを実装するためのシステムであって、一連のホストに結合されているコンピューティングデバイスを備え、該コンピューティングデバイスは、プロセッサと、データストアと、複数の命令を含むコンピュータ読み取り可能媒体とを備え、該複数の命令は、該コンピューティングデバイス上でアプリケーションプログラムを実行することであって、該アプリケーションプログラムは、仮想マシンである、ことと、該コンピューティングデバイスに関連するRAIDアプリケーションを実装することとを行うように実行可能であり、該RAIDアプリケーションは、容量のセグメントに対応するコマンドを受信することであって、該コマンドは、該アプリケーションプログラムによって発行され、該容量および該容量に関連して実装されるRAIDレベルに対応する冗長データは、該コンピューティングデバイスと関連して格納される、ことと、該コンピューティングデバイスに関連して格納された第1のセグメントに対して第1のコマンドを実行することとを行うように動作可能である、システム。前記アプリケーションプログラムを実行することは、前記コンピューティングデバイス上の仮想化層を用いて、前記仮想マシンを実行することを含む、請求項1に記載のシステム。前記仮想マシンは、第2の容量に対応し、該第2の容量は、前記コンピューティングデバイスに関連して格納される、請求項2に記載のシステム。前記コンピューティング読み取り可能媒体は、RAIDコントローラ上で実装される、請求項3に記載のシステム。前記RAIDコントローラは、前記仮想マシンを管理するように動作可能である、請求項4に記載のシステム。プロセッサを有するコンピューティングデバイス上で種々のアプリケーションプログラムに関連して実装されるRAIDのための方法であって、該方法は、コンピューティングデバイス上に第1の容量を確立することであって、該第1の容量は、一連のセグメントを含み、該一連のセグメントは、該コンピューティングデバイスに関連して格納される、ことと、該コンピューティングデバイスに関連する第2の容量を確立することであって、該第2の容量は、仮想マシンとして格納されるアプリケーションプログラムに対応する、ことと、該コンピューティングデバイス上で該アプリケーションプログラムを実行することと、該容量に関連してRAIDレベルを実装することであって、該RAIDレベルを実装することは、一連の冗長セグメントを格納することを含む、ことと、該容量の一連のセグメントの第1のセグメントに対応するコマンドを受信することであって、該コマンドは、該コンピューティングデバイス上で実行する該アプリケーションプログラムから受信される、ことと、該第1のセグメントに対して該第1のコマンドを実行することであって、該第1のコマンドは、該コンピューティングデバイス上で実行する、こととを含む、方法。前記アプリケーションプログラムを実行することは、前記コンピューティングデバイス上の仮想化層を用いて、前記仮想マシンを実行することを含む、請求項6に記載の方法。前記仮想マシンは、第2の容量に対応し、該第2の容量は、前記コンピューティングデバイスに関連して格納される、請求項7に記載の方法。前記方法は、RAIDコントローラ上で実装される、請求項8に記載の方法。前記RAIDコントローラは、前記仮想マシンを管理するように動作可能である、請求項9に記載の方法。種々のアプリケーションプログラムに関連してRAIDを実装するためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能媒体であって、該コンピュータ命令は、コンピューティングデバイス上に第1の容量を確立することであって、該第1の容量は、一連のセグメントを含み、該一連のセグメントは、該コンピューティングデバイス上に格納される、ことと、該コンピューティングデバイス上に第2の容量を確立することであって、該第2の容量は、仮想マシンとして格納されるアプリケーションプログラムに対応する、ことと、該コンピューティングデバイス上で該アプリケーションプログラムを実行することと、該容量に関連してRAIDレベルを実装することであって、該RAIDレベルを実装することは、一連の冗長セグメントを格納することを含む、ことと、該容量の一連のセグメントの第1のセグメントに対応するコマンドを受信することであって、該コマンドは、該コンピューティングデバイス上で実行する該アプリケーションプログラムから受信される、ことと、該コンピューティングデバイスに関連して格納される該第1のセグメントに対して該第1のコマンドを実行することとを含む、コンピュータ読み取り可能媒体。前記アプリケーションプログラムを実行することは、前記コンピューティングデバイス上の仮想化層を用いて、前記仮想マシンを実行することを含む、請求項11に記載のコンピュータ読み取り可能媒体。前記仮想マシンは、第2の容量に対応し、該第2の容量は、前記コンピューティングデバイスに関連して格納される、請求項12に記載のコンピュータ読み取り可能媒体。前記方法は、RAIDコントローラ上で実装される、請求項12に記載のコンピュータ読み取り可能媒体。前記RAIDコントローラは、前記仮想マシンを管理するように動作可能である、請求項14に記載のコンピュータ読み取り可能媒体。結果として、これらの問題を改善することが望ましい。種々のアプリケーションが、分散型RAIDシステムを実装する同一の一連のコンピューティングデバイス上で実行されることを可能にする、システムおよび方法の実施形態を提示する。具体的には、一実施形態では、分散型RAIDアプリケーションが、他のアプリケーションと併せて、同一の一連のコンピューティングデバイス上で実行されることを可能にするために、データバンク上で仮想化層が実行され得る。一式の所望のアプリケーションプログラムが、この仮想化層を使用して実行されてもよく、仮想化層上で実行するアプリケーションのコンテキストは、分散型RAIDシステムを利用して保持される容量内に格納され得る。これらの仮想マシン例えば、容量内に格納されるアプリケーションおよび任意の適用可能なコンテキスト情報は、データバンクのうちのいずれか1つの上で、仮想化層と併せて実行され得る。このように、一連のコンピューティングデバイスは、分散型RAIDシステムを実装し、特にそのような分散型RAIDシステムを利用するアプリケーションを実行するために利用され得る。これらの種類のアプリケーションには、例えば、ビデオ監視アプリケーション、ゲーム、小売店または銀行取引アプリケーション、ビデオストリーミングアプリケーション、コンテンツホスティングアプリケーション等が挙げられる。分散型RAIDシステムを実装するコンピューティングデバイスと併せて、これらのアプリケーションを実行することによって、数多くの利点が達成され得る。何よりもまず、より少ない空間、電力、冷却、予備等が必要とされ得るため、物理資源の統合が達成され、物理資源、ならびにそのような資源をインストールする、設定する、利用する、および維持するために要求される資源の両方に関連する費用が削減され得る。さらに、アプリケーションおよび分散型RAIDシステムの使用と併せて実施される通信が、より少ない場合がある、またはより迅速に実施され得るため、アプリケーションおよび分散型RAIDシステムの両方の実装において、より速い速度が達成され得る。加えて、本願の残りの部分を検討した後により詳細が明らかとなるように、アプリケーションのインスタンスが仮想マシンとして保存され、分散型RAIDシステムを実装するデータバンク上の仮想化層上で実行される設定によって、耐障害性のレベルが導入され得る。簡潔に、この耐障害性のレベルは、各仮想マシン例えば、仮想化層上で実行され得る、実行しているアプリケーションのインスタンスが、分散型RAIDシステムの容量内に格納されるということは、仮想マシンが、データバンクのうちの1つの破損の場合に回復され得ることを意味し得るという事実からもたらされ得る。加えて、仮想マシンが、任意のデータバンクの仮想化層上で実行され得るため、耐障害性が導入されてもよく、したがって、単一のデータバンクが破損する場合にさえ、各仮想マシンは、依然として実行され得る。本発明のこれらおよび他の態様は、以下の説明ならびに添付の図面と併せて熟考される時、より認識され、理解されるであろう。以下の説明は、本発明の種々の実施形態およびそれらの多数の具体的な詳細を示すが、制限としてではなく、例として与えられる。本発明の範囲内で、多くの置換、修正、追加、または再配設が行われてもよく、本発明は、すべてのそのような置換、修正、追加、または再配設を含む。添付され、かつ本明細書の一部を構成する図面は、本発明の特定の態様を描写するために含まれている。本発明のより明確な効果、ならびに本発明に提供されるシステムの構成要素および動作は、同一の参照番号が同一の構成要素を指定する図面に図示される、例示であり、したがって、非制限的な実施形態を参照することによって、より容易に明らかとなるであろう。図面に図示される特徴は、必ずしも一定の縮尺で描写されているわけではないことに留意されたい。例えば、本発明は以下の項目を提供する。項目1分散型RAIDを実装するためのシステムであって、複数のデータバンクコンピュータを備え、各データバンクは、各ホストおよび他の複数のデータバンクのそれぞれに連結され、各データバンクは、プロセッサと、データストアと、コンピュータ読み取り可能媒体とを含み、該コンピュータ読み取り可能媒体は、該データバンク上で第1のアプリケーションプログラムを実行するように実行可能な命令であって、該第1のアプリケーションプログラムは、第1の仮想マシンである、命令と、分散型RAIDアプリケーションを実装するように実行可能な命令とを含み、該分散型RAIDアプリケーションは、第1の容量の第1のセグメントに対応するコマンドを受信することであって、該コマンドは、該第1のアプリケーションプログラムによって発行され、該第1の容量および該第1の容量と関連して実装されるRAIDレベルに対応する冗長データは、該複数のデータバンクのそれぞれに格納されることによって、該第1の容量の各セグメントについて、該セグメントに関連付けられる該冗長データを備える対応する冗長セグメントが、該セグメントと同一のデータバンク上に存在しない、ことと、該複数のデータバンクの第1のデータバンクを決定することであって、該第1のデータバンクは、該第1のセグメントに対応する、ことと、該第1のデータバンクが該コマンドを受信したデータバンクである場合、該第1のセグメントに対する該第1のコマンドを実行し、該第1のデータバンクが該コマンドを受信したデータバンクでない場合、該第1のコマンドを該第1のデータバンクに転送することとを行うように動作可能である、システム。項目2上記アプリケーションプログラムを実行することは、上記データバンク上の仮想化層を用いて、上記第1の仮想マシンを実行することを含む、項目1に記載のシステム。項目3上記第1の仮想マシンは、第2の容量に対応し、該第2の容量は、上記複数のデータバンクのそれぞれの上に格納される、項目2に記載のシステム。項目4上記命令はさらに、上記複数のデータバンクのうちの破損データバンクを検出することと、該破損データバンクに割り振られた一連のVMを決定することと、該一連のVMを該複数のデータバンクのうちの別のデータバンクに再度割り振ることとを行うように実行可能である、項目3に記載のシステム。項目5上記命令はさらに、上記第1のコマンドが書き込みコマンドであるかどうか、および該第1のコマンドが上記複数のデータバンクの第2のデータバンクを決定する書き込みコマンドであるかどうかを決定するように実行可能であり、該第2のデータバンクは、上記第1のセグメントに関連付けられる第1の冗長セグメントに対応し、該第2のデータバンクが上記コマンドを受信したデータバンクである場合、該第1の冗長セグメントに対して該上記第1のコマンドを実行し、該第2のデータバンクが該コマンドを受信したデータバンクでない場合、該第1のコマンドを該第2のデータバンクに転送し、各容量の各セグメントは、該複数のデータバンクのうちの1つに対応し、各セグメントは、該複数のデータバンクの順列に従って、上記複数のデータバンクのうちの1つに割り当てられ、該冗長セグメントのそれぞれは、該冗長セグメントに関連付けられる上記容量のうちのいずれかのセグメントに対応する、該複数のデータバンクのそれぞれとは異なる、該複数のデータバンクのうちの1つに割り当てられる、項目3に記載のシステム。項目6プロセッサを有するコンピューティングデバイス上に、種々のアプリケーションプログラムと関連して実装される分散型RAIDのための方法であって、複数のデータバンク上に第1の容量を確立することであって、該第1の容量は、一連のセグメントを備え、該一連のセグメントは、該複数のデータバンク上に格納される、ことと、該複数のデータバンク上に第2の容量を確立することであって、該第2の容量は、仮想マシンとして格納されるアプリケーションプログラムに対応する、ことと、該複数のデータバンクのうちの少なくとも1つの上で、該アプリケーションプログラムを実行することと、該容量に関連してRAIDレベルを実装することであって、該RAIDレベルを実装するステップは、一連の冗長セグメントを格納することを含み、各冗長セグメントは、各冗長セグメントが、該一連のセグメントのうちの1つ以上のセグメントに対応することによって、各冗長セグメントが、該一連のセグメントのうちの1つ以上に対応するデータバンクと同一のデータバンク上に存在しない、ことと、該容量の該一連のセグメントの第1のセグメントに対応するコマンドを受信することであって、該コマンドは、該複数のデータバンクのうちの該少なくとも1つの上で実行する該アプリケーションプログラムから受信される、ことと、該複数のデータバンクの第1のデータバンクを決定することであって、該第1のデータバンクは、該第1のセグメントに対応する、ことと、該第1のセグメントに対する該第1のコマンドを実行することであって、該第1のコマンドは、該第1のデータバンク上で実行される、こととを含む、方法。項目7上記アプリケーションプログラムを実行することは、上記複数のデータバンクのうちの上記少なくとも1つの上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目6に記載の方法。項目8上記第2の容量は、上記複数のデータバンクのそれぞれの上に格納される、項目7に記載の方法。項目9上記複数のデータバンクのうちの破損データバンクを検出することと、該破損データバンクに割り振られた一連のVMを決定することと、該一連のVMを該複数のうちの別のデータバンクに再度割り振ることとをさらに含む、項目8に記載の方法。項目10上記第1のコマンドが書き込みコマンドであるかどうか、および該第1のコマンドが上記複数のデータバンクの第2のデータバンクを決定する書き込みコマンドであるかどうかを決定することをさらに含み、該第2のデータバンクは、上記第1のセグメントに関連付けられる第1の冗長セグメントに対応し、該第2のデータバンクが上記コマンドを受信したデータバンクである場合、上記第1の冗長セグメントに対する該第1のコマンドを実行し、そうでない場合、該第1のコマンドを該第2のデータバンクに転送し、各容量の各セグメントは、該複数のデータバンクのうちの1つに対応し、各セグメントは、該複数のデータバンクの順列に従って、該複数のデータバンクのうちの1つに割り当てられ、上記冗長セグメントのそれぞれは、該冗長セグメントに関連付けられる上記容量のうちのいずれかのセグメントに対応する、該複数のデータバンクのそれぞれとは異なる、該複数のデータバンクのうちの1つに割り当てられる、項目9に記載の方法。項目11アプリケーションプログラムと関連して1つ以上のデータバンクコンピュータに実装される分散型RAIDのための方法であって、アプリケーションプログラムから、第1の容量の第1のセグメントに対応するコマンドを受信することであって、該第1の容量および該容量と併せて実装されるRAIDレベルに対応する冗長データは、該容量の各セグメントについて、該セグメントに関連付けられる該冗長データを備える対応する冗長セグメントが、該セグメントと同一のデータバンク上に存在しないように、複数のデータバンクのそれぞれの上に格納され、該アプリケーションプログラムは、仮想マシンとして格納され、該複数のデータバンクのうちの少なくとも1つの上で実行される、ことと、該複数のデータバンクの第1のデータバンクを決定することであって、該第1のデータバンクは、該第1のセグメントに対応する、ことと、該第1のセグメントに対する該第1のコマンドを実行することであって該第1のコマンドは、該第1のデータバンク上で実行される、こととを含む、方法。項目12上記アプリケーションプログラムを実行することは、上記データバンク上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目11に記載の方法。項目13上記アプリケーションプログラムを実行することは、上記データバンク上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目12に記載の方法。項目14上記複数のデータバンクのうちの破損データバンクを検出することと、上記破損データバンクに割り振られた一連のVMを決定することと、上記一連のVMを上記複数のデータバンクのうちの別のデータバンクに再度割り振ることとをさらに含む、項目13に記載の方法。項目15上記第1のコマンドが書き込みコマンドであるかどうか、および該第1のコマンドが上記複数のデータバンクの第2のデータバンクを決定する書き込みコマンドであるかどうかを決定することをさらに含み、該第2のデータバンクは、上記第1のセグメントに関連付けられる第1の冗長セグメントに対応し、該第2のデータバンクが上記コマンドを受信した上記データバンクである場合、上記第1の冗長セグメントに対する該第1のコマンドを実行し、そうでない場合、該第1のコマンドを該第2のデータバンクに転送し、各容量の各セグメントは、該複数のデータバンクのうちの1つに対応し、各セグメントは、該複数のデータバンクの順列に従って、該複数のデータバンクのうちの1つに割り当てられ、上記冗長セグメントのそれぞれは、該冗長セグメントに関連付けられる上記容量のうちのいずれかのセグメントに対応する該複数のデータバンクのそれぞれとは異なる、上記複数のデータバンクのうちの1つに割り当てられる、項目14に記載の方法。項目16種々のアプリケーションプログラムと関連して分散型RAIDを実装するためのコンピュータ実行可能命令を備える、コンピュータ読み取り可能媒体であって、該コンピュータ命令は、複数のデータバンク上に第1の容量を確立することであって、該第1の容量は、一連のセグメントを備え、該一連のセグメントは、該複数のデータバンク上に格納される、ことと、該複数のデータバンク上に第2の容量を確立することであって、該第2の容量は、仮想マシンとして格納されるアプリケーションプログラムに対応する、ことと、該複数のデータバンクのうちの少なくとも1つの上で、該アプリケーションプログラムを実行することと、該容量と併せてRAIDレベルを実装することであって、該RAIDレベルを実装することは、一連の冗長セグメントを格納することを含み、各冗長セグメントは、各冗長セグメントが、該一連のセグメントのうちの対応する1つ以上と同一のデータバンク上に存在しないように、該一連のセグメントのうちの1つ以上に対応することと、該容量の該一連のセグメントの第1のセグメントに対応するコマンドを受信することであって、該コマンドは、該複数のデータバンクのうちの該少なくとも1つの上で実行する該アプリケーションプログラムから受信される、ことと、該複数のデータバンクの第1のデータバンクを決定することであって、該第1のデータバンクは、該第1のセグメントに対応する、ことと該第1のセグメントに対する該第1のコマンドを実行することであって、該第1のコマンドは、該第1のデータバンク上で実行される、こととを行うように実行可能である、コンピュータ読み取り可能媒体。項目17上記アプリケーションプログラムを実行することは、上記複数のデータバンクのうちの上記少なくとも1つの上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目16に記載のコンピュータ読み取り可能媒体。項目18上記第2の容量は、上記複数のデータバンクのそれぞれの上に格納される、項目17に記載のコンピュータ読み取り可能媒体。項目19上記命令はさらに、上記複数のデータバンクのうちの破損データバンクを検出することと、該破損データバンクに割り振られた一連のVMを決定することと、該一連のVMを該複数のデータバンクのうちの別のデータバンクに再度割り振ることとを行うように実行可能である、項目18に記載のコンピュータ読み取り可能媒体。項目20上記命令はさらに、上記第1のコマンドが書き込みコマンドであるかどうか、および該第1のコマンドが上記複数のデータバンクの第2のデータバンクを決定する書き込みコマンドであるかどうかを決定するように実行可能であり、該第2のデータバンクは、上記第1のセグメントに関連付けられる第1の冗長セグメントに対応し、該第2のデータバンクが上記コマンドを受信したデータバンクである場合、該第1の冗長セグメントに対して上記第1のコマンドを実行し、そうでない場合、該第1のコマンドを上記第2のデータバンクに転送し、各容量の各セグメントは、該複数のデータバンクのうちの1つに対応し、各セグメントは、該複数のデータバンクの順列に従って、該複数のデータバンクのうちの1つに割り当てられ、上記冗長セグメントのそれぞれは、該冗長セグメントに関連付けられる上記容量のうちのいずれかのセグメントに対応する、該複数のデータバンクのそれぞれとは異なる該複数のデータバンクのうちの1つに割り当てられる、項目19に記載のコンピュータ読み取り可能媒体。項目21アプリケーションプログラムと関連して1つ以上のデータバンクコンピュータに実装される、分散型RAIDのためのコンピュータ読み取り可能媒体であって、コンピュータ命令は、アプリケーションプログラムから、第1の容量の第1のセグメントに対応するコマンドを受信することであって、該第1の容量および該容量と併せて実装されるRAIDレベルに対応する冗長データは、該容量の各セグメントについて、そのセグメントに関連付けられる該冗長データを備える、対応する冗長セグメントが、該セグメントと同一のデータバンク上に存在しないように、複数のデータバンクのそれぞれの上に格納され、該アプリケーションプログラムは、仮想マシンとして格納され、該複数のデータバンクのうちの少なくとも1つの上で実行される、ことと該複数のデータバンクの第1のデータバンクを決定することであって、該第1のデータバンクは、該第1のセグメントに対応する、ことと該第1のセグメントに対する該第1のコマンドを実行することであって、該第1のコマンドは、該第1のデータバンク上で実行される、こととを行うように実行可能である、コンピュータ読み取り可能媒体。項目22上記アプリケーションプログラムを実行することは、上記データバンク上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目21に記載のコンピュータ読み取り可能媒体。項目23上記アプリケーションプログラムを実行することは、上記データバンク上の仮想化層を使用して、上記仮想マシンを実行することを含む、項目22に記載のコンピュータ読み取り可能媒体。項目24上記コンピュータ命令は、上記第1のコマンドが書き込みコマンドであるかどうか、および該第1のコマンドが上記複数のデータバンクの第2のデータバンクを決定する書き込みコマンドであるかどうかを決定するように実行可能であり、該第2のデータバンクは、上記第1のセグメントに関連付けられる第1の冗長セグメントに対応し、該第2のデータバンクが上記コマンドを受信した上記データバンクである場合、該第1の冗長セグメントに対する上記第1のコマンドを実行し、そうでない場合、該第1のコマンドを該第2のデータバンクに転送し、各容量の各セグメントは、該複数のデータバンクのうちの1つに対応し、各セグメントは、該複数のデータバンクの順列に従って、該複数のデータバンクのうちの1つに割り当てられ、上記冗長セグメントのそれぞれは、該冗長セグメントに関連付けられる容量のうちのいずれかのセグメントに対応する該複数のデータバンクのそれぞれとは異なる該複数のデータバンクのうちの1つに割り当てられる、項目23に記載のコンピュータ読み取り可能媒体。本発明および種々の特徴ならびにそれらの有利な詳細は、添付の図面に図示される非制限的な実施形態を参照してより完全に説明され、以下の説明に詳細に記述される。本発明の詳細を不必要に不明瞭にしないように、周知の開始材料、処理技術、構成要素、および機器の説明は、省略されている。しかしながら、発明を実施するための形態および具体的な実施例は、本発明の好ましい実施形態を示すが、制限としてではなく、例としてのみ与えられていることを理解されたい。本開示から、根本的な発明の概念の趣旨および/または範囲内の種々の置換、修正、追加、および/または再配列が当業者に明らかとなるであろう。本明細書に記載される実施形態は、コンピュータ読み取り可能媒体例えば、HD、ハードウェア回路等、または任意の組み合わせ上に存在し得る、好適なコンピュータ実行可能命令に実装することができる。具体的な実施形態を記載する前に、特定の実施形態を実装するためのハードウェアアーキテクチャの実施形態を本明細書に説明する。一実施形態は、ネットワークに通信可能に連結される、1つ以上のコンピュータを含むことができる。当業者に公知であるように、コンピュータは、中央演算処理装置CPUと、少なくとも1つの読み込み専用メモリROMと、少なくとも1つのランダムアクセスメモリRAMと、少なくとも1つのハードドライブHDと、1つ以上の入力/出力I/Oデバイスとを含むことができる。I/Oデバイスには、キーボード、モニタ、プリンタ、電子指示デバイスマウス、トラックボール、スタイリスト等等を含むことができる。種々の実施形態では、コンピュータは、ネットワーク上の少なくとも1つのデータベースへのアクセスを有する。ROM、RAM、およびHDは、CPUが実行可能なコンピュータ実行可能命令を格納するためのコンピュータメモリである。本開示内では、コンピュータ読み取り可能媒体という用語は、ROM、RAM、およびHDのみに制限されず、プロセッサが読み込むことができる任意の種類のデータストレージ媒体を含むことができる。いくつかの実施形態では、コンピュータ読み取り可能媒体は、データカートリッジ、データバックアップ磁気テープ、フロッピー登録商標ディスク、フラッシュメモリドライブ、光学データストレージドライブ、CD-ROM、ROM、RAM、HD等を指し得る。本明細書に記載される機能性またはプロセスの少なくとも部分は、好適なコンピュータ実行可能命令に実装することができる。コンピュータ実行可能命令は、ソフトウェアコード構成要素またはモジュールとして、1つ以上のコンピュータ読み取り可能媒体非揮発性メモリ、揮発性メモリ、DASDアレイ、磁気テープ、フロッピー登録商標ディスク、ハードドライブ、光学ストレージデバイス等、または任意の他の好適なコンピュータ読み取り可能媒体もしくはストレージデバイス等上に格納され得る。一実施形態では、コンピュータ実行可能命令は、コンパイルされたC、Java登録商標、HTML、または任意の他のプログラミングもしくはスクリプトコードのラインに含まれ得る。さらに、開示される実施形態の機能は、1つのコンピュータ上に実装されてもよく、またはネットワーク内の、もしくはネットワークにわたる2つ以上のコンピュータ間で共有/分散され得る。実施形態を実装するコンピュータ間での通信は、任意の電子、光学、高周波信号、または公知のネットワークプロトコルに従う、通信の他の好適な方法およびツールを使用して達成することができる。本明細書で使用される場合、備えるcomprises、備えるcomprising、含むincludes、含むincluding、有するhas、有するhavingという用語、またはこれらの任意の他の変形は、非排他的な含有を網羅することが意図される。例えば、プロセスaprocess、プロセスprocess、物品、または要素のリストを備える装置は、必ずしもこれらの要素に制限されず、明確にリストされていない、またはそのようなプロセス、物品、もしくは装置に内在する、他の要素を含み得る。さらに、そうではないと明確に述べられていない限り、またはは、排他的なまたはではなく、包括的なまたはを指す。例えば、条件AまたはBは、以下の、Aが真または存在するかつBが偽または存在しない、Aが偽または存在しないかつBが真または存在する、ならびにAおよびBの両方が真または存在するのいずれか1つによって満足される。さらに、本明細書に与えられる任意の実施例または図解は、決して、それらと共に利用される、いかなる用語に対する制約としても、制限としても、またはいかなる用語の定義を表現するとも見なされない。代わりに、これらの実施例または図解は、1つの特定の実施形態に関して説明しており、一例にすぎないと見なされる。当業者は、これらの実施例または図解と共に利用される、いかなる用語も、それと共に、または明細書の他の場所に与えられている場合も与えられていない場合もある、他の実施形態を包含し、すべてのそのような実施形態は、その用語の範囲内に含まれることが意図されることを認識するであろう。そのような非制限的な実施例および図解を指定する言語には、例えば例えば、例としてforinstance、例えばe.g.、一実施形態ではを含むが、これらに限定されない。本願は、2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforRebuildingDatainaDistributedRAIDSystemの米国特許出願第12/479,319号、2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforDataMigrationinaDistributedRAIDImplementationの同第12/479,360号、2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforDistributingCommandstoTargetsの同第12/479,403号、2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforInitializingStorageinaStorageSystemの同第12/479,377号、2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforRebuildingDatainaDistributedRAIDSystemの同第12/479,434号、および2009年6月5日にGallowayらによって出願された、名称がMethodandSystemforPlacementofDataonaStorageDeviceの同第12/479,394号、ならびにGallowayによる、名称がMethodandSystemforProtectingAgainstMultipleFailuresinaRAIDSystemの第__________PIVOT1170-1号に関し、これらのすべては、参照によって本明細書に完全に援用される。ここで、特に、データストレージに関する文脈の要約記述が有用であり得る。上述されるように、RAIDシステムは、信頼性を向上し、場合によっては、コンピューティングデバイスホストとして公知の処理量を改善するために、ストレージにこれらのRAIDシステムを使用して、集合的にアレイと称される、複数のハードディスクドライブまたは他の種類のストレージ媒体にわたって、データを分割および複製する。しかしながら、RAIDの現行の実装は、種々の問題を有する場合がある。特に、特定のこれらの問題は、多くの場合において、RAIDシステムとのすべての通信は、RAIDシステムを制御し、管理する、単一のサーバにアドレス指定されなければならない等、これらのRAIDシステムのアーキテクチャによって課される制限から生じる場合がある。このアーキテクチャは、RAIDシステムおよびRAIDシステムを実装するために使用されるコンピューティングデバイスを利用するホストを備える、物理的構成要素の冗長性をもたらし得る。物理的構成要素の冗長性に加えて、ホストおよびRAIDシステムはまた、動作中に、同一の資源の多くを消費し得る。ホストおよびRAIDシステムの両方が、電力、冷却、ラックスペース等を要求し得る。この状況は、ハードウェアの出費の増加、通信ボトルネック、ホストおよびRAIDシステムの両方を含有するための膨大な物理的空間の必要性等を含む、数多くの望ましくない問題を引き起こす可能性がある。特定のRAIDシステムに関して、本発明の特定の実施形態を図示することが有用であるが、しかしながら、特定の実施形態が図示される特定のRAIDシステムは、本発明の他の実施形態の適用性または使用に制限を課さず、そのような実施形態は、他の種類のRAIDシステムまたは他の種類のストレージシステム全体を含む、種々の状況のいずれにも有用に採用され得ることに留意されたい。これを前提として、特定の実施形態は、分散型RAIDシステムに関して有用に図示されてもよく、関連RAIDレベルを伴う容量は、分散型RAIDシステムを使用して作成され得る。次いで、分散型RAIDアプリケーションのそれぞれは、その容量またはその容量と併せた所望のRAIDレベルの実装に関連付けられるデータが、分散型RAIDシステムの複数のデータバンク上に格納され得るように、その容量のデータに関連付けられるここで、図1を参照すると、分散型RAIDシステムの一実施形態を利用するシステムのためのアーキテクチャのブロック図が描かれる。分散型RAIDシステム100は、一連のデータバンク110を含み、各データバンク110は、スイッチ120の両方に通信可能に結合される。スイッチ120の各々は、また、各ホスト102に通信可能に結合され、その結果、ホスト102は、特定のデータバンク110と対応する一連の経路を介して各データバンク110と通信し得、各経路は、スイッチ120のうちの1つを含む。ここで、図1を参照すると、分散型RAIDシステムの一実施形態を利用するシステムのためのアーキテクチャのブロック図が描かれる。分散型RAIDシステム100は、一連のデータバンク110を含み、各データバンク110は、スイッチ120の両方に通信可能に結合される。スイッチ120の各々は、また、各ホスト102に通信可能に結合され、その結果、ホスト102は、特定のデータバンク110と対応する一連の経路を介して各データバンク110と通信し得、各経路は、スイッチ120のうちの1つを含む。データバンク110と、スイッチ120と、ホスト102との間の通信可能な連結は、イーサネット登録商標、SCSI、iSCSI、ファイバーチャネル、シリアルアタッチドSCSISAS、アドバンスドテクノロジーアタッチメントATA、シリアルATASATA、または当該技術分野において公知の他のプロトコルを含む、所望のほぼいかなる伝送媒体有線または無線のいずれかを使用しても達成され得る。さらに、通信可能な連結は、インターネット、LAN、WAN、無線ネットワーク、または当該技術分野において公知の任意の他の通信ネットワーク等の通信ネットワークと併せて実装され得る。次いで、iSCSI、SCSI等のコマンドプロトコルを使用する一実施形態では、ホスト102は、データを操作するために、データバンク110と通信し得る。より具体的には、データバンク110のそれぞれは、ストレージ媒体本明細書上で、後により詳細に説明されるを備える。集合的に、データバンク110内のストレージ媒体は、ストレージ、ストレージデバイス等の1つ以上の連続ブロックとして、ホスト102に対して仮想化され、提示され得る。例えば、iSCSIプロトコルが利用される時、データバンク110内のストレージ媒体は、一実施形態では、複数のポートを伴う、SCSIターゲットとして、ホスト102に提示され得る。したがって、動作中、一実施形態では、ホスト102またはホスト102側のユーザもしくはデータバンク110とインターフェースをとっているユーザは、容量の作成を要求し、その容量と併せて実装されるRAIDのレベルを指定し得る。その容量およびその容量と関連した所望のレベルのRAIDの実装に関連付けられるデータは、データバンク110にわたって格納される。次いで、ホスト102は、容量またはその一部に対応する論理アドレスを使用して、この容量にアクセスし得る。このように、ホスト102は、作成されたストレージの容量を利用することができ、ホスト102に対して実質的に見えないように、これらの容量と併せて耐障害性を達成することができる。ストレージの仮想化およびデータバンク110を利用したRAIDの実装は、分散型RAIDを実装するように動作可能なデータバンク110コンピュータの一実施形態のブロック図を描写する、図2Aを参照して、より理解され得る。ここで、データバンク110は、データストア250と、コンピュータ読み取り可能媒体上に格納された命令を実行するように動作可能なプロセッサ202とを備え、命令は、分散型RAIDアプリケーション210を実装するように動作可能である。分散型RAIDアプリケーション210は、そのデータバンク110に関する障害が存在しているかどうかを決定するために、他のデータバンク110上の分散型RAIDアプリケーション210にハートビート通信を周期的に発行し得る。分散型RAIDアプリケーション210は、別のデータバンク110が障害を抱えていると決定する場合、そのデータバンク110に対応する、1つ以上の障害フラグを設定し得る。各データバンク110上の各分散型RAIDアプリケーション210のこれらの障害フラグを使用して、特定の分散型RAIDアプリケーション210は、特定のデータバンク110に障害があるかどうかを決定し得る。また、分散型RAIDアプリケーション210は、例えば、SATA、PATA、FC等の公知のほぼいかなるプロトコルにも従って動作するディスク252であり得る、1つ以上のストレージ媒体を備えるデータストア250へのアクセスを有してもよく例えば、読み込む、書き込む、コマンドを発行する等のために、ディスク252のそれぞれは、同等のサイズであったり、そうでなかったりし得る。データバンク110のそれぞれの上で実行する分散型RAIDアプリケーション210は、データバンク110にわたるデータストア250を使用した容量の割り当ておよび使用、ならびにすべてがメモリ230データストア250または別のメモリ全体であり得る内に格納され得る、データバンク110間で共有される一連のグローバルテーブル240、一連のローカルテーブル245、および書き込みキャッシュ260を利用した、これらの容量と併せたRAIDの実装を可能にすることができる。図2Bは、分散型RAIDを実装するように動作可能なデータバンク110コンピュータを実装するために使用され得る、ハードウェアアーキテクチャの一実施形態のブロック図を描写する。この構造的実施例では、データバンク110は、Intelx86アーキテクチャまたはいくつかの他のアーキテクチャ全体に従い得る、1つ以上のプロセッサ202と、一実施形態では、サウスブリッジチップ等であり得る、バスを通してI/Oコントローラハブ212に連結される、メモリ230とを備える。I/Oコントローラハブ212は、同様に、PCI-Xバス、PCI高速バス等のバス272に連結され、それを制御し得る。例えば、LSI1068SATA/SASコントローラ等の1つ以上のディスクコントローラ262が、このバス272に連結される。これらのディスクコントローラ262のそれぞれは、1つ以上のディスク252に連結され、集合的に、これらのディスク252は、データストア250を構成し得る。さらに、また、1つ以上のネットワークインターフェース282は、バス272に連結され得る。これらのネットワークインターフェース282は、マザーボード上に含まれるネットワークインターフェースイーサネット登録商標等であってもよく、イーサネット登録商標、ファイバーチャネル等の1つ以上のプロトコルを介してインターフェースをとるように構成された、1つ以上のネットワークインターフェースカードを備えてもよく、またはデータバンク110が、これらのネットワークインターフェース282を通してスイッチ120と通信し得るような、いくつかの他の種類のネットワークインターフェースであり得る。いくつかの実施形態では、データバンク110を実装するために使用される、コンピューティングデバイスの構成要素は、分散型RAIDアプリケーション210を実行するのに必要とされ得るより多くの演算能力を有し得るまたは、有するように構築され得る場合もある。多くの場合、したがって、データバンク110を実装するために使用されるコンピューティングデバイス例えば、プロセッサ、キャッシュ、メモリ、基板等は、分散型RAIDアプリケーション210のみを実行するために使用される時、未利用演算能力を有し得る。したがって、この余剰演算能力を、ホスト102上で実行するアプリケーションを実行するため、および分散型RAIDアプリケーション210を利用するために利用することが望まれる。これには、問題があり得るが、しかしながら、多くの場合、異なるホスト102上で実行する、多種多様なこれらのアプリケーションが存在し得、ホストのそれぞれは、異なるオペレーティングシステムを実行し得るため、アプリケーションは、1種類のオペレーティングシステム上でのみ実行するように構成され得る等である。したがって、今、分散型RAIDシステムまたは他の種類のアプリケーションを利用し得る種々のアプリケーションが、その分散型RAIDシステムを実装する同一の一連のコンピューティングデバイス上で実行されることを可能にする、本発明のシステムおよび方法が注目される。分散型RAIDアプリケーションが、同一の一連のコンピューティングデバイス上の他のアプリケーションと併せて実行されることを可能にするために、仮想化層が、データバンク上で実行され得る。一式の所望のアプリケーションプログラムは、この仮想化層を使用して実行されてもよく、仮想化層上で実行するアプリケーションの各インスタンスのコンテキストは、分散型RAIDシステムを利用して保持される要領内に格納され得る。次いで、これらの仮想マシン例えば、アプリケーションおよび容量内に格納される任意の適用可能なコンテキスト情報は、データバンクのうちのいずれか1つの上の仮想化層と併せて実行され得る。このように、一連のコンピューティングデバイスは、分散型RAIDシステムを実装し、特にそのような分散型RAIDシステムを利用するアプリケーションを実行するために利用され得る。これらの種類のアプリケーションには、例えば、ビデオ監視アプリケーション、ゲーム、小売店または銀行取引アプリケーション、ビデオストリーミングアプリケーション、コンテンツホスティングアプリケーション等が挙げられる。分散型RAIDシステムを実装するコンピューティングデバイスと併せて、何よりもまず、より少ない空間、電力、冷却、予備等が必要とされ得るため、物理資源の統合が達成され、物理資源、ならびにそのような資源をインストールする、設定する、利用する、および維持するために要求される資源の両方に関連付けられる費用が削減され得る。さらに、アプリケーションおよび分散型RAIDシステムの使用と併せて実施される通信が、より少ない場合がある、またはより迅速に実施され得るため、アプリケーションおよび分散型RAIDシステムの両方の実装において、より速い速度が達成され得る。加えて、本願の残りの部分を検討した後により詳細が明らかとなるように、アプリケーションのインスタンスが仮想マシンとして保存され、分散型RAIDシステムを実装するデータバンク上の仮想化層上で実行される設定によって、耐障害性のレベルが導入され得る。簡潔に、この耐障害性のレベルは、各仮想マシン例えば、仮想化層上で実行され得る、実行しているアプリケーションのインスタンスが、分散型RAIDシステムの容量内に格納されるということは、仮想マシンが、データバンクのうちの1つの破損の場合に回復され得ることを意味し得るという事実からもたらされ得る。加えて、仮想マシンが、任意のデータバンクの仮想化層上で実行され得るため、耐障害性が導入されてもよく、したがって、単一のデータバンクが破損する場合にさえ、各仮想マシンは、依然として実行され得る。ここで、図3を参照すると、分散型RAIDシステムを実装し、種々のアプリケーションの実行を可能にし得る、データバンクの一実施形態が描写されている。ここで、データバンク1110は、データストア350と、コンピュータ読み取り可能媒体上に格納される命令を実行するように動作可能なプロセッサ図示せずまたは他のハードウェアとを備える。このハードウェアは、例えば、x86プラットフォーム等であり得る。コンピュータ読み取り可能媒体上に格納される命令は、仮想化層312および分散型RAIDアプリケーション310を実装するように動作可能であり得る。仮想化層312は、当該技術分野において公知であるように、例えば、SunMicrosystemsのContainers、LinuxKVM、LinuxVServer、OracleVM、VirtualPC、MicrosoftのVirtualServer、SunMicrosystemsのIBMLogicalDomainsのPowerVM、VMwareServe等、または任意の他の種類の仮想マシンもしくはエミュレーションマシンアプリケーションのうちの1つであり得る。分散型RAIDアプリケーション310は、上述されるものと同様の機能性を有し得る。これらの1つ以上の実装を助長するために、メモリ330内のテーブル340が、分散型RAIDシステムによって格納されるどの容量が仮想マシンであるか、およびどのデータバンク110が特定の仮想マシンに割り振られているか等の情報を追跡し得るようにする。図4A、図4B、および図4Cを簡単に参照すると、仮想化層を伴うデータバンク1010のアーキテクチャの3つの実施形態が描写されている。そのようなアーキテクチャの他の実施形態が可能であり、利用され得ることに留意されたい。図4Aでは、仮想化層312は、分散型RAIDアプリケーション310および仮想マシン430アプリケーションおよびそれらの対応するコンテキストが、仮想化層312上で実行され得るように、ハードウェア層402上に存在し得る。図4Bは、分散型RAIDアプリケーション310および仮想マシン430アプリケーションおよびそれらの対応するコンテキストが、仮想化層312上で実行され得るように、オペレーティングシステム420例えば、Windows登録商標、Solaris、MacOS等が、オペレーティングシステム420上で実行する仮想化層312を伴うハードウェア層402上で実行され得る、実施形態を描写する。図4Cは、オペレーティングシステム420が、ハードウェア層402上で実行され得る、実施形態を描写する。分散型RAIDアプリケーション310および仮想化層312は、オペレーティングシステム420上で実行され得る。したがって、仮想マシン430は、仮想化層312上で実行され得る。したがって、一連のデータバンク1110を使用して分散型RAIDシステムを実装し、同一のデータバンク1110の1つ以上の上のこの分散型RAIDシステムを利用し得る、1つ以上のアプリケーションを実行するように動作可能であり得る、システムの一実施形態が、図5に描写されている。図6に移動すると、分散型RAIDアプリケーション310もまた実行している、データバンク1110上の1つ以上のアプリケーションを実行するための方法の一実施形態が描写されている。ステップ610で、アプリケーションは、データバンク1110の仮想化層312上で実行され得る。このインストレーションプロセスは、ステップ620で、仮想化層312によって実行される時に、特定のコンテキストと関連してアプリケーションを実行するように動作可能である、仮想マシンを作成し得る。より具体的には、一実施形態では、容量は、分散型RAIDアプリケーション310を使用して作成されてもよく、アプリケーションは、そのアプリケーションの実行からもたらされるコンテキストと共に、特定の時間、仮想化層312上のその容量内に格納され得る。これは、どのように仮想マシン430のそれぞれがデータバンク1110のそれぞれのデータストア350内に格納される容量となり得るかを描写する、図7により明確に描写される。仮想マシンのそれぞれは、対応するコンテキストを伴うアプリケーションを起動するために、仮想マシン430が仮想化層312上で実行され得るように、アプリケーションの1つのインストールされたインスタンスおよび関連コンテキストに対応し得る。図6に戻り、いったんアプリケーションがインストールされ、仮想マシンが作成されると、一実施形態では、ステップ630で、アプリケーションのインスタンスを備える仮想マシンは、特定のデータバンク1110上で実行するように割り振られてもよく、したがって、仮想マシンは、ステップ640で、割り振られたデータバンク1110の仮想化層312上で実行し得る。何らかの理由のために、この仮想マシンの実行を停止することが望まれる場合は、どの時点であっても、仮想マシンは、仮想マシンの実行が、仮想マシンが割り振られている特定のデータバンク1110によって、同一の点から後に再開され得るように格納され得る。この格納は、必要に応じて、仮想マシン仮想マシンに対応する容量内にコンテキストを格納することを伴い得る。各仮想マシン430が分散型RAIDシステムを備えるデータバンク1110にわたって格納される際、仮想マシンが割り振られているデータバンク1110は、各仮想マシンにアクセスし、実行し得ることが留意されるであろう。加えて、その仮想マシンが、分散型RAIDアプリケーション310に関連付けられる容量内に格納され得るため、RAIDのレベルは、その仮想マシンの格納と併せて実装され得ることが留意されるであろう。結果として、前述されるように、分散型RAIDアプリケーション310によって管理される容量として格納される仮想マシンを使用して、データバンク1110上でアプリケーションを実行することによって、分散型RAIDシステムのアーキテクチャによって、耐障害性が潜在的に達成され得る。より具体的には、一実施形態では、各データバンク1110は、任意の仮想マシンにアクセスしてもよく、各仮想マシン430は、RAIDのレベルと併せて格納され得るため、特定のデータバンク1110が破損する場合にさえ、任意の仮想マシンに関連するすべてのデータが、残りの動作しているデータバンク1110によって、依然としてアクセス可能であり得るため、アプリケーションは、依然として実行されることが可能であり得る。事実、一実施形態では、特定のデータバンク1110が破損する場合、破損データバンク1110が検出されてもよく、破損データバンク110に割り振られた各VMは、破損データバンク1110上で実行していたすべてのVMが、今、別のデータバンク1100上で実行するように、別の動作可能なデータバンク1110に実質的に自動的に割り振られ得る。この割り振りは、不規則に行われてもよく、または、各データバンク1110に割り振られるVMの数等の1つ以上の基準に基づいて行われ得る。破損データバンク1110のVMを自動的に再度割り振ることによって、アプリケーションにあるレベルの耐障害性を与えることに加えて、中断時間が最小限になり得る。前述の明細書では、本発明は、特定の実施形態を参照して記載されてきた。しかしながら、当業者は、以下の特許請求の範囲に説明される、本発明の範囲から逸脱することなく、種々の修正および変更を行うことができることを理解する。したがって、本明細書および図面は、制限的な意味というよりは、実例と見なされ、すべてのそのような修正は、本発明の範囲内に含まれることが意図される。利益、他の利点、および問題の解決策は、特定の実施形態に関して説明されてきた。しかしながら、利益、利点、問題の解決策、および任意の利益、利点、または解決策をもたらし得る、もしくはより顕著にし得る任意の構成要素は、任意の、もしくはすべての請求項の決定的に重要である、要求される、または必須の特徴あるいは構成要素であるとは解釈されない。"