JP2010287208A - ストレージ・アレイ支援アーキテクチャ - Google Patents

ストレージ・アレイ支援アーキテクチャ Download PDF

Info

Publication number
JP2010287208A
JP2010287208A JP2010007803A JP2010007803A JP2010287208A JP 2010287208 A JP2010287208 A JP 2010287208A JP 2010007803 A JP2010007803 A JP 2010007803A JP 2010007803 A JP2010007803 A JP 2010007803A JP 2010287208 A JP2010287208 A JP 2010287208A
Authority
JP
Japan
Prior art keywords
esm
offload
ioc
data
storage system
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
JP2010007803A
Other languages
English (en)
Inventor
Rodney A Dekoning
エー. デコーニング ロドニー
Bret S Weber
エス. ウェーバー ブレット
William Patrick Delaney
パトリック デラニー ウィリアム
Kenneth F Day
エフ. デイ ケネス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Corp
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 LSI Corp filed Critical LSI Corp
Publication of JP2010287208A publication Critical patent/JP2010287208A/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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】ストレージ・PLT支援ユニット及びストレージ・PLT支援アーキテクチャを提供する。
【解決手段】ストレージ・システム・アーキテクチャが開示される。環境サービス・モジュール(ESM)が、1つまたは複数のアレイ・コントローラに結合される。ESMは、中央処理装置および1つまたは複数の支援機能を備えて構成される。支援機能は、不揮発性メモリを含んでもよい。この不揮発性メモリは、書込みキャッシング、ミラーリング・データ、および/または構成データのために使用することができる。支援機能、またはESMは、SCSIコマンドまたはRDMAコマンドを使用してアレイ・コントローラによって制御されることができる。
【選択図】図2

Description

