滴滴 许令波:统一资源调度平台建设实践

拜问萍

2017/11/14 发布于 技术 分类

目前大部分工作都在建设私有云,需要将物理资源进行统一的抽象要么进行虚拟化要么进行容器化,一般分为两个阶段:一是实现物理资源的虚拟化(即资源的抽象),将物理机分割成更小单位的虚拟机可以显著提升机器的利用效率,实现存储计算分离以及在离线混部等;二是将资源虚拟化后进一步实现编排更细粒度在时间和空间上优化资源的使用,进而实现自动化运维、弹性伸缩以及故障自愈等。本次演讲将深入介绍滴滴搭建统一资源调度平台的关键技术实践方案以及在建设过程中遇到的典型问题分析 听众收益 1. 可以了解滴滴场景下物理资源调度技术的选型思考以及容器技术的选择方案 2. 滴滴的统一资源调度平台的系统架构与最佳实践案例 3. mesos、docker、lxc以及lxcfs等开源技术的应用中遇到的疑难问题分享

文字内容
1. 统一资源S调A度CC平20台17建设实践 许令波/2017.10
2. 内容简介  为什么需要资源调度  什么是调度  提升稳定性和效率  建设数据中心 7 如何抽象资源 01 资源的收集和管理。 C2 虚拟化 AC 数据持久化 S 如何调度资源  技术选型  兼容考虑  遇到的难题
3. 关于我  联系我:xulingbo0201@163.com  目前负责滴滴的资源调度平台建设,主要关   著之注有前资《有源深在调入阿度分里和7析容S年J器Aa的vC化a性CW相能2e关b0优技技1化7术术经内验幕》
4. 什么是调度 所谓资源调度一般分为 两个阶段:   象虚技编)排拟术::化来(虚更隔即细拟离资资粒机源源度或S的在容AC抽时器C2017 间和空间上优化资源 的使用
5. 一些数据 • 从物理机迁入oceanbank,一台GIFT-PROXY可 省:22核,120G内存。一台GIFT-FS可省9核 CPU,40G内存 • 节G理IF约机T-成共FS省本共下统节约计约::5S0节5A00多C省多核C了台,2约G02IF51TT0内7-%P存RMO。机XY折型和算物60成理多物机台。
6. 提升稳定性和效率  提升运维效率 标准化运维,只要一个镜像就可以部署起来  提应的自升干用动稳和预化定运,性应行:用的S依机A赖器C和解C部耦2了署0变1自7动化减少了人为 相应的就可以做弹性伸缩和调度
7. 建设数据中心 资源的统一抽象对上层应用屏蔽时间(不会down机) 和空间(机器、机房、区域等)上的差异 SACC2017
8. 如何抽象资源  对具体物理资源的收集和管理。  虚拟化。将抽象的硬件资源属性进行重新封装, 封装成上层可以使用的一个实体,可以是容器  也这全数据可样局持调就以久会是度虚,把化。拟所机业以机器S务有或变A少成三者C不有一种C了个状种2会态场资01有源景,7数不需集据要合利。存解于储决对在:资本一源机的是, 不需要永久本地存储但是会实时写到本地如应 用的日志;二是需要永久存储如DB。三是分布 式存储场景,做到存储与计算分离
9. 物理资源的收集和管理  资源的信息管理。有多少,用了多少,还有 多少。  大量物理机器的集群管理。除了通常几十万  台理求资的,源最的机如终合负器会理管责在分理接每配功收台Sm策能的AaC略外物stCe和,理r2的算还机0创法有上17建。一进容上分行器层部分的的的配t资任以as源务及k等请管如 何分配,这里面有很多优化空间,如何保证 每台物理机资源的合理利用需要合理的分配 策略和算法支撑。
10. 虚拟化 vm、docker和lxc的选择问题: SACC2017 图片来自网络
11. Docker vs LXC copy on write技术可以节省磁盘  非volume挂载磁盘会有性能损耗 SACC2017 图片来自网络
12. 容器存储选型  Devicemapper性能对比  OverlayFS性能对比 SACC2017
13. Lxc的磁盘性能  LXC与宿主机磁盘I/O性能测试对比 SACC2017
14. 如何调度资源  调度框架选型  调度策略 SACC2017
15. 调度框架选型 K8s mesos swarn等比较 SACC2017 图片来自网络
16. 我们最关心的几个因素  支持的规模、稳定性 Mesos支撑>30000nodes;250k containers  兼T支支容w持持i性te大各r、/A数种接p据中pl入e集间/U成S群件be本A的的r/C接接ebC入入ay2/a0irb1n7b等
17. 统一调度的架构 SACC2017
18. 统一调度的架构 SACC2017
19. 中间件接入  提供容器asVM,将容器做成VM一样的体验  利用LXCFS隔离CPU、men和Load信息 SACC2017
20. 实现LXCFS的load隔离  计算公式:load(t) = load(t-1) exp(-5/60R) + n(t) (1 – exp(5/60R))  如果想在容器中获取正确Loadavg信息的那么就 要具备以下几点: 017– 获取运行在容器中的所有进程(包括:线程)。 C2– 获取运行在容器中的进程总数。 SAC– 获取运行在容器中的所有进程运行状态。 – Loadavg计算公式。  难点是如何控制性能消耗 – 控制对进程信息获取的系统调用
21. 大数据接入 直接提供容器as vm给大数据使用,直接将 yarn部署在容器里   资在源离动线态混调部度需支要S持考AC虑C磁2盘0的17存储容量问题
22. 遇到的坑 1. Java线程夯住的问题排查过程 2. lxc容器cgroup被修改问题分析 3. 4. 5. OL【XbC源系FS码统获分内取析存pr】分ocSL文配XAC件失存C长败C在度o2配o0失m置1问败7文题排件分查解析析的问题
23. 示例1-Java线程夯住的问题排查过程 SACC2017
24. 示例2- Ob系统内存分配失败问题分析 SACC2017
25. SACC2017