JP2007510978A - ストレージサーバーのボトムアップキャッシュ構造 - Google Patents

ストレージサーバーのボトムアップキャッシュ構造 Download PDF

Info

Publication number
JP2007510978A
JP2007510978A JP2006536765A JP2006536765A JP2007510978A JP 2007510978 A JP2007510978 A JP 2007510978A JP 2006536765 A JP2006536765 A JP 2006536765A JP 2006536765 A JP2006536765 A JP 2006536765A JP 2007510978 A JP2007510978 A JP 2007510978A
Authority
JP
Japan
Prior art keywords
storage
data
cache
network
storage server
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.)
Pending
Application number
JP2006536765A
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 JP2007510978A publication Critical patent/JP2007510978A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ネットワークストレージサーバー400はボトムアップキャッシュ階層を有する。ボトムレベルキャッシュ412はNICとHBAの組み合わせであるコントローラ40にある。ネットワークへ出入りするストレージデータ1はボトムレベルキャッシュでキャッシュされ、これらのデータに関するメタデータ2は処理のためサーバーホスト402へ渡される。キャッシュデータがボトムレベルキャッシュの収容能力を超えるとき、データは、コントローラ上のメモリより大きいホストメモリへ移される。ネットワークからのストレージリード要求で、殆どのデータはストレージデバイス413からボトムレベルキャッシュを経てネットワークに渡される。同様に、ネットワークからのストレージライト要求で、殆どのデータは、ホストメモリ410へコピーすることなく、ボトムレベルキャッシュを経てストレージデバイスに書き込まれる。コントローラレベルでのデータキャッシュは、バストラフィックを削減し、ネットワーク型ストレージの性能向上をもたらす。
【選択図】図4

Description

関連出願の相互参照
[0001]本願は、参照として本明細書に組み込まれた、2003年10月20日に出願された米国仮特許出願第60/512,728号の優先権を主張する。
発明の背景
[0002]本発明は、ネットワークに接続されたストレージサーバーに関する。
[0003]データは、すべてのコンピューティングプロセスの基礎である基本的なリソースである。近年のインターネットと電子ビジネスの爆発的な成長と共に、データストレージシステムに関する要求は非常に増大している。データストレージシステムは、1台以上のストレージサーバーと、1台以上のクライアント又はユーザシステムとを含む。ストレージサーバーは、クライアントのリード要求及びライト要求(I/O要求とも呼ばれる)を取り扱う。ストレージサーバーがI/O要求をより高速かつより効率的に取り扱えるようにするため多くの研究が振り向けられた。
[0004]ストレージサーバーのI/O要求処理能力は、CPU性能及びネットワーク速度の劇的な増加をもたらした技術的進歩の結果として、過去10年間に亘って劇的に向上した。同様に、データストレージシステムのスループットは、RAID(安価なディスクの冗長アレイ)のようなストレージ装置レベルでのデータマネージメント技術の改良と、広範なキャッシュの使用とに起因して非常に向上した。
[0005]対照的に、PCIバスのようなシステム相互接続部の性能増加は、同じ期間中のCPU及び周辺機器の進歩に遅れをとる。その結果として、システム相互接続部は、高性能サーバーに対する主な性能ボトルネックになった。このボトルネック問題は、コンピュータアーキテクチャ及びシステムコミュニティによって広く理解されている。広範囲に亘る研究がこのボトルネック問題を解決するために行われた。この分野における一つの顕著な研究努力は、PCIをPCI−X又はInfiniBand(商標)で置き換えることによりシステム相互接続部の帯域幅を増加させることに関する。PCI−Xは「PCI拡張」を表し、133MBpsから事実上1GBpsまでPCIの速度を改良する改良型PCIバスである。InfiniBand(商標)技術は、より高い帯域幅を提供するため、共有バスとは対照的にスイッチファブリックを使用する。
発明の簡単な概要
[0006]本発明の実施形態は、システム相互接続部によるデータトラフィックを最小限に抑える改良されたキャッシュ構造を有するストレージサーバーに関する。ストレージサーバーでは、ボトムレベルキャッシュ(例えば、RAM)は、ネットワークインターフェイスカード(NIC)の機能とストレージ装置インターフェイス(例えば、ホストバスアダプタ)の機能を組み合わせる組み込みコントローラに存在する。ネットワークとの間で送受されるストレージデータは、このボトムレベルキャッシュでキャッシュされ、これらのストレージデータに関するメタデータだけが処理のためサーバーのCPUシステム(「メインプロセッサ」とも称される)へ渡される。
[0007]キャッシュされたデータがボトムレベルキャッシュの収容能力を超えるとき、データは、通例的にコントローラ上のメモリよりはるかに大きいホストRAMへ移される。コントローラ上のキャッシュはレベル−1(L−1)キャッシュと称され、メインプロセッサ上のキャッシュはレベル−2(L−2)キャッシュと称される。この新しいシステムは、トップレベルキャッシュが最小かつ最速であり、階層内で下位になるにつれて、キャッシュがより大きくなり、より遅くなる伝統的なトップダウンキャッシュに対して、ボトムアップキャッシュ構造(BUCS)と称される。
[0008]一実施形態では、ネットワークに連結されたストレージサーバーは、中央プロセッサユニット(CPU)及び第1のメモリを含むホストモジュールと、ホストモジュールを連結するシステム相互接続部と、プロセッサ、ネットワークに連結されたネットワークインターフェイス装置、ストレージサブシステムに連結されたストレージインターフェイス装置、及び第2のメモリを含む統合コントローラとを含む。第2のメモリは、ネットワークへ読み出されるか、又は、ストレージサブシステムへ書き込まれるストレージデータを一時的に記憶する下位レベルキャッシュを画成するので、リード要求又はライト要求は、ストレージデータを第1のメモリによって画成された上位レベルキャッシュへロードすることなく処理され得る。
[0009]別の実施形態では、ネットワークに連結されたストレージサーバーを管理する方法は、ネットワークを介してリモート装置からストレージデータに関するアクセス要求をストレージサーバーで受信するステップを備える。アクセス要求に関連付けられたストレージデータは、アクセス要求に応答して、ストレージサーバーのホストモジュールの上位レベルキャッシュにストレージデータを記憶することなく、ストレージサーバーの統合コントローラであって、ネットワークに連結された第1のインターフェイス及びストレージサブシステムに連結された第2のインターフェイスを有する統合コントローラの下位レベルキャッシュで記憶される。
[0010]アクセス要求はライト要求である。アクセス要求に関連付けられたメタデータはシステム相互接続部を介してホストモジュールへ送信され、同時にストレージデータを統合コントローラで持ち続ける。この方法は、ホストモジュールで統合コントローラから受信されたメタデータを使用して記述子を生成するステップと、統合コントローラで記述子を受信するステップと、統合コントローラの第2のインターフェイスを介してストレージデータをストレージサブシステム内の適切なロケーションに書き込むために記述子を統合コントローラにおけるストレージデータに関連付けるステップとをさらに含む。
[0011]アクセス要求はリード要求であり、ストレージデータは第2のインターフェイスを介してストレージサブシステムから取得される。この方法は、最初にストレージデータをホストモジュールへ転送することなく、第1のインターフェイスを介してストレージデータをリモート装置へ送信するステップをさらに含む。
[0012]別の実施形態では、ストレージサーバーに設けられたストレージコントローラのための統合コントローラは、データを処理するプロセッサと、下位レベルキャッシュを画成するメモリと、ネットワークを介してリモート装置に連結された第1のインターフェイスと、ストレージサブシステムに連結された第2のインターフェイスとを含む。統合コントローラは、下位レベルキャッシュでリモート装置から受信されたライト要求に関連付けられたライトデータを一時的に記憶し、その後、ライトデータをストレージサーバーのホストモジュールに関連付けられた上位レベルキャッシュに記憶させることなく、第2のインターフェイスを介してライトデータをストレージサブシステムへ送信するように構成される。
[0013]さらに別の実施形態では、コンピュータ読み取り可能な媒体は、ネットワークを介してリモート装置からストレージサーバーで受信されたアクセス要求を取り扱うコンピュータプログラムを含む。このコンピュータプログラムは、ネットワークを介してリモート装置からストレージデータに関するアクセス要求をストレージサーバーで受信し、アクセス要求に応答して、ストレージサーバーのホストモジュールの上位レベルキャッシュにストレージデータを記憶することなく、ストレージサーバーの統合コントローラであって、ネットワークに連結された第1のインターフェイス及びストレージサブシステムに連結された第2のインターフェイスを有する統合コントローラの下位レベルキャッシュでアクセス要求に関連付けられたストレージデータを記憶するコードを備える。
[0014]アクセス要求はライト要求であり、プログラムは、アクセス要求に関連付けられたメタデータを、システム相互接続部を介して、ホストモジュールへ送信し、同時にストレージデータを統合コントローラで持ち続けるコードをさらに備える。記述子が統合コントローラから受信されたメタデータを使用してホストモジュールで生成され、統合コントローラへ送信され、このプログラムは、統合コントローラの第2のインターフェイスを介してストレージデータをストレージサブシステム内の適切なロケーションに書き込むために記述子を統合コントローラにおけるストレージデータに関連付けるコードをさらに備える。
[0015]アクセス要求はリード要求であり、ストレージデータは第2のインターフェイスを介してストレージサブシステムから取得される。コンピュータプログラムは、最初にストレージデータをホストモジュールへ転送することなく、第1のインターフェイスを介してストレージデータをリモート装置へ送信するコードをさらに備える。
発明の詳細な説明
[0025]本発明は、ストレージシステム内のストレージサーバーに関する。一実施形態では、ストレージサーバーは、下位レベルキャッシュがI/O要求を処理するため高い頻度で使用されるボトムアップキャッシュ構造(BUCS)を備えている。本明細書で使用されるように、下位レベルキャッシュ又はメモリは、ホストモジュールのCPUに直接的に割り当てられたキャッシュ又はメモリを指す。
[0026]このようなストレージサーバーにおいて、I/O要求に関連付けられたストレージデータは、伝統的なトップダウンキャッシュ階層において高い頻度で使用されるデータができるだけ上位レベルキャッシュに入れられるのに対して、システムバス又は相互接続部によるデータトラフィックを最小限に抑えるためにできるだけ下位レベルキャッシュで持ち続けられる。ネットワークからのストレージリード要求に関して、殆どのデータは、ハードドライブ又はRAIDのようなストレージ装置からボトムレベルキャッシュを介してネットワークへ直接的に渡される。同様に、ネットワークからのストレージライト要求に関して、殆どのデータは、既存のシステムの場合のように、それらを上位レベルキャッシュ(「メインメモリ又はキャッシュ」とも称される)へコピーすることなく、下位レベルキャッシュを介してストレージ装置へ直接的に書き込まれる。
[0027]コントローラレベルにおけるこのようなデータのキャッシュ化は、PCIバスのようなシステムバス上のトラフィックを劇的に削減し、ネットワーク型データストレージ操作のすばらしい性能向上をもたらすことになる。インテル(Intel)のIQ80310リファレンスボード及びリナックス(Linux)NBD(ネットワークブロック装置)を使用する一つの実験では、BUCSは、ほとんど3倍の倍率で従来のシステムによる応答時間及びシステムスループットを改善する。
[0028]図1A〜1Cは、情報インフラストラクチャにおける種々のタイプのストレージシステムを示す。図1Aは例示的なダイレクトアタッチドストレージ(DAS)システム100を図示する。DASシステムは、ネットワーク106を介してストレージサーバー104に連結されたクライアント102を含む。ストレージサーバー104は、データを使用又は生成するアプリケーション108と、データを管理するファイルシステム110と、データを記憶するストレージサブシステム112とを含む。ストレージサブシステムは、磁気ディスク装置、光ディスク装置、テープベースの装置などである1台以上のストレージ装置を含む。ストレージサブシステムは一実施形態においてはディスクアレイ装置である。
[0029]DASは、ストレージサブシステムとサーバーとの間の専用通信リンクを介してストレージサブシステムをサーバーへローカルに取り付ける従来の方法である。SCSIコネクションがDASを実施するため一般に使用される。サーバーは、典型的にブロックレベルインターフェイスを使用してストレージサブシステムと通信する。サーバーに常駐するファイルシステム110は、アプリケーション108からのファイル要求(又はI/O要求)を完了するためにストレージサブシステム112から必要とされるデータブロックを決定する。
[0030]図1Bは例示的なストレージエリアネットワーク(SAN)システム120を図示する。システム120は、第1のネットワーク126を介してストレージサーバー124に連結されたクライアント122を含む。サーバー124はアプリケーション123及びファイルシステム125を含む。ストレージサブシステム128は第2のネットワーク130を介してストレージサーバー124に連結される。第2のネットワーク130は、ストレージサブシステム、バックアップストレージサブシステム、及びストレージサーバーを接続するため設けられたネットワークである。第2のネットワークはストレージエリアネットワークのように称される。SANは一般的にFICON(商標)又はファイバーチャネルを用いて実施される。SANは、単一キャビネットに設けられるか、又は、多数の地理的位置を橋渡しする。DASと同様に、SANサーバーはストレージサブシステム128へブロックレベルインターフェイスを与える。
[0031]図1Cは例示的なネットワークアタッチドストレージ(NAS)システム140を図示する。システム140は、ネットワーク146を介してストレージサーバー144に連結されたクライアント142を含む。サーバー144はファイルシステム148及びストレージサブシステム150を含む。アプリケーション152はネットワーク146とクライアント142との間に設けられる。固有のファイルシステムをもつストレージサーバー144はネットワーク146へ直接的に接続され、このネットワークはLANによってNFS及びSMB/CIFSのような業界標準ネットワークファイルシステムインターフェイスに応答する。ファイル要求(又はI/O要求)はクライアントからファイルシステム148へ直接的に送信される。NASサーバー144はストレージサブシステム150にファイルレベルインターフェイスを提供する。
[0032]図2は、ストレージサーバー202及びストレージサブシステム204を含む例示的なストレージシステム200を図示する。サーバー202は、CPU208、メインメモリ210及び不揮発性メモリ212を含むホストモジュール206を含む。一実施形態では、メインメモリとCPUは、これらの2個のコンポーネント間の通信を高速化するため専用バス212を介して相互に接続される。メインメモリはRAMであり、CPUによってメインキャッシュとして使用される。不揮発性メモリは本実施形態ではROMであり、CPUによって実行されるプログラム又はコードを記憶するため使用される。CPUはさらにメインプロセッサのように称される。
[0033]ストレージサーバー202は、モジュール206、ディスクコントローラ214、ネットワークインターフェイスカード(NIC)216を一緒に連結するメインバス213(又はシステム相互接続部)を含む。一実施形態では、メインバス213はPCIバスである。ディスクコントローラはペリフェラルバス218によってストレージサブシステム204へ連結される。一実施形態では、ペリフェラルバスは、SCSIバスである。NICはネットワーク220に連結され、ネットワークとストレージサーバー202との間で通信インターフェイスとして機能する。ネットワーク220はサーバー202を、クライアント102、122又は142のようなクライアントに連結する。
[0034]図1A〜図2を参照すると、異なる技術に基づくストレージシステムは異なるコマンドセット及び異なるメッセージフォーマットを使用するが、ネットワークを通るデータフロー及びサーバー内部のデータフローは数多くの点で類似する。リード要求に関して、クライアントは、コマンド及びメタデータを含むリード要求をサーバーへ送信する。メタデータは要求されたデータのロケーション及びサイズに関する情報を提供する。パケットを受信すると、サーバーは要求を確認し、要求されたデータを含む1個以上のパケットをクライアントへ送信する。
[0035]ライト要求に関して、クライアントは、メタデータと、その後に続いてライトデータを含む1個以上のパケットとを含むライト要求をサーバーへ送信する。ライトデータは、ある実施形態において、ライト要求自体に含まれてもよい。サーバーはライト要求を確認し、ライトデータをシステムメモリへコピーし、データをその取り付けられたストレージサブシステム内の適切なロケーションへ書き込み、肯定応答をクライアントへ送信する。
[0036]用語「クライアント」及び「サーバー」は本文書では広義に使用される。例えば、SANシステムにおいて、要求を送信するクライアントはサーバー124であり、要求を処理するサーバーはストレージサブシステム128である。
[0037]図3は、従来技術によるリード/ライト要求に応答するストレージサーバー300内部の例示的なデータフローを図示する。サーバーは、ホストモジュール302、ディスクコントローラ304、NIC306、及びこれらのコンポーネントを連結する内部バス(又はメインバス)308を含む。モジュール302は、メインプロセッサ(図示せず)及び上位レベルキャッシュ310を備える。ディスクコントローラ304は、第1のデータバッファ(又は下位レベルキャッシュ)312を含み、ディスク313(又はストレージサブシステム)に連結される。ディスク/ストレージサブシステムは、NAS若しくはDASシステムのサーバーへ直接的に取り付けられるか、又は、リンクされるか、或いは、SANシステム内のネットワークを介してサーバーへ連結される。NIC306は、第2のデータバッファ314を含み、ネットワークを介してクライアント(図示せず)に連結される。内部バス308はシステム相互接続部であり、本実施形態ではPCIバスである。
[0038]動作中、NIC306を介してクライアントからリード要求を受信すると、モジュール302(又はサーバーのオペレーションシステム)は、要求されたデータがメインキャッシュ310にあるかどうかを判定する。もしあるならば、メインキャッシュ310のデータが処理され、クライアントへ送信される。もしないならば、モジュール302は、ディスクコントローラ304へのI/O操作を呼び出し、PCIバス308を介してディスク313からデータをロードする。データがメインキャッシュへロードされた後、メインプロセッサはヘッダを生成し、PCIバスを介してNICへ転送される応答パケットを組み立てる。NICは、次に、パケットをクライアントへ送信する。その結果、データはPCIバスによって2回移動させられる。
[0039]NIC306を介してクライアントからライト要求を受信すると、モジュール302は、最初にPCIバスを介してNICからメインキャッシュ310へデータをロードし、次に、そのデータをPCIバスによってディスク313に格納する。データはライト操作に関してPCIバスを2回移動する。したがって、サーバー300は、従来の方法の下でI/O要求を完了するためにPCIバスを高い頻度で使用する。
[0040]図4は本発明の一実施形態によるストレージサーバー400を図示する。ストレージサーバー400は、ホストモジュール402、BUCSコントローラ404、及びこれらの2個のコンポーネントを連結する内部バス406を含む。モジュール402は、キャッシュマネージャ408、及びメインすなわち上位レベルキャッシュ410を含む。BUCSコントローラ404は下位レベルキャッシュ412を含む。BUCSコントローラは、ネットワークを介して、ディスク413及びクライアント(図示せず)に連結される。したがって、BUCSコントローラは、ディスクコントローラ304の機能とNIC306の機能を組み合わせ、「統合コントローラ」と称される。ディスク413は、サーバー400に直接的に取り付けられたストレージサブシステム内にあっても、ネットワークを介してサーバー400に連結されたリモートストレージサブシステム内にあってもよい。サーバー400は、実施に応じて、DAS、NAS又はSANシステムに設けられたサーバーである。
[0041]BUCSアーキテクチャでは、データは、内部バスによってデータを行き来させるのではなく、できる限り下位レベルキャッシュで持ち続けられる。ストレージデータを記述するメタデータと操作を記述するコマンドは処理のためモジュール402へ転送され、一方、対応するストレージデータは下位レベルキャッシュ412で持ち続けられる。したがって、殆どのストレージデータは、トラフィックボトルネックを回避するために、内部又はPCIバス406によって上位レベルキャッシュ410へ転送されない。下位レベルキャッシュ(すなわち、L−1キャッシュ)は通常は電力及び費用の制約のために制限されるので、上位レベルキャッシュ(すなわち、L−2キャッシュ)がI/O要求を処理するためL−1キャッシュと共に使用される。キャッシュマネージャ408はこの2レベルの階層を管理する。本実施形態では、キャッシュマネージャはサーバーのオペレーションシステムのカーネルに常駐する。
[0042]図4を再度参照すると、リード要求に関して、キャッシュマネージャ408は、データがL−1キャッシュにあるか、又は、L−2キャッシュにあるかをチェックする。データがL−1キャッシュにあるならば、モジュール402は、ヘッダを準備し、ネットワークインターフェイス(図5を参照)を通るネットワークによってデータパケットを要求元クライアントへ送信するためにBUCSコントローラを呼び出す。データがL−2キャッシュにあるならば、キャッシュマネージャ408は、ネットワークを介してクライアントへ送信されるようにL−2キャッシュからL−1キャッシュへデータを移動する。データがストレージ装置、すなわち、ディスク413にあるならば、キャッシュマネージャは、データを読み出し、L−1キャッシュへそのままデータをロードする。本実施形態では、両方の場合に、ホストモジュールはパケットヘッダを生成し、それらをBUCSコントローラへ転送する。コントローラはヘッダとデータを組み立て、次に、組み立てられたパケットを要求元クライアントへ送信する。
[0043]ライト要求に関して、BUCSコントローラは、データパケットに含まれるデータの固有識別子を生成し、ホストにこの識別子を通知する。ホストは、次に、メタデータを対応する前のコマンドパケット内のこの識別子に添付する。実際のライトデータはL−1キャッシュに保存され、次に、ストレージ装置内の正しいロケーションに書き込まれる。その後、サーバーは肯定応答をクライアントへ送信する。したがって、BUCSアーキテクチャは、PCIバスによる大量データの転送を最小限に抑える。もっと正確には、IO要求のコマンド部分とメタデータだけが、可能ならいつでもPCIバスを介してホストモジュールへ送信される。
[0044]本文書で使用されるように、用語「メタ情報」は要求又はパケット内の管理データを指す。すなわち、メタ情報は、パケット(例えば、I/O要求)内の実際のリードデータ又はライトデータではない情報又はデータである。したがって、メタ情報は、メタデータ、ヘッダ、コマンド部分、データ識別子、その他の管理情報、又は、これらの要素の任意の組み合わせを指す。
[0045]ストレージサーバー400では、データパケットからコマンドパケットを分離し、コマンドパケットをホストへ転送するハンドラが設けられる。ハンドラは、本発明によるBUCSコントローラで動くプログラムの一部として実施される。ハンドラはBUCSコントローラ内の不揮発性メモリに格納される(図5を参照)。
[0046]好ましくは、異なるプロトコルはそれらの固有の特定のメッセージフォーマットを有するので、ハンドラはネットワークストレージプロトコル毎に設けられる。新たに作成されたネットワークコネクションに対し、コントローラ404は、最初に、そのコネクションが属するコネクションを決定するために、すべてのハンドラを使用することを試みる。ネットワークストレージサービスを提供する周知のポートに関して、コネクション設定の最初でハンドラ探索手続きを回避するため、特定のハンドラがそれらのために設けられる。プロトコルが既知であり、対応するハンドラが決定されると、コネクションが終了するまで、選択されたハンドラがコネクション上の残りのデータ操作のため使用される。
[0047]図5は本発明の一実施形態によるBUCS又は統合コントローラ500を示す。コントローラ500は、ディスク/ストレージコントローラの機能及びNICの機能を統合する。コントローラは、プロセッサ502、メモリ(「下位レベルキャッシュ」とも称される)504、不揮発性メモリ506、ネットワークインターフェイス508、及びストレージインターフェイス510を含む。専用バスであるメモリバス512は、これらのコンポーネントのための高速通信パスを提供するためにキャッシュ504をプロセッサ402に接続する。内部バス514はコントローラ500内の種々のコンポーネントを連結し、PCIバス又はPCI−Xバス又はその他の適当なタイプである。ペリフェラルバス516は不揮発性メモリ506をプロセッサ502に連結する。
[0048]不揮発性メモリ506は、本実施形態におけるファームウェアを格納するフラッシュROMである。フラッシュROMに格納されたファームウェアは、組み込みOSコードと、ストレージコントローラの機能に関するマイクロコード、例えば、RAID機能コードと、ある種のネットワークプロトコル機能とを含む。ファームウェアはストレージサーバーのホストモジュールを使用してアップグレードされる。
[0049]本実施形態では、ストレージインターフェイス510は、装着されたディスクを制御するストレージコントローラチップであり、ネットワークインターフェイスは、パケットを送受信するネットワーク媒体アクセス制御(MAC)チップである。
[0050]メモリ504はRAMであり、L−1キャッシュを提供する。メモリ504は、好ましくは、大規模であり、例えば、1GB以上である。メモリ504は共有メモリであり、ストレージインターフェイス及びネットワークインターフェイスの機能を提供するためにストレージ及びネットワークインターフェイス508及び510と共に使用される。別個のストレージインターフェイス(又はホストバスアダプタ)とNICインターフェイスをもつ従来のサーバーシステムでは、ストレージHBA上のメモリとNIC上のメモリは物理的に分離され、ピア間での相互アクセスを困難にする。HBAとNICの融合は、データの単一コピーが異なるサブシステムによって参照されることを可能にさせ、高性能をもたらす。
[0051]本実施形態では、オンボードRAM、すなわち、メモリ504は2個の部分に区分される。一方の部分は、オンボードオペレーションシステム(OS)とコントローラ500上で動くプログラムのため確保される。もう一方、すなわち、主たる部分は、BUCS階層のL−1キャッシュとして使用される。同様に、モジュール402のメインメモリ410の区分はL−2キャッシュのため確保される。キャッシュ化の基本ユニットは、ファイルシステムレベルプロトコルのファイルブロック又はブロックレベルストレージプロトコルのためのディスクブロックである。
[0052]キャッシュ化の基本データユニットとしてブロックを使用することは、ストレージサーバーがネットワーク要求パケットとは無関係にキャッシュ内容を保持することを可能にする。キャッシュマネージャ408はこの2レベルのキャッシュ階層を管理する。キャッシュされたデータは、データブロックのオンディスクオフセットをそのハッシュキーとして使用するハッシュ化テーブル414によって組織化され管理される。テーブル414は、キャッシュマネージャ408の一部分として、又は、別個のエンティティとして格納される。
[0053]基本ハッシュエントリーは、ストレージ装置上のデータオフセット、ストレージ装置識別子、データのサイズ、ハッシュテーブルキューのリンクポインタ、キャッシュポリシーキューのリンクポインタ、データポインタ、及び状態フラグを含む複数の項目を収容する。状態フラグの各ビットは、データがL−1キャッシュであるか、又は、L−2キャッシュであるか、データがダーティデータであるかどうか、エントリー及びデータが操作中にロックされているかどうかなどの様々な状態を示す。
[0054]データは物理メモリ内に不連続的に格納されるので、iovec(I/Oベクトルデータ構造)の構造が一つの一つのデータを表現する。各iovec構造は、メモリ内で連続し、スキャッタ・ギャザー方式DMAによって直接的に使用される一つのデータのアドレス及び長さを格納する。各ハッシュエントリーのサイズは一実施例では約20バイトである。各エントリーによって表現されるデータの平均サイズが4096バイトであるならば、ハッシュエントリーコストは5%未満である。データブロックがL−1又はL−2キャッシュに追加されるとき、新しいキャッシュエントリーは、キャッシュマネージャによって作成され、このデータブロックに関するメタデータが詰められ、ハッシュテーブル内の適当な場所に挿入される。
[0055]ハッシュテーブルは実施に応じて異なる場所に保存され、1)BUCSコントローラはL−1キャッシュとL−2キャッシュの両方のためのハッシュテーブルをオンボードメモリに保存し、2)ホストモジュールはすべてのメタデータをメインメモリに保存し、3)BUCSコントローラ及びホストモジュールはそれらの固有のキャッシュされたメタデータを個別に保存する。
[0056]好ましい実施形態では、第2の方法がホストモジュールに常駐するキャッシュマネージャにL−1キャッシュとL−2キャッシュの両方のためのメタデータを保持させるため採用される。キャッシュマネージャは、キャッシュマネージメントタスクを終えるために、異なるメッセージを、APIを介して、スレーブとして機能するBUCSコントローラへ送信する。ネットワークストレージプロトコルはホストモジュール側で殆ど処理され、ホストモジュールは、キャッシュされたデータに関するメタデータを、BUCSコントローラよりも容易に抽出し取得することができるので、第2の方法が本実施形態では優先される。他の実施形態では、BUCSコントローラがこのようなタスクを取り扱う。
[0057]最長不使用アルゴリズム(LRU)置換ポリシーは、キャッシュが満杯になったとき、キャッシュに入れられる新しいデータのための場所を作るためにキャッシュマネージャ408において実施される。一般に、最も高い頻度で使用されるデータはL−1キャッシュで持ち続けられる。L−1キャッシュが満杯になると、最長期間に亘ってアクセスされなかったデータがL−1キャッシュからL−2キャッシュへ移される。キャッシュマネージャは、このようなデータ再配置を反映させるためにハッシュテーブル内の対応するエントリーを更新する。データがL−2キャッシュからディスクストレージへ移されるならば、ハッシュエントリーはハッシュテーブルから解放され、キャッシュマネージャによって放棄される。
[0058]L−2キャッシュ内の一つのデータが再度アクセスされ、L−1キャッシュに入れられる必要があるとき、それはL−1キャッシュへ返送される。L−2キャッシュ内のデータがディスクドライブへ書き込まれる必要があるとき、そのデータは、BUCSコントローラへ転送され、L−1キャッシュを使うことなく、BUCSコントローラによって直接的にディスクドライブへ書き込まれる。このようなライト操作はオンボードOS RAM空間の一部として確保されたバッファを経由する。
[0059]BUCSは従来のストレージコントローラ及びNICを統合BUCSコントローラで置き換えるので、ホストOSとインターフェイスコントローラとの間の相互作用は変更される。本実施形態では、ホストモジュールは、ある付加的な機能をもつNICとしてBUCSコントローラを取り扱うので、新しい装置のクラスは作成される必要がなく、OSカーネルへの変更を最小限に留める。
[0060]ホストOSでは、OSの他の部分によって利用される複数のAPIをエクスポートするためにコードが付加され、さらに対応するマイクロコードがBUCSコントローラに設けられる。API毎に、ホストOSは特定のコマンドコード及びパラメータをBUCSコントローラのレジスタに書き込み、コマンドディスパッチャは、希望のタスクを終えるために対応する搭載マイクロコードを呼び出す。APIはBUCSコントローラの不揮発性メモリに格納されるか、又は、ホストOSの一部としてRAMにロードされる。
[0061]提供される1個のAPIは初期化APIのbucs.cache.init()である。ホストモジュールの起動中に、BUCSコントローラ上のマイクロコードは、オンボードメモリを検出し、そのメモリの一部分を内部使用のため用意し、メモリの残りの部分をL−1キャッシュのため確保する。ホストOSは初期化中にこのAPIを呼び出し、L−1キャッシュサイズを取得する。ホストOSはさらに起動時にL−2キャッシュを検出する。L−1キャッシュ及びL−2キャッシュに関する情報を取得した後、ホストOSは、初期化を終了するためにハッシュテーブル及びその他のデータ構造をセットアップする。
[0062]図7は本発明の一実施形態によるリード要求を実行するプロセス700を図示する。ホストがクライアントからのリード要求のためのデータを発送する必要があるとき、ホストはデータのロケーションを見つけるためにハッシュテーブルをチェックする(ステップ702)。データ又はデータの一部分は、L−1キャッシュとL−2キャッシュとストレージ装置を含む三カ所の考えられる場所にある。一つ一つのデータに対し、ホストは、その情報と実行されるべき動作に関する記述子を生成する(ステップ704)。L−1キャッシュ内のデータに関して、プロセッサ502はそのデータをそのまま発送する。L−2キャッシュ内のデータに関して、ホストはL−1キャッシュ内にこのデータのための新しいロケーションを与え、DMAによってそのデータをL−2キャッシュからL−1キャッシュへ移し、それを発送する。ディスクドライバ上のデータについて、ホストはL−1キャッシュ内に新しいロケーションを見つけ、プロセッサにディスクドライブからそのデータを読み出させ、そのデータをL−1キャッシュに入れる。このディスク操作中にL−1キャッシュが満杯であるならば、ホストは、L−1キャッシュ内のどのデータがL−2キャッシュへ移されるかをさらに決定し、データ再配置のためのソースアドレス及びデスティネーションアドレスを提供する。これらの記述子は、実際の操作を実行するためにAPI bucs.append.data()によってプロセッサ502へ送信される(ステップ706)。受信された記述子毎に、プロセッサはパラメータをチェックし、リード操作を終了するために異なるマイクロコードを呼び出す(ステップ708)。
[0063]図8は本発明の一実施形態によるライト要求を実行するプロセス800を図示する。クライアントからのライト要求に対し、ホストモジュールはコマンドパケットを取得し、L−1キャッシュ内のロケーションを指定する(ステップ802)。キャッシュマネージャを使用するホストモジュールは、L−1キャッシュが受信されるライトデータのための十分な空き領域を欠くならば、L−1キャッシュ内のアクセス頻度の低いデータをL−2キャッシュへ再配置する。ホストモジュールは、このとき、コマンドパケットに続く後続のデータパケットを読むためにAPI bucs.read.data()を使用する(ステップ804)。ホストOSは、次に、プロセッサ502にそのデータをそのままL−1キャッシュへ入れさせる(ステップ806)。
[0064]ホストモジュールがデータをそのままディスクドライブへ書き込みたいとき、API bucs.write.data()が呼び出される(ステップ808)。ホストモジュールは、L−1又はL−2内のデータロケーション、データサイズ、及びディスク上のロケーションを含む書き込まれるデータの記述子を提供する。データは、次に、プロセッサ502によって、オンボードOSのため確保されたRAM空間の一部分であるプロセッサバッファへ転送され、ディスクに書き込まれる(ステップ810)。
[0065]主要な操作を補助するためBUCSシステムにはある種のその他のAPIが規定されている。例えば、API bucs.destage.L−1()は、L−1キャッシュからL−2キャッシュへデータをデステージするため設けられる。API bucs.prompt.L−2()はL−2キャッシュからL−1キャッシュへデータを移動する。これらのAPIは、必要に応じてL−1キャッシュとL−2キャッシュを動的にバランスさせるためキャッシュマネージャによって使用される。
[0066]BUCSシステムでは、ストレージコントローラ及びNICは、両方の機能を統合し、統一されたキャッシュメモリを有するBUCSコントローラによって置き換えられる。これは、一旦データがストレージデバイスから読み出されると、I/Oバス、ホストCPU及びメインメモリを呼び出すことなく、データをネットワークへ発送することを可能にさせる。高い頻度で使用されるデータをオンボードキャッシュメモリ(L−1キャッシュ)に入れることにより、多数のリード要求が直接的に満たされる。クライアントからのライト要求は、バストラフィックを呼び出すことなく、データを直接的にL−1キャッシュへ置くことによって満たされる。L−1キャッシュ内のデータは、必要に応じてホストメモリ(L−2キャッシュ)へ再配置される。有効なキャッシュ化ポリシーを用いて、この多重レベルキャッシュは、ネットワーク型ストレージデータアクセスのための高速かつ大型のキャッシュを提供する。
[0067]本発明は、当業者が発明を実施することができるように特定の実施形態又は実施の観点から説明されている。開示された実施形態又は実施は、発明の範囲から逸脱することなく修正又は変更される。例えば、内部バスは、PCI−Xバスでもよく、又は、スイッチファブリック、例えば、InfiniBand(商標)でもよい。したがって、発明の範囲は特許請求の範囲を使用して定められるべきである。
例示的なダイレクトアタッチドストレージ(DAS)システムを図示する。 例示的なストレージエリアネットワーク(SAN)システムを図示する。 例示的なネットワークアタッチドストレージ(NAS)システムを図示する。 ストレージサーバー及びストレージサブシステムを含む例示的なストレージシステムを図示する。 従来技術によるリード/ライト要求に応答するストレージサーバー内部の例示的なデータフローを図示する。 本発明の一実施形態によるストレージサーバーを図示する。 本発明の一実施形態によるBUCSすなわち統合コントローラを図示する。 本発明の一実施形態によるリード要求を実行するプロセスを図示する。 本発明の一実施形態によるライト要求を実行するプロセスを図示する。

