Nova的架构职责与设计思想


Nova的架构职责与设计思想 章宇 华为技术有限公司 云操作系统产品部 自报家门 • 章宇 • 2002年和2007年先后于清华大学电子工程系 获得工学学士及博士学位 • 目前于华为技术有限公司云操作系统产品部 担任架构师 • 一棹凌烟@微博 引子1:Nova核心逻辑架构 • 无中心结构 • 各组件无本地持久化状态 • 可水平扩展 • 通常将nova-api、nova- scheduler、nova-conductor组 件合并部署在控制节点上 • 通过部署多个控制节点实现 HA和负载均衡 • 通过增加控制节点和计算节 点实现简单方便的系统扩容 引子2:Nova生产部署架构 Outline • Nova架构职责的演变历程 – 昨天那啥那啥,今天那啥那啥,明天那啥那啥 • 与Nova架构职责相关的若干八卦 – Nova应该那啥么? – Nova应该那啥那啥不? • Nova设计思想的得失辨析 – Nova设计成这样,是不是有点那啥? Nova架构职责的演变过程 • 昨天——“朕即国家” • Nova负责了除对象存储以外的OpenStack所有职责 • 系统整体架构简单,但功能高度耦合 Nova 资源调度 计算 虚 拟 机 裸 机 容 器 块 存 储 网 络 用户 管理 镜像 管理 Nova架构职责的演变过程 • 昨天——“朕即国家” • 今天—— 国之栋梁 Nova 资源调度 虚 拟 机 容 器 ? 裸 机 块存储 网 络 用户管理 镜像管理 Cinder Neutron Keystone Glance 编 配 Heat 监 测 Ceilometer Ironic Nova架构职责的演变过程 • 昨天——“朕即国家” • 今天—— 国之栋梁 – 统管计算资源,承载各类业务的基础 • VM、物理机、容器、云主机 –I层服务的集成点 • 存储、网络、镜像管理 – 多种操作的入口 • 存储、网络等 – 最容易出“问题”的服务 • 出点儿啥事儿先找Nova Nova架构职责的演变过程 • 昨天——“朕即国家” • 今天—— 国之栋梁 • 明天—— 还是国之栋梁,但要 – 简政放权 • 管好该管的事情:计算资源的生命周期管理 • 不管不该管的事情 – 练好内功 • 可靠性与可维护性 – 稳定压倒一切 – 可以无功,不能有过 Outline • Nova架构职责的演变历程 • 与Nova架构职责相关的若干八卦 – Nova该管裸机吗 – Nova该管Docker吗 – Nova该支持VM HA和DRS/DPM吗 – Nova该负责调度吗 • Nova设计思想的得失辨析 Nova该管裸机吗 • 如果Nova不管裸机,裸机应该怎么管? 裸机服务 资源调度 裸机 资源池 块存储 网 络 用户管理 镜像管理 Cinder Neutron Keystone Glance 编 配 Heat 监 测 Ceilometer 另一个“Nova”,大量的重复劳动 Nova该管裸机吗 • 如果Nova管裸机,应该怎么管? Nova 资源调度 裸机 资源池 块存储 网 络 用户管理 镜像管理 Cinder Neutron Keystone Glance 编 配 Heat 监 测 Ceilometer Ironic驱动 Ironic Nova Vs Docker Nova Docker 定位 OpenStack中的计算资源生命周期 管理组件 基于标准化容器的应用封装、 分发、安装部署系统 主要解决 问题 • 统一抽象管理硬件计算资源 • 为上层云应用构建方便易用的计 算资源池 • 实现计算资源的按需索取,即服 务化 • 实现应用的容器化封装的标准 化 • 在应用的开发、测试、分发、 安装部署的全生命周期过程中, 屏蔽底层基础架构的差异性 • 实现应用的快速上线部署 核心数据 对象 虚拟机 容器 核心操作 create,delete,start,stop, restart,pause/un-pause, suspend/resume,(live)migrate, rebulid,create image, etc. run,rm,start,stop,restart, kill,commit,diff,top,cp, attach,logs Nova该管Docker吗 • 把Docker罩在Nova之下,合适么? – 操作能对应上么? • Kill,diff,top,cp,attach,commit,push… – 传说中的“削足适履”? • Why so 别扭? – Nova:“往下看”,抽象硬件,统一资源 • 经典的IaaS层服务 – Docker:“往上看”,屏蔽差异,支撑应用 • 介于IaaS和PaaS之间 – 道不同,不相与谋 • Nova应该怎么“管” Docker? VM HA概述 • 需求界定 – 预定故障场景下,触发具有HA需求的VM在选 定的主机上进行重建操作 • 需求背景 – 对服务能力具有高可用性要求,但又无法进行 应用层改造 • 大致流程 – 故障检测 – 策略判断及动作触发 – 故障隔离 – 重建执行 Host A Host B VM VM VM HA的通用机制分析 我们想把这些东西都塞进Nova里吗? Host A VM 故障 诊断 故障 隔离 策略判断及 重建触发 Host B VM 重建 执行 故障诊断 应由监控系统完成 策略判断及重建触发 应由上层策略管理 模块完成 故障隔离 应由物理基础设施 管理系统完成 重建执行 应由虚拟机生命周 期管理系统完成 VM HA在OpenStack上的实现探讨 故障 诊断 故障 隔离 策略判断及 重建触发 重建 执行 Ceilometer或 其他监控系统 物理机 管理系统 上层策略 管理模块 Nova • 架构解耦,各司其职 • Nova只做分内之事 注:纯粹技术分析,不对应任何产品方案及实现 DRS/DPM的通用机制分析 我们想把这些东西也都塞进Nova里吗? Host A 负载 检测 功耗 管理 策略判断及 迁移触发 Host B 迁移 执行 负载检测 应由监控系统完成 策略判断及迁移触发 应由上层策略管理 模块完成 功耗管理 应由物理基础设施 管理系统完成 迁移执行 应由虚拟机生命周 期管理系统完成 V M V M V M V M V M 负载 检测 功耗 管理 策略判断及 迁移触发 迁移 执行 Ceilometer或 其他监控系统 物理机 管理系统 上层策略 管理模块 Nova DRS/DPM在OpenStack上的实现探讨 • 存在与VM HA合并至一套架构内解决的可能 • 问题:上层策略管理模块与nova scheduler如何共存? 注:纯粹技术分析,不对应任何产品方案及实现 Nova的资源管理与调度机制 Nova- compute Nova- conductor Nova- scheduler Nova- api Nova- compute Nova- compute 物理主机 物理主机 物理主机 DB 1 1 1 2 2 2 2 3 A A B B C C 资源刷新流程 ● 1:资源发现 ● 2:资源上报与刷新 ● 3:资源记录 资源申请流程 ● A:资源申请 ● B:资源调度 ● C:资源占用 Nova调度的难题 • 并发调度 – 多个nova-scheduler在同一时间点看到的资源视图相同 – 多个nova-scheduler互相无协调机制 – 概率性引发VM调度结果冲突,导致VM创建到启动时间 变长,并有可能导致VM创建最终失败 • 协同调度 – 多个VM的调度在现有机制下难以协同 – 部分情况下会导致调度结果错误 • 位置亲和性 • 其他复杂策略场景下的调度 Nova- scheduler DB Nova- scheduler Nova到底该不该管调度? Nova 资源调度 计算资源 生命周期 管理 Nova 计算资源 生命周期 管理 Gantt or其他 上层模块 资源调度 分拆调度职能的几点好处 • Nova自身架构和代码的进一步简化 • 利于实现集中的、统一覆盖多种资源的抽象资源视图,实 现更复杂、更精确的,针对多种资源的综合调度能力 • 有助于解决目前Nova调度机制面临的难题 Nova到底是个什么东西? • 计算资源池的统一抽象管理系统 – 该管的资源类型还是要管 •“Kernel”?“Driver”! – 管好抽象就行了,调度不一定需要管 • 控制面、业务面、运维面 – Nova只是控制面 – VM性能差?运维功能弱?别找我。。。 Outline • Nova架构职责的演变历程 • 与Nova架构职责相关的若干八卦 • Nova的设计思想的得失辨析 Nova设计思想的几个特点 • 分布式 – 由多个逻辑和物理上均可分离的组件共同实现 • 无中心 – 可以通过增加组件部署实例来实现水平扩展 • 无状态 – 所有组件无本地持久化状态数据 • 异步执行 – 大部分执行流通过消息机制实现异步执行 • 插件化、可配置 – 大量使用插件机制、配置参数实现灵活的扩展与变更 • RESTful API – API不是用来做界面的!! 事实上也是OpenStack 各个项目共同的特点 Nova设计思想带来的优势 • 灵活 – 功能灵活扩展 • 相对干净的代码界面 – 部署方案灵活 • 数台物理主机到数千物理主机 • 面向不同应用场景 – 整合多种资源 • 同时管理多种虚拟机、物理机、容器乃至于云主 机资源 – 避免厂商锁定 • 选你喜欢 Nova设计思想带来的问题 •“选择困难症” – 灵活也是双刃剑 • 稳定性与运维成本 – 当复杂的执行流出现问题的时候,应该怎么解决? 回滚? • 怎么实现回滚? – 上下文/状态记录 » 有状态? • Nova“无状态、异步执行”!! • What to do next? 谢谢各位! Thank you all!
还剩27页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

gwhy

贡献于2015-06-21

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf