我不小心将不匹配的 raidz1 添加到现有池中。是的,我指定了“-f”来执行此操作,但我希望出于不同的原因使用“-f”,但没有注意。
无论如何...有多糟糕?我真的只是需要泳池中有额外的空间,并且希望该空间是多余的。泳池看起来像这样:
NAME STATE READ WRITE CKSUM
pool_02c ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
c0t5000C500B4AA5681d0 ONLINE 0 0 0
c0t5000C500B4AA6A51d0 ONLINE 0 0 0
c0t5000C500B4AABF20d0 ONLINE 0 0 0
c0t5000C500B4AAA933d0 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
c0t5000C500B0889E5Bd0 ONLINE 0 0 0
c0t5000C500B0BCFB13d0 ONLINE 0 0 0
c0t5000C500B09F0C54d0 ONLINE 0 0 0
我读到了关于这种情况的另一个问题,它指出“性能和空间效率(即:通过非最佳填充)都会受到影响”,但这有点模糊,我希望有人能提供更多信息细节。
从池使用的角度来看,放在 vdev raidz1-0 中的磁盘上的数据在该 vdev 中不是冗余的,而放入 raidz1-1 中的数据在该 vdev 中不是冗余的吗?而且,如果是这样的话,性能难道不会与特定的 vdev 相关吗?
填充在这里发挥作用,这将如何影响存储容量?IE。是否会导致分配更多空间,就像我每写入 1M,就用掉 1.2M?
我并不太关心这个池的性能,但是这个配置如何影响读/写速度?我希望每个 vdev 都能以其各自设备的速度执行,那么 vdev 复制差异如何影响这一点?
仅供参考,这是在 Solaris 11.4 系统上。我尝试使用以下方法删除 vdev:
zpool remove pool_02c raidz1-1
但我收到错误:
cannot remove device(s): not enough space to migrate data
这看起来很奇怪,因为我实际上只是添加了它并且没有向池中写入任何内容。
我可以接受它,因为它似乎给了我我所期望的空间,但我只是想更好地理解我将与之共处的魔鬼。