使用 mergefs 增加虚拟存储
创始人
2024-03-02 04:56:00
0

如果你想在一个媒体项目中用到了多个磁盘或分区,不想丢失任何现有数据,但又想将所有文件都存放在一个驱动器下,该怎么办?这时,mergefs 就能派上用场!

mergerfs 是一个联合文件系统,旨在简化存储和管理众多商业存储设备上的文件。

你需要从他们的 GitHub 页面获取最新的 RPM。Fedora 的版本名称中带有 “fc” 和版本号。例如,这是 Fedora 31 的版本: mergerfs-2.29.0-1.fc31.x86_64.rpm

安装和配置 mergefs

使用 sudo 安装已下载的 mergefs 软件包:

$ sudo dnf install mergerfs-2.29.0-1.fc31.x86_64.rpm

现在,你可以将多个磁盘挂载为一个驱动器。如果你有一台媒体服务器,并且希望所有媒体文件都显示在一个地方,这将很方便。如果将新文件上传到系统,那么可以将它们复制到 mergefs 目录,mergefs 会自动将它们复制具有足够可用空间的磁盘上。

这是使你更容易理解的例子:

$ df -hT | grep disk
/dev/sdb1      ext4      23M  386K 21M 2% /disk1
/dev/sdc1      ext4      44M  1.1M 40M 3% /disk2

$ ls -l /disk1/Videos/
total 1
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv

$ ls -l /disk2/Videos/
total 2
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv

在此例中挂载了两块磁盘,分别为 disk1disk2。两个驱动器都有一个包含文件的 Videos 目录。

现在,我们将使用 mergefs 挂载这些驱动器,使它们看起来像一个更大的驱动器。

$ sudo mergerfs -o defaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=1M /disk1:/disk2 /media

mergefs 手册页非常庞杂,因此我们将说明上面提到的选项。

  • defaults:除非指定,否则将使用默认设置。
  • allow_other:允许 sudoroot 以外的用户查看文件系统。
  • use_ino:让 mergefs 提供文件/目录 inode 而不是 libfuse。虽然不是默认值,但建议你启用它,以便链接的文件共享相同的 inode 值。
  • category.create=mfs:根据可用空间在驱动器间传播文件。
  • moveonenospc=true:如果启用,那么如果写入失败,将进行扫描以查找具有最大可用空间的驱动器。
  • minfreespace=1M:最小使用空间值。
  • disk1:第一块硬盘。
  • disk2:第二块硬盘。
  • /media:挂载驱动器的目录。

看起来是这样的:

$ df -hT | grep disk
/dev/sdb1  ext4           23M      386K 21M 2% /disk1
/dev/sdc1  ext4           44M      1.1M 40M 3% /disk2

$ df -hT | grep media
1:2        fuse.mergerfs  66M      1.4M 60M 3% /media

你可以看到现在 mergefs 挂载显示的总容量为 66M,这是两块硬盘的总容量。

继续示例:

有一个叫 Baby's second Xmas.mkv 的 30M 视频。让我们将其复制到用 mergerfs 挂载的 /media 文件夹中。

$ ls -lh "Baby's second Xmas.mkv"
-rw-rw-r--. 1 curt curt 30M Apr 20 08:45 Baby's second Xmas.mkv
$ cp "Baby's second Xmas.mkv" /media/Videos/

这是最终结果:

$ df -hT | grep disk
/dev/sdb1  ext4          23M 386K 21M 2% /disk1
/dev/sdc1  ext4          44M 31M 9.8M 76% /disk2

$ df -hT | grep media
1:2        fuse.mergerfs 66M 31M 30M 51% /media

从磁盘空间利用率中可以看到,因为 disk1 没有足够的可用空间,所以 mergefs 自动将文件复制到 disk2

这是所有文件详情:

$ ls -l /disk1/Videos/
total 1
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv

$ ls -l /disk2/Videos/
total 30003
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 Baby's second Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv

$ ls -l /media/Videos/
total 30004
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 Baby's second Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv

当你将文件复制到 mergefs 挂载点时,它将始终将文件复制到有足够可用空间的硬盘上。如果池中的所有驱动器都没有足够的可用空间,那么你将无法复制它们。


via: https://fedoramagazine.org/using-mergerfs-to-increase-your-virtual-storage/

作者:Curt Warfield 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

【服务器数据恢复】UFS2...
服务器数据恢复环境: 某公司一台服务器,...
2025-05-28 06:51:59
DeepSeek宣布开源F...
DeepSeek宣布开源Fire-Flyer文件系统(3FS)。
2025-02-28 11:21:23
不支持的文件系统的stat...
当遇到“不支持的文件系统的statvfs”错误时,可能是因为你正在...
2025-01-11 21:31:04
不要将文件写入文件系统,直...
要将文件写入文件系统并直接使用librosa下载和打开文件,可以使...
2025-01-10 20:01:56
不要安装Composer要...
如果您不想使用Composer安装谷歌/云分布式文件系统,您可以使...
2025-01-10 17:00:30
部署应用程序时,在浏览器中...
在浏览器中,无法直接访问实际的文件系统路径,因为浏览器具有安全限制...
2025-01-08 01:02:07

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...