1 / 42

基于 XEN 虚拟机的 绿色计算

基于 XEN 虚拟机的 绿色计算. 项目组成员:杨嘉晨、丁一、梁昊 指导 老师:戚正伟 2010.07.05 – 2010.08.14. 项目回顾. 1~2 周:实验环境的搭建及熟悉 CentOS 操作系统安装 Xen 在 CentOS 上 源码 安装 SVN 平台建立 Xen 的基本指令的熟悉 网络文件系统( nfs , iSCSI )的搭建 在 VM 上安装不同的 OS ,并通过 Save / load 、 Migrate 、 Live migrate 三种迁移方式, nfs 、 iscsi 两种网络文件系统进行简单迁移,简单熟悉 xm api

nasnan
Download Presentation

基于 XEN 虚拟机的 绿色计算

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 基于XEN虚拟机的 绿色计算 项目组成员:杨嘉晨、丁一、梁昊 指导老师:戚正伟 2010.07.05 – 2010.08.14

  2. 项目回顾 • 1~2周:实验环境的搭建及熟悉 • CentOS操作系统安装 • Xen在CentOS上源码安装 • SVN平台建立 • Xen的基本指令的熟悉 • 网络文件系统(nfs,iSCSI)的搭建 • 在VM上安装不同的OS,并通过Save / load、Migrate、Live migrate三种迁移方式,nfs、iscsi两种网络文件系统进行简单迁移,简单熟悉xmapi • 阅读相关领域论文

  3. 项目回顾 • 第3周 • 测试在两个机器之间来回迁移VM,并测试在迁移造成的down time。 • 明确了以Shares and Utilities based Power Consolidation in Virtualized Server Environments为指导论文,通过已搭建的环境,实现其算法并对所得结果进行分析,并尝试改进算法作为项目目标。

  4. 项目回顾 • 4~6周 • 使用PYTHON语言实现了论文提及算法,并加以实验。 • 通过算法,实现了一个简单的VM分配控制器。通过检测CPU利用率及功耗,此控制器可以根据VM的min,max,share值,分配VM至PM。达到绿色计算的目的。

  5. Shares and Utilities based Power Consolidation in Virtualized Server Environments • 现有的VM管理工具 • 没有考虑到资源分配与动态调整 • 没有考虑到节能因素 • 提供五个VM分派算法 • BS、GM、GMM、EMM、PEMM • 考虑到上诉因素 • 通过模拟运算得出PEMM各方面最优

  6. 资源分配与动态调整 • Hypervisor支持调整VM获得资源的max、min、share。 • 管理工具倾向于制定consolidation策略,并给出每个VM获得资源的确定大小。 • 如果管理工具能够动态调整,则会更节能。 VM1 Min VM1 Size VM1 Max VM2 Max VM2 Size VM2 Min

  7. 动态调整的影响 • 在高负载下,动态调整MMS会得到更好的性能指标。 • Consolidation的结果是所有PM处于高负载状态。

  8. 分配算法对比

  9. BS、GM、GMM reservation Server 1 VM8 min VM7 min VM6 min VM5 min VM3min VM4 min VM2 min VM1 min max max max max max max max max • BS: • 只排序PM • GM: • 按照max时的utility排序VM • GMM: • 同时考虑最大最小值 Server 2 Server 3 Sorted by power rate Pj / Cj

  10. EMM、PEMM • EMM:首先按照min放置VM,之后试图扩展一些VM的资源以利用PM的剩余资源。 • 实现算法上,每添加一台VM,计算添加并扩展之后总体utility的收益,由此决定VM放置在哪台PM上。 • PEMM:计算收益时,不仅仅考虑VM,还考虑额外增加PM时的能耗,将能耗换算为负收益。

  11. 模拟实验结果

  12. 系统功能 • 多种 VM分配算法的实现框架。 • 由于 VM 分配问题本质上是一个背包问题,属于NP问题,故实现的算法都是启发式的搜寻算法而不是最优算法。 • 根据分配算法,分配 VM 到 PM 上运行。 • 对分配到特定 PM 上的 VM 根据min, max, share分配资源。 • 监视分配到 PM 上的 VM 的运行状态,根据 VM 分配算法的分配结果,执行对 VM 的控制。控制包括: • create创建 • migration 迁移 • close & destory关闭 • ajustment调整 VM 的资源占用 • VM 启动后的自动配置,运行指定服务。 • 收集 VM 的性能测量数据,包括 • VM 的cpu利用率 • VM 的http响应时间

  13. 分布式系统组成

  14. Dispatching Server 分派服务器 • 职责 运行dispatcher分配算法,并运行所有参数收集程序的服务器。 • 软硬件环境 CentOS 5.5

  15. Dispatching Server 分派服务器

  16. Storing Server 存储服务器 • 职责 运行NFS服务,在nfs的根目录上保存所有系统代码,以及所有虚拟机的硬盘镜像,为系统运行提供持久存储。 • 软硬件环境 CentOS5.5 NFS 服务器

  17. PM 物理机服务器 • 职责 运行xen,dom0中运行CentOS。其上运行monitor.py,监视分配给自己的VM的状态,并根据其状态控制VM的启动、迁移、关闭,并分配PM资源。 • 软硬件环境 Xen 3.4.3 CentOS5.5 linux-xen 2.6.18内核 dom0_mem = 1024 MB Intel Core 2 Due E8500 3.16GHZ×2 2GB物理内存资源

  18. PM 物理机服务器

  19. VM 虚拟机 • 职责 运行虚拟机,其中运行测量虚拟机性能的各服务器组件。 • 软硬件环境 Archlinux 10 Python 2.6 虚拟机分配1个vcpu 128MB内存

  20. VM 虚拟机

  21. 系统架构详述

  22. 组件模型 • 公用代码 公用代码供所有其余组件引用。

  23. 组件模型 • 测试 & 数据收集代码 这些代码在主框架之外,度量评估VM的性能参数。对于每一个参数,代码都是成对出现,一个位于VM中生成数据,一个位于 Dispatching Server上,收集来自所有VM的数据并记录。

  24. 组件间通信模型 • XenGreenCom系统是一个分布式系统,组件间的通讯方式分为两种: • 黑板模式 • http通讯

  25. 黑板模式 • 实现方式 每一个独立的组件,通过写入一个存放在nfs上、属于自己的黑板文件,来报告该组件的当前状态。每一个黑板文件的结构是定义了一些特殊变量的python脚本。其它组件通过读取并解析黑板文件上的内容,来决定自己的行为。组件之间避免直接通讯,通过黑板文件实现间接通讯。 • 优点 任何时刻,系统管理员可以手动修改黑板文件的内容,从而控制整个系统的行为。并且,关闭并修改任何一个组件,都不会影响到系统其余部分的正常运作,因为黑板文件的内容会保持不变。 • 缺点 周期性地检查黑板内容效率很差,且周期很长,实现中为了达到nfs同步的速度,周期至少是5s这样的数量级。 但是考虑到本系统组件的基本操作,比如虚拟机动态迁移的耗时是20s左右,虚拟机冷启动的耗时是40s左右,5s的周期性对于我们实现的系统而言不算是太大的缺陷。

  26. 系统中的黑板文件

  27. http server/client通讯 • 实现方式 通过开放http服务,对外公布数据。 系统中引入这种通讯方式的地方,都是前述的,用于VM的性能等指标数据测量与收集的地方。 • 优点 该种方式建立起来的进程间通讯,无论从稳定性、速度等方面考虑都受到严格验证,并且只需要一个普通浏览器就可以很容易地调试。 • 缺点 解析http请求的方式实现复杂,占用一个通信端口。并且任何一端程序失败,都会导致链接断开。

  28. 系统运行流程 Monitors Dispatcher Plan PMs VM 1 Stat Util_Server • VM 2 • Stat • Util_Server ... • VM n • Stat • Util_Server Dispatcher Migrate/Create/Destroy Util_Data

  29. 网络和NFS服务 • 系统设置的第一步是建立起一个内部局域网,保证所有虚拟机的网络连接性,同时内部网路有助于维持虚拟机迁移时的稳定性。 • 网络正常配置之后,Storing Server开始提供NFS服务,为所有PM和VM提供统一的数据存储。

  30. PM的启动 • PM在CentOS启动时,通过/etc/fstab配置,自动挂接 nfs到/mnt/nfs位置上。 • 启动monitor.py,首先通过读取/proc的方式收集物理机的相关性能参数,包括cpu频率、ip地址等,写入server_ip文件。这一步是将PM注册给Dispatcher,DS会读取所有的server文件来获取可用PM列表。 • 随后monitor进入监视循环,每一次监视周期中,逐一读取每一个VM的状态,并执行相应操作。

  31. Monitor行为

  32. VM创建脚本 • VM创建脚本 • VM是通过arch.cfg脚本创建的。 • 在该脚本中,读取当前VM被分配的ip地址,并据此算出MAC地址,设置虚拟网卡。 • VM的MAC地址是IP地址的16进制表示,前缀00:1B形成的,在VM的OS启动时根据MAC地址再反向算出IP地址。

  33. VM arch 启动脚本 • 安装在VM中的arch被配置为自动登录。 • /etc/vm/init.sh执行以下序列: • 查询自己被分配的MAC地址并回算出IP地址。 • 用ifconfig重新设置IP地址。 • 挂载SS上的NFS到/mnt/nfs中。 • 调用lookup_vmname.py,在/mnt/nfs中,根据自己的IP地址推算出自己的hostname。 • 设置自己的hostname,并同时设置$VMNAME环境变量。 • 进一步调用位于/mnt/nfs/$VMNAME/init.py的python脚本。(该脚本目前为空) • 进一步调用位于/mnt/nfs/$VMNAME/init.sh的bash脚本。

  34. VM arch 启动脚本 • /mnt/nfs/$VMNAME/init.sh执行以下序列: • 检查/mnt/nfs/pubkey中是否存在自己的pubkey,若没有,调用ssh-keygen生成自己的dsa公钥密钥对。 • 收集/mnt/nfs/pubkey中的所有VM的公钥,记录到~/.ssh/authorized_keys,信任所有其它的VM。 • 开启VM 虚拟机中列出的所有http服务,开始监听相应端口。 • 开启HPL benchmark服务。

  35. 实验数据分析

  36. 实验数据分析 图1 utility变化图 (VM每过定长时间增加一台,PM按需增长)

  37. 实验数据分析 图2 utility与VM个数

  38. 实验数据分析 图3 考虑功耗后的utility变化图

  39. 实验数据分析 图4 考虑功耗后 VM与utility关系图

  40. 数据分析 • BS,GM,GMM曲线 • 在X轴方向上长度较短 • 相同物理机数量上能够放置的VM数量较少 • 相同任务量的情况下这三种算法需要更多的物理机资源来完成。 • PEMM曲线 • 该曲线分为明显的3段 • 第一个折点 • 第二个折点 • PEMM在接受了更多的VM的情况下,utility还有上升的空间.

  41. 数据分析 • 新开物理机的能耗作为影响utility的参数 • 参数调小,曲线升高,反之参数调大,曲线降低 • 这个参数会影响到tradeoff的大小,可以在节能模式下将参数调大或者在性能模式下将参数调小.

  42. 数据分析 • PEMM算法改进设想: PM1 On PM2 On PM3 Off VM2 VM3 VM1 VM4 PM1 On PM2 On PM3 Off VM2 VM3 VM1 VM4

More Related