APP下载

基于重复数据删除的虚拟机镜像存储优化的研究与实现

2016-09-23李张娟

现代计算机 2016年2期
关键词:存储设备分块磁盘

李张娟

(四川大学计算机学院,成都 610065)

基于重复数据删除的虚拟机镜像存储优化的研究与实现

李张娟

(四川大学计算机学院,成都610065)

0 引言

随着云计算的快速发展,需要配置大量不同版本和配置的虚拟机来灵活满足不同用户和应用的需求,这就需要在云中存储大量不同版本,不同配置的虚拟机镜像文件。有关这些数量巨大的虚拟机镜像文件的存储对管理员来说就是一个巨大的挑战。增加存储设备固然能够解决虚拟机镜像的存储问题,但同时也会增加IT部署运行成本,增大人工维护成本和电力、冷却等能耗。由于存在大量相同的系统数据,同一操作系统的不同发行版本中存在40%以上重复数据[1]。既然虚拟机镜像存在着大量的数据冗余,那么利用重复数据删除技术来提高存储服务器利用率就变得可行。但是经过数据重删后,数据块变为不连续存储,在启动虚拟机时,需要花费大量时间进行磁盘寻址,大大降低了读取性能。为此本文利用重复数据删除技术来优化虚拟机镜像存储,并采取预取机制结合固态硬盘来进行读数据加速,有效提升磁盘读取速度,加速虚拟机启动。

1 相关技术

1.1重复数据删除技术

重复数据删除技术(Deduplication)是一种容量优化(Capacity Optimization)技术,它通过消除存储系统中重复的数据,缩减系统中实际存储的数据或通过网络传输的数据[2],降低能耗与运营成本。根据重删发生的时间不同,可分为在线(in-line),近线(out-of-line)和离线(off-line);根据重删的粒度不同,可将其分为文件级,数据块级。根据数据块的大小是否固定,可将分块策略分为固定分块与可变分块。根据文献[3],利用固定分块大小与可变分块大小对虚拟机镜像存储进行重删的重删效率是一样的,本文选用固定分块策略来进行虚拟机镜像存储的重删操作。

目前,重复数据删除已广泛应用于云环境和虚拟机环境中,Liguori等人比较了各操作系统的虚拟机镜像的重删效果,同时测试了重删以后的镜像对虚拟机启动和读性能方面的影响[4]。本文中主要专注于云中虚拟机镜像存储的效率提升及重删后的数据还原时的读取性能优化的研究。

1.2基于Flash的固态存储设备

基于Flash的固态硬盘是由半导体构成的存储设备[5],与传统的硬盘相比较,有更高的随机读取速度,更好的抗震性及更低的能耗,正被运用到越来越多的数码产品上。但是,由于写入之前需要对数据进行擦除操作,其写性能低于其读性能。在数据密集型的应用中,固态硬盘以其高性价比倍受青睐。

2 虚拟机镜像存储优化方法描述

随着虚拟化技术日趋成熟,虚拟机应用环境也越来越普遍,随着也产生了大量需要存储的虚拟机镜像文件。通常本地服务器达不到如此高的容量要求,需要将这些镜像文件放置到共享的存储服务器中,供多个服务器共享。在需要启动虚拟机时,从共享存储服务器中读取相应数据至本地来完成相应操作。由于相同版本虚拟机镜像中存在着相当的冗余部分,可以通过重复数据删除技术来对数据进行缩减,提高存储设备的利用率。使用固定分块策略进行重复数据删除与使用可变分块策略的效果相当,固选取固定分块的重复数据删除技术来实现对虚拟机镜像共享存储的优化。其基本流程如图1所示,主要过程为:(1)用固定分块策略对对象进行分块;(2)计算每个数据块的哈希值作为指纹进行标记,维护指纹索引表;(3)对比已有指纹,判断数据块是否已存在;(4)若不存在则存储新的数据块,并利用数据压缩算法在块内进行进一步压缩,缩减数据量,同时更新索引表信息;存在则更新索引表信息,只在磁盘上保留一个副本。

图1 虚拟机镜像重复数据删除基本过程

