基于私有云的数据库高可用架构实践
新闻资讯

基于私有云的数据库高可用架构实践

发布时间:2022-03-30 浏览次数:32

一、背景

目前,对互联网行业而言,在数据库应用上大规模使用SQL Server的并不多见,更多的企业基于LAMP架构来使用MySQL数据库。在这样的背景下,业内基于MySqL数据库的应用架构非常活跃,提供了多种选择,而基于SQL Server数据库的架构,可供参考的案例则极其有限。

有别于MySQL在数据库架构设计上的多样性和灵活性,基于SQL Server的高可用架构更多的还是基于SAN存储的集群架构。

同时,在云计算蓬勃发展的今天,各种公有云、私有云及混合云技术在IT基础架构中都得到很好的发展及应用。基于对这种趋势的判断,未来云计算将成为主流。 对于SQL Server数据库的架构而言,如何能够将虚拟化及私有云技术应用到其中是一个可以值得研究的课题。

基于以上,我们希望设计一套针对SQL Server的高可用架构,能够充分利用私有云的相关技术,同时在存储架构上能够有别于传统的SAN网络。

二、方案设计

对于私有云,我们最先想到的会是开源的OpenStack技术,这估计是目前被应用得最多的开源云计算技术。

在方案设计之初,我们也尝试利用OpenStack来支持SQL Server数据库,尝试着去搭建能够满足我们需求的架构,但在进一步的了解与测试之后,发现并不合适。虽然在OpenStack上搭建Windows虚拟机是可行的,但考虑到OpenStack对Windows的有限的支持能力,以及数据库应用对于IO的高吞吐要求,我们会担心在性能上并不能满足对搭建SQL Server数据库的实际需要;同时,在其它方面也存在很大的局限性和不确定性。

最终我们放弃了开源的技术方案,转而寻找微软技术体系下的可替代方案。

得益于微软对于Windows Server的不断升级与优化,最终借助于Windows Server 2012 R2中的相关技术,我们可以快速搭建一套在Windows平台下的私有云架构,

三、整体架构分为四层:

  • 最上层是我们的应用层,利用 Hyper-V技术来实施虚拟化,能够为具体的业务应用提供满足实际需要的计算资源;同时结合群集服务,我们可以实现虚拟机在不同宿主机之间的动态迁移。

  • 第二层为文件系统层,利用SOFS技术来为上层应用提供高可用的共享存储服务。在应用层计算节点与SOFS文件共享服务之间, 将利用SMB3.0协议来提供高效的数据交互服务。在这种架构下,对于Hyper-V虚拟机,其所有文件(包括虚拟机配置,VHD文件,快照)都将存储在SOFS之上。

  • 第三层为存储空间层,利用Windows Server 2012最新的WSS技术,将底层的硬件存储资源通过虚拟化技术整合为可用的逻辑磁盘,提供给上层的SOFS来使用,是一种可靠的存储池资源;

  • 最下层为物理硬件层,提供了实际的物理空间支持,可支持动态扩展。

四、私有云实践

利用以上架构及其所涉及到的相关技术,同时配合一定的硬件资源投入,我们就可以打造一个高可用的私有云架构。
我们能够做到在整体上不存在单点,同时在各级链路均有冗余。
对于应用层的计算节点,我们利用Windows Cluster来保证Hyper-V虚拟机的高可用。
对于文件层的服务节点,我们利用SOFS集群的AA模式及SMB3.0的透明故障转移来保证文件访问的高可用。
对于存储节点,我们利用虚拟磁盘的奇偶校验 (RAID 5)模式来保证数据的完整性。

在网络层面,我们利用硬件来保证足够的冗余。

五、SQL Server的支持

我们已经完成了一个高可用的私有云平台的搭建,但我们最终的目标是支持SQL Server数据库的高可用。

得益于SOFS提供的高性能,我们在私有云架构的基础之上做出一定的调整,就能很快的支持SQL Server数据库的应用。

具体做法:将SQL Server数据库的计算资源运行在Hyper-V的虚拟机之上,而数据库的文件资源则通过SOFS来调用底层的虚拟化存储资源。

最终,Hyper-V虚拟机的高可用性加上SOFS文件系统的高可用性保证了SQL Server数据库整体的高可用性。

在我们的实际项目中,这种架构支持了20多个SQL Server的数据库,共10多TB的数据量,整体运行平稳。


相关推荐

产品试用 产品试用
400-820-6580 免费电话