CN108418871A - 一种云存储性能优化方法和*** - Google Patents
一种云存储性能优化方法和*** Download PDFInfo
- Publication number
- CN108418871A CN108418871A CN201810139125.0A CN201810139125A CN108418871A CN 108418871 A CN108418871 A CN 108418871A CN 201810139125 A CN201810139125 A CN 201810139125A CN 108418871 A CN108418871 A CN 108418871A
- Authority
- CN
- China
- Prior art keywords
- subregion
- file
- result
- calculation
- migration
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种云存储性能优化方法和***,涉及互联网的技术领域,包括:获取Swift云存储架构中存储节点各个分区的分区信息;基于分区信息在各个分区中确定第一分区和第二分区;将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,进而解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题。
Description
技术领域
本发明涉及互联网的技术领域,尤其是涉及一种云存储性能优化方法和***。
背景技术
随着互联网+时代的到来,电力营销信息化***新型业务飞速发展,例如:手机客户端、网上营业厅、网上缴费、95598电话服务等,使得异构的、非结构化的数据的数量呈指数性增长,例如:工单、图片、视频,以及以word、pdf、ppt等为代表的文档文件。互联网业务热点数据符合Zipf分布,与此类似,电力营销业务的数据访问也存在着热点效应,即某些数据的访问频率远远超过其它数据。在这样的背景下,云存储架构成为海量异构数据的载体,多样的数据类型、快速的数据流转,宝贵的数据资源中蕴含了巨大的商业价值。
传统存储技术通常采用cache缓存对热点数据进行缓存,通过缓存命中率的提高来提升热点数据的访问性能。然而随着大数据时代的来临,传统的cache缓存策略并不能有效提高海量小文件的读写速度,当前流行的云存储架构也未见专门针对海量小文件热点数据进行分析与存储优化的报道。
针对以上问题,还未提出有效解决方案。
发明内容
有鉴于此,本发明的目的在于提供一种云存储性能优化方法和***,以解决现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题。
本发明实施例提供了一种云存储性能优化方法,该方法包括:获取Swift云存储架构中存储节点各个分区的分区信息,其中,所述各个分区用于存储所属于同一类型的小文件,所述小文件为小于预设值的文件,所述分区信息包括:分区大小信息和/或分区访问次数信息;基于所述分区信息在所述各个分区中确定第一分区和第二分区,其中,所述第一分区中文件的访问频率高于或者等于预设访问频率,所述第二分区中文件的访问频率低于预设访问频率;将所述第一分区中的文件迁移至代理节点中,并将所述第二分区中的文件迁移出所述代理节点中;其中,在将所述第一分区中的文件迁移至所述代理节点之后,用户就能够直接在所述代理节点中访问所述第一分区中的文件。
进一步地,基于所述分区信息在所述各个分区中确定第一分区和第二分区包括:基于所述分区信息计算所述各个分区的热度值;将所述热度值除以所述各个分区的分区大小信息,从而得到所述各个分区的计算结果,其中,所述计算结果用于表征所述各个分区中文件的访问频率;基于所述计算结果确定所述第一分区和所述第二分区。
进一步地,基于所述计算结果确定所述第一分区和所述第二分区包括:将所述计算结果进行排序,得到排序序列;将所述排序序列中的第一目标计算结果所对应的分区作为所述第一分区,其中,所述第一目标计算结果为大于或者等于预设访问频率的结果;将所述排序序列中的第二目标计算结果所对应的分区作为所述第二分区,其中,所述第二目标计算结果为小于所述预设访问频率的结果。
进一步地,将所述第一分区中的文件迁移至代理节点中包括:基于爬山算法将所述第一分区迁移至所述代理节点中;将所述第二分区中的文件迁移出所述代理节点中包括:利用饥饿值策略将所述第二分区迁移出所述代理节点。
进一步地,所述方法还包括:基于所述第一分区中的文件生成格式为Ring文件;将所述Ring文件推送至所述存储节点中进行保存。
根据本发明实施例,还提供了一种云存储性能优化***,所述***包括:数据采集模块,热度计算模块,分区动态迁移模块和Swift云存储架构;所述数据采集模块,用于获取Swift云存储架构中存储节点各个分区的分区信息,其中,所述各个分区用于存储所属于同一类型的小文件,所述小文件为小于预设值的文件,所述分区信息包括:分区大小信息和/或分区访问次数信息;所述热度计算模块,用于基于所述分区信息在所述各个分区中确定第一分区和第二分区,其中,所述第一分区中文件的访问频率高于或者等于预设访问频率,所述第二分区中文件的访问频率低于预设访问频率;所述分区动态迁移模块,用于将所述第一分区中的文件迁移至代理节点中,并将所述第二分区中的文件迁移出所述代理节点中;其中,在将所述第一分区中的文件迁移至所述代理节点之后,用户就能够直接在所述代理节点中访问所述第一分区中的文件。
进一步地,所述热度计算模块包括:热度统计算法单元,用于基于所述分区信息计算所述各个分区的热度值;将所述热度值除以所述各个分区的分区大小信息,从而得到所述各个分区的计算结果,其中,所述计算结果用于表征所述各个分区中文件的访问频率。
进一步地,所述分区动态迁移模块包括:分区热度排序单元;所述分区热度排序单元用于将所述热度计算模块的计算结果进行排序,得到排序序列;将所述排序序列中的第一目标计算结果所对应的分区作为所述第一分区,其中,所述第一目标计算结果为大于或者等于预设访问频率的结果;将所述排序序列中的第二目标计算结果所对应的分区作为所述第二分区,其中,所述第二目标计算结果为小于所述预设访问频率的结果。
进一步地,所述分区动态迁移模块还包括:分区迁移策略单元,用于基于爬山算法将所述第一分区迁移至所述代理节点中和利用饥饿值策略将所述第二分区迁移出所述代理节点。
进一步地,所述分区动态迁移模块还包括:Ring文件生成单元,用于基于所述第一分区中的文件生成格式为Ring文件;Ring文件加密推送单元,用于将所述Ring文件推送至所述存储节点中进行保存。
在本发明实施例中,首先获取Swift云存储架构中存储节点各个分区的分区信息;然后,基于分区信息在各个分区中确定第一分区和第二分区,最后,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种云存储性能优化方法的流程图;
图2是根据本发明实施例提供的SSH加密协议的整体框架结构图;
图3是根据本发明实施例提供的一种云存储性能优化***的结构图;
图4是根据本发明实施例提供的数据采集模块采集分区大小信息的交互图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
图1是根据本发明实施例提供的一种云存储性能优化方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取Swift云存储架构中存储节点各个分区的分区信息,其中,各个分区用于存储所属于同一类型的小文件,小文件为小于预设值的文件,分区信息包括:分区大小信息和/或分区访问次数信息;
步骤S104,基于分区信息在各个分区中确定第一分区和第二分区,其中,第一分区中文件的访问频率高于或者等于预设访问频率,第二分区中文件的访问频率低于预设访问频率;
步骤S106,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中;其中,在将第一分区中的文件迁移至所述代理节点之后,用户就能够直接在代理节点中访问所述第一分区中的文件。
在本发明实施例中,首先获取Swift云存储架构中存储节点各个分区的分区信息;然后,基于分区信息在各个分区中确定第一分区和第二分区,最后,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
在一个可选的实施例中,步骤S104,基于分区信息在各个分区中确定第一分区和第二分区包括如下步骤:
步骤S1041,基于分区信息计算各个分区的热度值;
步骤S1042,将热度值除以各个分区的分区大小信息,从而得到各个分区的计算结果,其中,计算结果用于表征各个分区中文件的访问频率;
步骤S1043,基于计算结果确定第一分区和第二分区。
在本发明实施例中,可以采用不同的热度统计方法来计算各个分区的热度值,例如,通过不同的热度统计方法对各个分区的分区信息进行计算,从而得到各个分区的热度值。其中,不同的热度统计方法可以是指每个分区所对应的热度统计方法均不同,还可以是多个分区中部分分区采用相同的热度统计方法,具体可以根据各个分区之间的关联性来进行确定。
在一个可选的实施方式中,当热度统计方法为一种基于预测的热点统计方法时,可以采用该基于预测的热点统计算法来周期性的计算出各个分区的热度值。
在确定出各个分区的热度值后,就可以用各个分区的热度值相应的除以各个分区的分区大小消息,得到计算结果,再基于计算结果确定第一分区和第二分区,其中,计算结果所表示的就是各个分区中文件的访问频率。
在一个可选的实施例中,步骤S1043基于计算结果确定第一分区和第二分区包括如下步骤:
步骤S1,将计算结果进行排序,得到排序序列;
步骤S2,将排序序列中的第一目标计算结果所对应的分区作为第一分区,其中,第一目标计算结果为大于或者等于预设访问频率的结果;
步骤S3,将排序序列中的第二目标计算结果所对应的分区作为第二分区,其中,第二目标计算结果为小于预设访问频率的结果。
在本发明实施例中,上述计算结果对应存储节点中各个分区中文件的访问频率。因此,在本发明实施例中,在基于各个分区的热度值和各个分区的分区大小信息确定出各个分区的计算结果之后,可以将上述计算结果进行排序,得到排序列表。在得到排序列表之后,就可以基于排序列表确定第一分区(即,热点分区)和第二分区(即,非热点分区)。具体地,可以将排序列表中的计算结果与预设访问频率进行比较,如果计算结果大于或等于预设访问频率,则该计算结果为第一目标计算结果,此时,确定第一目标计算结果所对应的分区作为第一分区(即,热点分区);如果计算结果小于预设访问频率,则该计算结果为第二目标计算结果,此时,确定第二目标计算结果所对应的分区作为第二分区(即,非热点分区)。
在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
在一个可选的实施方式中,步骤S106,将第一分区中的文件迁移至代理节点中包括如下步骤:
基于爬山算法将第一分区迁移至代理节点中;
步骤S106,将第二分区中的文件迁移出代理节点中包括如下步骤:
利用饥饿值策略将第二分区迁移出代理节点。
在本发明实施例中,可以采用爬山算法将热点分区(即,第一分区)尽可能多的迁移至代理节点中,直至达到代理节点存储容量的80%;之后,采用饥饿值策略将非热点分区(即,第二分区)迁出代理节点,实现存储节点和代理节点之间的分区数据动态迁移。
具体来说,爬山算法是一种局部择优的方法,采用启发式方法,是对深度优先搜索的一种改进,即,从当前的数据开始,与周围的邻居数据的值进行比较。如果当前数据是最大的,那么返回当前数据,作为最大值(即山峰最高点);反之就用最高的邻居数据来替换当前数据,从而实现向山峰的高处攀爬的目的;如此循环直到达到最高点。采用这种算法进行热点分区的迁移,可以保证代理节点中存储的热点数据总是实时访问频率最高的文件,实现了动态地预测数据访问热度的技术效果。
在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
在另一个可选的实施方式中,该云存储性能优化方法还包括如下步骤:
基于第一分区中的文件生成格式为Ring文件;以及,将Ring文件推送至存储节点中进行保存。
在本发明实施例中,可以通过SSH加密协议将Ring文件推送至Swift架构中的存储节点。
图2是根据本发明实施例提供的SSH加密协议的整体框架结构图。
具体来说,SSH为Secure Shell的缩写,即安全外壳协议,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议,它是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议;利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH加密协议既可以对数据进行加密传输,又可以对数据进行压缩,提高了数据传输的效率和安全性。由于其极高的安全性和稳定性,目前正广泛替代传统的telnet、ftp等。
如图2所示,SSH协议基本框架从上到下分别为连接协议、用户认证协议和传输协议,整体框架还包括各种SSH高层网络安全协议。其中传输层协议由服务器认证、数据加密以及信息完整性验证组成。用户认证协议用于用户身份验证,连接协议负责建立加密隧道,并将加密隧道提供给上层应用。
在本发明实施例中,使用SCP加密传输来对Ring文件进行传输,SCP是一种基于SSH加密协议的加密传输工具,首先将公钥导入到其他存储节点中,当进行传输时首先会验证公钥是否正确,验证正确后建立加密通道,将Ring文件进行压缩传输。
在本发明实施例中,首先获取Swift云存储架构中存储节点各个分区的分区信息;然后,基于分区信息在各个分区中确定第一分区和第二分区,最后,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
实施例二:
本发明实施例还提供了一种云存储性能优化***,该***主要用于执行本发明实施例上述内容所提供的云存储性能优化方法,以下对本发明实施例提供的云存储性能优化***做具体介绍。
图3是根据本发明实施例提供的一种云存储性能优化***的结构图,如图3所示,该***包括:数据采集模块10,热度计算模块20,分区动态迁移模块30和Swift云存储架构40,其中:
数据采集模块10,用于获取Swift云存储架构40中存储节点各个分区的分区信息,其中,各个分区用于存储所属于同一类型的小文件,小文件为小于预设值的文件,分区信息包括:分区大小信息101和/或分区访问次数信息102;
热度计算模块20,用于基于分区信息在各个分区中确定第一分区和第二分区,其中,第一分区中文件的访问频率高于或者等于预设访问频率,第二分区中文件的访问频率低于预设访问频率;
分区动态迁移模块30,用于将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中;其中,在将第一分区中的文件迁移至代理节点之后,用户就能够直接在代理节点中访问第一分区中的文件。
在本发明实施例中,数据采集模块10是整个***的基础,其使用Socket通信收集Swift云存储架构40中的存储节点中分区的统计信息,包括:采集分区大小信息101以及采集访问次数信息102,在此基础上,数据采集模块10将采集到的信息保存在文件中以供上一层热度计算模块20使用。
在本发明实施例中,采集分区大小信息101指的是采集Swift云存储架构中存储节点中各分区的大小信息。由于Swift云存储架构采用多节点、多副本结构,因此分区大小信息的采集不能获取重复的分区也不能遗漏分区。
在本发明实施例中,首先通过数据采集模块获取Swift云存储架构中存储节点各个分区的分区信息;然后,通过热度计算模块基于分区信息在各个分区中确定第一分区和第二分区,最后,通过分区动态迁移模块将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
图4是根据本发明实施例提供的数据采集模块采集分区大小信息的交互图。
如图4所示,数据采集模块10采用socket通信的方式分为客户端和服务器端来获取存储节点的分区大小并进行合并,最终将整个分区大小信息保存在文件中供后续模块使用。
具体来说,客户端向服务器端发送获取分区大小信息的请求;此时服务器端向Swift代理服务发送获取分区位置信息的请求,进而Swift代理服务向服务端返回分区位置信息;服务器端在获取到分区位置信息后向Swift存储服务发起计算分区大小的指令,Swift存储服务在获取到该指令之后,并在执行该指令之后向服务器端返回分区大小信息;最后,服务器端向客户端返回该分区大小信息;分区大小信息采集完毕。
在本发明实施例中,采集访问次数信息102是由于Swift云存储架构采用代理节点和存储节点交互的方式,因此,所有对象的访问均经过代理节点,在代理节点中记录分区的访问次数。但代理节点中并不保存对象或者分区的下载次数,因此需要修改Swift云存储架构,实现分区访问次数信息收集任务。
具体来说,Swift中采用GETorHead方式访问对象,定位proxy/controllers/obj.py文件中的GETorHead函数,所有对象的访问最终均经过该函数,因此在该函数中添加数据收集服务。当接收到对象的访问请求时,首先计算出该对象所在的分区,读取分区统计数据并加锁,随后分区数进行累加后写回到分区统计数据中,解锁并等待下一次计算。核心思想示意如下:
由于Swift云存储架构中对象访问采用多线程技术,因此必须对分区统计文件加锁以保证计数的准确性,实验表明文件加锁对***性能影响非常低可忽略不计。至此,分区访问次数采集工作完成,生成分区下载次数的文件,该文件会随着访问的到来而自动更新。
在本发明实施例中,首先获取Swift云存储架构中存储节点各个分区的分区信息;然后,基于分区信息在各个分区中确定第一分区和第二分区,最后,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
在一个可选的实施方式中,如图3所示,热度计算模块20包括:热度统计算法单元201,用于基于分区信息计算所述各个分区的热度值;将热度值除以各个分区的分区大小信息,从而得到各个分区的计算结果,其中,计算结果用于表征各个分区中文件的访问频率。
在本发明实施例中,热度统计算法单元201是热度计算模块20的核心,该模块根据分区大小信息101和分区访问次数信息102,根据配置选择热度统计算法单元201中的不同热度统计算法进行计算,例如:采用基于预测的热点统计算法来周期性地计算出存储节点中分区的热度值,并用热度值除以分区大小,得到各个分区的计算结果,具体的计算过程如下:
(1)二元线性回归预测算法需要每隔1分钟获取一次分区的访问情况,并进行记录,保持最近10分钟内分区访问次数。
(2)热度统计算法单元201需要采样不同周期内数据的访问情况,在本发明实施例中,将T1设置为一个小时,T2设置为半个小时,T3设置为10分钟。即每隔10分钟更新一次T3周期的访问次数,每隔半个小时更新T2的访问次数,每隔一个小时更新T1的访问次数。
(3)动态迁移周期即进行动态迁移的时间间隔,在本发明实施例中,将该时间设置为15分钟,即每隔15分钟,计算下一周期内分区的热度值,并以此热度值进行分区迁移。
具体地,热度计算模块20的伪代码描述如下:
需要说明的是,热度统计算法单元201中可以采用多种方法,例如,使用二元线性回归来预测下一周期分区的访问情况,并将其作为多周期热度统计算法的输入,最终预测出下一周期分区的热度值。
在另一个可选的实施方式中,如图3所示,分区动态迁移模块30包括:分区热度排序单元301;其中,分区热度排序单元301用于将热度统计算法单元201的计算结果进行排序,得到排序序列;将排序序列中的第一目标计算结果所对应的分区作为第一分区,其中,第一目标计算结果为大于或者等于预设访问频率的结果;将排序序列中的第二目标计算结果所对应的分区作为第二分区,其中,第二目标计算结果为小于所述预设访问频率的结果。
可选地,如图3所示,分区动态迁移模块30还包括:Ring文件生成单元302,用于基于第一分区中的文件生成格式为Ring文件;Ring文件加密推送单元303,用于将Ring文件推送至存储节点中进行保存。
可选地,如图3所示,分区动态迁移模块30还包括:分区迁移策略单元304,用于基于爬山算法将第一分区迁移至代理节点中和利用饥饿值策略将第二分区迁移出代理节点。
在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
下面以一个具体的实施例来对本发明的热点分区动态迁移做出说明。具体地,热点分区动态迁移的工作流产如下:
(1)定时计算分区热度值H,分区大小Size,根据H/Size由高到低排序。
(2)设置CurrentProxy列表,扫描object.ring.gz文件中的_replica2part2dev_id三个副本对应的列表,将属于代理节点的分区id添加到CurrentProxy列表中。
(3)设置WantToProxy列表,采用爬山算法,按照分区热度值/分区大小的顺序,将分区id尽量添加到该列表中,直至累计容量总和达到代理节点总容量80%为止。
(4)设置MoveInProxy列表,表示希望迁入代理节点的分区,但此时分区不在代理节点中。按顺序扫描WantToProxy列表,如果分区id属于CurrentProxy列表,则将该分区id从CurrentProxy列表中删除,否则将该分区id添加到MoveInProxy列表中。此时CurrentProxy列表中保存的即为应该迁出的分区id,将此时CurrentProxy赋值为MoveOutProxy列表。
(5)设置NoProxyGreedy字典,该字典保存非代理设备的id和对应的饥饿值,初始值均设为0。
(6)扫描MoveInProxy列表,首先记录分区id中第一个副本对应的设备id,将该设备id饥饿值加一,即NoProxyGreedy[id]加一。随后将该分区对应的设备id修改为代理节点id,即完成热点分区的迁入。
(7)对NoProxyGreedyGreedy字典,按饥饿值由大到小排序。
(8)扫描MoveOutProxy列表,将分区id原本对应于代理设备id的副本修改为饥饿值最大的设备id,如果饥饿值最大的设备id已经在该分区id对应的设备列表里,则选择次大的,直到第三大则一定可以找到一个饥饿设备id。随后将设备的饥饿值减一,重新排序NoProxyGreedy字典。重复步骤(6)直到所有分区id全部修改完成,此时非热点分区迁出完成。
(9)保存重新生成的objec.ring.gz。
(10)将新生成的object.ring.gz文件使用scp推送到各个存储节点中。scp new_object_ring.gz [email protected]:/etc/swift/object.ring.gz。
至此,热点分区动态迁移完成,各个存储节点的更新服务按照Ring文件,进行分区数据迁移。
在本发明实施例中,首先获取Swift云存储架构中存储节点各个分区的分区信息;然后,基于分区信息在各个分区中确定第一分区和第二分区,最后,将第一分区中的文件迁移至代理节点中,并将第二分区中的文件迁移出代理节点中。在本发明实施例中,通过热点数据的动态迁移,达到了提高云存储***的访问速度的目的,解决了现有技术中传统的cache缓存策略不能有效提高海量小文件的读写速度的技术问题,实现了云架构下不同类型的业务动态地预测数据访问热度,并且有效提高海量小文件的读写速度的技术效果。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种云存储性能优化方法,其特征在于,包括:
获取Swift云存储架构中存储节点各个分区的分区信息,其中,所述各个分区用于存储所属于同一类型的小文件,所述小文件为小于预设值的文件,所述分区信息包括:分区大小信息和/或分区访问次数信息;
基于所述分区信息在所述各个分区中确定第一分区和第二分区,其中,所述第一分区中文件的访问频率高于或者等于预设访问频率,所述第二分区中文件的访问频率低于预设访问频率;
将所述第一分区中的文件迁移至代理节点中,并将所述第二分区中的文件迁移出所述代理节点中;其中,在将所述第一分区中的文件迁移至所述代理节点之后,用户就能够直接在所述代理节点中访问所述第一分区中的文件。
2.根据权利要求1所述的方法,其特征在于,基于所述分区信息在所述各个分区中确定第一分区和第二分区包括:
基于所述分区信息计算所述各个分区的热度值;
将所述热度值除以所述各个分区的分区大小信息,从而得到所述各个分区的计算结果,其中,所述计算结果用于表征所述各个分区中文件的访问频率;
基于所述计算结果确定所述第一分区和所述第二分区。
3.根据权利要求2所述的方法,其特征在于,基于所述计算结果确定所述第一分区和所述第二分区包括:
将所述计算结果进行排序,得到排序序列;
将所述排序序列中的第一目标计算结果所对应的分区作为所述第一分区,其中,所述第一目标计算结果为大于或者等于预设访问频率的结果;
将所述排序序列中的第二目标计算结果所对应的分区作为所述第二分区,其中,所述第二目标计算结果为小于所述预设访问频率的结果。
4.根据权利要求1所述的方法,其特征在于,
将所述第一分区中的文件迁移至代理节点中包括:基于爬山算法将所述第一分区迁移至所述代理节点中;
将所述第二分区中的文件迁移出所述代理节点中包括:利用饥饿值策略将所述第二分区迁移出所述代理节点。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一分区中的文件生成格式为Ring文件;
将所述Ring文件推送至所述存储节点中进行保存。
6.一种云存储性能优化***,其特征在于,包括:数据采集模块,热度计算模块,分区动态迁移模块和Swift云存储架构;
所述数据采集模块,用于获取Swift云存储架构中存储节点各个分区的分区信息,其中,所述各个分区用于存储所属于同一类型的小文件,所述小文件为小于预设值的文件,所述分区信息包括:分区大小信息和/或分区访问次数信息;
所述热度计算模块,用于基于所述分区信息在所述各个分区中确定第一分区和第二分区,其中,所述第一分区中文件的访问频率高于或者等于预设访问频率,所述第二分区中文件的访问频率低于预设访问频率;
所述分区动态迁移模块,用于将所述第一分区中的文件迁移至代理节点中,并将所述第二分区中的文件迁移出所述代理节点中;其中,在将所述第一分区中的文件迁移至所述代理节点之后,用户就能够直接在所述代理节点中访问所述第一分区中的文件。
7.根据权利要求6所述的***,其特征在于,所述热度计算模块包括:热度统计算法单元,用于基于所述分区信息计算所述各个分区的热度值;将所述热度值除以所述各个分区的分区大小信息,从而得到所述各个分区的计算结果,其中,所述计算结果用于表征所述各个分区中文件的访问频率。
8.根据权利要求6所述的***,其特征在于,所述分区动态迁移模块包括:分区热度排序单元;
所述分区热度排序单元用于将所述热度计算模块的计算结果进行排序,得到排序序列;
将所述排序序列中的第一目标计算结果所对应的分区作为所述第一分区,其中,所述第一目标计算结果为大于或者等于预设访问频率的结果;
将所述排序序列中的第二目标计算结果所对应的分区作为所述第二分区,其中,所述第二目标计算结果为小于所述预设访问频率的结果。
9.根据权利要求6所述的***,其特征在于,所述分区动态迁移模块还包括:
分区迁移策略单元,用于基于爬山算法将所述第一分区迁移至所述代理节点中和利用饥饿值策略将所述第二分区迁移出所述代理节点。
10.根据权利要求6所述的***,其特征在于,所述分区动态迁移模块还包括:
Ring文件生成单元,用于基于所述第一分区中的文件生成格式为Ring文件;
Ring文件加密推送单元,用于将所述Ring文件推送至所述存储节点中进行保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810139125.0A CN108418871B (zh) | 2018-02-09 | 2018-02-09 | 一种云存储性能优化方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810139125.0A CN108418871B (zh) | 2018-02-09 | 2018-02-09 | 一种云存储性能优化方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108418871A true CN108418871A (zh) | 2018-08-17 |
CN108418871B CN108418871B (zh) | 2022-02-11 |
Family
ID=63128343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810139125.0A Active CN108418871B (zh) | 2018-02-09 | 2018-02-09 | 一种云存储性能优化方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108418871B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158807A (zh) * | 2019-11-29 | 2020-05-15 | 华为技术有限公司 | 一种基于云虚拟机的数据访问方法及设备 |
CN112256204A (zh) * | 2020-10-28 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 存储资源分配方法、装置、存储节点及存储介质 |
CN114185866A (zh) * | 2022-02-16 | 2022-03-15 | 安翰科技(武汉)股份有限公司 | 数据本地存储控制方法及医疗数据存储*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
CN104142953A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 元数据动态管理方法及*** |
CN104462240A (zh) * | 2014-11-18 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 云存储中实现分级存储管理的方法和*** |
CN106210015A (zh) * | 2016-07-05 | 2016-12-07 | 福州大学 | 一种混合云结构中热度数据缓存的云存储方法 |
US20170245280A1 (en) * | 2015-11-25 | 2017-08-24 | Network Performance Research Group Llc | System, method, and apparatus for setting device geolocation via location proxies |
-
2018
- 2018-02-09 CN CN201810139125.0A patent/CN108418871B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
CN104142953A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 元数据动态管理方法及*** |
CN104462240A (zh) * | 2014-11-18 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 云存储中实现分级存储管理的方法和*** |
US20170245280A1 (en) * | 2015-11-25 | 2017-08-24 | Network Performance Research Group Llc | System, method, and apparatus for setting device geolocation via location proxies |
CN106210015A (zh) * | 2016-07-05 | 2016-12-07 | 福州大学 | 一种混合云结构中热度数据缓存的云存储方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158807A (zh) * | 2019-11-29 | 2020-05-15 | 华为技术有限公司 | 一种基于云虚拟机的数据访问方法及设备 |
CN112256204A (zh) * | 2020-10-28 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 存储资源分配方法、装置、存储节点及存储介质 |
CN114185866A (zh) * | 2022-02-16 | 2022-03-15 | 安翰科技(武汉)股份有限公司 | 数据本地存储控制方法及医疗数据存储*** |
Also Published As
Publication number | Publication date |
---|---|
CN108418871B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Am I eclipsed? A smart detector of eclipse attacks for Ethereum | |
CN104424229B (zh) | 一种多维度拆分的计算方法及*** | |
Yi et al. | Building a network highway for big data: architecture and challenges | |
CN104065568B (zh) | 一种Web服务器集群的路由方法 | |
Bocchi et al. | Personal cloud storage benchmarks and comparison | |
Qiao et al. | Characterizing flow, application, and user behavior in mobile networks: A framework for mobile big data | |
Erlandsson et al. | Crawling online social networks | |
CN102968591B (zh) | 基于行为片段共享的恶意软件特征聚类分析方法及*** | |
Tudoran et al. | Jetstream: Enabling high performance event streaming across cloud data-centers | |
Feng et al. | A multi-tier data reduction mechanism for IoT sensors | |
CN108418871A (zh) | 一种云存储性能优化方法和*** | |
US20160299971A1 (en) | Identifying Search Engine Crawlers | |
Li et al. | MIN: Co-governing multi-identifier network architecture and its prototype on operator’s network | |
Yang et al. | A novel collaborative task offloading scheme for secure and sustainable mobile cloudlet networks | |
Zhang et al. | Leveraging QoE heterogenity for large-scale livecaset scheduling | |
Li et al. | Challenges, designs, and performances of large-scale open-P2SP content distribution | |
Soleimanzadeh et al. | SD‐WLB: An SDN‐aided mechanism for web load balancing based on server statistics | |
Canali et al. | Data acquisition in social networks: Issues and proposals | |
Kumar et al. | An optimal and secure resource searching algorithm for unstructured mobile peer-to-peer network using particle swarm optimization | |
CN105184559B (zh) | 一种支付***及方法 | |
CN104503983A (zh) | 为搜索引擎提供网站认证数据的方法及装置 | |
CN110825950A (zh) | 一种基于元搜索的隐藏服务发现方法 | |
Wang et al. | Enhancing internet-scale video service deployment using microblog-based prediction | |
Huang et al. | A secure cost‐effective migration of enterprise applications to the cloud | |
CN103533048B (zh) | 一种bt网络中热门种子文件获取方法 |
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 |