如何将一个磁盘添加到现有的 raidz zpool?

Jos*_*osh 22 solaris zfs raidz

我有一个 OpenSolaris 服务器,其 zpoolbackupz由四个 SCSI 驱动器组成:

-bash-3.2# zpool status backupz
  pool: backupz
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backupz     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0

errors: No known data errors
Run Code Online (Sandbox Code Playgroud)

我想添加第五个驱动器...但zpool add backupz raidz c7t4d0不起作用...

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least 2 devices
Run Code Online (Sandbox Code Playgroud)

我可以没有 5 个设备的 raidz 配置吗?我必须一次添加两个设备吗?或者我在这里做错了什么?

bre*_*ent 32

从 FreeBSD 列表之一查看此线程:http : //lists.freebsd.org/pipermail/freebsd-fs/2009-June/006327.html

引用 Dan Naumov 的话,

重申一下,您不能只向 raidz1 或 raidz2 池添加单个磁盘驱动器。这是一个已知的限制(您可以查看 SUN ZFS 文档)。如果您有一个现有的 raidz 并且您必须增加该特定池的存储能力,您有 3 个选择:

1)向池中添加一个相同配置的raidz(例如3磁盘raidz + 3磁盘raidz或5 + 5)

2)将raidz池中的每个(和每个)磁盘一个一个地替换,让它在插入每个升级后的磁盘后重新同步

3)备份您的数据,销毁您的池并创建一个具有更大磁盘数量的新raidz池。

  • +1:谢谢@brent!您的回答比 Chris 的更详细,但他在聊天中向我提供了详细信息,因此我接受了他的回答。我很欣赏这些信息! (3认同)

Chr*_*s S 14

您无法扩展现有的 raidz vdev,您必须将其吹走并使用新驱动器重新创建它。有关更好的详细信息,请参阅其他答案。

旁注:实际上有人发现在技术上可以将驱动器添加到raidz,但该功能尚未实现。删除磁盘也是如此。

  • @Wim,我很清楚您可以向池中添加额外的 vdev。这是一个小错误,没有理由像那样跳过我。 (9认同)
  • 哦哦。如果是这样的话,我在某个地方做了一个糟糕的决定!=o (5认同)
  • -1 当然可以扩展 zpool。你认为 `zpool add` 命令有什么作用?Josh 遇到的限制是您无法更改 raidz vdev 的组成(在他的示例中为“raidz1”)。您可以将新设备添加到池本身就好了。这是首选镜像 vdev 的原因之一:http://serverfault.com/questions/63809/zfs-mirror-vs-raid-z (2认同)