首页 > 代码库 > btrfs的管理及应用
btrfs的管理及应用
btrfs的特性
支持多物理卷扩展、添加、移除、修改
支持快照可写和快照只读
对RAID5和RAID6加强支持
子卷:sub_volume
支持数据和元的校验和
透明压缩
btrfs的创建
现在有硬盘/dev/sdb /dev/sdc。
将两块硬盘合并创建btrfs,卷标为mydata
mkfs.btrfs -L mydata /dev/sdb /dev/sdc
本人用的是Redhat Enterprise 7 btrfs在红帽7里面还只是测试,在Centos 7+版本中就不会
出现WARNING EXPERIMENTAL
btrfs filesystem show查看本地的btrfs文件信息,UUID都是一样的,但是UUID_SUB不一样
btrfs的信息查看
btrfs filesystem <subcommand> <option>
subcommand
show --------------查看信息
/PATH 使用挂载的目录进行查看btrfs的信息
<option>
--mounted 只显示查看btrfs的挂载信息
--devices 指明btrfs其中的一个硬盘就可以查看全局的信息
--all 查看所有的信息
label --------------- 显示卷标
btrfsf filesystem label /dev/sdb
resize --------------缩减或都增大文件系统的容量
btrfs filesystem resize max /mydata 增加到最大
btrfs filesystem resize -10G /mydata 减少
btrfs filesystem resize +10G /mydata 增加
df ---------------显示已经挂载的文件系统的信息
btrfs filesystem df /mydata
sync --------------同步操作
btrfs的挂载
mount -t btrfs /dev/sdb /mydata
挂载时候可以不用指明文件类型,挂载的设备只要是btrfs文件系统中的其中一个设备即可
umount /mydata 御载
btrfs的压缩机制
先御载先前的挂载
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
mount -o compress=lzo /dev/sdb /mydata
在/mydata下创建的文件自动压缩成lzo的压缩文件
btrfs物理设备的管理
btrfs device <subcommand><args>
<subcommand>
add -------------- 添加设备(自动添加、自动扩展)
btrfs device add /dev/sd# /mydata
delete --------------- 移除设备
btrfs device delete /dev/sd# /mydata
scan ----------------- 扫描设备
ready ----------------- 检查设备是否准备备可以用来挂载
stat ------------------- 显示IO统计的数据
btrfs均衡各物理卷直接的数据量
btrfs [filesystem] balance <subcommand><args>
<subcommand>
start ------------- 开始均衡文件系统
btrfs balance start /mydata
start -dconvert -------------- 修改数据的组织机制,即RAID级别
start -mconvert -------------- 修改元数据的组织机制,即RAID级别
btrfs balance stat -mconvert=raid1 /mydata
start -sconvert -------------- 修改系统的组织机制,即RAID组别
pause -------------- 停止
btrfs balance pause /mydata
cancel -------------- 取消
btrfs balance cancel /mydata
resume -------------- 继续
btrfs balance resume /mydata
status -------------- 查看均衡状
btrfs balance status /mydata
btrfs子卷的管理
btrfs subvolume <subcommand>[<args>]
<subcommand>
create ------------- 创建子卷
btrfs subvolume create /mydata/logs
btrfs subvolume create /mydata/cache
delete ------------- 删除子卷
btrfs subvolume delete /mydata/logs
btrfs subvolume delete /mydata/cache
list ------------- 列表显示子卷信息
snapshot ------------- 创建子卷快照(只能与父卷同一目录下)
btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshots
btrfs subvolume snapshot delete /mydata/logs_snapshot
对单个文件执行快照功能-----写实复制
cp --reflink filename filename_snapshot
get-default
set-default
find-new
show
1.先卸载交卷
umount /mydata
2.再挂载子卷(设备哪个都可以只要在btrfs中)
mount -o subvol=logs /dev/sdb /mnt
在子卷中创建bb{1..10}然后卸载子卷挂载父卷
umount /mnt
mount /dev/sdb /mydata
查看父卷的文件都还在,并且多了两个目录cache和logs,进入logs子卷
bb{1..10}仍然存在
通过子卷ID挂载
btrfs subvolume list /mydata 查看子卷ID
mount -o subvol=261 /dev/sdb /mnt
其它文件系统转换成btrfs文件系统(无损)
btrfs-convert /dev/sd#
a.将文件系统为ext4的dev/sda8转换成btrfs文件系统,ext4现在正挂载在/mnt下面?
1.先御载
umount /mnt
2.强制检查磁盘块
fsck -f /dev/sda8
3.执行转换
btrfs-convert /dev/sda8
4.重新挂载
mount /dev/sda8 /mnt
5.查看文件是存在
b.moun将/dev/sda8转换回成ext4文件系统
1.先卸载
umount /mnt
2.执行回滚命令
btrfs-convert -r /dev/sda8
btrfs的管理及应用