云计算PaaS层中POSTGRESQL数据库高可用方案的研究
2018-10-10滕家雨马俊磊
滕家雨 马俊磊
摘要:随着云计算技术在各个领域的不断深化运用,在其PaaS层中各应用的高可用性也成为整个生产环节的重要一环。本文简要论述了当前云计算的主流服务模式,并且以基于Grid Infrastructure为基础设施的云计算平台为例,提出了一种新型的POSTGRESQL数据库的高可用架构。
关键词:云计算;数据库;高可用;PaaS
中图分类号:TP302 文献标识码:A 文章编号:1007-9416(2018)07-0074-01
云计算技术的出现极大的解放了原有IT部门的生产力和生产成本,使得服务器、数据库、应用等的部署和管理都集中在云端环境进行,云端环境以服务的方式对外提供从硬件设施到应用等方方面面的设施。但同时随着各租户和实际云生产环境的脱离,使得各租户不可避免的对其被托管服务的高可用性提出了极大的要求。
作为一款优秀的开源数据库,POSTGRESQL不仅被众多IT部门采用,也衍生出了如 EnterpriseDB、Greenplum等数据库产品[1]。本文以oracle公司Grid Infrastructure(以下简称GI)为云计算平台基础设施,以开源POSTGRESQL数据库为云服务,提出了一种新型的POSTGRESQL数据库高可用方案。
1 云计算服务模式的金字塔模型
云计算服务模式为典型金字塔模型,其中各层含义如下:
IaaS层:基础设施即服务层,构成了金字塔的最底层,提供服务器,存储设备、网络设备等硬件设备服务。
PaaS层:平台即服务层,构成金字塔的中间层,将实际开发环境中需要的各种组件集中到平台中,包括数据库、操作系统、虚拟主机等。以平台服务的方式对外租用,用户的所有开发工作都可以在这一层完成。
SaaS层:软件即服务层,为金字塔的最顶层,以网页的形式对外提供软件应用的访问,用户只需登录固定的网址便可使用软件服务,而无需部署和维护软件。
2 PaaS层中POSTGRESQL数据库的高可用方案
2.1 PaaS层POSTGRESQL数据库的高可用架构(图1)
硬件及操作系统层:由硬件和操作系统构成了该架构的硬件基础,其中各服务器存储必须是共享的,目的是为了实现数据库高可用方案时能够得到共享的数据目录,而无需再从原宕机节点上复制。
Grid Infrastructure层:由GI软件构成,该层为云平台的管理后端,相当于在硬件和云平台直接的一个中间件,云平台作为前端对外提供服务。
PaaS层:作为对外提供的门户页面,可以提供各式各样的生产环境,包括数据库、操作系统等。
NODE1、NODE2及NODE3为PaaS层所承载的服务器,在其之上部署有POSTGRESQL主、从数据库。M_VIP和S_VIP分别为POSTGRESQL主、从数据库的虚拟IP。
2.2 原理分析
主从数据库之间和主从VIP之间有启动和停止的强依赖关系。用户通过连接VIP地址访问数据库,从而保证了在服务器或数据库宕机的情况下,用户不用修改任何配置,也可以继续连接数据库。
当POSTGRESQL主服务器宕机或者数据库发生故障时,根据依赖关系,当GI检测到主数据库进程消失时,会自动将M_VIP停止,然后触发PaaS云平台执行主从切换脚本,将POSTGRESQL从数据库SLAVE变为主服务器MASTER对外提供服务,同时M_VIP漂移到该从服务器上,实现了POSTGRESQL数据库的第一层高可用。
如果从服务器或从数据库再次发生故障,GI会再次将M_VIP停止,同时检索该租户环境中剩余存活的服务器,然后将M_VIP转移到新节点,在转移过程的同时,通过事先配置好的GI配置文件,可以在新节点上将MASTER数据库,同时启动。如果从数据库在新节点再次发生故障,GI会再次将数据库轉移到新节点,依次类推,只要该租户资源池中有存活的节点,就可以保障数据库不间断对外服务,实现了数据库的多层高可用。
同时该架构也实现了POSTGRESQL数据库的读写分离,主数据库负责写入数据库,从数据库只有读的权限,极大的缓解了云平台以及数据库的负载压力。
3 结语
云计算平台中基于GI的POSTGRESQL高可用方案,实现了POSTGRESQL数据库的主从库读写分离,以及多层高可用,在不需要用户修改任何配置的前提下,强力的保障了数据库的可靠性。
参考文献
[1]宋晓眉,叶晓俊,曾小青,谢东.PostgreSQL查询优化中的等价类研究与改进[J].计算机工程与应用,2014(14):31-38.