2012-06-21 51 views
1

我将解释我正在努力实现的目标。我想要的可能是没有正确描述为分布式文件系统。Ubuntu中的分布式文件系统

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

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

我知道有可能创建网络共享来获得类似的结果。这有一个问题,它需要用户检查每个共享的适当文件。

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

例如 CD/unifiedshare LS 将采取用户到最高级别的目录,并从5级不同的计算机

CD/unifiedshare/COMP1 LS 会列出所有的文件是显示所有的共享文件由comp1共享

我已经看过一些分布式文件系统,如Chirp,它似乎并不完全是我想要的。我不希望跨服务器/计算机保存文件。我宁愿将comp1拥有的文件保留在comp1上。

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

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

+0

那么,你想让所有3000多个文件看起来像他们在一个目录?如果机器1和机器2都有一个名为'README'的文件,会发生什么? – sarnold

+0

我不想让所有的文件都在一个目录中,而是每个工作站都有目录或某种结构。在阅读更多有关啁啾声之后,看起来可以做到这一点。 – RSolis

+0

我想我很困惑'/ unifiedshare /'的作用是什么。 – sarnold

回答

1

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

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

1

如果最大的问题是要知道五个工作站中哪个工作站有你想编辑的文件,可能最简单的方法就是巧妙地使用locate(1)updatedb(8)程序。

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

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

+0

感谢大家的建议。这很有帮助。我将不得不做更多的阅读。 – RSolis

2

还有Unionfs。每个人都会提供文件的NFS导出。然后你会使用的unionfs加入他们的行列,然后装入它像任何other filesystem

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

在多个自述文件的上述情况下,/矿山/ README,因为/我的是第一个上市的将是一个存在。