博文十九:btrfs管理及应用

一、简述

    Btrfs又被部分书籍称之为:B-tree,Butter FS,Better FS,其相较于ext3、ext4文件系统很多优势。

    Btrfs的核心特性

        多种物理卷的支持:btrfs可由多个底层物理卷组成,支持RAID在联机情况下“添加”“移除”“修改”

        支持非常大的单个文件与总空间容量

        支持写时复制机制(CoW):复制、更新及替换指针,而非“就地”更新

        支持数据及元数据校验码:checksum

        支持创建子卷:可以创建多个子卷,且子卷可以单独挂载

        快照:支持快照的快照(连续快照,叠加快照)

        透明压缩:自动占用CPU资源对传入、传出文件进行压缩、解压

    btrfs常用管理命令

命令功用
btrfs subvolume 管理子卷
btrfs filesystem管理文件系统
btrfs balance调整数据、元数据存储负载均衡
btrfs device管理设备
btrfs rescue用于救援
btrfs quota设置磁盘配额

    Btrfs文件系统使用多块磁盘才具有较大意义

二、使用

    1.命令

mkfs.btrfs [options] <device> [<device>...]
  -d|--data <profile> 指定数据如何跨设备文件存储(支持:raid0,raid1,raid5,raid6,raid10 or single)
  -f 强制格式化
  -L 'LABEL' 设置卷标
  -m|--metadata <profile> 指定元数据如何跨设备文件存储(支持:raid0,raid1,raid5,raid6,raid10,single)
  -O|--features <feature1>[,<feature2>...] 打开指定文件或设备指定的features(特性)
    -O list-all 列出支持的所有feature(特性)
  

    2.案例

# 利用两块硬盘创建一个Btrfs文件系统
[root@wybaron_host1015 ~]# mkfs.btrfs -f -L mybtrfs /dev/sdc /dev/sdd
btrfs-progs v4.9.1
See http://btrfs.wiki.kernel.org for more information.

Label:              mybtrfs
UUID:               ad5b0d56-65de-488a-9a17-f802a80b1b1d
Node size:          16384
Sector size:        4096
Filesystem size:    70.00GiB
Block group profiles:
  Data:             RAID0             2.00GiB    ## 数据的存放格式为RAID0
  Metadata:         RAID1             1.00GiB    ## 元数据的存放格式为RAID1
  System:           RAID1             8.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  2
Devices:
   ID        SIZE  PATH
    1    20.00GiB  /dev/sdc
    2    50.00GiB  /dev/sdd

