有没有办法将不同的磁盘挂载为一个目录?假设我有一些带有 ext4 分区的磁盘:
/dev/sda1 1Tb mounted as /store1
/dev/sda2 2Tb mounted as /store2
/dev/sdb1 2Tb mounted as /store3
/dev/sdb2 2Tb mounted as /store4
我想要有/storeall
7Tb 的空间,将它们合并为一个逻辑目录,这样我就可以用一个rsync
命令来填充它。
在 Linux 上可以实现吗?我应该使用哪种文件系统?
答案1
mhddfs 正是您要找的:http://romanrm.net/mhddfs
您可以像这样安装:
mhddfs /mnt/a/,/mnt/b/,/mnt/c/ /storeall/
其中/mnt/a/
、/mnt/b/
和/mnt/c/
是三个不同的挂载点,可以来自三个不同的硬盘。您可以像这样卸载:
fusermount -u /storeall
如果一个磁盘发生故障,您只会丢失存储在该特定磁盘上的文件。如果您的数据对您来说很重要,并且您希望数据在磁盘故障后仍然存在,那么您应该考虑使用 RAID 设置(搜索 mdadm)。
编辑:PS!您挂载的设备甚至可以有不同的文件系统!
答案2
这不是文件系统问题,而是分区问题。
您要做的就是删除这些磁盘上的文件系统(备份这些磁盘上已有的任何数据),然后在所有四个磁盘上创建一个 LVM 卷集。然后您可以在该卷集中创建一个文件系统,并将该文件系统安装到一个位置并以此方式填充它。
请注意,这不会有任何冗余,并且如果您丢失四个磁盘中的任何一个,您都可能会丢失所有磁盘上的数据。
答案3
查看联合金融服务,也许对你有帮助。
答案4
MergerFS 是最近创建的选项。它是一个合并多个目录的 FUSE 文件系统:https://github.com/trapexit/mergerfs
mergerfs 在逻辑上将多个路径合并在一起。想象一个集合的并集。通过 mergerfs 执行或呈现的文件或目录基于为该特定操作选择的策略。
mergerfs 不支持 aufs 和 overlayfs 中的写时复制 (CoW) 行为。您无法挂载只读文件系统并对其进行写入。但是,mergerfs 在创建新文件时会忽略只读驱动器,因此您可以混合读写驱动器和只读驱动器。它也不会跨驱动器拆分数据。它不是 RAID0/条带化。它只是一个联合。