JP2017531857A - 分散型能動ハイブリッドストレージシステム - Google Patents
分散型能動ハイブリッドストレージシステム Download PDFInfo
- Publication number
- JP2017531857A JP2017531857A JP2017514472A JP2017514472A JP2017531857A JP 2017531857 A JP2017531857 A JP 2017531857A JP 2017514472 A JP2017514472 A JP 2017514472A JP 2017514472 A JP2017514472 A JP 2017514472A JP 2017531857 A JP2017531857 A JP 2017531857A
- Authority
- JP
- Japan
- Prior art keywords
- active
- storage system
- data
- hybrid
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
能動ストレージシステムが開示される。本能動ストレージシステムは、ストレージデバイスと、不揮発性メモリと、能動ドライブコントローラとを含む。能動ドライブコントローラは、本能動ストレージシステム内のデータ管理および/またはクラスタ管理を実施し、能動ドライブコントローラは、少なくともオブジェクトおよび/またはファイルデータを、受信するためのデータインターフェースを含む。【選択図】図7
Description
優先権の主張
本出願は、2014年10月3日出願のシンガポール特許出願第10201406349V号からの優先権を主張する。
本出願は、2014年10月3日出願のシンガポール特許出願第10201406349V号からの優先権を主張する。
発明の分野
本発明は、データセンタのためのストレージシステムに関する。さらに具体的には、本発明は、データセンタのための分散型能動ハイブリッドストレージシステムに関する。
本発明は、データセンタのためのストレージシステムに関する。さらに具体的には、本発明は、データセンタのための分散型能動ハイブリッドストレージシステムに関する。
現今のストレージデバイスまたはボリュームは、インテリジェンス能力をほとんどまたは全く有していない。これらは、単純な読み取り/書き込み動作を行う受命が可能なダミーデバイスである。これらは、ストレージサーバ中の、ブロックベースのストレージデバイスを抽象化するための多くのシステムソフトウェアに依存する。データセンタ中にデータが多くなるにしたがい、デバイスを管理しストレージ抽象化を提供するためのより多くのストレージサーバが必要となる。これは、ハードウェアコストのみならず、サーバのメンテナンスのコストも増加させる。
中央処理装置(CPU:Central Processing Unit)および不揮発性メモリ(NVM:Non−Volatile Memory)技術の進展に伴い、システムの効率およびパフォーマンスを最適化して総所有コスト(TOC:Total Cost of Ownership)を低減するために、システムの諸機能およびクラスタ化ソフトウェアの実装、ならびに他のデータ管理をより小さなコントローラボードに組み込むことがますます実行可能になっている。このNVMは、きわめて高速および/またはきわめて低遅延のアクセス時間で、データを格納するためのソリッドステートメモリおよびストレージ技術であり、NVMは、たとえ電力が切られても格納されたデータを保持する。NVM技術の例は、以下に限らないが、STT−MRAM(Spin torque transfer MRAM(回転トルク転送MRAM))、ReRAM(Resistive RAM(抵抗変化型RAM))、およびフラッシュメモリを含む。また、コストとパフォーマンスとの間のバランスを達成するため、様々な異なるNVM技術のハイブリッドまたは組み合せによってこのNVMを設けることが可能である。
しかして、ストレージデバイスにインテリジェンスを備え、これらデバイスの、かかるインテリジェンスについてのストレージサーバへの依存を低減または排除すべく、CPUおよびNVM技術を活用するためのシステムが必要とされている。添付の図面および本開示のこの背景技術と併せ、以降の詳細な説明および添付の特許請求の範囲を理解することによって、さらに他の望ましい特徴および特性が明らかとなろう。
本発明の一態様によって、能動ストレージシステムが開示される。本能動ストレージシステムは、ストレージデバイス、不揮発性メモリ、および能動ドライブコントローラを含む。能動ドライブコントローラは、能動ストレージシステム内のデータ管理および/またはクラスタ管理を実施し、また、該能動ドライブコントローラは、少なくともオブジェクトおよび/またはファイルデータを受信するためのデータインターフェースを含む。
本発明の別の態様によって、別の能動ストレージシステムが開示される。本能動ストレージシステムは、メタデータサーバおよび1つ以上の能動ハイブリッドノードを含む。各能動ハイブリッドノードは、複数のハイブリッドオブジェクトストレージデバイス(HOSD:Hybrid Object Storage Device)および対応する複数の能動ドライブコントローラを含み、複数の能動ドライブコントローラの各々は、それの対応HOSDに対する、少なくともオブジェクトおよび/またはファイルデータを受信するためのデータインターフェースを含む。また、複数の能動ドライブコントローラの1つは、能動管理ノードを含み、該能動管理ノードは、能動ハイブリッドノードを管理しモニタリングするために、メタデータサーバ、および複数のHOSDの各々と相互作用する。
添付の図面において、個別の図面全体を通して同じ参照記号は同一のまたは機能的に類似の要素を表し、これら図面は、以降の詳細な説明とともに本明細書に組み込まれその一部を形成し、様々な実施形態を例示し、単に非限定の例として本発明による様々な原理および利点を説明するための役割を果たす。
以下の図面を参照して、以降に本発明の実施形態を説明する。
当業者には自明のことであろうが、これらの図の要素は簡明さおよび明瞭さを旨として描かれており、必ずしも一定の縮尺では表されていない。
以降の詳細な説明は、事実上単なる例示であり、本発明または本出願、および本発明の用途を限定することは意図されていない。さらに、前述の本発明の背景または以降の詳細な説明中に提示されたいかなる原理によっても制約されることは意図されていない。本発明の目的は、データ管理およびクラスタ管理の実施のため、ストレージシステム内にハイブリッドストレージデバイスに連結された能動ドライブコントローラを含む、能動ストレージシステムを提供することであり、このクラスタ管理は、クラスタを見出すおよび結合する、またはクラスタを形成および維持するため、メタデータサーバまたは他の能動ドライブコントローラと相互作用することを含む。本実施形態による能動ドライブコントローラは、オブジェクトデータ、ファイルデータ、およびキー値データを受信するためのデータインターフェースを含む。
図1を参照すると、図は、本実施形態によるシステム100中の能動ドライブストレージシステムの一例を表している。本能動ドライブストレージシステムは、3つの主要コンポーネント、すなわち、アプリケーションサーバ102、能動ハイブリッドノード(AHN)104、および能動管理ノード(AMN)106を含む。AHN104は、不揮発性メモリ(NVM)110およびハードディスクドライブ(HDD:hard disk drive)112が取り付けられたハイブリッドストレージノードである。複数のAHN104をクラスタ120に形成することができる。AMN106は、ストレージ媒体として少数のNVMを包含する。データのパケット130は、ネットワーク140を介してアプリケーションサーバ102とAHN104との間を流れる。
図2を参照すると、図は、本実施形態による、能動ドライブ分散型ストレージシステム200に対するアーキテクチャの一例を表している。この能動ドライブ分散型ストレージシステムは、インターネット204を介して複数の能動ハイブリッドドライブ206に連結されたアプリケーション/クライアントサーバ202を含む。データセンタ構成において、能動ハイブリッドドライブ206は、42Uラック210などのラックに搭載することが可能で、該ラックは、プログラム可能スイッチ220中に搭載された能動ハイブリッドドライブ206をアプリケーション/クライアントサーバ202に連結するための該スイッチ220を含む。このアーキテクチャは、能動ハイブリッドドライブ206への直接的データ伝送に使われるストレージノードを排除する。
図3を参照すると、本実施形態による、分散型能動ハイブリッドドライブストレージシステム302の一例の概略図300が示されている。アプリケーションサーバ102は、AHN104、304に連結されており、AHN104の一部は、NVM110、HDD112、および能動ドライブコントローラ306を含み、他のAHN304は、NVM110、ソリッドステートドライブ(SSD:solid state drive)310、および能動ドライブコントローラ306を含む。複数のAHN104、304はクラスタ315に形成することが可能である。パフォーマンスを向上し、ストレージ利用率を上げるために、分散型能動ハイブリッドストレージシステム302は、並列データアクセスおよび消失訂正符号を用いる。データ書き込みのため、アプリケーションサーバ102は、データの部分を追跡するためにメタデータサーバ320を用いながら、データを相異なるAHN104,304宛てに分解することができる。データ読み取りの過程で、アプリケーションサーバ102は、高パフォーマンスを達成するために、相異なるAHN104、304から同時に複数の分割片をいっせいに読み取ることが可能である。
図4を参照すると、マッピング図400は、本実施形態による、オブジェクトマッピングに対する1対1のキー値の概覧を表している。オブジェクト410は、3つの部分、すなわち、オブジェクト識別(OID:object identification)412、オブジェクトデータ414、およびオブジェクトメタデータ416から成る。OID412は、オブジェクト410の一意的ID/名称である。オブジェクトデータ414は、オブジェクト410の実際のコンテンツである。オブジェクトメタデータ416は、オブジェクト410の任意の事前定義された属性または情報とすればよい。
キー値(KV:Key Value)インターフェースは、オブジェクトストアの最上部に形成される。マッピング層は、KVエントリ420をオブジェクト410にマップするように設計され実装される。KVをオブジェクトにマッピングするための様々なメカニズムがある。マッピング図400中に表されるように、1対1のマッピングでは、各KVエントリ420は単一のオブジェクト410に対してマップされる。KVエントリ420は、キー422、値424、および他の情報426を含む。キー422は、オブジェクトID412に対してマップされる432。値424は、オブジェクトデータ414に対してマップされる434。また、他の情報426は、バージョン、チェックサム、値のサイズを含むことが可能で、オブジェクトメタデータ416に対してマップされる436。
図5は、本実施形態による、多対1マッピングスキームの概覧のマッピング図500を表す。複数のKVエントリ520が同一のオブジェクト510に対してマップされている。オブジェクトID512はキー範囲522を表す。キー範囲522中に含まれるキーを有するKVエントリ520は、このオブジェクト510にマップされる。各エントリ520に対し、そのキー524および属性526が、オブジェクトメタデータ516に対してマップされる532。属性526は、オブジェクトメタデータ516の内部のキー524を検索することによって見出すことができる。オブジェクトメタデータ516中に「オフセット」と名付けられた属性526が格納されており、この属性は、各値528がオブジェクトデータ514に対してマップされる534とき、キー値の格納された表現のオフセット540を表す。
図6は、本実施形態による、各KVエントリ620が複数のオブジェクト610にマップされている場合の、1対多キー値のオブジェクトマッピングの概覧のマッピング図600を表す。キー622は、各オブジェクトID612が接尾辞(#000、#001等)と組み合されたキー622である、複数のオブジェクトID612にマップされている。属性624は、第一オブジェクト610のメタデータ614中に格納される。属性分割片サイズ626は、各オブジェクトデータ616にマップされた値630の分割片サイズ628を表す。最後のオブジェクトデータ616は、分割片サイズ628より少数のバイトの格納が可能である。上記に換えて、各オブジェクト610は、分割片の相異なるサイズ628を格納することも可能で、分割片の個別のサイズは、オブジェクトのメタデータ614、615の中に格納される。
図7を参照すると、ブロック図700は、ノードデーモン704を備えるAHN702のアーキテクチャを表している。デーモンは、バックグラウンドプロセスとして実行されるコンピュータプログラムであり、1つもしくは複数のHOSD、またはAHN702が大きなハドゥープストレージプール(Hadoop storage pool)のストレージノードである場合にマップリデュースジョブ(MapReduce job)を処理できるマップリデュースジョブ706、を含むハイブリッドオブジェクトストレージデバイス(HOSD)デーモンなど、多くのデーモンがあり得る。また、再構築デーモン708、または(例えば、ローカルストレージのためのデータをソートする)メタデータソーティングデーモンなど、他のデーモンを実装することもできよう。アプリケーションまたはクライアントサーバ(例えばサーバ102)は、実行のためAHN702の中にジョブをポストしインストールすることができ、ノードデーモン704中のメッセージハンドラ710は、クライアントサーバがオブジェクトクライアント712またはキー値(KV)クライアント714であってよいアプリケーション/クライアントサーバ102と通信するため、AHN702に対しメッセージハンドリング機能を提供する。
また、AHN702は、オブジェクトストア716、ローカルファイルストレージ718、およびHDD112とNVM110とを含むハイブリッドストレージ720を含む。ローカルファイルストレージは、オブジェクトメタデータ416(またはオブジェクトメタデータ516、614、615)およびオブジェクトデータファイル414(またはオブジェクトデータファイル514、616)を含む。オブジェクトストア716は、オブジェクトクライアント712と接続するためのオブジェクトインターフェース722、およびKVクライアント714と接続するためのキー値インターフェース724を含む。キー値インターフェース724は、KVに対し、図4、5、および6に示されたマッピングなど、オブジェクトマッピングの役割を担い、オブジェクトストア716中のファイルストア726は、オブジェクトに対し、ファイルマッピングの役割を担う。また、データ圧縮およびハイブリッドデータ管理728は、オブジェクトストア716を形成するために制御される。
AHN702の動作および機能を形成するソフトウェアのアーキテクチャおよびモジュールをさらに詳細に説明する。これらソフトウェア実行ファイルは、プログラムコード保管のための不揮発性媒体中に格納され、実行のための立ち上げ過程でAHNのプロセッサによって主メモリ中に呼び出される。AHN702は、オブジェクトクライアントサーバ712およびキー値(KV)クライアントサーバ714中のアプリケーションへのオブジェクトインターフェースおよびKVインターフェースの両方を備える。オブジェクトインターフェース722は、下層のオブジェクトストア716へのネイティブインターフェースである。オブジェクトストア716は、オブジェクトをファイルとして保管するために、代わりにファイルストア(例えば、ファイルストア726)として実装することも可能である。
ソフトウェアの3つの主要層、すなわちノードデーモン704、オブジェクトストア716、およびローカルファイルシステム718がある。ノードデーモン層704は、様々な独立したランタイムプログラムまたはソフトウェアデーモンを示す。メッセージハンドラデーモン710は、分散型クラスタシステムを形成、維持し、クライアントサーバとANHとの間のデータ伝送を提供するため、他のANH、AMNおよびクライアント端末とのTCP/IPに基づく通信プロトコルを取り扱う。
再構築デーモン708は、関連する残存データおよびチェック符号ドライブからデータを復号することによって、システム中の不具合ドライブから失われたデータを復元する処理を実行する役割を担う。マップリデュースデーモン706は、ANHノードの1つ以上ストレージデバイス中で処理のため必要なデータに直接ローカルにアクセスできるように、データ分析タスクを実行のためANHに割り当てるべく、マップリデュースフレームワーク中のジョブトラッカーに対しマップリデュースおよびハドゥープ分散型ファイルシステム(HDFS:Hadoop Distributed File System)インターフェースを提供する。クライアントインストール可能プログラムデーモン730は、ANHに付属するどれか1つ以上のストレージデバイス上に格納されたプログラムを実行するように構成される。アプリケーションまたはクライアントサーバは、実行のためAHNの中にジョブをポストしインストールすることができるので、クライアントインストール可能プログラムデーモンは、ANHに付属する1つ以上のストレージデバイスの中に実行可能プログラムをアップロードしインストールするため、クライアント端末と通信する。
AHN702中でデータ計算を実行する原理は、計算をストレージの近くに持ってくること、すなわち、デーモンが、時間の大部分をローカルAHN702からのデータへのアクセスにかけ、そのジョブの結果をアプリケーションまたはクライアントサーバに返信する必要があるだけにすることにある。多くの状況では、データ計算の結果のサイズは、計算に使われるローカルのデータのものよりもずっと小さい。このようにして、ネットワーク140を介して送信する必要のあるデータの量を低減でき、ビッグデータの処理または計算をストレージリソースとともに分散し、全体的システムのパフォーマンスを大きく向上することができる。
オブジェクトストア716は、ノードデーモン層704へのオブジェクトインターフェース722およびKVインターフェース724を提供するためのソフトウェア層である。また、オブジェクトストア層716は、オブジェクトが基底のファイルシステムによって格納され管理され得るように、ファイルストア726を用い、オブジェクトをファイルにマップする。データ圧縮およびハイブリッドデータ管理は、オブジェクトストア層716中の他の2つの主要モジュールである(但し、簡潔さのため図7では単一のモジュール728として示されている)。本実施形態によれば、データ圧縮は、データ書き込みおよび読み取りのため、それぞれにインラインデータ符号化および復号を実施する。本実施形態によれば、ハイブリッドデータ管理は、頻繁に使用されるデータがNVMに格納されるように、ハイブリッドストレージを管理する。また、オブジェクトストア層716中には、ストレージのサービス品質(QoS:Quality of Service)など、他のデータ管理サービスを実装することも可能である。
ローカルファイルシステム層718は、各オブジェクトを1つ以上のストレージデバイスの対応セクタブロックの中に分解することによりオブジェクトメタデータ416およびオブジェクトデータ414を格納するため、下層の1つ以上のストレージデバイスのデータブロックに対するファイルシステム管理を提供する。本実施形態によれば、削除されたオブジェクトに対するデータセクタブロックは、新しく生成されるオブジェクトを格納するためのセクタスペースの将来の割り当てのため、ローカルファイルシステム層718によって再利用される。
図8を参照すると、ブロック図800は、本実施形態による、能動管理ノード(AMN)802のソフトウェアアーキテクチャの一例を表している。AMN802は、メッセージハンドラデーモン812を介して、AMN802が属しているクラスタ中の他のAMN(存在する場合)804、AHN806、アプリケーションサーバ808、およびスイッチ制御ボード(SCB)のスイッチ810と通信することができる。
AMN802は、多機能ノードである。AMN802は、クラスタ管理およびモニタリング機能814に加えて、新規に加わったノード、または故障で不活性なAHN、またはデータ移行および再構築デーモン816からAHNへのバランスを失したデータアクセスに起因して、データを移行する命令を送信する。さらに、AMN802は、スイッチコントローラデーモン818を介してSCBのスイッチ810に、送信元によって指定されていない宛先にデータパケットを転送する命令を送信することによってネットワークトラフィックを有利に低減することができる。
メッセージハンドラデーモン812は、存在する場合他のAMN、クラスタ中のAHN、アプリケーションサーバ、およびプログラム可能スイッチとの通信プロトコルを実装する。クラスタ管理およびモニタリングデーモン814は、クラスタについての情報を形成し維持するためのアルゴリズムおよび機能を提供する。クライアントサーバは、データを格納または読み出すための対応HOSDを判断すべく、クラスタ中の最新のHOSDトポロジーを抽出するため、クラスタ管理およびモニタリングデーモン814と通信する。AMN802は、クラスタのモニタリング状態に基づき、新規に加わったノードまたは故障で不活性なAHNまたはAHNへのバランスを失したデータアクセスに起因して、データ移行および再構築デーモン816からデータを移行する命令を送信する。さらに、AMN802は、スイッチコントローラデーモン818を介してプログラム可能スイッチに、クライアント通信への負荷を低減するため、データパケットを自立的に複製し宛先に転送する命令送信することもできる。
図9を参照すると、ブロック図900は、信頼性のため実装された消失訂正符号を用いる従来式分散型ストレージシステム中のデータ更新プロセスを表している。アプリケーションサーバ902は、ネットワークスイッチ904を介して、データノード906(すなわち、DN1、DN2、…、DNn)およびパリティノード908(すなわち、PN1、PN2、およびPN3)の両方を含むストレージに連結される。パリティノード908は、DN1〜DNnからの符号化データを、データがデータノードに書き込まれる都度(例えば、ステップ912でデータWがDN1に書き込まれる)、そのデータがパリティノード908に複製されるようにして(例えば、データWは、ステップ914でPN1、PN2、およびPN3に複製される)維持する。パリティノード908に対する符号化データが、リードソロモン符号から計算されている場合、このストレージシステムは同時に3つのノード不具合に耐えることができる。また、メタデータサーバ910は、ネットワークスイッチ904を介して、データノード906およびパリティノード908に連結される。
図10を参照すると、ブロック図1000は、本実施形態による、分散型能動ハイブリッドストレージシステム1002の例示的なネットワーク最適化を示している。アプリケーションサーバ902は、ネットワークスイッチ904を介して分散型能動ハイブリッドストレージシステム1002と通信する。ネットワークスイッチ904は、AHNデータノード1006およびAHNパリティノード1008と通信するために、分散型能動ハイブリッドストレージシステム1002のプログラム可能スイッチ1004とインターフェース接続している。プログラム可能スイッチ1004は、フローテーブル1010およびパリティノードインデックス1012を含み、AMN1014からのプログラム可能コマンドに応じて動作する。データノード1006およびパリティノード1008は、AMN1014の制御の下の、能動ハイブリッドドライブストレージクラスタ中のHOSDとすればよい。アプリケーションサーバ902とこれらストレージノード(すなわち、データノード1006およびパリティノード1008)との間のデータ伝送は、伝送および経路選択プロトコルとしてTCP/IPを使い、ネットワークを介して行われる。データノード1006およびパリティノード1008は、AHN702(図7)などの能動ハイブリッドノードであり、能動ハイブリッドノード702のソフトウェアアーキテクチャを用いて、アプリケーションサーバ902の、データの複数のコピーを相異なるストレージノードへの送信を軽減する。また、この構造は、データセンタのネットワークスイッチ904の処理能力の消費を低減する。
図11を参照すると、フローチャート1100は、本実施形態による、プログラム可能スイッチ1004(図10)のスイッチ制御ボード(SCB)における、アプリケーションサーバ902からの到来データを転送するためのプログラム可能スイッチのパケット転送フローを表している。プログラム可能スイッチ1004のSCBは、アプリケーションサーバ902からデータパケットを受信する1102と、パケットヘッダおよび対応するペイロードパラメータ情報を調べ、フローテーブル1010およびパリティノードテーブル1012をチェックして1104、当該データパケットが書き込みデータパケットかどうか、また、そのパケットをどのAHNノード1006に転送すべきかを判断する。
フローテーブル中に関連するエントリが見出せない場合1106、そのパケットまたはフローに対する新規のエントリを得るために、パケットヘッダおよび関連するペイロードパラメータがAMN1014に送信され、新規テーブルエントリ情報を包含するAMN1014から受信された応答に従って、プログラム可能スイッチ1004中でフローおよびパリティノードテーブルが更新される1108。当該エントリが見出された場合1106は、該パケットはそのエントリによって示された宛先HOSDを包含するAHNに転送される1110。アプリケーションサーバ902から受信された、同じデータを用いた別個のデータ書き込み要求は、パリティノードテーブル1012中の対応するエントリに記載された、データノード1006に関連付けられたパリティノード1008のそれぞれに転送するため、プログラム可能スイッチ1004によって複製される1112、1114。パリティノード1008およびデータノード1006の両方は、分散型ストレージクラスタ中のHOSDによって設けられる。
図12を参照すると、フローチャート1200は、1つ以上のHOSDが不具合になったときの再構築プロセスを表している。最初に、AHNがその付属HOSD/HDDの不具合を識別する1202。代替ドライブが識別されたならば、再構築プロセスが開始される。単一のHOSD/HDDの不具合1204および同一のAHNの複数のHOSD/HDDの不具合1206の場合は、該HOSD不具合が生じたAHNに付属するAMN802の再構築デーモン816が、AHN702が包含するオブジェクトマップを使って再構築プロセスを開始する1208。最初に、再構築デーモン816は、付属するNVM中の利用可能なデータを検索し1210、それを代替HOSD/HDDに直接コピーする。また、再構築マップとして使われたオブジェクトマップも、各々のオブジェクトが再構築された後、もしくは複数のオブジェクトが再構築された後1214、更新される1212。
相異なるAHN1216に亘って複数のHOSD/HDD不具合が生じた場合、それぞれのAHNがそれ自体のHOSD/HDDの再構築の役割を担うことになる1218。各AHNに対し、再構築の手順は、再構築デーモン816が、付属するNVM中の利用可能なデータを調べ1220、それを代替HOSD/HDDに直接コピーすることであり、また、再構築マップとして使われたオブジェクトマップも、各々のオブジェクトが再構築された後、もしくは複数のオブジェクトが再構築された後1214、更新される1222。
しかして、本実施形態が、ストレージデバイスに対するインテリジェンスを備え、かかるインテリジェンスに対するこれらのストレージサーバへの依存を低減または排除するため、CPUおよびNVM技術を活用するためのシステムを提供することが分かる。加えて、本実施形態は、データの計算をデータストレージのより近傍に持ってきて、計算のため使用されるローカルデータよりもずっと小さいサイズであるデータ計算の結果だけをネットワークを介して転送することによって、ネットワーク通信を低減する有利な方法を提供する。このようにして、ネットワークを介して送信する必要のあるデータの量を低減でき、ビッグデータの処理または計算をストレージリソースとともに分散し、全体的システムのパフォーマンスを大きく向上することができる。前述の本発明の詳細な説明において、例示的な実施形態を提示してきたが、当然のことながら数多くのバリエーションが存在する。
さらに、当然のことながら、これらの例示的な実施形態は単なる例であって、いかなる形においても、本発明の範囲、適用性、作用、または構成を制限することは意図されていない。むしろ、前述の詳細な説明は、当業者に、本発明の典型的な実施形態を実装するための便利なロードマップを提供するものであり、当然ながら、添付の特許請求の範囲に述べられた本発明の範囲から逸脱することなく、例示的な実施形態で説明された要素の機能および配置、ならびに動作の方法に様々な変更を加えることが可能である。
Claims (15)
- ストレージデバイスと、
不揮発性メモリと、
能動ドライブコントローラと、
を含む能動ストレージシステムであって、
前記能動ドライブコントローラは、前記ストレージデバイスおよび前記不揮発性メモリに連結されており、前記能動ストレージシステム内のデータ管理および/またはクラスタ管理を実施し、前記能動ドライブコントローラは、少なくともオブジェクトおよび/またはファイルデータを受信するためのデータインターフェースを含む、
能動ストレージシステム。 - 前記データインターフェースは、キー値データを受信する、請求項1に記載の能動ストレージシステム。
- 前記データ管理は、キャッシング、階層化、圧縮、サービス品質(QoS)、およびスナップショットのうちの少なくとも1つを含む、請求項1に記載の能動ストレージシステム。
- 前記クラスタ管理は、クラスタを見出すおよび結合するための、メタデータサーバおよびピアとの相互作用を含む、請求項1に記載の能動ストレージシステム。
- 前記クラスタ管理は、クラスタを形成および維持するための、前記メタデータサーバおよびピアとの相互作用をさらに含む、請求項1〜4のいずれか一項に記載の能動ストレージシステム。
- ユーザ/クライアントが前記能動ストレージシステム内にプログラムをダウンロードおよび実行することが可能な、インストール可能プログラムをさらに含む、請求項1に記載の能動ストレージシステム。
- 1つ以上のハイブリッドオブジェクトストレージデバイス(HOSD)デーモンをさらに含む、請求項1に記載の能動ストレージシステム。
- 前記能動ストレージシステムはプログラム可能スイッチを制御する、請求項1に記載の能動ストレージシステム。
- メタデータサーバと、
1つ以上の能動ハイブリッドノードと、
を含む、能動ドライブ分散型ストレージシステムであって、
各能動ハイブリッドノードは複数の能動ドライブストレージデバイスを含み、各能動ドライブストレージデバイスはハイブリッドストレージデバイスおよび能動ドライブコントローラを含み、各能動ドライブコントローラは、その対応ハイブリッドストレージデバイスに対する少なくともオブジェクトおよび/またはファイルデータを受信するためのデータインターフェースを含み、
前記1つ以上の能動ハイブリッドノードの各々中の前記複数の能動ドライブストレージデバイスの1つの能動ドライブコントローラは能動管理ノードをさらに含み、前記能動管理ノードは、前記能動ハイブリッドノードを管理およびモニタリングするため、前記メタデータサーバおよび前記複数の能動ドライブストレージデバイスの各々と相互作用する、
能動ドライブ分散型ストレージシステム。 - 前記データインターフェースは、キー値データをさらに受信する、請求項9に記載の能動ストレージシステム。
- 前記複数の能動ドライブストレージデバイスの各々は、ハイブリッドオブジェクトストレージデバイス(HOSD)デーモンを含む、請求項9に記載の能動ストレージシステム。
- 各能動ドライブコントローラは、キャッシング、階層化、圧縮、サービス品質(QoS)、およびスナップショットのうちの少なくとも1つを含むデータ管理をさらに実施する、請求項9に記載の能動ストレージシステム。
- 前記能動管理ノードは、新規な能動ハイブリッドノードの追加、前記1つ以上の能動ハイブリッドノードの1つの不具合、およびそれが対応する能動ハイブリッドノードへのバランスを失したデータアクセス、のうちの1つ以上に応じて、前記能動ハイブリッドノード内のデータの移行を命令する、請求項9に記載の能動ストレージシステム。
- ユーザ/クライアントが前記能動ストレージシステム内にインストール可能プログラムをダウンロードおよび実行することを可能にするプログラムをさらに含む、請求項9に記載の能動ストレージシステム。
- 前記能動ストレージシステムはプログラム可能スイッチを制御し、前記能動管理ノードは、前記プログラム可能スイッチに、ネットワークトラフィックを低減するため、データパケットを送信元によって指定されていない宛先に転送する命令を送信する、請求項9に記載の能動ストレージシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201406349V | 2014-10-03 | ||
SG10201406349V | 2014-10-03 | ||
PCT/SG2015/050367 WO2016053198A1 (en) | 2014-10-03 | 2015-10-02 | Distributed active hybrid storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017531857A true JP2017531857A (ja) | 2017-10-26 |
Family
ID=55631073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017514472A Pending JP2017531857A (ja) | 2014-10-03 | 2015-10-02 | 分散型能動ハイブリッドストレージシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20170277477A1 (ja) |
EP (1) | EP3180690A4 (ja) |
JP (1) | JP2017531857A (ja) |
CN (1) | CN107111481A (ja) |
SG (1) | SG11201701440SA (ja) |
WO (1) | WO2016053198A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019139759A (ja) * | 2018-02-06 | 2019-08-22 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 |
KR20220080329A (ko) * | 2020-12-07 | 2022-06-14 | 인하대학교 산학협력단 | Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3201778A4 (en) * | 2014-10-03 | 2018-04-25 | Agency for Science, Technology and Research | Method for optimizing reconstruction of data for a hybrid object storage device |
CN107436725B (zh) | 2016-05-25 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
JP6953713B2 (ja) * | 2016-12-28 | 2021-10-27 | 日本電気株式会社 | 通信ノード、通信システム、通信方法及びプログラム |
TWI735585B (zh) * | 2017-05-26 | 2021-08-11 | 瑞昱半導體股份有限公司 | 具有網路功能的資料管理電路及基於網路的資料管理方法 |
CN107479827A (zh) * | 2017-07-24 | 2017-12-15 | 上海德拓信息技术股份有限公司 | 一种基于io和元数据分离的混合存储系统实现方法 |
CN107967124B (zh) * | 2017-12-14 | 2021-02-05 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
CN110096220B (zh) * | 2018-01-31 | 2020-06-26 | 华为技术有限公司 | 一种分布式存储系统、数据处理方法和存储节点 |
US10956365B2 (en) * | 2018-07-09 | 2021-03-23 | Cisco Technology, Inc. | System and method for garbage collecting inline erasure coded data for a distributed log structured storage system |
CN108920725B (zh) * | 2018-08-02 | 2020-08-04 | 网宿科技股份有限公司 | 一种对象存储的方法及对象存储网关 |
US11287994B2 (en) * | 2019-12-13 | 2022-03-29 | Samsung Electronics Co., Ltd. | Native key-value storage enabled distributed storage system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266556B1 (en) * | 2000-12-29 | 2007-09-04 | Intel Corporation | Failover architecture for a distributed storage system |
JP2004213588A (ja) * | 2003-01-09 | 2004-07-29 | Seiko Epson Corp | 半導体装置 |
US7287180B1 (en) * | 2003-03-20 | 2007-10-23 | Info Value Computing, Inc. | Hardware independent hierarchical cluster of heterogeneous media servers using a hierarchical command beat protocol to synchronize distributed parallel computing systems and employing a virtual dynamic network topology for distributed parallel computing system |
EP1533704A3 (en) * | 2003-11-21 | 2007-03-07 | Hitachi, Ltd. | Read/write protocol for cache control units at switch fabric, managing caches for cluster-type storage |
CN100367727C (zh) * | 2005-07-26 | 2008-02-06 | 华中科技大学 | 一种可扩展的基于对象的存储系统及其控制方法 |
US20110231602A1 (en) * | 2010-03-19 | 2011-09-22 | Harold Woods | Non-disruptive disk ownership change in distributed storage systems |
US20150302021A1 (en) * | 2011-01-28 | 2015-10-22 | Nec Software Tohoku, Ltd. | Storage system |
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储系统 |
US9063939B2 (en) * | 2011-11-03 | 2015-06-23 | Zettaset, Inc. | Distributed storage medium management for heterogeneous storage media in high availability clusters |
US9519647B2 (en) * | 2012-04-17 | 2016-12-13 | Sandisk Technologies Llc | Data expiry in a non-volatile device |
CN102855284B (zh) * | 2012-08-03 | 2016-08-10 | 北京联创信安科技股份有限公司 | 一种集群存储系统的数据管理方法及系统 |
CN102904948A (zh) * | 2012-09-29 | 2013-01-30 | 南京云创存储科技有限公司 | 一种超大规模低成本存储系统 |
-
2015
- 2015-10-02 SG SG11201701440SA patent/SG11201701440SA/en unknown
- 2015-10-02 US US15/509,109 patent/US20170277477A1/en not_active Abandoned
- 2015-10-02 JP JP2017514472A patent/JP2017531857A/ja active Pending
- 2015-10-02 EP EP15847287.8A patent/EP3180690A4/en not_active Withdrawn
- 2015-10-02 WO PCT/SG2015/050367 patent/WO2016053198A1/en active Application Filing
- 2015-10-02 CN CN201580053670.2A patent/CN107111481A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019139759A (ja) * | 2018-02-06 | 2019-08-22 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 |
JP7437117B2 (ja) | 2018-02-06 | 2024-02-22 | 三星電子株式会社 | ソリッドステートドライブ(ssd)及び分散データストレージシステム並びにその方法 |
KR20220080329A (ko) * | 2020-12-07 | 2022-06-14 | 인하대학교 산학협력단 | Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 |
KR102531765B1 (ko) | 2020-12-07 | 2023-05-11 | 인하대학교 산학협력단 | Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2016053198A1 (en) | 2016-04-07 |
SG11201701440SA (en) | 2017-04-27 |
US20170277477A1 (en) | 2017-09-28 |
EP3180690A1 (en) | 2017-06-21 |
EP3180690A4 (en) | 2018-10-03 |
CN107111481A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017531857A (ja) | 分散型能動ハイブリッドストレージシステム | |
US10979383B1 (en) | Systems, methods and devices for integrating end-host and network resources in distributed memory | |
US10949303B2 (en) | Durable block storage in data center access nodes with inline erasure coding | |
US11385999B2 (en) | Efficient scaling and improved bandwidth of storage system | |
US10990490B1 (en) | Creating a synchronous replication lease between two or more storage systems | |
US10282262B2 (en) | Non-disruptive controller replacement in a cross-cluster redundancy configuration | |
US20180024964A1 (en) | Disaggregated compute resources and storage resources in a storage system | |
US10942869B2 (en) | Efficient coding in a storage system | |
US20200387479A1 (en) | Using data characteristics to optimize grouping of similar data for garbage collection | |
US8069366B1 (en) | Global write-log device for managing write logs of nodes of a cluster storage system | |
US10585768B2 (en) | Cross-platform replication | |
US10942815B2 (en) | Storage control system managing file-level and block-level storage services, and methods for controlling such storage control system | |
US10230544B1 (en) | Efficient data forwarding in a networked device | |
US10944671B2 (en) | Efficient data forwarding in a networked device | |
KR101983208B1 (ko) | 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템 | |
US20200401458A1 (en) | Adaptive Work Distribution in Distributed Systems | |
US11665046B2 (en) | Failover port forwarding between peer storage nodes | |
KR101778907B1 (ko) | 분산 저장 시스템에서의 캐시 및 비-캐시 사용 | |
US10305987B2 (en) | Method to syncrhonize VSAN node status in VSAN cluster | |
KR20230022130A (ko) | 메모리로 원격 데이터를 전송하기 위한 시스템, 방법, 및 장치 | |
US20190037013A1 (en) | Methods for managing workload throughput in a storage system and devices thereof | |
EP3485363A1 (en) | Distributed integrated high-speed solid-state non-volatile random-access memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170426 |
|
A529 | Written submission of copy of amendment under section 34 (pct) |
Free format text: JAPANESE INTERMEDIATE CODE: A529 Effective date: 20170511 |