CN105677238A - 一种基于分布式存储重复数据删除的虚拟机***盘的方法 - Google Patents
一种基于分布式存储重复数据删除的虚拟机***盘的方法 Download PDFInfo
- Publication number
- CN105677238A CN105677238A CN201511018317.9A CN201511018317A CN105677238A CN 105677238 A CN105677238 A CN 105677238A CN 201511018317 A CN201511018317 A CN 201511018317A CN 105677238 A CN105677238 A CN 105677238A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- distributed storage
- distributed
- virtual machine
- memory system
- 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.)
- Pending
Links
Classifications
-
- 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]
-
- 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/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云平台存储虚拟化技术领域,特别是一种基于分布式存储重复数据删除的虚拟机***盘的方法。本发明首先在分布式存储上创建存储卷;通过存储卷创建虚拟机***盘;虚拟机写数据到***盘;分布式存储卷服务将数据保存到缓存中;对缓存数据进行滑动分块;通过Rabin指纹算法扫描每块的指纹;查询指纹集合是否已经存在分布式存储***指纹表;挑选指纹不存在分布式存储***的文件块存入分布式存储***中;最后分布式存储***更新指纹表。本发明解决了减轻基于云平台分布式存储的虚拟机网络流量压力;可应用于云平台存储虚拟化。
Description
技术领域
本发明涉及云平台存储虚拟化技术领域,特别是一种基于分布式存储重复数据删除的虚拟机***盘的方法。
背景技术
一般的云计算平台上有多个计算节点,而每个计算节点上都有多个分布式存储的虚拟机,有些性能较高的节点甚至有几十个虚拟机,监控代理监控这些虚拟机在高峰期使用大量的网络IO,并且分布式存储副本数越多,网络IO的压力更大,这样会带来以下问题:
一是客户不想花费额外的钱来升级交换机。
二是高峰期大量的虚拟机同时读写,分布式存储多副本的情况下,网络IO流量大。
三是分布式存储成本高。
为了解决上述问题,需要有一种基于分布式存储重复数据删除的虚拟机***盘方法;减轻网络IO的压力并同时节省分布式存储的成本。
发明内容
本发明解决的技术问题在于提供一种基于分布式存储重复数据删除的虚拟机***盘的方法;解决高峰期大量的虚拟机同时读写及分布式存储多副本的情况下网络IO流量大、分布式存储成本高等问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1:分布式存储上创建存储卷;
步骤2:通过存储卷创建虚拟机***盘;
步骤3:虚拟机写数据到***盘;
步骤4:分布式存储卷服务将数据保存到缓存中;
步骤5:对缓存数据进行滑动分块;
步骤6:通过Rabin指纹算法扫描每块的指纹;
步骤7:查询指纹集合是否已经存在分布式存储***指纹表;
步骤8:挑选指纹不存在分布式存储***的文件块存入分布式存储***中;
步骤9:分布式存储***更新指纹表。
所述的分布式存储上创建存储卷,在分布式存储创建一个存储卷;
所述的通过存储卷创建虚拟机***盘,分布式存储卷先映射到本地文件块,此文件块作为虚拟机的***盘来使用;
所述的虚拟机写数据到***盘,虚拟机在***盘读写通过分布式存储卷服务进行读写;
所述的分布式存储卷服务将数据保存到缓存中,分布式存储卷服务将虚拟机读写的数据先放在本地缓存上,并不是马上存入到分布式存储上。
所述的对缓存数据进行滑动分块,是对缓冲区的数据进行滑动分块,通常每块默认最小大小是4K;用户可以通过分布式存储***对分块的默认大小进行设置。
所述的通过Rabin指纹算法扫描每块的指纹,通过Rabin指纹算法计算整块,得出一个唯一的指纹,并将每块的指纹组成一个指纹集合;
所述的查询指纹集合是否已经存在分布式存储***指纹表,查询指纹集合各个指纹是否存在通过分布式存储***的指纹表中,并返回结果,分布式存储卷服务标记每个指纹是否已在分布式存储上存在;
所述的挑选指纹不存在分布式存储***的文件块存入分布式存储***中,凡是被标记为不存在的指纹,该指纹对应的块文件全部都上传到分布式存储***中;如被标记为存在的指纹,分布式存储***上的存储卷做一个简单的文件块引用即可;
所述的分布式存储***更新指纹表,分布式存储***根据上传文件块的指纹集合,更新指纹表。
本发明由虚拟机提供分布式存储卷服务,虚拟机可以连续读写,区别于一般基于文件的重复数据删除方法。本发明提供虚拟机***盘,区别于一般只能提供虚拟机镜像的重复数据删除方法。本发明提供数据重复删除放在虚拟机所在的宿主机上,区别于一般只能在服务端上执行重复删除的方法。本发明使用Rabin指纹算法,性能更加高效,区域于一般的指纹扫描方法。本发明解决了高峰期大量的虚拟机同时读写及分布式存储多副本的情况下网络IO流量大、分布式存储成本高等问题。
附图说明
下面结合附图对本发明进一步说明:
图1为流程图;
图2为本发明逻辑结构图。
具体实施方式
本发明的实施方式有多种,这里以云平台为例说明其中一种实现方法,如图1、2所示,具体实施过程如下:
1、分布式存储上创建存储卷;
/**
*分布式存储上创建存储卷
*paramname卷名称
*paramsize卷大小
*returnboolean返回结果
*/
publicbooleancreateVolume(Stringname,intsize){
returnDistribute.createVolume(name,size);
}
2、通过存储卷创建虚拟机***盘;
/**
*通过存储卷创建虚拟机***盘
*paraminstanceId虚拟机ID
*paramname卷名称
*return无返回值
*/
publicvoidcreateVm(StringinstanceId,Stringname){
returnVmService.createVm(instanceId,name);
}
3、虚拟机写数据到***盘;实则就是把数据写入分布式存储卷服务中
4、分布式存储卷服务将数据保存到缓存中;
/**
*分布式存储卷服务将数据保存到缓存中
*paramdata带写入的数据
*returnint成功写入的字节数
*/
publicintwriteBuffer(byte[]data){
returnDataEngine.writeBuffer(data);
}
5、对缓存数据进行滑动分块;
/**
*对缓存数据进行滑动分块
*paramperiod时间间隔
*return无返回值
*/
publicvoidchunk(){
returnDataEngine.chunk();
}
6、通过Rabin指纹算法扫描每块的指纹;
/**
*通过Rabin指纹算法扫描每块的指纹
*returnList<String>指纹集合对象
*/
publicList<String>getHashCodeSet(){
returnDataEngine.getHashCodeSet();
}
7、查询指纹集合是否已经存在分布式存储***指纹表;
/**
*查询指纹集合是否已经存在分布式存储***指纹表
*paramhashCodes指纹集合对象
*returnboolean返回结果
*/
publicList<String>muticastHashCodeIsExists(List<String>hashCodes){
returnDistribute.muticastHashCodeIsExists(hashCodes);
}
8、挑选指纹不存在分布式存储***的文件块存入分布式存储***中;
/**
*挑选指纹不存在分布式存储***的文件块存入分布式存储***中
*paramhashCodes指纹集合对象
*returnboolean返回结果
*/
publicbooleanupload(List<String>hashCodes){
returnDataEngine.upload(hashCodes);
}
9、分布式存储***更新指纹表。
/**
*分布式存储***更新指纹表
*paramhashCodes指纹集合对象
*returnboolean返回结果
*/
publicbooleanupdateHashCode(List<String>hashCodes){
returnDistribute.setThreshold(hashCodes);
}
整个流程结束。
Claims (5)
1.一种基于分布式存储重复数据删除的虚拟机***盘的方法,其特征在于:所述的方法包括如下步骤:
步骤1:分布式存储上创建存储卷;
步骤2:通过存储卷创建虚拟机***盘;
步骤3:虚拟机写数据到***盘;
步骤4:分布式存储卷服务将数据保存到缓存中;
步骤5:对缓存数据进行滑动分块;
步骤6:通过Rabin指纹算法扫描每块的指纹;
步骤7:查询指纹集合是否已经存在分布式存储***指纹表;
步骤8:挑选指纹不存在分布式存储***的文件块存入分布式存储***中;
步骤9:分布式存储***更新指纹表。
2.根据权利要求1所述的方法,其特征在于:所述的分布式存储上创建存储卷,在分布式存储创建一个存储卷;
所述的通过存储卷创建虚拟机***盘,分布式存储卷先映射到本地文件块,此文件块作为虚拟机的***盘来使用;
所述的虚拟机写数据到***盘,虚拟机在***盘读写通过分布式存储卷服务进行读写;
所述的分布式存储卷服务将数据保存到缓存中,分布式存储卷服务将虚拟机读写的数据先放在本地缓存上,并不是马上存入到分布式存储上。
3.根据权利要求1所述的方法,其特征在于:所述的对缓存数据进行滑动分块,是对缓冲区的数据进行滑动分块,通常每块默认最小大小是4K;用户可以通过分布式存储***对分块的默认大小进行设置。
4.根据权利要求2所述的方法,其特征在于:所述的对缓存数据进行滑动分块,是对缓冲区的数据进行滑动分块,通常每块默认最小大小是4K;用户可以通过分布式存储***对分块的默认大小进行设置。
5.根据权利要求1至4任一项所述的方法,其特征在于:所述的通过Rabin指纹算法扫描每块的指纹,通过Rabin指纹算法计算整块,得出一个唯一的指纹,并将每块的指纹组成一个指纹集合;
所述的查询指纹集合是否已经存在分布式存储***指纹表,查询指纹集合各个指纹是否存在通过分布式存储***的指纹表中,并返回结果,分布式存储卷服务标记每个指纹是否已在分布式存储上存在;
所述的挑选指纹不存在分布式存储***的文件块存入分布式存储***中,凡是被标记为不存在的指纹,该指纹对应的块文件全部都上传到分布式存储***中;如被标记为存在的指纹,分布式存储***上的存储卷做一个简单的文件块引用即可;
所述的分布式存储***更新指纹表,分布式存储***根据上传文件块的指纹集合,更新指纹表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018317.9A CN105677238A (zh) | 2015-12-28 | 2015-12-28 | 一种基于分布式存储重复数据删除的虚拟机***盘的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018317.9A CN105677238A (zh) | 2015-12-28 | 2015-12-28 | 一种基于分布式存储重复数据删除的虚拟机***盘的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677238A true CN105677238A (zh) | 2016-06-15 |
Family
ID=56297931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511018317.9A Pending CN105677238A (zh) | 2015-12-28 | 2015-12-28 | 一种基于分布式存储重复数据删除的虚拟机***盘的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677238A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201654A (zh) * | 2016-06-30 | 2016-12-07 | 国云科技股份有限公司 | 一种虚拟机***的拯救方法 |
CN107220002A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种支持内存快照重复数据删除的存储方法和装置 |
CN107273536A (zh) * | 2017-06-30 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种重复数据确定方法、***及分布式存储*** |
CN107330097A (zh) * | 2017-07-05 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种分布式重删装置、数据指纹存储、读取方法及*** |
CN110427347A (zh) * | 2019-07-08 | 2019-11-08 | 新华三技术有限公司成都分公司 | 重复数据删除的方法、装置、存储节点及存储介质 |
CN110532795A (zh) * | 2019-07-11 | 2019-12-03 | 西安交通大学 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722583A (zh) * | 2012-06-07 | 2012-10-10 | 无锡众志和达存储技术有限公司 | 重复数据删除硬件加速装置和方法 |
CN103049263A (zh) * | 2012-12-12 | 2013-04-17 | 华中科技大学 | 一种基于相似性的文件分类方法 |
CN103177111A (zh) * | 2013-03-29 | 2013-06-26 | 西安理工大学 | 重复数据删除***及其删除方法 |
CN103631933A (zh) * | 2013-12-06 | 2014-03-12 | 中国科学院计算技术研究所 | 一种面向分布式去重***的数据路由方法 |
US20150064138A1 (en) * | 2013-09-05 | 2015-03-05 | Massachusetts Institute Of Technology | Tuning microbial populations with programmable nucleases |
-
2015
- 2015-12-28 CN CN201511018317.9A patent/CN105677238A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722583A (zh) * | 2012-06-07 | 2012-10-10 | 无锡众志和达存储技术有限公司 | 重复数据删除硬件加速装置和方法 |
CN103049263A (zh) * | 2012-12-12 | 2013-04-17 | 华中科技大学 | 一种基于相似性的文件分类方法 |
CN103177111A (zh) * | 2013-03-29 | 2013-06-26 | 西安理工大学 | 重复数据删除***及其删除方法 |
US20150064138A1 (en) * | 2013-09-05 | 2015-03-05 | Massachusetts Institute Of Technology | Tuning microbial populations with programmable nucleases |
CN103631933A (zh) * | 2013-12-06 | 2014-03-12 | 中国科学院计算技术研究所 | 一种面向分布式去重***的数据路由方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201654A (zh) * | 2016-06-30 | 2016-12-07 | 国云科技股份有限公司 | 一种虚拟机***的拯救方法 |
CN107220002A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种支持内存快照重复数据删除的存储方法和装置 |
CN107220002B (zh) * | 2017-05-26 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 一种支持内存快照重复数据删除的存储方法和装置 |
CN107273536A (zh) * | 2017-06-30 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种重复数据确定方法、***及分布式存储*** |
CN107330097A (zh) * | 2017-07-05 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种分布式重删装置、数据指纹存储、读取方法及*** |
CN107330097B (zh) * | 2017-07-05 | 2020-11-10 | 郑州云海信息技术有限公司 | 一种分布式重删装置、数据指纹存储、读取方法及*** |
CN110427347A (zh) * | 2019-07-08 | 2019-11-08 | 新华三技术有限公司成都分公司 | 重复数据删除的方法、装置、存储节点及存储介质 |
CN110532795A (zh) * | 2019-07-11 | 2019-12-03 | 西安交通大学 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
CN110532795B (zh) * | 2019-07-11 | 2021-02-19 | 西安交通大学 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677238A (zh) | 一种基于分布式存储重复数据删除的虚拟机***盘的方法 | |
US11010078B2 (en) | Inline deduplication | |
US20230013281A1 (en) | Storage space optimization in a system with varying data redundancy schemes | |
US10402339B2 (en) | Metadata management in a scale out storage system | |
US20200117362A1 (en) | Erasure coding content driven distribution of data blocks | |
US9043540B2 (en) | Systems and methods for tracking block ownership | |
US8996797B1 (en) | Dense tree volume metadata update logging and checkpointing | |
US8583893B2 (en) | Metadata management for virtual volumes | |
US9298707B1 (en) | Efficient data storage and retrieval for backup systems | |
US20170337212A1 (en) | Computer program product, method, apparatus and data storage system for managing defragmentation in file systems | |
WO2016086819A1 (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
EP1741021A2 (en) | Sparse multi-component files | |
CN106105161A (zh) | 在维持存储效率的同时向云数据存储装置备份数据 | |
KR20140117994A (ko) | 복제 파일 중복 제거 방법 및 장치 | |
CN103152430B (zh) | 一种缩减数据占用空间的云存储方法 | |
EP3316150A1 (en) | Method and apparatus for file compaction in key-value storage system | |
US20160041904A1 (en) | File system indirection technique for directly managing solid state devices | |
KR20220137632A (ko) | 데이터 관리 시스템 및 제어 방법 | |
CN110347643B (zh) | 一种磁盘间ntfs卷克隆方法及装置 | |
CN105493080B (zh) | 基于上下文感知的重复数据删除的方法和装置 | |
CN109144406A (zh) | 分布式存储***中元数据存储方法、***及存储介质 | |
CN103970875A (zh) | 一种并行重复数据删除方法 | |
US20210334241A1 (en) | Non-disrputive transitioning between replication schemes | |
WO2012021847A2 (en) | Apparatus, system and method for caching data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |