为什么 VMware ESXi 或 Microsoft Hyper-V 报告使用的空间多于 ONTAP LUN?
适用于
- ONTAP 9
- VMware vSphere
- Microsoft Hyper-V
回答
- 这是预期的行为,因为主机使用的空间被分配/保留(当延迟归零时,不是实际的物理写入块)
- 存储仅在写入时报告这些块。根据 SCSI SBC-3 标准中定义的精简逻辑块配置功能
追加信息
- 虚拟机功能,如内存 balloon 驱动程序和交换文件可能会预留空闲空间
- 在VMDK上使用 Thick Provision Lazy Zeroed,thin 预配置数据存储和 thin 预配置存储卷/LUN 不保证空间
VMware 计算空间消耗 = 总调配空间+模板+日志文件大小+HA 配置文件+交换文件+快照+离线文件或离线 VM(如果有)和厚调配延迟归零 vmdk。
- vSphere 将 VMFS 文件系统写入 LUN,它现在负责管理该 VMFS 文件系统内的使用情况,但 NetApp 仅跟踪块是否已被写入。
- VMFS 上的虚拟机 (VM) 数量将虚拟磁盘 (VMDK 或 VHDX) 分配给 VM。每次提交空间时 - vSphere 会看到该空间的部分(或全部,如果是厚配置)被消耗,并将其报告为已使用。
- 在实际写入块之前,ONTAP 不会考虑该空间已被使用。这通过 VMDK 上虚拟机的交换文件快速复合。通常 VM 的交换文件与其 VM 在同一数据存储上。
- VM 启动时,vSphere 为 VM 交换提交的存储量等于配置的内存减去保留内存
示例:
启动配置为 > 32 GB 内存的 VM 将消耗数据存储上 32 GB 的存储空间。启动配置为 32 GB 内存且具有 24 GB 预留的 VM 将消耗数据存储上 32-24=8 GB 的存储空间。
vSphere 在数据存储区上提交这些存储量,并将其视为"已使用"但数据几乎不会写入交换设备,因此存储物理块上的空间是空的。