| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 7 个月前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 7 个月前 | ||
| 2 个月前 |
RMRS
项目简介
RMRS是一款开源的内存迁移工具, 是ubturbo框架的插件,其搭配OBMM、底层调用SMAP使用,可以决策及执行将虚拟机的内存迁出到远端以及决策、执行将内存迁回.
例如, 在虚拟化场景中, 创建虚拟机时本地Numa上内存均不足,会借用远端内存,将虚拟机的本地内存置换到远端. 此时RMRS提供能力, 决策将本地虚拟机迁出多少到远端内存上,并调用SMAP进行迁移执行;当新虚拟机创建失败等情况下需要回滚迁出行为时,RMRS也提供了内存迁回回滚能力;当虚拟机销毁等情况下,业务侧可能会调用内存归还,RMRS提供了内存归还迁回决策、迁回执行能力,决策远端Numa上的虚拟机是否都可以迁回到本地,如果是则执行迁回。
迁移行为底层调用的都是SMAP,SMAP会周期性统计内存冷热信息, 保证虚机内应用在使用远端内存时, 性能可控。
目录结构
├── doc # 文档
├── src
│ ├── include # 全局头文件
│ └── ubturbo_plugin
│ ├── common # 公共函数
│ ├── conf # 配置文件
│ ├── export # 采集模块
│ ├── include # 头文件
│ ├── intranode_strategy # 迁移模块
│ ├── message # 消息模块
│ ├── serialization # 序列化模块
│ └── ucache # ucache模块
项目架构
RMRS分层架构:
UBS RMRS部署在UBS engine内,各计算节点Agent端仅负责数据采集和消息转发等,主节点侧作为功能入口,提供碎片内存的借用、迁出,内存归还和回滚接口,负责节点间的碎片内存管理。 RMRS部署在各计算节点的UBTurbo内,基于自身的资源采集,提供碎片场景虚机的迁出/迁回策略,利用SMAP迁移能力执行虚机的迁出和迁回。
快速入门
前置条件
-
安装并启动libvirt服务.
yum install -y qemu* yum install -y libvirt* systemctl start libvirtd -
安装并启动UBTurbo服务.
-
RMRS依赖obmm生成远端numa, 安装RMRS前需要进行obmm配置;
-
RMRS依赖SMAP的内存迁移和判热能力,安装SMAP.
RMRS编译
RMRS插件默认集成在UBTurbo中,安装、部署及使用方式参考UBTurbo Doc。
RMRS启用
检查/opt/ubturbo/conf/ubturbo_plugin_admission.conf文件以下选项打开:
# code 必须大于200
rmrs=777