Btrfs,也可称为B-tree,Butter FS,Better FS,是CentOS7中一种新型的文件系统。

核心特性:

1.多物理卷支持,可由多个物理卷(pv)组成,支持raid,以联机添加删除

2.支持写实复制(Copy on Write,Cow)

复制一份修改,改好之后用指针替换,出错时指回原本文件。而不是就地修改

3.数据及元数据校验码:checksum

4.子卷:Sub_volume

5.快照,基于写实复制,支持快照的快照,能实现增量快照

6.透明压缩

格式化:

mkfs.btrfs -L LABEL /dev/device1 /dev/device2

mkfs.btrfs

-L            #label

-d     #date,数据保存的类型,raid0,raid5,raid6,raid10,single

-m,metadata  #元数据保存类型 raid0,raid5,raid6,raid10,single,dup(冗余)

-O            #功能选项,特性,在格式化时生效

mkfsbtrfs -O list-all查看支持的格式化选项。

由于不同版本内核可能功能不一样,所以用这个命令查看

用blkid /dev/device1和device2查看信息的时候,两个硬盘的pv的主uuid一样,副uuid不一样

注意:虽然这两个设备是放在一起格式化了,但是并不是子卷的关系。只是将两个硬盘设备格式化成一个btrfs设备

btrfs的子命令以及详细用法介绍

1.filesystem管理命令

btrfs filesystem show                          #显示详细信息

btrfs filesystem df                    #已挂载分区使用状况

btrfs filesystem resize [+?G|max]     #增减容量

btrfs filesystem defragment                    #碎片整理

2.device#添加到已有的挂载点上使用add之后,第二个被添加的就会绑定在一起。

#下一次挂载的时候依然是绑定的,所以要用delete来拆除设备才能分开。

btrfs device add

btrfs device delete

在这里我们可以看见这两块硬盘是独自的btrfs。

我们可以通过device子命令来添加,将两个空的btrfs硬盘合并成一个

合并之后,他们的主uuid一样,副uuid不一样。

容量为两个20G硬盘合并的40G。

3.balance均衡

btrfs balance start    #开始

-mconvert=raid[0,1,5,10] BTRFS_LABEL metadata

-dconvert=raid[0,1,5,10] BTRFS_LABEL data

#convert之类的选项,可以通过man文档中的filter字段查到

btrfs balance pause        #暂停

btrfs balance status        #状态

使用device子命令增加容量后,再使用balance子命令。

可以把文件转移一部分到新的pv上,能为其他硬盘减少读写压力。

假如在格式化的时候没有指定数据和元数据的raid类型,也可以通过balance来修改。

4.subvolume子卷命令

#子卷是什么?举个简单的例子,我们可以想象根目录是一个主卷。而下面的/usr,/bin,/sbin等文件夹都能设置成子卷。

#而需要的时候,可以只挂载子卷。但是如果挂载了主卷,下面的子卷都会全部挂载

#想要单独挂载子卷,而不挂载上级卷的话,要指定id或者label

btrfs volume create 主卷下的挂载点

btrfs volume delete 主卷下的挂载点

snapshot

#注意:创建快照,是对创建快照一个瞬间的状态进行定格。

#也就是说,sub1里面没有文件的时候创建快照的。用快照还原的话,sub1就是个空分区。

#如果sub1里面有一个文件。在创建快照之后,没修改的那一份保留在sub1_snapshot中

#往后如果sub1中的文件遭到多次修改,sub1_snapshot中的数据也不会改变,因为我们做的快照只是这一瞬间的。

#第二次修改的那个瞬间就不管。

例如:我们给空的sub1创建一个sub1_snapshot快照,我们复制进去一个conf配置文件。snapshot子卷下面一点变化也没有

#而我们复制一个issue文件进去,再创建一个快照2的时候,snapshot2里面就会有一个issue文件。

#而这个时候,我们怎么修改sub1内的issue文件,snapshot2的issue文件也不会改变。

#因为快照只对那一瞬间的issue进行了定格。

list BTRFS_LABEL_NAME列出指定btrfs下的子卷及其id

[root@localhost ~]# btrfs subvolume list /media/btrfs/

ID 261 gen 54 top level 5 path sub1

ID 262 gen 53 top level 5 path sub2

ID 263 gen 54 top level 5 path sub1_snapshot

只挂载子卷(假如操作系统是btrfs,如brtfs的/下的子卷是/usr/,/lib等)

mount -o subvolid=ID MOUNT_POINT

对单独文件创建快照

cp –reflink

转换

btrfs-convert EXT4_DEVICEext4转换成btrfs

btrfs-convert -r BTRFS_DEVICE此前为ext4的btrfs转换回ext4

