btrfs文件系统:技术预览版(centos7)

描述:

Btrfs(B-tree,Butter FS,Better fs),GPL授权,Orale,2007

写实复制特性(Cow)

cp --reflink (只能在btrfs文件系统中使用)

想取代ext系统系统,

支持非常大文件,文件检查,快照,增量快照,快照单个文件,支持raid功能 lvm功能.

已经有企业在生产环境中使用btrfs

核心特性:

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

2写时复制更新机制(CoW):复制,更新及替换指针,而非"就地更新"

不修改文件时,复制的文件无文件内容,指针仍指向原文件的数据

修改文件时,不立即修改源文件,会对目标文件进行备份,对备份文件进行修改,把文件名指向,由源文件改为备份文件,源数据保留,方便数据恢复.

3.数据及元数据校验码机制:存储每个文件时,把文件的元数据的校验码和数据的校验码,通过文件的属性拓展保存下来.访问文件时,通过扫描校验码,可快速判断文件是否受损.一旦受损,自动尝试修复.极大保证数据的可靠性

4.支持子卷(sub_volume):在某卷上创建诸多子卷,每个子卷可以实现单独使用和挂载

5.快照:基于写时复制机制,比lvm的快照,增加了差异(增量)快照,可以对快照的进行快照.完成对快照后的文件改变进行再次快照.

6透明压缩机制:在这个分区上存储文件,,想节约空间,可以把任何数据流发往btrfs文件系统上,自动通过某些占据cpu的时钟周期完成数据压缩存放,用户不知道.读取时自动解压缩.但消耗cpu的时钟周期.

使用:

1.创建btrfs文件系统

mkfs.btrfs命令:

mkfs.btrfs [OPTINOS]

-L 'LABEL':指明卷标

-d  :指明数据存储类型

raid0,raid0,raid5,raid6,raid10,single

-m :指明元数据存储机制(底层物理存储设备空间够用)

raid0,raid0,raid5,raid6,raid10,single(单个文件) or dup(冗余)

-O :在格式化,指明其他特性

-O list-all:列出支持的所有feature:

创建意义:基于分区,btrfs文件系统既然支持raid0,raid0,raid5,raid6,raid10 ,把btrfs创建在不同磁盘不同分区有意义吗?

不打算使用raid0,raid0,raid5,raid6,raid10具有冗余能力的磁盘io能力外,可以简单使用多个磁盘组合起来成为一个大分区使用,那么在不同磁盘不同分区创建并无意义.

btrfs filesystem命令:

show:

sync:

df:查看

defragmenting:

resize:

label:指明或显示卷标

管理物理卷(btrfs处于使用挂载状态)

1.添加新的物理卷

dtrfs device

dtrfs device add /dev/sd# /mntdate

2.把原有的数据均衡到新的物理卷

btrfs-balance:start(开始),cancel(暂停),resume(继续),status(状态)

btrfs balance start /mydate

3.移除物理卷

btrfs文件系统移除物理卷,会在操作前,自动移走要移除物理卷里的数据,可直接执行移除命令.

btrfs divice delete

btrfs divice delete /devsdb /mydate

需要改数据的raid级别

btrfs balance start -mconvert=raid5 /mntdate

创建子卷

btrfs subvolume create /挂载点/子卷名

实战:

1.创建

[root@w7 ~]# mkfs.btrfs -L btrfs /dev/sde /dev/sdf (磁盘不分区,直接格式化)

[root@w7 ~]# btrfs filesystem show  查看btrfs

Label: 'btrfs'  uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd

Total devices 2 FS bytes used 112.00KiB

devid    1 size 20.00GiB used 2.03GiB path /dev/sde

devid    2 size 20.00GiB used 2.01GiB path /dev/sdf

btrfs-progs v3.19.1

[root@w7 ~]# blkid /dev/sde   两个磁盘UUID一样

/dev/sde: LABEL="btrfs" UUID="c1e91916-3ab1-40a5-a1b4-b41c11abfbfd" UUID_SUB="a7cd116c-fa7d-44f8-9763-892f2c9549d3" TYPE="btrfs"

[root@w7 ~]# blkid /dev/sdf   两个磁盘UUID一样

