我发现了许多关于使用 ZFS 镜像处理不同大小磁盘的文章,似乎可以使用更大的磁盘来增大镜像。是否可以使用镜像将条带合并到更大但数量更少的磁盘上?
我们目前在旧的 DMX2000 阵列上有 8 x 200GB LUN
NAME STATE READ WRITE CKSUM pool1 ONLINE 0 0 0 disk1 ONLINE 0 0 0 disk2 ONLINE 0 0 0 disk3 ONLINE 0 0 0 disk4 ONLINE 0 0 0 disk5 ONLINE 0 0 0 disk6 ONLINE 0 0 0 disk7 ONLINE 0 0 0 disk8 ONLINE 0 0 0
我知道我们可以使用以下命令轻松将其移动到新的 VMAX 阵列
zpool attachment pool1 disk9 disk10 disk11 disk12 disk13 disk14 disk15 disk16
zpool 分离池1 磁盘1 磁盘2 磁盘3 磁盘4 磁盘5 磁盘6 磁盘7 磁盘8
但是,我们希望将其整合到 2x800GB LUN 中
我们可以用以下方法实现:
zpool attachment pool1 disk9 disk10
其中 disk9 和 disk10 >800GB
zpool 分离池1 磁盘1 磁盘2 磁盘3 磁盘4 磁盘5 磁盘6 磁盘7 磁盘8
我曾与 Veritas Volume Manager 和 Solaris Volume Manager 进行过类似的合并,但从未与 ZFS 进行过类似的合并。这可能吗?
短暂性脑缺血发作
答案1
最终找到了一个用于测试的开发系统,我意识到我误解了池的结构。
它严格来说是 RAID 1+0,并且永远不能是 RAID 0+1,而这正是您需要重新布局的。
首先将池分割成条带/连接 (stripe/concat),然后可以对每一列进行镜像。
例如,这里有一个 4 列条带,其中第 2 列是普通镜像,最后一列是 4 向镜像
POOLA ONLINE 0 0 0 c4t600A0B8000481D2400003BC54CE157B4d0s0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c4t600A0B8000481D2400003BC54CE157B4d0s1 ONLINE 0 0 0 c4t600A0B8000481D2400003BC34CE15760d0s1 ONLINE 0 0 0 c4t600A0B8000481D2400003BC54CE157B4d0s2 ONLINE 0 0 0 mirror-3 ONLINE 0 0 0 c4t600A0B8000481D2400003BC34CE15760d0s3 ONLINE 0 0 0 c4t600A0B8000481D2400003BC54CE157B4d0s3 ONLINE 0 0 0 c4t600A0B8000481D2400003BC34CE15760d0s2 ONLINE 0 0 0 c4t600A0B8000481D2400003BC34CE15760d0s0 ONLINE 0 0 0
add* 命令只会添加更多列。它们可以是简单列或镜像列。
附加命令将会把镜像添加到列中。
分离命令将从列中移除镜像。
删除命令无法删除列。
* 添加/删除命令也对缓存、日志等进行操作。
我上面建议的语法完全错误,因为附加仅接受要镜像的组件的一个名称和一个要将其镜像到的组件。实现我想要的唯一方法是创建一个新池并向其发送/接收数据。