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