CN112306636B - 云渲染平台及其智能调度方法 - Google Patents

云渲染平台及其智能调度方法 Download PDF

Info

Publication number
CN112306636B
CN112306636B CN202011177382.7A CN202011177382A CN112306636B CN 112306636 B CN112306636 B CN 112306636B CN 202011177382 A CN202011177382 A CN 202011177382A CN 112306636 B CN112306636 B CN 112306636B
Authority
CN
China
Prior art keywords
cloud rendering
kubernetes
service
cluster
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011177382.7A
Other languages
English (en)
Other versions
CN112306636A (zh
Inventor
刘湘泉
江梦梁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhai Dashi Intelligence Technology Co ltd
Original Assignee
Wuhai Dashi Intelligence Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhai Dashi Intelligence Technology Co ltd filed Critical Wuhai Dashi Intelligence Technology Co ltd
Priority to CN202011177382.7A priority Critical patent/CN112306636B/zh
Publication of CN112306636A publication Critical patent/CN112306636A/zh
Application granted granted Critical
Publication of CN112306636B publication Critical patent/CN112306636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种云渲染平台及其智能调度方法,使用kubernets容器集群管理技术对云渲染服务器进行管理、监控,并且,将三维模型APP、虚拟化技术、多用户共享技术与docker容器技术相结合,实现云渲染应用的分时智能调度与释放。本发明根据三维场景占用的硬件资源,利用虚拟化技术进行硬件资源的切分,并利用多用户共享技术,再一次进行硬件资源的切分,能够最大化的利用硬件来渲染资源,达到服务器和显卡等硬件设备的最大复用。

Description

云渲染平台及其智能调度方法
技术领域
本发明涉及云渲染技术领域,尤其涉及一种云渲染平台及其智能调度方法。
背景技术
在4G/5G环境下,越来越多的应用由线下、转到了线上,采用云端的方式来为用户终端提供服务。三维模型的展示,同样可以将三维渲染部分由云端线上处理,将用户终端观看的当前画面以视频的方式为其呈现,交互操作以指令的方式,发送到云端服务器,云端服务器上的画面根据交互操作做出相应的动作,同时渲染出实时的视频推送给客户。
每个进行云渲染的应用,都需要一个单独的物理服务器资源支持,如果要满足多用户量使用的场景,就会需要非常多的物理服务器,并且应用程序的部署、更新、维护上,也会有相应的人工成本。并且,现有的云渲染平台还存在也存在已部署应用的服务器当前不在使用的,而导致的服务器资源浪费的问题。因此,如何提供一种云渲染平台及其智能调度方法,以克服云渲染平台服务器资源浪费的问题。
发明内容
本发明提供一种云渲染平台及其智能调度方法,用以解决云渲染平台服务器资源浪费的问题。
本发明实施例提供一种云渲染平台,包括Kubernetes容器集群和物理服务器;
所述Kubernetes容器集群由Master节点和Worker节点组成;Master节点用于管理Kubernetes容器集群,Worker节点用于托管正在运行的三维模型APP;
所述物理服务器的主板支持多独立显卡,并且物理服务器安装对应独立显卡个数的虚拟机,虚拟机作为Kubernetes容器集群中的Worker节点,添加到Kubernetes容器集群中;
所述虚拟机基于三维模型APP的硬件资源使用情况,利用多用户共享技术,开启多个windows用户桌面,每一个windows用户桌面对应一个云渲染应用实例;
所述云渲染应用实例包括三维模型APP、推流程序、webRTC视频通道服务和运行以上服务的docker容器实例载体;所述推流程序用于为三维模型APP提供云渲染的功能支持,将渲染后的三维程序以视频流的形式推给用户终端浏览。
进一步,云渲染平台还包括web代理服务和web server集群服务;
所述web代理服务,用于对web server集群进行反向代理;
所述web server集群服务提供页面访问http/https接口的实现。
进一步,所述web代理服务具体用于,对外提供统一端口http/https接口代理服务,对内实现对web server集群的反向代理服务;
所述web server集群服务使用mysql数据库进行数据持久化,并使用redis进行中间数据缓存。
进一步,所述Kubernetes容器集群包括Master节点和Worker节点,所述Master结点为linux环境,安装并部署linux环境下的Kubernetes服务、docker容器服务以及从dockerhub镜像仓库中下载的linux docker镜像运行的容器实例;
所述Worker结点为windows环境,安装并部署windows环境下的Kubernetes服务、docker for windows容器服务以及从docker hub镜像仓库中下载的windows docker镜像运行的容器实例。
进一步,所述Kubernetes容器集群的deployment/pod,能够根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
进一步,所述云渲染应用实例的运行,通过web页面上使用http/https接口,调用Kubernetes API进行云渲染应用实例的创建、推流和释放。
第二方面,本发明实施例提供了第一方面所述云渲染平台的智能调度方法,包括:
S1,搭建云渲染平台的Kubernetes环境;
S2,根据三维模型APP的硬件资源使用情况,利用虚拟化技术进行硬件资源的切分;
S3,利用多用户共享技术,再一次进行硬件资源的切分。
进一步,步骤S2具体包括:
根据物理服务器的主板上显卡插槽的数量,利用KVM虚拟多个虚拟机,并将每一个虚拟机与显卡资源做直通处理。
进一步,步骤S3中,利用多用户共享技术,再一次进行硬件资源的切分,具体包括:
动态监控虚拟机的显存利用率;
根据虚拟机的显存利用率,在虚拟机中创建多个独立用户;
同时登陆多个独立用户,在多个独立用户的系统界面中分别部署三维模型APP、推流程序、调度agent程序;
其中,Master节点通过所述调度agent程序来监控各独立用户使用的系统CPU、内存以及显存资源的利用情况;Master节点还通过所述调度agent程序来完成独立用户系统的注销、退出、资源更新和回收。
进一步,所述方法还包括:
使用Kubernetes容器集群的deployment/pod,根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
本发明实施例提供的云渲染平台及其智能调度方法,使用kubernets容器集群管理技术对云渲染服务器进行管理、监控,并且,将三维模型APP、虚拟化技术、多用户共享技术与docker容器技术相结合,实现云渲染应用的分时智能调度与释放。本发明根据三维场景占用的硬件资源,利用虚拟化技术进行硬件资源的切分,并利用多用户共享技术,再一次进行硬件资源的切分,能够最大化的利用硬件来渲染资源,达到服务器和显卡等硬件设备的最大复用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的云渲染平台的整体架构图;
图2为本发明实施例提供的Kubernetes容器集群的构架图;
图3为本发明实施例提供的云渲染平台的智能调度方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明实施例提供的云渲染平台的整体架构图,参照图1,云渲染平台包括Kubernetes容器集群和物理服务器;
所述Kubernetes容器集群由Master节点和Worker节点组成;Master节点用于管理Kubernetes容器集群,Worker节点用于托管正在运行的三维模型APP。本实施例中,所述Kubernetes容器集群是由一个ubuntu1804 x64系统作为Master结点,多个windows系统作为Worker结点组成的服务器集群服务;Kubernetes容器集群提供服务器集群的管理,及各服务器上运行应用的管理,资源分配和监控。同时,对外提供Kubernetes API功能供第三方应用操作服务器、应用程序、资源等。为描述简洁,本申请中,Kubernetes容器集群也简称为“集群”或“Kubernetes”。
物理服务器功能配置较高,强CPU,大内存,同时物理服务器的主板上支持多独立显卡。图1中的“服务器”即是本实施例中的物理服务器,该物理服务器安装VMware-Vmvisor6系统。本实施例对物理服务器的数量不作具体限定。物理服务器的主板支持多独立显卡,并且物理服务器安装对应独立显卡个数的windows虚拟机,每个windows虚拟机均配置一个独立显卡直通,windows虚拟机作为Kubernetes容器集群中的worker节点,添加到Kubernetes容器集群中。所述虚拟机基于三维模型APP的硬件资源使用情况,利用多用户共享技术,开启多个windows用户桌面,每一个windows用户桌面对应一个云渲染应用实例。本实施例中,虚拟机对应一个Kubernetes容器集群中的Worker节点。虚拟机分配有一般办公电脑能力的CPU、内存及独立显卡能力。根据三维模型APP的硬件资源使用情况,当该虚拟机能力可以同时支持多个三维模型APP同时运行时,就可以通过windows多用户的机制,开启多个windows用户桌面,每一个windows用户桌面,对应一个云渲染应用程序运行的实例,从而达到应用程序个数最大化。而每个云渲染应用程序的运行,则是在web页面上使用http/https接口,调用KubernetesAPI来进行管理。云渲染平台中,通过封装KubernetesclientAPI接口,可实现动态的APP实例的创建、推流、释放。其中,Kubernetes-client是KubernetesAPI的开发库。
所述云渲染应用实例包括三维模型APP、推流程序、webRTC视频通道服务和运行以上服务的docker容器实例载体;参照图1,docker容器(container)中运行的是windows容器镜像,通过KubernetesAPI进行创建,并通过Rancher wins服务,在windows服务器宿主机上运行三维模型APP。RancherWins的windows服务的容器组件服务提供docker容器实例与宿主机(虚拟机)的通信机制。推流程序用于为三维模型APP提供云渲染的功能支持,将渲染后的三维程序以视频流的形式推给用户终端浏览。其中,三维模型APP是在windows系统中运行的三维应用程序。云渲染应用实例是利用云渲染技术和应用程序流化技术,将三维模型APP流化之后,为用户终端提供的服务实例。
其中,Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,它的目标是管理跨多个主机的容器,用于自动部署、扩展和管理容器化的应用程序,主要实现语言为Go语言。集群是一组节点,这些节点可以是物理服务器或者虚拟机,在它上面安装了Kubernetes环境。图1中,①~⑦分别是web、nginx、web sever、mysql、redis、KubernetesAPI和Kubernetes。
图2为本发明实施例提供的Kubernetes容器集群的构架图,参照图2,kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。添加至Kubernetes容器集群中的节点分为Master节点(Node)和Worker节点,Master节点管理Kubernetes容器集群,而Worker节点用于托管正在运行的应用程序。
本实施例中,云渲染平台的Master节点部署在ubuntu1804(x64)的环境上。Master节点协调集群中的所有活动,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。本智能调度的云渲染平台的Master节点部署在ubuntu1804(x64)的环境上。APIServer提供了Kubernetes各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。API server作为kubernetes集群系统的网关,是访问及管理资源对象的唯一入口,而其他所有的组件及kubectl命令都要经由此网关进行集群的访问和管理。而各组件及客户端每一次的访问请求都要有APIserver进行认证授权。Scheduler作用是将待调度的pod,按照特定的调度算法和调度策略绑定到集群中合适的Node上。Controller Manager作为Kubernetes容器群集内部的管理控制中心,负责Pod等副本管理。Kubernetes容器群集自动配置内部DNS服务。图2中,ETCD是Kubernetes容器集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。Dashboard可以给用户终端提供一个可视化的Web界面来查看当前集群的各种信息。用户终端可以用Kubernetes Dashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes各种资源。
kube-proxy是Kubernetes的核心组件,部署在每个Worker节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件。每个Worker节点都有一个kubelet,kubelet是管理节点并与Master节点进行通信的代理,云渲染平台的Worker节点部署在winserver 1809(x64)的环境上。
在Kubernetes容器集群中,所述Master结点为linux环境,安装并部署linux环境下的Kubernetes服务、docker容器服务以及从dockerhub镜像仓库中下载的linux docker镜像运行的容器实例。Worker结点为windows环境,安装并部署windows环境下的Kubernetes服务、docker forwindows容器服务以及从docker hub镜像仓库中下载的windows docker镜像运行的容器实例。
云渲染平台使用Kubernetes容器集群,可以自由的添加、删除、监控、管理各个Worker节点(windows服务器),实现Worker节点的弹性扩容。
本发明实施例提供的云渲染平台,使用kubernets容器集群管理技术对云渲染服务器进行管理、监控,并且,将三维模型APP、虚拟化技术、多用户共享技术与docker容器技术相结合,实现云渲染应用的分时智能调度与释放。本发明根据三维场景占用的硬件资源,利用虚拟化技术进行硬件资源的切分,并利用多用户共享技术,再一次进行硬件资源的切分,能够最大化的利用硬件来渲染资源,达到服务器和显卡等硬件设备的最大复用。
在上述实施例的基础上,云渲染平台还包括web代理服务和web server集群服务;
所述web代理服务,用于对web server集群进行反向代理;
所述web server集群服务提供页面访问http/https接口的实现。
具体地,web代理服务即nginx服务,通过配置,实现对外提供统一端口http/https接口代理服务,对内实现对web server集群的反向代理服务,并提供web server集群服务访问的负载均衡、水平扩展、高可用、滚动热更新等系统友好特性。
进一步地,web server集群服务使用mysql数据库进行数据持久化,并使用redis进行中间数据缓存,能够提高http/https接口的访问效率。其中,redis是基于内存亦可持久化的KVNoSql数据库。
在上述各实施例的基础上,本发明实施例使用Kubernetes容器集群的deployment/pod,能够根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
具体地,pod是一组紧密关联的容器集合,它们共享PID、IPC、Network和UTSnamespace,是Kubernetes调度的基本单位。pod的设计理念是支持多个容器在一个pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。Deployment能够确保任意时间都有指定数量的pod“副本”在运行。
本发明实施例提供的云渲染平台,将Worker节点中运行的三维模型APP和推流程序通过两个不同pod进行运行,并分别放入两个deployment中进行守护运行。
由于一个Worker节点,只能运行一个APP和推流的应用,本发明使用Kubernetes亲和度调度podAffinity/podAntiAffinity,来达到这一要求。pod亲和性podAffinity主要解决pod可以和哪些pod部署在同一个拓扑域中的问题。其中,拓扑域用主机标签实现,可以是单个主机,也可以是多个主机组成的cluster、zone等。pod反亲和性podAntiAffinity主要是解决pod不能和哪些pod部署在同一个拓扑域中的问题,它们都是处理的pod与pod之间的关系。
本智能调度的云渲染平台中,对APP运行的deployment配置,使用Kubernetesclient API运行动态的创建,同时配置中使用pod反亲和性podAntiAffinity,使得同一个Worker节点,只能运行一个三维模型APP、推流的云渲染实例。
图3为本发明实施例提供的云渲染平台的智能调度方法流程图,参照图3,该方法包括:
S1,搭建云渲染平台的Kubernetes环境;
其中,Kubernetes容器集群的构架图如图2所示,添加至Kubernetes容器集群中的节点分为Master节点(Node)和Worker节点,Master节点管理Kubernetes容器集群,而Worker节点用于托管正在运行的应用程序。
Kubernetes环境搭建完成后,云渲染平台的整体架构图如图1所示,本实施例中,云渲染平台的Master节点部署在ubuntu1804(x64)的环境上。Master协调集群中的所有活动,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。本智能调度的云渲染平台的Master节点部署在ubuntu1804(x64)的环境上。每个Worker节点都有一个kubelet,kubelet是管理节点并与Master节点进行通信的代理,云渲染平台的Worker节点部署在winserver 1809(x64)的环境上。
在Kubernetes容器集群中,所述Master结点为linux环境,安装并部署linux环境下的Kubernetes服务、docker容器服务以及从dockerhub镜像仓库中下载的linux docker镜像运行的容器实例。Worker结点为windows环境,安装并部署windows环境下的Kubernetes服务、docker forwindows容器服务以及从docker hub镜像仓库中下载的windows docker镜像运行的容器实例。
云渲染平台使用Kubernetes容器集群,可以自由的添加、删除、监控、管理各个Worker节点(windows服务器),实现Worker节点的弹性扩容。
S2,根据三维模型APP的硬件资源使用情况,利用虚拟化技术进行硬件资源的切分。
其中,三维应用通常分为两大模块:数据组织模块和展示窗体模块,数据组织模块负责数据的存储、组织和管理,通常只是占用SSD磁盘空间,而这部分的空间为固定大小,而且相对廉价。展示窗体模块需要实时调度数据组织模块中的数据,并将数据加载到内存以及显存空间,来完成数据的加载和显示,这部分对系统资源十分依赖,而且硬件资源的价格更加昂贵。因此,在展示窗体模块中,对CPU、内存、显存资源共享显得非常重要。
平台虚拟化(PlatformVirtualization)是针对计算机和操作系统的虚拟化。资源虚拟化(Resource Virtualization)是针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。本专利主要是针对三维场景占用资源的情况(例如CPU核数和线程数以及显卡、内存资源),分割合适数量的硬件资源,利用多用户操作系统(Linux、windows server)来管理这些硬件资源。
本实施例中,根据物理服务器的主板上显卡插槽的数量,利用KVM虚拟多个虚拟机,并将每一个虚拟机与显卡资源做直通处理。
S3,利用多用户共享技术,再一次进行硬件资源的切分。
具体地,多用户操作系统(Linux、windows server)可以给操作系统添加多个用户,这些用户可以操作系统层面来共享所有的硬件资源。多用户可同时登录,每一个用户界面都相互隔离,运行一个三维场景,并完成渲染为某一个用户提供服务。最终达到共享应用程序虚拟化(APPlication Virtualization)。
由于交互操作具有排他性、渲染视频流数据对节点中的GPU资源具有独占性,所以某节点所对应的操作用户,在该时刻只能有一个。对于有限的硬件服务器资源,本发明实施例利用虚拟化技术和多用户共享技术完成硬件资源的服务化,并用最优化的策略去分割、调度服务资源实例,才可以为用户终端提供最具性价比的三维场景的渲染和展示服务。
本实施例中,动态监控虚拟机的显存利用率;根据虚拟机的显存利用率,在虚拟机中创建多个独立用户;同时登陆多个独立用户,在多个独立用户的系统界面中分别部署三维模型APP、推流程序、调度agent程序。
其中,Master节点通过所述调度agent程序来监控各独立用户使用的系统CPU、内存以及显存资源的利用情况;Master节点还通过所述调度agent程序来完成独立用户系统的注销、退出、资源更新和回收。
本发明实施例提供的云渲染平台的智能调度方法,使用kubernets容器集群管理技术对云渲染服务器进行管理、监控,并且,将三维模型APP、虚拟化技术、多用户共享技术与docker容器技术相结合,实现云渲染应用的分时智能调度与释放。本发明根据三维场景占用的硬件资源,利用虚拟化技术进行硬件资源的切分,并利用多用户共享技术,再一次进行硬件资源的切分,能够最大化的利用硬件来渲染资源,达到服务器和显卡等硬件设备的最大复用。
在一个实施例中,对虚拟化操作的具体步骤可以包括:
1.加载第一个服务实例,动态监控CPU、内存情况;此处,服务实例即是前文中的云渲染应用实例。利用云渲染技术和应用程序流化技术,将三维模型APP流化之后,为用户终端提供服务实例。
2.假定CPU核数为A,动态监控到CPU的峰值利用率为12.5%;
3.假定内存大小为B,动态监控到内存的峰值利用率为20%;
4.硬件主板PCI插槽数量为N,也就是说可以插N张显卡;
5.利用KVM,虚拟出N个操作系统,每一个操作系统与显卡资源做直通处理,独占一个显卡。
6.在多用户共享技术的基础上,均分CPU核数和内存,原则是保证内存、CPU资源够用,不会影响用户终端体验性能。
在一个实施例中,多用户的共享操作的具体步骤可以包括:
1.加载第一个服务实例,动态监控显存的情况;
2.假定显存大小为A,动态监控的显存利用率的峰值为50%;
3.在虚拟机中创建2个独立用户;
4.同时登陆这两个独立用户,在这两个独立用户的系统界面中分别部署三维模型APP、推流程序、调度agent程序三个服务;达到了多用户共享显卡资源的目标;
5.MasterNode通过调度agent程序来监控各独立用户使用的系统CPU、内存、显存资源的利用情况;MasterNode还通过调度agent程序来完成独立用户系统的注销、退出、资源更新和回收等管理操作;
在上述各实施例的基础上,云渲染平台的智能调度方法还包括:
使用Kubernetes容器集群的deployment/pod,根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
具体地,pod是一组紧密关联的容器集合,它们共享PID、IPC、Network和UTSnamespace,是Kubernetes调度的基本单位。pod的设计理念是支持多个容器在一个pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。Deployment能够确保任意时间都有指定数量的pod“副本”在运行。
本发明实施例提供的云渲染平台,将Worker节点中运行的三维模型APP和推流程序通过两个不同pod进行运行,并分别放入两个deployment中进行守护运行。
由于一个Worker节点,只能运行一个APP和推流的应用,本发明使用Kubernetes亲和度调度podAffinity/podAntiAffinity,来达到这一要求。pod亲和性podAffinity主要解决pod可以和哪些pod部署在同一个拓扑域中的问题。其中,拓扑域用主机标签实现,可以是单个主机,也可以是多个主机组成的cluster、zone等。pod反亲和性podAntiAffinity主要是解决pod不能和哪些pod部署在同一个拓扑域中的问题,它们都是处理的pod与pod之间的关系。
本智能调度的云渲染平台中,对APP运行的deployment配置,使用Kubernetesclient API运行动态的创建,同时配置中使用pod反亲和性podAntiAffinity,使得同一个Worker节点,只能运行一个三维模型APP、推流的云渲染实例。
本发明实施例提供的云渲染平台及其智能调度方法,使用kubernets容器集群管理技术对云渲染服务器进行管理、监控,并且,将三维模型APP、虚拟化技术、多用户共享技术与docker容器技术相结合,实现云渲染应用的分时智能调度与释放。本发明根据三维场景占用的硬件资源,利用虚拟化技术进行硬件资源的切分,并利用多用户共享技术,再一次进行硬件资源的切分,能够最大化的利用硬件来渲染资源,达到服务器和显卡等硬件设备的最大复用。
本发明的各实施方式可以任意进行组合,以实现不同的技术效果。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种云渲染平台,其特征在于,包括Kubernetes容器集群和物理服务器;
所述Kubernetes容器集群由Master节点和Worker节点组成;Master节点用于管理Kubernetes容器集群,Worker节点用于托管正在运行的三维模型APP;
所述物理服务器的主板支持多独立显卡,并且物理服务器安装对应独立显卡个数的虚拟机,虚拟机作为Kubernetes容器集群中的Worker节点,添加到Kubernetes容器集群中;
所述虚拟机基于三维模型APP的硬件资源使用情况,利用多用户共享技术,开启多个windows用户桌面,每一个windows用户桌面对应一个云渲染应用实例;
所述云渲染应用实例包括三维模型APP、推流程序、webRTC视频通道服务和运行以上服务的docker容器实例载体;所述推流程序用于为三维模型APP提供云渲染的功能支持,将渲染后的三维程序以视频流的形式推给用户终端浏览。
2. 根据权利要求1所述的云渲染平台,其特征在于,还包括web代理服务和web server集群服务;
所述web代理服务,用于对web server集群进行反向代理;
所述web server集群服务提供页面访问http/https接口的实现。
3.根据权利要求2所述的云渲染平台,其特征在于,所述web代理服务具体用于,对外提供统一端口http/https接口代理服务,对内实现对web server集群的反向代理服务;
所述web server集群服务使用mysql数据库进行数据持久化,并使用redis进行中间数据缓存。
4.根据权利要求1所述的云渲染平台,其特征在于,所述Kubernetes容器集群包括Master节点和Worker节点,所述Master结点为linux环境,安装并部署linux环境下的Kubernetes服务、docker容器服务以及从docker hub镜像仓库中下载的linux docker镜像运行的容器实例;
所述Worker结点为windows环境,安装并部署windows环境下的Kubernetes服务、docker for windows容器服务以及从docker hub镜像仓库中下载的windows docker镜像运行的容器实例。
5.根据权利要求1所述的云渲染平台,其特征在于,所述Kubernetes容器集群的deployment/pod,能够根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
6.根据权利要求1所述的云渲染平台,其特征在于,所述云渲染应用实例的运行,通过web页面上使用http/https接口,调用Kubernetes API进行云渲染应用实例的创建、推流和释放。
7.一种如权利要求1~6任一项所述云渲染平台的智能调度方法,其特征在于,包括:
S1,搭建云渲染平台的Kubernetes环境;
S2,根据三维模型APP的硬件资源使用情况,利用虚拟化技术进行硬件资源的切分;
S3,利用多用户共享技术,再一次进行硬件资源的切分。
8.根据权利要求7所述的云渲染平台的智能调度方法,其特征在于,步骤S2具体包括:
根据物理服务器的主板上显卡插槽的数量,利用KVM虚拟多个虚拟机,并将每一个虚拟机与显卡资源做直通处理。
9.根据权利要求8所述的云渲染平台的智能调度方法,其特征在于,步骤S3中,利用多用户共享技术,再一次进行硬件资源的切分,具体包括:
动态监控虚拟机的显存利用率;
根据虚拟机的显存利用率,在虚拟机中创建多个独立用户;
同时登陆多个独立用户,在多个独立用户的系统界面中分别部署三维模型APP、推流程序、调度agent程序;
其中,Master节点通过所述调度agent程序来监控各独立用户使用的系统CPU、内存以及显存资源的利用情况;Master节点还通过所述调度agent程序来完成独立用户系统的注销、退出、资源更新和回收。
10.根据权利要求7所述的云渲染平台的智能调度方法,其特征在于,所述方法还包括:
使用Kubernetes容器集群的deployment/pod,根据用户终端需求智能调度可用服务器资源,分配给用户终端使用。
CN202011177382.7A 2020-10-28 2020-10-28 云渲染平台及其智能调度方法 Active CN112306636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011177382.7A CN112306636B (zh) 2020-10-28 2020-10-28 云渲染平台及其智能调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011177382.7A CN112306636B (zh) 2020-10-28 2020-10-28 云渲染平台及其智能调度方法

Publications (2)

Publication Number Publication Date
CN112306636A CN112306636A (zh) 2021-02-02
CN112306636B true CN112306636B (zh) 2023-06-16

Family

ID=74330500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011177382.7A Active CN112306636B (zh) 2020-10-28 2020-10-28 云渲染平台及其智能调度方法

Country Status (1)

Country Link
CN (1) CN112306636B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112907437A (zh) * 2021-03-26 2021-06-04 长沙景嘉微电子股份有限公司 多个3d进程运行方法、装置、电子设备和存储介质
CN114090183B (zh) * 2021-11-25 2023-07-21 抖音视界有限公司 一种应用启动方法、装置、计算机设备和存储介质
CN114296809B (zh) * 2021-12-24 2023-05-05 深圳航天科技创新研究院 一种基于操作系统的对象模型构建方法及其系统调用接口
CN115134348B (zh) * 2022-05-25 2024-05-03 阿里巴巴(中国)有限公司 云应用实例的分享方法及其系统、设备及存储介质
CN115373764B (zh) * 2022-10-27 2022-12-27 中诚华隆计算机技术有限公司 一种容器自动加载方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201700073D0 (en) * 2017-01-04 2017-02-15 Cisco Tech Inc Method and apparatus for container-based virtualisation
CN110457178A (zh) * 2019-07-29 2019-11-15 江苏艾佳家居用品有限公司 一种基于日志采集分析的全链路监控告警方法
CN111061560A (zh) * 2019-11-18 2020-04-24 北京视博云科技有限公司 云渲染资源调度方法、装置、电子设备及存储介质
CN111209109A (zh) * 2019-12-30 2020-05-29 江苏艾佳家居用品有限公司 一种基于docker的家装行业云渲染集群调度系统及调度方法
CN111597005A (zh) * 2020-05-18 2020-08-28 深圳航天智慧城市系统技术研究院有限公司 一种大数据可视化三维gis云渲染项目生成系统与方法
CN111614780A (zh) * 2020-05-28 2020-09-01 深圳航天智慧城市系统技术研究院有限公司 一种云渲染的系统与方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201700073D0 (en) * 2017-01-04 2017-02-15 Cisco Tech Inc Method and apparatus for container-based virtualisation
CN110457178A (zh) * 2019-07-29 2019-11-15 江苏艾佳家居用品有限公司 一种基于日志采集分析的全链路监控告警方法
CN111061560A (zh) * 2019-11-18 2020-04-24 北京视博云科技有限公司 云渲染资源调度方法、装置、电子设备及存储介质
CN111209109A (zh) * 2019-12-30 2020-05-29 江苏艾佳家居用品有限公司 一种基于docker的家装行业云渲染集群调度系统及调度方法
CN111597005A (zh) * 2020-05-18 2020-08-28 深圳航天智慧城市系统技术研究院有限公司 一种大数据可视化三维gis云渲染项目生成系统与方法
CN111614780A (zh) * 2020-05-28 2020-09-01 深圳航天智慧城市系统技术研究院有限公司 一种云渲染的系统与方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于云计算的动漫渲染实验平台研究与实现;廖宏建;杨玉宝;唐连章;卫建安;;实验室研究与探索(第07期);68-71 *

Also Published As

Publication number Publication date
CN112306636A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN112306636B (zh) 云渲染平台及其智能调度方法
CN112398914B (zh) 基于Kubernetes容器集群的云渲染平台
CN107231815B (zh) 用于图形渲染的系统和方法
CN108388460B (zh) 基于图形集群的远程实时渲染平台构建方法
CN103533063A (zh) 一种可实现web应用资源动态扩展的方法及装置
US20130151598A1 (en) Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
CN106155811B (zh) 资源服务装置、资源调度方法和装置
US20160314008A1 (en) Method for implementing gpu virtualization and related apparatus, and system
US9576332B1 (en) Systems and methods for remote graphics processing unit service
CN110032413A (zh) 一种桌面虚拟化方法、相关设备及计算机存储介质
CN104735108A (zh) 一种使用云桌面的方法、装置和云桌面系统
CN111679911B (zh) 云环境中gpu卡的管理方法、装置、设备及介质
CN103414712A (zh) 一种分布式虚拟桌面管理系统和方法
CN107920117B (zh) 一种资源管理方法、控制设备和资源管理系统
CN103309721A (zh) 虚拟机监视器管理系统及方法
CN113835887A (zh) 显存的分配方法、装置、电子设备及可读存储介质
WO2015179509A1 (en) High-performance computing framework for cloud computing environments
CN114510321A (zh) 资源调度方法、相关装置和介质
CN111045802B (zh) Redis集群组件调度系统及方法、平台设备
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
CN107528871A (zh) 存储系统中的数据分析
CN113806097A (zh) 一种数据处理方法、装置、电子设备以及存储介质
US11656914B2 (en) Anticipating future resource consumption based on user sessions
CN104717269A (zh) 用于位置服务的云公共平台计算机资源监控和调度方法
CN109032785B (zh) 一种基于虚拟桌面的工作流程管控方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant