CN106293508A - 数据存储系统和方法 - Google Patents

数据存储系统和方法 Download PDF

Info

Publication number
CN106293508A
CN106293508A CN201610471278.6A CN201610471278A CN106293508A CN 106293508 A CN106293508 A CN 106293508A CN 201610471278 A CN201610471278 A CN 201610471278A CN 106293508 A CN106293508 A CN 106293508A
Authority
CN
China
Prior art keywords
data
node
back end
hardware processor
plane
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
Application number
CN201610471278.6A
Other languages
English (en)
Other versions
CN106293508B (zh
Inventor
D·赛维克
M·罗比拉德
J·埃斯皮
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.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of CN106293508A publication Critical patent/CN106293508A/zh
Application granted granted Critical
Publication of CN106293508B publication Critical patent/CN106293508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • 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]

Landscapes

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

Abstract

提供了一种数据存储系统,所述数据存储系统具有隔离控制平面架构或隔离数据平面架构或隔离控制平面和隔离数据平面架构。例如,数据存储系统包括多个介质节点和被耦合到所述介质节点的多个数据节点。介质节点控制并管理持久性存储元件。每个数据节点包括至少一个硬件处理器,其被配置成执行数据平面功能和控制平面功能,其中,其特征在于以下各项其中至少一个:(i)所述数据节点中的给定数据节点的数据平面功能被隔离且由不同的硬件处理器执行;以及(ii)所述数据节点中的给定数据节点的控制平面功能被隔离且由不同的硬件处理器执行。

Description

