CN113835618A - 数据存储装置、存储系统和提供虚拟化存储的方法 - Google Patents

数据存储装置、存储系统和提供虚拟化存储的方法 Download PDF

Info

Publication number
CN113835618A
CN113835618A CN202110163895.0A CN202110163895A CN113835618A CN 113835618 A CN113835618 A CN 113835618A CN 202110163895 A CN202110163895 A CN 202110163895A CN 113835618 A CN113835618 A CN 113835618A
Authority
CN
China
Prior art keywords
data
networked
networked storage
storage device
storage devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110163895.0A
Other languages
English (en)
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 CN113835618A publication Critical patent/CN113835618A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports

Landscapes

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

Abstract

公开了数据存储装置、存储系统和提供虚拟化存储的方法。所述方法可包括:通过负载均衡器在装置与网络化存储装置的组之间建立传输连接;以及使用传输协议通过所述传输连接在所述装置与网络化存储装置的组之间传送数据,其中,网络化存储装置的组包括两个或更多个网络化存储装置,并且网络化存储装置的组作为逻辑存储装置由所述装置访问。存储装置可包括存储介质、网络结构接口和存储控制器,存储控制器被配置为:通过传输连接经由网络结构接口在存储介质与装置之间传送数据,其中,存储控制器被配置为与网络化的另一数据存储装置共享所述传输连接。

Description

数据存储装置、存储系统和提供虚拟化存储的方法
技术领域
本公开总体上涉及存储装置,具体地讲,涉及用于虚拟化网络化存储装置(fabric-attached storage devices)的系统和方法。
背景技术
网络化存储装置可包括网络接口,该网络接口可使存储装置能够通过网络结构(network fabric)(诸如,以太网)直接与主机通信。网络化固态驱动器(SSD)可使用存储协议(诸如,通过网络的非易失性存储器快速(Nonvolatile Memory Express Over Fabric,NVMe-oF))来通过网络结构传送数据。
在本背景技术部分中公开的以上信息仅用于增强对发明的背景的理解,因此它可包含不构成现有技术的信息。
发明内容
一种提供虚拟化存储的方法可包括:通过负载均衡器在装置与网络化存储装置的组之间建立传输连接;以及使用传输协议通过所述传输连接在所述装置与网络化存储装置的组之间传送数据,其中,网络化存储装置的组包括两个或更多个网络化存储装置,并且网络化存储装置的组作为逻辑存储装置由所述装置访问。网络化存储装置的组可共享网络地址。网络化存储装置的组中的至少两个网络化存储装置可针对所述网络地址使用不同的网络端口。所述网络地址可包括互联网协议(IP)地址。传输协议可包括传输控制协议(TCP)。所述装置和网络化存储装置的组可使用通过网络的非易失性存储器快速(NVMe-oF)协议来交换数据。所述传输连接的接收窗口空间可在网络化存储装置的组中的至少两个网络化存储装置之间共享。网络化存储装置的组中的至少两个网络化存储装置可响应于读取命令,在所述传输连接内使用至少第一传输协议序列号和第二传输协议序列将数据传送到所述装置。网络化存储装置的组中的一个网络化存储装置可响应于所述装置接收到读取数据,累积来自所述装置的一个或多个确认。针对写入操作,负载均衡器可使用所述传输连接将数据从所述装置直接传送到网络化存储装置的组中的一个或多个网络化存储装置。针对写入操作,负载均衡器可将写入数据从所述装置传送到网络化存储装置的组中的第一网络化存储装置,并且网络化存储装置的组中的第一网络化存储装置将写入数据的至少一部分从所述装置传送到网络化存储装置的组中的第二网络化存储装置。网络化存储装置的组中的第一网络化存储装置确定写入数据在网络化存储装置的组之间的分布。
一种存储系统可包括:第一网络化存储装置;第二网络化存储装置;以及负载均衡器,通过网络结构连接到第一网络化存储装置和第二网络化存储装置,其中,负载均衡器被配置为:使用在第一网络化存储装置与第二网络化存储装置之间共享的传输连接,在装置与第一网络化存储装置和第二网络化存储装置之间传送数据。负载均衡器可被配置为:使用所述传输连接的共享的窗口空间,在所述装置与第一网络化存储装置和第二网络化存储装置之间传送数据。第一网络化存储装置和第二网络化存储装置可被配置为作为逻辑存储装置进行操作。负载均衡器以及第一网络化存储装置和第二网络化存储装置可被配置为:在第一网络化存储装置与第二网络化存储装置之间共享网络地址。
一种存储装置可包括:存储介质;网络结构接口;以及存储控制器,被配置为:通过传输连接经由网络结构接口在存储介质与装置之间传送数据,其中,存储控制器被配置为与网络化的另一数据存储装置共享所述传输连接。存储控制器可包括被配置为响应于来自所述装置的读取命令而向所述另一数据存储装置发送消息的逻辑,并且所述消息包括使得所述另一数据存储装置能够使用所述传输连接将读取数据传送到所述装置的信息。存储控制器可包括被配置为从所述另一数据存储装置接收消息的逻辑,并且所述消息可包括使得所述数据存储装置能够使用所述传输连接将读取数据传送到所述装置的信息。存储控制器可包括被配置为确定写入数据在所述数据存储装置与所述另一数据存储装置之间的分布的逻辑。存储控制器可包括被配置为响应于来自所述装置的读取命令而向第三方装置发送读取数据的逻辑。
附图说明
附图不一定按比例绘制,并且贯穿附图,为了说明的目的,类似结构或功能的元件通常由相同的参考标号表示。附图仅旨在便于描述在此描述的各种实施例。附图没有描述在此公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得模糊,可能未示出所有的组件、连接等,并且可能并非所有的组件都具有参考标号。然而,根据附图,可容易清楚组件配置的模式。附图与说明书一起示出本公开的示例实施例,并且附图与描述一起用于解释本公开的原理。
图1示出根据本公开的存储系统的实施例,存储系统包括布置在一个或多个主机与网络化存储装置的组之间的一个或多个负载均衡器。
图2示出根据本公开的存储系统的示例实施例,存储系统包括布置在一个或多个主机与位于机箱、机架等中的网络化存储装置的组之间的一个或多个负载均衡器。
图3示出根据本公开的存储系统的另一示例实施例,存储系统包括布置在一个或多个主机与网络化存储装置的组之间的一个或多个负载均衡器,网络化存储装置遍布在核心数据中心和边缘数据中心以及移动边缘数据中心等中的两个或更多个机箱中。
图4示出根据本公开的用于在一个或多个发起方与两个或更多个网络化存储装置之间分配传输连接的方法的示例实施例的序列图。
图5示出根据本公开的读取操作的示例实施例的序列图,在读取操作中,来自网络化存储装置的组的数据可被传送到发起方。
图6示出根据本公开的写入操作的示例实施例的序列图,在写入操作中,来自发起方的数据可通过负载均衡器被分发给网络化存储装置的组。
图7示出根据本公开的写入操作的另一示例实施例的序列图,在写入操作中,来自发起方的数据可通过网络化存储装置的组中的装置之一被分发给该组。
图8示出根据本公开的负载均衡器的示例实施例。
图9示出根据本公开的网络化存储装置的示例实施例。
图10示出根据本公开的用于提供虚拟化存储的方法的示例实施例的流程图。
具体实施方式
在一些实施例中,网络化存储装置(fabric-attached storage devices)可使用可仅提供主机与多个存储装置之间的单独连接的一个或多个传输协议。也就是说,在主机与每个存储装置之间可存在1:1映射。因此,为了在多个网络化装置之间分发数据,主机可能需要管理多个存储装置的多个传输连接。此外,可在主机的软件栈中实现跨多个存储装置的卷(volume)的管理。这些管理任务以及所产生的输入/输出(I/O)操作的数量的增加可能导致主机消耗更多资源(诸如,中央处理器(CPU)功率、CPU开销、存储器等)。
在根据本公开的一些实施例中,网络化存储装置的组可被虚拟化为聚合卷(aggregated volume),从而使得主机能够将该组作为单个逻辑存储装置进行访问。例如,可通过使用负载均衡器共享网络地址和/或在存储装置的组上分配传输连接来实现这种透明的虚拟化。在一些实施例中,可在主机与一个或多个单独的网络化存储装置之间传送数据,而无需在聚合组内的存储装置之间进行点对点数据传送(peer-to-peer datatransfer)。
在一些实施例中,一个或多个网络化存储装置可能够通过网络结构(networkfabric)(诸如,以太网、光纤通道、无限带宽等)来传送数据。在一些实施例中,负载均衡器的使用可使得网络化存储装置的组能够共享网络地址(例如,互联网协议(IP)地址)。例如,可针对组中的每个存储装置使用相同的IP地址但是使用不同的端口号。共享的IP或其他网络地址可与一个或多个传输协议(诸如,传输控制协议(TCP)、通过融合以太网的远程直接存储器访问(RDMA)(RoCE)等)一起使用。在一些实施例中,主机和网络化存储装置的组可使用通过网络的非易失性存储器快速(Nonvolatile Memory Express Over Fabric,NVMe-oF)协议或可与由负载均衡器和存储装置使用的一个或多个传输协议一起操作的任何其他存储协议。
在一些实施例中,负载均衡器的使用可使得网络化存储装置的组能够例如通过针对传输协议分配传输窗口空间和/或管理序列号、确认、传输请求、完成响应等来共享或分配传输连接。例如,可使用分布式传输连接来将写入数据从主机分发到组中的一个或多个网络化存储装置。例如,还可使用分布式传输连接来将读取数据从组中的一个或多个网络化存储装置传送到主机。
在一些实施例中,可在组中的多个网络化存储装置中的可作为该组的主存储装置进行操作的网络化存储装置处终止传输连接。主存储装置可控制和/或管理其自身与主机之间以及组中的其他存储装置与主机之间的数据传送。在一些实施例中,负载均衡器可将写入数据从主机直接传送到组中的一个或多个存储装置。在一些实施例中,被直接传送到组中的一个或多个存储装置的数据可不通过组中的另一个存储装置被传送。在一些实施例中,负载均衡器可将写入数据从主机传送到主存储装置,主存储装置然后可将写入数据的一些或全部转发到组中的一个或多个其他存储装置。一些实施例可使用“直接写入数据传送”和“转发写入数据传送”的组合。
图1示出根据本公开的存储系统的实施例,存储系统包括布置在一个或多个主机与网络化存储装置的组之间的一个或多个负载均衡器。图1中示出的系统(或者,存储系统)100可用于例如实现本公开中描述的方法、设备、特征、技术等中的任一者。系统100可包括负载均衡器104和两个或更多个网络化存储装置(或者,存储装置)108,两个或更多个网络化存储装置108被配置为可作为单个逻辑存储装置协作地进行操作的装置组106。来自一个或多个主机102的数据可例如通过如下所述的一个或多个共享的传输连接110的操作在网络化存储装置108之间分发。网络化存储装置108可包括任何类型的存储装置(诸如,硬盘驱动器(HDD)、固态驱动器(SSD)等或它们的组合),每个网络化存储装置108具有一个或多个网络结构接口(network fabric interface)。例如,在一些实施例中,网络化存储装置108中的一个或多个可被实现为可具有以太网接口的以太网SSD(ESSD)。在一些实施例中,网络化存储装置108中的一个或多个可使用NVMe-oF协议或者可与由负载均衡器和存储装置使用的一个或多个传输协议一起操作的任何其他存储协议。
网络化存储装置108可物理地位于单个机箱、机架、数据中心等中,或者分布在机箱、机架、数据中心等的任何组合之间。数据中心可包括包含边缘数据中心、移动边缘数据中心、自组织网络(ad hoc network)、基于(物联网)IoT的网络等的各种位置。在一些实施例中,网络化存储装置108可遍布在机箱、机架、数据中心等或它们的任何组合的一个或多个层级(hierarchy)。此外,网络(例如,核心数据中心)的一个或多个子集可控制层级中的一个或多个子网络(例如,边缘网络)的方面。
网络化存储装置108可通过一个或多个共享的传输连接110连接到负载均衡器104。负载均衡器104可通过一个或多个传输连接112连接到一个或多个主机102。一个或多个共享的传输连接110和/或传输连接112可例如用TCP、RoCE等来实现。一个或多个共享的传输连接110和/或传输连接112可承载在任何网络结构114和/或116上,网络结构114和/或116可例如用以太网、光纤通道、无限带宽等或它们的任何组合来实现,并且可包括任何数量和/或任何配置的交换机、路由器等。
在一些实施例中,负载均衡器104可建立和/或维护一个或多个共享的传输连接110和/或传输连接112。在一些实施例中,来自主机102的传输连接112可在不终止的情况下穿过负载均衡器104,并且作为共享的传输连接110而继续。在一些实施例中,来自主机102的传输连接112可在负载均衡器104处终止,该负载均衡器104可建立和/或维护单独的共享的传输连接110以完成主机102与网络化存储装置108之间的传输连接。
在一些实施例中,负载均衡器104可用一个或多个市场上可获得的负载均衡器在对硬件和/或软件少量修改或对不修改的情况下来实现。在一些实施例中,负载均衡器104可用一个或多个负载均衡器来实现,所述一个或多个负载均衡器可包括可特别适于实现本公开中描述的方法、设备、特征、技术等中的一个或多个的硬件和/或软件。
在一些实施例中,负载均衡器104、网络化存储装置108、共享的传输连接110和/或传输连接112可在可至少部分地符合诸如开放系统互连(OSI)模型的网络模型的系统的层4(例如,传输层)操作。在一些实施例中,负载均衡器104中的一个或多个可在可至少部分地符合诸如TCP/IP模型的网络模型的系统的传输层操作。在一些实施例中,根据本公开的系统可至少部分地符合多于一个的网络模型,或者可不符合任何网络模型。
下面描述示出根据本公开的一些可能的实现细节的系统、处理、方法、特征、技术等的一些示例实施例。提供这些示例以示出本公开的原理,但所述原理不限于这些实现细节。例如,一些实施例可在可使用NVMe-oF、TCP、以太网、ESSD等的系统的上下文中被描述,但是根据本公开的其他实施例可用其他类型的存储、传输、网络协议、存储装置等来实现。此外,一些示例实施例可用组件、装置组、装置组内的装置等的特定数量和/或布置来示出,但是其他实施例可使用不同的数量和/或布置。
图2示出根据本公开的存储系统的示例实施例,存储系统包括布置在一个或多个主机与位于机箱、机架等中的网络化存储装置的组之间的一个或多个负载均衡器。图2中所示的系统120可包括一个或多个负载均衡器122和两个或更多个ESSD 126,一个或多个负载均衡器122与两个或更多个ESSD126可通过网络结构互连,该网络结构可包括一个或多个以太网交换机130和任何数量的以太网连接132。在图2中所示的示例中,一个或多个负载均衡器122可位于与以太网交换机130和ESSD 126分开的位置,以太网交换机130和ESSD 126可位于机箱128中。然而,在一些实施例中,负载均衡器122中的一个或多个可位于机箱128中。在其他实施例中,组件可以以任何其他的物理配置来布置。
一个或多个发起方(initiator)134可通过任何类型的网络基础架构(networkinfrastructure)136连接到一个或多个负载均衡器122,网络基础架构136可包括例如基于以太网、光纤通道、无限带宽等或其任何组合的公共和/或私有互联网。发起方134(也可被称为主机)可包括可使用系统120来存储数据的任何装置、系统、处理、应用等。
ESSD 126中的两个或更多个可被配置为可协作地进行操作的装置组124,以便使一个或多个发起方134能够将组124作为单个逻辑存储装置进行访问。因此,来自发起方134的数据可以以对发起方134透明的方式横跨ESSD 126中的两个或更多个分发。
来自发起方134的数据可例如通过可横跨ESSD 126的组124而被共享的一个或多个TCP连接的操作而在组124内分发。例如,负载均衡器122可建立和/或维护发起方134与ESSD的组124之间的TCP连接,使得发起方134不知道TCP连接由多于一个的ESSD 126共享。这可例如通过对组124中的所有ESSD 126使用相同的IP地址但是对每个ESSD 126使用不同的端口号来实现。可针对输入和/或输出(I/O)操作以一致的方式(例如,通过分配TCP窗口空间、通过管理TCP序列号、确认、发送请求、完成响应等)来管理共享的TCP连接或分布式TCP连接。
在一些实施例中,NVMe-oF可用作用于发起方134中的一个或多个与ESSD 126的组124之间的数据传送(或者,数据交换)的存储协议。也就是说,可使用NVMe存储协议来传送数据,NVMe存储协议可承载在TCP传输协议上,TCP传输协议可使用IP网络协议通过以太网结构(Ethernet fabric,又称为以太网矩阵)来传送。然而,在其他实施例中,可使用任何其他协议和/或网络结构来代替上述协议和/或网络结构,或者除了上述协议和/或网络结构之外,还可使用任何其他协议和/或网络结构。
图3示出根据本公开的存储系统的另一示例实施例,存储系统包括布置在一个或多个主机与网络化存储装置的组之间的一个或多个负载均衡器,网络化存储装置遍布在核心数据中心、边缘数据中心以及移动边缘数据中心等中的两个或更多个机箱中。图3中所示的系统140可包括与图2中所示的系统120中所示的组件类似的组件。然而,在图3中所示的系统140中,ESSD126的装置组124(其可例如共享相同的IP地址)可遍布于核心数据中心129中的多个机箱128。另一装置组142可遍布于机箱128、边缘数据中心144和移动边缘数据中心146中的至少一个。网络结构可分层地扩展以包括子网结构141、143和145。在其他实施例中,装置组可分布在任何类型的机箱、机架、数据中心等的任何组合之间,并且任何数量的装置组可被使用。
图4示出根据本公开的用于在一个或多个发起方与两个或更多个网络化存储装置之间分配传输连接的方法的示例实施例的序列图。图4中所示的方法可例如与本公开中描述的任何系统和/或组件(诸如,图1至图3以及图8至图9中所示的系统和/或组件)一起使用。
在图4所示的实施例中,负载均衡器150可在发起方152与网络化存储装置(例如,ESSD)154之间分配传输连接(例如,TCP连接)。该方法可开始于负载均衡器150在操作401从发起方-2接收连接请求Connect A,在操作402从发起方-1接收连接请求Connect B,在操作403从发起方-2接收连接请求Connect C,以及在操作404从发起方-1接收连接请求ConnectD。连接请求可在缓冲器156中排队,同时负载均衡器150确定如何将连接请求分配到ESSD154。
负载均衡器150可基于各种因素来分配连接请求。例如,在一些实施例中,负载均衡器150可使连接的分配至少部分地基于连接类型负载均衡算法(诸如,轮询调度、最少连接、随机分配等或它们的任何组合)。在一些实施例中,负载均衡器150可使连接的分配至少部分地基于在各个ESSD 154处可用的存储量。在一些实施例中,ESSD 154(例如,ESSD-1、ESSD-2、ESSD-3和ESSD-4)可形成可作为单个逻辑装置被访问的装置组。在一些实施例中,ESSD 154中的一个或多个可与一个或多个附加ESSD相关联,尽管没有在图4中示出,但是一个或多个附加ESSD可形成可与ESSD 154中的对应一个一起作为单个逻辑装置被访问的装置组。在一些实施例中,负载均衡器150可使连接的分配基于在与ESSD 154中的一个或多个相关联的装置组处可用的存储量。在一些实施例中,负载均衡器150可使连接的分配基于上述因素和/或其他因素的任何组合。
如图4所示,在确定了如何分配连接请求之后,负载均衡器150可将连接请求转发到ESSD 154。具体地,来自发起方-1的连接请求Connect B可在操作405被转发到ESSD-3,来自发起方-2的连接请求Connect C可在操作406被转发到ESSD-1,来自发起方-1的连接请求Connect D可在操作407被转发到ESSD-4,并且来自发起方-2的连接请求Connect A可在操作408被转发到ESSD-2。
然后,负载均衡器150可等待来自ESSD 154的“连接已经建立”的确认,并且例如以从ESSD 154接收到确认的顺序将确认转发到对应的发起方152。例如,响应于连接请求Connect A,ESSD-2可在操作409将确认Established A发送到负载均衡器150,负载均衡器150然后可在操作410将确认转发到发起方-2。该处理可继续,直到所有四个连接请求的建立(Established A至Established D)都向发起方152确认了为止。
因此,由发起方152请求的传输连接可与如由负载均衡器150所确定的ESSD 154建立。在一些实施例中,传输连接可以以直通配置(pass-through configuration)建立并且在对应的ESSD 154处终止。
在图4中所示的实施例中,操作是示例操作,并且可涉及未明确示出的各种附加操作。在一些实施例中,可省略示出的操作中的一些操作。在一些实施例中,可由除了图4中所示的组件之外的组件来执行操作中的一个或多个。此外,在一些实施例中,可改变操作的时间顺序。此外,如以上所提及的,附图不一定按比例绘制,因此,元件、事件、时间间隔等之间的任何比例和/或关系可基于网络延迟、计算延迟等而更长或更短。
图5示出根据本公开的读取操作的示例实施例的序列图,在读取操作中,来自网络化存储装置的组的数据可被传送到发起方。图5中所示的方法可例如与本公开中描述的任何系统和/或组件(诸如,图1至图3以及图8至图9中所示的系统和/或组件)一起使用。
在图5中所示的实施例中,负载均衡器160可在发起方162与网络化存储装置(例如,ESSD)164的装置组166之间分配共享的传输连接(例如,TCP连接)。装置组166可被配置为作为单个逻辑存储装置对发起方162透明地进行操作。
所述方法可开始于当发起方162向负载均衡器160发送连接请求(例如,图5中的“连接”)时的操作500。在操作501,负载均衡器160可将连接请求转发到ESSD-1。在这个示例实施例中,ESSD-1可作为可包括ESSD-1、ESSD-2、ESSD-3和ESSD-4的装置组的主装置进行操作。在操作502,ESSD-1可向负载均衡器160发送指示“TCP连接已建立”的确认(例如,图5中的“已建立”)。然后,在操作503,负载均衡器160可将确认转发到发起方162。在这个示例实施例中,可以以直通配置通过负载均衡器160建立TCP连接,直通配置可在ESSD-1处终止但具有分离的端口空间。也就是说,组中的所有四个ESSD 164可使用相同的IP地址但是使用不同的端口号,以避免当在TCP连接上接收和/或发送时在ESSD之间的冲突。
当发起方162在操作504发送读取命令时,读取操作可开始,在操作505,负载均衡器160可将读取命令转发到ESSD-1。读取命令可包括一个或多个参数(诸如,逻辑块地址(LBA)、读取的块的数量(LEN)、接收窗口大小(RCV WIN)等)。在这个示例中,来自发起方162的读取命令可指定32个块(LEN=32)的数据读取,其中,每个块可以是例如从LBA 0开始的512字节。
响应于读取命令,ESSD-1可通过查阅例如映射表、阵列和/或其他数据结构来确定所请求的读取数据存储在ESSD 164的组166中的何处。映射数据结构可例如在主装置ESSD-1处和/或由主装置ESSD-1维护。在一些实施例中,映射数据结构的副本也可在负载均衡器160和/或装置组166中的任何其他ESSD处、和/或由负载均衡器160和/或装置组166中的任何其他ESSD维护。
在这个示例中,由读取命令请求的数据可分布在装置组166中的所有四个ESSD上。为了开始将数据从ESSD 164传送到发起方162的处理,ESSD-1可将一个或多个读取消息发送到可具有响应于读取命令的数据的ESSD 164中的每个。读取消息可包括一个或多个参数(诸如,读取逻辑块地址(READ LBA)、读取的块的数量(LEN)、TCP序列号(Seq)、目的地IP地址(DST IP)等)。图5示出可分别在操作506、507和508被发送到ESSD-2、ESSD-3和ESSD-4的读取消息参数的示例。
在一些实施例中,包括在至ESSD的读取消息中的READ LBA可以是ESSD的本地LBA。也就是说,映射数据结构可使ESSD-1(主ESSD)能够告诉组166中的每个其他ESSD所请求的数据位于它自己的存储介质中的何处。在一些实施例中,例如,在映射数据结构的副本可在每个ESSD 164处维护的情况下,ESSD可能够基于组166的全局LBA来确定本地LBA。
使用与读取消息一起发送的参数(诸如,TCP序列号和目的地IP地址),组166中的每个ESSD可从它们的存储介质读取所请求的数据,并通过负载均衡器160使用分布式TCP连接将读取的数据直接传送到发起方162。例如,这在操作509示出,在操作509,ESSD-1可使用TCP序列号0将大约4096字节的数据(八个大约512字节的块)发送到负载均衡器160,然后,在操作510,负载均衡器160可将数据转发到发起方162。在一些实施例中,可使用存储协议(诸如,以结合TCP的NVMe-oF为例)来传送读取数据。
在这个示例中,ESSD-3、ESSD-2和ESSD-4可各自在操作511、515和519分别使用TCP序列号8192、4096和12288发送它们的八个数据块。然后,负载均衡器160可分别在操作512、516和520将数据块转发到发起方162。因此,TCP接收窗口空间可分布在不同的ESSD 164之间。在一个示例中,TCP接收窗口空间可在不同的ESSD 164之间共享。来自发起方162的原始读取命令可指定大约32个块(LEN=32)的数据读取,其中,每个块可以是大约512字节,总共大约16K(千)字节。因此,从组166中的每个ESSD的大约4096字节(长度(Len)=4096)产生的四次数据传输可发送总共大约16K字节。
当发起方162从ESSD接收到读取数据时,它可将确认(ACK)发送回负载均衡器160,如操作513、517和521所示,然后该确认可分别在操作514、518和522被转发。在一个示例中,响应于发起方162接收到读取数据,ESSD-1累积来自发起方162的一个或多个确认。在ESSD-1在操作522接收到最终ACK之后,在操作523,ESSD-1可发送读取完成响应,在操作524,读取完成响应可被转发到发起方162,从而完成读取操作。
根据ESSD 164传送读取数据的顺序,发起方162可使用TCP序列号重新排列接收的数据,以将数据恢复到其原始顺序。
在一些实施例中,可例如在负载均衡器160和/或ESSD-1处创建和/或维护I/O命令上下文。例如,当在开始读取操作时接收到读取命令并且然后在完成读取命令之后丢弃读取命令时,可创建命令上下文。命令上下文可包含可保持跟踪“哪些ESSD 164包含响应于读取命令的数据、哪些ESSD 164已经发送了它们的读取数据、哪些确认已经从发起方162接收到等”的信息。
在一些实施例中,读取数据的至少一部分可被传送到除发起方162之外的位置。例如,在一些实施例中,来自发起方162的读取命令可包括可用于与发起方162不同的第三方的目的地IP地址。在这样的实施例中,第三方目的地IP地址可在读取消息中被传递到ESSD164,ESSD 164然后可通过负载均衡器160将读取数据直接发送到第三方目的地IP。这样的实施例例如在视频流传输和/或游戏应用中会是有用的,在视频流传输和/或游戏应用中,发起方162可作为元数据服务器来操作以管理到第三方用户的流传输数据流动。
在图5中所示的实施例中,操作是示例操作,并且可涉及未明确示出的各种附加操作。在一些实施例中,可省略示出的操作中的一些操作。在一些实施例中,可由除了图5中所示的组件之外的组件来执行操作中的一个或多个。例如,在一些实施例中,可从负载均衡器160代替主ESSD发送读取消息中的一个或多个,或者除了主ESSD之外,还可从负载均衡器160发送读取消息中的一个或多个。作为另一示例,在一些实施例中,可由负载均衡器160代替主ESSD累积确认中的至少一些,或者除了主ESSD之外,还可由负载均衡器160累积确认中的至少一些。另外,在一些实施例中,可改变操作的时间顺序。此外,如上所提及的,附图不一定按比例绘制,因此,元件、事件、时间间隔等之间的任何比例和/或关系可基于网络延迟、计算延迟等而更长或更短。
图6示出根据本公开的写入操作的示例实施例的序列图,其中,来自发起方的数据可由负载均衡器分发给网络化存储装置的组。图6中所示的方法可例如与本公开中描述的任何系统和/或组件(诸如,图1至图3以及图8至图9中所示的系统和/或组件)一起使用。
在图6中所示的实施例中,可以以与图5中所示的实施例中描述的方式类似的方式通过负载均衡器170在发起方172与网络化存储装置(例如,ESSD)174的装置组176之间建立分布式传输连接。同样类似于图5中所示的实施例,图6中所示的装置组176可被配置为作为单个逻辑存储装置对发起方172透明地进行操作,并且ESSD-1可作为可包括ESSD-1、ESSD-2、ESSD-3和ESSD-4的装置组176的主装置进行操作。
所述方法可开始于当发起方172向负载均衡器170发送连接请求(例如,图6中的“连接”)时的操作600。在操作601,负载均衡器170可将连接请求和哈希发送到ESSD-1。在操作602,ESSD-1可向负载均衡器170发送指示“TCP连接已建立”的确认(例如,图6中的“已建立”)。然后,在操作603,负载均衡器170可将确认转发到发起方172。当发起方172在操作604发送写入命令时,写入操作可开始,在操作605,负载均衡器170可将写入命令转发到ESSD-1。写入命令可包括一个或多个参数(诸如,写入逻辑块地址(WRITE LBA)、读取的块的数量(LEN)、接收窗口大小(RCV WIN)等)。在这个示例中,来自发起方172的写入命令可指定大约32个块(LEN=32)的数据写入,其中,每个块可以是例如从LBA 0开始的大约512字节。
在一些实施例中,ESSD-1可分别在操作606、607和608向ESSD-2、ESSD-3和ESSD-4发送一个或多个数据到来通知。
在操作609,ESSD-1可向负载均衡器170发送准备传送(R2T)通知,在操作610,R2T通知可被转发到发起方172。R2T通知可包括一个或多个参数(诸如,ESSD的组176可被配置用于RAID-0(独立盘冗余阵列-0)(1个条带)的指示符、接收窗口大小(RCV WIN)等)。
在操作611,发起方172可将可包括报头和数据部分的写入数据178发送到负载均衡器170,负载均衡器170可将写入数据存储在缓冲器180中。写入数据可伴随有一个或多个参数(诸如,写入数据长度(WR DATA LEN)和/或其他参数)。在一些实施例中,可使用存储协议(诸如,以结合TCP的NVMe-oF为例)来传送写入数据。
在操作612,负载均衡器170可确定写入数据在ESSD 174之间的划分(demarcation)和/或分布。划分和/或分布可基于各种因素。例如,在一些实施例中,负载均衡器170可使划分和/或分布至少部分地基于在每个ESSD 174处可用的存储量。在一些实施例中,负载均衡器170可使划分和/或分布至少部分地基于各种负载均衡算法(诸如,轮询调度、最少连接、随机分布等,或它们的任何组合)。在一些实施例中,负载均衡器170可使划分和/或分布基于上述因素和/或其他因素的任何组合。
在确定写入数据的划分和/或分布之后,负载均衡器170可通过分配的传输连接分别在操作613、614、615和616将写入数据的部分182、184、186和188直接传送到ESSD-1、ESSD-2、ESSD-3和ESSD-4。写入数据部分182、184、186和188中的每个可包括对应的报头和数据部分。在这个示例中,写入数据分布在组176中的所有四个ESSD 174之间,但是在其他情况下,写入数据可以以任何方式分布在任何数量的ESSD 174之间。
在一些实施例中,ESSD-1可在缓冲器189中累积可在操作617、618和619接收的数据接收确认。然后,在操作620,ESSD-1可向负载均衡器170发送写入完成响应,然后,在操作621,该写入完成响应可被转发到发起方172,从而完成数据写入操作。
在图6中所示的实施例中,操作是示例操作,并且可涉及未明确示出的各种附加操作。在一些实施例中,可省略示出的操作中的一些操作。在一些实施例中,可由除了图6中所示的组件之外的组件来执行操作中的一个或多个。例如,在一些实施例中,可省略数据到来通知。作为另一示例,在一些实施例中,可在负载均衡器170处代替在ESSD-1处累积数据接收确认,或者除了ESSD-1之外,还可在负载均衡器170处累积数据接收确认。此外,在一些实施例中,可改变操作的时间顺序。此外,如上所提及的,附图不一定按比例绘制,因此,元件、事件、时间间隔等之间的任何比例和/或关系可基于网络延迟、计算延迟等而更长或更短。
图7示出根据本公开的写入操作的另一示例实施例的序列图,在写入操作中,来自发起方的数据可由网络化存储装置的组中的装置之一分发给组。图7中所示的方法可例如与本公开中描述的任何系统和/或组件(例如,图1至图3以及图8至图9中所示的系统和/或组件)一起使用。
在图7中所示的实施例中,可以以与关于图5和图6中所示的实施例描述的方式类似的方式,通过负载均衡器190在发起方192与网络化存储装置(例如,ESSD)194的装置组196之间建立分布式传输连接。同样类似于图5和图6中所示的实施例,图7中所示的装置组196可被配置为作为单个逻辑存储装置对发起方192透明地进行操作,并且ESSD-1可作为可包括ESSD-1、ESSD-2、ESSD-3和ESSD-4的装置组196的主装置进行操作。
操作700至703可与图6中所示的操作600至603类似。在图7中所示的实施例中,当发起方192在操作704发送写入命令时,写入操作可开始,在操作705,负载均衡器190可将该写入命令转发到ESSD-1。写入命令可包括一个或多个参数(诸如,写入逻辑块地址(WRITELBA)、读取的块的数量(LEN)、接收窗口大小(RCV WIN)等)。在这个示例中,来自发起方192的写入命令可指定大约32个块(LEN=32)的数据写入,其中,每个块可以是例如从LBA 0开始的大约512字节。在一些实施例中,可使用存储协议(诸如,以结合TCP的NVMe-oF为例)来传送写入数据。
在操作706,ESSD-1可确定它有多少(如果有的话)缓冲器空间可用于接收来自发起方192的写入数据。在操作707,ESSD-1可向负载均衡器190发送准备传送(R2T)通知,在操作708,R2T通知可被转发到发起方192。R2T通知可包括一个或多个参数(诸如,ESSD的组196可被配置用于RAID-0(1个条带)的指示符、接收窗口大小(RCV WIN)等)。在一些实施例中,一个或多个参数可包括关于ESSD-1有多少可用的缓冲器空间的信息。
在操作709,发起方192可将可包括报头和数据部分的写入数据197发送到负载均衡器190,在操作710,负载均衡器190可将写入数据转发到ESSD-1。写入数据可伴随有一个或多个参数(诸如,写入数据长度(WR DATA LEN)和/或其他参数)。然后,主存储装置ESSD-1可将写入数据存储在缓冲器189中,并确定写入数据在ESSD 174之间的划分和/或分布。
ESSD-1可基于与图6中所示的实施例中由负载均衡器170所使用的因素类似的各种因素来确定划分和/或分布。在确定了写入数据的划分和/或分布之后,主驱动器ESSD-1可使用它自己的存储介质保留写入数据的一部分用于存储,和/或分别在操作711、712和713将写入数据的多个部分传送到ESSD-2、ESSD-3和/或ESSD-4。在一些实施例中,ESSD-1可在缓冲器199中累积或等待可在操作714、715和716接收的写入完成确认。然后,在操作717,ESSD-1可向负载均衡器190发送写入完成响应,然后该写入完成响应可在操作718被转发到发起方192,从而完成数据写入操作。
在图7中所示的实施例中,操作是示例操作,并且可涉及未明确示出的各种附加操作。在一些实施例中,可省略示出的操作中的一些操作。在一些实施例中,可由除了图7中所示的组件之外的组件来执行操作中的一个或多个。例如,在一些实施例中,可在负载均衡器190处代替在ESSD-1处来累积写入完成确认,或者除了ESSD-1之外,还可在负载均衡器190处累积写入完成确认。此外,在一些实施例中,可改变操作的时间顺序。此外,如上所提及的,附图不一定按比例绘制,因此,元件、事件、时间间隔等之间的任何比例和/或关系可基于网络延迟、计算延迟等而更长或更短。
在一些实施例中,可通过任何合适的通信通道来执行装置组中的驱动器之间的信息(诸如,通知、写入数据、读取数据、读取消息、确认、完成等)的传送。例如,在一些实施例中,可使用一个或多个单独的协议来为组中的存储装置实现一个或多个虚拟局域网(VLAN)。这样的一个或多个协议可由与组中的存储装置互连并承载共享的传输连接的网络结构和/或由任何其他通信通道(诸如,以单独的物理网络为例)承载。在一些实施例中,这些一个或多个附加协议可用于为装置组分配预留带宽。
在一些实施例中,可使用低延迟通信协议(诸如,嵌入式远程过程调用(eRPC))在组中的存储装置之间传送命令和/或响应信息。这可用于例如图5中所示的读取消息、和/或图6和图7中所示的数据到来通知和/或完成确认。读取消息的示例实现可包括例如任何数量的以下参数:VLAN标识符、源IP地址、目的地IP地址、TCP序列号、传送长度、读取的块(其可包括例如命名空间、块地址、长度)、由主装置请求的其他TCP和/或IP标志等。
在一些实施例中,可例如通过可使用诸如RDMA(例如,RoCE)的协议的VLAN来执行组中的存储装置之间的读取数据和/或写入数据的传输。在一些实施例中,可建立服务质量(QoS)环境以避免潜在的性能问题。
图8示出根据本公开的负载均衡器的示例实施例。图8中所示的负载均衡器200可用于例如实现本公开中描述的方法、设备、特征等中的任一者。负载均衡器200可包括一个或多个网络接口控制器(NIC)202,网络接口控制器202可用于例如在任何数量的发起方、交换机、网络化存储装置等之间建立网络连接。交换结构(switch fabric)204可建立和维护连接到NIC 202的网络装置之间的网络连接。连接管理模块206可控制在网络层、传输层等处的网络装置之间的连接的建立、维护、终止、映射等。存储管理逻辑208可实现根据本公开的任何存储相关的功能和/或特征。例如,如果负载均衡器200用于实现图6中所示的方法,则存储管理逻辑208可用于确定写入数据在装置组中的多个ESSD之间的划分和/或分布。
图8中所示的实施例的任何组件和/或功能可用硬件、固件、软件或它们的任何组合来实现。此外,各种组件中的任何组件可被实现为单独的组件、被集成在一起、或者以任何其他合适的配置来布置。例如,在一些实施例中,交换结构204可用硬件交换机来实现,而在其他实施例中,交换结构中的一些或全部可在软件中来实现。在一些实施例中,负载均衡器200可通过将存储管理逻辑208添加到现有的网络负载均衡器来实现。
图9示出根据本公开的网络化存储装置的示例实施例。图9中所示的存储装置210可用于例如实现本公开中描述的方法、设备、特征等中的任一者。存储装置210可包括一个或多个网络接口(又被称为“网络结构接口(network fabric interface)”)212、存储控制器214和存储介质218。存储介质218可用磁性、固态、光学或任何其他类型的数据存储技术来实现。一个或多个网络接口212可使得存储装置能够连接到基于例如以太网、光纤通道、无限带宽等的网络结构。存储控制器214可控制存储装置210的整体操作。存储控制器214可包括可用于实现根据本公开的任何功能和/或特征的逻辑216。例如,如果存储装置210用于实现图5中所示的装置组中的任何存储装置,则逻辑216可包括用于向其他装置发送读取消息以指示它们向发起方发送读取数据的主ESSD的功能、或者包括用于接收读取消息并相应地进行响应的其他ESSD的功能。作为另一示例,如果存储装置210用于实现图6中所示的装置组中的任何存储装置,则逻辑216可包括用于确定写入数据在装置组中的ESSD之间的划分和/或分布的主ESSD的功能。作为另一示例,逻辑216可包括用于响应于来自发起方的读取命令而向第三方装置发送读取数据的功能。
网络接口212和存储控制器214可被实现为单独的组件,或者使用硬件、软件或它们的任何组合集成到一个或多个组件中。例如,存储控制器214可用包括微处理器、微控制器等的任何合适的数据处理设备来实现,被实现为片上系统(SOC)、现场可编程门阵列(FPGA)、标准和/或定制集成电路(IC)的组合、专用集成电路(ASIC)等或它们的任何组合。
图10示出根据本公开的用于提供虚拟化存储的方法的示例实施例的流程图。在操作222,图10中所示的方法220可开始。在操作224,可通过负载均衡器在装置与网络化存储装置的组之间建立传输连接。在操作226,可使用传输协议通过传输连接在装置与网络化存储装置的组之间传送数据。在一些实施例中,网络化存储装置的组可包括两个或更多个网络化存储装置,并且可作为逻辑存储装置由装置访问。在操作228,该方法可结束。
在图10中所示的实施例中,操作是示例操作,并且可涉及未明确示出的各种附加操作。在一些实施例中,可省略示出的操作中的一些操作。在一些实施例中,可由除了图10中描述的组件之外的组件来执行操作中的一个或多个。此外,在一些实施例中,可改变操作的时间顺序。
在一些实施例中,取决于实现细节,根据本公开的一个或多个系统、方法和/或设备可克服关于网络化存储装置的一个或多个潜在问题。例如,一些协议可仅为每个装置/驱动器对提供一个传输连接。因此,为了横跨多个网络化装置扩展存储,主机中央处理器(CPU)可处置与管理跨多个装置的卷相关的处理。这也可增加由主机CPU处置的I/O操作的数量。然而,在一些实施例中,取决于实现细节,根据本公开的一个或多个系统、方法和/或设备可使得多个网络化存储装置能够作为单个逻辑装置被主机CPU访问。此外,在一些实施例中,取决于实现细节,根据本公开的一个或多个系统、方法和/或设备可使网络化存储装置能够被虚拟化为聚合的卷,而无需对传输协议(诸如,TCP和/或RDMA)进行任何改变。
在此公开的实施例可在各种实现细节的上下文中描述,但是本公开的原理不限于这些或任何其他具体细节。一些功能已经被描述为由某些组件实现,但是在其他实施例中,功能可分布在不同位置中的不同系统和组件之间并且具有各种用户接口。已经将特定实施例描述为具有特定处理、步骤、它们的组合等,但是这些术语还可包含这样的实施例:特定处理、步骤、它们的组合等可用多个处理、步骤、它们的组合等实施,或者多个处理、步骤、它们的组合等可被集成为单个处理、步骤、它们的组合等。对组件或元件的引用可仅表示组件或元件的一部分。除非从上下文中另外清楚,否则在本公开和权利要求书中使用诸如“第一”和“第二”的术语可仅用于区分它们所修饰的事物的目的,并且可不指示任何空间或时间顺序。对第一物的引用可不暗示第二物的存在。在一些实施例中,网络化存储装置可仅使装置的存储介质的分区或其他部分可用于装置的组中的聚合。因此,在一些实施例中,存储装置还可表示装置内的分区或其他部分。此外,可组合上述各种细节和实施例以产生根据本专利公开的发明原理的附加实施例。
由于在不脱离发明构思的情况下,可在布置和细节上对本专利公开的发明原理进行修改,因此这些改变和修改被认为落入权利要求的范围内。

