我正在寻找一种易于设置、维护和可扩展的“并行文件系统”。
我的目标是在 Linux 机器上拥有一个单一的安装点,应用程序可以使用标准编码实践(例如 C++)读取/写入,这基本上是几个安装点。我不是在寻找速度,我在寻找存储和可靠性;虽然速度显然是一个加分项。
例如,让我们说:
/mnt1 -> smb://srvr1/share
/mnt2 -> smb://srvr2/share
/vfs -> mnt1 + mnt2
我查看了 ZFS,虽然它们支持将实际文件作为磁盘,但他们不推荐它。有人对此有什么建议吗?
大多数这些类型的文件系统都不是很容易设置和维护。但是GlusterFS可能会满足您的需求,并且与这些事情一样简单。
其他选项是AFS、Lustre(很难设置和维护)和pNFS。
有一个新的有趣的项目叫做SheepDog,但它的主要重点是作为虚拟机的后端。
当您说“并行”文件系统时,听起来您实际上在描述的是文件系统的“堆栈”。这就是UnionFS所做的。虽然我不确定它是否支持使用 SMB 安装,但值得一看。
还有aufs(Another Union FS),顾名思义,它是同一概念的另一种实现。
你真的需要组合挂载点吗?
假设您的存储需求不在 SAN 领域,您可能最好使用 RAID 和 LVM 的混合。至少将事情简化为单个文件系统,而不是添加额外的元文件系统。(你说的是认真的!)
有像 UnionFS 这样的项目,已经在另一个答案中解决了这类问题。但是,这存在很大的问题。这对于“我想从这张 CD 开始并对其进行一些更改”非常棒,但实际上将写入分布在一堆相等的文件系统中是另一回事。
否则,您将处于“集群文件系统”领域,而这些通常不是由 CIFS 共享构建的……
你想要的是一个 Samba RAID。
首先,挂载 samba 共享(可能将它们添加到 fstab),并在每个 samba 共享上创建文件以充当块设备:
(将 10000M 替换为所需大小)
按照此处的说明进行操作,但对于块设备,请使用您刚刚创建的文件。这可能会很慢。
或许你也可以看看mhddfs,类似于aufs:
http://svn.uvw.ru/mhddfs/trunk/README
甚至还有一个 Debian 软件包,至少在 Sid 中。
有几个并行文件系统。然而,大多数设置起来非常复杂,并且针对超级计算进行了优化。见PVFS,Gluster,Lustre, CEPH ...
PVFS 是迄今为止最容易设置恕我直言,它可以轻松调整大小并重新导出为 samba 和 NFS。
Gluster 基于 Fuse,因此它具有通常的 Fuse 限制(性能,不支持 nfs-kernel-server),但通常非常好。
Lustre 确实需要相当多的节点才能变得有趣,并且在渲染农场/计算节点应用程序之外几乎是无用的。
明确一点:如果您不是出色的 linux 管理员,请忘记它。所有这些系统都要求您知道如何编译和安装内核和内核模块,编辑大量晦涩的配置文件并完全从控制台工作。当然不适合 Ubuntu 菜鸟人群。