zoukankan      html  css  js  c++  java
  • XFS vs EXT4

    ceph默认的文件系统是XFS,centos7之前的版本默认文件系统是EXT4,现在是XFS,这里对比了一下,然后针对4k大小的随机读写进行了小小的测试。

    前言

    Linux操作系统有很多不同的文件系统选择,所有现有的默认文件系统都是ext4。 通常文件系统被用来处理当程序不再使用信息之后如何保存信息,如何管理信息的可访问性,其他信息(元数据)与数据本身如何相关联等。

    EXT4

    Ext4是第四代扩展文件系统的缩写,它是2008年推出的。它是一个真正可靠的文件系统,它几乎在过去几年的大部分发行版中一直是默认选项,它是由比较老的代码生成的。它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。如果系统崩溃,得益于journal技术,文件系统很少会损坏。

    最大单个文件大小可以从16 GB到16 TB
    最大文件系统大小为1EB(exabyte)
    最大值包含64,000个子目录(ext3中的32,000个)

    XFS

    XFS是由SGI为其IRIX平台设计的高性能64位日志文件系统。 XFS具有各种改进,使其能够在文件系统群体列表中脱颖而出,例如用于元数据操作的日志记录,可扩展/并行I / O,挂起/恢复I / O,在线碎片整理,延迟性能分配,等等

    大概在2002年,XFS被合入Linux内核,2009年RHEL Linux版本5.4使用了XFS文件系统。 由于其高性能,架构可扩展性和鲁棒性,XFS一直是很多企业系统的首选,特别是拥有大量数据的企业系统。 现在,RHEL / CentOS 7和Oracle Linux使用XFS作为其默认文件系统。

    最大单个文件大小可以是16 TB到16 Exabytes
    最大文件系统大小为8EB(exabyte)
    缺点:XFS文件系统不能缩小,当删除大量文件时会性能下降。

    更多对比

    • ext4不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。xfs也不能压缩,XFS 是基于B+ Ttree 管理元数据,即将支持reflink, dedupe等高级特性。
    • Ext4受限制于磁盘结构和兼容问题,可扩展性和scalability不如XFS。
    • 虽然Ext4 目录索引采用了Hash Index Tree, 但是依然限制高度为2。
    • 由于历史磁盘结构原因Ext4 的inode 个数限制(32位数)最多只能有大概40多亿文件。而且Ext4的单个文件大小最大只能支持到16T(4K block size) ,目前来说已经是瓶颈。XFS使用64位管理空间,文件系统规模可以达到EB级别。

    性能测试

    测试了一下4k随机读写的性能,direct=1,numjobs=20,iodepth=128

    磁盘信息

    1
    2
    3
    4
    Disk /dev/sdc1: 4000.8 GB, 4000785104896 bytes, 7814033408 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

    测试数据

    文件系统4k-randread4k-read4k-randwrite4k-write
    XFS iops=426 iops=42773 iops=313 iops=24732
    EXT4 iops=430 iops=41636 iops=315 iops=19095

    在4k这个量级上IOPS基本没啥区别,4k随机写XFS略好于EXT4。

    性能方面的对比:ext3,ext4,xfs和btrfs文件系统性能对比

    常用命令

    Taskext3/4XFS
    Create a file system mkfs.ext4 or mkfs.ext3 mkfs.xfs
    File system check e2fsck xfs_repair
    Resizing a file system resize2fs xfs_growfs
    Save an image of a file system e2image xfs_metadump and xfs_mdrestore
    Label or tune a file system tune2fs xfs_admin
    Backup a file system dump and restore xfsdump and xfsrestore

    通用工具

    Taskext4XFS
    Quota quota xfs_quota
    File mapping filefrag xfs_bmap

    文件系统之间更多的参数和功能的对比:Comparison of file systems

  • 相关阅读:
    面向对象课程第三次博客总结
    面向对象课程多线程总结
    23种设计模式整理
    java中synchronized与lock的理解与应用
    关于MySQL查询优化
    mysql操作规范建议
    Linux中实体链接与符号链接详解
    获取本地ipv4地址方法(go语言)
    分库分表与负载均衡的一致性hash算法
    golang闭包的一个经典例子
  • 原文地址:https://www.cnblogs.com/lcword/p/14468898.html
Copyright © 2011-2022 走看看