JP2008529167A - 協調的共用ストレージアーキテクチャ - Google Patents

協調的共用ストレージアーキテクチャ Download PDF

Info

Publication number
JP2008529167A
JP2008529167A JP2007553203A JP2007553203A JP2008529167A JP 2008529167 A JP2008529167 A JP 2008529167A JP 2007553203 A JP2007553203 A JP 2007553203A JP 2007553203 A JP2007553203 A JP 2007553203A JP 2008529167 A JP2008529167 A JP 2008529167A
Authority
JP
Japan
Prior art keywords
storage
data
intermediate network
storage system
interconnected
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.)
Granted
Application number
JP2007553203A
Other languages
English (en)
Other versions
JP5026283B2 (ja
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 JP2008529167A publication Critical patent/JP2008529167A/ja
Application granted granted Critical
Publication of JP5026283B2 publication Critical patent/JP5026283B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/2092Techniques of failing over between control units
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/2094Redundant storage or storage space
    • 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
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

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)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、任意数のストレージシステムにわたるスペアのコストの分散、及び多数のストレージシステム処理の改善が可能な新規な協調的共用ストレージアーキテクチャを提供する。この協調的共用ストレージアーキテクチャは、ハブのような複数の中間ネットワークデバイスを介して接続された複数のストレージシステムディスクシェルフを含む。各ストレージシステムは、ターゲットデバイスドライバモジュールを備えたストレージオペレーティングシステムを含む。ターゲットデバイスドライバモジュールにより、ストレージシステムをSCSIターゲットとして機能させることができ、それによって、他のストレージシステムからそのストレージシステム宛てに送られたコマンドを受信し、処理することが可能となる。

Description

