JP2007533012A - データ格納のための情報処理と輸送アーキテクチャ - Google Patents

データ格納のための情報処理と輸送アーキテクチャ Download PDF

Info

Publication number
JP2007533012A
JP2007533012A JP2007507572A JP2007507572A JP2007533012A JP 2007533012 A JP2007533012 A JP 2007533012A JP 2007507572 A JP2007507572 A JP 2007507572A JP 2007507572 A JP2007507572 A JP 2007507572A JP 2007533012 A JP2007533012 A JP 2007533012A
Authority
JP
Japan
Prior art keywords
data
storage
block
processing
network
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.)
Ceased
Application number
JP2007507572A
Other languages
English (en)
Inventor
ワイ. フイ,ジョセフ
グルモハン,プラバンジャン
ビー. ナラシムハマーシー,サイ
エス. ジャイン,スディープ
Original Assignee
アリゾナ ボード オブ リージェンツ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アリゾナ ボード オブ リージェンツ filed Critical アリゾナ ボード オブ リージェンツ
Publication of JP2007533012A publication Critical patent/JP2007533012A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

本発明のネットワーク化されたデータ・ストレージの新規アーキテクチャーは、効率的な情報処理と伝送処理とを実現する。データは、処理、暗号化、エラーチェック、および冗長的に符号化され、量子と呼ばれる固定サイズのブロックで格納される。各量子は「効果的に交差する層(ECL:Effective Cross Layer)」によって処理される。このECLは、セキュリティ用プロトコルスタック、iWARPならびにiSCSIの機能、伝送制御、およびRAIDストレージ機能を再構築したものである。このECLによる機能合理化は、少ないメモリ・コピーによる非常に効率良いプロトコルを形成し、計算処理負担およびセキュリティ保護手段の大部分をクライアント側に設定する。この結果、多数のクライアントからの量子を、ターゲットは最小限の処理で格納する。

Description

本出願の特許請求の範囲は、2004年4月12日に出願した「量子データストレージ(Quanta Data Storage):ストレージエリア・ネットワークのための情報処理と輸送アーキテクチャ」と称する米国特許仮出願第60/560,225号の記載内容を優先とするもので、本明細書に参照として引用する。
本発明は、デジタルデータ処理に関連するもので、特に、ネットワーク化されたストレージ・ネットワーク、および当該ストレージ・ネットワークでの処理方法に関連する発明である。
初期の計算機システムにおいて、長時間のデータ格納は、一般的に専用記憶装置によって実行されていた。この専用記憶装置は、テープ駆動装置やディスク駆動装置であり、データ処理用中央計算機に接続されていた。アプリケーション・プログラムによって発生するデータの読出し要求および書込み要求は、計算機のオペレーションシステムに常駐する特別な目的の入力/出力ルーチンによって処理されていた。「タイムシェアリング」および初期のマルチプロセス処理技術の出現によって、中央の記憶装置だけにもかかわらず、複数のユーザが、同時にデータを格納しアクセスすることができた。
1980年代のパーソナル計算機(およびワークステーション)の出現と共に、ビジネスユーザによる要求は、本来独立した計算機が互いの記憶装置にアクセスすることを許可するような、相互接続のメカニズムの発展を導いた。この時代の前から計算機ネットワークは知られていたが、計算機ネットワークは、まだ典型的な通信システムとしてだけ認められ、共有ストレージ・システムとしては認められていなかった。
現時点までに出現した一般的なビジネスネットワークは、ローカルエリア・ネットワークである。ローカルエリア・ネットワークは、ネットワークを介して、「サーバ」計算機に接続する「クライアント」計算機(例えば、個人用PCまたはワークステーション)からなる。すべての処理とデータの格納を、中央計算機で発生させていた初期の計算機システムと違って、クライアント計算機は、一般に多くのユーザアプリケーションを実行するのに適したプロセッサ能力と記憶容量とを有している。しかしながら、クライアント計算機は、短期間のファイル格納以外に、共有アプリケーションや共有データファイルにアクセスするために、たびたびサーバ計算機(および付随するディスク駆動装置や記憶装置のバッテリー)を頼りにしている。
情報量の急増は、部分的には共同計算処理の作業量上昇により、部分的にはインターネットにより、さらなる増加へと変化を加速しつつある。共通要素が少ないものとしては、格納活動から独立したハブとして存在する個別のサーバがある。多くのストレージ装置は、ネットワークまたはスイッチング構成の上に置かれ、頻繁に複数台のサーバ(ファイル・サーバおよびウェブ・サーバ)によってアクセスされている。これらのサーバは、順々に個別グループ毎にクライアントのサービスを行う。個別のPCまたは個別のワークステーションでさえ、(サーバクラスの計算機の範囲内にある最も共同作業となる環境にあるので)時々、「ストレージ領域用ネットワーク(SAN)」と呼ばれるネットワークに有るストレージ装置に、直接アクセスすることができる。
インターネットを経由する通信は、インターネットプロトコル(IP)を基礎とする。インターネットは、伝統的な回線交換音声ネットワークに対して、パケット交換ネットワークである。IPパケットの次の飛び先(hop)に関する経路指定の決定は、ホップ・バイ・ホップ(hop-by-hop)を基礎にして形成される。パケットが経由する全パスは、通常送信側に知らされないが、経路は実行後に決定することができる。
送信制御プロトコル(TCP)は、トランスポート層(第4層)のプロトコルで、IPはネットワーク層(第3層)のプロトコルである。IPは、送信パケットが指定箇所に届いたかを保証しないので信頼できない。TCPは、各パケットに荷札を付けることによりパケットの配布先を保証するので、IPの上位に規定される。指定パケットの損失または誤配が検出されたとき、送信源は、早急に目的地へパケットの再送信を実行する。
アイ・スカジー(iSCSI)は、インターネットを介して格納データへのアクセスが実現できるように発展したものである。現行のストレージとインターネット構造との間の互換性を提供するために、数種類の新規プロトコルが開発された。これらのプロトコルの追加は、非常に非効率の情報処理方法、処理能力の使用および格納用フォーマットを生む結果となった。
特に、iSCSIプロトコルは、SCSIコマンドのTCP/IPカプセル化、およびSCSIケーブルの代替となるインターネット経由の輸送を実現する。このことは、広域エリアからのデータ格納装置へのアクセスを容易にする。
上述のネットワーク・ストレージは、要求されるスループット、例えば1〜10Gb/sのネットワーク・ストレージを実現するのに、非常に高速のネットワークアダプタを必要とする。iSCSIおよびTCP/IPのストレージ用プロトコルは、上記と同様な速度で処理する必要があるが、この実現は難しい。TCPからiSCSI迄でのチェックサム計算は、計算周期の大部分を消費し、システムを低速化させ、例えばTCPオフロード・エンジン(TOEs)が不在のときは、約100Mb/sに低速化する。主なボトルネックは、たびたびI/Oの情報処理能力の多くを消費するコピーシステムである。インターネット・プロトコルセキュリティ(IPSec)のようなセキュリティに不可欠な機能が、TCP層の下に加えられたとき、オフロード機能の無いクライアント用ストレージやターゲット用ストレージは、数十Mb/sに低速化するであろう。
この低速化の問題は、各層に促進機能を追加することで、ネットワーク・ストレージ用プロトコルが断片的な構成になっていることから生じる。メモリのコピー回数を低減する目的で、(iSCSI層とTCP層との間に)iWARPと呼ばれる新シリーズのプロトコルを規定するように、遠隔直接メモリアクセス(RDMA)共同体が形成された。データのセキュリティを向上させるために、IPSec層は、スタックの底部に加えることができる。ストレージの信頼性を向上させるために、ソフトウェアRAIDを、スタックの頂上部に付加することができる。
この積み重なったモデルには、いくつかの問題がある。第1に、これらのプロトコルの各々は、計算機能を集中したものでできており、例えばIPSecがそうである。第2に、過度の階層化が、大きなプロトコルのヘッダ(header)をより大きくしている。第3に、IPSecモデルが、伝送パイプの両端において暗号化と暗号解読とを必要とするので、格納データの解読におけるセキュリティ問題が発生する。第4に、エラー制御、フロー制御およびラベリングのような機能が、各層で繰り返される。この繰り返しは、たびたび不必要にリソースの計算や伝送を消費することになる。例えば、TCPの2バイトのチェックサムを、iSCSIのより強力な4バイト・チェックサムに追加する必要はない。悪いことに、繰り返される機能は、層間で予期しない相互作用を生じさせることがある。例えば、iSCSIフロー制御は、TCPフロー制御とは互いに悪影響をおよぼすことが知られている。
RDMAとiSCSIとの共同体が、一様に進展している中で、ネットワークセキュリティとストレージの信頼性との重要な問題に注意が不十分になる一方で、このプロトコル・スタックは過度な負担になりつつある。TOEと他のオフロードのハードウェアは、上記で述べた問題のすべてでなくとも、いくつかの問題を解決することができる。さらに、オフロードのハードウェアを展開することは、進展中の標準モデルを、高価にかつ困難にする。ハードウェアを追加することは、システムのコストを増加させる。
従って、進展しているシステム、およびストレージ・ネットワークでのデータの処理方法と伝送方法において、何が必要とされているかである。
上記および他の課題を解決するために、本発明の目的にしたがって、ここでは実例を幅広く記載し、進展したデータ伝送、データ処理およびストレージ・システムならびにストレージ方法は、量子データ(quantum data)の概念を使用する。スカジー(SCSI)およびRAID(Redundant Array of Inexpensive Disks)でのデータ格納や検索処理は、大部分ブロック単位で処理されているので、本発明の実施例は、バイトに依存するプロトコルTCPおよびIPSecを使用する代わりに、量子と呼ぶ小さなサイズのデータブロックをベースとする平坦なプロトコルで、スタック全体を置き換える。効果的に交差する層(ECL)と呼ばれる平坦な層は、層間を横断する余分なデータコピーをする必要が無くても、CRC、AES暗号化、RAID、自動繰り返し要求(ARQ)、エラー制御、パケットのリシーケンスおよびフロー制御のような多くの機能を現実の処理用として可能とする。このことは、先の層を横断するプロトコルデータユニット(PDU)に同期化した記述法により、アドレス指定処理および参照処理において大幅な節減が得られる。
本発明の実施例は、量子の概念を利用して、iSCSI層とTCP層との全域でエラー制御とフロー制御とを結合させる。また、一定比率をベースとしたフロー制御を、TCPによる遅いスタートと輻輳による過密とをさけるための代替として使用する。
本発明の他の態様によれば、iSCSIのSNACK(Selective Negative Acknowledgment)の方法を、TCPのARQを使用する代わりに、エラー制御用に修正して使用する。
本発明の他の態様において、統一したRAIDオプションを、プロトコル機能の1つとして追加する。RAIDの機能は、量子処理と一緒になって、ストレージ用ターゲットのその場において最も良く機能する。
さらに本発明の他の態様において、開始プログラムは、陰陽(yin yang)のRAIDコードを計算することができ、伝送量を2倍にするが、一方でネットワークやディスクでの失敗を処理するのに、2倍程度の冗長度の使用を可能にする。
本発明の他の態様において、プロトコルは非対称にデザインされる。すなわち、ストレージ用ターゲットの代わりに、クライアント側に計算する負荷の大部分を置く。ストレージ用ターゲットは、受信するときに巡回冗長検査(CRC)を実行した後で、量子を暗号化する。また、1つの変形例では、検証したCRCの格納を可能にするので、検索データのCRCの再計算は不必要となる。CRCを格納することは、格納中のデータ破損を検出する機能を果たす。この非対称は、クライアント側でのデータ速度要求がおそらく約100Mb/sを満足する事実を巧く利用している。この速度は、例えば、オフロードのハードウェアが無いマルチのGHzクライアントのプロセッサプロトコルで達成することができる。ストレージ用ターゲットがサービスする多くのクライアントの処理能力を引き出すことにより、ターゲット側で改良するデータ格納は、オフロードのハードウェア無しで実現する。
本発明の種々の特徴を実行するサービスの説明と一緒に、一般的なアーキテクチャも、種々の実施例の図面を参照して、これから説明することになる。図面および図面に関連する説明は、本発明の実施例を説明するために提供するものであり、本発明の範囲を限定するためのものではない。
I.概観
一般には、本発明の実施は、ECL(Effective Cross Layer)に関するもので、このECLは、ネットワーク・ストレージの高効率な情報格納、処理およびコミュニケーションを実現する。ECLの一実施例は、図1に示すように、インターネット上でのデータ・コミュニケーションに最近使用されているいくつかの他のプロトコルを組み合わせたものである。ECLによって処理される情報は、図8に示す量子と呼ばれる固定のデータユニットサイズにフォーマット化される。ECLと量子データ処理との組み合わせは、データ処理時間の短縮化と処理能力の向上に導く。
ECLと量子データとの一実施例を図3Bに示す。図1と図3Aに示す従来の層に比較して、ECL層は、SCSI、iSCSI、RDMA,DDP,MPA,TCPおよびIPSecの機能を、ECLとして結合させる。図4に、ECLヘッダの実際の具体例を表示する。
さらに図2を参照すると、キーは分離されたキー・サーバに格納され、これらのキーは、量子データの暗号化に使用される。SAN(storage area networks)内データにアクセスが許可されているクライアントが、これらのキーにアクセスすることができる。データへのアクセスが必要になったとき、クライアントは、あらかじめフォーマット化されたパケットを、ストレージ装置から得ることができる。
上で述べた一般的な概観から、選び出した構成部分および変形事項について、以下で詳細に説明する。
II.量子データ格納(QDS:Quanta Data Storage)
背景として、従来の層構造のプロトコルは、各層でのプロトコルデータユニット(PDU)の可変サイズが認められていた。より上位層のPDUは、下位層に入り通過することができた。通過の際、より下位の層は、上位層のPDUを寸断することができた。寸断された各PDUは、各々のプロトコルのヘッダに追加される。CRC(巡回冗長チェック)は、エラーチェックの目的でトレーラ(trailer)に追加される。ヘッダ、寸断されたPDU、およびトレーラは、一緒になって下位層のPDUを形成する。寸断されたPDUを、ヘッダおよびトレーラによって包むことを、カプセル化と呼ぶ。この寸断とカプセル化の処理は、下位層のPDUが、プロトコル・スタックの次の下位層に入り通過する度に、繰り返される。
iSCSIにおいて、バースト(例えば、<16メガバイト(MB))は、iSCSIのPDUに寸断され、寸断されたPDUは、さらにTCPのPDUに寸断され、そしてIPのPDUに寸断され、そして最後にギガビット・イーサネット(登録商標)(GBE:Gigabit Ethernet(登録商標))のPDUに寸断される。
本発明において、データの固定バイト数(各層で追加されるプロトコルのヘッダとトレーラは含まない)が選択され、QDSシステムは、量子より小さい寸断は行わない。従って、各々の層のPDUは、同一の範囲を有することになる。このことは、交差する層でのPDU同期化と呼ばれる。
QDSシステムの1つの有利な点は、層間を交差するPDUの共通参照を許可されていることである。例えば、1024Bの量子サイズにおいて、バーストは、最大1万6千の量子に寸断される。従って、各量子は、バースト内で14ビットまたは2バイトの量子アドレスを利用して、1から1万6千まで順番に参照することができる。
PDU同期化と量子アドレスの効果として、バーストの識別は、量子アドレスと一緒になって、量子がコピーされるべきメモリの場所を一意的に規定するので、QDSシステムはデータのコピー・ゼロを実現している。このことは、データが交差する各層で余分なデータをコピーすること無しで、従来のプロトコル・スタックで実施しているように、各々の層で量子のその場での処理を実現させる。
A、量子データ処理
SCSIのようなデータ伝送、次世代標準暗号化方式(AES)のような暗号化、およびRAIDのようなコード化による信頼性は、ブロック単位で順応する。本発明において、有利なことに、好ましい実施では、これらの機能のデータユニットのブロックサイズを統一している。さらに、これらの機能は、プロトコル層を横断してコピーすること無く、中央にて実行することができる。
図3Aに示す従来のスタックにおいて、バイト志向の伝送プロトコルTCPは、ブロック志向のiSCSI層とIPSec層とのブロックの間に挿入される。バイトアドレス指定のTCPに対するブロックアドレス指定のSCSIによるこのミスマッチは、着信したTCP/IPパケットが、複数コピーされること無く、カーネル空間に直接コピーされたときに、面倒なことを引き起こす。何故なら、パケットは損失し、寸断され、または順序が狂って到着するからである。データを適切に参照するために、ポインタを介してTCPのPDUの範囲を定めるために、iWARPプロトコルは、MPAと呼ばれる仲介のフレーミングプロトコルを必要とする。
図8に最も良い例を示すように、固定したPDUの長さは、種々の層にわたって使用される。また、種々の層でのPDUは、位置合わせされるので、データの参照が容易となる。さらに、CRC、フロー制御、順序付け、およびバッファ管理のような類似機能が、各層を越えて統一化できる。例えば、TCPの2バイト・チェックサムは省略でき、代わりに、より強力なiSCSIの4バイト・チェックサムに頼ることができる。信頼できる伝送を確保するためのTCP機能の代わりに、iSCSIのSNACK(Selective Negative Acknowledgment)が適切に実行されれば、TCPのARQは必要なくなる。また、iSCSIとSNACKのメカニズムとが、バースト内の量子アドレスを使用することにより、データブロックを適切に位置付けるとき、TCPのバッファリングと再順序付けとは、省略することができる。
量子データ処理のパイプラインの実施例を、図5に示す。一体化されたブロックサイズは、多くの機能において、量子データのその場でのパイプライン処理を可能にする。ここでの機能とは、冗長コード化、暗号化およびCRCチェックサムが含まれ、計算処理として集約される機能である。データは、第1に量子サイズのブロックに形成され、暗号化される。固定サイズのデータユニットは、同一の固定サイズの暗号データユニット(EDU)を形成するために、キー・サーバからのキーによって暗号化される。
第2に、RAIDコード化が、クライアント・サーバで実行される。代替として、RAIDコード化を、ターゲット・サーバで実行することもできる。RAID処理の実施について、より詳細な説明を以下で実施する。
暗号化され、コード化された量子は、4バイトのCRCチェックを生成するために使用される。この後で、送信前にECLヘッダが追加される。
一実施例では、EDUが、インターネットで寸断されることは許容されていない。寸断されないことを保証するため、サーバとクライアント間での最小パスMTUのサイズが、チェックされる。そして、EDUのサイズが設定される。例えば1KB(1024バイト)に設定される。各量子は、バースト内でアドレス指定される。
サーバに送信されたEDUは、サーバに「そのまま」(例えば、解読無し)で格納される。ECLヘッダは削除され、EDUはサーバに格納される。そして、最小の処理が、ターゲットで要求される。
データを検索するクライアントは、データを指定するキーの取得を要求する。このセキュリティへの準備は、ディスク内の生のデータ格納が、信頼できずかつ不確かなものとして取り扱う。従って、暗号化およびチャネル/RAIDによるコード化は、「端末と端末との間(end-to-end)」で実行され、すなわち、ディスクへの書き込むときからディスクから読み出すときまでである。この端末と端末との間でのセキュリティ・パラダイムを直接ストレージ用プロトコルに含めることは、ネットワーク・ストレージの安全性を促進するものと信じる。
B、効果的に交差する層(ECL:Effective Cross Layer)
本発明による「効果的に交差する層」の実施例を、図3Bに示す。「効果的に交差する層(ECL)」は、以下の機能性を含むヘッダを使用する。ヘッダには、iSCSI、遠隔直接メモリアクセス(RDMA)、直接データ配置(DDP)、TCP(MPA)の骨組み用に調整されたマーカPDU、および伝送制御用プロトコル(TCP)・メカニズムの機能が含まれる。「効果的に交差する層」内のいくつかの機能は、以下のように設定される。
1)iSCSI機能:「効果的に交差する層」は、iSCSIの機能の大部分を保有する。読み出し、書き込み用の情報、およびEDUの長さは維持される。
2)コピー回避:iWARPパッケージソフト内のコピー回避機能は、DDPとRDMAとのプロトコルによって実行される。DDPプロトコルは、カーネルのコピー(TCP/IPに関するコピー)無しで、アプリケーションバッファに直接設定できるように、伝送用ペイロードのバッファアドレスを特定する。RDMAは、アプリケーションに対して、リード・ライト動作を連絡する。RDMAのリード・ライト指示動作は、iSCSIのヘッダで規定される。ECLのヘッダは、またバッファアドレス情報を提供する。
MPAプロトコルは、パケット範囲やパケット寸断問題を処理するプロトコルであるが、省略することができる。各量子は、量子アドレスにより、直接アプリケーションバッファに設定される。これらのバッファアドレスは、ECLのヘッダに操作用タグ(STAGs:Steering Tags)の形で存在する。
3)ECLの輸送機能:ECLのヘッダは、また輸送用ヘッダとして機能する。
4)セキュリティへの配慮:キー・サーバからキーへのアクセス権を有するクライアントのみが、検索データを解読できる。セキュリティは、TCP層の下位にあるIPSecを使用する代わりに、高い層の機能として考慮される。
III .交差する層の量子ベースのエラーチェック処理
ストレージ用プロトコルの層を横断して発生するエラーのチェックの共同処理に使用される、量子データ格納(QDS)の実例の好ましい方法を図8に示す。この図について、手っ取り早く簡潔に説明する。CRCトレーラは、たびたび関連するヘッダに挿入することができる。複数の層を横断して固定サイズのデータユニットを使用することは、コピー・ゼロのメカニズムに基づき、当該データユニットを一箇所のメモリ装置に格納することである。このことは、複数層のストレージ用プロトコルのためにその場でのエラーチェック機能を可能にする。この交差する層に適した処理は、交差する層のエラーチェック処理に関わる下記技術革新に一体化しており、エラーチェック処理のために必要とされる計算を大幅に低減する結果が得られる。エラーチェック処理は、ストレージ用プロトコル処理の計算サイクルの最も大きな部分を、たびたび消費している。
エラーチェック処理のような機能は、各層に関連するハードウェアで発生する独特のエラーを各層で取り扱うため、層を横断する毎に繰り返される。例えば、GBE(Gigabit Ethernet(登録商標))のアクセス層(OSIアーキテクチャで、第2層と呼ぶ)は、4バイトのCRCを使用して、イーサネット(登録商標)・インターフェイスおよび物理層の伝送で発生するエラーを検出する。TCP層(OSIアーキテクチャで、第4層と呼ぶ)は、2バイトのCRCを使用して、伝送の端末から端末への経路内にあるルータ、および端末側の処理システムで発生するエラーを検出する。iSCSI層(アプリケーション層)は、4バイトのCRCを使用して、端末システムのアプリケーション空間、およびプロトコル・ゲートウェイで発生するエラーを検出する。
iSCSI層、TCP層およびGBE層におけるPDUのバイナリー順序を、Pi、PtおよびPgとして、各々説明する。上記層のヘッダを、各々Hi、HtおよびHgと呼ぶ。また、CRCトレーラを、各々Ci、CtおよびCgと呼ぶ。TCP層(第4層)とGBE層(第2層)との間で、IP層(第3層)は、ペイロードのデータに関するエラーチェックを行わず、エラーチェック機能をTCP層に任せていることに注目すべきである。以下の説明において、CRC生成の目的で、IPのヘッダをTCPのヘッダに組み込む。
GBEの実行において、伝送の最後にCRCを生成すること、および受信の最後にCRCをチェックすることは、GBEのハードウェア(NICまたはネットワーク・インターフェイス・カードと呼ばれる)によって実行され、ホスト計算機の貴重なCPUサイクルを使用することは無い。最新のNICによる実行は、ホスト計算機をCRC計算から解放し、TCPのためにNICでチェックすることを可能にする。iSCSIのより強力なエラーチェック能力(TCPの2バイトに対して4バイト)が付与されれば、iSCSIのCRCチェック機能がTCPの下位層で発生したエラーもまたカバーできるので、TCPのCRCチェック機能は必要無いことが言える。
従って、iSCSI層とGBE層でのCRC生成を単純に考えることで、および中間にある全ての層のヘッダをiSCSIのヘッダHiに組み込むことで、説明を簡単にする。以後、ビットのブロックにおいて、最も左にあるビットを、最上位ビットとする数として表記する。例えば、ビット11001のブロックは、24+23+20=16+8+1=25のように、数値を表記する。CRCチェックサムは、除算後の剰余数を算出して生成する。例えば、25mod7=4で、CRCチェック100を付与する。
CRC計算は、iSCSI層とGBE層との間での処理として記述し、ホスト計算機によるTCP層でのCRC計算は実行しないと仮定する。GBE層でCRCを計算するために、剰余数は、GBE層のヘッダHgの連結数とGBE層のペイロード・データPi(iSCSI層を通過したデータ)とによって表されるバイナリー数を除算する結果から見つける。上記GBE層に使用される除数Dgは、2バイトのバイナリー数である。換言すれば、CRCチェックは、下記の式で与えられる。
g=(Hgn+Pi)modDg
上記の式において、nはデータPiの長さを示す。「ヘッダ+データ」の剰余数を、除数Dgによるモジュロ演算により見つける。こうして、HgとPiとに添付する4バイトの剰余数Cgを生成し、Hgigの連結で表されるGBE層のPDUを形成する。数式で表現すると、下記の式を得る。
g=Hgn+32+Pi32+Cg
受信側のGBE層のNICにおいて、NIC内部のハードウェアは、PgmodDgの剰余数を計算する。GBE層のPDUで、エラーが発生していないとき、PgmodDg=0を得る。PgmodDg≠0のとき、エラーが検出され、GBE層のPDUは廃棄される。この結果、受信側のGBE層のNICは、送信側のGBE層に、廃棄したGBE層のPDUを再送信することを要求する。
このエラーチェックのスキームは、2つのNIC間で発生したエラーを検出することである。しかし、既に指摘したように、Piがデータ破損した可能性があるとき、ルータ内部で発生したエラーを検出することができない。何故なら、GBE層のNICは、データ破損したPiに基づきCRCを計算するので、エラーが検出されない。データ破損していない原型のiSCSI層のPDUを、Pi,original≠Piとする。Pi,originalのビットシーケンスは、HiP Ciの連結であり、ここでは、PはiSCSIのバーストを分割することで形成された1024バイトの量子である。数式で表現すると、下記の式を得る。
i,original=Him+32+P 232+Ci
この式において、m=1024×8を得ることができ、この数はビットにおける量子のサイズである。CRCチェックは、下記の式となる。
i=(Him+P )modDi
端末から端末へのルーティングの過程において、Pi≠Pi,originalの結果として、データ破損を知ることができる。iSCSIにおいても、CRCエラーチェック機能はPimodDi≠0となる結果を得る。
iSCSI層でPimodDi≠0となる計算は、GBE層のPgmodDgの計算と連動して実行することができる。CRCは、同一の除数D=Di=Dg.を使用して生成することを仮定する。
GBE層でエラーが検出されなかったと仮定する、すなわちPgmodD=0とする。このとき、Pg=Hgn+32+Pi32+Cgを得る。従って、PimodD≠0のとき、PgmodD=0を得るためには、(Hgn+32+Cg)modD≠0を得る必要がある。(PimodD≠0のとき、かつ、このときに限り、Pg=Hgn+32+Pi32+Cgの右側の第2項は、Pi32modD≠0を有することに注目すべきである。)
換言すれば、(Hgn+32+Cg)modD≠0のとき、iSCSI層でのエラーが検出される。これは、PimodDi≠0の等価条件を計算するよりも実質上簡単である。何故なら、ヘッダHgとトレーラCgとは、Piより実質上短いからである。実際の関係式は下記となる。
(Hgn+32+Cg)modD=[(HgmodD)×(2n+32modD)+Cg]modD.
上記の式の右側は、非常に長い除算(>1024B)を非常に短い(数十バイト内に)除算と乗算とに簡単化する。この計算は、ホスト計算機で容易に処理することができる。
従って、iSCSI層に関する上記の結合したCRCエラーチェック処理は、iSCSI層だけに関する通常のCRCエラーチェック処理よりも実質上簡単である。
IV.量子ベースの輸送メカニズム
本発明による一実施例は、改良したQDS用伝送プロトコルを利用する。このQDSは、望ましいことに、TCPの信頼性とUDPの高スループットを実現する。この実施例では、改良した比率ベースのフロー制御を使用しており、このフロー制御は、長距離間でのアプリケーションでの高スループットに、より適した方法である。さらに、この実施例では、データ破損または損失パケットの再送信のために、選択可能なリピートのアプローチ法を使用する。
1.TCPおよびSCSIへの励起化アプローチ
TCPのウィンドウ型フロー制御は、データ量を認知すること無く、送信データの任意のウィンドウ量を許容する。ウィンドウ・サイズは、ネットワークの輻輳状態に順応する。要求される高スループットや長時間の伝送遅れに対応して、送信側のデータ量は、大きくすることができる。ウィンドウ・サイズに適合させるため、TCP動作時の大部分は、開始遅れおよび輻輳回避の方法を使用する。送信側は、徐々にウィンドウ・サイズを大きくする。輻輳が検出されたとき、しばしばウィンドウ・サイズを半分まで縮小する。輻輳が持続するとき、ウィンドウ・サイズを、等比級数的に縮小させる。
標準のiSCSIにおいて、端末と端末との間のバッファ・フロー制御の目的のため、最大のバースト・サイズ(<16MB)が規定される。大きなファイルの伝送は、連続して処理する多数のバーストに分割される。そして、バースト用バッファが割り付けられる。バースト・サイズは、一般的にはTCPのウィンドウ・サイズよりもはるかに大きい。30ミリセカンドの伝送遅れに耐えられるネットワーク内で、約1Gb/sのスループットを要求される負担の大きいiSCSIのアプリケーションにおいて、30メガビットまたは4メガバイトと同じ大きさの処理遅れの結果となるであろう。この大きさは、送信中のデータ量に相当する。
送信中のこのような大きさのデータの量は、TCPで使用されるARQやフロー制御を無力にすることがある。さらに、iSCSIで規定される再送信やフロー制御メカニズムは、TCPのフロー制御やエラー制御に、不利に相互作用することがある。
2.QDSエラー制御(Quanta Data Storage Error Control)
一例として、最大のバーストまたは4MBのウィンドウ・サイズおよび1KBの量子サイズを仮定すると、バースト内の各量子は1バースト当り4096量子以下なので、12ビットでアドレス指定することができる。これが、量子アドレスとなる。16MBの最大バースト・サイズを標準のiSCSIとして採用すると、このとき14ビットの量子アドレスが使用できる。
本発明のQDSエラー制御によれば、受信端は、連続した量子の再送信を要求することができる。この要求は、スタートとなる量子アドレスを与えることによってでき、このアドレスは、例えば、12ビットを再送信用にコード化し、また4ビットは再送信する量子数の連続する長さをコード化するのに使用することができる。複数の連続送信は、1つのバーストで再送信することができる。過剰な数の連続送信が再送信されると、バースト自体が全体の中で再送信することができるか、または接続失敗を宣言することができる。
損失が検出されたパケットから後続するバイトストリーム全体を、たびたび再送信するTCPのARQとは異なり、QDSは、選択可能なリピート法を採用しているので、従って、より多くの状態情報が、再送信される量子に関係する受信端に、実質上保持されるはずである。4MBの最大バースト・サイズで1024Bの量子の例において、1つのバースト内で最大4096量子が使用できる。そして、バースト内の量子の正常な受信状態を記録するために512Bまで使用することができる。この記録を、受信状態ベクターと呼ぶ。正常受信された量子は、量子アドレスと等しいビット位置で、当該ビットを更新する。
カウンターは、バースト内で正常受信された量子の数を記録するのに使用される。また、タイマーは、バーストの伝送時間の時間切れを測定するために使用することができ、別のタイマーは、量子の最終受信からの経過時間を記録するために使用することができる。最後となる量子を受信したとき、またはバーストの時間切れが観測されたとき、または最後に量子が受信されてから必要以上の時間が経過したとき、バーストの受信状態は、次の行動のため、再検討がなされるであろう。
再検討は、4バイトの受信状態ベクターを、一度引き出すことから始まる。4バイト全体が1からなる場合、32個の量子すべてが正常に受信された結果を得る。そうでないとき、最初の0の位置と最後の0の位置とを抽出する。0の最初と最後との位置から、連続送信された長さが計算され、再送信のために連続送信の長さがコード化される。
最新の標準iSCSIは、SNACKの指定する1バイトに基づく単一の再送信を可能にする。このSNACKは、4バイトのアドレスを介して、再送信を開始するアドレスのバイトと、再送信するデータのバイト内に連続送信のバイト長を示す別の4バイトのフィールドとを通信する。本発明の量子アドレスの使用は、開始アドレスと連続する長さの両方のために、わずか2バイトを必要とする。この経済的なアドレス表現法は、より選択可能な複数の連続送信の再送信を可能とする。エラーは、最新の標準iSCSIで許容している単一送信よりも、より正確に場所が特定される。
PFTA(Post File Transfer Acknowledgment)のメカニズムを使用しているので、再送信は、バーストごとに要求される。損失した量子が多数あるとき、バースト全体の再送信が要求されるか、または接続失敗が宣言される。また、再送信自身がエラーで受信されるとき、時々多数の再送信が必要となる。また、タイマーは、損失したSNACKの可能性を保護するために必要となることがある。
一実施例では、量子の順序化は、アプリケーションバッファで自動的に実行される。パケットの受信順序の相違は、簡単に処理される。明確な量子アドレスが付与されているので、量子は、必ずしも順序通りに送信する必要はない。RAIDタイプの冗長性が使用されていると、量子の送信順序を交互配置できる有利さが存在する。
3.QDSフロー制御
バースト・サイズは、通常のTCPウィンドウ・サイズに比較して、一般的には大きい。従って、追加するフロー制御メカニズムは、ネットワークの輻輳を処理することが必要となる。フロー制御のバージョン版は、端末と端末との間の経路内で、最も遅延してかつ最も輻輳しているリンク箇所に適用するために、情報源の送信比率を規制する。高速ストリームのパケットを送信したとき、遅いリンクは、送信の流れを低下させることになる。受信端におけるパケットの到着時間間隔は、最も遅いリンクで利用できる処理能力の良い指標となる。送信側は、受信側で測定された平均到着時間間隔よりも大きい時間間隔Tで、連続して送信するべきである。到着時間間隔の分散も、また経路品質の指標になり、小さな分散が望ましい。大きな分散は、確実に到着時間間隔Tを増大させる可能性がある。
本発明のQDSによれば、各バーストの送信開始時は、バーストの少量の量子が、到着時間間隔Tを決定する目的に向けて、ネットワークに連続して送信される。Tの値は、受信端での到着時間間隔の状態にしたがって調整することができる。受信端は、到着時間間隔をモニターし、フロー制御パラメータTを決定する目的に向けて、周期的に送信端にトラフィックの摘要を通信する。
V.RAID機能の量子処理
RAIDは、データの信頼性を促進させる。ディスク故障に対する保護を、冗長的なコード化および配列ディスクへの格納データの分散化により、実行している。配列ディスクに格納されたデータの冗長的なコード化によって実現されている信頼性に加えて、RAIDは、より高速な並列データ格納および分散化(データ)による検索を可能にしている。
本発明の実施例は、ネットワーク・ストレージを、信頼できない不確かな時空間のデータ検索の組み合わせとして取り扱い、送信時と格納時の両方のエラーに対する防御として、RAIDのスキームを組み込む。CRCチェックサムがエラーを示すとき、受信または検索において、また量子を消去することも考慮できる。
本発明の実施例は、クライアントまたはターゲットのいずれかで、量子を冗長的にコード化し、これらの冗長化された量子を、分散したストレージの異なった場所に配信する。
1.分散化したネットワークRAIDための新規パラダイム
本発明によるネットワーク化されたRAIDの技術を、図6に示す。図6は、パリティの形成方法およびディスク故障の修正方法を示す。第1のステップとして、暗号化したn個の量子=(x1,x2,…,xn)のバスケットが提供される。これらの量子は、バスケット=(y1,y2,…,y)へとコード化される。コード化された量子yiは、図6(a)のパリティの図で示すように、量子xiの数のビット単位の排他的論理和によって形成される。計算を簡単にするため、図に示すパリティはわずかにしてある。
パケットの消去があるときのデコード化を、図6(b)、(c)および(d)に示す。一例として、送信時または格納時に量子yが損失したと仮定する。図6(b)において、x=yということが容易に判る。これは、未知のxを排除することで判る。この排除する処理は、yに個々に結合するxをデコード化するために繰り返すことができる。
2.陰陽コード(Yin Yang Code)
本発明の実施例は、新規で改良されたコードを使用する。このコードは、陰陽コードと呼ばれ、とりわけ、消去処理を取り扱う。名前が示唆するように、陰陽部分は、原型のデータ(陽のコピー)と負のイメージ(陰のコピー)から成る。図7に示すように、陽のデータは、4つのディスク内の系統的データであり、例えば、x,x,x,xである。次のステップで、下記の式で示すデータのパリティが計算される。
Figure 2007533012
コードの陰の部分は、下記である。
Figure 2007533012
送信データは、下記のグループAおよびグループBからなる。これらは、(8、4)コードを形成する。
Figure 2007533012
有利なことに、陰陽コードは、単独、二重、三重のディスク失敗のすべてを訂正することができる。また、四重によるディスク失敗の70の組み合わせの中から14を除いては、すべてを訂正することができる。この性能は、「レベル‐3+1」のRAIDよりも、エラー訂正能力および要求されるディスクが少ないという点で優れている。「レベル‐3+1」のRAIDは、4台のデータ用ディスクおよび5番目のパリティディスク、さらにこれら5台をモニターするためのディスクを使用する。陰陽コードは、デコードに失敗する可能性において、失敗を7分の1以下に低減させる。この優れた性能は、データ格納の要求において、20%の顕著な節減を達成させる。何故なら、「レベル‐3+1」のRAIDは10台のディスクを使用するのに、代わりに陰陽コードでは8台を使用する。
3.RAIDプロトコル
陰陽コードについては説明したので、QDSのためのRAIDのプロトコルの特徴について説明する。
好ましいことに、陰陽コード化はクライアント側で実行される。このことは、送信した8個の量子の中から4個の損失まで許容できる有利さがある。代替の実施例では、陰陽コード化はターゲット側で適用される。送信エラーは、量子のCRCチェックで検出できる。エラーが検出されたとき、訂正が検討され実行される。この訂正は、好都合なことに非常に単純なプロセス(選択された量子のわずかなビット単位の排他的論理和)で実行される。ターゲットは、コード化された量子を格納する。
クライアント側に陰陽コード化を実行させる不都合な点は、もちろん要求する送信能力を2倍にすることである。しかし、この2倍にすることは、チャネルが相互にエラーフリーのときは、まったく必要が無いことである。クライアントは、単純にデータの陽コードを送信することになる。RAID用ストレージが、ターゲット側で必要なとき、量子の陰コード計算を、ターゲット側で容易に実行することができる。こうして、ターゲットは、8ディスクに分散する形で、陽陰の両方のコピーを格納する。
検索処理において、ターゲットは、陽のコピーのみを送信するか、または陰陽の両方のコピーを送信する。クライアントは、8量子の中から4量子、まれなケースで5量子を受信して、陽のコピーを再構築することができる。
また、陰陽コードを使用して、PFTAプロトコルを採用することができる。送信側は、データの陽のコピーを送信する。受信側は、送信側にデータの陰のコピーを送信するように要求する。こうして、受信側は、正常受信した量子の陰および陽のコピーの小集合(subset)を使用して、陽のコピーを再構築することができる。
この明細書(添付したクレーム、要約書および図面も含む)で公開した機能のすべては、特別に記載して説明はしていないが、同一、等価または類似の効果が提供される代替機能に置き換えることができる。従って、別の方法について記載し説明はしていないが、公開された各々の機能は、包括的な等価なシリーズまたは類似の機能となるほんの一例である。
本発明の例示的実施例を上記で説明したが、添付したクレームに記載した本発明の精神および範囲から離れること無く、変形、修正および代替を実施できることは、同業者には明白なことである。
ストレージ・ネットワークおよびフロー処理のためのプロトコル・スタックを示す図である。 本発明によるQDSシステムの一般的なアーキテクチャを示す図である。 IPSecを伴うiWARPにおけるiSCSI用スタックを示す図である。 本発明によるセキュリティと信頼性のためのiSCSI用ECLモデルを示す図である。 本発明による書き込み用ECLヘッダを示す図である。 本発明の一実施例における量子のパイプライン処理のフロー図である。 本発明の一実施例における量子のコード化(a)および量子のデコード化(b、cおよびd)を説明する図である。 本発明の一実施例における陰陽コード化処理を説明する図である。 本発明の一実施例における複数層のプロトコル・カプセル化を説明する図である。

