论文部分内容阅读
随着云计算的发展及应用软件的成熟,软件即服务(Software as a Service, SaaS)作为云计算的一种应用形式,越来越受到重视,已逐渐成为中小企业应用先进技术的重要途径。PaaS平台可以屏蔽开发SaaS服务的诸多底层实现技术,逐渐成为云计算市场成长阶段的主导力量。通过将应用剥离出去,使得从事SaaS的人员可以专注于自己所熟悉的业务,为用户提供软件和服务的应用,而从事云计算资源的人员就专心做好自身的调度和服务,实现资源的动态伸缩。目前,成熟的SaaS服务提供商多采用一对多的软件交付模式,成千上万租户共享一个应用,业务数据存储在服务提供商的共享数据库中,最终用户感受不到所使用的实例在同一时间也为其他客户所共享。支持租户定制的多租户共享存储架构,实现了从操作系统到数据结构等各个级别的资源共享,充分利用了硬件、数据库等资源,然而通过垂直扩展所能支持的租户数量受到硬件限制,当租户需要更多存储空间和更高服务质量时,单节点能力成为瓶颈,需要采用更加灵活的云计算架构来实现规模的动态扩展。现有云数据库,如SQL Azure,面向传统应用提供数据租赁服务,实现了大规模多租户数据的放置,但其在设计时并未考虑多租户应用单实例多租赁的特点。多租户应用是一个特殊的应用,同时支持多个应用级别的租户,每个租户又有众多用户。该类型租户由应用层管理,对于应用层来说,租户之间是彼此隔离的,但对于数据层来说,多租户应用作为一个实际的数据租户,其所有数据共享使用租赁的空间,租户之间并没有区别。由于意识不到应用租户的存在,现有面向租户的数据放置技术无法使用,多租户应用在性能和运行成本等方面很难满足需求。多租户数据放置技术做为PaaS平台高效运转的基础,面临的新需求主要体现在:(1)大规模租户高并发事务需求,事务并发控制更加复杂。以Salesforce为例,成千上万的SaaS租户租赁同一应用,其数据需求各异,事务特性各种各样,基于已有的云数据模型进行的扩展,如宽表、数据透视表、私有表等,难以满足多租户应用的扩展及及大规模高并发事务性能需求。同时,现有的租户数据隔离机制,也难以有效的支撑数据的多节点分布及冗余放置。(2)租户数据平衡分布问题。数据规模急剧增大,数据呈现多数据中心、多节点分布、多副本放置的特性。由于各个租户业务规模、业务量、复杂程度有所不同,时常出现负载不平衡的现象,即有的数据中心负载高,有的低。由于各租户基于同一套应用运行各自的业务,各租户数据共享存储,现有机制难以通过统计访问地域、访问时间等策略提取租户业务特征,无法平衡分布各租户数据。亟需提供租户感知的分布策略,才能有利于提高多租户应用的运行效率。(3)租户数据动态迁移问题。租户数据模式的定制,租户数据的持续操作,以及租户的加入和退出,都可能导致原本平衡的数据节点不再平衡。需建立针对多租户数据模型的负载评测及动态迁移机制,对负载过高或过低的数据节点进行动态迁移处理,以确保资源的充分利用。上述问题使得有些租户的SLA (Service-Level Agreement)不能得到满足,而有些租户使用了过高性能的环境,造成SaaS服务提供商成本的浪费。本论文针对多租户应用数据节点负载平衡、运营商成本最小化等需求,围绕多租户数据放置相关问题展开研究工作,目标在于最大限度地支持快速开发与交付,保障SaaS应用多租户的高效运行。本课题主要贡献概括如下:(1)提出面向租户的锁粒度模型以及事务驱动的局部数据迁移策略,确保多租户高并发事务的高效运行。考虑到多租户数据存储及访问模型的进一步优化,针对并发控制的锁技术进行了更深的探讨,本文结合多租户数据分布的特点,提出面向租户的锁粒度模型,同时,建立事务分析机制,结合事务冲突率、死锁率、锁数量、系统吞吐量等多个方面的影响因子,建立锁粒度函数,求解合适的租户锁粒度区间,并根据求得的锁粒度,驱动局部数据迁移,为大规模多租户事务并发及数据管理提供更高的性能。实验结果证明,面向租户的锁粒度模型及迁移策略,每秒钟可以增加响应100多个事务。(2)提出一种基于排队论模型的单队列多服务台的多租户数据副本数量求解策略,实现数据的高可靠性和高效访问,并降低服务提供商成本。针对租户数据访问热度变化造成的系统负载不均衡,以及平均请求等待时间变长等问题,本文对请求到达时间和响应时间均符合指数分布的概率规律性进行研究,验证其符合泊松概率分布,通过M/M/S/∞模型确定最优的多租户数据副本数量,通过对多租户数据片段在不同节点上的复制,在保证数据高可靠性的前提下,实现数据的高效访问,并降低服务提供商成本。实验结果证明,依据本文的副本求解策略,请求的响应时间与期望值拟合度非常高,能够适应系统请求个数的变化。(3)提出了一个基于SLA的新的迁移策略,基于需求估算模型、迁移成本计算模型及迁移可靠性保证机制,降低迁移操作的总成本,并优化SaaS应用总体性能。针对现有资源分配模式、容量规划和资源分配方法无法识别租户的特性,难以实现按需多租户数据迁移的问题,本文提出了一个新的迁移策略。其中,需求资源估算模型来决定何时迁移,迁移成本模型指导选择可能的租户进行迁移,单写双读的迁移模型保证迁移过程中事务的一致性。基于新的迁移策略,可以有效降低迁移操作的总成本,并优化SaaS应用总体性能。实验结果证明,迁移策略的执行,对服务请求事件的影响控制在10ms以内,但是,数据节点的使用率整体较低5%到15%,租户的资源供给率整体提高5%到10%。