[発明の分野]
本発明はストレージシステムに関し、特に、複数のストレージシステムと共に使用される協調的共用ストレージアーキテクチャに関する。
[発明の背景]
ストレージシステムは、メモリ、テープ、又はディスクのような書き込み可能な永久的記憶装置上での情報の編成に関するストレージサービスを提供するコンピュータである。ストレージシステムは一般に、ストレージ・エリア・ネットワーク(SAN)環境や、ネットワーク・アタッチド・ストレージ(NAS)環境の中に配置される。NAS環境で使われる場合、ストレージシステムは、ファイルシステムを実施し、情報をディレクトリやファイルの階層構造として例えばディスク上に論理編成するオペレーティングシステムを含むファイルサーバとして実施される場合がある。「ディスク上」の各ファイルは、そのファイルの実際のデータのような情報を記憶するように構成された、例えばディスクブロックのようなデータ構造の集まりとして実施される。一方、ディレクトリは、他のファイルやディレクトリに関する情報を記憶する特殊な形式のファイルとして実施される。
ストレージシステムは、クライアント/サーバモデルの情報配送にしたがって動作するように更に構成される場合があり、それによって、多数のクライアントシステム(クライアント)が、ストレージシステムに格納されたファイルのような共用リソースにアクセスすることができる。ファイルの共有は、NASシステムの顕著な特徴であり、ファイルやファイルシステムに対するセマンティックレベルのアクセスによって可能になる。NASシステムにおける情報の記憶は通常、地理的に分散されたイーサネット(R)のような相互接続された通信リンクの集まりから構成されるコンピュータネットワーク上に配置され、それによって、クライアントは、ファイルサーバ上の情報(ファイル)に遠隔からアクセスすることができる。クライアントは通常、トランスミッション・コントロール・プロトコル/インターネット・プロトコル(TCP/IP)のような所定のプロトコルにしたがって個々のフレーム、又はデータパケットをやり取りすることによって、ストレージシステムと通信する。
クライアント/サーバモデルでは、クライアントは、ポイント・ツー・ポイントリンク、共用ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットのような公共ネットワーク上で実施される仮想私設ネットワークのようなコンピュータネットワークを介してストレージシステムに「接続」するために、コンピュータ上でアプリケーションを実行する場合がある。NASシステムは一般に、ファイルベースのアクセスプロトコルを利用する。したがって、各クライアントは、ネットワークを介してファイルシステムプロトコルメッセージ(パケットの形をしている)をファイルシステムに発行することにより、ストレージシステムにサービスを要求する場合がある。従来のコモン・インターネット・ファイルシステム(CIFS)、ネットワーク・ファイルシステム(NFS)、及びダイレクトアクセス・ファイルシステム(DAFS)のような複数のファイルシステムプロトコルを備えることで、ネットワーク接続されたクライアントにとって、ストレージシステムの使い勝手は向上する場合がある。
SANは、ストレージシステムと、該ストレージシステムの記憶装置との間に直接接続を確立することが可能な高速ネットワークである。したがってSANは、ストレージバスに対する拡張とも考えられ、したがって、ストレージシステムのオペレーティングシステムは、ブロックベースのアクセスプロトコルを使用し、記憶された情報に「拡張バス」を介してアクセスすることができる。ここで言う拡張バスは通常、「SCSI over FC(FCP)」プロトコルや、「SCSI over TCI/IP(iSCSI)」プロトコルとして実施される。SAN構成、又はデプロイメントによれば、アプリケーションサーバのようなストレージシステムから記憶装置を切り離すことができ、アプリケーションサーバレベルでのある程度のストレージ共有が可能となる。ただし、環境によっては、SANは単一のサーバに専用である場合もある。SAN環境で使用される場合、ストレージシステムは、ファイバチャネル(FCP)に埋め込まれたSCSIのような1以上のブロックベースのプロトコルを使用して一連のディスクに対するデータアクセスを管理するストレージアプライアンスとして実施される場合がある。SANで使用するのに適したマルチプロトコル・ストレージアプライアンスを含むSAN構成の一例は、「MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題するBrian Pawlowski他による米国特許出願第10/215,917号に記載されている。
ストレージアプライアンスのようなストレージシステムによって提供されるサービス、及びデータにとって有利なのは、最大限の利用可能性でアクセスできることである。したがって、ストレージシステムによっては、クラスタを成す複数のストレージアプライアンスを備え、第1のストレージアプライアンスが故障したときに、第2のストレージアプライアンス(「パートナ」)を利用して、本来なら第1のストレージアプライアンスによって提供されるサービスやデータの提供を第2のストレージアプライアンスによって引き継ぐことができる性質を持つものがある。第1のストレージアプライアンスが故障すると、クラスタ内の第2のパートナ・ストレージアプライアンスは、通常なら第1のストレージアプライアンスによって処理されるデータアクセス要求の処理/対応に関するタスクを全て引き継ぐ。そのようなストレージアプライアンスクラスタ構成の一例は、「SYSTEM AND METHOD FOR TRANSPORT-LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER」と題するArthur F. Lent他による米国特許出願第10/421,297号に記載されている。管理者は、例えばハードウェアのアップグレードといったような種々の理由から、ストレージアプライアンスをオフライン状態にしたい場合がある。こうした状況では、フェイルオーバ処理とは対照的に、ユーザ始動型の引き継ぎ処理を実施した方が有利な場合がある。引き継ぎ処理が完了すると、返却処理が実施されるまで、ストレージアプライアンスのデータは、そのパートナによって提供される。
既知のストレージアプライアンスクラスタ構成によっては、クライアントとクラスタの間の通信に使用される搬送媒体は、FCPプロトコルを利用してデータを搬送することが可能なファイバチャネル(FC)である場合がある。SCSI用語において、SAN環境で動作するクライアントは、データを求める要求、及びコマンドを発行する「イニシエータ」である。したがって、マルチプロトコルストレージアプライアンスは、イニシエータから発行された要求に対し、要求/応答プロトコルにしたがって応答するように構成された「ターゲット」である。FCプロトコルによれば、イニシエータ、及びターゲットは、3つの一意の識別子、すなわち、ノード名、ポート名、及びデバイス識別子を有する。ノード名、及びポート名は、世界的に一意であり、例えば、ワールドワイド・ノード名(WWNN)、及びワールドワイド・ポート名(WWPN)である。デバイス識別子は、所与のFCスイッチング構造の中でのみ一意であり、FCポートに接続されたFCスイッチによってFCポートに動的に割り当てられる。
ストレージアプライアンスのクラスタを利用した従来のフェイルオーバ技術では、クラスタ内の各ストレージアプライアンスは、2つの物理的FCポート、すなわち、Aポート、及びBポートを有する。Aポートは、ストレージアプライアンス宛てに送られたデータアクセス要求の処理/対応に使用される。Bポートは通常、待機モードにあり、フェイルオーバ状況が発生したときに有効化され、その故障したパートナストレージアプライアンスの「識別子を引き継ぐ」。この時点で、Bポートは、故障したストレージアプライアンス宛てに送られたデータアクセス要求を受信し、処理/対応するためのFCターゲットとして機能し始める。このように、生き残ったストレージアプライアンスは、ストレージアプライアンスとその故障したパートナストレージアプライアンスのどちらを宛先として送られた要求も処理する場合がある。このような従来のFCフェイルオーバの詳細については、「SYSTEM AND METHOD FOR TRANSPORT LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER」と題する、上で参照した米国特許出願に記載されている。
具体的には、「生き残った」ストレージアプライアンスのBポートは、故障したパートナ・ストレージアプライアンスの識別子を引き継いだ後、パートナのWWNN、及びWWPN宛てに送られたデータアクセス要求に対するサービスを提供する。多くのクライアントオペレーティングシステムにとってこれは、クライアントが、その生き残ったストレージアプライアンスを故障したストレージアプライアンスであるかのようにアクセスするために十分である。すなわち、故障したストレージアプライアンスのそうした一意のネットワークアドレス識別子宛てに送られたデータアクセス要求は、生き残ったストレージアプライアンスによって受信され、処理される。クライアントからすれば、故障したストレージアプライアンスは、ネットワークから瞬間的に切断され、再接続されたかのように見え、データアクセス要求に関連する処理は、継続されているように見える。
図1は、例示的ストレージ(アプライアンス)システム・ネットワーク環境100を示す略ブロック図である。環境100は、クライアント104に接続されたネットワーククラウド102を含む。クライアント104は、PCやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを有するオペレーティングシステム上でアプリケーションを実行するように構成されたアプリケーションサーバのような特殊目的のコンピュータであってもよい。ネットワーククラウド102には、赤色ストレージシステム300A、及び青色ストレージシステム300Bを含むストレージシステムクラスタ130も接続されている。これらのストレージシステムは、例えば、ディスクシェルフ112及び114上に存在するディスクのような相互接続された記憶装置に対する記憶、及びアクセスを制御するように構成されたストレージアプライアンスとして実施される。
図示の例では、赤色ストレージシステム300Aは、そのAポート116によって赤色ディスクシェルフ112に接続されている。赤色ストレージシステム300Aは、そのBポート118を介して青色ディスクシェルフ114にもアクセスする。同様に、青色ストレージシステム300Bは、そのAポート120を介して青色ディスクシェルフ114にアクセスし、Bポート122を通して赤色ディスクシェルフ112にもアクセスする。したがって、クラスタ内の各ディスクシェルフは、各ストレージアプライアンスにアクセスすることができ、それによって、フェイルオーバ発生時の冗長経路を形成している。なお、図中、赤色ディスクシェルフと青色ディスクシェルフがストレージシステム200に直接接続されているのは、単なる例示に過ぎない。
赤色ストレージシステム300Aと青色ストレージシステム300Bを接続しているのは、クラスタ相互接続110である。クラスタ相互接続110は、それら2つのストレージシステム間に直接通信リンクを形成する。クラスタ相互接続110は、例えば、イーサネット(R)接続やFCデータリンクのような任意の適当な通信媒体であってよい。
通常のクラスタ処理において、ディスクシェルフの一次ポート(すなわち、Aポート)を介してディスクシェルフに接続されたストレージシステムは、そのディスクシェルフの「所有者」であり、主に、そのディスクシェルフに格納されたボリュームのブロック宛てに送られたデータ要求に対するサービスを提供する働きをする。したがって、この例では、赤色ストレージシステム300Aは、赤色ディスクシェルフ112を所有し、主に、そのディスクシェルフに格納されたブロックに対するデータアクセス要求を処理する働きをする。同様に、青色ストレージシステム300Bは、主に、青色ディスクシェルフ114について責任を負う。ストレージシステムクラスタ130として動作している場合、各ストレージシステム300は通常、クラスタ130内の他方のディスクシェルフのデータ処理機能を引き継ぐように構成される。
従来のストレージシステム環境構成には、多数の顕著な欠点がある。そのような欠点の1つは、スペアディスクのコストが一般に、クラスタの2つのストレージシステムにわたってしか分散されないことである。すなわち、ストレージシステムの各対について、個別のスペアディスクプールが必要となる。環境内のクラスタ数が幾つであっても、この制限はコストが悪いことが分かっている。すなわち、1つのクラスタがそのスペアを使い果たしたとき、ストレージシステム環境全体には他にスペアが存在していても、データは失われる場合がある。第2に、ロードバランシングが、ディスクシェルフに相互接続されたディスク、及び/又はストレージシステム間でしか実施されない場合があることである。すなわち、従来のクラスタ環境では、ロードバランスがとられるのは、ストレージシステムクラスタ内の2つのストレージシステム間においてのみである。もう1つの欠点は、従来のストレージシステムクラスタは、簡単にスケーリングできないことである。処理能力を向上させたり、ディスクシェルフ上のホットスポットを減らすために、システム管理者は一般に、クラスタ対、及び関連ディスクを追加し、配線し、クラスタ構成にしなければならない。また、そのような「手動」のクラスタスケーリングに応じて、ディスク所有者の移転が必要となることもあり、したがって、クラスタ対間において、ディスクシェルフ内のディスクの物理的移動が必須となる。
[発明の概要]
本発明は、任意数のストレージシステムにわたるスペアのコストの分散が可能であり、多数のストレージシステム処理の改善が可能な新規な協調的共用ストレージアーキテクチャを提供することにより、従来技術の欠点を克服する。この協調的共用ストレージアーキテクチャは、ハブのような複数の中間ネットワークデバイスを介して接続された複数のディスクシェルフを含む。各ストレージシステムは、ターゲットデバイスドライバモジュールを有するストレージオペレーティングシステムを含む。ターゲットデバイスドライバモジュールは、ストレージシステムをSCSIターゲットとして機能させることでき、それによって、ストレージシステムは、他のストレージシステムからそのストレージシステム宛てに送られたコマンドを受信し、処理することが可能となる。
協調的共用ストレージアーキテクチャは、従来のストレージシステム環境には提供されない、ストレージシステム環境における種々の有用なアプリケーション、又は機能を提供する。例えば、この新規なアーキテクチャは、更に別のストレージシステムを中間ネットワークデバイスに相互接続することを効率よく可能にするといった、ストレージシステム環境の種々の機能を動的に向上させる機能を提供する。本発明のこの機能によれば、新たに追加されたストレージシステムによって、ストレージシステム内の全てのディスクにサービスを提供することが可能となる。同様に、単にディスクシェルフを1以上の中間ネットワークデバイスに接続するだけで、その環境にディスクシェルフを効率的に追加することができる。接続後、ディスクシェルフのディスクによって提供される記憶空間は、その環境内の全てのストレージシステムによって利用できるようになる。
本発明の上記の利点、及び更に別の利点は、添付の図面と併せて下記の説明を読むことによって分かるであろう。図中、同じ参照符号は、機能的に同一の、又は類似の要素を指している。
[例示的実施形態の詳細な説明]
A.クラスタ化ストレージシステム環境
図2は、本発明の原理が実施される例示的ネットワーク環境200を示す略ブロック図である。環境200は、1以上のクライアント104に接続されたネットワーククラウド102を含む。クライアント104は、PCやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを備えたオペレーティングシステム上でアプリケーションを実行するように構成されたアプリケーションサーバのような特殊目的のコンピュータであってもよい。ネットワーククラウド102には、赤色ストレージシステム300A、青色ストレージシステム300B、及び緑色ストレージシステム300Cも接続される。これらのストレージシステムは、以下で詳しく説明するように、例えばディスクシェルフ112、及び114上に存在するディスクのような相互接続された記憶装置に対する記憶、及びアクセスを制御するように構成されたストレージアプライアンスとして実施される。
赤色、青色、及び緑色ストレージシステム300A、B、Cは、「フロントエンド」データパス202、204、206をそれぞれ介してネットワーク102に接続される。これらのフロントエンドデータパス202、204、206は、ダイレクト・ポイント・ツー・ポイントリンクであってもよいし、ルータ、スイッチ、及びハブのような種々の中間ネットワークデバイスを含む代替データパスを表わす場合もある。更に、図示の中間ネットワークデバイスH1、及びH2は、ディスクシェルフ112、及び114に接続される。この実施形態では、H1、及びH2は、ディスクシェルフ112、114のAポートとBポートの両方に相互接続され、それによって、両方のディスクシェルフに対して複数の「バックエンド」データパスを形成している。具体的には、H1は、そのAポート222を介してディスクシェルフ112に接続され、かつBポート220を介してディスクシェルフ114にも接続される。同様に、H2は、そのBポート224を介してディスクシェルフ112に接続され、かつAポート226を介してディスクシェルフ114にも接続される。なお、これらのデータパスは、例えばファイバチャネル・アービトレイテッドループ(FC−AL)のような任意の適当なネットワーク媒体であってよい。赤色ストレージシステム300は、「中間」データパス208を介してH1に接続され、かつ中間データパス210を介してH2に接続される一方、青色ストレージシステム300Bは、中間データパス212を介してH1に接続され、中間データパス214を介してH2に接続される。最後に、緑色ストレージシステム300Cは、中間データパス216を介してH1に接続され、かつ中間データパス218を介してH2に接続される。
図示の実施形態において、中間ネットワークデバイスH1、H2は、ハブとして実施されている。ただし、本発明の代替実施形態では、スイッチのような他のタイプの中間ネットワークデバイスが使用される場合もある。したがって、中間ネットワークデバイスとしてのハブの使用は、単なる例として捉えなければならない。本発明の一実施形態において、新規なストレージネットワーク環境200は、例えば、ストレージシステム、及び/又はディスクのスケーラビリティを得るために、複数の技術を利用することができる。さらに、ストレージ環境200によれば、ストレージシステム環境内の全てのストレージシステムにわたるスペアディスクの効率的な分散が可能となり、同時に、ストレージシステム環境内のどのストレージシステム間においてもストレージベースのロードバランシングを実施する機能が実現される。
B.ストレージアプライアンス
図3は、ディスクのような記憶装置上での情報の編成に関するストレージサービスを提供するように構成された例示的ストレージシステム300を示す略ブロック図である。ストレージシステム300は、例えばシステムバス330によって相互接続されたプロセッサ305、メモリ315、複数のネットワークアダプタ325a、325b、ストレージアダプタ320、及びクラスタ相互接続アダプタ335を含むストレージアプライアンスとして実施される。ストレージアプライアンスは、ネットワーク・アタッチド・ストレージ(NAS)デプロイメントやストレージ・エリア・ネットワーク(SAN)デプロイメントのユーザ(システム管理者)及びクライアントのために、再利用可能な記憶空間を含め、ストレージサービス管理の単純化や、ストレージ再構成の容易化といった機能を有するコンピュータである。ストレージアプライアンスは、ファイルシステムを通じてNASサービスを提供するが、同アプライアンスは、論理ユニット番号(LUN)のエミュレーションのようなSAN仮想化を通してSANサービスも提供する。そのようなストレージアプライアンスの一例は、「MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題するBrian Pawlowski他による米国特許出願第10/215,917号に記載されている。なお、「ストレージシステム」という用語と、「ストレージアプライアンス」という用語は同義で使用される。ストレージアプライアンス300は更に、情報をディレクトリ、ファイル、及び仮想ディスク(vdisk)ストレージオブジェクトの階層構造としてディスク上に論理編成するための仮想化システムを備えたストレージオペレーティングシステムを有する。
NAS系ネットワーク環境のクライアントは、ファイル単位でストレージを参照する一方、SAN系ネットワーク環境のクライアントは、ブロック単位、又はディスク単位でストレージを参照する。その目的のために、ストレージアプライアンス300は、LUN、又はvdiskオブジェクトの作成によって、ディスクをSANクライアントに提示(エキスポート)する。vdiskオブジェクト(以下、「vdisk」)は、仮想化システムによって実施される特殊なファイルタイプであり、SANクライアントから参照されるときにエミュレートディスクに変換される。そのようなvdiskオブジェクトの詳細については、「STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OBJECTS ON A FILE SYSTEM」と題するVijayan Rajan他による米国特許出願第10/216,453号に記載されている。その後、マルチプロトコル・ストレージアプライアンスは、後で詳しく説明するようなエキスポート制御により、それらのエミューレートディスクをSANクライアントからアクセスできるようにする。
図示の実施形態において、メモリ315は、本発明に関連するソフトウェアプログラムコード、及びデータ構造を記憶するためにプロセッサ、及びアダプタによってアドレス指定可能な複数の記憶場所を有する。また、プロセッサ、及びアダプタは、ソフトウェアプログラムコードを実行し、データ構造を操作するように構成された処理要素、及び/又は論理回路を含む。ストレージオペレーティングシステム400は、その幾つかの部分が通常、メモリに常駐し、処理要素によって実行され、とりわけ、ストレージアプライアンスによって実施されるストレージサービスを支援する記憶処理を実施することにより、そのストレージアプライアンスを機能的に編成する。なお、当業者には明らかなように、本発明のシステム、及び本明細書に記載する方法に関連するプログラム命令の格納、及び実行には、種々のコンピュータ読み取り可能媒体を含めて、他の処理手段や記憶手段を使用してもよい。
ネットワークアダプタ325a、及びbは、ポイント・ツー・ポイントリンク、ワイドエリアネットワーク(WAN)、公共ネットワーク(インターネット)上で実施される仮想私設ネットワーク(VPN)、又は共用ローカルエリアネットワーク(LAN)、あるいは任意の他の適当なネットワークアーキテクチャを介して、ストレージアプライアンスをクライアントに接続する。さらに、ネットワークアダプタ325a,bは、ストレージアプライアンス300をクライアント104に接続し、記憶された情報をブロック、又はディスクとして取得するように更に構成される場合がある。ネットワークアダプタ325は、ストレージアプライアンス300をネットワーク102に接続するのに必要な機械的、電気的、及び信号的回路を備えたFCホストバスアダプタ(HBA)であってもよい。FC HBAは、FCアクセスを可能にするだけでなく、ストレージアプライアンスのプロセッサ305からFCネットワークプロセスの負荷を低減することもできる。FC HBA325は、各物理的FCポートに関連する仮想ポートを備える場合がある。各仮想ポートは、WWPN、及びWWNNからなる固有の一意のネットワークを有する場合がある。
クライアントは、UNIXオペレーティングシステムやマイクロソフトウィンドウズオペレーティングシステムのような種々のオペレーティングシステム上でアプリケーションを実行するように構成された汎用コンピュータであってよい。クライアントは通常、SAN系ネットワークを介して情報(ブロック、ディスク、又はvdiskの形をしている)を取得する場合は、SCSI(Small Computer System Interface)インタフェースプロトコルのようなブロック単位のアクセスプロトコルを使用する。SCSIは、デバイスに依存しない標準的なプロトコルを備えた物理的入出力(I/O)インタフェースであり、ディスクのような種々の周辺装置をストレージアプライアンス300に取り付けることを可能にする。
ストレージアプライアンス300は、「SCSI over TCP(iSCSI)」プロトコル、及び「SCSI over FC(FCP)」プロトコルのようなSANデプロイメントで使用される種々のSCSI系プロトコルを備えている。したがって、イニシエータ(以後、クライアント104)は、ネットワーク102を介してiSCSIメッセージ、及び/又はFCPメッセージを発行することによりターゲットにサービスを要求し、ディスクに記憶された情報を取得する場合がある。当業者には明らかであるように、クライアントは、他のブロックアクセスプロトコルを使用して、統合ストレージアプライアンスにサービスを要求する場合もある。ストレージアプライアンスは、複数のブロックアクセスプロトコルを備えることにより、異種SAN環境におけるvdisk/LUNへの統一のとれた一貫性のあるアクセス手段を提供する。
ストレージアダプタ320は、ストレージアプライアンス上で実行されているストレージオペレーティングシステム400と協働し、クライアントから要求された情報を取得する。ストレージアダプタは、従来の高性能FCシリアルリンク、又はループトポロジのようなI/O相互接続構成を介してディスクに接続するためのI/Oインタフェース回路を含む。情報はストレージアダプタによって取得され、必要に応じてプロセッサ305(又は、アダプタ320自体)によって処理された後、システムバス330を介してネットワークアダプタ325a、及びbに転送され、そこで、その情報がパケット、又はメッセージの形に成形され、クライアントに返送される。
図示の実施形態において、マルチプロトコルストレージアプライアンス上での情報の記憶は、ディスク空間の全体的論理構成を規定する、物理的記憶ディスクのクラスタから構成される1以上のストレージボリュームとして実施される。ボリューム内のディスクは通常、1以上のRAID(Redundant Array of Independent or Inexpensive Disks)グループとして編成される。RAID実施形態は、RAIDグループ内の所定数の物理的ディスクにわたってデータを「ストライプ状」に書き込み、そのストライプ状のデータに関する適当な冗長情報を記憶することによって、データ記憶の信頼性/完全性を向上させる。この冗長情報により、記憶装置が故障したときのデータロスの復旧が可能となる。
具体的には、各ボリュームは、幾つかのRAIDグループに編成さえれた物理ディスクのアレイからなる。例えばRAID4レベル構成によれば、各RAIDグループ内の物理的ディスクは、ストライプ状のデータを記憶するように構成されたディスクと、そのデータのパリティを記憶するように構成されたディスクとを含む。ただし、他のRAIDレベル(例えば、RAID5)の構成を使用してもよい。例示的実施形態として、最小限である一台のパリティディスク、及び一台データディスクを使用する場合がある。
ディスクへのアクセスを容易にするために、ストレージオペレーティングシステム400は、仮想化システムコードと協働するwrite−anywhereファイルシステムを実施することにより、ディスクによって提供される記憶空間を「仮想化」する機能を提供する。ファイルシステムは、情報をディレクトリ、及びファイルオブジェクト(以下、「ディレクトリ」、及び「ファイル」)の階層構造としてディスク上に論理編成する。「ディスク上」の各ファイルは、データのような情報を記憶するように構成された一連のディスクブロックとして実施される一方、ディレクトリは、他のファイル及びディレクトリの名前やそれらへのリンクを記憶するための特殊形式のファイルとして実施される。仮想化システムにより、ファイルシステムは、情報をvdiskとしてディスク上に更に論理編成することが可能となり、それによって、ファイルやディレクトリに対するファイル単位の(NAS)アクセスを行うことが可能となると同時に、ファイル単位のストレージプラットフォーム上にあるvdiskに対するブロック単位の(SAN)アクセスを行うことが更に可能となり、それによって、NASアプライアンスとSANアプライアンスの統合的アプローチを提供する。
上記のように、vdiskは、普通の(正規の)ファイルから導出されるボリューム内の特殊ファイルタイプである。ただし、ディスクのエミュレーションを可能にするために、エキスポート制御機能、及び動作制限を有する。例えばクライアントがNFSプロトコルやCIFSプロトコルを使用して作成可能なファイルとは違い、vdiskは、例えばユーザインタフェース(UI)を使用して、特殊なタイプのファイル(オブジェクト)としてストレージアプライアンス上に作成される。例えばvdiskは、データと、少なくとも1つの関連ストリームinodeとを含む特殊なファイルinodeを含むマルチinodeオブジェクトであり、関連ストリームinodeには、セキュリティ情報のような属性が保持される。この特殊なファイルinodeは、エミュレートディスクに関連するデータを格納するためのメインコンテナとしての働きをする。ストリームinodeによれば、例えばリブート処理が行われても、LUNやエキスポートを提示し続けることが可能となり、また同時に、vdiskをSANクライアントに関連する単一のディスクオブジェクトとして管理することが可能となる。
さらに、当業者には分かるように、本明細書に記載する本発明の技術は、いかなるタイプの特殊目的(例えば、ストレージサービスを提供するアプライアンス)のコンピュータにも、また汎用のコンピュータにも適用することができ、ストレージシステムとして実施されるスタンドアロンのコンピュータとして実施しても、ストレージシステムを含むスタンドアロンのコンピュータとして実施してもよく、あるいはそのようなコンピュータの一部として実施してもよい。さらに、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることができ、限定はしないが、例えばネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントコンピュータやホストコンピュータに直接取り付けられるディスクアセンブリにも適合させることができる。したがって、「ストレージシステム」という用語を使用した場合でも、この用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する何らかのサブシステムだけでなく、それらの構成も含むものとして広い意味で解釈しなければならない。
C.ストレージオペレーティングシステム
一実施形態として、ストレージオペレーティングシステムは、Write Anywhere File Layout(WAFL)ファイルシステムを実施するNetApp Data ONTAPオペレーティングシステムである。ただし、当然ながら、その場書き込み形ファイルシステムのような何らかの適当なファイルシステムに改良を加え、本明細書に記載する発明の原理にしたがって使用することも可能である。したがって、「WAFL」という用語を使用した場合でも、この用語は、本発明の教示に適合させることが可能な任意のファイルシステムを指すものとして広い意味で解釈しなければならない。
本明細書で使用される場合、「ストレージオペレーティングシステム」という用語は一般に、データアクセスを管理するコンピュータ上で動作するコンピュータ実行可能コードを指し、ストレージアプライアンスの場合、マイクロカーネルとして実施されるData ONTAPストレージオペレーティングシステムのようなデータアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、UNIXやWindows NTのような汎用オペレーティングシステム上で動作するアプリケーションとして実施してもよいし、本明細書に記載するようなストレージアプリケーション用に構成された構成機能を備えた汎用オペレーティングシステムとして実施してもよい。
図4は、本発明と共に使用するのに都合がよいストレージオペレーティングシステム400を示す略ブロック図である。ストレージオペレーティングシステムは、マルチプロトコルストレージアプライアンスに格納された情報にクライアントがブロックアクセスプロトコル、及びファイルアクセスプロトコルを使用してアクセスするためのデータ経路を提供する統合ネットワークプロトコルスタック、又はマルチプロトコルエンジンを形成するように編成された一連のソフトウェア層を含む。プロトコルスタックは、IP層412、並びに、それを支援する搬送機構であるTCP層414、及びユーザデータグラムプロトコル(UDP)層416のようなネットワークプロトコル層に対するインタフェースとして機能する幾つかのネットワークドライバ(例えば、ギガビットイーサネットドライバ)のメディアアクセス層410を含む。ファイルシステムプロトコル層は、マルチプロトコルファイルアクセスを可能にし、その目的のために、ダイレクトアクセスファイルシステム(DAFS)プロトコル418、NFSプロトコル420、CIFSプロトコル422、及びハイパーテキストトランスファプロトコル(HTTP)424を含む。仮想インタフェース(VI)層426はVIアーキテクチャを実施し、DAFSプロトコル418に必要となるリモートダイレクトメモリアクセス(RDMA)のようなダイレクトアクセストランスポート(DAT)機能を提供する。
iSCSIドライバ層428は、TCP/IPネットワークプロトコル層を介したブロックプロトコルアクセスを可能にする一方、FCドライバ層430は、FC HBA325と協働し、統合ストレージアプライアンスに対して、ブロックアクセス要求、及び応答の送受信を行う。FCドライバ、及びiSCSIドライバは、LUN(vdisk)に対するFC固有のアクセス制御、及びiSCSI固有のアクセス制御を行う。すなわち、マルチプロトコルストレージアプライアンス上の単一のvdiskをアクセスするときに、iSCSIとFCPのいずれか一方、又は両方へのvdiskのエキスポートを管理する。さらに、ストレージオペレーティングシステムは、RAIDプロトコルのようなディスクストレージプロトコルを実施するディスクストレージ層440と、例えばSCSIプロトコルのようなディスクアクセスプロトコルを実施するディスクドライバ層450とを含む。
SCSIエンクロージャサービス(SES)モジュール455は、ディスクドライバ層450と協働し、ストレージオペレーティングシステム400に対してSESを実施する。SESモジュール455は、新規なデバイスドライバ(TDD)モジュール460を利用して、他のオペレーティングシステムから到来したSESメッセージを処理する。協調的共用ストレージアーキテクチャにおけるSESの使用の詳細については、「SYSTEM AND METHOD FOR DISTRIBUTING ENCLOSURE SERVICES DATA TO COORDINATE SHARED STORAGE」と題する米国特許出願第11/075,618号に記載されている。一実施形態として、FCドライバモジュール465は、ストレージアダプタ320を制御する。ターゲットデバイスドライバにより、アクセスすべきストレージシステムを相互接続されたハブ、ディスク、及びストレージシステムからなるバックエンドストレージネットワーク内のターゲットデバイスとしてアクセスすることが可能になる。ストレージシステムをターゲットとして利用することにより、本発明の種々の実施形態にしたがって、幾つかの技術を容易に実施することが可能となる。
ディスクソフトウェア層を統合ネットワークプロトコルスタック層に橋渡しするのは、ファイルシステム436によって実施される仮想化システム480である。ファイルシステム436は、例えばvdiskモジュール433、及びSCSIターゲットモジュール434として実施される仮想化ソフトウェアと情報をやりとりする。これらのモジュールは、ソフトウェアとして実施しても、ハードウェアとして実施しても、ファームウェアとして実施しても、あるいは、それらの組み合わせとして実施してもよい。vdiskモジュール433は、とりわけ、非常に様々なvdisk(LUN)コマンドのセットを実施し、SANデプロイメントを管理する。これらのvdiskコマンドは、ファイルシステム436やSCSIターゲットモジュール434に働きかけ、vdiskを実施させるための原始的なフィルシステムオペレーション(「プリミティブ」)に変換される。
続いて、SCSIターゲットモジュール434は、LUNを特殊なvdiskファイルタイプに変換するマッピング手順を実施することにより、ディスク、又はLUNのエミュレーションを開始する。SCSIターゲットモジュールは、仮想化システム480に変換層を提供するもので、例えば、FCドライバやiSCSIドライバ428、430と、ファイルシステム436との間に配置され、それによって、SANブロック(LUN)空間とファイルシステム空間との間の変換層として機能する。ただし、LUNはvdiskとして表現される。SAN仮想化をファイルシステム436の上に「配置」することによって、マルチプロトコルストレージアプライアンスは、従来のシステムがとっていたアプローチの逆を行い、それによって、実質的に全てのストレージアクセスプロトコルについて単一の統一されたストレージプラットフォームを提供する。
ファイルシステム436は、例えば4キロバイト(KB)単位のブロックとinodeとを使用してファイルを表現するブロック単位のディスク上フォーマット表現を有するWrite Anywhere File Layout(WAFL)ファイルシステムを実施する。このファイルシステムの構造の詳細な説明については、1998年10月6日に発行された「METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF A FILE SYSTEM」と題するDavid Hitz他による米国特許第5,819,292号に記載されており、この特許は参照により本明細書において完全に説明されたものとして援用される。
D. TDD通信
本発明は、任意数のストレージシステムにわたるスペアのコストの分散が可能で、多数のストレージシステムオペレーションを改善することが可能な、新規な協調的共用ストレージアーキテクチャを提供することによって、従来技術の欠点を克服する。本発明は、複数のストレージシステム間におけるスペア記憶装置の記憶装置単位のロードバランシング、及び共用が可能な協調的共用ストレージアーキテクチャを提供する。その目的のために、ストレージオペレーティングシステム400の新規なターゲットドライバモジュール460は、各ストレージシステムをターゲットとして機能させ、それによって、各ストレージシステムが、環境内の他のストレージシステムからコマンドを受信し、処理できるようにする。これらのコマンドは、コマンドブロックに関連付けられたメッセージとして、ネットワーク環境200内の中間データパス206〜218介して、ストレージシステム間でやりとりされる。
図5は、本発明によるコマンドブロック500を示す略ブロック図である。コマンドブロック500は、メッセージフィールド505、次のコマンドブロックフィールド510、1つ前のコマンドブロックフィールド515、アダプタ・インデックスフィールド520、イニシエータIDフィールド525、コマンド参照番号フィールド530、データ方向フィールド535、タスクコードフィールド540、コマンド記述子ブロックフィールド545、LUNフィールド550、ターゲットIDフィールド555、タスク管理フラグフィールド560、データバッファフィールド565、データ長フィールド570、転送長フィールド575、転送量フィールド580、SCSIステータスフィールド585、応答コードフィールド590、及びセンスデータフィールド595を含み、代替実施形態では、更に別のフィールド597を含む場合もある。メッセージフィールド505は、コマンドブロック500全体に関連するメッセージを含む。このメッセージは、所望の処理に応じて、複数のタイプのうちの1つであってよい。
次のコマンドブロックフィールド510、及び1つ前のコマンドブロックフィールド515は、ターゲットデバイスドライバ460によって使用され、複数の受信メッセージ、又は送信メッセージを処理する際に使用されるメッセージの連結リストの生成に使用される。アダプタインデックスフィールド520は、コマンドブロック500に関連する特定アダプタのインデックス値を含む。アダプタインデックスフィールド520は、特定の要求が与えられたアダプタへのメッセージの継続や、メッセージの完了を追跡記録するために使用される。イニシエータIDフィールド525は、要求が与えられたイニシエータのループFC IDを含む。コマンド参照番号フィールド530は、コマンドブロック500により補強されたコマンドの番号を含む。この参照番号は、相互に関連する複数のコマンドを追跡記録し、それらが確実に適切な順序で実行されるようにするために使用される場合がある。データ方向フィールド535は、発明者の視野に対する、参照コマンドのデータフローの方向を示す指示を有する。例えば、「IN」という値は、イニシエータへ向かうデータフローを示す一方、「OUT」という値は、イニシエータからのデータフローを示す。
タスクコードフィールド540は、このコマンドに対して実施すべきキューイングのタイプを指定する。コマンド記述子ブロックフィールド545は、参照コマンドに関連する従来のSCSIコマンドブロックを含む。LUNフィールド550は、そのコマンドのターゲットIDを指定し、ターゲットIDフィールド550は、ターゲットのループIDを含む。タスク管理フラグフィールド560は、ターゲットデバイスドライバがコマンドブロックの制御に使用するプライベートフラグを含む。データバッファフィールド565は、そのコマンドブロックに対して割り当てられたデータバッファを参照するポインタを含む。データ長フィールド570は、データバッファフィールド565によって参照される割り当て済みバッファの長さを指定する。転送長フィールド575は、参照コマンドのデータ転送の長さ値を含む。この長さ値は、データ長フィールド570の値以下である場合がある。一実施形態において、SESモジュールは、全てのコマンドについて長さ値をこのように設定し、そのコマンドが何バイトであるかを正確にターゲットデバイスドライバに通知する場合がある。転送量フィールド580は、ターゲットデバイスドライバが転送データの総量を追跡記録するために使用される。SCSIステータスフィールド585は、従来のFCP応答のステータスフィールドの値を含む。応答コードフィールド590は、オーバラン状態、又はアンダーラン状態の報告に使用され、センスデータフィールド595は、参照コマンドに関する従来のSCSIセンスコードを含む。
[協調的共用ストレージアーキテクチャにおけるスペアの割り当て]
新規な協調的共用ストレージアーキテクチャによって提供される機能の1つは、ストレージシステム環境内の全てのストレージシステムにわたって、例えばディスクドライブのようなスペア記憶装置のコストを分散する能力である。図2の例示的環境では、ディスクシェルフ112、114上のディスクはいずれも、ストレージシステム300のうちのいずれかによってアクセスされる場合がある。したがって、いずれかのディスクシェルフ上に物理的に配置されたスペアディスクは、故障したディスクを置き換えるために、いずれかのストレージシステムによって使用される場合がある。
図6は、本発明の一実施形態による、スペアプールからスペア記憶装置を割り当てる手順のステップの詳細を示すフロー図である。上記のように、新規な協調的共用ストレージアーキテクチャによれば、複数のストレージシステム間でスペアディスクのコストの分散が可能となる。この手順は、ステップ605から始まり、ステップ610に続き、そこでストレージシステムは、ディスクドライブがエラー状態、または故障状態にあることを検出する。この検出は、従来のFCクエリを利用して行われ、他のストレージシステムから受信したSES情報の結果として検出される。
エラー状態が検出されると、ステップ615で、ストレージオペレーティングシステムは、スペアプールの中からスペアディスクドライブを選択する。例えば、このスペアプールは、中間ネットワークデバイスに相互接続された独立したディスクシェルフ、又は、複数のディスクシェルフ間に散在する多数のディスクからなる。なお、スペアディスクの選択は、種々のスペア選択技術を使用して達成することができる。そのようなスペア選択技術の1つは、「SYSTEM AND METHOD FOR ALLOCATING DISKS IN NETWORKED STORAGE」と題するAlan L. Rowe他による米国特許出願第10/027,013号に記載されている。もちろん、当業者には明らかなように、他のスペアディスク選択技術を使用してもよい。
適当なスペアディスクドライブが選択されると、ステップ620において、ストレージシステムは、選択されたスペアディスクの所有権を主張する。ここで、所有権は、例えば、「SYSTEM AND METHOD FOR IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE」と題するSusan M. Coatney他による米国特許出願第10/027,457号に記載されているようなセクタS所有権技術を使用して主張される。選択されたディスクの所有権が主張されると、ステップ625において、ストレージシステムは、選択されたスペアディスク上へのデータの再構築を開始することができる。データ再構築は、従来のRAID技術にしたがって実施することができる。そして、手順はステップ630で終了する。例示的実施形態として、スペアプールは、中間ネットワークデバイスに相互接続されたディスクシェルフのうちの任意のものにわたって配置される場合がある。したがって、スペアプールは、ストレージ環境内の全てのストレージシステム間で共用される場合もあり、それによって、ストレージ環境における所有権に関するトータルコストは低減される。従来の2クラスタ環境では、スペアのコストは、2つのストレージシステムにわたってしか分散されないが、本発明の新規な協調的共用ストレージ環境を使用すれば、環境内のN個のストレージシステムにわたってコストを分散することができる。
新規な協調的ストレージアーキテクチャのもう1つの顕著な特徴は、環境の種々の機能を必要に応じて動的に増大させる機能にある。新規な協調的共用ストレージシステム環境によって可能となる増大される機能としては、とりわけ、更に別のストレージシステム、ディスクシェルフ、又は他のネットワークデバイスの挿入がある。例えば、図7は、橙色のストレージストレージシステム300Dが図2のストレージシステム環境200に挿入された場合のストレージ環境700を示している。橙色のストレージシステム300Dは環境内に相互接続され、フロントエンドデータアクセスパス715によってネットワーク102に相互接続され、中間データアクセスパス705、710によってハブH1、H2に相互接続される場合がある。橙色のストレージシステム300Dは、本発明の一実施形態によるターゲットデバイスドライバ460を含む。その結果、ストレージシステム300Dは、上に記載した従来のディスク所有権技術を使用して、ディスクシェルフ112、114に格納された一連のディスクの所有権を引き継ぐことができ、それによって、クライアントから発せられたデータアクセス要求の処理のために利用可能な処理能力を増加させることができる。すなわち、橙色のストレージシステム300Dは、使用頻度の高いボリュームを格納している一連のディスクの所有権を引き継ぐことにより、環境700内の複数のストレージシステム300にわたるロードバランスの分散をより良好にすることができる。
新規な協調的共用ストレージアーキテクチャによれば、ストレージシステムによって提供される更に別のディスクシェルフの挿入により、ストレージシステム環境の高速なスケーリングが更に可能になる。各ストレージシステムが、中間ネットワークデバイスに相互接続された各シェルフのディスクと通信することができるため、バックエンドデータパスの配線を変える必要がなくなる。
図8は、本発明の一実施形態による更に別のディスクシェルフ805の挿入を示す例示的ストレージ環境800を示す略ブロック図である。ここで、第3のディスクシェルフ805は、バックエンドデータパス810、815を介してハブH1、H2に相互接続される。図示の実施形態によれば、ディスクシェルフ805内のディスクは全て、ストレージネットワーク800内のどのストレージシステム300によってアドレス指定することも可能である。ストレージシステム300のうちの幾つかに関してボリュームの記憶容量を増加させなければならない場合、ディスクシェルフ805の挿入が必要になることがある。また、ディスクシェルフ805を追加することにより、他のディスクシェルフ112、114のうちの一方のディスクが故障その他のエラー状態に万が一なったときに環境800で使用するためのスペアディスクを設けることもできる。したがって、新規な協調的共用ストレージアーキテクチャによれば、ディスクをストレージシステム環境800に動的に追加することができ、それを環境内の任意のストレージシステム300によって使用することができる。
図9は、本発明の一実施形態による不揮発性ランダムアクセスメモリ(NVRAM)デバイス905の追加を示す例示的ストレージ環境900を示す略ブロック図である。図示の環境900では、NVRAM905は、ストレージシステムがデータをディスクに記憶する前に「ステージング」(記憶)するために使用される。ストレージシステムは通常、データアクセス要求が例えば不揮発性メモリやディスクのような永久的メモリに永久的に記憶されるまで、データアクセス要求に対するアクノリッジ(肯定応答))を返さない。データをディスクに直接記憶する顕著な欠点は、データをディスクに書き込むのに要する時間にある。高い負荷状況下では、ディスクサブシステムがボトルネックになって、ストレージシステムは、大量のデータがディスクに記憶されるまで待ってからでないと、クライアントからの要求に対するアクノリッジを返すことができない。本発明の一実施形態によれば、ストレージシステムによって受信されたデータアクセス要求をNVRAMデバイス905に直接記憶することができるため、ストレージシステムは、データアクセス要求に対するアクノリッジを返すことが可能になる。NVRAMへの要求の記憶は一般に、それを物理的ディスク装置に記憶するよりも高速であるから、ストレージシステムの処理能力は向上する。その後、ストレージシステム内で実行される独立したプロセスが、「遅延書き込み」処理を実施し、要求されたデータをNVRAMデバイスからディスクへ転送したり、あるいは、周期的な時間間隔でそのデータをNVRAMデバイス905から「消去」する。なお、この実施形態は、NVRAMを例として説明されているが、例えばフラッシュRAMのような、任意の適当な永久記憶装置が使用可能である。
新規な協調的共用ストレージアーキテクチャのもう1つの顕著な特徴は、環境内の種々のストレージシステム、及び記憶装置の間で、例えば、データコンテナの記憶作業のロードバランスを取ることが容易な点にある。図10は、2つのストレージシステム間でデータコンテナのロードバランスをとる手順100のステップの詳細を示すフロー図である。データコンテナは、ストレージシステムによって個別に提供されるデータボリューム、データ集合、又はその他特定量のデータを有する場合がある。データ集合の詳細については、「EXTENSION OF WRITE ANYWHERE FILE LAYOUT」と題するJohn K. Edwards他による米国特許出願第10/836,817号に記載されている。手順1000はステップ1005から始まり、ステップ1010へ続き、そこで「ソース」ストレージシステムは、ソースストレージシステムがロードバランスの所定の閾値を超えていることを検出する。この閾値は、多数の仕方で設定することができ、例えば、一単位時間あたりに特定のデータコンテナに対して行われる処理の数や、利用されているプロセッサの割合としして設定される場合がある。閾値を超えると、手順はステップ1015において、転送すべきデータコンテナを選択し、ステップ1020において、「宛先」ストレージシステムを選択する。宛先ストレージシステムは、種々の従来のロードバランス決定要素に基づいて選択することができ、例えば、未使用プロセッサの割合等に基づいて選択される場合がある。
ステップ1025において、ストレージシステムは、データコンテナの所有権を宛先ストレージシステムに移転する。ソースストレージシステムと宛先ストレージシステムがいずれも、中間ネットワークデバイスに相互接続された同じ記憶装置を使用しているため、データコンテナの所有権の移転は、データコンテナを格納しているディスクの所有権を移転することによって行われる場合もある。こうした所有権の実施については、「SYSTEM AND METHOD FOR IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE」と題する米国特許出願第10/027,457号に記載されている。そして、手順はステップ1030で終了する。新規な協調的共用ストレージアーキテクチャ環境におけるロードバランシングのもう1つの例は、「SYSTEM AND METHOD FOR REAL-TIME BALANCING OF USER WORKLOAD ACROSS MULTIPLE STORAGE SYSTEMS WITH SHARED BACK END STORAGE」と題するSwaminathan Ramany他による米国特許出願第10/992,893号にも記載されている。
もう一度まとめると、本発明は、ハブのような中間ネットワークデバイスを介して複数のディスクシェルフ、及び複数のストレージシステムの間で通信が可能な新規な協調的共用ストレージアーキテクチャに関する。この新規な協調的共用ストレージアーキテクチャを利用することで、種々の改善されたストレージ環境機能を実現することができる。1つの特徴は、スペア記憶装置のコストをストレージシステム環境内の全てのストレージシステムにわたって分散することができ、それによって、所有権のトータルコストを低減し、重複するスペアストレージプールの必要性をなくすことにある。
第2の特徴は、ストレージ環境における必要性の変化に応じて、リソースを動的に追加する機能である。例えば、ネットワークを利用してストレージシステムをクライアントに相互接続し、さらに中間ネットワークデバイスのうちの幾つかを利用することにより、ストレージシステムをストレージ環境に追加することができる。その後、新たに追加されたストレージシステムは、中間ネットワークデバイスに相互接続された全てのディスクシェルフと通信することができる。同様に、幾つかのディスクシェルフ、又はディスクを中間ネットワークデバイスに接続することにより、更に別の記憶装置を環境に挿入することができる。その後、新たに追加された記憶装置は、環境内のいずれのストレージシステムによってアドレス指定することも可能になる。
本発明の第3の特徴は、不揮発性ランダムアクセスメモリ(NVRAM)デバイスのようなバックエンドストレージデバイスをネットワーク環境に追加する機能である。バックエンドストレージデバイスは、従来のディスクドライブを利用して、より高速にデータをNVRAMに記憶するために使用される場合がある。また、それによって、各ストレージシステムにおけるNVRAMその他の使用を省略することも可能になる。新規な協調的共用ストレージアーキテクチャによって提供される第4の有利な特徴は、ロードバランス閾値を超えているストレージシステムから幾つかのデータコンテナの所有権を使用頻度の低いストレージシステムに移転することにより、1以上のストレージシステム間のロードバランスをとる機能である。
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、当然ながら、記載した実施形態の利点の一部、又は全部を維持しながら、それらの実施形態に他の変形や変更を施すことも可能である。なお、具体的には、本発明にしたがって任意数のHBAを使用することができる。また、所与の物理的ポートに任意数の仮想ポートを関連付けてもよい。本明細書に記載した手順、又はプロセスは、ハードウェアで実施しても、プログラム命令を有するコンピュータ読み取り可能媒体として実施されるソフトウェアで実施しても、ファームウェアで実施してもよく、また、それらの組み合わせによって実施してもよい。したがって、添付の特許請求の範囲の目的は、そうした変形や変更も本発明の真の思想、及び範囲に含めることにある。
前述のように、ストレージシステムクラスタ環境を示す略ブロック図である。 本発明の一実施形態によるストレージシステム環境の略ブロック図である。 本発明の一実施形態によるストレージシステムの略ブロック図である。 本発明の一実施形態によるストレージオペレーティングシステムの略ブロック図である。 本発明の一実施形態によるコマンドブロックデータ構造の略ブロック図である。 本発明の一実施形態によるスペアディスクプールからスペアディスクを選択する手順のステップの詳細を示すフロー図である。 本発明の一実施形態による更なるストレージシステムの追加を示すストレージシステム環境の略ブロック図である。 本発明の一実施形態による更なるディスクシェルフの追加を示すストレージシステム環境の略ブロック図である。 本発明の一実施形態による不揮発性ランダムアクセスメモリ(NVRAM)の追加を示すストレージシステム環境の略ブロック図である。 本発明の一実施形態によるロードバランシング手順のステップの詳細を示すフロー図である。

Claims (21)

  1. 1以上のストレージアプライアンスを使用して協調的共用ストレージアーキテクチャを構成する方法であって、
    第1のネットワークを介して1以上のクライアントを1以上のストレージアプライアンスに相互接続するステップと、
    1以上の中間ネットワークデバイスを使用して、一連のデータ記憶装置を前記1以上のストレージアプライアンスに相互接続するステップと、
    前記1以上のストレージシステムのそれぞれにターゲットデバイスドライバを設け、該ターゲットデバイスドライバにより、各ストレージシステムが、前記1以上の中間ネットワークデバイスを介して前記1以上のストレージシステムと通信できるようにすることによって、各ストレージシステムをターゲットデバイスとしてアクセスできるようにするステップと
    を含む方法。
  2. 前記中間ネットワークデバイスは、ハブからなる、請求項1に記載の方法。
  3. 前記中間ネットワークデバイスは、ルータからなる、請求項1に記載の方法。
  4. 前記1以上のデータ記憶装置は、ディスクドライブからなる、請求項1に記載の方法。
  5. 前記第1のネットワークに相互接続され、かつ前記1以上の中間ネットワークストレージデバイスのうちの1つに相互接続された更に別のストレージシステムを設けるステップを更に含み、該更に別のストレージシステムは、前記中間ネットワークデバイスに相互接続された前記記憶装置のいずれにもアクセスできるように構成される、請求項1に記載の方法。
  6. 前記1以上の中間ネットワークデバイスのうちの少なくとも1つに相互接続された更に別のデータ記憶装置を設け、それによって、前記少なくとも1つの中間ネットワークデバイスに相互接続された前記1以上のストレージシステムのいずれもが、前記データ記憶装置をアドレス指定できるようにするステップを更に含む、請求項1に記載の方法。
  7. 前記1以上の中間ネットワークデバイスのうちの少なくとも1つに相互接続された不揮発性ランダムアクセスメモリデバイスを設けるステップを更に含み、前記不揮発性ランダムアクセスメモリデバイスは、前記ストレージシステムのうちの1以上によって送信されたデータを、該データが前記記憶装置のうちの1以上に記憶される前に記憶するように構成される、請求項1に記載の方法。
  8. 前記ストレージアプライアンスは、ストレージシステムからなる、請求項1に記載の方法。
  9. 1以上のストレージアプライアンスを使用して、協調的共用ストレージアーキテクチャを構成するシステムであって、
    第1のネットワークを介して前記1以上のストレージアプライアンスに相互接続された1以上のクライアントと、
    前記1以上のストレージアプライアンスに一連のデータ記憶装置を相互接続するように構成された1以上の中間ネットワークデバイスと
    を含み、各ストレージシステムのターゲットデバイスドライバにより、各ストレージシステムをターゲットデバイスとしてアクセス可能である、システム。
  10. 前記データ記憶装置は、ディスクドライブからなる、請求項9に記載のシステム。
  11. 前記中間ネットワークデバイスは、ハブからなる、請求項9に記載のシステム。
  12. 前記中間ネットワークデバイスは、スイッチからなる、請求項9に記載のシステム。
  13. 前記中間ネットワークデバイスは、ルータからなる、請求項9に記載のシステム。
  14. 前記第1のネットワークに相互接続され、かつ前記1以上の中間ストレージデバイスのうちの1つに相互接続された更に別のストレージシステムを更に含み、該更に別のストレージシステムが、前記中間ネットワークデバイスに相互接続された記憶装置のいずれにもアクセスできるように構成される、請求項9に記載のシステム。
  15. 前記1以上の中間ネットワークデバイスのうちの少なくとも1つに相互接続された不揮発性ランダムアクセスメモリを更に含み、該不揮発性ランダムアクセスメモリは、前記ストレージシステムのうちの1以上によって送信されたデータを、該データが前記イ億装置のうちの1以上に記憶される前に記憶するように構成される、請求項9に記載のシステム。
  16. 更に別のデータ記憶装置を更に含み、該更に別のデータ記憶装置は、前記1以上の中間ネットワークデバイスのうちの少なくとも1つに相互接続され、それによって、前記少なくとも1つの中間ネットワークデバイスに相互接続された前記1以上のストレージシステムのいずれもが、前記データ記憶装置をアドレス指定可能である、請求項9に記載のシステム。
  17. 協調的共用ストレージアーキテクチャで使用されるストレージシステムであって、
    ターゲットデバイスドライバモジュールを備えたストレージオペレーティングシステムを含み、該ターゲットデバイスドライバモジュールは、前記ストレージシステムをターゲットとしてアドレス指定することを可能にし、前記ターゲットデバイスドライバモジュールは更に、前記ストレージシステムが、1以上の中間ネットワークデバイスを使用して、前記ストレージシステムに相互接続された記憶装置をアドレス指定することができるようにする、ストレージシステム。
  18. 前記中間ネットワークデバイスは、ハブからなる、請求項17に記載のストレージシステム。
  19. 前記ストレージシステムに相互接続された前記中間ネットワークデバイスのうちのいずれかにスペア記憶装置を物理的に接続することができる、請求項17に記載のストレージシステム。
  20. 前記ストレージシステムで使用するために、前記ストレージシステムに相互接続された中間ネットワークデバイスのうちのいずれかに更に別の記憶装置を接続することによって、更に別の記憶装置を追加することができる、請求項19に記載のストレージシステム。
  21. 前記ストレージオペレーティングシステムは、所定のロードバランス閾値を超えることに応じて、データコンテナの所有権を第2のストレージシステムに移転するように更に構成され、
    前記データコンテナの所有権の移転は、前記中間ネットワークデバイスに相互接続されたいずれかのストレージシステムに対して行われる、請求項17に記載のストレージシステム。
JP2007553203A 2005-01-27 2006-01-26 協調的共用ストレージアーキテクチャ Expired - Fee Related JP5026283B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US64756305P 2005-01-27 2005-01-27
US60/647,563 2005-01-27
US11/075,619 2005-03-08
US11/075,619 US8180855B2 (en) 2005-01-27 2005-03-08 Coordinated shared storage architecture
PCT/US2006/002639 WO2006081294A2 (en) 2005-01-27 2006-01-26 Coordinated shared storage architecture

Publications (2)

Publication Number Publication Date
JP2008529167A true JP2008529167A (ja) 2008-07-31
JP5026283B2 JP5026283B2 (ja) 2012-09-12

Family

ID=36972364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553203A Expired - Fee Related JP5026283B2 (ja) 2005-01-27 2006-01-26 協調的共用ストレージアーキテクチャ

Country Status (4)

Country Link
US (1) US8180855B2 (ja)
EP (1) EP1849055A2 (ja)
JP (1) JP5026283B2 (ja)
WO (1) WO2006081294A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126594A (ja) * 2015-01-06 2016-07-11 富士通株式会社 制御装置,ストレージ装置及び制御プログラム

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146522B1 (en) * 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
US7260678B1 (en) 2004-10-13 2007-08-21 Network Appliance, Inc. System and method for determining disk ownership model
US8180855B2 (en) 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
US8019842B1 (en) 2005-01-27 2011-09-13 Netapp, Inc. System and method for distributing enclosure services data to coordinate shared storage
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
US7801973B1 (en) 2006-01-19 2010-09-21 Sprint Communications Company L.P. Classification of information in data flows in a data storage infrastructure for a communication network
US7797395B1 (en) 2006-01-19 2010-09-14 Sprint Communications Company L.P. Assignment of data flows to storage systems in a data storage infrastructure for a communication network
US7895295B1 (en) 2006-01-19 2011-02-22 Sprint Communications Company L.P. Scoring data flow characteristics to assign data flows to storage systems in a data storage infrastructure for a communication network
US7788302B1 (en) 2006-01-19 2010-08-31 Sprint Communications Company L.P. Interactive display of a data storage infrastructure for a communication network
US8510429B1 (en) 2006-01-19 2013-08-13 Sprint Communications Company L.P. Inventory modeling in a data storage infrastructure for a communication network
US7447729B1 (en) * 2006-01-19 2008-11-04 Sprint Communications Company L.P. Funding forecast in a data storage infrastructure for a communication network
US7752437B1 (en) 2006-01-19 2010-07-06 Sprint Communications Company L.P. Classification of data in data flows in a data storage infrastructure for a communication network
JP4326552B2 (ja) * 2006-10-12 2009-09-09 株式会社日立製作所 バックエンドで他のストレージシステムと通信するストレージシステム
US7913051B1 (en) * 2006-12-22 2011-03-22 Emc Corporation Methods and apparatus for increasing the storage capacity of a zone of a storage system
US20080177907A1 (en) * 2007-01-23 2008-07-24 Paul Boerger Method and system of a peripheral port of a server system
US20080270480A1 (en) * 2007-04-26 2008-10-30 Hanes David H Method and system of deleting files from a remote server
US8005993B2 (en) * 2007-04-30 2011-08-23 Hewlett-Packard Development Company, L.P. System and method of a storage expansion unit for a network attached storage device
US8332375B2 (en) 2007-08-29 2012-12-11 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US10572188B2 (en) * 2008-01-12 2020-02-25 Hewlett Packard Enterprise Development Lp Server-embedded distributed storage system
US8117385B2 (en) 2008-01-23 2012-02-14 International Business Machines Corporation System and method of maximization of storage capacity in a configuration limited system
US8639808B1 (en) * 2008-12-30 2014-01-28 Symantec Corporation Method and apparatus for monitoring storage unit ownership to continuously balance input/output loads across storage processors
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US20110231602A1 (en) * 2010-03-19 2011-09-22 Harold Woods Non-disruptive disk ownership change in distributed storage systems
EP2593871B1 (en) 2010-07-16 2017-08-23 Kabushiki Kaisha Toshiba Customized of a bus adapter card
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
EP2674851B1 (en) * 2011-02-10 2018-01-17 Fujitsu Limited Storage control device, storage device, storage system, storage control method, and program for same
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8966211B1 (en) * 2011-12-19 2015-02-24 Emc Corporation Techniques for dynamic binding of device identifiers to data storage devices
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
CN103186536A (zh) * 2011-12-27 2013-07-03 中兴通讯股份有限公司 一种调度数据共享装置的方法及系统
US8898507B1 (en) * 2012-09-27 2014-11-25 Emc Corporation Methods and apparatus for disaster tolerant clusters of hypervisors as a virtualized infrastructure service
US9348717B2 (en) * 2013-07-24 2016-05-24 Netapp, Inc. Storage failure processing in a shared storage architecture
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9800484B2 (en) * 2014-03-10 2017-10-24 International Business Machines Corporation Optimizing resource utilization in a networked computing environment
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) * 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9912783B2 (en) * 2016-01-29 2018-03-06 Veritas Technologies Llc Securing internal services in a distributed environment
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US10275155B2 (en) * 2016-05-17 2019-04-30 Netapp, Inc. Methods for autonomous disk ownership assignment of nodes in a storage network with a multi-path configuration and devices thereof
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11494210B2 (en) * 2019-07-25 2022-11-08 EMC IP Holding Company LLC Maintaining management communications across virtual storage processors
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
JP2003150318A (ja) * 2001-11-12 2003-05-23 Hitachi Ltd マルチコントローラディスクアレイ
JP2003162439A (ja) * 2001-11-22 2003-06-06 Hitachi Ltd ストレージシステム及びその制御方法
JP2004523831A (ja) * 2001-02-13 2004-08-05 キャンデラ, インコーポレイテッド シリコンベースのストレージ仮想化サーバ

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156907A (en) 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4153907A (en) * 1977-05-17 1979-05-08 Vactec, Incorporated Photovoltaic cell with junction-free essentially-linear connections to its contacts
US4399503A (en) 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4598357A (en) 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4837675A (en) 1981-10-05 1989-06-06 Digital Equipment Corporation Secondary storage facility empolying serial communications between drive and controller
JPS60142418A (ja) 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
US4896259A (en) 1984-09-07 1990-01-23 International Business Machines Corporation Apparatus for storing modifying data prior to selectively storing data to be modified into a register
JPS61141056A (ja) 1984-12-14 1986-06-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 揮発性メモリの間欠エラ−検出方法
US4805090A (en) 1985-09-27 1989-02-14 Unisys Corporation Peripheral-controller for multiple disk drive modules having different protocols and operating conditions
US4761785B1 (en) 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
USRE34100E (en) 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4899342A (en) 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4864497A (en) 1988-04-13 1989-09-05 Digital Equipment Corporation Method of integrating software application programs using an attributive data model database
US4993030A (en) 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US4989206A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
WO1991004540A1 (en) 1989-09-08 1991-04-04 Auspex Systems, Inc. Multiple facility operating system architecture
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5124987A (en) 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5155835A (en) 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
US5426747A (en) 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
JP3160106B2 (ja) 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5581724A (en) 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
EP0701716B1 (en) 1993-06-03 2002-08-14 Network Appliance, Inc. Method and file system for allocating blocks of files to storage space in a RAID disk system
ATE195825T1 (de) 1993-06-03 2000-09-15 Network Appliance Inc Anordnung eines dateisystems zum beschreiben beliebiger bereiche
US5586250A (en) 1993-11-12 1996-12-17 Conner Peripherals, Inc. SCSI-coupled module for monitoring and controlling SCSI-coupled raid bank and bank environment
CN1157653C (zh) 1994-04-22 2004-07-14 索尼公司 数据传输和接收装置及方法和数据记录和再现装置及方法
US5892955A (en) 1996-09-20 1999-04-06 Emc Corporation Control of a multi-user disk storage system
US6128734A (en) 1997-01-17 2000-10-03 Advanced Micro Devices, Inc. Installing operating systems changes on a computer system
US5975738A (en) 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6078990A (en) 1998-02-06 2000-06-20 Ncr Corporation Volume set configuration using a single operational view
US6209023B1 (en) 1998-04-24 2001-03-27 Compaq Computer Corporation Supporting a SCSI device on a non-SCSI transport medium of a network
US6594698B1 (en) 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
US6976083B1 (en) 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US6785742B1 (en) 1999-02-24 2004-08-31 Brocade Communications Systems, Inc. SCSI enclosure services
US6859275B2 (en) * 1999-04-09 2005-02-22 Plain Sight Systems, Inc. System and method for encoded spatio-spectral information processing
US6654902B1 (en) 2000-04-11 2003-11-25 Hewlett-Packard Development Company, L.P. Persistent reservation IO barriers
US6598174B1 (en) 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6708265B1 (en) 2000-06-27 2004-03-16 Emc Corporation Method and apparatus for moving accesses to logical entities from one storage element to another storage element in a computer storage system
IES20010397A2 (en) 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
IES20010396A2 (en) 2000-07-06 2002-02-06 Richmount Computers Ltd Fibre channel diagnostics in a storage enclosure
US7725558B2 (en) 2000-07-26 2010-05-25 David Dickenson Distributive access controller
IES20010395A2 (en) 2000-07-26 2002-02-06 Richmount Computers Ltd Crosspoint switch for a fibre channel arbitrated loop
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6975590B2 (en) 2000-09-07 2005-12-13 Eurologic Systems Limited Fiber-channel arbitrated-loop split loop operation
US20020059492A1 (en) 2000-09-08 2002-05-16 Sabotta Michael L. Method and apparatus for adapting a card for use with multiple protocols
EP1317831A2 (de) * 2000-09-12 2003-06-11 Siemens Aktiengesellschaft Verfahren und ofdm-empfänger zum verringern des einflusses harmonischer störungen auf ofdm-übertragungssysteme
US8949471B2 (en) 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US7165096B2 (en) 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
JP2002222061A (ja) 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
US6516380B2 (en) 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US20040233910A1 (en) 2001-02-23 2004-11-25 Wen-Shyen Chen Storage area network using a data communication protocol
US6684266B2 (en) 2001-03-16 2004-01-27 International Business Machines Corporation Storage area network (SAN) fibre channel arbitrated loop (FCAL) multi-system multi-resource storage enclosure and method for performing enclosure maintenance concurrent with device operations
US7073044B2 (en) 2001-03-30 2006-07-04 Intel Corporation Method and apparatus for sharing TLB entries
US7117242B2 (en) * 2001-06-20 2006-10-03 Hewlett-Packard Development Company, L.P. System and method for workload-aware request distribution in cluster-based network servers
US6643654B1 (en) 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US6757695B1 (en) 2001-08-09 2004-06-29 Network Appliance, Inc. System and method for mounting and unmounting storage volumes in a network storage environment
US20030061491A1 (en) 2001-09-21 2003-03-27 Sun Microsystems, Inc. System and method for the allocation of network storage
US6988136B2 (en) 2001-10-19 2006-01-17 Hewlett-Packard Development Company, L.P. Unified management system and method for multi-cabinet data storage complexes
US7325051B2 (en) * 2001-11-06 2008-01-29 International Business Machines Corporation Integrated storage appliance
US6877109B2 (en) 2001-11-19 2005-04-05 Lsi Logic Corporation Method for the acceleration and simplification of file system logging techniques using storage device snapshots
US7650412B2 (en) 2001-12-21 2010-01-19 Netapp, Inc. Systems and method of implementing disk ownership in networked storage
US7296068B1 (en) * 2001-12-21 2007-11-13 Network Appliance, Inc. System and method for transfering volume ownership in net-worked storage
US7146522B1 (en) 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
US7506127B2 (en) 2001-12-21 2009-03-17 Network Appliance, Inc. Reconfiguration of storage system including multiple mass storage devices
US7165103B2 (en) * 2002-06-26 2007-01-16 Microsoft Corporation Method and system for matching network clients and servers under matching constraints
US7873700B2 (en) 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7610295B2 (en) 2002-10-01 2009-10-27 Hewlett-Packard Development Company, L.P. Method and apparatus for generating persistent path identifiers
JP4330889B2 (ja) 2003-01-20 2009-09-16 株式会社日立製作所 記憶デバイス制御装置にソフトウエアをインストールする方法、記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
US7216188B2 (en) 2003-03-29 2007-05-08 Emc Corporation Techniques for accessing devices through a set of serial buses automatically setting unique enclosure addresses and detecting non-unique enclosure addresses upon initialization
US7237021B2 (en) 2003-04-04 2007-06-26 Bluearc Uk Limited Network-attached storage system, device, and method supporting multiple storage device types
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US8301809B2 (en) 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7593996B2 (en) * 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7444396B2 (en) 2003-08-29 2008-10-28 Sun Microsystems, Inc. Transferring system identities
US20050138154A1 (en) 2003-12-18 2005-06-23 Intel Corporation Enclosure management device
US7409494B2 (en) 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US20060011224A1 (en) * 2004-07-18 2006-01-19 Chung-Chih Chen Extrusion free wet cleaning process
US7260678B1 (en) 2004-10-13 2007-08-21 Network Appliance, Inc. System and method for determining disk ownership model
US7523286B2 (en) 2004-11-19 2009-04-21 Network Appliance, Inc. System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
US8180855B2 (en) 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
JP3801615B1 (ja) * 2005-08-19 2006-07-26 酒井 信世 簡易警報装置
EP1934751B1 (en) 2005-08-25 2017-11-08 Lattice Semiconductor Corporation Smart scalable storage switch architecture
US20070088702A1 (en) 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
US7366808B2 (en) 2005-11-23 2008-04-29 Hitachi, Ltd. System, method and apparatus for multiple-protocol-accessible OSD storage subsystem
US7711683B1 (en) 2006-11-30 2010-05-04 Netapp, Inc. Method and system for maintaining disk location via homeness

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
JP2004523831A (ja) * 2001-02-13 2004-08-05 キャンデラ, インコーポレイテッド シリコンベースのストレージ仮想化サーバ
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
JP2003150318A (ja) * 2001-11-12 2003-05-23 Hitachi Ltd マルチコントローラディスクアレイ
JP2003162439A (ja) * 2001-11-22 2003-06-06 Hitachi Ltd ストレージシステム及びその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126594A (ja) * 2015-01-06 2016-07-11 富士通株式会社 制御装置,ストレージ装置及び制御プログラム

Also Published As

Publication number Publication date
WO2006081294A2 (en) 2006-08-03
US8180855B2 (en) 2012-05-15
JP5026283B2 (ja) 2012-09-12
WO2006081294A3 (en) 2006-10-19
US20060206671A1 (en) 2006-09-14
EP1849055A2 (en) 2007-10-31

Similar Documents

Publication Publication Date Title
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
US11249857B2 (en) Methods for managing clusters of a storage system using a cloud resident orchestrator and devices thereof
JP4440098B2 (ja) ファイル・アクセス・プロトコルとブロック・アクセス・プロトコルの統合サポートを提供するマルチプロトコル・ストレージ・アプライアンス
US7779201B1 (en) System and method for determining disk ownership model
US8612481B2 (en) System and method for proxying data access commands in a storage system cluster
US7529836B1 (en) Technique for throttling data access requests
US7340639B1 (en) System and method for proxying data access commands in a clustered storage system
US7437507B2 (en) Online restriping technique for distributed network based virtualization
US8090908B1 (en) Single nodename cluster system for fibre channel
US9262285B1 (en) System and method for failover using virtual ports in clustered systems
US8996455B2 (en) System and method for configuring a storage network utilizing a multi-protocol storage appliance
US8793432B2 (en) Consistent distributed storage communication protocol semantics in a clustered storage system
US20220292005A1 (en) Cross-platform replication
US20070208821A1 (en) System and method for zero copy block protocol write operations
US20070088917A1 (en) System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems
JP2005071333A (ja) クラスタ化ストレージシステムにおける信頼できるピア通信のためのシステム及び方法
US20050138184A1 (en) Efficient method for sharing data between independent clusters of virtualization switches
US8621059B1 (en) System and method for distributing enclosure services data to coordinate shared storage
US7526558B1 (en) System and method for supporting a plurality of levels of acceleration in a single protocol session
US10798159B2 (en) Methods for managing workload throughput in a storage system and devices thereof
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100827

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110831

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120522

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees