目前,我有1TB,2TB和3TB驱动器,可能使用大约5.5TB,我想我将再购买两个4TB驱动器并设置一个4TB x 4TB x 3TB RAIDZ阵列。
对于4 TB驱动器,您不应该关注单冗余RAIDZ。我推荐RAIDZ2,因为它可以提供额外的保护,以防一个驱动器以某种方式损坏或以其他方式产生问题。
请记住,消费者驱动器通常规定每读取10 ^ 14位的一个故障扇区的URE速率。1 TB(硬盘驱动器制造商terabyte,即)是10 ^ 12字节或接近10 ^ 13位,给予或采取少量更改。您想到的阵列的完整读取通道在统计上可能会遇到问题,而在实践中,读取问题往往会分批发展。
我不确定你为什么建议使用RAIDZ2。如果我使用RAIDZ1而不是使用RAID,我是否更有可能同时开发两个驱动器故障?我想要对我的系统的容错进行一些改进。只有一个地方不存在任何不可恢复的东西,因此RAID阵列只是方便的问题。
RAIDZ1使用单个磁盘在vdev中提供冗余,而RAIDZ2使用两个(以及一些更复杂的计算,但无论如何您都不太可能受到RAIDZ计算的吞吐量限制)。第二个冗余磁盘的好处是在第一个冗余磁盘发生故障或以其他方式变得不可用时。只有一个磁盘的冗余,任何其他错误现在都很重要。使用4 + 4 + 3 TB,您有11 TB的原始存储空间,最初可能需要读取6 TB才能重建丢失的磁盘(一旦将3 TB驱动器升级到4 TB驱动器并扩展池,则需要8 TB匹配)。对于数量级的估计,它很好地舍入到10 ^ 13和10 ^ 14位之间。从统计数据来看,您在重新同步期间遇到不可恢复的读取错误的概率为50%到100%当使用具有该数量级大小的阵列的单个冗余时。当然,你可能运气好,但它突然意味着你在驱动器出现故障时几乎没有任何保护。
我的理解是,对于像这样的异构磁盘阵列,池大小将限制为最小磁盘的大小,这意味着我将看到一个3 x 3 x 3 TB RAIDZ,具有6TB可用空间和2TB非 - 容忍空间 - 这是真的吗?
几乎。ZFS会将vdev限制为最小组成设备的大小,因此您可以获得由3 TB设备组成的三设备RAIDZ vdev的有效容量,因此可以使用6 TB的用户可访问存储(提供或获取元数据)。剩余的2 TB原始存储空间被浪费; 即使没有冗余,它也无法使用。(它们将显示在EXPANDSZ
列中zpool list
,但它们未被使用。)
使用4 TB驱动器更换3 TB驱动器并展开vdev(两者都是ZFS中的联机操作)后,池可以使用额外的存储空间。
有很多方法可以解决这个问题 - 例如,您可以将驱动器分区为ZFS提供三个3 TB设备和两个1 TB(两个4 TB驱动器的其余部分)设备 - 但这会使您的设置变得非常复杂,并且不太可能以你的计划方式工作。我强烈建议不要这样做。
ZFS不会将2 TB的非容错空间备份到脱机磁盘,如果不清楚则不好意思。我建议我通过正常的磁盘同步操作来支持它rsync
。
这意味着ZFS不知道那些2 x 1TB,并且您正在该空间中创建一些其他文件系统。是的,你可以做到这一点,但同样,它会严重地使你的设置变得复杂,坦率地说,看起来收益很少。
假设#1为真,当我最终需要更多空间时,如果我向阵列添加一个4TB或6TB驱动器,将池扩展为4 x 4 x 4 TB阵列是否是一件简单的事情,或者我是在升级阵列时需要找一个存放6TB数据的地方?
如上所述,如果您通过逐步替换设备来实现ZFS vdev和池,则可以将其作为在线操作。(然而,它不可能缩小ZFS池或vdev。)然而,您不能将其他设备添加到现有的vdev(例如您正在创建的三设备RAIDZ vdev); 必须将全新的vdev添加到池中,然后在池中的两个vdev之间对稍后写入的数据进行条带化。每个vdev都有自己的冗余要求,但它们可以共享热备件。您也无法从vdev中删除设备,但镜像除外(其中删除设备只会降低特定镜像vdev的冗余级别,并且不会影响用户可访问的存储空间量),并且您无法删除vdevs从游泳池。执行后者的唯一方法(并且因此,修复某些池配置失败的唯一方法)是重新创建池并从旧池传输数据,可能通过备份,
2TB的非容错空间并不是什么大不了的事,因为我计划在2TB左右预留“需要适当备份的东西”(个人照片,计算机快照等),我将镜像到剩下的2TB磁盘和第二个2TB外置硬盘,我将保留在其他地方。
ZFS冗余并非真正设计用于大多数离线的异地备份驱动器用例。我在一个深度讨论这个问题,ZFS镜像中的一个驱动器主要是离线工作吗?,但它的面包和黄油是,最好使用zfs send
/ zfs receive
复制ZFS文件系统的内容(包括快照和其他rsync
常规),或者如果你不关心快照,则比在大多数情况下使用镜像更好-offline设置。
如果我使用一半磁盘来容错,我不妨使用传统的离线备份。
这无疑取决于你的情况。您在不同情况下的恢复要求是什么时候?RAID是关于正常运行时间和恢复时间,而不是关于保护数据; 无论如何你还需要备份。
rsync
。