文章转自Live空间(http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2583.entry)和51cto技术博客(http://delxu.blog.51cto.com)首发。转发时务必表明出处,顺便给博主做个广告,文章写的真的很好,深入浅出,期待看到更好的博文,再次表示对博主的感谢!!!
NetApp FAS Filer的重复数据删除

delxu原创文档,转载请注明出处 http://delxu.spaces.live.com
重复数据删除(Data De-Duplication, 简称DDD)是目前网络存储设备的高级特性之一,可以有效地减少重复数据对存储空间的占用,增加了存储设备的空间利用率。
NetApp Filer的重复数据删除功能叫做A-SIS。在应用下面的例子中的命令行时,请把/vol/vol1更换为你自己的volume名字。
【应用篇】
添加许可证
>license add a-sis
>license add nearstore
开启
在需要删除重复数据的volume上面,开启重复数据删除功能
> sis on /vol/vol1
如果该volume空间不足,则会出现以下错误
> sis on /vol/vol1
Creation of metafile failed: /vol/vol1
立刻启动扫描和重复数据删除
>sis start –s /vol/vol1
在扫描和运行过程中,检查重复数据删除的情况
>sis status /vol/vol1
你可以不停地按向上箭头来重复这条命令查看实时状况。
例子:
NAS01> sis status /vol/vol1
/vol/vol1                   Enabled    Active     15 GB Scanned
NAS01> sis status /vol/vol1
Path                           State      Status     Progress
/vol/vol1                   Enabled    Active     29 GB Scanned
NAS01> sis status /vol/vol1
Path                           State      Status     Progress
/vol/vol1                   Enabled    Active     75 MB (0%) Done
NAS01> sis status /vol/vol1
Path                           State      Status     Progress
/vol/vol1                   Enabled    Active     5225 MB (12%) Done
当SIS运行结束,通过df来检查volume占用空间的变化
>df -s /vol/vol1
配置重复数据删除的schedule
查看现在的运行时间
>sis config /vol/vol1
Path               Schedule
/vol/vol1         sun-sat@0
默认是一周7天每天0点执行

以下命令将运行时间更改为周一到周五,每天23:00执行
>sis config -s mon-fri@23 /vol/vol1


【效果篇】
在VMware虚机vmdk的卷中,可以节约50-70%的空间。
在普通用户存放共享文件的卷中,可以节约20-30%的空间。
在存放Ghost镜像的卷中,节约少于1%,基本没有效果。
结论,要根据实际应用状况开启充分数据删除的功能。
【性能篇】
这里的性能主要考察启用了DDD之后,是否会对VMware ESX下的虚机的磁盘性能造成影响。
我用在VM中安装的HD Tune来测试C盘的读取性能。2台测试VM完全相同,VM02是VM01克隆出来的,区别就是其VMDK放置在一个没有加载DDD功能的Volume里面。VM01和VM02的vmdk分别处于2个Volume,但是都处于同一个Aggr和同一个NAS Filer,同一个Disk Array,VM01和VM02处于同一台VMware主机上,2个虚机都是Windows server 2003系统,当时主机上还有另外15台VM正在运行(实际环境),主机CPU利用率在20-30%之间,内存使用率在65-70%之间。
测试总共重复了10次。其中5次在繁忙时段,另外5次在非繁忙时段。结果发现,无论是繁忙时段还是非繁忙时段,启用了DDD之后的VM01的磁盘读性能要比没启用DDD的VM02的磁盘性能要高3-5%.
我觉得这是正常的,启用了DDD之后,对于我应用中的这2台全新Win2003虚拟机,大多数数据块都是一样的,而且和很早就创建的Win2003的模版机一样,启用了DDD的那台VM01的数据块和模版机重复,集中在一个连续的空间内,读取速度相对较快。而没有启用DDD的VM02的数据块则因为存储的空间已经利用了很久,相对比较分散,读取速度略输一筹也属于正常。
这个测试说明了,启用了DDD之后,不会对VM的磁盘读性能带来负面影响。
对于写性能,由于我的HD Tune的版本关系,没法进行测试。待日后有空再用其他性能软件进行测试。
不过,从理论上分析如下:
(1) NetApp的FAS系列存储的磁盘写是先写入到一个Flash Cache中,累积以后集中写入磁盘。
(2) DDD不关心不检查刚写入的数据块是否重复。DDD的运作是每天在指定的时间段运行扫描程序,比较重复的数据块,并将块指针合并,然后删除重复的数据块。因此在刚写入的时候,都是找空余空间写入数据,写入后但SIS程序没有运行之前,数据块还是会存在重复现象的。
所以,这2者写性能应该没有显著的差别。