1 / 33

基于 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 阅读相关领域论文.

waite
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. 系统功能 • 多种 VM分配算法的实现框架。 由于 VM 分配问题本质上是一个装箱问题,属于NP问题,故实现的算法都是启发式的搜寻算法而不是最优算法。 • 根据分配算法,分配 VM 到 PM 上运行 • 对分配到特定 PM 上的 VM 分配资源。系统实现了分配CPU利用率资源。 • 监视分配到 PM 上的 VM 的运行状态,根据 VM 分配算法的分配结果,执行对 VM 的控制。控制包括: • create创建 调用每个 VM 自身的创建脚本,在指定 PM 上创建该 VM 。创建之前保证 PM 上的资源足够容纳该 VM 。 • migration 迁移 将一台 PM 上的一个 VM 动态迁移live migration到另一台 PM 上。分配算法在不同初始条件的前提下,有可能将一台已经分配过的 VM 重新分配,考虑到迁移的效率远快于关闭并重新开启,并且迁移能够保证 VM 上的所有服务继续运行,故我们实现了虚拟机的动态迁移。 • close & destory关闭 如果分配算法决定排除一台已经分配到 PM 的 VM ,则将其关闭。 • ajustment调整 VM 的资源占用。实现中通过xm工具调整 VM 的weight与cap值来实现。 • VM 启动后的自动配置,运行指定服务。 • 收集 VM 的性能测量数据,包括 • VM 的cpu利用率 • VM 的http响应时间

  6. 分配算法对比

  7. 分布式系统组成

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

  9. Dispatching Server 分派服务器

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

  11. 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 双核处理器 2GB物理内存资源

  12. PM 物理机服务器

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

  14. VM 虚拟机

  15. 系统架构详述

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

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

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

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

  20. 系统中的黑板文件

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

  22. 系统运行流程 Monitors Dispatcher Plan PMs VM 1 stat VM 2 stat ... VM n stat Dispatcher Migrate/Create/Destroy Util_Data

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

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

  25. Monitor行为

  26. 系统运行流程 • VM创建脚本 • VM是通过arch.cfg脚本创建的。 • 在该脚本中,读取当前VM被分配的ip地址,并据此算出MAC地址,设置虚拟网卡。 • VM的MAC地址是IP地址的16进制表示,前缀00:1B形成的,在VM的OS启动时根据MAC地址再反向算出IP地址。 • VM arch 启动脚本 • 安装在VM中的arch被配置为自动登录,在登录的最后阶段,会执行/etc/vm/init.sh中的启动脚本。 • /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脚本。 • /mnt/nfs/$VMNAME/init.sh执行以下序列: • 检查/mnt/nfs/pubkey中是否存在自己的pubkey,若没有,调用ssh-keygen生成自己的dsa公钥密钥对。 • 收集/mnt/nfs/pubkey中的所有VM的公钥,记录到~/.ssh/authorized_keys,信任所有其它的VM。 • 开启VM 虚拟机中列出的所有http服务,开始监听相应端口。 • 开启HPL benchmark服务。

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

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

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

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

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

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

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

More Related