数据存储系统和方法
技术领域
本领域一般地涉及计算网络,并且特别地涉及在计算网络中采用的数据存储系统和方法。
背景技术
传统的数据存储架构已经利用了通用微处理器的技术进步来运行集成存储控制平面和数据平面架构,其中,存储处理控制和数据平面功能已集中到通用微处理器上。此类常规架构由于各种原因而存在问题。例如,通用微处理器解决方案可以在执行某些数据平面功能时提供次佳性能。此外,集成控制和数据平面架构要求介质(例如,磁盘和FLASH)与计算元件之间的紧密耦合。这种紧密耦合固定了计算与介质比,并且使得难以进行缩放。此限制表现为跨过广泛变化的工作负荷的系统效率降低。此外,当前存储架构难以扩展。事实上,系统扩展要求系统元件之间的系统信息的共享。由于共享信息的量可能呈指数增加,所以会很容易地超过可用系统资源(存储器带宽、CPU周期、I/O带宽等)的量。此外,未来工作负荷难以预测,尤其是在其中对某些类型的工作负荷(以及数据量)的需求可以呈指数增加的分布式计算环境中的超规模计算中尤为如此。
发明内容
本公开说明性的实施方式包括具有隔离控制平面架构或隔离数据平面架构或隔离控制平面和隔离数据平面架构的数据存储系统。
本发明的一个实施方式包括一种数据存储系统。该数据存储系统包括多个介质节点、被耦合到所述介质节点的多个数据节点以及被配置成允许数据节点之间的通信的交换机结构。所述介质节点被配置成控制用于向与介质节点相关联的一个或多个持久性存储元件存储或从其访问数据的数据访问操作。每个数据节点包括至少一个硬件处理器,该硬件处理器被配置成对将存储在介质节点的持久性存储元件中的一个或多个中的数据执行数据平面功能和控制平面功能,其中其特征在于以下各项其中至少一个:(i)数据节点中的给定数据节点的数据平面功能被隔离且由不同的硬件处理器执行,以及(ii)数据节点中的给定数据节点的控制平面功能被隔离且由不同的硬件处理器执行。
本发明的其它实施方式在并非限制的情况下包括方法、计算机网络、系统和包括处理器可读存储介质的制品。
附图说明
图1示意性地图示出根据本发明的实施方式的实现具有隔离的控制平面和数据平面架构的数据存储系统的计算系统。
图2示意性地图示出根据本发明的实施方式的具有隔离数据平面架构的数据存储系统。
图3示意性地图示出根据本发明的实施方式的具有隔离控制平面和数据平面架构的数据存储系统。
图4示意性地图示出根据本发明的另一实施方式的具有隔离控制平面和隔离数据平面架构的数据存储系统。
图5示意性地图示出根据本发明的再一实施方式的具有隔离控制平面和隔离数据平面架构的数据存储系统。
图6示意性地图示出根据本发明的实施方式的基于图2的架构的数据存储系统的特定实现。
图7示意性地图示出根据本发明的实施方式的被配置成执行加速数据平面功能的网络接口卡。
图8示意性地图示出根据本发明的实施方式的基于图4的架构的数据存储系统的特定实现。
图9示意性地图示出根据本发明的实施方式的可以在数据存储系统中实现的介质节点。
图10示意性地图示出根据本发明的另一实施方式的可以在数据存储系统中实现的介质节点。
图11示意性地图示出根据本发明的实施方式的模块化数据存储系统。
具体实现
现在将针对计算系统和特别地包括具有隔离控制平面和/或隔离数据平面架构的数据存储系统的计算系统,来更详细地描述说明性实施方式。本文所述的实施方式提供了可扩展的数据存储架构,其中用于数据存储系统的控制平面功能和/或数据平面功能被隔离并在不同的硬件处理器上执行,以提供高效、高性能、可缩放的存储或融合基础设施解决方案,该解决方案利用例如优化处理器、基于协处理器的(固定功能)加速、分布式处理器以及分布式结构技术。
应理解的是,在本文所使用的术语“计算系统”意图被宽泛地理解,从而涵盖例如包括多个联网处理设备的任何系统,诸如数据中心或任何私用或公共云计算系统或企业网。此外,在本文所使用的术语“数据存储系统”意图被宽泛地理解,从而涵盖例如任何类型的数据存储系统或数据存储系统的组合,包括但不限于存储区域网(SAN)系统、网络附加存储(NAS)系统、Hadoop分布式文件系统(HDFS)以及包括聚类或分布式虚拟和/或物理基础设施的其它类型的数据存储系统。
在本文所使用的术语“硬件处理器”意图被宽泛地理解,从而涵盖所有类型的处理器,例如包括(i)通用处理器,其包括“性能核”(例如,低等待时间核),以及(ii)优化处理器,其包括多个“吞吐量核”和/或多个基于硬件的加速器(例如,协议端接(protocoltermination)、密码、压缩、去重、RAID等)的任何可能组合。优化处理器的示例包括例如图形处理单元(GPU)、数字信号处理器(DSP)、片上系统(SoC)、专用集成电路(ASIC)以及现场可编程门阵列(FPGA)以及被配置成执行一个或多个固定功能的其它类型的专用处理器或协处理器。术语“硬件加速器”宽泛地指代执行“硬件加速”,以比在更加通用处理器上运行的软件执行某些功能所可能的情况更快地且更高效地执行此类功能。
此外,在本文所使用的术语“控制平面”指代被执行以控制通过数据存储系统的数据流动(例如系统的“信令”)的一组控制功能。此外,在本文所使用的术语“数据平面”(也称为“转发平面”)指代在数据流过数据存储系统时该数据所经过的处理路径(例如,对从网络实体接收到并存储在数据存储系统中的数据所执行的一系列数据处理功能,或者对从数据存储系统访问并被发送到请求数据的某些网络实体的数据所执行的一系列数据处理功能)。
另外,在本文针对控制平面功能所使用的术语“隔离”指代将控制平面隔离(例如,分离)成控制平面功能的两个或更多不同集合(每个集合包括一个或多个控制平面功能)的概念,其中控制平面功能的每个集合在不同的硬件处理器上实现。同样地,在本文针对数据平面功能所使用的术语“隔离”指代将数据平面隔离(例如,分离)成数据平面功能的两个或更多不同集合(每个集合包括一个或多个数据平面功能)的概念,其中数据平面功能的每个集合是在不同的硬件处理器上实现的。根据如本文所讨论的本发明的实施方式,将控制平面功能和/或数据平面功能到功能隔离成不同集合是基于一个或多个区别准则,诸如给定硬件处理器上的给定功能的执行效率。
图1示意性地图示出根据本发明的实施方式的实现具有隔离控制平面和数据平面架构的数据存储系统的计算系统。特别地,图1示意性地图示出计算机网络100,其包括多个客户端设备110-1、110-2、...、110-n(统称为客户端设备110)、网络120以及计算系统130。计算系统130包括多个应用服务器140-1、140-2、...、140-i(统称为应用服务器140)以及数据存储系统150。数据存储系统150包括分布式系统,其具有多个数据节点152-1、152-2、...、152-j(统称为数据节点152)、多个控制节点154-1、154-2、...、154-k(统称为控制节点154)以及多个介质节点156-1、156-2、...、156-m(统称为介质节点156)。
在本发明的一个实施方式中,介质节点156包括数据存储单元,其被配置成控制用于向与介质节点156相关联的一个或多个持久性存储元件存储或从其访问数据的数据访问操作。可以使用一个或多个不同类型的持久性存储设备(诸如HDD(硬盘驱动器)、闪速存储设备、磁盘存储设备、SSD(固态驱动)设备或其它类型和组合的非易失性存储器)来实现持久性存储元件。
数据节点152包括计算节点(例如,服务器节点),其被配置成使用一个或多个硬件处理器来执行数据平面功能。根据本发明的实施方式,数据存储系统150中的数据节点152中的一个或多个实现一个或多个优化硬件处理器(例如,硬件加速器),以高效地执行数据平面的一个或多个数据平面功能。控制节点154包括计算节点(例如,服务器节点),其被配置成使用一个或多个硬件处理器来执行控制平面功能。根据本发明的实施方式,利用控制节点154来执行与在数据节点152上执行的其它控制平面功能隔离的一个或多个控制平面功能(例如,全局控制平面功能),并从而通过在控制节点154上执行此类控制平面功能(例如,全局控制功能)来增加系统性能和效率。
在一个实施方式中,计算系统130可以包括一个或多个数据中心,其执行数据计算和数据存储功能,以支持与私用或公共实体相关联的一个或多个网络应用程序和/或在线服务。在另一实施方式中,计算系统130可以包括私用或公共商务企业网,其托管并管理被多个同时连接的本地或远程用户使用的客户或商业应用程序。根据计算系统130的实现,应用服务器140被配置成例如执行商业逻辑、执行脚本和服务,以查询数据并执行托管,并向多个终端用户、服务提供商和/或组织递送客户或商业应用程序和服务所需的其它计算功能。
在另一实施方式中,计算系统130可以由使用管理程序(hypervisor)来实现并在数据节点152、控制节点154和/或介质节点156中的一个或多个执行的多个虚拟机(VM)构成。如在本领域中已知的,虚拟机是可以在一个或多个物理计算元件(例如,服务器、计算机或其它处理设备)上实例化的逻辑处理元件。也就是说,“虚拟机”一般地指代以与物理机类似的方式执行程序的机器(即,计算机)的软件实现。因此,不同的虚拟机可以在同一物理计算机上运行不同的操作系统和多个应用程序。管理程序是更一般地称为“虚拟化基础设施”的物品的示例。管理程序在物理基础设施(例如,CPU和/或存储设备)上运行。可以用来实现本发明的一个或多个实施方式中的计算系统130的各部分的商业可获得的管理程序平台的示例有vSphereTM,其可具有诸如vCenterTM之类的关联虚拟基础设施管理系统。底层物理基础设施可以包括一个或多个分布式处理平台,其包括存储产品,诸如和Symmetrix两者都可从EMC公司(马萨诸塞州的Hopkinton)购买。
客户端设备110可以包括例如台式计算机、膝上型计算机、PDA(个人数字助理)、智能电话、电子平板电脑或使得用户或其它实体能够经由网络120来访问计算系统130的其它类型的计算设备。网络120可以包括例如诸如因特网之类的全球计算机网络,广域网(WAN)、局域网(LAN)、卫星网络、电话或电缆网、蜂窝式网络、诸如Wi-Fi或WiMAX之类的无线网络或这些及其它类型的网络的各种部分或组合。在本文所使用的术语“网络”因此意图被宽泛地理解成涵盖多种不同的网络布置,包括可能是不同类型的多个网络的组合。关于这一点,在某些实施方式中的网络120因此包括多个不同类型的通信网络的组合,每个通信网络包括被配置成使用网际协议(IP)或其它相关通信协议的网络设备。网络120包括中间点(诸如路由器、交换机等)和形成网络骨干以建立通信路径并启用网络端点之间的通信的其它元件。
在本发明的一个实施方式中,数据存储系统150被配置成作为存储网络以提供针对可以被存储并被应用服务器140访问的数据的集中式储存库。更具体地,在本发明的一个实施方式中,数据节点152、控制节点154以及介质节点156包括多个网络连接节点,其共同地提供可以被应用服务器140利用的存储资源池。数据存储系统150包括分布式数据存储器系统,其中数据节点152被耦合到控制节点154和介质节点156,并使用各种类型的通信和存储协议而与控制节点154和介质节点156通信,如下面更详细地讨论的。
数据节点152包括一个或多个硬件处理器,其被配置成对将被存储在持久性存储元件中的一个或多个中的数据以及对从所述持久性存储元件中的一个或多个访问的数据,执行数据平面功能和控制平面功能。根据本发明的实施方式,数据节点152中的一个或多个数据节点的数据平面功能被隔离并在一个或多个数据节点152和/或介质节点156中的一个或多个介质节点上的不同硬件处理器上执行。在本发明的其它实施方式中,控制平面功能被隔离并在驻留于数据节点152、控制节点154和/或介质节点156中的一个或多个节点上的不同硬件处理器上执行。通过将数据平面和/或控制平面功能隔离,并将隔离的数据平面和/或控制平面功能分布在数据节点152、控制节点154和/或介质节点156上,可以实现可扩展数据存储系统,其中数据平面和或控制平面功能的执行以使得能够实现数据存储系统的高效扩展的方式而被优化和分布。
下面将参考图2-11来更详细地讨论图1的数据存储系统150的各种替换实施方式。例如,图2和6图示出图1的分布式数据存储系统150的实施方式,其中数据平面功能被隔离并由数据节点152上的不同硬件处理器执行。图3、4和8图示出图1的分布式数据存储系统150的实施方式,其中,数据平面功能被隔离并由数据节点152上的不同硬件处理器执行,并且其中控制平面功能被隔离并由数据节点152和控制节点154上的不同硬件处理器执行。图5和11图示出图1的分布式数据存储系统150的实施方式,其中数据平面功能被隔离并由数据节点152和介质节点156上的不同硬件处理器执行,并且其中,控制平面功能被隔离并由数据节点152、控制节点154和介质节点156上的不同硬件处理器执行。应注意的是,在附图中使用相同或类似的参考标号来表示相同或类似的特征、元件或结构,并且因此,将不会针对每个图重复相同或类似特征、元件或结构的详细说明。
图2示意性地图示出根据本发明的实施方式的具有隔离数据平面架构的数据存储系统200。图2的数据存储系统200包括多个服务器计算机210-1、210-2、...210-j(统称为存储服务器210),他们通过包括第一交换机220和第二交换机230的交换式结构(fabric)网络拓扑连接。第一交换机220被配置成经由相应网络链路221将面向客户的工作负荷服务器(例如,应用服务器140,图1)可交换地连接到存储服务器210-1、210-2、...、210-j中的每一个。第二交换机230(例如,扩展交换机结构)被配置成经由网络链路231将存储服务器210-1、210-2、...、210-j可交换地连接在一起。在这方面,第一交换机220包括用以使得能够实现面向客户的工作负荷服务器和存储服务器210-1、210-2、...、210-j之间的通信,而第二交换机230包括用以使得能够实现存储服务器210-1、210-2、...、210-j之间的点对点通信的交换机结构。将理解的是,图2的实施方式包括图1的说明性实施方式,其中数据节点152中的给定数据节点和介质节点156中的给定介质节点被一起容纳在单独的存储服务器机器中,或者另外组成单独的存储服务器机器。
在图2中所示的示例性实施方式中,每个存储服务器210-1、210-2、...、210-j包括各数据节点212-1、212-2、...、212-j以及各介质节点270-1、270-2、...、270-j(统称为数据节点212和介质节点270)。每个数据节点212包括网络接口卡240、结构卡250以及硬件处理器260。每个介质节点270包括存储器控制器272和相应介质设备274。存储器控制器272通过关联通信接口/链路276(例如,串行附接SCSI(SAS)、串行高级技术附件(SATA)等)而连接到相应硬件处理器260。每个存储器控制器272被连接到介质设备274的阵列。例如,如图2中所示,存储器控制器272-1被连接到介质设备274-1(例如,磁盘驱动、闪存设备等)的阵列。存储器控制器272是使用硬件和固件的组合实现的,并被配置成控制并管理被存储到关联介质设备274的以及从其访问的数据的流。
网络接口卡240是使用硬件和固件的组合实现的,并被配置成控制用于各个存储服务器210的数据输入/输出功能。网络接口卡240使得能够使用诸如以太网、光纤信道、WiFi等标准物理层和数据链路层协议来实现与应用服务器及其它网络实体的通信。网络接口卡240使得能够实现同一LAN上的服务器之间的通信或者通过诸如网际协议之类的其它协议的通信。
交换机结构卡250是使用硬件和固件的组合实现的,并被配置成控制且管理存储服务器210与第二交换机230之间的通信链路,以从而使得能够实现存储服务器210之间的点对点通信。结构卡250可包括主机总线适配器(即,插件卡),以使用已知联网协议中的一个或多个将存储服务器210中的相应的一个连接到其它网络设备。在一个实施方式中,可使用用插入到主机服务器210的总线中以传输例如InfiniBand或以太网协议的快速PCI扩展卡来实现结构卡250。
在本发明的一个实施方式中,每个硬件处理器260包括通用处理器,其具有一个或多个处理核以及一般地针对通用处理器实现的其它处理电路。存储服务器210的每个数据节点212对将存储在关联介质节点270的一个或多个介质设备274中的或从其访问的数据执行控制平面功能280和数据平面功能290/292。在图2的示例性实施方式中,针对每个数据节点212,在硬件处理器260上执行控制平面功能280,而数据平面功能290/292被隔离并被不同的硬件处理器执行,例如由硬件处理器260和驻留于网络接口卡240上的至少一个其它硬件处理器来执行。特别地,如图2中所示,数据平面功能包括被硬件处理器260执行的第一组数据平面功能290以及被驻留于网络接口卡240上的优化处理器(诸如硬件加速器)执行的第二组数据平面功能292。
在这方面,图2的实施方式提供了被隔离的加速数据平面框架,其中使用优化处理器(诸如硬件加速器)来实现某些数据平面功能。举例来说,可以使用内置在网络接口卡240中的优化硬件和功能性来实现标准数据平面功能,诸如散列计算、数据压缩以及数据去重功能等。通过从硬件处理器260(例如,通用微处理器)去除某些数据平面功能292(例如,散列、压缩、去重),可以实现每(有效)指令的性能水平增加。可以将此增益实现为增加的应用性能、改善的每美元性能、降低的能量消耗或上述的某些组合。事实上,通过使用优化硬件处理器在网络接口卡240中执行诸如压缩和去重之类的某些数据平面功能,更少量的数据流向硬件处理器260,这在例如此类硬件处理器260被实现为通用处理器时减少了硬件处理器260上的处理负担。此外,通过将数据平面功能跨过被优化成执行某些数据平面功能的一个或多个硬件分布,来实现工作负荷优化。
图3示意性地图示出根据本发明的实施方式的具有隔离控制平面和数据平面架构的数据存储系统300。图3的数据存储系统300类似于图2的数据存储系统200,只是数据存储系统300包括隔离控制平面架构,其中控制平面功能380/382在驻留于存储服务器210上的数据节点212的硬件处理器260与驻留于控制节点310-1、...、310-k(统称为控制节点310)上的一个或多个附加硬件处理器360之间被隔离。
更具体地,如图3中所示,控制节点310-1、...、310-k经由各链路232而耦合到第二交换机230,以使得能够通过第二交换机230实现与存储服务器210的数据节点212的通信。在控制节点310上实现的硬件处理器360被配置成代表存储服务器210执行虚拟控制平面功能382(替换地称为“v控制平面”(vControl Plane)382)。虚拟控制平面功能382包括一个或多个全局控制平面功能,其与在存储服务器210的数据节点212上执行的其它控制屏幕功能380(替换地称为“d控制平面”(dControl Plane)380)隔离。
图3的数据存储框架考虑到这样的事实,即某些控制平面功能(例如,全局控制功能)在存储服务器210之间被共享,并且随着数据存储系统300被缩放,此类控制平面功能的共享变成对于例如存储器或CPU周期的瓶颈。例如,此类控制平面功能包括元数据管理、容器编排以及并未被通过存储存储器210而紧密地耦合到与数据流相关联的数据平面功能的控制或管理的其它控制平面功能。另一方面,用以控制数据平面功能的某些控制平面功能(诸如压缩、去重、协议端接等)通过存储服务器210而紧密地耦合到与数据流相关联的控制平面功能的控制或管理。
关于这一点,在图3的实施方式中,在存储服务器210之间共享的控制平面功能382(例如,全局控制功能)与通过存储服务器210控制数据流的那些控制平面功能380隔离,并实现为控制节点310上的虚拟控制平面功能382。在一个实施方式中,执行虚拟控制平面功能382的硬件处理器360包括低等待时间通用处理器。随着数据存储系统300被缩放成包括更多的存储服务器210,控制功能382(诸如元数据管理)的虚拟化以及虚拟控制功能382在更大数目的控制节点310上的分布使得能够实现更有效的数据管理和系统信息共享。
更具体地,举例来说,元数据管理功能包括构造和管理映射数据结构,其提供关于特定数据被存储在数据存储系统300的介质节点270中的何处以及输入数据将被写入到哪些介质节点270中的信息。随着数据存储系统300被缩放,诸如元数据管理之类的全局控制平面的虚拟化例如使得能够实现对共享数据的更有效控制、管理和访问,并且使存储服务器210之间的通信最小化。随着工作负荷增加,可以在控制节点310中的一个或多个上提供虚拟控制平面382的附加实例,使得虚拟控制平面382可以保持与总体客户工作负荷成比例,从而增加效率。可以将此增加的效率实现为增加的应用性能、改善的每美元性能、降低的能量消耗或上述的某些组合。
图4示意性地图示出根据本发明的另一实施方式的具有隔离控制平面和数据平面架构的数据存储系统400。图4的数据存储系统400类似于图3的数据存储系统300,只是图4中所示的存储服务器210的数据节点212中的每一个均实现了片上系统(SOC)410,该片上系统是在单个集成电路(IC)芯片上整体地包括网络控制器电路、存储器控制器电路以及处理器电路以执行控制平面功能、数据平面功能及其它功能的集成电路。在本实施方式中,每个SOC 410利用一个或多个优化硬件加速器和/或高效的吞吐量处理器来执行隔离的控制平面和数据平面功能。
更具体地,如图4中所示,每个SOC 410包括第一硬件处理器420和第二硬件处理器430。在一个实施方式中,第一硬件处理器420包括例如专用微处理器,其执行控制平面功能380和数据平面功能290。另外,在本发明的一个实施方式中,第二硬件处理器430执行I/O功能440,并且包括例如用以执行数据平面功能292的一个或多个硬件加速器。输入/输出功能440包括由网络接口卡(例如,图2和3的网络接口卡240)执行的功能。关于此,每个SOC 410包括用于实现网络I/O功能的集成网络处理器电路,从而消除了对单独网络接口卡的需要。此外,每个SOC 410包括用以实现介质节点270的存储器控制器272的功能性的集成存储器控制器电路。通过利用SOC410,图4的实施方式例如就较低成本和较少功率消耗而言提供了增强的效率。
图5示意性地图示出根据本发明的另一实施方式的具有隔离控制平面和数据平面架构的数据存储系统500。图5的数据存储系统500类似于图4的数据存储系统,只是数据存储系统500包括结构中心(fabric-centric)架构,其中图4中所示架构中的数据节点212和介质节点270被隔离成可独立缩放、高效且优化的可交换构件块,其中,该构件块是基于优化的结构连接功能元件。
更具体地,如图5中所示,数据存储系统500包括多个数据节点512-1、512-2、...、512-j(统称为数据节点512)以及多个介质节点520-1、520-2、...、520-m(统称为介质节点520)。介质节点520包括存储器控制器电路272和介质设备274,并且在与在其上实现有数据节点512的机器分开的机器上实现。数据节点512和介质节点520分别地经由通信链路231和233连接到第二交换机230,其使得能够实现数据节点512之间的点对点通信,并且其使得介质节点520中的任何一个能够被数据节点512中的任何一个独立地访问。在本实施方式中,至少一个介质节点520包括硬件处理器,其被配置成执行与在至少一个数据节点512上执行的其它控制平面和数据平面功能隔离的一个或多个控制平面和数据平面功能。
特别地,在本发明的一个实施方式中,类似于图4中所示的存储服务器210的数据节点212,图5中的数据节点512每个包括具有第一和第二硬件处理器420和430的SOC 410,其中数据平面功能292和输入/输出功能440(如上文所讨论的)由第二硬件处理器430执行。第一硬件处理器420实现控制平面功能380-1(dControl)和数据平面功能290-1。此外,介质节点520每个包括SOC 530,其包括集成存储器控制器电路272以及用以实现控制平面功能380-2(dControl)和数据平面功能290-2的硬件处理器电路。
例如,在一个实施方式中,控制平面功能380-1和380-2共同地包括图4中所示的控制平面功能380,但是其中控制平面功能380被隔离,以使得某些控制平面功能380-1在数据节点512上执行,并且其它控制平面功能380-2在介质节点520上执行。同样地,数据平面功能290-1和290-2共同地包括图4中所示的数据平面功能290,但是其中,数据平面功能290被隔离,以使得某些数据平面功能290-1在数据节点512上执行,并且其它数据平面功能290-2在介质节点520上执行。
在本实施方式中,数据平面功能290-2和控制平面功能380-2在给定介质节点520上执行,以处理与在给定介质节点520上实现的介质设备274的一个或多个类型相关联的一个或多个功能,例如,被紧密耦合到存储协议的功能。例如,针对Hadoop存储协议,在给定介质节点520上执行的数据平面功能290-2和控制平面功能380-2可以包括Hadoop映射减少(Hadoop Map Reduce)功能,该Hadoop映射减少功能用以本地执行映射任务并减少给定介质节点520上的任务,并从而在将数据存储到介质设备274的集群时提供“近程数据”处理的。
图5的结构中心数据存储熊实施方式提供许多优点。例如,数据存储系统500可以被以系统构件块的改善的独立性进行缩放(例如,缩小和扩展),以提供最大的灵活性和未来可升级性。特别地,可以通过例如添加附加数据节点512(扩展)和/或向数据节点512添加更多的计算资源(例如,处理器、RAM等),而独立于介质节点520对数据节点512进行缩放。同样地,可以通过例如添加附加介质节点和/或向介质节点520添加更多计算资源(例如,处理器、RAM等)而独立于数据节点512对介质节点520进行缩放。在这方面,图5的结构中心数据存储系统实施方式可以通过可交换的结构连接构件元件的实现,而而容易地实现工作负荷优化处理的灵活性。
此外,基于结构连接构件块的图5的数据存储系统架构还可以是用于集中基础设施解决方案的基础,下文中将参考图11来更详细地讨论其示例性实施方式。可以基于其它处理高效元件来实现附加类型的结构连接构件块,所述其它处理高效元件诸如是提供对其它类型工作负荷以及近程数据处理的支持的图形计算单元(GPGPU)上的通用计算、数据信号处理器(DSP)或现场可编程门阵列(FPGA)。
根据本发明的实施方式,数据平面和/或控制功能的隔离及多样化硬件处理能力的利用使得能够使用适当的硬件处理器来高效地执行数据平面和/或控制平面功能,并且从而获得数据存储处理方面的效率。事实上,如上文所讨论的,可以在专业化的固定功能硬件加速器上执行某些数据平面功能。此外,可以在高效吞吐处理器上执行某些控制和数据平面功能算法。另外,可以将虚拟化控制平面功能(其在多个存储服务器之间被共享)与控制平面隔离,并且在服从虚拟化和动态配置的低等待时间通用微处理器上执行。
此外,本发明的实施方式有利地使得能够实现数据存储系统的有效缩放和配置。事实上,可以基于存储介质的量而适当地配置固定点加速能力、网络带宽以及控制平面存储器(其是介质尺寸的函数)。另外,可以基于工作负荷来配置虚拟控制平面实例。此外,结构连接构件块(例如,图5、图11)允许将数据存储系统配置用于高效缩小或/和扩展的情形。
如上所述,控制平面功能和/或数据平面功能到不同功能集合的隔离可以是基于一个或多个区别准则,诸如给定硬件处理器上的给定功能的执行效率。事实上,可以考虑各种因素来确定什么数据平面和/或控制平面功能性将从例如通用微处理器核移动至能量高效的通用核、专用核(例如GPU/DSP)和专用协处理器/加速器。将此类功能隔离并在不同硬件处理器上执行时的主要考虑是改善性能和TCO(拥有的总成本),其中在高可用性和用于输送例如应用程序和/或数据的单位进程方面测量TCO。可以考虑各种方法来识别哪些控制平面和/或数据平面功能将被隔离并移动至针对执行此类功能而被优化的不同处理器。
例如,隔离的主要目标是减少通过使用最高效处理平台来执行某些工作负荷而被执行的每个功能所消耗的能量的量。应当利用为避免过多的数据移动(例如,导线加速器中的凸块是优先的)所给予特殊考虑,将数据平面和控制平面功能性表示为如实际那样并行的。在一个实施方式中,优化以识别可以卸载到专用硬件的任何重复、显著的数据平面功能而开始。此类数据平面功能的示例包括例如散列、压缩、解压缩、加密、解密、擦除编码以及施加于数据流的任何其它变换。在这方面,应当给予适当考虑,以便理解整体申请的系统上下文内的处理的显著性。
除程序员所空开的工具之外,还可以利用各种分级关键路径分析工具来识别任何自然并行性。这些工具可以估计用于使区域并行化的可能性,并且提供在被并行化时可能具有最大性能影响的特定区域的排列顺序。可以利用此知识来产生更多并行代码。开发可以跨较高核计数架构运行的代码是改善性能和TCO的关键组成部分。
最后,可以将并非特别等待时间敏感的功能的任何线程视为用于迁移到针对每指令的能量优化的处理器核的良好候选。另外,现代的Linux调度程序是可用的,例如,其跟踪用于单独进程的平均负荷。此类运行时分析可以帮助基于执行简档来识别其它迁移候选。
应理解的是图2、3、4和5描绘了根据本发明的实施方式的用于实现数据存储系统的高级架构。可以使用各种类型的联网、数据存储以及通信接口协议来实现此类数据存储系统。图6示意性地图示出根据本发明的实施方式的基于图2架构的数据存储系统的特定实现。如图6中所示,在本发明的一个实施方式中,使用以太网通信协议和关联硬件(诸如千兆比特以太网(GbE)或10G比特以太网(10GbE))来实现网络链路221,以使得能够实现与存储服务器210的数据节点212的网络通信。另外,在本发明的一个实施方式中,使用例如InfiniBand(IB)或某些其它适当的计算机联网通信标准和关联硬件(其利用交换式结构拓扑来使得能够实现存储服务器210的数据节点212之间的高性能以及低等待时间通信)来实现网络链路231。
此外,在本发明的一个实施方式中,由经由InfiniBand HBA(主机总线适配器)实现的结构卡250来处理至存储服务器210的数据节点212中的每一个或来至其的IB数据传输。HBA包括硬件I/O适配器,其实现各种低级I/O接口功能,以管理通过通信链路231向存储服务器210和来自于其的数据传输。
如图6中进一步所示,在本发明的一个实施方式中,使用诸如快速外围部件互连(PCIe)之类的高速串行通信接口610或某种其它高速串行计算机扩展总线标准来实现第一硬件处理器260与其它部件(例如,网络接口卡240、结构卡250以及介质节点270)之间的通信。如在本领域中已知的,PCIe是PCI标准的串行版本,其遵守在串行物理和链路层顶部的PCI标准的主机/外围设备加载/存储基于DMA的架构。
在本发明的一个实施方式中,存储服务器210的数据节点212中的每一个包括扇出控制器620,其中,扇出控制器620是硬件部件,其被配置成将硬件处理器260的单个串行I/O端口连接到多个串行结构链路622,多个串行结构链路622被连接到关联介质节点270的相应控制/介质块272/274。应理解的是,图6中所示的元件610、620和622共同地表示图2的通信接口/链路276的实施方式。
此外,存储服务器210的数据节点212中的每一个包括RAM(随机存取存储器)设备630,其被用来存储被硬件处理器260用来执行控制平面功能280和数据平面功能290的数据和程序指令。另外,每个网络接口卡240包括执行I/O功能642和数据平面功能292的硬件处理器640,以及用以存储被用来执行I/O功能642和数据平面功能292的数据和程序指令的RAM设备650。图6的示例性实施方式进一步图示出每个控制平面280包括多(n)个控制平面功能(C0、C1、C2、...、Cn),并且每个数据平面290/292包括多(n)个数据平面功能(D0、D1、...、Dn),多个数据平面功能是在相应控制平面功能(C0、C1、C2、...、Cn)的控制下执行的。数据平面功能290/292被隔离,以使得一组数据平面功能292(例如,D0和D1)被网络接口卡240上的硬件处理器640执行,并且另一组数据平面功能290在数据节点212的硬件处理器260上执行。下面将参考图7来讨论图6的网络接口卡240中的给定的一个的示例性实施方式。
应理解的是,图6(及其它图)中所示的RAM设备630和650可以包括任何类型的RAM设备和分级RAM架构,其可以是系统存储器的一部分。RAM设备630和650或其部分可充当指令和/或数据高速缓冲存储器(例如,层级1、层级2、层级3等)。RAM设备630和650存储程序指令和/或数据,其被各硬件处理器260和640读取和处理,以执行与存储处理相关联的各种功能(例如,数据平面功能、控制平面功能、I/O功能等)。
具有其上有形地包含的此类程序代码的RAM设备630和650(以及本文所述的其它存储设备)是在本文中更一般地称为处理器可读存储介质的物品的示例。包含有程序代码的处理器可读存储介质的其它示例包括例如光盘或磁盘。包括此类处理器可读存储介质的制品被视为本发明的实施方式。制品可以包括例如存储设备,诸如存储磁盘、存储阵列或包含存储器的集成电路。在本文所使用的术语“制品”被理解成具体地不包括暂态传播信号。
图7示意性地图示出根据本发明的实施方式的被配置成执行加速数据平面功能的网络接口卡。图7图示出例如图2和6中所示的网络接口卡240的示例性实施方式。如图7中所示,智能网络接口卡700包括PHY模块710、网络硬件处理器720、RAM设备730以及串行I/O接口740。网络硬件处理器720包括MAC模块750、用以实现第一数据平面功能(例如,压缩)的第一硬件处理器核760、用以实现第二数据平面功能(例如,去重)的第二硬件处理器核770以及数据分组发生器电路780。
PHY模块710表示网络通信的OSI(开放系统互连)模型的物理层(层1),其中,PHY模块710包括用以实现物理层功能的电路。PHY模块710将MAC模块750互连到物理网络介质221(例如,光纤或以太网电缆等)。特别地,物理层包括用于传输数据流的布线、光纤、网卡及其它物理元件。MAC模块750是OSI堆栈的“数据链路”层(层2)的子层,其被配置成将数据分组编码和解码成比特。MAC模块750包括介质接入控制器(例如,硬件控制器),用以实现寻址和信道接入控制功能以支持诸如以太网之类的共享介质上的多个节点之间的通信。例如,MAC模块750被配置成识别包括在通过网络221接收或传输的分组帧内的源和目的地MAC地址(例如,48比特标识符)。
在本发明的一个实施方式中,网络硬件处理器720包括一个或多个硬件加速器(例如,核760和770),用以执行与在存储服务器的主CPU(硬件处理器)上执行的数据平面功能隔离的一个或多个数据平面功能的固定功能加速。除使用I/O功能通过智能网络接口卡700来路由并由其处理的网络流量之外,在网络硬件处理器720中实现专用硬件和可编程加速器的组合,以将否则将由存储服务器上的通用CPU执行的一个或多个数据平面功能卸载。
例如,智能网络接口卡700实现标准I/O功能,以例如端接网际协议,诸如融合以太网RDMA(RoCE)。RoCE是使得能够通过以太网实现RDMA(远程直接存储器访问)的网络协议,其中,RDMA是在不使用计算机操作系统的情况下从一个计算机的存储器到另一计算机的存储器的直接存储器访问。RDMA允许在例如分布式数据存储系统中的高吞吐量、低等待时间联网。
接下来,如图7中所示,在输入流被MAC模块750接收并处理以恢复原始数据之后,原始数据被存储在RAM 730中,并且网络硬件处理器720继续执行附加协同处理,以执行一个或多个数据平面功能。例如,在本发明的一个实施方式中,网络硬件处理器720被配置成使用第一硬件加速器核760对从RAM 730存取的原始数据的第一拷贝(Copy1)执行数据压缩功能,并使用第二硬件加速器核770对从RAM 730访问的原始数据的第二拷贝(Copy2)执行去重功能。如在本领域中已知的,数据去重功能是用以消除重复数据的重复拷贝的专用数据压缩技术,并且导致散列的生成。
在一个实施方式中,可以由各硬件加速器核760和770并行地执行数据压缩和去重数据平面功能。在网络硬件处理器720上的数据平面功能(例如,数据压缩和去重)的执行期间,可以在存储服务器的另一硬件处理器(例如,主CPU)上执行与数据平面功能相关联的低级控制平面,同时可以将与数据平面功能相关联的控制数据(及其它数据,诸如中间结果)临时地存储在RAM 730中并由硬件加速器核760和770访问以执行此类功能。
处理结果(例如,散列数据和压缩数据)然后被发送到数据分组发生器780,其将输出数据组合成包括第一部分782-1和第二部分782-2的数据分组782。第一部分782-1包括来自第一硬件加速器核760的数据输出(压缩数据),并且第二部分782-2包括来自第二硬件加速器核770的数据输出(散列数据)。网络硬件处理器720然后使用串行接口740(例如PCIe接口)将数据分组782(经由DMA)传输到存储服务器的硬件处理器(例如,CPU)的主存储器。
图7的实施方式提供了在处理效率和降低的能量消耗方面的各种优点。例如,将执行诸如去重和数据压缩之类的复杂数据平面功能的责任从主CPU(例如,通用微处理器)卸载到硬件加速器核导致例如从网络接口卡700到主CPU的流量降低、主CPU的存储器带宽压力的减小以及主CPU的高速缓存器命中率的改善。
图8示意性地图示出根据本发明的实施方式的基于图4的架构的数据存储系统的特定实现。图8的示例性实施方式与图6的相似之处在于,例如使用以太网通信协议和关联硬件来实现网络链路221,并且使用例如InfiniBand或某个其它适当计算机联网通信标准和关联硬件来实现网络链路231。此外,使用InfiniBand来实现到控制节点310的网络链路232。另外,在本发明的一个实施方式中,由包括InfiniBand HBA的结构卡250来处理到每个控制节点310和来自于其的IB数据传输。
如图8中进一步所示,在本发明的一个实施方式中,使用诸如PCIe之类的高速串行通信接口810来实现SOC 410与每个存储服务器210中的其它部件(例如,结构卡250以及介质节点270)之间的通信。另外,在每个控制节点310中,使用诸如PCIe之类的相同高速串行通信接口810来实现硬件处理器360与结构卡250之间的通信。
此外,类似于图6的实施方式,图8中的存储服务器210的每个数据节点212包括扇出控制器820,其被配置成将SOC 410的单个串行I/O端口连接到多个串行接口链路822,所述多个串行接口链路822被连接到相应介质节点270的相应控制器/介质块272/274。应理解的是,在本发明的一个实施方式中,可以在各SOC 410上实现介质节点270的扇出控制器820、结构链路822以及存储器控制器272(如在图4的实施方式中)。
此外,存储服务器210的每个数据节点212包括RAM设备830,其被SOC 410上的处理器电路(例如,硬件处理器420和430,图4)用来存储数据和程序指令,以便由SOC 410的硬件处理器执行各种功能(例如,I/O功能440、数据平面功能290/292以及控制平面功能380,图4)。另外,每个控制节点310实现RAM设备840,该RAM设备840被硬件处理器360用来存储被用来执行虚拟控制平面功能382的数据和程序指令。
图9示意性地图示出根据本发明的实施方式的可以在数据存储系统中实现的介质节点。特别地,图9示出了包括存储器控制器910和非易失性存储器设备阵列920的介质节点900。在一个实施方式中,存储器控制器910是使用硬件和固件的组合实现的,并被配置成控制并管理存储到非易失性存储器设备阵列920中的一个或多个存储器设备的和从其访问的数据的流。
在本发明的一个实施方式中,非易失性存储器设备阵列920包括闪存设备阵列,所述闪存设备阵列被连同实现存储器控制器910的功能的IC芯片一起安装在应用板上。非易失性存储器设备阵列920可以包括其它类型的非易失性存储器设备,并被使用已知技术与存储器控制器电路910封装在一起。图9的介质节点900可以用来实现例图1的介质节点156中的一个或多个以及图2和3中所示的介质节点270中的一个或多个。可以使用介质节点900作为构件块来构造模块化数据存储系统,如下面参考图11更详细地描述的。
图10示意性地图示出根据本发明的另一实施方式的可以在数据存储系统中实现的介质节点。特别地,图10示出了包括SOC 1010和非易失性存储器设备阵列1020的介质节点1000。SOC 1010包括存储器控制器1012、RAM设备1014以及用以执行隔离的控制平面功能1016和数据平面功能1018的硬件处理器电路。在一个实施方式中,存储器控制器1010是使用硬件和固件的组合在SOC 1010上实现的,并被配置成控制并管理存储到非易失性存储器设备阵列1020中的一个或多个存储器设备的和从其访问的数据流。类似于上文所讨论的图5的实施方式中的介质节点520,可以将图10的介质节点1000视为“智能”介质节点,其实现例如被紧密地耦合到由介质节点1000实现的存储协议的某些控制平面功能1016和关联数据平面功能1018,或者在将数据存储到存储器设备1020中的一个或多个时提供“近程”处理的功能。此类近程数据处理提供例如增加的处理效率和减少的网络流量。
在本发明的一个实施方式中,非易失性存储器设备阵列1020包括连同SOC 1010一起安装在应用板上的闪存设备阵列。非易失性存储器设备阵列1020可包括其它类型的非易失性存储器设备,其被使用已知技术与SOC 1010封装在一起。图10的介质节点1000可以用来实现例如图1的介质节点156中的一个或多个以及图5中所示的介质节点520中的一个或多个。可以使用介质节点1000作为构件块来构造模块化数据存储系统,如图11中所示。
特别地,图11示意性地图示出根据本发明的实施方式的模块化数据存储系统1100。模块化数据存储系统1100实现例如智能介质节点、优化硬件处理器、智能I/O适配器和全局控制处理器的组合,其全部通过点对点结构互连,提供高度可缩放的模块化结构中心架构。更具体地,如图11中所示,模块化数据存储系统1100包括多个数据节点1110、多个控制节点1120、多个介质节点1130、接口适配器1140、结构I/O控制器1150、结构平面1160以及至少一个冗余结构I/O控制器1152和冗余结构平面1162。
在一个实施方式中,数据节点1110每个包括SOC 1112和RAM设备1114。类似于上文所讨论的实施方式,SOC 1112包括用以实现一般地由网络接口卡和结构卡执行的I/O功能的集成电路以及用以执行数据平面和控制平面功能的一个或多个硬件处理器(例如,硬件加速器和/或其它优化硬件处理器)。例如,在每个SOC 1112中,可以将数据平面功能隔离并在针对执行不同数据平面功能而优化的不同类型的硬件处理器(例如,在SOC 1112上形成的异构核)上执行。另外,RAM设备1114被配置成存储数据和程序指令,所述数据和程序指令被SOC 1112上的集成电路用来执行数据节点1110所支持的各种功能,诸如I/O功能、数据平面功能以及控制平面功能。
此外,在一个实施方式中,控制节点1120每个包括SOC 1122和RAM设备1124。类似于上文所讨论的实施方式,SOC 1122包括用以实现一般地由结构卡执行的I/O功能的集成电路以及用以执行虚拟控制平面功能(vControl Plane)的一个或多个硬件处理器(例如,通用微处理器),所述虚拟控制平面功能与由数据节点1110所执行的控制平面功能(dControl Plane)隔离,并且分布在两个或更多控制节点1120上。另外,RAM设备1124被控制节点1120用来存储数据和程序指令,所述数据和程序指令被SOC 1122上的集成电路用来执行在控制节点1120上实现的各种功能,诸如I/O功能和虚拟控制平面功能。
在本发明的一个实施方式中,可以使用诸如图9中所示的介质节点框架900来实现介质节点1130中的一个或多个。在本发明的另一实施方式中,可以使用诸如图10中所示的介质节点框架1000来实现介质节点1130中的一个或多个,其中,至少一个介质节点1130包括硬件处理器,该硬件处理器被配置成执行由于如上文所讨论的的原因而与在数据节点1110上执行的其它控制平面和数据平面功能隔离的一个或多个控制平面和数据平面功能。在本发明的另一实施方式中,可以使用一个或多个介质节点900(图9)和一个或多个智能介质节点1000(图10)的组合来实现图11的模块化数据存储系统1100。
在本发明的一个实施方式中,接口适配器1140实现一个或多个标准接口,所述一个或多个标准接口使得模块化数据存储系统1100能够连接到一个或多个直接附接的存储节点并与之通信。例如,在本发明的一个实施方式中,接口适配器1140包括结构至SAS适配器,结构至SAS适配器使得模块化数据存储系统1100能够使用相应SAS连接器1172连接到一个或多个磁盘阵列盒(DAE)。每个DAE 1170包括相互上下堆叠的硬盘阵列。接口适配器1140向模块化数据存储系统1100提供附加的可缩放性。
数据节点1110、控制节点1120、介质节点1130以及接口适配器1140全部被连接到结构平面1160以及冗余结构平面1162。此结构框架使得能够实现通过结构平面1160在数据节点1110、控制节点1120、介质节点1130以及接口适配器1140之间(和冗余屏幕1162,在必要时)的点对点通信。此外,结构I/O控制器1150和冗余结构I/O控制器1152被配置成使得能够实现与另一数据存储系统的扩展连接和通信。例如,在本发明的一个实施方式中,可以通过将两个或更多的模块化数据存储系统1100中连接在一起来实现数据存储系统,其中模块化数据存储系统1110中的每一个中的数据节点1110、控制节点1120、介质节点1130通过由结构I/O控制器1150和结构平面1160的集合创建的交换结构进行通信。另外,其它模块化单元的控制节点1110可以或者也可以不连接到面度客户工作负荷交换机结构220。
将认识到的是,可以将图11的模块化存储系统1100实现为集成在外壳内以提供独立模块化单元的集中基础设施系统。此外,模块化数据存储系统1110以及在本文中描述的其它数据存储系统实施方式对于分布式环境中的超大规模计算特别有用,因为此类数据存储系统的可扩展性和处理效率可以以成本有效的方式按照需要而容易地适应数据和存储处理工作负荷的量的指数增加。
应理解的是,本发明的上述实施方式仅仅是出于举例说明的目的而提供的。在所示的特定布置中可进行许多改变。例如,虽然在特定系统和设备配置的背景下进行描述,但本技术适用于多种其它类型的信息处理系统、计算系统、数据存储系统、处理设备和分布式虚拟基础设施装置。另外,还应将上文在描述说明性实施方式的过程中进行的任何简化假设应视为示例性的而不是对本发明的要求或限制。在所附权利要求范围内的许多其它替换实施方式对于本领域的技术人员而言将是显而易见的。
附图文字:
图1:
client device 客户端设备
120 网络骨干
application server 应用服务器
data node 数据节点
media node 介质节点
150 具有隔离数据平面和/或控制平面架构的分布式数据存储系统
图2:
customer facing workload 面向客户工作负荷
240 I/O卡
data plane 数据平面
control plane 控制平面
fabric card 结构卡
data plane 数据平面
272-controller 控制器
media 介质
230scale out fabric 扩展结构
图3:
customer facing workload 面向客户工作负荷
v 控制平面
240 I/O卡
292 data plane 数据平面
fabric card 结构卡
dcontrol plane d 控制平面
data plane 数据平面
controller 控制器
media 介质
230scale out fabric 扩展结构
图4:
customer facing workload 面向客户工作负荷
v 控制平面
292 data plane 数据平面
250 fabric card 结构卡
dcontrol plane d 控制平面
data plane 数据平面
controller 控制器
media 介质
230 scale out fabric 扩展结构
图5:
v 控制平面
512-1,512-j
292 data plane 数据平面
250 fabric card 结构卡
dcontrol plane d 控制平面
data plane 数据平面
520-1,520-m
dcontrol plane d 控制平面
data plane 数据平面
controller 控制器
media 介质
230 fabric 结构
图6:
customer facing workload 面向客户工作负荷
212-1,212-j
292 data plane 数据平面
280 control plane 控制平面
290 data plane 数据平面
controller 控制器
media 介质
230 fabric(scale out) 结构(扩展)
图7:
700 智能网络接口卡
221 网络
720 网络处理器
original data 原始数据
760 压缩
770 去重
780 数据分组发生器
图8:
customer facing workload 面向客户工作负荷
212-1,212-j
片上系统
controller 控制器
media 介质
230 fabric(scale out) 结构(扩展)
vcontrol v 控制
图9:
controller 控制器
non-volatile memory 非易失性存储器
图10:
dControl plane d 控制平面
data plane 数据平面
controller 控制器
non-volatile memory 非易失性存储器
图11:
customer facing workload 面向客户工作负荷
1110
dControl plane d 控制平面
data plane 数据平面
1130 介质节点
1140 结构至SAS
1120 vControl plane d 控制平面
scale out 扩展
fabric 结构

Claims (20)

1.一种数据存储系统,包括:
多个介质节点,其中,每个介质节点被配置成控制用于向与之相关联的一个或多个持久性存储元件存储数据或从其访问数据的数据访问操作;
被耦合到所述介质节点的多个数据节点,其中,每个数据节点包括至少一个硬件处理器,所述至少一个硬件处理器被配置成对将被存储在所述持久性存储元件中的一个或多个持久性存储元件中的数据执行数据平面功能和控制平面功能;以及
交换机结构,其被配置成使得能够实现所述数据节点之间的通信;
其中,其特征在于以下各项其中至少一个:(i)所述数据节点中的给定数据节点的数据平面功能被隔离且由不同的硬件处理器执行,以及(ii)所述数据节点中的给定数据节点的控制平面功能被隔离且由不同的硬件处理器执行。
2.根据权利要求1所述的数据存储系统,其中所述不同的硬件处理器包括第一硬件处理器和第二硬件处理器,所述第一硬件处理器和所述第二硬件处理器在位于给定数据节点上的不同集成电路芯片上形成。
3.根据权利要求2所述的数据存储系统,其中所述给定数据节点包括网络接口卡,其中所述网络接口卡包括第一硬件处理器。
4.根据权利要求1所述的数据存储系统,其中所述不同的硬件处理器中的至少一个硬件处理器包括硬件加速器。
5.根据权利要求1所述的数据存储系统,其中所述不同的硬件处理器被集成在片上系统上。
6.根据权利要求1所述的数据存储系统,还包括通过所述交换机结构与所述数据节点通信的控制节点,其中所述控制节点包括硬件处理器,该硬件处理器被配置成代表所述数据节点执行一个或多个虚拟控制平面功能,其中,所述一个或多个虚拟控制平面功能包括与在所述数据节点上执行的其它控制平面功能隔离的一个或多个全局控制平面功能。
7.根据权利要求1所述的数据存储系统,其中至少一个数据节点被直接耦合到关联的介质节点。
8.根据权利要求1所述的数据存储系统,其中至少一个介质节点被连接到所述交换机结构,以使得不同的数据节点能够通过所述交换机结构与所述至少一个介质节点通信。
9.根据权利要求1所述的数据存储系统,其中至少一个介质节点包括硬件处理器,该硬件处理器被配置成执行与在至少一个数据节点上执行的其它控制平面和数据平面功能隔离的一个或多个控制平面和数据平面功能。
10.一种包括根据权利要求1所述的数据存储系统的数据中心。
11.根据权利要求1所述的数据存储系统,其中所述数据存储系统包括集成在外壳内以提供模块化单元的集中基础设施系统。
12.根据权利要求11所述的数据存储系统,其中所述模块化单元还包括用以连接到一个或多个直接附接的存储节点并与之通信的一个或多个接口。
13.根据权利要求11所述的数据存储系统,其中所述模块化单元还包括:
多个通信端口,其被配置成使得能够实现到所述数据节点的网络连接;以及
控制节点,其中所述控制节点包括硬件处理器,该硬件处理器被配置成代表所述数据节点执行一个或多个虚拟控制平面功能,其中所述一个或多个虚拟控制平面功能包括与在所述数据节点上执行的其它控制平面功能隔离的一个或多个全局控制平面功能;
其中所述交换机结构包括结构平面和结构输入/输出控制器,其中所述交换机结构被配置成使得能够通过所述结构平面实现在所述介质节点、所述数据节点与所述控制节点之间的点对点通信,并且其中所述结构输入/输出控制器被配置成使得能够实现与另一数据存储系统的扩展连接和通信;以及
其中至少一个介质节点包括硬件处理器,该硬件处理器被配置成执行与在所述数据节点上执行的其它控制平面和数据平面功能隔离的一个或多个控制平面和数据平面功能。
14.根据权利要求13所述的数据存储系统,其中所述交换机结构还包括冗余结构平面和冗余结构输入/输出控制器。
15.一种方法,包括:
通过数据节点接收将要存储在介质节点上的数据;
在所述数据节点的第一硬件处理器上执行一个或多个数据平面功能,以处理接收的所述数据;
在所述数据节点的第二硬件处理器上执行一个或多个数据平面功能,以处理接收的所述数据;
在所述数据节点的所述第二硬件处理器上执行所述一个或多个控制平面功能,以控制在所述数据节点的所述第一硬件处理器和所述第二硬件处理器上执行的所述一个或多个数据平面功能;以及
将经过处理的所述数据存储在所述介质节点上。
16.根据权利要求15所述的方法,其中所述第一硬件处理器包括至少一个基于硬件的加速器。
17.根据权利要求15所述的方法,还包括使所述数据节点与控制节点通信以代表所述数据节点执行一个或多个虚拟控制平面功能,其中所述一个或多个虚拟控制平面功能包括与在所述数据节点上执行的其它控制平面功能隔离的一个或多个全局控制平面功能。
18.根据权利要求15所述的方法,其中将经过处理的所述数据存储在所述介质节点上包括使所述数据节点通过交换机结构与所述介质节点通信。
19.根据权利要求15所述的方法,还包括在所述介质节点的硬件处理器上执行一个或多个控制平面功能和数据平面功能,其中在所述介质节点上执行的所述一个或多个控制平面功能和数据平面功能与在所述数据节点上执行的其它控制平面功能和数据平面功能隔离。
20.一种包括其中存储有的一个或多个软件程序的程序代码的处理器可读存储介质的制品,其中所述程序代码可被一个或多个硬件处理器设备执行以:
通过所述数据节点接收将要存储在所述介质节点上的数据;
在所述数据节点的第一硬件处理器上执行一个或多个数据平面功能,以处理接收的所述数据;
在所述数据节点的第二硬件处理器上执行一个或多个数据平面功能,以处理接收的所述数据;
在所述数据节点的所述第二硬件处理器上执行一个或多个控制平面功能,以控制在所述数据节点的所述第一硬件处理器和所述第二硬件处理器上执行的所述一个或多个数据平面功能;以及
将经过处理的数据存储在所述介质节点上。
CN201610471278.6A 2015-06-26 2016-06-24 数据存储系统和方法 Active CN106293508B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/751,980 2015-06-26
US14/751,980 US9575689B2 (en) 2015-06-26 2015-06-26 Data storage system having segregated control plane and/or segregated data plane architecture

Publications (2)

Publication Number Publication Date
CN106293508A true CN106293508A (zh) 2017-01-04
CN106293508B CN106293508B (zh) 2019-11-12

Family

ID=57601108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610471278.6A Active CN106293508B (zh) 2015-06-26 2016-06-24 数据存储系统和方法

Country Status (2)

Country Link
US (1) US9575689B2 (zh)
CN (1) CN106293508B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494817A (zh) * 2018-02-08 2018-09-04 华为技术有限公司 数据传输方法、相关装置及系统
CN110750210A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 存储系统
US11916775B1 (en) 2023-03-17 2024-02-27 Netskope, Inc. Multi-tenant cloud native control plane system
US11968269B1 (en) 2023-03-17 2024-04-23 Netskope, Inc. Hybrid tag based virtual private network with scalable next hop convergence

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912752B1 (en) * 2015-06-29 2018-03-06 Amazon Technologies, Inc. Retention-based data management in a network-based data store
US10091295B1 (en) * 2015-09-23 2018-10-02 EMC IP Holding Company LLC Converged infrastructure implemented with distributed compute elements
EP3343843B1 (en) * 2016-12-30 2020-09-30 Alcatel Lucent A control plane system and method for managing a data plane amongst a plurality of equipments
US10606494B2 (en) 2017-04-17 2020-03-31 StorageOS Limited System and method for managing volumes of data in a block storage system as a function of a short condition register and a long condition register
CN107315796A (zh) * 2017-06-19 2017-11-03 北京易华录信息技术股份有限公司 一种基于大数据的交通警情研判分析系统及方法
US10949303B2 (en) * 2017-12-11 2021-03-16 Fungible, Inc. Durable block storage in data center access nodes with inline erasure coding
US10884672B2 (en) 2018-04-02 2021-01-05 Samsung Electronics Co., Ltd. NDP-server: a data-centric computing architecture based on storage server in data center
US10761931B2 (en) 2018-10-24 2020-09-01 Fungible, Inc. Inline reliability coding for storage on a network
US10990478B2 (en) 2019-02-01 2021-04-27 Fungible, Inc. Flexible reliability coding for storage on a network
US11288096B2 (en) * 2019-10-15 2022-03-29 EMC IP Holding Company LLC System and method of balancing mixed workload performance
US11372714B2 (en) 2020-02-27 2022-06-28 Eidetic Communications Inc. System and method for performing erasure coding in a distributed storage system
US11630729B2 (en) 2020-04-27 2023-04-18 Fungible, Inc. Reliability coding with reduced network traffic
US11709699B2 (en) * 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11683372B2 (en) * 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
US11522814B2 (en) 2020-11-24 2022-12-06 International Business Machines Corporation Virtualized fabric login server for storage area network
KR20220087297A (ko) * 2020-12-17 2022-06-24 삼성전자주식회사 처리 코드를 실행하는 스토리지 장치 및 이의 동작 방법
US20230095149A1 (en) * 2021-09-28 2023-03-30 Fortinet, Inc. Non-interfering access layer end-to-end encryption for iot devices over a data communication network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136779A1 (en) * 2012-11-12 2014-05-15 Datawise Systems Method and Apparatus for Achieving Optimal Resource Allocation Dynamically in a Distributed Computing Environment
US8804571B1 (en) * 2012-09-14 2014-08-12 Juniper Networks, Inc. Methods and apparatus for a distributed control plane
CN104135539A (zh) * 2014-08-15 2014-11-05 华为技术有限公司 数据存储方法、sdn控制器和分布式网络存储系统
CN104429028A (zh) * 2013-05-06 2015-03-18 华为技术有限公司 基于sdn的网络配置方法、装置及系统
CN105164975A (zh) * 2013-04-10 2015-12-16 华为技术有限公司 用于控制平面参考模型框架的系统和方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921240B2 (en) 2004-03-10 2011-04-05 Broadcom Corporation Method and system for supporting hardware acceleration for iSCSI read and write operations and iSCSI chimney
EP1934751B1 (en) 2005-08-25 2017-11-08 Lattice Semiconductor Corporation Smart scalable storage switch architecture
CN100555991C (zh) * 2006-12-29 2009-10-28 华为技术有限公司 报文访问控制的方法、转发引擎装置和通信设备
US8243596B2 (en) 2007-06-21 2012-08-14 Intel Corporation Distributing intelligence across networks
US8892783B2 (en) 2009-06-22 2014-11-18 Citrix Systems, Inc. Systems and methods for initialization and link management of NICS in a multi-core environment
US8514856B1 (en) 2010-06-24 2013-08-20 Cisco Technology, Inc. End-to-end fibre channel over ethernet
US8873398B2 (en) 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
US8964601B2 (en) 2011-10-07 2015-02-24 International Business Machines Corporation Network switching domains with a virtualized control plane
US9288555B2 (en) 2011-11-01 2016-03-15 Plexxi Inc. Data center network architecture
US9565159B2 (en) 2011-12-21 2017-02-07 Juniper Networks, Inc. Methods and apparatus for a distributed fibre channel control plane
US9021098B1 (en) * 2012-06-27 2015-04-28 Juniper Networks, Inc. Allocation of interface identifiers within network device having multiple forwarding components
US9049148B1 (en) * 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US8787396B2 (en) 2012-10-04 2014-07-22 International Business Machines Corporation Centralized control and management planes for different independent switching domains
US9110670B2 (en) * 2012-10-19 2015-08-18 Microsoft Technology Licensing, Llc Energy management by dynamic functionality partitioning
US20140115137A1 (en) 2012-10-24 2014-04-24 Cisco Technology, Inc. Enterprise Computing System with Centralized Control/Management Planes Separated from Distributed Data Plane Devices
US9166869B2 (en) 2013-01-14 2015-10-20 International Business Machines Corporation Management of distributed network switching cluster
US9571338B2 (en) 2013-03-14 2017-02-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable distributed control plane for network switching systems
US9436716B2 (en) 2013-05-07 2016-09-06 PLUMgrid, Inc. Method and system for data plane abstraction to enable a network storage platform ecosystem
US9270754B2 (en) 2013-06-06 2016-02-23 Cisco Technology, Inc. Software defined networking for storage area networks
KR20150000160A (ko) 2013-06-24 2015-01-02 한국전자통신연구원 분산 가상 스위치를 이용한 네트워크 구현 방법, 이를 수행하는 네트워크 장치 및 분산 가상 스위치 기반 네트워크 시스템
US9419892B2 (en) 2013-09-30 2016-08-16 Juniper Networks, Inc. Methods and apparatus for implementing connectivity between edge devices via a switch fabric

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8804571B1 (en) * 2012-09-14 2014-08-12 Juniper Networks, Inc. Methods and apparatus for a distributed control plane
US20140136779A1 (en) * 2012-11-12 2014-05-15 Datawise Systems Method and Apparatus for Achieving Optimal Resource Allocation Dynamically in a Distributed Computing Environment
CN105164975A (zh) * 2013-04-10 2015-12-16 华为技术有限公司 用于控制平面参考模型框架的系统和方法
CN104429028A (zh) * 2013-05-06 2015-03-18 华为技术有限公司 基于sdn的网络配置方法、装置及系统
CN104135539A (zh) * 2014-08-15 2014-11-05 华为技术有限公司 数据存储方法、sdn控制器和分布式网络存储系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494817A (zh) * 2018-02-08 2018-09-04 华为技术有限公司 数据传输方法、相关装置及系统
CN108494817B (zh) * 2018-02-08 2022-03-04 华为技术有限公司 数据传输方法、相关装置及系统
CN110750210A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 存储系统
US11916775B1 (en) 2023-03-17 2024-02-27 Netskope, Inc. Multi-tenant cloud native control plane system
US11968269B1 (en) 2023-03-17 2024-04-23 Netskope, Inc. Hybrid tag based virtual private network with scalable next hop convergence

Also Published As

Publication number Publication date
US20160378401A1 (en) 2016-12-29
CN106293508B (zh) 2019-11-12
US9575689B2 (en) 2017-02-21

Similar Documents

Publication Publication Date Title
CN106293508B (zh) 数据存储系统和方法
US11842216B2 (en) Data processing unit for stream processing
US20220351326A1 (en) Direct memory writes by network interface of a graphics processing unit
US20220103530A1 (en) Transport and cryptography offload to a network interface device
US11182322B2 (en) Efficient component communication through resource rewiring in disaggregated datacenters
US10671557B2 (en) Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters
US8572407B1 (en) GPU assist for storage systems
US10637733B2 (en) Dynamic grouping and repurposing of general purpose links in disaggregated datacenters
US11936571B2 (en) Reliable transport offloaded to network devices
CN115237550A (zh) 网络处理资源的池化
US20220086226A1 (en) Virtual device portability
US10873630B2 (en) Server architecture having dedicated compute resources for processing infrastructure-related workloads
US20200358721A1 (en) Buffer allocation for parallel processing of data
US10802988B2 (en) Dynamic memory-based communication in disaggregated datacenters
US20200099664A1 (en) Maximizing resource utilization through efficient component communication in disaggregated datacenters
EP4030284A1 (en) Virtual device portability
Choi et al. Performance evaluation of a remote block device with high-speed cluster interconnects
US11650849B2 (en) Efficient component communication through accelerator switching in disaggregated datacenters
US11163713B2 (en) Efficient component communication through protocol switching in disaggregated datacenters
US10831698B2 (en) Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters
US10915493B2 (en) Component building blocks and optimized compositions thereof in disaggregated datacenters
Deyannis et al. Flying memcache: Lessons learned from different acceleration strategies
WO2024098232A1 (en) Adaptive live migration of a virtual machine for a physical storage device controller
Jadhav et al. Enhancing Virtual Machine Performance in Cloud using Cache as a Service

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200122

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.