容错networking访问异构环境(包括Windows)中的冗余存储?

我们正面临devise“挑战”,我们需要build立具有以下属性的存储解决scheme:

我们需要的

    • 一个可扩展的存储后端
    • 在客户端的离线/断开操作来解决networking中断
  1. 跨平台访问
    • 从肯定的Windows(可能是XP向上),可能是Linux的客户端访问
    • 后端集成了AD / LDAP(权限pipe理(用户/组pipe理,…))
  2. 应该通过慢速WAN链路合理地工作

另一个问题是,我们并不真正了解所有可能的用例,如果人们需要能够并发访问共享文件,或者他们只能访问自己的文件,那么可能的解决scheme需要考虑并发访问从用户的angular度来看,冲突pipe理将如何看待这种情况。

这两年的博客文章总结了我在过去几天的研究中得到的印象,有很多目前的übercool项目实施(非Windows)群集PBaby blob存储解决scheme,但有没有一个支持断开连接的操作很好,本地化,但我希望我们已经错过了一个明显的解决scheme。

我们已经尝试过了

的OpenAFS

我们认为我们需要一个带有本地caching​​的分布式networking文件系统,并testing了一个星期的OpenAFS(作为目前唯一支持断开操作的“稳定的”DFS,似乎是一条路),但是有几个问题:

  • 这是一个真正的痛苦设置
  • 没有官方的RHEL / CentOS软件包
  • elrepo目前的稳定版本1.6.5.1的包随机在新鲜的安装上发生恐慌,这是绝对不行的
  • Windows支持(包括所需的Kerberos包)是神秘的。 1.6分支的当前客户端不能在Windows 8上运行,1.7是当前的客户端,但它只是随机崩溃。 之后,我们甚至没有对XP和Windows 7进行testing。只能说,我们无法正常工作,整个设置如此不稳定和复杂,以至于不能用于生产。

桑巴+联合

由于OpenAFS是一个完整的灾难,并没有其他的DFS似乎支持断开连接的操作,我们去了一个更简单的想法,使用Unison将文件同步到Samba服务器。 这具有以下优点:

  1. 桑巴集成了AD; 这是一个痛苦,但可以做到。
  2. Samba解决了从Windows远程访问存储的问题,但引入了另一个SPOF,并没有解决实际的存储问题。 我们可以将Samba下的任何集群FS捆绑在一起,但这意味着我们需要一个HA Samba安装来维护高可用性,这可能会增加很多额外的复杂性。 我依稀记得以前尝试用Samba实现冗余,而且我不能在服务器之间静静地进行故障切换。
  3. 即使在线时,您也正在使用本地文件,如果仅在断开连接时触摸本地caching,将导致更多的冲突
  4. 这不是自动的。 我们不能期望用户定期使用(function性但不太漂亮的)GTK GUI手动同步他们的文件。 我试图用Windows任务计划程序半自动化这个过程,但是你不能以令人满意的方式真正做到这一点。
  5. 最重要的是,Unison的工作方式使得与Samba同步成本很高,所以恐怕它不能很好地扩展,甚至根本就不能扩展。

Samba +“脱机文件”

之后,我们变得有点绝望,给了Windows“离线文件”一个机会。 我们认为拥有内置于操作系统的东西可以减lesspipe理工作, 在工作不正常时帮助指责其他人,因为人们已经使用了这么多年,所以应该工作。 对? 错误。 我们真的想要它的工作,但它不是。 30分钟复制文件和拔掉网线/禁用networking接口留给我们

  • (无声!状态栏中的Windows资源pipe理器中只有一个很小的通知,如果点击它,它甚至不会打开同步中心!)服务器上的不可修复的文件(!)和
  • 甚至不应该是冲突的冲突。

最后,我们有一个小文本文件成功同步,其他一切只是爆炸可怕。

除此之外,还有其他问题:

  • 微软承认,Windows XP中的“脱机文件”无法处理“大文件”,因此不会caching/同步它们,这意味着如果连接中断
  • 在Windows 7中,该function仅适用于Professional / Ultimate / Enterprise版本。

概要

除非另有一个支持Windows的容错DFS,否则我认为在GlusterFS / Lustre / whatnot之类的东西上堆叠一个HA Samba集群是唯一的select,但是我希望在这里我错了。 其他公司如何允许在具有Windows的异构环境中容错networking访问冗余存储?

正如我以前所说,DFS不是您要求的正确方法。

我认为以下解决scheme堆栈最适合您:

  1. 分布式HA对象存储,如Openstack SWIFT( https://wiki.openstack.org/wiki/Swift )。

  2. 对象存储顶部的类似Dropbox的应用程序(例如http://www.gladinet.com/openstack-access-solution.html )。