核心特性:

  • 支持多物理卷: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>:指定数据块组的构成方式,包括raid0raid1raid5raid6raid10singledup

  • -m <profile>:指定元数据块组的构成方式,包括raid0raid1raid5raid6raid10singledup

-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

  • 使用文件系统的透明压缩机制(支持lzozlib压缩方式,需要先卸载设备,挂载后所有在/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