btrfs管理及应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了btrfs管理及应用相关的知识,希望对你有一定的参考价值。

btrfs管理及应用

1. 基础简介

Btrfs(又名:B-tree, Butter FS, Better FS),GPL授权, Oracle从2007研发,写实复制更新机制 CoW,其主要是为了取代ext2,ext3,ext4,其主要功能有:

  • 多物理卷支持:btrfs可由多个底层物理卷组成,内建支持RAID(即支持条带、mirror等功能),以联机“添加”、“移除”,“修改”操作
  • 写时复制更新机制(英译CoW):复制、更新及替换指针,而非“就地”更新机制。例如我们现在去修改一个文件A,COW机制是先将目标文件A复制一份为文件B,那么我们修改文件时是修改的复制文件B,相当于对源文件A做了快照,如对文件B修改操作失误,可以有效的恢复源文件A。
  • 数据及源数据校验码机制checksum:我们存储某个文件时,checksum会将数据的源数据和数据的校验码,分别通过文件的属性扩展进行保存,当我们再次读取数据时可以方便的检测数据是否受损,如果文件受损系统可以完成自动修复。
  • 支持b-tree文件功能即支持子卷功能,如在vg中创建lv一样
  • 支持子卷sub_volume:可以在一个卷上创建子卷,然后分别挂载使用
  • 快照:支持快照的快照功能即增量快照
  • 透明压缩:即数据自动实现压缩和解压缩,以节约空间,会消耗一定的cpu的

2. 文件系统创建

  1. mkfs.btrfs
  2. -L ‘LABEL‘
  3. -d <type>: raid0, raid1, raid5, raid6, raid10, single
  4. -m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup
  5. -O <feature>
  6. -O list-all: 列出支持的所有feature
  7. 属性查看:
  8. btrfs filesystem show
  9. 挂载文件系统:
  10. mount -t btrfs /dev/sdb MOUNT_POINT
  11. 透明压缩机制:
  12. mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

子命令:filesystem, device, balance, subvolume

3. 创建应用示例

3.1 创建并挂载btrfs文件系统

  1. [[email protected] ~]# mkfs.btrfs /dev/sdb6
  2. btrfs-progs v3.19.1
  3. See http://btrfs.wiki.kernel.org for more information.
  4. Turning ON incompat feature ‘extref‘: increased hardlink limit per file to 65536
  5. Turning ON incompat feature ‘skinny-metadata‘: reduced-size metadata extent refs
  6. fs created label (null) on /dev/sdb6
  7. nodesize 16384 leafsize 16384 sectorsize 4096 size 2.00GiB
  8. [[email protected] ~]# mkdir /tmp/mybtrfs
  9. [[email protected] ~]# mount /dev/sdb6 /tmp/mybtrfs

技术分享

3.2 增加减少btrfs文件系统

  1. [[email protected] mybtrfs]# btrfs filesystem resize -1G /tmp/mybtrfs
  2. Resize ‘/tmp/mybtrfs‘ of ‘-1G‘

技术分享

  1. [[email protected] mybtrfs]# btrfs filesystem resize +1G /tmp/mybtrfs
  2. Resize ‘/tmp/mybtrfs‘ of ‘+1G‘

技术分享

3.3 在线增加/减少磁盘,并均衡数据

  1. [[email protected] mybtrfs]# btrfs device add -f /dev/sdb7 /tmp/mybtrfs
  2. [[email protected] ~]# btrfs filesystem balance /tmp/mybtrfs
  3. Done, had to relocate 5 out of 5 chunks
  4. [[email protected] ~]# btrfs filesystem show
  5. Label: none uuid: b82450a3-d903-4913-b4d1-ad68fb0e193f
  6. Total devices 2 FS bytes used 256.00KiB
  7. devid 1 size 2.00GiB used 288.00MiB path /dev/sdb6
  8. devid 2 size 2.00GiB used 704.00MiB path /dev/sdb7
  9. btrfs-progs v3.19.1

在线删除挂载磁盘

  1. [[email protected] ~]# btrfs device delete /dev/sdb8 /tmp/mybtrfs/

3.4 创建删除子卷

可以卸载父卷,只挂载子卷。

  1. [[email protected] ~]# btrfs subvolume create /tmp/mybtrfs/subbtrfs
  2. Create subvolume ‘/tmp/mybtrfs/subbtrfs‘
  3. [[email protected] ~]# btrfs subvolume delete /tmp/mybtrfs/subbtrfs
  4. Delete subvolume (no-commit): ‘/tmp/mybtrfs/subbtrfs‘











以上是关于btrfs管理及应用的主要内容,如果未能解决你的问题,请参考以下文章

btrfs的管理及应用

btrfs文件系统管理与应用

Linux btrfs文件系统及管理

CentOS7.4-btrfs管理及使用

btrfs文件系统压缩工具及for语句程序包管理

Linux 学习34 运维加薪技能-btrfs文件系统管理与应用