良许Linux教程网 干货合集 如何用 mergefs 轻松管理你的多个磁盘或分区

如何用 mergefs 轻松管理你的多个磁盘或分区

你是否有过这样的困扰:你有一个媒体项目,需要用到多个磁盘或分区来存放你的文件,但是你又不想每次都要切换不同的驱动器来查找或复制文件,也不想删除或格式化你现有的数据?如果有,那么你一定会对 mergefs 感兴趣。mergefs 是一个神奇的工具,它可以让你把多个磁盘或分区合并成一个虚拟的驱动器,让你可以方便地管理和访问你的文件,而不用担心空间不足或数据丢失。在本文中,我们将教你如何在安装和使用 mergefs ,并展示它的一些强大的功能。

你需要从他们的 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 会自动将它们复制具有足够可用空间的磁盘上。

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

1. `$ df -hT | grep disk`
2. `/dev/sdb1 ext4 23M 386K 21M 2% /disk1`
3. `/dev/sdc1 ext4 44M 1.1M 40M 3% /disk2`
4.  
5. `$ ls -l /disk1/Videos/`
6. `total 1`
7. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv`
8.  
9. `$ ls -l /disk2/Videos/`
10. `total 2`
11. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv`
12. `-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:挂载驱动器的目录。

看起来是这样的:

1. `$ df -hT | grep disk`
2. `/dev/sdb1 ext4 23M 386K 21M 2% /disk1`
3. `/dev/sdc1 ext4 44M 1.1M 40M 3% /disk2`
4.  
5. `$ df -hT | grep media`
6. `1:2 fuse.mergerfs 66M 1.4M 60M 3% /media`

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

继续示例:

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

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

这是最终结果:

1. `$ df -hT | grep disk`
2. `/dev/sdb1 ext4 23M 386K 21M 2% /disk1`
3. `/dev/sdc1 ext4 44M 31M 9.8M 76% /disk2`
4.  
5. `$ df -hT | grep media`
6. `1:2 fuse.mergerfs 66M 31M 30M 51% /media`

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

这是所有文件详情:

1. `$ ls -l /disk1/Videos/`
2. `total 1`
3. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv`
4.  
5. `$ ls -l /disk2/Videos/`
6. `total 30003`
7. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv`
8. `-rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 Baby's second Xmas.mkv`
9. `-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv`
10.  
11. `$ ls -l /media/Videos/`
12. `total 30004`
13. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv`
14. `-rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 Baby's second Xmas.mkv`
15. `-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv`
16. `-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv`

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

通过本文,你应该已经了解了 mergefs 的基本概念和用法,以及它如何帮助你简化你的媒体项目的存储和管理。mergefs 是一个灵活而强大的工具,它可以根据你的需要在多个磁盘或分区间分配和移动文件,而不影响原有的数据。如果你想了解更多关于 mergefs 的信息,你可以查看它的手册页或 GitHub 页面,那里有更多的选项和示例。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部