一种数据存储方法、装置和计算机可读存储介质与流程

文档序号:16735309发布日期:2019-01-28 12:35阅读:168来源:国知局
一种数据存储方法、装置和计算机可读存储介质与流程

本发明涉及云存储技术领域,特别是涉及一种数据存储方法、装置和计算机可读存储介质。



背景技术:

随着云对象存储的发展,越来越多的公司开始考虑将自家的业务数据放到远端的云存储上面,既简化了公司自身基础硬件设施的成本,又能实现多地点办公的数据共享。

网络附加存储(networkattachedstorage,nas)作为一种线下的存储设备,面对新的业务需求,可以为用户提供更多样的存储实现。传统nas共享的实现方式是在本地设备基于逻辑卷创建文件系统,然后通过共享协议对文件系统的目录或者文件进行网络共享。

传统方式中,本地设备将数据存储至云端时,为了实现共享协议对云对象存储的无感知,需要在用户态和内核态之间不断的切换,从而实现数据的云存储。图1为本地设备和云端交互的结构示意图,其中,systemcall作为系统调用接口,实现用户态和内核态的交互,systemcall上侧所涉及的共享协议和用户态fs服务属于用户态,systemcall下侧所涉及的用户态fs内核支持组件、cache、网络协议栈以及网卡属于内核态。本地设备通过共享协议发起数据写入,经过系统调用进入用户态fs内核支持组件,内核支持组件将写入的数据交给用户态fs服务,用户态fs服务可以将接收的数据暂存于cache中,然后通过网络协议栈将数据传输至云端,其中,网卡作为本地设备和云端建立通信连接的接口,数据经由网卡传输至云端。从图1中可以看出本地设备将数据存储至云端时,需要在用户态和内核态之间进行不断的切换,导致数据传输的流程较为繁琐,并且数据传输花费的时间较长。

可见,如何简化数据传输流程,提升系统性能,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种数据存储方法、装置和计算机可读存储介质,可以简化数据传输流程,提升系统性能。

为解决上述技术问题,本发明实施例提供一种数据存储方法,包括:

预先建立与每种共享协议类型相对应的协议组件;

根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路;

通过所述通信链路将所述数据传输至所述云端。

可选的,在所述根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路之前还包括:

将所述待传输的数据写入预先设定的缓存区域。

可选的,在所述通过所述通信链路将所述数据传输至所述云端之后还包括:

当接收到共享设备发送的数据获取请求时,则依据所述获取请求中携带的数据标识,从所述云端获取目标数据;

利用与所述目标数据相对应的目标共享协议,将所述目标数据发送给所述共享设备。

可选的,在所述依据所述获取请求中携带的数据标识,从所述云端获取目标数据之后还包括:

将所述目标数据写入预先设定的缓存区域。

可选的,所述通过所述通信链路将所述数据传输至所述云端包括:

当接收到所述云端反馈的通信链路建立成功的响应消息时,则通过所述通信链路将所述数据传输至所述云端。

可选的,在所述通过所述通信链路将所述数据传输至所述云端之后还包括:

当接收到所述云端反馈的数据获取请求时,则通过所述通信链路重新将所述数据传输至所述云端。

本发明实施例还提供了一种数据存储装置,包括建立单元、调用单元和传输单元;

所述建立单元,用于预先建立与每种共享协议类型相对应的协议组件;

所述调用单元,用于根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路;

所述传输单元,用于通过所述通信链路将所述数据传输至所述云端。

可选的,还包括缓存单元;

所述缓存单元,用于将所述待传输的数据写入预先设定的缓存区域。

可选的,在所述通过所述通信链路将所述数据传输至所述云端之后还包括:获取单元和发送单元;

所述获取单元,用于当接收到共享设备发送的数据获取请求时,则依据所述获取请求中携带的数据标识,从所述云端获取目标数据;

所述发送单元,用于利用与所述目标数据相对应的目标共享协议,将所述目标数据发送给所述共享设备。

可选的,还包括缓存单元;

所述缓存单元,用于在所述依据所述获取请求中携带的数据标识,从所述云端获取目标数据之后,将所述目标数据写入预先设定的缓存区域。

可选的,所述传输单元具体用于当接收到所述云端反馈的通信链路建立成功的响应消息时,则通过所述通信链路将所述数据传输至所述云端。

可选的,还包括接收单元;

所述接收单元,用于在所述通过所述通信链路将所述数据传输至所述云端之后,当接收到所述云端反馈的数据获取请求时,则触发所述传输单元通过所述通信链路重新将所述数据传输至所述云端。