/dev/sdf: LABEL="btrfs" UUID="c1e91916-3ab1-40a5-a1b4-b41c11abfbfd" UUID_SUB="53bcfb31-fe56-4cdb-a987-ac9a9d7b41fd" TYPE="btrfs"

[root@w7 ~]# mkdir /mntdate

[root@w7 ~]# mount -t btrfs /dev/sde /mntdate/   使用两个磁盘中的任何一个

2.缩减

mount /dev/sde /mntdate/                缩减必须在挂载的情况下

btrfs filesystem show /mntdate             查看btrfs的磁盘情况

btrfs filesystem resize -10G /mntdate    减10G

btrfs filesystem show /mntdate            查看btrfs的磁盘情况,并没有更改

btrfs filesystem df /mntdate            查看btrfs的各磁盘情况,并没有更改

df -h                                    看当前系统下的挂载磁盘情况,查看btrfs的整体磁盘大小 变30G

3.扩展(必须在物理磁盘的空间范围内,如想继续扩大,需添加新的物理卷)

[root@w7 ~]#mount /dev/sde /mntdate/ 操作必须在挂载的情况下

[root@w7 ~]#btrfs filesystem show /mntdate 查看btrfs的磁盘情况

[root@w7 ~]# btrfs filesystem resize +5G /mntdate

Resize '/mntdate' of '+5G'