Claims (37)

  1. 通信システムにおいて、データを送信する方法において、
    クライアント装置は、ネットワーク媒体を介して、データパケットをストレージ・ターゲットと送受信し、ネットワーク層を通過させてデータを送信することが、アドレスすることとデータを参照することを含む方法であって、
    前記データをデータブロックにカプセル化すること、
    前記ネットワーク媒体を介して、前記データブロックを送信すること、
    前記データブロックを処理すること、および
    前記データブロックを前記ストレージ・ターゲットに格納することを包含し、
    ここに、前記データブロックは、前記データブロックで格納するために、カプセル化からの同一サイズを維持し、これによりネットワーク層を通過するデータのアドレスすることと参照することを単純化し、そして、通信システムでのデータ送信機能を向上させる方法。
  2. 前記データブロックをネットワーク接続するステップをさらに含む請求項1に記載の方法。
  3. 前記格納するステップが、
    前記ストレージ・ターゲットのメモリ・ロケーションに、前記データブロックを格納すること、
    1つの層から別の層へデータをコピーすることなく、データのネットワーク・ストレージ用プロトコルの複数の層を共同で処理すること、をさらに含む請求項1に記載の方法。
  4. 前記同一サイズのデータブロックを処理するステップが、エラー制御処理を含む請求項1に記載の方法。
  5. 前記エラー制御処理が、SNACK(Selective Negative Acknowledgment)エラー処理を使用する請求項4に記載の方法。
  6. 前記データブロックを処理するステップが、前記ストレージ・ターゲットに前記データブロックを格納する前に、前記データブロックを暗号化することを含む請求項1に記載の方法。
  7. 前記処理ステップが、前記データブロックに巡回冗長コード(CRC)チェックを実行することをさらに含み、CRCチェックが、検証されたCRCデータに結果をもたらす請求項6に記載の方法。
  8. 前記検証されたCRCデータが、前記データブロックと一緒に、前記ストレージ・ターゲットに格納される請求項7に記載の方法。
  9. 前記処理ステップが、エラーのために、1つ以上のプロトコル層を共同で処理することを含む請求項1に記載の方法。
  10. 前記処理ステップが、コード化処理を含み、該コード化処理において、
    データブロックのグループは、該データブロックの原型データのコピーとして、分離したメモリ・ディスクに格納され、
    該データブロックのグループに属するデータの陰性イメージのコピーは、分離したメモリ・ディスクの別の組に格納される請求項1に記載の方法。
  11. グループ内における各ブロックの陰性イメージのコピーは、当該ブロック以外のグループ内にあるすべてのブロックの排他的論理和の合計である請求項10に記載の方法。
  12. 前記データブロックを処理するステップが、原型データと陰性イメージとのRAID(Redundant Array of Inexpensive Disks)コードを計算することを含み、これにより、前記通信システムにおけるデータ送信機能を向上させる請求項1に記載の方法。
  13. ネットワーク内でのデータ格納方法であって、通信システムにおいてデータを処理、送信および格納することを含み、
    ネットワーク・ストレージ用プロトコルの複数層を横断するデータブロックのために、共通の固定サイズのデータブロックを使用して、少なくとも1つのクライアント装置と少なくとも1つのデータストレージ・ターゲットとの間で、ネットワーク媒体を介して、データを交換する方法。
  14. 前記データブロックが、量子データユニット(quantum data unit)である請求項13に記載の方法。
  15. プロトコルの1つの層からプロトコルの別の層へ前記データブロックをコピーすることなく、共通アドレスと参照とを使用して、ネットワーク・ストレージ用プロトコルの複数層によって処理される最終システムのメモリ・ロケーションにデータを格納する請求項13に記載の方法。
  16. 前記固定サイズのデータブロックを処理するステップが、少なくとも1つのクライアント装置で各ブロックのデータを暗号化すること、および前記ターゲットに前記データブロックを格納すること、を含む請求項13に記載の方法。
  17. 前記ターゲットが、前記データブロックを解読しない請求項16に記載の方法。
  18. 前記処理ステップが、少なくとも1つのクライアント装置で、前記データブロックを解読することをさらに含む請求項17に記載の方法。
  19. 前記処理ステップが、ストレージ用プロトコルの複数層のために、共同のエラー検出を実行することを含む請求項13に記載の方法。
  20. 前記エラー検出を実行するステップが、事前計算、ヘッダおよびトレーラからなるグループによる計算をすることにより、ストレージ用プロトコルの上位層でエラー検出することを、さらに含む請求項19に記載の方法。
  21. 前記送信するステップが、エラー時再送信処理、検出エラー付きの同一サイズのデータブロックの再送信処理、および、送信または上位プロトコル層から得られた再送信されたデータブロックを合成する処理を含む請求項13に記載の方法。
  22. 前記エラー送信処理がSNACK(Selective Negative Acknowledgment)を使用する請求項21に記載の方法。
  23. 前記処理ステップは、原型のデータブロックの右回りの排他的論理和によって生成される固定サイズの冗長ブロックと一緒に固定サイズのデータブロックを使用して、ディスクまたは送信での失敗をエラー訂正する処理を含み、そして前記データブロックおよび冗長ブロックを、分離したストレージ用ディスクに格納する請求項13に記載の方法。
  24. 前記冗長ブロックは、第1のコピーが1つ以上の固定サイズのデータブロックを含むコード化処理によって生成され、および、一つ以上の同一サイズのデータブロックの各冗長ブロックは、該データブロック以外の1つ以上のすべての排他的論理和の合計である請求項23に記載の方法。
  25. 各ブロックの冗長コピーは、すべてのブロックのパリティと一緒に当該ブロックの排他的論理和の数学的等式によって生成される請求項24に記載の方法。
  26. 前記すべてのブロックのパリティは、すべてのブロックのブロック単位の排他的論理和である請求項25に記載の方法。
  27. 前記処理ステップは、ネットワーク・ストレージ用プロトコルの層を横断してデータをコピーすること無く、1つのメモリ・ロケーションで実行される請求項13に記載の方法。
  28. ネットワークを横断してデータの格納を実行する装置は、
    少なくとも1つのストレージ装置、
    通信媒体を介して、前記少なくとも1つのストレージ装置と通信状態にあるクライアント装置であって、前記少なくとも1つのストレージ装置と通信するためのネットワークプロトコルを使用できるクライアント装置、および
    データを共通の固定サイズのデータユニットに処理し、該データユニットを前記少なくとも1つのストレージ装置に送信するために、前記クライアント装置と協働するロジックと、を具備する装置。
  29. 前記データユニットは、ストレージ用プロトコルの複数層の全域で固定サイズを維持する請求項28に記載の装置。
  30. 前記ロジックは、前記データユニットにCRCチェックを実行し、CRCチェックが前記データユニットを検証した後で、CRCレーラを各データユニットに追加する請求項29に記載の装置。
  31. データ処理システムは、
    データ処理手段、
    ネットワーク媒体を介して、前記データ処理手段と通信する少なくとも1つのデータ格納手段、および
    前記データユニットを少なくとも1つのストレージ装置から送信するとき、および前記データユニットを少なくとも1つのデータストレージ・ネットワークから受信するとき、データを、ネットワークプロトコルの複数層の全域で共通サイズを維持するような共通サイズのデータユニットに処理する手段、を具備するシステム。
  32. エラー制御処理手段をさらに含む請求項31に記載のシステム。
  33. データ検証手段をさらに含む請求項31に記載のシステム。
  34. データのコード化手段をさらに含む請求項31に記載のシステム。
  35. 1つ以上のストレージ装置に、冗長データを準備し格納する手段をさらに含む請求項31に記載のシステム。
  36. データ暗号化手段をさらに含む請求項31に記載のシステム。
  37. 複数の計算機媒体の1つにおいて、請求項1〜27のいずれか1項に記載の方法を実現する計算機コード。
JP2007507572A 2004-04-12 2005-04-12 データ格納のための情報処理と輸送アーキテクチャ Ceased JP2007533012A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56170904P 2004-04-12 2004-04-12
PCT/US2005/012446 WO2005099412A2 (en) 2004-04-12 2005-04-12 Information processing and transportation architecture for data storage

Publications (1)

Publication Number Publication Date
JP2007533012A true JP2007533012A (ja) 2007-11-15

Family

ID=35150453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007507572A Ceased JP2007533012A (ja) 2004-04-12 2005-04-12 データ格納のための情報処理と輸送アーキテクチャ

Country Status (4)

Country Link
US (1) US20090138574A1 (ja)
EP (1) EP1738273A4 (ja)
JP (1) JP2007533012A (ja)
WO (1) WO2005099412A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7889762B2 (en) 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US7890636B2 (en) * 2006-06-28 2011-02-15 Cisco Technology, Inc. Application integrated gateway
JP4347350B2 (ja) 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
JP4337891B2 (ja) 2007-03-01 2009-09-30 セイコーエプソン株式会社 記憶端末および情報処理システム
US7743181B2 (en) * 2007-07-09 2010-06-22 Intel Corporation Quality of service (QoS) processing of data packets
US8903935B2 (en) * 2010-12-17 2014-12-02 Ryan Eric GRANT Remote direct memory access over datagrams
JP5966744B2 (ja) * 2012-08-06 2016-08-10 富士通株式会社 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体
US9639464B2 (en) * 2012-09-27 2017-05-02 Mellanox Technologies, Ltd. Application-assisted handling of page faults in I/O operations
US10120832B2 (en) 2014-05-27 2018-11-06 Mellanox Technologies, Ltd. Direct access to local memory in a PCI-E device
US10031857B2 (en) 2014-05-27 2018-07-24 Mellanox Technologies, Ltd. Address translation services for direct accessing of local memory over a network fabric
US9397833B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
WO2017053957A1 (en) 2015-09-25 2017-03-30 Fsa Technologies, Inc. High-speed communications platform
WO2018237342A1 (en) * 2017-06-22 2018-12-27 Dataware Ventures, Llc FIELD SPECIALIZATION TO REDUCE MEMORY ACCESS BLOCKAGES AND ALLOCATION REQUESTS IN HIGH VOLUME DATA APPLICATIONS

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020172208A1 (en) * 2001-05-18 2002-11-21 Nokia Corporation Hybrid automatic repeat request (HARQ) scheme with in-sequence delivery of packets
US20020186660A1 (en) * 2001-06-12 2002-12-12 Bahadiroglu Murat I. Adaptive control of data packet size in networks
US20040037319A1 (en) * 2002-06-11 2004-02-26 Pandya Ashish A. TCP/IP processor and engine using RDMA
WO2004044753A1 (en) * 2002-11-12 2004-05-27 Zetera Corporation Data storage devices having ip capable partitions
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2145921A1 (en) * 1994-05-10 1995-11-11 Vijay Pochampalli Kumar Method and apparatus for executing a distributed algorithm or service on a simple network management protocol based computer network
US5931961A (en) * 1996-05-08 1999-08-03 Apple Computer, Inc. Discovery of acceptable packet size using ICMP echo
WO2001045401A1 (fr) * 1999-12-17 2001-06-21 Sony Corporation Dispositif et procede d'emission de donnees et dispositif et procede de reception de donnees
JP3543952B2 (ja) * 2000-07-21 2004-07-21 日本電気株式会社 Mplsパケット転送方法およびパケット交換機
KR100662286B1 (ko) * 2000-11-30 2007-01-02 엘지전자 주식회사 무선 링크 제어 계층에서의 프로토콜 데이터 유닛 송신 방법 및 무선 링크 제어 계층을 갖는 무선 통신 시스템
US20020143914A1 (en) * 2001-03-29 2002-10-03 Cihula Joseph F. Network-aware policy deployment
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
US7200715B2 (en) * 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
JP3936883B2 (ja) * 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
EP1704699B1 (en) * 2003-12-08 2018-04-25 Avago Technologies General IP (Singapore) Pte. Ltd. Interface between ethernet and storage area network
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
US20020172208A1 (en) * 2001-05-18 2002-11-21 Nokia Corporation Hybrid automatic repeat request (HARQ) scheme with in-sequence delivery of packets
JP2004527979A (ja) * 2001-05-18 2004-09-09 ノキア コーポレーション パケットのインシーケンス送達を用いたハイブリッド自動再送要求方式
US20020186660A1 (en) * 2001-06-12 2002-12-12 Bahadiroglu Murat I. Adaptive control of data packet size in networks
JP2004533184A (ja) * 2001-06-12 2004-10-28 スマートパケッツ インコーポレイテッド ネットワークにおけるデータ・パケット・サイズの適応制御
US20040037319A1 (en) * 2002-06-11 2004-02-26 Pandya Ashish A. TCP/IP processor and engine using RDMA
JP2006516054A (ja) * 2002-06-11 2006-06-15 アシシュ エイ パンドヤ Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ
WO2004044753A1 (en) * 2002-11-12 2004-05-27 Zetera Corporation Data storage devices having ip capable partitions
JP2006286021A (ja) * 2002-11-12 2006-10-19 Zetera Corp Ip対応パーティションを備えたデータ記憶装置

