在数据中心之间共享/ home


15

我有两台服务器,分别位于荷兰和法国的数据中心。两者都在运行Debian Wheezy。我需要在它们之间共享/ home,并具有良好的性能。服务器上有300多个用户,其中大约30个用户应该能够在给定的时间在给定的服务器上拥有活动的进程,每个进程每秒具有50 kbit的读取和20 kbit的写入,每秒的峰值约为2000 kbit /的阅读。在本地存储上使用iotop进行测量。我有很多小文件,总计约500000,并且需要尽可能低的延迟。服务器之间的Ping为17毫秒,使用scp和wget时,连接速度可以达到20-30 MB / s。似乎应该有足够的可用带宽,但是...

到目前为止,我确实了解过:sshfs:似乎它的性能比nfs好,但是它随机地将文件的权限更改为root,从而导致应用程序崩溃。

nfs:减慢速度的方法,noatime尝试了很多其他选择,但是即使只有少数几个进程处于活动状态,它也仍然运行缓慢。

drbd:5个小时的无用功,当我意识到我实际上无法在两个系统上都挂载文件系统时:-(

glusterfs:所有数据的本地副本确实听起来很有希望,但是随机文件访问确实很慢,并且运行一段时间后,它变得令人难以置信的缓慢并且几乎挂起。noatime没有帮助。

NFS再次:仍然疲软。

哭泣的键盘:根本没有改善。

接下来要尝试什么?在上周,每个失败的试验都花了一个晚上甚至更长的时间,我真的很想使用下一种方法。是的,两个服务器之间共享文件系统至关重要。

感谢您提供有关此问题的任何新想法。


6
“哭到键盘:根本没有改善。” 好,那是我的+1。
ceejayoz

您可能需要glusterfs或ceph。分布式文件系统。另外,您可以多次装载drbd,但是只能一次读写,这无论如何都是一个可怕的坏主意。
Sirex 2014年

我尝试了glusterfs,虽然它适用于大型文件,但在读取或写入小型文件时却变得非常缓慢。这似乎是glusterfs的常见问题,我还没有找到解决方法。我将研究Ceph。您是否尝试过自己尝试过?
user3850506 2014年

3
安装相同的块设备和文件系统,即使RO在不同的系统上也是很糟糕的,除非文件系统驱动程序了解到支持的块设备可以在任何时间任意更改。块设备可能会更改并使inode缓存完全失效,并且VFS会愉快地读取不再在您认为的位置的数据。诸如GFS2和Veritas之类的共享磁盘感知文件系统可以在DRBD或任何类似SAN的磁盘上做到这一点。我不能肯定地说您的小文件性能是否可以接受。
Andrew Domaszek 2014年

Answers:


2

有一些可能的解决方案:

  1. 您可以使用复制的块存储,例如DRBD(或上述的MARS),但是您需要在块存储之上设置集群文件系统。这样的文件系统可以是GFS2或OCFS2,它们都可以在Debian内核afaik中使用。DRBD可以处理主服务器/主服务器,您可以同时将其安装在两台服务器上。但是,如果使用标准文件系统执行此操作,则一台服务器不了解另一台服务器,那么您将在几秒钟内销毁文件系统。顶部的群集文件系统将处理通信和锁定,以便两个节点都可以写入同一块。

  2. 将分布式文件系统用于/ home。您可以在http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems找到此类文件系统的列表。但是要当心并明智地选择。他们都不能做魔术,都有缺点。Gluster就是这样的文件系统。对于某些系统,您可能需要多个节点。

  3. 如果不必实时复制它,并且几乎实时的文件同步就足够了,请查看BitTorrent Sync(http://www.getsync.com/),Dropbox或其他替代品。每个服务器都有自己的/ home,但更改会根据文件复制到其他服务器。


1
rsync ftw 123456
dmourati 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.