将ubuntu设置为NAS——14.尝试mergerfs合并多个物理硬

2021-10-18 15:35:41 30点赞 89收藏 17评论

创作立场声明:本人小白,只是想通过本平台记录一些折腾以Ubuntu系统为主的NAS过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。

前言

之前发文简单介绍了在Ubuntu下的新增硬盘挂载方案,评论区有大佬提到了mergerfs,简单百度了一下,发现是个神器,于是就有了这篇文章。利用这个软件,我实现了多块物理硬盘(可以是不同格式)合并到一个分区文件夹中进行管理,后面又利用此软件实现外接USB3.0的移动硬盘与内部硬盘合并为一个分区文件夹。

1、mergefs介绍

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

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

从我的感受就是mergerfs+snapraid能实现类似unRAID的硬盘管理方式,我个人不喜欢采用冗余盘来做数据校验保证数据的安全性,一般我是重要数据冷备份方式,或是多处硬盘数据同步,不重要的数据也没有备份的必要。比如重要照片在NAS系统存储,再同步到私人PC电脑上,隔段时间冷备份到移动硬盘。所以我就直接采用mergerfs,不需要snapraid校验保证数据。如果你需要数据校验等功能,需要再安装snapraid校验保证数据。

通过mergerfs,能将多个物理硬盘组成一个分区文件夹,可以是不同格式,比如ext4ntfs混合为一个分区文件夹,当我需要拆出其中硬盘时,也能保证不破坏硬盘数据,还能在其他电脑里把数据拷贝出来。新买硬盘或是想把现有数据的硬盘加到NAS,还能在不清除数据的情况,不需要格式化为ext4,挂载到同一分区文件夹中利用Ubuntu进行管理,这对管理媒体文件,是很方便的。

2、mergerfs安装

mergerfs 官网,里面安装方法很仔细,还有详细的设置,不过确实看着很复杂。试试安装看吧

方法一:直接安装(本人推荐)

当然最简单的安装方法是

sudo apt install mergerfs

方法二:新建mergefs文件夹,并进入此文件夹

mkdir mergerfs
cd ./mergerfs

下载最新版mergefs,目前这次尝试我用的是我的超级蜗牛,安装了 Ubuntu 20.04,找到合适版本如下,其他系统请下载其他版本(比如 Ubuntu 18.04 用mergerfs_2.32.6.ubuntu-bionic_amd64.deb)

wget https://github.com/trapexit/mergerfs/releases/download/2.32.6/mergerfs_2.32.6.ubuntu-focal_amd64.deb

安装

sudo dpkg -i ../mergerfs_2.32.6.ubuntu-focal_amd64.deb

图上是2.31.0版本(之前安装截图的),最新是2.32.6图上是2.31.0版本(之前安装截图的),最新是2.32.6

3、mergerfs挂载硬盘

首先查看NAS服务器下的硬盘情况

sudo fdisk -l

本机硬盘挂载情况本机硬盘挂载情况

目前我的硬盘主要是1块64G固态做系统,2块500G机械硬盘主做存储。

查看硬盘的UUID

sudo blkid

查看硬盘的UUID查看硬盘的UUID

64G固态硬盘为sda2, UUID="add73d6a-c780-4922-854e-0007631dc53e" TYPE="ext4" PARTUUID="b2b48c97-e412-479d-8b91-56820d093018"

其中一块500G机械硬盘为 sdb1, UUID="32F057E6F057AF3B" TYPE="ntfs" PARTUUID="e80b2b83-01"

另外一块500G机械硬盘为sdc1,UUID="5E1578FC2B456847" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6515ebc5-76ee-4c93-a629-431ff7aabdfa"

准备硬盘挂载点,计划挂载载/mnt目录下面

sudo mkdir /mnt/disk{1,2}
sudo mkdir /mnt/all

其中disk1和disk2用于挂载2个机械硬盘,all用来mergerfs合并分区。

编辑fstab将分区信息写到/etc/fstab 文件中让它永久挂载。

sudo nano /etc/fstab

添加如下内容:

# /mnt new harddisk
UUID=32F057E6F057AF3B /mnt/disk1 ntfs defaults
UUID=D61DFC12BB32EDB9 /mnt/disk2 ntfs defaults

# mergerfs storage combine data harddrives into single storage
/mnt/disk* /mnt/all fuse.mergerfs defaults,allow_other,minfreespace=10G,fsname=mergerfs,ignorepponrename=true 0 0

添加内容添加内容

其中最重要的是mergerfs相关命令

fuse.mergerfs defaults,allow_other,minfreespace=10G,fsname=mergerfs,ignorepponrename=true 0 0

简单介绍一下上述参数的意义。

defaults:开启以下 FUSE 参数以提升性能:atomic_o_trunc, auto_cache, big_writes, default_permissions, splice_move, splice_read, splice_write;

allow_other:允许挂载者以外的用户访问 FUSE。你可能需要编辑 /etc/fuse.conf来允许这一选项;

