Ubuntu中的分布式文件系统

时间:2012-06-21 01:32:24

标签: file ubuntu system distributed

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

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

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

我知道可以创建网络共享以实现类似的结果。这具有以下问题:它需要用户检查每个共享以获得适当的文件。

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

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

cd / unifiedshare / comp1 LS 将列出comp1

共享的所有文件

我看过一些像Chirp这样的分布式文件系统,它似乎并不是我想要的。我不打算跨服务器/计算机保存文件。我宁愿让comp1拥有的文件保留在comp1上。

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

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

3 个答案:

答案 0 :(得分:2)

还有Unionfs。每个人都会提供其文件的NFS导出。然后,您可以使用Unionfs加入它们,然后像​​任何other filesystem一样安装它:

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

在前面提到的多个自述文件的情况下,/ Mine / README将会出现,因为/ Mine首先列出。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

让每台计算机上的每个用户在其shell中设置LOCATE_PATH环境变量,以引用由所有五台计算机导出的每个数据库。然后,每个用户只需运行locate README即可在所有五台计算机上查找名为README的每个文件。