热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Btrfs文件系统

btrfs文件系统简介btrfs文件系统:技术预览版(centos7)btrfs(b-tree、butterfs、betterfs),gpl授权,orale2007提出是想

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] [...]
  -l 'label'  设置卷标
  -d   指明数据存储类型{raid0,raid1,raid5,raid6,raid10, single(单文件), dup(冗余)}
  -m  指明元数据存储类型{raid0,raid1,raid5,raid6,raid10, single, dup}
  -o  在格式化时指明开启的特性
    -o list-all  列出所有支持的feature

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

  挂载:
  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   查看已挂载具体空间使用情况
   resize  联机/在线更改大小,减小容量 修改有风险, 操作需谨慎

  btrfs device
    btrfs device add 添加一个磁盘到挂载点
    btrfs device delete 删除一个磁盘到挂载点

  btrfs-balance 均衡负载
    btrfs balance start 开始均衡负载过程
    state 查看均衡进度
    pause 暂停
    resume 继续
    cancel 取消
  负载均衡将会消耗很大一部分的系统性能, 仅建议在不忙时操作; 可使用pause暂停;
  btrfs balance start -mcOnvert= 修改raid级别
    :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 转换其他fs到btrfs
    -r 回滚到原来的fs
  命令注意:
  btrfs命令操作对象为挂载后的挂载点,操作非设备文件/dev/sd[a-z]

 



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
author-avatar
若_时光倒影
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有