centos7之btrfs文件系统

btrfs文件系统

BtrfsB-treebutter FSbetter FS

btrfs是centos7默认支持的文件系统,btrfs有着ext系列文件系统之外的众多功能,可是说功能非常强大:

特性

  1、 支持跨物理设备(磁盘分区)创建,数据和元数据分别支持RAID可在线添加、移除、修改等操作

其支持诸多RAID,譬如数据支持raid0,raid1 raid5,raid6,raid10,single 

元数据支持raid0, raid1, raid5, raid6, raid10, single or dup

2写时复制功能其不在原处修改,而是将文件复制一份后对副本修改

3数据及元数据校验机制自身携带有checksum校验码,以确保数据的准确性

4、子卷文件系统中可创建子卷,子卷可以实现文件系统独立的功能

5快照:btrfs支持快照功能以实现数据的备份与访问

6、透明压缩数据保存在硬盘中不是原来的格式保,而是压缩后保存

当然,这样在读写文件时,也增加了系统的压力,繁忙读写操作慎用

23可实现防删除功能

、btrfs文件系统创建

mkfs.btrfs 命令

    -L “label” 指定卷标

    -d|--data <type>:指定数据时如何夸设备存储的

        <type>:raid0,raid1 raid5,raid6,raid10,single


     -m|--metadata <profile> 指定元数据是如何夸设备存储的

         <type> raid0, raid1, raid5, raid6, raid10, single or dup

dup类型是把数据再次备份一份类似于RAID1

-s|--sectorsize <size>

-n|--nodesize <size>

 -U|--uuid <UUID>

    -f |--force  强制写入磁盘一个以存在分区的磁盘中,默认情况下btrfs不会向以有分区的磁盘上写数据

-O <feature> 指定其他特性

-O list-all

wKiom1YU_XfAlyrwAAEk6vWfY2w255.jpg 

三、btrfs是管理btrfs文件系统的命令,其支持众多的子命令

       btrfs-subvolume, btrfs-filesystem,

       btrfs-balance, btrfs-device, btrfs-scrub, btrfs-check,

       btrfs-rescue, btrfs-restore, btrfs-inspect-internal, btrfs-send,

       btrfs-receive, btrfs-quota, btrfs-qgroup, btrfs-replace,

  

btrfs支持子命令嵌套习惯以下将是btrfs的子命令嵌套格式

btrfs filesystem 

            show  --mountd |--all-devices|<path>|<uuid>|<device>|<label>

可查看挂载了的设备|所有设备|指定路径下的设备|指定UUID的设备|定设备名设备|指定卷标的设备

            resize [<devid>:]<size>[gkm]|[<devid>:]max <path>

           Resize a filesystem identified by <path> for the underlying device devid online.

支持在线调整btrfs的大小  也可调整到最大(类似lvm逻辑卷的功能)

大小减小5G显示如下修改是应对其挂载点操作

wKioL1YU_cSi9CRuAAE1QzLCmjE712.jpg

label [<dev>|<mountpoint>] [<newlabel>]

           Show or update the label of a filesystem.显示或更新文件系统的卷标

显示系统中所有btrfs文件系统

 

wKiom1YU_dDCIlALAAEgalQFeiU727.jpg

wKioL1YU_eaw4r_8AADGIElQZKQ265.jpg


也可以指定文件系统譬如

 wKioL1YU_gfiEHfVAADe50v-TLA176.jpg

对设备的操作


btrfs device 命令:在线增添、删除、替换设备

add增添设备 [-Kf] <dev> [<dev>...] <path>

delete删除设备

scan扫描设备

ready所有的设备调整为挂载状态

stats打印指定或所有的IO设备的状态

/dev/sde 添加myfs中其大小变为60G

wKiom1YU_gzjqCYtAAFJgkGw6mA817.jpg 


btrfs balance {start|stop|pause|cancel|resume|status} [option]<path>系统的均衡操作

当前文件系统的数据组成类型转化为其他类型raid各种类型),重建数据chunk类型

    start 

            -d <filters>修改数据的组成格式

            -m<filters>修改元数据的组成格式

            -s  <filters> 修改系统数据的组成格式

            -f  强制转换数据的组成格式

实际生产中数据量很大,需要在空闲调整,过程中可能需要以下参数控制转换过程

            stop <path>    停止转换

            pause   <path>    暂停转换

            cancel   <path> 取消转换

            resume  <path>继续转换

     status <path>显示转换状态

          <filter>   convert 转换


btrfs balance start �Cdconvert=raid5 /media 

myfs文件系统数据的的raid调整为raid5如下,调整raid要遵循raid规则调整,譬如raid5至少3设备等,也可以调整元数据raid级别

wKioL1YU_jyzlASeAAFsbO4J1wA106.jpg 


btrfs subvolume 控制系统创建/列出/显示子卷和快照卷

访问子卷可通过两种方法:1通过父卷访问2通过挂载点访问

create [-i <qgroupid>] <name><dest>   //在dest中创建子卷 ,delete 删除子卷

list<path>列出子卷

            -p  打印父卷ID

            -a打印所有的子卷信息,区分不同的亲疏关心

            -g输出子卷的宗代信息

            -o输出指定路径的子卷

            -u输出子卷的uuid信息

            -q输出父卷的uuid

            -s系统中的快照卷将被打印

            -r系统只读卷被打印


snapshot [-r] <source> <dest>|<name>     //创建一个可写或只读的快照卷

find-new <subvolume> <last_gen>    //列出最近改变过的子卷信息

show<path>显示指定路径的子卷信息


例如:创建子卷myfs_sub

 

wKiom1YU_lWBdxg0AABC_wZ5U3o245.jpg

wKioL1YU_mvAEt9JAABROxxTyjw946.jpg

wKiom1YU_lXyVWqVAACgsGMiwS0845.jpg


卸载父卷,以子卷挂载格式如下

wKioL1YU_qmQjrl0AAAeaQDQ5fk811.jpg

wKiom1YU_pOBi8JAAAFKcU20-CU842.jpg

wKioL1YU_qmgvjBbAAGv9BD1628252.jpg

在父卷时创建的文件重新挂载子卷,仍然存在

wKiom1YU_uvjL_MvAAApqoNXzNo281.jpg 

子卷的删除

wKiom1YU_vziR7bmAADAhQyBL5A666.jpg 

快照卷的实现

wKioL1YU_zegZoIPAAF0Z8c7HTU797.jpg 

注意:

将多个物理设备制作成一个btrfs文件系统时,对其中一个设备的查看、挂载即是对整个文件系统的操作

对一个拥有子卷的文件系统操作时,对父卷挂载,其子卷也将挂载卸载亦然

子卷挂时,其父卷将不能挂载

当制作snapshot卷时,必须将快照卷建立在同一个父卷中!

进行raid转换,或删除设备时,要遵循raid级别,一般不要强制操作

挂载后,一般对挂载点操作!

两外重要的一点是子卷不是目录,而可以当做单独的一个文件系统来使用,例如挂载、卸载等!

 

 


你可能感兴趣的:(linux之btrfs文件系统)