具有首选位置的地理分布式文件系统

dpb*_*dpb 11 linux nfs distributed-filesystems

我正在构建一个应用程序,该应用程序需要通过 WAN 跨几个站点分发标准文件服务器。基本上,每个站点都需要编写大量不同大小的 misc 文件(有些在 100 s MB 范围内,但大多数很小),并且编写的应用程序使得冲突不是问题。我想建立一个满足以下条件的系统:

  1. 每个站点都可以将文件存储在共享的“命名空间”中。也就是说,所有文件都将显示在同一个文件系统中。
  2. 除非必要,否则每个站点都不会通过 WAN 发送数据。即,WAN 的每一侧都有本地存储,这些存储将“合并”到相同的逻辑文件系统中。
  3. Linux & Free ($$$) 是一个加分项

基本上,像中央 NFS 共享这样的东西可以满足大多数要求,但是它不允许本地写入的数据留在本地。来自 WAN 远程端的所有数据将始终在本地复制。

我研究了 Lustre,并对其进行了一些成功的测试,但是,它似乎在分布式存储中相当均匀地分布文件。我已经翻阅了文档,并没有发现任何自动将“首选”本地存储而不是远程存储的内容。即使是具有最低延迟存储的东西也可以。它在大部分时间都可以工作,这将满足此应用程序的要求。


对下面提出的一些问题的一些答案:

  • 服务器节点:2 或 3 个启动。每个服务器将有数十个同时读/写客户端连接。
  • WAN 拓扑是全网状且可靠的。(大公司,成本不像繁文缛节那样限制)
  • 客户端故障转移:我实际上没有考虑过客户端故障转移(主要是因为我们当前的应用程序不仅仅在一个站点上执行此操作)。我认为实际的答案是,每个地理分布站点的服务器都应该是它们所服务的客户端的单点故障。但是,如果您正在考虑此处的特定内容,我认为这与讨论非常相关。
  • 自己动手:我已经考虑过 rsync/unison,但是我需要相当多的奇特逻辑才能使这项工作的“动态”部分无缝地工作。即,文件似乎是本地的,但仅在需要时检索。
  • MS-DFS:这似乎是我应该研究的问题。我的主要问题可能是不确定 Windows 上的 NFS 服务器配置/可靠性/性能,因为许多连接的客户端都是 NFS 客户端。

Chr*_*rpe 5

对 Linux 的要求感到羞耻。这正是 Windows DFS 所做的。从 2003 R2 开始,它也是在块级别的基础上进行的。