(57)【要約】  本発明のネットワーク化されたデータ・ストレージの新規アーキテクチャーは、効率的な情報処理と伝送処理とを実現する。データは、処理、暗号化、エラーチェック、および冗長的に符号化され、量子と呼ばれる固定サイズのブロックで格納される。各量子は「効果的に交差する層（ＥＣＬ：Effective Cross Layer）」によって処理される。このＥＣＬは、セキュリティ用プロトコルスタック、ｉＷＡＲＰならびにｉＳＣＳＩの機能、伝送制御、およびＲＡＩＤストレージ機能を再構築したものである。このＥＣＬによる機能合理化は、少ないメモリ・コピーによる非常に効率良いプロトコルを形成し、計算処理負担およびセキュリティ保護手段の大部分をクライアント側に設定する。この結果、多数のクライアントからの量子を、ターゲットは最小限の処理で格納する。
2007533012.tif 000002
【特許請求の範囲】
【請求項１】
通信システムにおいて、データを送信する方法において、
クライアント装置は、ネットワーク媒体を介して、データパケットをストレージ・ターゲットと送受信し、ネットワーク層を通過させてデータを送信することが、アドレスすることとデータを参照することを含む方法であって、
前記データをデータブロックにカプセル化すること、
前記ネットワーク媒体を介して、前記データブロックを送信すること、
前記データブロックを処理すること、および
前記データブロックを前記ストレージ・ターゲットに格納することを包含し、
ここに、前記データブロックは、前記データブロックで格納するために、カプセル化からの同一サイズを維持し、これによりネットワーク層を通過するデータのアドレスすることと参照することを単純化し、そして、通信システムでのデータ送信機能を向上させる方法。
【請求項２】
前記データブロックをネットワーク接続するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記格納するステップが、
前記ストレージ・ターゲットのメモリ・ロケーションに、前記データブロックを格納すること、
１つの層から別の層へデータをコピーすることなく、データのネットワーク・ストレージ用プロトコルの複数の層を共同で処理すること、をさらに含む請求項１に記載の方法。
【請求項４】
前記同一サイズのデータブロックを処理するステップが、エラー制御処理を含む請求項１に記載の方法。
【請求項５】
前記エラー制御処理が、ＳＮＡＣＫ（Selective Negative Acknowledgment）エラー処理を使用する請求項４に記載の方法。
【請求項６】
前記データブロックを処理するステップが、前記ストレージ・ターゲットに前記データブロックを格納する前に、前記データブロックを暗号化することを含む請求項１に記載の方法。
【請求項７】
前記処理ステップが、前記データブロックに巡回冗長コード（ＣＲＣ）チェックを実行することをさらに含み、ＣＲＣチェックが、検証されたＣＲＣデータに結果をもたらす請求項６に記載の方法。
【請求項８】
前記検証されたＣＲＣデータが、前記データブロックと一緒に、前記ストレージ・ターゲットに格納される請求項７に記載の方法。
【請求項９】
前記処理ステップが、エラーのために、１つ以上のプロトコル層を共同で処理することを含む請求項１に記載の方法。
【請求項１０】
前記処理ステップが、コード化処理を含み、該コード化処理において、
データブロックのグループは、該データブロックの原型データのコピーとして、分離したメモリ・ディスクに格納され、
該データブロックのグループに属するデータの陰性イメージのコピーは、分離したメモリ・ディスクの別の組に格納される請求項１に記載の方法。
【請求項１１】
グループ内における各ブロックの陰性イメージのコピーは、当該ブロック以外のグループ内にあるすべてのブロックの排他的論理和の合計である請求項１０に記載の方法。
【請求項１２】
前記データブロックを処理するステップが、原型データと陰性イメージとのＲＡＩＤ（Redundant Array of Inexpensive Disks）コードを計算することを含み、これにより、前記通信システムにおけるデータ送信機能を向上させる請求項１に記載の方法。
【請求項１３】
ネットワーク内でのデータ格納方法であって、通信システムにおいてデータを処理、送信および格納することを含み、
ネットワーク・ストレージ用プロトコルの複数層を横断するデータブロックのために、共通の固定サイズのデータブロックを使用して、少なくとも１つのクライアント装置と少なくとも１つのデータストレージ・ターゲットとの間で、ネットワーク媒体を介して、データを交換する方法。
【請求項１４】
前記データブロックが、量子データユニット（quantum data unit）である請求項１３に記載の方法。
【請求項１５】
プロトコルの１つの層からプロトコルの別の層へ前記データブロックをコピーすることなく、共通アドレスと参照とを使用して、ネットワーク・ストレージ用プロトコルの複数層によって処理される最終システムのメモリ・ロケーションにデータを格納する請求項１３に記載の方法。
【請求項１６】
前記固定サイズのデータブロックを処理するステップが、少なくとも１つのクライアント装置で各ブロックのデータを暗号化すること、および前記ターゲットに前記データブロックを格納すること、を含む請求項１３に記載の方法。
【請求項１７】
前記ターゲットが、前記データブロックを解読しない請求項１６に記載の方法。
【請求項１８】
前記処理ステップが、少なくとも１つのクライアント装置で、前記データブロックを解読することをさらに含む請求項１７に記載の方法。
【請求項１９】
前記処理ステップが、ストレージ用プロトコルの複数層のために、共同のエラー検出を実行することを含む請求項１３に記載の方法。
【請求項２０】
前記エラー検出を実行するステップが、事前計算、ヘッダおよびトレーラからなるグループによる計算をすることにより、ストレージ用プロトコルの上位層でエラー検出することを、さらに含む請求項１９に記載の方法。
【請求項２１】
前記送信するステップが、エラー時再送信処理、検出エラー付きの同一サイズのデータブロックの再送信処理、および、送信または上位プロトコル層から得られた再送信されたデータブロックを合成する処理を含む請求項１３に記載の方法。
【請求項２２】
前記エラー送信処理がＳＮＡＣＫ（Selective Negative Acknowledgment）を使用する請求項２１に記載の方法。
【請求項２３】
前記処理ステップは、原型のデータブロックの右回りの排他的論理和によって生成される固定サイズの冗長ブロックと一緒に固定サイズのデータブロックを使用して、ディスクまたは送信での失敗をエラー訂正する処理を含み、そして前記データブロックおよび冗長ブロックを、分離したストレージ用ディスクに格納する請求項１３に記載の方法。
【請求項２４】
前記冗長ブロックは、第１のコピーが１つ以上の固定サイズのデータブロックを含むコード化処理によって生成され、および、一つ以上の同一サイズのデータブロックの各冗長ブロックは、該データブロック以外の１つ以上のすべての排他的論理和の合計である請求項２３に記載の方法。
【請求項２５】
各ブロックの冗長コピーは、すべてのブロックのパリティと一緒に当該ブロックの排他的論理和の数学的等式によって生成される請求項２４に記載の方法。
【請求項２６】
前記すべてのブロックのパリティは、すべてのブロックのブロック単位の排他的論理和である請求項２５に記載の方法。
【請求項２７】
前記処理ステップは、ネットワーク・ストレージ用プロトコルの層を横断してデータをコピーすること無く、１つのメモリ・ロケーションで実行される請求項１３に記載の方法。
【請求項２８】
ネットワークを横断してデータの格納を実行する装置は、
少なくとも１つのストレージ装置、
通信媒体を介して、前記少なくとも１つのストレージ装置と通信状態にあるクライアント装置であって、前記少なくとも１つのストレージ装置と通信するためのネットワークプロトコルを使用できるクライアント装置、および
データを共通の固定サイズのデータユニットに処理し、該データユニットを前記少なくとも１つのストレージ装置に送信するために、前記クライアント装置と協働するロジックと、を具備する装置。
【請求項２９】
前記データユニットは、ストレージ用プロトコルの複数層の全域で固定サイズを維持する請求項２８に記載の装置。
【請求項３０】
前記ロジックは、前記データユニットにＣＲＣチェックを実行し、ＣＲＣチェックが前記データユニットを検証した後で、ＣＲＣレーラを各データユニットに追加する請求項２９に記載の装置。
【請求項３１】
データ処理システムは、
データ処理手段、
ネットワーク媒体を介して、前記データ処理手段と通信する少なくとも１つのデータ格納手段、および
前記データユニットを少なくとも１つのストレージ装置から送信するとき、および前記データユニットを少なくとも１つのデータストレージ・ネットワークから受信するとき、データを、ネットワークプロトコルの複数層の全域で共通サイズを維持するような共通サイズのデータユニットに処理する手段、を具備するシステム。
【請求項３２】
エラー制御処理手段をさらに含む請求項３１に記載のシステム。
【請求項３３】
データ検証手段をさらに含む請求項３１に記載のシステム。
【請求項３４】
データのコード化手段をさらに含む請求項３１に記載のシステム。
【請求項３５】
１つ以上のストレージ装置に、冗長データを準備し格納する手段をさらに含む請求項３１に記載のシステム。
【請求項３６】
データ暗号化手段をさらに含む請求項３１に記載のシステム。
【請求項３７】
複数の計算機媒体の１つにおいて、請求項１〜２７のいずれか１項に記載の方法を実現する計算機コード。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願の特許請求の範囲は、2004年4月12日に出願した「量子データストレージ（Quanta Data Storage）：ストレージエリア・ネットワークのための情報処理と輸送アーキテクチャ」と称する米国特許仮出願第60/560,225号の記載内容を優先とするもので、本明細書に参照として引用する。
【０００２】
本発明は、デジタルデータ処理に関連するもので、特に、ネットワーク化されたストレージ・ネットワーク、および当該ストレージ・ネットワークでの処理方法に関連する発明である。
【背景技術】
【０００３】
初期の計算機システムにおいて、長時間のデータ格納は、一般的に専用記憶装置によって実行されていた。この専用記憶装置は、テープ駆動装置やディスク駆動装置であり、データ処理用中央計算機に接続されていた。アプリケーション・プログラムによって発生するデータの読出し要求および書込み要求は、計算機のオペレーションシステムに常駐する特別な目的の入力／出力ルーチンによって処理されていた。「タイムシェアリング」および初期のマルチプロセス処理技術の出現によって、中央の記憶装置だけにもかかわらず、複数のユーザが、同時にデータを格納しアクセスすることができた。
【０００４】
1980年代のパーソナル計算機（およびワークステーション）の出現と共に、ビジネスユーザによる要求は、本来独立した計算機が互いの記憶装置にアクセスすることを許可するような、相互接続のメカニズムの発展を導いた。この時代の前から計算機ネットワークは知られていたが、計算機ネットワークは、まだ典型的な通信システムとしてだけ認められ、共有ストレージ・システムとしては認められていなかった。
【０００５】
現時点までに出現した一般的なビジネスネットワークは、ローカルエリア・ネットワークである。ローカルエリア・ネットワークは、ネットワークを介して、「サーバ」計算機に接続する「クライアント」計算機（例えば、個人用ＰＣまたはワークステーション）からなる。すべての処理とデータの格納を、中央計算機で発生させていた初期の計算機システムと違って、クライアント計算機は、一般に多くのユーザアプリケーションを実行するのに適したプロセッサ能力と記憶容量とを有している。しかしながら、クライアント計算機は、短期間のファイル格納以外に、共有アプリケーションや共有データファイルにアクセスするために、たびたびサーバ計算機（および付随するディスク駆動装置や記憶装置のバッテリー）を頼りにしている。
【０００６】
情報量の急増は、部分的には共同計算処理の作業量上昇により、部分的にはインターネットにより、さらなる増加へと変化を加速しつつある。共通要素が少ないものとしては、格納活動から独立したハブとして存在する個別のサーバがある。多くのストレージ装置は、ネットワークまたはスイッチング構成の上に置かれ、頻繁に複数台のサーバ（ファイル・サーバおよびウェブ・サーバ）によってアクセスされている。これらのサーバは、順々に個別グループ毎にクライアントのサービスを行う。個別のＰＣまたは個別のワークステーションでさえ、（サーバクラスの計算機の範囲内にある最も共同作業となる環境にあるので）時々、「ストレージ領域用ネットワーク（ＳＡＮ）」と呼ばれるネットワークに有るストレージ装置に、直接アクセスすることができる。
【０００７】
インターネットを経由する通信は、インターネットプロトコル（ＩＰ）を基礎とする。インターネットは、伝統的な回線交換音声ネットワークに対して、パケット交換ネットワークである。ＩＰパケットの次の飛び先（hop）に関する経路指定の決定は、ホップ・バイ・ホップ（hop-by-hop）を基礎にして形成される。パケットが経由する全パスは、通常送信側に知らされないが、経路は実行後に決定することができる。
【０００８】
送信制御プロトコル（ＴＣＰ）は、トランスポート層（第４層）のプロトコルで、ＩＰはネットワーク層（第３層）のプロトコルである。ＩＰは、送信パケットが指定箇所に届いたかを保証しないので信頼できない。ＴＣＰは、各パケットに荷札を付けることによりパケットの配布先を保証するので、ＩＰの上位に規定される。指定パケットの損失または誤配が検出されたとき、送信源は、早急に目的地へパケットの再送信を実行する。
【０００９】
アイ・スカジー（ｉＳＣＳＩ）は、インターネットを介して格納データへのアクセスが実現できるように発展したものである。現行のストレージとインターネット構造との間の互換性を提供するために、数種類の新規プロトコルが開発された。これらのプロトコルの追加は、非常に非効率の情報処理方法、処理能力の使用および格納用フォーマットを生む結果となった。
【００１０】
特に、ｉＳＣＳＩプロトコルは、ＳＣＳＩコマンドのＴＣＰ／ＩＰカプセル化、およびＳＣＳＩケーブルの代替となるインターネット経由の輸送を実現する。このことは、広域エリアからのデータ格納装置へのアクセスを容易にする。
【００１１】
上述のネットワーク・ストレージは、要求されるスループット、例えば１〜１０Ｇｂ／ｓのネットワーク・ストレージを実現するのに、非常に高速のネットワークアダプタを必要とする。ｉＳＣＳＩおよびＴＣＰ／ＩＰのストレージ用プロトコルは、上記と同様な速度で処理する必要があるが、この実現は難しい。ＴＣＰからｉＳＣＳＩ迄でのチェックサム計算は、計算周期の大部分を消費し、システムを低速化させ、例えばＴＣＰオフロード・エンジン（ＴＯＥｓ）が不在のときは、約１００Ｍｂ/ｓに低速化する。主なボトルネックは、たびたびＩ／Ｏの情報処理能力の多くを消費するコピーシステムである。インターネット・プロトコルセキュリティ（ＩＰＳｅｃ）のようなセキュリティに不可欠な機能が、ＴＣＰ層の下に加えられたとき、オフロード機能の無いクライアント用ストレージやターゲット用ストレージは、数十Ｍｂ/ｓに低速化するであろう。
【００１２】
この低速化の問題は、各層に促進機能を追加することで、ネットワーク・ストレージ用プロトコルが断片的な構成になっていることから生じる。メモリのコピー回数を低減する目的で、（ｉＳＣＳＩ層とＴＣＰ層との間に）ｉＷＡＲＰと呼ばれる新シリーズのプロトコルを規定するように、遠隔直接メモリアクセス（ＲＤＭＡ）共同体が形成された。データのセキュリティを向上させるために、ＩＰＳｅｃ層は、スタックの底部に加えることができる。ストレージの信頼性を向上させるために、ソフトウェアＲＡＩＤを、スタックの頂上部に付加することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
この積み重なったモデルには、いくつかの問題がある。第１に、これらのプロトコルの各々は、計算機能を集中したものでできており、例えばＩＰＳｅｃがそうである。第２に、過度の階層化が、大きなプロトコルのヘッダ（header）をより大きくしている。第３に、ＩＰＳｅｃモデルが、伝送パイプの両端において暗号化と暗号解読とを必要とするので、格納データの解読におけるセキュリティ問題が発生する。第４に、エラー制御、フロー制御およびラベリングのような機能が、各層で繰り返される。この繰り返しは、たびたび不必要にリソースの計算や伝送を消費することになる。例えば、ＴＣＰの２バイトのチェックサムを、ｉＳＣＳＩのより強力な４バイト・チェックサムに追加する必要はない。悪いことに、繰り返される機能は、層間で予期しない相互作用を生じさせることがある。例えば、ｉＳＣＳＩフロー制御は、ＴＣＰフロー制御とは互いに悪影響をおよぼすことが知られている。
【００１４】
ＲＤＭＡとｉＳＣＳＩとの共同体が、一様に進展している中で、ネットワークセキュリティとストレージの信頼性との重要な問題に注意が不十分になる一方で、このプロトコル・スタックは過度な負担になりつつある。ＴＯＥと他のオフロードのハードウェアは、上記で述べた問題のすべてでなくとも、いくつかの問題を解決することができる。さらに、オフロードのハードウェアを展開することは、進展中の標準モデルを、高価にかつ困難にする。ハードウェアを追加することは、システムのコストを増加させる。
【００１５】
従って、進展しているシステム、およびストレージ・ネットワークでのデータの処理方法と伝送方法において、何が必要とされているかである。
【課題を解決するための手段】
【００１６】
上記および他の課題を解決するために、本発明の目的にしたがって、ここでは実例を幅広く記載し、進展したデータ伝送、データ処理およびストレージ・システムならびにストレージ方法は、量子データ（quantum data）の概念を使用する。スカジー（ＳＣＳＩ）およびＲＡＩＤ（Redundant Array of Inexpensive Disks）でのデータ格納や検索処理は、大部分ブロック単位で処理されているので、本発明の実施例は、バイトに依存するプロトコルＴＣＰおよびＩＰＳｅｃを使用する代わりに、量子と呼ぶ小さなサイズのデータブロックをベースとする平坦なプロトコルで、スタック全体を置き換える。効果的に交差する層（ＥＣＬ）と呼ばれる平坦な層は、層間を横断する余分なデータコピーをする必要が無くても、ＣＲＣ、ＡＥＳ暗号化、ＲＡＩＤ、自動繰り返し要求（ＡＲＱ）、エラー制御、パケットのリシーケンスおよびフロー制御のような多くの機能を現実の処理用として可能とする。このことは、先の層を横断するプロトコルデータユニット（ＰＤＵ）に同期化した記述法により、アドレス指定処理および参照処理において大幅な節減が得られる。
【００１７】
本発明の実施例は、量子の概念を利用して、ｉＳＣＳＩ層とＴＣＰ層との全域でエラー制御とフロー制御とを結合させる。また、一定比率をベースとしたフロー制御を、ＴＣＰによる遅いスタートと輻輳による過密とをさけるための代替として使用する。
【００１８】
本発明の他の態様によれば、ｉＳＣＳＩのＳＮＡＣＫ（Selective Negative Acknowledgment）の方法を、ＴＣＰのＡＲＱを使用する代わりに、エラー制御用に修正して使用する。
【００１９】
本発明の他の態様において、統一したＲＡＩＤオプションを、プロトコル機能の１つとして追加する。ＲＡＩＤの機能は、量子処理と一緒になって、ストレージ用ターゲットのその場において最も良く機能する。
【００２０】
さらに本発明の他の態様において、開始プログラムは、陰陽（yin yang）のＲＡＩＤコードを計算することができ、伝送量を２倍にするが、一方でネットワークやディスクでの失敗を処理するのに、２倍程度の冗長度の使用を可能にする。
【００２１】
本発明の他の態様において、プロトコルは非対称にデザインされる。すなわち、ストレージ用ターゲットの代わりに、クライアント側に計算する負荷の大部分を置く。ストレージ用ターゲットは、受信するときに巡回冗長検査（ＣＲＣ）を実行した後で、量子を暗号化する。また、１つの変形例では、検証したＣＲＣの格納を可能にするので、検索データのＣＲＣの再計算は不必要となる。ＣＲＣを格納することは、格納中のデータ破損を検出する機能を果たす。この非対称は、クライアント側でのデータ速度要求がおそらく約１００Ｍｂ／ｓを満足する事実を巧く利用している。この速度は、例えば、オフロードのハードウェアが無いマルチのＧＨｚクライアントのプロセッサプロトコルで達成することができる。ストレージ用ターゲットがサービスする多くのクライアントの処理能力を引き出すことにより、ターゲット側で改良するデータ格納は、オフロードのハードウェア無しで実現する。
【００２２】
本発明の種々の特徴を実行するサービスの説明と一緒に、一般的なアーキテクチャも、種々の実施例の図面を参照して、これから説明することになる。図面および図面に関連する説明は、本発明の実施例を説明するために提供するものであり、本発明の範囲を限定するためのものではない。
【発明を実施するための最良の形態】
【００２３】
Ｉ．概観
一般には、本発明の実施は、ＥＣＬ（Effective Cross Layer）に関するもので、このＥＣＬは、ネットワーク・ストレージの高効率な情報格納、処理およびコミュニケーションを実現する。ＥＣＬの一実施例は、図１に示すように、インターネット上でのデータ・コミュニケーションに最近使用されているいくつかの他のプロトコルを組み合わせたものである。ＥＣＬによって処理される情報は、図８に示す量子と呼ばれる固定のデータユニットサイズにフォーマット化される。ＥＣＬと量子データ処理との組み合わせは、データ処理時間の短縮化と処理能力の向上に導く。
【００２４】
ＥＣＬと量子データとの一実施例を図３Ｂに示す。図１と図３Ａに示す従来の層に比較して、ＥＣＬ層は、ＳＣＳＩ、ｉＳＣＳＩ、ＲＤＭＡ，ＤＤＰ，ＭＰＡ，ＴＣＰおよびＩＰＳｅｃの機能を、ＥＣＬとして結合させる。図４に、ＥＣＬヘッダの実際の具体例を表示する。
【００２５】
さらに図２を参照すると、キーは分離されたキー・サーバに格納され、これらのキーは、量子データの暗号化に使用される。ＳＡＮ（storage area networks）内データにアクセスが許可されているクライアントが、これらのキーにアクセスすることができる。データへのアクセスが必要になったとき、クライアントは、あらかじめフォーマット化されたパケットを、ストレージ装置から得ることができる。
【００２６】
上で述べた一般的な概観から、選び出した構成部分および変形事項について、以下で詳細に説明する。
【００２７】
II．量子データ格納（ＱＤＳ：Quanta Data Storage）
背景として、従来の層構造のプロトコルは、各層でのプロトコルデータユニット（ＰＤＵ）の可変サイズが認められていた。より上位層のＰＤＵは、下位層に入り通過することができた。通過の際、より下位の層は、上位層のＰＤＵを寸断することができた。寸断された各ＰＤＵは、各々のプロトコルのヘッダに追加される。ＣＲＣ（巡回冗長チェック）は、エラーチェックの目的でトレーラ（trailer）に追加される。ヘッダ、寸断されたＰＤＵ、およびトレーラは、一緒になって下位層のＰＤＵを形成する。寸断されたＰＤＵを、ヘッダおよびトレーラによって包むことを、カプセル化と呼ぶ。この寸断とカプセル化の処理は、下位層のＰＤＵが、プロトコル・スタックの次の下位層に入り通過する度に、繰り返される。
【００２８】
ｉＳＣＳＩにおいて、バースト（例えば、＜１６メガバイト（ＭＢ））は、ｉＳＣＳＩのＰＤＵに寸断され、寸断されたＰＤＵは、さらにＴＣＰのＰＤＵに寸断され、そしてＩＰのＰＤＵに寸断され、そして最後にギガビット・イーサネット（登録商標）（ＧＢＥ：Gigabit Ethernet（登録商標））のＰＤＵに寸断される。
【００２９】
本発明において、データの固定バイト数（各層で追加されるプロトコルのヘッダとトレーラは含まない）が選択され、ＱＤＳシステムは、量子より小さい寸断は行わない。従って、各々の層のＰＤＵは、同一の範囲を有することになる。このことは、交差する層でのＰＤＵ同期化と呼ばれる。
【００３０】
ＱＤＳシステムの１つの有利な点は、層間を交差するＰＤＵの共通参照を許可されていることである。例えば、１０２４Ｂの量子サイズにおいて、バーストは、最大１万６千の量子に寸断される。従って、各量子は、バースト内で１４ビットまたは２バイトの量子アドレスを利用して、１から１万６千まで順番に参照することができる。
【００３１】
ＰＤＵ同期化と量子アドレスの効果として、バーストの識別は、量子アドレスと一緒になって、量子がコピーされるべきメモリの場所を一意的に規定するので、ＱＤＳシステムはデータのコピー・ゼロを実現している。このことは、データが交差する各層で余分なデータをコピーすること無しで、従来のプロトコル・スタックで実施しているように、各々の層で量子のその場での処理を実現させる。
【００３２】
Ａ、量子データ処理
ＳＣＳＩのようなデータ伝送、次世代標準暗号化方式（ＡＥＳ）のような暗号化、およびＲＡＩＤのようなコード化による信頼性は、ブロック単位で順応する。本発明において、有利なことに、好ましい実施では、これらの機能のデータユニットのブロックサイズを統一している。さらに、これらの機能は、プロトコル層を横断してコピーすること無く、中央にて実行することができる。
【００３３】
図３Ａに示す従来のスタックにおいて、バイト志向の伝送プロトコルＴＣＰは、ブロック志向のｉＳＣＳＩ層とＩＰＳｅｃ層とのブロックの間に挿入される。バイトアドレス指定のＴＣＰに対するブロックアドレス指定のＳＣＳＩによるこのミスマッチは、着信したＴＣＰ／ＩＰパケットが、複数コピーされること無く、カーネル空間に直接コピーされたときに、面倒なことを引き起こす。何故なら、パケットは損失し、寸断され、または順序が狂って到着するからである。データを適切に参照するために、ポインタを介してＴＣＰのＰＤＵの範囲を定めるために、ｉＷＡＲＰプロトコルは、ＭＰＡと呼ばれる仲介のフレーミングプロトコルを必要とする。
【００３４】
図８に最も良い例を示すように、固定したＰＤＵの長さは、種々の層にわたって使用される。また、種々の層でのＰＤＵは、位置合わせされるので、データの参照が容易となる。さらに、ＣＲＣ、フロー制御、順序付け、およびバッファ管理のような類似機能が、各層を越えて統一化できる。例えば、ＴＣＰの２バイト・チェックサムは省略でき、代わりに、より強力なｉＳＣＳＩの４バイト・チェックサムに頼ることができる。信頼できる伝送を確保するためのＴＣＰ機能の代わりに、ｉＳＣＳＩのＳＮＡＣＫ（Selective Negative Acknowledgment）が適切に実行されれば、ＴＣＰのＡＲＱは必要なくなる。また、ｉＳＣＳＩとＳＮＡＣＫのメカニズムとが、バースト内の量子アドレスを使用することにより、データブロックを適切に位置付けるとき、ＴＣＰのバッファリングと再順序付けとは、省略することができる。
【００３５】
量子データ処理のパイプラインの実施例を、図５に示す。一体化されたブロックサイズは、多くの機能において、量子データのその場でのパイプライン処理を可能にする。ここでの機能とは、冗長コード化、暗号化およびＣＲＣチェックサムが含まれ、計算処理として集約される機能である。データは、第１に量子サイズのブロックに形成され、暗号化される。固定サイズのデータユニットは、同一の固定サイズの暗号データユニット（ＥＤＵ）を形成するために、キー・サーバからのキーによって暗号化される。
【００３６】
第２に、ＲＡＩＤコード化が、クライアント・サーバで実行される。代替として、ＲＡＩＤコード化を、ターゲット・サーバで実行することもできる。ＲＡＩＤ処理の実施について、より詳細な説明を以下で実施する。
【００３７】
暗号化され、コード化された量子は、４バイトのＣＲＣチェックを生成するために使用される。この後で、送信前にＥＣＬヘッダが追加される。
【００３８】
一実施例では、ＥＤＵが、インターネットで寸断されることは許容されていない。寸断されないことを保証するため、サーバとクライアント間での最小パスＭＴＵのサイズが、チェックされる。そして、ＥＤＵのサイズが設定される。例えば１ＫＢ（１０２４バイト）に設定される。各量子は、バースト内でアドレス指定される。
【００３９】
サーバに送信されたＥＤＵは、サーバに「そのまま」（例えば、解読無し）で格納される。ＥＣＬヘッダは削除され、ＥＤＵはサーバに格納される。そして、最小の処理が、ターゲットで要求される。
【００４０】
データを検索するクライアントは、データを指定するキーの取得を要求する。このセキュリティへの準備は、ディスク内の生のデータ格納が、信頼できずかつ不確かなものとして取り扱う。従って、暗号化およびチャネル／ＲＡＩＤによるコード化は、「端末と端末との間（end-to-end）」で実行され、すなわち、ディスクへの書き込むときからディスクから読み出すときまでである。この端末と端末との間でのセキュリティ・パラダイムを直接ストレージ用プロトコルに含めることは、ネットワーク・ストレージの安全性を促進するものと信じる。
【００４１】
Ｂ、効果的に交差する層（ＥＣＬ：Effective Cross Layer）
本発明による「効果的に交差する層」の実施例を、図３Ｂに示す。「効果的に交差する層（ＥＣＬ）」は、以下の機能性を含むヘッダを使用する。ヘッダには、ｉＳＣＳＩ、遠隔直接メモリアクセス（ＲＤＭＡ）、直接データ配置（ＤＤＰ）、ＴＣＰ（ＭＰＡ）の骨組み用に調整されたマーカＰＤＵ、および伝送制御用プロトコル（ＴＣＰ）・メカニズムの機能が含まれる。「効果的に交差する層」内のいくつかの機能は、以下のように設定される。
１）ｉＳＣＳＩ機能：「効果的に交差する層」は、ｉＳＣＳＩの機能の大部分を保有する。読み出し、書き込み用の情報、およびＥＤＵの長さは維持される。
２）コピー回避：ｉＷＡＲＰパッケージソフト内のコピー回避機能は、ＤＤＰとＲＤＭＡとのプロトコルによって実行される。ＤＤＰプロトコルは、カーネルのコピー（ＴＣＰ／ＩＰに関するコピー）無しで、アプリケーションバッファに直接設定できるように、伝送用ペイロードのバッファアドレスを特定する。ＲＤＭＡは、アプリケーションに対して、リード・ライト動作を連絡する。ＲＤＭＡのリード・ライト指示動作は、ｉＳＣＳＩのヘッダで規定される。ＥＣＬのヘッダは、またバッファアドレス情報を提供する。
【００４２】
ＭＰＡプロトコルは、パケット範囲やパケット寸断問題を処理するプロトコルであるが、省略することができる。各量子は、量子アドレスにより、直接アプリケーションバッファに設定される。これらのバッファアドレスは、ＥＣＬのヘッダに操作用タグ（ＳＴＡＧｓ：Steering Tags）の形で存在する。
３）ＥＣＬの輸送機能：ＥＣＬのヘッダは、また輸送用ヘッダとして機能する。
４）セキュリティへの配慮：キー・サーバからキーへのアクセス権を有するクライアントのみが、検索データを解読できる。セキュリティは、ＴＣＰ層の下位にあるＩＰＳｅｃを使用する代わりに、高い層の機能として考慮される。
【００４３】
III ．交差する層の量子ベースのエラーチェック処理
ストレージ用プロトコルの層を横断して発生するエラーのチェックの共同処理に使用される、量子データ格納（ＱＤＳ）の実例の好ましい方法を図８に示す。この図について、手っ取り早く簡潔に説明する。ＣＲＣトレーラは、たびたび関連するヘッダに挿入することができる。複数の層を横断して固定サイズのデータユニットを使用することは、コピー・ゼロのメカニズムに基づき、当該データユニットを一箇所のメモリ装置に格納することである。このことは、複数層のストレージ用プロトコルのためにその場でのエラーチェック機能を可能にする。この交差する層に適した処理は、交差する層のエラーチェック処理に関わる下記技術革新に一体化しており、エラーチェック処理のために必要とされる計算を大幅に低減する結果が得られる。エラーチェック処理は、ストレージ用プロトコル処理の計算サイクルの最も大きな部分を、たびたび消費している。
【００４４】
エラーチェック処理のような機能は、各層に関連するハードウェアで発生する独特のエラーを各層で取り扱うため、層を横断する毎に繰り返される。例えば、ＧＢＥ（Gigabit Ethernet（登録商標））のアクセス層（ＯＳＩアーキテクチャで、第２層と呼ぶ）は、４バイトのＣＲＣを使用して、イーサネット（登録商標）・インターフェイスおよび物理層の伝送で発生するエラーを検出する。ＴＣＰ層（ＯＳＩアーキテクチャで、第４層と呼ぶ）は、２バイトのＣＲＣを使用して、伝送の端末から端末への経路内にあるルータ、および端末側の処理システムで発生するエラーを検出する。ｉＳＣＳＩ層（アプリケーション層）は、４バイトのＣＲＣを使用して、端末システムのアプリケーション空間、およびプロトコル・ゲートウェイで発生するエラーを検出する。
【００４５】
ｉＳＣＳＩ層、ＴＣＰ層およびＧＢＥ層におけるＰＤＵのバイナリー順序を、Ｐi、ＰtおよびＰgとして、各々説明する。上記層のヘッダを、各々Ｈi、ＨtおよびＨgと呼ぶ。また、ＣＲＣトレーラを、各々Ｃi、ＣtおよびＣgと呼ぶ。ＴＣＰ層（第４層）とＧＢＥ層（第２層）との間で、ＩＰ層（第３層）は、ペイロードのデータに関するエラーチェックを行わず、エラーチェック機能をＴＣＰ層に任せていることに注目すべきである。以下の説明において、ＣＲＣ生成の目的で、ＩＰのヘッダをＴＣＰのヘッダに組み込む。
【００４６】
ＧＢＥの実行において、伝送の最後にＣＲＣを生成すること、および受信の最後にＣＲＣをチェックすることは、ＧＢＥのハードウェア（ＮＩＣまたはネットワーク・インターフェイス・カードと呼ばれる）によって実行され、ホスト計算機の貴重なＣＰＵサイクルを使用することは無い。最新のＮＩＣによる実行は、ホスト計算機をＣＲＣ計算から解放し、ＴＣＰのためにＮＩＣでチェックすることを可能にする。ｉＳＣＳＩのより強力なエラーチェック能力（ＴＣＰの２バイトに対して４バイト）が付与されれば、ｉＳＣＳＩのＣＲＣチェック機能がＴＣＰの下位層で発生したエラーもまたカバーできるので、ＴＣＰのＣＲＣチェック機能は必要無いことが言える。
【００４７】
従って、ｉＳＣＳＩ層とＧＢＥ層でのＣＲＣ生成を単純に考えることで、および中間にある全ての層のヘッダをｉＳＣＳＩのヘッダＨiに組み込むことで、説明を簡単にする。以後、ビットのブロックにおいて、最も左にあるビットを、最上位ビットとする数として表記する。例えば、ビット１１００１のブロックは、２4＋２3＋２0＝１６＋８＋１＝２５のように、数値を表記する。ＣＲＣチェックサムは、除算後の剰余数を算出して生成する。例えば、２５ｍｏｄ７＝４で、ＣＲＣチェック１００を付与する。
【００４８】
ＣＲＣ計算は、ｉＳＣＳＩ層とＧＢＥ層との間での処理として記述し、ホスト計算機によるＴＣＰ層でのＣＲＣ計算は実行しないと仮定する。ＧＢＥ層でＣＲＣを計算するために、剰余数は、ＧＢＥ層のヘッダＨgの連結数とＧＢＥ層のペイロード・データＰi（ｉＳＣＳＩ層を通過したデータ）とによって表されるバイナリー数を除算する結果から見つける。上記ＧＢＥ層に使用される除数Ｄgは、２バイトのバイナリー数である。換言すれば、ＣＲＣチェックは、下記の式で与えられる。
Ｃg＝（Ｈg２n＋Ｐi）ｍｏｄＤg．
上記の式において、ｎはデータＰiの長さを示す。「ヘッダ＋データ」の剰余数を、除数Ｄgによるモジュロ演算により見つける。こうして、ＨgとＰiとに添付する４バイトの剰余数Ｃgを生成し、ＨgＰiＣgの連結で表されるＧＢＥ層のＰＤＵを形成する。数式で表現すると、下記の式を得る。
Ｐg＝Ｈg２n+32＋Ｐi２32＋Ｃg．
受信側のＧＢＥ層のＮＩＣにおいて、ＮＩＣ内部のハードウェアは、ＰgｍｏｄＤgの剰余数を計算する。ＧＢＥ層のＰＤＵで、エラーが発生していないとき、ＰgｍｏｄＤg＝０を得る。ＰgｍｏｄＤg≠０のとき、エラーが検出され、ＧＢＥ層のＰＤＵは廃棄される。この結果、受信側のＧＢＥ層のＮＩＣは、送信側のＧＢＥ層に、廃棄したＧＢＥ層のＰＤＵを再送信することを要求する。
【００４９】
このエラーチェックのスキームは、２つのＮＩＣ間で発生したエラーを検出することである。しかし、既に指摘したように、Ｐiがデータ破損した可能性があるとき、ルータ内部で発生したエラーを検出することができない。何故なら、ＧＢＥ層のＮＩＣは、データ破損したＰiに基づきＣＲＣを計算するので、エラーが検出されない。データ破損していない原型のｉＳＣＳＩ層のＰＤＵを、Ｐi,original≠Ｐiとする。Ｐi,originalのビットシーケンスは、ＨiＰ Ｃiの連結であり、ここでは、ＰはｉＳＣＳＩのバーストを分割することで形成された１０２４バイトの量子である。数式で表現すると、下記の式を得る。
Ｐi,original＝Ｈi２m+32＋Ｐ ２32＋Ｃi．
この式において、ｍ＝１０２４×８を得ることができ、この数はビットにおける量子のサイズである。ＣＲＣチェックは、下記の式となる。
Ｃi＝（Ｈi２m＋Ｐ ）ｍｏｄＤi．
端末から端末へのルーティングの過程において、Ｐi≠Ｐi,originalの結果として、データ破損を知ることができる。ｉＳＣＳＩにおいても、ＣＲＣエラーチェック機能はＰiｍｏｄＤi≠０となる結果を得る。
【００５０】
ｉＳＣＳＩ層でＰiｍｏｄＤi≠０となる計算は、ＧＢＥ層のＰgｍｏｄＤgの計算と連動して実行することができる。ＣＲＣは、同一の除数Ｄ＝Ｄi＝Ｄg．を使用して生成することを仮定する。
【００５１】
ＧＢＥ層でエラーが検出されなかったと仮定する、すなわちＰgｍｏｄＤ＝０とする。このとき、Ｐg＝Ｈg２n+32＋Ｐi２32＋Ｃgを得る。従って、ＰiｍｏｄＤ≠０のとき、ＰgｍｏｄＤ＝０を得るためには、（Ｈg２n+32＋Ｃg）ｍｏｄＤ≠０を得る必要がある。（ＰiｍｏｄＤ≠０のとき、かつ、このときに限り、Ｐg＝Ｈg２n+32＋Ｐi２32＋Ｃgの右側の第２項は、Ｐi２32ｍｏｄＤ≠０を有することに注目すべきである。）
【００５２】
換言すれば、（Ｈg２n+32＋Ｃg）ｍｏｄＤ≠０のとき、ｉＳＣＳＩ層でのエラーが検出される。これは、ＰiｍｏｄＤi≠０の等価条件を計算するよりも実質上簡単である。何故なら、ヘッダＨgとトレーラＣgとは、Ｐiより実質上短いからである。実際の関係式は下記となる。
（Ｈg２n+32＋Ｃg）ｍｏｄＤ＝[（ＨgｍｏｄＤ）×（２n+32ｍｏｄＤ）＋Ｃg]ｍｏｄＤ．
上記の式の右側は、非常に長い除算（＞１０２４Ｂ）を非常に短い（数十バイト内に）除算と乗算とに簡単化する。この計算は、ホスト計算機で容易に処理することができる。
【００５３】
従って、ｉＳＣＳＩ層に関する上記の結合したＣＲＣエラーチェック処理は、ｉＳＣＳＩ層だけに関する通常のＣＲＣエラーチェック処理よりも実質上簡単である。
【００５４】
IV．量子ベースの輸送メカニズム
本発明による一実施例は、改良したＱＤＳ用伝送プロトコルを利用する。このＱＤＳは、望ましいことに、ＴＣＰの信頼性とＵＤＰの高スループットを実現する。この実施例では、改良した比率ベースのフロー制御を使用しており、このフロー制御は、長距離間でのアプリケーションでの高スループットに、より適した方法である。さらに、この実施例では、データ破損または損失パケットの再送信のために、選択可能なリピートのアプローチ法を使用する。
【００５５】
１．ＴＣＰおよびＳＣＳＩへの励起化アプローチ
ＴＣＰのウィンドウ型フロー制御は、データ量を認知すること無く、送信データの任意のウィンドウ量を許容する。ウィンドウ・サイズは、ネットワークの輻輳状態に順応する。要求される高スループットや長時間の伝送遅れに対応して、送信側のデータ量は、大きくすることができる。ウィンドウ・サイズに適合させるため、ＴＣＰ動作時の大部分は、開始遅れおよび輻輳回避の方法を使用する。送信側は、徐々にウィンドウ・サイズを大きくする。輻輳が検出されたとき、しばしばウィンドウ・サイズを半分まで縮小する。輻輳が持続するとき、ウィンドウ・サイズを、等比級数的に縮小させる。
【００５６】
標準のｉＳＣＳＩにおいて、端末と端末との間のバッファ・フロー制御の目的のため、最大のバースト・サイズ（＜１６ＭＢ）が規定される。大きなファイルの伝送は、連続して処理する多数のバーストに分割される。そして、バースト用バッファが割り付けられる。バースト・サイズは、一般的にはＴＣＰのウィンドウ・サイズよりもはるかに大きい。３０ミリセカンドの伝送遅れに耐えられるネットワーク内で、約１Ｇｂ／ｓのスループットを要求される負担の大きいｉＳＣＳＩのアプリケーションにおいて、３０メガビットまたは４メガバイトと同じ大きさの処理遅れの結果となるであろう。この大きさは、送信中のデータ量に相当する。
【００５７】
送信中のこのような大きさのデータの量は、ＴＣＰで使用されるＡＲＱやフロー制御を無力にすることがある。さらに、ｉＳＣＳＩで規定される再送信やフロー制御メカニズムは、ＴＣＰのフロー制御やエラー制御に、不利に相互作用することがある。
【００５８】
２．ＱＤＳエラー制御（Quanta Data Storage Error Control）
一例として、最大のバーストまたは４ＭＢのウィンドウ・サイズおよび１ＫＢの量子サイズを仮定すると、バースト内の各量子は１バースト当り４０９６量子以下なので、１２ビットでアドレス指定することができる。これが、量子アドレスとなる。１６ＭＢの最大バースト・サイズを標準のｉＳＣＳＩとして採用すると、このとき１４ビットの量子アドレスが使用できる。
【００５９】
本発明のＱＤＳエラー制御によれば、受信端は、連続した量子の再送信を要求することができる。この要求は、スタートとなる量子アドレスを与えることによってでき、このアドレスは、例えば、１２ビットを再送信用にコード化し、また４ビットは再送信する量子数の連続する長さをコード化するのに使用することができる。複数の連続送信は、１つのバーストで再送信することができる。過剰な数の連続送信が再送信されると、バースト自体が全体の中で再送信することができるか、または接続失敗を宣言することができる。
【００６０】
損失が検出されたパケットから後続するバイトストリーム全体を、たびたび再送信するＴＣＰのＡＲＱとは異なり、ＱＤＳは、選択可能なリピート法を採用しているので、従って、より多くの状態情報が、再送信される量子に関係する受信端に、実質上保持されるはずである。４ＭＢの最大バースト・サイズで１０２４Ｂの量子の例において、１つのバースト内で最大４０９６量子が使用できる。そして、バースト内の量子の正常な受信状態を記録するために５１２Ｂまで使用することができる。この記録を、受信状態ベクターと呼ぶ。正常受信された量子は、量子アドレスと等しいビット位置で、当該ビットを更新する。
【００６１】
カウンターは、バースト内で正常受信された量子の数を記録するのに使用される。また、タイマーは、バーストの伝送時間の時間切れを測定するために使用することができ、別のタイマーは、量子の最終受信からの経過時間を記録するために使用することができる。最後となる量子を受信したとき、またはバーストの時間切れが観測されたとき、または最後に量子が受信されてから必要以上の時間が経過したとき、バーストの受信状態は、次の行動のため、再検討がなされるであろう。
【００６２】
再検討は、４バイトの受信状態ベクターを、一度引き出すことから始まる。４バイト全体が１からなる場合、３２個の量子すべてが正常に受信された結果を得る。そうでないとき、最初の０の位置と最後の０の位置とを抽出する。０の最初と最後との位置から、連続送信された長さが計算され、再送信のために連続送信の長さがコード化される。
【００６３】
最新の標準ｉＳＣＳＩは、ＳＮＡＣＫの指定する１バイトに基づく単一の再送信を可能にする。このＳＮＡＣＫは、４バイトのアドレスを介して、再送信を開始するアドレスのバイトと、再送信するデータのバイト内に連続送信のバイト長を示す別の４バイトのフィールドとを通信する。本発明の量子アドレスの使用は、開始アドレスと連続する長さの両方のために、わずか２バイトを必要とする。この経済的なアドレス表現法は、より選択可能な複数の連続送信の再送信を可能とする。エラーは、最新の標準ｉＳＣＳＩで許容している単一送信よりも、より正確に場所が特定される。
【００６４】
ＰＦＴＡ（Post File Transfer Acknowledgment）のメカニズムを使用しているので、再送信は、バーストごとに要求される。損失した量子が多数あるとき、バースト全体の再送信が要求されるか、または接続失敗が宣言される。また、再送信自身がエラーで受信されるとき、時々多数の再送信が必要となる。また、タイマーは、損失したＳＮＡＣＫの可能性を保護するために必要となることがある。
【００６５】
一実施例では、量子の順序化は、アプリケーションバッファで自動的に実行される。パケットの受信順序の相違は、簡単に処理される。明確な量子アドレスが付与されているので、量子は、必ずしも順序通りに送信する必要はない。ＲＡＩＤタイプの冗長性が使用されていると、量子の送信順序を交互配置できる有利さが存在する。
【００６６】
３．ＱＤＳフロー制御
バースト・サイズは、通常のＴＣＰウィンドウ・サイズに比較して、一般的には大きい。従って、追加するフロー制御メカニズムは、ネットワークの輻輳を処理することが必要となる。フロー制御のバージョン版は、端末と端末との間の経路内で、最も遅延してかつ最も輻輳しているリンク箇所に適用するために、情報源の送信比率を規制する。高速ストリームのパケットを送信したとき、遅いリンクは、送信の流れを低下させることになる。受信端におけるパケットの到着時間間隔は、最も遅いリンクで利用できる処理能力の良い指標となる。送信側は、受信側で測定された平均到着時間間隔よりも大きい時間間隔Ｔで、連続して送信するべきである。到着時間間隔の分散も、また経路品質の指標になり、小さな分散が望ましい。大きな分散は、確実に到着時間間隔Ｔを増大させる可能性がある。
【００６７】
本発明のＱＤＳによれば、各バーストの送信開始時は、バーストの少量の量子が、到着時間間隔Ｔを決定する目的に向けて、ネットワークに連続して送信される。Ｔの値は、受信端での到着時間間隔の状態にしたがって調整することができる。受信端は、到着時間間隔をモニターし、フロー制御パラメータＴを決定する目的に向けて、周期的に送信端にトラフィックの摘要を通信する。
【００６８】
Ｖ．ＲＡＩＤ機能の量子処理
ＲＡＩＤは、データの信頼性を促進させる。ディスク故障に対する保護を、冗長的なコード化および配列ディスクへの格納データの分散化により、実行している。配列ディスクに格納されたデータの冗長的なコード化によって実現されている信頼性に加えて、ＲＡＩＤは、より高速な並列データ格納および分散化（データ）による検索を可能にしている。
【００６９】
本発明の実施例は、ネットワーク・ストレージを、信頼できない不確かな時空間のデータ検索の組み合わせとして取り扱い、送信時と格納時の両方のエラーに対する防御として、ＲＡＩＤのスキームを組み込む。ＣＲＣチェックサムがエラーを示すとき、受信または検索において、また量子を消去することも考慮できる。
【００７０】
本発明の実施例は、クライアントまたはターゲットのいずれかで、量子を冗長的にコード化し、これらの冗長化された量子を、分散したストレージの異なった場所に配信する。
【００７１】
１．分散化したネットワークＲＡＩＤための新規パラダイム
本発明によるネットワーク化されたＲＡＩＤの技術を、図６に示す。図６は、パリティの形成方法およびディスク故障の修正方法を示す。第１のステップとして、暗号化したｎ個の量子ｘ＝（ｘ1，ｘ2，…，ｘn）のバスケットが提供される。これらの量子は、バスケットｙ＝（ｙ1，ｙ2，…，ｙｍ）へとコード化される。コード化された量子ｙiは、図６（ａ）のパリティの図で示すように、量子ｘiの数のビット単位の排他的論理和によって形成される。計算を簡単にするため、図に示すパリティはわずかにしてある。
【００７２】
パケットの消去があるときのデコード化を、図６（ｂ）、（ｃ）および（ｄ）に示す。一例として、送信時または格納時に量子ｙ３が損失したと仮定する。図６（ｂ）において、ｘ１＝ｙ１ということが容易に判る。これは、未知のｘ１を排除することで判る。この排除する処理は、ｙｊに個々に結合するｘｉをデコード化するために繰り返すことができる。
【００７３】
２．陰陽コード（Yin Yang Code）
本発明の実施例は、新規で改良されたコードを使用する。このコードは、陰陽コードと呼ばれ、とりわけ、消去処理を取り扱う。名前が示唆するように、陰陽部分は、原型のデータ（陽のコピー）と負のイメージ（陰のコピー）から成る。図７に示すように、陽のデータは、４つのディスク内の系統的データであり、例えば、ｘ１，ｘ２，ｘ３，ｘ４である。次のステップで、下記の式で示すデータのパリティが計算される。
【数１】
2007533012.tif 000003
コードの陰の部分は、下記である。
【数２】
2007533012.tif 000004
送信データは、下記のグループＡおよびグループＢからなる。これらは、（８、４）コードを形成する。
【数３】
2007533012.tif 000005
【００７４】
有利なことに、陰陽コードは、単独、二重、三重のディスク失敗のすべてを訂正することができる。また、四重によるディスク失敗の７０の組み合わせの中から１４を除いては、すべてを訂正することができる。この性能は、「レベル‐３＋１」のＲＡＩＤよりも、エラー訂正能力および要求されるディスクが少ないという点で優れている。「レベル‐３＋１」のＲＡＩＤは、４台のデータ用ディスクおよび５番目のパリティディスク、さらにこれら５台をモニターするためのディスクを使用する。陰陽コードは、デコードに失敗する可能性において、失敗を７分の１以下に低減させる。この優れた性能は、データ格納の要求において、２０％の顕著な節減を達成させる。何故なら、「レベル‐３＋１」のＲＡＩＤは１０台のディスクを使用するのに、代わりに陰陽コードでは８台を使用する。
【００７５】
３．ＲＡＩＤプロトコル
陰陽コードについては説明したので、ＱＤＳのためのＲＡＩＤのプロトコルの特徴について説明する。
【００７６】
好ましいことに、陰陽コード化はクライアント側で実行される。このことは、送信した８個の量子の中から４個の損失まで許容できる有利さがある。代替の実施例では、陰陽コード化はターゲット側で適用される。送信エラーは、量子のＣＲＣチェックで検出できる。エラーが検出されたとき、訂正が検討され実行される。この訂正は、好都合なことに非常に単純なプロセス（選択された量子のわずかなビット単位の排他的論理和）で実行される。ターゲットは、コード化された量子を格納する。
【００７７】
クライアント側に陰陽コード化を実行させる不都合な点は、もちろん要求する送信能力を２倍にすることである。しかし、この２倍にすることは、チャネルが相互にエラーフリーのときは、まったく必要が無いことである。クライアントは、単純にデータの陽コードを送信することになる。ＲＡＩＤ用ストレージが、ターゲット側で必要なとき、量子の陰コード計算を、ターゲット側で容易に実行することができる。こうして、ターゲットは、８ディスクに分散する形で、陽陰の両方のコピーを格納する。
【００７８】
検索処理において、ターゲットは、陽のコピーのみを送信するか、または陰陽の両方のコピーを送信する。クライアントは、８量子の中から４量子、まれなケースで５量子を受信して、陽のコピーを再構築することができる。
【００７９】
また、陰陽コードを使用して、ＰＦＴＡプロトコルを採用することができる。送信側は、データの陽のコピーを送信する。受信側は、送信側にデータの陰のコピーを送信するように要求する。こうして、受信側は、正常受信した量子の陰および陽のコピーの小集合（subset）を使用して、陽のコピーを再構築することができる。
【００８０】
この明細書（添付したクレーム、要約書および図面も含む）で公開した機能のすべては、特別に記載して説明はしていないが、同一、等価または類似の効果が提供される代替機能に置き換えることができる。従って、別の方法について記載し説明はしていないが、公開された各々の機能は、包括的な等価なシリーズまたは類似の機能となるほんの一例である。
【００８１】
本発明の例示的実施例を上記で説明したが、添付したクレームに記載した本発明の精神および範囲から離れること無く、変形、修正および代替を実施できることは、同業者には明白なことである。
【図面の簡単な説明】
【００８２】
【図１】ストレージ・ネットワークおよびフロー処理のためのプロトコル・スタックを示す図である。
【図２】本発明によるＱＤＳシステムの一般的なアーキテクチャを示す図である。
【図３Ａ】ＩＰＳｅｃを伴うｉＷＡＲＰにおけるｉＳＣＳＩ用スタックを示す図である。
【図３Ｂ】本発明によるセキュリティと信頼性のためのｉＳＣＳＩ用ＥＣＬモデルを示す図である。
【図４】本発明による書き込み用ＥＣＬヘッダを示す図である。
【図５】本発明の一実施例における量子のパイプライン処理のフロー図である。
【図６】本発明の一実施例における量子のコード化（a）および量子のデコード化（b、cおよびd）を説明する図である。
【図７】本発明の一実施例における陰陽コード化処理を説明する図である。
【図８】本発明の一実施例における複数層のプロトコル・カプセル化を説明する図である。
【図１】
2007533012.tif 000006
【図２】
2007533012.tif 000007
【図３Ａ】
2007533012.tif 000008
【図３Ｂ】
2007533012.tif 000009
【図４】
2007533012.tif 000010
【図５】
2007533012.tif 000011
【図６】
2007533012.tif 000012
【図７】
2007533012.tif 000013
【図８】
2007533012.tif 000014
【国際調査報告】
2007533012.tif 000015