核心特性:
-
支持多物理卷:btrfs可由多个底层物理卷组成,支持RAID,以联机“添加”、“移除”,“修改”物理卷
-
写时复制更新机制(CoW):复制、更新及替换指针(即地址指向),而非“就地”更新(即直接更新源文件)
-
数据及元数据校验码:checksum
-
支持子卷:sub_volume
-
快照:支持快照的快照
-
支持透明压缩
查看btrfs命令及其子命令帮助文档:
-
# btrfs --help | man btrfs
-
# man mkfs.btrfs | man btrfs-filesystem | man btrfs-device | man btrfs-balance | manbtrfs-subvolume
创建btrfs文件系统:mkfs.btrfs --> # mkfs.btrfs -L mydata /dev/sdb /dev/sdc
挂载文件系统:# mount -t btrfs /dev/sdb /mnt //此处挂载/dev/sdb和/dev/sdc结果一致
常用选项:
-
-L LABEL:指定卷标
-
-d <profile>:指定数据块组的构成方式,包括raid0、raid1、raid5、raid6、raid10、single和dup
-
-m <profile>:指定元数据块组的构成方式,包括raid0、raid1、raid5、raid6、raid10、single和dup
-O <feature>:创建文件系统时启用的文件系统特性
列出支持的所有特性:# mkfs.btrfs -O list-all
btrfs文件系统常用命令:
-
查看所有的文件系统属性:# btrfs filesystem show
-
查看指定的文件系统属性:# btrfs filesystem show /mnt
-
查看所有设备信息:# btrfs filesystem show --all-devices
-
查看指定设备信息:# btrfs filesystem show /dev/sdb | /dev/sdc //结果一致
-
查看块设备属性:# blkid /dev/sdb | /dev/sdc
-
查看指定设备的卷标:# btrfs filesystem label /dev/sdb | /dev/sdc //结果一致
-
查看文件系统已挂载设备的信息:# btrfs filesystem show --mounted
-
使用文件系统的透明压缩机制(支持lzo和zlib压缩方式,需要先卸载设备,挂载后所有在/mnt目录中的文件都会被默认压缩):# mount -o compress=lzo /dev/sdc /mnt
-
联机调整文件系统的大小:# btrfs filesystem resize +5G /mnt
-
联机调整文件系统的大小至最大:# btrfs filesystem resize max /mnt
-
查看指定的文件系统容量信息:# btrfs filesystem df /mnt
-
添加一块新磁盘用于文件系统的扩容:# btrfs device add /dev/sdd /mnt
-
删除磁盘:# btrfs device delete /dev/sdb /mnt
-
开始数据均衡:# btrfs balance start /mnt
-
查看数据均衡状态:# btrfs balance status /mnt
-
创建子卷:# btrfs subvolume create /mnt/logs
-
删除子卷:# btrfs subvolume delete /mnt/logs
-
列出子卷信息:# btrfs subvolume list /mnt //会显示子卷ID
-
查看子卷信息:# btrfs subvolume show /mnt
-
挂载子卷:# mount -o subvol=logs /dev/sdb /mnt 或者 # mount -o subvolid=267 /dev/sdc /mnt
-
创建子卷快照:# btrfs subvolume snapshot /mnt/logs /mnt/logs_snapshot
-
删除子卷快照:# btrfs subvolume delete /mnt/logs_snapshot
-
ext4转换为btrfs:# btrfs-convert /dev/sdd1
-
btrfs转换为ext4:# btrfs-convert -r /dev/sdd1