JP6663434B2 - ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化 - Google Patents

ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化 Download PDF

Info

Publication number
JP6663434B2
JP6663434B2 JP2017535644A JP2017535644A JP6663434B2 JP 6663434 B2 JP6663434 B2 JP 6663434B2 JP 2017535644 A JP2017535644 A JP 2017535644A JP 2017535644 A JP2017535644 A JP 2017535644A JP 6663434 B2 JP6663434 B2 JP 6663434B2
Authority
JP
Japan
Prior art keywords
node
nvm
cluster
shared
details
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
JP2017535644A
Other languages
English (en)
Other versions
JP2018509674A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2018509674A publication Critical patent/JP2018509674A/ja
Application granted granted Critical
Publication of JP6663434B2 publication Critical patent/JP6663434B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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]

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)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

本発明は、ホスト・ベースの不揮発性メモリに関し、より具体的には、本発明は、ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化に関する。
不揮発性メモリ(NVM)は、電力なしで情報を保持する能力のために、多くの現代の用途に用いることができる非常に有用なメモリ・タイプである。オフタイム中のいずれのバッテリの消耗もデバイスの有用性を損なうので、このNVMは、唯一の電力源としてバッテリに依存するモバイル機器において特に有利である。さらに、NVMは、ネットワーク・ストレージなどの、あまり明らかではない他の用途においても、ますます使用されるようになってきている。
要求が厳しい今日の用途においてNVMを用いるための、幾つかの求められるアクセス仕様がある。すなわち、(1)NVMは、ダブル・データ・レート・タイプ3の同期式ダイナミック・ランダム・アクセス・メモリ(DDR3 SDRAM)を用いて達成できるものに類似した速度を達成できなければならない。(2)NVMは、企業のネットワーク・ストレージ・インフラストラクチャにおけるメモリの可用性のための指標と考えられる、1秒当たり百万回又はそれより多い入力/出力(I/O)操作(IOPS)を達成できなければならない。(3)NVMは、同じく企業のネットワーク・ストレージ・インフラストラクチャにおけるメモリの可用性のための指標と考えられる、3μsから10μsまでの間の相互接続レイテンシを達成できなければならない。(4)NVMは、周辺機器コンポーネント相互接続エクスプレス(peripheralcomponent interconnect express、PCIe)シリアライザ/デシリアライザ(SerDes)レーンと類似した性能を達成できなければならない。
しかしながら、NVM、特にフラッシュ・メモリを用いる現在の方法は、これらの求められるアクセス仕様を達成することができない。企業のネットワーク・ストレージとの関連でNVMの実装に関連する幾つかの問題は、ネットワーク・インフラストラクチャにおいてデータのシームレスで高性能な転送を提供する方法を発見すること、NVMベースのストレージを提供できるストレージ・アプライアンスをどのように構築するか、NVMを用いるホスト・ベースのソリッド・ステート・ドライブ(SSD)をどのように互いにクラスタ化するか、ネットワーク・インストラクチャにおいてホスト・ベースのSSDを中央ストレージ・アプライアンスとどのように互いにクラスタ化するか、及びネットワーク上でNVMストレージのサーバ・ベース及びネットワーク・ベースの仮想化をどのように達成するかを含む。
NVMの現在の実装は、ネットワーク・インフラストラクチャにおいてNVMの全性能を使用しることを可能にする方法で、ネットワークの他の要素と相互作用するための能力を有していない。
ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化を提供する。
一実施形態において、システムは、第1のノードを含む。第1のノードは、データを格納するように構成された第1の不揮発性メモリ(NVM)を含む。第1のノードは、NVMインターフェースを介して第1のNVMに接続された第1のメモリ・コントローラをさらに含む。第1のノードは、第1のメモリ・コントローラに接続され、ネットワークを通じて通信するように構成された第1のネットワーク・インターフェース・カード(NIC)をさらに含む。第1のノードは第1のプロセッサをさらに含む。第1のノードは、第1のプロセッサと統合され及び/又は第1のプロセッサにより実行される第1の論理をさらに含む。第1の論理は、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化(initiate、以下同様)するように構成される。第1の論理は、所定の間隔でNVMクラスタのクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストするようにさらに構成される。第1の論理は、第2のノードから、第1のノード上の共有NVMの詳細に対する要求を受け取るようにさらに構成される。第1の論理は、第2のノードから、第1のノード上の各共有NVM内のファイル位置を含む、第2のノード上の共有NVMの詳細を受け取るようにさらに構成される。第1のノードは、第1のノード上の各共有NVM内のファイル位置を含む、第1のノード上の共有NVMの詳細を第2のノードに送るようにさらに構成される。第1の論理は、第2のノード上の共有NVMの詳細に基づいて、第2のノード上の共有NVMの送信及び完了キューを第1のメモリ・コントローラにマッピングするようにさらに構成され、送信キューは、先入れ先出し(FIFO)スキームに従って、第2のノード上の共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。この実施形態は、ネットワーク上でNVMストレージのサーバ・ベース及びネットワーク・ベースの仮想化を提供する。
この実施形態において、システムは、第2のノードをさらに含む。第2のノードは、データを格納するように構成された第2のNVMを含む。第2のノードは、NVMインターフェースを介して第2のNVMに接続された第2のメモリ・コントローラをさらに含む。第2のノードは、第2のメモリ・コントローラに接続され、ネットワークを通じて通信するように構成された第2のNICをさらに含む。第2のノードは第2のプロセッサをさらに含む。第2のノードは、第2のプロセッサと統合され及び/又は第2のプロセッサにより実行される第2の論理をさらに含む。第2の論理は、ローカル・クラスタ構成ファイルからローカル・クラスタ・パラメータを受け取るように構成される。第2の論理は、NVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取るようにさらに構成される。第2の論理は、第1のノードからのマルチキャスト・メッセージの受信に応答して、第1のノード上の共有NVMの詳細に対する要求を第1のノードに送るようにさらに構成される。第2の論理は、第2のノード上の共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加するようにさらに構成される。第2の論理は、第2のノード上の共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングするようにさらに構成される。また、第2の論理は、第2のノード上の共有NVMの詳細を第1のノードに送るようにさらに構成される。第2の論理は、第1のノード上の共有NVMの詳細を受け取るようにさらに構成される。第2の論理は、第1のノード上の共有NVMの詳細に基づいて、第1のノード上の共有NVMを第2のメモリ・コントローラにマッピングするようにさらに構成される。この実施形態は、ネットワークにおいてデータをシームレスに転送することができる、第1のノード及び第2のノードを含むNVMクラスタを提供する。
別の実施形態において、ホスト・ベースのデータ・ストレージ・システムは、データを格納するように構成されたNVMを含む。ホスト・ベースのデータ・ストレージ・システムは、NVMインターフェースを介してNVMに接続されたメモリ・コントローラをさらに含む。ホスト・ベースのデータ・ストレージ・システムは、メモリ・コントローラに接続され、ネットワークを通じて通信するように構成されたNICをさらに含む。ホスト・ベースのデータ・ストレージ・システムは、プロセッサをさらに含む。ホスト・ベースのデータ・ストレージ・システムは、プロセッサと統合され及び/又はプロセッサにより実行される論理をさらに含む。この論理は、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化するように構成される。論理は、所定の間隔でNVMクラスタのクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストするようにさらに構成される。論理は、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の上記他のノード上の全ての共有NVMの送信及び完了キューをメモリ・コントローラにマッピングするようにさらに構成され、送信キューは、FIFOスキームに従って共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。この実施形態は、ネットワーク上でNVMストレージのサーバ・ベース及びネットワーク・ベースの仮想化を提供する。
この実施形態において、リモート・ダイレクト・メモリ・アクセス(RDMA)を用いて、NVMクラスタ内の他のノード上の共有NVMの送信及び完了キューをメモリ・コントローラにマッピングすることができる。RDMAを用いて、NVMクラスタ内の他のノード上の共有NVMの送信及び完了キューをメモリ・コントローラにマッピングすることにより、ネットワーク内の他の共有NVM上に格納されたデータへのシームレスで高速なクセスが提供される。
別の実施形態によると、ネットワーク・ストレージ・アプライアンスは、データを格納するように構成された複数のNVMストレージ・デバイスを含む。ネットワーク・ストレージ・アプライアンスは、NVMインターフェースを介して複数のNVMストレージ・デバイスに接続されたメモリ・コントローラをさらに含む。ネットワーク・ストレージ・アプライアンスは、メモリ・コントローラに接続されたNICをさらに含む。NICは、RDMAオーバー・コンバージド・イーサネット(RDMA over converged Ethernet、RoCE)を介してネットワークを通じてNVMクラスタ内の他のノードと通信するように構成される。ネットワーク・ストレージ・アプライアンスは、プロセッサをさらに含む。ネットワーク・ストレージ・アプライアンスは、プロセッサと統合され及び/又はプロセッサにより実行可能な論理をさらに含む。論理は、NVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取るように構成される。NVMクラスタは、そこにアクセス可能な共有NVMを有する1つ又は複数のノードを含む。論理は、マルチキャスト・メッセージの受信に応答して、NVMクラスタ内のいずれかの他のノード上の共有NVMの詳細に対する要求を送るように構成される。論理は、ネットワーク・ストレージ・アプライアンス上の共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加するようにさらに構成される。論理は、ネットワーク・ストレージ・アプライアンス上の共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングするようにさらに構成される。論理は、ネットワーク・ストレージ・アプライアンス上の共有NVMの詳細をNVMクラスタ内の他のノードに送るようにさらに構成され、送信キューは、FIFOスキームに従って共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納し、NVMクラスタ内の他のノード上の共有NVMの詳細を受け取り、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の他のノード上の共有NVMをメモリ・コントローラにマッピングするように構成される。この実施形態は、NVMベースのストレージをネットワークに提供できるストレージ・アプライアンスを提供する。
この実施形態において、ネットワーク・ストレージ・アプライアンス上の共有NVMは、コヒーレント・アクセラレータ・プロセッサ・インターフェース(coherent accelerator processorinterface、CAPI)及びNVMエクスプレス(NVMe)の少なくとも1つを介して、NVMクラスタ内の他のノードにアクセス可能であり得る。CAPI及びNVMeの少なくとも1つを介してネットワーク・ストレージ・アプライアンス上の共有NVMにアクセスすることにより、ネットワーク内の他の共有NVM上に格納されたデータへのシームレスな高速アクセスが提供される。
別の実施形態によると、方法は、第1のNVMを内部に有する第1のノードを用いて、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化することを含む。方法は、第1のノードを用いて、所定の間隔でNVMクラスタのクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストすることをさらに含む。方法は、第1のノードにおいて、第1のノード上の共有NVMの詳細に対する要求を受け取ることをさらに含む。方法は、第1のノードにおいて、第2のノード上の共有NVMの詳細を受け取ることをさらに含む。第2のノード上の共有NVMの詳細は、第2のノード上の各共有NVM内のファイル位置を含む。方法は、第1のノード上の共有NVMの詳細を第2のノードに送ることをさらに含む。第1のノード上の共有NVMの詳細は、第1のノード上の各共有NVM内のファイル位置を含む。方法は、第1のノードを用いて、第2のノード上の共有NVMの詳細に基づき、第2のノード上の共有NVMの送信及び完了キューを第1のノードにマッピングすることをさらに含み、送信キューは、先出し先入れ(FIFO)スキームに従って、第2のノード上の共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。この方法は、NVMクラスタ内の共通NVM上に格納されたデータへのシームレスで高速なアクセスを提供する。
別の実施形態において、方法は、NVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取ることを含む。NVMクラスタは、そこにアクセス可能な共有NVMを有する1つ又は複数のノードを含む。方法は、マルチキャスト・メッセージの受信に応答して、NVMクラスタ内のいずれかの他のノード上の共有NVMの詳細に対する要求を送ることをさらに含む。方法は、ローカル共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加することをさらに含む。方法は、ローカル共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングすることをさらに含む。方法は、ローカル共有NVMの詳細をNVMクラスタ内の他のノードに送ることをさらに含む。方法は、NVMクラスタ内の他のノード上の共有NVMの詳細を受け取ることをさらに含む。方法は、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の他のノード上の共有NVMをマッピングすることをさらに含む。この方法は、NVMクラスタ内の共有NVM上に格納されたデータへのシームレスで高速なアクセスを提供する。
本発明の他の態様及び実施形態は、図面と併せて、本発明の原理の例として示す以下の詳細な説明から明らかになるであろう。
一実施形態による、ネットワーク・アーキテクチャを示す。 一実施形態による、図1のサーバ及び/又はクライアントと関連付けることができるプロセッサ・システムの代表的なハードウェア環境を示す。 一実施形態における、ホスト・ベースのデータ・ストレージ・システムを示す。 一実施形態による、ホスト・ベースの不揮発性メモリ(NVM)ストレージ・システムの動作を示す。 一実施形態による、ネットワーク・ストレージ・アプライアンスを示す。 一実施形態による、ネットワーク・ストレージ・アプライアンスの動作を示す。 一実施形態による、ホスト・ベースのNVMストレージのクラスタ化を示す。 一実施形態による、方法のフローチャートを示す。
以下の説明は、本発明の一般的な原理を説明するためになされたものであり、本明細書で特許請求される本発明の概念を限定することを意図していない。さらに、本明細書で説明される特定の特徴は、種々の可能な組み合わせ及び置換の各々の他の説明される特徴と共に用いることができる。
特に別段の定めがない限り、全ての用語は、明細書から暗示される意味、並びに当業者により理解される及び/又は辞書、論文等に定められる意味を含む、その最も広い可能か解釈が与えられるべきである。
また、明細書及び添付の特許請求の範囲において用いられる場合、単数形「a」、「an」及び「the」は、他に断りのない限り、複数の指示物を含むことにも留意すべきである。
一実施形態によると、今日の複雑でリソースを大量に消費するアプリケーションにおいて有用である、不揮発性メモリ(NVM)を用いるためのアクセス方法が提供される。NVMへの1つのこうしたアクセス方法は、ストレージ・アプライアンスの構築を提供し、ソリッド・ステート・ドライブ(SSD)のようなホスト・ベースのNVMストレージ・デバイスのクラスタ化を可能にし、ホスト・ベースのNVMストレージ・デバイス及び中央ストレージ・アプライアンスのクラスタ化を提供し、NVMのサーバ・ベース及びネットワーク・ベースの仮想化を提供する、シームレスで高性能の転送である。
1つの一般的な実施形態において、システムは、データを格納するように構成された第1のNVMを含む第1のノードと、NVMインターフェースを介して第1のNVMに接続された第1のメモリ・コントローラと、第1のメモリ・コントローラに接続され、ネットワークを通じて通信するように構成された第1のネットワーク・インターフェース・カード(NIC)と、第1のプロセッサと、第1のプロセッサと統合され及び/又は第1のプロセッサにより実行可能な第1の論理とを含み、第1の論理は、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを生成し、所定の間隔でNVMクラスタ内のクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストし、第2のノードから、第1のノード上の共有NVMの詳細に対する要求を受け取り、第2のノードから、第2のノード上の各共有NVM内のファイル位置を含む、第2のノード上の共有NVMの詳細を受け取り、第1のノード上の各共有NVM内のファイル位置を含む、第1のノード上の共有NVMの詳細を第2のノードに送り、第2のノード上の共有NVMの詳細に基づいて、第2のノード上の共有NVMの送信及び完了キューを第1のメモリ・コントローラにマッピングするように構成され、送信キューは、先出し先入れ(FIFO)スキームに従って、第2のノード上の共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。
別の一般的な実施形態において、ホスト・ベースのデータ・ストレージ・システムは、データを格納するように構成されたNVMと、NVMインターフェースを介してNVMに接続されたメモリ・コントローラと、メモリ・コントローラに接続され、ネットワークを通じて通信するように構成されたNICと、プロセッサと、プロセッサと統合され及び/又はプロセッサにより実行可能な論理とを含み、論理は、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを生成し、所定の間隔でNVMクラスタ内のクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストし、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の他のノード上の全ての共有NVMの送信及び完了キューをメモリ・コントローラにマッピングするように構成され、送信キューは、FIFOスキームに従って、共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。
別の一般的な実施形態において、ネットワーク・ストレージ・アプライアンスは、データを格納するように構成された複数のNVMストレージ・デバイスと、NVMインターフェースを介して複数のNVMストレージ・デバイスに接続されたメモリ・コントローラと、メモリ・コントローラに接続され、リモート・ダイレクト・メモリ・アクセス(RDMA)オーバー・コンバージド・イーサネット(RoCE)を介して、ネットワークを通じてNVMクラスタ内の他のノードと通信するように構成されたNICと、プロセッサと、プロセッサと統合され及び/又はプロセッサにより実行可能な論理とを含み、論理は、そこにアクセス可能な共有NVMを有する1つ又は複数のノードを含むNVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取り、マルチキャスト・メッセージの受信に応答して、NVMクラスタ内のいずれかの他のノード上の共有NVMの詳細に対する要求を送り、ネットワーク・ストレージ・アプライアンス上の共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加し、ネットワーク・ストレージ・アプライアンス上の共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングし、ネットワーク・ストレージ・アプライアンス上の共有NVMの詳細をNVMクラスタ内の他のノードに送るように構成され、送信キューは、FIFOスキームに従って、共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納し、NVMクラスタ内の他のノード上の共有NVMの詳細を受け取り、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいてNVMクラスタ内の他のノード上の共有NVMをメモリ・コントローラにマッピングするように構成される。
別の一般的な実施形態によると、方法は、第1のNVMを内部に有する第1のノードを用いて、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化することと、第1のノードを用いて、所定の間隔でNVMクラスタのクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストすることと、第1のノードにおいて、第1のノード上の共有NVMの詳細に対する要求を受け取ることと、第1のノードにおいて、第2のノード上の各共有NVM内のファイル位置を含む、第2のノード上の共有NVMの詳細を受け取ることと、第1のノード上の各共有NVM内のファイル位置を含む、第1のノード上の共有NVMの詳細を第2のノードに送ることと、第1のノードを用いて、第2のノード上の共有NVMの詳細に基づいて、第2のノード上の共有NVMの送信及び完了キューを第1のノードにマッピングすることとを含み、送信キューは、先入れ先出し(FIFO)スキームに従って、第2のノード上の共有NVMにアクセスするためのコマンドを格納するように構成され、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成される。
別の一般的な実施形態において、方法は、そこにアクセス可能な共有NVMを有する1つ又は複数のノードを含むNVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取ることと、マルチキャスト・メッセージの受信に応答して、NVMクラスタ内のいずれかの他のノード上の共有NVMの詳細に対する要求を送ることと、ローカル共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加することと、ローカル共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングすることと、ローカル共有NVMの詳細をNVMクラスタ内の他のノードに送ることと、NVMクラスタ内の他のノード上の共有NVMの詳細を受け取ることと、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の他のノード上の共有NVMをマッピングすることとを含む。
図1は、一実施形態による、ネットワーク・アーキテクチャ100を示す。図1に示されるように、第1の遠隔ネットワーク104及び第2の遠隔ネットワーク106を含む複数の遠隔ネットワーク102が提供される。ゲートウェイ101が、遠隔ネットワーク102と近接ネットワーク108との間を結合させることができる。本ネットワーク・アーキテクチャ100との関連において、ネットワーク104、106はそれぞれ、これらに限られるものではないが、LAN、インターネット、公衆交換電話網(public switched telephone network、PSTN)、内線電話ネットワーク等のようなWANを含む、任意の形態をとることができる。
使用中、ゲートウェイ101は、遠隔ネットワーク102から近接ネットワーク108への入口点(entrancepoint)として働く。従って、ゲートウェイ101は、ゲートウェイ101に到着するデータの所定のパケットを指向させることができるルータ、及び、所定のパケットについての、ゲートウェイ101に出入りする実際の経路を提供するスイッチとして機能することができる。
近接ネットワーク108に結合され、かつ、ゲートウェイ101を介して遠隔ネットワーク102からアクセス可能である少なくとも1つのデータ・サーバ114が、さらに含まれる。データ・サーバ114は、いずれのタイプのコンピューティング・デバイス/グループウエアも含むことができることに留意されたい。複数のユーザ・デバイス116が、各データ・サーバ114に結合される。こうしたユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、及び/又はいずれかの他のタイプの論理含有デバイスを含むことができる。幾つかの実施形態において、ユーザ・デバイス111を、ネットワークのいずれかに直接結合することもできることに留意されたい。
例えばファクシミリ装置、プリンタ、スキャナ、ハードディスク・ドライブ、ネットワーク化及び/又はローカル・データ・ストレージ・ユニット若しくはシステム等の周辺機器120又は一連の周辺機器120を、ネットワーク104、106、108の1つ又は複数に結合することができる。データベース及び/又は付加的なコンポーネントを、ネットワーク104、106、108に結合されたいずれかのタイプのネットワーク要素と共に利用すること、又はこれらに統合することが可能であることに留意されたい。本説明との関連において、ネットワーク要素は、ネットワークの任意のコンポーネントを指すことができる。
幾つかの手法によると、本明細書で説明される方法及びシステムは、IBM z/OS(商標)環境をエミュレートするUNIX(商標)システム、MICROSOFT WINDOWS(商標)環境を仮想的にホストするUNIX(商標)システム、又はIBM z/OS(商標)環境をエミュレートするMICROSOFT WINDOWS(商標)システムのような、1つ又は複数の他のシステムをエミュレートする仮想システム及び/又はシステムと共に、及び/又は仮想システム及び/又はシステム上で実装することができる。幾つかの実施形態において、この仮想化及び/又はエミュレーションは、VMWAREを用いて機能強化することができる。
さらなる手法において、1つ又は複数のネットワーク104、106、108は、一般的に「クラウド」と呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングにおいて、処理能力、周辺機器、ソフトウェア、データ、サーバ等のような共有リソースは、オンデマンド関係でクラウド内のいずれかのシステムに提供され、それにより多くのコンピューティング・システムにわたるアクセス及びサービスの分散が可能になる。クラウド・コンピューティングは、一般に、クラウド内で動作するシステム間のインターネット接続を必要とするが、当技術分野において周知であるような、システムを接続する他の技術を用いることもできる。
図2は、一実施形態による、図1のユーザ・デバイス116及び/又はサーバ114と関連した代表的なハードウェア環境を示す。図2は、一実施形態による、マイクロプロセッサのような中央処理ユニット210と、システム・バス212を介して相互接続された多数の他のユニットとを有するプロセッサ・システム200の一般的なハードウェア構成を示す。
図2に示されるプロセッサ・システム200は、ランダム・アクセス・メモリ(RAM)214と、読み出し専用メモリ(ROM)216と、ストレージ・サブシステム220などの周辺機器をバス212に接続するためのI/Oアダプタ218と、キーボード224、マウス226、スピーカ228、マイクロフォン232、及び/又は、タッチスクリーン、デジタル・カメラ(図示せず)などの他のユーザ・インターフェース・デバイスをバス212に接続するためのユーザ・インターフェース・アダプタ222と、プロセッサ・システム200を通信ネットワーク235(例えば、データ処理ネットワーク)に接続するための通信アダプタ234と、バス212をディスプレイ装置238に接続するためのディスプレイ・アダプタ236とを含む。
プロセッサ・システム200は、MICROSOFT WINDOWSオペレーティング・システム(OS)、MAC OS、UNIX OS等のようなオペレーティング・システムがそこに常駐することができる。上述したもの以外のプラットホーム及びオペレーティング・システム上で、好ましい実施形態を実施できることも理解されるであろう。好ましい実施形態は、オブジェクト指向プログラミング方法と共に、JAVA、XML、C、及び/又はC++言語、或いは他のプログラミング言語を用いて書くことができる。複雑なアプリケーションを開発するのにますます用いられるようになったオブジェクト指向プログラミング(OOP)を用いることができる。
ここで図3を参照すると、一実施形態による、ホスト・ベースのデータ・ストレージ・システム300が示される。ホスト・ベースのデータ・ストレージ・システム300は、NVMエクスプレス(NVMe)ストレージ・デバイス、SSD、フラッシュ・ドライブ等のような1つ又は複数のNVMストレージ・デバイス302を有することができる。各NVMストレージ・デバイス302は、フラッシュ・メモリ、読み出し専用メモリ(ROM)、強誘電体ランダム・アクセス・メモリ(FRAM)、プログラム可能読み出し専用メモリ(PROM)、不揮発性ランダム・アクセス・メモリ(NVRAM)等のような、当技術分野において周知のタイプのNVMを有することができる。一実施形態において、ホスト・プロセッサ304は、メモリ・コントローラ308と通信するように構成することができ、種々のNVMストレージ・デバイス302上のNVMのクラスタ化を提供し、サポートする。
ホスト・プロセッサ304は、例えば8レーン、32レーン等の8の倍数のこうしたレーンのような、複数の周辺機器コンポーネント相互接続エクスプレス(peripheral component interconnect express、PCIe)レーン312を介して、ホスト・プロセッサ304のドライバ306を用いてメモリ・コントローラ308と通信するように構成することができる。ホスト・プロセッサ304は、1つ又は複数の中央処理ユニット(CPU)、又は当技術分野において周知の何らかの他の適切なプロセッサ・タイプを有することができる。
メモリ・コントローラ308は、当技術分野において周知のタイプのNVMインターフェース310を介して、種々のNVMストレージ・デバイス302と通信することができる。メモリ・コントローラ308は、ハードウェア・モジュール、ブロック、及び/又はASIC、FPGA等といったプロセッサとして実装することができる。また、メモリ・コントローラ308は、リモート・ダイレクト・メモリ・アクセス(RDMA)オーバー・コンバージド・イーサネット(RoCE)、コヒーレント・アクセラレータ・プロセッサ・インターフェース(CAPI)オーバーRoCE、CAPIオーバー・イーサネット、NVMeオーバー・イーサネット等のような、データを格納し、NVMストレージ・デバイス302からデータを取り出すのに適した1つ又は複数の通信プロトコルを介して通信するように構成することができる。CAPIは、ローカルSSDと通信するためのプロトコルであり、NVMeは、ローカル接続ストレージのためのPCIeに類似したデータの伝送のためのプロトコルである。
データ・ストレージ・システム300との関連で、ファイバ・チャネル(Fiber Channel、FC)、FCオーバー・イーサネット(FCoE)、インフィニバンド(Infiniband)、インターネット・スモール・コンピュータ・システム・インターフェース(Internet SmallComputer System Interface、iSCSI)、転送制御プロトコル/インターネット・プロトコル(Transport Control Protocol/Internet Protocol、TCP/IP)、PCIe等、及び/又はそれらのいずれかの組み合わせのような、他の通信プロトコルを用いることもできる。
NVMのクラスタ化を提供するために(NVMe、CAPI等を介して)、送信及び/又は完了キューのような操作キューを、遠隔メモリ・アクセスのためにマッピングすることができる。本実施形態において、いずれのタイプのメモリ・アクセス・プロトコルを用いることもできる。このように、分散型メモリ(又はディスク)クラスタ化を、現在可能であるよりも直接的かつ効率的な方法でもたらすことができる。
ここで図4を参照すると、一実施形態による、ホスト・ベースのNVMストレージ・システムの動作が示される。ホスト・プロセッサ・メモリ402は、ホスト・プロセッサに接続することができ、複数のバッファ、特定的には、一般的なダウンタイム、サービス中断、コマンドのバースト等の際、あらゆるコマンドをバッファから押し出すことなく、複数のコマンドを格納するように構成されたサイズの1つ又は複数のリング・バッファを有することができる。一実施形態において、ホスト・プロセッサ・メモリ402は、1つ又は複数の送信キュー・リング・バッファ404(2つのこうしたリング・バッファが図示されているが、いずれの数を用いることもできる)及び1つ又は複数の完了キュー・リング・バッファ410(1つのこうしたリング・バッファが図示されているが、いずれの数を用いることもできる)を有することができる。送信キュー及び/又は完了キューのために、線形バッファ又は当技術分野において周知の何らかの他のバッファのような、他のタイプのバッファを用いることができる。
送信キュー・リング・バッファ404は、先入れ先出し(FIFO)スキーム、又は当技術分野において周知の何らかの他の所望のイン/アウト・スキームに従って実行することができるコマンドを格納するように構成することができる。送信キュー・リング・バッファ404は、ヘッド406からテール408へとコマンドを格納することができ、付加的なコマンドは、それ以上コマンドがキュー内に入らなくなるまで、ヘッド406に配置される。一実施形態において、コマンドは、送信キュー・リング・バッファ404のテールから引き出される。
完了キュー・リング・バッファ410は、送信キュー・リング・バッファ404を通じて処理された後、完了コマンドを格納することができる。完了キュー・リング・バッファ410は、FIFOスキーム、又は当技術分野において周知の何らかの他の所望のイン/アウト・スキームに従って実行できたコマンドを格納することもできる。さらに、完了キュー・リング・バッファ410は、ヘッド412からテール414へとコマンドを格納することができ、付加的な完了コマンドは、ヘッド412の前方に配置される。
メモリ・コントローラ308は、新しいコマンドが送信キュー・リング・バッファ404に付加されたという表示を受け取るように構成することができる。一実施形態において、この表示は、ドアベル・メッセージ・シグナル割り込み(doorbell message signaled interrupt、MSI)とすることができる。次に、メモリ・コントローラ308は、送信キュー・リング・バッファ404からコマンドをフェッチし、完了するまでコマンドを処理し、コマンドが完了したという表示をホスト・プロセッサに送る(例えば、完了MSIを介して)。次に、一実施形態によると、メモリ・コントローラ308は、例えば、完了キュー・リング・バッファ410におけるドアベルMSI(新しいヘッドを示す)を介して、プロセスの完了が確認応答されたとの表示を受け取ることができる。
一実施形態による、ネットワーク512を介してホスト510に接続することができるネットワーク・ストレージ・アプライアンス500が、図5に示される。ネットワーク・ストレージ・アプライアンス500は、ネットワーク512を通じて通信するように構成できるネットワーク・インターフェース・カード(NIC)502を有することができる。ネットワーク512は、1つ又は複数のスイッチ504を有することができる。1つ又は複数のスイッチ504は、プライオリティ・フロー制御(priority flow control、PFC)、拡張伝送選択(enhancedtransmission selection、ETS)、量子化輻輳通知(quantizedcongestion notification、QCN)のうちの少なくとも1つを実施するように構成された、物理スイッチ、仮想スイッチ、分散スイッチ等の任意の組み合わせとすることができる。一実施形態において、ネットワーク・ストレージ・アプライアンス500とホスト510との間の経路における1つ又は複数のスイッチ504は、上記に列挙された全てのフロー・プロトコルを実施するように構成することができる。さらに、ネットワーク・ストレージ・アプライアンス500とホスト510との間の経路におけるスイッチ504の各々は、RoCE、及び/又は上記に列挙された他の通信プロトコルの幾つか又は全てを介して通信するように構成することができる。
図3に示されるように、ネットワーク・ストレージ・アプライアンス500は、ホスト・ベースのデータ・ストレージ・システムのコンポーネントの幾つか又は全てを有することができる。図5に示されるように、ネットワーク・ストレージ・アプライアンス500は、ネットワーク512を通じて通信するように構成することができるNIC502と、ネットワーク・ストレージ・アプライアンス500の動作を制御するためのプロセッサ508と、メモリ・コントローラ308と、メモリ・コントローラ308がNVMインターフェース310を介して通信することができる複数のNVMストレージ・デバイス302とを有することができる。
一実施形態において、ホスト510はNIC506を有することができ、このNIC506は、ネットワーク512を通じて通信するように構成することができ、かつ、上記に列挙された種々の通信プロトコルの1つ又は複数を介して通信するためのドライバ306に接続することができる。ドライバ306は、プロセッサ304により制御することができる。
一実施形態において、NIC502及びNIC506の両方とも、1つ又は複数のスイッチ504を介してネットワーク512上のRoCEを介して通信するように構成することができ、その結果、ネットワーク・ストレージ・アプライアンス500とホスト510との間の経路における1つ又は複数のスイッチ504の各々は、RoCEを介して通信するように構成することができる。
このように、ホスト510は、ネットワーク・ストレージ・アプライアンス500内の種々のNVMストレージ・デバイス302上のNVMにアクセスするように構成することができる。ネットワーク512がイーサネット接続を用いるとき、一定の低レイテンシ、コンバージド・イーサネット(converged Ethernet)能力(ロスレス機能のための)及びRoCEサポートを伴って、実際の構成に応じて、10/40/100Gbpsのいずれも可能である。これは、ネットワーク・ストレージ・アプライアンス500上のNVMへの直接アクセスのための、ユビキタス、迅速で、拡張可能な、コスト競争力のある解決法である。
一実施形態において、ネットワーク・ストレージ・アプライアンス500は、データを格納するように構成することができる複数のNVMストレージ・デバイス302と、NVMインターフェース310を介して複数のNVMストレージ・デバイス302に接続することができるメモリ・コントローラ308と、メモリ・コントローラ308に接続することができ、RoCE又は当技術分野において周知の何らかの他の適切なプロトコルを介してNVMクラスタ内の他のノードとネットワーク512を通じて通信するように構成することができるNIC502と、プロセッサ508と、プロセッサ508と統合することができ及び/又はプロセッサ508により実行可能な論理とを有することができ、この論理は、そこにアクセス可能な共有NVMを有する1つ又は複数のノードを含むNVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取り、マルチキャスト・メッセージの受信に応答して、NVMクラスタ内のいずれかの他のノード上の共有NVMの詳細に対する要求を送り、ネットワーク・ストレージ・アプライアンス500上の共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加し、ネットワーク・ストレージ・アプライアンス500上の共有NVMの送信及び完了キューをNVMクラスタ内の他のノードにマッピングし、ネットワーク・ストレージ・アプライアンス500上の共有NVMの詳細をNVMクラスタ内の他のノードに送り、NVMクラスタ内の他のノード上の共有NVMの詳細を受け取り、NVMクラスタ内の他のノード上の共有NVMの詳細に基づいて、NVMクラスタ内の他のノード上の共有NVMをメモリ・コントローラ308にマッピングするように構成することができる。送信キューは、先入れ先出し(FIFO)スキームに従って、他のノード上の共有NVMにアクセスするためのコマンドを格納するように構成することができ、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成することができる。
図6の一実施形態によると、ネットワーク・ストレージ・アプライアンス500の動作が示される。示されるように、ホスト・プロセッサ304はキュー・コマンドを発行することができ、このキュー・コマンドは、NIC506を介して(矢印608で示されるように)ネットワークを通じて通信することができ、NIC502により他のエンドで受け取ることができ、次に送信キュー・リング・バッファ604にRMDAすることができる。一実施形態によると、これは、ホスト・プロセッサ304をネットワーク・ストレージ・アプライアンス500のマッピングされたメモリ602にRDMAマッピングすることができ、その結果、他の処理を必要とすることなく、ホスト・プロセッサ304からのキュー・コマンドを送信キュー・リング・バッファ604にRMDAすることができることによって可能である。
この動作が成功し、繰り返し可能であるために、一実施形態において、少なくともRoCE、PFC及びQCNによって、ネットワークを通じた通信608をサポートすることができる。
次に、メモリ・コントローラ308は、新しいコマンドが送信キュー・リング・バッファ604に付加されたという表示を受け取ることができる。一実施形態において、この表示は、ドアベルMSIとすることができる。次に、メモリ・コントローラ308は、送信キュー・リング・バッファ604からコマンドをフェッチし、コマンドを完了するまで処理し、コマンドが完了した(例えば、完了MSIを介して)という表示をホスト・プロセッサ304に送る。次に、一実施形態によれば、メモリ・コントローラ308は、例えば、完了キュー・リング・バッファ606におけるドアベルMSI(新しいヘッドを示す)を介して、プロセスの完了が確認応答されたとの表示を受け取ることができる。
ここで図7を参照すると、一実施形態による、ホスト・ベースのNVMストレージのクラスタ化が示される。示されるように、複数のホスト・ベースのNVMを、例えばホスト0 702、ホスト1 704、ホスト2 706、ホスト3 708、ホスト4 710等の各ホストと共に、NVMクラスタ700内に含ませ、それぞれのローカルNVMを管理し、NVMクラスタ700の他のメンバーへのアクセスを提供することができる。同様に、それぞれのローカルNVMを管理し、NVMクラスタ700の他のメンバーへのアクセスを提供するように、いずれかのネットワーク・ストレージ・アプライアンス712を構成することもできる。このNVMクラスタ700は、任意の数のノードを含むことができる。NVMクラスタ700のノードは、1つ又は複数のネットワーク・ストレージ・アプライアンス、1つ又は複数のホスト・ベースのNVM、及び/又はその任意の組み合わせを含むことができる。これは、ネットワーク内の全ての権限付与されたコンポーネントに対して、NVMクラスタ700内の共有NVM上に格納されたデータへのシームレスで高速なアクセスを提供できる利点を有する。
このNVMクラスタ700を達成するために、一実施形態において、NVMクラスタ700が立ち上がって作動するように、次の操作ステップが続き得る。
1)第1のノード(例えば、ホスト0 702)がブートし、NVMクラスタ700がどのように機能し動作するかを制御するクラスタ・パラメータを活性化する。
2)第1のノードは、所定の間隔でクラスタの詳細をNVMクラスタ700内の全ての他のノードにマルチキャストする。クラスタ詳細は、アクセスのポリシー(例えば、NVMクラスタ700の種々のNVMに格納されたいずれかの情報にどのように及び誰がアクセスすることが可能か)を含むことができる。これは、共有NVM上の特定のデータへのアクセスを制限する方法を提供する。
3)第2のノードがブートし(例えば、ホスト1〜5のいずれか)、第2のノードは、ローカル・ディスク・ファイル(例えば、クラスタ構成ファイル)から、ローカル・クラスタ・パラメータを受け取る。これらのローカル・クラスタ・パラメータは、第1のノードからのマルチキャスト・メッセージに対して何をリッスン(listen)するかを含むことができる。
4)次に、第2のノードは、NVMクラスタ700内の全てのメンバー・ノードから情報を要求し、現在唯一のメンバー・ノードは第1のノードであるが第2のノードはそれを知らず、従って、情報を求めるこの要求を作成する。上記要求は上記間隔以内に作成され、第2のノードが上記間隔で第1のノードから情報を受け取れば、この要求は不要になり得る。
5)第2のノードは、マルチキャスト・メッセージをリッスンし、第1のノードからこれを受け取る。
6)1つの手法において、第2のノードは、第1のノードからのマルチキャスト・メッセージの受信に応答して、ファイル位置及び第1のノード上の共有メモリの詳細を要求し、それは、ファイルのアクセス可能なインデックス内に提供することができる。
7)第2のノードは、それぞれの送信及び完了キューを初期化することによって、NVMクラスタ700に参加し、RDMAを介してそのローカルNVMストレージ(送信及び完了キュー)をNVMクラスタ700内の他のノードにマッピングし、第2のノードのローカルNVMにアクセスするためのローカルRoCE NICアドレスなどのそれ自身のNVM詳細を提供する。これは、クラスタの他のノード上の共有NVMへの迅速で信頼できるアクセスを提供する。
8)第1のノードは、第2のノードからNVM詳細を受け取り、RDMAで第2のノードの送信及び完了キューをマッピングし、第1のノードのNVM詳細を第2のノードに提供する。特定の共有制限、時間的制約、アクセス制約等を用いるNVMクラスタ700を設定するとき、他の特定の操作も可能であり、この時点で、この情報も共有される。
9)この時点で、NVMクラスタ700は、2つのノードを含み、各ノードのNVMは、他のノードに見える。
ここで、NVMクラスタ700内のいずれのノードも、他のノードのローカルNVMにアクセスするために、リモート・アクセス要求を他のノードに送ることができる。これらのリモート・アクセス要求は、他のノードのローカル送信キュー内に格納し、前述のように処理することができ、動作の完了に応答して、特定のリモート・アクセス要求に適したいずれかの情報、データ、確認等と共に、もとの開始ノードに対して示すことができる。これは、ネットワーク内の他の共有NVM上に格納されるデータへのシームレスで迅速なアクセスを提供する利点を有する。しかしながら、ローカル・ホストは、ローカル・ホストのNVMに対するリモート・アクセス要求への可視性を有さず、代わりに、この機能は、NVMコントローラによって提供される。
別の実施形態において、ホスト・ベースのストレージ及び/又はネットワーク・ストレージ・アプライアンスは、ネットワーク内の特定の事前に権限付与されたエンティティによってのみアクセス可能な、1つ又は複数のアクセス制限キューを有することができる。アクセスを許容するか否かを判断するために、1つ又は複数のアクセス制限キューにアクセスしたいと望む遠隔エンティティの間で、情報の交換を行うことができる。1つの手法において、これらの1つ又は複数のアクセス制限キューは、RDMAを介して共有することができる。これは、ネットワーク内の特定の共有NVMへのアクセスを制限する利点を有する。
ここで図8を参照すると、一実施形態による、NVMのクラスタ化を提供するための方法800が示される。動作802において、第1のノードを用いて、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化する。
一実施形態において、第1のノードは、データを格納するように構成することができる第1のNVMと、NVMインターフェースを介して第1のNVMに接続することができる第1のメモリ・コントローラと、第1のメモリ・コントローラに接続することができ、ネットワークを通じて通信するように構成することができる第1のNICと、第1のプロセッサと、第1のプロセッサと統合することができ及び/又は第1のプロセッサにより実行可能な第1の論理とを含むことができる。一実施形態において、第1の論理は、方法800を実行するように構成することができる。
動作804において、所定の間隔で、ネットワークを通じてNVMクラスタのクラスタ・パラメータをNVMクラスタ内の全ての他のノードにマルチキャストすることができる、その結果、これらの他のノードに、NVMクラスタの存在を認識させることができる。
動作806において、第2のノードから、第1のノード上の共有NVMの詳細に対する要求を受け取ることができる。第1のノードの全てのNVMを共有するように構成する必要はなく、従って、第1のノード上の共有NVMと呼ぶ、第1のNVMのどの部分が共有されるかを決定するように、第1のノードを構成することができる。
動作808において、第2のノードから、第1のノードにおいて、第2のノード上の共有NVMの詳細を受け取ることができる。第2のノード上の共有NVMの詳細は、第2のノード上の各共有NVM内のファイル位置を含むことができるので、ファイル位置は、第1のノードの第1のメモリ・コントローラにマッピングすることができる。
動作810において、第1のノード上の共有NVMの詳細を、第2のノードに送ることができる。第1のノード上の共有NVMの詳細は、第1のノード上の各共有NVM内のファイル位置を含むことができるので、ファイル位置は、第2のノードの第2のメモリ・コントローラにマッピングすることができる。
動作812において、第2のノード上の共有NVMの詳細に基づいて、第2のノード上の共有NVMの送信及び完了キューを第1のメモリ・コントローラにマッピングすることができる。送信キューは、先出し先入れ(FIFO)スキームに従って、第2のノード上の共有NVMにアクセスするためのコマンドを格納するように構成することができ、完了キューは、送信キューを通じて処理された後、完了コマンドを格納するように構成することができる。
このことは、NVMクラスタにわたってNVMクラスタ内の全てのノードの共有メモリにアクセスすることを可能にする。
更に別の実施形態において、方法800は、ローカル・クラスタ構成ファイルからローカル・クラスタ・パラメータを受け取ることと、NVMクラスタのクラスタ・パラメータを含むマルチキャスト・メッセージを受け取ることと、第1のノードからのマルチキャスト・メッセージの受信に応答して、第1のノード上の共有NVMの詳細に対する要求を第1のノードに送ることと、第2のノード上の共有NVMの送信及び完了キューを初期化することによって、NVMクラスタに参加することと、第2のノード上の共有NVMの詳細を第1のノードに送ることと、第1のノード上の共有NVMの詳細を受け取ることと、第1のノード上の共有NVMの詳細に基づいて、第1のノード上の共有NVMを第2のメモリ・コントローラにマッピングすることとを含むことができる。
一実施形態において、クラスタの詳細は、第1のノード上の共有NVMに格納されるデータについてのアクセス・ポリシーを含むことができる。このように、当業者により理解されるように、制限アクセス・ファイルを示すことができ、NVM内の他のノードはアクセスすることができず、又は制限コンテンツにアクセスするための特権を必要することがある。
別の実施形態において、方法800は、所定の間隔でクラスタの詳細をマルチキャストする前に、第2のノードから、クラスタの詳細に対する要求を受け取ることを含むことができる。このことは、クラスタの詳細をやみくもにブロードキャストする前に、第1のノードが第2のノードの存在を認識することを可能にする。
1つの手法において、RDMAを用いて、第2のノード上の共有NVMの送信及び完了キューを第1のメモリ・コントローラにマッピングすることができる。さらに、第2のノード上の共有NVMの詳細は、NVMクラスタ内のいずれかの他のノードにより第2のノード上の共有NVMにアクセスするために用いられる第2のノードのRoCE NICアドレスを含むことができる。
さらに、第1のノード上の共有NVM及び第2のノード上の共有NVMは、CAPI及びNVMeの少なくとも1つを介して、NVMクラスタ内の他のノードにアクセス可能であり得る。
NVMクラスタ内のノードのいずれにおいても、本明細書で説明されるもの及び当技術分野において周知の他のものを含む、いずれかの適切なNVMを用いることができる。
更に別の実施形態において、方法800は、NVMeオーバー・イーサネット及びCAPIオーバー・イーサネットの少なくとも1つを用いて、RDMAを介して、データを第1のノード上の共有NVMから第2のノードに送ることと、データにアクセスすること、命令にアクセスすること、データをキューに入れること、及び命令をキューに入れることの少なくとも1つを含む、RoCEを介して第2のノード上の共有NVMでの操作を実行することとを含むことができる。
NVMクラスタは、1つ又は複数のネットワーク・ストレージ・アプライアンス、及び/又は当業者には周知のような、NVMを含む他のネットワーク・ストレージ・デバイスを含むこともできる。
種々の実施形態による本明細書で提示されるNVMのアクセス方法は、不揮発性メモリ上のデータ格納のための低い一定のレイテンシを可能にし、プロセッサの待ち時間を減らし、アプリケーションの性能を改善し、拡張可能なNVMストレージ・アプリケーション内に含ませることができ、クラスタ化を可能にし、ストレージの仮想化を提供し、現在のアクセス方法に比べて開発コストを減少させる。
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って伝搬される電気信号などの、一時的信号自体として解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び/又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
さらに、種々の実施形態によるシステムは、プロセッサと、プロセッサと統合され及び/又はプロセッサにより実行可能な論理とを含むことができ、この論理は、本明細書に列挙されるプロセス・ステップの1つ又は複数を実行するように構成される。統合が意味するのは、プロセッサが、ASIC、FPGA等のようなハードウェア論理として埋め込まれた論理を有することである。プロセッサにより実行可能が意味するのは、論理が、ハードウェア論理、ファームウェアのようなソフトウェア論理、オペレーティング・システムの部分、アプリケーション・プログラムの部分等、又はプロセッサによりアクセス可能であり、かつ、プロセッサによる実行時にプロセッサに何らかの機能を実施させるように構成された、ハードウェア及びソフトウェア論理パーティションの何らかの組み合わせである。ソフトウェア論理は、当技術分野において周知のようないずれかのメモリ・タイプのローカル及び/又は遠隔メモリ上に格納することができる。ソフトウェア・プロセッサ・モジュール、及び/又はASIC、FPGA、CPU、集積回路(IC)、グラフィック処理ユニット(GPU)等のようなハードウェア・プロセッサといった、任意のプロセッサを用いることができる。
上記のシステム及び/又は方法の種々の特徴をいずれかの方法で組み合わせて、上記に提示された説明から複数の組み合わせを活性化することができることは明らかであろう。
さらに、本発明の実施形態は、オンデマンドでサービスを提供するために、顧客のために配備されたサービスの形で提供することができることが理解されるであろう。
種々の実施形態が上述されたが、それらは、単なる例示として提示されたものであり、限定ではないことを理解されたい。従って、本発明の実施形態の範囲は、上述した例示的な実施形態のいずれにも限定されるべきではなく、以下の特許請求の範囲及びその等価物に従ってのみ定められるべきである。
100:ネットワーク・アーキテクチャ
101:ゲートウェイ
102、104、106:遠隔ネットワーク
108:近接ネットワーク
111、116:ユーザ・デバイス
114:データ・サーバ
120:周辺機器
200:プロセッサ・システム
210:中央処理ユニット
212:システム・バス
214:ランダム・アクセス・メモリ(RAM)
216:読み出し専用メモリ(ROM)
220:ストレージ・サブシステム
218:I/Oアダプタ
222:ユーザ・インターフェース・アダプタ
234:通信アダプタ
235:通信ネットワーク
238:ディスプレイ装置
300:ホスト・ベースのデータ・ストレージ・システム
302:不揮発性(NVM)ストレージ・デバイス
304:ホスト・プロセッサ
306:ドライバ
308:メモリ・コントローラ
312:相互接続エクスプレス(PCIe)レーン
402:ホスト・プロセッサ・メモリ
404、604:送信キュー・リング・バッファ
410、606:完了キュー・リング・バッファ
500、712:ネットワーク・ストレージ・アプライアンス
502、506:ネットワーク・インターフェース・カード(NIC)
504:スイッチ
508:プロセッサ
510:ホスト
512:ネットワーク
608:通信
700:NVMクラスタ
702、704、706、708、710:ホスト
800:方法

