CN106688217A - 用于融合联网和存储的方法和系统 - Google Patents
用于融合联网和存储的方法和系统 Download PDFInfo
- Publication number
- CN106688217A CN106688217A CN201580024169.3A CN201580024169A CN106688217A CN 106688217 A CN106688217 A CN 106688217A CN 201580024169 A CN201580024169 A CN 201580024169A CN 106688217 A CN106688217 A CN 106688217A
- Authority
- CN
- China
- Prior art keywords
- storage
- network
- protocol
- controller
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种设备包括融合输入/输出控制器,其包括物理目标存储介质控制器、物理网络接口控制器以及存储介质控制器与网络接口控制器之间的网关,其中网关提供用于存储介质控制器与网络接口控制器之间的存储业务和网络业务的直接连接。
Description
相关申请的交叉引用
本申请要求以下瞬时申请的优先权,其中的每个被通过引用整体地结合到本文中:2014年3月8日提交且题为“Method and Apparatus for Application Driven StorageAccess”的美国专利申请61/950,036;以及2014年6月26日提交且题为“Apparatus forVirtualized Cluster IO”的美国专利申请62/017,257。
技术领域
本申请涉及联网和数据存储的领域,并且更特别地涉及融合联网和数据存储设备的领域。
背景技术
向外扩展应用的激增已对使用此类应用的企业导致非常显著的挑战。企业通常在比如(涉及比如管理程序的软件组件和高级硬件组件的)虚拟机的解决方案与(通常涉及比如Linux™的操作系统和商品硬件的使用的)所谓的“裸金属”解决方案之间进行选择。在大规模处,虚拟机解决方案通常具有不良的输入-输出(IO)性能、不充分的存储器、不一致的性能以及高的基础设施成本。裸金属解决方案通常具有静态资源分配(使得资源中的改变困难并导致硬件的低效使用)、规划容量中的挑战、不一致的性能以及操作复杂性。在两个情况下,不一致的性能表征了现有解决方案。存在对于在多租户部署中提供高性能、可以处理动态资源分配以及可以以高程度的利用使用商品硬件的解决方案的需要。
图1描绘了计算系统102的一般架构,在本文中公开的某些实施例中可能涉及诸如所述计算系统102的服务器、功能和模块。传统上在(例如,涉及分别用于网络功能或存储功能的网络接口控制器118或存储控制器112的)软件栈或硬件设备中单独地执行存储功能(诸如对服务器102上的诸如介质104(例如旋转介质或闪存(flash))之类的本地存储设备的访问)和诸如转发之类的网络功能。在操作系统栈108(其在包括与用于计算系统的存储和联网功能相关联的所有软件栈的某些实施例中可以包括操作系统和管理程序)内,软件存储栈通常包括使得能够使用可以在存储中使用的各种协议的模块,所述各种协议诸如小型计算机系统接口(SCSI)协议、串行ATA(SATA)协议、非易失性存储器express(快速)(NVMe)协议(用于通过典型的计算系统102的PCI Express(PCIe)总线110访问比如固态驱动(SSD)的盘附着存储(DAS)的协议)等。PCIe总线110可以提供(具有(一个或多个)处理器和存储器的)CPU 106与各种IO卡之间的互连。存储栈还可以包括卷管理器等。存储软件栈内的操作还可以包括数据保护,诸如镜像或RAID、备份、快照、重复数据删除(deduplication)、压缩和加密。某些存储功能可被卸载到存储控制器112中。软件网络栈包括用于使得能够使用各种联网协议的模块、功能等,所述联网协议诸如传输控制协议/因特网协议(TCP/IP)、域名系统协议(DNS)、地址解析协议(ARP)、转发协议等。某些网络功能可诸如经由以太网连接120被卸载到网络接口控制器118(或NIC)或网络结构(fabric)交换机中,进而(利用各种交换机、路由器等)通向网络。在虚拟化环境中,可根据PCI Express标准将NIC 118虚拟化成如由SR-IOV指定的若干虚拟NIC。虽然未被PCI Express标准指定且不是作为公共的,但存储控制器还可以被以类似方式虚拟化。该方法允许诸如虚拟机之类的虚拟实体对其自己的私有资源的访问。
参考图2,关于管理程序的一个主要问题是关于IO操作的复杂性。例如,为了处理涉及跨两个不同计算机(图2中的计算机系统1和计算机系统2)的数据的操作,随着数据在计算机的本地存储设备104、存储控制器112、CPU 106、网络接口控制器118和管理程序/操作系统108中所涉及的不同软件栈之间移动,数据必须被重复地、一遍又一遍地拷贝,每当采取(undertake)涉及将数据从一个计算机移动至另一个、改变存储的配置等的活动时导致用于每个IO操作的大量低效数据拷贝。路线(route)124是数据可采取的从一个计算机至另一个、在两个计算机的软件栈向上和向下移动的复杂路线的许多示例中的一个。由计算系统2寻找的数据可能最初位于计算系统1的诸如盘之类的本地存储设备104中,然后被存储控制器卡112(涉及IO操作和拷贝)拉出,通过PCIe总线110(另一IO操作)发送到CPU 108,在所述CPU 108处其被计算系统1的OS栈108的管理程序或其他软件组件处理。接下来,可经由网络控制器118且通过网络122(另一组IO操作)将数据递送(另一IO操作)到计算系统2。路线在计算系统2上继续,在所述计算系统2处数据可穿过网络控制器118并到计算系统2的CPU 106(涉及附加IO操作),然后被通过PCIe总线110发送到本地存储控制器112以用于存储,然后回到管理程序/OS栈108以用于实际使用。这些操作可跨许多计算系统对发生,其中每个交换涉及IO操作的该类型的激增(并且许多其他路线是可能的,每个涉及大量的操作)。在被企业越来越多地采用的向外扩展情况中要求计算系统之间的许多此类复杂的数据复制和传输活动。例如,当实现比如MongoDB™的向外扩展应用时,客户必须在再平衡操作期间重复地运行实时查询,并且执行大规模数据加载。此类活动涉及非常大量的IO操作,这导致管理程序解决方案中的不良性能。那些应用的用户还频繁地重新分片(改变数据被部署在其上的碎片),对具有静态存储资源分配的裸金属解决方案导致大问题,因为数据从一个位置到另一位置的迁移还涉及许多拷贝和传输操作以及大量的IO操作。随着在向外扩展应用中使用的数据量快速地增长和(诸如涉及许多机器的云部署中的)不同系统之间的连通性增加,这些问题呈指数增长。存在对于减少IO操作的数量和复杂性并另外改善向外扩展应用的性能和可扩展性而不要求昂贵的高级硬件的存储和联网解决方案的需要。
仍参考图2,对于许多应用和使用情况而言,需要跨计算系统102之间的网络访问数据(并且进而访问存储)。该操作的三个高级步骤包括数据离开箱子(box)从一个计算系统的存储介质的传送、跨网络122的移动以及数据到第二箱子(第二计算系统102)中到该第二计算系统102的存储介质104的传送。第一,离开箱子传送可能涉及来自存储控制器112、OS 108中的存储栈、OS 108中的网络栈以及网络接口控制器118的介入。花费了跨内部总线(PCIe 110和存储器)以及CPU 106处理循环的许多遍历和拷贝。这不仅使操作的性能降级(产生等待时间和吞吐量问题),而且不利地影响在CPU上运行的其他应用。第二,一旦数据离开箱子102并移动到网络122上,其被像任何其他网络业务一样处理并且需要被转发/路由到其目的地。执行策略并做出决定。在其中大量业务正在移动的环境中,拥塞可能发生在网络122中,引起性能中的降级以及关于可用性的问题(例如,被丢弃的分组、失去的连接以及不可预测的等待时间)。网络具有用以避免拥塞的扩散的机制和算法,诸如暂停功能、后向拥塞通知(BCN)、显式拥塞通知(ECN)等。然而,这些是反应性方法;即,其检测拥塞点的形成并在源上向后推以减少拥塞,潜在地导致延迟和性能影响。第三,一旦数据到达其“目的地”计算系统102,其需要被处理,这涉及来自网络接口控制器118、OS 108中的网络栈、OS108中的存储栈以及存储控制器112的介入。如上文记载的离开箱子操作一样,花费跨内部总线以及CPU 106处理循环的许多遍历和拷贝。进一步地,数据的最终目的地有可能存在于仍不同的箱子中。这可能是对更多数据保护(例如,镜像和跨箱子RAID)的需要或对重复数据删除的需要的结果。如果是这样,则需要再次地重复离开箱子、跨网络以及进入箱子数据传送的整个序列。如所述,该方法的限制包括原始性能中的降级,不可预测的性能,对其他租户或操作、可用性和可靠性的影响,以及资源的低效使用。存在对于避免当前方法的复杂性和性能影响的数据传送系统的需要。
作为对管理程序(其为其管理的每个虚拟机提供单独的操作系统)的替换,已开发了诸如Linux™容器之类的技术(其使得单个操作系统能够管理多个应用容器)。并且,已经开发了诸如Dockers之类的工具,其提供了对用库来封装应用的供应。在贯穿本公开描述的许多其他创新之中,存在用于利用这些新兴技术的能力来提供用于向外扩展应用的改进的方法和系统的机会。
发明内容
在本文中提供了包括将发起者、目标存储功能和网络功能组合到单个数据和控制路径中的硬件中的融合存储和网络控制器的方法和系统,其允许网络与存储之间的“直通”路径,而不要求主机CPU的介入。为了便于参考,贯穿本公开,在本公开中将这不同地称为融合硬件解决方案、融合设备、融合适配器、融合IO控制器、“数据智能(datawise)”控制器等,并且应将此类术语理解成包含(除在上下文另外指明的情况下之外)将目标存储功能和网络功能组合到单个数据和控制路径中的硬件中的融合存储和网络控制器。
除其他益处之外,融合解决方案将增加计算和/或存储资源集群的原始性能;实行跨集群的服务级协议(SLA)并帮助保证可预测的性能;提供多租户环境,其中租户将不影响其邻居;提供具有硬件的较高利用的稠密集群,导致较小的数据中心覆盖区(footprint)、较少的功率、较少的系统要管理;提供更加可扩展的集群;以及在不损失性能的情况下跨集群汇集(pool)存储资源。
在本文中公开的各种方法和系统提供了向外扩展应用所需的资源的高密度合并和高性能多节点汇集。这些方法和系统提供了多个客户益处,其包括动态集群范围资源供应,保证关于网络和存储功能的服务质量(QoS)、安全性、隔离等的能力以及将共享基础设施用于生产和测试/开发的能力。
在本文中还提供了用以通过网络执行存储功能并将存储和网络设备虚拟化以用于单或多租户环境中的高性能和确定性性能的方法和系统。
在本文中还提供了用于存储设备的虚拟化(诸如使用NVMe和类似协议的那些)以及那些虚拟设备到不同物理设备的转换(诸如使用SATA的转换)的方法和系统。
在本文中公开的方法和系统还包括用于仅涉及主机(与网络结构相反)上的硬件的端到端拥塞控制的方法和系统,该端到端拥塞控制包括远程信用管理和以箱子级别的分布式调度算法。
在本文中还提供了由融合网络/存储控制器使能的各种系统和方法,包括用于存储集群或使能集群的其他元件(诸如存储适配器、网络适配器、容器(例如,Linux容器)、Solaris区等)的虚拟化的方法和系统。在优点之中,将集群虚拟化的一个方面是容器可以在物理集群中变成位置无关的。除了其他优点,这允许容器在下面描述的大大简化过程中在机器之间的移动。
在本文中提供了用于将直接附着存储(DAS)虚拟化使得操作系统栈108仍看到本地的持久性设备、即使物理储存被移动且位于远程的方法和系统;即,在本文中提供了用于DAS的虚拟化的方法和系统。在实施例中,这可以包括通过结构将DAS虚拟化,即,获取DAS存储系统并将其移到箱子外面且将其放在网络上。在实施例中,这可以包括将DAS切分成任意的名字空间。在实施例中,使得虚拟化DAS如同其是实际DAS一样对操作系统可访问,诸如经由NVMe通过PCIe由OS 108可访问。因此,在本文中提供了如下能力:将存储(包括DAS)虚拟化,使得OS 108将其视为DAS,即使存储被通过诸如以太网之类的网络协议实际上访问并且OS 108不被要求做不同于将关于本地物理存储要求的事的任何事。
在本文中提供了用于提供跨结构的DAS的方法和系统,包括使虚拟化DAS暴露于OS 108而不要求OS 108的任何修改。
在本文中还提供了用于存储适配器(指的是目标存储系统)的虚拟化的方法和系统。
在本文中提供了用于将存储发起和存储目标确定组合在单个硬件系统中的方法和系统。在实施例中,这些可被PCIe总线110附着。可应用单根虚拟化功能(SR-IOV)来获取任何标准设备并使其动作如同其是数百个此类设备一样。本文中公开的实施例包括使用SR-IOV来给出物理存储适配器的多个虚拟实例。SR-IOV是将IO功能虚拟化的PCIe标准,并且虽然其已被用于网络接口,但本文中公开的系统和方法将其扩展至用于存储设备。因此,在本文中提供的是虚拟目标存储系统。
实施例可以包括交换机形状因数或网络接口控制器,其中本文中公开的系统和方法可以包括(在软件或硬件中的)主机代理。实施例可以包括在前端与后端之间破坏(break up)虚拟化。
实施例可以包括用于融合网络和目标存储控制器的各种部署点。虽然某些实施例将融合设备定位于主机计算系统102上,但在其他情况下,可以将盘移动至另一箱子(例如,通过以太网连接到在下面的各种箱子之间切换的交换机)。虽然可能需要对层进行虚拟化,但可以将存储分离,使得可以单独地对存储和计算资源进行扩展。并且,然后可以使能刀片服务器(例如,无状态服务器)。以前本来会涉及昂贵的刀片服务器且被附着到存储区域网络(SAN)的安装可以代之以附着到交换机。在实施例中,这包括其中在机架级别处将资源解聚合的“机架规模”架构。
本文中公开的方法和系统包括用于将各种类型的非DAS存储虚拟化为融合联网/目标存储装置中的DAS存储的方法和系统。在实施例中,可在将存储作为DAS暴露给OS栈108的同时使用到存储系统的各种前端协议将期望的不管什么存储虚拟化为DAS。
本文中公开的方法和系统包括融合网络/存储适配器的虚拟化。从业务观点出发,可将系统组合成一个。将存储和网络适配器组合并加入虚拟化提供显著的优点。例如,存在具有两个PCIe总线110的单个主机102。为了从PCIe 110进行路由,您可以使用比如RDMA的系统来到达另一机器/主机102。如果想要单独地完成这一点,必须单独地配置存储和网络RDMA系统。一个必须结合每一个并将在两个不同的地点对其进行配置。在融合场景中,设立QoS的整个步骤(由于这是RDMA且在别处存在另一结构)是零接触过程,因为用组合的存储联网,可以在单个步骤中对两者进行配置。也就是说,一旦知道了存储,就不需要单独地在网络上设立QoS。
本文中公开的方法和系统包括在硬件中、可选地在融合网络适配器/存储适配器装置中体现的联网和存储功能的虚拟化和/或间接(indirection)。虽然虚拟化是一种级别的间接,但协议是另一级别的间接。本文中公开的系统和方法可将适合于大部分操作系统用来处理本地存储的协议(诸如NVMe)转换成另一协议,诸如SAS、SATA等。可将一致性接口暴露于OS 108,诸如NVMe,但是在后端中,可转换成成本有效的不管什么存储介质。这为用户提供了价格/性能优点。如果组件更加便宜/更快速,则可以连接其中的任何一个。后端可以是任何东西,包括NVMe。
在本文中提供了包括用于装置中的设备和存储功能的融合数据路径的方法和系统。替换实施例可以提供用于交换机中的网络和存储功能的融合数据路径。
在实施例中,本文中公开的方法和系统包括存储/网络隧道,其中通过网络的存储系统之间的隧道路径并未涉及源或目标计算机的操作系统。在常规系统中,具有单独的存储和网络路径,因此远程地访问存储,需要到和来自存储器、I/O总线等的大量拷贝。将两个路径合并意味着存储业务径直转到网络上。每个计算机的OS 108仅看到本地盘。另一优点是编程的简单化。用户不需要单独地对SAN进行编程,意味着在本文中公开的方法包括一步可编程SAN。作为要求区等的发现和规范的替代,加密、附着、分离等可在中央并以编程方式完成。
本文中公开的实施例可以包括将存储虚拟化给OS 108,使得OS 108将存储视为本地盘。本文中公开的方法和系统中所涉及的间接级别允许融合系统不仅隐藏存储介质的位置,而且隐藏其介质类型。所有OS看到的是存在本地盘,即使实际存储位于远程和/或是不同类型的,诸如SAN。因此,提供了存储的虚拟化,其中OS 108和应用不必进行改变。可以隐藏在后面配置复杂存储类型正常地需要的所有管理、分层策略、备份策略、保护策略等。
提供了用于选择间接在存储虚拟化中的何处发生的方法和系统。某些功能的虚拟化可用硬件(例如,在主机上的适配器中、在交换机中以及用不同的形状因数(例如,FPGA或ASIC))和用软件发生。不同的拓扑可用,诸如其中在主机上、在机架交换机的顶部上或者以其组合的方式部署本文中公开的系统和方法。进入选择的因素包括使用容易性。想要运行无状态服务器的用户可优选机架顶部。不关心该方法的用户可能优选主机上的控制器。
本文中公开的方法和系统包括提供以太网NVMe。这些方法可以是用于在设备之间使用的隧道协议的基础。NVMe是按照惯例意图转到本地PCIe的适当的DAS协议。本文中公开的实施例可以通过以太网隧道传输NVMe协议业务。NVMe(非易失性存储器express)是在Linux和Windows中提供对基于PCIe的Flash的访问的协议。这通过绕过在常规系统中使用的软件栈来提供高性能。
本文中公开的实施例可以包括提供被虚拟化且动态地分配的NVMe设备。在实施例中,可背载NVMe,但是对NVMe设备进行划分并虚拟化且动态地分配。在实施例中,在软件中不存在覆盖区。操作系统保持相同(仅仅是看到融合网络/存储卡的小驱动)。这导致比如直接附着盘一样呈现的虚拟存储,但差别在于现在我们跨网络将此类设备汇集在一起。
在本文中提供了用于提供具有比如存储区域网络(SAN)中的共享优点的直接附着存储(DAS)的简单化的方法和系统。在本文中公开的各种实施例中的每个融合装置可以是主机,并且任何存储驱动器可在特定主机本地,但是被其他主机看到(如在SAN或其他网络可访问存储中一样)。由本公开的网络/存储控制器使能的每个箱子中的驱动器表现如同SAN一样(即,在网络上可用),但是管理方法简单得多。当存储管理员设立SAN时,典型的企业可使整个部门设立用于SAN(例如,光纤通道交换机)的区,诸如设立“谁看到什么”。该知识是预加载的,并且用户必须让SAN管理员完成该工作以将其设立。在典型的传统SAN架构中不存在可编程性。本文中公开的方法和系统提供了在网络上的本地单元,但是该本地单元仍可以访问其存储而不必经历比如区定义等复杂管理步骤。这些设备可以仅仅通过兼具网络和存储意识而完成SAN所完成的东西。同样地,其表示第一编程SAN。
本文中公开的方法和系统可以包括由提供融合网络和存储数据管理的硬件装置使能的持久性、有状态、解集存储。
本文中公开的方法和系统还可以包括网络和存储数据管理在单个装置中的融合,适合于支持用于虚拟化的容器的使用。该方法和系统与新兴的容器生态系统兼容,但是提供某些附加优点。
在本文中公开了用于实现NVMe的虚拟化的方法和系统。不管多少资源至多少目的地,只要来自源的数据在进入集线器之前首先被串行化,则集线器连续地将数据分发到指定目的地。如果是这样,则可以将诸如DMA引擎之类的数据传输源缩减为仅一个拷贝。这可以包括各种使用场景。在一个场景中,针对NVMe虚拟功能(VF),如果其全部被连接到同一PCIe总线,则不管多少VF被配置,数据将串行地进入VF的此池,因此存在仅一个DMA引擎,并且只需要一个存储块(用于控制信息)。在另一使用场景中,针对具有分立盘/控制器的池的盘存储系统,如果数据源自于物理总线,即PCIe,由于数据正在串行地进入此盘池,然后不管多少盘/控制器在池中,可以将诸如DMA引擎之类的传输资源缩减至仅一个而不是每个控制器一个。
根据各种示例性且非限制性实施例,一种设备包括:融合输入/输出控制器,其包括物理目标存储介质控制器、物理网络接口控制器;以及存储介质控制器与网络接口控制器之间的网关,其中网关提供用于存储介质控制器与网络接口控制器之间的存储业务和网络业务的直接连接。
根据各种示例性且非限制性实施例,一种存储设备的虚拟化的方法包括:访问对按照第一存储协议的指令进行响应的物理存储设备,在第一存储协议和第二存储协议之间转换指令,以及使用第二协议,将物理存储设备呈现给操作系统,使得可以动态地提供物理存储设备的存储,不管物理存储设备在使用操作系统的主机计算系统的本地还是远程。
根据各种示例性且非限制性实施例,一种促进应用与容器中的至少一个的迁移的方法包括提供融合存储和联网控制器,其中网关在没有主机计算机的操作系统的介入的情况下提供用于设备的存储组件与联网组件之间的网络和存储业务的连接,并且将所述至少一个应用或容器映射到被融合存储和联网控制器控制的目标物理存储设备,使得当应用或容器移动至另一计算系统时,在没有目标物理存储器被附着到的主机系统的操作系统的介入的情况下,该应用或容器可以访问目标物理存储器。
根据各种示例性且非限制性实施例,一种为网络提供服务质量(QoS)的方法包括提供融合存储和联网控制器,其中网关在没有主机计算机的操作系统、管理程序或在CPU上运行的其他软件的介入的情况下提供用于设备的存储组件与联网组件之间的网络和存储业务的连接,并且也在没有主机计算机的操作系统、管理程序或在CPU上运行的其他软件的介入的情况下,管理与在其数据路径中部署了存储和联网控制器的网络相关的至少一个服务质量(QoS)参数,此类管理是基于由融合存储和联网控制器处理的存储业务和网络业务中的至少一个。
QoS可基于各种参数,诸如带宽参数、网络等待时间参数、IO性能参数、吞吐量参数、存储类型参数和存储等待时间参数中的一个或多个。当被通过融合存储和网络控制器提供存储服务的应用和容器中的至少一个从主机计算机迁移到另一计算机时,可QoS被自动地维持。同样地,当通过融合存储和网络控制器来服务于应用和容器中的至少一个的至少一个目标存储设备从第一位置迁移至另一位置或多个位置时,可QoS被自动地维持。例如,可对存储进行扩展,或者可选择不同的存储介质类型,以随着要求增加而满足存储需要。在实施例中,可以提供安全特征,诸如网络业务数据的加密、存储中数据的加密或两者。也可以提供各种存储特征,诸如压缩、保护级别(例如,RAID级别)、不同存储介质类型的使用、全局重复数据删除以及实现恢复点目标(RPO)和恢复时间目标(RTO)中的至少一个的快照间隔。
附图说明
附图用于进一步图示各种实施例及用于解释各种原理和优点,其全部根据本文中公开的系统和方法,在所述附图中同样的参考数字指的是贯穿单独的视图的相同或功能上类似的元素并且所述附图连同下文的详细描述被结合在本说明书中并且形成本说明书的部分。
图1图示了根据示例性且非限制性实施例的一般架构。
图2图示了根据示例性且非限制性实施例的计算机系统。
图3图示了根据示例性且非限制性实施例的融合解决方案。
图4图示了根据示例性且非限制性实施例的由融合解决方案使能的两个计算系统。
图5图示了根据示例性且非限制性实施例的融合控制器。
图6图示了根据示例性且非限制性实施例的融合控制器的部署。
图7图示了根据示例性且非限制性实施例的多个系统。
图8图示了根据示例性且非限制性实施例的现场可编程门阵列(FPGA)的框图。
图9图示了根据示例性且非限制性实施例的控制器卡的架构。
图10图示了根据示例性且非限制性实施例的软件栈。
图11-15图示了根据示例性且非限制性实施例的跨多个系统的应用容器的移动。
图16图示了根据示例性且非限制性实施例的分组传输。
图17图示了根据示例性且非限制性实施例的存储访问方案。
图18图示了根据示例性且非限制性实施例的文件系统的操作。
图19图示了根据示例性且非限制性实施例的分布式文件服务器的操作。
图20图示了根据示例性且非限制性实施例的高性能分布式文件服务器(DFS)。
图21图示了根据示例性且非限制性实施例的系统。
图22图示了根据示例性且非限制性实施例的主机。
图23图示了根据示例性且非限制性实施例的访问数据块的应用。
图24图示了根据示例性且非限制性实施例的访问数据块的应用。
图25图示了根据示例性且非限制性实施例的系统。
图26图示了根据示例性且非限制性实施例的方法。
图27图示了根据示例性且非限制性实施例的方法。
图28图示了根据示例性且非限制性实施例的方法。
有经验的技术人员将领会到图中的元件为了简单和清楚而被图示且不一定被按比例描绘。例如,图中的某些元件的尺寸可能相对于其他元件被放大以有助于提高对本文中公开的系统和方法的实施例的理解。
具体实施方式
现在将通过参考附图和展示来描述本公开的各种说明性、非限制性实施例而详细地描述本公开。然而,本公开可以许多不同的形式体现,并且不应被解释为限于在本文中阐述的说明性实施例。相反地,实施例被提供以使得本公开将是透彻的并且将向本领域那些技术人员全面地传达本公开的概念。应查阅权利要求以确定本公开的真正范围。
在详细地描述根据本文中公开的系统和方法的实施例之前,应观察到实施例主要存在于与融合联网和存储相关的方法步骤和/或系统组件的组合中。因此,系统组件和方法步骤已经被在图中通过常规符号在适当的情况下表示,仅示出了关于理解本文中公开的系统和方法的实施例的那些特定细节以便不利用对本文领域那些普通技术人员而言将容易地显而易见的细节使本公开模糊。
参考图3,融合解决方案300可以包括三个重要方面并且可被实现在包括硬件和软件模块和功能的组合的硬件设备中。第一,可在网络控制器118与存储控制器112之间提供直通数据路径304,使得向和从网络的对存储的访问可以是直接的,而不要求OS栈108、PCIe总线110或CPU 106的任何介入。第二,可以提供诸如对存储设备302的直通式存储栈访问,诸如向和从本地主机上的实体的对存储的访问,其允许绕过用于存储访问的复杂传统软件栈,诸如SCSI/SAS/SATA栈。第三,可以诸如通过用以保留数据和调度对数据跨网络的传送的机制来提供网络的端到端拥塞管理和流控制,其保证目标的数据对远程发起者的可用性并且在所述目标的数据流过中间网络结构交换机时使业务的拥塞最小化。第一和第二方面从数据的路径移除软件栈(因此移除CPU 106和存储器),消除了冗余或不必要的移动和处理。端到端拥塞管理和流控制递送数据的确定且可靠的传输。
如上面记载的那样,融合解决方案300的一个益处是操作系统栈108通过常规PCIe 110或类似总线连接到融合解决方案300,使得OS栈108看到融合解决方案300以及其通过到存储设备302的直通而控制的任何贮存器,如一个或多个本地持久性设备,即使物理贮存器位于远程。除了其他之外,这还包括用于DAS 308的虚拟化的能力,其可以包括通过结构将DAS 308虚拟化,即获取DAS 308存储系统并将其移到计算系统102外面且将其放在网络上。融合解决方案300的存储控制器112可经由诸如SAS、SATA或NVMe之类的各种已知协议连接到并控制网络122上的DAS 308。在实施例中,虚拟化可以包括将DAS 308切分成任意的名字空间。在实施例中,使得虚拟化DAS 308如同其是实际的、本地的、物理的DAS对操作系统可访问,诸如经由诸如NVMe之类的标准协议、通过到融合解决方案300的存储控制器112的PCIe总线 110由OS 108可访问。再次地,OS 108将整个解决方案300视为本地的物理设备,诸如DAS。因此,在本文中提供了将存储(包括DAS及其他存储类型,诸如SAN 310)虚拟化的能力,使得OS 108将任何存储类型视为DAS,即使存储实际上被通过网络112访问,并且OS 108不被要求做不同于将关于本地物理存储要求事情的任何事。在其中存储设备302是SAN 310存储的情况下,融合解决方案的存储控制器112可通过被用于存储区域网络的适当协议(诸如因特网小型计算系统接口(iSCSI)、光纤通道(FC)或通过以太网的光纤通道(FCoE))来控制SAN 310。因此,融合解决方案300为OS栈108提供了从在存储中使用的任何其他协议(除其他之外还诸如以太网、SAS、SATA、NVMe、iSCSI、FC或FCoE)到使得不同的存储类型和协议表现为通过PCIe 110可访问的本地存储的比如NVMe的简单协议的转换。该转换进而使能存储适配器(指的是任何种类的目标存储系统)的虚拟化。因此,本文中公开的方法和系统包括用于在融合联网/目标存储装置300中将各种类型的非DAS存储虚拟化为DAS的方法和系统。在实施例中,人们可以在将存储作为DAS暴露给OS栈108时使用到存储系统的各种协议将期望的不管什么存储虚拟化为DAS。因此,在本文中提供了用于存储设备的虚拟化(诸如使用NVMe和类似协议的那些)以及那些虚拟设备到不同的物理设备的转换(诸如使用SATA的转换)的方法和系统。
其中通过网络112的存储系统之间的隧道路径不涉及源或目标计算机的操作系统的存储/网络隧道304使能多个益处。在常规系统中,其具有单独的存储和网络路径,因此远程地访问存储要求到和来自存储器、I/O总线等的大量拷贝。将两个路径合并意味着存储业务径直到网络上。优点是编程的简单。用户不需要单独地对SAN 310进行编程,意味着在本文中公开的方法使能一步可编程SAN 310。可在中央并以编程方式完成配置、加密、附着、分离等,而不是要求对区(zone)的发现和规范等。作为示例,典型的SAN由“发起者”、“目标”和连接发起者与目标的交换机结构组成。通常,哪些发起者看到哪些目标由结构交换机定义/控制,被称作“区”。因此,如果发起者移动或目标移动,则需要更新区。SAN的第二控制部分通常属于“目标”。其可以控制哪个发起者端口可以看到什么逻辑单元号(LUN)(由目标暴露的存储单元)。这通常被称为LUN掩蔽和LUN映射。再次地,如果发起者移动位置,则必须对“目标”重新编程。现在考虑的是在此类环境中如果应用(诸如由于失效转移、负载再平衡等)从一个主机移动至另一个,则需要更新分区和LUN掩蔽/映射。替换地,可以对SAN预编程,使得每个发起者看到每个目标。然而,这样做导致不可扩展且不安全的SAN。在贯穿本公开描述的替换解决方案中,应用、容器或存储设备的此类移动不要求任何SAN重新编程,导致零接触解决方案。由融合解决方案300维持和执行的映射允许应用或容器、目标存储介质或两者被独立地移动(包括到多个位置)和扩展(scale),而没有由OS、管理程序或在主机CPU上运行的其他软件的介入。
OS 108将存储视为本地盘的事实允许存储的简化虚拟化。本文中公开的方法和系统中所涉及的间接的级别允许融合系统300不仅隐藏存储介质的位置而且隐藏存储介质的介质类型。OS 108看到的全部是存在本地盘,即使实际存储位于远程和/或是不同的类型,诸如SAN 310。因此,通过融合解决方案300来提供存储的虚拟化,其中OS 108和应用不必改变。可以隐藏在后面配置复杂的存储类型正常地需要的管理、分层策略、备份策略、保护策略等中的全部。
融合解决方案300使能利用存储区域网络(SAN)的优点的直接附着存储(DAS)的简单。在本文中公开的各种实施例中的每个融合装置300可充当主机,并且任何存储设备302可能对于特定主机而言是本地的但是被其他主机看到(如在SAN 310或其他网络可访问存储中的情况)。由本公开的网络/存储控制器使能的每个箱子中的驱动器行为像SAN 310(例如,在网络上可用),但是管理方法简单得多。当存储管理员正常地设立SAN 310时,典型的企业可使整个部门设立用于SAN 310(例如,光纤通道交换机)的区,诸如设立“谁看到什么”。该知识必须被预加载,并且用户必须要求SAN 310管理员做该工作以将其设立。在典型的传统SAN 310架构中不存在可编程性。本文中公开的方法和系统提供了在网络上的本地单元,但是本地单元仍可以访问其存储而不必经历比如区定义等的复杂管理步骤。这些设备可以仅通过具有网络和存储意识两者而做SAN所做的事。照此(as such),其表示第一可编程SAN。
可以将解决方案300描述为“融合IO控制器”,其控制存储介质302和网络122两者。该融合控制器300不仅仅是存储控制器112和网络控制器(NIC)118的简单集成。存储和网络的实际功能被合并,使得随着数据向和从网络接口穿过而执行存储功能。可在诸如如下文详述的FPGA(一个或多个)或ASIC(一个或多个)之类的硬件解决方案中提供该功能。
参考图4,由融合解决方案300使能的两个或更多计算系统102可用作用于相应的存储目标的主机,其中通过将存储和网络合并以及控制两个接口,可以诸如通过点到点路径400或者通过到由融合解决方案300使能的另一计算机系统102的以太网交换机402经由网络122远程地实现对存储302的直接访问而不穿过内部总线或CPU/软件工作。可以实现最高性能(高IOP和低等待时间)。进一步地,现在可以跨集群汇集存储资源302。在图4中,这被通过点线椭圆404概念性地图示。
在实施例中,可将融合解决方案300包括在主机计算系统102上,其具有如图1中描绘的常规计算系统的各种组件连同如结合图3描述的融合IO控制器300。参考图5,在替换实施例中,可将融合控制器300布置在交换机(诸如机架交换机的顶部)中,因此使能使能存储的交换机500。交换机可驻留在网络122上并由诸如常规计算系统102的网络控制器118之类的网络控制器118访问。
参考图6,可部署其中融合控制器300既被布置在一个或多个主机计算系统102上又被布置在使能存储的交换机500上的系统,所述使能存储的交换机500可被连接到由融合解决方案300使能的系统102和非使能系统102。如上文记载的那样,用于主机计算系统102上和使能存储的交换机500上的(一个或多个)融合控制器300的目标存储302可以跨网络对彼此可见,诸如被视为诸如对虚拟化解决方案而言的统一资源。总而言之,在本公开的各种替换实施例中,包括处理同一设备上的经融合的网络和存储业务的智能可以位于主机系统中、交换机中或两者。
本文中公开的实施例因此可以包括交换机形状因数或网络接口控制器或两者,其可以包括主机代理(在软件或硬件中)。这些变化的部署允许诸如在主机上和/或在交换机上和/或在前端与后端之间破坏虚拟化能力。虽然可能需要层来将某些功能虚拟化,但可以将存储分离,使得可以对存储和计算资源进行单独地扩展。并且,然后可以使能刀片服务器(即,无状态服务器)。以前本来会涉及昂贵的刀片服务器和被附着的存储区域网络(SAN)的安装可以代之以附着到使能存储的交换机500。在实施例中,这包括其中在机架级别处将资源解聚合的“机架规模”架构。
提供了用于选择间接发生在存储的虚拟化中的何处的方法和系统。某些功能的虚拟化可能发生在硬件中(例如,在主机102上的融合适配器300中、在使能存储的交换机500中、在变化的硬件形状因数(例如,FPGA或ASIC)中)和在软件中。不同的拓扑可用,诸如其中本文中公开的方法和系统被部署在主机机器102上、在机架交换机500的顶部上或者被以其组合部署。进入(go into)虚拟化应该发生在何处的选择的因素包括使用的容易。想要运行无状态服务器的用户可优选使能机架存储的交换机500的顶部。不关心该方法的用户可能优选主机102上的融合控制器300。
图7示出了用融合控制器300使能的一组系统的更详细的视图,其包括两个计算机系统102(计算机系统1和计算机系统2)以及使能存储的交换机500。诸如DAS 308和SAN310之类的存储设备302可被融合控制器300或使能存储的交换机500控制。在任一情况下可使用SAS、SATA或NVMe协议来控制DAS 308。在任一情况下可使用iSCSI、FC或FCoE来控制SAN310。具有存储控制器300的主机102之间的连接可以通过点到点路径400、通过以太网交换机402或者经由使能存储的交换机500,其还可以提供到常规计算系统的连接。如上文记载的那样,具有智能融合控制器300的多个系统中的每个可以用作主机和用作其他主机看到的存储目标位置,从而出于计算系统102的操作系统108的目的提供被视为存储的单个集群的选项。
本文中公开的方法和系统包括在硬件融合控制器300中(可选地在融合网络适配器/存储适配器装置300中)体现的联网和存储功能的虚拟化和/或间接。虽然虚拟化是一个级别的间接,但协议是另一级别的间接。本文中公开的方法和系统可将适合于由大部分操作系统用来处理本地存储的协议(诸如NVMe)转换成另一协议,诸如SAS、SATA等。可将诸如NVMe之类的一致性接口暴露到OS 108,并且在融合控制器300的另一侧上可转换成划算的不管什么存储介质302。这给予用户价格/性能优点。如果组件更便宜/更快速,则可以连接其中的任一个。融合控制器300的侧面可以面对任何种类的存储,包括NVMe。更进一步地,存储介质类型可以是以下中的任何,包括但不限于HDD、SSD(基于SLC、MLC或TLC闪存(flash))、RAM等或其组合。
在实施例中,融合控制器可被适配成将NVMe虚拟功能虚拟化,并且被适配成通过以太网交换机402经由NVMe提供对远程存储设备302(诸如被连接到使能存储的交换机500的远程存储设备302)的访问。因此,融合解决方案300使能通过以太网700的NVMe或NVMeoE的使用。因此,本文中公开的方法和系统包括通过以太网提供NVMe。这些方法可以是用于在设备之间使用的隧道协议的基础,所述设备诸如由融合控制器300和/或使能存储的交换机500使能的主机计算系统102。NVMe是按照惯例意图转到本地PCIe 110的适合的DAS协议。本文中公开的实施例可通过以太网隧道传送NVMe协议业务。NVMe(非易失性存储器express)是在Linux和Windows中提供对基于PCIe的闪存的访问的协议。这经由绕过在常规系统中使用的软件栈来提供高性能,同时避免了从(如由OS栈108所使用的)NVMe和通过以太网向其他设备隧道传输的业务进行转换的需要。
图8是FPGA 800的框图,其可驻留在IO控制器卡上并使能融合解决方案300的实施例。请注意,虽然描绘了单个FPGA 800,但可以将各种功能块组织成多个FPGA、组织成一个或多个客户专用集成电路(ASIC)等。例如,可以在单独(但互连)的FPGA或ASIC中处理各种联网块和各种存储块。除在上下文另外指示的情况下之外,贯穿本公开的对FPGA 800的引用应被理解成包含可以使能在图8中反映的功能能力和类似功能的硬件的这些其他形式。并且,可以在商用硅晶中体现某些功能组,诸如用于联网功能和/或存储功能。
图8的FPGA 800的实施例具有四个主要接口。第一,存在PCIe接口,诸如到主机计算机102的PCIe总线110的PCIe接口。因此,卡是PCIe端点。第二,存在DRAM/NVRAM接口。例如,可以提供到外部DRAM或NVRAM的DDR接口,其被嵌入式CPU、元数据和数据结构以及分组/数据缓冲使用。第三,存在到诸如DAS 308和SAN 310之类的介质的存储接口。存储接口可以包括用于SAS、SATA、NVMe、iSCSI、FC和/或FCoE的存储接口,并且在实施例中可以是到旋转介质、闪存或其他持久形式的存储(其对于比如SAN 310的网络使能(network-enabled)的存储而言是本地的或者通过直通到比如SAN 310的网络使能的存储)的任何接口。第四,提供网络接口,诸如到网络结构的以太网。存储接口和网络接口可以被部分地用来使能通过以太网的NVMe。
FPGA 800的内部功能可以包括用于融合解决方案300和自始至终记载的本公开的其他方面的多个使能特征。可为主机提供一组虚拟端点(vNVMe)802。类似于被用于网络接口的SR-IOV协议,这向主机呈现虚拟存储目标。在FPGA 800的该实施例中,NVMe具有低软件开销的益处,其进而提供高性能。虚拟NVMe设备802可以被动态地分配/解除分配/移动和调整尺寸。如SR-IOV一样,存在与PCIe驱动110(参见下文)对接的一个物理功能(PF)806以及其中每个表现为NVMe设备的多个虚拟功能807(VF)。
在FPGA 802功能中还提供了一个或多个读和写直接存储访问(DMA)队列804,在本文中的某些情况下被称为DMA引擎804。这些可以包括中断队列、门铃及其他标准功能以向和从主机计算系统102执行DMA。
FPGA 800上的设备映射设施808可确定虚拟NVMe设备802的位置。位置选项将是本地(即——被附着到所示的存储介质接口824中的一个)或在存储控制器300的另一主机102上的远程。对远程vNVMe设备的访问要求通过隧道828到网络122。
NVMe虚拟化设施810可将NVMe协议指令和操作转换成后端存储介质302的相应协议和操作,诸如其中使用DAS 308的SAS或SATA(在后端存储介质302上的NVMe的使用的情况下,可能不需要转换)或者诸如其中在后端中使用SAN 310存储的情况下的iSCSI、FC或FCoE。在这里对后端的引用指的是从主机102来看的融合控制器300的另一侧。
数据变换功能812可在数据被存储到存储介质302上时将数据格式化。这些操作可以包括重写、变换、压缩、保护(诸如RAID)、加密和其他功能,其涉及以在必要时允许数据被适用类型的目标存储介质308处理的任何方式改变数据的格式。在某些实施例中,存储介质308可以是远程的。
在实施例中,存储读和写队列814可以包括用于在传送期间使数据登台(staging)的数据结构或缓冲。在实施例中,可将诸如NVRAM的DRAM(其可位于FPGA 800外)之类的瞬时存储器用于数据的瞬时存储。
本地存储调度器和成形器818可以对对存储介质302的访问区分优先次序并控制对存储介质302的访问。可在调度器和成形器818中实行用于本地存储的任何可适用的SLA策略,其可以包括可以在每个队列、每个发起者、每个目标或每个c-组的基础上等适用的严格的优先次序、加权的轮询调度、IOP成形器以及策略器。
数据放置设施820可实现确定如何在存储介质302上布局数据的算法。其可涉及对本领域那些技术人员已知的各种放置方案,诸如跨介质分条(stripping)、局部化到单个设备302、使用设备302的子集或者局部化到设备302上的特定块。
存储元数据管理设施822可以包括用于数据放置、块和对象i节点、压缩、重复数据删除以及保护的数据结构。元数据可被存储在FPGA 800外NVRAM/DRAM中或者存储介质302中。
多个控制块824可以提供到存储介质的接口。在每个情况下根据对于适当类型的目标存储介质302的需要,除了其他可能的控制块之外,这些还可以包括SAS、SATA、NVMe、PCIe、iSCSI、FC和/或FCoE。
FPGA 800的存储网络隧道828可以提供结合融合解决方案300贯穿本公开描述的隧道传输/直通能力。除了其他之外,隧道828还提供存储业务与网络业务之间的网关。其包括封装/解封装或存储业务、数据的重写和格式化以及数据的传送的端到端协调。协调可以在跨主机计算系统102内的或者超过一个计算系统102中的节点的FPGA 800之间,诸如针对结合图4描述的点到点路径404。可执行各种功能,诸如序列号、分组丢失、超时以及重传。隧道传输可通过以太网发生,包括通过FCoE或NVMeoE发生。
虚拟网络接口卡设施830可以包括到主机102的多个SR-IOV端点,被呈现为虚拟网络接口卡。一个物理功能(PF)836可与PCIe驱动110(参见下文的软件描述)以及多个虚拟功能(VF)837对接,其中每个虚拟功能表现为网络接口卡(NIC)118。
一组接收/发射DMA队列832可以包括中断队列、门铃及其他标准功能以向和从主机102执行DMA。
分类器和流管理设施834可执行标准网络业务分类,通常到IEEE标准802.1Q服务级(COS)映射或其他优先次序别。
访问控制和重写设施838可处理访问控制列表(ACL)和重写策略,包括通常对以太网元组(MAC SA/DA、IP SA/DA、TCP端口等)进行操作以将分组重新分类或重写的访问控制列表。
转发功能840可诸如通过层2(L2)或层3(L3)机制确定分组的目的地。
一组网络接收和发射队列842可处理到网络接口的数据结构或缓冲。FPGA 800外的DRAM可被用于分组数据。
网络/远程存储调度器和策略器844可提供优先次序并且控制对网络接口的访问。在这里可实行用于远程存储和网络业务的SLA策略,其可以包括在每个队列、每个发起者、每个目标、每个c组或每个网络流基础上的严格优先次序、加权的轮询、IOP和带宽成形器以及策略器等。
本地网络交换机848可在FPGA中的队列之间转发分组,使得如果目的地对于FPGA800或主机102而言是本地的,则业务不需要退出FPGA 800到网络结构122。
端到端拥塞控制/信用设施850可防止网络拥塞。这用两个算法被实现。第一,可存在利用远程FPGA 800的端到端保留/信用机制。这可类似于SCSI传送就绪功能,其中远程FPGA 800在其可以立即接受数据的情况下允许存储传送。类似地,本地FPGA 800在远程FPGA 800请求传送时向其分配信用。在这里还可实行用于远程存储的SLA策略。第二,可存在分布式调度算法,诸如迭代轮询算法,诸如在由Nick McKeown发表的出版物“The iSLIPScheduling Algorithm for Input-Queues Switches”IEEE/ACM TRANSACTIONS ONNETWORKING,卷7,号2,1999年4月中提出的用于输入队列的iSLIP算法。可使用中间网络结构作为横杆(crossbar)而在集群范围内执行该算法。
重写、标签以及CRC设施852可用适当的标签和CRC保护将分组封装/解封装。
一组接口854(诸如MAC接口)可以提供到以太网的接口。
一组嵌入式CPU和高速缓存复合体858可实现过程控制计划、异常处理以及到和来自本地主机和网络远程FPGA 800的其他通信。
存储器控制器860(诸如DDR控制器)可充当用于外部DRAM/NVRAM的控制器。
由于由融合解决方案300提供的功能的集成,如在一个示例中通过FPGA 800体现的那样,在本文中提供了用于将存储发起和存储目标确定组合在单个硬件系统中的方法和系统。在实施例中,这些可被PCIe总线110附着。可应用单根虚拟化功能(SR-IOV)等来获取任何标准设备(例如,任何存储介质302设备)并使其动作如同其是数百个此类设备一样。本文中公开的实施例包括使用比如SR-IOV的协议来给出物理存储适配器的多个虚拟实例。SR-IOV是将IO功能虚拟化的PCIe标准,并且虽然其已被用于网络接口,但本文中公开的方法和系统将其扩展至用于存储设备。因此,在本文中提供了虚拟化的目标存储系统。在实施例中,虚拟目标存储系统可处理不同的介质,如同该介质是一个或多个盘(诸如DAS 310)一样。
被比如FPGA 800的实施例使能,本文中公开的方法和系统的实施例还可以包括提供被虚拟化并动态地分配的NVMe设备。在实施例中,可背负正常NVMe协议,但是对NVMe设备进行划分、虚拟化和动态分配。在实施例中,在软件中不存在覆盖区。操作系统108保持相同或几乎相同(可能具有看到融合网络/存储卡300的小驱动)。这导致看起来像直接附着盘的虚拟存储,但是区别在于现在我们可以跨网络122将汇集此类存储设备302。
在本文中公开了用于实现NVMe的虚拟化的方法和系统。不管多少资源与多少目的地相关,只要来自源的数据在进入集线器之前被首先串行化,则集线器就将数据连续地分发到指定目的地。如果是这样,则可以将诸如DMA队列804、832之类的数据传输资源减少到仅一个拷贝。这可以包括各种使用场景。在一个场景中,针对NVMe虚拟功能(VF),如果其全部被连接到同一PCIe总线110,则不管多少VF 807被配置,数据将串行地进入VF 807的该池中,因此只存在一个DMA引擎804,并且只需要一个存储块(用于控制信息)。
在另一使用场景中,针对具有分立的盘/控制器的池的盘存储系统,如果数据源自于物理总线,即PCIe 110,由于数据正在串行地进入盘的该池中,则不管多少盘/控制器在池中,可以将诸如DMA引擎804之类的传输资源减少到仅一个而不是每个控制器一个。
本文中公开的方法和系统还可以包括融合网络/存储适配器300的虚拟化。从业务观点出发,可将系统组合成一个。将存储和网络适配器组合并加入虚拟化给出显著的优点。例如,存在具有两个PCIe总线110的单个主机102。为了从PCIe 110进行路由,您可以使用比如远程直接存储访问(RDMA)的系统来到达另一机器/主机102。如果想要单独地完成这一点,必须单独地配置存储和网络RDMA系统。一个必须结合每一个并将在两个不同的地点对其进行配置。在融合解决方案300中,设立QoS的整个步骤由于这是RDMA且在别处存在另一结构而是零接触过程,因为用组合的存储和联网可以在单个步骤中对两者进行配置。也就是说,一旦知道了存储,就不需要单独地在网络上设立QoS。因此,由融合解决方案300使能用于RDMA解决方案的网络和存储的单步配置。
再次参考图4,由如结合图8描述的FPGA 800或类似硬件使能远程访问。在图4中用点线408来指示虚拟化边界。在该线的左边,虚拟存储设备(例如,NVMe 802)和虚拟网络接口830被呈现给操作系统108。操作系统不能辨别这些是虚拟设备。在虚拟化边界408右边是物理存储设备302(例如,使用SATA或上文记载的其他协议)和物理网络接口。存储虚拟化功能由图8的vNVMe 802和NVMe虚拟化设施810实现。网络虚拟化功能由vNIC设施830实现。物理存储介质的位置也针对操作系统108被隐藏。有效地,跨服务器的物理盘302可以被汇集并被远程地访问。操作系统108向存储介质302(其是虚拟设备,但操作系统108将其视为物理设备)发出读或写事务。如果物理存储介质302碰巧是远程的,则读/写事务被映射到适当的物理位置、封装以及通过以太网隧道传输。该过程可由图8的设备映射设施808、NVMe虚拟化设施810、数据变换设施812和存储-网络隧道828实现。目标服务器(第二计算系统)将存储读/写解除隧道传输(un-tunnel)并直接地访问其本地存储介质302。如果事务是写,则数据被写入到介质302。如果事务是读,则数据被准备、映射到源服务器、封装并通过以太网隧道传输。事务完成到达源操作系统102。在常规系统中,这些步骤将要求软件介入以便处理存储请求、数据格式化以及网络访问。如所示,所有这些复杂的软件步骤都被避免。
参考图9,作为如贯穿本公开描述的融合解决方案300的一个实施例,提供了控制器卡902的架构的简化框图。控制器卡902可以是例如标准的、全高的、半高的PCIe卡,诸如Gen3 x16卡。然而,非标准卡大小是可接受的,优选地被定大小使得其可以安装到各种类型的作为目标的机箱中。PCIe形状因数限制在PCB上使用的堆叠和层。
控制器卡902可被用作商品机箱(诸如2RU 4节点机箱)上的附加卡。机箱的每个节点(被称作滑轨)通常是1RU和6.76”宽的。母板通常可在背面附近提供PCIe Gen3 x16连接器。可使用转接卡来允许将控制器卡902安装在母板的顶部上;因此,卡与母板之间的空隙可限于大致在槽宽上。
在实施例中,由PCIe连接器供应的最大功率是75W。控制器卡902可消耗约60W或更少。
机箱可以提供好的气流,但是卡应预期环境温度中的10C上升,因为在本示例中空气将被双Xeon处理器和16个DIMM加温。对于大部分服务器而言的最大环境温度是35C,因此控制器卡902处的气温在某些情况下将可能是45C或更高。可将定制的散暖器和暖挡板视为暖解决方案的部分。
在图9中描绘的控制器卡902的实施例中存在两个FPGA,数据路径FPGA或数据路径芯片904以及联网FPGA或联网芯片908。
数据路径芯片904提供通过PCIe连接器110到主机计算机102的连通性。从主机处理器的观点出发,控制器卡902看起来像多个NVMe设备。数据路径芯片904将NVMe桥接到标准SATA/SAS协议,并且在本实施例中通过SATA/SAS链路而控制多达六个外部盘驱动。请注意,SATA支持达到6.0Gbps,而SAS支持达到12.0Gbps。
联网芯片908将NIC设备118和eCPU 1018的两个10G以太网端口切换成两个外部10G以太网端口。其还包含供在虚拟化中使用的大量数据结构。
主机102的母板通常提供PCIe Gen3 x16接口,其可以被划分成Intel芯片组中的两个单独PCIe Gen3 x8总线。PCIe Gen3 x8总线110中的一个被连接到Intel NIC设备118。第二PCIe Gen3 x8总线110被连接到PLX PCIe交换机芯片1010。交换机芯片1010的下游端口被配置为两个PCIe Gen3 x8总线110。总线110中的一个被连接到eCPU,而第二个被连接到数据路径芯片904。
数据路径芯片904将外部存储器用于数据存储。单x72 DDR3通道1012应提供对于大部分情况而言足够的带宽。联网芯片908也将外部存储器用于数据存储,并且单x72 DDR3通道对于大部分情况而言很可能是足够的。另外,数据结构要求使用非易失性存储器,诸如提供高性能和足够密度的存储器,诸如非易失性DIMM(NVDIMM),其通常具有内置电力开关电路和超级电容器,作为用于数据保持的储能元件。
eCPU 1018使用两组接口与联网908通信。其具有用于类NVMe的通信的PCIeGen2x4接口。eCPU 1018还具有诸如通过其L2交换机连接到联网芯片908的两个10G以太网接口。
将贯穿两个芯片904、908的内部设计使用AXI总线1020(ARM芯片组的总线规范)。为了允许数据路径芯片904与联网芯片908之间的无缝通信,AXI总线1020被用于芯片至芯片连接。可使用 Xilinx Aurora™协议、串行接口作为物理层。
对FPGA配置的关键要求是(1)数据路径芯片904必须在PCIe配置开始之前就绪(QSPI闪存(具有四SPI总线接口的串行闪存)可以足够快)和(2)芯片优选地是现场可升级的。用于配置的闪存优选地大到足以存储配置位流的至少3个拷贝。位流指的是由Xilinx™FPGA所使用的配置存储器模式。位流通常被存储在非易失性存储器中并被用来在初始通电期间配置FPGA。eCPU 1018可以被提供有用以读和写配置闪存的设施。新位流可驻留在主机102的处理器。安全和认证可由eCPU 1018在尝试将闪存升级之前处理。
在联网子系统中,控制器卡902可处理主机处理器与外面世界之间的所有网络业务。联网芯片908可拦截来自NIC 118和外部的所有网络业务。
本实施例中的Intel NIC 118将两个10GigE、XFI接口1022连接到联网芯片908。嵌入式处理器将做同样的事情。联网芯片908将执行L2交换功能并将以太网业务路由出到两个外部10GigE端口。类似地,传入的10GigE业务将直接地到NIC 118、eCPU 1018或联网芯片908的内部逻辑。
控制器卡902可将SFP+光连接器用于两个外部10G以太网端口。在其他实施例中,卡可使用外部PHY和RJ45连接器来支持10GBASE-T;但是可能需要单独的卡,或者可能需要定制的切换卡布置以允许SFP+与RJ45之间的切换。
外部端口和光学件的所有管理(包括LED的操作)可被联网芯片908控制。因此,诸如PRST、I2C/MDIO等的信号可被连接到联网芯片908而不是NIC 118。
在存储子系统中,数据路径芯片904可直接地驱动小型SAS HD连接器。在诸如图10中描绘的实施例中,信号可被设计成以12Gbps操作以支持最新的SAS标准。
为了提供板空间的高效使用,可使用两个x4小型SAS HD连接器。全部的八组信号可被连接到数据路径芯片904,即使在任何一个时间可能只有六组信号被使用。
在机箱上,可使用高速铜线缆来将小型SAS HD连接器连接到母板。小型SAS HD连接器的放置可考虑到各种机箱的物理空间和线缆的布线。
到控制器卡902的功率可由PCIe x16连接器供应。不需要使用外部电力连接。根据PCIe规范,PCIe x16连接器可在上电之后供应仅多达25W的功率。控制器卡902可被设计成使得其直到PCIe配置之后汲取小于25W。因此,可能需要在初始上电之后将多个接口和组件保持在复位中。连接器可在配置之后供应多达75W的功率,其可被布置成使得75W被分离在3.3V和12V导轨(rail)之间。
图10示出了软件栈1000,其包括用以对接到融合解决方案300(诸如由FPGA 800使能的融合解决方案300)的驱动1002。NVMe控制器1004是服务于NVMe控制器的功能并向主机分配虚拟设备1012的硬件(例如,FPGA 800)的功能的集合。在图10中,dev1、dev2、dev3分别是被动态地分配给容器1018 LXC1、LXC2以及LXC3的虚拟设备1012的示例。NVMe至SATA桥接器1008是将虚拟设备1012(dev1、dev2、dev3)转换并映射到存储设备302(例如,图中的SSD)的硬件子系统(例如,FPGA 800)的部分。连接1010是提供SATA连接(除了上文记载的其他可能的连接选项之外)的硬件系统的部分。以太网链路120,其可以使用存储隧道传输协议将虚拟设备1012(即dev1、dev2、dev3)暴露给经由以太网链路120连接的(一个或多个)其他主机102。PCI-E(NVMe驱动)1002可对用于存储侧的硬件子系统进行编程和驱动。该驱动1002可在主机上作为操作系统(例如本示例中的Linux OS)的部分运行。块层1014可以是Linux操作系统的常规SCSI子系统,其可与融合解决方案PCIe驱动1002对接以使虚拟存储设备1012暴露。容器1018(LXC1、LXC2、LXC3)可请求并被动态地分配虚拟存储设备1012(分别地分配dev1、dev2和dev3)。
图11至15示出了首先在缺少融合解决方案300的情况下且然后在存在此类融合解决方案300的情况下的应用容器1018(例如,Linux容器)跨多个系统102的移动的示例。图11示出了具有主控OS/管理程序栈108中的虚拟化软件的常规存储控制器112和网络控制器118的两个常规计算机系统102的示例。计算机系统1(C1)具有与图1中所示的配置类似的配置,具有CPU、存储器及常规存储控制器112和网络控制器118。系统运行操作系统108(诸如Linux™、Microsoft Windows™等)和/或管理程序软件(诸如Xen、VMware等)以自然地(natively)或通过虚拟化环境(诸如经由虚拟机或容器)为多个应用提供支持。在该计算机系统102中,应用App1 1102在虚拟机VM1 1104内部运行。应用App2 1108和App3 1112分别地在虚拟化容器LXC1 1110和LXC2 1114内运行。除这些之外,应用App4 1118自然地通过操作系统108运行。虽然通常实际场景可能仅具有虚拟机或容器或本机应用(并非全部三个),但在这里以组合方式故意地将其描绘成涵盖虚拟化环境的所有情况。计算机系统2(C2)102具有分别地在容器中和自然地支持App5和App6的类似配置。这些应用中的每个相互独立地访问其存储设备302,即App1使用S1、App2使用S2等。这些存储设备302(指定为S1-S6)不限于是独立的物理实体。其可以在被认为必要时在逻辑上从一个或多个物理存储元件切分出来。如可以看到的(用从每个存储设备302至应用的箭头表示),存储302与应用1102、1108、1112、1118之间的数据流在其到达应用之前通过存储控制器112和操作系统/管理程序栈108,引起结合图1描述的挑战。
参考图12,当应用或容器从C1移动至C2时,其相应存储设备也需要被移动。可能由于如下事实而需要移动: C1可能在一段时间内诸如由于现有应用(App1-App4)内的行为改变而用完了用以支持这些应用的资源(诸如CPU、存储器等)。
通常,只要应用状态和存储设备在大小方面合理,在合理的时间量内实现移动更容易。通常,存储密集的应用可使用大量(例如,几万亿字节)存储,在该情况下,在可接受的时间量内移动存储302可能是实际的。在那个情况下,存储可继续停留在其所在的地方,并且将采取软件级分路/隧道传输来远程地访问存储,如图13中所示。
如图13中所示,App2 1108在其移动至计算机系统C2之后通过穿过系统C1和C2两者的操作系统或管理程序108来继续访问位于计算机系统C1上的其原始存储S2。这是因为由在主CPU内运行的操作系统或管理程序软件栈108完成通过网络控制器118到该存储控制器112及其附着存储设备302的存储访问的映射。
如图13中所示,在其移动至C2之后,App2 1108通过穿过系统C1和C2两者的操作系统或管理程序108来继续访问位于C1中的其原始存储S2。这是因为由在每个计算机系统的主CPU内运行的操作系统或管理程序软件108完成通过网络控制器118从C2到C1且接着到C1的该存储控制器112的存储访问的映射。
当如图14中所示地应用融合控制器300时考虑类似场景。如可以看到的,该场景与图11几乎相同,除了融合IO控制器300替换了单独的存储控制器112和网络控制器118。在该情况下,当App2 1108连同其容器LXC1仪器移动至C2时(如图15中所示),存储S2不移动,并且通过避免穿过在存在于计算系统C1中的主CPU中运行的任何软件(操作系统、管理程序108或任何其他)来优化访问。
因此,在本文中提供了绕过存储设备位于的主CPU的新型方式,这进而(a)允许在跨多个计算机系统访问存储中显著地减少等待时间和带宽,并且(b)大大地简化并改善其中需要使应用从其存储位于其上的机器移开的情况。
以太网在最好的努力的基础上运转,并且因此本质上是有损的且突发的。任何分组都可能被永远丢失或缓冲并连同其他分组以突发且被延迟的方式递送。虽然典型的以存储为中心的应用对损失和突发是敏感的,但重要的是何时通过以太网来发送存储业务。
通过其总线/网络的常规存储访问涉及可靠且可预测的方法。例如,光纤通道网络采用基于信用的流控制来限制由最终系统做出的访问的数量。并且给予最终系统的信用的数量基于存储设备是否具有足够的命令缓冲器以在满足所要求的等待时间和带宽需要的可预测时间量中接收和满足存储请求。下图示出了由不同类型的总线(诸如SATA、光纤通道(FC)、SCSI、SAS等)所采用的某些信用方案。
参考图16,以太网在最好的努力的基础上运转,并且因此趋向于是本质上有损的且是突发的。任何分组都可能被永远丢失或者缓冲并连同许多其他分组以延迟的方式在引发拥塞的突发中被递送。典型的以存储为中心的应用对损失和突发是敏感的,因此当通过总线和以太网来发送存储业务时重要的是那些涉及用于维持完整性的可靠且可预测的方法。例如,光纤通道网络按照惯例采用基于信用的流控制来限制在任何一个时间由最终系统做出的访问的数量。给予最终系统的信用的数量可以基于存储设备302是否具有足够的命令缓冲器以在满足所要求的等待时间和带宽要求的可预测时间量中接收和满足存储请求。图16示出了由不同类型的总线(诸如SATA总线1602、光纤通道(FC)1604以及SCSI/SAS连接1608)所采用的除了其他类型的此类方案之外的某些信用方案。
如可以看到的,例如,FC控制器1610可在将存储命令发送到基于FC的存储设备1612之前使其自己的缓冲达到“N”个存储命令的极限,但是FC设备1612可能具有不同的缓冲极限,在本示例中例如“M”,其可以大于、等于或小于“N”。典型的基于信用的方案使用目标级(在本示例中,存储设备302中的一个(诸如FC设备1602)是目标)聚合信用,关于所述信用的信息被传播到尝试访问目标302的各种源(在本示例中,控制器(诸如FC控制器1610)是源)。例如,如果两个源正在访问具有“N”的队列深度的目标,则给予源的信用的和将不超过“N”,使得在任何给定时间,目标将不接收到超过“N”个命令。源之间的信用的分配可以是任意的,或者其可基于各种类型的策略(例如,基于成本/定价、SLA等的优先次序)。当服务于队列时,通过满足命令请求,可酌情在源处补充信用。通过遵守该类型的基于信用的存储访问,可以避免将由目标处的队列被埋没(overwhelm)引起的损失。
通过以太网(诸如FCOE iSCSI等)的典型存储访问可将面向目标、基于信用的命令履行扩展至通过以太网链路的传送。在该情况下,其可以是面向目标设备的而不是面向源的。在本文中提供了新的基于信用的方案,其可以代之以基于哪一或什么种类的源应得到多少信用。例如,直接地将网络对接到存储的上文描述的融合解决方案300可采用复用器来将面向源、基于信用的调度方案映射到面向目标设备、基于信用的方案,如图17中所示。
如图17中所示,四个源位于以太网上,并且存在两个目标存储设备302。典型的面向目标、基于信用的方案将使两个队列(每个目标一个)或每个源的两个连接暴露于每个目标。代之以,如图17中所示,队列(Q1、Q2、Q3、Q4)1702在每个源的基础上,并且其被跨(一个或多个)复用器1708而映射/复用到两个面向目标的队列(Q5、Q6)1704。通过采用此类面向源、基于信用的方案,可独立于目标存储设备302的数量而保证访问带宽和可预测的访问等待时间。作为示例,一种类型的复用是确保Q1的队列大小“P”不超过Q5和Q6的“L+M”,使得Q1不被其源所埋没。
在实施例中,描述了用以提供对来自存储设备302的数据块的访问的方法和系统。特别地,描述了一种用以允许应用访问其数据、满足特定的一组访问要求的新型方法。
如本文所使用的术语“应用驱动的数据存储”(ADS)包含在应用的数据如何被存储、访问、传送、高速缓存和递送给应用方面向任何应用提供透明性的存储。ADS可允许应用控制这些单独的阶段以解决特定应用的特定需要。作为示例,应用可能由其本身的多个实例以及跨越跨网络的多个Linux节点散布的多个过程组成。这些过程可能在其之间以共享或排他的方式访问多个文件。基于应用想要如何处理这些文件,这些过程可能想要更频繁地访问文件的不同部分,可能需要快速访问或使用一次并丢弃。基于这些准则,其可能想要预取和/或保持高速缓存和/或贮存器的不同层中的文件的特定部分,用于在每个会话或每个文件基础上的立即访问,如其希望的那样。这些应用特定的要求不能被以一般方式满足,诸如整个文件系统的盘分条、预读连续块的预取、保留服务器中的物理存储器或者文件内容的基于LRU或FIFO的高速缓存。
应用驱动的数据存储I/O不可单独简单地应用于存储实体。其以若干方式影响整个存储栈。第一,其影响其中应用正在运行的计算节点中的存储I/O栈,包括由联网硬件和软件提供的Linux寻呼系统、缓冲、底层文件系统客户端、TCP/IP栈、分类、QoS处理和分组排队。第二,其影响将应用节点及其存储互连的联网基础设施,包括以太网段、最佳路径选择、交换机中的缓冲、等待时间敏感存储业务的分类和QoS处理以及与存储I/O相关的内爆问题。并且,其在文件方面影响存储和维持数据的存储基础设施,包括底层文件布局、冗余、访问时间、各种类型的存储之间的分层以及远程储存库。
本文中公开的方法和系统包括涉及影响应用节点内的典型应用的元素和融合解决方案300可如何改变现状以解决应用的某些关键要求的方法和系统。
常规Linux栈可由简单的构造块、此类一般存储器分配、过程调度、文件访问、存储器映射、页面高速缓存等组成。虽然这些对于应用在Linux上运行而言是必不可少的,但这对于输入/输出(IO)密集的某些种类的应用(诸如NoSQL)而言并不是最佳的。NoSQL应用是非常IO密集的,并且更难以以一般方式预测其数据访问。如果应用必须被部署在实用计算环境中,则对于Linux而言提供这些构造块的一般最低程度的实现是不理想的。优选的是使这些构造块是高度灵活的且具有可以从(一个或多个)应用可控制的应用相关特征。
虽然每个应用具有其自己的特定要求,但在示例性实施例中,应用的NoSQL类具有以下要求:其在通过Linux栈寻址时可以大大地提高NoSQL应用及其他IO密集应用的性能。要求首先是文件级别优先次序的使用。Linux文件系统应在最低限度上提供不同文件之间的访问级别优先次序。例如,应用进程(由多个线程组成)访问两个不同的文件,其中一个文件被给予比另一个高的优先次序(诸如比另一个高的一个数据库/表格/索引)。这将使得能够基于被访问的数据而优选地利用的宝贵的存储I/O资源。将争辩的是这可以通过运行以较高或较低优先次序运行的一个线程/进程来间接地解决,但是那些进程级别优先次序未被传送到文件系统或存储组件上。进程或线程级别优先次序仅仅意图用于利用CPU资源。而且,可能的是同一线程可能访问这两个文件,并且因此将基于什么数据(文件)被访问而以两个不同的级别利用存储资源。第二,可存在对访问级别偏好的要求。Linux文件系统可在文件(打开的文件)的会话期间提供各种偏好(主要是SLA),诸如文件会话之间的优先次序、块的缓冲量、各种块的保持/寿命时间偏好、针对资源阈值和竞争的提醒以及性能统计。作为示例,当诸如MongoDB或Cassandra之类的NoSQL应用将具有用于写和读的两个或更多线程时,其中如果写可能必须被相比于读给予偏好,则用于写的文件会话可能必须被相比于用于同一文件的读的文件会话被给予偏好。该能力使得同一文件的两个会话能够具有两个不同的优先次序。
许多NoSQL应用将不同类型的数据存储到同一文件中;例如,MongoDB将用户集合以及(b树)索引集合存储在同一组数据库文件中。MongoDB可能想要将索引页(b树和集合)优先于用户集合页保持在存储器中。当这些文件被打开时,MongoDB可能想要影响Linux、文件和存储系统以根据MongoDB策略来处理页面,与在不知道应用的要求的一般FIFO或LRU基础上处理这些页面相反。
资源提醒和性能统计使得NoSQL数据库能够理解底层文件和存储系统的行为,并且可以因此服务于其数据库查询或将被执行的触发动作,诸如数据库的分片或针对在同一主机中运行的其他作业(诸如备份、分片、服务的编号读/写查询等)的文件I/O偏好的减少/增加。例如,关于IOP和等待时间的最小、最大和平均数以及在给定时间段内进出(thrashin and out)主机存储器的前十个候选页面的性能说明将使得应用能够动态地微调它本身,调整上面记载的参数。
还可存在用于高速缓存偏好和对偏好进行分层的要求。Linux文件系统可能需要在应用访问其文件的同时具有动态可配置的高速缓存策略。当前,Linux文件系统通常预取文件的连续块,希望应用以比如流的连续方式读文件。虽然对于比如web服务器和视频流式传输器之类的许多传统应用而言是正确的,但新兴的NoSQL应用并不严格地遵循连续读。这些应用随机地读块。作为示例,MongoDB以b树形式将文档密钥存储在索引表中,在文件的一部分上平面布局,其在密钥被搜索时随机地访问块直至其将密钥定位为止。而且,这些文件并未单独地专用于此类基于b树的索引表。这些文件在诸如用户文档和系统索引文件之类的各种类型的表格(集合)之间被共享。由于这,Linux文件系统不能预测文件的什么部分需要被高速缓存、提前读、换出用于高效的存储器使用等。
在本文中描述的方法和系统的实施例中,在其对存储的要求中存在跨各种应用的公共线程。特别地,在需要的特定时间和位置处用于特定类型的数据的等待时间和IOP对这些应用的性能是非常有影响的。
例如,为了解决上面列出的主机级要求,在本文中公开了用于良好地微调的文件系统客户端的方法和系统,所述文件系统客户端使得应用能够根据主机内和在别处的偏好来完全影响和控制数据的存储、检索、保持和分层。
如图18中所示,文件系统(FS)客户端1802保持用于文件(fd1和fd2)的单独会话的单独缓冲池。其还为每个应用或进程集合预分配和维持聚合存储器池。可由应用在其中文件I/O被执行的进程/线程内内部地或者从另一组进程外部地运用SLA代理 1804,以影响FS客户端1802以动态地提供适当的存储I/O SLA。从外部进程控制SLA在没有这些较新的存储控制特征的知识的情况下使能传统应用,而直接不修改应用本身。
本文中公开的方法和系统可为跨网络和主机的数据检索提供广泛的(extensive)分层服务。如在下文中的图19中可看到的,高性能分布式文件服务器(DFS)1902使得应用能够以容器化形式在平台1904中运行以确定并执行文件的什么部分应动态地以高速缓存形式存储形式驻留在哪些介质(DRAM、NVRAM、SSD或HDD)中。这些应用容器1908可以确定其他存储策略,诸如文件是否也必须被分条、镜像、搜捕和灾难恢复(DR)。
本文中公开的方法和系统还提供了广泛的高速缓存服务。其中高性能DFS 1902中的应用容器可以从本地存储和/或远程位置前摄地(proactively)检索文件的特定页面并将这些页面推送到特定位置,用于在稍后需要时的快速检索。例如,该方法和系统可检索运行应用的主机的本地存储器和SSD使用,并将应用感兴趣的页面前摄地推送到这些主机的本地存储器/SSD中的任何中。该方法和系统可在子DFS平台1904中使用出于该目的提供的存储器、SSD和HDD的本地层,用于在其需要的稍后时间由应用进行非常低的等待时间检索。
跨应用的主机扩展高速缓存的使用是无限的。例如,在MongoDB中,当工作集合瞬时地增长超过其本地主机的存储器时,颠簸发生,并且其显著地降低查询处理性能。这是因为当所需的文件数据页被丢弃以便带入新页面以满足查询且随后在必须将原始页面带回来的情况下,系统必须从盘子系统重新读页面刷新时,从而招致完成查询中的巨大等待时间。应用驱动的存储访问通过将丢弃页面的高速缓存瞬时地保持在网络中的别处(在另一应用主机的存储器/SSD中或者在高性能DFS系统1902的存储的本地层中)直至MongoDB再次要求页面为止并且从而显著地减少完成查询中的等待时间来帮助这些种类的场景。
参考图20,高性能DFS 1902在单个、统一的基于RAM和SSD的层/高速缓存2002中跨应用主机利用DRAM和SSD资源,以便在必要时并如由应用影响和控制的那样高速缓存和服务应用数据。
如图21中所示,在本文中公开了由一组主机(H1至HN)、文件或块服务器2102和存储子系统2104组成的系统。主机H1-H通常是运行需要对被永久地或瞬时地存储在贮存器中的数据的访问的应用的计算机。文件或卷服务器2102可以是数据组织器和数据服务器,通常运行包括中央处理单元(CPU)、存储器和用以连接到诸如联网和存储设备之类的外部设备的专用硬件的硬件。文件或卷服务器2102在被称为块的多个固定或可变数量的字节方面组织用户数据。其将这些数据块存储在内部或外部贮存器中。随机但逻辑上相关的块序列被组织成文件或卷。一个或多个主机H1-HN可以通过应用编程界面(API)或任何其他协议来访问这些文件或卷。文件或卷服务器可以向一个或多个主机提供一个或多个文件和卷。应注意的是主机和文件或卷服务器可以在被直接地或者通过网络连接的两个不同物理实体中,或者其可以在逻辑上一起位于单个物理计算机中。
存储器2104可以是能够瞬时地或永久地保持数据片的实体的集合。这通常包括静态或动态随机访问存储器(RAM)、固态贮存器(SSD)、硬盘驱动(HDD)或所有这些的组合。贮存器可以是通过链路或网络连接到文件或卷服务器2102的独立物理实体。其还可以被与文件或卷服务器2102集成在单个物理实体中。因此,主机H1-HN、文件或卷服务器2102和贮存器2104可以在物理上共同位于单个硬件实体中。
如图22中所示,主机通常由多个逻辑实体组成。应用2202通常在主机中运行并将通过由其本地操作系统2204或替代其的任何其他实体提供的API来访问其数据元素。操作系统2204通常具有标准API接口以通过其文件系统客户端2206对接到文件系统。文件系统客户端2206是在主机内运行以与位于远程或本地的文件或卷服务器2210对接的软件实体。其将通过从文件或卷服务器2210检索应用2202所需的数据元素(存在于单个或多个文件或卷中)并将其保持在主机的存储器2208中直至应用完成其对数据元素的处理来提供所述数据元素。在典型的应用场景中,特定的数据片将根据要求被读和/或修改多次。在某些类型的应用中,由多个数据元素组成的整个文件或卷潜在地比本地存储器2208的大小大得多也是典型的。这使得操作系统2204和文件系统客户端2206在其实现中更复杂,以便基于应用2202在未来可能或者可能不访问数据块的预测来决定什么数据块将被保持在存储器2208中或从存储器2028驱逐。到目前为止,现有的实现执行某些一般的和应用无关的方法,诸如先进先出(FIFO)或最近最少使用(LRU),以保持或驱逐存储器中的数据块以便从文件或卷服务器2210带入新的数据块。而且,当被数据块占用的存储器将被收回以便存储另一数据块时,原始数据被简单地擦掉而不考虑其未来使用。正常地,盘子系统是非常缓慢的,并且当数据块被从其读并被文件或卷服务器2210传送到文件系统客户端2206至存储器2208时招致高的等待时间。因此,当原始数据块被擦除时,应用可能必须等待更长时间,如果其尝试在近期访问原始数据的话。关于该种类的实现的主要问题是数据访问路径中的模块(即操作系统2204、文件系统客户端2206、存储器2208、块服务器2210和贮存器)中没有一个具有什么数据块将被应用2202访问、数据块何时将被应用2202访问以及数据块将被应用2202多么频繁访问的任何知识。
在图23中示出了描绘从贮存器2212访问数据块的应用2202的示例场景。被编号的圆圈示出在访问数据块的过程中涉及的步骤。下文解释这些步骤。第一,应用2202使用文件或操作系统2204的API来访问数据块。操作系统2204调用用于文件系统客户端2206的等价API以对其进行访问。第二,文件系统客户端2206尝试找到数据是否存在于专用于此目的的其本地存储器缓冲器中。如果找到,则跳过下面的步骤(3)至(7)。第三,发送用以从块服务器2210检索数据的命令。第四,块服务器2210向贮存器2212发送用以从贮存器读数据块的读命令。第五,贮存器2212在从贮存器读数据块之后将其返回到块服务器2210。第六,块服务器2210将数据块返回到文件系统客户端2206。第七,文件系统客户端2206将数据保存在存储器2208中的存储器缓冲器中以用于任何未来访问。第八,文件系统客户端2206将所请求的数据返回到应用2202。
在本文中公开的方法和系统中,为了解决与由在NoSQL和大数据领域中的最新类别的应用进行的数据访问相关的性能要求,已提出由任何应用2202控制数据块访问中的组件,其包括操作系统2204、文件系统客户端2206、存储器2208、块服务器2210和贮存器2212。即,我们提出以下各项。第一,使得操作系统2204能够提供附加API以允许应用控制文件系统客户端2206。第二,增强文件系统客户端2206以支持以下各项:(a)允许应用2202针对特定的文件或卷在存储器2208中创建专用存储器池,在该意义上,文件或卷将具有专用的存储器缓冲器池以保持出于其他文件或卷的目的而未被共享或移除的特定于其的数据;(b)允许应用2202针对具有文件或卷的特定会话在存储器2208中创建专用存储器池,使得具有文件或卷的两个独立会话将具有独立的存储器缓冲器来保持其数据。作为示例,关键重要的文件会话可在存储器2208中具有大量存储器缓冲器,使得该会话可以利用更多被呈现的数据用于更快且频繁的访问,而具有同一文件的第二会话可被分配非常少的缓冲器,并且因此其可能必须招致更多延迟和用以访问文件的各种部分的其缓冲器的再使用;(c)允许应用2202创建跨其他主机或块服务器2210的超出存储器2208的扩展缓冲器池用于更快的访问。这使得能够将数据块保持在其他主机的存储器2208以及存在于文件或块服务器2210中的任何存储器2402中;(d)允许应用2202使得任何数据块相对于用于文件、卷或会话的其他数据块而言在存储器2208中更加持久。这允许应用挑拣和选择将始终可用于立即访问的数据块且不让操作系统2204或文件系统客户端2206基于其自己的驱逐策略将所述数据块驱逐;以及(e)允许应用2202使得任何数据块相对于用于文件、卷或会话的其他数据块而言在存储器存储器2208中不那么持久。这允许应用让操作系统2204和文件系统客户端2206随着和在其选择时驱逐和再使用数据块的缓冲器。这帮助将其他正常数据块保持达更长的时间段。第三,使得块服务器2210能够用以下能力如图24中所示地在应用容器2400方面主控应用特定的模块:(a)使得应用容器2400能够提前获取应用2202感兴趣的数据块并将其存储在本地存储器2402中用于稍后的快速访问,并避免与贮存器2212相关联的等待时间损失和(b)使得能够将从主机的存储器2208驱逐的页面存储在本地存储器2402中以用于由应用2202进行的任何稍后访问。
上文的应用驱动的特征(2)(c)需要进一步解释。存在两个场景。第一个涉及从块服务器2210的存储器检索数据块。另一场景涉及从另一主机检索该数据块。假设已由两个主机(H1)和(H2)从贮存器2212读完全相同的数据块,本文中公开的方法和系统提供诸如在图25中描绘的系统。当注意到数据块存在于另一主机(H2)中时,其被文件系统客户端2206从所述主机(H2)直接地检索而不是要求块服务器2210将其从贮存器2212检索所述数据块,那将更慢并招致高等待时间。
在实施例中,如果文件系统客户端2206由于在其地点上存储更重要的数据块而决定将数据块从(D1)驱逐,则文件系统客户端2206可以将被驱逐数据块发送到文件系统客户端2206'以代表其被存储在存储器2208'中。
应注意的是上面提及的技术可以在主机的(一个或多个)故障的情况下被应用于实现快速的失效转移。更进一步地,上述高速缓存技术、尤其是关于RAM的高速缓存技术可以被用来用暖高速缓存实现失效转移。图25示出了用暖高速缓存的快速失效转移系统的示例。最终结果是在节点的故障期间,新节点上的最终应用将不在(RAM中的)高速缓存变暖之前经受一段时间并从而招致一定时段的较低应用性能。
在本文中提供了具有带有应用特定模块以根据应用的需要来控制存储访问的的文件服务器和处理器的系统和方法。
在本文中还提供了具有使得应用特定模块能够根据应用的需要来控制存储访问的处理器和数据(组成固定大小字节的块、具有可变字节数的类似或不同对象)存储器的系统和方法。
在本文中还提供了一种系统和方法,其从主机的存储器和/或其瞬时或永久存储元件检索出于应用使用的目的而预先保持的旧文件或存储数据块,并将其存储在另一主机的存储器和/或其瞬时或永久存储元件中,以供应用在稍后的时间使用。
在本文中还提供了一种系统和方法,其从主机的存储器和/或其瞬时或永久存储元件检索出于应用使用的目的而预先保持的任何文件或存储数据块,并将其存储在另一主机的存储器和/或其瞬时或永久存储元件中,以供应用在稍后的时间使用。
在本文中还提出了一种系统和方法,其出于减少数据访问的等待时间的目的而利用主机的存储器和/或其瞬时或永久存储元件来存储随后将被在另一主机中运行的应用访问的任何文件或存储数据块。
出于应用使用的目的而预先保持的任何文件或存储数据块可被存储在另一主机的存储器和/或其瞬时或永久存储元件中,以供应用在稍后的时间使用。
通过网络将出于应用使用的目的而预先保持的文件或存储数据块从主机的存储器和/或其瞬时或永久存储元件传输到另一主机的机制。
根据各种示例性且非限制性实施例,公开了一种设备,该设备包括融合输入/输出控制器,其包含物理目标存储介质控制器、物理网络接口控制器和存储介质控制器与网络接口控制器之间的网关,其中网关提供用于存储介质控制器与网络接口控制器之间的存储业务和网络业务的直接连接。
根据某些实施例,所述设备还可以包括虚拟存储接口,其将被存储介质控制器控制的存储介质呈现为本地附着存储,不管存储介质的位置如何。根据其他实施例,所述设备还可以包括虚拟存储接口,其将被存储介质控制器控制的存储介质呈现为本地附着存储,不管存储介质的类型如何。根据其他实施例,所述设备还可以包括促进存储介质的动态提供的虚拟存储接口,其中物理存储可以是本地的或远程的。
根据其他实施例,所述设备还可以包括促进存储介质的动态提供的虚拟网络接口,其中物理存储可以是本地的或远程的。根据其他实施例,所述设备可适合于作为控制器卡安装在主机计算系统上,特别地,其中网关在没有主机计算系统的操作系统的介入的情况下操作。
根据其他实施例,设备可以包括提供设备的存储功能和网络功能中的至少一个的至少一个现场可编程门阵列。根据其他实施例,设备可被配置为网络部署交换机。根据其他实施例,所述设备还可以包括用于在第一协议与至少一个其他协议之间转换存储介质指令的设备的功能组件。
参考图26,图示了存储设备的虚拟化的示例性且非限制性方法。第一,在步骤2600处,访问对按照第一存储协议的指令进行响应的物理存储设备。第二,在步骤2602中,将指令在第一存储协议与第二存储协议之间转换。最后,在步骤2604处,使用第二协议,将物理存储设备呈现给操作系统,使得物理存储设备的存储可以被动态地提供,不管物理存储设备对使用操作系统的主机计算系统而言是本地的还是远程的。
根据各种实施例,第一协议是SATA协议、NVMe协议、SAS协议、iSCSI协议、光纤通道协议和以太网光纤通道协议中的至少一个。在其他实施例中,第二协议是NVMe协议。
在某些实施例中,所述方法还可以包括提供操作中系统与执行指令在第一和第二存储协议之间的转换的设备之间的接口和/或提供执行指令的转换的设备与远程网络部署存储设备之间的以太网NMVe连接。
参考图27,图示了促进应用和容器中的至少一个的迁移的示例性且非限制性方法。第一,在步骤2700处,提供了融合存储和联网控制器,其中网关在没有主机计算机的操作系统的介入的情况下提供用于设备的存储组件与联网组件之间的用于网络和存储业务的连接。接下来,在步骤2702处,将至少一个应用或容器映射到被融合存储和联网控制器控制的目标物理存储设备,使得当应用或容器移动到另一计算系统时,在没有目标物理存储器被附着到的主机系统的操作系统的介入的情况下,应用或容器可以访问目标物理存储器。
根据各种实施例,迁移是Linux容器或向外扩展应用的。
根据其他实施例,目标物理存储器是使用iSCSI协议、光纤通道协议和以太网光纤通道协议中的至少一个的网络部署存储设备。在其他实施例中,目标物理存储器是盘附着存储设备,其使用SAS协议、SATA协议和NVMe协议中的至少一个。
参考图28,图示了为网络提供服务质量(QoS)的示例性且非限制性方法。第一,在步骤2800处,提供了融合存储和联网控制器,其中网关在没有主机计算机的操作系统的介入的情况下提供用于设备的存储组件与联网组件之间的用于网络和存储业务的连接。接下来,在步骤2802处,在没有主机计算机的操作系统的介入的情况下,管理与在其数据路径中部署了存储和联网控制器的网络相关的至少一个服务质量(QoS)参数,此类管理是基于由融合存储和联网控制器处理的存储业务和网络业务中的至少一个。
虽然仅示出并描述了本公开的几个实施例,但对于本领域的技术人员而言阱显而易见的是在不脱离如在以下权利要求中描述的本公开的精神和范围的情况下可对其进行许多变更和修改。在本文中参考的所有专利申请和专利(国外和国内两者)以及所有其他公开被整体地通过引用结合到本文中至法律允许的最大程度。
本文中描述的方法和系统可部分地或完全地通过在处理器上执行计算机软件、程序代码和/或指令的机器来部署。本公开可被实现为机器上方法、作为机器的部分或相对于机器的系统或装置或者作为在机器中的一个或多个上执行的计算机可读介质中所体现的计算机程序产品。在实施例中,处理器可以是服务器、云服务器、客户端、网络基础设施、移动计算平台、固定计算平台或其他计算平台的部分。处理器可以是能够执行程序指令、代码、二进制指令等的任何种类的计算或处理设备。处理器可以是或者可以包括信号处理器、数字处理器、嵌入式处理器、微处理器或任何变体,诸如协处理器(数学协处理器、图形协处理器、通信协处理器等)等,其可直接地或间接地促进存储在其上面的程序代码或程序指令的执行。另外,处理器可使得能够执行多个程序、线程以及代码。该线程可被同时地执行以增强处理器的性能并促进应用的同时操作。通过实现,可在一个或多个线程中实现本文中描述的方法、程序代码、程序指令等。该线程可衍生出其他线程,其可具有与之相关联的分配优先次序;处理器可基于优先次序或者基于在程序代码中提供的指令的任何其他顺序来执行这些线程。处理器或利用处理器的任何机器可以包括存储如在本文中和别处所述的方法、代码、指令和程序的非瞬时存储器。处理器可通过可接口来访问存储如在本文中和别处所述的方法、代码以及指令的非瞬时存储介质。用于存储方法、程序、代码、程序指令或能够被计算或处理设备执行的其他类型的指令的与处理器相关联的存储介质可以包括但不限于CD-ROM、DVD、存储器、硬盘、闪速驱动、RRAM、ROM、高速缓存等中的一个或多个。
处理器可以包括可增强多处理器的速度和性能的一个或多个核。在实施例中,处理器可以是双核处理器、四核处理器、将两个或更多独立的核(称为管芯)组合的其他芯片级多处理器等。
本文中描述的方法和系统可部分地或完全地通过在服务器、客户端、隔火墙、网关、集线器、路由器或其他此类计算机和/或网络硬件上执行计算机软件的机器来部署。软件程序可与服务器相关联,该服务器包括文件服务器、打印服务器、域服务器、因特网服务器、内部网服务器、云服务器以及其他变体,诸如辅助服务器、主机服务器、分布式服务器等。服务器可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信设备以及能够通过有线或无线介质等访问其他服务器、客户端、机器以及设备的接口中的一个或多个。如在本文中和别处所述的方法、程序或代码可被服务器执行。另外,执行如在本申请中所述的方法所需的其他设备可被视为与服务器相关联的基础设施的部分。
服务器可以提供到其他设备的接口,该设备在没有限制的情况下包括客户端、其他服务器、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器、社交服务器等。另外,此耦合和/或连接可促过程序跨网络的远程执行。在不违背本公开的范围的情况下,某些或所有这些设备的联网可促进一个或多个位置处的程序或方法的并行处理。另外,通过接口被附着到服务器的任何设备可以包括能够存储方法、程序、代码和/或指令的至少一个存储介质。中央储存库可以提供要在不同设备上执行的程序指令。在本实现中,远程储存库可充当用于程序代码、指令以及程序的存储介质。
软件指令可与客户端相关联,该服务器包括文件客户端、打印客户端、域客户端、因特网客户端、内部网客户端、云服务器以及其他变体,诸如辅助客户端、主机客户端、分布式客户端等。客户端可以包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信设备以及能够通过有线或无线介质等访问其他客户端、服务器、机器以及设备的接口中的一个或多个。如在本文中和别处所述的方法、程序或代码可被客户端执行。另外,执行如在本申请中所述的方法所需的其他设备可被视为与客户端相关联的基础设施的部分。
客户端可以提供到其他设备的接口,该设备在没有限制的情况下包括服务器、其他客户端、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器等。另外,该耦合和/或连接可促进程序跨网络的远程执行。在不违背本公开的范围的情况下,某些或所有这些设备的联网可促进一个或多个位置处的程序或方法的并行处理。另外,通过接口被附着到客户端的任何设备可以包括能够存储方法、程序、应用、代码和/或指令的至少一个存储介质。中央储存库可以提供要在不同设备上执行的程序指令。在本实现中,远程储存库可充当用于程序代码、指令以及程序的存储介质。
本文中描述的方法和系统可部分地或完全地通过网络基础设施来部署。网络基础设施可以包括诸如计算设备、服务器、路由器、集线器、防火墙、客户端、个人计算机、通信设备、路由设备和如本领域中已知的其他有源和无源设备、模块和/或部件之类的元件。与网络基础设施相关联的计算和/或非计算设备除其他部件之外还可以包括存储介质,诸如闪存、缓冲器、堆栈、RAM、ROM等。在本文中和别处所述的过程、方法、程序代码、指令可被网络基础设施元件中的一个或多个执行。本文中描述的方法和系统可适合于与任何种类的私人、团体或混合式云计算网络或云计算环境一起使用,包括涉及软件即服务(SaaS)、平台即服务(PaaS)和/或基础设施即服务(IaaS)的特征的那些。
在本文中和别处所述的方法、程序代码以及指令可在具有多个小区的蜂窝网络上实现。该蜂窝网络可以是频分多址(FDMA)网络或码分多址(CDMA)网络。该蜂窝式网络可以包括移动设备、小区站点、基站、重发器、天线、塔架等。蜂窝网络可以是GSM、GPRS 3G、EVDO、网状网络或其他网络类型。
在本文中和别处所述的方法、程序代码以及指令可在移动设备上或通过移动设备来实现。移动设备可以包括导航设备、蜂窝电话、移动电话、移动个人数字助理、膝上计算机、掌上式电脑、上网本、寻呼机、电子书阅读器、音乐播放器等。这些设备除其他部件之外还可以包括存储介质,诸如闪存、缓冲器、ROM、ROM和一个或多个计算设备。可使得与移动设备相关联到计算设备能够执行存储在其上面的程序代码、方法以及指令。替换地,移动设备可被配置成与其他设备相合作地执行指令。移动设备可与跟服务器对接且被配置成执行程序代码的基站通信。移动设备可在端对端网络、网状网络或其他通信网络上通信。程序代码可被存储在与服务器相关联的存储介质上并被嵌入服务器内的计算设备执行。基站可以包括计算设备和存储介质。存储设备可存储被与基站相关联的计算设备执行的程序代码和指令。
可在可以包括以下各项的机器可读介质上存储和/或访问计算机软件、程序代码和/或指令:保持被用于在一定时间间隔内的计算的数字数据的计算机部件、设备以及记录介质;称为随机访问储器(RAM)的半导体储存器;通常用于更持久的存储的大容量储存器,诸如光盘、比如硬盘、磁带、鼓、卡片及其他类型的形式;处理器寄存器、高速缓冲存储器、易失性存储器、非易失性存储器;光学储存器,诸如CD、DVD;可移动介质,诸如闪存(例如USB棒或键)、软盘、磁带、织带、穿孔卡、独立RAM盘、压缩驱动器、可移动大容量储存器、离线等;其他计算机存储器,诸如动态存储器、静态存储器、读/写储存器、可变储存器、只读、随机访问、顺序访问、位置可寻址、文件可寻址、内容可寻址、网络附加存储、存储区域网络、条形码、磁性墨水等。
本文中描述的方法和系统可将物理和/或无形项目从一个状态变换成另一个。本文中描述的方法还可将表示物理和/或无形项目的数据从一个状态变换成另一个。
在本文中(包括直通各图用流程图和框图)描述和描绘的元件暗示元件直接的逻辑边界。然而,根据软件或硬件工程实践,所描绘的元件及其功能可在机器上通过具有处理器的计算机可执行介质来实现,该处理器能够将存储在其上面的程序指令作为单块软件结构、作为独立软件模块或者作为采用外部例程、代码、服务等的模块或者这些的任何组合来执行,并且所有此类实现都可以在本公开的范围内。此类机器的示例可以包括但可不限于个人数字助理、膝上计算机、个人计算机、移动电话、其他手持计算设备、医疗设备、有线或无线通信设备、换能器、芯片、计算器、卫星、平板电脑PC、电子图书、小配件、电子设备、具有人工智能的设备、计算设备、联网设别、服务器、路由器等。进一步地,用流程图或框图描绘的元件或任何其他逻辑部件可在能够执行程序指令的机器上实现。因此,虽然前文的附图和描述阐述了公开系统的功能方面,但不应从这些描述推断用于实现这些功能方面的软件的特定布置,除非明确地叙述或者另外从上下文显而易见。同样地,将领会到的是上文识别和描述的各种步骤可改变,并且步骤的顺序可适应于本文中公开的技术的特定应用。所有此类变化和修改意图落在本公开的范围内。同样地,不应将用于各种步骤的顺序的描绘和/或描述理解成要求用于按下步骤的特定执行顺序,除非特定应用要求或者明确地叙述或者另外从上下文显而易见。
上文描述的方法和/或过程以及与之相关联的步骤可用硬件、软件或适合于特定应用的硬件和软件的任何组合来实现。硬件可以包括通用计算机和/或专用计算设备或特定计算设备或特定计算设备的特定方面或部件。可在一个或多个微处理器、微控制器、嵌入式微控制器、可编程数字信号处理器或其他可编程设备以及内部和/或外部存储器中实现各过程。可同样或代之以在专用集成电路、可编程门阵列、可编程阵列逻辑或可被配置成处理电子信号的任何其他设备或设备组合中体现该过程。将进一步领会到的是可将过程中的一个或多个实现为能够在机器可读介质上执行的计算机可执行代码。
可使用诸如C之类的结构化编程语言、诸如C++之类的面向对象编程语言或者可以被存储、编译或解释以在上述设备中的一个以及处理器的异构组合、处理器架构或不同硬件和软件的组合或者能够执行程序指令的任何其他机器上执行的任何其他高级或低级编程语言(包括汇编语言、硬件描述语言以及数据库编程语言和技术)来创建计算机可执行代码。
因此,在一个方面,可用当在一个或多个计算设备上执行时执行上文所述的方法及其组合的步骤的计算机可执行代码来体现上文所述的方法及其组合。在另一方面,可在执行该方法的步骤的系统中体现该方法,并且可以许多方式跨设备分布,或者可将所有功能集成到专用、独立设备或其他硬件中。在另一方面,用于执行与上述过程相关联的步骤的手段可以包括任何上文所述的硬件和/或软件。所有此类置换和组合意图落在本公开的范围内。
虽然已结合详细地示出并描述的优选实施例公开了本公开,但其各种修改和改进对于本领域的技术人员而言将是显而易见的。因此,本公开的精神和范围不限于前述示例,而是应在法律允许的最宽泛意义上理解。
术语“一”和“一个”和“所述”和类似指示物在描述本公开的上下文中(尤其是在以下权利要求的上下文中)的使用应被理解成涵盖单数和复数两者,除非在本文中另外指明或明显地与上下文矛盾。应将术语“包括”、“具有” 、“包含”和“含有”理解为开放式术语(即,意指“包括但不限于”),除非另外说明。本文中的值范围的叙述仅仅意图充当单独地提及落在该范围内的每个单独值的简写方法(除非在本文中另外指明),并且每个单独值被结合到本文中,如同其在本文中被单独地叙述一样。可以按照任何适当的顺序来执行本文中描述的所有方法,除非在本文中另外指明或者很明显与上下文矛盾。在本文中提供的任何和所有示例或示例性语言(例如"诸如")的使用仅仅意图更好地举例说明本公开,而不对本公开的范围施加限制,除非另外要求保护。不应将本说明书中的语言理解为指示对于本公开的实施而言必不可少的任何未要求保护要素。
虽然本发明的前文编写描述使得普通技术人员能够完成和使用目前被认为是其最佳方式的内容,但普通技术人员将理解并领会到本文中的特定实施例、方法以及示例的变体、组合以及等价物的存在。因此本公开不应受到上述实施例、方法以及示例的限制,而是受到在本公开的精神和范围内的所有实施例和方法的限制。
在本文中参考的所有文献被通过引用结合到本文中。
Claims (27)
1.一种设备,包括:
融合输入/输出控制器,其包括:
物理目标存储介质控制器;
物理网络接口控制器;以及
存储介质控制器与网络接口控制器之间的网关,其中网关提供用于存储介质控制器与网络接口控制器之间的存储业务和网络业务的直接连接。
2.权利要求1的设备,进一步包括虚拟存储接口,其不管存储介质的位置将被存储介质控制器控制的存储介质呈现为本地附着贮存器。
3.权利要求1的设备,进一步包括虚拟存储接口,其不管存储介质的数量或类型将被存储介质控制器控制的存储介质呈现为本地附着贮存器。
4.权利要求1的设备,进一步包括虚拟存储接口,其促进存储介质的动态提供,其中物理存储可以是本地或远程的。
5.权利要求1的设备,进一步包括虚拟网络接口,其促进存储介质的动态提供,其中所述物理存储可以是本地的或远程的。
6.权利要求1的设备,其中设备被适配成作为控制器卡安装在主机计算系统上。
7.权利要求6的设备,其中网关在没有由操作系统、由管理程序或由在主机计算系统的CPU上运行的其他软件的介入的情况下操作。
8.权利要求1的设备,其中设备包括现场可编程门阵列、ASIC以及提供设备的存储功能和网络功能中的至少一个的网络处理器中的至少一个。
9.权利要求1的设备,其中设备被配置为网络部署交换机。
10.权利要求1的设备,进一步包括设备的功能组件,其用于将存储介质指令在第一协议与至少一个其他协议之间转换。
11.一种存储设备的虚拟化的方法,包括:
访问对按照第一存储协议的指令进行响应的物理存储设备;
将指令在第一存储协议和第二存储协议之间转换;以及
使用第二协议,将物理存储设备呈现给操作系统,使得物理存储设备的存储能够被动态地提供,不论物理存储设备对使用操作系统的主机计算系统而言是本地的还是远程的。
12.权利要求11的方法,其中第一协议是SATA协议、NVMe协议、SAS协议、iSCSI协议、光纤通道协议和以太网光纤通道协议中的至少一个。
13.权利要求11的方法,其中第二协议是NVMe协议。
14.权利要求11的方法,进一步包括提供操作系统与执行指令在第一和第二存储协议之间的转换的设备之间的接口。
15.权利要求11的方法,进一步包括提供执行指令转换的设备与远程网络部署存储设备之间的以太网NMVe连接。
16. 一种促进应用、容器以及被存储在目标物理存储设备上的数据中的至少一个的迁移的方法,包括:
提供融合存储和联网控制器,其中网关在不要求在主机计算机的CPU上运行的操作系统、管理程序或其他软件的介入的情况下提供用于设备的存储组件和联网组件之间的网络和存储业务的连接;以及
将至少一个应用或容器映射到由融合存储和联网控制器控制的目标物理存储设备,使得当应用、容器或被存储在目标物理存储设备上的数据被移动到一个或多个其他计算系统时,应用或容器能够在不要求在目标物理贮存器被附着到的主机系统的CPU上运行的操作系统、管理程序或软件的介入的情况下访问目标物理贮存器。
17.权利要求16的方法,其中迁移是Linux容器的。
18.权利要求16的方法,其中迁移是在管理程序中运行的虚拟机的。
19.权利要求16的方法,其中迁移是向外扩展应用的。
20.权利要求16的方法,其中目标物理贮存器是使用iSCSI协议、光纤通道协议和以太网光纤通道协议中的至少一个的网络部署存储设备。
21.权利要求16的方法,其中目标物理贮存器是直接附着存储设备,其使用SAS协议、SATA协议和NVM协议中的至少一个。
22. 一种提供网络的服务质量(QoS)的方法,包括:
提供融合存储和联网控制器,其中网关提供用于设备的存储组件和联网组件之间的网络和存储业务的连接,而没有在主机计算机的CPU上运行的操作系统、管理程序或软件的介入;以及
在没有主机计算机的操作系统的介入的情况下,管理与在其数据路径中部署了存储和联网控制器的网络相关的至少一个服务质量(QoS)参数,此类管理基于由融合存储和联网控制器处理的存储业务和网络业务中的至少一个。
23.权利要求22的方法,其中QoS参数选自由带宽参数、网络等待时间参数、IO性能参数、吞吐量参数、存储类型参数和存储等待时间参数组成的组。
24.权利要求22的方法,其中当由贮存器通过融合存储和网络控制器服务的应用和容器中的至少一个从主机计算机迁移到另一计算机时,QoS被自动地维持。
25.权利要求22的方法,其中当通过融合存储和网络控制器来服务应用和容器中的至少一个的至少一个目标存储设备从第一位置迁移至至少一个第二位置时,QoS被自动地维持。
26.权利要求22的方法,其中安全特征选自由网络业务数据的加密、贮存器中的数据的加密以及网络业务数据和贮存器中的数据的加密组成的组。
27.权利要求22的方法,其中提供了一个或多个存储特征,存储特征选自由压缩、保护级别、RAID级别、存储介质类型、全局重复数据删除以及用于实现恢复点目标(RPO)和恢复时间目标(RTO)中的至少一个的快照间隔组成的组。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201461950036P | 2014-03-08 | 2014-03-08 | |
| US61/950036 | 2014-03-08 | ||
| US201462017257P | 2014-06-26 | 2014-06-26 | |
| US62/017257 | 2014-06-26 | ||
| PCT/US2015/019206 WO2015138245A1 (en) | 2014-03-08 | 2015-03-06 | Methods and systems for converged networking and storage |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106688217A true CN106688217A (zh) | 2017-05-17 |
| CN106688217B CN106688217B (zh) | 2021-11-12 |
Family
ID=54017456
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201580024169.3A Expired - Fee Related CN106688217B (zh) | 2014-03-08 | 2015-03-06 | 用于融合联网和存储的方法和系统 |
Country Status (8)
| Country | Link |
|---|---|
| US (4) | US20150254088A1 (zh) |
| EP (1) | EP3117583A4 (zh) |
| JP (1) | JP2017512350A (zh) |
| KR (1) | KR20160138448A (zh) |
| CN (1) | CN106688217B (zh) |
| AU (2) | AU2015229802A1 (zh) |
| CA (1) | CA2941702A1 (zh) |
| WO (1) | WO2015138245A1 (zh) |
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107688441A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种存储虚拟化的实现方法及装置 |
| CN107734037A (zh) * | 2017-10-19 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种nas集群和数据访问方法 |
| CN108304214A (zh) * | 2017-12-13 | 2018-07-20 | 华为技术有限公司 | 一种立即数的完整性的校验方法及装置 |
| CN108959134A (zh) * | 2017-05-24 | 2018-12-07 | 微软技术许可有限责任公司 | 用于现场可编程门阵列设备的通信 |
| CN109240952A (zh) * | 2018-08-27 | 2019-01-18 | 北京计算机技术及应用研究所 | 一种高速数据加密NVMe-SATA转换器电路 |
| CN109861914A (zh) * | 2017-11-30 | 2019-06-07 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
| CN110362515A (zh) * | 2018-03-26 | 2019-10-22 | 三星电子株式会社 | 驱动器至驱动器存储系统、存储驱动器和存储数据的方法 |
| CN110471627A (zh) * | 2019-08-19 | 2019-11-19 | 北京首都在线科技股份有限公司 | 一种共享存储的方法、系统及装置 |
| CN110781107A (zh) * | 2019-09-16 | 2020-02-11 | 北京领芯迅飞科技有限公司 | 基于dram接口的低延迟融合io控制方法和装置 |
| CN112527193A (zh) * | 2020-12-04 | 2021-03-19 | 北京浪潮数据技术有限公司 | 一种云硬盘数据迁移方法、装置、设备及存储介质 |
| CN112732166A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 访问固态硬盘的方法及装置 |
| CN112948343A (zh) * | 2021-03-25 | 2021-06-11 | 兴业数字金融服务(上海)股份有限公司 | 基于分布式大数据块的海量内容存储系统和方法 |
| CN113497767A (zh) * | 2020-03-20 | 2021-10-12 | 华为技术有限公司 | 传输数据的方法、装置、计算设备及存储介质 |
| CN113821161A (zh) * | 2020-06-19 | 2021-12-21 | 株式会社日立制作所 | 信息处理装置和方法 |
| CN114793214A (zh) * | 2021-01-26 | 2022-07-26 | 三星电子株式会社 | 用于拥塞控制的方法及设备 |
| CN115422284A (zh) * | 2019-08-22 | 2022-12-02 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
| WO2022252898A1 (zh) * | 2021-05-31 | 2022-12-08 | 浪潮(北京)电子信息产业有限公司 | 不同存储协议下的数据交互方法、装置、设备及介质 |
| CN115865803A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种io请求处理方法、装置、设备及可读存储介质 |
| CN116346945A (zh) * | 2021-12-24 | 2023-06-27 | 戴尔产品有限公司 | 经由智能网络接口控制器实现的可信网络协议代理 |
| US11934542B2 (en) | 2020-01-29 | 2024-03-19 | Samsung Electronics Co., Ltd. | Methods and apparatus for offloading encryption |
Families Citing this family (154)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10635316B2 (en) | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
| US11921658B2 (en) | 2014-03-08 | 2024-03-05 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
| US10628353B2 (en) | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
| US9503422B2 (en) * | 2014-05-09 | 2016-11-22 | Saudi Arabian Oil Company | Apparatus, systems, platforms, and methods for securing communication data exchanges between multiple networks for industrial and non-industrial applications |
| US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
| JP6181304B2 (ja) | 2014-06-19 | 2017-08-16 | 株式会社日立製作所 | ストレージ装置およびインタフェース装置 |
| US9934177B2 (en) | 2014-11-04 | 2018-04-03 | Cavium, Inc. | Methods and systems for accessing storage using a network interface card |
| US9853873B2 (en) | 2015-01-10 | 2017-12-26 | Cisco Technology, Inc. | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment |
| US9954936B2 (en) | 2015-03-02 | 2018-04-24 | International Business Machines Corporation | Migrating legacy applications to a multi-tenant computing environment |
| US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
| CN106161384A (zh) * | 2015-04-15 | 2016-11-23 | 伊姆西公司 | 用于在移动设备中提供对数据的安全访问的方法和系统 |
| US10222986B2 (en) | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
| US11588783B2 (en) | 2015-06-10 | 2023-02-21 | Cisco Technology, Inc. | Techniques for implementing IPV6-based distributed storage space |
| US9823849B2 (en) * | 2015-06-26 | 2017-11-21 | Intel Corporation | Method and apparatus for dynamically allocating storage resources to compute nodes |
| US9912752B1 (en) | 2015-06-29 | 2018-03-06 | Amazon Technologies, Inc. | Retention-based data management in a network-based data store |
| US20170004131A1 (en) * | 2015-07-01 | 2017-01-05 | Weka.IO LTD | Virtual File System Supporting Multi-Tiered Storage |
| US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
| US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
| TWI579689B (zh) * | 2015-09-25 | 2017-04-21 | 瑞昱半導體股份有限公司 | 資料備份系統 |
| US10031674B2 (en) * | 2015-10-07 | 2018-07-24 | Samsung Electronics Co., Ltd. | DIMM SSD addressing performance techniques |
| US10209899B2 (en) * | 2015-11-06 | 2019-02-19 | Microsoft Technology Licensing, Llc | Storage virtualization offload |
| CN106681650B (zh) * | 2015-11-10 | 2021-04-30 | 中国电信股份有限公司 | 虚拟卷访问方法和虚拟化系统 |
| US9892075B2 (en) | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
| US10860511B1 (en) * | 2015-12-28 | 2020-12-08 | Western Digital Technologies, Inc. | Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer |
| CN106997351B (zh) * | 2016-01-22 | 2021-03-02 | 斑马智行网络(香港)有限公司 | 一种资源缓存管理方法及系统和装置 |
| CN106998347A (zh) * | 2016-01-26 | 2017-08-01 | 中兴通讯股份有限公司 | 服务器虚拟化网络共享的装置和方法 |
| US10133516B2 (en) | 2016-01-28 | 2018-11-20 | Weka.IO Ltd. | Quality of service management in a distributed storage system |
| US11455097B2 (en) | 2016-01-28 | 2022-09-27 | Weka.IO Ltd. | Resource monitoring in a distributed storage system |
| US10223313B2 (en) * | 2016-03-07 | 2019-03-05 | Quanta Computer Inc. | Scalable pooled NVMe storage box that comprises a PCIe switch further connected to one or more switches and switch ports |
| CN107229665B (zh) | 2016-03-25 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 一种页面跳转方法及装置 |
| CN107305506A (zh) * | 2016-04-20 | 2017-10-31 | 阿里巴巴集团控股有限公司 | 动态分配内存的方法、装置及系统 |
| US10140172B2 (en) | 2016-05-18 | 2018-11-27 | Cisco Technology, Inc. | Network-aware storage repairs |
| US10102022B2 (en) | 2016-05-23 | 2018-10-16 | Red Hat Israel, Ltd. | System and method for configuring a virtual device |
| US20170351639A1 (en) | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
| CN107526696B (zh) * | 2016-06-20 | 2020-12-29 | 北京忆芯科技有限公司 | 软件定义的sr-iov模块 |
| MX2018015891A (es) * | 2016-06-22 | 2019-08-01 | Kuster Martin | Computadora de comunicacion avanzada. |
| US10664169B2 (en) | 2016-06-24 | 2020-05-26 | Cisco Technology, Inc. | Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device |
| CN106201819A (zh) * | 2016-06-28 | 2016-12-07 | 乐视控股(北京)有限公司 | 应用容器引擎的系统资源占用量监控方法和装置 |
| US12210476B2 (en) * | 2016-07-19 | 2025-01-28 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
| US10390114B2 (en) | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
| US10387353B2 (en) | 2016-07-26 | 2019-08-20 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices |
| US20180032249A1 (en) * | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
| US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
| US10762023B2 (en) | 2016-07-26 | 2020-09-01 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices |
| US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
| US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
| US12541480B2 (en) | 2016-07-26 | 2026-02-03 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
| US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
| US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
| US10311008B2 (en) | 2016-08-12 | 2019-06-04 | Samsung Electronics Co., Ltd. | Storage device with network access |
| US11563695B2 (en) | 2016-08-29 | 2023-01-24 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
| JP6750417B2 (ja) * | 2016-09-15 | 2020-09-02 | 富士通株式会社 | パケット制御プログラム、パケット制御装置及びパケット制御システム |
| US10180926B2 (en) * | 2016-10-03 | 2019-01-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Controlling data storage devices across multiple servers |
| WO2018102967A1 (zh) * | 2016-12-05 | 2018-06-14 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
| CN110413542B (zh) * | 2016-12-05 | 2023-08-22 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、设备和系统 |
| CN108369530B (zh) * | 2016-12-05 | 2021-06-15 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
| US10476942B2 (en) * | 2016-12-21 | 2019-11-12 | International Business Machines Corporation | DNS resolution of overlapping domains in a multi-tenant computing environment |
| JP6773229B2 (ja) | 2016-12-29 | 2020-10-21 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ストレージコントローラおよびioリクエスト処理方法 |
| CN106775493B (zh) * | 2017-01-05 | 2019-01-25 | 华为技术有限公司 | 一种存储控制器及io请求处理方法 |
| US10545914B2 (en) | 2017-01-17 | 2020-01-28 | Cisco Technology, Inc. | Distributed object storage |
| US10896159B1 (en) * | 2017-01-18 | 2021-01-19 | Amdocs Development Limited | System, method, and computer program for configuration based coexistence routing |
| US10652320B2 (en) | 2017-02-21 | 2020-05-12 | Microsoft Technology Licensing, Llc | Load balancing in distributed computing systems |
| US10243823B1 (en) | 2017-02-24 | 2019-03-26 | Cisco Technology, Inc. | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks |
| US10713203B2 (en) | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
| US10254991B2 (en) | 2017-03-06 | 2019-04-09 | Cisco Technology, Inc. | Storage area network based extended I/O metrics computation for deep insight into application performance |
| US10764367B2 (en) | 2017-03-15 | 2020-09-01 | Hewlett Packard Enterprise Development Lp | Registration with a storage networking repository via a network interface device driver |
| WO2018173164A1 (ja) * | 2017-03-22 | 2018-09-27 | 株式会社日立製作所 | データ処理システム |
| US10509569B2 (en) | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
| US10564853B2 (en) | 2017-04-26 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for locality detection to identify read or write streams in a memory device |
| US10725835B2 (en) | 2017-05-03 | 2020-07-28 | Western Digital Technologies, Inc. | System and method for speculative execution of commands using a controller memory buffer |
| US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
| US10466903B2 (en) | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for dynamic and adaptive interrupt coalescing |
| US10387081B2 (en) | 2017-03-24 | 2019-08-20 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
| US10466904B2 (en) | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
| US10296473B2 (en) | 2017-03-24 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for fast execution of in-capsule commands |
| US10691368B2 (en) * | 2017-03-31 | 2020-06-23 | Samsung Electronics Co., Ltd. | System and method for providing data replication in NVMe-oF ethernet SSD |
| US10545664B2 (en) * | 2017-04-11 | 2020-01-28 | Samsung Electronics Co., Ltd. | System and method for identifying SSDs with lowest tail latencies |
| US10733137B2 (en) * | 2017-04-25 | 2020-08-04 | Samsung Electronics Co., Ltd. | Low latency direct access block storage in NVME-of ethernet SSD |
| US10296249B2 (en) | 2017-05-03 | 2019-05-21 | Western Digital Technologies, Inc. | System and method for processing non-contiguous submission and completion queues |
| US10528366B2 (en) | 2017-06-05 | 2020-01-07 | International Business Machines Corporation | Facilitating multi-inheritance within a single inheritance container-based environment |
| US10114586B1 (en) | 2017-06-22 | 2018-10-30 | Western Digital Technologies, Inc. | System and method for using host command data buffers as extended memory device volatile memory |
| US10505758B2 (en) * | 2017-07-06 | 2019-12-10 | Huawei Technologies Co., Ltd. | Systems and methods for sharing network interfaces between containers in an embedded computing device |
| US10303534B2 (en) | 2017-07-20 | 2019-05-28 | Cisco Technology, Inc. | System and method for self-healing of application centric infrastructure fabric memory |
| KR20190024613A (ko) * | 2017-08-30 | 2019-03-08 | 한국전자통신연구원 | 클라우드 서비스 제공을 위한 스토리지 제공 장치 및 방법 |
| US10404596B2 (en) | 2017-10-03 | 2019-09-03 | Cisco Technology, Inc. | Dynamic route profile storage in a hardware trie routing table |
| CN109639446B (zh) | 2017-10-09 | 2022-01-11 | 阿里巴巴集团控股有限公司 | Fpga设备、基于fpga设备的云系统 |
| US10719474B2 (en) | 2017-10-11 | 2020-07-21 | Samsung Electronics Co., Ltd. | System and method for providing in-storage acceleration (ISA) in data storage devices |
| US10942666B2 (en) | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
| KR102288503B1 (ko) * | 2017-10-23 | 2021-08-10 | 한국전자통신연구원 | 통합 스토리지 관리 장치 및 방법 |
| US12189648B2 (en) | 2017-10-23 | 2025-01-07 | Electronics And Telecommunications Research Institute | Apparatus and method for managing integrated storage |
| US10642498B2 (en) | 2017-11-07 | 2020-05-05 | Western Digital Technologies, Inc. | System and method for flexible management of resources in an NVMe virtualization |
| US11061622B2 (en) | 2017-11-13 | 2021-07-13 | Weka.IO Ltd. | Tiering data strategy for a distributed storage system |
| US10564857B2 (en) * | 2017-11-13 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for QoS over NVMe virtualization platform using adaptive command fetching |
| US11262912B2 (en) | 2017-11-13 | 2022-03-01 | Weka.IO Ltd. | File operations in a distributed storage system |
| US11216210B2 (en) | 2017-11-13 | 2022-01-04 | Weka.IO Ltd. | Flash registry with on-disk hashing |
| US11385980B2 (en) | 2017-11-13 | 2022-07-12 | Weka.IO Ltd. | Methods and systems for rapid failure recovery for a distributed storage system |
| US11782875B2 (en) | 2017-11-13 | 2023-10-10 | Weka.IO Ltd. | Directory structure for a distributed storage system |
| US11561860B2 (en) | 2017-11-13 | 2023-01-24 | Weka.IO Ltd. | Methods and systems for power failure resistance for a distributed storage system |
| US11301433B2 (en) | 2017-11-13 | 2022-04-12 | Weka.IO Ltd. | Metadata journal in a distributed storage system |
| US10936405B2 (en) | 2017-11-13 | 2021-03-02 | Weka.IO Ltd. | Efficient networking for a distributed storage system |
| TWI636366B (zh) * | 2017-11-22 | 2018-09-21 | 緯穎科技服務股份有限公司 | 資料冗餘的處理方法及其相關電腦系統 |
| US10764201B2 (en) | 2017-11-28 | 2020-09-01 | Dornerworks, Ltd. | System and method for scheduling communications |
| US10992967B2 (en) * | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
| US11113156B2 (en) * | 2018-01-10 | 2021-09-07 | Kaseya Us Llc | Automated ransomware identification and recovery |
| CN108363551A (zh) * | 2018-01-16 | 2018-08-03 | 长沙开雅电子科技有限公司 | 一种存储系统复制链路流量控制实现方法 |
| US10481834B2 (en) | 2018-01-24 | 2019-11-19 | Samsung Electronics Co., Ltd. | Erasure code data protection across multiple NVME over fabrics storage devices |
| US11150810B2 (en) * | 2018-01-26 | 2021-10-19 | International Business Machines Corporation | I/O data transmission in a hyper-converged storage system |
| US10521378B2 (en) | 2018-03-09 | 2019-12-31 | Samsung Electronics Co., Ltd. | Adaptive interface storage device with multiple storage protocols including NVME and NVME over fabrics storage devices |
| US10904163B2 (en) * | 2018-03-28 | 2021-01-26 | Lumentum Operations Llc | Tunneling data to a data-path chip via a microcontroller unit (MCU) |
| KR102128832B1 (ko) * | 2018-04-04 | 2020-07-01 | 윤흥수 | 네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치의 데이터 처리 방법 |
| US11321240B2 (en) * | 2018-06-08 | 2022-05-03 | International Business Machines Corporation | MMIO addressing using a translation lookaside buffer |
| US10929302B2 (en) | 2018-06-08 | 2021-02-23 | International Business Machines Corporation | MMIO addressing using a translation table |
| US11392417B2 (en) * | 2018-06-14 | 2022-07-19 | Quantaro, LLC | Ultraconverged systems having multiple availability zones |
| JP7175997B2 (ja) * | 2018-06-29 | 2022-11-21 | インテル コーポレイション | 仮想ネットワークでのストレージサービスの品質の管理 |
| US20210034546A1 (en) * | 2018-06-29 | 2021-02-04 | John Joseph Browne | Transparent encryption |
| US10956336B2 (en) | 2018-07-20 | 2021-03-23 | International Business Machines Corporation | Efficient silent data transmission between computer servers |
| CN111352695B (zh) * | 2018-12-24 | 2023-09-29 | 中国电信股份有限公司 | 虚拟机迁移方法、装置和计算机可读存储介质 |
| JP2020154697A (ja) | 2019-03-20 | 2020-09-24 | キオクシア株式会社 | メモリシステム及びメモリシステムの制御方法 |
| JP7185587B2 (ja) * | 2019-04-12 | 2022-12-07 | 株式会社日立製作所 | 制御方法および制御装置 |
| WO2020219807A1 (en) | 2019-04-25 | 2020-10-29 | Liqid Inc. | Composed computing systems with converged and disaggregated component pool |
| US11748278B2 (en) * | 2019-06-20 | 2023-09-05 | Intel Corporation | Multi-protocol support for transactions |
| US12271322B2 (en) | 2019-06-24 | 2025-04-08 | Samsung Electronics Co., Ltd. | Multi-function flexible computational storage device |
| US11138116B2 (en) * | 2019-07-29 | 2021-10-05 | Xilinx, Inc. | Network interface device supporting multiple interface instances to a common bus |
| US11288070B2 (en) | 2019-11-04 | 2022-03-29 | International Business Machines Corporation | Optimization of low-level memory operations in a NUMA environment |
| US11429445B2 (en) * | 2019-11-25 | 2022-08-30 | Micron Technology, Inc. | User interface based page migration for performance enhancement |
| US11586457B2 (en) * | 2020-01-15 | 2023-02-21 | EMC IP Holding Company LLC | Load balancing in a hyper-converged infrastructure (HCI) environment |
| US11316917B2 (en) * | 2020-03-04 | 2022-04-26 | Samsung Electronics Co., Ltd. | Methods and apparatus for peer-to-peer data channels for storage devices |
| US11122123B1 (en) * | 2020-03-09 | 2021-09-14 | International Business Machines Corporation | Method for a network of storage devices |
| US11159612B1 (en) * | 2020-04-28 | 2021-10-26 | Hewlett Packard Enterprise Development Lp | Determining non-TDP zones in a storage area network |
| US11372785B2 (en) * | 2020-05-06 | 2022-06-28 | Microsoft Technology Licensing, Llc | Local non-volatile memory express virtualization device |
| CN111290838B (zh) * | 2020-05-09 | 2020-08-18 | 支付宝(杭州)信息技术有限公司 | 基于容器集群的应用访问请求处理方法及装置 |
| US11720413B2 (en) * | 2020-06-08 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for virtualizing fabric-attached storage devices |
| US11971789B2 (en) | 2020-06-16 | 2024-04-30 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for crash recovery in storage devices |
| US11327852B1 (en) * | 2020-10-22 | 2022-05-10 | Dell Products L.P. | Live migration/high availability system |
| KR102402709B1 (ko) | 2020-11-02 | 2022-05-27 | 주식회사 나눔기술 | 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법 |
| US11442776B2 (en) | 2020-12-11 | 2022-09-13 | Liqid Inc. | Execution job compute unit composition in computing clusters |
| US11720382B2 (en) * | 2021-01-20 | 2023-08-08 | Vmware, Inc. | Declarative VM management for a container orchestrator in a virtualized computing system |
| US12483515B2 (en) * | 2021-02-18 | 2025-11-25 | Intel Corporation | Application-to-application resource reservation schemes for precision networking |
| US11762681B2 (en) | 2021-03-02 | 2023-09-19 | Vmware, Inc. | Dynamic configuration of virtual objects |
| CN112988468A (zh) * | 2021-04-27 | 2021-06-18 | 云宏信息科技股份有限公司 | 虚拟化操作系统使用Ceph的方法和计算机可读存储介质 |
| US11924105B1 (en) * | 2021-04-29 | 2024-03-05 | Marvell Asia Pte Ltd | Method and apparatus for control of congestion in storage area network |
| US11755251B2 (en) * | 2021-06-02 | 2023-09-12 | Samsung Electronics Co., Ltd. | Virtual computational storage devices |
| WO2023275985A1 (ja) * | 2021-06-29 | 2023-01-05 | 日本電信電話株式会社 | 仮想化システム障害分離装置及び仮想化システム障害分離方法 |
| US11620083B2 (en) * | 2021-07-02 | 2023-04-04 | Samsung Electronics Co., Ltd. | Method for implementing predictable latency mode feature in SSD, and non-volatile memory (NVM) based storage device |
| CN113821174B (zh) * | 2021-09-26 | 2024-03-22 | 迈普通信技术股份有限公司 | 存储处理方法、装置、网卡设备及存储介质 |
| US11886356B2 (en) * | 2021-11-30 | 2024-01-30 | Liqid Inc. | Local instantiation of remote peripheral devices |
| CN114244880B (zh) * | 2021-12-16 | 2023-12-26 | 云控智行科技有限公司 | 智能网联驾驶云控功能的运行方法、装置、设备和介质 |
| US20230195372A1 (en) * | 2021-12-21 | 2023-06-22 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for content distribution using storage device with network interface |
| CN114706679A (zh) * | 2022-03-30 | 2022-07-05 | 深圳致星科技有限公司 | 融合计算和通信的计算网络单元、计算节点及计算网络 |
| US12493408B2 (en) | 2022-08-31 | 2025-12-09 | Nvidia Corporation | Dynamically assigning namespace type to memory devices |
| US12321619B2 (en) * | 2022-10-28 | 2025-06-03 | Hewlett Packard Enterprise Development Lp | Aggregating small remote memory access requests |
| US12438809B2 (en) * | 2023-07-25 | 2025-10-07 | Dell Products L.P. | Distributed data storage system with tunneling of management requests among scale-out clusters |
| US20250077372A1 (en) * | 2023-09-06 | 2025-03-06 | Dell Products L.P. | Proactive insights for system health |
| US20250390380A1 (en) * | 2024-06-21 | 2025-12-25 | Xilinx, Inc. | Redundant data storage using incremental error detection with non-zero seeds |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070028138A1 (en) * | 2005-07-29 | 2007-02-01 | Broadcom Corporation | Combined local and network storage interface |
| CN101351784A (zh) * | 2005-12-30 | 2009-01-21 | 阿西式·A·潘迪亚 | 运行时自适应搜索处理器 |
| US20100235832A1 (en) * | 2009-03-12 | 2010-09-16 | Vmware, Inc. | Storage Virtualization With Virtual Datastores |
| CN102223394A (zh) * | 2010-04-02 | 2011-10-19 | 英特尔公司 | 远程直接存储设备访问 |
| CN102857363A (zh) * | 2012-05-04 | 2013-01-02 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理系统和方法 |
| US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
Family Cites Families (61)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6553000B1 (en) | 1998-01-27 | 2003-04-22 | Alcatel Internetworking (Pe), Inc. | Method and apparatus for forwarding network traffic |
| US6347087B1 (en) | 1998-10-05 | 2002-02-12 | Packet Engines Incorporated | Content-based forwarding/filtering in a network switching device |
| ATE350838T1 (de) | 1998-10-05 | 2007-01-15 | Cit Alcatel | Netzwerkvermittlungseinrichtung mit auf der basis von benutzung verteilten umleitungsdatenbanken |
| US6678269B1 (en) | 1998-10-05 | 2004-01-13 | Alcatel | Network switching device with disparate database formats |
| US7266555B1 (en) * | 2000-03-03 | 2007-09-04 | Intel Corporation | Methods and apparatus for accessing remote storage through use of a local device |
| US7075926B2 (en) | 2000-05-24 | 2006-07-11 | Alcatel Internetworking, Inc. (Pe) | Programmable packet processor with flow resolution logic |
| US20040233910A1 (en) * | 2001-02-23 | 2004-11-25 | Wen-Shyen Chen | Storage area network using a data communication protocol |
| JP4183400B2 (ja) | 2001-06-27 | 2008-11-19 | 株式会社日立製作所 | データベースシステムとデータベース管理方法およびプログラム |
| WO2003019391A2 (en) * | 2001-08-24 | 2003-03-06 | Intel Corporation | A general input/output architecture protocol and related methods to manage data integrity |
| US20030110300A1 (en) * | 2001-12-12 | 2003-06-12 | Micro-Star Int'l Co., Ltd. | Virtual storage interface device |
| US7085846B2 (en) * | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
| US7386546B1 (en) * | 2002-07-09 | 2008-06-10 | Network Appliance, Inc. | Metadirectory namespace and method for use of the same |
| WO2004077211A2 (en) * | 2003-02-28 | 2004-09-10 | Tilmon Systems Ltd. | Method and apparatus for increasing file server performance by offloading data path processing |
| US7782805B1 (en) | 2005-02-08 | 2010-08-24 | Med Belhadj | High speed packet interface and method |
| US7814262B2 (en) | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
| US20070177498A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method and apparatus for implementing speculative credit flow control |
| US8234424B2 (en) | 2006-06-08 | 2012-07-31 | Integrated Device Technology, Inc. | Efficient strip-down and re-alignment of ingressing physical layer/data layer packets in an aggregated PCI-express port having eight lanes |
| US7836220B2 (en) * | 2006-08-17 | 2010-11-16 | Apple Inc. | Network direct memory access |
| KR20080052846A (ko) * | 2006-12-08 | 2008-06-12 | 한국전자통신연구원 | 광대역 통합망에서 멀티미디어 서비스의 망 자원 관리 방법 |
| US7917682B2 (en) * | 2007-06-27 | 2011-03-29 | Emulex Design & Manufacturing Corporation | Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet |
| US7711789B1 (en) * | 2007-12-07 | 2010-05-04 | 3 Leaf Systems, Inc. | Quality of service in virtual computing environments |
| US8160085B2 (en) | 2007-12-21 | 2012-04-17 | Juniper Networks, Inc. | System and method for dynamically allocating buffers based on priority levels |
| US8130761B2 (en) | 2008-01-22 | 2012-03-06 | Dell Products L.P. | Method and system for providing confirmed delivery of ethernet packets |
| US8046559B2 (en) | 2008-03-27 | 2011-10-25 | Intel Corporation | Memory rank burst scheduling |
| US8959280B2 (en) | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
| US8359408B2 (en) * | 2008-06-30 | 2013-01-22 | Intel Corporation | Enabling functional dependency in a multi-function device |
| US20100131881A1 (en) | 2008-10-20 | 2010-05-27 | Jayasenan Sundara Ganesh | Apparatus and Method for Data Search and Organization |
| US9134922B2 (en) * | 2009-03-12 | 2015-09-15 | Vmware, Inc. | System and method for allocating datastores for virtual machines |
| US8625427B1 (en) * | 2009-09-03 | 2014-01-07 | Brocade Communications Systems, Inc. | Multi-path switching with edge-to-edge flow control |
| US20110191522A1 (en) | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
| US8463977B2 (en) | 2010-09-09 | 2013-06-11 | Stephen Dale Cooper | Use of PCI express for CPU-to-CPU communication |
| US9015493B2 (en) | 2010-09-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Multitenant-aware protection service |
| US8396963B2 (en) * | 2010-09-29 | 2013-03-12 | Schneider Electric USA, Inc. | Networked devices for monitoring utility usage and methods of using the same |
| WO2012042509A1 (en) | 2010-10-01 | 2012-04-05 | Peter Chacko | A distributed virtual storage cloud architecture and a method thereof |
| US8996644B2 (en) | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
| JP5027939B1 (ja) * | 2011-03-27 | 2012-09-19 | 剛 半田 | 仮想マシンのための仮想ストレージを有するホストサーバ |
| WO2012147087A1 (en) | 2011-04-29 | 2012-11-01 | Tata Consultancy Services Limited | Archival storage and retrieval system |
| US9058275B2 (en) | 2011-06-10 | 2015-06-16 | International Business Machines Corporation | Data returned responsive to executing a start subchannel instruction |
| US8831041B2 (en) | 2011-06-27 | 2014-09-09 | Citrix Systems, Inc. | Prioritizing highly compressed traffic to provide a predetermined quality of service |
| US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
| US8850130B1 (en) | 2011-08-10 | 2014-09-30 | Nutanix, Inc. | Metadata for managing I/O and storage for a virtualization |
| US9026253B2 (en) | 2011-11-22 | 2015-05-05 | Honeywell International Inc. | Building controller with operating system interaction through an integrated display |
| US9075712B2 (en) | 2011-11-30 | 2015-07-07 | International Business Machines Corporation | Scheduling requests in a solid state memory device |
| US20130232267A1 (en) * | 2012-03-01 | 2013-09-05 | Cisco Technology, Inc. | System and method for resource-based network policy control in a network environment |
| US9027148B2 (en) | 2012-03-19 | 2015-05-05 | Intel Corporation | Anti-malware protection operation with instruction included in an operand |
| US9916439B2 (en) | 2012-03-22 | 2018-03-13 | Microsoft Technology Licensing, Llc | Securing a computing environment against malicious entities |
| US8682869B2 (en) | 2012-04-05 | 2014-03-25 | International Business Machines Corporation | Increased in-line deduplication efficiency |
| US20130290601A1 (en) | 2012-04-26 | 2013-10-31 | Lsi Corporation | Linux i/o scheduler for solid-state drives |
| US9483657B2 (en) * | 2013-01-14 | 2016-11-01 | Accenture Global Services Limited | Secure online distributed data storage services |
| US9497106B2 (en) | 2013-04-06 | 2016-11-15 | Citrix Systems, Inc. | Systems and methods for synchronizing MSS and PMTU in Ncore and cluster systems |
| US9298648B2 (en) * | 2013-05-08 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte Ltd | Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch |
| US9621642B2 (en) | 2013-06-17 | 2017-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of forwarding data packets using transient tables and related load balancers |
| US9137165B2 (en) | 2013-06-17 | 2015-09-15 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of load balancing using primary and stand-by addresses and related load balancers and servers |
| US20140372616A1 (en) | 2013-06-17 | 2014-12-18 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of forwarding/receiving data packets using unicast and/or multicast communications and related load balancers and servers |
| 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 |
| US9313274B2 (en) * | 2013-09-05 | 2016-04-12 | Google Inc. | Isolating clients of distributed storage systems |
| US9471522B2 (en) * | 2013-12-04 | 2016-10-18 | International Business Machines Corporation | Resource allocation by virtual channel management and bus multiplexing |
| US9529616B2 (en) * | 2013-12-10 | 2016-12-27 | International Business Machines Corporation | Migrating processes between source host and destination host using a shared virtual file system |
| US9268503B2 (en) | 2014-01-14 | 2016-02-23 | Compellent Technologies | I/O handling between virtualization and RAID storage |
| US10628353B2 (en) | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
| US10635316B2 (en) | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
-
2015
- 2015-03-06 CA CA2941702A patent/CA2941702A1/en not_active Abandoned
- 2015-03-06 WO PCT/US2015/019206 patent/WO2015138245A1/en not_active Ceased
- 2015-03-06 US US14/640,717 patent/US20150254088A1/en not_active Abandoned
- 2015-03-06 CN CN201580024169.3A patent/CN106688217B/zh not_active Expired - Fee Related
- 2015-03-06 EP EP15761423.1A patent/EP3117583A4/en not_active Ceased
- 2015-03-06 JP JP2016575306A patent/JP2017512350A/ja active Pending
- 2015-03-06 KR KR1020167028019A patent/KR20160138448A/ko not_active Ceased
- 2015-03-06 AU AU2015229802A patent/AU2015229802A1/en not_active Abandoned
-
2019
- 2019-12-03 AU AU2019275539A patent/AU2019275539A1/en not_active Abandoned
-
2020
- 2020-03-02 US US16/807,009 patent/US11269669B2/en active Active
- 2020-03-02 US US16/806,999 patent/US20200201661A1/en not_active Abandoned
- 2020-04-24 US US16/858,558 patent/US11269670B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070028138A1 (en) * | 2005-07-29 | 2007-02-01 | Broadcom Corporation | Combined local and network storage interface |
| CN101351784A (zh) * | 2005-12-30 | 2009-01-21 | 阿西式·A·潘迪亚 | 运行时自适应搜索处理器 |
| US20100235832A1 (en) * | 2009-03-12 | 2010-09-16 | Vmware, Inc. | Storage Virtualization With Virtual Datastores |
| CN102223394A (zh) * | 2010-04-02 | 2011-10-19 | 英特尔公司 | 远程直接存储设备访问 |
| US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
| CN102857363A (zh) * | 2012-05-04 | 2013-01-02 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理系统和方法 |
Cited By (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108959134A (zh) * | 2017-05-24 | 2018-12-07 | 微软技术许可有限责任公司 | 用于现场可编程门阵列设备的通信 |
| CN108959134B (zh) * | 2017-05-24 | 2022-02-15 | 微软技术许可有限责任公司 | 用于现场可编程门阵列设备的通信 |
| US11243901B2 (en) | 2017-05-24 | 2022-02-08 | Microsoft Technology Licensing, Llc | Communications for field programmable gate array device |
| CN107688441B (zh) * | 2017-08-31 | 2021-02-02 | 郑州云海信息技术有限公司 | 一种存储虚拟化的实现方法及装置 |
| CN107688441A (zh) * | 2017-08-31 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种存储虚拟化的实现方法及装置 |
| CN107734037A (zh) * | 2017-10-19 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种nas集群和数据访问方法 |
| CN109861914B (zh) * | 2017-11-30 | 2022-07-12 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
| CN109861914A (zh) * | 2017-11-30 | 2019-06-07 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
| US12001379B2 (en) | 2017-11-30 | 2024-06-04 | Samsung Electronics Co., Ltd. | Differentiated storage services in ethernet SSD |
| US11544212B2 (en) | 2017-11-30 | 2023-01-03 | Samsung Electronics Co., Ltd. | Differentiated storage services in ethernet SSD |
| CN108304214A (zh) * | 2017-12-13 | 2018-07-20 | 华为技术有限公司 | 一种立即数的完整性的校验方法及装置 |
| CN108304214B (zh) * | 2017-12-13 | 2022-05-13 | 超聚变数字技术有限公司 | 一种立即数的完整性的校验方法及装置 |
| CN110362515B (zh) * | 2018-03-26 | 2024-11-26 | 三星电子株式会社 | 驱动器至驱动器存储系统、存储驱动器和存储数据的方法 |
| US12174762B2 (en) | 2018-03-26 | 2024-12-24 | Samsung Electronics Co., Ltd. | Mechanism to autonomously manage SSDs in an array |
| CN110362515A (zh) * | 2018-03-26 | 2019-10-22 | 三星电子株式会社 | 驱动器至驱动器存储系统、存储驱动器和存储数据的方法 |
| CN109240952A (zh) * | 2018-08-27 | 2019-01-18 | 北京计算机技术及应用研究所 | 一种高速数据加密NVMe-SATA转换器电路 |
| CN110471627A (zh) * | 2019-08-19 | 2019-11-19 | 北京首都在线科技股份有限公司 | 一种共享存储的方法、系统及装置 |
| CN115422284B (zh) * | 2019-08-22 | 2023-11-10 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
| CN115422284A (zh) * | 2019-08-22 | 2022-12-02 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
| US12001681B2 (en) | 2019-08-22 | 2024-06-04 | Huawei Technologies Co., Ltd. | Distributed storage system and data processing method |
| CN110781107A (zh) * | 2019-09-16 | 2020-02-11 | 北京领芯迅飞科技有限公司 | 基于dram接口的低延迟融合io控制方法和装置 |
| CN112732166A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 访问固态硬盘的方法及装置 |
| US12361144B2 (en) | 2020-01-29 | 2025-07-15 | Samsung Electronics Co., Ltd. | Methods and apparatus for offloading encryption |
| TWI856215B (zh) * | 2020-01-29 | 2024-09-21 | 南韓商三星電子股份有限公司 | 卸載加密的方法及系統、以及加密元件 |
| US11934542B2 (en) | 2020-01-29 | 2024-03-19 | Samsung Electronics Co., Ltd. | Methods and apparatus for offloading encryption |
| CN113497767A (zh) * | 2020-03-20 | 2021-10-12 | 华为技术有限公司 | 传输数据的方法、装置、计算设备及存储介质 |
| CN113821161A (zh) * | 2020-06-19 | 2021-12-21 | 株式会社日立制作所 | 信息处理装置和方法 |
| CN112527193B (zh) * | 2020-12-04 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种云硬盘数据迁移方法、装置、设备及存储介质 |
| CN112527193A (zh) * | 2020-12-04 | 2021-03-19 | 北京浪潮数据技术有限公司 | 一种云硬盘数据迁移方法、装置、设备及存储介质 |
| CN114793214A (zh) * | 2021-01-26 | 2022-07-26 | 三星电子株式会社 | 用于拥塞控制的方法及设备 |
| CN112948343A (zh) * | 2021-03-25 | 2021-06-11 | 兴业数字金融服务(上海)股份有限公司 | 基于分布式大数据块的海量内容存储系统和方法 |
| WO2022252898A1 (zh) * | 2021-05-31 | 2022-12-08 | 浪潮(北京)电子信息产业有限公司 | 不同存储协议下的数据交互方法、装置、设备及介质 |
| US12255961B2 (en) | 2021-05-31 | 2025-03-18 | Inspur (Beijing) Electronic Information Industry Co., Ltd. | Data interaction method and apparatus under different storage protocols, and device and medium |
| CN116346945A (zh) * | 2021-12-24 | 2023-06-27 | 戴尔产品有限公司 | 经由智能网络接口控制器实现的可信网络协议代理 |
| CN115865803B (zh) * | 2023-03-03 | 2023-08-22 | 浪潮电子信息产业股份有限公司 | 一种io请求处理方法、装置、设备及可读存储介质 |
| CN115865803A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种io请求处理方法、装置、设备及可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106688217B (zh) | 2021-11-12 |
| US11269669B2 (en) | 2022-03-08 |
| US11269670B2 (en) | 2022-03-08 |
| WO2015138245A1 (en) | 2015-09-17 |
| KR20160138448A (ko) | 2016-12-05 |
| US20200201662A1 (en) | 2020-06-25 |
| JP2017512350A (ja) | 2017-05-18 |
| AU2015229802A1 (en) | 2016-10-06 |
| US20200257546A1 (en) | 2020-08-13 |
| EP3117583A4 (en) | 2017-11-01 |
| US20200201661A1 (en) | 2020-06-25 |
| CA2941702A1 (en) | 2015-09-17 |
| EP3117583A1 (en) | 2017-01-18 |
| US20150254088A1 (en) | 2015-09-10 |
| AU2019275539A1 (en) | 2020-01-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11269669B2 (en) | Providing data that is remotely stored to an operating system responsive to a local access request | |
| US11269518B2 (en) | Single-step configuration of storage and network devices in a virtualized cluster of storage resources | |
| US11580041B2 (en) | Enabling use of non-volatile media—express (NVME) over a network | |
| US12206585B2 (en) | Methods and systems for managing quality of service in a networked storage environment | |
| WO2016196766A2 (en) | Enabling use of non-volatile media - express (nvme) over a network | |
| US9934194B2 (en) | Memory packet, data structure and hierarchy within a memory appliance for accessing memory | |
| US9652405B1 (en) | Persistence of page access heuristics in a memory centric architecture | |
| US9811276B1 (en) | Archiving memory in memory centric architecture | |
| US11934658B2 (en) | Enhanced storage protocol emulation in a peripheral device | |
| CN115529291A (zh) | 目标网络接口设备上的地址转换 | |
| KR20140111589A (ko) | 가상 기계들을 지원하는 플래시―기반 캐싱 해결책에서의 동적인 캐시 공유를 위한 시스템, 방법 및 컴퓨터―판독가능한 매체 | |
| US11921658B2 (en) | Enabling use of non-volatile media-express (NVMe) over a network | |
| HK1233789B (zh) | 用於融合联网和存储的方法和系统 | |
| HK1233789A1 (zh) | 用於融合聯網和存儲的方法和系統 |
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 | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1233789 Country of ref document: HK |
|
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211112 |