BT文件系统:btrfs

一、BtrfsB-treebutter FSbetter FS

这是一个变态的文件系统。包含有ext系列文件系统所不具备的诸多功能:

特性

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

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

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

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

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

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

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

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

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

23可实现防删除功能

二、文件系统创建

mkfs.btrfs

         -L“label” 指定卷标

         -d  <type>:raid0,raid1raid5,raid6,raid10,single

                   可在创建时直接指明以什么RAID级别来创建数据

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

                   在创建时直接指明以什么RAID级别来创建元数据

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

         -O <feature>指定其他特性

                   -O list-all

 BT的文件系统btrfs_btrfs         

三、btrfs文件系统的信息的整体操作

                  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的大小  也可调整到最大

将大小减小5G显示如下,修改是应对其挂载点操作BT的文件系统btrfs_btrfs_02

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

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

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

 

BT的文件系统btrfs_btrfs_03BT的文件系统btrfs_btrfs_04

 

也可以指定文件系统譬如

BT的文件系统btrfs_btrfs_05

对设备的操作

btrfs device

         在线增添、删除、替换设备

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

delete       删除设备

scan          扫描设备

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

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

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

BT的文件系统btrfs_btrfs_06

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 转换

         btrfsbalance start –dconvert=raid5 /media

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

BT的文件系统btrfs_btrfs_07

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

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

                            create[-i <qgroupid>] <name><dest>

                                               dest中创建子卷

delete 删除子卷             

                            list<path>列出子卷

                                     -p  打印父卷ID

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

                                     -c     

                                     -g      输出子卷的宗代信息

                                     -o      输出指定路径的子卷

                                     -u      输出子卷的uuid信息

                                     -q      输出父卷的uuid

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

                                     -r      系统中的只读卷将被打印

                            snapshot[-r] <source> <dest>|<name>

                                               创建一个可写或只读的快照卷

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

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

创建子卷myfs_sub

BT的文件系统btrfs_btrfs_08

BT的文件系统btrfs_btrfs_09

BT的文件系统btrfs_btrfs_10

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

BT的文件系统btrfs_btrfs_11

BT的文件系统btrfs_btrfs_12

BT的文件系统btrfs_btrfs_13

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

BT的文件系统btrfs_btrfs_14

子卷的删除

BT的文件系统btrfs_btrfs_15

快照卷的实现

BT的文件系统btrfs_btrfs_16

note

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

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

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

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

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

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

子卷不是目录