(57)【要約】第１の場所における第１の記憶ユニットが第２の場所における第２の記憶ユニットと第３の場所における第３の記憶ユニットとに結合されている方法、システム、および製品を提供する。データが、第１の記憶ユニットにおいて受信される。受信されたデータは、第１の部分と第２の部分とに分割される。データの第１の部分は、第１の場所における第１の記憶ユニットに記憶される。データの第２の部分は、第２の場所における第２の記憶ユニットに分配されて記憶される。データの第１の部分およびデータの第２の部分に対応するパリティ・データが計算される。パリティ・データは、第３の場所における第３の記憶ユニットへ分配されて記憶される。加えて、データが第１の記憶ユニットに受信される方法、システム、および製品を提供する。第１の情報部、第２の情報部、および第３の情報部が生成され、第１の情報部、第２の情報部、および第３の情報部は、受信されたデータの一部および計算されたパリティ・データをそれぞれ含む。第１の情報部は、第１の場所における第１の記憶ユニットに記憶される。第２の情報部は、第２の場所における第２の記憶ユニットへ分配されて記憶される。第３の情報部は、第３の場所における第３の記憶ユニットへ分配されて記憶される。【選択図】図１
2008511064.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶ユニットにおいてデータを受信するステップと、前記受信されたデータを第１の部分と第２の部分とに分割するステップと、前記データの前記第１の部分を第１の場所における前記第１の記憶ユニットに記憶するステップと、前記データの前記第２の部分を第２の場所における第２の記憶ユニットへ分配して記憶するステップと、前記データの前記第１の部分および前記データの前記第２の部分に対応するパリティ・データを計算するステップと、前記パリティ・データを第３の場所における第３の記憶ユニットへ分配して記憶するステップとを含む、方法。
【請求項２】
前記第１の場所におけるデータ損失に応じて、前記データの前記第１の部分を、前記第２の場所に記憶された前記データの前記第２の部分および前記第３の場所に記憶された前記パリティ・データから復旧するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記データの前記第１の部分、前記データの前記第２の部分、および前記パリティ・データのサイズの合計は、前記受信されたデータ・サイズの２倍より小さい、請求項１または２に記載の方法。
【請求項４】
前記データの前記第１の部分、前記データの前記第２の部分、および前記パリティ・データの前記サイズの前記合計は、前記受信されたデータ・サイズの１．５倍である、請求項３に記載の方法。
【請求項５】
前記第１の場所、前記第２の場所、および前記第３の場所は、互いに１０マイル（１６０９０メートル）を超える距離分だけ離れており、前記第１の部分、前記第２の部分、および前記第３の部分は、互いに異なる記憶ディスク・システムに記憶されている、請求項１，２，３または４に記載の方法。
【請求項６】
前記第１の場所と前記第３の場所との間の距離は、前記第１の場所と前記第２の場所との間の距離より小さい、請求項１から５のいずれかに記載の方法。
【請求項７】
前記第１の記憶ユニットは、キャッシュを含み、前記受信されたデータを前記第１の記憶ユニット内の前記キャッシュに記憶するステップと、前記受信されたデータを分割する前に、前記キャッシュに記憶された前記データに対する更新を受信するステップと、前記受信された更新で前記キャッシュを更新するステップとをさらに含み、前記データの前記第２の部分および前記パリティ・データを分配するステップは非同期で行われ、前記データの前記第１の部分、前記データの前記第２の部分、および前記パリティ・データは、タイムスタンプが押される、請求項１から６のいずれかに記載の方法。
【請求項８】
前記第１の記憶ユニットは、入出力要求を前記第１の記憶ユニットへ送出するホストに結合されており、前記ホストからの前記第１の記憶ユニットに対する更新は、前記第２の記憶ユニットにおいて非同期で反映され、前記第３の記憶ユニットにおいて非同期で反映される、請求項１から７のいずれかに記載の方法。
【請求項９】
第１の記憶ユニットにおいてデータを受信するステップと、前記受信されたデータの一部および計算されたパリティ・データをそれぞれ含む第１の情報部、第２の情報部、および第３の情報部を生成するステップと、前記第１の情報部を第１の場所における前記第１の記憶ユニットに記憶するステップと、前記第２の情報部を第２の場所における第２の記憶ユニットへ分配して記憶するステップと、前記第３の情報部を第３の場所における第３の記憶ユニットへ分配して記憶するステップとを含む、方法。
【請求項１０】
前記パリティ・データの大半は、前記第１の記憶ユニットに記憶され、前記第１の記憶ユニットは、前記第２および第３の記憶ユニットより高速でアクセス可能である、請求項９に記載の方法。
【請求項１１】
前記データは、前記第１の記憶ユニットにおいてホストから受信され、前記ホストを前記第１、第２、および第３の記憶ユニットに結合するために、マルチパス・ハードウェアが使用される、請求項９または１０に記載の方法。
【請求項１２】
前記第２および第３の情報部の分配は、前記第１の記憶ユニットから前記第２および第３の記憶ユニットへの書き込み動作を通じて行われ、前記第１の記憶ユニットから前記第２および第３の記憶ユニットへの前記書き込み動作は、前記第２および第３の記憶ユニットに並行して書き込まれるフル・ストライド書き込みである、請求項９，１０，または１１に記載の方法。
【請求項１３】
第１の場所における第１の記憶ユニットが第２の場所における第２の記憶ユニットと第３の場所における第３の記憶ユニットとに結合されているシステムであって、メモリと、前記メモリに結合された回路とを備え、前記回路は、（ｉ）前記第１の記憶ユニットにおいてデータを受信し、（ｉｉ）前記受信されたデータを第１の部分と第２の部分とに分割し、（ｉｉｉ）前記データの前記第１の部分を前記第１の場所における前記第１の記憶ユニットに記憶し、（ｉｖ）前記データの前記第２の部分を前記第２の場所における前記第２の記憶ユニットに分配して記憶し、（ｖ）前記データの前記第１の部分および前記データの前記第２の部分に対応するパリティ・データを計算し、（ｖｉ）前記パリティ・データを前記第３の場所における前記第３の記憶ユニットへ分配して記憶するように動作可能である、システム。
【請求項１４】
第１の場所における第１の記憶ユニットが第２の場所における第２の記憶ユニットと第３の場所における第３の記憶ユニットとに結合されている製品であって、前記第１の記憶ユニットにおいてデータを受信することと、前記受信されたデータを第１の部分と第２の部分とに分割することと、前記データの前記第１の部分を前記第１の場所における前記第１の記憶ユニットに記憶することと、前記データの前記第２の部分を前記第２の場所における前記第２の記憶ユニットへ分配して記憶することと、前記データの前記第１の部分および前記データの前記第２の部分に対応するパリティ・データを計算することと、前記パリティ・データを前記第３の場所における前記第３の記憶ユニットへ分配して記憶することとを含む動作を生じさせることが可能な、製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ復旧のためにパリティ情報を記憶するための方法、システム、製品に関する。
【背景技術】
【０００２】
記憶システムを含む情報技術システムは、現場の災害または停電から保護される必要がある場合があり、停電が予定されている場合も予定されてない場合もある。さらに、情報技術システムは、データ移動、データのバックアップ、またはデータの複製のための機能が必要な場合がある。災害または停電からの復旧、データ移動、データのバックアップ、およびデータの複製のための実施には、記憶システムにおけるデータのミラーリングまたはコピーが含まれることがある。そのようなデータのミラーリングまたはコピーは、情報技術システムのホスト、記憶システム、および接続ネットワーキング・コンポーネント間の相互作用を伴うことがある。
【０００３】
情報技術システムは、第１の場所から第２の場所へデータをコピーすることによって、現場の停電から保護される場合がある。第１の場所は、アプリケーション・サイト、ローカル・サイト、一次サイト、または生産サイトと称されることがある。第２の場所は、復旧サイト、リモート・サイト、二次サイト、またはバックアップ・サイトと称されることがある。
【０００４】
独立したディスクの冗長アレイ（ＲＡＩＤ）は、ディスク記憶システムにおける災害からの復旧のために、ディスクを耐障害性のあるものにするための機構である。ＲＡＩＤは、単一障害エラー点、すなわち、単一のディスクの障害から復旧させるために、パリティとして知られるエラー補正コードを使用することがある。ＲＡＩＤは、データおよびパリティを複数のディスクに渡ってストライピングして、データの取り出しの速度を向上させると同時に、耐障害性を可能にすることがある。ＲＡＩＤには、ＲＡＩＤレベル０，１，２，３，４，５などの数多くの互いに異なるレベルがある。例えば、ＲＡＩＤレベル５は、バイト・レベルでのデータ・ストライピングを提供し、また、ストライプ・エラー訂正情報をも提供する。ＲＡＩＤレベル５においては、複数のディスク上のデータに対応するパリティが計算されて、当該パリティを使用して、どのデータも失うことなく、データ障害から復旧するようになる。
【０００５】
以下、本発明を説明していく。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
データ復旧のためにパリティ情報を記憶すること。
【課題を解決するための手段】
【０００７】
第１の場所における第１の記憶ユニットが第２の場所における第２の記憶ユニットと第３の場所における第３の記憶ユニットとに結合されている方法、システム、および製品を提供する。データが、第１の記憶ユニットにおいて受信される。受信されたデータは、第１の部分と第２の部分とに分割される。データの第１の部分は、第１の場所における第１の記憶ユニットに記憶される。データの第２の部分は、第２の場所における第２の記憶ユニットに分配されて記憶される。データの第１の部分およびデータの第２の部分に対応するパリティ・データが計算される。パリティ・データは、第３の場所における第３の記憶ユニットへ分配されて記憶される。
【０００８】
他の実施形態において、第１の場所におけるデータ損失に応じて、データの第１の部分は、第２の場所に記憶されたデータの第２の部分および第３の場所に記憶されたパリティ・データから復旧される。さらなる実施形態において、データの第１の部分、データの第２の部分、およびパリティ・データのサイズの合計は、受信されたデータ・サイズの２倍より小さい。さらなる実施形態において、データの第１の部分、データの第２の部分、およびパリティ・データのサイズの合計は、受信されたデータ・サイズの１．５倍である。
【０００９】
さらなる実施形態において、第１の場所、第２の場所、および第３の場所は、互いに１０マイル（１６０９０メートル）を超える距離分だけ離れており、第１の部分、第２の部分、および第３の部分は、互いに異なる記憶ディスク・システムに記憶されている。
【００１０】
さらなる実施形態において、第１の場所と第３の場所との間の距離は、第１の場所と第２の場所との間の距離より小さい。
【００１１】
さらなる実施形態において、第１の記憶ユニットは、キャッシュを含む。受信されたデータは、第１の記憶ユニット内のキャッシュに記憶される。受信されたデータを分割する前に、キャッシュに記憶されたデータに対する更新が受信される。キャッシュは、受信された更新で更新され、データの第２の部分およびパリティ・データを分配するステップは非同期で行われ、データの第１の部分、データの第２の部分、およびパリティ・データはタイムスタンプが押される。
【００１２】
さらなる実施形態において、第１の記憶ユニットは、入出力要求を第１の記憶ユニットへ送出するホストに結合されており、ホストからの第１の記憶ユニットに対する更新は、第２の記憶ユニットにおいて非同期で反映され、第３の記憶ユニットにおいて非同期で反映される。
【００１３】
第１の場所における第１の記憶ユニットが第２の場所における第２の記憶ユニットと第３の場所における第３の記憶ユニットとに結合されている方法、システム、および製品をさらに提供する。第１の情報部、第２の情報部、および第３の情報部が生成され、第１の情報部、第２の情報部、および第３の情報部は、受信されたデータの一部および計算されたパリティ・データをそれぞれ含む。第１の情報部は、第１の場所における第１の記憶ユニットに記憶される。第２の情報部は、第２の場所における第２の記憶ユニットへ分配されて記憶される。第３の情報部は、第３の場所における第３の記憶ユニットへ分配されて記憶される。
【００１４】
さらなる実施形態において、第１の場所におけるデータ損失に応じて、受信されたデータは、第２の情報部および第３の情報部から復旧される。さらなる実施形態において、第１の情報部、第２の情報部、および第３の情報部のサイズの合計は、受信されたデータ・サイズの２倍より小さい。
【００１５】
他の実施形態において、第１の場所、第２の場所、および第３の場所は、互いに１０マイル（１６０９０メートル）を超える距離分だけ離れており、第１の情報部、第２の情報部、および第３の情報部は、互いに異なる記憶ディスク・システムに記憶されている。
【００１６】
さらなる実施形態において、パリティ・データの大半は、第１の記憶ユニットに記憶され、第１の記憶ユニットは、第２および第３の記憶ユニットより高速でアクセス可能である。
【００１７】
さらなる実施形態において、データは、第１の記憶ユニットにおいてホストから受信され、ホストを第１、第２、および第３の記憶ユニットに結合するために、マルチパス・ハードウェアが使用される。
【００１８】
さらなる実施形態において、第２および第３の情報部の分配は、第１の記憶ユニットから第２および第３の記憶ユニットへの書き込み動作を通じて行われ、第１の記憶ユニットから第２および第３の記憶ユニットへの書き込み動作は、第２および第３の記憶ユニットに並行して書き込まれるフル・ストライド書き込みである。
【００１９】
同様の参照符号は全体に渡って対応部分を表す図面を参照する。
【発明を実施するための最良の形態】
【００２０】
以下の説明において、本明細書の一部を構成し、かつ、いくつかの実施形態を示す添付の図面を参照する。他の実施例を使用してもよく、構造および動作は変更されてもよいことが理解される。
【００２１】
図１は、災害からの復旧のために、ある記憶システムから他へデータをコピーするためのシステムのブロック図を示す。ホストなどのサーバ１００は、書き込むべきデータを、二次記憶システム１０４に結合された一次記憶システム１０２へ送出してもよい。ホスト１００によって一次記憶システム１０２に書き込まれたデータは、元データと称されてもよい。例えば、元データ１０６のサイズは、１００テラバイトであってもよい。一次記憶システム１０２におけるデータ損失から復旧できるようにするシステムを管理するために、一次記憶システム１０２は、元データ１０６を二次記憶システム１０４へコピー１０８してもよい。二次記憶システム１０４へコピーされたデータは、コピーされたデータ１１０と称されてもよい。元データ１０６の任意の部分に損失が生じた場合には、コピーされたデータ１１０を使用して、損失から復旧してもよい。元データ１０６のサイズが１００テラバイトの場合、コピーされたデータ１１０も１００バイトであってもよく、図１に示すシステムは、２００テラバイトの記憶装置を使用して、元データ１０６の損失から復旧してもよい。図１に示すシステムにおいて、データ損失からの復旧に必要な記憶容量は、元データ１０６のサイズの２倍である。一次記憶システム１０２から二次記憶システム１０４へ元データ１０６を最初にコピーした後、後続の書き込みもコピーされてもよい。ホスト１００が一次記憶システム１０２上のボリュームに書き込む場合に、一次記憶システム１０２は、一次記憶システム１０２に関連したディスクなどのローカル記憶装置へ対応データを書き込み、当該データを二次記憶システム１０４へ送る。二次記憶システム１０４は、送られたデータを、二次記憶システム１０４に関連したローカル記憶装置へ書き込む。二次記憶システム１０４が一次記憶システム１０２に対して書き込みが成功した旨を通知すると、一次記憶システム１０２は、書き込みが成功した旨をホスト１００に対して応答する。
【００２２】
図１ｂは、ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するためのシステムのブロック図である。
【００２３】
第１の記憶システム１１２、第２の記憶システム１１４、および第３の記憶システム１１６は、第１のサーバ１１８、第２のサーバ１２０、および第３のサーバ１２２にそれぞれ結合されている。第１のサーバ１１８は、データを第１の記憶システム１１２に書き込んでもよい。データは、現場の停電に対して保護されなければならない場合がある。ある実施形態において、データおよび関連パリティは、第１、第２、および第３の記憶システム１１２，１１４，および１１６のうちの１つ以上に記憶されてもよい。データおよび関連パリティを第１、第２、および第３の記憶システム１１２，１１４，および１１６のうちの１つ以上に記憶するためのある実施形態のさらなる詳細は、図２〜８に説明されている。
【００２４】
図２は、ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するための第１のコンピューティング環境２００のブロック図である。
【００２５】
第１の記憶システム２０２、第２の記憶システム２０４、および第３の記憶システム２０６は、第１のサーバ２０８と、第２のサーバ２１０と、第３のサーバ２１２にそれぞれ結合されている。加えて、第１の記憶システム２０２は、第２の記憶システム２０４および第３の記憶システム２０６に結合されている。記憶システム２０２，２０４，および２０６は、記憶装置コントローラと、ディスク・ベースの記憶装置、テープ・ベースの記憶装置など備える任意の記憶システムまたは記憶サブシステムを備えてもよい。サーバ２０８，２１０，および２１２は、ワークステーション、デスクトップ・コンピュータ、ラップトップ、メインフレーム、電話通信装置、携帯型コンピュータなどの任意の計算装置を備えてもよい。
【００２６】
書き込み動作を行っている間に、第１のサーバ２０８は、第１の記憶システム２０２へデータ２１４を送出してもよい。データ２１４は、現場の停電から保護されていなければならない場合がある。第１の記憶システム２０２は、データ２１４の第１の部分２１６を第１の記憶システム２０２に記憶し、データ２１４の第２の部分２１８を第２の記憶システム２０４へ送出して記憶させる。第１の記憶システム２０２は、パリティ・データ２２０を第１の部分２１６および第２の部分２１８から計算して、パリティ・データ２２０を第３の記憶システム２０６へ送出して記憶させる。ある実施形態において、第１の記憶システム２０２からデータが送出された後に、第１の記憶システム２０２は、遠隔、すなわち、第２および第３の記憶システム２０４および２０６のうちの１つからの受領確認を待つ。対応の受領確認が第２の記憶システム２０４および第３の記憶システム２０６のうちのいずれかから戻ると、データは保護されて、第１の記憶システム２０２は、書き込みが成功した旨を第１のサーバ２０８へ返す。このように、書き込みは、負荷の釣り合いが自動的に取れてもよい。第２の記憶システム２０６への記憶ネットワークがビジーの場合でも、第１のコンピューティング環境２００の性能に対しては悪影響を及ぼさないだろう。なぜならば、第１のサーバ２０８は、受領確認がなされるべき書き込みのうちの１つを待てばよいからである。
【００２７】
ある実施形態において、データ２１４のサイズが１００テラバイトである場合には、データの第１の部分２１６は５０テラバイトであり、データの第２の部分２１８は５０テラバイトであり、パリティ・データは５０テラバイトであってもよい。災害から復旧するために元データ１０６を記憶するには、２倍の記憶量が必要だった図１と比較して、図２に示す実施形態は、記憶システム２０２，２０４，および２０６のうちのいずれかにおいて損失を生じさせる災害から復旧するためには、データ２１４のサイズの１．５倍の記憶量が必要であってもよい。
【００２８】
ある実施形態において、第１の記憶システム２０２、第２の記憶システム２０４、および第３の記憶システム２０６は、互いに異なる場所にあってもよい。ある実施形態において、第１の記憶システム２０２は第１の場所にあり、第２の記憶システム２０４は第２の場所にあり、第３の記憶システム２０６は第３の場所にあり、第１の場所、第２の場所、および第３の場所は、地理的に互いに離れており、互いに異なる都市にあってもよい。例えば、第１、第２、および第３の場所は、それぞれ互いに１０マイル（１６０９０メートル）を超える距離分だけ離れていてもよい。記憶システム２０２，２０４，および２０６が互いに異なる場所に位置しているので、データ２１４の第１の部分２１６、データ２１４の第２の部分２１８、およびパリティ・データ２２０は互いに異なるディスク記憶システムに記憶されている。ある実施形態において、ユーザは、記憶システム２０２，２０４，および２０６を切り離すように選択して、自然災害などの現場全体に渡る災害に対して保護することもできる。しかしながら、記憶システム２０２，２０４，および２０６は、常に地理的に分散されていなくてもよい。例えば、記憶システム２０２，２０４，および２０６は、耐火式のコンクリート製の壁によって分離された同じ部屋にあってもよく、互いに異なる電力送電網およびスプリンクラー・システムに接続されていてもよい。
【００２９】
実施形態例において、ローカル・サイトおよびリモート・サイトを備える２つの場所は、１００ｋｍの距離分だけ離れていてもよい。ファイバを通じた光の速度は、約２００，０００ｋｍ／秒である。距離が１００ｋｍであるとすると、２つの場所間の往復の待ち時間は、１ミリ秒である。ハード・ドライブ例の待ち時間は、約５ｍｓである。遠隔地におけるリモート記憶サブシステムのキャッシュに対してデータが読み書きされる場合には、この設定からのアクセス時間は、ハード・ドライブ例のアクセス時間の５分の１となってもよい。しかしながら、データがリモート・キャッシュにない場合には、動作は５ミリ秒ではなく６ミリ秒かかり、性能が２０％犠牲となる。第２および第３の記憶サブシステム２０４および２０６への書き込みが並行して生じる実施形態例において、書き込み性能は、２つの場所による設定と同一であってもよく、読み出し性能は最悪２０％を下回ることはないだろう。ある代替実施形態において、書き込み動作は、フル・ストライド書き込みではない。そのような場合には、記憶サブシステムは、現在のデータを読み出し、新たなデータを追加し、書き込みの前に新たなパリティを計算する必要がある。ある実施形態において、パリティ・データは、最速のアクセス時間で記憶システムに記憶されてもよい。なぜならば、パリティ・データは、他のデータよりも頻繁にアクセスされる場合があるからである。他の実施形態において、パリティ・データは、記憶システム２０２，２０４，および２０６へ分配されてもよい。パリティ・データを分散すると、３つの記憶システム間で作業負荷の釣り合いが均等になって、第１のコンピューティング環境２００の性能全体を向上することができる。
【００３０】
図３は、第１のコンピューティング環境２００に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。図３に示す動作は、第１の記憶システム２０２において実施されてもよい。
【００３１】
制御はブロック３００において開始し、第１の記憶システム２０２は、データ２１４を書き込む要求を第１のサーバ２０８から受信する。第１の記憶システム２０２は、データを第１の部分２１６と第２の部分２１８とに分割する（ブロック３０２）。
【００３２】
第１の記憶システム２０２は、データの第１の部分２１６およびデータの第２の部分２１８からパリティ・データ２２０を計算する（ブロック３０４）。例えば、データの第１の部分２１６およびデータの第２の部分２１８のバイトのビット単位の排他的論理和演算によって、パリティ・データを提供してもよい。ある実施形態において、パリティ・データ２２０は、ＲＡＩＤレベル４におけるパリティ・データの計算と同様のやり方で計算されてもよい。代替実施形態において、パリティ・データ２２０は、ＲＡＩＤレベル４におけるパリティ・データの計算とは異なるやり方で計算されてもよい。
【００３３】
制御は、ブロック３０４からブロック３０６ａ，３０６ｂ，および３０６ｃへと同時に進んでもよい。すなわち、ブロック３０６ａ，３０６ｂ，および３０６ｃに記載された動作は並行して行われてもよい。第１の記憶システム２０２は、データ２１４の第１の部分２１６を第１の記憶システム２０２に書き込む（ブロック３０６ａ）。第１の記憶システム２０２は、データ２１４の第２の部分２１８を第２の記憶システム２０４へ分配して記憶させる（ブロック３０６ｂ）。第２の記憶システム２０４がデータの第２の部分２１８を受信して記憶してもよい。加えて、第１の記憶システム２０２は、パリティ・データ２２０を第３の記憶システム２０６へ分配する（ブロック３０６ｃ）。第３の記憶システム２０６がパリティ・データ２２０を受信して記憶してもよい。
【００３４】
図３は、第１の場所における第１の記憶ユニット２０２が第２の場所における第２の記憶ユニット２０４と第３の場所における第３の記憶ユニット２０６とに結合されている一実施形態を示す。第１の記憶ユニット２０２は、データ２１４を受信して、受信されたデータを第１の部分２１６と第２の部分２１８とに分割する。第１の記憶ユニット２０２は、データ２１４の第１の部分２１６を第１の場所における第１の記憶ユニット２０２に記憶する。第１の記憶システム２０２は、データの第２の部分２１８を第２の場所における第２の記憶システム２０４へ分配して記憶させる。第１の記憶システム２０２は、データ２１４の第１の部分２１６およびデータ２１４の第２の部分２１８に対応するパリティ・データ２２０を計算する。第１の記憶システム２０２は、パリティ・データ２２０を第３の場所における第３の記憶システム２０６へ分配して記憶させる。
【００３５】
ある実施形態において、第１の場所における第１の記憶システム２０２でのデータ損失に応じて、データ２１４の第１の部分２１６を、第２の記憶システム２０４に記憶されたデータの第２の部分２１８および第３の記憶システム２０６に記憶されたパリティ・データ２２０から復旧する。ある実施形態においては、第１の場所と第３の場所との間の距離は、第１の場所と第２の場所との間の距離より小さい。なぜならば、パリティ・データ２２０は、他のデータと比較すると、より頻繁にアクセスおよび書き込みがなされるだろうからである。
【００３６】
ある実施形態において、データ２１４の第１の部分２１６、データ２１４の第２の部分２１８、およびパリティ・データ２２０のサイズの合計は、受信されたデータ２１４のサイズの２倍より小さい。ある実施形態において、データ２１４の第１の部分２１６、データ２１４の第２の部分２１８、およびパリティ・データ２２０のサイズの合計は、受信されたデータ２１４のサイズの１．５倍である。ある代替実施形態において、パリティ・データは、第１の記憶システム２０２など、最速でアクセス可能な記憶システム上に記憶されてもよい。
【００３７】
図４は、ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するためのシステムの第２のコンピューティング環境４００のブロック図である。
【００３８】
第１の記憶システム４０２、第２の記憶システム４０４、および第３の記憶システム４０６は、第１のサーバ４０８、第２のサーバ４１０、および第３のサーバ４１２にそれぞれ結合されている。加えて、第１の記憶システム４０２は、第２の記憶システム４０４および第３の記憶システム４０６に結合されている。
【００３９】
第１のサーバ４０８は、データ４１４を書き込み要求を介して第１の記憶システム４０２へ送出してもよい。データ４１４は、現場の停電から保護されていなくてはならない場合がある。ある実施形態において、第１の記憶システム４０２は、データ４１４を第１のサーバ４０８から受信し、データ４１４は、第１のサーバ４０８からの書き込み要求に関連してもよい。
【００４０】
第１の記憶システム４０２は、第１の情報部４１６と、第２の情報部４１８と、第３の情報部４２０とを生成し、第１の情報部４１６と、第２の情報部４１８と、第３の情報部４２０は、それぞれ、受信されたデータ４１４の一部および計算されたパリティ・データとを含む。各情報部４１６，４１８，および４２０は、１つ以上のバイトを記憶する。第１の記憶システム４０２は、第１の情報部４１６を第１の場所における第１の記憶システム４０２に記憶する。第１の記憶システム４０２は、第２の情報部４１８を第２の場所における第２の記憶システム４０４へ分配して記憶し、第３の情報部４２０を第３の場所における第３の記憶ユニット４０６へ分配して記憶する。
【００４１】
ある実施形態において、データ４１４が１００テラバイトの場合、第１の情報部４１６は５０テラバイトであり、第２の情報部４１８は５０テラバイトであり、第３の情報部４２０は５０テラバイトであってもよい。災害から復旧するために元データ１０６を記憶するには、２倍の記憶量が必要だった図１と比較して、コンピューティング環境４００において示す実施形態は、記憶システム４０２，４０４，および４０６のうちのいずれかにおいて損失を生じさせる災害から復旧するためには、データ４１４のサイズの１．５倍の記憶量が必要であってもよい。
【００４２】
ある実施形態において、第１の記憶システム４０２は第１の場所に位置し、第２の記憶システム４０４は第２の場所に位置し、第３の記憶システム４０６は第３の場所に位置し、第１の場所、第２の場所、および第３の場所は、地理的に互いに離れており、互いに異なる都市にあってもよい。第１の情報部４１６、第３の情報部４１８、および第３の情報部４２０は、互いに異なるディスク・システムに記憶されてもよい
【００４３】
図５は、第２のコンピューティング環境４００に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。図５に示す動作は、第１の記憶システム４０２において実施されてもよい。
【００４４】
制御はブロック５００において開始し、第１の記憶システム４０２は、データ４１４を書き込む要求を第１のサーバ４０８から受信する。第１の記憶システム４０２は、第１の情報部４１６、第２の情報部４１８、および第３の情報部４２０にデータ４１４を割り当てる（ブロック５０２）。
【００４５】
第１の記憶システム４０２は、パリティデータを計算して、第１の情報部４１６、第２の情報部４１８、および第３の情報部４２０に追加する（ブロック５０４）。ある実施形態において、第１の記憶システム４０２は、ＲＡＩＤレベル５と同様のやり方でパリティを計算してもよく、３つの情報部４１６，４１８，および４２０のそれぞれは、受信データ４１４の一部および少なくともなんらかのパリティ・データを含む。パリティ・データの割り当ておよび追加は、ＲＡＩＤレベル５において使用されるものとは異なるアルゴリズムを使用して行ってもよい。
【００４６】
制御は、ブロック５０４からブロック５０６ａ，５０６ｂ，および５０６ｃへと同時に進んでもよい。すなわち、ブロック５０６ａ，５０６ｂ，および５０６ｃに記載された動作は並行して行われてもよい。第１の記憶システムは、対応パリティ・データを含む第１の情報部４１６を第１の記憶システム４１６に書き込む（ブロック５０６ａ）。同時に、第１の記憶システム４０２は、対応パリティ・データを含む第２の情報部４１８を第２の記憶システム４０４へ分配する（ブロック５０６ｂ）。加えて、第１の記憶システム４０２は、対応パリティ・データを含む第３の情報部４２０を第２の記憶システム４０６へ分配する（ブロック５０６ｃ）。
【００４７】
耐障害性を提供するある実施形態において、記憶システムに記憶されたデータに対応するパリティ・データは、他の記憶システムに記憶される。例えば、第１の記憶システム４０２に記憶されたデータについてのパリティ・データは、第２の記憶システム４０４および第３の記憶システム４０６に記憶され、第２の記憶システム４０４に記憶されたデータについてのパリティ・データは、第１の記憶システム４０２および第３の記憶システム４０６に記憶され、第３の記憶システム４０６に記憶されたデータについてのパリティ・データは、第１の記憶システム４０２および第２の記憶システム４０４に記憶される。
【００４８】
ある実施形態において、第１の場所においてデータ損失がある場合には、受信されたデータ４１４が第２の情報部４１８および第３の情報部４２０から復旧される。ある実施形態において、第１の情報部４１６、第２の情報部４１８、および第３の情報部４２０のサイズの合計は、受信されたデータ４１４のサイズの２倍より小さい。ある実施形態において、第１の情報部４１６、第２の情報部４１８、および第３の情報部４２０は、互いに異なるディスク・システムに記憶される。
【００４９】
図６は、ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するための第３のコンピューティング環境６００のブロック図である。
【００５０】
キャッシュ６０３を含む第１の記憶システム６０２、第２の記憶システム６０４、および第３の記憶システム６０６は、第１のサーバ６０８、第２のサーバ６１０、および第３のサーバ６１２にそれぞれ結合されている。加えて、第１の記憶システム６０２は、第２の記憶システム６０４および第３の記憶システム６０６に結合されている。ある実施形態において、第１の記憶システム６０２、第２の記憶システム６０４、および第３の記憶システム６０６は、地理的に分散された互いに異なる場所にあってもよい。
【００５１】
第１のサーバ６０８は、書き込み要求を介して第１の記憶システム６０２へデータ６１４を送出してもよい。データ６１４は、現場の停電に対して保護されなければならない場合がある。第１の記憶システム６０２は、データ６１４を受信して、受信されたデータをキャッシュ６０３に書き込んで、一時的に記憶する。第１の記憶システム６０２は、第１の情報部６１６、第２の情報部６１８、および第３の情報部６２０を生成してもよく、第１の情報部６１６、第２の情報部６１８、および第３の情報部６２０は、それぞれ、キャッシュ６０３内に一時的に記憶された受信されたデータ６１４の一部および計算されたパリティ・データを含む。第１の記憶システム６０２は、第１の情報部６１６を第１の場所における第１の記憶システム６０２に記憶する。第１の記憶システム６０２は、第２の情報部６１８を第２の場所における第２の記憶システム６０４へ非同期転送６２１を介して分配して記憶し、第３の情報部６２０を第３の場所における第３の記憶システム６０６へ非同期転送６２２を介して分配して記憶する。分散は非同期なのは、受信されたデータ６１４は、情報部６１８および６２０を計算して第２の記憶システム６０４および第３の記憶システム６０６へ分配するために、すぐには使用されないからである。すなわち、第１のサーバ６０８から第１の記憶システム６０２へ書き込み動作は、３つの記憶ユニット６０２，６０４，および６０６に対応データを分散することなく完了することができる。
【００５２】
図７は、第３のコンピューティング環境６００に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。図７に示す動作は、第１の記憶システム６０２において実施されてもよい。
【００５３】
制御はブロック７００において開始し、第１の記憶システム６０２は、データを書き込む要求を第１のサーバ６０８から受信する。第１の記憶システム６０２は、第１の記憶システム６０２のキャッシュに６０３にデータ６１４を書き込む（ブロック７０２）。第１の記憶システム６０２は、キャッシュ６０３に書き込まれたデータ６１４に対する追加の更新を受信して、キャッシュ６０３に書き込まれたデータを更新する（ブロック７０４）。
【００５４】
第１の記憶システム６０２は、キャッシュ６０３に記憶されたデータを使用して、第１、第２および第３の情報部６１６，６１８，および６２０を計算して、記憶システム６０２，６０４，および６０６へ分配し（ブロック７０６）、第１、第２および第３の情報部６１６，６１８，および６２０は、それぞれ、受信されたデータ６１４の一部、追加の更新の一部、および計算されたパリティ・データの一部を含んでもよい。
【００５５】
制御は、ブロック７０６からブロック７１０ａ，７１０ｂ，および７１０ｃへと同時に進んでもよい。すなわち、ブロック７１０ａ，７１０ｂ，および７１０ｃに記載された動作は並行して行われてもよい。制御がブロック７０６からブロック７１０ａ，７１０ｂ，および７１０ｃへ移る間に、第１の記憶システム６０２は、非同期でデータ転送動作を開始し、関連データにタイムスタンプを押してもよい（参照番号７０８）。
【００５６】
第１の記憶システム６０２は、対応パリティ・データを含む第１の情報部６１６を第１の記憶システム６０２に書き込む（ブロック７１０ａ）。同時に、第１の記憶システム６０２は、非同期で、対応パリティ・データを含む第２の情報部６１８を第２の記憶システム６０４へ分配して記憶する（ブロック７１０ｂ）。加えて、第１の記憶システム６０２は、対応パリティ・データを含む第３の情報部６２０を第３の記憶システム６０６へ分配して記憶する。
【００５７】
データおよびパリティを記憶システムに非同期で分配することによって、すべての書き込みが、記憶システム６０２などのローカル記憶システムのキャッシュに対して最初に書き込まれる。その後、時間があれば、データは他の２つの記憶システムへ分配される。データが他の２つの記憶サブシステムへ分配される前に同データ・ブロックが更新される場合には、送出する必要があるのは最新の変更のみである。以前の変更は、分配する必要がないので、帯域幅が節約される。さらに、分散された書き込みにタイムスタンプを押すことによって、２つのリモート・システム６０４および６０６は、ローカル・システム６０２に障害が生じても整合性が取れている。ローカル・システム６０２は、分配されていない記憶サブシステムと同様の性能特性を有してもよく、同時に、災害復旧保護を提供してもよい。
【００５８】
ある実施形態において、第１のサーバ６０８は、ホスト・コンピュータであってもよく、ホスト６０８から第１の記憶ユニット６０２への更新は、第２の記憶ユニット６０４において非同期で反映され、第３の記憶ユニット６０６において非同期で反映される。
【００５９】
ある実施形態において、第１の記憶ユニット６０２は、キャッシュ６０３を含み、第１の記憶ユニット６０２は、第１の記憶ユニット６０２内のキャッシュ６０３に受信されたデータ６１４を記憶してもよい。受信されたデータ６１４を情報部に分割する前に、第１の記憶ユニット６０２は、キャッシュ６０３に記憶されたデータに対する更新を受信してもよい。第１の記憶ユニット６０２は、受信された更新でキャッシュ６０３を更新してもよく、第２の情報部６１８および第３の情報部６２０を分配することは、非同期で行われ、第１の情報部６１６、第２の情報部６１８、および第３の情報部６２０は、タイムスタンプが押される。ある実施形態において、パリティ・データを３つの情報部６１６，６１８，および６２０へ分配してもよく、他の実施形態において、パリティ・データは、情報部６２０などの単一の情報部に常駐してもよい。
【００６０】
ある実施形態において、パリティ・データの大半は、第１の記憶ユニット６０２に記憶され、第１の記憶ユニット６０２は、第２および第３の記憶ユニット６０４および６０６より高速でアクセス可能である。ある他の実施形態において、データ６１４は第１の記憶ユニットにおいてホスト６０８から受信され、マルチパス・ハードウェアを使用して、ホスト６０８を第１、第２、および第３の記憶ユニット６０２，６０４，および６０６に接続する。すべての記憶ユニット６０２，６０４，および６０６がホスト６０８に対して同一のボリュームを提示してもよい。記憶ユニット６０２，６０４，および６０６のうちの１つに障害が生じた場合、他の記憶ユニットのうちの１つが、ホストに対してボリュームを提示するために動的に再構築および継続してもよい。その結果、記憶システム障害がコンピューティング環境６００の動作を崩壊させることはないだろう。
【００６１】
ある実施形態において、第２および第３の情報部６１８および６２０の分配は、第１の記憶ユニット６０２から第２および第３の記憶ユニット６０４および６０６への書き込み動作を通じて行われ、第１の記憶ユニット６０２から第２および第３の記憶ユニット６０４および６０６に対する書き込み動作は、第２および第３の記憶ユニット６０４および６０６に並行して書き込まれるフル・ストライド書き込みである。
【００６２】
ある実施形態において、コンピューティング環境６００において行われる動作は、コンピューティング環境２００または４００においても行われてもよい。例えば、フル・ストライド書き込みが、コンピューティング環境２００または４００において行われてもよい。加えて、上述のある動作が、コンピューティング環境２００，４００，および６００のうちの１つ以上において行われてもよい。
【００６３】
図１ｂおよび図２〜図７に記載されたある実施形態は、元データのフル・コピーが災害復旧場所１０４に保持される実施形態と比較して、災害復旧に必要な記憶量を削減する。ある実施形態において、災害復旧に必要な記憶量は、（参照符号１０６，２１４、および４１４によって表されている）元データのサイズの２倍より少ない。ある実施形態において、災害復旧に必要な記憶量は、元データ１０６，２１４、および４１４のサイズの１．５倍である。
【００６４】
代替実施形態において、さらなる記憶ユニットがさらなる場所に追加されてもよい。ある実施形態において、ホスト２０８，４０８，および６０８は、マルチパス・ハードウェアを使用して、すべての記憶システム、すなわち、第１、第２、および第３の記憶システムに対するパスを有してもよい。すべての記憶システムは、ホスト２０８，４０８，および６０８に対して同一のボリュームを提示してもよい。記憶システムのうちの１つに障害が生じた場合、障害が生じてない他の記憶システムのうちの１つが、ホスト２０８，４０８，および６０８に対して同一のボリュームを提示するために、動的に再構築および継続することができる。その結果、ある実施形態は、システム障害から非妨害的に復旧できる。
【００６５】
ある実施形態において、すべての書き込みは、ＲＡＩＤ‐５の書き込みを犠牲にすることのないフル・ストライド書き込みとすることができる。ある実施形態において、バックアップおよび災害復旧が本実施形態によって行われてもよい。非同期遠隔ミラーリングを使用して、ある実施形態の動作を拡張してもよい。実施形態は、３つの場所という解決策における１つ以上の地理的に分散された場所にパリティ情報を記憶して、災害復旧を行う。
【００６６】
追加の実施形態の詳細
【００６７】
説明した手法は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、または任意の組み合わせあるいはそのすべてを伴う方法、装置、および製品として実施されてもよい。本明細書において使用されるような「製品（ａｒｔｉｃｌｅ  ｏｆ  ｍａｎｕｆａｃｔｕｒｅ）」という用語は、プログラム命令、コード、または回路（例えば、集積回路チップ、プログラム可能なゲート・アレイ（ＰＧＡ）、ＡＳＩＣなど）に実装される論理あるいはそのすべて、またはコンピュータ読み出し可能な媒体（例えば、ハード・ディスク・ドライブ、フロッピー（登録商標）・ディスク、テープなどの磁気記憶媒体）、光学記憶装置（例えば、ＣＤ‐ＲＯＭ，ＤＶＤ‐ＲＯＭ，光ディスクなど）、揮発性および不揮発性メモリ装置（例えば、電気消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、プログラム可能読み出し専用メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ），フラッシュ、ファームウェア、プログラム可能な論理など）を指す。コンピュータ読み出し可能な媒体内のコードは、プロセッサなどの機械によってアクセスかつ実行できてもよい。ある実施形態において、実施例が行われるコードは、送信媒体を通じて、またはネットワークを介してファイル・サーバから、さらにアクセス可能であってもよい。そのような場合に、コードが実装される製品は、ネットワーク伝送線路、無線伝送媒体、空間を伝搬する信号、無線電波、赤外線信号などの送信媒体を備えてもよい。当然ながら、数多くの変形が本発明の範囲から逸脱せずになされてもよいこと、また、当該技術で既知の任意の情報搬送媒体を製品が備えてもよいことを、当業者は理解するだろう。例えば、機械によって実行されると動作が行われる命令を記憶する記憶媒体を備える。
【００６８】
図８は、ある実施形態が実施されるシステム８００のブロック図を示す。ある実施形態において、記憶システム２０２，４０２，および６０２は、システム８００に従って実施されてもよい。システム８００は、ある実施形態においてはプロセッサ８０４を含みうる回路８０２を含んでもよい。システム８００は、メモリ８０６（例えば、揮発性メモリ装置）と、記憶装置８０８とを含んでもよい。システム８００のある構成要素は、記憶システム２０２，４０２，６０２に見当たってもよいし、見当たらなくてもよい。記憶装置８０８は、不揮発性メモリ装置（例えば、ＥＥＰＲＯＭ，ＲＯＭ，ＰＲＯＭ，ＲＡＭ，ＤＲＡＭ，ＳＲＡＭ，フラッシュ、プログラム可能な論理など）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどを含んでもよい。記憶装置８０８は、内部記憶装置、付属の記憶装置、またはネットワークにアクセス可能な記憶装置を備えてもよい。システム８００は、メモリ８０６にロードされプロセッサ８０４または回路８０２によって実行されうるコード８１２を含むプログラム論理８１０を含んでもよい。ある実施形態において、コード８１２を含むプログラム論理８１０を記憶装置８０８に記憶してもよい。他のある実施形態において、プログラム論理８１０は、回路８０２によって実施されてもよい。したがって、図８は、他の構成要素から別個のプログラム論理８１０を示しており、プログラム論理８１０は、メモリ８０６または回路８０２あるいはその両方において実装されてもよい。
【００６９】
図３、図５および図７の動作のうちの少なくともある動作は、並行的にも連続的にも実行されてもよい。代替実施形態において、動作のうちのある動作は、異なる順番で行われてもよいし、修正または削除されてもよい。
【００７０】
さらに、例示のために、数多くのソフトウェアおよびハードウェア構成要素を別個のモジュールで説明した。そのような構成要素を、より少ない数の構成要素に統合するか、より多くの数の構成要素に分割してもよい。加えて、特定の構成よそによって行われると説明したある動作は、他の構成要素によって行われてもよい。
【００７１】
図１ａ、図１ｂ、図２〜図８において図示または言及したデータ構造および構成要素は、特定の種類の情報を有するとして説明した。代替実施形態において、データ構造および構成要素は、異なるように構築されてもよく、図面に図示または言及したのより少ない、多い、または異なるフィールドまたは異なる機能を有してもよい。
【００７２】
したがって、本実施形態の以上の説明は、例示および説明の目的のために提示された。本説明は、網羅的でもないし、本発明を開示された厳密な形式に限定するものでもない。上記の教示に鑑み、数多くの修正および変形が可能である。
【図面の簡単な説明】
【００７３】
【図１】図１ａは、一次記憶システムから二次記憶システムへコピーするためのシステムのブロック図を示し、図１ｂは、ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するためのシステムのブロック図を示す。
【図２】ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するための第１のコンピューティング環境のブロック図である。
【図３】第１のコンピューティング環境に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。
【図４】ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するためのシステムの第２のコンピューティング環境のブロック図である。
【図５】第２のコンピューティング環境に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。
【図６】ある実施形態に係る、データおよびパリティ情報を３つの記憶システムに分配するための第３のコンピューティング環境のブロック図である。
【図７】第３のコンピューティング環境に対応したある実施形態に係る、データおよびパリティ情報を分配するための動作を示す。
【図８】ある実施形態が実施されるシステムを示す。
【図１】
2008511064.tif 000003
【図２】
2008511064.tif 000004
【図３】
2008511064.tif 000005
【図４】
2008511064.tif 000006
【図５】
2008511064.tif 000007
【図６】
2008511064.tif 000008
【図７】
2008511064.tif 000009
【図８】
2008511064.tif 000010