[root@wybaron_host1015 ~]# mkdir /data/btrfs
root@wybaron_host1015 ~]# mount -t btrfs -L mybtrfs /data/btrfs/
[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         70G   17M   38G    1% /data/btrfs

# 修改文件系统的大小
## 缩减
[root@wybaron_host1015 ~]# btrfs filesystem resize -10G /data/btrfs/
Resize '/data/btrfs/' of '-10G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
## 扩充
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
[root@wybaron_host1015 ~]# btrfs filesystem resize +5G /data/btrfs/
Resize '/data/btrfs/' of '+5G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         65G   17M   28G    1% /data/btrfs

# 设备管理
## 添加物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev
[root@wybaron_host1015 ~]# btrfs device add /dev/sdb /data/btrfs/
/dev/sdb appears to contain a partition table (dos).
ERROR: use the -f option to force overwrite of /dev/sdb
[root@wybaron_host1015 ~]# btrfs device add -f /dev/sdb /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev

## 删除物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# btrfs device del /dev/sdc /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    2 size 50.00GiB used 2.03GiB path /dev/sdd
	devid    3 size 30.00GiB used 2.03GiB path /dev/sdb

# 开启透明压缩(压缩算法有lzo与zlib两种,通过mount重新挂载时选择)

​
# 利用两块硬盘创建一个Btrfs文件系统
[root@wybaron_host1015 ~]# mkfs.btrfs -f -L mybtrfs /dev/sdc /dev/sdd
btrfs-progs v4.9.1
See http://btrfs.wiki.kernel.org for more information.

Label:              mybtrfs
UUID:               ad5b0d56-65de-488a-9a17-f802a80b1b1d
Node size:          16384
Sector size:        4096
Filesystem size:    70.00GiB
Block group profiles:
  Data:             RAID0             2.00GiB    ## 数据的存放格式为RAID0
  Metadata:         RAID1             1.00GiB    ## 元数据的存放格式为RAID1
  System:           RAID1             8.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  2
Devices:
   ID        SIZE  PATH
    1    20.00GiB  /dev/sdc
    2    50.00GiB  /dev/sdd

[root@wybaron_host1015 ~]# mkdir /data/btrfs
root@wybaron_host1015 ~]# mount -t btrfs -L mybtrfs /data/btrfs/
[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         70G   17M   38G    1% /data/btrfs

# 修改文件系统的大小
## 缩减
[root@wybaron_host1015 ~]# btrfs filesystem resize -10G /data/btrfs/
Resize '/data/btrfs/' of '-10G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
## 扩充
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
[root@wybaron_host1015 ~]# btrfs filesystem resize +5G /data/btrfs/
Resize '/data/btrfs/' of '+5G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         65G   17M   28G    1% /data/btrfs

# 设备管理
## 添加物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev
[root@wybaron_host1015 ~]# btrfs device add /dev/sdb /data/btrfs/
/dev/sdb appears to contain a partition table (dos).
ERROR: use the -f option to force overwrite of /dev/sdb
[root@wybaron_host1015 ~]# btrfs device add -f /dev/sdb /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev

## 删除物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# btrfs device del /dev/sdc /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    2 size 50.00GiB used 2.03GiB path /dev/sdd
	devid    3 size 30.00GiB used 2.03GiB path /dev/sdb

# 开启透明压缩(压缩算法有lzo与zlib两种,通过mount重新挂载时选择)

​
# 利用两块硬盘创建一个Btrfs文件系统
[root@wybaron_host1015 ~]# mkfs.btrfs -f -L mybtrfs /dev/sdc /dev/sdd
btrfs-progs v4.9.1
See http://btrfs.wiki.kernel.org for more information.

Label:              mybtrfs
UUID:               ad5b0d56-65de-488a-9a17-f802a80b1b1d
Node size:          16384
Sector size:        4096
Filesystem size:    70.00GiB
Block group profiles:
  Data:             RAID0             2.00GiB    ## 数据的存放格式为RAID0
  Metadata:         RAID1             1.00GiB    ## 元数据的存放格式为RAID1
  System:           RAID1             8.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  2
Devices:
   ID        SIZE  PATH
    1    20.00GiB  /dev/sdc
    2    50.00GiB  /dev/sdd

[root@wybaron_host1015 ~]# mkdir /data/btrfs
root@wybaron_host1015 ~]# mount -t btrfs -L mybtrfs /data/btrfs/
[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         70G   17M   38G    1% /data/btrfs

# 修改文件系统的大小
## 缩减
[root@wybaron_host1015 ~]# btrfs filesystem resize -10G /data/btrfs/
Resize '/data/btrfs/' of '-10G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
## 扩充
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 10.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         60G   17M   18G    1% /data/btrfs
[root@wybaron_host1015 ~]# btrfs filesystem resize +5G /data/btrfs/
Resize '/data/btrfs/' of '+5G'
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -h /data/btrfs/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdc         65G   17M   28G    1% /data/btrfs

# 设备管理
## 添加物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev
[root@wybaron_host1015 ~]# btrfs device add /dev/sdb /data/btrfs/
/dev/sdb appears to contain a partition table (dos).
ERROR: use the -f option to force overwrite of /dev/sdb
[root@wybaron_host1015 ~]# btrfs device add -f /dev/sdb /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# df -l /dev/sdb
文件系统         1K-块  已用    可用 已用% 挂载点
devtmpfs       1919536     0 1919536    0% /dev

## 删除物理设备
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 3 FS bytes used 896.00KiB
	devid    1 size 15.00GiB used 2.01GiB path /dev/sdc
	devid    2 size 50.00GiB used 2.01GiB path /dev/sdd
	devid    3 size 30.00GiB used 0.00B path /dev/sdb

[root@wybaron_host1015 ~]# btrfs device del /dev/sdc /data/btrfs/
[root@wybaron_host1015 ~]# btrfs filesystem show /data/btrfs/
Label: 'mybtrfs'  uuid: ad5b0d56-65de-488a-9a17-f802a80b1b1d
	Total devices 2 FS bytes used 896.00KiB
	devid    2 size 50.00GiB used 2.03GiB path /dev/sdd
	devid    3 size 30.00GiB used 2.03GiB path /dev/sdb

# 开启透明压缩(压缩算法有lzo与zlib两种,通过mount重新挂载时选择)
[root@wybaron_host1015 ~]# mount -o remount,compress=lzo -L mybtrfs /data/btrfs/
[root@wybaron_host1015 ~]# ll -h /var/log/messages /data/btrfs/messages 
-rw------- 1 root root 259K 10月 12 13:16 /data/btrfs/messages
-rw------- 1 root root 260K 10月 12 13:17 /var/log/messages


​

三、补充

    SSD支持

# 挂载时指定
~]# mount -t btrfs -o SSD /dev/SSD_name /DIR

    图形界面

# 关闭启动时的默认启动到图形界面
~]# systemctl set-default multi-user.target
# 设置默认启动到图形界面
~]# systemctl set-default graphical.target

    透明数据压缩

        数据压缩的过程不会被用户发现和察觉,一般在广域网优化设备中会使用透明数据压缩技术。目前使用透明数据压缩的广域网优化设备的厂商有F5和lotware。

# 未挂载的挂载时指定
~]# mount -t btrfs -o compress[=[lzo|zlib]] /dev/SSD_name /DIR
# 已挂载的重载指定
~]# mount -o remount,compress[=[lzo|zlib]] /dev/SSD_name /DIR

    学习参考

        https://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/

        http://blog.51cto.com/jying/2058542

    

转载于:https://my.oschina.net/comics/blog/2243675

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值