1 / 42

虚拟化系统资源管理 Carl Waldspurger VMware R&D

虚拟化系统资源管理 Carl Waldspurger VMware R&D. 虚拟化资源管理. 物理资源 实际宿主机硬件 处理器,内存, I/O 设备,等。 虚拟资源 虚拟客户机硬件抽象 处理器,内存, I/O 设备,等。 资源管理 把虚拟资源映射到物理资源 虚拟机之间复用硬件 基于管理策略管理资源的竞争. 资源管理目标. 性能隔离 防止虚拟机独占资源 保证可期的服务速度 高效利用 充分利用空闲资源 适度性能降低下的资源过载使用 易于管理 灵活的动态划分 SLA ( Service Level Agreement )的绝对满足

kaiser
Download Presentation

虚拟化系统资源管理 Carl Waldspurger VMware R&D

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. 虚拟化系统资源管理Carl Waldspurger VMware R&D

  2. 虚拟化资源管理 • 物理资源 • 实际宿主机硬件 • 处理器,内存,I/O设备,等。 • 虚拟资源 • 虚拟客户机硬件抽象 • 处理器,内存,I/O设备,等。 • 资源管理 • 把虚拟资源映射到物理资源 • 虚拟机之间复用硬件 • 基于管理策略管理资源的竞争

  3. 资源管理目标 • 性能隔离 • 防止虚拟机独占资源 • 保证可期的服务速度 • 高效利用 • 充分利用空闲资源 • 适度性能降低下的资源过载使用 • 易于管理 • 灵活的动态划分 • SLA(Service Level Agreement)的绝对满足 • 调控虚拟机的相对重要性

  4. 内容概要 • 资源控制 • 处理器调度 • 内存管理 • NUMA 调度 • 小结

  5. 资源控制 • 主要特性 • 表达绝对的服务速度 • 表达相对的重要性 • 用分组实现隔离或共享 • 主要挑战 • 对初学者要足够简单 • 对专家要提供强大的支持 • 权衡应用级别度量和物理资源消耗 • 既适用于单主机也适用于服务器群

  6. VMware 支持的基本控制 • 共享 • 指明相对重要性 • 直接获得特定比例的资源 • 抽取一定资源,但仍保持比例 • 预留 • 最小的预留量,系统过载时仍须保证 • 表示为具体绝对的单位量 (MHz, MB) • 准入控制: 预留总额≤ 能力容量 • 限制 • 资源消耗上限,即使有很多空闲资源 • 也表示为具体绝对的单位量 (MHz, MB)

  7. 共享的例子 • VM的共享比例调整 • 动态地重新分配 • 加入新的VM,资源过载 • 均适度的降低比例 • 移除某个VM • 按比例利用额外空闲资源

  8. VM1 VM2 预留的例子 • 总能力 • 600 MHz 被预留 • 400 MHz 可用 • 准入控制 • 试图启动2个VM • 每个要求300 MHz • 无法同时满足两者 • VM1 启动成功 • VM2 被拒绝

  9. VM 限制的例子 • 当前使用率 • 600 MHz 使用中 • 400 MHz 空闲 • 启动CPU有上限的VM • 200 MHz上限 • 执行速度被限制 • 新使用率 • 800 MHz 使用中 • 200 MHz 空闲 • VM被禁止利用空闲资源

  10. VMware支持资源池 • 动机 • 为各虚拟机组分配总的资源 • 资源池之间是隔离的,在资源池内共享 • 灵活的分层结构 • 方便访问控制和委派 • 资源池是 • 具有授权的命名对象 • 对于每类资源进行保留、限制和共享 • 父资源池,子资源池,虚拟机

  11. Admin管理用户 策略:Alice的份额比Bob多50% 用户管理自己的虚拟机 未显示预留和限额 虚拟机获得的资源 Admin 300 Admin 200 Admin Alice Bob 75 Alice 400 Bob 75 Alice 30% VM1 VM2 VM3 40% 30% 资源池的例子

  12. Admin 300 Admin 200 Admin Alice Bob 800 Bob 30% 13% 75 Alice 400 Bob 75 Alice VM4 VM1 VM2 VM3 27% 30% 举例: Bob 添加虚拟机 • 相同的策略 • 资源池隔离用户 • Alice仍然比Bob多50%的份额 • 虚拟机分配到的资源

  13. 资源控制: 发展方向 • DMTF标准 • 预留、限额、权重 + 资源池 • 模型的表达能力适用于当前所有的虚拟化系统 • 参与者:VMWare、Microsoft、IBM、HP、Sun、XenSource等 • 其他控制? • 支持优先级的调度 • 实时延迟保证 • I/O相关控制 • 应用级度量 • 用事务频度、响应时间等来表述需求 • 计算能力,需要具体的领域/应用相关的知识 • 能否叠加于物理资源基本控制之上

  14. 内容概要 • 资源控制 • 处理器调度 • 内存管理 • NUMA 调度 • 小结

  15. 处理器调度 • 主要特性 • 精确的速率控制 • 支持UP和SMP虚拟机 • 充分利用多核、多线程CPU • 分组机制 • 主要挑战 • SMP虚拟机的高效调度 • 虚拟机负载平衡、中断平衡 • 核/线程可能共享缓存、共享功能单元 • 缺乏在微架构层次的公平控制 • 合理计算在中断处理上的时间

  16. VMware 中的处理器调度 • 调度算法 • 基于速度的控制 • 分层资源池 • 处理机间负载平衡 • 精确计量 • 多处理器虚拟机支持 • 多处理器独占假象 • 近似同步的VCPU协同调度 • 现代处理器支持 • 共享缓存的多核CPU • 同发多线程(SMT)

  17. A 2 4 10 4 6 8 8 8 10 B 3 3 12 6 6 6 9 9 9 C 6 6 12 6 6 6 6 12 12 按比例共享调度 • 简化的虚拟时间算法 • 虚拟时间 = 使用时间/份额 • 调度具有最小虚拟时间的VM • 举例:3虚拟机A、B、C,3:2:1份额比例

  18. 管理员 vtime = 2000 vtime = 2100 Alice Bob vtime = 2200 vtime = 1800 vtime=2100 vtime = 2200 VM1 VM2 VM3 VM4 分层调度 • 动机 • 增强每个资源池间的公平性 • 未使用的资源流向最亲近的VM • 途径 • 在每个节点都维持虚拟时间 • 递归地选择拥有最小虚拟时间的节点

  19. 处理器间负载均衡 • 动机 • 高效利用多处理器 • 增强全局公平性 • 均摊上下文转换开销 • 保持缓存亲和性 • 方法 • 针对每个处理器的分派和运行队列 • 周期性地扫描远程队列以达到更公平 • 每当PCPU空闲时拉入VCPU执行 • 每当VCPU唤醒时推向PCPU执行 • 考虑缓存亲和性的成本效益

  20. SMP 虚拟机的协同调度 • 动机 • 支持独占多处理器假象 • 正确性 — 避免客户机蓝屏司机/内核错误 • 性能— 考虑客户操作系统自旋锁(spin lock) • 途径 • 限制VCPU间的进度失衡 • 把空闲VCPU作为运行中的看待 • 协同停止 – 失衡积累时,停止VCPU协同调度 • 协同开始 – 基于失衡累积阈值开启VCPU协同调度

  21. 计费统计 • 资源使用统计 • 按VM资源使用量计费 • 对资源池可整体计费 • 针对支持SMT的系统,计费方式须相应调整 • 系统时间统计 • 统计在中断处理、下半部和系统线程上消耗的时间 • 不要对碰巧正在运行的虚拟机罚时 • 系统工作服务于哪个VM,就对哪个VM计费 • 可基于统计采样的方式来减少开销

  22. Intel 超线程 一个核两个线程 (LCPU) 没有明显的优先级,两者公平 HALT一个 资源全交给另一个 VCPU  LCPU的映射 时间共享 vs. 空间共享 依赖于动态VM获得到的 空闲线程也许会抢占VCPU 当一个HALT时候要调整计费 超线程共享控制 微架构服务拒绝[Grunwald ’02] 手动:任何的、内部的、不共享 自动隔离 A0 A0 B0 A1 X X B1 A1 B0 B1 X X 超线程的例子 core LCPUs vs. 时间 空间 两种共享方式

  23. 处理器调度:发展方向 • 共享缓存管理 • 针对迁移显示的开销-收益权衡 • 发掘缓存分区技术 • 电源管理 • 探索频率和电压的调整策略 • 确保不损害计费和速度保证 • 客户机热添加/移除处理器

  24. 内容概要 • 资源控制 • 处理器调度 • 内存管理 • NUMA 调度 • 小结

  25. 内存管理 • 期望的能力 • 高效内存过载使用 • 精确资源控制 • 发掘共享机会 • 平衡硬件能力 • 挑战 • 内存分配应体现重要性和工作集 • 一般只有客户操作系统才知道那些对优化决策而言的最佳数据 • 客户机和管理器级别策略可能会冲突

  26. VPN guest 影子页表 PPN 硬件TLB VMM MPN 内存虚拟化 • 传统VMM策略 • 多了一层映射 • 虚拟的 “物理的”客户机通过原始页表映射VPN到PPN • “物理的” 机器VMM 映射PPN到MPN • 影子页表 • 两个映射的复合 • 对一般内存的访问,硬件使用VPN到MPN的映射 • NPT/EPT硬件 • 硬件MMU支持内嵌页表 • 没有软件影子的需要了

  27. VMware 内存管理 • 回收机制 • 气球技术 – 客户驱动分配并锁定PPN, hypervisor 释放对应的MPN • 交换技术– VMM透明地交换出PPN页面,按需换入页面 • 页面共享 – VMM识别基于内容相同的PPN,通过写复制( copy-on-write)映射到相同的MPN • 分配策略 • 比例共享 – 采用最小页共享率从虚拟机中回收内存 • 空闲内存“税”– 对虚拟机的空闲页面征收比活跃页面高的费用,从而防止低效的内存囤积 • 大页技术 – 采用大页映射来改善TLB性能

  28. 回收内存 • 传统方法:增加透明页交换层 • 需要VMM层的页替换决策 • 只有客户操作系统知道用于优化决策的最佳数据 • 客户机和元级别策略会失配 • 举例:重复交换问题(VM和VMM对同一页面均交换出去了) • 另一种方法:隐式合作 • “诱骗”客户系统进行页替换 • 避免在VMM层次做策略决定

  29. 气球技术(Ballooning) 客户操作系统 充气气球(+ 压力) 可能会把页面交 换到虚拟磁盘 气球 客户操作系统 客户操作系统管理内存 隐式协作 气球 可能从虚拟磁盘 把页面交换进去 客户操作系统 放气气球(– 压力)

  30. 页面共享 • 动机 • 多个虚拟机运行相同的操作系统和应用程序 • 消除冗余的代码、数据和零页备份 • 透明的页面共享 • 通过“写复制”把多个PPN映射到单个MPN上 • Disco首创[Bugnion ’97], 但是需要客户操作系统安装挂钩 • 基于内容的共享 • 通用,不需要修改客户操作系统 • 为长时间讲后台进程节省内存

  31. 011010 110101 010111 101100 哈希值: VM: PPN: MPN: …06af 3 43f8 123b 机器内存 页面共享:扫描候选PPN 哈希页内容 …2bd806af VM 1 VM 2 VM 3 提示帧 哈希表

  32. 页面共享:成功匹配 VM 1 VM 2 VM 3 共享帧 机器内存 哈希值: 引用: MPN: …06af 2 123b 哈希表

  33. 分配策略 • 传统途径 • 优化聚合后的性能度量 • 问题:没有QoS保障,VM的重要性会变化 • 纯粹基于共享的途径 • 采用最小页共享率优先的方式回收VM内存[Waldspurger ’95] • 问题:忽略了使用率、低效的内存囤积[Sullivan ’00] • 期望的行为 • 当正在使用内存时虚拟机能充分共享 • 当工作集缩减时虚拟机也许会丢失页面

  34. 回收空闲内存 • 空闲内存“税” • 虚拟机从空闲页面征收比从活跃页面更多费用 • 页面共享率在空闲时刻调整 • 税率 • 明确的管理参数 • 0%  “资本主义( plutocracy )” … 100%  “社会主义( socialism )” • 高回收率 • 回收大部分空闲内存 • 留有缓冲,防止工作集快速变化

  35. 空闲内存“税” : 0% • 实验 • 2 个虚拟机, 256 MB, 相同份额 • 虚拟机1: Windows boot+idle • 虚拟机2: Linux boot+dbench • 实线: 使用的, 虚线: 活跃的 • 改变税率 • 改之前: 没有税 • 虚拟机1空闲, 虚拟机2活动的 • 得到相同的分配 内存 (MB) 时间(分钟)

  36. 空闲内存”税” : 75% • 实验 • 2 个虚拟机, 256 MB, 相同份额 • 虚拟机1: Windows boot+idle • 虚拟机2: Linux boot+dbench • 实线: 使用的, 虚线: 活跃的 • 改变税率 • 之后: 高税率 • 重新分配虚拟机1虚拟机2 • 虚拟机1 降低到最小 • 虚拟机2吞吐率改善30% 内存 (MB) 时间 (min)

  37. 内存管理: 发展方向 • 进一步利用页面重映射 • 对于大页面动态内存碎片整理 • 电源管理[Huang ’03] • 探索硬件的趋势 • I/O MMU 支持隔离、重映射 • NPT/EPT 的进一步优化 • 客户机热添加/移除内存 • 客户机内存压力评估

  38. 内容概要 • 资源控制 • 处理器调度 • 内存管理 • NUMA 调度 • 小结

  39. NUMA 调度 • NUMA 平台 • 非一致内存访问(Non-uniform memory access) • 节点 = 处理器 + 本地内存 + 缓存 • 实例: IBM x460 (Intel Xeon), HP DL585 (AMD Opteron) • 主要特性 • 自动映射虚拟机到NUMA节点 • 动态重新均衡 • 主要挑战 • 内存局部性和负载平衡之间的矛盾 • 常用平台上缺少详细的硬件计数器

  40. VMware NUMA 调度 • 周期性重新均衡 • 计算虚拟机的内存局部性 • 将节点分配给每一个虚拟机作为“主”节点 • 节点间迁移VM和内存页 • 虚拟机迁移 • 移动虚拟机的所有VCPU和线程 • 为均衡负载和增强局部性而迁移 • 内存页迁移 • 从“主”节点分配新页 • 把PPN重新映射到本地MPN • 基于节点的MPN共享

  41. NUMA 调度: 发展方向 • 探索硬件的趋势 • NUMA + 多核 内嵌 NUMA • 节点间距离权重 (SLIT 表) • 更优的页面迁移启发 • 决定获益最大的页面做迁移 • 一些高端系统(e.g. SGI Origin)能进行每个页的远端失效计数器 • 在通用的X86硬件上还不支持

  42. 小结 • 资源管理 • 对指定分配的控制 • 处理器, 内存, NUMA, I/O, 电源 • 多资源间的权衡 • 丰富的搜索领域 • 很多有趣的开放性问题 • 很多独特的解决方法

More Related