红联Linux门户
Linux帮助

如何使用Btrfs文件系统创建存储池和镜像

发布时间:2014-08-01 09:41:58来源:linux网站作者:linux

如果你的 Linux 系统下挂有多块硬盘,其实没必要把这些不同的硬盘当成单独的存储来用,使用 Btrfs 文件系统我们可以非常容易的将多个磁盘组合创建出一个存储池。在配置好存储池后,我们还可以启用镜像功能,以避免磁盘损坏带来的数据丢失。

虽然目前还没有 GUI 的配置程序,但我们使用命令行还是可以非常容易的创建 Btrfs 文件系统,以便将多个硬盘组合到一起。


什么是Btrfs文件系统

Btrfs 文件系统又被称为 B-tree 文件系统、Butter FS 或者 Better FS,它在文件系统级别集成了许多不同的功能和特性。虽然 Btrfs 文件系统有很多值得我们关注的特性(如文件系统快照),但本文中我们只探讨 Btrfs 文件系统的存储池和镜像功能。

虽然 Btrfs 文件系统目前还不被企业级应用公认为“安全”,但其稳定性已经能够满足个人用户的稳定性需求了。在未来的某个时刻,Btrfs 将成为 Linux 中默认的文件系统格式,如果你只使用单个磁盘或不需要 Btrfs 的快照、存储池及镜像等新特性,还是使用 ext4 文件系统比较好。


示例环境

在本文的示例中,我们将用 4 块磁盘来进行演示,其中 1TB 的磁盘 2块(分别为/dev/sdb 和 /dev/sdc),另外 2 块磁盘为 500 GB (分别为/dev/sdd 和 /dev/sde),总共 3TB 存储空间。


创建Btrfs文件系统

要创建 Btrfs 文件系统我们可以使用如下命令:

sudo mkfs.btrfs /dev/sdb


当然,你可以按你自己的环境将 /dev/sdb 替换为你自己的磁盘。现在,我们可以将其它磁盘创建为 Btrfs 文件系统,但首先我们使用如下命令将 /dev/sdb 挂载到 /mnt:

sudo mount /dev/sdb /mnt


然后再执行:

sudo mkfs.btrfs /dev/sdc

sudo mkfs.btrfs /dev/sdd

sudo mkfs.btrfs /dev/sde


现在,我们可以将以上3块磁盘都添加到 /mnt 目录下:

sudo btrfs device add /dev/sdc /mnt

sudo btrfs device add /dev/sdd /mnt

sudo btrfs device add /dev/sde /mnt


如果你事先就规划好要使用 Btrfs 创建一个跨多个硬盘的文件系统,可以直接使用如下命令:

sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde

现在来解释下,上面的 -d single 参数代表我们将创建一个 Raid0 卷,当然我们也可以使用 -d raid1 参数来创建 Raid1 卷。甚至,以使用 -d raid10 参数来创建 Raid10 卷,这会将我们的 2 个 1TB 磁盘镜像成 1TB,将 2 个 500G 磁盘镜像成 500G,最后再组合成 1.5 TB 可用空间。


如果磁盘出现故障

如果某个磁盘出现故障,我们则需要从文件系统中将其移除以便剩下的磁盘正常工作,此时可以使用如下命令:

sudo mount -o degraded /dev/sdb /mnt


然后再用如下命令修复文件系统:

sudo btrfs device delete missing /mnt

如果你没有启用 RAID1 或 RAID10,磁盘损坏后该硬盘上的数据将会丢失。