CN111984461B - 一种数据读取的方法、装置及云存储系统 - Google Patents

一种数据读取的方法、装置及云存储系统 Download PDF

Info

Publication number
CN111984461B
CN111984461B CN201910431328.1A CN201910431328A CN111984461B CN 111984461 B CN111984461 B CN 111984461B CN 201910431328 A CN201910431328 A CN 201910431328A CN 111984461 B CN111984461 B CN 111984461B
Authority
CN
China
Prior art keywords
storage
target
node
data
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910431328.1A
Other languages
English (en)
Other versions
CN111984461A (zh
Inventor
包国强
潘习文
林起芊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201910431328.1A priority Critical patent/CN111984461B/zh
Publication of CN111984461A publication Critical patent/CN111984461A/zh
Application granted granted Critical
Publication of CN111984461B publication Critical patent/CN111984461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Abstract

本申请提供一种数据读取的方法、装置及云存储系统,当所述方法应用于云存储系统中用于为客户端提供目标数据的目标存储节点时,所述方法包括:接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径;根据所述目标存储路径,判断本节点是否已存储所述目标数据;若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。本实施例可以适用于数据即存即取的应用场景,能够在备份数据未及时完成同步的情况下实现对数据的立即读取,并且不会改变用户读取数据的接口,提高用户成功读取数据的概率,从而提升了云存储系统的性能。

Description

一种数据读取的方法、装置及云存储系统
技术领域
本申请涉及云存储技术领域,尤其涉及一种数据读取的方法、装置及云存储系统。
背景技术
云存储系统是一个以数据存储和管理为核心的云计算系统,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统,其可以保证数据的安全性,并节约存储空间。
当用户使用云存储服务时,将私有数据上传到云端进行存储,数据的安全性是用户最关心的问题。在保证数据安全性方面,云存储系统为同一份数据存储多个副本,同时使用合理的副本布局策略将其尽可能地分散存储,这样可以将用户并行的读取请求分散到存储副本的存储节点上,有利于减轻源存储节点的负载,提高系统的响应速度。
然而,上述将用户并行的读取请求分散到存储副本的存储节点上的前提条件是源存储节点中存储的数据已经同步到备份存储节点中,但在实际应用场景中,存在源存储节点中的数据未同步至备份存储节点但要从备份存储节点读取该数据的即存即取的情况,这种情况会导致用户从备份存储节点读取数据失败。
发明内容
有鉴于此,本申请提供一种数据读取的方法、装置及云存储系统。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种数据读取方法,所述方法应用于云存储系统中用于为客户端提供目标数据的目标存储节点,所述方法包括:
接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径,其中,所述数据读取请求为所述客户端向管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据所述管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求;
根据所述目标存储路径,判断本节点是否已存储所述目标数据;
若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。
在本实施例的一种可能的实施方式中,所述根据所述目标存储路径,判断本节点是否已存储所述目标数据,包括:
在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据。
在本实施例的一种可能的实施方式中,所述目标存储路径包括目标存储卷标识;所述从所述目标存储路径对应的源存储节点中请求所述目标数据,包括:
在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;
根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据。
在本实施例的一种可能的实施方式中,在将所述目标数据返回所述客户端之后,所述方法还包括:
删除所述目标数据。
在本实施例的一种可能的实施方式中,所述方法还包括:
接收所述源存储节点发送的所述目标数据的备份数据,并将该备份数据存储在本地。
第二方面,本申请实施例提供了一种数据读取装置,所述装置应用于云存储系统中用于为客户端提供目标数据的目标存储节点,所述装置包括:
数据读取请求接收模块,用于接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径,其中,所述数据读取请求为所述客户端向管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据所述管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求;
存储判断模块,用于根据所述目标存储路径,判断本节点是否已存储所述目标数据;
目标数据获取模块,用于若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据;
数据返回模块,用于将所述目标数据返回所述客户端。
第三方面,本申请实施例提供了一种云存储系统,所述云存储系统包括:管理节点以及多个存储节点,所述存储节点包括源存储节点以及备份存储节点;其中,
所述管理节点,用于在接收到客户端发送的存储节点分配请求以后,从多个存储节点中选取一存储节点作为用于为所述客户端提供目标数据的目标存储节点,并将所述目标存储节点的地址信息返回所述客户端;
所述目标存储节点,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,根据所述目标存储路径,判断本节点是否已存储所述目标数据;若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。
在本实施例的一种可能的实施方式中,所述目标存储节点具体用于:
在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据。
在本实施例的一种可能的实施方式中,所述目标存储路径包括目标存储卷标识;所述目标存储节点具体用于:
在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;
根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据。
在本实施例的一种可能的实施方式中,所述源存储节点用于对所述目标数据进行备份,获得备份数据,并将所述备份数据发送至所述备份存储节点中;
所述备份存储节点用于接收所述备份数据,并将该备份数据存储在本地。
第四方面,本申请实施例提供了一种云存储系统,所述云存储系统包括多个存储节点,所述存储节点包括源存储节点、备份存储节点以及具有管理功能的存储节点;其中,
所述具有管理功能的存储节点,用于在接收到客户端发送的存储节点分配请求以后,从多个存储节点中选取一存储节点作为用于为所述客户端提供目标数据的目标存储节点,并将所述目标存储节点的地址信息返回所述客户端;
所述目标存储节点,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,根据所述目标存储路径,判断本节点是否已存储所述目标数据;若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。
在本实施例的一种可能的实施方式中,所述具有管理功能的存储节点具有预设的虚拟网络地址,所述客户端通过所述虚拟网络地址向该存储节点发送存储节点分配请求。
在本实施例的一种可能的实施方式中,所述目标存储节点具体用于:
在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据。
在本实施例的一种可能的实施方式中,所述目标存储路径包括目标存储卷标识;所述目标存储节点具体用于:
在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;
根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据。
在本实施例的一种可能的实施方式中,所述源存储节点用于对所述目标数据进行备份,获得备份数据,并将所述备份数据发送至所述备份存储节点中;
所述备份存储节点用于接收所述备份数据,并将该备份数据存储在本地。
本申请实施例具有如下有益效果:
在本申请实施例中,当存储节点接收到包含待读取的目标数据的目标存储路径的数据读取请求以后,可以先根据该目标存储路径,判断本节点是否已存储该目标数据,如果没有存储该目标数据,则本节点直接从目标存储路径对应的源存储节点中获取目标数据,并将该目标数据返回客户端,以确保客户端一次性成功读取数据,本方案适用于数据即存即取的应用场景,能够在备份数据未及时完成同步的情况下实现对数据的立即读取,并且不会改变用户读取数据的接口,提高用户成功读取数据的概率,从而提升了云存储系统的性能。
附图说明
图1是本申请一示例性实施例示出的本申请实施例的云存储系统所在的数据处理系统的系统结构示意图;
图2是本申请一示例性实施例示出的一种云存储系统实施例的结构框图;
图3是本申请一示例性实施例示出的云存储系统架构示意图;
图4是本申请一示例性实施例示出的另一种云存储系统实施例的结构框图;
图5是本申请一示例性实施例示出的一种数据读取方法实施例的步骤流程图;
图6是本申请的装置所在设备的一种硬件结构图;
图7是本申请一示例性实施例示出的一种数据读取装置实施例的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种云存储系统,参考图1示出了本申请一示例性实施例示出的本申请实施例的云存储系统所在的数据处理系统的系统结构示意图,如图1所示,数据处理系统可以包括客户端、平台服务器、前端设备(如抓拍机)及云存储系统,其中,云存储系统包括若干存储节点和管理节点,该若干存储节点被划分至虚拟化资源池中。
在一种例子中,通过图1所述的数据处理系统进行图片存储的过程为:(1)抓拍机拍摄图片写入云存储系统;(2)云存储系统返回图片存储的存储路径;(3)抓拍机直接将该存储路径发送至平台服务器,进而由平台服务器基于该存储路径生成该数据对应的URL并保存;或者,抓拍机也可以基于该存储路径生成对应的URL发送至平台服务器进行存储。(4)平台服务器或客户端(如浏览器)通过该URL访问该对应的图片。
如下对数据访问(读取)的过程进行具体说明:
参考图2,示出了本申请一示例性实施例示出的一种云存储系统实施例的结构框图,如图2所示,云存储系统至少可以包括管理节点10以及多个存储节点20,其中,存储节点20进一步可以包括源存储节点以及备份存储节点。
在本实施例中,管理节点10用于在接收到客户端发送的存储节点分配请求以后,从多个存储节点中选取一存储节点作为用于为客户端提供目标数据的目标存储节点,并将目标存储节点的地址信息返回所述客户端。
所述目标存储节点20,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,根据所述目标存储路径,判断本节点是否已存储所述目标数据;若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。
在本实施例中,当客户端需要读取数据时,首先向管理节点发送存储节点分配请求,管理节点接收到存储节点分配请求以后,可以根据负载均衡或随机原则等从多个存储节点中选取一个存储节点作为用于向客户端提供目标数据的目标存储节点,并将该目标存储节点的地址信息返回客户端。随后,客户端根据接收的地址信息,向该地址信息对应的目标存储节点发送数据读取请求,其中,该数据读取请求可以包括待读取的目标数据的目标存储路径。目标存储节点接收到数据读取请求以后,解析出目标存储路径,若根据该目标存储路径判断本地没有存储对应的目标数据时,则从该目标存储路径对应的源存储节点中请求目标数据,并将目标数据返回客户端。
在实际中,当客户端想要下载数据(如图3的图片)时,客户端可以基于该数据的URL向云存储系统发送请求,以下载对应的数据。其中,当该客户端为浏览器的客户端时,用户可以将该URL拷贝到浏览器的地址输入框中,从而使得浏览器发出请求。而当客户端为平台服务器时,由于平台服务器存储有该URL,因此,当需要访问数据时,平台服务器可以直接基于该URL发出请求。
在一种可能的实施场景中,如图3的云存储系统架构示意图所示,管理节点10可以为CVM(视频云存储管理节点)集群中的一个节点,而存储节点为CVS(视频云存储存储节点,在图3中示例性的示出了CVS1、CVS2及CVS3三个存储节点)。在图3中,客户端触发的URL中包括CVM集群中的某个管理节点的网络地址,该网络地址为云存储系统的对外访问地址,示例性地可以包括IP地址和端口。客户端基于该网络地址与该管理节点建立tcp连接后,该管理节点可以接收客户端发送的第一http请求消息(即存储节点分配请求),其中,该第一http请求消息包括该想要下载的图片的URL。
在图3中,接收到第一http请求消息以后,管理节点可以从该云存储系统所包括的存储节点中随机或按照负载均衡策略等选取出目标存储节点(如图3中的CVS2),并获取该目标存储节点对应的地址信息(CVS2的地址,包括IP地址及端口号),然后根据该目标存储节点对应的地址信息生成第一http回复消息反馈至客户端。
在客户端接收到第一http回复消息后,从该第一http回复消息中解析出目标存储节点对应的地址信息,并根据该地址信息与目标存储节点(如图3中的VCS2)建立tcp连接,然后向该目标存储节点(CVS2)发送第二http请求消息(即数据读取请求),该第二http请求消息包括待读取的目标数据的目标存储路径。
目标存储节点(CVS2)从第二http请求消息中解析出待读取的目标数据的目标存储路径后,首先判断本节点是否已存储该目标数据;若本节点没有存储该目标数据,则根据该目标存储路径确定对应的源存储节点(假设在图3中图片源存储在CVS1中),并向源存储节点(CVS1)请求目标数据。得到目标数据以后,目标存储节点(CVS2)根据该目标数据生成第二http回复消息反馈至客户端,客户端解析该第二http回复消息可以获得对应的目标数据。
在本实施例中,客户端向云存储系统发送的数据请求通过管理节点重定向至目标存储节点以后,目标存储节点可以根据请求中包含的目标存储路径,判断本节点是否已存储对应的目标数据,如果没有存储该目标数据,则本节点直接从该目标存储路径对应的源存储节点中获取目标数据,并将该目标数据返回客户端,以确保客户端一次性成功读取数据,本实施例适用于数据即存即取的应用场景,能够在备份数据未及时完成同步的情况下实现对数据的立即读取,并且不会改变用户读取数据的接口,提高用户成功读取数据的概率,从而提升了云存储系统的性能。
参考图4,示出了本申请一示例性实施例示出的另一种云存储系统实施例的结构框图,本实施例的云存储系统是一种分布式的、无中心管理节点的无中心存储系统,与图3的云存储系统相比,无中心云存储系统能够使得云存储更安全、更快捷、更低成本。并且由于其无中心的特点,因此其具有较强的横向扩展能力,通过扩展能够支持较大的存储容量,对于提升整个系统的性能、可靠性和稳定性都有着较大的意义。
如图4所示,云存储系统至少可以包括多个存储节点20,其中,存储节点进一步可以包括源存储节点、备份存储节点以及具有管理功能的存储节点。
在本实施例中,所述具有管理功能的存储节点,用于在接收到客户端发送的存储节点分配请求,从多个存储节点中选取一存储节点作为用于为所述客户端提供目标数据的目标存储节点,并将所述目标存储节点的地址信息返回所述客户端。
所述目标存储节点,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,根据所述目标存储路径,判断本节点是否已存储所述目标数据;若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据,并将所述目标数据返回所述客户端。
本实施例与图2实施例的区别在于,本实施例中的云存储系统没有管理节点,而是将管理节点的管理功能移植到存储节点中,由该具有管理功能的存储节点完成数据的调度与管理,在这种情况下,该具有管理功能的存储节点既作为存储节点也作为管理节点。
在一种实施方式中,上述具有管理功能的存储节点可以具有预设的虚拟网络地址,客户端通过该虚拟网络地址向该存储节点发送存储节点分配请求。例如,在一种可能的应用场景中,客户端触发的URL中包括虚拟网络地址,该虚拟网络地址为云存储系统的对外访问地址,示例性地可以包括虚拟的IP地址和端口。客户端基于该虚拟网络地址与设置有该虚拟网络地址的存储节点建立tcp连接后,该存储节点可以接收客户端发送的第一http请求消息(即存储节点分配请求),其中,该第一http请求消息包括该想要下载的图片的URL。
接收到第一http请求消息以后,该具有管理功能的存储节点可以从该云存储系统所包括的存储节点中随机或按照负载均衡策略等选取出目标存储节点(该选取的目标存储节点可以包括源存储节点、该具有管理功能的存储节点或其他备份存储节点),并获取该目标存储节点对应的地址信息,然后根据该目标存储节点对应的地址信息生成第一http回复消息反馈至客户端。
在客户端接收到第一http回复消息后,从该第一http回复消息中解析出目标存储节点对应的地址信息,并根据该地址信息与目标存储节点建立tcp连接(若目标存储节点为该具有管理功能的存储节点,则这一步可以省略),然后向该目标存储节点发送第二http请求消息(即数据读取请求),该第二http请求消息包括待读取的目标数据的目标存储路径。
目标存储节点从第二http请求消息中解析出待读取的目标数据的目标存储路径后,首先判断本节点是否已存储该目标数据;若本节点没有存储该目标数据,则根据该目标存储路径确定对应的源存储节点,并向源存储节点请求目标数据。得到目标数据以后,目标存储节点根据该目标数据生成第二http回复消息反馈至客户端,客户端解析该第二http回复消息可以获得对应的目标数据。
在本实施例中,云存储系统中通过具有管理功能的存储节点替代原有的管理节点,客户端向云存储系统发送的数据请求通过该具有管理功能的存储节点重定向至目标存储节点以后,目标存储节点可以根据请求中包含的目标存储路径,判断本节点是否已存储对应的目标数据,如果没有存储该目标数据,则本节点直接从该目标存储路径对应的源存储节点中获取目标数据,并将该目标数据返回客户端,以确保客户端一次性成功读取数据,本实施例适用于数据即存即取的应用场景,能够在备份数据未及时完成同步的情况下实现对数据的立即读取,并且不会改变用户读取数据的接口,提高用户成功读取数据的概率,从而提升了云存储系统的性能。
参考图5,示出了本申请一示例性实施例示出的一种数据读取方法实施例的步骤流程图,本申请实施例可以应用于云存储系统中用于为客户端提供目标数据的目标存储节点中,本实施例可以应用于数据即存即取的场景,具体可以包括如下步骤:
步骤501,接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径。
在本实施例中,数据读取请求可以为客户端向云存储系统中的管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据该管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求。
在一种实现中,当客户端需要读取数据时,首先向管理节点或具有管理功能的存储节点发送存储节点分配请求,管理节点或具有管理功能的存储节点接收到存储节点分配请求以后,可以根据负载均衡或随机原则等从多个存储节点中选取一个存储节点作为用于向客户端提供目标数据的目标存储节点,并将该目标存储节点的地址信息返回客户端。随后,客户端根据接收的地址信息,向该地址信息对应的目标存储节点建立连接,并向该目标存储节点发送数据读取请求,其中,该数据读取请求可以包括待读取的目标数据的目标存储路径。
作为一种示例,目标数据可以包括图片、文档、视音频等已在云存储系统中存储的数据。
步骤502,根据所述目标存储路径,判断本节点是否已存储所述目标数据。
在该步骤中,目标存储节点接收到数据读取请求以后,解析出目标存储路径,并根据该目标存储路径判断本地是否存储对应的目标数据。
在一种实现方式中,根据获取的目标存储路径,本节点可以首先判断该目标存储路径是否为自身的存储路径,如果是自身的存储路径,则本节点为用于存储该目标数据的源存储节点,否则,如果该目标存储路径不是自身的存储路径,则本节点为用于存储该目标数据的备份数据的备份存储节点。
作为一种示例,目标存储路径至少可以包括存储卷标识(DeviceID)、存储块标识(BlockID)、存储段标识(SegmentID)、目标数据标识(dataID)以及目标数据的大小Size等。
在一种实施方式中,本节点可以根据DeviceID在集群中的唯一性,确定该DeviceID是否为自身的DeviceID,如果是,则表示该目标存储路径为自身的存储路径;如果不是,则表示该目标存储路径不为自身的存储路径。
当本节点为存储目标数据的备份存储节点时,在本申请实施例的一种优选实施例中,步骤502可以包括如下子步骤:
子步骤S11,在本地保存的路径映射表中查找所述目标存储路径。
其中,路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系。
在实现时,当本节点接收到源存储节点发送的数据时,可以将该接收到的数据存储在本节点的存储介质中,随后可以获取该数据在本节点的存储路径作为本地存储路径。在实际中,源存储节点在向本节点发送数据时还可以携带该数据在源存储节点中存储的源存储路径,本节点得到该数据在本地存储的本地存储路径以后,可以建立该本地存储路径与源存储路径的映射关系,并将该映射关系记录在路径映射表中。
在该步骤中,本节点在接收到目标存储路径以后,可以在本地保存的路径映射表中查找该目标存储路径,在实现时,可以在路径映射表中记录的各个源存储路径中,查找与该目标存储路径的存储卷标识、存储块标识、存储段标识以及目标数据标识均相同的源存储路径,如果查找成功,则表示路径映射表中存在与目标存储路径相同的源存储路径;如果查找不成功,则表示路径映射表中不存在与目标存储路径相同的源存储路径。
子步骤S12,若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据。
子步骤S13,若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据。
在该步骤中,路径映射表用于保存已存储的数据的本地存储路径与源存储路径的映射关系,则如果在路径映射表中没有查找到与目标存储路径相同的源存储路径,则表示本节点没有存储该目标数据,即目标数据未同步完成;如果在路径映射表中查找到与目标存储路径相同的源存储路径,则表示本节点已存储该目标数据,即目标数据已同步完成。
若目标数据已同步完成,则可以从路径映射表中获取与该源存储路径存在映射关系的本地存储路径,然后从该对应的本地存储路径中读取目标数据,以及返回该目标数据至客户端。
步骤503,若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中获取所述目标数据,并将所述目标数据返回所述客户端。
在该步骤中,如果本节点没有存储客户端所需的目标数据,则本节点可以向目标存储路径对应的源存储节点临时请求该目标数据。
在本申请实施例的一种优选实施例中,上述从所述目标存储路径对应的源存储节点中请求目标数据的步骤,进一步可以包括如下子步骤:
子步骤S21,在预设的用于记录存储卷标识与IP地址的映射表中查找目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址。
在该步骤中,可以预先生成一用于记录各存储卷标识与存储节点的IP地址的绑定关系的映射表,然后在该映射表中查找目标存储路径中的目标存储卷标识,以获得与该目标存储卷标识存在绑定关系的IP地址,作为源存储节点的IP地址。
子步骤S22,根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据。
当确定源存储节点的IP地址以后,本节点可以根据该IP地址请求与所述源存储节点建立通信连接。当连接建立以后,本存储节点可以根据目标存储路径生成数据获取请求,并将该数据获取请求发送至源存储节点中。则源存储节点接收到数据获取请求以后,可以解析出目标存储路径,并从该目标存储路径对应的存储位置中获得目标数据并返回。
本节点接收到源存储节点返回的目标数据以后,可以直接将该目标数据返回客户端。
在本申请实施例的一种优选实施例中,还可以包括如下步骤:
删除所述目标数据。
在该步骤中,由于后续本存储节点还会接收到源存储节点发送的备份数据,因此,当应客户端的请求获得目标数据并将该目标数据发送至客户端以后,本存储节点可以删除该目标数据。
在本申请实施例的一种优选实施例中,还可以包括如下步骤:
接收所述源存储节点发送的所述目标数据的备份数据,并将该备份数据存储在本地。
对于源存储节点而言,当其接收到写入的目标数据以后,将目标数据存储在本地,并获得目标数据存储的源存储路径作为目标存储路径,然后将目标存储路径返回客户端。
另外,源存储节点还可以按照预设的数据备份原则将目标数据备份至云存储系统中的部分或全部存储节点中。
针对本存储节点而言,当其接收到备份数据以后,可以对该备份数据进行存储,获得本地存储路径,并建立该本地存储路径以及接收的源存储路径的映射关系,以及将该映射关系保存在路径映射表中。
在本申请实施例中,当存储节点接收到包含待读取的目标数据的目标存储路径的数据读取请求以后,可以先根据该目标存储路径,判断本节点是否已存储该目标数据,如果没有存储该目标数据,则本节点直接从目标存储路径对应的源存储节点中获取目标数据,并将该目标数据返回客户端,以确保客户端一次性成功读取数据,本方案适用于数据即存即取的应用场景,能够在备份数据未及时完成同步的情况下实现对数据的立即读取,并且不会改变用户读取数据的接口,提高用户成功读取数据的概率,从而提升了云存储系统的性能。
与前述方法的实施例相对应,本申请还提供了数据读取装置的实施例。
本申请数据读取装置的实施例可以应用在上述存储节点中。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请的装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图7,示出了本申请一示例性实施例示出的一种数据读取装置实施例的结构框图,所述装置应用于云存储系统的备份存储节点中,具体可以包括如下模块:
数据读取请求接收模块701,用于接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径;
其中,所述数据读取请求为所述客户端向管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据所述管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求。
存储判断模块702,用于根据所述目标存储路径,判断本节点是否已存储所述目标数据;
目标数据获取模块703,用于若本节点没有存储所述目标数据,则从所述目标存储路径对应的源存储节点中请求所述目标数据;
数据返回模块704,用于将所述目标数据返回所述客户端。
在本实施例的一种可能的实施方式中,所述存储判断模块702具体用于:
在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据。
在本实施例的一种可能的实施方式中,所述目标存储路径包括目标存储卷标识;所述目标数据获取模块703可以包括如下子模块:
IP地址确定子模块,用于在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;
目标数据请求子模块,用于根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据。在本实施例的一种可能的实施方式中,所述方法还包括:
数据删除模块,用于在将所述目标数据返回所述客户端之后,删除所述目标数据。
在本实施例的一种可能的实施方式中,所述装置还包括:
备份数据接收模块,用于接收所述源存储节点发送的所述目标数据的备份数据,并将该备份数据存储在本地。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法实施例的步骤。
本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例的步骤。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如车载终端、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (9)

1.一种数据读取方法,其特征在于,所述方法应用于云存储系统中用于为客户端提供目标数据的目标存储节点,所述方法包括:
接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径,其中,所述数据读取请求为所述客户端向管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据所述管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求;
判断所述目标存储路径是否为自身的存储路径,若是,则判定本节点存储所述目标数据;若否,则在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据;
若本节点没有存储所述目标数据,则在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储路径包括的目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为源存储节点的IP地址;
根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据,以确保客户端一次性成功读取数据。
2.根据权利要求1所述的方法,其特征在于,在将所述目标数据返回所述客户端之后,所述方法还包括:
删除所述目标数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述源存储节点发送的所述目标数据的备份数据,并将该备份数据存储在本地。
4.一种数据读取装置,其特征在于,所述装置应用于云存储系统中用于为客户端提供目标数据的目标存储节点,所述装置包括:
数据读取请求接收模块,用于接收客户端发送的数据读取请求,所述数据读取请求包括待读取的目标数据的目标存储路径,其中,所述数据读取请求为所述客户端向管理节点或具有管理功能的存储节点发送分配存储节点请求,并根据所述管理节点或具有管理功能的存储节点返回的地址信息与本存储节点建立连接后,向本存储节点发送的请求;
存储判断模块,用于判断所述目标存储路径是否为自身的存储路径,若是,则判定本节点存储所述目标数据;若否,则在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;
若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;
若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据;
目标数据获取模块,用于若本节点没有存储所述目标数据,则在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储路径包括的目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为源存储节点的IP地址;
根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据,以确保客户端一次性成功读取数据。
5.一种云存储系统,其特征在于,所述云存储系统包括:管理节点以及多个存储节点,所述存储节点包括源存储节点以及备份存储节点;其中,
所述管理节点,用于在接收到客户端发送的存储节点分配请求以后,从多个存储节点中选取一存储节点作为用于为所述客户端提供目标数据的目标存储节点,并将所述目标存储节点的地址信息返回所述客户端;
所述目标存储节点,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,判断所述目标存储路径是否为自身的存储路径,若是,则判定本节点存储所述目标数据;若否,则在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据;若本节点没有存储所述目标数据,则在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储路径包括的目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据,以确保客户端一次性成功读取数据。
6.根据权利要求5所述的系统,其特征在于,
所述源存储节点用于对所述目标数据进行备份,获得备份数据,并将所述备份数据发送至所述备份存储节点中;
所述备份存储节点用于接收所述备份数据,并将该备份数据存储在本地。
7.一种云存储系统,其特征在于,所述云存储系统包括多个存储节点,所述存储节点包括源存储节点、备份存储节点以及具有管理功能的存储节点;其中,
所述具有管理功能的存储节点,用于在接收到客户端发送的存储节点分配请求以后,从多个存储节点中选取一存储节点作为用于为所述客户端提供目标数据的目标存储节点,并将所述目标存储节点的地址信息返回所述客户端;
所述目标存储节点,用于接收所述客户端发送的、包含待读取的目标数据的目标存储路径的数据读取请求,判断所述目标存储路径是否为自身的存储路径,若是,则判定本节点存储所述目标数据;若否,则在本地保存的路径映射表中查找所述目标存储路径,所述路径映射表用于记录本地已存储的数据的本地存储路径与源存储路径的映射关系;若所述路径映射表中不存在与所述目标存储路径相同的源存储路径,则判定本节点没有存储所述目标数据;若所述路径映射表中存在与所述目标存储路径相同的源存储路径,则判定本节点已存储所述目标数据;若本节点没有存储所述目标数据,则在预设的用于记录存储卷标识与IP地址的映射表中查找所述目标存储路径包括的目标存储卷标识,获得与所述目标存储卷标识对应的IP地址,作为所述源存储节点的IP地址;根据所述源存储节点的IP地址建立与所述源存储节点的连接,并从所述源存储节点中请求与所述目标存储路径对应的目标数据,以确保客户端一次性成功读取数据。
8.根据权利要求7所述的系统,其特征在于,所述具有管理功能的存储节点具有预设的虚拟网络地址,所述客户端通过所述虚拟网络地址向该存储节点发送存储节点分配请求。
9.根据权利要求7所述的系统,其特征在于,
所述源存储节点用于对所述目标数据进行备份,获得备份数据,并将所述备份数据发送至所述备份存储节点中;
所述备份存储节点用于接收所述备份数据,并将该备份数据存储在本地。
CN201910431328.1A 2019-05-22 2019-05-22 一种数据读取的方法、装置及云存储系统 Active CN111984461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910431328.1A CN111984461B (zh) 2019-05-22 2019-05-22 一种数据读取的方法、装置及云存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910431328.1A CN111984461B (zh) 2019-05-22 2019-05-22 一种数据读取的方法、装置及云存储系统

Publications (2)

Publication Number Publication Date
CN111984461A CN111984461A (zh) 2020-11-24
CN111984461B true CN111984461B (zh) 2024-02-27

Family

ID=73436101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910431328.1A Active CN111984461B (zh) 2019-05-22 2019-05-22 一种数据读取的方法、装置及云存储系统

Country Status (1)

Country Link
CN (1) CN111984461B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546375A (zh) * 2012-07-11 2014-01-29 中兴通讯股份有限公司 内容路由方法及装置
CN108234638A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种基于内容分发网络cdn的数据处理方法和装置
WO2018166415A1 (zh) * 2017-03-16 2018-09-20 杭州海康威视数字技术股份有限公司 云存储系统、媒体数据存储方法及系统
CN108737484A (zh) * 2017-04-21 2018-11-02 杭州海康威视数字技术股份有限公司 媒体数据存储方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546375A (zh) * 2012-07-11 2014-01-29 中兴通讯股份有限公司 内容路由方法及装置
WO2018166415A1 (zh) * 2017-03-16 2018-09-20 杭州海康威视数字技术股份有限公司 云存储系统、媒体数据存储方法及系统
CN108737484A (zh) * 2017-04-21 2018-11-02 杭州海康威视数字技术股份有限公司 媒体数据存储方法及系统
CN108234638A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种基于内容分发网络cdn的数据处理方法和装置

Also Published As

Publication number Publication date
CN111984461A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
US10880823B2 (en) Method and device method and device for obtaining access information of shared wireless access point
CN109976771B (zh) 一种应用的部署方法及装置
US10299191B2 (en) Method and device for establishing wireless connection
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
US11050550B2 (en) Methods and systems for reading data based on plurality of blockchain networks
CN111064804B (zh) 网络访问方法和装置
CN114780465B (zh) 可共享远程直接数据存取链接的创建方法及装置
CN113395340A (zh) 一种信息更新方法、装置、设备、系统和可读存储介质
CN110321225B (zh) 负载均衡方法、元数据服务器及计算机可读存储介质
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN113885797B (zh) 一种数据存储方法、装置、设备及存储介质
CN114884962A (zh) 负载均衡方法及装置和电子设备
US11223692B2 (en) Service execution methods and apparatuses
CN108228842B (zh) Docker镜像库文件存储方法、终端、设备以及存储介质
CN109753229B (zh) 数据迁移方法、装置、网络附属存储设备和存储介质
CN111984461B (zh) 一种数据读取的方法、装置及云存储系统
CN106649528A (zh) 图片写入和读取方法、装置
CN110708375A (zh) 一种数据处理方法、装置及系统
CN114840307A (zh) 容器的加载方法、装置、设备和存储介质
US20210064270A1 (en) Method and adevice for downloading resources
CN112040023B (zh) 对象访问方法、装置、电子设备及机器可读存储介质
US11086849B2 (en) Methods and systems for reading data based on plurality of blockchain networks
CN109739615B (zh) 一种虚拟硬盘的映射方法、设备和云计算平台
CN114064594A (zh) 数据处理方法和装置
CN115103020B (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
GR01 Patent grant
GR01 Patent grant