控制云存储中数据冗余的方法及装置技术领域
本发明涉及云存储领域,即基于网络的由若干服务器和若干网络存储设备组成的降低数据冗
余、减少网络资源浪费的控制云存储中数据冗余的方法及装置。
背景技术
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应
用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协
同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据
的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,
所以云存储是一个以数据存储和管理为核心的云计算系统。
从云存储的概念及目前应用来看,其本质是向用户提供一种透明的网络存储服务。用户只要连
接进入互联网,即可享受网络存储服务--随时随地的管理其所存储的数据,就如同这些数据存储在本地
一样;同时用户可以方便将存储在云存储的数据与其他用户共享。因此如何实现在任意网络接入点方便快
捷的读取数据,同时保证数据的保密性、完整性、可用性成为云存储技术的关键。
云存储服务将在不远的将来成为像电子邮件服务一样得到广泛的应用。随着使用云存储服务终
端用户的增长,将导致云存储系统出现大量的数据冗余--即相同的数据内容被多个终端用户保存在云存
储系统中(如:多个终端用户在云存储系统中保存相同数据内容的音视频资料(电影、歌曲))。
可以想见这种数据冗余随着用户的增多而愈发严重,云存储系统中存储设备的大量存储空间将
被这种不必要的数据冗余所消耗掉;同时造成这种情况的终端用户也因重复上传云存储系统中已经保存的
数据浪费了大量的网络资源和宝贵的时间。而目前国内关于云存储技术的专利中尚没有解决这一问题的方
法。
控制云存储中数据冗余的方法及装置,是为了有效控制降低云存储中由多用户保存相同数据内
容而引发的数据冗余,提高存储设备有效利用率,减少终端用户网络开销的实践方法及系统构架,它需要
依赖以下技术:
1、宽带网络发展。
2、WEB 2.0技术。
3、应用存储发展。
4、集群技术、网格技术和分布式文件系统。
5、CDN内容分发、P2P技术、数据压缩技术。
6、存储虚拟化技术、存储网络化管理技术。
发明内容
本发明是一种控制云存储中数据冗余的方法及装置。使用所述方法及装置构建的系统将有效的
控制由多用户保存相同数据内容引发的数据冗余,提高存储设备的实际使用率,减少终端用户网络开销。
控制云存储中数据冗余的方法及装置为了实现上述目的而发明,其核心是将云存储层中每一保
存的数据都对应建立一个虚拟数据副本计数器与该数据的摘要、保存位置等其它相关信息一同写入一个关
联数据库中。终端用户请求对数据操作前先上传被操作数据的摘要;如被操作数据的摘要存在一个与之关
联的虚拟数据副本计数器,则用户的上传、删除等操作转化为对虚拟数据副本计数器的操作(上传转化为
虚拟数据副本计数器加一,删除转化为虚拟数据副本计数器减一);如被操作数据的摘要没有与之相关联
的虚拟数据副本计数器,终端用户才需要上传被操作数据,并在关联数据库中保存相关信息;同时关联数
据库中还将保存摘要代表的数据在终端用户本地的保存名称(如:文件名、数据表名等,以下简称为本地
名称),以便终端用户查询、下载、删除。
其主要特征在于:
1、终端用户在向云存储系统上传数据前,需要先上传该数据的摘要,云存储系统依摘要判断
要上传的数据是否已保存在系统内;
2、终端用户不必上传已保存在云存储系统的数据,仅向云存储系统上传该数据的本地名称;
3、云存储系统中保存的同一数据,可能对应多个本地名称,即保存数据在上传终端用户的本
地名称,并在终端用户查询时返回与之对应的本地名称,方便终端用户对数据的操作;
4、数据摘要作为数据的唯一标识在各种操作的被引用。
本发明采用模块化层次结构,每个模块中聚合了若干功能器件,组合或单独实现某些功能,每
个层次中包含不同的模块,第一层是终端用户层,本层主要实现提取数据摘要、数据上传/下载、更改数
据操作(删除、更改本地名称);第二层是云存储层,本层主要实现数据存储、虚拟数据副本的管理、数
据摘要及其关联信息的保存、数据摘要的比对、数据摘要及其关联信息的查询等功能。
下面结合附图和具体实施方式对本发明作进一步说明。
附图说明
下述附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起
用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明系统实施例功能层次结构图;
图2为本发明方法的实施例中上传数据的基本流程图;
图3为本发明方法的实施例中下载数据的基本流程图;
图4为本发明方法的实施例中删除数据的基本流程图;
图5为本发明方法的实施例中更改本地名称的基本流程图。
具体实施方式
下面结合附图对本发明做进一步的详细阐述。
参看图1,是本发明控制云存储中数据冗余的方法及装置的实施例功能层次结构图。
第一层是终端用户层100,包含所有使用云存储服务的终端用户,本层主要包含接口管理模块
101、查询模块102、摘要提取模块103,其中:
接口管理模块101,与云存储层接口模块111通过网络相连负责数据传输,解析云存储层的下
发信息,传输数据或将云存储层下发的信息转交相应后续处理模块,并转交后续处理模块上传信息至云存
储层接口管理模块111;
查询模块102,接收云存储层下发的保存数据摘要、本地名称等信息,向终端用户呈现,并将
终端用户对这些信息的操作请求(下载、删除、更改本地名称等)上传云存储层;
摘要提取模块103,提取数据摘要并上传至云存储层;
第二层是云存储层,负责向终端用户层提供云存储服务,本层本层主要包含接口管理模块111,
副本管理模块112,查询模块113,存储模块114,比较模块115,关联数据库116,其中:
接口管理模块111,与终端用户层接口模块101通过网络相连负责数据传输,解析终端用户层
的上传信息,将终端用户层上传的信息转交相应后续处理模块,并转交后续处理模块下发信息至终端用户
层接口管理模块101;
副本管理模块112,维护所有保存在关联数据库中与数据摘要相关联的虚拟数据副本计数器以
及保存位置信息、终端用户信息以及与之关联的本地名称等信息,处理终端用户上传、下载、删除数据的
操作请求,其具体功能是:
(1)当终端用户请求上传数据时,将其提交的上传数据摘要,交由比较模块115判断是否需要该
终端用户上传数据,其中:
①如不需要上传数据,则要求该终端用户上传该数据的本地名称,将该数据摘要相关联的虚拟
数据副本计数器加一,建立终端用户信息和该数据的本地名称等信息与数据摘要的关联关系,并将以上信
息写入关联数据库中,完成数据上传操作;
②如需要上传数据,则要求该终端用户上传该数据并将上传数据转交存储模块114,在终端用
户完成数据的上传,存储模块114返回数据保存位置信息后,再要求用户上传该数据的本地名称,建立一
个与该数据摘要相关联的虚拟数据副本计数器(并设置该计数器值为一)、数据保存位置信息,建立终端
用户信息和该数据的本地名称等信息与数据摘要的关联关系,将以上信息写入关联数据库中,完成数据上
传操作;
(2)当终端用户请求删除数据时,将请求删除数据的终端用户信息、与请求删除数据摘要信息交由
比较模块115判断该终端用户是否有删除数据操作的权限,如果有权删除数据,则首先将与该数据摘要相
关联的虚拟数据副本计数器减一,判断该虚拟数据副本计数器的值,其中:
①虚拟数据副本计数器的值不为零,则将其重新写入关联数据库,删除关联数据库中与该数据
摘要相关联的请求删除数据的终端用户信息、本地名称等信息;
②虚拟数据副本计数器的值为零,则依据数据摘要所关联的存储位置信息请求存储模块114删
除该数据,并且删除关联数据库116中与该数据摘要相关联的所有信息;
(3)当终端用户请求下载数据时,将请求下载数据的终端用户信息与请求下载数据摘要信息交由
比较模块115判断终端用户是否有权下载数据,如果有权下载数据,则依据数据摘要所关联的存储位置信
息向存储模块114读取数据并转交数据转交请求下载数据的终端用户;
(4)当终端用户请求查询已保存数据,将终端用户信息及查询请求转交查询模块113:
(5)当终端用户请求更改已保存数据的本地名称,依据请求更改操作的终端用户信息与上传的数
据摘要信息更改关联数据库116中保存的本地名称;
查询模块113,依据副本管理模块112转交的终端用户信息从关联数据库中读取与之相关联的
数据摘要、本地名称等信息下发,并接收终端用户基于该信息的操作请求(删除、下载、更改本地名称等)
转交副本管理模块112;
存储模块114,响应副本管理模块112的操作请求,将数据写入存储设备返回存储位置信息、
依据存储位置从存储设备读出并返回数据或依据保存位置信息删除存储设备中的数据;
比较模块115,响应副本管理模块112的操作请求,查询关联数据库,并返回操作结果,其中:
(1)副本管理模块112提交数据摘要,查询数据是否已保存,返回数据摘要是否保存在关联数据
库中;
(2)副本管理模块112提交数据摘要和终端用户信息,查询终端用户是否有操作权限,返回关联
数据库中该数据摘要是否与终端用户信息相关联;
关联数据库116,保存数据摘要及其与之关联的虚拟数据副本计数器、数据摘要及该数据在各
个上传终端用户的本地名称。
参看图2,是本发明控制云存储中数据冗余的方法及装置的实施例中上传数据基本流程图。一
个终端用户上传数据的基本流程。
步骤201,终端用户获取要上传数据的摘要,并将摘要上传至云存储层。
步骤202,云存储层副本管理模块调用比较模块判断该摘要所代表的数据是否已保存在云存储
层中,如数据已保存则转向步骤203,如数据未保存则转向步骤204。
步骤203,云存储层副本管理模块将与数据摘要关联的虚拟数据副本计数器加一,并转向步骤
207。
步骤204,终端用户上传数据到云存储层,云存储层副本管理模块调用存储模块保存上传数据,
并将数据保存位置信息写入关联数据库与数据摘要关联的记录中。
步骤205,终端用户完成上传数据后,云存储层副本管理模块建立与数据摘要相关联的虚拟数
据副本计数器设置初始值为一并写入关联数据库。
步骤206,终端用户上传本地名称到云存储层,存储层副本管理模块将本地名称、用户信息写
入关联数据与数据摘要关联的记录中。
步骤207,完成数据上传。
参看图3,是本发明控制云存储中数据冗余的方法及装置的实施例中下载数据的基本流程图。
一个终端用户下载数据的基本流程。
步骤301,终端用户向云存储层查询已保存的数据。
步骤302,云存储层查询模块将与请求终端用户相关联的所有在云存储层中保存数据的摘要信
息、本地名称等信息下发给终端用户。
步骤303,终端用户层查询模块解析并向终端用户呈现云存储层中保存数据的本地名称等信息,
终端用户通过查询模块选择下载指定数据,并上传该数据摘要信息至云存储层。
步骤304,云存储层副本管理模块接收查询模块转交的终端用户下载请求,调用比较模块判断
终端用户是否对所请求的数据拥有下载权限,如拥有下载权限则转向步骤305,如不拥有下载权限则转向
步骤307。
步骤305,云存储层副本管理模块依据从关联数据库中读出的与终端用户上传的数据摘要信息
相关联的存储位置信息调用存储模块读取数据并下发至终端用户层。
步骤306,完成数据下载。
步骤307,拒绝终端用户层的数据下载请求。
参看图4,是本发明控制云存储中数据冗余的方法及装置的实施例中删除数据的基本流程图。
一个终端用户,删除保存在云存储层中数据的流程。
步骤401,终端用户向云存储层查询已保存的数据。
步骤402,云存储层查询模块将与请求终端用/户相关联的所有在云存储层中保存数据的摘要信
息、本地名称等信息下发给终端用户。
步骤403,终端用户层查询模块解析并向终端用户呈现云存储层中保存数据的本地名称等信息,
终端用户通过查询模块选择删除指定数据,并上传该数据摘要信息至云存储层。
步骤404,云存储层副本管理模块接收查询模块转交的终端用户删除请求,调用比较模块判断
终端用户是否对所请求的数据拥有删除权限,如拥有删除权限则转向步骤405,如不拥有删除权限则转向
步骤409。
步骤405,云存储层副本管理模块将虚拟数据副本计数器减一。
步骤406,云存储层副本管理模块判断虚拟数据副本计数器值是否为零,如果为零则转向步骤
407,否则转向步骤408。
步骤407,云存储层副本管理模块依据从关联数据库中读出的与终端用户上传的数据摘要信息
相关联的存储位置信息调用存储模块删除数据,同时清除关联数据库中所有与该数据摘要信息相关联的记
录。
步骤408,完成删除数据操作。
步骤409,拒绝删除数据请求。
参看图5,本发明控制云存储中数据冗余的方法及装置的实施例中更改本地名称的基本流程图。
一个终端用户请求更改在云存储层中保存数据的本地名称的流程。
步骤501,终端用户向云存储层查询已保存的数据。
步骤502,云存储层查询模块将与请求终端用户相关联的所有关联数据库中的摘要信息、本地
名称等信息下发给终端用户。
步骤503,终端用户层查询模块解析并向终端用户呈现云存储层中保存数据的本地名称等信息,
终端用户通过查询模块选择更改本地名称的数据,并上传该数据摘要信息及新的本地名称至云存储层。
步骤504,云存储层副本管理模块接收查询模块转交的终端用户更改本地名称请求,依据从关
联数据库中读出的与终端用户上传的数据摘要信息及终端用户信息相关联的本地名称更改为终端用户上
传的新本地名称,重新写入关联数据库中。
步骤505,完成更改数据本地名称的操作。
以上所述仅是本发明的具体实施方法及一些基本实施例的流程,其内容只是为了便于理解本发
明的基本原理与流程,并非用于限定本发明。流程图仅展现了本发明实施例的主要逻辑顺序,而非全部可
能存在的逻辑顺序。任何有一定相关领域技术知识的人员,在不脱离本发明原理的前提下,还可以在实施
细节和流程上做出若干修改和变化,这些修改和变化也应视为本发明的保护范围。另外,本发明阐述各功
能器件和步骤可以用通用计算装置来实现,它们可以集中在单个计算装置上,也可以分布在多个计算装组
成的网络中;它们可以由计算装置执行可执行的程序代码实现,也可以将它们中的单独或多个功能器件或
步骤制作为集成电路来实现。本发明并不限制任何软硬件组合。