[root@w7 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 59G 1.8G 57G 3% /

devtmpfs 480M 0 480M 0% /dev

tmpfs 489M 0 489M 0% /dev/shm

tmpfs 489M 6.8M 483M 2% /run

tmpfs 489M 0 489M 0% /sys/fs/cgroup

/dev/sda1 197M 111M 87M 57% /boot

tmpfs 98M 0 98M 0% /run/user/0

/dev/sde 35G 18M 28G 1% /mntdate

[root@w7 ~]# btrfs filesystem resize max /mntdate 直接调整为最大

Resize '/mntdate' of 'max'

[root@w7 ~]# df -h 查看文件系统的空间大小为40

Filesystem Size Used Avail Use% Mounted on

/dev/sde 40G 18M 38G 1% /mntdate

4.添加新的物理卷

dtrfs device

dtrfs device add /dev/sd# /mntdate

[root@w7 ~]# btrfs device add /dev/sdb /mntdate

/dev/sdb appears to contain a partition table (dos).

Use the -f option to force overwrite.

[root@w7 ~]# btrfs device add -f /dev/sdb /mntdate

[root@w7 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 59G 1.8G 57G 3% /

devtmpfs 480M 0 480M 0% /dev

tmpfs 489M 0 489M 0% /dev/shm

tmpfs 489M 6.8M 483M 2% /run

tmpfs 489M 0 489M 0% /sys/fs/cgroup

/dev/sda1 197M 111M 87M 57% /boot

tmpfs 98M 0 98M 0% /run/user/0

/dev/sde 120G 18M 56G 1% /mntdate

2.原有数据均衡到新的物理卷

[root@w7 ~]# btrfs balance start /mntdate

Done, had to relocate 5 out of 5 chunks

[root@w7 ~]# btrfs filesystem show

Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd

Total devices 3 FS bytes used 1.13MiB

devid 1 size 20.00GiB used 1.03GiB path /dev/sde

devid 2 size 20.00GiB used 2.00GiB path /dev/sdf

devid 3 size 80.00GiB used 2.03GiB path /dev/sdb

btrfs-progs v3.19.1

3.移除物理卷

[root@w7 ~]# btrfs filesystem show

Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd

Total devices 3 FS bytes used 1.13MiB

devid 1 size 20.00GiB used 1.03GiB path /dev/sde

devid 2 size 20.00GiB used 2.00GiB path /dev/sdf

devid 3 size 80.00GiB used 2.03GiB path /dev/sdb

btrfs-progs v3.19.1

[root@w7 ~]# btrfs device delete /dev/sdb /mntdate 移除物理卷

[root@w7 ~]# btrfs filesystem show

Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd

Total devices 2 FS bytes used 1.45MiB

devid 1 size 20.00GiB used 1.28GiB path /dev/sde

devid 2 size 20.00GiB used 1.28GiB path /dev/sdf

btrfs-progs v3.19.1

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

linux分区btrfs,系统基础之Btrfs文件系统详解相关推荐

  1. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  2. 红帽linux 系统日志,RedHat系统常见的日志文件详解一

    RedHat系统常见的日志文件详解一 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息.% @7 h7 s, Y5 z! V' h- ...

  3. linux ps mysql_linux系统中ps指令使用详解

    在linux系统作为和unix和ubuntu相同的系统,ps指令经常被用到查看程序进程的状态,但是这个指令具体怎么用您会吗?本文就以centos为例,结合项目中服务器的实际应用,给大家讲解下ps指令的 ...

  4. Linux(centos)系统各个目录的作用详解

    转自:Linux(centos)系统各个目录的作用详解 现在公司的服务器使用CentOS系统,在网上找到了这篇介绍linux各个目录的文章,觉得十分不错,所以拿来存个档. 整理之后如下: 文件系统的类 ...

  5. Linux的shutdown关机命令,Linux系统Shutdown命令定时关机详解

    转自:http://www.bootf.com/490.html Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执 ...

  6. linux dstat 监控软件,Linux 全能系统监控工具dstat的实例详解

    全能系统监控工具dstat dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品.dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项, ...

  7. Linux系统上hdparm工具参数详解,硬盘检查、测速、设定和优化

    Linux系统上hdparm工具参数详解,硬盘检查.测速.设定和优化 2012/07/25 hdparm, 硬盘 Linux命令相关 1 6,757 hdparm的功能:显示与设定硬盘的参数.hdpa ...

  8. Linux系统常用命令及其使用详解大全

    Linux系统常用命令及其使用详解大全 整理了linux常用的命令,最长常用的也就几十个,cd,ls ,vi等等,有些容易忘记,经常拿出来看看. 其他的可以推荐一个网站,https://www.lin ...

  9. 【Linux系统编程】vfork() 函数详解

    00. 目录 文章目录 00. 目录 01. vfork函数 02. fork和vfork区别 03. 父子进程地址空间 04. 附录 01. vfork函数 函数分析 #include <sy ...

  10. 【Linux系统编程】fork()函数详解

    00. 目录 文章目录 00. 目录 01. 进程创建函数 02. 父子进程结构 03. 父子进程地址空间 04. 附录 01. 进程创建函数 #include <sys/types.h> ...

最新文章

  1. 机器学习入门(19)— 卷积网络 CNN 的简单实现
  2. golang byte转string_golang系列——实战http服务器
  3. Dubbo 源码分析 - 集群容错之 Cluster
  4. 6条策略提高mysql查询速度 潇湘博客
  5. Socket 客户端的断开重连
  6. mac mysql
  7. ssh(Spring+Spring mvc+hibernate)——DeptController.java
  8. expect() php,Linux expect 的安装
  9. sync.Map 源码学习
  10. sap权限激活_SA*P 自定义权限对象
  11. android联系人源码分析,android 联系人源码分析 新字段的添加流程
  12. android学习笔记---35_Intent意图,深入解剖
  13. 语言 蜗牛爬树问题_趣数课堂:小学奥数蜗牛爬井问题,再加一只乌龟,你算不出来了吧...
  14. 文章三 国家助学贷款-还款
  15. docker部署kafka踩坑
  16. 【AWVS】python调AWVS接口 新建扫描并导出扫描报告 [自定义扫描报告](三)
  17. 使用网络监视器(IRSI)捕捉和分析协议数据包
  18. 正睿csp七连day3
  19. SingleShot姿态估计部署教程
  20. 【神经网络学习】鸢尾花分类的实现

热门文章

  1. 山东理工ACM【1009】Elevator
  2. B端硬件产品需求评审
  3. android蓝牙开启的通知,Android蓝牙LE通知的问题
  4. pyecharts 旋转折线图的X轴标签
  5. 体系结构学习笔记一:硬件动态调度算法介绍以及基于Verilog的Tomasulo实现
  6. Android 手机震动功能实现
  7. 听吐的微信提示音终于能改了
  8. 领导力21法则 非常不错
  9. 火影Vulcan笔记本金钢T1安装Win7系统图文教程
  10. 天行健,君子以自强不息;地势坤,君子以厚德载物的解释