实验原因:虚机磁盘类型是瘦磁盘,在临时性往存储磁盘写大量数据如日志等等后,数据被删除,会发现虚机占用磁盘的空间并不会减少,VMware不会自动回收。查了一下VMware官方在Esxi上是有空间回收命令的,故做该实验进行功能性测试。
实验环境:VMware vSphere 5.5 , NetApp存储
实验步骤:
1.NetApp创建两个新lun并挂载至主机,生成大文件之前我没有截图,这是生成大文件后的截图。
ISCIS的LUN0可用空间 93.45GB
NFS的LUN1可用空间 152.86GB
2.虚拟Linux分别格式化并挂载这两个磁盘,如图,sdb和sdc
3.使用命令分别在两个目录下生成包含随机数据的5GB大小文件,命令为
# dd if=/dev/urandom of=/nfs/i_am_big_file bs=1M count=5000 |
4.删除这两个大文件,可见VMware不会自动回收这些已被删除的空间。
5.开启Esxi主机SSH功能,登陆上去,查看存储设备是否支持空间回收特性。
# esxcli storage vmfs extent list #先查看naa的ID |
输出结果:
Volume Name VMFS UUID Extent Number Device Name Partition
----------- ----------------------------------- ------------- ------------------------------------ ---------
datastore12 52b1453e-0a4daa2a-76a6-a4badb173ed2 0 naa.60026b9037c0930019d1d9e50b4156d1 3
lun0 52e77518-92f54f1f-54d2-a4badb173ed2 0 naa.60a9800065334367614a77464661584f 1
发现我们是压根看不到NFS的lun,有可能NFS不支持回收,先留个疑问。
5.1 查看具体的存储设备是否支持空间回收特性。
~ # esxcli storage core device list -d naa.60026b9037c0930019d1d9e50b4156d1 #这个是本地存储的 naa.60026b9037c0930019d1d9e50b4156d1 Display Name: Local DELL Disk (naa.60026b9037c0930019d1d9e50b4156d1) Has Settable Display Name: true Size: 2143360 Device Type: Direct-Access Multipath Plugin: NMP Devfs Path: /vmfs/devices/disks/naa.60026b9037c0930019d1d9e50b4156d1 Vendor: DELL Model: PERC 6/i Revision: 1.22 SCSI Level: 5 Is Pseudo: false Status: on Is RDM Capable: false Is Local: true Is Removable: false Is SSD: false Is Offline: false Is Perennially Reserved: false Queue Full Sample Size: 0 Queue Full Threshold: 0 Thin Provisioning Status: unknown Attached Filters: VAAI Status: unsupported Other UIDs: vml.020000000060026b9037c0930019d1d9e50b4156d1504552432036 Is Local SAS Device: false Is Boot USB Device: false No of outstanding IOs with competing worlds: 32 ~ # |
~ # esxcli storage core device list -d naa.60a9800065334367614a77464661584f #这是存储设备的 naa.60a9800065334367614a77464661584f Display Name: NETAPP iSCSI Disk (naa.60a9800065334367614a77464661584f) Has Settable Display Name: true Size: 102400 Device Type: Direct-Access Multipath Plugin: NMP Devfs Path: /vmfs/devices/disks/naa.60a9800065334367614a77464661584f Vendor: NETAPP Model: LUN Revision: 8030 SCSI Level: 4 Is Pseudo: false Status: degraded Is RDM Capable: true Is Local: false Is Removable: false Is SSD: false Is Offline: false Is Perennially Reserved: false Queue Full Sample Size: 0 Queue Full Threshold: 0 Thin Provisioning Status: yes Attached Filters: VAAI Status: supported Other UIDs: vml.02000a000060a9800065334367614a77464661584f4c554e202020 Is Local SAS Device: false Is Boot USB Device: false No of outstanding IOs with competing worlds: 32 ~ # |
5.2 接着看看存储里面还支持其他什么特性
~ # esxcli storage core device vaai status get -d naa.60a9800065334367614a77464661584f naa.60a9800065334367614a77464661584f VAAI Plugin Name: ATS Status: supported Clone Status: supported Zero Status: supported Delete Status: supported ~ # |
6.尝试执行空间回收命令
这里我参考的文档 http://blogs.vmware.com/vsphere/2012/04/vaai-thin-provisioning-block-reclaimunmap-in-action.html
是使用 vmkfstools命令,我查了一下官方在5.5已经不用该命令,改为使用esxcli storage vmfs unmap,官方称这是改进版本而且会比较可靠。
见官方KB介绍
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2057513
# esxcli storage vmfs unmap -l lun0 #这里我通过数据存储名字进行空间回收 |
7.查看结果发现无论怎么执行-n的参数都无法使空间减下来,这是个问题。
# esxcli storage vmfs unmap -l lun0 -n 100/200/4000
在Esxi上df -h空间没有一点减少
不解,继续研究。
本文出自 “侠云技术记录” 博客,谢绝转载!