具有非对称 vdev 的 zfs

具有非对称 vdev 的 zfs

让我们假设我有一个由三个磁盘(或 vdev)创建的 raidz。

$ fallocate -l 64m /tmp/one
$ fallocate -l 64m /tmp/two
$ fallocate -l 64m /tmp/three
$ sudo zpool create test raidz /tmp/one /tmp/two /tmp/three
$ sudo zpool status test
  pool: test
 state: ONLINE
  scan: none requested
config:

    NAME            STATE     READ WRITE CKSUM
    test            ONLINE       0     0     0
      raidz1-0      ONLINE       0     0     0
        /tmp/one    ONLINE       0     0     0
        /tmp/two    ONLINE       0     0     0
        /tmp/three  ONLINE       0     0     0

errors: No known data errors

为了增加池的大小,假设我有一组 5 个其他磁盘 - 并且我想将两者条带化在一起:

$ fallocate -l 64m four
$ fallocate -l 64m five
$ fallocate -l 64m six
$ fallocate -l 64m seven
$ fallocate -l 64m eight
$ sudo zpool add test raidz /tmp/four /tmp/five /tmp/six /tmp/seven /tmp/eight
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses 3-way raidz and new vdev uses 5-way raidz

嗯...所以我可以强制这样做-f

$ sudo zpool add -f test raidz /tmp/four /tmp/five /tmp/six /tmp/seven /tmp/eight
$ sudo zpool status test
  pool: test
 state: ONLINE
  scan: none requested
config:

    NAME            STATE     READ WRITE CKSUM
    test            ONLINE       0     0     0
      raidz1-0      ONLINE       0     0     0
        /tmp/one    ONLINE       0     0     0
        /tmp/two    ONLINE       0     0     0
        /tmp/three  ONLINE       0     0     0
      raidz1-1      ONLINE       0     0     0
        /tmp/four   ONLINE       0     0     0
        /tmp/five   ONLINE       0     0     0
        /tmp/six    ONLINE       0     0     0
        /tmp/seven  ONLINE       0     0     0
        /tmp/eight  ONLINE       0     0     0

一切看起来都很好……

为什么我需要强制执行?在生产中使用它可能会遇到什么问题?

答案1

zfs 不希望您这样做的原因是,它无法使用较大的 vdef 上的所有空间。

此外,通过组合两个 vdev,池中所有数据的冗余度将不会相同,无论如何这都是一个坏主意。

从另一个层面来说,永远不要使用存储等积极反对的配置。因为“不良副作用”可能只会在生产中出现,然后您获得的所有帮助都是如此。将您的数据发送/接收至正确配置的池。

相关内容