0x00 btrfs文件系统简介

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

0x01 btrfs核心特性

#  1、多物理卷支持:支持将多个底层物理设备组织成同一个文件系统,类似VG,btrfs可由多个底层物理卷组成,支持RAID,以联机实现物理卷的"添加、移除、修改"

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

0x02 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]

 

Linux学习笔记之Btrfs 文件系统的更多相关文章

  1. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

  2. Linux 学习笔记 2:文件系统

    1.文件系统层次结构 系统目录内容: /: 根目录(之后的/都是目录分隔符) /home:用户目录 /bin: Unix常用命令,如bash, date, cat, tar等 /sbin: 管理员命令 ...

  3. Linux学习笔记—文件与文件系统的压缩与打包(转载)

    压缩文件的用途与技术 例如,计算机都是以byte单位来计量的,1byte占8bit.如果存储数字1,那么1byte就会空出7bit.采用一定的计算方式,压缩这些空间可以大大降低文件存储. Linux系 ...

  4. Linux学习笔记-文件系统和基本命令

    目录 分区设备文件名 分区 挂载 文件目录 文件处理命令 目录处理命令 硬件设备文件名 IDE硬盘 /dev/hd[a-d] USB硬盘 /dev/sd[a-p] 光驱 /dev/cdrom或者/de ...

  5. Linux学习笔记(一) 文件系统

    对于每一个 Linux 学习者来说,了解 Linux 文件系统的结构是十分有必要的 因为在 Linux 中一切皆文件,可以说只有深入了解 Linux 的文件系统,才会对 Linux 有更深刻的理解 L ...

  6. deepin linux学习笔记

    目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...

  7. linux学习笔记2 - linux常用命令

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...

  8. Linux 学习笔记之超详细基础linux命令 Part 10

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...

  9. Linux 学习笔记之超详细基础linux命令 Part 9

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...

随机推荐

  1. mysql 多条数据中,分组获取值最大的数据记录

    摘要: 多条纪录中,几个字段相同,但是其中一个或者多个字段不同,则去该字段最大(这里只有一个不同) 源数据: 目的是移除:在同一天中只能存在一天数据,则取审核日期最大,数据库脚本如下: SELECT ...

  2. SwitchGame---MybatisPLus

    //实体类package com.example.spring.entity; import cn.afterturn.easypoi.excel.annotation.Excel;import cn ...

  3. 'root'@'localhost'不能登录问题

    鉴于我在遇到这个问题时,在网上搜索到几十个答案都是进行更改密码解决该问题,然并没有卵用.最后还是让小编找到了解决方法,希望大家遇到该问题时能够节省时间.解决方法如下:   #mysql -u root ...

  4. lua 根据路径获取文件名

    require "lfs" function dirpath(path) for file in lfs.dir(path) do -- lfs.dir 根据路径获取该路径下的文件 ...

  5. pg 数据库操作

    一.pg数据库修改操作 Insert into table (key) values (value) on conflict(主键) do update set key=value; 修改的 valu ...

  6. 前端性能优化 css和js的加载与执行

    一个网站在浏览器端是如何进行渲染的? html本身首先会被渲染成 DOM 树,实际上 html 是最先通过网址请求过来的,请求过来之后,html 本身会由一个字节流转化成一个字符流,浏览器端拿的就是字 ...

  7. java String 常用方法

    String方法 class CeShi{ public static void main(String[] args) { //toCharArray char chararraryone[]=&q ...

  8. PAT 乙级 1091.N-自守数 C++/Java

    题目来源 如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3,而 2 的末尾两位正好是 9,所以 9 是一个 3-自守数. 本题就请你编写程序判断 ...

  9. 关于selectpicker的多选问题

    刚开始拿到这个需要求的时候,我时很没有头绪的,再前期做的时候是将这个多选的作为一个数组,传入到后端,然后再插入数据库中,然后根据关系表查询,因为但是考虑显示的问题,不知道怎么将多选的数据显示出来,我就 ...

  10. 【MyEclipse异常】更换工作空间无法启动的异常