云网牛站
所在位置:首页 > Linux教程 > 在Fedora系统下安装和使用mergefs增加虚拟存储

在Fedora系统下安装和使用mergefs增加虚拟存储

2020-05-02 11:36:17作者:浦洪稿源:云网牛站

如果您有多个磁盘或分区要用于一个媒体项目,而又不想丢失任何现有数据,但又想将所有文件都放置或安装在一个驱动器下,该怎么办?这时mergefs可以助您一臂之力!

在Fedora系统下安装和使用mergefs增加虚拟存储

 

简介

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

您将需要从 https://github.com/trapexit/mergerfs/releases 页面获取新的RPM包,Fedora的发行版名称中包含fc和版本号,例如针对Fedora 31版本的,请下载mergerfs-2.29.0-1.fc31.x86_64.rpm,如果是针对Ubuntu 20.04 LTS(Focal Fossa)的,则下载mergerfs_2.29.0.ubuntu-focal_amd64.deb,如果是针对Debian 10(Buster)的,则下载mergerfs_2.29.0.debian-buster_amd64.deb。

 

在Fedora系统下安装

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

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

参考:配置Fedora系统以使用sudo的方法

 

在Fedora系统下使用和配置mergefs

现在,您可以将多个磁盘作为一个驱动器安装,如果您有一台媒体服务器,并且希望所有媒体文件都显示在一个位置下,这将很方便。如果将新文件上载到系统,则可以将它们复制到您的mergefs目录,并且mergefs将自动将它们复制到驱动器具有足够可用空间的位置。

这是使您更容易理解的示例,如下图:

在Fedora系统下安装和使用mergefs增加虚拟存储

所运行的命令:

$ df -hT | grep disk

$ ls -l /disk1/Videos/

$ ls -l /disk2/Videos/

在此示例中,安装了两个磁盘,分别为disk1和disk2,两个驱动器都有一个包含现有文件的“Videos”目录。

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

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

mergefs手册页非常广泛且复杂,因此我们将分解指定的选项。

defaults:除非指定,否则将使用默认设置。

allow_other:允许sudo或root以外的用户查看文件系统。

use_ino:导致mergefs提供文件/目录的inode而不是libfuse,虽然不是默认值,但建议您启用它,以便链接的文件共享相同的inode值。

category.create=mfs:根据可用空间在驱动器中传播文件。

moveonenospc=true:如果启用,则如果写入失败,将进行扫描以查找具有最大可用空间的驱动器。

minfreespace=1M:使用的最小空间值。

disk1:第一个硬盘驱动器。

disk2:第二个硬盘驱动器。

/media:安装驱动器的目录文件夹。

看起来是这样的,如下图:

在Fedora系统下安装和使用mergefs增加虚拟存储

所运行的命令:

$ df -hT | grep disk

$ df -hT | grep media

您可以看到mergefs挂载现在显示的总容量为66M,这是两个硬盘驱动器的总容量。

继续示例:

有一个30Mb的视频,叫做Baby的第二个Xmas.mkv,让我们将其复制到/media文件夹中,该文件夹是mergefs挂载,如下图:

在Fedora系统下安装和使用mergefs增加虚拟存储

所运行的命令:

$ ls -lh "Baby's second Xmas.mkv"

$ cp "Baby's second Xmas.mkv" /media/Videos/

这是最终结果,如下图:

在Fedora系统下安装和使用mergefs增加虚拟存储

所运行的命令:

$ df -hT | grep disk

$ df -hT | grep media

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

这是所有文件的细分,如下图:

在Fedora系统下安装和使用mergefs增加虚拟存储

所运行的命令:

$ ls -l /disk1/Videos/

$ ls -l /disk2/Videos/

$ ls -l /media/Videos/

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

 

相关主题

存储系统Ceph、MooseFS、GlusterFS、HDFS、DRBD介绍

精选文章
热门文章