经过重复数据删除以后的数据,在存储服务器中不再是连续的存储,在读取过程需要将数据块装载入内存中进行解压操作,性能将会受到较大的影响。针对此种情况,难以通过简单增加读线程数的方法来缩短磁盘读取的数据块的时间。对此可以通过预取机制的机制来缩短平均磁盘读取时间。如图2所示,假设读数据块阈值为thres,当一次请求读取的数据块数量小于thres时,可以从用户请求的数据块开始,连续读取thres块数据块到内存中,在以后的数据块请求中,若已装入内存中,则无需再从磁盘读取数据,减少大量I/O操作,从整个过程来看,能够在增大系统的吞吐率的同时减少数据块的读取时间,使得单位时间内读取的数据量显著提高。

图2 重复数据删除系统读取数据块基本流程

重复数据删除技术是一种I/O密集型操作,其需要频繁访问数据块索引和元数据,带来大量的I/O操作。基于固态硬盘卓越的读性能,将重复数据删除系统中的数据块索引和元数据存储于其上,相较于传统的磁盘,能够加快读取速度和命中速度,提升存储系统的访问性能。本文利用基于Flash的固态硬盘的随机读性能优势来加快经过重复数据删除后的虚拟机镜像存储的读取速度,增大系统读取数据时的吞吐量。

3 实验结果与分析

本文采用定长分块策略来对虚拟机镜像文件进行分块,实验选取了CentOS 7,CentOS 6.2,Ubuntu 14.04,Ubutun 12.04,Windows Server 2012,Windows Server 2008六种镜像,对其进行不同分块大小的实验,期望通过实验来选出重删效率相对较好的分块策略。

实验环境为处理器:Intel Core i5 CPU@2.6 GHz;内存:8GB;操作系统:Ubuntu 14.04。

首先研究各操作系统数据冗余度,来选取数据分块实验的基础虚拟机镜像。经实验,结果如图3显示,相同的操作系统不同版本之间,存在着一定的数据冗余,Windows操作系统的冗余度相对较小,Ubuntu操作系统的冗余度相对较大,CentOS操作系统则位于两者中间。

选取数据冗余度较大的Ubuntu操作系统虚拟机镜像作为实验对象,进行分块大小分别为1KB,4KB,8KB,16KB,32KB和64KB的重复数据删除。一个好的重复数据删除系统,应注重重删率与系统性能间的平衡,数据分块越小,则重删率越高,相对应的计算也越大;数据分块越大,则重删率越低,相应的计算开销也较小,本文选取二者间的中间平衡,以期达到较为理想的重删率和系统吞吐率。由图4可知,当分块大小为4KB时,重删效果最为理想。

图3 不同操作系统虚拟机镜像冗余度

图4 不同分块大小重删吞吐率

利用4KB的固定分块大小进一步实验多个虚拟机镜像的重复数据删除效果,结果如图4,随着虚拟机镜像个数的增加,冗余数据越多,重复数据删除缩减的数据量越大。

通过上述实验进行重复数据删除以后,存储系统中的虚拟机镜像不再是连续存储的数据块,在需要通过镜像来启动虚拟机时,会大大增加数据块读取的时间,采用基于Flash的固态硬盘来进行数据读取,相较于传统硬盘,能有较大的速度提升;同时采用数据预取机制,设置读取数据块阈值为1000块,当一次读操作读取的数据块大小小于1000时,从请求的数据块开始,连续读取1000块数据块进入内存当中,平均地减少I/O操作,提升读性能。

图5 虚拟机镜像数量与数据冗余关系

通过当前实验的结果分析,本文利用重复数据删除能够有效提高虚拟机镜像存储设备的利用率,同时加快重删后的数据读取过程。

4 结语

云计算的飞速发展,使按需索取计算和存储资源成为IT部署趋势,在不断增加的虚拟机环境中,需要大量存储虚拟机镜像,更加虚拟机镜像存在较大冗余的特性,本文研究了重复数据删除技术,并将其应用于虚拟机镜像存储设备中,通过实验表明,利用分块大小为4KB的固定分块策略能够到达相当理想的重删效率,能够提高40%以上存储设备利用率;同时经过重删以后的数据块在系统中不再是连续存储,读取时读性能将会受到影响,本文通过预取一定数量的数据块至内存中,减少整体平均的I/O次数,再结合固态硬盘的高效随机读性能,进一步加速读取速度,提升20%以上的磁盘读取速度。

在未来的工作中,将进一步研究如何有效组织数据索引来平衡重删效率和I/O性能,提高恢复I/O吞吐率;同时将重复数据删除的判断是否重复步骤分布应用到云中的其他计算部件中,提高计算效率,提高存储时的吞吐率;由于重删后数据副本只保存一份,则系统的可靠性也亟待进一步验证,今后的工作也将重点关注系统的安全可靠性。

[1]谢平.存储系统重复数据删除技术研究综述[J].计算机科学,2014,41(1):22-30.

[2]敖莉,舒继武,李明强.重复数据删除技术[J].软件学报,2010,21(5):916-929.

[3]Jin K,Miller E L.The Effectiveness of Deduplication on Virtual Machine Disk Images[C].Proceedings of SYSTOR 2009:The Israeli Experimental Systems Conference.ACM,2009:7.

[4]Liguori A,Van Hensbergen E.Experiences with Content Addressable Storage and Virtual Disk[C].Workshop on I/O Virtualization. 2008.

[5]付印金,肖侬,刘芳,等.基于重复数据删除的虚拟桌面存储优化技术[J].计算机研究与发展,2012(S1):125-130.

[6]Nath P,Kozuch M A,O'hallaron D R,et al.Design Tradeoffs in Applying Content Addressable Storage to Enterprise-Scale Systems Based on Virtual Machines[J].Management,2006,7(5):20

[7]Lillibridge M,Eshghi K,Bhagwat D,et al.Sparse Indexing:Large Scale,Inline Deduplication Using Sampling and Locality[C].Fast. 2009,9:111-123.

[8]Bhagwat D,Eshghi K,Long D D E,et al.Extreme Binning:Scalable,Parallel Deduplication for Chunk-Based File Backup[C].Modeling,Analysis&Simulation of Computer and Telecommunication Systems,2009.MASCOTS'09.IEEE International Symposium on. IEEE,2009:1-9.

Clouding Computing;De-Duplication;Virtual Machine Image;Reading Optimization

Research and Implementation of Virtual Machine Image Storage Optimization Based on De-Duplication

LI Zhang-juan
(College of Computer Science,Sichuan University,Chengdu610065)

1007-1423(2016)02-0029-04

10.3969/j.issn.1007-1423.2016.02.007

李张娟(1991-),女,重庆人,硕士研究生,本科,研究方向为网络与信息安全

2015-12-01

2015-12-26

针对云环境中需要存储大量虚拟机镜像问题,提出运用重复数据删除技术,来提高虚拟机镜像的存储设备利用率;同时针对虚拟机启动的快速响应需求,采用预取机制结合固态硬盘进行磁盘读取优化。通过原型实验表明,利用4KB定长分块策略的重复数据删除技术能够节省约40%的虚拟机镜像存储空间,利用预取机制及固态硬盘读取能够提升20%以上读取速度,提升存储效率和磁盘读取速度。

云计算;重复数据删除;虚拟机镜像;读取优化

For the need of mass storage for virtual machine image in cloud computing environment,proposes using de-duplication to improve the utilization of virtual machine image storage.For the demand of quick respond when virtual machine starting,uses pre-fetch mechanism combined with the use of SSD to optimize reading speed.By prototype experiments,it shows that blocking strategy with 4KB fixed length de-duplication technology can save about 40%of the virtual machine image storage space,the use of pre-fetch mechanism and SSD can speed up more than 20%when reading blocks,optimize utilization of storage device of virtual machine image and reading speed.

猜你喜欢

存储设备分块磁盘
面向量化分块压缩感知的区域层次化预测编码
钢结构工程分块滑移安装施工方法探讨
它的好 它的坏 详解动态磁盘
一种面向不等尺寸分块海量数据集的并行体绘制算法
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
分块矩阵初等变换的妙用
Windows系统下动态磁盘卷的分析与研究
浅析计算机硬件发展史
浅析铁路视频监控存储设备设计