Claims (14)

  1. 第1のノードを含み、前記第1のノードは、
    データを格納するように構成された第1の不揮発性メモリ(NVM)と、
    NVMインターフェースを介して前記第1のNVMに接続された第1のメモリ・コントローラと、
    前記第1のメモリ・コントローラに接続され、ネットワークを通じて通信するように構成された第1のネットワーク・インターフェース・カード(NIC)と、
    第1のプロセッサと、
    前記第1のプロセッサと統合され及び/又は前記第1のプロセッサにより実行可能な第1の論理と、を含み、前記第1の論理は、
    NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを生成し、
    所定の間隔で前記NVMクラスタのクラスタ・パラメータを前記NVMクラスタ内の全ての他のノードにマルチキャストし、
    第2のノードから、前記第1のノード上の共有NVMの詳細に対する要求を受け取り、
    前記第2のノードから、前記第2のノード上の各共有NVM内のファイル位置を含む、前記第2のノード上の前記共有NVMの細を受け取り、
    前記第1のノード上の各共有NVM内のファイル位置を含む、前記第1のノード上の前記共有NVMの前記詳細を前記第2のノードに送り、
    前記第2のノード上の前記共有NVMの前記詳細に基づいて、前記第2のノード上前記共有NVMの送信及び完了キューを前記第1のメモリ・コントローラにマッピングする、ように構成され、
    前記送信キューは、先出し先入れ(FIFO)スキームに従って、前記第2のノード上の前記共有NVMにアクセスするためのコマンドを格納するように構成され、前記完了キューは、前記送信キューを通じて処理された後、完了コマンドを格納するように構成される、システム。
  2. 前記第2のノードをさらに含み、前記第2のノードは、
    データを格納するように構成された第2のNVMと、
    NVMインターフェースを介して前記第2のNVMに接続された第2のメモリ・コントローラと、
    前記第2のメモリ・コントローラに接続され、前記ネットワークを通じて通信するように構成された第2のNICと、
    第2のプロセッサと、
    前記第2のプロセッサと統合され及び/又は前記第2のプロセッサにより実行可能な第2の論理と、を含み、前記第2の論理は、
    ローカル・クラスタ構成ファイルからローカル・クラスタ・パラメータを受け取り、
    前記NVMクラスタの前記クラスタ・パラメータを含むマルチキャスト・メッセージを受け取り、
    前記第1のノードからの前記マルチキャスト・メッセージの受信に応答して、前記第1のノード上の前記共有NVMの詳細に対する前記要求を前記第1のノードに送り、
    前記第2のノード上の前記共有NVMの前記送信及び完了キューを初期化、前記第2のノード上の前記共有NVMの前記送信及び完了キューを前記NVMクラスタ内の前記他のノードにマッピングし、前記第2のノード上の前記共有NVMの詳細を前記第1のノードに送り、
    前記第1のノード上の前記共有NVMの前記詳細に基づいて、前記第1のノード上の前記共有NVMを前記第2のメモリ・コントローラにマッピングする、
    ように構成される、請求項1に記載のシステム。
  3. 前記クラスタ・パラメータは、前記第1のノード上の前記共有NVMに格納されたデータについてのアクセス・ポリシーを含む、請求項1に記載のシステム。
  4. 前記第1の論理は、前記所定の間隔で前記クラスタ・パラメータをマルチキャストする前に、前記第2のノードから、前記クラスタ・パラメータに対する要求を受け取るようにさらに構成される、請求項1に記載のシステム。
  5. リモート・ダイレクト・メモリ・アクセス(RDMA)を用いて、前記第2のノード上の前記共有NVMの前記送信及び完了キューを前記第1のメモリ・コントローラにマッピングする、請求項1に記載のシステム。
  6. 前記第2のノード上の前記共有NVMの前記詳細は、前記NVMクラスタ内のいずれかの他のノードにより前記第2のノード上の前記共有NVMにアクセスするために用いられる、前記第2のノードのRDMAオーバー・コンバージド・イーサネット(RoCE)ネットワーク・インターフェース・カード(NIC)アドレスを含む、請求項5に記載のシステム。
  7. コヒーレント・アクセラレータ・プロセッサ・インターフェース(CAPI)及びNVMエクスプレス(NVMe)の少なくとも1つを介して、前記第1のノード上の前記共有NVM及び前記第2のノード上の前記共有NVMは、前記NVMクラスタ内の他のノードにアクセス可能である、請求項1に記載のシステム。
  8. 前記第1のノード上の前記共有NVM及び前記第2のノード上の前記共有NVMは、ソリッド・ステート・ドライブ、フラッシュ・メモリ、読み出し専用メモリ(ROM)、強誘電体ランダム・アクセス・メモリ(FRAM)、プログラム可能読み出し専用メモリ(PROM)、及び不揮発性ランダム・アクセス・メモリ(NVRAM)のうちの少なくとも1つを含む、請求項1に記載のシステム。
  9. 前記第1の論理は、
    NVMエクスプレス(MVMe)オーバー・イーサネット及びコヒーレント・アクセラレータ・プロセッサ・インターフェース(CAPI)オーバー・イーサネットの少なくとも1つを用いて、リモート・ダイレクト・メモリ・アクセス(RDMA)を介して、データを前記第1のノード上の前記共有NVMから前記第2のノードに送り、
    RDMAオーバー・コンバージド・イーサネット(RoCE)を介して、前記第2のノード上の前記共有NVMの前記送信及び完了キューの操作であって、データにアクセスすること、命令にアクセスすること、データをキューに入れること、及び命令をキューに入れることの少なくとも1つを含む操作を実行する、ようにさらに構成される、請求項1に記載のシステム。
  10. ネットワーク・ストレージ・アプライアンスをさらに含み、前記ネットワーク・ストレージ・アプライアンスは、
    データを格納するように構成された複数のNVMストレージ・デバイスと、
    NVMインターフェースを介して、前記複数のNVMストレージ・デバイスに接続された第3のメモリ・コントローラと、
    前記第3のメモリ・コントローラに接続され、リモート・ダイレクト・メモリ・アクセス(RDMA)オーバー・コンバージド・イーサネット(RoCE)を介して、ネットワークを通じて前記NVMクラスタ内の他のノードと通信するように構成された第3のネットワーク・インターフェース・カード(NIC)と、
    第3のプロセッサと、
    前記第3のプロセッサと統合され及び/又は前記第3のプロセッサにより実行可能な第3の論理と、を含み、前記第3の論理は、
    ローカル・クラスタ構成ファイルからローカル・クラスタ・パラメータを受け取り、
    前記第1のノードから、前記NVMクラスタの前記クラスタ・パラメータを含むマルチキャスト・メッセージを受け取り、
    前記第1のノードからの前記マルチキャスト・メッセージの受信に応答して、前記第1のノード上の前記共有NVMの詳細に対する要求を前記第1のノードに送り、
    前記ネットワーク・ストレージ・アプライアンス上の前記共有NVMの送信及び完了キューを初期化、前記ネットワーク・ストレージ・アプライアンスの前記共有NVMの前記送信及び完了キューを前記NVMクラスタ内の前記他のノードにマッピングし、前記ネットワーク・ストレージ・アプライアンス上の前記共有NVMの詳細を前記第1のノードに送り、
    前記第1のノード上の前記共有NVMの前記詳細を受け取り、
    前記第1のノード上の前記共有NVMの前記詳細に基づいて、前記第1のノード上の前記共有NVMを前記第3のメモリ・コントローラにマッピングする、
    ように構成される、請求項1に記載のシステム。
  11. 第1の不揮発性メモリ(NVM)と第1のプロセッサとを内部に有する第1のノード、NVMクラスタがどのように機能し動作するかを制御するクラスタ・パラメータを活性化することと、
    前記第1のノード、所定の間隔で前記NVMクラスタのクラスタ・パラメータを前記NVMクラスタ内の全ての他のノードにマルチキャストすることと、
    前記第1のノード、前記第1のノード上の共有NVMの詳細に対する要求を受け取ることと、
    前記第1のノード、第2のノード上の各共有NVM内のファイル位置を含む、第2のノード上の共有NVMの詳細を受け取ることと、
    前記第1のノードが、前記第1のノード上の各共有NVM内のファイル位置を含む、前記第1のノード上の前記共有NVMの前記詳細を前記第2のノードに送ることと、
    前記第1のノード、前記第2のノード上の前記共有NVMの前記詳細に基づいて、前記第2のノード上の前記共有NVMの送信及び完了キューを前記第1のノードにマッピングすることと、を含み、
    前記送信キューは、先出し先入れ(FIFO)スキームに従って、前記第2のノード上の前記共有NVMにアクセスするためのコマンドを格納するように構成され、
    前記完了キューは、前記送信キューを通じて処理された後、完了コマンドを格納するように構成される、方法。
  12. 前記クラスタ・パラメータは、前記第1のノード上の前記共有NVMに格納されたデータについてのアクセス・ポリシーを含む、請求項11に記載の方法。
  13. 前記所定の間隔で前記クラスタ・パラメータをマルチキャストする前に、前記第1のノード、前記クラスタ・パラメータに対する要求を受け取ることをさらに含む、請求項11に記載の方法。
  14. 前記第1のノードは、リモート・ダイレクト・メモリ・アクセス(RDMA)を用いて、前記第2のノード上の前記共有NVMの前記送信及び完了キューを前記第1のノードにマッピングする、請求項11に記載の方法。
