最近准备给旧笔记本重新安装系统,想尝试下xfs做root,有没有人尝试过?
我主力用的还是ext4,折腾过btrfs,但还是回到ext4。
没有在arch下安装过xfs文件系统,需要做什么额外配置吗?还是像ext4那样安装就行了?
最后一个问题,你们觉得xfs可以替代ext4吗?
离线
有。没什么特别的地方。
离线
建立XFS时要加上 -m bigtime=1 选项 --> 64bit timestamp, 装载XFS时要去掉 attr2 属性。
XFS和EXT4都很老了, 除了稳定之外没有btrfs和ZFS那么多功能;
XFS和EXT4也各有各自的优点, 替代谈不上。
离线
64位时间戳竟然没有默认么?
离线
我两年前用的时候还没有默认, 现在我也不清楚。
最近编辑记录 twobooks (2023-04-18 00:31:30)
离线
arch 到 5.15 内核,才在 xfs 格式化时默认启用 big timestamps 。不确定的话,格式化完成后运行 xfs_info 挂载分区 来查看,输出 bigtime=1 即启用了 big timestamps ,例如:
xfs_info / | grep bigtime
如果硬盘是NVMe SSD, 默认参数下的 ext4 和 xfs 察觉到的区别是,ext4 分区根目录下有 lost+found 文件夹,xfs 根目录很干净;运行 df -i ,可看到 XFS inode 数量远大于 ext4 。
在性能上,两者日常使用感觉不到区别,但如果手动修改参数,可能 ext4 的性能会好一点,比如开启 fast_commit 、noatime、加大 commit 间隔时间,日志模式改为 writeback 等。
离线
5.15 是挺早的了。
性能上的话,不跑数据库没发觉有啥区别。跑数据库的话,xfs 并发性能更好,而 ext4 容易卡 jbd2 的 I/O 上。
离线
5.10 内核后,EXT4 格式时开启 fast commit 应该可以缓解数据库高并发导致的频繁同步 jbd2 卡 I/O 问题,可是需要重新格式化分区,而且稳定性也不好说,phoronix 跑文件系统性能对比测试时,都看不到启用 fast commit 这个参数的。
离线
phoronix 那个测试有啥用啊,都没个使用场景的。他们测 btrfs 上的数据库都不关 CoW 的。
离线
不过我没查到 fast commit 参数呀。
离线
嗯,phoronix 上的 btrfs 部分测试是有些让人看不懂,数据库测试时不关CoW,还启用了 discard 。archwiki 上说,在 linux 6.2 里 btrfs 默认开启 discard ,导致一些用户报告磁盘一直处于工作状态,还得想办法 workaround 。
https://wiki.archlinux.org/title/Btrfs# … e_activity
ext4 虽然在选项中提供了 discard ,但默认不启用,xfs 干脆就在 manpage 声明不支持 discard 选项,想启用 TRIM 功能,通过 systemd 的 fstrim 实现。
至于 fast_commit ,archwiki 有简单提到:
https://wiki.archlinux.org/title/Ext4#E … ilesystems
LWN 上的介绍:
https://lwn.net/Articles/842385/
简单点说,fast commit 就是在 jbd2 外加一个轻量级低延迟日志实现方案,如果有该方案处理不了的情况,则转回到 jbd2 。
aliyun 上有篇文章给出了启用 fast commit 前后的 ext4 性能测试:
https://developer.aliyun.com/article/834488#slide-2
离线
ext4 方便,主要是有时候双系统,为了取文件用diskgenius可以读取ext4分区。xfs 就不认了!其他的更加不认,所以一直保持ext4
离线