Download presentation
Presentation is loading. Please wait.
1
基于openstack的虚拟资源调度技术研究
中科院高能物理研究所计算中心 李海波
2
提纲 研究背景及意义 系统架构 动态调度算法 下一步工作
3
集群环境及存在问题 高能物理作业是数据密集型计算,具有数据量大、应用类型多的特点,目前采用物理机集群,每个应用有专门的队列集群。 存在问题:
资源利用率不高 多应用抢占 资源共享性差
4
虚拟集群技术 虚拟集群 面临的挑战 提高资源利用率 提高资源调度效率 提高平台异构性 简化管理 绿色,节能
1.底层虚拟化平台的选择:openstack 2.PBS队列调度系统(Torque、Condor)不支持虚拟机队列 3.虚拟资源的管理与调度
5
底层虚拟化平台选择:Openstack 主流开源云计算平台,功能强大 部署方便,技术成熟 提供openAPI,方便二次开发
6
虚拟资源管理与调度 系统组件 虚拟作业层 虚拟机资源管理层 虚拟化平台层 PBS调度系统建立虚拟队列 负责虚拟机的启动、停止
区分不同的作业类型 虚拟化平台层 负责作业的运行
7
虚拟作业表 由Torque或Condor等队列调度系统生成,供虚拟平台拉取作业使用。 表结构
用户提交的作业的基本信息,如作业名、用户名、用户属组等信息 虚拟作业的属性信息,包括虚拟作业队列名称、虚拟机地址、虚拟机心跳时间 字段值 说明 job_hashname 作业id egroup 用户所属组 job_name 作业名字 status 作业运行状态 init_workdir 提交作业目录 exit_status 作业退出状态 output_path 标准文件输出路径 vm_ipaddr 虚拟机地址 error_path 错误文件输出路径 vm_procid 虚拟作业id shell 作业运行shell环境 last_heartbeat 虚拟机心跳时间 varlist 环境变量列表 queue_name 虚拟作业队列名称 mom_exec_host PBS作业执行节点 to_be_deleted 作业是否删除 euser 用户名 others1others2 预留字段
8
运行流程 采用推拉结合的作业运行方式 1)用户通过Torque或者Condor方式提交作业后,作业信息被推送到虚拟作业表里。
2)虚拟资源管理层通过虚拟作业表里的作业队列信息,进行相应队列类型的虚拟机启动。 3)虚拟机启动后,虚拟机上的进程向虚拟作业表请求作业信息,取到对应类型的作业后执行此作业。 4)作业执行结束后,虚拟机上的进程将作业输出写回,并再次执行拉取作业过程,同时监控虚拟机的作业状态,在虚拟机运行作业时,保证虚拟机不会被删除。
9
技术实现 Openstack API包接口 虚拟机上的jobagent
每次调用时会面临一些初始化问题,以及tokens失效等问题,调用不方便 将openstackAPI重新打包,方便虚拟集群调用 虚拟机上的jobagent 实现“拉”作业的功能 虚拟机上内置jobagent进程 始化作业运行环境,包括用户身份的转换,shell的设置,作业运行环境变量设置 监控虚拟机状态
10
动态调度算法 虚拟机启动调度 jobagent作业拉取 虚拟机删除
11
变量声明 定义: 状态字段: 需要启动的虚拟机数量:VT 当前处于创建状态的虚拟机数量:VB
当前处于删除状态的虚拟机数量:VD 当前作业id:P 虚拟机类型:VM_type 当前系统虚拟机配额:Q 当前处于activie状态的虚拟机列表:VM_IP_LIST 当前active的虚拟机数量:VA 状态字段: 状态标示 说明 初始值 ispull 是否可以拉取作业 True:可以拉取 Isdel 是否可以删除 Flase:不能删除
12
虚拟机启动调度 线性加减法 Measure #VT,#Q,#VA,#VB,#VD VN = VT - VA
if VN==0 then //虚拟机当前运行数量与所需数量相等 return elif VN > 0 then //启动虚拟机 if VN >= Q – VA then startVM(VM_type,Q - VA) elif VN < Q – VA then startVM(VM_type,VN) elif VN < 0 then //关闭虚拟机 delete(VM_type,-VN)
13
虚拟机删除 1. 遍历active状态的虚拟机,从中选择(VA-VT)个虚拟机,通过vmID得到IP 地址,对这些IP的虚拟机发送delete 请求信息; 2. 客户端收到isdel=true时,再调用stop_vm接口。
14
jobagent拉取作业算法 设置两个标志位 当虚拟机拉取到作业后,将isdel状态设置为不可删除状态, 设置环境,运行作业
Ispull:是否可以拉取作业,默认可拉取 Isdel:是否可以删除,默认不可删除 当虚拟机拉取到作业后,将isdel状态设置为不可删除状态, 设置环境,运行作业 当此作业运行完成后,将isdel变为可删除状态。 如果此时jobagent收到虚拟机管理层发来的虚拟机是否可删除询问时,将ispull状态设置为不可拉取作业状态,这样就可以关闭此虚拟机。
15
下一步工作 虚拟资源监控 虚拟调度策略优化 Cluster集群模式下的虚拟资源调度
16
小结 提出一种支持队列调度系统与openstack结合的虚拟资源动态调度系统。 对用户透明。 能够有效提高计算资源使用效率。
17
谢谢!
Similar presentations