备注:联合文件系统这个功能在truenas上并不算好用,感觉有风险,使用需谨慎
其他资料:
https://askubuntu.com/questions/1074097/how-to-unmount-unionfs-fuse-filesystem
https://www.imangodoc.com/188628.html
from–:https://www.truenasscale.com/2022/01/25/509.html
介绍
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