第十八届全国科学计算与信息化会议 虚拟计算中的虚拟机调度与控制研究 崔涛、程耀东 2017年07月05日
提纲 高能所虚拟计算简介 虚拟机的调度与控制方案分析 未来的发展 CUI Tao/CC/IHEP 2019/2/27 - 2
高能所虚拟计算简介 实验组成立于2014年 2014年建成Cloud个人云平台 2015年开始建设虚拟计算环境 2016年完善系统架构 按需调度、可计量的动态虚拟机调度 2016年完善系统架构 融合,跨地域虚拟计算环境,EOS 2017扩展 虚拟网络新技术、虚拟计算规模化 2000核,1P存储 三个openstack平台,共计近90台物理服务器 1500 提供给虚拟计算,500核提供给Cloud 私有云平台 CUI Tao/CC/IHEP 2019/2/27 - 3
虚拟计算中的虚拟机调度与控制 2015-今 项目效果 虚拟计算整体架构规划 确定了Openstack+GlusterFS共享存储的云平台架构 引入了EOS文件存储系统 VPManager核心组件的设计和实现 VCondor、VQuota 虚拟资源调度和配额管理 VMCtrl、DetDB 虚拟机调度和控制 Accounting 记账 Images mgmt. 镜像管理 项目效果 Cloud私有云平台为290余人提供测试虚拟机和虚拟登录节点,目前活跃用户89人 虚拟计算服务于BESIII、JUNO、LHAASO等大科学项目,2016.4月开始有统计算起,虚拟集群累计运行2.23M个作业,提供了 2.37M cpu小时 CUI Tao/CC/IHEP 2019/2/27 - 4
Configuration management 高能所虚拟计算简介-虚拟计算系统架构 Dashboard Dirac Virtual Cluster API API 云基础平台 Host Monitor Log Analysis authentication Service monitor LDAP UMT (IHEP EMAIL) Register Nagios DNS Get VM info. Register DNS Register Puppet NetDB GlusterFS Backend storage Configuration management CUI Tao/CC/IHEP 2019/2/27 - 5 Shi,Jingyan/CC/IHEP 2019/2/27 - 5
VPManager 高能所虚拟计算简介-VPManager核心机制 Application Comupting Virtual Job BES CEPC JUNO LHAASO VPManager Comupting NMS/Ganglia HTCondor 作业查询 配额查询 作业调度 VM监视 VCondor VM Quota Virtual Job Scheduler Controller VM调度 资源查询 VM调度 Image Mngt. VMCtrl Accounting System 推送VM 资源状况 获取控制信息 Openstack NetDB VM Pool VM Agent
虚拟计算中的虚拟机调度与控制 Shi,Jingyan/CC/IHEP 2019/2/27 - 7
虚拟计算中的虚拟机调度与控制 虚拟计算系统的目标 动态虚拟机引发的问题 基于作业驱动的虚拟机调度 弹性计算/按需计算 基于作业驱动的虚拟机调度 弹性计算/按需计算 可计量的虚拟计算资源调度 实现计算资源的虚拟化及物理资源与虚拟资源的融合 实现基于Openstack技术的松耦合、可扩展的云基础平台 动态虚拟机引发的问题 环境匹配:DNS、DHCP、PUPPET、调度、监视 系统同步:虚拟机的Image是滞后的,OS环境需要更新 注销:虚拟机是动态存在的,对调度、监视和存储系统而言是挑战 CUI Tao/CC/IHEP 2019/2/27 - 8
虚拟资源调度与控制设计-功能 环境匹配 虚拟机的更新和同步 加入计算系统 注销 动态注册和注销 Puppet + DHCP 预定义 DNS 协议加入和注销 HTCondor\Ganglia 虚拟机的更新和同步 账号同步 AFS账号是用户提交作业的凭据 软件更新 补丁、升级 操作系统环境修正 系统参数变更 加入计算系统 注销 撤销环境匹配 变更协议配置 G_none 队列和Ganglia组 Shi,Jingyan/CC/IHEP 2019/2/27 - 9 Shi,Jingyan/CC/IHEP 2019/2/27 - 9
虚拟机调度与控制的系统架构 VMctrl Openstack VM Pool VCondor 作业调度 VM监视 VM Quota NMS/Ganglia HTCondor 作业查询 VCondor VM调度 资源查询 作业调度 VM监视 配额查询 VMctrl VM Quota VM调度 Image Mngt. 推送VM 资源状况 获取控制信息 Openstack NetDB VM Pool VM Agent CUI Tao/CC/IHEP 2019/2/27 - 10
数据库及VMCtrl服务 基于数据库的控制机制 组件的组成 基于数据库表项实现控制状态发布和执行 基于时间戳实现虚拟机有效性控制 数据库 通过WEI API写入控制命令 通过WEI API + Scirpt负责执行控制指令 基于时间戳实现虚拟机有效性控制 基于VMS+VMCtrl表项联合实现指令有效性控制 组件的组成 数据库 vmctrl表 虚拟机控制命令及关键服务状态机 vms表 虚拟机所属站点、运行状态及时间戳 WEB API php开发,实现数据的输入输出 Linux Script 服务器执行,crontab 定时执行 Linux Script 虚拟机执行,crontab 定时执行 Shi,Jingyan/CC/IHEP 2019/2/27 - 11
数据库及VMCtrl服务 功能 接收数据和指令 服务器上的Script 虚拟机上的Script NetDB组件获取的虚拟机运行状态信息 接收Vcondor组件发送的虚拟机控制状态变更命令 服务器上的Script 完成本地维护,如数据库刷新和清理等 虚拟机上的Script 获取控制信息和指令 主机名更新、Script自更新、时间同步 实现计算系统AFS账号同步 HTCondor配置变更和Reconfig Ganglia配置变更和Service Restart 定时执行命令(程序安装、配置下载、临时处理) Shi,Jingyan/CC/IHEP 2019/2/27 - 12
NetDB组件 功能 NetDB or Openstack API 组件的组成 访问Openstack数据库,收集虚拟机状态信息 收集资源使用情况并提供查询接口 上传控制数据库并刷新虚拟机的时间戳 DNS域名同步 PUPPET+DHCP注册和撤销 NMS监视同步和撤销 Unified Auth账号同步 组件的组成 VMCtrl数据库 vms表 C语言程序 NetDB or Openstack API Shi,Jingyan/CC/IHEP 2019/2/27 - 13
Image管理和Accounting Image管理 Accounting Image模板化 + PUPPET自动更新 HTTP Image发布服务 Accounting 支持多用户,资源属性,积分制等 数据来源 基于Ceilmeter 基于控制数据库 Shi,Jingyan/CC/IHEP 2019/2/27 - 14
虚拟资源调度与控制设计 虚拟机调度流程 启动虚拟机 加入计算环境 撤出计算环境 撤销虚拟机 Vcondor根据作业队列的排队情况和项目配额,发送启动虚拟机命令 虚拟机启动-操作系统更新和账号同步 注册环境信息 加入计算环境 Vcondor发送指令,确定虚拟机加入的队列名称,虚拟机读取控制信息-按照控制信息提供的作业队列修改HTCondor/Ganglia的配置,实现入队和加入监视 撤出计算环境 VCondor发送指令,确定虚拟机退出队列,加入G_none队列,虚拟机读取控制信息-按照控制信息提供的作业队列修改HTCondor/Ganglia的配置,退出作业队列和监视 撤销虚拟机 Vcondor发送指令,撤销虚拟机,在撤销之前,执行脚本完成关键系统的正常关闭 Shi,Jingyan/CC/IHEP 2019/2/27 - 15 Shi,Jingyan/CC/IHEP 2019/2/27 - 15
虚拟机调度与控制的响应时间 虚拟机启动 同步和软件更新 调度和监控的加入 撤销 小于10秒钟 共享存储 小于10秒钟 共享存储 同步和软件更新 1分钟 Linux Script 执行频率 1次/分钟 调度和监控的加入 小于10秒 撤销 作业运行时间 + Linux Script 执行时间间隔 + 调度和监视重载配置 Shi,Jingyan/CC/IHEP 2019/2/27 - 16
未来的发展 Shi,Jingyan/CC/IHEP 2019/2/27 - 17
松耦合的Openstack集群 Openstack扩展 松耦合的Openstack集群 Cells Nova的层次化扩展 Tricircle/Trio2o 代理机制 紧耦合的技术方案 松耦合的Openstack集群 实现资源的便捷加入和退出,以方便扩展\维护(重装\升级) 松偶合 基于插件自由加入或注销集群身份 NETDB插件 提供虚拟资源情况和操作功能 集群身份变动不影响在运行虚拟机和作业 VM Ctrl/HTCondor 实现潮汐调度 通过调度策略的调整,实现作业不繁忙时的物理设备停机 平台异构的支持 跨地域虚拟计算 Shi,Jingyan/CC/IHEP 2019/2/27 - 18
未来的计划—松耦合的Openstack集群
小结 虚拟机调度与控制是VPManager的重要组成部分和执行机构 基于协议的虚拟机加入机制,充分体现了虚拟机调度的灵活性 基于NetDB的虚拟机信息收集机制,可以扩展成为松耦合Openstack集群的关键组件 CUI Tao/CC/IHEP 2019/2/27 - 20
谢谢! Shi,Jingyan/CC/IHEP 2019/2/27 - 21