BTRFS是一种功能强大的新型文件系统,下面我们来了解一下它的特性及常用操作
核心特性:
多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;
写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新;
数据及元数据校验码:checksum检测完整性
子卷:sub_volume
快照:支持快照的快照;
透明压缩:存储时执行压缩操作,并且支持不解压查看,节省空间
案例流程:
- 创建BTRFS:
使用mkfs.btrfs
-L ‘LABEL‘:指定LABEL创建文件系统
-d <type>: 指明数据的跨磁盘存放形式,用于提升IO效率或数据安全性,支持raid0, raid1, raid5, raid6, raid10, single
-m <profile>: 指明元数据的跨磁盘存放形式,用于提升IO效率或数据安全性,支持raid0, raid1, raid5, raid6, raid10, single, dup
-O <feature>:指明开启某些文件系统特性
-O list-all: 列出支持的所有feature;
2.BTRFS文件系统的使用
支持诸多子命令来实现它强大的功能
创建btrfs文件系统:
查看:
查看label:
使用blkid查看,发现sdb1和sdc1的UUID一样,SUB_UUID不一样:
挂载:
到挂载目录下创建文件:
还可以使用透明压缩机制挂载:
在线调整文件系统大小:
增加,移除,扫描设备等功能:
增加一个设备到当前指定的btrfs文件系统
将先前数据均衡到新加的盘上
数据量特别大时,还可以在IO高峰期暂停平衡操作,取消暂停,打断等,这里不再缀余
拆除物理卷之前,btrfs会自动挪走上面的数据再拆除,不会像LVM那样还需要手动移走数据
发现只剩下sdb2和sdc1了,sdb1被移除了:
查看数据还在;
重现组织数据跨磁盘存储形式
-m 代表元数据
-d 代表数据
子卷功能:
创建子卷并查看:
挂载子卷:
查看子卷信息:
子卷中文件可以通过父卷访问到:
删除子卷:
快照:注意子卷的快照必须与子卷在同一个父卷中
删除快照:
针对单个文件做快照并检验:
ext系列文件系统和 btrfs文件系统无损转换:
首先创建一个ext4文件系统:
然后挂载,并且在挂载目录下创建文件,用btrfs-convert转换为btrfs
查看:
文件还在:
回滚为ext4文件系统:使用-r选项