透明压缩机制:

mount -o compress=[lzo|zlib] DEVICE /MOUNT_POINT

由于读写的时候都要压缩,所以要占用CPU来压缩和解压

原创文章,作者:菠菜,如若转载,请注明出处:http://www.178linux.com/13386

linux查看目录是不是btrfs,btrfs文件系统常用命令使用相关推荐

  1. linux查看nbu数据库命令,NBU基本常用命令

    Veritas常用命令: 1. 查看当有运行的任务 bpdbjobs –report | grep Active 2. 停止任务 bpdbjobs –cancel PID (包括主任务和子任务) 3. ...

  2. linux看目录用的哪个磁盘,linux查看目录大小及硬盘大小

    linux查看目录大小及硬盘大小的命令: # du -ks   ---in all # du -k     ---every last du和df命令都被用于获得文件系统大小的信息:df用于报告文件系 ...

  3. Linux 查看目录常用命令

    linux 查看目录常用命令 ls -F |grep "/$" 只显示当前目录下的文件夹 ls -al |grep "^-" 只显示当前目录下的文件 ls -a ...

  4. Linux查看目录大小文件大小内存大小硬盘大小

    Linux查看目录大小文件大小内存大小硬盘大小 Linux运维操作时,需要查看文件大小,以及服务器的可用存储大小. df 命令以磁盘分区为单位查看文件系统 # 查看磁盘剩余空间 df -hl # 查看 ...

  5. 【Linux】查看文件内容的5个常用命令

    前言 不管是在日常工作连接远程服务器中,还是在平时个人电脑使用中(如果使用的Mac OS 或 Linux系统的话),都离不开强大的Terminal终端. 比如,查看远程服务器上的程序运行日志,使用终端 ...

  6. Linux 查看目录下的文件数量

    Linux 查看目录下的文件数量 1 查看当前目录下的文件数量(不包含子目录中的文件) 说明: 2 查看当前目录下的文件数量(包含子目录中的文件) 3 查看当前目录下的文件夹数量(不包含子目录中的目录 ...

  7. linux 查看目录下文件、查看文件具体内容、查看文件夹大小

    linux 查看目录下文件.查看文件具体内容 查看目录下文件 查看文件具体内容 查看文件夹大小 查看文件夹下各文件大小 查看目录下文件 ls 查看目录下所有文件(不包含隐藏文件) ls -a 查看目录 ...

  8. linux指令popd,Linux切换目录pushd、popd、dirs命令

    Linux切换目录pushd.popd.dirs命令 pushd和popd在linux中可以用来方便地在多个目录之间切换,切换目录虽然有一点复杂.在实际中,发现通过使用pushd和popd能够极大地提 ...

  9. (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

  10. linux查看是否有某个运行的进程命令(不包括查询进程这条语句)

    转自:http://www.cnblogs.com/zdz8207/p/3760891.html linux查看是否有某个运行的进程命令:例如,查询是否包含 "my_post" 关 ...

最新文章

  1. 小程序笔记一:基础设置
  2. 每天一道LeetCode-----计算二叉树所有根节点到叶子节点的和
  3. Spring-Cloud中的负载
  4. 什么是四路串口服务器?
  5. 华为云PB级数据库GaussDB(for Redis)揭秘第九期:与HBase的对比
  6. mysql日志输出到syslog_在chroot环境下将MySQL日志输出到syslog
  7. opencv 轮廓层次结构
  8. BZOJ 1878 hh的项链(简单莫队)
  9. FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
  10. opencv基础--特征提取与配准(SIFT系列)
  11. 调用java webservice 报错_java调用webservice方法报错
  12. Halcon 3D 计算3D模型的3D表面法线
  13. web应用微信扫码绑定用户
  14. 在html中加入文本编辑器,富文本编辑器嵌入指定html代码
  15. 解读Android日志
  16. 程序员如何利写代码用抖音帮助自己增加额外收入?
  17. [喵咪软件推荐(1)]全球国家信息库
  18. 世界人工智能大会倒计时30天,这些亮点不容错过
  19. 20181225股市复盘
  20. goland debug Got a connection, launched process /private/var/folders/l9/

热门文章

  1. Linux下更改DNS地址
  2. 我讨厌单元测试:滕振宇谈如何进行单元测试
  3. 为什么我的echarts字体样式这么丑?Echarts 柱状图、饼图 等标签、字体、样式调整
  4. 点球大战中的概率问题
  5. Python常用的基本编程规范
  6. TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
  7. 农商银行计算机岗笔试题,广东农商银行金融科技岗笔试考什么?
  8. Java集合原理分析
  9. 一点点读懂regulator(三)
  10. 在线培训-虚拟演播室嵌入网页直播