unRAID 7.0现在已经更新到了beta4, 很快就会发布 RC1了,更新到 7.0 后,未来 unRAID 的 array磁盘数量可以设置为 none,设置 pool 就可以启动了,于是问了一下 chatgpt,如果我选择unRAID 的 array 和使用 zfs 的 raidz1 有什么区别,给的答案如下
在一个包含 3 个硬盘的配置中,ZFS 的 RAIDZ1 和 unRAID 在写入操作时硬盘的唤醒方式有明显差异:
ZFS RAIDZ1
在 ZFS 的 RAIDZ1 配置中,所有硬盘都会参与写入操作。RAIDZ1 使用一种单奇偶校验的 RAID 方式,将数据和校验信息分布在所有硬盘上,以确保数据的冗余和在单个硬盘故障时的数据恢复。因此,在 3 个硬盘的 RAIDZ1 设置中:
- 所有 3 个硬盘都会唤醒并参与每一次写入操作。
- 因为 RAIDZ1 需要在所有硬盘上分布数据和校验信息来保证冗余,因此所有硬盘必须都处于活动状态。
unRAID 3 硬盘阵列
在 unRAID 配置中,由于其对数据和奇偶校验的处理方式不同,写入行为有所不同:
- 仅需 2 个硬盘在典型的写入操作中处于活动状态,即包含新数据的硬盘和用于校验的奇偶校验硬盘。
- unRAID 并不将数据条带化,而是每个硬盘都作为一个独立的文件系统,奇偶校验仅对写入的数据计算并存储在专用的奇偶校验硬盘上。因此,如果文件写入到单个数据硬盘,那么只有该数据硬盘和奇偶校验硬盘会被唤醒。
因此,在一个包含 2 个数据盘和 1 个奇偶校验盘的 unRAID 配置中,写入时只会唤醒2 个硬盘,即奇偶校验盘和接收数据的数据盘。
结论
结论就是,zfs 写数据的时候,会需要唤醒array 中所有磁盘,文件是分布在所有磁盘中的,而 unRAID 的文件是分布在一个磁盘中的因此只需要使用唤醒一个磁盘。如果只是读磁盘,那么 zfs raidz1 需要唤醒所有所有磁盘,而 unRAID 只需要唤醒一个磁盘。
而我追求的时候省电,静音和灵活性,所以我还是选择继续使用 unRAID 的 array。