JP2017535644A 2015-01-27 2016-01-14 ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化 Active JP6663434B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/606,947 US10061743B2 (en) 2015-01-27 2015-01-27 Host based non-volatile memory clustering using network mapped storage
US14/606,947 2015-01-27
PCT/EP2016/050685 WO2016120084A1 (en) 2015-01-27 2016-01-14 Host based non-volatile memory clustering using network mapped storage

Publications (2)

Publication Number Publication Date
JP2018509674A JP2018509674A (ja) 2018-04-05
JP6663434B2 true JP6663434B2 (ja) 2020-03-11

Family

ID=55182301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535644A Active JP6663434B2 (ja) 2015-01-27 2016-01-14 ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化

Country Status (5)

Country Link
US (2) US10061743B2 (ja)
JP (1) JP6663434B2 (ja)
DE (1) DE112016000258B4 (ja)
GB (1) GB2551077B (ja)
WO (1) WO2016120084A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003648B2 (en) * 2014-10-02 2018-06-19 Samsung Electronics Co., Ltd. Mechanism for universal parallel information access
US10061743B2 (en) 2015-01-27 2018-08-28 International Business Machines Corporation Host based non-volatile memory clustering using network mapped storage
WO2018023499A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
US11586565B2 (en) * 2016-10-03 2023-02-21 Samsung Electronics Co., Ltd. Non-volatile storage system and data storage access protocol for non-volatile storage devices
US10614356B2 (en) 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US11102294B2 (en) 2017-06-09 2021-08-24 Samsung Electronics Co., Ltd. System and method for supporting energy and time efficient content distribution and delivery
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10785301B2 (en) * 2017-08-03 2020-09-22 Toshiba Memory Corporation NVM express over fabrics
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
CN112615917B (zh) * 2017-12-26 2024-04-12 华为技术有限公司 存储系统中存储设备的管理方法及存储系统
US11595474B2 (en) * 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
KR20190112446A (ko) * 2018-03-26 2019-10-07 삼성전자주식회사 네트워크 페브릭에 장착되는 스토리지 장치 및 그것의 큐 관리 방법
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US10630554B1 (en) * 2018-10-29 2020-04-21 International Business Machines Corporation Input/output (I/O) performance of hosts through bi-directional bandwidth feedback optimization
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US20220365729A1 (en) * 2019-01-31 2022-11-17 Intel Corporation Shared memory mechanism to support fast transport of sq/cq pair communication between ssd device driver in virtualization environment and physical ssd
US10958597B2 (en) * 2019-02-25 2021-03-23 Cisco Technology, Inc. General purpose ring buffer handling in a network controller
CN111625180B (zh) 2019-02-27 2021-05-28 英韧科技(上海)有限公司 数据写入方法及装置、存储介质
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
CN111064680B (zh) * 2019-11-22 2022-05-17 华为技术有限公司 一种通信装置及数据处理方法
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US20230236994A1 (en) * 2022-01-27 2023-07-27 Samsung Electronics Co., Ltd. Systems, methods, and devices for queue management with a coherent interface
CN115550384B (zh) * 2022-11-25 2023-03-10 苏州浪潮智能科技有限公司 集群数据同步方法、装置、设备及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148377A (en) 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US7478138B2 (en) * 2004-08-30 2009-01-13 International Business Machines Corporation Method for third party, broadcast, multicast and conditional RDMA operations
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US10037272B2 (en) 2012-08-08 2018-07-31 Avalanche Technology, Inc. Storage system employing MRAM and array of solid state disks with integrated switch
WO2013147820A1 (en) * 2012-03-29 2013-10-03 Intel Corporation System and method for managing persistence with a multi-level memory hierarchy including non-volatile memory
JP2014130420A (ja) 2012-12-28 2014-07-10 Hitachi Ltd 計算機システム及び計算機の制御方法
US9483431B2 (en) * 2013-04-17 2016-11-01 Apeiron Data Systems Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US9430412B2 (en) * 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US10628353B2 (en) * 2014-03-08 2020-04-21 Diamanti, Inc. Enabling use of non-volatile media-express (NVMe) over a network
US9727503B2 (en) * 2014-03-17 2017-08-08 Mellanox Technologies, Ltd. Storage system and server
US10061743B2 (en) 2015-01-27 2018-08-28 International Business Machines Corporation Host based non-volatile memory clustering using network mapped storage

