1

我将解释我想要实现的目标。我想要的可能没有被正确地描述为分布式文件系统。

我们有 5 个人在运行 Ubuntu 12.04。我们每个人都有大约 200-500GB 的文件要不时共享。每个工作站都拥有文件的所有权。有时我们想共享文件。我还希望一个工作站能够在另一个工作站上编辑文件。

我想做的是拥有一个统一的分布式文件系统,这样如果我们转到统一的文件系统路径,它将列出来自每个工作站的所有文件。

我知道可以创建网络共享来实现类似的结果。这有一个问题,它要求用户检查每个共享是否有适当的文件。

我宁愿创建一个显示所有共享文件的统一共享,然后重定向到适当的计算机。

例如 cd /unifiedshare ls 会将用户带到最高级别的目录并显示来自 5 台不同计算机的所有共享文件

cd /unifiedshare/comp1 ls 将列出 comp1 共享的所有文件

我查看了一些分布式文件系统,例如 Chirp,它似乎不是我想要的。我不希望跨服务器/计算机保存文件。我宁愿让 comp1 拥有的文件留在 comp1 上。

我不太担心访问控制或限制。我们都在同一栋楼里。建议?

我确实通过类似的问题找到了这一点,但还没有机会阅读它。http://www.openafs.org/main.html

4

3 回答 3

2

还有Unionfs。每个人都会提供他们文件的 NFS 导出。然后,您将使用 Unionfs 加入它们,然后像​​任何其他文件系统一样挂载它:

mount -t unionfs -o dirs=/Mine:/His:/Yours:/Theirs none /mnt/everyones

在前面提到的多个 README 的情况下,/Mine/README 将是存在的,因为 /Mine 是第一个列出的。

于 2012-06-21T01:48:36.697 回答
1

我建议寻找其中一台机器的 NFS 共享。

或者,使用诸如unison之类的软件,您可以设置一个类似于 Dropbox 的客户端-服务器系统,其中每个文件都有共享文件的副本同步到一个中心位置并返回到每个客户端。

于 2012-06-21T01:42:53.047 回答
1

如果最大的问题是知道五个工作站中的哪一个具有您有兴趣编辑的文件,那么解决该问题的最简单方法可能是巧妙地使用locate(1)updatedb(8)程序。

让每台机器updatedb(8)在自己的一组导出文件上运行;使用该-U选项构建仅包含导出文件-o的数据库并将数据库输出到顶级导出目录。例如cron,通过 重建这些。/etc/cron.daily/

让每台机器上的每个用户LOCATE_PATH在他们的 shell 中设置环境变量,以引用所有五台机器导出的每个数据库。然后每个用户可以简单地运行locate README以查找README所有五台机器上命名的每个文件。

于 2012-06-21T01:43:17.360 回答