Claims (15)

  1. ネットワークに連結されたストレージサーバーであって、
    中央プロセッサユニット(CPU)及び第1のメモリを有するホストモジュールと、
    ホストモジュールを連結するシステム相互接続部と、
    プロセッサ、前記ネットワークに連結されたネットワークインターフェイス装置、ストレージサブシステムに連結されたストレージインターフェイス装置、及び第2のメモリを含む統合コントローラと、
    を備え、
    前記第2のメモリが、前記ネットワークへ読み出されるか、又は、前記ストレージサブシステムへ書き込まれるかするストレージデータを一時的に記憶する下位レベルキャッシュを画成し、リード要求又はライト要求が前記ストレージデータを前記第1のメモリによって画成された上位レベルキャッシュへロードすることなく処理される、ストレージサーバー。
  2. 前記第2のメモリが前記ネットワークインターフェイス装置と前記ストレージインターフェイス装置とによって共用される、請求項1に記載のストレージサーバー。
  3. 前記統合コントローラが、
    前記プロセッサ、前記ネットワークインターフェイス装置、及び前記ストレージインターフェイス装置を連結する内部バスと、
    前記プロセッサと前記第2のメモリを連結するメモリバスと
    を含む、請求項1に記載のストレージサーバー。
  4. 前記システム相互接続部がバスである、請求項3に記載のストレージサーバー。
  5. 前記システム相互接続部がスイッチベースの装置である、請求項1に記載のストレージサーバー。
  6. I/O要求のストレージデータが前記下位レベルキャッシュで保持され、前記I/O要求のメタデータが前記I/O要求のヘッダを生成するために前記ホストモジュールへ送信される、請求項1に記載のストレージサーバー。
  7. 前記I/O要求がリードデータ又はライトデータである、請求項6に記載のストレージサーバー。
  8. 前記上位レベルキャッシュ及び前記下位レベルキャッシュを管理するキャッシュマネージャをさらに備える、請求項1に記載のストレージサーバー。
  9. 前記キャッシュマネージャが前記ホストモジュールによって保持される、請求項8に記載のストレージサーバー。
  10. 前記キャッシュマネージャが前記上位レベルキャッシュ及び前記下位レベルキャッシュに格納されたデータを管理するハッシュテーブルを保持する、請求項9に記載のストレージサーバー。
  11. 前記ストレージサーバーがダイレクトアタッチドストレージシステムに設けられる、請求項1に記載のストレージサーバー。
  12. 前記ストレージサーバー及び前記ストレージサブシステムが同じ筐体内に設けられる、請求項1に記載のストレージサーバー。
  13. 前記ストレージサーバーがネットワークアタッチドストレージシステム又はストレージエリアネットワークシステムに設けられる、請求項1に記載のストレージサーバー。
  14. ネットワークに連結されたストレージサーバーを管理する方法であって、
    前記ネットワークを介してリモート装置からストレージデータに関するアクセス要求を前記ストレージサーバーで受信するステップと、
    前記ストレージサーバーのホストモジュールの上位レベルキャッシュに前記ストレージデータを記憶することなく、前記アクセス要求に応答して、前記アクセス要求に関連付けられた前記ストレージデータを、前記ストレージサーバーの、前記ネットワークに連結された第1のインターフェイス及びストレージサブシステムに連結された第2のインターフェイスを有する統合コントローラの下位レベルキャッシュで記憶するステップと、
    を備える方法。
  15. 前記アクセス要求がライト要求であり、
    前記アクセス要求に関連付けられたメタデータを、システム相互接続部を介して、前記ホストモジュールへ送信し、その間に前記ストレージデータを前記統合コントローラで保持するステップをさらに備える、
    請求項14に記載の方法。
JP2006536765A 2003-10-20 2004-10-20 ストレージサーバーのボトムアップキャッシュ構造 Pending JP2007510978A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51272803P 2003-10-20 2003-10-20
PCT/US2004/034772 WO2005043395A1 (en) 2003-10-20 2004-10-20 A bottom-up cache structure for storage servers

Publications (1)

Publication Number Publication Date
JP2007510978A true JP2007510978A (ja) 2007-04-26

Family

ID=34549220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006536765A Pending JP2007510978A (ja) 2003-10-20 2004-10-20 ストレージサーバーのボトムアップキャッシュ構造

Country Status (5)

Country Link
US (1) US20050144223A1 (ja)
EP (1) EP1690185A4 (ja)
JP (1) JP2007510978A (ja)
CN (1) CN100428185C (ja)
WO (1) WO2005043395A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095900A (ko) * 2012-12-19 2015-08-21 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349999B2 (en) 2003-12-29 2008-03-25 Intel Corporation Method, system, and program for managing data read operations on network controller with offloading functions
US8108483B2 (en) * 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
GB0427540D0 (en) * 2004-12-15 2005-01-19 Ibm A system for maintaining data
CN101305334B (zh) * 2004-12-29 2012-01-11 辉达公司 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎
US7962656B1 (en) * 2006-01-03 2011-06-14 Hewlett-Packard Development Company, L.P. Command encoding of data to enable high-level functions in computer networks
JP2007188428A (ja) * 2006-01-16 2007-07-26 Fuji Xerox Co Ltd 半導体ストレージ装置およびストレージシステム
US20080022155A1 (en) * 2006-07-20 2008-01-24 International Business Machines Corporation Facilitating testing of file systems by minimizing resources needed for testing
US20080189558A1 (en) * 2007-02-01 2008-08-07 Sun Microsystems, Inc. System and Method for Secure Data Storage
DE112008003788T5 (de) * 2008-03-27 2011-02-24 Hewlett-Packard Co. Intellectual Property Administration, Fort Collins Raid-Array-Zugriff durch ein das Raid-Array nicht kennendes Betriebssystem
US9886389B2 (en) * 2008-11-21 2018-02-06 International Business Machines Corporation Cache memory bypass in a multi-core processor (MCP)
US7804329B2 (en) * 2008-11-21 2010-09-28 International Business Machines Corporation Internal charge transfer for circuits
US9122617B2 (en) 2008-11-21 2015-09-01 International Business Machines Corporation Pseudo cache memory in a multi-core processor (MCP)
US9824008B2 (en) * 2008-11-21 2017-11-21 International Business Machines Corporation Cache memory sharing in a multi-core processor (MCP)
US8806129B2 (en) * 2008-11-21 2014-08-12 International Business Machines Corporation Mounted cache memory in a multi-core processor (MCP)
CN101436152B (zh) * 2008-12-02 2013-01-23 成都市华为赛门铁克科技有限公司 一种数据备份的方法和装置
JP2010165395A (ja) * 2009-01-13 2010-07-29 Hitachi Ltd ストレージ機器
US9043555B1 (en) * 2009-02-25 2015-05-26 Netapp, Inc. Single instance buffer cache method and system
CN102103545B (zh) * 2009-12-16 2013-03-27 中兴通讯股份有限公司 一种数据缓存的方法、装置及系统
US9128853B1 (en) * 2010-05-05 2015-09-08 Toshiba Corporation Lookup structure for large block cache
WO2011156466A2 (en) * 2010-06-08 2011-12-15 Hewlett-Packard Development Company, L.P. Storage caching
US10360150B2 (en) * 2011-02-14 2019-07-23 Suse Llc Techniques for managing memory in a multiprocessor architecture
US9098397B2 (en) 2011-04-04 2015-08-04 International Business Machines Corporation Extending cache for an external storage system into individual servers
CN102571904A (zh) * 2011-10-11 2012-07-11 浪潮电子信息产业股份有限公司 一种模块化设计的nas集群系统构建方法
RU2589398C2 (ru) * 2011-10-27 2016-07-10 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство для быстрого распределения данных
KR20130129639A (ko) * 2012-05-21 2013-11-29 삼성전자주식회사 파일 머지 시스템
US9286219B1 (en) * 2012-09-28 2016-03-15 Emc Corporation System and method for cache management
CN105162856B (zh) * 2012-10-16 2019-03-01 北京奇虎科技有限公司 网络应用集成系统和方法
US9330007B2 (en) 2012-11-30 2016-05-03 Dell Products, Lp Systems and methods for dynamic optimization of flash cache in storage devices
CN103336745B (zh) * 2013-07-01 2017-02-01 无锡北方数据计算股份有限公司 一种基于ssd缓存的fc hba及其设计方法
CN104598392A (zh) * 2013-10-31 2015-05-06 南京思润软件有限公司 一种利用多级Hash服务器缓存结构的实现方法
US9851901B2 (en) * 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
US9934177B2 (en) * 2014-11-04 2018-04-03 Cavium, Inc. Methods and systems for accessing storage using a network interface card
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US10394731B2 (en) 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
CN104991614A (zh) * 2015-06-16 2015-10-21 山东超越数控电子有限公司 一种加固模块化服务器
CN110058964B (zh) * 2018-01-18 2023-05-02 伊姆西Ip控股有限责任公司 数据恢复方法、数据恢复系统和计算机可读介质
CN113360081A (zh) * 2020-03-06 2021-09-07 华为技术有限公司 数据处理方法及其设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328760A (ja) * 1995-06-01 1996-12-13 Hitachi Ltd ディスクアレイ装置
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache
JP2001005614A (ja) * 1999-06-25 2001-01-12 Hitachi Ltd ディスク装置およびサーバ装置
US20010021949A1 (en) * 1997-10-14 2001-09-13 Alacritech, Inc. Network interface device employing a DMA command queue
JP2002163140A (ja) * 2000-11-27 2002-06-07 Fujitsu Ltd ストレージシステム
US20020172195A1 (en) * 2001-03-23 2002-11-21 Pekkala Richard E. Apparatus amd method for disparate fabric data and transaction buffering within infiniband device
US20030037204A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation Method, system, and program for caching data in a storage controller
US20030051113A1 (en) * 1999-03-03 2003-03-13 Beardsley Brent Cameron Method and system for managing meta data
US20040210584A1 (en) * 2003-02-28 2004-10-21 Peleg Nir Method and apparatus for increasing file server performance by offloading data path processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038641A (en) * 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
US5903907A (en) * 1996-07-01 1999-05-11 Sun Microsystems, Inc. Skip-level write-through in a multi-level memory of a computer system
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US6338115B1 (en) * 1999-02-16 2002-01-08 International Business Machines Corporation Advanced read cache management
CN1138216C (zh) * 2000-06-21 2004-02-11 国际商业机器公司 为多种设备提供快速信息服务的装置及方法
US6981070B1 (en) * 2000-07-12 2005-12-27 Shun Hang Luk Network storage device having solid-state non-volatile memory
US6976205B1 (en) * 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US20040040029A1 (en) * 2002-08-22 2004-02-26 Mourad Debbabi Method call acceleration in virtual machines
US6963946B1 (en) * 2003-10-01 2005-11-08 Advanced Micro Devices, Inc. Descriptor management systems and methods for transferring data between a host and a peripheral

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328760A (ja) * 1995-06-01 1996-12-13 Hitachi Ltd ディスクアレイ装置
US20010021949A1 (en) * 1997-10-14 2001-09-13 Alacritech, Inc. Network interface device employing a DMA command queue
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache
US20030051113A1 (en) * 1999-03-03 2003-03-13 Beardsley Brent Cameron Method and system for managing meta data
JP2001005614A (ja) * 1999-06-25 2001-01-12 Hitachi Ltd ディスク装置およびサーバ装置
JP2002163140A (ja) * 2000-11-27 2002-06-07 Fujitsu Ltd ストレージシステム
US20020172195A1 (en) * 2001-03-23 2002-11-21 Pekkala Richard E. Apparatus amd method for disparate fabric data and transaction buffering within infiniband device
US20030037204A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation Method, system, and program for caching data in a storage controller
US20040210584A1 (en) * 2003-02-28 2004-10-21 Peleg Nir Method and apparatus for increasing file server performance by offloading data path processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095900A (ko) * 2012-12-19 2015-08-21 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법
KR102217966B1 (ko) 2012-12-19 2021-02-22 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법

Also Published As

Publication number Publication date
CN1871587A (zh) 2006-11-29
US20050144223A1 (en) 2005-06-30
EP1690185A1 (en) 2006-08-16
WO2005043395A1 (en) 2005-05-12
EP1690185A4 (en) 2007-04-04
CN100428185C (zh) 2008-10-22

Similar Documents

Publication Publication Date Title
JP2007510978A (ja) ストレージサーバーのボトムアップキャッシュ構造
US20210072893A1 (en) Single-Step Configuration Of Storage And Network Devices In A Virtualized Cluster Of Storage Resources
US9026737B1 (en) Enhancing memory buffering by using secondary storage
US9823866B1 (en) Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
EP1595363B1 (en) Scsi-to-ip cache storage device and method
US8943282B1 (en) Managing snapshots in cache-based storage systems
US7149855B2 (en) Network attached memory and implementation thereof
US9513825B2 (en) Storage system having a channel control function using a plurality of processors
JP4824085B2 (ja) ネットワークファイルシステムをキャッシュするシステム、及び方法
US7953926B2 (en) SCSI-to-IP cache storage device and method
US11640356B2 (en) Methods for managing storage operations for multiple hosts coupled to dual-port solid-state disks and devices thereof
US9936017B2 (en) Method for logical mirroring in a memory-based file system
US8290911B1 (en) System and method for implementing data deduplication-aware copying of data
US10872036B1 (en) Methods for facilitating efficient storage operations using host-managed solid-state disks and devices thereof
US11409454B1 (en) Container ownership protocol for independent node flushing
US20230359564A1 (en) Methods and Systems for Managing Race Conditions During Usage of a Remote Storage Location Cache in a Networked Storage System
US11500591B1 (en) Methods and systems for enabling and disabling remote storage location cache usage in a networked storage system
US11947419B2 (en) Storage device with data deduplication, operation method of storage device, and operation method of storage server
US11544011B1 (en) Write invalidation of a remote location cache entry in a networked storage system
US11481335B2 (en) Methods for using extended physical region page lists to improve performance for solid-state drives and devices thereof
Liang et al. High performance block I/O for global file system (GFS) with infiniband RDMA
US20230110067A1 (en) Systems, methods, and devices for near storage elasticity
JP6589500B2 (ja) 情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム
TW201610853A (zh) 用於儲存虛擬化的系統和方法
CN116490847A (zh) 支持分布式文件系统中的垃圾收集的虚拟数据复制

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071010

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100518

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110526

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110602

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111011