提起文件系统,有一定系统安装经验的朋友肯定不陌生。Windows常见的FAT16/32、ExFAT、NTFS、GPT,Liunx常见的EXT4,苹果Mac OS的APFS……不过,今天给大家介绍的这个文件系统——Btrfs,居然被很多NAS品牌推荐为最佳文件系统类型,为什么?
提起文件系统,有一定系统安装经验的朋友肯定不陌生。Windows常见的FAT16/32、ExFAT、NTFS、GPT,Liunx常见的EXT4,苹果Mac OS的APFS……不过,今天给大家介绍的这个文件系统——Btrfs,居然被很多NAS品牌推荐为最佳文件系统类型,为什么?
先进但普及慢的文件系统
Btrfs 是一种现代的写时复制(COW)Linux 文件系统,致力于实现一些高级功能,同时着重于容错性、修复性以及易于管理性。
Btrfs是B-Tree File System的缩写,由Oracle公司于2007年设计并使用,最早在Solaris系统中得到应用。2013年进入Linux内核稳定发布。目前SUSE Linux Enterprise Server和Fedora Linux 33版以后的版本,都将其用作安装系统时默认的文件系统。
Btrfs的强大之处,在于实现了很多先进特性的同时,还保持了很高的容错能力、可扩展性以及可靠性。
这个新一代文件系统给引入了许多新概念:多子卷(多个独立的内部文件系统根目录)、写时复制(COW),从文件系统层面接管了压缩、RAID、用户配额等功能,以后还有在线文件去重、加密等新功能。
对普通用户来说,这结束了“文件系统里只有文件和文件夹”的时代,通过子卷的概念,你不仅可以决定启动时候加载什么操作系统,甚至可以自行选择启动时加载什么驱动——每次都可以选不一样的,大大方便了折腾党。
同样地,RAID管理功能是内置在这个文件系统内核中的,不再依赖BIOS、操作系统,直接支持基于软件的 RAID 0、RAID 1、RAID 10 等。
对于备份来说,它可以不拷贝完整文件就制作出文件的快照备份。同时无需第三方软件,直接支持高效增量备份
对于数据安全来说,它具有自我修复能力,能够自动检测静默数据损坏。
对于SSD来说,默认开启TRIM/Discard,并针对SSD有特别优化,例如,避免不必要的针对机械硬盘的寻道优化,来更大的写入操作和更快的写入吞吐量。
还有更多的、较为复杂和专业优势,这里就不赘述了。
那么,为什么群晖之类NAS领导品牌,希望大家采用这个文件系统呢?
Btrfs用于NAS的优势
在NAS 上实施 Btrfs 卷可为用户带来各种好处。例如:
元数据镜像功能和更高的数据可用性
在任何存储系统中,保持元数据完好无损都至关重要,因为元数据包括文件夹结构、文件名、访问权限和每个文件的位置等重要信息。
而Btrfs 会在卷上存储两份元数据,以便在硬盘损坏或出现坏道时恢复数据。
文件自愈功能
传统的存储系统可能会出现完全未被察觉的错误,从而导致向应用程序提供损坏的数据,且没有任何警告或错误信息。为了避免这类错误,Btrfs 为数据和元数据提供校验和(checksum)功能,生成两份元数据副本,然后在每次读取过程中验证校验和。
一旦发现不匹配(静默数据损坏),Btrfs 文件系统就能自动检测带镜像元数据的损坏文件(静默数据损坏),并使用支持的 RAID 卷(包括 RAID 1、RAID 5、RAID 6、RAID 10、F1 和 SHR)恢复损坏的数据。
一个群晖NAS在共享文件夹选项中打开了校验和文件自愈功能
快照和数据保护
Btrfs 文件系统引入了强大的快照功能,允许你创建整个共享文件夹的时间点副本。这样,如果人为失误导致数据库丢失或损坏,就可以快速将数据恢复到捕获快照的前一个时间点。
在不影响性能的情况下,Btrfs最多每 5 分钟自动创建一次时间点数据副本,确保进行精细的数据备份和恢复。还能根据个人需求,每小时、每天或每周最多可保留 256 个恢复点。智能保留选项可自动删除不需要的版本。
而且由于 Btrfs 的写时复制(COW)架构,拍摄快照只需消耗少量额外存储空间(不像windows的系统还原点功能几乎是全盘镜像),对系统性能影响很小。
磁盘IO性能的大幅度提升
曾经有网友测试基于Debian系统的网络云盘在采用不同的文件内系统时的磁盘性能,发现采用Btrfs后简直是“遥遥领先”:zstd 压缩节省出了 25-50% 的磁盘空间,同时显著提高了机械硬盘和 U 盘等低速设备的 IOPS速度。
还有其他好处让用户选择Btrfs吗?
有!比如:
更高效的存储效率,与NAS常用的ext4 文件系统相比,Btrfs 不需要双倍的存储空间来存储 Drive 的文件版本和历史数据。用户可以在使用驱动器时保留文件的历史版本,而不必担心占用过多存储空间。
以及备份数据的一致性更高:传统的备份方法需要时间将数据从一个地方复制到另一个地方,如果文件在备份过程中被修改,可能会导致数据不一致。Btrfs 解决了这个问题,它在备份过程开始前拍摄快照,然后将快照数据复制到备份目的地,无需担心文件被修改、移动或删除。
另外,共享文件夹也能根据用户不同,设定不同的配额,这对于团队工作或者家庭使用都具有非常实用的意义。
真的完美无缺了吗?
不然。即时Btfrs文件系统有这么多好处,但是也要注意其中的一些问题。
例如,Btrfs 对 RAID 5 和 RAID 6 模式的支持曾经存在致命缺陷,DSM7.0就因为忽略了这一点没有从系统上进行相应修改,导致很多用户在构建或者转换Btrfs文件系统RAID卷的时候掉数据——虽然这个问题在Linux圈很早就被发现并提供过解决方案。因此在Btrfs上采用不多见的RAID5/6模式时需要谨慎。
目前,在群晖的DMS系统中,已经支持(并且群晖官方提倡用户使用)Btrfs文件系统,而在基于Liunx的软路由系统中,也越来越多支持用户转换文件系统为Btrfs了。
来源:钛师父