写点什么

基于 OpenStack 的虚拟机资源管理系统设计策略

  • 2014-08-14
  • 本文字数:2109 字

    阅读完需:约 7 分钟

传统的虚拟化解决方案存在大量的问题和弊端,已经无法满足企业内部用户按需取用虚拟机资源的需求,运维人员和开发测试人员在虚拟机的使用管理上存在着很大的耦合性和关联性。58 同城在企业内部实现了一套基于 OpenStack 的虚拟机资源管理平台 (VMMS),能够动态、实时地响应全公司开发测试人员申请、续借和其他日常使用虚拟机的请求。云计算高级工程师赵龙撰文分享了实践经验。

对于整体的设计策略,赵龙指出,用户通过客户端请求虚拟机时,VMMS 虚拟机资源管理系统会立即响应用户的请求,按照用户的具体需求分配一台配置合理的虚拟机。通过维护一个动态变化的虚拟机资源池空间,对于虚拟机资源的各种请求做到了秒级响应。而且,为了保证虚拟机资源的动态伸缩,系统中还加入了时间管理模块;另外,虚拟机的正常运行工作通过状态管理模块来负责。全部的虚拟机资源都是通过底层的 OpenStack 云平台提供,VMMS Server 以一定频率和 OpenStack 云平台进行通信,保证资源的可用性和请求的及时响应。

VMMS 的设计哲学是什么呢?赵龙认为,是在平台硬件资源有限的前提下,优先满足用户对虚拟机的各种操作需求,保证虚拟机资源平台的可用性和稳定性,对用户的申请操作和虚拟机资源配额、资源池大小都做了强限制。

赵龙把 VMMS 的开发管理策略归结为以下几方面:

虚拟机配置策略

58 同城是为用户提供本地生活信息的平台,主要提供覆盖广泛、定位精准的各类 Web 服务。使用虚拟资源的用户因为业务和具体场景的不同,对虚拟机的需求也不尽相同。应对普通的 Web 服务开发测试,例如快速接口调整、嵌入新的管理推广模块、页面样式变更等灵动项目的调整与测试,使用接近 PC 机配置的虚拟机就可以达到较好的响应效果,必要时可以通过横向增加机器数量的方法应对业务大规模推广测试和版本迭代;应对核心业务线的优化和部分基础服务就需要使用高配置的机器,这类业务大都具有 CPU 密集型和内存密集型的特点。典型的场景有信息管理中心索引重建、Redis 集群测试等,都需要分配多核 CPU 高内存配置的虚拟机。我们将虚拟机用户的潜在需求大致分为几类,并为之相应准备了配置适宜的虚拟机镜像和云主机类型。用户在申请时,只需要在用途和欲申请虚拟机配置标注,提单后系统就会匹配相应的虚拟机给用户使用。另外,还在部分镜像加入了集中配置和测试部署环境打通的相关配置,有利于减少用户重复配置安装的工作量。

请求响应策略

为了从根本上改善过去虚拟化服务资源分配效率低下的问题,VMMS 系统会在用户操作请求提交后瞬间响应用户的申请。这是基于一个自适应变化的虚拟机资源池实现的。系统初始化时会创建 n 台虚拟机作为原始虚拟机资源池,用户申请后资源分配模块会从已有资源中匹配然后响应用户,系统在后台会根据虚拟机申请周期和频率从全局上调整补全虚拟机资源的速度。VMMS 系统在平台总虚拟机数量 m 和当前维持可用的虚拟机数量 n 都做了一定的限制,为的是保证对虚拟机资源分配平台负载的有效控制。在局部时间内如果用户申请虚拟机操作的并发量超过了设定的阈值,系统会根据并发量调整 m 至 1.5 倍或 2 倍不等。相应地,资源池虚拟机数量 n 也得到了提升,优先保证用户正常进行各种虚拟机请求操作。在用户申请虚拟机操作请求频率回落后,VMMS 会再次将 m 和 n 的值收敛到正常范围。

资源控制策略

私有云平台受限于规模,所能够使用的硬件资源比较有限。为了及时有效地回收不在使用状态的虚拟机,VMMS 系统的时间管理模块会根据每台虚拟机的初始申请周期对在用虚拟机列表中机器进行定时扫描。查找到虚拟机使用周期已到而用户并没有后续的续借行为,系统会自动回收该虚拟机,释放物理资源。用户在申请虚拟机时有虚拟机重要性的可选字段,可根据业务和场景的具体情况给出重要性数值。针对工作数据和日志信息比较关键的虚拟机实例,如果到达指定时间还未收到续借请求,VMMS 会首先对虚拟机做停机处理,告知用户需要续借,没有后续操作的话虚拟机会在三天内回收。