Also Published As

Publication number Publication date
US20090138574A1 (en) 2009-05-28
EP1738273A4 (en) 2012-12-26
WO2005099412A2 (en) 2005-10-27
WO2005099412A3 (en) 2006-03-23
EP1738273A2 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
JP2007533012A (ja) データ格納のための情報処理と輸送アーキテクチャ
US6445717B1 (en) System for recovering lost information in a data stream
US20200236140A1 (en) Transport layer security offload to a network interface
US8135016B2 (en) System and method for identifying upper layer protocol message boundaries
US7948921B1 (en) Automatic network optimization
US7580406B2 (en) Remote direct memory access segment generation by a network controller
Culley et al. Marker PDU aligned framing for TCP specification
US20140201587A1 (en) Fec-based reliable transport control protocols for multipath streaming
US11595355B1 (en) System and method for recovery of data packets transmitted over an unreliable network
US9225673B2 (en) Method and apparatus to manage per flow state
US8620874B1 (en) Application recovery from network-induced data corruption
US11381339B2 (en) System and technique for generating, transmitting and receiving network coded (NC) quick UDP internet connections (QUIC) packets
JP2004171206A (ja) ストレージシステム
TW200529618A (en) Method, system, and program for overrun identification
WO2023202243A1 (zh) 数据处理方法、装置、计算机设备及存储介质
EP1357721A2 (en) System and method for identifying upper layer protocol message boundaries
Narasimhamurthy et al. Quanta data storage: an information processing and transportation architecture for storage area networks
US6981194B1 (en) Method and apparatus for encoding error correction data
WO2024022243A1 (zh) 数据传输方法、网络设备、计算机设备及存储介质
US9036656B1 (en) Lightweight reliability protocol over fibre-channel to provide for load-balancing and resiliency
Gurumohan et al. Quanta data storage: A new storage paradigm
Recio et al. INTERNET-DRAFT P. Culley draft-culley-iwarp-mpa-03. txt Hewlett-Packard Company U. Elzur Broadcom Corporation
Culley et al. RFC 5044: Marker PDU Aligned Framing for TCP Specification
Recio et al. Remote Direct Data Placement Work Group P. Culley INTERNET-DRAFT Hewlett-Packard Company draft-ietf-rddp-mpa-02. txt U. Elzur Broadcom Corporation
Ransford et al. Approximate Semantics for Wirelessly Networked Applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091211

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110315

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20110726