数据库即服务要求行业数据应用托管不同于面向公众的数据托管(如Amzon的RDS等互联网公司提供的数据托管服务),在数据服务方面存在以下特定要求:(1)数据隔离要求
不同单位/部门出于安全等方面因素考虑,对托管的数据具有严格的隔离需求,因此难以采用当前SaaS多租户数据库中广泛使用的共享数据库(包括共享数据Schema和隔离数据Schema)的技术
(2)性能隔离要求
不同单位/部门的数据应用具有不同的用户对象和使用模式,由此会产生不同的用户负载并进而占用大部分系统资源,从而影响其他租户请求负载的执行,即发生资源劫持,然而从租户自身的角度这种情况则是不希望发生的
(3)可靠性保障要求
由于行业数据应用所需托管的数据资源具有较高的业务价值,提出数据托管需求的单位/部门在数据存储及数据访问的可靠性保障方面具有高于一般互联网用户的要求
针对上述要求,提出一种无共享架构(Shared-Nothing)下基于虚拟机的数据应用托管方法及相应的数据库即服务系统
该方法的基本思想是为租户提供基于独立虚拟机的数据库托管环境,从而在满足不同租户数据库之间的数据隔离和性能隔离的前提下,同时使得不同租户数据库之间共享服务器以减少系统资源(CPU、内存和IO)使用量;同时,为了提高托管数据的可靠性保障,每个租户数据库至少建立两个数据库副本
在这种方式下,租户的数据库副本部署在虚拟机上,使得服务器资源可以分配给不同租户,从而能够灵活地控制租户数据库服务的服务器资源分配并保障租户间的数据隔离和性能隔离
此外,在无共享架构下,提出了支撑多租户数据库的虚拟机资源分配这一关键问题,该问题可以看作是如下优化问题,如何在服务器集群上为每个租户配置部署数据库副本的虚拟机所占用的系统资源,从而实现用最少的系统资源满足所有租户的数据库性能需求
按照上述思路,支持行业数据应用托管的数据库即服务系统包括以下三个层次的内容:(1)数据托管基础设施层
该层次在一组共享的物理服务器环境基础上,通过虚拟机的形式提供对租户数据库的支撑,包括租户数据库虚拟机的创建及撤销、计算及存储等物理资源的分配与监控等
(2)数据托管管理层
该层次是数据库即服务系统的核心,它对托管的租户数据库进行统一的管理、监控,并利用数据托管基础设施层根据数据请求负载对承载数据库的虚拟机进行动态资源调度(即CPU、内存等资源分配的调整)
(3)数据托管应用层
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。