虚拟机稳定性策略

状态管理模块会定时扫描每台在用虚拟机的状态,对不处于可工作状态的虚拟机首先尝试恢复,不成功则启用虚拟机重建和迁移策略来保证虚拟机的可用性。

虚拟机生成策略

为了减少人为干预,虚拟机的生成采用了完全自动化的策略。虚拟机从启动到划分所属网络、绑定浮动 IP、修改初始密码到进行业务上的初始化部署做到了完全借助系统本身流程进行。 借助 VMMS 虚拟机资源管理平台,开发测试人员能够自由便捷地按需取用虚拟机,在业务开发与测试环境的准备工作上提高了效率。VMMS 响应用户的各类虚拟机请求操作达到了每天上百次,简化了传统虚拟化解决方案下用户提单、运维审批,创建虚拟机再交付用户使用的流程,在无需人干预的情况下取得了较过去投入大量运维人力更好的体验;虚拟机的使用迭代周期相比过去大大缩短,每隔 10-15 天虚拟机资源池中的机器就会完整更新一遍,用户随用随取、不用归还,避免了资源的长期占有和浪费;在相同的硬件资源条件下能够管理和提供的虚拟机数量也较过去有了大幅提升。

除此之外,文章还分析对于 OpenStack 企业级的云平台部署方案,如何在存储和网络上探索和性能优化,使得 OpenStack 较好地满足了企业对外提供 Web 服务的需要,更多详情,读者可查看其原文

2014-08-14 00:314311
用户头像

发布了 501 篇内容, 共 282.9 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

如何批量杀死 Apache DolphinScheduler 运行中的工作流?

白鲸开源

大数据 开源 工作流 Apache DolphinScheduler 数据调度

MyEMS:以数字化引擎驱动能源管理革新,重塑绿色发展新动能

开源能源管理系统

开源 能源管理系统

YashanDB快速入门:从零开始搭建分布式数据库

数据库砖家

MyEMS:赋能能源管理数字化转型的核心引擎

开源能源管理系统

开源 能源管理系统

CST电路监视器第二讲-CST软件教程

思茂信息

cst CST软件 CST Studio Suite

仓颉之结构体、类与接口的奇幻乐园

华为云开发者联盟

仓颉 华为开发者空间

YashanDB跨平台部署指南,适应企业多样化环境

数据库砖家

YashanDB面向物联网的数据处理优势分析

数据库砖家

YashanDB配置高并发环境下的数据处理技巧

数据库砖家

YashanDB企业数据仓库搭建教程

数据库砖家

AI背诵APP的开发流程详解

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI背诵

YashanDB结合人工智能提升数据库智能管理水平

数据库砖家

YashanDB面向业务的数据库性能优化策略

数据库砖家

YashanDB企业级备份还原流程详解

数据库砖家

YashanDB企业数据库安全体系搭建指南

数据库砖家

仓颉之泛型和扩展的神奇天地

华为云开发者联盟

CodeArts 仓颉 华为开发者空间

YashanDB开发者教程:快速上手企业级数据库编程

数据库砖家

YashanDB跨数据中心灾备构建方法详解

数据库砖家

YashanDB连接池配置优化及多线程操作最佳实践

数据库砖家

YashanDB连接池配置与优化技巧

数据库砖家

YashanDB企业级数据库应用开发全流程介绍

数据库砖家

抖音视频详情API秘籍!轻松获取视频详情数据

tbapi

抖音API 抖音视频数据采集 抖音视频详情API

YashanDB跨平台数据迁移教程,轻松实现系统升级

数据库砖家

AI大模型×政务热线:数造科技打造企业动态画像的“实时监测引擎”

数造万象

数据 企业 政务 数字化案例 人工智能、

MyEMS:智能化能源管理的创新实践

开源能源管理系统

开源 能源管理系统

5分钟入门微信小游戏开发(四)

扬_帆_起_航

游戏开发 独立游戏开发

YashanDB配置优化,提升数据库整体性能

数据库砖家

主流内网聊天工具,谁才是企业的最佳选择?

BeeWorks

即时通讯 IM 私有化部署

gRPC凭什么成为微服务通信首选?深度解析RPC进化史

左诗右码

YashanDB企业数据管理中的关键技术解析

数据库砖家

基于OpenStack的虚拟机资源管理系统设计策略_DevOps & 平台工程_崔康_InfoQ精选文章