Qwen3 惊喜上线阿里云百炼,8款模型全开源!点击免费领取 800万 tokens! 了解详情
写点什么

基于 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:313922
用户头像

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

关注

评论

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

Acunetix v25.4 - Web 应用程序安全测试

sysin

Acunetix

即时编译助力金仓数据库KingbaseES分析能力飞跃

金仓技术

JIT 金仓数据库

k8s中资源限制 limit 和 request 的关系

陈德伟

k8s JVM Request Resource limit

通义灵码入选 “2025 年值得关注的 AIGC 产品”,是唯一入选的 AI 编程产品

阿里云云效

阿里云 云原生 通义灵码

当KES高可用共享集群部署遇到文件系统损坏,该如何解决?

金仓技术

KingBase 金仓数据库

从一棵树到一片森林:Mint Forest V3 正式上线!

NFT Research

blockchain web3

Kubelet 可观测性最佳实践

观测云

Kubernetes

聊聊SpringAI流式输出的底层实现?

王磊

金仓数据库KingbaseES如何通过Hint影响执行计划

金仓技术

KingbaseES 金仓数据库

从重复编码到设计:飞算 JavaAI 助力程序员跳出「低阶陷阱」

飞算JavaAI开发助手

飞算 JavaAI “智能引导” 功能:小白一天也能成为 Java 高手

飞算JavaAI开发助手

使用华为开发者空间搭建WordPress博客平台

华为云开发者联盟

华为云 华为开发者空间

金仓数据库KingbaseES PAKCAGE的使用

金仓技术

KingBase 数据库· 金仓数据库

飞算 JavaAI 的 “高并发处理” 方案:如何应对流量高峰

飞算JavaAI开发助手

金仓数据库KingbaseES系统故障的排查方法

金仓技术

KingBase 金仓数据库

Studio 3T 2025.7 发布 - MongoDB 的终极 GUI、IDE 和 客户端

sysin

mongodb

MyBatis中的 10 个宝藏技巧!

量贩潮汐·WholesaleTide

Java 数据库 mybatis

如何基于 Kestrel 实现 socks5 代理

八苦-瞿昙

C# Proxy

MySQL的高可用解决方案

陈一之

MySQL 高可用架构

高并发下单库存扣减异常?飞算 JavaAI 自动化生成分布式事务解决方案

飞算JavaAI开发助手

我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码

阿里巴巴云原生

阿里云 云原生 通义灵码

我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码

阿里云云效

阿里云 云原生 通义灵码

QT 实现 C++ 数据类与 json 的转换

电子尖叫食人鱼

c++ qt

Kubernetes弹性扩容:助力AI大模型部署与运维的云原生实践

inBuilder低代码平台

2025 Java 框架痛点全解析:如何避免性能瓶颈与依赖混乱

飞算JavaAI开发助手

VMware Cloud Director Availability 4.7.1 - 灾难恢复和迁移 (DRaaS 解决方案)

sysin

vmware

搞定 XLSX 预览?别瞎找了,这几个库(尤其最后一个)真香!

沉浸式趣谈

AI时代下,应用动态化开发有新的思路?

Speedoooo

灰度发布 热更新 小程序容器 小程序技术 动态化技术

SANnav Management Portal 2.2.1 for ESXi - SAN 可视化管理软件

sysin

SANnav

通义灵码入选 “2025 年值得关注的 AIGC 产品”,是唯一入选的 AI 编程产品

阿里巴巴云原生

阿里云 云原生 通义灵码

从编码执行者到系统指挥官:AI时代程序员的价值跃迁之路

飞算JavaAI开发助手

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