本発明は、ストレージ・PLT支援ユニット及びストレージ・PLT支援アーキテクチャを提供する。
大容量記憶システムは、ユーザの需要に応えるために、増大された記憶容量を提供し続けている。写真および動画の保存、ならびに写真および動画の共有は、ますます大きなストレージ・システムを求める需要の増加を助長する利用形態の例である。
これらの増大する需要に対する解決策は、複数の安価なディスクのアレイの使用である。これらのアレイは、データのいかなる損失もなしに冗長性およびエラー回復を提供するように構成することができる。これらのアレイはまた、複数のディスクドライブに対して、データを同時に読み出させる、または書き込ませることにより、読出しおよび書込み性能を向上させるように構成することができる。これらのアレイはまた、アレイのストレージ・サービスを中断することなく故障したディスクを交換することができる「ホットスワッピング」を可能にするように構成することができる。冗長性が提供されるか否かにかかわらず、これらのアレイは、一般に、独立ディスク冗長アレイと(または、より一般的には、頭字語RAIDで)呼ばれる。「A Case for Redundant Arrays of Inexpensive Disks(RAID)」という表題の、カリフォルニア大学バークレー校のDavid A.Patterson等による1987年の刊行物は、RAID技術の基本概念およびレベルについて論じている。
RAIDストレージ・システムは、通常、ユーザまたはホストシステムをストレージ・アレイ管理の詳細から遮蔽するコントローラを利用する。コントローラは、ストレージ・アレイが1つまたは複数のディスクドライブ(またはボリューム)として見えるようにする。これは、特定のボリュームに関するデータ(または冗長データ)が複数のディスクドライブに分散される可能性があるにもかかわらず達成される。
「A Case for Redundant Arrays of Inexpensive Disks(RAID)」という表題の、カリフォルニア大学バークレー校のDavid A.Patterson等による1987年の刊行物
したがって、本発明の一実施形態は、シリアル・アタッチトSCSI(SAS)ターゲットとして構成された入/出力コントローラ(IOC)であって、CPUおよび不揮発性メモリを備え、少なくとも1つのオフロードされたアレイ・コントローラ機能を実行するように構成されたIOCと、SASエキスパンダと、を備えるオフロード環境サービス・モジュール(ESM)を備えることができる。
したがって、本発明の一実施形態は、アレイ・コントローラと、CPUおよび不揮発性メモリを含むIOCを備えるJBODユニットであって、IOCが、少なくとも1つのオフロードされたアレイ・コントローラ機能を実行するように構成された、JBODユニットと、SASエキスパンダとを備えるストレージ・システムをさらに備えることができる。
ストレージ・アレイ支援ユニットのブロック図である。 ストレージ・アレイ支援アーキテクチャのブロック図である。 コンピュータシステムのブロック図である。
図1は、ストレージ・アレイ支援ユニットのブロック図である。ストレージ・アレイ・システム100は、オフロード・ジャスト・ア・バンチ・オブ・ディスクス(単なるディスクの集まり;JBOD)ユニット120、アレイ・コントローラ(図示せず)、および追加のJBODユニット(図示せず)を備える。図1では、オフロードJBODユニット120は、シリアル・アタッチトSCSI(SAS)ポートを介して、複数のアレイ・コントローラに結合されてもよい。オフロードJBODユニット120は、SASポートによって追加のJBODユニットに結合されてもよい。オフロードJBODユニット120は、ディスクドライブを含んでもよい。
オフロードJBODユニット120は、オフロード環境サービス・モジュール(ESM)140およびオフロードESM141を含む。オフロードESM140は、入/出力コントローラ(IOC)150、不揮発性メモリ(NVメモリ)160、SASエキスパンダ(SE)190、および支援機能180−1、180−2を備える。IOC150は、CPU170を含んでもよい。オフロードESM141は、IOC151、不揮発性メモリ161、SASエキスパンダ191、および支援機能181−1、181−2を備える。IOC151は、CPU171を含んでもよい。オフロードESM140およびオフロードESM141は、データを交換することができるようにリンク121によって結合されてもよい。オフロードESM140およびオフロードESM141は、エキスパンダおよび環境サービス・モニタリングおよび管理機能を提供する。支援機能180−1および180−2は、本明細書では、まとめて支援機能180と呼ばれることもある。支援機能181−1および181−2は、本明細書では、まとめて支援機能181と呼ばれることもある。
一実施形態では、オフロードESM140およびオフロードESM141は、パリティおよびECC生成、バッテリ・バックアップ式データメモリ、NVRAM、ならびにコントローラ間書込みキャッシングを含むことができる支援機能180−1、180−2、181−1、および181−2を含んでもよい。これらの支援機能は、専用ハードウェア、追加のプロセッサ、ソフトウェア、またはハードウェアとソフトウェアの組合せによって実行させることができる。例えば、NVメモリ160およびNVメモリ161は、書込みデータの不揮発性キャッシングを可能にすることができる。このデータを、NVメモリ160とNVメモリ161との間でミラーリングし、その結果、このキャッシュされたデータの冗長ストレージを提供することができる。NVメモリ160およびNVメモリ161は、ディスク機能を約束することができる。
オフロードJBOD120の特別の支援機能は、データ保護層(DPL)ソフトウェアによって利用されることができる。DPLソフトウェアは、アレイ・コントローラ上で実行させることができる。支援機能は、IOC150およびIOC151をSASターゲットとして構成することにより実行させることができる。組込みCPU170および171、または支援機能180および181内の組込みCPUは、処理機能を提供することができる。NVメモリ160および161は、停電、システムのシャットダウンなどの後で機能し続けるトレージを提供することができる。NVメモリ160および161は、フラッシュメモリ、バッテリ・バックアップ式メモリなどでもよい。IOC150、組込みCPU170、およびSASエキスパンダ190は、同一のASICに組み込まれてもよいことに留意されたい。同様に、IOC151、組込みCPU171、およびSASエキスパンダ191は、同一のASICに組み込まれてもよい。
ストレージ・アレイ・システム100は、書込みキャッシュI/O処理を行うために、NVメモリ160およびNVメモリ161などの不揮発性メモリを含んでもよい。書込みキャッシュI/O処理は、停電またはI/O中断の場合にデータが保護されることを保証する。ストレージ・アレイ・システム100では、書込みデータは、アレイ・コントローラによって、例えば、SCSIコマンドおよび/またはRDMAコマンドを使用して、オフロードJBODユニット120内のNVメモリ160または161に書き込まれることができる。データがNVメモリ160または161に書き込まれた後は、データは永続的であるとみなされ、アレイ・コントローラは、このステータスをホストに返すことができるはずである。オフロードESM140または141は、データをそれぞれNVメモリ160または161に書き込むフォーク書込み機能を実行することができ、さらに、データを複製し、それをそれぞれもう一方のオフロードESMのNVメモリ161または160に送ることができる。この書込みデータは、リンク121を介してオフロードESM140と141との間で交換されることができる。リンク121は、例えば、SAS、PCIe、またはインフィニバンド接続でもよい。他のタイプのリンクも考えられる。
ストレージ・アレイ・システム100は、データがストレージ・アレイ・コントローラ、オフロードESM、オフロードJBOD、またはそれらの任意の組合せの故障に耐えて存続することを保証するために、書込みキャッシュ・データを複数のオフロードESM140〜141にミラーリングすることができる。そのような場合には、代替コントローラ、JBOD、またはオフロードESMが、冗長フェイルオーバ機構の一部分としてそれにミラーリングされたデータを再利用することができる。
一実施形態では、オフロードJBODユニット120は、アレイ・コントローラによって使用され、データの第2のNVメモリ160または161へのミラーを作成することができる。このNVメモリ160または161は、同一のオフロードJBODユニット120内のもう一方のオフロードESM140または141にあってもよく、あるいはシステム内の別のオフロードJBODユニット(図示せず)にあってもよい。他の実施形態では、オフロードJBODユニット120内のNVメモリ160および161は、アレイ・コントローラ自体内のメモリとして使用することができる。
NVメモリ160または161はまた、ストレージ・アレイ・システム100が初期化中にどのように構成されるべきかを記述する構成メタデータを記憶するために使用することができる。これは、電源投入シーケンスを速めることがきる、あるいは特定の動作環境(例えば、ホスト・タイプ、デフォルト設定など)を示すことができる。
ストレージ・アレイ・コントローラがディスクにライトバック・キャッシュ・データをコミットする用意ができた場合、オフロードJBOD120は、CPU170または171にNVメモリ160または161に記憶されているライトバック・キャッシュ・データをSAS領域内の適切なディスクのロケーションに転送するよう指令する特定のコマンドの発行を受けることができる。このコマンドを受け取るオフロードESM140または141は、データのメモリアドレス、I/O装置(例えば、磁気ディスクまたは半導体ディスク)、書込み先LBA、および書き込まれるべきデータの長さを受け取ることができる。コマンドを受け取った後は、オフロードESM140または141は、I/O装置に適切なSCSIコマンドまたはSATAコマンドを発行することができる。I/O装置が動作を完了したことを確認するステータスを受け取った後は、オフロードESM140または141は、ライトバック・キャッシュ・データをもはやダーティではないとマーキングし、ストレージ・アレイ・コントローラにステータスを返すことができる。
他の実施形態では、オフロードESM140または141は、ストレージ・アレイ・コントローラに対する論理ユニット番号(LUN)として、オフロードJBODユニット120、および同一のSAS領域内のその他のJBOD内のディスクのための単一のターゲットを提示するターゲット・デバイスとして使用することができる。これは、多くの電源投入およびリセット状態中にストレージ・アレイ・コントローラの発見を速めることができる。
支援機能180および181は、複数のディスクドライブにわたってRAID方式を実施するために冗長データを計算するのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。支援機能180および181は、正規表現検索を行うのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。この正規表現検索は、ディープ・パケット検査(DPI)またはウィルス・シグネチャ認識のような機能のために使用することができる。支援機能180および181は、重複除外を支援するためのハッシュ関数を計算するのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。支援機能180および181は、XOR機能、ECC機能、圧縮機能を提供することができる。支援機能180および181は、他のハードウェア機能および/またはソフトウェア機能を提供することができる。
図2は、ストレージ・アレイ・ハードウェア支援アーキテクチャのブロック図である。図2では、ストレージ・アレイ・システム200は、オフロードJBODユニット220、アレイ・コントローラ・エンクロージャ210、および追加のJBODユニット221を備える。オフロードJBODユニット220はまた、環境サービス・モジュール(ESM)として知られていることもある。図2では、オフロードJBODユニット220は、SASポートを介して複数のアレイ・コントローラに結合されてもよい。オフロードJBODユニット220は、SASポートによってJBODユニット221に結合されてもよい。オフロードJBODユニット220およびJBODユニット221は、ディスクドライブを含んでもよい。アレイ・コントローラ・エンクロージャ210またはオフロードJBODユニット220は、1つまたは複数のSASエキスパンダを含んでもよい。
アレイ・コントローラ・エンクロージャ210は、複数のアレイ・コントローラ230〜231を含んでもよい。これらのアレイ・コントローラ230〜231はそれぞれ、オフロードJBODユニット220に結合されてもよい。アレイ・コントローラ230〜231は、1つまたは複数のSASポートを介してオフロードJBODユニット220内のオフロードESM240〜241に結合されてもよい。
オフロードJBODユニット220は、オフロードESM240およびオフロードESM241を含む。オフロードESM240は、IOC250、支援機能260−1、および支援機能260−2を備える。オフロードESM241は、IOC251、支援機能261−1、および支援機能261−2を備える。オフロードESM240およびオフロードESM241は、データおよび情報を交換することができるようにリンク243によって結合されてもよい。支援機能260−1および260−2は、本明細書では、まとめて支援機能260と呼ばれることもある。支援機能261−1および261−2は、本明細書では、まとめて支援機能261と呼ばれることもある。
一実施形態では、オフロードESM240およびオフロードESM241は、パリティおよびECC生成、バッテリ・バックアップ式データメモリ、NVRAM、ならびにコントローラ間書込みキャッシングを含んでもよい支援機能260〜261を含んでもよい。これらの支援機能は、専用ハードウェア、追加のプロセッサ、ソフトウェア、または、ハードウェアとソフトウェアの組合せによって実行させることができる。例えば、支援機能260−1は、NVメモリを含んでもよい。このNVメモリは、書込みデータの不揮発性キャッシングを可能にすることができる。このデータは、オフロードESM240とオフロードESM241との間でミラーリングされることができ、その結果、このキャッシュされたデータの冗長ストレージを提供する。
オフロードJBOD220の特別の支援機能260〜261は、データ保護層(DPL)ソフトウェアによって利用されることができる。この機能は、SASターゲットとしてIOC250およびIOC251を構成することにより実行させることができる。さらに、IOC250および251は、処理機能を提供することができる。支援機能260〜261内のNVメモリは、停電、システムのシャットダウンなどの後で機能し続けるトレージを提供することができる。
アレイ・コントローラ230および231は、書込みキャッシュI/O処理を行うために不揮発性メモリを含んでもよい。これは、停電またはI/O中断の場合にデータが保護されることを保証することができる。ストレージ・アレイ・システム200では、書込みデータは、例えば、SCSIコマンドおよび/またはRDMAコマンドを使用してオフロードJBODユニット220内の支援機能260〜261にアレイ・コントローラ230または231によって書き込まれることができる。データがオフロードJBODユニット220内の支援機能260〜261に書き込まれた後は、データは永続的であるとみなされることができる。したがって、アレイ・コントローラ230または231は、I/Oに関するステータスをホストに返すことができ得る。オフロードESM240または241は、データを支援機能260に書き込むフォーク書込み機能を実行することができ、さらに、データを複製し、それをもう一方のオフロードESM241内のNVメモリに送ることができる。この書込みデータは、リンク243を介してオフロードESM240と241との間で交換されることができる。リンク243は、例えば、SAS、PCIe、またはインフィニバンド接続でもよい。他のタイプのリンクも考えられる。
ストレージ・アレイ・システム200は、データがアレイ・コントローラ230または231の故障に耐えて存続することを保証するために、書込みキャッシュ・データをアレイ・コントローラ230およびアレイ・コントローラ231にミラーリングすることができる。そのような場合には、代替コントローラが、第1のコントローラが故障した場合、冗長フェイルオーバ機構の一部分としてそれにミラーリングされたデータを再利用することができる。
一実施形態では、オフロードJBODユニット220は、アレイ・コントローラ230または231によって使用され、支援機能260〜261内のNVメモリへのデータのミラーを作成することができる。このNVメモリは、同一のオフロードJBODユニット220内のもう一方のオフロードESM240または241にあってもよく、あるいはシステム内の別のオフロードJBODユニット(図示せず)にあってもよい。他の実施形態では、オフロードJBODユニット220は、アレイ・コントローラ230または231自体内のメモリのミラーとして使用することができる。
支援機能260〜261はまた、ストレージ・アレイ・システム200が初期化中にどのように構成されるべきかを記述する構成メタデータのために使用することができる。これは、電源投入シーケンスを速めることができる、あるいは特定の動作環境(例えば、ホスト・タイプ、デフォルト設定など)を示すことができる。
ストレージ・アレイ・コントローラ230または231がディスクにライトバック・キャッシュ・データをコミットする用意ができた場合、オフロードJBODユニット220は、それに支援機能260〜261に記憶されているライトバック・キャッシュ・データをSAS領域内の適切なディスクに転送するよう指令する特定のコマンドの発行を受けることができる。このコマンドを受け取るオフロードESM240または241は、データのメモリアドレス、I/O装置(磁気ディスクまたは半導体ディスク)、書込み先LBA、および書き込まれるべきデータの長さを受け取ることができる。コマンドを受け取った後は、オフロードESM240または241は、I/O装置に適切なSCSIコマンドまたはSATAコマンドを発行することができる。I/O装置が動作を完了したことを確認するステータスを受け取った後は、オフロードESM240または241は、ライトバック・キャッシュ・データをもはやダーティではないとマーキングし、ストレージ・アレイ・コントローラ230または231にステータスを返すことができる。
他の実施形態では、オフロードESM240または241は、ストレージ・アレイ・コントローラに対するLUNとして、オフロードJBODユニット220、および同一のSAS領域内のその他のJBOD内のディスクのための単一のターゲットを提示するターゲット・デバイスとして使用することができる。これは、多くの電源投入およびリセット状態中にストレージ・アレイ・コントローラの発見を速めることができる。
支援機能260および261は、複数のディスクドライブにわたってRAID方式を実施するために冗長データを計算するのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。支援機能260および261は、正規表現検索を行うのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。この正規表現検索は、ディープ・パケット検査(DPI)またはウィルス・シグネチャ認識のような機能のために使用することができる。支援機能260および261は、重複除外を支援するためのハッシュ関数を計算するのを支援するハードウェア機能および/またはソフトウェア機能を提供することができる。支援機能260および261は、XOR機能、ECC機能、圧縮機能を提供することができる。支援機能260および261は、他のハードウェア機能および/またはソフトウェア機能を提供することができる。
前述のシステム、ユニット、ドライブ、装置、機器、および機能は、1つまたは複数のコンピュータシステムとともに実装されるか、あるいは1つまたは複数のコンピュータシステムによって実行させることができる。前述の方法はまた、コンピュータ可読媒体上に記憶されることができる。ストレージ・アレイ・システム100およびストレージ・アレイ・システム200の要素の多くは、コンピュータシステムでも、それらを備えても、あるいは含んでもよい。これは、オフロードJBOD120、オフロードESM140、オフロードESM141、IOC150、IOC151、CPU170、CPU171、SASエキスパンダ190、SASエキスパンダ191、支援機能180−1、180−2、181−1、181−2、アレイ・コントローラ230、アレイ・コントローラ231、オフロードJBODユニット220、JBODユニット221、オフロードESM240、オフロードESM241、IOC250、IOC251、支援機能260〜261、およびストレージ・アレイ・システム100またはストレージ・アレイ・システム200に含まれる任意のディスクドライブを含むがそれらに限定されない。
図3は、コンピュータシステムのブロック図を示す。コンピュータシステム300は、通信インターフェース320、処理システム330、ストレージ・システム340、およびユーザインターフェース360を含む。処理システム330は、ストレージ・システム340に動作可能に結合される。ストレージ・システム340は、ソフトウェア350およびデータ370を記憶する。処理システム330は、通信インターフェース320およびユーザインターフェース360に動作可能に結合される。コンピュータシステム300は、プログラムされた汎用コンピュータを備えてもよい。コンピュータシステム300は、マイクロプロセッサを含んでもよい。コンピュータシステム300は、プログラマブル回路または専用回路を備えてもよい。コンピュータシステム300は、まとめて要素320〜370を備える複数の装置、プロセッサ、ストレージ、および/またはインターフェースに分散されてもよい。
通信インターフェース320は、ネットワークインターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を備えてもよい。通信インターフェース320は、複数の通信装置に分散されてもよい。処理システム330は、マイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備えてもよい。処理システム330は、複数の処理装置に分散されてもよい。ユーザインターフェース360は、キーボード、マウス、音声認識インターフェース、マイクロホンおよびスピーカ、グラフィカル・ディスプレイ、タッチスクリーン、または他のタイプのユーザインターフェース装置を備えてもよい。ユーザインターフェース360は、複数のインターフェース装置に分散されてもよい。ストレージ・システム340は、ディスク、テープ、集積回路、RAM、ROM、ネットワークストレージ、サーバ、または他のメモリ機能を備えてもよい。ストレージ・システム340は、コンピュータ可読媒体でもよい。ストレージ・システム340は、複数のメモリ装置に分散されてもよい。
処理システム330は、ストレージ・システム340からソフトウェア350を取り出し、実行する。処理システムは、データ370を取り出し、記憶することができる。処理システムはまた、通信インターフェース320を介してデータを取り出し、記憶することができる。処理システム350は、有形の結果を達成するために、ソフトウェア350またはデータ370を作成または変更することができる。処理システムは、有形の結果を達成するために、通信インターフェース320またはユーザインターフェース370を制御することができる。処理システムは、通信インターフェース320を介して、リモートに記憶されているソフトウェアを取り出し、実行することができる。
ソフトウェア350およびリモートに記憶されているソフトウェアは、オペレーティングシステム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および、通常はコンピュータシステムによって実行される他のソフトウェアを備えてもよい。ソフトウェア350は、アプリケーションプログラム、アプレット、ファームウェア、または、通常はコンピュータシステムによって実行される他の形態の機械可読処理命令を備えてもよい。処理システム330によって実行された場合、ソフトウェア350、またはリモートに記憶されているソフトウェアは、コンピュータシステム300に本明細書に記載されているように動作するよう指図することができる。
本発明の上記の記述は、例示および説明のために提示されてきた。網羅的であること、または、本発明を開示された厳密な形態に限定することを意図するものではなく、他の変更形態および変形形態が上記の教示にかんがみて可能であり得る。実施形態は、本発明の原理およびその実用的な適用形態を最もわかりやすく説明し、それによって、他の当業者が本発明を企図された特定の用途に適するように様々な実施形態および様々な変更形態において最もうまく利用することができるようにするために選択され記述された。添付の特許請求の範囲は、従来技術によって制限されない限り、本発明の他の代替実施形態を含むと解釈されるものとする。

Claims (20)

  1. シリアル・アタッチトSCSI(SAS)ターゲットとして構成された入/出力コントローラ(IOC)であって、CPUおよび不揮発性メモリを備え、少なくとも1つのオフロードされたアレイ・コントローラ機能を実行するように構成されたIOCと、
    SASエキスパンダと
    を備えるオフロード環境サービス・モジュール(ESM)。
  2. 前記少なくとも1つのオフロードされたアレイ・コントローラ機能が書込みキャッシュ入/出力(I/O)処理を備える、請求項1に記載のオフロードESM。
  3. 書込みデータがSCSIコマンドを介してオフロードESMによって受け取られる、請求項2に記載のオフロードESM。
  4. 書込みデータがRDMAコマンドを介してオフロードESMによって受け取られる、請求項2に記載のオフロードESM。
  5. 前記少なくとも1つのオフロードされたアレイ・コントローラ機能が書込みキャッシュ・データをミラーリングすることを備える、請求項1に記載のオフロードESM。
  6. 前記書込みキャッシュ・データが別のオフロードESMにミラーリングされる、請求項5に記載のオフロードESM。
  7. 前記オフロードされたESMが、ストレージ・アレイ・コントローラに記憶されているデータをミラーリングする、請求項5に記載のオフロードESM。
  8. 前記オフロードされたESMが構成情報を前記不揮発性メモリに記憶する、請求項5に記載のオフロードESM。
  9. 前記オフロードESMが、書き込まれるべきデータを記憶し、トラッキングし、I/O装置が書込み動作を完了したことを確認する、請求項5に記載のオフロードESM。
  10. アレイ・コントローラと、
    CPUおよび不揮発性メモリを含むIOCを備えるJBODユニットであって、前記IOCが、少なくとも1つのオフロードされたアレイ・コントローラ機能を実行するように構成された、JBODユニットと、
    SASエキスパンダと
    を備えるストレージ・システム。
  11. 前記IOCがSAS領域内の複数の装置を表す、請求項10に記載のストレージ・システム。
  12. 前記IOCが書込みキャッシュ入/出力(I/O)処理を行う、請求項10に記載のストレージ・システム。
  13. 前記IOCがSCSIコマンドを介して書込みデータを受け取る、請求項12に記載のストレージ・システム。
  14. 前記IOCがRDMAコマンドを介して書込みデータを受け取る、請求項12に記載のストレージ・システム。
  15. 前記IOCが、前記アレイ・コントローラに送られた書込みキャッシュ・データをミラーリングする、請求項10に記載のストレージ・システム。
  16. 前記IOCが別のJBODユニットにミラーリングする、請求項10に記載のストレージ・システム。
  17. 前記IOCが前記不揮発性メモリに構成情報を記憶する、請求項10に記載のストレージ・システム。
  18. 前記IOCが、書き込まれるべきデータを記憶し、トラッキングし、I/O装置が書込み動作を完了したことを確認する、請求項10に記載のストレージ・システム。
  19. 前記IOCが正規表現検索を支援する、請求項10に記載のストレージ・システム。
  20. 前記IOCが圧縮機能を支援する、請求項10に記載のストレージ・システム。
JP2010007803A 2009-06-09 2010-01-18 ストレージ・アレイ支援アーキテクチャ Pending JP2010287208A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/481,303 US8595397B2 (en) 2009-06-09 2009-06-09 Storage array assist architecture

Publications (1)

Publication Number Publication Date
JP2010287208A true JP2010287208A (ja) 2010-12-24

Family

ID=42671684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010007803A Pending JP2010287208A (ja) 2009-06-09 2010-01-18 ストレージ・アレイ支援アーキテクチャ

Country Status (6)

Country Link
US (2) US8595397B2 (ja)
EP (1) EP2264585A3 (ja)
JP (1) JP2010287208A (ja)
KR (1) KR20100132413A (ja)
CN (1) CN101923446B (ja)
TW (1) TW201044161A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012181834A (ja) * 2011-02-28 2012-09-20 Cove Corp 観測可能クライアント側メモリアクセスを用いる高性能データストレージ
JP2016091542A (ja) * 2014-11-03 2016-05-23 インテル・コーポレーション コミットackを用いたrdmaのための装置および方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996805B2 (en) 2011-10-26 2015-03-31 Hewlett-Packard Development Company, L.P. Shared cache module and method thereof
US9489151B2 (en) * 2013-05-23 2016-11-08 Netapp, Inc. Systems and methods including an application server in an enclosure with a communication link to an external controller
US9606944B2 (en) * 2014-03-20 2017-03-28 International Business Machines Corporation System and method for computer memory with linked paths
JP6254293B2 (ja) * 2014-09-15 2017-12-27 華為技術有限公司Huawei Technologies Co.,Ltd. データ重複排除方法及びストレージアレイ
CN104360718B (zh) 2014-11-10 2017-11-10 英业达科技有限公司 一种服务器
US9892071B2 (en) * 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US10992598B2 (en) 2018-05-21 2021-04-27 Pure Storage, Inc. Synchronously replicating when a mediation service becomes unavailable
CN110191194B (zh) * 2019-06-13 2020-07-03 华中科技大学 一种基于rdma网络的分布式文件系统数据传输方法和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
FR2776400B1 (fr) * 1998-03-18 2000-04-28 Bull Sa Sous-systeme de disques a multiples interfaces configurables
US6458695B1 (en) 2001-10-18 2002-10-01 Chartered Semiconductor Manufacturing Ltd. Methods to form dual metal gates by incorporating metals and their conductive oxides
US7107320B2 (en) * 2001-11-02 2006-09-12 Dot Hill Systems Corp. Data mirroring between controllers in an active-active controller pair
US7055056B2 (en) * 2001-11-21 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for ensuring the availability of a storage system
US7664896B2 (en) * 2003-03-26 2010-02-16 Pivot 3, Inc. Expedited completion done messages, method and apparatus
JP4383148B2 (ja) * 2003-11-25 2009-12-16 株式会社日立製作所 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置
GB0409364D0 (en) * 2004-04-27 2004-06-02 Nokia Corp Processing data in a comunication system
US9495263B2 (en) * 2004-12-21 2016-11-15 Infortrend Technology, Inc. Redundant SAS storage virtualization subsystem and system using the same, and method therefor
US7504329B2 (en) 2005-05-11 2009-03-17 Interuniversitair Microelektronica Centrum (Imec) Method of forming a Yb-doped Ni full silicidation low work function gate electrode for n-MOSFET
US20070088917A1 (en) * 2005-10-14 2007-04-19 Ranaweera Samantha L System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems
US8595313B2 (en) * 2005-11-29 2013-11-26 Netapp. Inc. Systems and method for simple scale-out storage clusters
US7437462B2 (en) * 2006-01-06 2008-10-14 Dell Products L.P. Method for zoning data storage network using SAS addressing
JP4282691B2 (ja) 2006-06-07 2009-06-24 株式会社東芝 半導体装置
JP4897387B2 (ja) * 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
KR100821089B1 (ko) 2006-12-27 2008-04-08 동부일렉트로닉스 주식회사 반도체 소자 및 그 제조 방법
CN101681253B (zh) 2007-05-09 2013-10-16 金士顿科技股份有限公司 安全且可扩充的固态磁盘系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012181834A (ja) * 2011-02-28 2012-09-20 Cove Corp 観測可能クライアント側メモリアクセスを用いる高性能データストレージ
JP2016091542A (ja) * 2014-11-03 2016-05-23 インテル・コーポレーション コミットackを用いたrdmaのための装置および方法

