V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lzwt806
V2EX  ›  Linux

请教 XFS, JFS, UFS, EXT4, reiser 几个文件系统的问题

  •  
  •   lzwt806 · 2019-11-20 20:57:07 +08:00 · 8958 次点击
    这是一个创建于 1832 天前的主题,其中的信息可能已经有所发展或是发生改变。

    继上次提问关于 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 两个,因为我觉和他们太过臃肿庞大了。

    28 条回复    2020-06-08 17:03:25 +08:00
    secondwtq
        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 支持不好)
    liang96
        2
    liang96  
       2019-11-20 21:23:06 +08:00 via Android
    reiserfs 杀手文件系统, 一直在用。
    billlee
        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 全家桶,自己折腾意义不大吧
    love
        4
    love  
       2019-11-20 21:55:54 +08:00
    ext 之类的文件系统 inode 数有限,存大量小文件基本都会 inode 超标(当然在格式化时可以选块大小改 inode 数,但也有别的问题)
    而 reiserfs 不限制 inode 数,小文件随便存,可能这是这个文件系统唯一的好处了。
    feather12315
        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 靠拢。
    Osk
        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
    KENNHI
        7
    KENNHI  
       2019-11-20 22:48:25 +08:00 via Android
    xfs 性能在很多项测试里都比 ext4 要好的,还解决了一些 ext4 的问题。如果对 btrfs (不推荐)和 zfs 等“现代化”的文件系统没什么兴趣的话,xfs 其实是最佳选择。
    okudayukiko0
        8
    okudayukiko0  
       2019-11-20 22:58:13 +08:00 via iPhone
    现在 XFS 已替代 EXT4。Red Hat 默认就用 XFS。Reiser 现在好像用 Reiser4。
    Cooky
        9
    Cooky  
       2019-11-20 23:05:47 +08:00 via Android
    mkfs.ext4 -m 0
    lzwt806
        10
    lzwt806  
    OP
       2019-11-21 08:10:20 +08:00
    @liang96 请问前辈,“reiserfs 杀手文件系统”怎么理解?一直在用是用于什么场景?另外它的可靠性,性能如何?
    lzwt806
        11
    lzwt806  
    OP
       2019-11-21 08:11:34 +08:00
    @love “而 reiserfs 不限制 inode 数,小文件随便存,可能这是这个文件系统唯一的好处了。”这句话,我能不能理解为:除此之外,其它方面都很差?
    lzwt806
        12
    lzwt806  
    OP
       2019-11-21 08:16:50 +08:00
    @feather12315 请教前辈:
    “4. 当前各大发行版,ext4 是主流。使用得越多 bug 越少。ext4 在不断更新,一直有新 feature 加入。”
    是编译了最新的内核就拥有了最新的 ext4 文件系统支持吗?还是说如果我想用最新的 EXT4 文件系统支持,需要使用储如 GParted 分区工具( mkfs.ext4 )来重新建立磁盘分区?

    另一个问题是:如果我有个 U 盘是在 2015 年使用 Linux kernel 4.4 格式化为 ext4,那么这个 U 盘即不是最新的 ext4 文件系统,一些新加入的的特性就没有,这种理解对不对?

    换个方式问:最新加入 ext4 的 feature 是在内核模块(*.ko )中,还是存在于已经格式化的磁盘中?
    lzwt806
        13
    lzwt806  
    OP
       2019-11-21 08:19:40 +08:00
    @Osk btrfs 也适用于我需求?大小文件混存,且数量巨大。另外去年我还看到论坛有人说 btrfs 到 2018 年了还有些 bug,可靠性有待完善,不知这种道听途说是否正确?
    lzwt806
        14
    lzwt806  
    OP
       2019-11-21 08:21:53 +08:00
    @okudayukiko0 “Reiser 现在好像用 Reiser4”,我试过在 GParted 里面格式为 reiser4,能格式化成功,但不能访问,是否还需要其它东西才能找开格式化好的 reiser4 磁盘?

    另外 reiser4 的性能已经到什么程度了?能达到 ext4 的性能吗?
    salmon5
        15
    salmon5  
       2019-11-21 08:29:10 +08:00 via Android
    ntfs 或 fat32
    love
        16
    love  
       2019-11-21 08:36:39 +08:00 via Android
    @lzwt806 个人用有啥好纠结的,这里每一个通用的文件系统都是无数人在用,你能碰到 bug 的几率几乎没有,性能也是大同小异你根本感觉不出来。
    agagega
        17
    agagega  
       2019-11-21 09:24:39 +08:00 via iPhone
    @lzwt806 说 Reiser 是杀手不是因为作者杀老婆吗(
    NG6
        18
    NG6  
       2019-11-21 09:41:53 +08:00
    btrfs 真的有你们说的不堪么,那群辉为啥还敢作为默认文件系统呢
    VYSE
        19
    VYSE  
       2019-11-21 10:08:13 +08:00 via Android
    ssd 时代追求性能优先 f2fs 和 xfs
    msg7086
        20
    msg7086  
       2019-11-21 10:43:21 +08:00
    @NG6 为什么不去问问群辉呢。当年红帽主推 btrfs,你看看他现在为啥回去用 1993 年出的 XFS 了。

    @love 碰到 Bug 几率少,但是碰到异常损坏的概率可就高得多了。

    @lzwt806 #11 Reiser 是一个很先进的文件系统家族,处理小文件的速度远超其他家,没有太多明显的问题,Reiser4 主要还是因为作者被判刑了所以没得发展了。
    okudayukiko0
        21
    okudayukiko0  
       2019-11-21 11:04:03 +08:00 via iPhone
    @lzwt806 EXT4 模块可能位于 Linux 内核 Image (通常位于 /boot )下,可能位于 InitRAMFS 下(位于 /boot ),也可能位于 /lib 下。
    lzwt806
        22
    lzwt806  
    OP
       2019-11-21 11:25:46 +08:00 via Android
    @okudayukiko0 不是这个意思,我是想问:几年前格式的 ext4 分区,是不是就没有最新的 ext4 特性(最近加入的补丁之类)。还是说,更新 linux 就能享受到最新的 ext4 而与什么时候格式化磁盘无关?
    lzwt806
        23
    lzwt806  
    OP
       2019-11-21 11:28:09 +08:00 via Android
    @okudayukiko0 再换一种方式问,ext4 的更新提现在磁盘上还是提现在操作系统里面?
    iceecream
        24
    iceecream  
       2019-11-22 14:29:39 +08:00
    mkfs.ext4 -m reserevrd-blocks-percentage
    试试 mkfs.ext4 -m0 看看占用
    secondwtq
        25
    secondwtq  
       2019-11-22 19:19:38 +08:00
    群晖一个默认连 ECC RAM 都没有的,我是不敢作为参考的。
    ps1aniuge
        26
    ps1aniuge  
       2019-11-23 21:16:23 +08:00
    ----------------插楼,同问文件系统类问题,谢谢-------------
    假设我的 8tb 硬盘坏了,厂家给我换了一块修复盘,拿到手上机后,这块盘没有分区,在 linux 下,
    我如何测试盘 有没有坏块呀?或者如何全盘慢格式化呀?
    请给我推荐一个校验(格式化)命令。
    实际上,这也适用于 u 盘,存储卡,所以请给我推荐,更通用的命令,谢谢了。
    james122333
        27
    james122333  
       2019-11-25 04:48:21 +08:00
    reiser 小档案快 jfs 没用过 用过 nilfs 不过不能完全保证正确性
    现在不论 ufs 还是 ext4 都已经开机有 fsck 了 算起来还过得去
    但还是新世代 fs 好些 虽然做太多事情 有人认为不算是个 filesystem
    ACEonly
        28
    ACEonly  
       2020-06-08 17:03:25 +08:00
    @lzwt806 2019 年 10 月,我就炸過一次,那時候對 BTRFS 失去信心
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.