btrfs 文件系统

简介

  Btrfs((B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。继ext3/4文件系统之后linux又有了比较强大的文件系统(btrfs文件系统),btrfs文件系统不仅可以将ext3/4系列的升级为btrfs文件系统也可以将其降级为ext3/4的文件系统,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。而且btrfs文件系统还具有快照,内建磁盘阵列(RAID)支持,支持子卷等功能,允许在线调整文件系统大小,更为“嚣张”的是btrfs文件系统还支持快照的快照。突破了之前的一些文件系统。 

一 btrfs核心特性

    1.多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;

    2.写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新;

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

    4.子卷:sub_volume,子卷实质上是一个保存文件和目录的命名的B树。它们的inode保存在树根之树中,可以为非根用户和组所有。子卷可选设定块配额。子卷内的所有块和      文件区段都有引用计数以便做快照。和虚拟机存储的动态扩展相似,其只按需使用设备空间,消除了许多半满的分区。用户也可用不同的挂载选项挂载子卷,得到更灵活的      安全性。

    5.快照:支持快照的快照;命令:btrfs subvolume snapshot

    6.透明压缩:分区里的每个文件都被自动压缩,不仅减小了文件的大小,还提高了性能。

    7.Btrfs支持在线碎片整理。命令: btrfs filesystem defragment


二 btrfs 常见命令以及一些命令的子命令

    

1.文件系统创建:

命令:mkfs.btrfs

   选项:-L 'LABEL'    #设置卷标

      -d< type>: raid0, raid1, raid5, raid6, raid10, single    #设置raid级别

      -m< profile>: raid0, raid1, raid5, raid6, raid10, single, dup

      -O< feature>

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

     

2.文件系统命令管理,包括卷标管理,文件系统大小调整,及碎片管理

命令:btrfs filesystem< subcommand> <args>

btrfs filesystem 

          show :  属性查看

          df :   查看挂载点的可使用空间

          label : 设置器卷标

          resize: 动态调整btrfs大小

3.挂载文件系统:

命令:mount -t btrfs /dev/sdb MOUNT_POINT

 

4.透明压缩机制:

命令:mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

 

5. 管理子卷和快照命令

命令:btrfs subvolume< subcommand> [<args>]

btrfs subvlome :

         Create:   创建子卷

         Delete:   删除子卷

         List:    列出子卷

         show:    显示子卷的详细信息

         syn:     同步内存上的数据到磁盘上

6.设备管理命令

命令:btrfs device< subcommand> <args>

btrfs device:

         add :     添加设备

         delete :  删除设备

         raid label:设置raid级别

 

7.块组均衡管理

命令:btrfs [filesystem] balance <subcommand>|<args>

btrfs balance :(原有的数据移动一部分到新增的物理卷上)

         start: 启用balance

         pause: 停止balance

         cancle:取消balance 

         status:查看balance状态

8.btrfs subvolume snapshot   创建快照卷

三 btrfs管理及应用

  1. 新增2块20磁盘 dev/sdb与/dev/sdc

    blob.png

  2. 创建btrfs文件系统和显示btrfs文件系统

  mkfs.btrfs -L 'mytest' /dev/sdb /dev/sdc

    blob.png

  blob.png

3.挂载文件系统

 mkdir /mytest/

 mount -t btrfs /dev/sdb /mytest/

 blob.png

3.建立子卷轴

btrfs subvolume create /mytest/mydata

cp -r /etc/grub2.cfg /mytest/mydata/

blob.png

btrfs subvolum show /mytest/mydata/

blob.png

4.删除子卷

blob.png

5.扩展文件系统

blob.png

6.重新均衡文件系统

blob.png

7.移除硬盘设备

btrfs device delete /dev/sdb /mytest/

blob.png

8.修改数据或元数据的RAID级别

btrfs filesystem df /mytest/

btrfs balance start -mconvert=raid5 /mytest/

blob.png

9.创建快照

btrfs subvolume snapshot /mytest/mydata/ /mytest/mydata_snapshot

blob.png

我们还能在一般的文件系统和btrfs文件系统之间转换:

btrfs-convert /dev/sdd1       COMMENTS: 一般文件系统转换成btrfs文件系统;

btrfs-convert -r /dev/sdd1     COMMENTS:btrfs文件系统转换回一般文件系统。

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

(0)
liangkailiangkai
上一篇 2016-02-19 10:34
下一篇 2016-02-22 23:21

相关推荐

  • vsftp的使用(土著篇)

        这个vsftp本地用户登录模式(简称土著)配置方法论坛网站有一堆堆的,都是默认的东西,就那么多也写不出什么花来。     还是直接上酸菜好了,接着上回提到的vsftp的接着用,首先查看下你vsftp的配置情况。      这是上次匿名用户的配置,稍微得改一改。 配置本地用户登录的配…

    2017-07-30
  • LINUX下用户管理命令简述

    LINUX下用户管理命令简述 添加用户并设置密码 useradd [用户名] 创建用户 [root@localhost ~]# useradd jack [root@localhost ~]# cat /etc/shadow | grep jack jack:!!:17257:0:99999:7::: passwd [用户名] 设置密码 [root@loca…

    Linux干货 2017-04-05
  • linux中用ACL实现灵活的权限管理

    ACL是什么?? ACL英文原意是Access Control List(访问控制列表).它能够实现灵活的权限管理,除了文件的所有者,所属组和其他人,设置相应的权限外,ACL允许你给任何用户或是用户组设置任何文件/目录的访问权限(注意的是有些不支持数字模式的权限给定) ACL有什么用?? 作为UGO权限管理的补充,acl有GUO办不到或者是难以办到的功能 &…

    Linux干货 2016-08-05
  • 用户 组 和权限 以及权限的 分类

    关于文件的安全我们要从3A验证 说起     1  Authentication:认证      2  Authorization:授权      3  Accouting|Audition:审计 由于系统文件的用户太多为了便于管理 我们便把系统的用…

    系统运维 2016-08-04
  • bash数据类型探秘

    数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的在调用变量时最好加双引号,对于字符串中含有空格等字符的能更好的调用集合。数组名和索引索引:编号从0开始,属于数值索引( 偏移量从默认0开始 )注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引, bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引…

    Linux干货 2016-08-24
  • Http协议中的各种长度限制总结

    HTTP1.0的格式 request(HTTP请求消息)结构:一个请求行.部分消息头,以及实体内容,其中的一些消息内容都是可选择的.消息头和实体内容之间要用空行分开. GET /index.html HTTP/1.1 //请求头,下面都是消息头.Accept: */*Accept-Languang:en-usConnection:keep-aliveHost…

    Linux干货 2015-04-04

评论列表(1条)