在存储空间池中混合不同大小的磁盘

MDM*_*rra 15 storage-spaces windows-server-2012-r2

我有一个包含 2 个 3TB 磁盘的存储空间池。从此池中创建了一个具有固定大小(非精简配置)的镜像卷,并设置为在创建时使用池中的所有空间。

现在,我想将 2 个 4TB 磁盘添加到同一个池并扩展同一个卷。我似乎无法挖掘涵盖这种情况的文档。

该卷的总可用空间是多少?如果成对添加,在同一个池中使用混合大小的驱动器会丢失任何空间吗?

我的理解是,由于这是一个一列两份的副本设置,只要成对添加相同大小的磁盘,即使新对的大小不同,我也不应该“在桌子上留下任何空间”从当前磁盘,但我似乎无法找到任何确认这一点的文档。

Dan*_*iel 17

这些是您正在寻找的文档什么是列以及存储空间如何决定使用多少列?存储空间 - 性能存储空间设计:了解存储池扩展

我将首先引用所提供文章中的两件事:

  1. "注意Windows Server 2012 R2 及更早版本中的存储空间在默认情况下使用最大的列数,前提是您拥有的磁盘数量和您选择的弹性类型。 一种

  2. “要扩展[存储池],它需要适当数量的可用列来容纳磁盘布局。”

    换句话说:如果您将物理磁盘添加到存储池,Windows 会保留所述池中的列数。您添加的每一行磁盘必须为每列提供一个磁盘。

因此,如果您使用 2x3TB 驱动器创建镜像,则最大列数为 1。列与磁盘的相关性为 1:2。这构成了一个 3TB 的虚拟磁盘。

在此处输入图片说明

现在,如果您将另外两个 4TB 物理磁盘添加到存储池并将它们添加到虚拟驱动器,Windows 将在不更改列数的情况下添加它们。一个磁盘将添加到列中,另一个磁盘将添加到镜像中。从而将虚拟磁盘再扩展 4TB。您的磁盘布局将如下所示:

在此处输入图片说明

所以不,如果您成对添加它们,在同一池中使用混合大小的驱动器不会丢失任何空间。甚至恰恰相反!因为如果你一次性添加它们,会发生两件事:

  1. Windows 会创建两列(参见上面的注释)。
  2. Windows 会限制可用空间。可能通过将每一列限制为最小列的大小。[*]

您的布局看起来像这样,只提供 6TB,而不是 7TB:

在此处输入图片说明

[*] 现在,我不确定限制究竟是如何工作的,以及新的大小是如何计算的。我认为这与条带如何写入磁盘有关。因为如果在虚拟磁盘上写入 512 KB 的数据,则每列并行接收 256 KB 的条带。如果其中一列已满,那将是不可能的。所以这就是为什么我猜测存储池中的所有列必须具有相同的大小。至少对于 3TB+3TB+4TB+4TB 的磁盘,这实际上是正确的,我检查了.


Sum*_*min 0

如果你逆向操作——你有一个 3TB 的虚拟磁盘,数据以一种方式镜像,你有 2 个相同大小的底层块。正如你所说,定义为一列 2 副本。您的其余假设完全正确 - 要利用最大空间,您需要添加 2 倍相等卷的块,您可以添加 2 倍不等卷的磁盘,但虚拟卷可以消耗的最大空间将是该对中最小卷的最大值 - 您可以使用其他选项使用剩余部分创建第二个虚拟磁盘,但不能使用原始虚拟磁盘中的剩余部分。因此,边界指标是虚拟磁盘跨越的物理磁盘数量 + 1 路或 2 路镜像等选项。

因此,具有单向镜像的 9TB 超过 3TB 块的虚拟磁盘将需要 3 x 3 用于虚拟磁盘 + 3 x 3 用于镜像,但由于这是单列,因此更容易将底层块可视化为具有 3 个的单列行(第二列相等的行用于单向镜像)。

因此,总而言之,如果您想通过单向镜像使用单个虚拟磁盘中的所有可用空间,则必须以相等的大小添加到每一列 - 如果您使用多个虚拟磁盘,则可以添加不同大小的磁盘并仍然使用所有可用空间。