Claims (21)

1.一种提供虚拟化存储的方法,所述方法包括:
通过负载均衡器在装置与网络化存储装置的组之间建立传输连接;以及
使用传输协议通过所述传输连接在所述装置与网络化存储装置的组之间传送数据,
其中,网络化存储装置的组包括两个或更多个网络化存储装置,并且网络化存储装置的组作为逻辑存储装置由所述装置访问。
2.根据权利要求1所述的方法,其中,网络化存储装置的组共享网络地址。
3.根据权利要求2所述的方法,其中,网络化存储装置的组中的至少两个网络化存储装置针对所述网络地址使用不同的网络端口。
4.根据权利要求3所述的方法,其中,所述网络地址包括互联网协议地址。
5.根据权利要求1所述的方法,其中,传输协议包括传输控制协议。
6.根据权利要求1所述的方法,其中,所述装置和网络化存储装置的组使用通过网络的非易失性存储器快速协议来交换数据。
7.根据权利要求1所述的方法,其中,所述传输连接的接收窗口空间在网络化存储装置的组中的至少两个网络化存储装置之间共享。
8.根据权利要求1所述的方法,其中,网络化存储装置的组中的至少两个网络化存储装置响应于读取命令,在所述传输连接内使用至少第一传输协议序列号和第二传输协议序列号将数据传送到所述装置。
9.根据权利要求1至权利要求8中任意一项所述的方法,其中,网络化存储装置的组中的一个网络化存储装置响应于所述装置接收到读取数据,累积来自所述装置的一个或多个确认。
10.根据权利要求1至权利要求8中任意一项所述的方法,其中,针对写入操作,负载均衡器使用所述传输连接将数据从所述装置直接传送到网络化存储装置的组中的一个或多个网络化存储装置。
11.根据权利要求1至权利要求8中任意一项所述的方法,其中,针对写入操作:
负载均衡器将写入数据从所述装置传送到网络化存储装置的组中的第一网络化存储装置;并且
网络化存储装置的组中的第一网络化存储装置将写入数据的至少一部分从第一网络化存储装置传送到网络化存储装置的组中的第二网络化存储装置。
12.根据权利要求11所述的方法,其中,网络化存储装置的组中的第一网络化存储装置确定写入数据在网络化存储装置的组中的多个网络化存储装置之间的分布。
13.一种存储系统,包括:
第一网络化存储装置;
第二网络化存储装置;以及
负载均衡器,通过网络结构连接到第一网络化存储装置和第二网络化存储装置,
其中,负载均衡器被配置为:使用在第一网络化存储装置与第二网络化存储装置之间共享的传输连接,在装置与第一网络化存储装置和第二网络化存储装置之间传送数据。
14.根据权利要求13所述的存储系统,其中,负载均衡器被配置为:使用所述传输连接的共享的窗口空间,在所述装置与第一网络化存储装置和第二网络化存储装置之间传送数据。
15.根据权利要求13或权利要求14所述的存储系统,其中,第一网络化存储装置和第二网络化存储装置被配置为作为逻辑存储装置进行操作。
16.根据权利要求13或权利要求14所述的存储系统,其中,负载均衡器以及第一网络化存储装置和第二网络化存储装置被配置为:在第一网络化存储装置与第二网络化存储装置之间共享网络地址。
17.一种数据存储装置,包括:
存储介质;
网络结构接口;以及
存储控制器,被配置为:通过传输连接经由网络结构接口在存储介质与装置之间传送数据,
其中,存储控制器被配置为与网络化的另一数据存储装置共享所述传输连接。
18.根据权利要求17所述的数据存储装置,其中,存储控制器包括被配置为响应于来自所述装置的读取命令而向所述另一数据存储装置发送消息的逻辑,并且
其中,所述消息包括使得所述另一数据存储装置能够使用所述传输连接将读取数据传送到所述装置的信息。
19.根据权利要求17所述的数据存储装置,其中,存储控制器包括被配置为从所述另一数据存储装置接收消息的逻辑,并且
其中,所述消息包括使得所述数据存储装置能够使用所述传输连接将读取数据传送到所述装置的信息。
20.根据权利要求17至权利要求19中任意一项所述的数据存储装置,其中,存储控制器包括被配置为确定写入数据在所述数据存储装置与所述另一数据存储装置之间的分布的逻辑。
21.根据权利要求17至权利要求19中任意一项所述的数据存储装置,其中,存储控制器包括被配置为响应于来自所述装置的读取命令而向第三方装置发送读取数据的逻辑。
CN202110163895.0A 2020-06-08 2021-02-05 数据存储装置、存储系统和提供虚拟化存储的方法 Pending CN113835618A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/896,201 US11720413B2 (en) 2020-06-08 2020-06-08 Systems and methods for virtualizing fabric-attached storage devices
US16/896,201 2020-06-08

