JP6955466B2 - Ssdのデータ複製システム及び方法 - Google Patents

Ssdのデータ複製システム及び方法 Download PDF

Info

Publication number
JP6955466B2
JP6955466B2 JP2018052308A JP2018052308A JP6955466B2 JP 6955466 B2 JP6955466 B2 JP 6955466B2 JP 2018052308 A JP2018052308 A JP 2018052308A JP 2018052308 A JP2018052308 A JP 2018052308A JP 6955466 B2 JP6955466 B2 JP 6955466B2
Authority
JP
Japan
Prior art keywords
essd
active
passive
essds
host
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.)
Active
Application number
JP2018052308A
Other languages
English (en)
Other versions
JP2018173949A5 (ja
JP2018173949A (ja
Inventor
ラムダス カチェア,
ラムダス カチェア,
フレッド ワーレイ,
フレッド ワーレイ,
ソンポン ポール オラリグ,
ソンポン ポール オラリグ,
オスカー ピント,
オスカー ピント,
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018173949A publication Critical patent/JP2018173949A/ja
Publication of JP2018173949A5 publication Critical patent/JP2018173949A5/ja
Application granted granted Critical
Publication of JP6955466B2 publication Critical patent/JP6955466B2/ja
Active 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、データ複製に関し、より詳細には、NVMe−oFeSSD(solid−state drive)のデータ複製システム及び方法に関する。
SSD(solid−state drives)は従来のハードディスクドライブ(hard disk drives:HDDs)を代替する現代情報技術(information technology:IT)インフラの主要格納要素になっている。SSDは、低いレイテンシ(latency)、高いデータ読出し/書込み処理量、及び信頼できる使用者データ格納を提供する。NVMe−oF(non−volatile memory express over fabrics)は数百及び数千個のNVMe−互換SSDをイーサーネット(登録商標)(Ethernet(登録商標))(以降、「イーサーネット」の(登録商標)は省略する。)のようなネットワークファブリック(network fabric)を通じて連結する新技術である。イーサーネット連結を通じてNVMe−oF標準と互換されるSSDは、イーサーネット−連結(Ethernet−attached)SSD、又は簡単にeSSDという。
NVMe−oFプロトコルは多数のeSSDがネットワークファブリックを通じて遠隔ホストに連結されるrDAS(remote direct−attached storage)プロトコルを支援する。NVMe−oFプロトコルは、ネットワークファブリックを通じて遠隔ホストとeSSDとの間にNVMe命令、データ、及び応答を伝達することができる信頼性ある伝送サービスを提供するためにRDMA(remote direct memory access)プロトコルを支援する。RDMAサービスを提供する伝送プロトコルの例としてInfiniBand、iWARP、RoCE v1、及びRoCE v2がある。
使用者データに対する信頼性あるアクセスはデータストレージシステムの最も重要な要求事項の中の1つである。信頼性及びデータ可用性を必要な程度に達成するためにデータストレージシステムの多様な地点で多様な技術及び方法が使用される。例えば、ストレージ装置に書き込まれたデータは、ストレージ装置が使用できなくなった時のバックアップストレージ装置として1つ以上の他のストレージ装置に複製される。このデータ複製スキームはしばしばミラーリング(mirroring)又はバックアップ(back−up)という。
複数のeSSDが接続されたシャーシ(chassis)内で、各eSSDはイーサーネットを通じてホストに直接連結される。ホストはデータミラーリングのために2つ以上のeSSDに対してデータ複製を遂行する。しかし、ホストによるデータ複製機能の具現は、ホスト及びシステムソフトウェアに負担を加重させ、結果的にデータ入/出力(I/O)動作に付加的なレイテンシ(latency)を追加し、データストレージシステムに対する全体費用を増加させる。
或いは、インライン(inline)RAID(redundant array of independent disks)コントローラがホストに対して透過的(トランスペアレント)にデータ複製を遂行するためにSSDに埋め込まれる。しかし、RAIDコントローラは一般的に高くて付加的なレイテンシを追加してI/O性能を低下させる。また、RAIDコントローラが埋め込まれたSSDは、多くの負荷又は最大の秒当たり入出力動作(input/output operations per second:IOPS)で最大電力コスト又はそれと類似な電力を消費し、NVMe−oF標準に応じたeSSDの電力消費要求事項を充足させない。従って、eSSDに埋め込まれたRAIDコントローラによるデータ複製はNVMe−oF−互換データストレージシステムに対して適合するソリューションではない可能性がある。
米国特許第9,015,525号明細書 米国特許第9,471,259号明細書 米国特許出願公開第2016/0352831号明細書 米国特許出願公開第2010/0082792号明細書 米国特許出願公開第2016/0299704号明細書 米国特許出願公開第2016/0004877号明細書
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、SSDs(solid−state drives)のデータ複製システム及び方法を提供することにある。
上記目的を達成するためになされた本発明の一態様によるデータ複製方法は、複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するためのファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するためのベースボード管理コントローラ(BMC)をシャーシ内に含むデータ複製システムのデータ複製方法であって、前記BMCを用いて、前記複数のeSSDの中の1つをアクティブeSSDとして構成する段階と、前記複数のeSSDの中の1つ以上を1つ以上のパッシブeSSDとして構成する段階と、前記ファブリックスイッチをプログラムして、前記アクティブeSSDに向かうパケットを前記アクティブeSSD及び前記1つ以上のパッシブeSSDの両方に伝送する段階と、を有し、前記アクティブeSSDで、ホストからホストデータ書込み命令を受信する段階と、前記アクティブeSSDから前記ホストデータに対応するアドレス及び命令を前記1つ以上のパッシブeSSDに送信する段階と、前記アクティブeSSDに前記ホストデータを格納する段階と、前記アクティブeSSDから受信されたアドレス及び命令並びに前記ファブリックスイッチによって伝送されたパケット内で受信された前記ホストデータを用いて前記1つ以上のパッシブeSSDの各々に前記ホストデータのコピーを格納する段階と、を含む。
上記目的を達成するためになされた本発明の一態様によるデータ複製システムは、複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するためのファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するためのベースボード管理コントローラ(BMC)をシャーシ内に備え、前記BMCは、前記複数のeSSDの中の1つをアクティブeSSDとして構成し、前記複数のeSSDの中の1つ以上を1つ以上のパッシブeSSDとして構成し、前記ファブリックスイッチをプログラムして、前記アクティブeSSDに向かうパケットを前記アクティブeSSD及び前記1つ以上のパッシブeSSDの両方に伝送し、前記アクティブeSSDは、ホストから受信されたホストデータの書込み命令に応答してホストデータを格納し、前記アクティブeSSDは、前記ホストデータに対応するアドレス及び命令を前記1つ以上のパッシブeSSDに伝送し、前記1つ以上のパッシブeSSDの各々は、前記アクティブeSSDから受信されたアドレス及び命令並びに前記ファブリックスイッチによって伝送されたパケット内で受信された前記ホストデータを用いて前記ホストデータのコピーを格納する。
本発明のデータ複製システム及び方法は、データ複製機能が主にeSSD(即ち、アクティブ(active)eSSD及びパッシブ(passive)eSSD)及びシャーシ(chassis)内のイーサーネットスイッチで具現されるため、データ複製を提供するための費用の側面で効果的であり、効率的なソリューションである。本発明のデータ複製システム及び方法によれば、複雑なシステムソフトウェア及びハードウェアに対する必要性を無くし、追加演算、格納装置、及び電力のためのホスト側の負担及び費用を減少させる。本発明のデータ複製はホスト側の最小限の変更のみでeSSD及びイーサーネットスイッチを含むシャーシ内に具現される。
本発明のデータ複製システム及び方法によれば、アクティブeSSDと関連するパッシブeSSDとの間に完全な一貫性を保証することができ、データ損失がない。一部のデータ損失を許容する場合、使用者アプリケーションは更に良いレイテンシを達成することができる。
一実施形態によるNVMe−oFシステムの一例のブロック図である。 一実施形態によるNVMe−oFシステムの他の例のブロック図である。 一実施形態によるNVMe−oFシステムのデータ複製のプロセスを示す図である。 一実施形態によるシャーシ内のeSSD及びイーサーネットスイッチを初期化及びプログラミングしてデータ複製を具現するためのフローチャートである。 一実施形態によるアクティブeSSDによってホスト命令を処理するためのフローチャートである。 一実施形態によるデータ複製プロセスの一例を示す図である。 一実施形態によるパッシブeSSDによってホスト命令を処理するためのフローチャートである。 一実施形態によるアクティブeSSDからパッシブeSSDにLBA及び命令を伝達するためのフローチャートである。 一実施形態によるパッシブeSSDによってデータ複製を処理するためフローチャートである。 一実施形態による誤謬解決動作のためのフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
具現及びイベントの組合せの多様な新規な細部事項を含む上記及び他の望ましい特徴は、図面を参照してより具体的に説明し、特許請求の範囲に記載する。ここに記述した特定システム及び方法は、単なる例示として図示したものであり、これに制限されないことを理解すべきである。当業者が理解することができるように、本明細書で説明する原理及び特徴は本発明の範囲を逸脱せずに多様であり数多くの実施形態に適用される。
本明細書で説明する一部に含まれる図面は、現在の望ましい実施形態を図示し、上述した一般的な説明及び下記に説明する望ましい実施形態の詳細な説明と共に本明細書にその原理を説明し、教示する役割をする。
図面は必ずしも寸法通りに描かれたものではなく、類似な構造又は機能の要素は図面の全体に亘って例示的な目的のために類似な参照符号で一般的に表示する。図面は本明細書で説明する多様な実施形態の説明を容易にするためのものである。図面は、本願に開示する教示の全ての様態を記述するものではなく、特許請求の範囲を制限しない。
本明細書に開示する各々の特徴及び教示は個別的に又は他の特徴及び教示と共に利用されてイーサーネットSSDでデータ複製を提供する。個別的に又は組合せとして、多くの追加の特徴及び教示を利用する代表的な例を、図面を参照しながらより詳細に説明する。詳細な説明は、本発明の様態を実施するための詳細な説明を当業者に教示するためのものであり、特許請求の範囲を制限しようとするものはない。従って、詳細な説明で開示する特徴の組合せは、最も広い意味での教示を遂行するために必須的ではなく、単なる本発明の教示の特に代表的な例を説明するために使用する。
以下の説明で、単なる説明の目的のために、特定名称を本開示の完全な理解を提供するために提示する。しかし、当業者にはこのような特定細部事項が本開示の教示を実行するために要求されないことが明確である。
本明細書の詳細な説明の一部分はコンピュータメモリ内のデータビットに対する演算のアルゴリズム及びシンボル表現で提供される。このようなアルゴリズムの説明及び表現はデータ処理技術分野の当業者がそれらの作業内容を当業者に効果的に伝達するために使用される。本明細書のアルゴリズムは一般的に所望する結果を誘導する段階の一貫性あるシークェンスと看做す。各段階は物理的量を物理的に操作しなければならない段階である。一般的に必ずしもそうではないが、このような量は格納、伝送、結合、比較、及びその他の操作が可能な電気又は磁気信号の形態を有する。殆どの信号をビット、値、エレメント、記号、文字、用語、数字等を参照して一般的に使用することが便利であることが立証される。
しかし、これら及び類似な用語の全ては、適切な物理的量に関連しており、単なるこれらの量に適用される便利なラベルであることに留意しなければならない。以下の説明から明確なように、特別に言及しない限り、説明の全体に亘って“処理”、“コンピューティング”、“計算”、“決定”、“ディスプレイ”のような用語を使用する論議はコンピュータシステム又は類似な電子コンピューティング装置の動作及びプロセスを言及し、コンピュータシステムのレジスター及びメモリ内の物理(電子)量に表現されたデータをコンピュータシステムメモリ若しくはレジスター又はその他の情報ストレージ装置、伝送装置若しくはディスプレイ装置内で物理量として類似に表現される他のデータに操作及び変換するコンピュータシステム又は類似な電子コンピューティング装置の動作及びプロセスを称する。
ここに提示するアルゴリズムは本質的に任意の特定コンピュータ又は他の装置に関連しない。多様な汎用システム、コンピュータサーバー、又はパーソナルコンピュータは、本明細書の教示に応じるプログラムと共に使用されるか、或いは要求された方法の段階を遂行するためにより専門化された装置を構成することが便利なこともある。このような多様なシステムに必要な構造は下記の説明で示される。本明細書で説明するように本発明の開示内容を具現するために多様なプログラミング言語が使用されることを理解すべきである。
また、代表例及び従属請求項の多様な特徴は本発明の教示の追加的な有用な実施形態を提供するために具体的に及び明示的に列挙されない方式で結合される。また、全ての値の範囲又は個体のグループは請求された主題を制限するための目的のみならず、独創的な公開目的に全ての可能な中間値又は中間個体を開示する点に明示的に留意する。また、図面に示す構成要素の寸法及び形状は本発明の教示がいかに遂行されるかを理解することを助けるために設計されたものとして、実施形態に図示する寸法及び形状を制限しようするものではない点を明示的に言及する。
本開示はNVMe−oF標準(本明細書でイーサーネットSSD又はeSSDと称する)と互換可能な1つ以上のSSDを使用したデータ複製(data replication)システム及び方法を提供する。本発明のデータ複製システム及び方法によって用いられるデータ複製は、ホスト参加、又はCPU(central processing unit)やRAIDコントローラのような高価で性能に影響を及ぼす外部構成要素無しに達成される。
一実施形態によると、シャーシ160内のeSSD170の各々は、アクティブ、パッシブ、及びノーマルの3つのモードに構成されて動作する。シャーシのベースボード管理コントローラ(baseboard management controller:BMC)は、シャーシ内のeSSDの中の1つをアクティブeSSDとしてプログラムし、残りのeSSDの中の1つ以上をパッシブeSSDとしてプログラムする。アクティブeSSD及びパッシブeSSDのどちらにも構成されないeSSDは、ノーマルモードで動作し、標準NVMe−oFSSDとして動作する。アクティブ及びパッシブeSSDの中で、アクティブeSSDのみが遠隔ホスト(remote host)に可視化され(発見され)、遠隔ホストと共にNVMe−oFプロトコルの終了を遂行する。反面、パッシブeSSDは遠隔ホストに可視化され(発見され)ない。ネットワークファブリック(例えば、イーサーネット)に位置する遠隔ホストは説明の便宜のために単にホスト(host)と称する。
アクティブeSSDは、ホストによって発行された命令を処理し、ホストにそしてホストからのデータ伝送を遂行し、ホスト命令の成功的な完了又は実行失敗を示すために完了キュー(completion queue:CQ)エントリ(entries)をホストに送信する。シャーシ内のパッシブeSSDは、ホスト命令を実行するか、或いはホストプロトコルに参加することもない。代わりにパッシブeSSDはアクティブeSSDに向かう進入トラフィックパケット(ingress traffic packets)を受動的に受信する。例えば、シャーシ内のイーサーネットスイッチ(ファブリックスイッチ)はアクティブeSSDに向かう全ての進入パケットをアクティブeSSDに関連するようにプログラムされたパッシブeSSDに複製するようにプログラムされる。
一実施形態によると、パッシブeSSDはRDMA読出し応答(RDMA READ RESPONSE)パケットを除外した全ての複製された進入パケットを破棄する。RDMA読出し応答パケットはホスト書込みデータを提供し、ホスト書込みデータはホストのFIFOバッファに維持される。FIFOバッファ内のホスト書込みデータはアクティブeSSDによってフェッチ(fetch)される。ホスト書込みデータをフェッチした後、アクティブeSSDは命令(例えば、書込み命令)に関連するLBA(logical block address)及び/又はホスト書込みデータを書き込むためのネームスペースを関連するパッシブeSSDに提供する。アクティブeSSDによって提供された命令及びLBA、そして複製されたRDMA読出し応答パケットから受信されたデータを用いて、パッシブeSSDは複製されたデータを自体の不揮発性メモリに書き込む。パッシブeSSDの不揮発性メモリはフラッシュメモリ又は永久メモリ(persistent memory)である。構成によって、1つ以上のパッシブeSSDがホスト書込みデータを複製する。
一実施形態によると、アクティブeSSDが関連するパッシブeSSDに送信したLBA/ネームスペース及び書込み命令は送信キュー及び受信キューを含むRDMAキュー対(queue pair:QP)内に細部事項を含む。アクティブeSSDとパッシブeSSDとの間に設定された経路内にホストによってイネーブルされたQPを通じて追加情報交換を要求する多数のアクティブQPがある。一実施形態によると、パッシブeSSDは全てのRDMA読出し応答でQP及びデータシークェンシングのようなホスト書込み関連に関するデータチャンク上の追加的な情報のためのRDMAヘッダーを覗き見する。
一実施形態によると、アクティブeSSDは、ホストからホスト書込み要請を受信した後、1つ以上のRDMA読出し要請をホストに送信する前に書込み命令を1回送信する。アクティブeSSDは、ホスト書込みがどのように1つ以上の個別RDMA読出し要請に分類されるか、そして関連するデータがどのようにセグメント分散収集リスト(segment scatter gather list:SGL)から受信されるかを予め計算する。これはPCIeバス又はネットワークファブリックのみならず、専用チャンネルのトラフィックを減少させ、これにより多数のQP連結が多数のデータ複製セットに亘ってなされる時にI/O性能を向上させる。また、データがエンクロージャー(enclosures)、ラック(racks)、データセンター、及び様々な地理的位置に亘って複製される時にデータ複製のオーバーヘッドを減少させる。
パッシブeSSDは、ホスト書込みデータが成功的に維持されたか、又はホスト書込みデータの格納が失敗したことを示す確認をアクティブeSSDに送信するように構成される。アクティブeSSDは完了キューエントリをホストに送信する前に関連する全てのパッシブeSSDからの確認を待機する。このような確認メカニズムは、常にホスト書込みデータのデータ持続性を保護し、保証する。
本発明のデータ複製システム及び方法はデータ複製機能を支援するためにRAID−on−Chip(ROC)のためのターゲット側のx86サーバー又は外部ASIC(application−specific integrated circuit)を必要としない。本発明のデータ複製システム及び方法は、ホストの付加的なハードウェア及びソフトウェアオーバーヘッドを除去又は減少させることによってデータストレージ性能を向上させながら、総所有コスト(total cost of ownership:TCO)を減少させる。本発明のデータ複製システム及び方法はデータ複製がデータI/O動作と同時に遂行される従来のインライン(in−line)データ複製ソリューションに比べて向上したI/Oレイテンシ及び帯域幅性能を有する。
本発明のデータ複製システム及び方法は、データ複製機能が主にeSSD(即ち、アクティブ(active)eSSD及びパッシブ(passive)eSSD)及びシャーシ(chassis)内のイーサーネットスイッチで具現されるため、データ複製を提供するための費用の側面で効果的であり、効率的なソリューションである。本発明のデータ複製システム及び方法は、複雑なシステムソフトウェア及びハードウェアに対する必要性を無くし、追加演算、格納装置、及び電力のためのホスト側の負担及び費用を減少させる。本発明のデータ複製機能は、ホスト側の最小限の変更で、又は変更無しでeSSD及びイーサーネットスイッチを含むシャーシ内に具現される。
図1は、一実施形態によるNVMe−oFシステムの一例のブロック図である。NVMe−oFシステム100はホスト110及び1つ以上のNVMe−oF−互換イーサーネットSSD(eSSD)を含むシャーシ160(本明細書でeSSDシャーシとも称する)を含む。例えば、シャーシ160は24又は48個のeSSDを含む。シャーシ160内のeSSDは各々eSSD(170a〜170n)(本明細書で集合的にeSSD170と称する)で表示される。ホスト110は、アプリケーション111、オペレーティングシステム(operating system:OS)とファイルシステム(file system:FS)112、及びNVMe−oFドライバー113を含む。ホスト110のイニシエータ(initiator、例えばアプリケーション111)はNVMe−oFドライバー113を用いてイーサーネット150を通じてeSSD170との連結を設定する。シャーシ160は、イーサーネットスイッチ161、ベースボード管理コントローラ(baseboard management controller:BMC)162、及びPCIeスイッチ163を含む。ファブリックスイッチとしてのイーサーネットスイッチ161はミッドプレーン(midplane)165を通じてeSSD170にイーサーネット連結を提供し、PCIeスイッチ163はミッドプレーン165を通じてeSSD170に管理インターフェイス164を提供する。この例で、eSSD170の中の1つはアクティブeSSDとして構成され、他のeSSDはパッシブeSSDとして構成される。BMC162はシステム管理者によって与えられた命令に応じてeSSD170をプログラムする。
イーサーネットスイッチ161はホスト110とeSSD170との間にネットワーク連結を提供する。イーサーネットスイッチ161は1つ以上のホストに連結するための大容量(例えば、100Gbps)アップリンク(uplinks)を有する。また、イーサーネットスイッチ161はeSSD170に連結するための多数の低容量(例えば、25Gbps)ダウンリンク(downlinks)を有する。例えば、イーサーネットスイッチ161は100Gbpsの12個のアップリンク及び25Gbpsの24又は48個のダウンリンクを含む。イーサーネットスイッチ161はBMC162に対する専用(special)構成/管理ポート(図示せず)を有する。
BMC162は、イーサーネットスイッチ161、PCIeスイッチ163、及びeSSD170を含むシャーシ160内の内部構成要素を管理する。BMC162はシステム管理のためにPCIe及び/又はSMBusインターフェイスを支援する。BMC162はアクティブeSSD及びパッシブeSSDを構成し、イーサーネットスイッチ161をプログラムする。アクティブeSSDが失敗すると、BMC162は誤謬解決スイッチング(failover switching)を遂行し、新たなアクティブeSSDを指定し、必要に応じて追加的なパッシブeSSDを構成する。
一実施形態によると、シャーシ160内のeSSD170は、アクティブ、パッシブ、及びノーマルの3つのモードの中の1つで動作する。アクティブeSSD及び1つ以上のパッシブeSSDとして構成されたeSSD170は所望のデータ複製を提供する。一部の実施形態で、シャーシ160は多数のアクティブ/パッシブeSSDセットを含む。所定のeSSDに対してデータ複製を必要としない場合、BMC162はeSSDをノーマルモードに構成する。ノーマルeSSDで構成されたeSSDは標準NVMe−oFSSDとして動作する。
図2は、一実施形態によるNVMe−oFシステムの他の例のブロック図である。NVMe−oFシステム200はホスト210及びイーサーネット250を通じてホスト210に連結される複数のeSSDシャーシ(260a〜260m)(集合的にeSSDシャーシ260と称する)を含む。ホスト210は、アプリケーション211、オペレーティングシステム(OS)とファイルシステム(FS)212、及びイーサーネット250を通じてラック(rack)270内のeSSDシャーシ260の各々と連結するためのNVMe−oFドライバー213を含む。ラック270はラック270内の多数のeSSDシャーシ260の間に連結性を提供するTOR(top−of−rack)スイッチ271を含む。同様に、NVMe−oFシステム200は異なる位置に配置される多数のラック270を含む。ラック270はTORスイッチ271を通じて互いに連結される。多数のラック270のTORスイッチ271はイーサーネット250を通じて専用線又は外部スイッチを通じて直接互いに連結される。
図3は、一実施形態によるNVMe−oFシステムのデータ複製のプロセスを示す図である。NVMe−oFシステム300はホスト310及び多数のeSSD(370a〜370n)を含むシャーシ360を含む。例えば、シャーシ360は24又は48個のeSSDを含む。ホスト310は、アプリケーション311、オペレーティングシステム(OS)とファイルシステム(FS)312、及びNVMe−oFドライバー313を含む。ホスト310のイニシエータ(initiator、例えばアプリケーション311)はNVMe−oFドライバー313を用いてイーサーネット350を通じてアクティブeSSD370aとのNVMe−oF連結を設定する。シャーシ360は、イーサーネットスイッチ361、BMC362、及びPCIeスイッチ363を含む。イーサーネットスイッチ361はミッドプレーン365を通じてeSSD370にイーサーネット連結を提供し、PCIeスイッチ363はミッドプレーン365を通じてeSSD370に管理インターフェイス364を提供する。BMC362は多数のeSSD370の中の1つをアクティブeSSD370aとしてプログラムし、他のeSSDをパッシブeSSDとしてプログラムする。例示の便宜上、本例示は1つのアクティブeSSD370a及び1つのパッシブeSSD370bを図示する。しかし、eSSDの複製グループは、1つのアクティブeSSD及び1つ以上のパッシブeSSDを含み、本開示の範囲を逸脱しない限り、シャーシ内に1つ以上の複製グループが存在する。パッシブeSSD370bはアクティブeSSD370aに関連するように構成された多数のパッシブeSSDの中の1つを示す。パッシブeSSD370bによって遂行される活動はシャーシ360内の他のパッシブeSSDによって同時に遂行される。例えば、NVMe−oFシステム300がこのように構成された場合、同一のデータが2つ以上のパッシブeSSDに複製される。一部の実施形態で、シャーシ360は1つ以上の複製グループを含み、各々の複製グループは1つのアクティブeSSD及び複製グループ内のアクティブeSSDと共にデータ複製を提供するようにプログラムされた1つ以上のパッシブeSSDを含む。
アクティブeSSD370aはホスト310との全てのNVMe−oFプロトコル処理及び終了処理を行う。ホスト310とアクティブeSSD370aとの間のNVMe−oFシステム300の伝送プロトコルは、提出キュー(submission queue:SQ)及び完了キュー(completion queue:CQ)を用いて具現される。ホスト310で実行中のアプリケーション311によって呼出されるNVMe−oFドライバー313にアクティブeSSD370aが見えるように、アクティブeSSD370aの位置アドレスはホスト310に通知される。アクティブeSSD370aがホスト書込みデータを受信すると、アクティブeSSD370aは、ホスト書込みデータ及び必要な命令に関連する1つ以上のLBAを、専用通信チャンネルを通じて関連するパッシブeSSD370bに送信する。一実施形態で、アクティブeSSD370a及びパッシブeSSD370bは、イーサーネットスイッチ361を通じて、又はシャーシ360内のPCIeスイッチ363を通じて専用の低い帯域幅通信チャンネルを形成する。
パッシブeSSD370bはアクティブeSSDに書き込まれたホストデータのコピーを格納する。BMC362は、パッシブeSSD370bがアクティブeSSD370aに向かう全てのイングレス(進入)パケット(ingress packets)のコピーを受信するために、アクティブeSSD370aに指定されたアクティブイングレストラフィック(ingress traffic)をパッシブeSSD370bに複製するようにイーサーネットスイッチ361をプログラムする。パッシブeSSD370bは、受信されたパケットをフィルタリングし、受信されたパケットの中のRDMA読出し応答(RDMA READ RESPONSE)パケットのみを維持する。パッシブeSSD370bは、受信されたRDMA読出し応答パケットを分析し、RDMA読出し応答パケットに含まれるホスト書込みデータチャンク(chunks)を取出す。また、パッシブeSSD370bはアクティブeSSDからデータ複製命令及びデータチャンクに対応するLBAを受信する。パッシブeSSD370bはLBA情報及びRDMA読出し応答パケットから受信されたデータを用いてホストデータを自分の格納媒体に維持する。一部の実施形態で、イーサーネットスイッチ361はイングレスパケットをフィルタリングしてRDMA読出し応答パケットのみをパッシブeSSDに提供する。ホストデータが維持された後、パッシブeSSD370bは設定された専用通信チャンネルを通じてアクティブeSSD370aに確認(confirmation)を送信する。
BMC362はストレージ管理者の指導の下にデータ複製機能を設定する役割を担う。一実施形態で、BMC362はeSSD370を構成するためにSMBus又はPCIeバスを通じてNVMe−MIプロトコルを使用する。先ず、BMC362は、eSSDを識別し、eSSDをアクティブモードにプログラムする。また、BMC362は、1つ以上のeSSDを選択し、eSSDをパッシブeSSDとしてプログラムする。BMC362によって構成されたパッシブeSSDの数はストレージ管理者によって指定されたデータコピーの数に依存する。BMC362はこのようなeSSDをパッシブモードにプログラムする。
アクティブ及びパッシブeSSD370が適切に構成されると、BMC362はイーサーネットスイッチ361を構成する。イーサーネットスイッチ361はアクティブeSSD370aに対応するダウンリンクポートに向かうイングレスパケットをパッシブeSSD370bに対応するダウンリンクポートに複製して伝送する。eSSD370及びイーサーネットスイッチ361が適切に構成された後に、格納管理者及び/又はBMC362はeSSD370がデータ格納及び複製のために準備されたことをホスト310のアプリケーション311及びOS/ファイルシステム312に通知する。
図4は、一実施形態によるシャーシ内のeSSD及びイーサーネットスイッチを初期化及びプログラミングしてデータ複製を具現するためのフローチャートである。初期化プロセスはストレージ管理者によって発行された初期化命令によって開始(trigger)される(400段階)。初期化命令に応答して、シャーシのBMCはeSSDを選択し(401段階)、アクティブeSSDとして構成されるように選択されたeSSDをプログラムする(402段階)。一実施形態によると、初期化命令はアクティブeSSDに対する固有識別子(例えば、IPアドレス、MACアドレス)を含み、BMCはSMBus又はPCIeバスを通じてNVMe−MIプロトコルを使用してアクティブeSSDに構成命令を送信してアクティブモードに構成する。
アクティブeSSDがプログラムされた後、シャーシ内のBMCは1つ以上のeSSDを選択し(403段階)、選択されたeSSDをパッシブeSSDとしてプログラムする(404段階)。一実施形態によると、シャーシのBMCはストレージ管理者から受信された初期化命令で指示されたようにパッシブeSSDを選択してプログラミングする。例えば、BMCに対する初期化命令はパッシブeSSDの識別子(例えば、IPアドレス、MACアドレス)を含み、BMCはNVMe−MIプロトコルを使用してSMBus又はPCIeバスを通じて各々のパッシブeSSDに構成命令を送信してパッシブeSSDをパッシブモードに構成する。
一実施形態によると、アクティブeSSD及びパッシブeSSDの選択及びプログラミングは同時に又は反対の順序で遂行される。即ち、BMCは、先ずパッシブeSSDを選択してプログラムし、アクティブeSSDを選択及びプログラムするか、又はアクティブeSSD及びパッシブeSSDを同時に構成する。
eSSDがプログラムされた後に、BMCはシャーシのイーサーネットスイッチをプログラムする(405段階)。例えば、イーサーネットスイッチはアクティブeSSDとパッシブeSSDとの間に関連性を提供するマッピングテーブルを生成する。プログラムされた後、イーサーネットスイッチはアクティブeSSDに向かうイングレスパケットを関連するパッシブeSSDに複製する。一実施形態で、イーサーネットスイッチは、イングレスパケットをフィルタリングし、RDMA読出し応答パケットのみをパッシブeSSDに送信する。
アクティブeSSDは、ホストによって発見可能であり、ホストで実行中のNVMe−oFドライバーと通信する。ホストはNVMe−oFプロトコルを使用してアクティブeSSDにホスト命令を送信する。アクティブeSSDは、全てのホスト命令を実行し、必要な全てのデータ伝送を遂行し、そして命令完了キューエントリをホストに送信する。即ち、アクティブeSSDは、NVMe−oFプロトコル処理を遂行し、ノーマルeSSDによって遂行されるようにホスト命令を実行する。また、アクティブeSSDは1つ以上のパッシブeSSDと併せてデータ複製を支援する。データ複製は主にホスト書込み命令に関連する。ホスト読出し命令の場合、アクティブeSSDは特定機能を支援する必要がない。
ホスト書込み命令に対して、アクティブeSSDはホストからデータをフェッチ(fetch)する役割をする。一実施形態によると、アクティブeSSDはRDMA読出し(RDMA READ)要請をホストに発行してホストデータをフェッチする。呼応して、ホストは1つ以上のRDMA読出し応答(RDMA READ RESPONSE)パケットを用いてデータチャンクを送信する。アクティブeSSDは、RDMA読出し応答パケット内で受信されたホストデータチャンクを内部フラッシュメモリに格納するか、或いはホストデータを電力損失防止バッファ(power−loss−protected buffer)に維持する。
RDMA読出し応答パケット内で受信されたホストデータの全てのデータチャンクに対して、アクティブeSSDは関連するネームスペース(NAMESPACE)及びLBA情報を書込み命令と共に関連する1つ以上のパッシブeSSDの各々に送信する。このような通信はアクティブ及びパッシブeSSDの間に設定された専用通信チャンネルを通じて遂行される。専用通信チャンネルはシャーシのイーサーネットスイッチ又はPCIeスイッチを通じて形成される。アクティブeSSDが動作しなくなるか、或いはアクティブeSSDが受信されたデータチャンクの書込みに失敗した場合、アクティブeSSDはパッシブeSSDに破棄命令を送信してデータチャンクを破棄する。
ホストデータが局所的に維持され、NAMESPACE.LBA情報がパッシブeSSDに送信されると、アクティブeSSDは一貫性モードに基づいてホストに命令完了(command completion)を送信する。一実施形態によると、アクティブeSSDは、データ持続性に関するパッシブeSSDからの応答を待機せずに、直ちにホストに命令完了を送信する。本明細書で、略完全な一貫性モード(almost−perfect consistency mode)と称される即時命令完了応答(immediate command−completion−response)は、バックアップコピーが忠実に持続されないリスクで、わずかに優れたレイテンシ性能を提供する。このようなエラーケースが発生する確率は小さく、少量のデータ損失を許容するアプリケーションが存在する可能性がある。このようなエラーケースに対する詳細な分析は以下で詳細に説明する。
他の実施形態によると、アクティブeSSDはパッシブeSSDからデータ持続性の確認を待つ。1つ以上のコピーが複製された場合、アクティブeSSDは命令完了エントリをホストに送信する前に関連する1つから全てのパッシブeSSDまでの確認を待つ。データ複製はメーンデータ経路(例えば、アクティブeSSDへの)内のホストデータのストレージと並列に発生するため、パッシブeSSDからの確認を待つことは、ホストで実行中の応用プログラムが許容するか否かに関係なく適度なレイテンシを追加することになる。即時命令完了応答を使用する略完全な一貫性モードとは異なり、完全な一貫性モード(perfect consistency mode)と称される関連する全てのパッシブeSSDからの応答を待つこの動作モードはデータ損失無しに忠実なデータ一貫性を保証する。
一実施形態によると、NVMe−oFシステムの一貫性モードは多様な使用者QoS(quality of service)ポリシーを使用してBMCによって設定される。一貫性とレイテンシとの間のトレードオフはアプリケーションに依存的であり、BMCはストレージ管理者の指示に応じて多様なポリシーを具現する。アクティブ及びパッシブeSSDがデータ一貫性の観点で同期化されない場合、復旧されるか、或いは同一な同期化レベルになるようにする必要がある。このような復旧機能はBMCによって管理される。復旧作業を容易にするために、アクティブeSSDは最後の“n”回の成功的な書込み動作ログを維持する。例えば、ログはNAMESPACE.LBAと特定書込み動作を示すマーカー(marker)を含む。
また、アクティブeSSDはデータ複製プロセスを容易にするために関連するパッシブeSSDに一部の管理命令を送信する。このような管理命令の例としては、生成/削除ネームスペース(NAMESPACE)及びトリム(Trim)命令等があるが、これらに限定されない。管理命令を実行した後、パッシブeSSDは確認を再びアクティブeSSDに送信する。
図5は、一実施形態によるアクティブeSSDによってホスト命令を処理するためのフローチャートである。パッシブeSSDで構成された全てのeSSDはアクティブeSSDとの関連性を有する。アクティブeSSDとパッシブeSSDとの間の関連性は図4に示した初期化の一部としてBMCによって設定される。パッシブeSSDの主要機能の中の1つはホストデータを複製することである。一実施形態で、パッシブeSSDは2つの並列FIFOキューを維持することによってホストデータのデータ複製を遂行し、2つの並列FIFOキューの1つはホストデータを格納するためであり(以下、“受信メッセージFIFO”と称する)、他の1つは書込みアドレス及び命令を格納するためである(以下、“LBA及び命令FIFO”と称する)。パッシブeSSDは、ホストデータがアクティブeSSDに書き込まれる時に、2つのFIFOを用いてホストデータを維持する。
アクティブeSSDは、ホストからホスト命令を受信し、ホスト命令が受信された時に受信されたホスト命令を提出キュー(submission queue:SQ)に配置する(500段階)。アクティブeSSDは提出キュー内のエントリを仲裁し(501段階)、提出キューから実行のためのホスト命令を選択する(502段階)。ホスト命令は、ホスト書込み命令(503段階)、管理命令(510段階)、又はノーマル命令(516段階)の中のいずれか1つである。
選択されたホスト命令がホスト書込み命令である場合(503段階)、ホスト書込み命令はアクティブeSSDの内部ストレージ装置に書き込むためのホストデータを含む。アクティブeSSDは、例えばストレージ装置のストレージユニット(例えば、ページのサイズ又はフラッシュメモリのブロックのサイズ)に応じてホストデータをデータチャンクに分割(segment)する(504段階)。アクティブeSSDはホスト書込み命令に関連する全てのデータチャンクがフェッチされたか否かを検査する(505段階)。分割されたデータチャンクの中のフェッチする少なくとも1つのデータチャンクが残っている場合、アクティブeSSDはホストにRDMA読出し要請を発行して残りのデータチャンクをフェッチする(506段階)。各データチャンクに対してアクティブeSSDはNAMESPACE.LBA及び命令を関連するパッシブeSSDの各々に送信する(507段階)。RDMA読出し要請をホストに発行してNAMESPACE.LBA及び命令をパッシブeSSDに発行することは同時に遂行される。データチャンクに対するRDMA読出し要請パケットが受信された後に、アクティブeSSDは内部ストレージ装置(例えば、フラッシュメモリ)にデータチャンクを維持させる(509段階)。フェッチされたデータチャンクはアクティブeSSDのデータバッファに一時的に格納され、単一ホスト書込み命令に関連する全てのデータチャンクは同時に維持される。
全てのデータチャンクがフェッチされて維持された場合、アクティブeSSDは一貫性モードをチェックする(513段階)。一実施形態によると、一貫性モードは“完全(perfect)”又は“略完全(almost perfect)”の中の1つに設定される。アクティブeSSDの一貫性モードが“完全”に設定された場合、アクティブeSSDはアクティブeSSDに関連する全てのパッシブeSSDからの確認を待機し(514段階)、完了キューエントリをホストに送信する(515段階)。アクティブeSSDの一貫性モードが“略完全”に設定された場合、アクティブeSSDは関連するパッシブeSSDからの確認を待機せずに完了キューエントリをホストに送信する(515段階)。
受信されたホスト命令がネームスペース生成命令を含む管理命令又は関連する1つ以上のパッシブeSSDに関連するトリム命令である場合(510段階)、アクティブeSSDは、受信された命令を実行し(511段階)、命令を該当するパッシブeSSDに送信する(512段階)。一貫性モードに応じて(513段階)、アクティブeSSDは、関連するパッシブeSSDからの確認を待機するか、又は待機せずに完了キューエントリをホストに送信する(515段階)。受信されたホスト命令がホスト書込み命令でも管理命令でもない場合、アクティブeSSDは受信された命令がデータ複製に関連しないノーマル命令であるとして取扱い、それに応じてノーマル命令を実行する(516段階)。
図6は、一実施形態によるデータ複製プロセスの一例を示す図である。シャーシ660内のイーサーネットスイッチ661は、イーサーネット連結を通じてホストからホスト命令を受信し、受信されたホスト命令をアクティブeSSD670aに伝送する。受信されたホスト命令はアクティブeSSD670aの提出キュー(SQs)に配置される。提出キューに配置されたホスト命令は、ホスト書込み命令、管理者命令(例えば、ネームスペース生成)、及びノーマル命令(例えば、ログページ取得)を含む。
提出キュー内の受信されたホスト命令の中のホスト書込み命令を処理する時、アクティブeSSD670aはホストにRDMA読出し要請を発行してホスト書込み命令に関連するデータをフェッチする。アクティブeSSD670aはホスト書込み命令に関連するホスト書込みデータのデータチャンクの各々に対する一連のRDMA読出し要請を発行する。各データチャンクに対して、アクティブeSSD670aはデータをパッシブeSSD670bに格納するためにNAMESPACE.LBA及び命令を送信する。一方、イーサーネットスイッチ661はアクティブeSSD670aに向かうイングレストラフィックをパッシブeSSD670bに複製するようにプログラムされる。
図7は、一実施形態によるパッシブeSSDによってホスト命令を処理するためのフローチャートである。パッシブeSSDはアクティブeSSDに向かう全てのイングレストラフィックを受信する(701段階)。イングレストラフィックは主にホスト命令を伝達するRDMA送信(RDMA SEND)パケット及びホスト書込み命令のためのホストデータを伝達するRDMA読出し応答(RDMA READ RESPONSE)パケットを含む。RDMAパケット以外にもイングレストラフィックは他のネットワークトラフィックを更に含む。パッシブeSSDは受信されたイングレスパケットを分析する(702段階)。パッシブeSSDはRDMA読出し応答パケットのみを維持するためにパケットフィルターロジックを使用して受信された全てのパケットをフィルタリングする(703段階)。パッシブeSSDはRDMA読出し応答パケット以外のイングレスパケットを破棄する(706段階)。パッシブeSSDは、RDMA読出し応答パケットをRDMAデータメッセージに組合せ(assemble)(704段階)、RDMA読出し応答パケットに含まれるホスト書込みデータを取出す(705段階)。
再び図6を参照すると、パッシブeSSDは、RDMA読出し応答パケットをRDMAデータメッセージに組合せ、これらを受信されたメッセージFIFO672に配置する。受信されたメッセージFIFO672はホストデータチャンクをパッシブeSSD670bのストレージ媒体に格納する前にこれらを一時的に格納する。また、パッシブeSSD670bはアクティブeSSD670aから受信されたNAMESPACE.LBA及び命令を別のバッファ(ここではLBA及び命令FIFO671と称する)に格納する。LBA及び命令FIFO671に格納されたNAMEPSACE.LBA及び命令は、識別子(identifier)又はマーカー(marker)を使用して受信されたメッセージFIFO672に配置された対応するホストデータを示す。パッシブeSSD670bは命令(例えば、書込み)及び対応するデータチャンクを使用するアドレスに基づいてホストデータを自体のストレージ媒体に維持する。ホストデータが維持された後、パッシブeSSD670bは専用通信チャンネルを通じてアクティブeSSD670aに確認を送信する。
図8は、一実施形態によるアクティブeSSDからパッシブeSSDにLBA及び命令を伝達するためのフローチャートである。受信された各々のデータチャンクに対して、アクティブeSSDは関連するLBA及び命令を関連するパッシブeSSDの各々に送信し、パッシブeSSDはLBA及び命令をLBA及び命令FIFOに配置する(801段階)。パッシブeSSDは受信されたイングレスパケットを分析してRDMA読出し応答パケットに含まれるホスト書込みデータのみを受信されたメッセージFIFOに配置する(802段階)。アクティブeSSDから受信されたLBA及び命令を用いて、パッシブeSSDはストレージ媒体にホストデータを維持させる(803段階)。パッシブeSSDはアクティブeSSDによって命令された通りにデータを複製するプロセスを繰り返す。
アクティブeSSDによる命令は、一般的にパッシブeSSDが対応するデータチャンクを提供されたNAMESPACE.LBAで格納するように指示する“書き込み(Write)”命令である。アクティブeSSDにデータチャンクを書き込めない場合は稀である。この場合、アクティブeSSDはパッシブeSSDに“破棄(Discard)”命令を送信する。パッシブeSSDが“破棄”命令に遭遇すると、パッシブeSSDは単純に該当データチャンクを投げる(throw)。また、アクティブeSSDがパッシブeSSDに送信する他の命令がある。このような命令は、ホスト又はアクティブeSSD及びパッシブeSSDを含むシャーシ内のイーサーネットスイッチ、BMC、又はPCIeスイッチからアクティブeSSDが受信するネームスペース管理命令(例えば、ネームスペース生成)及びトリム命令のような管理命令である。管理命令に対するプロトコルは、本発明の範囲を逸脱しない限り、他のホスト命令を含むように拡張される。パッシブeSSDがLBA及び命令FIFOで非データ(non−data)命令に遭遇すると、パッシブeSSDは受信されたメッセージFIFOに影響を与えずに非データ命令を実行する。
命令がパッシブeSSDによって実行される時、パッシブeSSDは選択的にアクティブeSSDに完了確認(completion confirmation)を送信する。このモードで、アクティブeSSDは元のホスト命令に対する完了キューエントリをホストに送信する前に関連する1つ以上のパッシブeSSDからの確認を待つ。この動作モードはアクティブ及びパッシブeSSDが常に互いに一致していることを保証する。
データチャンクの書込みに失敗するか又は命令の実行が失敗する場合は稀であるため、アクティブeSSDは関連するパッシブeSSDからの確認を待機しないこともある。関連するパッシブeSSDの中のいずれかがデータ書込みに失敗するか又は命令を実行できない場合、関連するパッシブeSSDの中の1つで誤謬が発生する。一実施形態によると、パッシブeSSDはアクティブeSSDによって命令された通りにホストデータを複製することに対する誤謬をシャーシ内のBMCに報告する。BMCは例外処理及び一貫性状態復旧のために適切な措置を取る。
図9は、一実施形態によるパッシブeSSDによってデータ複製を処理するためのフローチャートである。BMCは、アクティブeSSDを構成し、アクティブeSSDに1つ以上のパッシブeSSDを関連させる。
パッシブeSSDはLBA及び命令FIFO内のエントリを検査し(900段階)、LBA及び命令FIFOから次の命令を引き出す(901段階)。命令が書込み命令である場合(902段階)、パッシブeSSDはNAMESPACE.LBAに基づいて書込み命令に関連するデータチャンクを維持する(903段階)。命令が書込み命令ではない場合(902段階)、パッシブeSSDは命令が破棄命令であるか否かを判別する(906段階)。パッシブeSSDは破棄命令に応答してデータチャンクを破棄する(907段階)。命令が破棄命令ではない場合(906段階)、パッシブeSSDは命令が管理命令(909段階)であるか否かを更に判別し、管理命令を実行する(910段階)。命令が管理命令ではない場合(909段階)、パッシブeSSDはBMC(911段階)に警告し、エラー状態を報告する(912段階)。
パッシブeSSDの一貫性モードが完全(perfect)モードである場合(904段階)、パッシブeSSDは確認をアクティブeSSDに送信する(905段階)。パッシブeSSDの一貫性モードが略完全な((almost−perfect)モード(904段階)である場合、パッシブeSSDはエラーがあるか否かを確認する(908段階)。エラーが発生した場合、パッシブeSSDはエラーをBMCに報告する(911、912段階)。エラーが無い場合、パッシブeSSDはLBA及び命令FIFOを検査し(900段階)、LBA及び命令FIFOで次の命令を実行する(901段階)。
一実施形態によると、BMCはアクティブeSSD及びパッシブeSSDの健康状態(health status)を周期的にモニターリングする。例えば、BMCは、健康状態モニターリングのためにNVMe−MIプロトコル、及び特にNVMe−MI“Health Status Poll”命令を使用する。BMCは管理目的としてPCIeインターフェイス又はSMBusインターフェイスを使用する。アクティブeSSD又はパッシブeSSDの中の1つのeSSDは様々な理由でシャーシ内から引き出される。BMCは周期的にシャーシ内の各eSSDから“現在(Present)”信号を受信する。eSSDが引き出された場合、BMCはこの場合に対する報告を受信する。
BMCが現在のアクティブeSSDが失敗したか又はシャーシにそれ以上存在しないと判別した場合、BMCは誤謬解決(failover)動作を開始する。先ず、BMCはアクティブモードでシャーシ内のパッシブeSSD又はノーマルeSSDの中の1つをプログラムする。必要な場合、BMCはシャーシ内にある他のeSSDを新たなパッシブeSSDとして選択する。BMCはイーサーネットスイッチを再びプログラムして新たなアクティブeSSDのイングレストラフィックを複製する。
図10は、一実施形態による誤謬解決動作のためのフローチャートである。BMCはアクティブeSSDが失敗したか又はシャーシから引き出されたかを検出する(1000段階)。BMCはシャーシ内の新たなアクティブeSSDを選択する(1001段階)。一実施形態によると、シャーシ内のパッシブeSSDの中の1つ又はノーマルeSSDが新たなアクティブeSSDに変換される。その後、BMCは新たなパッシブeSSDが必要であるか否かを判別する(1002段階)。新たなパッシブeSSDが要求された場合(1002段階)、BMCは、シャーシ内でeSSDを選択し(1005段階)、eSSDをパッシブeSSDとしてプログラムし、eSSDを新たなアクティブeSSDに関連させる(1006段階)。パッシブeSSDが新たなアクティブeSSDに変換されると、ホストデータのコピー(copies)の数が減少する。従って、新たなパッシブeSSDはシャーシ内に存在するノーマルeSSDの中の1つから構成される。或いは、他のアクティブeSSDに関連するパッシブeSSDがアクティブeSSDに変換される。BMCは、シャーシ内のイーサーネットスイッチをプログラムし(1003段階)、新たなアクティブeSSDをプログラムする(1004段階)。
データ複製セットアップ(setup)で、複製されたデータコピーを一貫性あるように維持することが重要である。即ち、eSSDのセット(アクティブeSSD及び関連するパッシブeSSD)は互いに一貫している必要がある。一貫しない場合、どのデータコピーが正しいか否かを判断することができず、このような状況が発生すると、データが損失する可能性がある。一部の使用ケースは特定データ損失イベントを許容するが、大部分の使用ケースはデータ損失を予想しない。
一実施形態によると、本発明のデータ複製システム及び方法は、アクティブeSSDと関連するパッシブeSSDとの間に完全な一貫性を保証し、データ損失はない。場合によって、稀なことであるが、一部のデータ損失を許容する場合、使用者アプリケーションはより良いレイテンシを達成することができるが、そのようなデータ損失の可能性は非常に低い。
使用ケースに基づいて、BMCはデータ複製の一貫性モードを複製設定の一部として完全な一貫性モード又は略完全な一貫性モードに設定する。完全な一貫性モードでアクティブeSSDは完了キューエントリをホストに送信する前に関連する全てのパッシブeSSDからの確認を待つ。完全な一貫性モードで使用者データのコピーを維持した後、アクティブeSSDは全てのパッシブeSSDがホストデータを成功的に維持することを保証するためにホスト命令完了キューエントリを直ちに送信しない。パッシブeSSDからの確認を待つことはホスト書込みアクセスに若干のレイテンシを追加する。アクティブ及びパッシブeSSDは同時に使用者データを受信するため、パッシブeSSDからの確認による追加レイテンシは重要でない。遅延は主にパッシブeSSD確認がアクティブeSSDに到達するのに掛かる時間に対応する。アクティブeSSDとパッシブeSSDとの間の専用通信チャンネルはローカルであり、専用であるため、このようなeSSD間の通信時間は最小限になる。
アクティブeSSDが引き出されるか又は急に非動作状態になる場合、提出キューに一部のホスト書込み命令があることがある。この場合、アクティブeSSDは部分書込み命令に対する命令完了キューエントリを送信しない。従って、ホストの観点でデータ無欠性を維持する。ホストは失敗した書込み命令を他のストレージユニットに再発行するか又は誤謬解決スイッチングを待つ。
略完全な一貫性モードで、アクティブeSSDは関連するパッシブeSSDからの確認を待たない。アクティブeSSDが自体の書込みデータコピーを維持すると直ちにアクティブeSSDは命令完了をホストに送信する。その結果、完全な一貫性モードと比較すると、ホストに対するレイテンシが向上する。このモードにある間にアクティブeSSDが引き出されるか又は非動作状態になる場合、一部のホスト書込み命令が実行中であることがある。既に送信された命令完了がない全てのホスト書込み命令に対してデータ無欠性が維持される。ホストは代替ストレージユニットに書込み命令を再び発行する。1つの特殊な場合は、アクティブeSSDがホストに書込み命令完了を成功的に送信したが、何らかの理由でパッシブeSSDがそのデータを維持できないことである。この特殊な場合、ホストは、そのデータが成功的に書き込まれたが、データのアクティブコピーをそれ以上使用することができず、データのパッシブコピーの維持が失敗したと判別する。書込み命令完了を送信した直後にアクティブeSSDが引き出されるか又は非動作状態になってパッシブeSSDが該当時点で関連する書込みデータを維持させることができない確率は非常に少ない。略完全な一貫性モードは、若干より良いレイテンシを提供するが、小さいデータ損失の恐れがある。このような状況に耐えられるアプリケーションの場合、略完全な一貫性モードが実行可能なオプションになる。
本発明の一実施形態によるデータ複製方法は、複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するためのファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するためのベースボード管理コントローラ(BMC)をシャーシ内に含むデータ複製システムのデータ複製方法であって、前記BMCを用いて、前記複数のeSSDの中の1つをアクティブeSSDとして構成する段階と、前記複数のeSSDの中の1つ以上をパッシブeSSDとして構成する段階と、前記ファブリックスイッチをプログラムして、前記アクティブeSSDに向かうパケットを前記アクティブeSSD及び前記1つ以上のパッシブeSSDの両方に伝送する段階と、を有し、前記アクティブeSSDで、ホストからホストデータの書込み命令を受信する段階と、前記アクティブeSSDから前記ホストデータに対応するアドレス及び命令を前記1つ以上のパッシブeSSDに送信する段階と、前記アクティブeSSDに前記ホストデータを格納する段階と、前記アクティブeSSDから受信されたアドレス及び命令並びに前記ファブリックスイッチによって伝送されたパケット内で受信された前記ホストデータを用いて前記1つ以上のパッシブeSSDの各々に前記ホストデータのコピーを格納する段階と、を含む。
前記アクティブeSSDは、前記ホストによって発見可能であり、前記1つ以上のパッシブeSSDは、前記ホストによって発見不可能であり得る。
前記方法は、前記BMCを用いて、前記アクティブeSSDと前記1つ以上のパッシブeSSDとの間の専用通信チャンネルを設定し、前記アクティブeSSDから前記アドレス及び前記命令を前記1つ以上のパッシブeSSDに送信する段階を更に含み得る。
前記専用通信チャンネルは、前記シャーシ内の前記ファブリックスイッチ又はPCIeスイッチを通じて設定され得る。
前記方法は、前記アクティブeSSDを用いて、前記ホストデータの書込み命令に応答してRDMA(remote direct memory access)読出し要請を前記ホストに発行する段階と、前記ホストから、前記ホストデータを1つ以上のRDMA読出し応答パケット内で受信する段階と、を更に含み得る。
前記RDMA読出し応答パケットは、前記ホストデータのデータチャンクを含み得る。
前記1つ以上のパッシブeSSDの各々は、前記ファブリックスイッチから受信されたパケットの中の前記RDMA読出し応答パケットを除外した残りのパケットを破棄し得る。
前記方法は、前記アクティブeSSDで、一貫性モードに基づいて、前記1つ以上のパッシブeSSDから応答を受信した後、又は前記1つ以上のパッシブeSSDから応答を受せずに前記ホストデータを前記アクティブeSSD内に格納した後、完了キューエントリを前記ホストに送信する段階を更に含み得る。
前記1つ以上のパッシブeSSDの各々は、前記アドレス及び前記命令を格納するための第1バッファ並びに前記ホストデータのデータチャンクを格納するための第2バッファを含み得る。
前記方法は、前記BMCを用いて、前記アクティブeSSDに関連するエラーを検出する段階と、前記シャーシ内の複数のeSSDの中の1つのeSSDを選択する段階と、前記選択されたeSSDを新たなアクティブeSSDとして構成する段階と、新たなパッシブeSSDが必要であるか否かを判別する段階と、前記新たなパッシブeSSDを構成する段階と、前記新たなアクティブeSSD、前記少なくとも1つのパッシブeSSD、及び前記新たなパッシブeSSDを関連させるように前記ファブリックスイッチをプログラムする段階と、を更に含み得る。
本発明の一実施形態によるデータ複製システムは、複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するためのファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するためのベースボード管理コントローラ(BMC)をシャーシ内に備え、前記BMCは、前記複数のeSSDの中の1つをアクティブeSSDとして構成し、前記複数のeSSDの中の1つ以上をパッシブeSSDとして構成し、前記ファブリックスイッチをプログラムして、前記アクティブeSSDに向かうパケットを前記アクティブeSSD及び前記1つ以上のパッシブeSSDの両方に伝送し、前記アクティブeSSDは、ホストから受信されたホストデータの書込み命令に応答してホストデータを格納し、前記アクティブeSSDは、前記ホストデータに対応するアドレス及び命令を前記1つ以上のパッシブeSSDに送信し、前記1つ以上のパッシブeSSDの各々は、前記アクティブeSSDから受信されたアドレス及び命令並びに前記ファブリックスイッチによって伝送されたパケット内で受信された前記ホストデータを用いて前記ホストデータのコピーを格納する。
前記アクティブeSSDは、前記ホストによって発見可能であり、前記1つ以上のパッシブeSSDは、前記ホストによって発見不可能であり得る。
前記アドレス及び前記命令を送信するために前記アクティブeSSDと前記1つ以上のパッシブeSSDのとの間に専用通信チャンネルが設定され得る。
前記専用通信チャンネルは、前記シャーシ内の前記ファブリックスイッチ又はPCIeスイッチを通じて設定され得る。
前記アクティブeSSDは、前記ホストデータの書込み命令に応答してRDMA(remote direct memory access)読出し要請を前記ホストに発行し、前記ホストから、前記ホストデータを1つ以上のRDMA読出し応答パケット内で受信し得る。
前記RDMA読出し応答パケットは、前記ホストデータのデータチャンクを含み得る。
前記1つ以上のパッシブeSSDの各々は、前記ファブリックスイッチから受信されたパケットの中の前記RDMA読出し応答パケットを除外した残りのパケットを破棄し得る。
前記アクティブeSSDは、一貫性モードに基づいて、前記1つ以上のパッシブeSSDから応答を受信した後、又は前記1つ以上のパッシブeSSDから応答を受信せずに前記ホストデータを前記アクティブeSSD内に格納した後、完了キューエントリを前記ホストに送信し得る。
前記1つ以上のパッシブeSSDの各々は、前記アドレス及び前記命令を格納するための第1バッファ並びに前記ホストデータのデータチャンクを格納するための第2バッファを含み得る。
前記BMCは、前記アクティブeSSDに関連するエラーを検出し、前記シャーシ内の複数のeSSDの中の1つのeSSDを選択し、前記選択されたeSSDを新たなアクティブeSSDとして構成し、新たなパッシブeSSDが必要であるか否かを判別し、前記新たなパッシブeSSDを構成し、前記新たなアクティブeSSD、前記少なくとも1つ以上のパッシブeSSD、及び前記新たなパッシブeSSDを関連させるように前記ファブリックスイッチをプログラムし得る。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100、200、300 NVMe−oFシステム
110、210、310 ホスト
111、211、311 アプリケーション
112、212、312 OS/ファイルシステム
113、213、313 NVMe−oFドライバー
150、250、350 イーサーネット
160、360、660 シャーシ
161、361、661 イーサーネットスイッチ
162、362 ベースボード管理コントローラ(BMC)
163、363 PCIeスイッチ
164、364 管理インターフェイス
165、365 ミッドプレーン
170、170a〜170n、370a〜370n eSSD
260、260a〜260m eSSDシャーシ
270 ラック
271 TORスイッチ
370a、670a アクティブeSSD
370b、670b パッシブeSSD
671 LBA及び命令FIFO
672 受信されたメッセージFIFO

Claims (20)

  1. 複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するように構成されたファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するように構成されたベースボード管理コントローラ(BMC)をシャーシ内に含むデータ複製システムのデータ複製方法であって、
    前記BMCを用いて、
    前記複数のeSSDの中の1つをアクティブeSSDとして構成する段階と、
    前記複数のeSSDの中の1つ以上を1つ以上のパッシブeSSDとして構成する段階と、
    前記ファブリックスイッチをプログラムして、前記アクティブeSSDアドレス指定されたネットワークパケットを第1のダウンリンクポートを介して前記アクティブeSSD及び前記第1のダウンリンクポートとは異なる第2のダウンリンクポートを介して前記1つ以上のパッシブeSSDの両方に伝送する段階と、を有し、
    前記アクティブeSSDで、前記ファブリックスイッチを通じて前記第1のダウンリンクポートを介してホストからのホストデータの書込み命令を含むネットワークパケットを受信する段階と、
    前記ホストデータの書込み命令に関連するホストデータを前記アクティブeSSDのメモリ位置に格納する段階と、
    前記アクティブeSSDから前記ホストデータの書込み命令に対応する前記アクティブeSSDのメモリ位置及び命令を前記1つ以上のパッシブeSSDに送信する段階と、
    前記アクティブeSSDのメモリ位置及び前記アクティブeSSDから受信された命令並びに前記第2のダウンリンクポートを介して前記ファブリックスイッチによって伝送された前記ネットワークパケット内で受信された前記ホストデータを用いて前記1つ以上のパッシブeSSDに前記ホストデータのコピーを格納する段階と、を有することを特徴とする方法。
  2. 前記アクティブeSSDは、前記ホストによって発見可能であり、
    前記1つ以上のパッシブeSSDは、前記ホストによって発見不可能であることを特徴とする請求項1に記載の方法。
  3. 前記BMCを用いて、前記アクティブeSSDと前記1つ以上のパッシブeSSDとの間の専用通信チャンネルを設定して、前記アクティブeSSDから前記メモリ位置及び前記命令を前記1つ以上のパッシブeSSDに送信する段階を更に含むことを特徴とする請求項1に記載の方法。
  4. 前記専用通信チャンネルは、前記シャーシ内の前記ファブリックスイッチ又はPCIeスイッチを通じて設定されることを特徴とする請求項3に記載の方法。
  5. 前記アクティブeSSDを用いて、前記ホストデータの書込み命令に応答してRDMA(remote direct memory access)読出し要請を前記ホストに発行する段階と、
    前記ホストからの前記ホストデータを1つ以上のRDMA読出し応答パケット内で受信する段階と、を更に含むことを特徴とする請求項1に記載の方法。
  6. 前記RDMA読出し応答パケットは、前記ホストデータのデータチャンクを含むことを特徴とする請求項5に記載の方法。
  7. 前記1つ以上のパッシブeSSDの各々は、前記RDMA読出し応答パケットを除外して、前記ファブリックスイッチから受信されたパケットを破棄することを特徴とする請求項5に記載の方法。
  8. 前記アクティブeSSDで、一貫性モードに基づいて、前記1つ以上のパッシブeSSDから応答を受信した後、又は前記1つ以上のパッシブeSSDから応答を受信せずに前記ホストデータを前記アクティブeSSD内に格納した後、完了キューエントリを前記ホストに送信する段階を更に含むことを特徴とする請求項1に記載の方法。
  9. 前記1つ以上のパッシブeSSDの各々は、前記メモリ位置及び前記命令を格納するための第1バッファ並びに前記ホストデータのデータチャンクを格納するための第2バッファを含むことを特徴とする請求項1に記載の方法。
  10. 前記BMCを用いて、 前記アクティブeSSDに関連するエラーを検出する段階と、
    前記シャーシ内の複数のeSSDの中の1つのeSSDを選択する段階と、
    前記eSSDを新たなアクティブeSSDとして構成する段階と、
    新たなパッシブeSSDが必要であるか否かを判別する段階と、
    前記新たなパッシブeSSDを構成する段階と、
    前記新たなアクティブeSSDと前記1つ以上のパッシブeSSDとを関連付けるように前記ファブリックスイッチをプログラムする段階と、を更に含むことを特徴とする請求項1に記載の方法。
  11. 複数のソリッドステートドライブ(eSSD)、前記複数のeSSDの各々にダウンリンクを提供するように構成されたファブリックスイッチ、並びに前記ファブリックスイッチ及び前記複数のeSSDを制御するように構成されたベースボード管理コントローラ(BMC)を含むシャーシを備え、
    前記BMCは、前記複数のeSSDの中の1つをアクティブeSSDとして構成し、前記複数のeSSDの中の1つ以上を1つ以上のパッシブeSSDとして構成し、前記ファブリックスイッチをプログラムして、前記アクティブeSSDにアドレス指定されたネットワークパケットを第1のダウンリンクポートを介して前記アクティブeSSD及び前記第1のダウンリンクポートとは異なる第2のダウンリンクポートを介して前記1つ以上のパッシブeSSDの両方に伝送し、
    前記アクティブeSSDは、前記ファブリックスイッチを通じて前記第1のダウンリンクポートを介してホストからのホストデータの書込み命令を含むネットワークパケットを受信し、前記ホストデータの書込み命令に関連するホストデータをメモリ位置に格納するように構成され、
    前記アクティブeSSDは、前記ホストデータに対応する前記メモリ位置及び命令を前記1つ以上のパッシブeSSDに送信するように更に構成され、
    前記1つ以上のパッシブeSSDの各々は、前記アクティブeSSDから受信された前記アクティブeSSDのメモリ位置及び命令並びに前記第2のダウンリンクポートを介して前記ファブリックスイッチによって伝送された前記ネットワークパケット内で受信された前記ホストデータを用いて前記ホストデータのコピーを格納するように構成されることを特徴とするデータ複製システム。
  12. 前記アクティブeSSDは、前記ホストによって発見可能であり、 前記1つ以上のパッシブeSSDは、前記ホストによって発見不可能であることを特徴とする請求項11に記載のデータ複製システム。
  13. 前記アクティブeSSDと前記1つ以上のパッシブeSSDとの間に専用通信チャンネルが設定されて、前記メモリ位置及び前記命令を送信することを特徴とする請求項11に記載のデータ複製システム。
  14. 前記専用通信チャンネルは、前記シャーシ内の前記ファブリックスイッチ又はPCIeスイッチを通じて設定されることを特徴とする請求項13に記載のデータ複製システム。
  15. 前記アクティブeSSDは、前記ホストデータの書込み命令に応答してRDMA(remote direct memory access)読出し要請を前記ホストに発行し、前記ホストからの前記ホストデータを1つ以上のRDMA読出し応答パケット内で受信するように構成されることを特徴とする請求項11に記載のデータ複製システム。
  16. 前記RDMA読出し応答パケットは、前記ホストデータのデータチャンクを含むことを特徴とする請求項15に記載のデータ複製システム。
  17. 前記1つ以上のパッシブeSSDの各々は、前記RDMA読出し応答パケットを除外して、前記ファブリックスイッチから受信されたパケットを破棄することを特徴とする請求項15に記載のデータ複製システム。
  18. 前記アクティブeSSDは、一貫性モードに基づいて、前記1つ以上のパッシブeSSDから応答を受信した後、又は前記1つ以上のパッシブeSSDから応答を受信せずに前記ホストデータを前記アクティブeSSD内に格納した後、完了キューエントリを前記ホストに送信することを特徴とする請求項11に記載のデータ複製システム。
  19. 前記1つ以上のパッシブeSSDの各々は、前記メモリ位置及び前記命令を格納するための第1バッファ並びに前記ホストデータのデータチャンクを格納するための第2バッファを含むことを特徴とする請求項11に記載のデータ複製システム。
  20. 前記BMCは、
    前記アクティブeSSDに関連するエラーを検出し、
    前記シャーシ内の複数のeSSDの中の1つのeSSDを選択し、
    前記eSSDを新たなアクティブeSSDとして構成し、
    新たなパッシブeSSDが必要であるか否かを判別し、
    前記新たなパッシブeSSDを構成し、
    前記新たなアクティブeSSD、前記1つ以上のパッシブeSSD、及び前記新たなパッシブeSSDを関連付けるように前記ファブリックスイッチをプログラムするように更に構成されることを特徴とする請求項11に記載のデータ複製システム。
JP2018052308A 2017-03-31 2018-03-20 Ssdのデータ複製システム及び方法 Active JP6955466B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762480113P 2017-03-31 2017-03-31
US62/480,113 2017-03-31
US15/617,925 2017-06-08
US15/617,925 US10691368B2 (en) 2017-03-31 2017-06-08 System and method for providing data replication in NVMe-oF ethernet SSD

Publications (3)

Publication Number Publication Date
JP2018173949A JP2018173949A (ja) 2018-11-08
JP2018173949A5 JP2018173949A5 (ja) 2021-03-11
JP6955466B2 true JP6955466B2 (ja) 2021-10-27

Family

ID=63670633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052308A Active JP6955466B2 (ja) 2017-03-31 2018-03-20 Ssdのデータ複製システム及び方法

Country Status (5)

Country Link
US (1) US10691368B2 (ja)
JP (1) JP6955466B2 (ja)
KR (1) KR102457091B1 (ja)
CN (1) CN108696569B (ja)
TW (1) TWI734890B (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US10764180B1 (en) 2018-02-20 2020-09-01 Toshiba Memory Corporation System and method for storing data using software defined networks
US10607712B1 (en) 2018-09-28 2020-03-31 Toshiba Memory Corporation Media error reporting improvements for storage drives
US10635355B1 (en) * 2018-11-13 2020-04-28 Western Digital Technologies, Inc. Bandwidth limiting in solid state drives
US11366610B2 (en) * 2018-12-20 2022-06-21 Marvell Asia Pte Ltd Solid-state drive with initiator mode
US11068424B2 (en) * 2019-02-04 2021-07-20 American Megatrends International, Llc Enablement of software defined storage solution for NVME over ethernet fabric management on a processor
EP3938881A2 (en) 2019-03-14 2022-01-19 Marvell Asia Pte, Ltd. Termination of non-volatile memory networking messages at the drive level
WO2020186270A1 (en) 2019-03-14 2020-09-17 Marvell Asia Pte, Ltd. Ethernet enabled solid state drive (ssd)
US11200193B2 (en) 2019-03-14 2021-12-14 Marvell Asia Pte, Ltd. Transferring data between solid state drives (SSDs) via a connection between the SSDs
US11573708B2 (en) 2019-06-25 2023-02-07 Micron Technology, Inc. Fail-safe redundancy in aggregated and virtualized solid state drives
US10942846B2 (en) * 2019-06-25 2021-03-09 Micron Technology, Inc. Aggregated and virtualized solid state drives accessed via multiple logical address spaces
US11762798B2 (en) 2019-06-25 2023-09-19 Micron Technology, Inc. Aggregated and virtualized solid state drives with multiple host interfaces
US11768613B2 (en) 2019-06-25 2023-09-26 Micron Technology, Inc. Aggregation and virtualization of solid state drives
US10942881B2 (en) 2019-06-25 2021-03-09 Micron Technology, Inc. Parallel operations in aggregated and virtualized solid state drives
US11055249B2 (en) 2019-06-25 2021-07-06 Micron Technology, Inc. Access optimization in aggregated and virtualized solid state drives
US11513923B2 (en) 2019-06-25 2022-11-29 Micron Technology, Inc. Dynamic fail-safe redundancy in aggregated and virtualized solid state drives
JP7347157B2 (ja) * 2019-11-22 2023-09-20 富士通株式会社 情報処理システム、ストレージ制御プログラム、及び、ストレージ制御装置
US12045478B1 (en) * 2020-01-22 2024-07-23 American Megatrends International, Llc Remote configuration of multi-mode DIMMs through firmware
US20210294702A1 (en) * 2021-06-04 2021-09-23 Intel Corporation High-availability memory replication in one or more network devices
US11726880B1 (en) * 2022-02-18 2023-08-15 Dell Products L.P. Fault tolerance and debug analysis during a boot process

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337788A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 記憶装置の2重化方式及び記憶装置の2重化での障害回復方法
US7633955B1 (en) * 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US10572188B2 (en) 2008-01-12 2020-02-25 Hewlett Packard Enterprise Development Lp Server-embedded distributed storage system
CN101520742B (zh) * 2009-03-26 2011-12-21 成都市华为赛门铁克科技有限公司 固态硬盘数据备份方法、***和相应的固态硬盘
JP2011209892A (ja) * 2010-03-29 2011-10-20 Fujitsu Ltd ストレージシステム、ストレージシステムの制御方法、スイッチ装置およびストレージ装置
US9104326B2 (en) * 2010-11-15 2015-08-11 Emc Corporation Scalable block data storage using content addressing
US9582384B2 (en) * 2011-03-23 2017-02-28 Stormagic Limited Method and system for data replication
US20120254508A1 (en) * 2011-04-04 2012-10-04 International Business Machines Corporation Using the Short Stroked Portion of Hard Disk Drives for a Mirrored Copy of Solid State Drives
US8942139B2 (en) * 2011-12-07 2015-01-27 International Business Machines Corporation Support for converged traffic over ethernet link aggregation (LAG)
US9015525B2 (en) * 2012-06-19 2015-04-21 Lsi Corporation Smart active-active high availability DAS systems
US9986028B2 (en) * 2013-07-08 2018-05-29 Intel Corporation Techniques to replicate data between storage servers
KR20150047785A (ko) * 2013-10-25 2015-05-06 삼성전자주식회사 서버 시스템 및 스토리지 시스템
US9471259B2 (en) 2014-01-28 2016-10-18 Netapp, Inc. Shared storage architecture
CN103777905B (zh) * 2014-02-14 2017-04-12 华中科技大学 一种软件定义的固态盘融合存储方法
CN106688217B (zh) * 2014-03-08 2021-11-12 狄亚曼提公司 用于融合联网和存储的方法和***
US9696942B2 (en) * 2014-03-17 2017-07-04 Mellanox Technologies, Ltd. Accessing remote storage devices using a local bus protocol
US9811677B2 (en) * 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9652175B2 (en) * 2015-04-09 2017-05-16 Sandisk Technologies Llc Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions
US9760314B2 (en) 2015-05-29 2017-09-12 Netapp, Inc. Methods for sharing NVM SSD across a cluster group and devices thereof
KR102403489B1 (ko) * 2015-07-10 2022-05-27 삼성전자주식회사 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법
CN106339343B (zh) * 2015-07-10 2021-03-26 爱思开海力士有限公司 快速外设组件互联卡
KR102387973B1 (ko) * 2015-12-01 2022-04-19 삼성전자주식회사 이중화 저장 장치, 그것을 포함한 서버 시스템 및 그것의 동작 방법
CN206039500U (zh) * 2016-07-23 2017-03-22 西安飞铭电子科技有限公司 一种多用户实时网络仿真***
US10326613B2 (en) * 2017-04-18 2019-06-18 Arista Networks, Inc. Method and system for processing spanning tree protocol (STP) state in a multichassis link aggregation (MLAG) domain

Also Published As

Publication number Publication date
CN108696569B (zh) 2022-01-11
US10691368B2 (en) 2020-06-23
TW201840149A (zh) 2018-11-01
TWI734890B (zh) 2021-08-01
KR102457091B1 (ko) 2022-10-20
KR20180111483A (ko) 2018-10-11
US20180284989A1 (en) 2018-10-04
JP2018173949A (ja) 2018-11-08
CN108696569A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
JP6955466B2 (ja) Ssdのデータ複製システム及び方法
US10949303B2 (en) Durable block storage in data center access nodes with inline erasure coding
US10963289B2 (en) Storage virtual machine relocation
CN110312999B (zh) 基于软件配置/策略分发的PCIe盘阵列的动态划分
JP4859471B2 (ja) ストレージシステム及びストレージコントローラ
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
EP1760591B1 (en) System and method of managing access path
US9933946B2 (en) Fibre channel storage array methods for port management
JP5959733B2 (ja) ストレージシステムおよびストレージシステムの障害管理方法
US20030074599A1 (en) System and method for providing automatic data restoration after a storage device failure
JP2005267327A (ja) ストレージシステム
JP2017010390A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US11829803B2 (en) Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof
US7363426B2 (en) System and method for RAID recovery arbitration in shared disk applications
US11983428B2 (en) Data migration via data storage device peer channel
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
JP2010033379A (ja) 仮想化システム及び仮想化の復旧方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210129

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210129

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210715

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211001

R150 Certificate of patent or registration of utility model

Ref document number: 6955466

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150