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


21

我有一台zSolaris backupz由四个SCSI驱动器组成的OpenSolaris服务器:

-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

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

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least 2 devices

我不能使用5台设备进行raidz配置吗?我必须一次添加两个设备吗?还是我在这里完全做错了什么?

Answers:


14

您无法扩展现有的raidz vdev,必须将其吹散并使用新驱动器再次创建。请参阅其他答案以获取更多详细信息。

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


5
哦哦 如果是这样,我在某处做出了一个可怕的决定!= o
乔什(Josh)2010年

2
-1当然,可以扩展zpool。您认为该zpool add命令做什么?Josh遇到的限制是,您无法更改raidz vdev的组成(在他的示例中为“ raidz1”)。您可以将新设备添加到池本身中。这是为什么首选镜像vdev的原因之一:serverfault.com/questions/63809/zfs-mirror-vs-raid-z
Wim Coenen 2010年

8
@Wim,我知道您可以将其他vdev添加到池中。这是次要的错字,没有理由像这样跳过我。
克里斯·S

太酷了,我不知道有人找到一种解决架构问题的方法以允许添加驱动器!您是否有一个链接,可以在其中阅读更多信息?
lindhe '16

31

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

引用Dan Naumov的话,

重申一下,您不能仅将一个磁盘驱动器添加到raidz1或raidz2池中。这是一个已知的限制(您可以使用SUN ZFS文档进行检查)。如果您有现有的raidz,并且必须增加该特定池的存储功能,则可以使用以下三种选择:

1)将具有相同配置的raidz添加到池中(例如,考虑3个磁盘raidz + 3个磁盘raidz或5 + 5)

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

3)备份您的数据,破坏您的池,并使用大量磁盘创建一个新的raidz池。


3
+1:谢谢@brent!您的答案比克里斯的答案更详细,但是他在聊天中向我提供了详细信息,因此我接受了他的答案。我感谢您提供的信息!
乔什(Josh)2010年

1
为什么必须添加一个具有相同配置的RAIDZ,而不能例如将具有8个磁盘的RAIDZ添加到具有3个磁盘的RAIDZ?是否将数据跨所有VDEV aka RAIDZ进行了条带化​​?
ThorstenSchöning17年

@ThorstenSchöning答案是性能,ZFS在相同大小的VDEV上表现最佳:serverfault.com/a/564436/333397
ThorstenSchöning17年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.