PaaS云服务中的虚拟资源管理

  今天读了一下ICDE2011的Intelligent Management of Virtualized Resources for Database Systems in Cloud Environment,简要做点笔记:

  论文大纲:在综合考虑用户满意度和系统开销的条件下最大化云服务提供商的利益。本文提出了一种基于代价的资源管理系统SmartSLA。该系统由两部分构成:系统模型模块和资源分配模块。前者主要是分析各种因素,诸如CPU分片数,内存大小,数据库副本数,查询频率等对用户部署数据库的虚拟机的影响(亦即对用户满意度的影响),论文中采用了机器学习的几种方法来得到一个以各种因素为变量的有关用户满意度的函数。后者主要考虑如何在多个用户,尤其是多种不同的用户(比如贵宾用户,普通用户)之间合理分配资源以最大化云服务提供商的利益。

  论文详解:

  本文中,多用户的共享层次是私有虚拟机,亦即每个用户的数据库位于自己独立的虚拟机上,云服务商通过调整虚拟机所占用资源的大小来满足用户的需求。多个不同的虚拟机位于一个物理机器上,所以需要合理的分配该物理机器上有限的资源来满足不同用户的SLA(service-level agreement)。(Fig1中一个用户占用了多个虚拟机,实际上是备份,亦即MySQL Slave是MySQL Master的备份)。

  用户的SLA可以表示成一个关于罚金的分段函数:当用户提交任务的响应时间(执行时间)小于一定的值时,云服务提供商不需要支付罚金,当用户的任务的响应时间超过一定的值后,云服务提供商支付给用户一定的罚金。多个用户的罚金分段函数的平均值称为平均SLA罚金开销(AC),分配资源的目的就是最小化这个平均罚金的数额。

  本文提出了一个新的系统资源管理系统-SmartSLA,其由以下两个模块组成。

  1) 系统模型模块:首先需要求出分配给某个用户的虚拟机的CPU分片数,内存大小,数据库副本数和查询频率数等因素和AC的关系(函数)。本文中采用机器学习的方法来求得该函数。分别采取了线性回归,回归树和boosting approach等方法。

  2) 资源分配模块:前面系统资源模块主要关注的是单用户情况下AC与CPU分片数,内存大小,数据库副本和查询频率的关系。而该模块主要关注的是多用户情况下如何在不同级别的用户间分配资源以最小化总的罚金数。可以给不同级别用户的罚金函数赋予不同的权重,并且可以修改其临界响应时间的大小。比如金牌用户的临界响应时间可以比较少且超过该时间后需要支付的罚金可以设置的比较大。这样就需要在不同用户尤其是不同级别的用户之间合理分配各种资源(CPU分片数,内存大小,数据库副本数等)来最小化罚金。

  首先是考虑如何分配CPU分片数和内存大小,显而易见,在某种级别的用户的查询频率比较大时,该级别用户分配的CPU和内存应该相应增大。

  然后是考虑数据库副本数,直觉上说,副本数越多,访问速度及延迟时间会越短,所以罚金也会相应降低,但是,增加副本数会加大另外一种开销:系统架构开销(Infrastucture Cost)。这是显而易见的,要维护更多的副本,就需要更多的软硬件设备及管理费,电费等。本文中假设每个新增的副本的开销是固定的。除了系统架构开销外,在增加副本数时,会有一定的操作开销(Action Cost),亦即进行数据迁移时的开销,也需要进行考虑。

  最后实验结果表明,使用SmartSLA可以有效地降低总得罚金开销,最大化云服务提供商的利益。

  2012-1-13    Kemaswill 

posted on 2012-02-13 10:09  潘的博客  阅读(582)  评论(0编辑  收藏  举报

导航