Also Published As

Publication number Publication date
DE112016000258B4 (de) 2023-09-14
US10061743B2 (en) 2018-08-28
DE112016000258T5 (de) 2017-09-28
GB201713001D0 (en) 2017-09-27
GB2551077A (en) 2017-12-06
US20160217104A1 (en) 2016-07-28
US11321271B2 (en) 2022-05-03
US20180322088A1 (en) 2018-11-08
WO2016120084A1 (en) 2016-08-04
GB2551077B (en) 2018-05-30
JP2018509674A (ja) 2018-04-05

Similar Documents

Publication Publication Date Title
JP6663434B2 (ja) ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化
US10250496B2 (en) Router based maximum transmission unit and data frame optimization for virtualized environments
US9678912B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
US9043501B2 (en) Input/output monitoring mechanism
JP5735883B2 (ja) ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
US10579579B2 (en) Programming interface operations in a port in communication with a driver for reinitialization of storage controller elements
EP3563534B1 (en) Transferring packets between virtual machines via a direct memory access device
US9807177B2 (en) Session aware USB redirection for multi-server published applications
US10452570B1 (en) Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints
US9654421B2 (en) Providing real-time interrupts over ethernet
US9936049B2 (en) Protocol independent way for dynamically selecting data compression methods for redirected USB devices
WO2013150404A1 (en) Layer 2 packet switching without look-up table for ethernet switches
US8281050B2 (en) Method and apparatus of storage array with frame forwarding capability
JP2007193786A (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム(ネットワーク・プロトコル・スタック隔離)
US9344376B2 (en) Quality of service in multi-tenant network
US10700978B2 (en) Offloading at a virtual switch in a load-balanced group
US9904654B2 (en) Providing I2C bus over ethernet
Kim et al. How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics
US11194742B2 (en) Detecting potentially overlapping input/output queues
US10880371B2 (en) Connecting an initiator and a target based on the target including an identity key value pair and a target characteristic key value pair
US11089066B2 (en) System and method for dynamic medium access control (MAC) relating to a virtualization environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200214

R150 Certificate of patent or registration of utility model

Ref document number: 6663434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250