介绍

mergerfs是一个联合文件系统,旨在简化众多存储设备中文件的存储和管理。它类似于mhddfs,unionfs和aufs。

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

建议大家可以自行搜索了解,这里就不详细介绍了。简单说就是可以将几个相同或者不同的文件系统的目录联合在一起使用

使用

我们今天使用的是docker(或者docker compose)的方式,并不限制系统,理论上所有的Linux都可以使用这个教程

SCALE安装portainer

docker方法

docker run -d --network="host" -v /mnt/important/appbackup/mergertest:/mnt/disk1:shared -v /mnt/unimportant/downloads/mergertest:/mnt/disk2:shared  -v /mnt/SSD/apps/mergerfs:/data:shared  --security-opt apparmor=unconfined --cap-add SYS_ADMIN --device /dev/fuse --name=mergerfs hotio/mergerfs /mnt/disk1:/mnt/disk2 /data -o allow_other,use_ino

-v /mnt/important/appbackup/mergertest:/mnt/disk1:shared 挂载一个目录

-v /mnt/unimportant/downloads/mergertest:/mnt/disk2:shared挂载另一个目录

-v /mnt/SSD/apps/mergerfs:/data:shared挂载输出联合文件系统的目录

如命令显示,我挂载了两个目录,一个联合文件系统的目录,运行以后我们在联合文件目录里写入文件就会自动的分配到我们挂载的两个目录

docker compose方法

建议在portainer里面使用docker compose,这样更新系统不会影响docker compose运行

version: '3'
services:
  mergerfs:
    container_name: mergerfs
    network_mode: host
    image: hotio/mergerfs
    volumes:
      - /mnt/important/appbackup/mergertest:/mnt/disk1:shared
      - /mnt/unimportant/downloads/mergertest:/mnt/disk2:shared
      - /mnt/SSD/apps/mergerfs:/data:shared
    devices:
      - /dev/fuse      
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor=unconfined
    restart: always
    command: /mnt/disk1:/mnt/disk2 /data -o allow_other,use_ino
最后修改:2022 年 01 月 25 日
感谢您的支持