本站提供专业的[留学生论文]定制业务,如需服务请,联系电话:13671516250.
本文是硕士论文,本文采用Berkeley DB作为云中key/value类型的数据存储引擎,使用开源软件构建实现系统,模拟多租户的数据访问并釆集性能数据构建多租户数据存储模型,进行多次测试验证该系统能够满足提出的弹性控制目标。
第1章绪论
1.1研究背景
随着云计算发展,这种新型的商业模式因其自助式服务、无所不在的网络服务以及快速弹性等特征引起越来越多的重视,正受到业界和学术界的广泛关注云计算是在分布式处理和网格计算等技术基础之上发展起来的,一种新兴的共享基础架构的方法,可以自我维护和管理庞大的虚拟计算资源,提供各种IT服务。用户使用云计算提供的服务时按需付费,不仅降低了使用门槛,也极大地节省了开销。云计算的弹性是指系统能够响应动态负载变化获取或者释放资源,而且实现按需付费,这是云计算的主要特征之一。当前云应用比如社交应用等,经常会发生大量用户并发访问的情形,容易造成数据spike,所以借助云计算弹性资源实现动态扩展是十分重要的。当前应用大部分采用多层架构,web层和应用层这种无状态服务很容易实现扩展,而数据存储层因其有状态性,通常独占资源,在云计算共享环境中进行弹性扩展面临很大困难,需要考虑数据迁移、事务迁移等问题。而随着大数据时代的到来,云应用呈现数据驱动的特征,即业务执行需要大量数据支撑。如今随着信息技术的发展,各种方式产生大量数据,这些大数据背后的价值体现在帮助企业进行决策和为终端用户提供服务的应用。大数据应用为企业提供竞争优势,使得企业业务的执行建立在大量数据处理之上。当前云计算环境下应对海量数据通常是基于类似于key/value类型的NoSQL数据库,这种海量数据管理系统的设计目标是可扩展性、弹性、容错性、自管理性和“强一致性”。由于用户访问量、数据变化量或执行任务量都是事先无法精准预见的,所以数据层需要通过支持可随意增减节点实现可扩展性,实现数据层弹性控制是提高系统资源利用率的重要手段。
在云计算环境中,包括软件、平台、基础架构等都将以服务的形式提供给用户;其中,软件即服务是由软件供应商或者服务提供商部署软件,通过互联网提供软件服务的分发模式,是最常见最先出现的云计算服务,作为一种新的应用开发模式得到几乎所有软件厂商的一致认可。通过SaaS这种模式,用户只要接上网络,通过浏览器就能直接使用在云上运行的应用;而云提供商负责维护和管理云中的软硬件设施,同时以免费或者按需使用的方式向用户收费,所以用户不需要顾虑类似安装、升级和防病毒等琐事,并且免去初期高昂的硬件投入和软件许可费用的支出,这对于处于“长尾”区域中的中小企业来说,只需要付出相对廉价的租赁费用租赁软件,从而节省成本获得利益。
1.2研究内容
基于上述分析,本文对多租户数据存储的弹性控制问题进行研究,主要针对多租户数据实现动态扩展时面临的上述三个挑战,利用MPC控制理论实现对数据布局的自动化控制;建立数据负载与租户性能要求的模型刻画数据节点的性能状态,指导数据动态布局调整;通过分析将弹性控制问题映射为装箱问题,并考虑实际问题需求设计启发式算法,求解最终的弹性控制策略。主要的贡献为:
(1)给出云环境中多租户数据存储系统面临的弹性控制问题,分析实际存在的挑战以及需要解决难点,针对这些挑战从理论上找到合适的解决策略,将多租户的性能需求进行合理假设,量化为关于请求响应时间百分位数的要求;研究云数据库相关存储策略,制定多租户所采用的数据存储方式,并把租户数据组织为较小单位的数据块,不同租户存储的数据块不同,通过每个数据块的性能监控,实现多租户的性能隔离。
(2)基于MPC控制理论设计自动控制多租户数据存储弹性控制的系统,分析釆用MPC控制理论的原因,从理论上解释若干关键技术和实现,包括数据副本技术、数据传输带宽分配策略以及数据布局调整策略等,并简述系统整体设计。
(3)针对多租户数据动态自适应弹性控制中的性能预测问题给出分段多维性能模型,该模型能够根据数据节点运行时负载,判定数据节点能否提供满足不同租户性能要求的数据访问服务,这是实现性能隔离,监控SLA性能指标和数据重布局的基础。相对于满足相同性能需求的应用,多租户条件下的性能模型需要考虑不同租户的性能需求,并非是简单的线性模型,其性能预测更加复杂。
(4分析多租户应用的数据访问负载特征,基于一次指数平滑法给出负载预测策略,并根据多租户数据存储的弹性控制需要引入滑动窗口机制,能够对数据负载进行较长时间预测,对原始采集数据进行加工作为控制的基础。
(5)面对多租户数据动态自适应弹性控制问题进行建模,将其映射为一维装箱问题,总结多租户背景下的优化目标,并基于贪婪思想设计最终数据布局生成算法,通过实验验证算法的稳定性与有效性。
第2章相关研究
本章介绍云中多租户数据存储系统的弹性控制问题的相关研究,主要从两大方面进行描述,首先介绍多租户的数据存储研究,然后介绍当前云中数据存储系统弹性控制的研究现状,从三个方面展幵:数据存储的可扩展性和弹性;数据存储的性能模型,对多租户数据如何合并能够满足性能要求进行建模;数据存储分布式动态控制的常用方法,分析其满足的性能目标。
2.1多租户数据存储
云计算环境中多租户数据存储成为数据管理的研究热点。对SaaS应用的多租户数据框架进行分析,提出三种架构方案:独立数据库、共享数据库独立数据模式和共享数据库共享数据模式。工业界的Salesforce.com使用共享数据表式,而SQL Azure和Relation Cloud釆用共享数据库进程模式。釆用租户共享底层物理硬件,独立虚拟机和数据库进程的架构。提出Chunk Folding技术实现多租户数据的存储和管理。提出FLEXSCHEM机制实现多租户DBMS扩展、共享和演化的问题。
2.2云中数据存储系统的弹性控制
针对云中数据存储系统的弹性控制问题有诸多文献,很多是基于现代的控制论思想进行设计,其关注的性能指标各不相同,这一部分对其核心思想进行研究。
2.2.1数据存储的可扩展性和弹性
弹性动态均衡是云计算环境下分布式数据存储的典型特点,而传统企业数据库并不关注弹性特征,所以具有弹性云数据库成为当前研究热点。提出云数据库可扩展性和弹性的概念,可扩展性是系统静态属性,指系统本身是设计可以方便进行数据的划分和合并的,而弹性主要指能够在负载增大时通过增加数据节点方式实现水平扩展的能力。云数据库领域主要针对支持分布式事务,自适应的动态负载均衡技术等进行研究。在支持分布式事务方面,提出基于key-value存储模式的数据管理系统G-store,提出ElasTras抽象组的概念,定义了一组的关联关系,按需实现组粒度的事务访问,支持动态分组内事务,但不支持跨组的数据事务。提出系统解决传统关系型数据库在云环境的分布式事务问题,主要思想是以“Tree schema方式实现数据划分,将事务操作限制于一个节点上以回避分布式数据库系统的2PC协议等。
2.2.2多租户数据存储的性能模型
关于云中多租户数据存储的性能模型有诸多文献,介绍根据租户对事务吞吐量的要求,将不同等级租户数据共享放置在底层不同硬件资源,满足关于事务吞吐量的性能指标问题。其中通过多次实验的办法寻找到不同租户数据共享放置在数据节点的边界点,构建出多租户特征模型,用于判断数据节点容纳特定租户数据时能否满足其数据吞吐量的性能需求。提出使用分析模型解决多租户数据放置问题。指出多个租户共享存储数据时由于并发的请求处理以及复杂的资源竞争,使得单独租户负载特征无法推断出共享模式下的系统性能,文章建议使用机器学习方法对系统性能进行预测,能够达到一定的准确率。针对非多租户数据存储的性能模型研究中,使用机器学习方法去预测数据库处理不同类型请求的执行时间。
第3章面向多租户数据弹性控制框架.....9
3.1多租户数据共享模式的性能需求.......9
3.2面向多租户数据弹性控制框架的整体设计.......10
第4章面向多租户数据存储的分段多维性能模型......14
4.1面向多租户数据存储性能模型的需求分析......14
4.2性能模型构建过程.......16
第5章多租户数据负载监測与预測.....23
5.1多租户数据负载预测需求........23
5.2负载监测与预测方法.........23
5.3本章小结.........25
第7章实验部分
本章通过实验验证提出的多租户数据存储布局调整策略生成算法的稳定性与有效性,给出实验环境,介绍框架的具体实现;改变不同的初始参数进行分析实验以验证算法稳定性,针对多租户歡据布局调整问题设计两个算法进行对比实验,验证生成的数据存储布局调整策略能否满足提出的目标。
7.1实验环境与AdaptScala实现
我们20台物理机上采用OpenStack组件搭建云环境,虚拟100台底层数据存储节点,每个节点的数据容量为600MB;10台虚拟机用于模拟负载的客户端,1台虚拟机作为AdaptScala系统的计算节点。采用Berkeley DB作为底层数据存储引擎,存储key/value型数据,每个租户数据依据key值范围划分为20段,作为逻辑上的数据块;整个系统中共设定15个租户,每个租户数据量是1.2G左右,数据块大小设为64MB,即每个租户20个数据块,总共有300个数据块。
AdaptScala系统基于sOCKET实现底层的通信,对Berkeley DB行封装提供get(key)和put(key,value)方法,设计migrate(key1,key2)方法实现数据块移动,根据生产环境中多租户SaaS应用的负载特征模拟客户端,实现多租户的数据访问请求,并在客户端部署统计数据访问响应时间的采集工具。
实验的调整周期设为20s,使用第4章构建的分段多维性能模型,整个实验过程共运行100个调整周期。
第8章总结与展望
8.1工作总结
随着云计算兴起,以多租户为主要特征的SaaS应用逐渐被各大软件厂商所认可,而SaaS主要有两大主要特征:1)单实例多租赁2)系统能够弹性适应多租户需求。当前云中应用通常是多层应用,而数据层对整个系统十分重要。由于租户访问量、数据变化量和执行任务量都是事先无法估计的,这导致对底层数据存储提出新要求,希望通过云计算的弹性支持随意增减节点来满足数据的弹性控制,以保证不同租户对数据访问响应时间的性能要求。数据层因其有状态性而不易进行动态扩展,大数据来临使得一些NoSQL数据库,典型就是key/value存储的数据库被越来越多应用所采用,主要特点就是对数据高并发地读写和支持海量数据的存储,并有很好的灵活性和性能。现在越来越多应用是数据驱动型,而多租户特征对底层数据的动态弹性控制问题带来更大的困难。
首先,云环境中服务供应商通常采用共享存储模式,不同租户数据共享存储在不同数据节点上,如何保证不同租户的性能隔离是值得关注的问题。通常租户的性能要求不同,本文针对数据层关注其数据访问的响应时间指标,表示为高百分位数。然后,数据节点共享存储不同租户数据时如何保证能够满足不同租户的性能要求。相对于单一租户数据存储的性能判定问题,不同租户数据放置因其资源相互竞争关系,其性能判定问题非常复杂,由此构建的性能判定模型是高维的。最后,进行数据在分布式存储环境中重布局时,如何进行有效快速的数据块移动同样是问题,考虑到数据块重新布局要满足不同租户性能要求,同时过多数据块移动对本身的数据访问同样带来性能影响,需尽量减少移动,多租户特性要求租户性能相近数据块能够最好部署在一起,便于实现性能隔离。
参考文献(略)
相关文章:
