近日,研读RHCE 8教程,才知道Red Hat Enterprise Linux 8,早在2017年,RHEL就已经决定义无反顾地要喜新厌旧,甩掉旧爱Btrfs。我突然意识到,我对这个Btrfs还不太熟悉。她谁呀?
Btrfs,据小道消息说,是一个缩写,由better file system缩写而来。专业的读音是“better fuss”(注2)。又有人说,Btrfs是B-tree file system的缩写,2007年由Oracle公司开发专用于Linux操作系统的文件系统,2013年趋于稳定,使用的是copy-on-write机制。参与开发的公司有(注3):
- Fujitsu
- SUSE
- Oracle
- Fusion-IO
- Intel
- Linux Foundation
- Red Hat
- STRATO AG
Btrfs不需要fsck,有问题自己解决。它能管理卷、管理RAID。也就是说,要实现这三个功能,仅Btrfs就能搞定。Btrfs文件系统,是一种底层管理机制,在磁盘上对文件进行保存、移动、删除、改名、复制、搜索、权限管理等操作。
Facebook、Google、OpenSUSE支持Btrfs?它与ZFS功能相近,关注的问题也差不多。修改文件的时候,大部分文件系统都是在现有文件的基础上修改,Btrfs就不,它直接制作一份拷贝,在拷贝里修改。修改完成后将文件名链接到这份新拷贝上。这个过程被称为copy-on-write,也就不需要写日记了。也得益于此,Btrfs的许多功能,如快照,更加顺畅好用。Btrfs最值得夸耀的功能是,它不但能管理多个存储设备,还能创建RAID磁盘阵列。Btrfs集卷管理器、RAID管理器及文件系统三大功能于一身,管理文件系统更简单。
总的来说,Btrfs有三大功能:
1)RAID,支持RAID 0、RAID 1、RAID 5、RAID 6、RAID 10
2)Copy-on-Write,支持数据的快照及版本化管理。
3)子卷,这是Btrfs的卷内卷,支持快照、克隆、挂机、导出、导入等。
Btrfs这么好,居然还被红帽抛弃。RHEL这个死男人,会喜欢什么样的女人呢?据我所知,RHEL的女人,一直以来都娶的是ext家族的姑娘,什么ext2、ext3、ext4呀的,用过早期版本Linux的朋友肯定不会陌生。看来这RHEL真不是个好东西,一直在喜新厌旧。从RHEL 7开始,又有一位名叫XFS的文件系统上位,作了正房夫人。有知情人说,这位XFS姿色平平:
- 没有原生的数据摘要功能,或者没有ECC纠错码(error correcting code)功能,让人不禁怀疑它是否会在不知不觉之间发生“位腐烂”
- 没有压缩功能
- 不能对卷减容
- 在没有外部工具协助时,不能对卷做快照
- 不能冻结I/O
不过XFS的娘家曾经声名赫赫。1987年由SGI公司开发的操作系统IRIX上,XFS则出生于1994年,在超算和服务器表现出色。这可能也是红帽大力推荐她的主要原因。另外,XFS也并非是个绣花枕头,她的优化并行I/O技术,以及超常的稳定性及高效的运行速度,在众多文件系统中,表现不俗。
上图:Stratis的用户视角和系统内部结构,来源:红帽RHCE 8培训教材
另外,跟XFS一起陪嫁的丫环Stratis,不但完全弥补了XFS的不足,提供更丰富的高级功能。Stratis有如下功能:
- copy-on-write
- 磁盘空间的精简置备Thin Provision
- 支持RAID 0、RAID 1、RAID 10
- 支持全盘加密如LUKS
- 支持资源池,每池可创建 16,777,216( 2^24)个文件系统或文件夹
- LZ4压缩
- 文件的消除重复功能
- 子卷
- 快照
- 数据损坏的自愈功能
- 热扩容、热减容
- 为提升性能而进行存储分区:数据区和缓存区(与VMWare VMFS 6相同,与Glusterfs的热区、冷区类似)
这个丫环这么闪亮,坊间已经有人谣传,Stratis就是RHEL 的下一任正房夫人。
参考来源:
1、https://fossbytes.com/red-hat-deprecate-btrfs-filesystem-stratis/
2、https://en.wikipedia.org/wiki/Btrfs
3、https://btrfs.wiki.kernel.org/index.php/Contributors
4、https://fossbytes.com/btrfs-filesytsem-linux-the-best-thing-since-sliced-bread/
5、https://stratis-storage.github.io/faq
6、https://www.marksei.com/red-hat-deprecates-btrfs-stratis/