网站搜索

如何在 Linux 中创建和管理 Btrfs 文件系统


BtrfsB-tree 文件系统是 GPL 许可的写时复制 (COW),由 Oracle、Redhat、Fujitsu、Intel、Facebook 等多家公司开发、Linux Foundation、Suse 等。由于内核的限制,Brtfs 将支持最大 16 exbibyte,文件大小最大可达 8 exbibyte。

文件可以用除“/”和NULL之外的任何字符创建。 Btrfs 具有自我修复功能,并且具有跨多个卷的能力。在 Btrfs 中,我们可以在线模式下缩小、扩展文件系统、添加或删除块设备。

它还提供了子卷,子卷不是一个单独的块设备,我们可以为这些子卷创建快照并恢复快照。我们可以使用 btrfs,而不是使用 LVM。 Btrfs 文件系统仍在测试中,尚未包含在生产中,如果我们有任何重要数据,目前建议不要在生产环境中使用 btrfs。

Btrfs 于上个月 2014 年 12 月发布了其 3.18 版本,其中包含多项新功能。

Btrfs 的特点

这个新版本的 btrfs 充满了许多新功能,如下所示:

  1. 默认情况下,mkfs slimy-metadata 功能从内核 3.10 开始可用。
  2. 小心修复严重损坏的文件系统。
  3. 添加了转换选项以显示进度。
  4. 能够将丢失的文件链接到lost+found。这是对最近的内核错误的修复。
  5. 查看文件系统使用情况的概述而不是 df。
  6. 还有更多错误修复和改进的文档。
  7. 文件系统的子卷。
我的环境设置
Hostname	:	btrfs.tecmintlocal.com
IP addrress 	:	192.168.0.120
Disk Size Used	:	8GB [/dev/sdb]

第 1 步:安装并创建 Btrfs 文件系统

1. 在当今大多数最新的 Linux 发行版中,btrfs 软件包都是预安装的。如果没有,请使用以下命令安装 btrfs 软件包。

yum install btrfs-progs -y		[On RedHat based Distro's]
sudo apt-get install btrfs-tools -y	[On Debian based Distro's]

2. 在系统上安装 btrfs 软件包后,现在我们需要使用以下命令启用 btrfs 的内核模块。

modprobe btrfs

3. 这里,我们只使用了一个磁盘(即 /dev/sdb),在此磁盘中,我们将设置逻辑卷并创建 btrfs 文件 -系统。在创建它们之前,我们首先验证连接到系统的磁盘。

ls -l /dev | grep sd

4.一旦确认磁盘已正确连接到系统,现在就可以为 LVM 创建分区了。我们将使用“fdisk”命令在/dev/sdb磁盘上创建分区。按照下面的说明在驱动器上创建新分区。

fdisk -c /dev/sdb
  1. 按“n”创建新分区。
  2. 然后选择“P”作为主分区。
  3. 接下来选择分区号为1
  4. 只需按两次 Enter 键即可定义默认值。
  5. 接下来按“P”打印定义的分区。
  6. 按“L”列出所有可用类型。
  7. 输入“t”来选择分区。
  8. 对于 Linux LVM 选择“8e”,然后按 Enter 键应用。
  9. 然后再次使用“p”打印我们所做的更改。
  10. 使用“w”来写入更改。

5.成功创建分区后,需要将分区表更改更新到内核,以便我们运行partprobe命令将磁盘信息添加到内核并之后列出分区,如下所示。

partprobe -s
ls -l /dev | grep sd

设置逻辑卷

6.使用pvcreatevgcreate命令在/dev/sdb1磁盘上创建物理卷和卷组。

pvcreate /dev/sdb1
vgcreate tecmint_vg /dev/sdb1

7.在卷组中创建逻辑卷。这里我创建了两个逻辑卷。

lvcreate -L +2G -n tecmint_lv1 tecmint_vg
lvcreate -L +2G -n tecmint_lv2 tecmint_vg

8.列出已创建的物理卷、卷组和逻辑卷。

pvs && vgs && lvs

创建 Btrfs 文件系统

9. 现在让我们为逻辑卷创建文件系统。

mkfs.btrfs /dev/tecmint_vg/tecmint_lv1

10. 接下来,创建一个挂载点并挂载文件系统。

mkdir /mnt/tecmint_btrfs1
mount /dev/tecmint_vg/tecmint_lv1 /mnt/tecmint_btrfs1/

11.借助 df 命令验证挂载点。

df -h

这里可用大小为 2 GB