zoukankan      html  css  js  c++  java
  • 文件系统:Ext3和Ext4

    一.ext3和ext4的区别:
    1.与Ext3兼容:执行若干条命令,就能将Ext3在线迁移到Ext4,而无须重新格式化磁盘或者重新安装系统。原有Ext3数据结构照样保留,
    Ext4作用于新数据,当然,整个文件系统因此也就获得了Ext4所支持的更大容量。
    2.更大的文件系统和更大的文件:与Ext3目前所支持的最大16TB文件 系统的最大2TB文件相比,Ext4分别支持1EB的文件系统和16TB的文件。
    3.无限的子目录:Ext3目前只支持32000个子目录,而Ext4支持无限数量的子目录。
    4.Extents:Ext3采用间接块映射,当操作打文件的时候,效率极其低下。而Ext4引入了现代文件系统流行的Extents概念,每个extent为一组
    连续的数据块,提高了不少的效率。
    5.多块分配:当写入数据到Ext3文件系统的时候,Ext3的数据块分配器每次只能分配一个4KB的块,而Ext4支持一次调用分配多个数据块。
    6.延迟分配:Ext3的数据块分配策略是尽快分配,而Ext4的策略是延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘,这样就能
    优化整个文件的数据块分配。
    7.快速fsck:Ext3执行fsck的时候需要去检查所有的inode,而Ext4将每个组的inode表中都添加了 一份未使用的inode列表,Ext4文件系统就可以
    跳过它们而去检查那些在用的inode。
    8.日志校验:Ext4的日志校验功能可以很方便的判断日志数据是否损坏。日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中
    恢复数据会导致更多的数据损坏。
    9.“无日志”模式:Ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。
    10.在线碎片整理:尽管延迟分配、多块分配和extents能有效减少文件系统的碎片,但碎片还是不可避免会产生。Ext4支持在线碎片整理,
    并将提供e4defrag工具进行个别文件或整个文件系统的碎片整理。
    11.inode相关特性:Ext3默认的inode大小为128字节,Ext4为了在inode中容纳更多的扩展属性,默认的inode大小为256字节,还支持快速扩展
    属性和inode保留。
    12.持久预分配:P2P软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时之内磁盘不足
    导致失败。Ext4在文件系统层面实现了持久预分配并提供相应的API,比应用软件自己实现更有效率。
    13.默认启用barrier:磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写commit记录,
    若commit记录在先,而日志有损坏,那么就会影响数据完整性。Ext4默认开启barrier,只有当barrier之前的数据全部写入磁盘,才能写barrier之后的数据。
    二.将文件系统从ext3升级为ext4:
    1.测试场景:
    查看文件系统
    # df -T
    Filesystem     Type      1K-blocks    Used  Available Use% Mounted on
    /dev/vda1      ext4       41151808 5729784   33308592  15% /
    devtmpfs       devtmpfs    1933380       0    1933380   0% /dev
    tmpfs          tmpfs       1941700       0    1941700   0% /dev/shm
    tmpfs          tmpfs       1941700   25000    1916700   2% /run
    tmpfs          tmpfs       1941700       0    1941700   0% /sys/fs/cgroup
    /dev/vdb       ext3     1056763060  278452 1002781136   1% /data
    tmpfs          tmpfs        388340       0     388340   0% /run/user/0
    现在需要将/dev/vdb升级为ext4
    2.查看ext4特征是否激活:
    #tune2fs -l /dev/vdb | grep extent
    执行上述命令若没有返回值,说明/dev/vdb的ext4特征没有被激活,解决办法就是将文件系统升级为ext4
    3.安装所需软件:
    #yum -y install e2fsprogs
    4.文件系统升级转换:
    a.取消当前需要升级的磁盘的挂载:
    #umount /dev/vdb
    b.升级磁盘到ext4:
    #tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/vdb
    c.修改转换文件系统错误:
    #e2fsck -fDC0 /dev/vdb -y
    d.修改/etc/fstab中的开机检测
    #vi /etc/fstab
    添加:
    /dev/vdb /data ext4 defaults 0 0 
    e.重新对磁盘进行挂载:
    #mount -t ext4 /dev/vdb /data
    f.检测是否升级成功:
    #df -T
    Filesystem     Type      1K-blocks    Used  Available Use% Mounted on
    /dev/vda1      ext4       41151808 5729784   33308592  15% /
    devtmpfs       devtmpfs    1933380       0    1933380   0% /dev
    tmpfs          tmpfs       1941700       0    1941700   0% /dev/shm
    tmpfs          tmpfs       1941700   25000    1916700   2% /run
    tmpfs          tmpfs       1941700       0    1941700   0% /sys/fs/cgroup
    /dev/vdb       ext4     1056763060  278464 1002781124   1% /data
    tmpfs          tmpfs        388340       0     388340   0% /run/user/0
  • 相关阅读:
    创建Azure虚拟机之Azure Portal方式
    Windows平台启动与关闭Azure虚拟机
    Linux文件操作命令
    vue中使用图片裁剪cropperjs
    Linux权限管理之基本权限
    设计模式6大原则之【迪米特原则】
    设计模式6大原则之【接口隔离原则】
    设计模式6大原则之【单一职责原则】
    sql中的join
    Redis学习之:Redis的使用和优化
  • 原文地址:https://www.cnblogs.com/kasumi/p/6090085.html
Copyright © 2011-2022 走看看