ZFS RAIDZ 奇偶校验

ZFS RAIDZ 奇偶校验

我正在构建一个 OpenSolaris 盒,以尝试使用 ZFS 和 RAIDZ。我从一个驱动器上的操作系统开始,并希望将所有数据存储在 RAIDZ 卷上。我对 RAIDZ 处理奇偶校验有点困惑。我使用命令“zpool create pool_1 raidz drive1 drive2 drive3”创建了一个池,当我执行 zpool list 时,它显示了三个驱动器的可用大小。我认为如果奇偶校验是自动计算的,它应该小于 1 个驱动器的大小。所以我删除了那个池,并使用“zpool create pool_1 raidz drive1 drive2 spare drive3”创建了一个池,可用大小正是我期望看到的。对我来说,热备用不是奇偶校验,但它是一个可以在您的 raid 丢失驱动器的情况下填充奇偶校验的磁盘。我不想走上这条路,让这两个驱动器中的一个发生故障,然后发现没有奇偶校验。

任何对此的解释都将非常感激。

答案1

RAID-Z 的“池”大小是池可用的整个物理空间 - 而不是文件系统的空间。

为此,您应该检查“zfs list”命令。

# zpool list
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
storage  5.32T  2.23T  3.09T    41%  1.00x  ONLINE  -

# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
storage                   1.49T  2.00T  38.6K  /storage

正如您正确推测的那样,RAID-Z(或 RAID-Z1)是 (N-1) * 大小空间,而 RAID-Z2 是 (N-2) * 大小空间,其中 N 是驱动器数量,大小是单个驱动器的容量。

与 RAID-5 不同,RAID-Z 不使用某个特定驱动器进行奇偶校验,而是在不同的磁盘上轮流进行奇偶校验。这样可以提高系统效率,并防止奇偶校验磁盘过快磨损:

在此示例中,dw是数据写入操作,pw是奇偶校验写入操作。D3 是 raid 5 配置中的奇偶校验磁盘

突袭5:

D1   D2   D3
dw        pw
     dw   pw
     dw   pw
dw        pw 
dw        pw
dw        pw
     dw   pw

您可以看到对磁盘 1 或磁盘 2 的每次写入操作都会导致对磁盘 3 的写入。

突袭-Z:

D1   D2   D3
dw   pw
dw        pw
pw   dw
     pw   dw
dw        pw
pw   dw
     pw   dw  

您可以看到更加均匀的磁盘写入模式。

zpool 的sparevdev 是一个保留磁盘,可以随时与任何其他磁盘交换 - 热备用。除非您指示,否则不会使用此磁盘。

答案2

RAID 4 使用专用奇偶校验驱动器。RAID 5 对奇偶校验进行条带化。

相关内容