JP2015018579A - データストレージシステム、およびデータアクセス要求を処理する方法 - Google Patents

データストレージシステム、およびデータアクセス要求を処理する方法 Download PDF

Info

Publication number
JP2015018579A
JP2015018579A JP2014212348A JP2014212348A JP2015018579A JP 2015018579 A JP2015018579 A JP 2015018579A JP 2014212348 A JP2014212348 A JP 2014212348A JP 2014212348 A JP2014212348 A JP 2014212348A JP 2015018579 A JP2015018579 A JP 2015018579A
Authority
JP
Japan
Prior art keywords
data
request
storage
data storage
controller
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
JP2014212348A
Other languages
English (en)
Other versions
JP5855200B2 (ja
Inventor
オブリエン,ジョン・ティモシー
Timothy O'brien John
ミリロ,マイケル・スティーブン
Steven Milillo Michael
デター,ジョージ・フランクリン,ジュニア
Franklin Detar George Jr
マディソン,カール・トーマス,ジュニア
Thomas Madison Carl Jr
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.)
Oracle America Inc
Original Assignee
Oracle America Inc
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 Oracle America Inc filed Critical Oracle America Inc
Publication of JP2015018579A publication Critical patent/JP2015018579A/ja
Application granted granted Critical
Publication of JP5855200B2 publication Critical patent/JP5855200B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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]
    • 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/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ZFSファイルシステムを作成またはサイズ変更するのに必要な時間および労力は、他のいくつかのシステムにおける容量操作よりも、新しいディレクトリを作成する時間および労力により近くなる。【解決手段】データストレージシステムは、複数のサーバと、これらのサーバのうち1つのサーバ上で各々展開された複数の外部インターフェイスプロバイダと、これらのサーバのうち1つのサーバ上で各々展開された複数のデータストレージコントローラとを含む。プロバイダの各々は、データアクセス要求を受信して、コントローラのうち要求を満たすことのできる1つのコントローラを識別し、識別されたコントローラに要求を転送するよう構成される。システムは、さらに、サーバから独立した複数のデータストレージモジュールを含む。プロバイダ、コントローラおよびモジュールは互いと通信する。【選択図】図1

Description

背景
コピー・オン・ライト(「COW」(Copy-on-write))はコンピュータプログラミングにおいて用いられる最適化戦略である。初めのうちは識別不可能なリソースの複数のリクエスタは、同じリソースに対する所与のポインタとなる。この戦略は、リクエスタがリソースのそのコピーを変更するよう試みるまで維持される。次いで、専用のコピーを作成して、如何なる変更も他のリクエスタから見えなくなるようにする。このような専用のコピーの作成はリクエスタにとってトランスペアレントである。リクエスタがリソースのコピーを変更しようとしない場合、専用のコピーは作成されない。
仮想メモリオペレーティングシステムはCOWを用い得る。あるプロセスでそれ自体のコピーを作成する場合、プロセス(またはそのコピー)によって変更され得るメモリ内のページはCOWと印付けされる。1つのプロセスでメモリを変更する場合、オペレーティングシステムのカーネルがオペレーションを遮ってメモリをコピーして、一方のプロセスのメモリ内の変更が他方のプロセスのメモリには見えなくなるようにしてもよい。
COWはまた、動的なメモリ割当を実行するためにCおよびC++規格ライブラリにおいて提供されるcalloc関数で用いられてもよい。物理メモリのページはたとえばゼロで満たされてもよい。メモリが割当てられた場合、戻されるページはすべてゼロのページを指していてもよく、COWと印付けされてもよい。このため、データが書込まれるまで、処理に割当てられた物理メモリの量は増えない。
メモリ管理ユニット(MMU:memory management unit)は、COWを実現するために、読出し専用としてのプロセスのアドレス空間におけるいくつかのページを処理するよう指示され得る。データがこれらのページに書込まれた場合、MMUは、カーネルが処理すべき例外を発生させる可能性がある。次いで、カーネルは、物理メモリにおいて新しい空間を割当てて、書込まれたページを物理メモリにおけるその新しい位置に対応させる。
COWは、メモリの効率的な使用を可能にし得る。物理メモリの使用量は、データがそこに記憶される場合にのみ増大する。
カーネルの外部では、COWはライブラリ、アプリケーションおよびシステムコードにおいて用いられてもよい。たとえば、C++規格ライブラリによって与えられるストリングクラスはCOWの実現を可能にする。COWはまた、仮想ディスクストレージ用のBochs、QEMUおよびUMLなどの仮想化/エミュレーションソフトウェアにおいて用いられてもよい。これにより、(i)複数の仮想機械(VM:virtual machines)が同じハードディスクイメージに基づき得る場合に所要のディスク空間を減らし、(ii)ディスク読出がRAMにおいてキャッシュされ、後続の読出がキャッシュの外側にある他のVMに対して機能し得るのに応じて性能を高め得る。
COWは、データベースサーバ上でインスタントスナップショットのメンテナンスに用いられてもよい。インスタントスナップショットは、基礎をなすデータが更新されると、データの変更前コピーを記憶することによってデータベースについての表示を静止させたまま保存する。インスタントスナップショットはテスト依存またはモーメント依存のレポートに用いられる。COWはまた、論理ボリューム管理によって与えられるスナップショットのために、基礎をなすメカニズムとして用いられてもよい。
COWは、ウェアレベリングを必要とするかまたは物理的に追記型光ディスクである媒体上での読出/書込ストレージをエミュレートするのに用いられてもよい。
ZFSは、ソラリス(Solaris)オペレーティングシステム用にサン・マイクロシステムズ(Sun Microsystems)社によって設計されたファイルシステムである。ZFSの特徴は、高い記憶容量、ファイルシステムおよびボリューム管理の概念の統合、スナップショットおよびCOWクローン、オンライン保全性のチェックおよび修復、ならびにRAID−Zのためのサポートを含み得る。
単一のデバイス上に常駐し、このためボリュームマネージャが2つ以上のデバイスを用いることを必要とし得る従来のファイルシステムとは異なり、ZFSファイルシステムはzpoolと称される仮想ストレージプールの上に構築される。zpoolは、それら自体がブロックデバイス、すなわちファイル、ハードドライブ区画またはドライブ全体、で構成される仮想デバイス(vdev)で構成される。
vdev内のブロックデバイスは、利用可能な空間および必要に応じて、さまざまな方法で構成され得る。すなわち、2つ以上のデバイスのミラー(RAID 1)として、3つ以上のデバイスの(パリティに関するRAID 5と同様の)RAID−Zグループとして、または、4つ以上のデバイスの(パリティに関するRAID 6と同様の)RAID−Z2グループとして、(RAID 0と同様に)非冗長的に構成され得る。すべてのvdevsの記憶容量は、zpoolにおけるすべてのファイルシステムインスタンスにとって利用可能であり得る。
ZFSはCOWトランザクションのオブジェクトモデルを用いる。ファイルシステム内のブロックポインタはすべて、ブロックの読出し時に確認される256ビットチェックサムの目標ブロックを含んでいてもよい。アクティブデータを含むブロックは、所定の位置には上書きされない。代わりに、新しいブロックが割当てられ、変更されたデータがそこに書込まれると、これを参照するいずれのメタデータブロックも同様に読出され、再度割当てられ、書込まれる。このプロセスのオーバーヘッドを減じるために、複数回の更新がトランザクショングループにグループ化されてもよい。同期書込みのセマンティクスが必要であればインテントログが用いられてもよい。
ZFSが新しいデータを書込んだ場合、古いデータを含むブロックが保持されて、ファイルシステムのスナップショットバージョンを維持することが可能となり得る。スナップショットを構成するデータがすべて既に記憶されているので、ZFSスナップショットが直ちに作成され得る。これらのZFSスナップショットはまた、不変のデータがいずれもファイルシステムおよびそのスナップショットの間で共有されるので、空間効率が良くなり得る。
書込み可能なスナップショット(「クローン」)も作成可能であり、結果として、1セットのブロックを共有する2つの独立したファイルシステムが得られるだろう。クローンファイルシステムのうちのいずれかに変更が加えられると、それらの変更を反映するように新しいデータブロックが作成され得る。如何に多くのクローンが存在するとしても、不変のブロックはいずれも共有され続ける。
ZFSは、スループットを最大限にするようすべてのデバイスにわたって動的なストライピングを採用する。付加的なデバイスがzpoolに追加されると、それらを含むようにストライプ幅が自動的に広がる。このように、プールにおけるディスクがすべて用いられると、それらのディスクにわたって書込み負荷のバランスがとられる。
ZFSは、最大128キロバイトまでの可変サイズのブロックを用いる。現在利用可能なコードは、いくつかの作業負荷が大きなブロックで十分に動作し得ない場合に用いられる最大のブロックサイズをアドミニストレータが調整することを可能にする。
データ圧縮が可能であれば、可変ブロックサイズが用いられる。ブロックをより小さなブロックサイズに適合させるよう圧縮することができる場合、ディスク上でより小さなサイズを用いて、使用されるストレージを減らし、I/Oスループットを改善させる(但し、圧縮動作および復元動作のためにCPU使用量が増えるという犠牲を払うこととなる)。
ZFSにおいては、ストレージプール内でのファイルシステム操作が、従来のファイルシステム内での容量操作ほど複雑ではない可能性がある。たとえば、ZFSファイルシステムを作成またはサイズ変更するのに必要な時間および労力は、他のいくつかのシステムにおける容量操作よりも、新しいディレクトリを作成する時間および労力により近くなる。
概要
データストレージシステムは、複数のサーバと、これらのサーバのうち1つのサーバ上で各々展開される複数の外部インターフェイスプロバイダと、これらのサーバのうちの1つのサーバ上で各々展開される複数のデータストレージコントローラとを含む。プロバイダの各々は、データアクセス要求を受信し、コントローラのうち要求を満たすことのできる1つのコントローラを識別し、識別されたコントローラに要求を転送するよう構成される。システムはさらに、サーバから独立した複数のデータストレージモジュールを含む。プロバイダ、コントローラおよびモジュールは互いと通信する。コントローラの各々は、モジュールのうち少なくとも1つのモジュールにおけるデータ内容の一部を排他的に管理し、少なくとも1つのモジュールにおけるデータ内容の当該一部にアクセスすることによって、プロバイダから受信したデータアクセス要求を満たす。
データアクセス要求を処理する方法は、サーバ上で展開された外部インターフェイスプロバイダにおいて、データアクセス要求を受信するステップと、別のサーバ上で展開され要求を満たすことのできるデータストレージコントローラを識別するステップと、識別されたコントローラに要求を転送するステップとを含む。識別されたコントローラは、サーバから独立した少なくとも1つのデータストレージモジュールにおけるデータ内容の一部を排他的に管理する。当該方法はさらに、識別されたコントローラにおいて、転送された要求を受信するステップと、受信した要求に応答して、少なくとも1つのモジュールにおけるデータ内容の当該一部にアクセスして要求を満たすステップとを含む。
データストレージシステムは、複数のサーバと、これらのサーバのうち1つのサーバ上で各々展開された複数の外部インターフェイスプロバイダと、これらのサーバのうち1つのサーバ上で各々展開された複数のデータストレージコントローラとを含む。プロバイダの各々は、データアクセス要求を受信し、コントローラのうち要求に対処することのできる1つのコントローラを識別し、識別されたコントローラに要求を配送するよう構成される。システムはさらに、サーバから独立した複数のデータストレージモジュールを含む。モジュールのうち少なくとも1つは、書込データアクセス要求に含まれるデータをバッファして、データの不揮発性ストレージを提供するよう構成される。モジュールのうち少なくとも別の1つのモジュールは、上記少なくとも1つのモジュールよりも実質的に大きな容量を有する。プロバイダ、コントローラおよびモジュールは、リモートダイレクトメモリアクセスプロトコルを介してピアとして互いと通信する。コントローラの各々は、モジュールのうち少なくとも1つにおけるデータ内容の一部を排他的に管理し、プロバイダからデータアクセス要求を受信し、要求の受信に応答して少なくとも1つのモジュールにおけるデータ内容の当該一部にアクセスして要求に対処するよう構成される。
本発明に従った実施例が例示および開示されるが、このような開示は本発明を限定するものと解釈されるべきでない。さまざまな変更例および代替的な設計が本発明の範囲から逸脱することなく実施され得ることが予想される。
ストレージシステムの実施例を示すブロック図である。 ストレージシステムの別の実施例におけるデータフローを示すブロック図である。 グローバル管理システムの実施例におけるデータフローを示すブロック図である。
詳細な説明
ストレージアレイの性能は、磁気ディスクドライブの機械的待ち時間、半導体メモリのコストおよび揮発性、ならびに、性能、容量および相互接続のスケーリングに本質的に制限された集中化されたアーキテクチャを含むいくつかの要因によって制限される可能性がある。
不揮発性半導体メモリの技術、たとえばNANDフラッシュは、性能および電力がビット毎のロー容量およびコストに優先される用途では磁気ディスクに取って代わられる可能性がある。この技術の既存の実現例は、磁気ドライブと同じコマンドセット、同じ通信プロトコル、およびしばしば同じ物理的寸法を用いることによって、磁気ディスクの実現例を模倣してきた。しかしながら、この明細書中に開示されるいくつかの実施例が得られる前提として挙げられることは、フラッシュ技術の利点、たとえば、機械的待ち時間がないこと、並行アクセスや、その不利点の軽減、たとえば、書込み前の消去、書込みサイクルの消耗の制限などが、磁気ディスク用に設計された分割および相互接続方式では達成され得ないことである。
既存の高性能のストレージプラットフォームは、集中化され共有された制御および半導体キャッシュに依拠する。この設計上の選択により、磁気ディスクの待ち時間が軽減され、それらのアーキテクチャの規定時に低い帯域幅の相互接続技術が利用可能となる。しかしながら、この設計上の選択により、結果として、エントリレベルシステムのコストと、達成され得る最大サイズおよび性能との間に妥協が生じる可能性がある。
高性能コンピュータおよび好適なファイルシステム技術のコンテキスト内におけるNANDフラッシュおよび現代の低レイテンシ/高帯域の相互接続規格を用いることにより、この明細書中に開示されるいくつかの実施例は、1秒当たり業界最高レベルの小ブロック入出力操作(IOPS)、ストレージシステム毎の総IOPS、IOPS毎のコスト、IOPS毎の床面積、およびIOPS毎の電力についての可能性を有し得る。
多くのトランザクション処理およびデータベースシステムは、極めて高速で、小ブロックのランダムなデータアクセス要求を生成する。これらのアプリケーションを実行するプロセッサの半導体技術が改善するのに従って、この速度は高くなる。ディスク容量および瞬間的なデータレートが増大し続ける。しかしながら、機械的探索および回転待ち時間の遅延は比較的一定のままであるため、ディスクIOPSの数の増加が緩やかになる。これにより、さらにより大きくより高価なディスクシステムを採用する必要が生じる可能性がある。しかしながら、ディスクドライブで達成できるよりも高いアクセス密度を提供するシステムは、適切な代替例となり得る。フラッシュメモリでは、ディスクの場合よりも、ストレージのGB毎にサポートされるI/Oレートがより高くなる(または、アクセス密度がより高くなる)。フラッシュメモリではまた、RAM技術の場合よりも、ストレージのGB毎のコストがより低くなる可能性がある。この明細書中に開示されるいくつかの実施例は、これらの属性を利用する可能性があり、このため、所望される企業クラスの信頼性、利用可能性およびサービス保守性を提供するスケーラブルでコスト効率の良いストレージシステムを提供し得る。
従来のディスクドライブは、フラッシュメモリ技術を活用するためにソリッドステートディスク(SSD:Solid-State Disks)と置換えられる可能性がある。これにより、I/Oレートが改善される可能性がある。しかしながら、これらの高速SSDは、現在ではディスクドライブの低いI/Oレートによって隠されているシステムの障害を晒す可能性がある。コントローラにおけるディスクコマンドプロトコルスタックのオーバーヘッドおよびSSDにおけるディスクコマンド/状態処理時間は、小ブロック転送のためのデータ転送時間の発展を妨げる可能性がある。ディスクコマンドプロトコルはまた、フラッシュコントローラからデータ使用情報を隠し、制御部から消耗および故障情報を隠す可能性がある。
ディスクアクセスハードウェアおよびディスクドライブの相互接続は、コントローラのキャッシュ付近で、ディスクコントローラ内に位置するフラッシュメモリハードウェアと置換えられてもよい。高性能設計では、コントローラ内にフラッシュメモリを置く可能性がある。これは、フラッシュストレージの量を制限する可能性がある。フラッシュメモリの位置にかかわらず、従来のディスク管理プロセスは、フラッシュメモリの固有の要件に対処するようには見えない。ホストディスクアドレスが実際の「ディスクドライブ」(フラッシュストレージ)に静的にマッピングされると、ホストの書込みアクセスパターンにおけるホットスポットが、関連するフラッシュストレージの早すぎる消耗を招く可能性がある。フラッシュストレージへのわずかなランダム書込みにより、フラッシュブロック全体を空けるように、フラッシュコントローラが強制的にデータのページを周囲に移動させ得る。これにより、消去可能なフラッシュメモリの最小部分が得られる。これは性能に影響を及ぼし、耐用年数を低減させる可能性がある。
この明細書中に開示されるいくつかの実施例は、現在のディスクベースのアーキテクチャのシステム障害のうち少なくともいくつかを回避し、基礎をなすフラッシュ技術の限界に対処する性能および価値を有するスケーラブルなストレージシステムをもたらし得る。これらの実施例は以下を含み得る。
(i)複数の独立したZFSインスタンス。その各々は容量全体のうち一部を管理することに関与し得る。ZFSインスタンスは、ホストインターフェイスポートをも含むサーバのプールにわたって広がり得る。
(ii)受信ポートから、要求されるブロックに関与するZFSインスタンスへの各I/O要求のリダイレクション。一例においては、これは、1つのI/Oサーバ上のホストポートから別のI/Oサーバ上のZFSインスタンスへのリダイレクションである。このリダイレクションステージは、いずれのポートからも容量のいずれの部分に到達することを可能にし得る。次いで、ZFSインスタンスは、フラッシュおよび/または不揮発性RAM(NVRAM)に対して必要な直接トランザクションを発行して要求を完了し得る。次いで、確認応答またはデータが発信元ポートを介してホストに転送し返され得る。
(iii)たとえば、フロントエンドポート、ZFSインスタンス、NVRAMおよびフラッシュをともに繋ぎ得る低レイテンシのメモリマップドネットワーク。このネットワークは、サーバ間ではInfiniBandで、そしてサーバとストレージユニットとの間では、I/Oサーバおよびストレージユニット内のPCI Expressで実現され得る。サーバとストレージユニットとはピアとして通信し得る。リダイレクショントラフィックおよびZFS/メモリトラフィックはともに同じ構成を用いてもよい。
(iv)1つ以上のストレージユニットが、たとえば、フラッシュおよびNVRAMをともに含み得る。これらのストレージユニットは、メモリカード、電源、冷却および相互接続のホットスワッピングおよび内部冗長性との高い可用性が得られるよう設計され得る。InfiniBand外部相互接続は、2つのコンセントレータボードによって2つの独立したPCI Expressツリーに変換され得る。システムは、こうして、フラッシュだけでなくNVRAMにも高速でアクセスし得る。RAMは、電力の損失時に専用のフラッシュにバックアップすることによって不揮発性にされ得る。フラッシュカードとNVRAMカードとを組合せるよう構成することができ、ともに、同じコネクタおよびボードプロファイルを用い得る。
(v)グローバルフラッシュのウェアレベリング、構成変更、および障害回復のために、容量がZFSインスタンス間で再び割当てられなければならない場合に介入する擬似静的な「ロータッチ(low touch)」アプローチでストレージシステムの動作を監視し得るグローバル管理機能(データストレージシステムマネージャ)。
個々のZFSインスタンス間で容量を分割する「分割および征服(divide and conquer)」戦略は、性能、接続性および容量の高度なスケーラビリティを可能にし得る。より多くのサーバを水平に追加し、ZFSインスタンス毎により少ない容量および/またはサーバ毎により少ないZFSインスタンスを割当てることにより、付加的な性能が実現され得る。性能はまた、より高速のサーバを選択することによって垂直に基準化され得る。ホストポートは、サーバに利用可能なスロットを満たし、次いで付加的なサーバを追加することによって追加され得る。付加的なストレージユニットを追加し、新しい容量をZFSインスタンスに割当てることによって付加的な容量が実現され得る。
ここで、図1を参照すると、ストレージシステム10は、複数のI/Oサーバ12n(12a、12bなど)、たとえばブレードまたはスタンドアロンのサーバ、複数のスイッチユニット14n(14a、14bなど)、たとえばInfiniBandの拡張可能なスイッチユニット、および、1つ以上のストレージユニット16n(16a、16bなど)を含み得る。他の好適な構成も実現可能である。外部インターフェイスプロバイダ18n(18a、18bなど)、データストレージコントローラ20n(20a、20bなど)およびグローバル管理システム(データストレージシステムマネージャ)21n(21a、21bなど)がサーバ12nの各々上で展開され得る(プロバイダ18nおよびコントローラ20nは、当然、ハードウェアおよび/またはソフトウェアにおいて実現され得る)。
たとえば、図1のストレージユニット16nは、たとえばPCI Expressを介してコンセントレータボード26n(26a、26b)に接続された複数のフラッシュボード22n(22a、22bなど)およびNVRAM24n(24a、24b)を含み得る。ストレージユニット16nの各々は、それ自体の内部冗長電源および冷却システムを備えた一体型のラックマウント式ユニットであってもよい。メモリボード、コンセントレータボード、電源および冷却などの能動部品はホットスワップ可能であり得る。
図1の実施例においては、プロバイダ18n、コントローラ20nおよびボード22n、24nは、スイッチユニット14nを介して伝達されるリモートデイレクトメモリアクセス(RDMA)プロトコルを介してピアとして通信し得る。I/Oサーバ、たとえばI/Oサーバ12a、はこのRDMAプロトコルを用いてボード22n、24nと通信し得る。加えて、I/Oサーバ12nの各々は、RDMAプロトコルを用いて他のI/Oサーバ12nのすべてと通信し得る。しかしながら、如何なる好適な通信方式が用いられてもよい。
プロバイダ18nは、データアクセス要求を受信し(読取るかまたは書込み)、たとえばマッピングにより(異なるサーバ上で展開され得る)要求を処理することのできるコントローラ20xを識別し、識別されたコントローラ20xに要求を配送することができる。
コントローラ20nは各々、ボード22n、24nのうち少なくとも1つにおけるデータ内容の一部を排他的に管理し、それらのデータ内容にアクセスすることによってプロバイダ18nから受信したデータアクセス要求を満たし得る。
ここで、同様の参照番号を有する要素が図1の記載と同様である図2を参照すると、外部インターフェイスプロバイダ118aはホストからデータアクセス要求を受信し得る。プロバイダ118aは、マッピングなどを介して、要求を満たすことのできる(この例においては、サーバ112b上で展開される)コントローラ120xを識別し得る。次いで、プロバイダ118aは、識別されたコントローラ120bに対して要求をリダイレクトし得る。識別されたコントローラ120bは、リダイレクトされた要求を受信し、次いで、これに応答して、要求を満たし得るボード122n、124nのいずれかにおけるデータにアクセスし得る。(データストレージモジュール用のフラッシュメモリの使用を詳細に説明してきたが、磁気ディスクを含む他のメモリ技術が用いられてもよい。)
いくつかの実施例においては、以下のとおりである。
(i)2つ以上のサーバがフォールトトレランスを与え得る。1つのサーバが故障した場合、別のサーバが、故障したサーバによって行なわれていた作業を引継ぎ得る。同様に、2つ以上のデータストレージモジュールがフォールトトレランスを与え得る。
(ii)NVRAMボードは、フラッシュメモリボードよりも高速(より低いアクセスレイテンシ)でデータにアクセスし得るが、容量がより低くなる(このため、ストレージのビット毎のコストが高くなる)という犠牲が生じる。
(iii)サーバは、以下のサービスのうち1つ以上を提供し得る。ホストインターフェイス接続、適切なサーバへのデータアクセス要求の配送、データアクセス要求の処理、1セットのデータストレージモジュールおよび/または不揮発性メモリカードに記憶されたデータの管理、個々のサーバに対するデータおよび記憶空間の割当ての管理、グローバルウェアレベリングのための1つのサーバから別のサーバへのデータの移行、作業負荷のバランスのより適切な均衡化、または、システム構成変更、構成要素の消耗もしくは構成要素の故障および交換への対処。
(iv)サーバおよびストレージ(たとえば、データストレージモジュールおよび/または不揮発性メモリカード)は、サーバ間、サーバとストレージとの間、および/またはストレージ間での通信を可能にする相互接続構造を介して互いと通信し得る。
(v)データの特定のブロックについてのすべてのI/Oアクセス要求を、そのデータのブロックの記憶に関与するサーバに配送するプロセスは、各々のホストI/O要求に関してサーバ同士の同期を必要とすることなく、すべてのホストインターフェイスにわたって記憶されたデータについての一貫したビューを提供し得る。
(vi)データストレージモジュールインターフェイスは別個のセットに分割されてもよく、各々のセットが唯一のサーバによって用いられ得る。このようにインターフェイスを分割することにより、2つ以上のサーバが単一のインターフェイスを共有する必要がなくなり、これらのサーバが単一のインターフェイスを使用する場合の調整が不要になり得る。単一のデータストレージモジュールで1つのインターフェイスまたは複数のインターフェイスが提供され得る。
(vii)各々の不揮発性メモリカードにおけるデータストレージは別個の領域に細分されてもよく、単一のサーバが1つの領域を排他的に使用し得る。これにより、複数のサーバが、不揮発性メモリカードによって提供される記憶空間を使用する際の調整を行なう必要なしに、単一の不揮発性メモリカード内にデータを記憶することが可能となり得る。
(viii)データストレージモジュールおよび/または不揮発性メモリカードに記憶されたデータを管理するプロセスは、データストレージモジュールに書込まれる更新されたデータを再位置決めし、各々のデータブロックのうち直前に書込まれたインスタンスの位置を識別するマッピング情報を維持するステップを含む。このプロセスは、各々のデータストレージモジュール内の記憶空間にわたって書込み動作を分散させ、複数のデータストレージモジュールにわたって書込み動作を分散させ得る。書込み動作をこのように分散させることにより、ウェアレベリングが提供され得る。このウェアレベリングは、消去され繰り返しプログラムされた後にデータストレージセルが消耗してしまうフラッシュメモリデバイスにとっては重要であり得る。
(ix)相互接続構造は、ディスクコマンドプロトコルではなく、メモリブロック転送プロトコル、たとえば、InfiniBandおよび/またはPCI Expressを採用し得る。これは、サーバおよび不揮発性メモリカードの両方におけるディスクコマンドプロトコルスタックのオーバーヘッドを排除するので、不揮発性メモリカードへのアクセスには有益であり得る。データストレージモジュールはRDMAプロトコルを用いて、メモリブロック転送プロトコル相互接続を効率的に活用し、かつ、記憶媒体のニーズに最適に適合させるためにデータ転送動作をスケジューリングする柔軟性をデータストレージモジュールに与え得る。
フラッシュベースのストレージは、ディスクの機械的遅延をなくし、かつ、多数のフラッシュチップを同時にアクティブに維持することによって、高いアクセス密度の必要性に対処し得る。これにより、ディスクと比べて、ストレージのGB毎に劇的により高いI/Oレートが得られる可能性がある。低オーバーヘッドのメモリアクセスプロトコルを用いて低レイテンシの相互接続構造を介してフラッシュストレージにアクセスし、フラッシュストレージユニット毎に複数のフラッシュコントローラを提供することにより、アクセスされるフラッシュチップの数を最大にして、高容量SSDよりもはるかに高いアクセス密度を平行にもたらし得る。
共用リソースの使用を調整することにより、I/O要求を実行するプロセスにオーバーヘッドが追加され得る。ディスクアクセス時間に対して相対的に小さくなり得るオーバーヘッドは、フラッシュアクセス時間と比べて極めて重要になり得る。中央のキャッシュ、さまざまなデータ経路およびディスクインターフェイスへのアクセスを共有するシステムにおいては、これらおよび他の共用リソースの使用を調整するには、ロッキングおよび連続した実行が必要になる可能性がある。これにより、コントローラにおける重要なタイミング経路に遅延が追加される可能性があり、これらの遅延は、システムのサイズが増大し、リソース利用のレベルが高まるのに応じて大きくなる可能性がある。重要なタイミング経路からこれらの調整遅延をなくすために、この明細書中に開示されるいくつかのコントローラアーキテクチャは、ZFSの独立したインスタンスを実行する複数の独立したサーバを用い得る。システムのストレージはこれらのZFSインスタンスにわたって広がっているため、各々のZFSインスタンスは、フラッシュストレージのその割当てられた部分およびそのキャッシュの管理について単独で関与することとなる。次いで、サーバは、各々の(ホスト)アクセス要求をZFSの適切なインスタンスに配送し、結果として得られるデータおよび完了状態をこのZFSインスタンスから発信元ホストポートに配送し返し得る。このようなZFSインスタンスに対するストレージおよび作業負荷の割当ては、たとえば何百万ものI/O動作の期間にわたって変化しないままであるかもしれない。時折、サーバ上で実行されるグローバル管理サービスは、たとえばウェアレベリングまたは負荷バランシングのために、必要に応じて、1つのZFSインスタンスから別のZFSインスタンスにデータおよび作業負荷を移動させてもよい。
サーバは、フォールトトレラントであり停電中にデータを保存するストレージに対して、小ブロックの書込みトラフィックを直ちにコミットすることができなければならないかもしれない。フラッシュストレージユニットにおけるNVRAMモジュールは、サーバにとってワード書込み可能なメモリであるように見える可能性がある。これらのNVRAMモジュールへのミラーリング書込みにより、小ブロックの書込みトランザクションを行なう最も高速な手段が提供され、これにより、コントローラが、書込み動作が終了したとホストに報告することができるようになる。
多くのプログラム/消去サイクル後、フラッシュメモリセルが消耗して、セルに記憶されたデータを保持する能力を失う可能性がある。フラッシュメモリの頻繁な書込み部分のせいで起こる早すぎる消耗を防ぐために、ストレージシステムの実施例ではウェアレベリング戦略を採用してもよい。これは、フラッシュメモリ位置に対するホストディスクアドレスの動的なマッピングを必要とする可能性がある。(たとえば、ディスクアドレスをフラッシュメモリページに変換する単一の大きなマップが十分にスケーリングしていない可能性がある。)これらの実施例は、たとえば、フラッシュ管理階層におけるさまざまなレベルで作用する3つのウェアレベリング戦略を採用してもよい。一例として、各々のZFSインスタンスは、完全なRAIDストライプを書込むことができるようにCOWを用いて、そのZFSインスタンスが所有するフラッシュストレージの領域にわたって自動的に書込みトラフィックのバランスをとってもよい。フラッシュチップと同様に、各々のフラッシュメモリコントローラは、それ自体の小さなマッピングテーブルを管理しながら、それが制御するフラッシュチップのためのウェアレベリングを実行してもよい。いくつかの実施例がZFSのインスタンスによって処理される書込み動作における長期的な不均衡を可能にした場合、最もアクティブなZFSインスタンスが所有するフラッシュストレージがあまりにも早く消耗する可能性がある。これを防ぐために、システムのグローバル管理サービスは、書込まれたデータをZFSの1つのインスタンスから別のインスタンスへと頻繁に移行させて、グローバルな書込みのバランスをとってもよい。複数の独立したZFSインスタンスによって管理されるフラッシュストレージの別個のプールを用いる場合の性能およびスケーラビリティの利点は、データ移行時に時折起こるオーバーヘッドに勝っている可能性がある。
フラッシュメモリセルはソフトエラーを被る可能性がある。フラッシュチップは余分なセルをもたらす可能性があり、ここに、フラッシュコントローラが最も頻繁なエラー事例を改善するエラー訂正コードを記憶し得る。各々のZFSインスタンスは、複数のフラッシュストレージボードにわたってそのデータを広げてもよく、これにより、訂正不可能なエラー、フラッシュチップの故障またはフラッシュストレージボード全体の交換のせいで失われるデータを回復させることができるようになる。ZFSの多くのインスタンスを平行に実行させることを可能にするために、各々のZFSインスタンスは、いずれかの1つのフラッシュストレージボードにおけるストレージの一部だけにアクセスし、この一部だけを管理する役割を果たし得る。これにより、ZFSインスタンスがそれらのアクセスを調整する時間を費やす必要がなくなるように、各フラッシュストレージボードが複数の独立したアクセス制御を行なうことが必要になる可能性がある。
上述のとおり、データストレージシステムのいくつかの実施例に付随するホストによって生じる書込み動作は、ストレージシステムが保持するすべてのデータにわたって不均一に分散される可能性がある。ZFSの1つのインスタンスに割当てられたデータのうちいくつかの部分は、他のZFSインスタンスによって管理されるデータの残りの部分よりもはるかに頻繁に書込まれる可能性がある。これにより、そのZFSインスタンスによって管理されているフラッシュストレージが時期尚早に消耗する可能性がある。
ウェアレベリングは、一般にSSD内で実行され得る。SSDを採用するデータストレージシステムにおいては、このウェアレベリングは、特にストレージシステムがSSDアドレスへのホストデータアドレスの静的なマッピングを用いる場合、またはSSDが独立したファイルシステムによって管理される場合、SSD間の書込み動作における不均衡に対処し得ない。このため、大規模なストレージシステム内において、このシステム内の他のSSDよりもかなり前に、いくつかのSSDが消耗してしまう可能性がある。
Lustreなどの分散されたデータストレージシステムにおいては、データストレージシステム内におけるコンピュータに対するホストアドレス空間の一部の割当てが静的に行われる可能性がある。データにアクセスするホストの能力を阻害することなく、1つのコンピュータから別のコンピュータにデータを移動させるための準備はなされていない。この明細書中に開示されるいくつかの実施例においては、グローバル管理システムは、使用情報、たとえば、データストレージ消耗率、作業負荷分散の歪み(負荷分散のバランスが取られる程度、歪みが小さければ小さいほど、負荷バランシングがより均一になり、歪みが大きければ大きいほど、負荷バランシングが不均一になる、など)、書込み動作、および残りの耐用年数などを、データストレージシステム内の独立したファイルシステムから集め得る。次いで、この情報を用いて、データを1つのファイルシステムから別のファイルシステムにいつ移動させるかと、どのデータを移動させるかとについて決定し得る。さらに、この情報を用いてデータストレージシステムの構成を動的に調整して、作業負荷分散のデータストレージ消耗率および歪みを制御し得る。
グローバル管理システムの実施例は、たとえば、システム構成が最初に規定されるときにデータの最初の配置を決定し得る。次いで、ファイルシステムおよび/もしくはストレージユニットに新しいデータストレージを割当てることにより、ファイルシステムおよび/もしくはストレージユニットから未使用のデータストレージを除去することにより、または、1つのファイルシステムおよび/もしくはストレージユニットから別のファイルシステムおよび/もしくはストレージユニットに(もしくはストレージユニット内に)データを移動させることにより、ストレージシステム構成要素の追加もしくは除去に起因するかまたは構成要素の故障および交換に起因する構成の変化に対応し得る。グローバル管理システムのいくつかの実施例は、データストレージシステム内のサーバ/コンピュータのうち1つ以上の上で実行させるソフトウェアおよび/またはハードウェアとして実現されてもよい。
グローバル管理システムの実施例は、以下の動作のうち1つ以上を実行し得る。すなわち、ストレージシステムのホストアクセスアドレス空間を区画に分割し、個々のファイルシステムインスタンスにこれら区画を割当てる;システム内のデータストレージ空間を区画に分割し、これら区画を個々のファイルシステムに割当てて、優れたシステム性能をもたらし、かつ、データストレージデバイスの故障または(データストレージシステム内またはデータストレージシステム外の)他の故障に起因する性能への影響およびデータ損失のリスクを制限する;データアクセス要求が適切なファイルシステムインスタンスに配送され得るように、システムのアドレス空間のどの部分が各ファイルシステムインスタンスに割当てられるかを記述するマップを分散させる;システム内のデータストレージ空間のうち、そのファイルシステムインスタンスが使用することのできる部分について各ファイルシステムに通知する;ウェアレベリングを改善するかまたは作業負荷のバランスを取って障害を抑制するために、1つのファイルシステムインスタンスから別のファイルシステムインスタンスに移動させるべきデータを識別する;あるファイルシステムから別のファイルシステムに移動させるデータのマッピングを記述するために、分散されたマップを更新する;システム構成要素の追加もしくは除去(システムアップグレード)に起因するかまたは構成要素の故障および交換に起因するデータストレージシステムの構成変更についての通知を受信する;1つのファイルシステムから別のファイルシステムに移動させるべきデータと、ファイルシステムインスタンスへの物理的なストレージの割当てに対する適切な変更とを識別する;ファイルシステムインスタンスに命令して、データを移動させ、かつ構成変更に適応するよう物理的なストレージ割当てを調整し、分散されたマップを適宜更新する;故障したか、その耐用年数の末期に達したか、または耐用年数の末期に近づいているストレージ構成要素を交換するために、いつストレージシステムを保守点検しなければならないかを決定する;他の理由で機械の保守点検が必要な場合に、耐用年数の末期に近づいているストレージ構成要素について報告して、そのサービスコール中にこれらのストレージ構成要素を交換して、以降のサービスコールにかかるコストを排除できるようにする。
ここで図1および図3を参照すると、グローバル管理システム21aの実施例はデータコレクタ28a、ポリシーエンジン30aおよび構成マネージャ32aを含み得る。データコレクタ28a、ポリシーエンジン30aおよび構成マネージャ32aは、ハードウェア/ファームウェア/ソフトウェア/など、またはこれらのいずれか組合せで実現され得る。図1の他のグローバル管理システム21bなどは、グローバル管理システム21aと同様に構成されてもよい。しかしながら、いくつかの実施例においては、これらの他のグローバル管理システム21bなどのポリシーエンジン30bなどは、以下に説明するように停止していてもよい。
それぞれのデータコレクタ28nの各々は、公知の方法で、それらが展開されているサーバ12nの動作に関連付けられるリソース利用情報を集める。データコレクタ28aは、たとえば、データストレージ消耗率、作業負荷分散の歪み、書込み動作、残りの耐用年数などを集め得る。このリソース利用情報は、ポリシーエンジン30nのうちの1つに転送(または1つによって要求)され得る。
図1および図3の実施例においては、ポリシーエンジン30aは稼動しており、他のポリシーエンジン30n(たとえば30bなど)が停止している間に主ポリシーエンジンとしての役割を果たし得る。結果として、データコレクタ28aによって集められた利用情報が、ポリシーエンジン30aに転送される。データコレクタ28bによって集められた利用情報も、ポリシーエンジン30aなどに転送される。この方式により、単一のポリシーエンジン30aがデータストレージシステム10のために構成変更を開始することが可能となる。単一の主ポリシーエンジン30aを選択し、そして、選択された主ポリシーエンジン30aと通信するであろうデータコレクタ28nにこのような選択の結果を分散させるために公知の技術が用いられてもよい。他の実施例においては、データコレクタ28bによって集められた利用情報が、データコレクタ28aに転送され、次いで、主ポリシーエンジン30aに転送され得る。他のシナリオも実現可能である。
ポリシーエンジン30aは、上述のとおり、いくつかの消耗率および作業負荷の分散ポリシーを特定し得る。例示的なポリシーは、フラッシュボード22aの除去を可能にするようにフラッシュボード22nのうちの1つ(たとえばフラッシュボード22a)からフラッシュボード22nのうちの別の1つ以上(たとえば、フラッシュボード22bおよび22c、別のストレージユニットにおけるフラッシュボードなど)にデータを移行することを特定し得る。別の例示的なポリシーは、作業負荷分散の歪み(または均一性)に依存するフラッシュボード22nについての最大消耗率を特定し得る。最大消耗率は、作業負荷分散の歪みが増加/減少するのに応じて上昇/低下し得る。しかしながら、別の例示的なポリシーは、フラッシュボード22nの消耗率に依存する作業負荷分散の最大の歪みを特定し得る。作業負荷分散の最大の歪みは、フラッシュボード22nの消耗率が上昇/低下するのに応じて増大/減少し得る。これらの例示的なポリシー(たとえば、ストレージユニットなどに向けられるポリシー)は、グローバル管理システム21aが消耗率を犠牲にして、作業負荷分散の均一性を向上させるか、または、作業負荷分散の均一性を犠牲にして消耗率を改善することを可能にし得る。たとえば、予想される作業負荷および消耗率分散で行なわれる長期間にわたる動作がフラッシュボード22nの早すぎる消耗をもたらし得る程度にまで作業負荷分散が概して均一であり、フラッシュボード22nにわたる消耗率分散が不均一である場合、グローバル管理システム21aは、作業負荷分散の均一性を低下させて消耗率などを向上させるように構成の変更を開始し得る。逆に、消耗率分散が概して均一であり、作業負荷分散がかなり不均一である場合、グローバル管理システム21aは、作業負荷分散の均一性を向上させるために、消耗率をより不均一に分散させることを可能にし得る。
いくつかの実施例においては、ポリシーエンジン30aは、データコレクタ28nによって集められたデータにおける履歴傾向を追跡し、そして、ポリシーエンジン30aが予想し構成の変更に起因することとなるデータストレージシステム10の動作の改善規模によって正当化された場合に構成の変更を開始し得る。ポリシーエンジン30aは、一方では、所望の消耗率または作業負荷分散を達成し、他方では、構成の変更を実行することに起因するデータストレージシステム10の動作に及ぼす影響を最小限にするという矛盾した目標のバランスをとり得る。
データコレクタ28nから集められた情報の評価、およびデータストレージシステム10の現在の構成に基づき、実施されているポリシーに鑑みて、ポリシーエンジン30aが、データストレージシステム10についての構成変更を開始し得る。構成変更がサーバ12nのうちの1つ、たとえば12a、によって管理されるデータストレージシステム10の部分に適用される/影響を及ぼすなどの場合、構成変更要求が、対応する構成マネージャ32aに向けられてもよい。
構成マネージャ32nは、データストレージシステム10内の消耗率および作業負荷分散の両方を制御するように、ポリシーエンジン30aによって開始された構成変更を実現し得る。たとえば、構成変更は、フラッシュカード22aの消耗率を低下させるようにフラッシュカード22aからフラッシュカード22bおよび22cに頻繁に書込まれた何らかのデータの移動を特定し得る。
本発明の実施例を例示および記載してきたが、これらの実施例は本発明の実現可能なすべての形態を例示および記載するよう意図されたものではない。たとえば、この明細書中に記載されるいくつかの実施例をZFSの文脈内で論じてきたが、ログ構造のファイルシステム、動的にマップされたデータ管理システムなどの他の実施例もさまざまな文脈において実現可能であり得る。明細書中で用いられる用語は限定ではなく説明のためのものであり、本発明の精神および範囲から逸脱することなくさまざまな変更が可能であることが理解される。

Claims (13)

  1. データストレージシステムであって、
    複数のサーバと、
    サーバのうちの1つのサーバ上で各々展開された複数の外部インターフェイスプロバイダと、
    サーバのうちの1つのサーバ上で各々展開された複数のデータストレージコントローラとを含み、プロバイダの各々は、(i)データアクセス要求を受信し、(ii)コントローラのうち要求を満たすことのできるコントローラを識別し、(iii)識別されたコントローラに要求を転送するよう構成され、前記データストレージシステムはさらに、
    サーバから独立した複数のデータストレージモジュールを含み、プロバイダ、コントローラおよびモジュールは互いと通信し、コントローラの各々は、(i)モジュールのうち少なくとも1つにおけるデータ内容の一部を排他的に管理し、(ii)少なくとも1つのモジュールにおけるデータ内容の前記一部にアクセスすることによって、プロバイダから受信したデータアクセス要求を満たすよう構成される、データストレージシステム。
  2. モジュールのうち少なくとも1つは、データの不揮発性ストレージを提供するために書込データアクセス要求に含まれるデータをバッファするよう構成される、請求項1に記載のシステム。
  3. モジュールのうち少なくとも別の1つは、前記少なくとも1つのモジュールよりも実質的に大きい容量を有する、請求項2に記載のシステム。
  4. プロバイダ、コントローラおよびモジュールはリモートダイレクトメモリアクセスプロトコルを介して互いと通信する、請求項1から3のいずれかに記載のシステム。
  5. モジュールのうち少なくとも1つにおけるデータ内容の一部を排他的に管理することは、コピー・オン・ライトを実行することを含む、請求項1から4のいずれかに記載のシステム。
  6. プロバイダ、コントローラおよびモジュールはピアとして互いと通信する、請求項1から5のいずれかに記載のシステム。
  7. コントローラの各々はフォールトトレランスのためにデータ冗長性を与える、請求項1から6のいずれかに記載のシステム。
  8. 少なくとも1つのモジュールにおけるデータ内容の前記一部にアクセスすることは、データアクセス要求において要求されるデータ内容を検索することを含む、請求項1から7のいずれかに記載のシステム。
  9. 少なくとも1つのモジュールにおけるデータ内容の前記一部にアクセスすることは、データアクセス要求に含まれるデータを記憶することを含む、請求項1から8のいずれかに記載のシステム。
  10. すべてのモジュールが不揮発性データストレージを提供する、請求項1から9のいずれかに記載のシステム。
  11. データアクセス要求を処理する方法であって、
    サーバ上で展開された外部インターフェイスプロバイダにおいて、
    データアクセス要求を受信するステップと、
    要求を満たすことのできる別のサーバ上で展開されたデータストレージコントローラを識別するステップとを含み、識別されたコントローラは、サーバから独立した少なくとも1つのデータストレージモジュールにおけるデータ内容の一部を排他的に管理し、前記方法はさらに、
    識別されたコントローラに要求を転送するステップと、
    識別されたコントローラにおいて、
    転送された要求を受信するステップと、
    受信された要求に応答して、少なくとも1つのモジュールにおけるデータ内容の前記一部にアクセスして要求を満たすステップとを含む、方法。
  12. データの不揮発性ストレージを提供するために、少なくとも1つのモジュールにおける書込データアクセス要求に含まれるデータをバッファするステップをさらに含む、請求項11に記載の方法。
  13. サーバから独立した少なくとも1つのデータストレージモジュールにおけるデータ内容の一部を排他的に管理するステップは、コピー・オン・ライトを実行するステップを含む、請求項11または12に記載の方法。