Also Published As

Publication number Publication date
US8595397B2 (en) 2013-11-26
KR20100132413A (ko) 2010-12-17
US9052834B2 (en) 2015-06-09
EP2264585A3 (en) 2012-08-15
EP2264585A2 (en) 2010-12-22
US20100312963A1 (en) 2010-12-09
TW201044161A (en) 2010-12-16
CN101923446B (zh) 2015-08-26
US20140040549A1 (en) 2014-02-06
CN101923446A (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
JP2010287208A (ja) ストレージ・アレイ支援アーキテクチャ
US9037795B1 (en) Managing data storage by provisioning cache as a virtual device
EP2703991B1 (en) Scalable storage protection
US9411764B2 (en) Optimized redundant high availability SAS topology
US8117376B2 (en) Storage system and control method thereof
US8583865B1 (en) Caching with flash-based memory
US7975168B2 (en) Storage system executing parallel correction write
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
JP2007087039A (ja) ディスクアレイシステム及びその制御方法
US20100312962A1 (en) N-way directly connected any to any controller architecture
TW201411348A (zh) 智慧型主動-主動高可取得性直連式儲存系統
US8407437B1 (en) Scalable metadata acceleration with datapath metadata backup
US8914577B2 (en) Disk array control apparatus
KR102199424B1 (ko) 솔리드 스테이트 드라이브 및 그것을 포함하는 스토리지 시스템
TWI451257B (zh) 保護在直接附加儲存(das)系統中快取資料的完整性之裝置及方法
JP7370801B2 (ja) FPGA+SSD内部のエンベデッドPCIeスイッチによるイレイジャーコードデータ保護機能をサポートするシステム
JP2014096072A (ja) ミラー構成を有するディスクアレイ及びそのリビルド方法
US20170220249A1 (en) Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks
JP2007200299A (ja) データ記憶システムに配置された記憶アレイを再構成するための装置及び方法
US20140195731A1 (en) Physical link management
US20180307427A1 (en) Storage control apparatus and storage control method
JP2009163562A (ja) ストレージシステム、ストレージシステムの制御部、ストレージシステムの制御方法
WO2016006108A1 (ja) ストレージおよびその制御方法
JP5856665B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP2012252638A (ja) ディスクアレイ装置及びその制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120710