Publications (1)

Publication Number Publication Date
CN113835618A true CN113835618A (zh) 2021-12-24

Family

ID=78817429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110163895.0A Pending CN113835618A (zh) 2020-06-08 2021-02-05 数据存储装置、存储系统和提供虚拟化存储的方法

Country Status (4)

Country Link
US (1) US11720413B2 (zh)
KR (1) KR20210152365A (zh)
CN (1) CN113835618A (zh)
TW (1) TW202147122A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606429B2 (en) * 2020-10-14 2023-03-14 EMC IP Holding Company LLC Direct response to IO request in storage system having an intermediary target apparatus
US11444790B1 (en) * 2021-07-09 2022-09-13 International Business Machines Corporation Dynamic exclusion of RDMA-based shared memory communication based on performance-related data

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500069B2 (en) * 2001-09-17 2009-03-03 Hewlett-Packard Development Company, L.P. System and method for providing secure access to network logical storage partitions
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
US8966164B1 (en) 2013-09-27 2015-02-24 Avalanche Technology, Inc. Storage processor managing NVME logically addressed solid state disk array
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
US9430437B1 (en) 2013-08-09 2016-08-30 Inphi Corporation PCIE lane aggregation over a high speed link
US10628353B2 (en) * 2014-03-08 2020-04-21 Diamanti, Inc. Enabling use of non-volatile media-express (NVMe) over a network
AU2015229802A1 (en) * 2014-03-08 2016-10-06 Diamanti, Inc. Methods and systems for converged networking and storage
US10635316B2 (en) * 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
WO2016196766A2 (en) 2015-06-03 2016-12-08 Diamanti, Inc. Enabling use of non-volatile media - express (nvme) over a network
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9712619B2 (en) * 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US20160188528A1 (en) * 2014-12-31 2016-06-30 Samsung Electronics Co., Ltd. Electronic system with storage control mechanism and method of operation thereof
US9973432B2 (en) * 2015-07-10 2018-05-15 International Business Machines Corporation Load balancing in a virtualized computing environment based on a fabric limit
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
US10372659B2 (en) * 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
US10311008B2 (en) * 2016-08-12 2019-06-04 Samsung Electronics Co., Ltd. Storage device with network access
US10365981B2 (en) * 2016-08-19 2019-07-30 Samsung Electronics Co., Ltd. Adaptive multipath fabric for balanced performance and high availability
US10853233B2 (en) * 2016-10-18 2020-12-01 Toshiba Memory Corporation Reconstruction of address mapping in a host of a storage system
US11474736B2 (en) * 2016-12-29 2022-10-18 Intel Corporation Network interface controller with non-volatile random access memory write packet log
EP3493046B1 (en) * 2017-01-25 2022-04-13 Huawei Technologies Co., Ltd. Data processing system, method, and corresponding device
US10282094B2 (en) 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
US10733137B2 (en) * 2017-04-25 2020-08-04 Samsung Electronics Co., Ltd. Low latency direct access block storage in NVME-of ethernet SSD
US10958729B2 (en) * 2017-05-18 2021-03-23 Intel Corporation Non-volatile memory express over fabric (NVMeOF) using volume management device
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10545921B2 (en) * 2017-08-07 2020-01-28 Weka.IO Ltd. Metadata control in a load-balanced distributed storage system
US10992967B2 (en) * 2017-12-05 2021-04-27 Sony Interactive Entertainment LLC Ultra high-speed low-latency network storage
US11656775B2 (en) * 2018-08-07 2023-05-23 Marvell Asia Pte, Ltd. Virtualizing isolation areas of solid-state storage media
US10855596B2 (en) * 2018-11-20 2020-12-01 Microsoft Technology Licensing, Llc Load balancing among multiple endpoint computing systems of a domain
US11003539B2 (en) * 2019-01-15 2021-05-11 EMC IP Holding Company LLC Offload processing using a storage slot
US11095547B2 (en) * 2019-01-31 2021-08-17 EMC IP Holding Company LLC Determining zoned but inactive I/O paths
US11379374B2 (en) * 2019-02-12 2022-07-05 Samsung Electronics Co., Ltd. Systems and methods for streaming storage device content
US10790036B1 (en) * 2019-08-28 2020-09-29 Micron Technology, Inc. Adjustment of read and write voltages using a space between threshold voltage distributions
US11262925B2 (en) * 2020-01-08 2022-03-01 EMC IP Holding Company LLC Performance partitioning leveraging dynamic masking change
US11231861B2 (en) * 2020-01-15 2022-01-25 EMC IP Holding Company LLC Host device with active-active storage aware path selection
US20200177660A1 (en) * 2020-02-03 2020-06-04 Intel Corporation Offload of streaming protocol packet formation
US11163716B2 (en) * 2020-03-16 2021-11-02 Dell Products L.P. Discovery controller registration of non-volatile memory express (NVMe) elements in an NVMe-over-fabrics (NVMe-oF) system
US11388135B2 (en) * 2020-03-31 2022-07-12 EMC IP Holding Company LLC Automated management server discovery
US20200241927A1 (en) * 2020-04-15 2020-07-30 Intel Corporation Storage transactions with predictable latency