use_ino:使用 mergerfs 而不是 libfuse 提供的 inode,使硬链接的文件 inode 一致;

minfreespace=10G:选择往哪个下层文件系统写文件时,跳过剩余空间低于 10G 的文件系统;

fsname=mergerfs:设置文件系统的名称为 mergerfs,特可以自定义其他名字如mount,df等 。

ignorepponrename=true:重命名文件时,不再遵守路径保留原则,保持原来的存储路径。

填好上面内容后,ctrl+O保存(输入Y确认),ctrl+X退出。

对磁盘挂载分区进行更新挂载

sudo mount -a

再查看挂载情况

df -TH

再查看挂载情况再查看挂载情况

已经能看到挂载各个硬盘,以及mergerfs挂载情况,mergerfs容量 = disk1容量 + disk2容量,共计 995 G 。

4、合并移动硬盘

购入移动12T西数硬盘,准备也合并起来,考虑USB3.0传输速度问题也不大,并且对蜗牛的NAS的供电不是太信任,直接接USB3.0,而不是拆出来使用,还是用原来的西数硬盘盒,再将移动硬盘挂载合并使用。

准备硬盘挂载点,还是挂载/mnt目录下面

sudo mkdir /mnt/disk3

查看移动硬盘信息

sudo blkid

查看移动硬盘信息查看移动硬盘信息

重点记住UUIDTYPE

编辑fstab将分区信息写到/etc/fstab 文件中让它永久挂载。

sudo nano /etc/fstab

编辑fstab将分区信息编辑fstab将分区信息

保存退出后,对磁盘挂载分区进行更新挂载

sudo mount -a

如果出现问题,可能是USB已经自动挂载了,再挂载后出现重复挂载的情况,那就重启一下NAS服务器。

fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option

重启ubuntu服务器后,查看mnt/all容量,已经有12.7T了,挂载成功。

查看mnt/all容量查看mnt/all容量

局域网测试移动文件

局域网测试移动文件局域网测试移动文件

基本达到了局域网千兆网速要求,这样的分区设置,基本对硬盘速度没有。后期使用过程,这样的分区设置,部分文件移动还是会有些影响,可以微调mergerfs相关命令,不过目前本文使用的这个默认命令,已经可以满足大部分应用场景需求。如要调整请参照官网说明

总结

通过尝试mergerfs管理磁盘,合并多个物理磁盘为同一挂载文件,方便了文件管理。之前有小伙伴提到mergerfs影响磁盘性能,经过简单测试,并没有这个问题。我理解本软件实现的只是不同物理硬盘的映射方式,对硬盘本身是没有影响的,即不能加速,也不会减速。

参考

mergerfs官网:https://github.com/trapexit/mergerfs

https://forums.serverbuilds.net/t/setting-up-media-server-using-ubuntu-and-snapraid/239/2

WZYBOY'S BLOG

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2499元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1749元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3479.01元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2582.5元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2644.05元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1349元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1699元起

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

385.78元起
17评论

  • 精彩
  • 最新
  • 这个跟raid1有什么区别么? 不是很懂, 如果其中一个硬盘坏了, 数据会怎样?

    校验提示文案

    提交
    不一样的,这个数据之间没有影响,坏了就是坏那块硬盘上的数据

    校验提示文案

    提交
    这是存储池,其实硬盘还是分开的,只是统一管理了

    校验提示文案

    提交
    收起所有回复
  • 好东西,不过这样子是不是只能在ubuntu下面管理文件了?威联通里面还能管理文件吗

    校验提示文案

    提交
    威联通里面没试过,但挂载的原理上讲,只要选择路径是合并后,还是能管理的

    校验提示文案

    提交
    好家伙,我一直以为你的文章是基于威联通的,原来我看错标题了 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 这个如果坏一块硬盘其他的硬盘还能读么?

    校验提示文案

    提交
    可以用的,其他不受影响

    校验提示文案

    提交
    收起所有回复
  • 我是用lvm给三块硬盘创建了一个卷组,挂载后也可以像一块硬盘一样管理,而且还可以给卷组增加ssd缓存,不知道和你这个有什么区别。

    校验提示文案

    提交
    lz应该是不知道lvm这么好的东西吧

    校验提示文案

    提交
    收回刚刚的发言 这个mergerfs还是有很意思的!

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 支持一下。很不错

    校验提示文案

    提交
  • 和lvm有啥区别?

    校验提示文案

    提交
    lvm 是无法直接将物理驱动器移出 存储池的。用这个可以把驱动器直接拔下来,插到别的设备上,里面的数据照常使用

    校验提示文案

    提交
    收起所有回复
  • 好东西,早知道这个我就不花钱买Windows的StableBit DrivePool了

    校验提示文案

    提交
  • mount --bind original_path new_path,也可以在/etc/fstab加 original_path new_path none rw,bind 0 0 直接开机自动挂载

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
89
扫一下,分享更方便,购买更轻松