一、btrfs概念
在btrfs中存在三种类型的数据,data, metadata和system。它们表示:
DATA 数据块。
METADATA 源数据。
SYSTEM 映射关系、raid关系等信息。
可以用btrfs filesystem show观察到这些信息,也可以简写为 btrfs fi sh 。
RAID是profile的一种描述,包括条带(raid0, raid10),mirror(raid1),奇偶校验(raid 5,6)。
profile
profile和block group结合起来,用来描述数据的分配策略或约束。例如:
single表示只存一份数据,即每个block group都是独一无二的。
DUP表示在一个块设备中存双份数据,即每个block group在 同一个块设备 中有一个一样的block group副本。
RAID0表示条带,单个block group可能跨块设备存储。
RAID10表示镜像加条带,单个block group可能跨块设备存储,其中每个部分都会在两个块设备中存成镜像。
二、创建btrfs文件系统
例子:
mkfs.btrfs -n 4096 -m raid10 -d raid10 -L mydata /dev/sdb /dev/sdc /dev/sdd /dev/sde
-n 设置nodesize大小 -m -d 分别对应 data和metadata数据块的profile级别,-L 设置lable名称。
raid10 最少需要4个块设备,所以这里加了4个盘。
三、挂载
mount /dev/sdb /mydata mount选项里面有几个针对ssd固态硬盘的选项,如ssd ,ssd_spread , discard 以及 compress={no|lzo|zlib}。
四、调整btrfs文件大小
btrfs fi resize +10G /mnt 有多个块设备的话需要指定块设备 btrfs fi resize 1:+10G /mnt 表示对第一个块设备增加10G空间 使用全部空间可以使用max表示
五、增加减少块设备
btrfs device add /dev/sdf /mnt
btrfs device delete /dev/sdf /mnt
六、负载均衡一下
btrfs balance start /mnt
同时通过 -mconvert=raid5 -dconvert=raid5 可以改变profile属性
btrfs balance start -dconvert=raid5 -mconvert=raid5 /mnt
七、subvolume以及snapshot快照
btrfs subvolume create /mnt/logs
btrfs subvolume delete /mnt/logs
btrfs subvolume list /mnt
mount -o subvol=logs /dev/sdb /mnt(可以单独挂子卷到目录)
btrfs subvolume snapshot /mnt/logs /mnt/logs_snapshot (建快照)
常用命令
btrfs filesystem show /mnt
btrfs device scan
btrfs filesystem df /mnt
btrfs rescuse super-recover /dev/sdb
原创文章,作者:duiduifei,如若转载,请注明出处:http://www.178linux.com/14700