坑边闲话:在家用场景下,用户的硬盘规格可能比较杂,不同容量的磁盘组件 RAID,会被木桶原理限制。AnyRAID 是一个新兴的技术,可以在保障安全的情况下最大限度地发挥磁盘的空间。

​在看近期的 TrueNAS Tech Talk 时,我本想了解一下 AnyRAID 的最新进展,没想到看到 Kris Moore 也认同不要使用同一个制造商的同批次产品,因为这样会导致磨损过于均衡。

广告

这里打一个免费的广告。Subeasy 是一个支持多国语言的字幕生成工具,基于 Whisper 大语言模型。

它可以在理解视频音频的基础之上生成字幕。由于大模型能理解故事背景,因此生成的字幕非常准确,很多术语也能较好地翻译。目前它两种模式,第一种是上传音视频文件然后转译字幕,另一种是直接粘贴流媒体网站的视频链接然后由服务器进行下载并处理。后者用来看外文内容非常好用,因为 Subeasy 的翻译功能基于大模型,所以翻译质量非常高。

目前该网站对免费用户有每天有一次的快速处理,以及另外两次的慢速通道处理。

对于自媒体博主,只要粉丝量在5000以上就可以申请激活码,免费获得一个月的无限制使用额度。

1. 什么时候需要 AnyRAID·

其实从数据中心角度和家庭用户角度来看,这个问题的思路是不同的。家庭用户希望硬盘可以用的久一些,而数据中心的机械硬盘会定期更换。

对数据中心而言,每三年换一次盘,数据出问题的概率会小很多。

家庭用户普遍希望能用五年以上,这对 RAID 系统来说是非常危险的。AFR 并非是一个静态值,它会随着时间拉长而升高。一旦到后期故障率上来了,均衡磨损导致的连锁崩溃将会是致命的。

话说回来,以 HexOS 为主要推手的 AnyRAID 也在上游进行了积极的开发。AnyRAID 有以下优势:

  1. 允许使用不同容量的磁盘组建 vdev, 而且可以充分利用所有容量。
  2. 比 RAIDZ 更加灵活,而且可以进行数据再平衡。比如后期添加了一些新盘,就能以 mini partition 为基本单位进行数据迁移,在宏观上实现写入平衡。

这对家庭用户来说比较有吸引力。但是我建议各位 ZFS 用户还是不要高兴得太早。一是这个技术进入 TrueNAS 还不知是何年何月,而来这个复杂的块分配模型会很复杂,哪怕达到了理论冗余度,很多块也是不能实现真正的冗余度。

举个简单的例子,有4T,6T,10T的三个盘做 RAID-Z1,理论上只有 8T 可用空间,每个盘的参与度按照最小容量进行计算。如果使用 AnyRAID,在保持 1/2 冗余度的情况下,可以让 4T, 6T 同时和 10T 进行 mirror,因为两个小盘加起来的容量和一个大盘的容量一致。

更抽象地讲,可以把每个盘分割为多个 64GB 的小分区,比如16T 的盘 可以分为 256 个区。然后以小分区为单位构建 RAID-Z,比如有 1024 个小分区,保留八分之一做冗余,就可以实现一个逻辑上的七盘 RAID5. 这在理论上是很现实的,只是要在块分配的时候考虑一下磁盘亲和性,如果两个同raid组的小分区都落在一个物理磁盘上,这样带来的冗余几乎是没有意义的。

就像 K8S Node Affinity,尽量不要让多个 pod 以多副本的形式调度到同一个节点,因为一旦节点挂了,多 pod 副本也挽救不回来。

目前 AnyRAID 的公开参考资料不是很多,貌似也是 HexOS 花钱委托澳大利亚的 Klara System 进行开发。(有钱就是好啊!)

2. 不同于 Unraid·

还有值得说的一点:AnyRAID 与 Unraid 并不一样。

Unraid 是在每个磁盘上使用 XFS/ZFS, 然后利用一个 FUSE 文件系统把所有盘组织起来,看上去像一个大的存储空间。

Unraid 的磁盘分组是以文件为单位。

AnyRAID 是以小分区为单位,因此性能必然比 Unraid 更高,组织模型也要复杂很多。