• Btrfs 文件系统


    btrfs文件系统简介
      btrfs文件系统:技术预览版(Centos7)
      Btrfs(B-tree、Butter FS、Better FS),GPL授权,Orale2007提出是想用来取代Ext文件系统

     核心特性:
      1、多物理卷支持:支持将多个底层物理设备组织成同一个文件系统,类似VG,btrfs可由多个底层物理卷组成,支持RAID,以联机实现物理卷的"添加、移除、修改"
      2、写时复制更新机制(CoW):复制、更新及替换指针,而非"就地更新"
        不修改文件时,复制的文件无文件内容,指针仍指向原文件的数据
        修改文件时,不立即修改源文件,而是将源文件复制一份,对新生成的复制文件进行修改,然后把文件名指向新生成的复制文件,源文件保留,方便数据恢复.
        写时复制特性(Cow)
        cp --reflink (只能在btrfs文件系统中使用)
      3、数据及元数据校验码机制:存储每个文件时,把文件的元数据的校验码和数据的校验码,通过文件的属性扩展保存下来.访问文件时,通过扫描校验码,可快速判断文件是否受损一旦受损,自动尝试修复极大保证数据的可靠性
      4、支持子卷(sub_volume):在某卷上创建诸多子卷,每个子卷可以实现单独使用和挂载
      5、快照:基于写时复制机制,比lvm的快照,增加了差异(增量)快照,可以对快照的进行快照.完成对快照后的文件改变进行再次快照.
      6、透明压缩机制:在这个分区上存储文件想节约空间,可以把任何数据流发往btrfs文件系统上,自动周期完成数据压缩存放,用户感知不到,读取时自动解压缩.但会消耗cpu的时钟周期

    btrfs文件系统使用:
      卷创建:
      mkfs.btrfs [options] <device> [<device>...]
      -L 'Label'  设置卷标
      -d <data-profile>  指明数据存储类型{raid0,raid1,raid5,raid6,raid10, single(单文件), dup(冗余)}
      -m<metadata-profile>  指明元数据存储类型{raid0,raid1,raid5,raid6,raid10, single, dup}
      -O<feature>  在格式化时指明开启的特性
        -O list-all  列出所有支持的feature

      属性查看:
      btrfs filesystem show 此处命令在下面的btrfs中有
      列出当前文件系统中的btrfs,并显示信息
      加上<DEVICE>将显示指定设备的信息

      挂载:
      mount [–t btrfs] /dev/sdb MOUNT_POINT
      -t可选可不选
      以 /dev/sdb 做btrfs系统示例

      透明压缩机制:
      解释:在写入时自动压缩, 读取时自动解压; [un]compress过程对用户隐藏
      mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
        lzo、zlib压缩算法

      btrfs命令、子命令、子子命令:
      btrfs filesystem
        show  查看所有btrfs系统信息
        df <MOUNT_POINT>  查看已挂载具体空间使用情况
       resize<MOUNT_POINT>  联机/在线更改大小,减小容量 修改有风险, 操作需谨慎

      btrfs device
        btrfs device add <NEW_DEVCIE> <MOUNT_POINT>添加一个磁盘到挂载点
        btrfs device delete <OLD_DEVCIE> <MOUNT_POINT>删除一个磁盘到挂载点

      btrfs-balance 均衡负载
        btrfs balance start <MOUNT_POINT> 开始均衡负载过程
        state 查看均衡进度
        pause 暂停
        resume 继续
        cancel 取消
      负载均衡将会消耗很大一部分的系统性能, 仅建议在不忙时操作; 可使用pause暂停;
      btrfs balance start -mconvert=<profile> <MOUNT_POINT> 修改raid级别
        <profile>:raid0, raid1, raid10, raid5, raid6, dup,single
        -dconvert 数据区 data blocks
        -mconvert 元数据区 metadata chunks
        -sconvert 系统区 system chunks (requires -f)

      btrfs-subvolume 子卷
      挂载子卷:
        mount -o subvol=' ' /dev/DEVICE MOUNT_POIN
        #先查看待挂载的subvolume的id
        # btrfs subvolume list /mnt/btrf
          ID 256 gen 9 top level 5 path su
          或者通过路径挂载也可以
      list   显示所有子卷
      create 创建子卷
      delete 删除子卷
      注意:delete子卷不会真正删除物理卷上的数据, 如需要可使用-c
      snapshot
        btrfs subvolume snapshot /MOUNT_POINT/SUB /MOUNT_POINT/SUB_snapsho

      btrfs-convert 转换其他格式到btrfs
      btrfs-convert </dev/DEVICE> 转换其他fs到btrfs
        -r 回滚到原来的fs
      命令注意:
      btrfs命令操作对象为挂载后的挂载点,操作非设备文件/dev/sd[a-z]

  • 相关阅读:
    C语言丨二维数组常用的4种表示方法
    据说程序员最怕命名!这个 6300 Star 的手册能帮上忙
    C语言基础丨(六)程序结构——分支(选择)结构【2】
    系统管理员应该知道的 20 条 Linux 命令!越早学会越好!
    憋不住了!这8 个 MySQL 陷阱,我不得不说一下...
    记录一次@Around使用不正确造成的StackOverflowError
    【java基础】为何e1==(e1=e2)为false
    《Java程序性能优化》subString()方法的内存泄露
    【爬虫】花瓣采集下载器
    SpringMVC容器加载流程总结
  • 原文地址:https://www.cnblogs.com/Link-Luck/p/9856887.html
Copyright © 2020-2023  润新知