Nutanix对后开启除重的Container执行指纹扫描除重

Posted on

 Translate this page into English

Nutanix集群可以对指定的Container存储容器开启除重(deduplicate)特性以降低物理空间占用,并提高顺序读的性能。Nutanix的除重计算方式是基于指纹(fingerprint)的。如果一个Container在使用后再开启除重特性,则已放置的数据享受不到除重带来的空间节省,此时可以人工触发指纹扫描,来回收相应空间。

执行前,需要确认所用Container已开启除重属性。

操作步骤

1. SSH登录到任意CVM。

2. 扫描单个虚拟机文件:

$ vdisk_manipulator --operation="add_fingerprints" --stats_only="false" --nfs_container_name="{ctr_name}" --nfs_relative_file_path="{vdisk_path}"

其中{ctr_name}为虚拟机所在Container的名称,{vdisk_path}为虚拟机文件路径。

在ESXi虚拟化中,虚拟机文件即VMDK文件,路径最后需要带-flat后缀。

3. 扫描全部的虚拟机文件:

$ ncli vdisk list | grep "Name.*NFS" | awk -F: '{print $4 ":" $5 ":" $6 ":" $7}' >> fingerprint.txt
$ for i in `cat fingerprint.txt`; do vdisk_manipulator --vdisk_name=$i --operation="add_fingerprints" --stats_only=false; done

不建议进行批量进行文件除重扫描,这样会极大地加重集群负载。

4. 等待扫描完成。

执行日志输出类似如下:

VDisk block map scan completed from block 3043584 to 3045631 with 802 extent groups to lookup, 0 relevant immutable extents and scan complete status as 0
Metadata scan completed by adding 792 migrate extent args from 3168 relevant extents
Stargate RPC's(queued:809 attempted:45487 issued:61998 failed:12260 retried:16511 succeeded:33223) Egroups (processed:53578 unavailable:6 ignored:7115 considered:46457) Extent fingerprints (none:185342 complete:26256 partial:40)

END