如果您想在媒体项目中使用多个磁盘或分区,不想丢失任何现有数据,但又想将所有文件保留在一个驱动器上怎么办?这就是mergefs派上用场的地方!mergefs是一个联合文件系统,旨在简化众多商业存储设备上文件的存储和管理。您需要从他们的GitHub页面获取最新的RPM。Fedora发行版的名称中包含“fc”和版本号。例如,这是Fedora31的版本:mergefs-2.29.0-1.fc31.x86_64.rpm。安装和配置mergefs使用sudo安装下载的mergefs包:$sudodnfinstallmergefs-2.29.0-1.fc31.x86_64.rpm现在您可以将多个磁盘安装为一个驱动器。如果您有媒体服务器并希望所有媒体文件都显示在一个地方,这会很方便。如果有新文件上传到系统,可以将它们复制到mergefs目录,mergefs会自动将它们复制到有足够可用空间的磁盘中。下面举个例子让你更容易理解:$df-hT|grepdisk/dev/sdb1ext423M386K21M2%/disk1/dev/sdc1ext444M1.1M40M3%/disk2$ls-l/disk1/Videos/total1-rw-r--r--.1curtcurt0Mar817:17OurWedding.mkv$ls-l/disk2/Videos/total2-rw-r--r--.1curtcurt0Mar817:17Baby'sfirstXmas.mkv-rw-rw-r--.1curtcurt0Mar817:21Halloweenhijinks.mkv本例中挂载了两块磁盘,disk1和disk2。两个驱动器都有一个包含文件的视频目录。现在,我们将使用mergefs挂载这些驱动器,使它们看起来像一个更大的驱动器。$sudomergefs-odefaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=1M/disk1:/disk2/mediamergefs手册页非常广泛,所以我们将解释上面提到的选项。defaults:除非指定,否则将使用默认设置。allow_other:允许sudo或root以外的用户查看文件系统。use_ino:告诉mergefs提供文件/目录inode而不是libfuse。虽然不是默认设置,但建议您启用它以便链接的文件共享相同的inode值。category.create=mfs:根据可用空间在驱动器之间传播文件。moveonenospc=true:如果启用,则如果写入失败,将进行扫描以查找可用空间最多的驱动器。minfreespace=1M:使用的最小空间。disk1:第一块硬盘。disk2:第二块硬盘。/media:驱动挂载目录。它看起来像这样:grep磁盘/dev/sdb1ext423M386K21M2%/disk1/dev/sdc1ext444M1.1M40M3%/disk2$df-hT|grepmedia1:2fuse.mergerfs66M1.4M60M3%/media可以看到mergefs挂载显示的总容量为66M,这是两块硬盘的总容量。继续举例:有一个30M的视频叫Baby'ssecondXmas.mkv。让我们将它复制到使用mergefs挂载的/media文件夹中。$ls-lh"Baby'ssecondXmas.mkv"-rw-rw-r--.1curtcurt30MApr2008:45Baby'ssecondXmas.mkv$cp"Baby'ssecondXmas.mkv"/media/Videos/这是最终结果:$df-hT|grep磁盘/dev/sdb1ext423M386K21M2%/disk1/dev/sdc1ext444M31M9.8M76%/disk2$df-hT|grepmedia1:2fuse.mergerfs66M31M30M51%/media从磁盘空间利用率可以看出,因为disk1没有足够的空闲空间,所以mergefs自动将文件复制到disk2。以下是所有文件的详细信息:$ls-l/disk1/Videos/total1-rw-r--r--。1curtcurt0Mar817:17OurWedding.mkv$ls-l/disk2/Videos/total30003-rw-r--r--。1curtcurt0Mar817:17Baby'sfirstXmas.mkv-rw-rw-r--.1curtcurt30720000Apr2008:47宝宝的第二个Xmas.mkv-rw-rw-r--。1curtcurt0Mar817:21Halloweenhijinks.mkv$ls-l/media/Videos/total30004-rw-r--r--.1curtcurt0Mar817:17Baby'sfirstXmas.mkv-rw-rw-r--.1curtcurt30720000Apr2008:47宝宝的第二个Xmas.mkv-rw-rw-r--。1curtcurt0Mar817:21Halloweenhijinks.mkv-rw-r--r--。1curtcurt0Mar817:17OurWedding.mkv当您将文件复制到mergefs挂载点时,它总是会将文件复制到具有足够可用空间的硬盘驱动器。如果池中的驱动器都没有足够的可用空间,您将无法复制它们。
