我们正在使用 VMware vSphere 和 NetApp,并试图解决一些令人费解的空间问题。这个问题的一部分是两位同事对厚配置磁盘与存储上使用的空间的关系存在分歧。这些是 NetApp 上的精简配置 iSCSI SAN 卷和座位预订当我运行命令时显示为“已禁用” lun show -v <path>
。
人 1 说的是,无论磁盘上有多少数据,100 GB 的厚配置 vmdk 都将显示为存储上 100 GB 的已用空间。
第二个人说,一个 100 GB 的厚配置 vmdk,假设
磁盘上有 10 GB 的数据,则只会显示为
存储上已使用 10 GB 的空间。
谁是正确的?
我们正在尝试弄清楚为什么 vCenter 数据存储中显示的可用空间量较少的比 NetApp LUN 上显示的可用空间大。我们已启用空间分配在 LUN 上,随后运行esxcli storage core device vaai status get -d <naa.id>
显示删除状态作为支持的。
我们还配置了 NetApp 的存储效率以在卷上运行。
如果 LUN 上的可用空间较少,这表明自动空间回收出现了问题,但问题恰恰相反。
答案1
谁是正确的?
这取决于。
从 VMware 的角度来看,厚配置磁盘的大小是完全保留的,因此无论虚拟磁盘中实际的数据使用情况如何,其整个大小都将被标记为已使用并从数据存储上的可用空间中扣除。
但从存储系统的角度来看,它可以使用自己的精简配置,因此只算作使用了实际写入数据的空间;它甚至可以运行各种数据重复数据删除或其他任何功能,以更好地利用可用空间,而操作系统(在本例中为 ESXi)对此一无所知,除非它具有特定于存储的驱动程序和管理工具。
答案2
根据您在问题中使用的词语,我假设您正在谈论 NFS 数据存储,如果不是,请纠正我,我会更新答案。
假设 VMware 的现代版本和 VAAI 配置,我相信 ESX 将通过指示存储使用厚配置来解释厚 VMDK 创建。在 Netapp 上,这有点不同。他们将其称为空间预留,但在后台它始终是薄的。唯一的区别是它是否允许您使用为“厚”卷预留的空间量。当您查看聚合的已用容量时,它确实会显示整个卷的容量。也就是说,它不会冻结任何可用空间或类似的东西,并且将继续根据需要使用可用空间池来执行后台任务。
如果您最终将 VMDK 归零,当然它将消耗存储上的整个大小,但是 Netapp 上启用的任何效率技术随后都会减少它。
您可以通过从 Netapp 创建一个空卷,然后将属性从厚更改为薄并查看聚合可用空间的行为来轻松地测试这一点。