查询 BTRFS 文件系统

运行 btrfs filesystem df 命令以显示有关 btrfs 文件系统使用的空间的更准确信息。

# btrfs filesystem df /btrfsTest/
Data, single: total=8.00MiB, used=64.00KiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=264.00MiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B

我们可以使用普通的df命令查询文件系统,但显示的信息可能不准确。

# df -h /btrfsTest/
Filesystem Size Used Avail Use% Mounted on
/dev/xvdb 5.0G 17M 4.8G 1% /btrfsTest

更多信息和选项可以在 mkfs.btrfs 的手册页中找到:

# man mkfs.btrfs
欢迎 on it road

创建 BTRFS 文件系统

添加将要配置 btrfs 文件系统的所需磁盘,并确保系统识别该磁盘:

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 20G 0 disk
├─xvda1 202:1 0 1G 0 part /boot
└─xvda2 202:2 0 19G 0 part
├─ol-root 251:0 0 17G 0 lvm /
└─ol-swap 251:1 0 2G 0 lvm [SWAP]
xvdb 202:16 0 5G 0 disk

在上面的输出中,我们的磁盘将是“xvdb”。
这些设备可以是简单的磁盘分区、环回设备(即内存中的磁盘镜像)、多路径设备或者在硬件中实现 RAID 的 LUN。

  1. 如果系统上尚未安装 btrfs-progs 软件包,请安装:
# yum install btrfs-progs
  1. 使用 mkfs.brtfs 命令创建 Btrfs 文件系统:
# mkfs.btrfs /dev/xvdb
btrfs-progs v4.9.1
See http://btrfs.wiki.kernel.org for more information.
Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication.
Label: (null)
UUID: c7d1687d-fe91-4837-b14a-4870466d1a3f
Node size: 16384
Sector size: 4096
Filesystem size: 5.00GiB
Block group profiles:
Data: single 8.00MiB
Metadata: single 8.00MiB
System: single 4.00MiB
SSD detected: yes
Incompat features: extref
Number of devices: 1
Devices:
ID SIZE PATH
1 5.00GiB /dev/xvdb
  1. 使用 btrfs filesystem show 命令验证文件系统是否已在设备上创建:
# btrfs filesystem show
Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f
Total devices 1 FS bytes used 112.00KiB
devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb

以上命令显示系统中所有的btrfs文件系统

或者

# btrfs filesystem show /dev/xvdb
Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f
Total devices 1 FS bytes used 112.00KiB
devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb

以上命令仅在所需的指定设备 (/dev/xvdb) 上显示有关 btrfs 文件系统的信息

  1. 挂载对应的文件系统:
# mount /dev/xvdb /btrfsTest
  1. 确保 btrfs 文件系统现在已挂载:
# mount | grep btrfs
/dev/xvdb on /btrfsTest type btrfs (rw,relatime,seclabel,ssd,space_cache)

btrfs 文件系统

btrfs 文件系统旨在满足大型存储子系统不断扩展的可扩展性需求。
由于 btrfs 文件系统在其实现中使用 B 树,其名称源自这些数据结构的名称,尽管它不是真正的首字母缩略词。
B 树是一种树状数据结构,无论树增长多大,它都能使文件系统和数据库有效地访问和更新大数据块。

btrfs 文件系统提供以下重要功能:

  • Copy-on-write 功能允许我们创建可读和可写的快照,并将文件系统回滚到以前的状态,即使在我们将它从 ext3 或者 ext4 文件系统转换之后也是如此。
  • 校验和功能可确保数据完整性。
  • 透明压缩可节省磁盘空间。
  • 透明碎片整理可提高性能。
  • 集成的逻辑卷管理允许我们实施 RAID 0、RAID 1 或者 RAID 10 配置,并动态添加和删除存储容量。

从 CentOS/RHEL 6 Update 3 开始,引导 ISO 允许我们配置 btrfs 根文件系统。
在 CentOS/RHEL 6 Update 3 之前,我们无法在安装过程中创建 btrfs 根文件系统。

使用 UEK R3,btrfs 支持以下添加功能:

  • 发送/接收功能允许我们记录两个子卷之间的差异,它们可以是同一子卷的快照,也可以是父子卷的快照。
  • 配额组 (qgroups) 允许我们为卷及其子卷设置不同的大小限制。
  • 我们无需卸载或者以其他方式中断对文件系统的访问即可更换设备。

本文档主要讲解如何在 CentOS/RHEL 系统的单台设备上创建 BTRFS 文件系统。
以下步骤是在运行 CentOS/RHEL 7 的虚拟机上执行的,虚拟磁盘大小为 5GB。

如何创建和查询 BTRFS 文件系统
日期:2020-09-17 00:14:17 来源:oir作者:oir