@吃瓜的瓜 大佬给了个科普+工业界的一些现状,我来讲讲家庭NAS上的ZFS吧。
ZFS功能众多,性能巨强,基本上你想得到的一个文件系统该有的能力他都有,Snapshot,多盘聚合,明明是一个挺老的项目,但是就算是放在2022年,能跟ZFS打的文件系统也屈指可数。
ZFS有几个缺陷:一个是以前linux对ZFS的支持不太好,就算是在今天,也不是什么发行版本都能boot from ZFS,没有Btrfs在linux世界中的普及度和受支持程度高,但是今天随着OpenZFS的日益发展在快速改善中。第二个就是老生常谈的内存占用问题,ZFS基本上推荐配置是1TB硬盘搭配1GB内存给他做缓存,意味着一个16TB的NAS需要16GB的内存(哭泣,Gen8总共就16GB内存),虽然搭配了内存之后那个读写的体验真的是爽到飞起,但是奈何内存真的没那么宽裕。
大家可能不太能感同身受这两个问题是多难受,我举个我之前用ZFS的例子吧。我当时是选择ESXi作为基础系统,然后直通4块硬盘给到虚拟的FreeNAS。因为大部分人都习惯把软件装在Linux上,所以我又虚了一个Linux使用了FreeNAS给出来的NFS服务。但是FreeNAS至少得吃掉一半内存,就导致之后虚拟各种捉襟见肘,最终选择放弃这个方案,而直接使用CentOS作为基础系统了。而我最近又一次重新搭建虚拟平台,RAID10+ESXi+debian,然后debian上直接用ext4,整个基础设施占用的内存不到6G还送一个debian上可以跑不少东西,对比之下,如果是为了ZFS而去选择FreeNAS,在我的使用场景下非常不合适。
当然在今天了,完全可以使用Linux基础系统情况下去使用ZFS,这个方案就完全是另外一回事了。或者完全可以接受大部分服务用FreeNAS来配置,不使用一个Linux操作平台来做二次转发,那ZFS占用很多内存占了也就是占了,也完全OK。
总结一下,我的意见:ZFS很强大,如果能接受实现它的成本,比如对操作系统的绑定,对内存的占用,非常值得使用。虽然我自己现在选择RAID苟活,RAID10+图形化的硬盘替换指导界面,出啥事直接换硬盘。