原文:http://cormachogan.com/2014/03/31/vsan-part-20-vm-swap-and-vm-storage-policies/
在前面一篇文章中,我深入说明了组成 VSAN 数据存储上虚拟机的不同对象。这里我们回顾一下,这几个对象是虚拟机主目录命名空间、虚拟机交换、VMDK 对象以及快照增量磁盘对象。现在,VMDK 遵循虚拟机存储策略中的所有规则,以及应用到虚拟机上的所有规则。快照增量磁盘会跟它们的VMDK 基础磁盘一样,继承相同的虚拟机存储策略,并且也会遵循虚拟机存储策略中的所有规则 - 到目前为止是如此。虚拟机主目录命名空间稍有不同 – 它的行为和遵循的功能已在早前的这篇文章中讨论过。这样,就剩下了虚拟机交换对象,这就是我将在这篇文章中讨论的内容。
与快照增量磁盘类似,虚拟机交换不在 VSAN 上部署的虚拟机的“Manage(管理)”>“VM Storage Policies(虚拟机存储策略)”中显示。这稍微有点麻烦,但是只有虚拟机主目录命名空间和 VMDK(硬盘)在 vSphere Web Client 中可见:
那么我如何才能查看虚拟机交换策略呢?我写了一篇文章,讨论了如何使用 RVC完成该操作。RVC 是指 Ruby vSphere 控制台,具有多种VSAN 和 SPBM(基于存储策略的管理)扩展,可以对 VSAN 进行故障排除。
不过,还是让我们将注意力重新转到虚拟机交换策略上来。就像我们在虚拟机主目录命名空间一文中所讨论的,为虚拟机交换这样的对象提供有价值的资源并没有什么意义。事实上,对于虚拟机交换,我们没有实施虚拟机存储策略中的任何功能。我们只是为虚拟机交换选取了默认策略中定义的功能。
虚拟机交换所部署的功能包括:
· 待条带化的磁盘对象数目:值为 1
· 对象空间预留:值为 100%
· 读取缓存预留:值为 0%
· 允许的故障数目:值为 1
· 强制置备:值为 1(已启用)
您现在应该已经熟悉了其中某些功能。例如,条带宽度为 1 即表示不条带化。同时也没有向虚拟机交换对象分配读取缓存。
为什么允许的故障数目 (FTT) 被设置为 1,为什么这个值不遵循策略中的允许的故障数目设置?原因是因为虚拟机交换内容不需要具有永久性。即使虚拟机因为主机故障而发生故障,交换对象也会在发生故障后在另一台主机上的虚拟机重新启动时被重新创建。所以并不需要维护多个副本。
另一个您可能会问的问题是,为什么对象空间预留设置为 100%?这意味着 VSAN 会在部署时尝试分配虚拟机要求的全部交换空间量。应该注意的是,这不是 VSAN 独有的特点。即使在传统的 VMFS 数据存储上,所有虚拟机交换文件也会被创建为厚文件。这是为了确保在有内存资源限制时,虚拟机可以始终被交换到磁盘上。
另一个需要考虑的功能是强制置备设置,该设置是虚拟机交换默认启用的设置。这意味着即使 VSAN 无法满足该对象的策略要求,VSAN 仍然会部署该对象。之后,当有更多资源可用时,对象会被重新配置以满足所有策略要求。我们看一下下面这个例子,一个群集包含 3 台 ESXi 主机,其中一台 ESXi 主机发生了故障。如果虚拟机的计算之前是运行在发生了故障的主机上,则这台虚拟机将需要启动(通过用户干预手动启动,或者由 vSphere HA 自动启动)。不论是哪种启动方式,都必须为这台虚拟机创建新的虚拟机交换对象。如果强制执行允许的故障数目 = 1(根据默认策略),这种交换对象创建操作将失败。所以使用强制置备可以让 VSAN 处理这种情况。
最后提醒您注意虚拟机交换对象故障,以及虚拟机需要交换但虚拟机交换缺失或发生故障时(因为群集中发生多重故障)会发生的情况。在这种情况下,虚拟机会发生故障,需要再次重新启动,启动方式可以是通过用户干预手动启动或者是由 vSphere HA 自动启动。新的交换对象会按照我们之前讨论的同一方式再次实现实例化。
欢迎在微博上关注我,这样在我发布博客文章后您就会收到通知,并可以让您了解更多有关 VMware 存储的信息:@VMware中国
————————————————————————————————————————————
作者:Cormac Hogan
CormacHogan 现任VMware R&D 的集成工程团队存储架构师。他是爱尔兰科克郡 EMEA 总部的首批 VMware 员工之一(该总部于 2005 年 4 月成立),曾在 VMware 技术营销与支持部门任职。他撰写过大量关于存储的白皮书,还发表了许多关于存储最佳实践和新功能的演讲。
转载于:https://blog.51cto.com/vsdsrevolution/1423891