15 raid hard-drive zfs
如果我想使用 RAID-Z2,需要多少存储空间?我正在构建一个家庭服务器,它将运行带有 ZFS 文件系统的 FreeNAS,目前计划安装 3 个 3TB 硬盘。
use*_*ser 23
RAID-Z2 的工作原理是将提供给 vdev 的驱动器使用其中的两个来存储冗余数据,以便在出现问题时进行恢复。
因此,RAID-Z2 vdev 中驱动器的绝对最小数量是两个冗余驱动器加一个,即三个驱动器。
但是,通过这样做,您可以:
如果您想要一个包含三个驱动器的 vdev,或者如果您有三个并且想要两个驱动器的冗余,那么将它们设置为镜像可能会更好。这样,你:
驱动器的最小数,其中RAID-Z2是有道理的是四,它给你的两个驱动器的有效存储容量,使失去任何驱动器中的两个。这比在 2x2 镜像设置中使用相同的四个驱动器更有优势,因为如果您有两个镜像 vdev,每个镜像 vdev 并且丢失了两个驱动器的某些组合,则该 vdev 已死,并在其火热消亡时带走了池。在 2x2 镜像 vdev 池中,每个镜像对中至少有一个驱动器必须保持正常运行,池才能保持可用。然而,镜子很可能有更好的性能。与往常一样,这是不同选择之间的权衡,系统管理员工作描述的一部分是针对每种特定情况做出适当的权衡。
因此,虽然 RAID-Z2 在技术上可能适用于您描述的设置,但与简单的三向镜像配置相比,它没有任何优势,甚至有一些缺点。
如果 ZFS 允许我们动态更改 RAID-Zn vdev中设备的冗余级别或增加设备数量,情况会有所不同,但事实并非如此。实际增加池的唯一方法是添加更多 vdev 或增加现有设备的大小,而不是将设备添加到现有 vdev。(您可以在镜像 vdev 中添加和删除设备,但这只会更改冗余量,而不是可用存储容量。)
您还可以将三个驱动器设置为 RAID-Z(1) vdev,这将使您能够在任何一个驱动器丢失之前幸免于难,如果出现任何进一步问题,则减少 CPU与 RAID-Z2 相比,工作负载更大(因为 RAID-Z1 奇偶校验计算的计算密集度较低),并为您提供两个驱动器组合的有效存储容量。
请始终记住,如果出现任何问题,完整的 ZFS 重新同步对于剩余磁盘来说是一个艰巨的过程,另一个磁盘出现问题甚至在压力下死亡也并非闻所未闻。出于这个原因,特别是对于当今常见尺寸的旋转驱动器,如果您真的很偏执,双冗余应该是默认选择,三冗余是一个选项。应仅对可以容忍停机时间的不太重要的数据考虑单一冗余。但是,对于 SSD 支持的池,单冗余可能是可以接受的。
因此我的建议是:如果您想要三个驱动器 ZFS,并且想要冗余,请将它们设置为三向镜像 vdev。如果您想要 RAID-Z2,请至少使用四个驱动器,但请记住,您在创建 vdev 时锁定了 vdev 中的驱动器数量。目前,增加 ZFS 池的唯一方法是添加额外的 vdev,或增加构成 vdev 的设备的大小,或创建新池并传输数据。您无法通过向现有 vdev 添加设备来增加池的存储容量。
您还需要确保保留备份。这对于 ZFS 来说是双重重要的,因为在使池低于其冗余阈值的实际故障之后,ZFS 恢复非常困难。ZFS 有一个非常复杂的磁盘格式,我不知道任何常见的现成数据恢复软件的理解,所以即使你可以读取磁盘上的大部分数据,如果 ZFS 无法弄清楚那么除非你愿意在这个问题上花费数万美元,否则你很可能不走运。备份更便宜。
作为三路镜像的替代方案,您也可以运行带有备用的双向镜像,但大多数情况下,当然在您描述的情况下,这没有优势,也有一些劣势。
顺便说一句,与恢复问题相关,您应该强烈考虑在任何运行校验和自修复文件系统(包括 ZFS)的系统中使用 ECC RAM。其他人同意。
显示具有三个设备的 RAID-Z2 是可能的(这是 Linux 0.6.4 上的 ZFS)。请注意,在硬删除三个支持文件中的两个后,“存在足够的副本供池继续在降级状态下运行。” 而 vdev 是DEGRADED,不是FAULTED。
# truncate -s 1G /root/d1 /root/d2 /root/d3
# zpool create tank raidz2 /root/d1 /root/d2 /root/d3
# zpool status tank
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
/root/d1 ONLINE 0 0 0
/root/d2 ONLINE 0 0 0
/root/d3 ONLINE 0 0 0
errors: No known data errors
# zpool export tank
# rm /root/d1 /root/d2
# zpool import tank -d /root
# zpool scrub tank
# zpool status tank
pool: tank
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://zfsonlinux.org/msg/ZFS-8000-2Q
scan: scrub repaired 0 in 0h0m with 0 errors on Tue Mar 29 11:00:23 2016
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
18130982121682915530 UNAVAIL 0 0 0 was /root/d1
18289483070703159278 UNAVAIL 0 0 0 was /root/d2
/root/d3 ONLINE 0 0 0
errors: No known data errors
#
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44816 次 |
| 最近记录: |