前言
之前考虑过的方案有FreeNAS、OpenMediaVault、unRAID,根据实现冗余的方式不同我是比较倾向于用FreeNAS和unRAID,但这些都有令我不太满意的缺点。
对比
FreeNAS
因为我是随着存储量增加慢慢购买硬盘的我很穷,所以组完RAIDZ后不能随便加减硬盘这点不行。其次这种阵列只要你损坏大于冗余数量就整个阵列完蛋了这不是废话吗,主要我是捡的二手服务器盘来做存储,买来的都是差不多同一批型号,损耗时长也差不多,一起炸的风险也增加了。所以我的思考模式是,默认会发生最糟糕的情况,损坏超过冗余后,用哪种方法才能拿出更多的剩余数据。基于此我更偏向于unRAID和SnapRAID这种不做阵列的冗余方法。
unRAID
其实没什么大的缺点,最大的缺点就是要钱。一想到买正版的钱就能买好几个硬盘,我就。。。虽然有破解版,但还是算了吧。其次我不是单独组一台NAS,我是想在我平常用的电脑上做数据的冗余。而unRAID不能作为一个软件来使用,要么你在宿主机系统开个虚拟机装unRAID,要么用unRAID做宿主机系统All in One。这两种我都不想弄,直通好麻烦,而且硬件又不一定支持很是蛋疼。不过如果我是另外单独组一台NAS的话,unRAID是我的最优选。
OpenMediaVault
没什么好讲的,感觉就是debian套个皮,想要什么功能都可以自己折腾。 明确需求
SnapRAID
使用简单,1个执行文件+1个配置文件,多平台。
基于目录级别的冗余,1块已有数据的硬盘不需要清空或格式化,不影响已有数据。不会对数据进行条带化存储,数据盘可以单独打开操作,不像RAID不组成阵列就无法读取数据。
配置灵活,数据盘和校验盘可随意加减。
冗余能力强,最多可以配置6块校验盘家用非外界因素同时坏7块你能买彩票了吧。即使损坏超过冗余,只要剩下的数据盘没坏就可以单独读写数据。
基于快照这一特性,你还可以恢复误删文件,类似于回滚的感觉。而且因为是基于目录,所以你可以在一个数据盘里分别存放需要冗余的数据和不需要冗余的数据,在同一个检验盘分别存放检验数据和其它数据。
说了优点自然也是有缺点的,在下次同步前期间新增的数据无法受到保护,不适合数据频繁变动的存储场景。因为SnapRAID不是实时的,如果在下次同步前硬盘损坏,而你在此之间又修改过数据的话,因为检验文件没有更新就不能完整恢复数据了。
结论
基于以上因素考虑这些NAS系统并不适合我,给我的感觉太重了,我需要更轻量的一个工具,而不是一个系统,最终我选择在Windows系统上用SnapRAID来对数据盘进行冗余。