缓存型云存储系统与数据读写方法、设备及存储介质
文献发布时间:2024-04-18 19:58:53
技术领域
本申请涉及云计算技术领域,尤其涉及一种缓存型云存储系统与数据读写方法、设备及存储介质。
背景技术
随着数据上云和用户数据的爆发性增长,基于云原生搭建的数据仓库、大数据分析、高性能计算和人工智能(Artificial Intelligence,AI)计算等应用越来越受欢迎。用户的持久化数据通常存放在对象存储或者分布式文件系统中,以保证数据的高可用、规模可扩展性并降低存储成本。但是,对象存储或分布式文件系统通常在数据读写性能上无法满足很多实时性要求较高的计算需求,特别在数据读写的延迟方面。
当前加速数据访问较为常见的方案是在计算节点本地增加固态硬盘(SolidState Disk,SSD)作为本地盘,来缓存计算节点频繁访问的数据或者计算中间产生的临时数据,减少数据读写的延迟,满足数据读写的实时性要求。但是,本地盘的使用,一方面会降低存储计算分离架构的优势,无法实现资源弹性扩展,容易造成计算或存储资源的闲置浪费;另一方面,考虑到本地盘的故障率相对较高,在数据可靠性和可用性上无法很好地满足计算的需求。
发明内容
本申请的多个方面提供一种缓存型云存储系统与数据读写方法、设备及存储介质,用以在保持存算分离架构优势的基础上,降低数据读写的延迟,并确保在数据可靠性和可用性上满足计算需求。
本申请实施例提供一种缓存型云存储系统,包括:云存储管理节点、多个存储节点和部署在计算节点上的云存储接入节点,多个存储节点分别与云存储管理节点和云存储接入节点网络互联;云存储管理节点,用于为计算节点创建缓存型云存储盘,并为缓存型云存储盘中存储的同一数据分片分配至少两个存储节点;云存储接入节点,用于在计算节点向缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中,并在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据;多个存储节点,用于为分配到的数据分片提供存储空间。
本申请实施例还提供一种数据读写方法,应用于缓存型存储系统中的云存储接入节点,云存储接入节点部署在计算节点上,计算节点具有缓存型云存储盘,缓存型云存储盘中存储的同一数据分片被分配到缓存型存储系统中的至少两个存储节点,该方法包括:在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中;在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据。
本申请实施例还提供一种数据写方法,应用于缓存型存储系统中的第一存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第一存储节点对应缓存型云存储盘中存储的第一数据分片,第一数据分片对应缓存型存储系统中的至少两个存储节点,该方法包括:接收写请求和第一数据,第一数据是第一数据分片中的数据;根据写请求,将第一数据写入本地存储介质中;以及在第一存储节点是第一数据分片对应的新分配的存储节点的情况下,向第一数据分片对应的非新分配的存储节点发送复制请求,以从非新分配的存储节点复制第一数据分片中缺失的数据。
本申请实施例还提供一种数据读方法,应用于缓存型存储系统中的第二存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第二存储节点对应缓存型云存储盘中存储的第二数据分片,第二数据分片对应缓存型存储系统中的至少两个存储节点,该方法包括:接收读请求,读请求用于请求读取第二数据分片中的第二数据;在本地存储介质中缺失第二数据分片中的数据,且缺失的数据至少包括第二数据的情况下,从第二数据分片对应的其它存储节点中获取第二数据,并将第二数据返回给读请求的发送方。
本申请实施例还提供一种数据处理方法,应用于缓存型云存储系统中的云存储管理节点,该方法包括:为计算节点创建缓存型云存储盘,缓存型云存储盘用于存储至少一个数据分片;为同一数据分片分配缓存型云存储系统中的至少两个存储节点;记录数据分片分配信息,数据分片分配信息至少包括至少一个数据分片的标识信息和各数据分片对应的至少两个存储节点的标识信息;将数据分片分配信息同步给部署在计算节点上的云存储接入节点和相应存储节点。
本申请实施例还提供一种电子设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以实现本申请实施例提供的数据读写方法、数据读方法、数据写方法以及数据处理方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的数据读写方法、数据读方法、数据写方法以及数据处理方法中的步骤。
在本申请实施例中,提供一种高性能、高弹性的缓存型云存储盘,允许用户在任意的计算节点上挂载使用该缓存型云存储盘,支持存算分离架构,可以实现资源弹性扩展,减少了计算和存储资源的闲置浪费;另外,采用一跳式的数据读写协议,直接对存储节点进行读写,有利于降低数据读写的延迟,与此同时,通过对数据进行分片存储,每个数据分片至少存储在两个存储节点上,相比本地盘,具有更高的数据可靠性和可用性,使得在数据计算和分析上更具性价比,提供更优的用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种缓存型云存储系统的结构示意图;
图1b为本申请示例性实施例提供的一种数据写流程的交互流程图;
图1c为本申请示例性实施例提供的一种数据读流程的交互流程图;
图2为本申请示例性实施例提供的一种数据读写方法的流程示意图;
图3为本申请示例性实施例提供的一种数据写方法的流程示意图;
图4为本申请示例性实施例提供的一种数据读方法的流程示意图;
图5为本申请示例性实施例提供的一种数据处理方法的流程示意图;
图6a为本申请示例性实施例提供的一种数据读写装置的结构示意图;
图6b为本申请示例性实施例提供的一种数据写装置的结构示意图;
图6c为本申请示例性实施例提供的一种数据读装置的结构示意图;
图6d为本申请示例性实施例提供的一种数据处理装置的结构示意图;
图7为本申请示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
针对上述技术问题,在本申请实施例中,提供一种高性能缓存型云存储盘的设计,能够帮助云上的对实时性要求较高的各种计算系统(如,联机事务处理(On-LineTransaction Pro-cessing,OLTP)、数据仓库、数据湖计算、大数据计算、高性能计算、AI计算等)提供高性能、高弹性、按需使用的缓存型云存储盘,用户的各种数据(包括但不限于:持久化数据、频繁访问的数据或者计算中间产生的临时数据等)可以存储在缓存型云存储盘中,相比本地盘,缓存型云存储盘保持了计算分离架构的优势,可以动态调整缓存型云存储盘的容量和性能,实现资源的弹性伸缩,减少了计算和存储资源的闲置浪费,且相比本地盘,具有更高的数据可靠性和可用性,从而使上述计算系统在用户的数据计算和分析上更具性价比和更优的用户体验。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的一种缓存型云存储系统的结构示意图。本申请实施例提供的缓存型云存储盘系统是一种云存储系统,能够为用户提供缓存型云存储盘,通过缓存型云存储盘为用户提供数据存储服务;另外,相比于传统的存储系统,本实施例的缓存型云存储系统,采用一跳式的数据读写协议与副本存储技术,可以在满足可靠性和可用性要求的基础上,降低数据读写延迟,能够满足对实时性要求较高的各种计算系统对读写延迟的性能要求,因此被称为缓存型云存储系统。如图1a所示,该缓存型云存储系统包括:云存储管理节点101、多个存储节点102和部署在计算节点103上的云存储接入节点104。其中,多个存储节点102分别与云存储管理节点101和云存储接入节点104网络互联。在图1a中以存储节点102的数量为4个进行图示,但并不限于此。在图1a中存储节点分别被标记为BS1、BS2、BS3以及BS4。另外,在图1a中,以1个计算节点为例进行图示,但并不限于此,本实施例提供的缓存型云存储系统能够为各个计算节点103提供缓存型存储服务。
在本实施例中,在计算节点103上部署有云存储接入节点104,云存储接入节点104可以作为缓存型云存储系统的服务进程被部署在计算节点103上,用于向运行在计算节点103上的云计算实例(如,虚拟机或容器)提供对缓存型云存储系统的接入服务。具体地,云存储接入节点104可以通过虚拟化技术向云计算实例呈现由缓存型云存储系统为其提供的缓存型云存储盘;用户可以向云计算实例发送输入/输出(Input/Output,IO)读写请求,云计算实例向云存储接入节点104发送IO读写请求;云存储接入节点104可以接收云计算实例对缓存型云存储盘的IO读写请求,将IO读写请求发送给缓存型云存储盘对应的端存储集群,在收到存储集群的应答结果后把应答结果返回给云计算实例,如虚拟机或容器。其中,云存储接入节点104可以通过计算节点103上负责管理云计算实例的虚拟化管理器与云计算实例进行交互。虚拟化管理器可以是虚拟机监测器(Virtual Machine Monitor,VMM),也可以称为Hypervisor。可选地,Hypervisor或VMM具体可实现为虚拟操作系统模拟器(QuickEMUlator,QEMU)或者Vmware,但并不限于此。
其中,后端存储集群包含云存储管理节点101和多个存储节点102。可选地,云存储管理节点101可以实现为云硬盘管理服务器(BlockMaster,BM),存储节点102可以实现为云硬盘数据服务器(BlockServer,BS)。存储节点102或BS是计算节点上云计算实例所需缓存型云存储盘的承载体,负责数据读写和数据复制/同步。如图1a所示,计算节点103与存储节点102之间是一跳式网络,计算节点103通过云存储接入节点104只需将数据存储到存储节点102上即可。云存储管理节点101或BM管理缓存型云存储盘的元数据,并负责相应的缓存型云存储盘的数据分片(segment)到相应BS的映射管理和切换调度。BM和BS相互配合,通过高可用(Highly Available,HA)技术保证整个缓存型云存储系统的可用性和可靠性满足应用需求。在具体部署实现上,BM可以和BS共同部署在一台物理设备(例如同一存储设备)上,或者,BM和BS部署在不同的物理设备上。
下面对本申请实施例中云存储管理节点101、存储节点102以及云存储接入节点104的详细功能进行描述。
在本实施例中,云存储管理节点101一方面负责为计算节点103创建缓存型云存储盘,并维护缓存型云存储盘的元数据。例如,租户为计算节点上的云计算实例创建缓存型云存储盘,可以将租户标识、所需缓存型云存储盘的大小以及性能要求等信息提供给云存储管理节点101,由云存储管理节点101根据租户的需求,为租户的计算节点创建缓存型云存储盘,并维护缓存型云存储盘的元数据。其中,缓存型云存储盘的元数据可以包含但不限于:存储盘标识(diskid)、存储盘大小(disk size)、租户标识(userid)、创建时间(createtime)、存储盘的单位读写次数(diskInput/Output Operations Per Secondcapacity)、存储盘吞吐量(disk throughput capacity)以及存储盘状态(disk status)等,可表示为(diskid,disk size,userid,create time,disk IOPS capacity,disk throughputcapacity,disk status)。缓存型云存储盘用于为计算节点上的云计算实例提供存储服务,例如,存储计算节点103上的云计算实例产生的各种数据。
在本实施例中,缓存型云存储盘可以采用逻辑块寻址(Logical BlockAddressing,LBA)方式进行寻址,整个存储空间被分为多个LBA区间,并通过这些LBA区间存储一定量的数据。在本实施例中,从缓存型云存储盘所能存储的数据维度,将缓存型云存储盘所能存储的数据进行分片,得到至少一个数据分片(segment),每个数据分片包括缓存型云存储盘的一个或多个LBA区间中的数据。每个数据分片所对应的LBA区间的大小并不限定,例如,可以是4GB、8GB或16GB等大小的LBA区间。需要说明的是,数据分片中的数据也好,缓存型云存储盘所能存储的数据也好,既包括已经存储至缓存型云存储盘中的数据,也包括尚未存储到缓存型云存储盘中的数据,只要是缓存型云存储盘所能存储的数据即可。LBA的地址信息可以与读写请求的地址信息进行映射,以实现对缓存型云存储盘的读写。在本实施例中,云存储管理节点101可以动态改变数据分片与LBA区间之间的划分方式。
在本实施例中,为了保证缓存型云存储系统的可靠性和可用性能够满足应用需求,采用基于多副本的数据冗余技术。具体地,云存储管理节点101可以为同一数据分片分配至少两个存储节点102,以将该数据分片存储到至少两个存储节点上,保障数据的可靠性和可用性。在图1a中,以数据分片segment#1分配存储节点BS1和BS2,数据分片segment#2分配存储节点BS3和BS4为例进行图示,但并不限于此。其中,为数据分片分配存储节点是指建立数据分片对应的逻辑区块地址与存储节点的物理区块地址之间的映射关系,以将数据分片中的数据存储到该存储节点上相应的物理区块地址上或者从该物理区块地址上读取数据分片中的数据。
在本申请实施例中,并不限定为同一数据分片分配的存储节点102的数量,只要不少于两个存储节点即可。例如,可以默认为同一数据分片分配设定数量的存储节点,例如,2个、3个或5个。又例如,动态地为同一数据分片分配存储节点,如,先为该数据分片分配一定数量(如,3个)存储节点,后续灵活调整存储节点的数量,如,增加或减少存储节点的数量。关于本申请实施例中,同一数据分片对应的存储节点的数量,可以根据计算节点对数据可靠性和可用性来灵活确定。例如,如果计算节点对数据可靠性和可用性的要求不是很高,可以为同一数据分片分配相对较少数量的存储节点,例如,2个,实现双副本存储;如果计算节点对数据可靠性和可用性的要求较高,可以为同一数据分片分配相对较多数量的存储节点,例如3个,实现三副本存储。其中,数据副本数量越多,表示数据可靠性和可用性越高。在本申请实施例中,以计算节点对数据可靠性和可用性为依据来确定同一数据分片对应的存储节点的数量,提供合适的数据可靠性和可用性,无需在数据可靠性和可用性上追求较高要求,例如可以4个9左右的数据可靠性,这样可以简化缓存型云存储盘的设计和副本数要求,更好的提升整个系统在数据读写方面的性能,例如降低时延,降低存储成本。进一步可选地,为了提高数据可靠性和可用性,也可以引入纠删码,通过纠删码提高数据冗余度,其中,纠删码越长,数据的冗余比就越高,数据的可靠性和可用性也就越高。
其中,在为同一数据分片分配至少两个存储节点的情况下,如何选择至少两个存储节点的方式不限定。例如,可以获取各个存储节点的负载信息、网络状态信息以及地理位置信息等属性信息,可以根据各个存储节点的负载信息、网络状态信息以及地理位置信息中的至少一种属性信息,从已有存储节点中选择至少两个存储节点分配给同一数据分片。例如,获取已有存储节点的负载信息,从已有存储节点中选择负载信息低于设定负载阈值(如,30%、50%或70%等)的至少两个存储节点分配给同一数据分片。再例如,获取已有存储节点的负载信息、网络状态信息以及与地理位置信息,从中选择负载信息低于设定负载阈值、网络状态信息大于设定网络状态阈值(如,网络延迟为50ms、100ms等)且到计算节点的距离小于设定距离阈值(如,1km、5km或10km等)的至少两个存储节点,然后将所选择的至少两个存储节点分配给同一数据分片。
在本申请实施例中,云存储管理节点101除了将缓存型云存储盘划分数据分片,并为数据分片分配存储节点之外,还负责将数据分片与存储节点之间的对应关系提供给云存储接入节点104和对应的存储节点102,一方面让存储节点102了解其负责存储哪些数据分片,一方面让云存储接入节点104了解针对哪些数据分片中的数据向哪些存储节点102进行读写。
在一可选实施例中,云存储管理节点101可以记录数据分片分配信息,数据分片分配信息至少包括:至少一个数据分片的标识信息、各数据分片对应的至少两个存储节点的标识信息。数据分片的标识信息以及存储节点的标识信息可以采用任何字母、数字以及符号的组合,如,数据分片的标识信息可以是segment#1或者segment#2等,存储节点的标识信息可以是存储节点的名称、IP地址等任何能够唯一标识一个存储节点的信息。在本申请实施例中,存储节点的标识信息采用存储节点的名称,例如BS1或BS2等。例如,在将缓存型云存储盘划分为数据分片segment#1和数据分片segment#2的情况下,数据分片分配信息可以表示为:(segment#1:[<BS1,BS2,epoch=0>];segment#2:[<BS3,BS4,epoch=0>),表示第一次为数据分片segment#1分配的存储节点为BS1和BS2,第一次为数据分片segment#2分配的存储节点为BS3和BS4。云存储管理节点101可以将数据分片分配信息同步给云存储接入节点104,以及数据分片对应的至少两个存储节点102,使得云存储接入节点104和该数据分片对应的至少两个存储节点102基于数据分片分配信息进行数据读写。
进一步可选地,在本申请实施例中,允许为每个数据分片重新分配部分或全部存储节点。为此,可以预先设定为每个数据分片重新分配存储节点应该满足的分配更换条件,基于此,云存储管理节点101可以在任一数据分片满足分配更换条件的情况下,重新为该任一数据分片分配新的存储节点,并更新数据分片分配信息中该任一数据分片对应的存储节点的标识信息,得到新的数据分片分配信息。其中,对任一数据分片来说,根据其所满足的分配更新条件的情况,可以重新为该数据分片分配部分存储节点(即实现部分存储节点的更换),也可以重新为该数据分片分配全部存储节点(即实现全部存储节点的更换)。例如,在数据分片segment#1满足分配更换条件的情况下,可以将segment#1从存储节点BS1重新分配给存储节点BS5,则数据分片segment#1的数据分片分配信息由segment#1:[<BS1,BS2>]更新为segment#1:[<BS2,BS5>]。其中,任一数据分片分配新的存储节点之后,可能包括新分配的存储节点以及非新分配的存储节点。在前述示例中,存储节点BS5为新分配的存储节点,存储节点BS2为非新分配的存储节点。
在本申请实施例中,并不限定数据分片满足的分配更换条件的实现方式。根据数据分片满足的分配条件的不同,云存储管理节点101重新为任一数据分片分配新的存储节点的实施方式也有所不同。下面进行示例性说明。
示例A1:数据分片满足的分配更换条件为:该数据分片分配的存储节点发生写失败情况。
云存储管理节点101在接收到云存储接入节点上报存储节点发生写失败情况时,重新为发生写失败情况的存储节点对应的数据分片分配新的存储节点,以替换发生写失败情况的存储节点。
示例A2:数据分片满足的分配更换条件为:该数据分片分配的存储节点的负荷超过设定负荷阈值。
云存储管理节点101可以定期获取各个存储节点的负荷信息,在监测到存储节点的负荷信息超过设定负荷阈值时,认为该超过设定负荷阈值的存储节点对应的数据分片满足分配更换条件,可以重新为负荷超过设定负荷阈值的存储节点对应的数据分片分配新的存储节点,以替换负荷超过设定负荷阈值的存储节点。
示例A3:数据分片满足的分配更换条件为:该数据分片分配的存储节点需要升级,例如,系统软件升级或者硬件(如计算资源、存储资源以及网络资源)升级等。在存储节点升级期间,数据无法进行读写,因此可以重新为数据分片分配新的存储节点。
在需要对存储节点进行升级时,相关人员(例如系统管理人员或维护人员)可以向云存储管理节点101发送升级请求。云存储管理节点101在接收到存储节点升级请求时,认为需要升级的存储节点对应的数据分片满足分配更换条件,可以重新为需要升级的存储节点对应的数据分片分配新的存储节点,以替换需要升级的存储节点。
进一步,在允许为数据分片更换存储节点的应用场景中,为了区分数据分片对应的最新存储节点,可以在数据分片分配信息中引入版本信息,该版本信息用于标识数据分片分配信息是否是最新版本,同时表示数据分片对应的最新存储节点是哪些。在本申请实施例中,并不限定版本信息的实现方式,例如可以采用但不限于epoch(直译为时代、时期)技术,用来表示追踪数据分片分配信息的修改时间,即版本信息。基于此,在数据分片分配信息中除了包括至少一个数据分片的标识信息以及各数据分片对应的至少两个存储节点的标识信息之外,还可以包括数据分片分配信息的版本信息,例如epoch的取值。
以将缓存型云存储盘划分为数据分片segment#1和数据分片segment#2为例,且云存储管理节点101最初将数据分片segment#1分配给存储节点BS1和BS2,将数据分片segment#2分配为存储节点BS3和BS4,则数据分片分配信息可以表示为:(segment#1:[<BS1,BS2,epoch=0>];segment#2:[<BS3,BS4,epoch=0>),表示第一次为数据分片segment#1分配的存储节点为BS1和BS2,并将数据分片分配信息同步给存储节点BS1、BS2以及云存储接入节点104;第一次为数据分片segment#2分配的存储节点为BS3和BS4,并将数据分片分配信息同步给存储节点BS3、BS4以及云存储接入节点104。随着时间的推移,假设存储节点BS1发生写失败的情况,则云存储管理节点101重新为数据分片segment#1分配给存储节点BS5,利用存储节点BS5替换存储节点BS1,则新的数据分片分配信息可以表示为:(segment#1:[<BS2,BS5,epoch= 1>],表示第二次为数据分片segment#1分配的存储节点为BS2和BS5,并将新的数据分片分配信息同步给存储节点BS2和BS5以及云存储接入节点104。
在本申请实施例中,在云存储管理节点101为计算节点创建缓存型云存储盘,并将缓存型云存储盘划分为至少一个数据分片,为同一数据分片分配至少两个存储节点之后,意味着为计算节点103使用缓存型云存储盘打好了基础。基于此,在租户的云计算实例(如,虚拟机或容器)需要挂载缓存型云存储盘的情况下,云存储接入节点104将对应的缓存型云存储盘的标识、租户标识、云计算实例标识提供给云存储管理节点101,以请求挂载使用缓存型云存储盘。若云存储管理节点101发现存储盘标识对应的缓存型云存储盘处于空闲(idle)可用状态,并且存储盘标识、租户标识通过授权验证,则基于云计算实例标识和存储盘标识,建立云计算实例与缓存型云存储盘之间的对应关系,将该缓存型云存储盘的状态更新为开启(open)状态,并向云存储接入节点返回挂载成功消息。与此同时,云存储管理节点101向云存储接入节点104以及相应的存储节点102返回缓存型云存储盘的元数据、LBA划分信息以及数据分片分配信息等,以使计算节点103通过云存储接入节点104实现对缓存型云存储盘的读写操作。若云存储管理节点101发现存储盘标识对应的缓存型云存储盘处于开启状态,表示无法为该租户的云计算实例挂载该缓存型云存储盘。
在本实施例中,计算节点103可以通过云存储接入节点104实现对缓存型云存储盘的读写操作。其中,计算节点103可以对任一数据分片执行读写操作,为了便于区分和描述,以向缓存型云存储盘写入第一数据分片的第一数据,从缓存型云存储盘中读取第二数据分片中的第二数据为例进行说明。第一数据分片可以是任一数据分片,第一数据可以是第一数据分片中待写入缓存型云存储盘的任意数据;同理,第二数据分片可以是任一数据分片,第二数据可以是第二数据分片中已写入缓存型云存储盘中的任意数据。具体地,云存储接入节点104可以在计算节点103向缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中,并在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据。其中,缓存型云存储系统中的多个存储节点102可以为分配到的数据分片提供存储空间,并配合云存储接入节点104对所分配到的数据分片中的数据进行读写操作。
具体地,云存储接入节点104可接收计算节点上的云计算实例发送的写请求或读请求;根据写请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片及其对应的至少两个存储节点;分别向第一数据分片对应的至少两个存储节点发送写请求和第一数据,以向第一数据分片对应的至少两个存储节点中写入第一数据;根据读请求中的地址信息,从本地保存的数据分片分配信息中确定第二数据分片及其对应的至少两个存储节点;向第二数据分片对应的任一存储节点发送读请求,以使第二数据分片对应的任一存储节点读取并返回第二数据。具体地,读写请求中包括LBA地址,根据LBA地址可以确定其所属的LBA区间,进而确定LBA区间对应的数据分片,进而确定数据分片对应的存储节点。
进一步可选地,在数据分片分配信息包含数据分片分配信息的版本信息的情况下,云存储接入节点104还会从本地保存的数据分片分配信息中获取该数据分片分配信息的版本信息。在写请求的情况下,分别向第一数据分片对应的至少两个存储节点发送写请求、第一数据和该版本信息,以向第一数据分片对应的至少两个存储节点中写入第一数据;对第一数据分片对应的任一存储节点来说,可以判断接收到的版本信息与本地保存的数据分片分配信息中的版本信息是否一致,在两者一致的情况下,根据写请求将第一数据写入本地存储介质中。在读请求的情况下,向第二数据分片对应的任一存储节点发送读请求和该版本信息,以使第二数据分片对应的任一存储节点读取并返回第二数据;对第二数据分片对应的任一存储节点来说,可以判断接收到的版本信息与本地保存的数据分片分配信息中的版本信息是否一致,在两者一致的情况下,根据读请求从本地存储介质中读取第二数据并返回给云存储接入节点104,由云存储接入节点104上报给云计算实例。
进一步,在本申请一些可选实施例中,如图1a所示,存储节点102的本地存储介质采用融合存储介质,即包含多种存储介质,首先,这些存储节点都是断电非易失的存储节点,另外,多种存储介质所支持的读写速度不同。以存储节点102采用第一存储介质和第二存储介质为例,第一存储介质所支持的读写速度大于第二存储介质所支持的读写速度,更为具体地,第一存储介质为持久化内存(Intel Optane Persistent Memory,PMEM),第二存储介质为固态硬盘(Solid State Drives,SSD)。这样,存储节点102进行数据读写时,可以优先对读写速度较快的第一存储介质进行读写操作,然后在后台根据第一存储介质的使用水位和数据访问热度将第一存储介质中的数据回写到第二存储介质,在为计算节点提供尽量多的数据存储空间的情况下,节约存储成本,进一步降低数据读写延迟。
具体地,接收云存储接入节点发送的写请求和第一数据;将第一数据写入第一存储介质中,并将第一数据在第一存储介质中的数据位置更新到数据位置索引中,向云存储接入节点返回写入成功消息;以及在根据第一存储介质的使用水位和/或第一数据的访问热度确定第一数据满足回写条件的情况下,将第一数据回写到第二存储介质中,并更新第一数据在数据位置索引中的数据位置。
以存储节点的本地存储介质包括:PMEM和SSD为例,则存储节点向本地存储介质中写入第一数据时,具体为:将第一数据写入PMEM中,并将第一数据在PMEM中的数据位置更新到数据位置索引中,向云存储接入节点返回写入成功消息;以及在根据PMEM的使用水位和/或第一数据的访问热度确定第一数据满足回写条件的情况下,将第一数据回写到SSD中,并更新第一数据在所述数据位置索引中的数据位置。同理,存储节点从本地存储介质中读取第二数据时,具体为:优先从PMEM中读取第二数据,若从PMEM中读取到第二数据,则返回给云存储接入节点;若未能从PMEM中读取到第二数据,则从SSD中读取第二数据并返回给云存储接入节点。相应地,存储节点也可以在后台SSD中各个数据的访问热度确定热门数据,将SSD中的热门数据重新写入PMEM中,并更新该热门数据在数据位置索引中的数据位置,提高热门数据的读取系效率,降低数据读取的延迟。
下面结合图1b和图1c所示的交互流程图对本申请实施例缓存型云存储系统中的数据写入过程和数据读取过程进行说明。
情况B1:数据写入过程,参见附图1b,该数据写入过程包括:
在本实施例中,以第一数据分片被分配给存储节点BS1和存储节点BS2为例进行说明。
步骤10b、云存储管理节点101为计算节点103创建缓存型云存储盘,将缓存型云存储盘划分为数据分片,为每个数据分片分配存储节点BS1和存储节点BS2,并记录数据分片分配信息。
在本实施例中,以数据分片分配信息中同时包含至少一个数据分片的标识信息、存储节点BS1和存储节点BS2的标识信息,以及该数据分片分配信息的版本信息(例如epoch取值)为例。例如,数据分片分配信息为:(segment#1:[<BS1,BS2,epoch=0>];segment#2:[<BS3,BS4,epoch=0>)。
步骤11b-13b、云存储管理节点101将数据分片分配信息分别同步给云存储接入节点104,以及数据分片对应的存储节点BS1和存储节点BS2。
步骤14b、计算节点103上的云计算实例向云存储接入节点104发送写请求。
其中,该写请求用于将第一数据分片中的第一数据写入缓存型云存储盘中,写请求中包括待写入的LBA地址信息。
步骤15b、云存储接入节点104接收该写请求,根据写请求中的LBA地址信息从本地保存的数据分片分配信息中确定第一数据分片、第一数据分片对应的存储节点BS1和存储节点BS2,以及版本信息。
具体地,云存储接入节点104可以根据写请求中的LBA地址信息,确定该LBA地址信息所属的LBA区间,进而根据本地保存的数据分片分配信息确定该LBA区间对应的第一数据分片,进而确定第一数据分片对应的至少两个存储节点,以及版本信息。
步骤16b-17b、云存储接入节点104分别向第一数据分片对应的存储节点BS1和存储节点BS2发送写请求、第一数据和版本信息,以向存储节点BS1和存储节点BS2中写入第一数据。
步骤18b、第一数据分片对应的存储节点BS1和存储节点BS2在接收到云存储接入节点发送的写请求、第一数据和版本信息的情况下,识别接收到的版本信息和本地保存的数据分片分配信息中的版本信息是否一致,在一致的情况下,根据写请求,将第一数据写入本地存储介质中。
其中,对第一数据分片对应的任一存储节点102来说,有可能成功地将第一数据写入本地存储介质中,也可能因为节点故障,或者是本地存储介质出现故障,而无法成功将第一数据写入本地存储介质中。在本实施例,以存储节点BS1无法成功将第一数据写入本地存储介质,BS2成功将第一数据写入本地存储介质为例进行说明。
步骤19b、存储节点BS2在将第一数据成功写入本地存储介质之后,向云存储接入节点104返回写入成功消息。
其中,存储节点BS1未向云存储接入节点104返回写入成功消息。
步骤20b、在未接收到存储节点BS1返回的写入成功消息的情况下,云存储接入节点104向云存储管理节点101上报发生写失败情况,以使云存储管理节点101重新为第一数据分片分配新的存储节点,以替换发生写失败情况的存储节点。
其中,云存储接入节点104未接收到第一数据分片对应的任一存储节点返回的写入成功消息可以是如下情况。例如,存储节点(如BS1)未将第一数据成功写入本地存储介质中,向云存储接入节点104返回写入失败消息;云存储接入节点104接收到该存储节点返回的写入失败消息,则认为云存储接入节点104未接收到该存储节点返回的写入成功消息。又例如,云存储接入节点104设定等待时间,例如,50ms、1s或2s等;该等待时间可以从将第一数据发送给存储节点之后开始算起;在该等待时间之内,云存储接入节点104未接收到该存储节点返回的写入成功消息。
步骤21b、云存储管理节点101重新为该第一数据分片分配新的存储节点BS5。
在本实施例中,假设云存储管理节点101为第一数据分片分配新的存储节点BS5为例进行说明。其中,云存储管理节点101为第一数据分片分配存储节点BS5的过程与前述实施例中为数据分片分配存储节点的实施方式相同或相似,在此不再赘述。
步骤22b、云存储管理节点101更新数据分片分配信息中第一数据分片对应的存储节点的标识信息以及版本信息,得到新的数据分片分配信息。
其中,更新后的数据分片分配信息中包括第一数据分片对应的非新分配的存储节点和新分配的存储节点的标识信息。例如,假设将第一数据分片记为数据分片Segment#1,则在写入数据分片Segment#1中的第一数据过程中,出现存储节点BS1或者存储节点BS2的写失败情况(假设存储节点BS1故障,存储节点BS2仍写入成功),则云存储接入节点向云存储管理节点上报BS1发生写失败情况,则云存储管理节点分配新的存储节点(假设为存储节点BS5)替代BS1,同时更新数据分片分配信息。例如,在原来数据分片分配信息中添加新的信息,由原先的segment#1:[<BS1,BS2, epoch = 0>]变更为segment#1:[<BS1,BS2,epoch = 0>,<BS2, BS5, epoch=1>]。又例如,直接修改原来的数据分片分配信息,如,由原先的segment#1:[<BS1,BS2, epoch = 0>]变更为segment#1:[ <BS2, BS5, epoch=1>]。
步骤23b-25b、云存储管理节点101将新的数据分片分配信息提供给云存储接入节点、存储节点BS2和存储节点BS5。
步骤26b-27b、云存储接入节点104向第一数据分片对应的非新分配的存储节点BS2和新分配的存储节点BS5发送写请求、第一数据和新的版本信息,以向非新分配的存储节点BS2和新分配的存储节点BS5中写入第一数据。
步骤28b-29b、非新分配的存储节点BS2和新分配的存储节点BS5在接收到云存储接入节点发送的写请求、第一数据和版本信息的情况下,识别接收到的版本信息和本地保存的数据分片分配信息中的版本信息是否一致,在一致的情况下,根据写请求,将第一数据写入本地存储介质中。
步骤30b-31b、存储节点BS2和存储节点BS5向云存储接入节点返回写入成功消息。
可选地,为第一数据分片分配新的存储节点之前,第一数据分片上的数据存储在非新配的存储节点上,新分配的存储节点上可能缺失第一数据分片中的数据。
因此,数据写入过程还包括:
步骤32b、新分配的存储节点BS5向第一数据分片对应的非新分配的存储节点BS2发送复制请求,以从非新分配的存储节点BS2复制第一数据分片中缺失的数据。其中,复制请求用于请求第一数据分片中缺失的数据。
步骤33b、非新分配的存储节点BS2接收到复制请求之后,向新分配的存储节点BS5返回其缺失的第一数据分片的数据。
情况B2:数据读取过程,参见附图1c,该数据读取过程包括:
在本实施例中,以第一数据分片被分配给存储节点BS1和存储节点BS2,存储节点BS1出现故障,为第一数据分片重新分配的存储节点为存储节点BS5为例进行说明。
步骤10c、云存储管理节点101为计算节点103创建缓存型云存储盘,将缓存型云存储盘划分为数据分片,为每个数据分片分配存储节点BS2和存储节点BS5,并记录数据分片分配信息。
步骤11c-13c、云存储管理节点101将数据分片分配信息分别同步给云存储接入节点104,以及数据分片对应的存储节点BS2和存储节点BS5。
步骤14c、计算节点103上的云计算实例向云存储接入节点104发送读请求。
其中,该读请求用于从缓存型云存储盘读取第二数据分片中的第二数据,读请求中包括待读取的LBA地址信息。
步骤15c、云存储接入节点接收该读请求,根据读请求中的LBA地址信息,从本地保存的数据分片分配信息中确定第二数据分片、第二数据分片对应的存储节点BS2和存储节点BS5,以及版本信息;
云存储接入节点104向第二数据分片对应的哪个存储节点发送读请求并不限定。例如,可以从第二数据分片对应的存储节点中随机选择一个存储节点发送读请求。又例如,可以根据第二数据分片对应的存储节点的负荷情况、网络状态以及地理位置信息中的至少一种选择存储节点发送读请求,其中,选择存储节点的实施方式与前述实施例中,为数据分片分配存储节点的实施方式相同或相似,在此不再赘述。下面以云存储接入节点向存储节点BS5发送读请求为例进行说明。
步骤16c、云存储接入节点104向第二数据分片对应的存储节点BS5发送读请求和版本信息,以从存储节点BS5的本地存储介质中读取第二数据分片的第二数据。
步骤17c、第二数据分片对应的存储节点BS5在接收云存储接入节点发送的读请求和版本信息的情况下,识别接收到的版本信息和本地保存的数据分片分配信息中的版本信息是否一致。
其中,存储节点BS5的本地存储介质中缺失第二数据分片中的第二数据。
步骤18c、存储节点BS5在接收到的版本信息和本地保存的数据分片分配信息中的版本信息一致的情况下,且确定本地存储介质中缺失第二数据分片中的第二数据。
步骤19c、优先向第二数据分片对应的非新分配的存储节点BS2请求第二数据。
步骤20c、存储节点BS2向存储节点BS5返回第二数据。
步骤21c、存储节点BS5接收存储节点BS2返回的第二数据,把第二数据并返回给云存储接入节点104。
其中,存储节点BS5还可以把第二数据存储到本地存储介质中。
步骤22c、云存储接入节点104将第二数据提供给计算节点103上的云计算实例。
在本申请上述和下述实施例中,并不对存储节点的本地存储介质进行限定。在一可选实施例中,存储节点的本次存储介质采用两种融合存储介质。第一存储介质可以是PMEM,PMEM具有容量大、读写速度快、延迟低以及持久性的特点,持久性是指就是持久化内存有跟硬盘一样的特性,断电重启,持久化内存中的数据依然存在。第二存储介质可以是SSD,相较于PMEM,SSD具有成本低的优势。因此,存储节点的本地存储介质可以采用PMEM和SSD相结合的融合存储介质的方式,通过PMEM加速数据的读写访问,降低计算节点读写数据的延迟,满足对读写性能的实时性要求;再将PMEM中的数据持久化到SSD中,以节省存储成本。可选地,为了更好的发挥SSD性能和使用寿命,存储节点将SSD划分成多个AppendOnly(直译为:只能添加属性)区块(Chunk),确保数据一致性。其中,区块大小可以是默认的64MB,或者修改为其它大小,如128MB,存储节点不断将新写入SSD的数据添加(Append)到Chunk中,并在后台回收Chunk空间,比如,Chunk1中保存的数据对应的LBA地址已经被更新,并将该LBA地址更新后的数据写入Chunk2区块,则Chunk1中的数据可以被回收。
为了进一步加速访问性能,云存储管理节点101可以根据数据的访问热度,将热数据存储在PMEM中,将冷数据存储在SSD中,以通过PMEM加速数据访问。
其中,任一数据分片分配的任意一个存储节点可以将该数据分片中的各数据写入本地存储介质中。存储节点102维护有数据分片中各数据的数据位置索引,该数据位置索引包括:缓存型云存储盘中的LBA地址与存储节点的本地地址(DataLocation)之间的对应关系。例如,数据位置索引可以表示为:LBA->DataLocation。其中,本地地址可以是PMEM地址,也可以是SSD地址,通常情况下,存储节点中的数据默认先持久化在PMEM中,以提高写入数据的速度。具体地,将数据分片中的数据写入PMEM中,并将该数据在PMEM中的数据位置更新到数据位置索引中,向云存储接入节点104返回写入成功消息。
其中,在PMEM中的数据满足回写条件的情况下,云存储管理节点101可以将满足回写条件的数据从PMEM中回写至SSD中,以提高PMEM的使用率。下面举例说明。
例如,根据PMEM的使用水位,确定PMEM中的数据是否满足回写条件。回写条件为:PMEM的使用水位超过设定使用水位阈值,例如,该设定使用水位阈值占PMEM总量的百分比为:90%、95%或者98%等。在PMEM的使用水位超过设定使用水位阈值的情况下,认为满足回写条件,可以将PMEM中的部分数据从PMEM中回写至SSD中,并更新回写至SSD中的数据在数据位置索引中的数据位置。
再例如,根据PMEM中数据的访问热度确定是否满足回写条件。回写条件为:PMEM中的数据的访问热度低于设定的第一访问热度阈值,第一访问热度阈值可以是访问次数为1千、5万或10万等,对此不做限定。PMEM中访问热度低于设定的第一访问热度阈值的数据满足回写条件,则可以将访问热度低于设定的第一访问热度阈值的数据从PMEM中回写至SSD中,并更新第一数据在数据位置索引中的数据位置。或者,对PMEM中的各数据(如,以数据块形式存在)的访问热度进行排序,将访问热度最低的设定数量的数据作为满足回写条件的数据,将该访问热度最低的设定数量的数据从PMEM中回写至SSD中,并更新第一数据在数据位置索引中的数据位置。
又例如,根据PMEM的使用水位和数据的访问热度,确定PMEM中的数据是否满足回写条件。回写条件包括两种:PMEM的使用水位超过设定的水位阈值,以及第一数据的访问热度低于设定的第一访问热度阈值。其中,任一种回写条件被满足的情况下,将第一数据从PMEM中回写至SSD中,并更新第一数据在数据位置索引中的数据位置。或者,两种条件均满足的情况下,认为PMEM中的数据满足回写条件;例如,在PMEM的使用水位超过设定使用水位阈值的情况下,进一步,确定PMEM中各数据的访问热度,将访问热度低于设定的第一访问热度阈值的数据从PMEM中回写至SSD中,并更新第一数据在数据位置索引中的数据位置。
在一可选实施例中,针对SSD中的数据,将SSD中访问热度高于设定的第二访问热度阈值的数据称为第三数据,可以将第三数据从SSD中存储至PMEM中,以提高第三数据的访问速度。
在本申请上述和下述实施例中,整个系统中包括多个计算节点,多个计算节点隶属于多个租户,每个租户可以具有一个或多个计算节点,可以在计算节点上部署一个或多个云计算实例,在按照前述实施例中描述的内容为租户的云计算实例挂载缓存型云存储盘的情况下,云存储管理节点101还可以以租户为粒度,从租户分配到的存储节点的第一存储介质对应的存储空间中为租户分配存储空间。分配方式可以是云存储管理节点可以预先从第一存储介质中为计算节点所属的目标租户分配固定大小的存储空间;或者根据计算节点所属目标租户在使用缓存型云存储系统情况下已获得的数据读写延迟性能,动态调整从第一存储介质中为目标租户分配的存储空间。其中,并不限定分配存储空间的大小和具体的分配方式,下面以第一存储介质实现为PMEM,从目标租户分配到的存储节点的PMEM中为目标租户分配PMEM空间为例,对为其分配PMEM空间的方式进行举例说明,目标租户可以是任一租户。
示例C1:为目标租户分配固定大小的PMEM空间。每个存储节点上包括PMEM,可以预先从PMEM中为计算节点所属的目标租户分配固定大小的PMEM空间。例如,固定大小的PMEM可以是默认大小,例如,500M、1GB或2GB等。又例如,可以面向目标租户提供人机交互界面,由目标租户在人机交互界面上展示PMEM空间的大小以及所需支付的费用,PMEM空间越大,费用越高;响应于目标租户的选择PMEM空间大小的操作,在目标租户支付成功的情况下,为目标租户分配其选择的大小的PMEM空间。
示例C2:为目标租户动态分配PMEM空间。在使用缓存型云存储系统的情况下,目标租户的数据读写延迟性能会得到一定的提升,为了满足该目标租户的需求,可以根据目标租户使用缓存型云存储盘已获得的数据读写延迟性能,动态调整从PMEM中为目标租户分配的PMEM空间。例如,在目标租户使用缓存型云存储盘已获得的数据读写延迟性能较高的情况下,增加从PMEM中为目标租户分配的PMEM空间的大小,以便于进一步提高目标租户能够获得的数据读写延迟性能。又例如,目标租户使用缓存型云存储盘已获得的数据读写延迟性能较低的情况下,减少从PMEM中为目标租户分配的PMEM空间的大小,以便于其它租户能够获取更多的PMEM空间,进而有机会获得较高的数据读写延迟性能。也就是说,可以根据各租户使用缓存型云存储盘所能带来的数据读写延迟性能,优先将PMEM空间分配给能够带来更高数据读写延迟性能的租户使用,提高整个缓存型云存储系统的性能和价值。
可选地,在动态为租户分配PMEM空间之前,可以面向租户发布动态资源分配服务,以供租户选择是否使用动态资源分配服务。例如,可以面向租户提供人机交互界面,在人机交互界面上展示资源分配服务的选择控件,在该控件被勾选的情况下,认为目标租户选择使用动态资源分配服务。在目标租户选择使用动态资源分配服务的情况下,根据计算节点所属目标租户在使用缓存型云存储系统情况下已获得的数据读写延迟性能,动态调整从PMEM中为目标租户分配的PMEM空间。
可选地,租户可以向云存储管理节点101提交缓存型云存储盘的扩容请求,该扩容请求中包括扩大的容量,例如1GB、5GB或50GB等。云存储管理节点101基于扩大的容量,确定新扩容的LBA空间,将新扩容的LBA空间划分成数据分片,并为数据分片分配存储节点,即可返回扩容成功。对于租户的性能升配或者降配,云存储管理节点101将更新的每秒读写次数(IOPS)带宽限制更新给云存储接入节点104,由云存储接入节点控制读写并发度。对于租户的卸载请求,云存储管理节点101通知相应的云存储接入节点104关闭相应缓存型云存储盘的读写请求连接,并将该缓存型云存储盘的状态更新为空闲状态。
相比本地盘SSD的优势:
1、存储计算分离,租户可以在任意的计算节点上挂载使用缓存型云存储盘,可以动态调整缓存型云存储盘的容量和性能,并且按需付费使用。并通过存储介质的大规模池化提供更好的性能和容量弹性能力。其单个缓存型云存储盘的容量可以在1GB-256TB间动态变化(本地盘只能有限切分,最小一般数十GB,最大8TB,且无法动态改变容量),性能上单个缓存型云存储盘的最高到300万的IOPS,15GB吞吐量;而本地盘单盘通常最高30万IOPS,4GB吞吐。
2、通过副本冗余(每个数据分片对应至少两个存储节点)和高可用设计,在高可靠和高可用设计上高于本地盘,简化数据访问和高可用设计,本地盘的年均数据可靠性低于99.9%(甚至低于99%),而缓存型云存储盘的年均数据可靠性可以达到99.99%甚至更高。
3、当计算节点出现故障转移(failover)时,新的计算节点可以马上挂载原计算节点的缓存型云存储盘来访问原来的数据,不会造成性能的大幅下降或大批缓存数据重新加载。新节点挂载缓存型云存储盘可参见前述,在此不在赘述。
相比标准云硬盘的优势:
1、缓存型云存储盘在性能方面能够与本地SSD盘性能相当,甚至超越。通过使用高性能网络(远程直接数据存取(Remote Direct Memory Access,RDMA)或者自研高性能网络协议)一跳读写协议、融合持久化内存(PMEM)和SSD存储介质,可以提供低至30微秒的4K数据读写延迟。其中,本申请提供的一跳读写协议是IO路径上最少的网络交互次数,具体是指云计算实例上的数据通过一跳得到存储节点上,缩短传输时延。标准型云硬盘时延较高,其采用的是两跳协议,即从云计算实例到存储节点再到持久化存储,中间需要经过两次网络传输,时延较长。
2、缓存型云存储盘不需要,如,共享挂载、快照、同步/异步复制等高级特性,简化了缓存型云存储盘的设计和副本数要求(使用至少两个副本,或者较短的纠删码),更好的提升性能,降低存储成本。
图2为本申请示例性实施例提供的一种数据读写方法的流程示意图。该方法应用于缓存型存储系统中的云存储接入节点,云存储接入节点部署在计算节点上,计算节点具有缓存型云存储盘,缓存型云存储盘中存储的同一数据分片被分配到缓存型存储系统中的至少两个存储节点,如图2所示,该方法包括:
201、在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中;
202、在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据。
在一可选实施例中,缓存型云存储盘用于存储至少一个数据分片;本申请实施例提供的方法还包括:接收缓存型存储系统中的云存储管理节点同步的数据分片分配信息,数据分片分配信息中包括该至少一个数据分片的标识信息、各数据分片对应的至少两个存储节点的标识信息。
在一可选实施例中,在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中,包括:接收计算节点上的云计算实例发送的写请求;根据写请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片及其对应的至少两个存储节点;分别向第一数据分片对应的至少两个存储节点发送写请求和第一数据,以向第一数据分片对应的至少两个存储节点中写入第一数据。
在一可选实施例中,本申请实施例提供的方法还包括:在未能接收到第一数据分片对应的任一存储节点返回的写入成功消息的情况下,向云存储管理节点上报存储节点发生写失败情况,以使云存储管理节点重新为第一数据分片分配新的存储节点,以替换发生写失败情况的存储节点;在云存储管理节点重新为第一数据分片分配新的存储节点的情况下,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求和第一数据,以向非新分配的和新分配的存储节点中写入第一数据。
在一可选实施例中,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求和第一数据,包括:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息中包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息,以及更新后的数据分片分配信息对应的新的版本信息;根据更新后的数据分片分配信息,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求、第一数据和新的版本信息,以向非新分配的和新分配的存储节点中写入第一数据;其中,新的版本信息用于供非新分配的和新分配的存储节点验证是否是第一数据分片对应的合法存储节点。
在一可选实施例中,在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据,包括:接收计算节点上的云计算实例发送的读请求;根据读请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片或第二数据分片及其对应的至少两个存储节点;向第二数据分片对应的任一存储节点发送读请求,以使第二数据分片对应的任一存储节点读取并返回第二数据。
图3为本申请示例性实施例提供的一种数据写方法的流程示意图,该方法应用于缓存型存储系统中的第一存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第一存储节点对应缓存型云存储盘中存储的第一数据分片,第一数据分片对应缓存型存储系统中的至少两个存储节点,如图3所示,该方法包括:
301、接收写请求和第一数据,第一数据是第一数据分片中的数据;
302、根据写请求,将第一数据写入本地存储介质中;
303、在第一存储节点是第一数据分片对应的新分配的存储节点的情况下,向第一数据分片对应的非新分配的存储节点发送复制请求,以从非新分配的存储节点复制第一数据分片中缺失的数据。
在一可选实施例中,本申请实施例提供的方法还包括:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息;根据更新后的数据分片分配信息,确定第一存储节点是第一数据分片对应的新分配的存储节点。
图4为本申请示例性实施例提供的一种数据读方法的流程示意图,该方法应用于缓存型存储系统中的第二存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第二存储节点对应缓存型云存储盘中存储的第二数据分片,第二数据分片对应缓存型存储系统中的至少两个存储节点,如图4所示,该方法包括:
401、接收读请求,读请求用于请求读取第二数据分片中的第二数据;
402、在本地存储介质中缺失第二数据分片中的数据,且缺失的数据至少包括第二数据的情况下,从第二数据分片对应的其它存储节点中获取第二数据,并将第二数据返回给读请求的发送方。
在一可选实施例中,本申请实施例提供的方法还包括:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第二数据分片对应的非新分配的和新分配的存储节点的标识信息;根据更新后的数据分片分配信息,确定第二存储节点是第二数据分片对应的新分配的存储节点。
图5为本申请示例性实施例提供的一种数据处理方法的流程示意图,应用于缓存型云存储系统中的云存储管理节点,如图5所示,该方法包括:
501、为计算节点创建缓存型云存储盘,缓存型云存储盘用于存储至少一个数据分片;
502、为同一数据分片分配缓存型云存储系统中的至少两个存储节点;
503、记录数据分片分配信息,数据分片分配信息至少包括至少一个数据分片的标识信息和各数据分片对应的至少两个存储节点的标识信息;
504、将数据分片分配信息同步给部署在计算节点上的云存储接入节点和相应存储节点。
在一可选实施例中,本申请实施例提供的方法还包括:在任一数据分片满足分配更换条件的情况下,重新为任一数据分片分配新的存储节点,并更新数据分片分配信息中任一数据分片对应的存储节点的标识信息。
在一可选实施例中,在任一数据分片满足分配更换条件的情况下,重新为任一数据分片分配新的存储节点,包括以下至少一种操作:在接收到云存储接入节点上报存储节点发生写失败情况时,重新为发生写失败情况的存储节点对应的数据分片分配新的存储节点,以替换发生写失败情况的存储节点;在监测到存储节点的负荷超过设定负荷阈值时,重新为负荷超过设定负荷阈值的存储节点对应的数据分片分配新的存储节点,以替换负荷超过设定负荷阈值的存储节点;在接收到存储节点升级请求时,重新为需要升级的存储节点对应的数据分片分配新的存储节点,以替换需要升级的存储节点。
关于本实施例方法中各步骤的详细实施方式以及有益效果已经在前述实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤203的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图6a为本申请示例性实施例提供的一种数据读写装置的结构示意图。该装置对应于缓存型存储系统中的云存储接入节点,云存储接入节点部署在计算节点上,计算节点具有缓存型云存储盘,缓存型云存储盘中存储的同一数据分片被分配到缓存型存储系统中的至少两个存储节点,如图6a所示,该装置包括:写入模块61a和读取模块62a。
写入模块61a,用于在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中;
读取模块62a,用于在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据。
在一可选实施例中,缓存型云存储盘用于存储至少一个数据分片;本申请实施例提供的装置还包括:接收模块;接收模块,用于接收缓存型存储系统中的云存储管理节点同步的数据分片分配信息,数据分片分配信息中包括至少一个数据分片的标识信息、各数据分片对应的至少两个存储节点的标识信息。
在一可选实施例中,写入模块61a具体用于:接收计算节点上的云计算实例发送的写请求;根据写请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片及其对应的至少两个存储节点;分别向第一数据分片对应的至少两个存储节点发送写请求和第一数据,以向第一数据分片对应的至少两个存储节点中写入第一数据。
在一可选实施例中,本申请实施例提供的装置还包括:上报模块和发送模块;上报模块,用于在未能接收到第一数据分片对应的任一存储节点返回的写入成功消息的情况下,向云存储管理节点上报存储节点发生写失败情况,以使云存储管理节点重新为第一数据分片分配新的存储节点,以替换发生写失败情况的存储节点;发送模块,用于在云存储管理节点重新为第一数据分片分配新的存储节点的情况下,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求和第一数据,以向非新分配的和新分配的存储节点中写入第一数据。
在一可选实施例中,发送模块具体用于:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息中包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息,以及更新后的数据分片分配信息对应的新的版本信息;根据更新后的数据分片分配信息,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求、第一数据和新的版本信息,以向非新分配的和新分配的存储节点中写入第一数据;其中,新的版本信息用于供非新分配的和新分配的存储节点验证是否是第一数据分片对应的合法存储节点。
在一可选实施例中,读取模块具体用于:接收计算节点上的云计算实例发送的读请求;根据读请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片或第二数据分片及其对应的至少两个存储节点;向第二数据分片对应的任一存储节点发送读请求,以使第二数据分片对应的任一存储节点读取并返回第二数据。
图6b为本申请示例性实施例提供的一种数据写装置的结构示意图,该装置适用于缓存型存储系统中的第一存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第一存储节点对应缓存型云存储盘中存储的第一数据分片,第一数据分片对应缓存型存储系统中的至少两个存储节点,如图6b所示,该装置包括:收发模块61b和写入模块62b。
收发模块61b,用于接收写请求和第一数据,第一数据是第一数据分片中的数据;
写入模块62b,用于根据写请求,将第一数据写入本地存储介质中;
收发模块61b,用于在第一存储节点是第一数据分片对应的新分配的存储节点的情况下,向第一数据分片对应的非新分配的存储节点发送复制请求,以从非新分配的存储节点复制第一数据分片中缺失的数据。
在一可选实施例中,本申请实施例提供的装置还包括:确定模块;收发模块,用于接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息;确定模块,用于根据更新后的数据分片分配信息,确定第一存储节点是第一数据分片对应的新分配的存储节点。
图6c为本申请示例性实施例提供的一种数据读装置的结构示意图,该装置适用于缓存型存储系统中的第二存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第二存储节点对应缓存型云存储盘中存储的第二数据分片,第二数据分片对应缓存型存储系统中的至少两个存储节点,如图6c所示,该装置包括:收发模块61c和获取模块62c。
收发模块61c,用于接收读请求,读请求用于请求读取第二数据分片中的第二数据;
获取模块62c,用于在本地存储介质中缺失第二数据分片中的数据,且缺失的数据至少包括第二数据的情况下,从第二数据分片对应的其它存储节点中获取第二数据,并将第二数据返回给读请求的发送方。
在一可选实施例中,本申请实施例提供的装置还包括:确定模块;收发模块还用于:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第二数据分片对应的非新分配的和新分配的存储节点的标识信息;确定模块,用于根据更新后的数据分片分配信息,确定第二存储节点是第二数据分片对应的新分配的存储节点。
图6d为本申请示例性实施例提供的一种数据处理装置的结构示意图,该装置对应于缓存型云存储系统中的云存储管理节点,如图6d所示,该装置包括:创建模块61d、分配模块62d、记录模块63d和同步模块64d。
创建模块61d,用于为计算节点创建缓存型云存储盘,缓存型云存储盘用于存储至少一个数据分片;
分配模块62d,用于为同一数据分片分配缓存型云存储系统中的至少两个存储节点;
记录模块63d,用于记录数据分片分配信息,数据分片分配信息至少包括至少一个数据分片的标识信息和各数据分片对应的至少两个存储节点的标识信息;
同步模块64d,用于将数据分片分配信息同步给部署在计算节点上的云存储接入节点和相应存储节点。
在一可选实施例中,本申请实施例提供的装置还包括:更新模块;分配模块还用于:在任一数据分片满足分配更换条件的情况下,重新为任一数据分片分配新的存储节点;更新模块,用于更新数据分片分配信息中任一数据分片对应的存储节点的标识信息。
在一可选实施例中,分配模块,具体用于执行以下至少一种操作:在接收到云存储接入节点上报存储节点发生写失败情况时,重新为发生写失败情况的存储节点对应的数据分片分配新的存储节点,以替换发生写失败情况的存储节点;在监测到存储节点的负荷超过设定负荷阈值时,重新为负荷超过设定负荷阈值的存储节点对应的数据分片分配新的存储节点,以替换负荷超过设定负荷阈值的存储节点;在接收到存储节点升级请求时,重新为需要升级的存储节点对应的数据分片分配新的存储节点,以替换需要升级的存储节点。
关于本实施例装置中各步骤的详细实施方式以及有益效果已经在前述实施例中进行了详细描述,此处将不做详细阐述说明。
图7为本申请又一示例性实施例提供的一种电子设备的结构示意图。该电子设备实现为缓存型存储系统中的云存储接入节点,云存储接入节点部署在计算节点上,计算节点具有缓存型云存储盘,缓存型云存储盘中存储的同一数据分片被分配到缓存型存储系统中的至少两个存储节点。如图7所示,该设备包括:存储器74和处理器75。
存储器74,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令等。
存储器74可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器75,与存储器74耦合,用于执行存储器74中的计算机程序,以用于:在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中;在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据。
在一可选实施例中,缓存型云存储盘用于存储至少一个数据分片;处理器75还用于:接收缓存型存储系统中的云存储管理节点同步的数据分片分配信息,数据分片分配信息中包括至少一个数据分片的标识信息、各数据分片对应的至少两个存储节点的标识信息。
在一可选实施例中,处理器75在计算节点向其缓存型云存储盘中写入第一数据分片中的第一数据时,将第一数据分别写入第一数据分片对应的至少两个存储节点中时,具体用于:接收计算节点上的云计算实例发送的写请求;根据写请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片及其对应的至少两个存储节点;分别向第一数据分片对应的至少两个存储节点发送写请求和第一数据,以向第一数据分片对应的至少两个存储节点中写入第一数据。
在一可选实施例中,处理器75还用于:在未能接收到第一数据分片对应的任一存储节点返回的写入成功消息的情况下,向云存储管理节点上报存储节点发生写失败情况,以使云存储管理节点重新为第一数据分片分配新的存储节点,以替换发生写失败情况的存储节点;在云存储管理节点重新为第一数据分片分配新的存储节点的情况下,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求和第一数据,以向非新分配的和新分配的存储节点中写入第一数据。
在一可选实施例中,处理器75在重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求和第一数据时,具体用于:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息中包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息,以及更新后的数据分片分配信息对应的新的版本信息;根据更新后的数据分片分配信息,重新向第一数据分片对应的非新分配的和新分配的存储节点发送写请求、第一数据和新的版本信息,以向非新分配的和新分配的存储节点中写入第一数据;其中,新的版本信息用于供非新分配的和新分配的存储节点验证是否是第一数据分片对应的合法存储节点。
在一可选实施例中,处理器75在计算节点从缓存型云存储盘中读取第二数据分片中的第二数据时,从第二数据分片对应的任一存储节点中读取第二数据时,具体用于:接收计算节点上的云计算实例发送的读请求;根据读请求中的地址信息,从本地保存的数据分片分配信息中确定第一数据分片或第二数据分片及其对应的至少两个存储节点;向第二数据分片对应的任一存储节点发送读请求,以使第二数据分片对应的任一存储节点读取并返回第二数据。
进一步,如图7所示,该电子设备还包括:通信组件76、显示器77、电源组件78、音频组件79等其它组件。图7中仅示意性给出部分组件,并不意味着电子设备只包括图7所示组件。另外,图7中虚线框内的组件为可选组件,而非必选组件,具体可视电子设备的产品形态而定。本实施例的电子设备可以实现为常规服务器、云服务器或服务器阵列等服务端设备。
本申请实施例还提供一种电子设备,该电子设备的实现结构与图7所示电子设备的实现结构相同或类似,可参照图7所示电子设备的结构实现。本实施例提供的电子设备可实现为缓存型存储系统中的第一存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第一存储节点对应缓存型云存储盘中存储的第一数据分片,第一数据分片对应缓存型存储系统中的至少两个存储节点。本实施例提供的电子设备与图7所示实施例中电子设备的区别主要在于:处理器执行存储器中存储的计算机程序所实现的功能不同。对本实施例提供的电子设备来说,其处理器执行存储器中存储的计算机程序,可用于:接收写请求和第一数据,第一数据是第一数据分片中的数据;根据写请求,将第一数据写入本地存储介质中;在第一存储节点是第一数据分片对应的新分配的存储节点的情况下,向第一数据分片对应的非新分配的存储节点发送复制请求,以从非新分配的存储节点复制第一数据分片中缺失的数据。
在一可选实施例中,处理器还用于:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第一数据分片对应的非新分配的和新分配的存储节点的标识信息;根据更新后的数据分片分配信息,确定第一存储节点是第一数据分片对应的新分配的存储节点。
本申请实施例还提供一种电子设备,该电子设备的实现结构与图7所示电子设备的实现结构相同或类似,可参照图7所示电子设备的结构实现。本实施例提供的电子设备可实现为缓存型存储系统中的第二存储节点,缓存型存储系统对应有为计算节点创建的缓存型云存储盘,第二存储节点对应缓存型云存储盘中存储的第二数据分片,第二数据分片对应缓存型存储系统中的至少两个存储节点。本实施例提供的电子设备与图7所示实施例中电子设备的区别主要在于:处理器执行存储器中存储的计算机程序所实现的功能不同。对本实施例提供的电子设备来说,其处理器执行存储器中存储的计算机程序,可用于:接收读请求,读请求用于请求读取第二数据分片中的第二数据;在本地存储介质中缺失第二数据分片中的数据,且缺失的数据至少包括第二数据的情况下,从第二数据分片对应的其它存储节点中获取第二数据,并将第二数据返回给读请求的发送方。
在一可选实施例中,处理器还用于:接收云存储管理节点同步的更新后的数据分片分配信息,更新后的数据分片分配信息至少包括第二数据分片对应的非新分配的和新分配的存储节点的标识信息;根据更新后的数据分片分配信息,确定第二存储节点是第二数据分片对应的新分配的存储节点。
本申请实施例还提供一种电子设备,该电子设备的实现结构与图7所示电子设备的实现结构相同或类似,可参照图7所示电子设备的结构实现。本实施例提供的电子设备可实现为缓存型云存储系统中的云存储管理节点。本实施例提供的电子设备与图7所示实施例中电子设备的区别主要在于:处理器执行存储器中存储的计算机程序所实现的功能不同。对本实施例提供的电子设备来说,其处理器执行存储器中存储的计算机程序,可用于:为计算节点创建缓存型云存储盘,缓存型云存储盘用于存储至少一个数据分片;为同一数据分片分配缓存型云存储系统中的至少两个存储节点;记录数据分片分配信息,数据分片分配信息至少包括至少一个数据分片的标识信息和各数据分片对应的至少两个存储节点的标识信息;将数据分片分配信息同步给部署在计算节点上的云存储接入节点和相应存储节点。
在一可选实施例中,处理器还用于:在任一数据分片满足分配更换条件的情况下,重新为任一数据分片分配新的存储节点,并更新数据分片分配信息中任一数据分片对应的存储节点的标识信息。
在一可选实施例中,处理器在任一数据分片满足分配更换条件的情况下,重新为任一数据分片分配新的存储节点时,用于执行以下至少一种操作:在接收到云存储接入节点上报存储节点发生写失败情况时,重新为发生写失败情况的存储节点对应的数据分片分配新的存储节点,以替换发生写失败情况的存储节点;在监测到存储节点的负荷超过设定负荷阈值时,重新为负荷超过设定负荷阈值的存储节点对应的数据分片分配新的存储节点,以替换负荷超过设定负荷阈值的存储节点;在接收到存储节点升级请求时,重新为需要升级的存储节点对应的数据分片分配新的存储节点,以替换需要升级的存储节点。相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述图2-图5方法实施例中可由电子设备执行的各步骤。
上述存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable Read-Only Memory,PROM),只读存储器(Read-Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(Near Field Communication,NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(Radio Frequency Identification,RFID)技术,红外数据协会(InfraredData Association,IrDA)技术,超宽带(Ultra Wide Band,UWB)技术,蓝牙(BlueTooth,BT)技术和其他技术来实现。
上述显示器包括屏幕,其屏幕可以包括液晶显示器(Liquid Crystal Display,LCD)和触摸面板(TouchPanel,TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(Microphone,MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(Central ProcessingUnit,CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-change Random AccessMemory,PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
- 基于云存储的电网数据上传方法、装置、系统及存储介质
- 数据缓存方法、装置、计算机设备及存储介质
- 数据缓存方法、装置、计算机设备及存储介质
- 一种数据缓存方法、装置、设备及存储介质
- 一种日志缓存方法、系统、设备及计算机可读存储介质
- 基于云存储的多节点混合块缓存数据读写方法及系统
- 基于云存储的多节点混合块缓存数据读写方法及系统