继上次提问关于 Linux kernel 版本的问题得到了很满意的答案之后,再次前来求学,望前辈们一如继往的不吝赐教,感谢!
几个文件系统 XFS,JFS,UFS,EXT4,reiser
说说我的已知情况:
XFS,我印象里特别好,原因是有个山寨 U 盘,不管格式化成 NTFS 还是 fat32,存的文件半年左右就会损坏,用这个文件系统存满文件已经有 2 年多了,完好。
EXT4,在 2016 年以前,老赵告诉我它简单,实用,可靠,但是我发现,新买的 1TB 硬盘,格式化后什么文件都不存,就占用了几十 G 空间,个人估计是用于冗余纠错用的(坏块处理,或日志记录等),而 NTFS,xfs 这些文件系统新格式化的就占用很少。几年过去了,不知道 EXT4 有没有更新,还是说一直保持原来的特性(性能,可靠性这些)?
JFS,UFS 百度了说是商用系统,一般人很少有接触,更是不知道他们到底如何,我想只有在 500 强的大公司工作的内部人士才有可能真正的了解。
reiser,一个停更了的文件系统,据传存小文件很好,曾经看到海蜘蛛软路由软件推荐用它来当文件系统。
本人水平很有限,网上有评测对比,但都是好几年以前的了,自己没能力测试,所以前来请教知情的前辈们!
问题:
1,reiser 的性能如何?可靠性如何?是不是还在 ext3 或 ntfs 的水平?
2,现在的 ext4 与现在的 xfs 相比,哪个性能更好?更可靠?
3,jfs 和 ufs 与 ext4 相比又如何?
4,在超大容量( GB/BP 级数据库)存储下,以及海量文件(上亿个文件)存储下,如果只从以上几个文件系统选择,最推荐使用哪个?
5,大文件( 1G-10G 不等),小文件( 1K-900M )都有,这种混合内容存储下,前辈们最推荐用哪个文件系统?
性能我想大家都理解是什么意思,这里的可靠性是指在突然 /经常断电的情况下,数据损坏的机率,不要推荐加 ups,不在此次的讨论以内。
另外有没有一种磁盘占用少,对 CPU 资源占用少,可安全可靠,性能也不错的文件系统?
这里不说 ZFS 和 Btrfs 两个,因为我觉和他们太过臃肿庞大了。
1
secondwtq 2019-11-20 21:19:22 +08:00 1
第一,不要看百度 ...
你要可靠性,我觉得你应该去找数据,不过我觉得这个数据不好找 因为一般就是”商用“才会统计这种数据,但是”商用“一般不会经常断电,另外”商用“的可靠性也并不是靠文件系统保证,而是靠冗余保证 就算 ZFS,可靠性也不是”只要用了 ZFS“就能保证的( btrfs 倒是能保证用了之后立马丢失可靠性) ReiserFS 不太熟,我只知道有杀朲的功能。 性能数据倒是好找,比如 https://www.phoronix.com/scan.php?page=article&item=linux-40-hdd&num=1 还有很不幸的是,很多情况下我们并没有自由选择文件系统的权利,在选择文件系统时应该考虑平台的支持情况,比如 NTFS、HFS+ 和 APFS 在除本家之外的平台上支持都是渣(这些”本家平台“同时排斥除 FAT 系之外的其他文件系统),Linux 对 UFS 和 JFS 支持都不好,XFS 如果不是 Linux 有支持到现在也是”商用“ FS ( BSD 支持不好) |
2
liang96 2019-11-20 21:23:06 +08:00 via Android
reiserfs 杀手文件系统, 一直在用。
|
3
billlee 2019-11-20 21:30:41 +08:00
根据 phornoix 的评测,xfs 各方面性能都是比 ext4 好的。
www.phoronix.com/scan.php?page=article&item=linux-50-filesystems xfs 作为 centos 的默认文件系统,周边生态也是很完善的,一般无脑选 xfs 就好了。 至于所谓商用系统,除非用小型机 UNIX 全家桶,自己折腾意义不大吧 |
4
love 2019-11-20 21:55:54 +08:00
ext 之类的文件系统 inode 数有限,存大量小文件基本都会 inode 超标(当然在格式化时可以选块大小改 inode 数,但也有别的问题)
而 reiserfs 不限制 inode 数,小文件随便存,可能这是这个文件系统唯一的好处了。 |
5
feather12315 2019-11-20 21:59:07 +08:00 1
1. ext4 默认 journal 是 128M,印象中不随着存储空间大小而改变,但可以手动指定。
2. ext4 格式化后什么文件都不存,就占用了几十 G 空间,这是因为文件系统的 meta data,包括 super block / inode,空间占用主要是 inode 导致的。印象中 inode 默认大小是 256B, 可以在格式化的时候调整大小。 3. ext4 会在开机的时候校验数据,印象中运行时并不会纠错。 4. 当前各大发行版,ext4 是主流。使用得越多 bug 越少。ext4 在不断更新,一直有新 feature 加入。 5. SuSE / RedHat 企业版数据盘印象中默认 xfs。xfs 由 RedHat 支持。 6. SuSE 社区版默认文件系统是 btrfs。btrfs 由 SuSE / Fackbook 在开发、维护。 7. 主流的文件系统,不断添加 feature,向 zfs 靠拢。 |
6
Osk 2019-11-20 22:43:24 +08:00
大磁盘 ext4 格式化一次慢到让我怀疑人生,换 xfs 好多了,而且 xfs 有 Redhat 背书,也是不错的。
另外,我用 btrfs,因为有快照,fs 层次的 raid1,scrub,数据 crc 校验,除了 zfs 外,暂时没有一个 fs 能提供这些 feature,zfs 据说太烧内存,用不起🤣。 所以我个人的选择是:btrfs -> xfs -> ext4 |
7
KENNHI 2019-11-20 22:48:25 +08:00 via Android
xfs 性能在很多项测试里都比 ext4 要好的,还解决了一些 ext4 的问题。如果对 btrfs (不推荐)和 zfs 等“现代化”的文件系统没什么兴趣的话,xfs 其实是最佳选择。
|
8
okudayukiko0 2019-11-20 22:58:13 +08:00 via iPhone
现在 XFS 已替代 EXT4。Red Hat 默认就用 XFS。Reiser 现在好像用 Reiser4。
|
9
Cooky 2019-11-20 23:05:47 +08:00 via Android
mkfs.ext4 -m 0
|
10
lzwt806 OP @liang96 请问前辈,“reiserfs 杀手文件系统”怎么理解?一直在用是用于什么场景?另外它的可靠性,性能如何?
|
11
lzwt806 OP @love “而 reiserfs 不限制 inode 数,小文件随便存,可能这是这个文件系统唯一的好处了。”这句话,我能不能理解为:除此之外,其它方面都很差?
|
12
lzwt806 OP @feather12315 请教前辈:
“4. 当前各大发行版,ext4 是主流。使用得越多 bug 越少。ext4 在不断更新,一直有新 feature 加入。” 是编译了最新的内核就拥有了最新的 ext4 文件系统支持吗?还是说如果我想用最新的 EXT4 文件系统支持,需要使用储如 GParted 分区工具( mkfs.ext4 )来重新建立磁盘分区? 另一个问题是:如果我有个 U 盘是在 2015 年使用 Linux kernel 4.4 格式化为 ext4,那么这个 U 盘即不是最新的 ext4 文件系统,一些新加入的的特性就没有,这种理解对不对? 换个方式问:最新加入 ext4 的 feature 是在内核模块(*.ko )中,还是存在于已经格式化的磁盘中? |
13
lzwt806 OP @Osk btrfs 也适用于我需求?大小文件混存,且数量巨大。另外去年我还看到论坛有人说 btrfs 到 2018 年了还有些 bug,可靠性有待完善,不知这种道听途说是否正确?
|
14
lzwt806 OP @okudayukiko0 “Reiser 现在好像用 Reiser4”,我试过在 GParted 里面格式为 reiser4,能格式化成功,但不能访问,是否还需要其它东西才能找开格式化好的 reiser4 磁盘?
另外 reiser4 的性能已经到什么程度了?能达到 ext4 的性能吗? |
15
salmon5 2019-11-21 08:29:10 +08:00 via Android
ntfs 或 fat32
|
16
love 2019-11-21 08:36:39 +08:00 via Android
@lzwt806 个人用有啥好纠结的,这里每一个通用的文件系统都是无数人在用,你能碰到 bug 的几率几乎没有,性能也是大同小异你根本感觉不出来。
|
18
NG6 2019-11-21 09:41:53 +08:00
btrfs 真的有你们说的不堪么,那群辉为啥还敢作为默认文件系统呢
|
19
VYSE 2019-11-21 10:08:13 +08:00 via Android
ssd 时代追求性能优先 f2fs 和 xfs
|
20
msg7086 2019-11-21 10:43:21 +08:00
|
21
okudayukiko0 2019-11-21 11:04:03 +08:00 via iPhone
@lzwt806 EXT4 模块可能位于 Linux 内核 Image (通常位于 /boot )下,可能位于 InitRAMFS 下(位于 /boot ),也可能位于 /lib 下。
|
22
lzwt806 OP @okudayukiko0 不是这个意思,我是想问:几年前格式的 ext4 分区,是不是就没有最新的 ext4 特性(最近加入的补丁之类)。还是说,更新 linux 就能享受到最新的 ext4 而与什么时候格式化磁盘无关?
|
23
lzwt806 OP @okudayukiko0 再换一种方式问,ext4 的更新提现在磁盘上还是提现在操作系统里面?
|
24
iceecream 2019-11-22 14:29:39 +08:00
mkfs.ext4 -m reserevrd-blocks-percentage
试试 mkfs.ext4 -m0 看看占用 |
25
secondwtq 2019-11-22 19:19:38 +08:00
群晖一个默认连 ECC RAM 都没有的,我是不敢作为参考的。
|
26
ps1aniuge 2019-11-23 21:16:23 +08:00
----------------插楼,同问文件系统类问题,谢谢-------------
假设我的 8tb 硬盘坏了,厂家给我换了一块修复盘,拿到手上机后,这块盘没有分区,在 linux 下, 我如何测试盘 有没有坏块呀?或者如何全盘慢格式化呀? 请给我推荐一个校验(格式化)命令。 实际上,这也适用于 u 盘,存储卡,所以请给我推荐,更通用的命令,谢谢了。 |
27
james122333 2019-11-25 04:48:21 +08:00
reiser 小档案快 jfs 没用过 用过 nilfs 不过不能完全保证正确性
现在不论 ufs 还是 ext4 都已经开机有 fsck 了 算起来还过得去 但还是新世代 fs 好些 虽然做太多事情 有人认为不算是个 filesystem |