增长/缩小zfs RAIDZ

Modified on: Wed, 11 Sep 2019 14:20:02 +0800

我打算建立一个freenas服务器,想确保我能用这种神奇的高级zfs做些什么。

如果我在RAIDZ中有5 * 3TB磁盘(总共12TB存储),现在我正在尝试向现有阵列添加另外2 * 3TB磁盘。

问:

  1. 我是否能够在不影响/触摸RAIDZ卷上的任何现有数据的情况下执行此操作?
  2. 带走一些现有磁盘怎么样?假设从5个磁盘中取出1个磁盘,假设raidz上只存在非常小的一部分数据。
  3. 醇>
作者:notpeter,c2h2

最佳答案

正如ewwhite所说,ZFS目前无法实现游泳池收缩。如果您需要这样做,您将必须备份到另一个存储介质(另一个池,磁带,SAN等)创建一个新池并恢复。至于扩展,有很多选择如何发展你的ZFS 5x3TB raidz池:

  1. 添加镜像VDEV(磁盘对)池跨越两个VDEV(12TB raidz& 3TB镜像)。
  2. 添加一个raidz VDEV(3-8个磁盘)池,跨越两个VDEV(12TB raidz& 12TB raidz)。
  3. 在单个VDEV(16TB raidz)上升级每个磁盘(一次5x3TB到5x4TB磁盘)池。
  4. 醇>

    混合使用多种尺寸或类型的VDEV(raidz +镜像)在性能方面并非最佳,并提供冗余度最低的VDEV(raidz)的有效冗余。在家里或在紧要关头,你可能不在乎,但如果可能的话应该避免。

    但实际上,您不应该升级此池。您不应该依赖RAID-Z并且应该切换到镜像或RAID-Z2。它将花费你额外的磁盘(RAID-Z2)或两个(镜像)通过RAID-Z来达到相同的可用容量,但有一个原因企业不再使用RAID5。如果单个磁盘发生故障,即使准备好热备用,也需要永远从奇偶校验中重新创建丢失的磁盘。可能24-48小时或更长。如果第二个磁盘在此窗口期间出现故障(这不是不可能的,因为您正在以尽可能的方式处理其余磁盘,尽可能快地读取每个磁盘上的每个字节),您将丢失所有内容。使用RAID-Z2(想想RAID6),两个磁盘可以在没有数据丢失风险的情况下发生故障。考虑镜像VDEV的简单性,但如果成本/ GB是您的主要考虑因素(以性能和可扩展性为代价),双奇偶校验RAID-Z2确实更安全。

    也就是说,如果你能找到临时空间并且可以承受停机时间,那么可以采用一些更优化的方式来使用你的七个3TB磁盘:

    1. 6x3TB镜像+热备用(9TB可用,3个vdevs)
    2. 6x3TB raidz2 set + hotspare(12TB可用,1 vdev)
    3. 7x3TB raidz2 set(15TB available,1 vdev)
    4. 醇>

      如果您在开始时选择镜像raidz,则最初的五个磁盘将产生4x3TB镜像+热备份(6TB可用,2个vdev),您可以根据需要添加成对的磁盘。此外,如果您好奇,写入性能与池中的VDEV数量直接相关。

      真的,这都是关于数据的价值。如果您在其他地方备份了所有内容,则无需担心重建期间第二个磁盘发生故障的可能性为5%。但是,如果您像大多数考虑使用ZFS作为家庭服务器的人一样,得出的结论是您不会(或者不能承受)执行定期备份,并且可能不会立即注意到/更换故障磁盘,您应该真的考虑到热备份和镜像/ RAID-Z2而不是简单奇偶校验(RAID-Z)的增量成本,它只会增加你几年后仍然拥有数据的几率。 ZFS竭尽全力使用软件来避免丢失数据(校验和,校验/冗余副本,擦除等),而无需昂贵的专有控制器卡。您可以做的最少的事情就是为ZFS提供防范故障/故障磁盘的手段:不仅仅是所需的最小磁盘数。

作者:,notpeter

相关问答

添加新评论