您的位置:首页 > 其它

btrfs的管理及应用

2017-01-30 13:44 162 查看
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