本发明实施例还提供了一种数据存储装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述数据存储方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据存储方法的步骤。

由上述技术方案可以看出,预先建立与每种共享协议类型相对应的协议组件;基于不同共享协议的各类数据,其在本地设备和云端之间传输时的通信格式、接口类型等所有差异,为了便于直接和云端进行通信,需要针对每种共享协议类型设置相应的协议组件,在各协议组件中集成了与云端实现通信的程序代码。当本地设备接收到数据时,根据该数据所属的共享协议类型,调用相应的目标协议组件,便可以建立与云端的通信链路;通过该通信链路将数据传输至云端。在该技术方案中,通过依据预先建立协议组件,可以实现和云端的直接通信,减少了内核态与用户态之间的上下文切换,简化了数据传输的流程,节省了数据传输所花费的时间,进一步提升了本地设备的数据处理性能。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供的一种本地设备和云端交互的结构示意图;

图2为本发明实施例提供的一种数据存储方法的流程图;

图3为本发明实施例提供的一种本地设备和云端交互的结构示意图;

图4为本发明实施例提供的一种数据存储装置的结构示意图;

图5为本发明实施例提供的一种数据存储装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种数据存储方法。图2为本发明实施例提供的一种数据存储方法的流程图,该方法包括:

s201:预先建立与每种共享协议类型相对应的协议组件。

在实际应用中,根据需求的不同,往往采用不同的共享协议传输数据,常见的共享协议包括有网络文件系统(networkfilesystem,nfs),服务信息块(servermessageblock,smb)、文件传输协议(filetransferprotocol,ftp)等。

不同类型的共享协议,其通信格式、接口类型等有所差异,为了便于直接和云端进行通信,在本发明实施例中,针对于每种共享协议类型设置相应的协议组件,在各协议组件中集成了与云端实现通信的程序代码。

s202:根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路。

当本地设备需要将数据传输至云端存储时,现有技术中需要经过多次的用户态和内核态的切换,才能将数据传输至云端。

在本发明实施例中,由于预先设置了协议组件,当本地设备需要将数据传输至云端存储时,根据待传输的数据所属的共享协议类型,直接调用与该共享协议类型对应的目标协议组件,便可以建立与云端的通信链路,有效的减少了内核态与用户态之间的上下文切换,简化了数据传输的流程。

s203:通过通信链路将数据传输至云端。

在具体实现中,当本地设备调用相应的目标协议组件,建立与云端的通信链路后,可以直接通过通信链路将数据传输至云端。也可以在接收到云端反馈的通信链路建立成功的响应消息时,通过通信链路将数据传输至云端。本发明实施例,对于本地设备通过通信链路将数据传输至云端的传输时机不做限定。

本地设备和云端交互过程可以参见图3,本地设备通过共享协议发起数据写入,调用与该共享协议对应的协议组件,可以建立与云端的通信链路,此时本地设备只需执行一次用户态和内核态的切换,即将数据通过共享协议写入网络协议栈即可。网卡作为本地设备和云端建立通信连接的接口,可以通过建立的通信链路,将网络协议栈的数据直接传输至云端。

由上述技术方案可以看出,预先建立与每种共享协议类型相对应的协议组件;基于不同共享协议的各类数据,其在本地设备和云端之间传输时的通信格式、接口类型等所有差异,为了便于直接和云端进行通信,需要针对每种共享协议类型设置相应的协议组件,在各协议组件中集成了与云端实现通信的程序代码。当本地设备接收到数据时,根据该数据所属的共享协议类型,调用相应的目标协议组件,便可以建立与云端的通信链路;通过该通信链路将数据传输至云端。在该技术方案中,通过依据预先建立协议组件,可以实现和云端的直接通信,减少了内核态与用户态之间的上下文切换,简化了数据传输的流程,节省了数据传输所花费的时间,进一步提升了本地设备的数据处理性能。

在本发明实施例中,为了提升本地设备和云端数据传输的效率,可以设置相应的缓存区域,在该缓存区域用于存储本地设备和云端交互的数据。

具体的,在根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路之前,可以先将待传输的数据写入预先设定的缓存区域。

在实际应用中,可以设置一个缓存区域,此时多个共享协议共用一个缓存区域;也可以设置多个缓存区域,例如,可以针对于每种类型的共享协议设置一个缓存区域,图3中即是以每种共享协议对应一个缓存区域cache的示意图。

通过设置缓存区域,当本地设备需要向云端存储数据时,可以将待传输的数据放入缓存区域中,由于缓存区域的数据读写速率较快,从而缩短了读取待传输数据所花费的时间。

本地设备将数据存储至云端后,当有其它共享设备需要获取该数据时,本地设备则可以从云端中获取该数据,并通过相应的共享协议将该数据传输给共享设备。

具体的,本地设备通过通信链路将数据传输至云端之后,当接收到共享设备发送的数据获取请求时,则依据获取请求中携带的数据标识,从云端获取目标数据;利用与目标数据相对应的目标共享协议,将目标数据发送给共享设备。

本地设备向云端存储的数据往往有多种,为了便于区分不同类型的数据,可以针对每种类型的数据设置对应的数据标识,以便于后续的查询获取。

在本发明实施例中,对于数据标识的具体形式不做限定,例如,可以用数字作为数据标识,以区分不同类型的数据。

不同类型的数据有其对应的共享协议,在获取到目标数据后,本地设备可以通过调用相应的目标共享协议实现目标数据的传输。

与向云端写入数据类似,在本发明实施例中,也可以将从云端读取的目标数据放入预先设定的缓存区域。具体的,在依据获取请求中携带的数据标识,从云端获取目标数据之后,可以将目标数据写入预先设定的缓存区域。

当获取的目标数据较多时,通过将目标数据放入缓存区域,可以有效的降低数据传输延时造成数据丢失的情况发生,提升了数据传输的安全性。

考虑到在实际应用中,受网络等因素的影响,可能会出现云端无法成功接收到本地设备传输的数据,为了保证数据的有效保存,因此,可以在云端设置检测机制,在建立通信链路之后,云端可以检测在预设时间内是否接收到本地设备传输的数据,当预设时间内未接收到本地设备传输的数据时,则可以通过通信链路向本地设备发送数据获取请求。

其中,预设时间的取值可以依据正常网络状态下数据传输所花费的时间进行设置。

相应的,当本地设备接收到云端反馈的数据获取请求时,则可以通过通信链路重新将数据传输至云端。

通过设置检测机制,可以降低网络不稳定对数据传输带来的影响,以便于本地设备可以及时获知数据发生丢失,从而将数据重新传输至云端,以保证数据的有效存储。

图4为本发明实施例提供的一种数据存储装置的结构示意图,包括建立单元41、调用单元42和传输单元43;

建立单元41,用于预先建立与每种共享协议类型相对应的协议组件;

调用单元42,用于根据待传输的数据所属的共享协议类型,调用相应的目标协议组件,以建立与云端的通信链路;

传输单元43,用于通过通信链路将数据传输至云端。

可选的,还包括缓存单元;

缓存单元,用于将待传输的数据写入预先设定的缓存区域。

可选的,在通过通信链路将数据传输至云端之后还包括:获取单元和发送单元;

获取单元,用于当接收到共享设备发送的数据获取请求时,则依据获取请求中携带的数据标识,从云端获取目标数据;

发送单元,用于利用与目标数据相对应的目标共享协议,将目标数据发送给共享设备。

可选的,还包括缓存单元;

缓存单元,用于在依据获取请求中携带的数据标识,从云端获取目标数据之后,将目标数据写入预先设定的缓存区域。

可选的,传输单元具体用于当接收到云端反馈的通信链路建立成功的响应消息时,则通过通信链路将数据传输至云端。

可选的,还包括接收单元;

接收单元,用于在通过通信链路将数据传输至云端之后,当接收到云端反馈的数据获取请求时,则触发传输单元通过通信链路重新将数据传输至云端。

图4所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,预先建立与每种共享协议类型相对应的协议组件;基于不同共享协议的各类数据,其在本地设备和云端之间传输时的通信格式、接口类型等所有差异,为了便于直接和云端进行通信,需要针对每种共享协议类型设置相应的协议组件,在各协议组件中集成了与云端实现通信的程序代码。当本地设备接收到数据时,根据该数据所属的共享协议类型,调用相应的目标协议组件,便可以建立与云端的通信链路;通过该通信链路将数据传输至云端。在该技术方案中,通过依据预先建立协议组件,可以实现和云端的直接通信,减少了内核态与用户态之间的上下文切换,简化了数据传输的流程,节省了数据传输所花费的时间,进一步提升了本地设备的数据处理性能。

图5为本发明实施例提供的一种数据存储装置50的硬件结构示意图,包括:

存储器51,用于存储计算机程序;

处理器52,用于执行计算机程序以实现如上述数据存储方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据存储方法的步骤。

以上对本发明实施例所提供的一种数据存储方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1