Also Published As

Publication number Publication date
US11720413B2 (en) 2023-08-08
KR20210152365A (ko) 2021-12-15
TW202147122A (zh) 2021-12-16
US20210382663A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
US10880235B2 (en) Remote shared server peripherals over an ethernet network for resource virtualization
US11489919B2 (en) Method, apparatus, and data processing system including controller to manage storage nodes and host operations
CN108476208B (zh) 多路径传输设计
US8032730B2 (en) Method and apparatus for I/O priority control in storage systems
US7594060B2 (en) Data buffer allocation in a non-blocking data services platform using input/output switching fabric
JP2023503274A (ja) 高性能コンピューティング環境においてプライベートファブリックにおける順方向および逆方向輻輳通知の使用をサポートするためのシステムおよび方法
US10764180B1 (en) System and method for storing data using software defined networks
KR100927748B1 (ko) 가상 인클로저를 통한 스토리지 영역 네트워크 내의스토리지 가상화 구현 방법 및 장치
US6748559B1 (en) Method and system for reliably defining and determining timeout values in unreliable datagrams
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
US9813283B2 (en) Efficient data transfer between servers and remote peripherals
US10541928B2 (en) Policy aware framework for application input output management
US20100250785A1 (en) Npiv at storage devices
US10893105B1 (en) Utilization of networking protocol for seamless integration of compute nodes with software-defined storage nodes
US20030018828A1 (en) Infiniband mixed semantic ethernet I/O path
TW201027354A (en) Dynamic physical and virtual multipath I/O
US11379405B2 (en) Internet small computer interface systems extension for remote direct memory access (RDMA) for distributed hyper-converged storage systems
US20160216891A1 (en) Dynamic storage fabric
CN113835618A (zh) 数据存储装置、存储系统和提供虚拟化存储的方法
CN110471627B (zh) 一种共享存储的方法、系统及装置
US20160216895A1 (en) Method and Apparatus for Providing Virtual Machine Information to a Network Interface
US9582310B2 (en) Method and apparatus for determining the identity of a virtual machine
WO2014124557A1 (zh) 光纤通道中实现节点端口虚拟化的方法,装置和系统
US10171193B2 (en) Fractional multiplexing of serial attached small computer system interface links
WO2013147829A1 (en) Efficient distribution of subnet administration data over an rdma network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination