BT文件系统:btrfs
一、Btrfs(B-tree,butter FS,better 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、透明压缩:数据保存在硬盘中不是原来的格式保存,而是压缩后保存
当然,这样在读写文件时,也增加了系统的压力,繁忙读写操作慎用
2、3可实现防删除功能
二、文件系统创建
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
三、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显示如下,修改是应对其挂载点操作
label[<dev>|<mountpoint>] [<newlabel>]
Show or update the label of afilesystem.显示或更新文件系统的卷标
显示系统中所有btrfs文件系统
也可以指定文件系统譬如
对设备的操作
btrfs device
在线增添、删除、替换设备
add 增添设备 [-Kf] <dev> [<dev>...]<path>
delete 删除设备
scan 扫描设备
ready 将所有的设备调整为挂载状态
stats 打印指定或所有的IO设备的状态
将/dev/sde 添加至myfs中其大小变为60G
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级别
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
卸载父卷,以子卷挂载,格式如下
在父卷时创建的文件重新挂载子卷时,仍然存在
子卷的删除
快照卷的实现
note:
当将多个物理设备制作成一个btrfs文件系统时,对其中一个设备的查看、挂载即是对整个文件系统的操作。
当对一个拥有子卷的文件系统操作时,对父卷挂载时,其子卷也将挂载,卸载亦然
当子卷挂载时,其父卷将不能挂载
当制作snapshot卷时,必须将快照卷建立在同一个父卷中!
当进行raid转换,或删除设备时,要遵循raid级别,一般不要强制操作
当挂载后,一般对挂载点操作!
子卷不是目录