我想要(首先)使用 3 台计算机来创建一个负载平衡服务。
我想使用循环或更好的方法:“NAT 和反馈”(客户端被发送到无关的服务器)。
因为我不想多次拥有相同的数据,所以如果可能的话,我想让所有服务器访问同一个硬盘。
我该怎么做呢?这是一个好主意/合理吗?因为一个高清硬盘一次只能被一台计算机读取——或者可以吗?
如果这是一个坏主意,我该怎么做才能不把所有空间都花在重复数据上?如果没有办法(这样就不会降低速度),我该如何同步高清硬盘?
我可以用 NAS 做些什么吗?
ps. 我想使用 mac os x lion 服务器和许多一两个 linux ubuntu 服务器
答案1
你可以做各种各样的事情,但作为一个曾经走过这条路,并且身上有伤疤可以证明这一点的人,我会强烈建议您克服对在多台机器上复制应用程序代码的毫无根据的厌恶。尝试集中化网站的这一方面会引入不必要的性能瓶颈和单点故障,并降低部署灵活性。
不要试图创建一个脆弱且不可靠的架构,而是集中精力实现部署和代码管理实践的自动化,这将提供更具可扩展性和稳健性的环境。
答案2
我该怎么做呢?这是一个好主意/合理吗?因为一个高清硬盘一次只能被一台计算机读取——或者可以吗?
是的,可以。这包括两个部分 - 首先是允许连接多台主机的接口 - SCSI 多年来一直这样做。SAN 允许这样做。据我所知,SATA 不允许。其次,您需要一个允许这种访问的文件系统 - 但您没有提供所用操作系统的详细信息。然而,IME 很少是解决问题的正确方法。
因为我不想多次获得相同的数据
为什么不呢?即使对于单个服务器(称为 RAID),这也是标准做法。通过在多台服务器上复制数据,您可以添加冗余 CPU、网卡、主板、内存、电缆......
如果数据变化相对较少,那么 rsync/unison 将复制文件。如果数据发生变化,则查看 AFS 或类似的复制集群文件系统。