启动 vSAN 虚拟机时出现“没有更多空间用于虚拟磁盘 .vmdk (There is no more space for virtual disk .vmdk)”错误
search cancel

启动 vSAN 虚拟机时出现“没有更多空间用于虚拟磁盘 .vmdk (There is no more space for virtual disk .vmdk)”错误

book

Article ID: 301239

calendar_today

Updated On:

Products

VMware vSAN

Issue/Introduction

本文旨在说明出现“没有更多空间用于虚拟磁盘 (no more space for virtual disk)” 错误的原因以及解决此情况的方法。

Symptoms:
免责声明:本文为 "There is no more space for virtual disk .vmdk" error when starting vSAN VM (2146613) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

无法启动 vSAN 虚拟机并遇到以下症状:
  • vSAN 数据存储报告总可用空间足够置备虚拟机。
  • vSAN 群集中 ESXi 主机所用的容量层磁盘(Capacity Tier disk)的大小大于 255 GB。
  • 在 vSphere Web Client 中看到类似以下内容的错误:

    没有更多空间用于虚拟磁盘 <VM name>.vmdk。可以通过释放相关卷上的磁盘空间并单击重试来继续此会话
    (There is no more space for virtual disk <VM name>.vmdk. You might be able to continue this session by freeing disk space on the relevant volume and clicking retry)。


Environment

VMware vSAN 6.5.x
VMware vSAN 6.6.x
VMware vSAN 6.2.x

Cause

由于不符合虚拟机存储策略,所以对象创建失败。

Resolution

报告的总可用空间是原始容量。要计算所需空间,还需要考虑将应用于新对象的存储策略。在 vSAN 默认存储策略(允许的故障数 (FTT) = 1、磁盘带宽度 = 1、对象空间预留 = 0)中,报告的原始可用空间小于新对象大小的两倍与一些较小元数据开销之和。尝试创建大于此大小的对象时则会失败并显示此错误。

例如:原始可用容量 = 3000 GB。所需虚拟机磁盘大小 = 250 GB。所需原始可用空间 = 500 GB + 开销。但是,由于“对象空间预留”为 0(精简置备),您可以过度分配容量。而此操作会导致随着置备对象的增长出现容量层空间耗尽的风险。

需要记住一点,使用默认策略时,小于或等于 255 GB 的对象将有 2 个位于独立 vSAN 主机上的组件(副本)。因为磁盘带宽度为 1,此对象的组件无法拆分为更小的块。但是,如果所有容量层磁盘上的最小可用空间均小于对象大小,在这种情况下,CLOMD 将尝试执行一次或多次迭代,以便将副本拆分为最适于容量层磁盘可用空间的较小的相等的磁盘带。此时,还有一个决定因素是组件在容量层磁盘上的平衡程度。如果一些磁盘的利用率高于其他磁盘,可用空间会在群集的容量层磁盘之间分布不均。这将导致创建适于最小公分母的较小磁盘带,且如果磁盘的可用空间多于其他磁盘时,有些磁盘带可能位于同一个磁盘上。由于磁盘带是为了实现最佳空间分配,而不是为了实现性能优化,因此磁盘带共置于同一个容量层磁盘上是可以接受的。

例如,您有一个 3 节点群集,每个节点上一个磁盘组。每个磁盘组有 4 个容量层磁盘。每个磁盘的可用空间为 50 GB。那么总可用原始容量为 600 GB(每个磁盘组 4 个磁盘 x 每个磁盘 50 GB x 3 个节点)。对于 250 GB 对象而言,每个磁盘带小于 50 GB 最合适(考虑到元数据开销)。此计算方法的问题是 RAID-1 的 2 个镜像不能位于同一个主机上。因此,如果第一个副本分位于 2 个节点上,则镜像只能位于第三个节点上,而这第三个节点没有足够的空间供其使用。这也是 vSAN 最佳实践是使用 4 节点群集(即便最低要求是 3 个节点)的原因之一。


总而言之,报告的原始可用空间是所有主机中所有容量层磁盘上的所有可用空间的组合,但这并意味着所有这些空间都可以使用。

对要创建的对象应用条带化策略时,必须有足够的空间才能满足可用性和条带化要求。


Additional Information

对于磁盘大小小于 255 GB 的情况,请参见:Using small magnetic disks for vSAN might result in virtual machine failures (2080503)"There is no more space for virtual disk .vmdk" error when starting vSAN VM