JP2014212348A 2009-03-30 2014-10-17 データストレージシステム、およびデータアクセス要求を処理する方法 Active JP5855200B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/414,084 US9164689B2 (en) 2009-03-30 2009-03-30 Data storage system and method of processing a data access request
US12/414,084 2009-03-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012503582A Division JP5667162B2 (ja) 2009-03-30 2010-03-30 データストレージシステム、およびデータアクセス要求を処理する方法

Publications (2)

Publication Number Publication Date
JP2015018579A true JP2015018579A (ja) 2015-01-29
JP5855200B2 JP5855200B2 (ja) 2016-02-09

Family

ID=42320985

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012503582A Active JP5667162B2 (ja) 2009-03-30 2010-03-30 データストレージシステム、およびデータアクセス要求を処理する方法
JP2014212348A Active JP5855200B2 (ja) 2009-03-30 2014-10-17 データストレージシステム、およびデータアクセス要求を処理する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012503582A Active JP5667162B2 (ja) 2009-03-30 2010-03-30 データストレージシステム、およびデータアクセス要求を処理する方法

Country Status (5)

Country Link
US (1) US9164689B2 (ja)
EP (1) EP2414927B1 (ja)
JP (2) JP5667162B2 (ja)
AU (1) AU2010234902B2 (ja)
WO (1) WO2010117745A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342801B2 (en) 2010-03-29 2016-05-17 Amazon Technologies, Inc. Managing committed processing rates for shared resources
US8694400B1 (en) * 2010-09-14 2014-04-08 Amazon Technologies, Inc. Managing operational throughput for shared resources
JP5767565B2 (ja) * 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US20120290710A1 (en) * 2011-05-12 2012-11-15 Fluke Corporation Method and apparatus for dynamically adjusting data storage rates in an apm system
US9367354B1 (en) 2011-12-05 2016-06-14 Amazon Technologies, Inc. Queued workload service in a multi tenant environment
US9367412B2 (en) 2012-06-25 2016-06-14 Netapp, Inc. Non-disruptive controller replacement in network storage systems
WO2014092698A1 (en) * 2012-12-11 2014-06-19 Hewlett-Packard Development Company Application server to nvram path
US20140181437A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on mirrored storage devices through file system controls
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US9519666B2 (en) 2014-11-27 2016-12-13 E8 Storage Systems Ltd. Snapshots and thin-provisioning in distributed storage over shared storage devices
US10496288B1 (en) * 2014-12-04 2019-12-03 Amazon Technologies, Inc. Mechanism for distributing memory wear in a multi-tenant database
US10394462B1 (en) 2014-12-04 2019-08-27 Amazon Technologies, Inc. Data shaping to reduce memory wear in a multi-tenant database
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
WO2016110785A1 (en) 2015-01-06 2016-07-14 Umbra Technologies Ltd. System and method for neutral application programming interface
EP3251301A4 (en) 2015-01-28 2018-10-10 Umbra Technologies Ltd. System and method for a global virtual network
EP3281381B1 (en) 2015-04-07 2023-10-04 Umbra Technologies Ltd. Multi-perimeter firewall in the cloud
US9529542B2 (en) * 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US9525737B2 (en) * 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
US10496626B2 (en) 2015-06-11 2019-12-03 EB Storage Systems Ltd. Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect
US11558347B2 (en) * 2015-06-11 2023-01-17 Umbra Technologies Ltd. System and method for network tapestry multiprotocol integration
US9992477B2 (en) 2015-09-24 2018-06-05 Ouster, Inc. Optical system for collecting distance information within a field
EP3387819B1 (en) 2015-12-11 2022-09-28 Umbra Technologies Ltd. System and method for information slingshot over a network tapestry and granularity of a tick
US9933952B1 (en) * 2016-03-31 2018-04-03 EMC IP Holding Company LLC Balancing allocated cache pages among storage devices in a flash cache
US9842084B2 (en) 2016-04-05 2017-12-12 E8 Storage Systems Ltd. Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices
WO2017187263A1 (en) 2016-04-26 2017-11-02 Umbra Technologies Ltd. Sling-routing logic and load balancing
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US10552469B2 (en) 2017-01-06 2020-02-04 Oracle International Corporation File system hierarchy mirroring across cloud data stores
US10031872B1 (en) 2017-01-23 2018-07-24 E8 Storage Systems Ltd. Storage in multi-queue storage devices using queue multiplexing and access control
US10685010B2 (en) 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
CN107967124B (zh) * 2017-12-14 2021-02-05 南京云创大数据科技股份有限公司 一种分布式持久性内存存储系统及方法
KR102529710B1 (ko) * 2018-02-19 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110321214A (zh) 2018-03-29 2019-10-11 阿里巴巴集团控股有限公司 一种数据查询方法、装置及设备
US11036418B2 (en) 2019-06-20 2021-06-15 Intelliflash By Ddn, Inc. Fully replacing an existing RAID group of devices with a new RAID group of devices

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0540582A (ja) * 1991-08-07 1993-02-19 Shikoku Nippon Denki Software Kk フアイル処理装置
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2007233783A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd ストレージ管理方法およびストレージ管理サーバ
JP2007310673A (ja) * 2006-05-18 2007-11-29 Nippon Telegr & Teleph Corp <Ntt> P2pネットワークのストレージ構成方法およびストレージシステム
JP2007323557A (ja) * 2006-06-05 2007-12-13 Fujitsu Ltd ディスクアレイ装置及びその負荷分散方法
JP2008059438A (ja) * 2006-09-01 2008-03-13 Hitachi Ltd 記憶システム、そのデータ再配置方法、データ再配置プログラム
JP2008539505A (ja) * 2005-04-29 2008-11-13 ネットワーク アプライアンス, インコーポレイテッド データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
US20090006792A1 (en) * 2007-06-28 2009-01-01 Federwisch Michael L System and Method to Identify Changed Data Blocks

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504873A (en) * 1989-11-01 1996-04-02 E-Systems, Inc. Mass data storage and retrieval system
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US7127518B2 (en) * 2000-04-17 2006-10-24 Circadence Corporation System and method for implementing application functionality within a network infrastructure
US8335776B2 (en) * 2008-07-02 2012-12-18 Commvault Systems, Inc. Distributed indexing system for data storage

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0540582A (ja) * 1991-08-07 1993-02-19 Shikoku Nippon Denki Software Kk フアイル処理装置
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
JP2008539505A (ja) * 2005-04-29 2008-11-13 ネットワーク アプライアンス, インコーポレイテッド データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2007233783A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd ストレージ管理方法およびストレージ管理サーバ
JP2007310673A (ja) * 2006-05-18 2007-11-29 Nippon Telegr & Teleph Corp <Ntt> P2pネットワークのストレージ構成方法およびストレージシステム
JP2007323557A (ja) * 2006-06-05 2007-12-13 Fujitsu Ltd ディスクアレイ装置及びその負荷分散方法
JP2008059438A (ja) * 2006-09-01 2008-03-13 Hitachi Ltd 記憶システム、そのデータ再配置方法、データ再配置プログラム
US20090006792A1 (en) * 2007-06-28 2009-01-01 Federwisch Michael L System and Method to Identify Changed Data Blocks

Also Published As

Publication number Publication date
EP2414927A1 (en) 2012-02-08
JP2012522321A (ja) 2012-09-20
AU2010234902A1 (en) 2011-10-13
EP2414927B1 (en) 2015-10-07
WO2010117745A1 (en) 2010-10-14
JP5667162B2 (ja) 2015-02-12
US20100250700A1 (en) 2010-09-30
US9164689B2 (en) 2015-10-20
JP5855200B2 (ja) 2016-02-09
AU2010234902B2 (en) 2015-05-28

Similar Documents

Publication Publication Date Title
JP5855200B2 (ja) データストレージシステム、およびデータアクセス要求を処理する方法
US8364923B2 (en) Data storage system manager and method for managing a data storage system
US20200210082A1 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US9104316B2 (en) Runtime dynamic performance skew elimination
US20130318196A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
US9047200B2 (en) Dynamic redundancy mapping of cache data in flash-based caching systems
JP2009043030A (ja) ストレージシステム
US20100161929A1 (en) Flexible Memory Appliance and Methods for Using Such
US20100161908A1 (en) Efficient Memory Allocation Across Multiple Accessing Systems
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
US9547446B2 (en) Fine-grained control of data placement
CN111587420A (zh) 分布式存储系统快速故障恢复的方法和系统
US10268419B1 (en) Quality of service for storage system resources
Min et al. {eZNS}: An elastic zoned namespace for commodity {ZNS}{SSDs}
JP2022054132A (ja) 複合型ストレージシステム
JP5597266B2 (ja) ストレージシステム
US11768628B2 (en) Information processing apparatus
US6898666B1 (en) Multiple memory system support through segment assignment
US11340795B2 (en) Snapshot metadata management
EP4120090A1 (en) Storage design for host controlled logically addressed flexible data layout
Bitar Deploying Hybrid Storage Pools

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151021

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: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151208

R150 Certificate of patent or registration of utility model

Ref document number: 5855200

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250