sys*_*138 12 windows-7 high-availability glusterfs
我们有一个用于处理功能的 GlusterFS 集群。我们希望将 Windows 集成到其中,但在弄清楚如何避免单点故障(Samba 服务器为 GlusterFS 卷提供服务)时遇到了一些麻烦。
我们的文件流是这样工作的:
Gluster 很棒,因为它提供了分布式卷以及即时复制。抗灾能力不错!我们喜欢它。
但是,由于 Windows 没有本机 GlusterFS 客户端,我们需要某种方式让基于 Windows 的处理节点以类似的弹性方式与文件存储交互。该GlusterFS文档指出,为了提供Windows访问的方式是建立在顶部处的Samba服务器安装GlusterFS卷。这将导致这样的文件流:
对我来说,这看起来像是单点故障。
一种选择是集群 Samba,但这似乎基于目前不稳定的代码,因此无法运行。
所以我正在寻找另一种方法。
关于我们抛出的数据类型的一些关键细节:
此工作负载不适用于“静态工作单元大小”Hadoop 设置。同样,我们评估了 S3 风格的对象存储,但发现它们缺乏。
我们的应用程序是用 Ruby 自定义编写的,我们在 Windows 节点上有一个 Cygwin 环境。这可能对我们有帮助。
我正在考虑的一个选择是在安装了 GlusterFS 卷的服务器集群上提供一个简单的 HTTP 服务。由于我们对 Gluster 所做的一切本质上都是 GET/PUT 操作,这似乎很容易转移到基于 HTTP 的文件传输方法。将它们放在一个负载平衡器对之后,Windows 节点可以 HTTP PUT 到它们的小蓝心的内容。
我不知道GlusterFS 一致性将如何保持。HTTP 代理层在处理节点报告它已完成写入和它在 GlusterFS 卷上实际可见之间引入了足够的延迟,我担心稍后尝试获取文件的处理阶段不会找到它。我很确定使用direct-io-mode=enable
mount-option 会有所帮助,但我不确定这是否足够。我还应该做些什么来提高一致性?
还是我应该完全采用另一种方法?
正如汤姆在下面指出的,NFS 是另一种选择。所以我做了一个测试。由于上述文件具有我们需要保留的客户端提供的名称,并且可以采用任何语言,因此我们确实需要保留文件名。所以我用这些文件建立了一个目录:
当我从安装了 NFS 客户端的 Server 2008 R2 系统挂载它时,我得到如下目录列表:
显然,Unicode 没有被保留。所以NFS对我不起作用。
我喜欢 GlusterFS。实际上,我喜欢 GlusterFS。只要你可以给它一些专用带宽,一切都很好。
GlusterFS 最好的事情之一是将它与 NFS 一起使用。我最近一直在使用的令人惊讶的事情之一是Windows 7 和 2k8R2 上的 NFS。
这就是我要做的。
集群 Samba 听起来很可怕,即使你这样做了,Samba 仍然缺乏在某些 Windows 网络中可靠运行的能力(所有 NT4 域兼容性,似乎永远无法超越)。
我认为因为每个 gluster 节点都处于分布式、复制模式,所以理论上你应该能够连接到任何一个并允许它担心移动你的数据。因此,heartbeatd 应该是进行重定向和控制与您交谈的对象的东西。
至于你的
我建议你研究一下使用 XFS 作为底层文件系统,因为它对大文件系统非常好,并且在 GlusterFS 下支持
归档时间: |
|
查看次数: |
7836 次 |
最近记录: |