一、btrfs基本概念
btrfs文件系统是2007年Oracle开发,支持GPL协议,为了取代Linux早期的ext系列文件系统。
btrfs核心特性:
多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID,以联机添加、移除、修改操作
写时复制更新机制(CoW):复制、更新及替换指针,而非直接更新原文件
数据及元数据校验码:checksum
子卷:sub_volume
快照:支持快照的快照
透明压缩:
二、btrfs基本应用
创建btrfs文件系统:
mkfs.btrfs:
-L 'LABEL':
-m <profile>: 指明元数据存放机制{raid0,raid1,raid5,raid6,raid10,single}
-d <type>: 指明数据存放时的类型{raid0,raid1,raid5,raid6,raid10,single,dup}
-O <feature>
-O list-all: 列出支持的所有feature
直接格式化: mkfs.btrfs -L mydata /dev/sdab /dev/sdac
btrfs filesystem show: 显示创建的btrfs文件系统的信息 btrfs filesystem show /dev/sdb: 查看指定设备btrfs文件系统的信息
btrfs filesystem [OPTION] sync: 将文件系统缓存在内存中的数据同步到磁盘中 df: 查看一个已挂载的btrfs文件系统空间使用情况: btrfs filesystem df /mydata defragment: 磁盘碎片整理 resize: 修改大小, btrfs filesystem resize -10G /mydata label:显示卷标或显示卷标
btrfs device [OPTION] /dev/sdd: 对硬件设备进行操作
add: 添加设备
deleate: 移除设备,数据自动移到其他设备上,不影响正常访问
scan: 扫描设备
btrfs balance [OPTION] /dev/DEVICE:均衡数据到新增加的设备上
start [OPTION]<filters>:开始balance
-d<filter>:修改数据的组织机制
-m<filter>: 修改元数据的组织机制
-s<filter>: 修改系统的组织机制
filter:
convert
比如btrfs balance start -dconvert=raid5 /mydata 修改数据的raid级别
比如 -mconvert 修改元数据的raid级别
pause:暂停
status:执行状态
cancel:取消
resume:继续
btrfs subvolume : 子卷操作
create: 创建子卷: 比如:btrfs subvolume create /mydata/logs
delete: 删除子卷
list: 列出所有的子卷
get-default: 查看默认卷
set-default: 设置默认卷
snapshot: 快照 比如; btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot
对单个文件创建快照: cp --reflink grub2.cfg grub2.cfg_snap
show: 查看子卷详细信息
只挂载子卷: 例如 mount -o subvol=logs /dev/sdb /mnt
或 mount -o subvolid=267 /dev/sdb /mnt
挂载文件系统: mount -t btrfs /dev/sdb /MOUNT_POINT
透明压缩机: mount -o compress=(lzo|zlib) DEVICE MOUNT_POINT
三、应用
ext文件系统转为btrfs文件系统:
1. umount /mnt
2. fsck -f /dev/sdd1
3. btrfs -convert /dev/sdd1
4. btrfs filesystem show
5. mount /dev/sdd1 :可以挂载使用了
btrfs文件系统降级回到ext文件系统:
btrfs -convert -r /dev/sdd1