我有几个使用 VisualSVN Server 在 Amazon EC2 上运行的 Windows 服务器实例,我想通过使用负载均衡器运行重复实例来提高它们的容错能力。
问题在于具体的数据,例如,如果文档根目录(即“C:/Repositories”)的内容不一样,那么从一个 Web 服务器故障转移到另一个 Web 服务器是没有用的。
我的基本想法是在 EC2 实例之间共享卷(即“C:/Repositories”):
但我却有很多疑问:
运行指向同一个 repo 的两个/多个 VisualSVNServer 实例是否可能/安全?
在 Amazon Load Balancer 后面运行 VisualSVNServer 实例是否可行/安全?
运行指向网络文件系统的 VisualSVNServer 实例是否可行/安全?
我还没决定在 AWS S3 和 AWS EBS 之间选择,您推荐什么作为 VisualSVNServer 和 NFS 架构的最佳存储解决方案(我认为是 EBS,但他们是 AWS 服务中的新手)?
答案1
- 是的,这是可能的,而且是安全的。
- 是的,应该可以。但我建议您启用 Amazon Load Balancer Sticky Session 功能
- 是的,应该可以,但有一些注意事项:您应该小心用于访问共享数据的网络协议。Subversion 依赖于文件锁定和原子文件移动操作。众所周知,SMB 和 SMB2 运行良好,而 Unix NFS 协议可能存在问题。
- 我没有足够的 AWS 经验来回答这个特定问题。
顺便说一句,我建议你考虑一下VisualSVN 服务器多站点存储库复制(2) 此类部署的功能。在这种情况下,您将在每台服务器上拥有单独的数据副本,这些副本可以分布在不同的地理位置,以便更快地访问。
(1)http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html
(2)https://www.visualsvn.com/server/features/multisite-replication/