背景技术
云存储服务(cloud storage service)是一项业务,它维护并管理其客户数据并让这些数据易于通过网络访问,通常是互联网。
云存储服务通过集群应用、网络技术及/或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。
云存储服务的优点主要体现在:存储管理可以实现自动化和智能化,所有存储资源被整合到一起,客户看到的是单一的存储空间,提高了存储效率,通过虚拟化技术解决了存储空间的浪费,可以自动重新分配数据,提高了存储空间的利用率,同时云存储服务具备负载均衡、故障冗余等功能。此外,云存储服务能够实现规模效应和弹性扩展,降低运营成本,避免资源浪费。
正因为云存储服务的各种优点,目前,越来越多的互联网企业正在上线或者已经上线了各种云存储服务平台系统,同时,越来越多的个人、企业、政府部门等越来越依赖于云存储服务。
通常,云存储服务存储数据都需要保存一份源数据到数据中心,以保证数据不丢失、不损坏。进一步地,为了保证数据完整不丢失,通常一份数据会进行大量的备份副本的操作。传统地,数据存储全为机房与机房之间的数据互换,安全性依赖于机房与机房之间的网络稳定。这种方案存在以下问题:
1、基建、运营成本高:源数据备份到数据中心,这样的数据中心要求保证链路、硬件设备(硬盘、cpu、内存)、制冷等设施的完善,需要耗费大量的财力去建设和维护。
2、数据易丢失、业务鲁棒性差:源数据是数据损坏时能够及时恢复的保证,但是如果数据中心因为不可抗力的因素出现损坏,那么数据就无法正常恢复。
3、存储可用性差、贷款浪费严重:数据存储过程中需要提供大量的宽带资源,以保证数据存储的正常运转。
4、业务弹性差:业务高峰时可能会将占用机房所有带宽,只能限制访问或者降级访问,导致用户体验差;而业务低峰期时,则带宽闲置,浪费资源。
发明内容
鉴于以上内容,有必要提供一种云存储服务的数据管理方法以及适用于上述方法的系统与设备,其能够降低云存储服务的数据管理成本,并且能够保证数据的可靠性。
本发明第一方面提供一种云存储服务的数据管理方法,该方法运行于一云服务智能设备中,并包括:
连接打洞服务器,执行打洞操作;
在打洞成功时,上报打洞信息给集群索引服务器;
向集群索引服务器请求互存储任务;
从集群索引服务器获得其他云服务智能设备的打洞信息,执行打洞连接和数据传 输;及
将从其他云服务智能设备获得的数据写入校验信息,并存入存储介质中。
优选地,所述互存储任务包括请求获知当前云服务智能设备与哪一台或者多台云服务智能设备之间进行文件数据的传输。
优选地,该方法还包括:
当打洞操作不成功时,向集群索引服务器请求集中存储任务,与数据中心之间执行数据传输操作,将从数据中心获得的数据写入校验信息,并存入存储介质中
优选地,所述请求集中存储任务包括请求获知当前云服务智能设备与哪一个数据中心之间进行文件数据的传输。
优选地,所述打洞信息包括打洞成功的云服务智能设备的外网和内网的地址二元组信息。
优选地,所述云服务智能设备是存储在个人用户家庭内的小型计算机设备,其通过NAT网关连接到互联网。
本发明第二方面提供一种云服务智能设备,该云服务智能设备包括存储设备以及处理器,所述存储器上存储有可在所述处理器上运行的云存储服务的数据管理程序,所述云存储服务的数据管理程序被所述处理器执行时实现上述任一项所述云存储服务的数据管理方法。
本发明第三方面提供一种云存储服务的数据管理系统,该系统包括如上述所述的云服务智能设备,及与所述云服务智能设备通信连接的至少一个集群索引服务器,其中,所述集群索引服务器用于:
生成文件数据的分布式存储任务,对超过预设尺寸的文件数据进行分块,向云服务智能设备下发分布式存储任务,接收云服务智能设备上报的文件数据的存储结果;
收集所有现网正在服务的云服务智能设备的负载状态以及是否正常在线的信息;
均衡各个云服务智能设备分配的存储任务;以及
将每个文件或者文件分块用唯一的索引标识,并将所述索引标识写入集群索引服务器的数据库中。
优选地,所述集群索引服务器通过下述方法判断云服务智能设备是否正常在线:
定期向云服务智能设备发送消息,若预设时间阈值之内没有收到云服务智能设备的反馈,即判断云服务智能设备不在线。
本发明所述云存储服务的数据管理方法及适用于上述方法的系统与设备,利用分布在世界范围内的不同地域的个人计算机中的闲置的带宽和存储资源,构建云存储的数据存储,解决云存储的数据存储中带宽资源消耗巨大、数据易丢失、鲁棒性差等的问题。在本方案中,成千上万的家庭提供了无限的带宽资源和存储资源,极大地减少了对数据中心资源的依赖。
具体实施方式
参阅图1所示,是本发明云存储服务的数据管理方法较佳实施例适用的系统环境示意图。
本发明较佳实施例中,云存储服务的数据管理方法适用的系统主要包括多台云服务智能设备1、打洞服务器2以及集群索引服务器3。
所述云服务智能设备1可以通过NAT(Network Address Translation,网络地址转换)网关4连接到互联网5,为云服务提供计算、存储和带宽资源。
本发明较佳实施例中,所述多台云服务智能设备1通过打洞服务器2的协助,在各自的NAT网关4上建立相关的表项,使P2P连接的双方发送的报文能够直接穿透对方的NAT网关4,完成“打洞”,从而实现P2P云服务智能设备之间的直接互连。
所述P2P是指peer to peer,即点对点通信或称为对等联网,网络中的所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源的共享。P2P网络具有分散性、可扩展性、健壮性等特点,这使得P2P技术在信息共享、即时通讯、协同工作、分布式计算、网络存储等领域都有广阔的应用。
所述打洞服务器2是一台被设置在公网上的服务器,建立P2P的双方都可以直接访问到这台服务器。位于NAT网关4后面的云服务智能设备1,如云服务智能设备A和B,都可以与该已知的打洞服务器2建立连接,并通过这台打洞服务器2了解对方的信息并中转各自的信息。
假定云服务智能设备A要发起对云服务智能设备B的直接连接,具体的打洞过程如下:
1)云服务智能设备A最初不知道如何向云服务智能设备B发起连接,于是云服务智能设备A向打洞服务器2发送消息,请求打洞服务器2帮助建立与云服务智能设备B的UDP连接。
2)打洞服务器2将含有云服务智能设备B的外网和内网的地址二元组发给云服务智能设备A,同时,打洞服务器2将包含有云服务智能设备A的外网和内网的地址二元组信息的消息也发给云服务智能设备B。这样一来,云服务智能设备A与云服务智能设备B就都知道对方外网和内网的地址二元组信息了。
3)当云服务智能设备A收到由打洞服务器2发来的包含云服务智能设备B的外网和内网的地址二元组信息后,云服务智能设备A开始向云服务智能设备B的地址二元组发送UDP数据包,并且云服务智能设备A会自动锁定第一个给出响应的云服务智能设备B的地址二元组。同理,当云服务智能设备B收到由打洞服务器发来的云服务智能设备A的外网和内网地址二元组信息后,也会开始向云服务智能设备A的外网和内网的地址二元组发送UDP数据包,并且自动锁定第一个得到云服务智能设备A回应的地址二元组。
本发明较佳实施例中,所述集群索引服务器2主要用于执行云存储服务的存储调度,当云服务智能设备1打洞成功时,在云服务智能设备1之间执行数据传输工作,如文件数据的上传、下载以及备份等操作,以及当云服务智能设备1打洞不成功时,执行集中式存储,去数据中心,如互联网数据中心(Internet Data Center,IDC)执行文件数据的上传、下载以及备份等操作。所述集群索引服务器2的详细功能可以参照下述的图2以及图3中的描述。
参阅图2所示,是本发明云存储服务的数据管理方法较佳实施例适用的云服务智能设备以及集群索引服务器功能模块结构示意图。
本发明较佳实施例中,云服务智能设备1主要包括打洞模块10、上报模块11、互存储模块12、集中存储模块13以及文件存储模块14;以及所述的集群索引服务器3主要包括存储管理模块30、设备管理模块31、调度模块32以及索引模块33。
其中:
所述打洞模块10用于在NAT网关4下的云服务智能设备1之间是不能直接互联时,在云服务智能设备1之间执行“打洞”操作,以实现云服务智能设备1之间的P2P信令传输。
所述打洞操作的详细过程参照上述所示。
所述上报模块11用于收集云服务智能设备1上的负载(例如,CPU、内存、磁盘的负载)和打洞信息等,上报给所述集群索引服务器3中的存储管理模块30以及设备管理模块31。
所述互存储模块12用于在云服务智能设备1“打洞”成功时,在云服务智能设备1之间互联,发送私有通信协议,完成数据传输,如文件数据的上传、下载以及备份等。
所述集中存储模块13用于在云服务智能设备1“打洞”不成功,在云服务智能设备1之间不能直接互联时,执行集中式存储,去数据中心执行文件数据的上传、下载以及备份等操作。
所述文件存储模块14用于在从其他云服务智能设备1或者数据中心接收到数据后,进行数据写磁盘操作,并且在本地存储介质中记录数据信息。
所述存储管理模块30用于生成文件数据的分布式存储任务(如在云服务智能设备1之间进行数据传输还是到数据中心执行文件数据的上传、下载与备份),文件数据的分块(如将超过预设尺寸(如50Mb)的文件数据划分为多块,以节省文件数据的传输时间),向云服务智能设备1下发分布式存储任务,接收云服务智能设备1上报的文件数据的存储结果等。
所述设备管理模块31用于收集所有现网正在服务的云服务智能设备1的负载状态以及是否正常在线的信息等。
本发明较佳实施例中,所述设备管理模块31可以定期向云服务智能设备1发送消息,若预设时间阈值(如30秒)之内没有收到云服务智能设备1的反馈,即可判断云服务智能设备1不在线。
所述调度模块32用于在存储过程中均衡存储任务,让文件更快的存储到云服务智能设备设备1中,避免单台智能设备设备1的负载高。
所述索引模块33用于将每个存储文件或者文件分块用唯一的索引标识,,方便索引每一块文件在哪些云服务智能设备1中已经存储,并将索引标识写入集群索引服务器3的数据库中。
参阅图3所示,是本发明云存储服务的数据管理方法较佳实施例的实施流程图。本发明主要由云服务智能设备1所执行。
步骤S10,连接打洞服务器2,执行打洞操作。
详细地,所述打洞操作如下:
1)云服务智能设备A向打洞服务器2发送消息,请求打洞服务器2帮助建立与云服务智能设备B的UDP连接;
2)打洞服务器2将含有云服务智能设备B的外网和内网的地址二元组发给云服务智能设备A,同时,打洞服务器2将包含有云服务智能设备A的外网和内网的地址二元组信息的消息也发给云服务智能设备B;
3)当云服务智能设备A收到由打洞服务器2发来的包含云服务智能设备B的外网和内网的地址二元组信息后,云服务智能设备A开始向云服务智能设备B的地址二元组发送UDP数据包,并且云服务智能设备A会自动锁定第一个给出响应的云服务智能设备B的地址二元组。同理,当云服务智能设备B收到由打洞服务器发来的云服务智能设备A的外网和内网地址二元组信息后,也会开始向云服务智能设备A的外网和内网的地址二元组发送UDP数据包,并且自动锁定第一个得到云服务智能设备A回应的地址二元组。
步骤S11,判断打洞操作是否成功?
当云服务智能设备A收到云服务智能设备B发送的UDP数据包且云服务智能设备B收到云服务智能设备A发送的UDP数据包时,打洞操作成功,执行下述的步骤S12至S15。
步骤S12,上报打洞信息给集群索引服务器3。
所述打洞信息包括例如,打洞连接成功的云服务智能设备A以及云服务智能设备B的外网和内网的地址二元组信息等。
步骤S13,向集群索引服务器3请求互存储任务。
本发明较佳实施例中,所述互存储任务包括请求获知当前云服务智能设备2与哪一台或者多台云服务智能设备2之间进行文件数据的传输,如文件数据的上传、下载以及备份等操作。
步骤S14,从集群索引服务器3获得其他云服务智能设备的打洞信息,执行打洞连接和数据传输。
所述打洞信息包括其他云服务智能设备的外网和内网的地址二元组信息等。
步骤S15,将从其他云服务智能设备获得的数据写入校验信息,并存入存储介质中。
当步骤S11判断打洞操作不成功,执行下述的步骤S16、S17以及S15。
步骤S16,向集群索引服务器3请求集中存储任务。
所述请求集中存储任务包括请求获知当前云服务智能设备与哪一个数据中心之间进行文件数据的传输。
步骤S17,与数据中心之间执行数据传输操作,并执行步骤S15,将从数据中心获得的数据写入校验信息,并存入存储介质中。
由上述描述可知,本发明利用分散在互联网中的闲置设备,通过边缘计算、共享计算、存储、带宽等闲置资源通过P2P技术加快存储速度和成本,相比传统云存储的存储速度和成本大大降低。存储过程通过P2P技术降低对单点的依赖,提高文件存储成功率。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。