怎么共享服务器间的数据

如何共享服务器间的数据
这个问题放在这里也许不是很合适,但好像也没找到更合适的地方

问题描述:
背景
1) 有很多服务器,分布在不同的局域网里面,当然他们都是连接外网的,有windows,也有linux。
2)因为存储的历史数据量很大,所以为了节省成本我们不在每个服务器上都存,而是选择在某些服务器上存(暂称为主服务器),其他服务器(暂称为从服务器)如果需要的时候到就近的主服务器上去取
3) 一个局域网内会有一台主服务器
要求
4)从服务器如何到主服务器取数据?

我想到的方法目前有两种:
1) 通过网络共享,因为在一个局域网里面。优点:实现简单;缺点:如果我们想要在本局域网之外弄一台备用主服务器就实现不了了。
2) 通过socket连接,发送请求去主服务器,然后从主服务器返回我们想要的数据。 优点:可以跨过局域网共享;缺点:需要自己实现代码,并且要保证代码的可靠性和稳定性。


不知道大家有没什么其他好的想法,或是意见?

------解决方案--------------------
你不觉得你提的需求太飘渺了吗。

1,防火墙防什么? 只开80端口?
2,你不是要广域网实现文件共享吗? 怎么方案一就限制在局域网里了? 

方案好多,你需求不明确没法弄。

scp/sftp
rsync
nfs
分布式文件系统
数据库? maser-slave
http 80? get/post/head/webdav.

------解决方案--------------------
那我觉得你用ftp/scp/sftp都可以, 这些协议都有成熟的第三方客户端开发库, 没有什么难度.

http://www.php.net/manual/en/book.ftp.php
http://cn.php.net/manual/en/book.ssh2.php

给你php的链接,你可以简单了解一下客户端开发的难易程度,毕竟架设vsftpd和sshd都很简单。


------解决方案--------------------
探讨

如果我想用分布式文件系统,有没好的推荐?

文件量大概是几个TB