CN108073350B - 一种用于云渲染的对象存储系统和方法 - Google Patents

一种用于云渲染的对象存储系统和方法 Download PDF

Info

Publication number
CN108073350B
CN108073350B CN201610997046.4A CN201610997046A CN108073350B CN 108073350 B CN108073350 B CN 108073350B CN 201610997046 A CN201610997046 A CN 201610997046A CN 108073350 B CN108073350 B CN 108073350B
Authority
CN
China
Prior art keywords
rendering
server
model file
object storage
hot spot
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
CN201610997046.4A
Other languages
English (en)
Other versions
CN108073350A (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.)
Chengdu Yun Chuang interconnected Information Technology Co., Ltd.
Original Assignee
Chengdu Yun Chuang Interconnected Information 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 Chengdu Yun Chuang Interconnected Information Technology Co ltd filed Critical Chengdu Yun Chuang Interconnected Information Technology Co ltd
Priority to CN201610997046.4A priority Critical patent/CN108073350B/zh
Publication of CN108073350A publication Critical patent/CN108073350A/zh
Application granted granted Critical
Publication of CN108073350B publication Critical patent/CN108073350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于云渲染的对象存储系统和方法,能够高效地管理模型文件的存储分布,有效地利用空闲网络带宽实现模型文件的主动调度,降低突发业务对云渲染网络的带宽压力,同时还能够缩短渲染对象获取的时间并增强渲染的实时性。所述对象存储系统包括:通过网络连接的调度服务器、对象存储服务器、数据库服务器、以及一个或者多个3D渲染服务器;其中,调度服务器,用于向3D渲染服务器发送包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址的推送消息;并用于响应接收到的渲染请求,将该渲染请求分配给对应的3D渲染服务器。

Description

一种用于云渲染的对象存储系统和方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于云渲染的对象存储系统和方法。
背景技术
渲染在电脑绘图中是指用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于3D物体的描述,它包括几何、视点、纹理以及照明信息。随着三维(Three-Dimensional,3D)模型技术在工业设计、工业制造等众多领域的广泛应用,已经积累了丰富的数字化3D模型。尤其是3D打印技术的飞速发展,一方面为如何应用已有的大量3D模型提供了丰富的途径;另一方面,各个细分专业领域的用户通过对现有3D模型的修改,进一步产生了更大数量且具有更多细节的3D模型。从海量的且具有大量细节的3D模型数据中搜索出与特定需求匹配的3D模型,并快速展现给用户需要依赖于云渲染技术,例如分布在网络中不同位置的具有渲染资源的分布式云计算机系统。
授权公告号为205193879U的实用新型专利公开了一种云计算渲染系统,其包括任务分配服务器、模板管理服务器、合成服务器和云渲染集群,其中渲染场景文件分散地存储在影视制作中心的各台制作电脑上,当不同的制作电脑需要使用同一场景文件进行云渲染时,每一台制作电脑都需要将场景文件发送给任务分配服务器,云渲染集群根据渲染任务分别从任务分配服务器获取相同的场景文件。当影视制作中心中的制作电脑物理上分布范围更广且数量更大时,或者在例如前述的3D模型搜索展示时所需要的实时云渲染等应用场景,对任务分配服务器的带宽需求将成倍增长,而大量重复对相同场景等渲染对象文件进行传输,不仅造成带宽的巨大浪费,而且会在影响带宽的同时降低云渲染的实时性。
发明内容
本发明的目的之一至少在于,针对上述现有技术存在的问题,提供一种用于云渲染的对象存储系统和方法,能够高效地管理模型文件的存储分布并增强渲染的实时性。为了实现上述目的,本发明采用的技术方案为:
一种用于云渲染的对象存储系统,其包括:通过网络连接的调度服务器、对象存储服务器、数据库服务器、以及一个或者多个3D渲染服务器;其中,
对象存储服务器,用于存储模型文件;数据库服务器,用于提供主模型数据库,主模型数据库存储有模型文件摘要信息和对应的模型文件在对象存储服务器中的外部存储地址;
调度服务器,用于向3D渲染服务器发送包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址的推送消息;以及响应接收到的渲染请求,将该渲染请求分配给对应的3D渲染服务器;
3D渲染服务器包括热点存储模块和3D渲染模块,其中,热点存储模块用于,根据推送消息从对象存储服务器下载热点模型文件,并存储在热点对象存储单元中;3D渲染模块用于,根据渲染请求建立3D渲染进程,通过3D渲染进程向热点存储模块发送读取模型文件请求,当热点存储模块中的热点对象存储单元中存储有请求渲染的模型文件时,根据对应的模型文件在热点对象存储单元中的内部存储地址读取对应的模型文件,并根据渲染请求中的渲染要求对读取的模型文件进行云渲染。
优选地,所述热点模型文件列表为热点调度模型文件列表;所述调度服务器用于周期地从负载均衡服务器获取热点调度模型文件列表,并从数据库服务器的主模型数据库获取热点调度模型文件列表中模型文件对应的外部存储地址。
优选地,所述热点模型文件列表为热点搜索模型文件列表;所述调度服务器用于周期地从数据分析服务器获取热点搜索模型文件列表及对应模型文件的外部存储地址。
优选地,所述热点存储模块用于:统计热点对象存储单元中存储的模型文件在预设时间段内被3D渲染进程读取的次数,获取热点对象存储单元中存储的模型文件的使用频率;当热点对象存储单元的可用存储空间小于或者等于预设阈值时或者根据预设的时间周期,按照使用频率从小到大依次删除热点对象存储单元中使用频率小于预设阈值的模型文件。
优选地,所述热点存储模块用于当热点对象存储单元中存储的模型文件的最大使用频率小于预设阈值时,向调度服务器发送获取热点模型文件列表请求。
优选地,所述对象存储系统还包括数据分析服务器,用于获取3D对象搜索系统所处理的搜索以及渲染请求中的模型文件的热度,生成热点搜索模型文件列表。
优选地,所述调度服务器用于在渲染请求小于预设数量或者负载均衡服务器的负载小于预设比例时,向3D渲染服务器发送推送消息。
优选地,所述热点存储模块用于当3D渲染服务器的带宽占用小于30%时,根据推送消息从对象存储服务器下载热点模型文件。
优选地,所述内部存储地址为模型文件在3D渲染服务器中的数据逻辑地址。
一种用于云渲染的对象存储方法,其包括以下步骤:
向3D渲染服务器发送包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址的推送消息;响应接收到的渲染请求,将该渲染请求分配给对应的3D渲染服务器;
根据推送消息从对象存储服务器下载热点模型文件,并存储在热点对象存储单元中;根据渲染请求建立3D渲染进程,通过3D渲染进程向热点存储模块发送读取模型文件请求,当热点存储模块中的热点对象存储单元中存储有请求渲染的模型文件时,根据对应的模型文件在热点对象存储单元中的内部存储地址读取对应的模型文件,并根据渲染请求中的渲染要求对读取的模型文件进行云渲染。
综上所述,由于采用了上述技术方案,本发明至少具有以下有益效果:
通过3D渲染进程向热点存储模块发送读取模型文件请求,当热点存储模块中的热点对象存储单元中存储有请求渲染的模型文件时,根据内部存储地址直接读取对应的模型文件,根据渲染请求中的渲染要求对读取的模型文件进行云渲染,能够高效地管理模型文件的存储分布,有效地利用空闲网络带宽实现模型文件的主动调度,降低突发业务对云渲染网络的带宽压力,同时还能够缩短渲染对象获取的时间并增强渲染的实时性。
附图说明
图1是本发明实施例一提供的用于云渲染的对象存储系统的结构示意图;
图2是本发明实施例一提供的用于云渲染的对象存储系统中3D渲染服务器的结构示意图;
图3是本发明实施例二提供的用于云渲染的对象存储系统中主要数据流向示意图;
图4是本发明实施例三提供的用于云渲染的对象存储系统和方法应用于3D对象搜索场景时通过推送方式一实施云渲染的示意图;
图5是本发明实施例三提供的用于云渲染的对象存储系统和方法应用于3D对象搜索场景时通过推送方式二实施云渲染的示意图;
图6是本发明实施例四提供的用于云渲染的对象存储系统中云渲染计算资源的结构示意图;
图7是使用本发明实施例四提供的用于云渲染的对象存储系统中云渲染计算资源实施云渲染的流程图。
具体实施方式
下面结合附图及实施例,对本发明进行进一步详细说明,以使本发明的目的、技术方案及优点更加清楚明白。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,本发明实施例一提供的一种用于云渲染的对象存储系统包括:通过网络连接的调度服务器、对象存储服务器、数据库服务器、以及一个或者多个3D渲染服务器。其中,网络可以包括局域网LAN、城域网MAN、广域网WAN、TDD-LTE、FDD-LTE移动通信网络等,连接方式包括通过各种有线、无线通信接口实现的连接。
图2示出了本发明实施例一提供的一种用于云渲染的对象存储系统中3D渲染服务器的结构示意图。如图2所述,3D渲染服务器主要包括3D渲染模块和热点存储模块。其中,3D渲染模块用于根据渲染请求建立一个或者多个3D渲染进程,3D渲染进程根据渲染请求中的渲染要求获取对应的模型文件,并调用3D渲染服务器的云渲染计算资源对模型文件进行云渲染,以获取渲染结果。
热点存储模块主要包括热点对象存储单元,热点对象存储单元中存储有一定数量的模型文件,即云渲染的渲染对象,可以包括各种固定或者动态的3D场景模型文件、色彩、光影、材质等模型元素文件。具体地,热点存储模块可以在接收调度服务器发送的下载推送消息之后,根据推送消息中的外部地址从对象存储服务器中对应的热点模型文件并保存到热点对象存储单元。通过此种推送方式,可以有效地提高云渲染网络热点模型文件的分布存储,提高模型文件的利用效率。
或者,热点存储模块可以周期地,或者当热点对象存储单元中已经存储的模型文件的最大使用频率小于预设阈值时,主动从调度服务器请求获取热点模型文件列表,并在网络空闲时,从对象存储服务器中下载对应的热点模型文件到热点对象存储单元中,这样可以降低有效地利用空闲网络带宽实现模型文件的主动调度,降低突发业务对云渲染网络的带宽压力。
进一步地,热点存储模块还可以根据模型文件的使用频率大小来确定其保存时间的长短,并通过统计模型文件的读取频率,以进一步提高热点对象存储单元中热点模型文件的使用效率,缩短渲染对象的获取时间。
当3D渲染进程向热点存储模块请求读取模型文件时,热点存储模块直接根据请求读取的模型文件的摘要信息,向3D渲染进程返回对应于热点对象存储单元的内部存储地址,例如,模型文件在3D渲染服务器中的数据逻辑地址,3D渲染进程因此可以直接从热点对象存储单元读取对应的模型文件,而不需要从外部的其他服务器(例如对象存储服务器)中远程下载模型文件,从而减少了获取渲染对象所需的时间,提高了云渲染的实时性。
当进一步增大热点对象存储单元中所存储的模型文件的规模时,为了更高效地管理所存储的热点模型文件,热点存储模块还可以进一步包括热点数据库,用于存储模型文件摘要信息和对应于热点对象存储单元的内部存储地址,以及模型文件的使用频率。当3D渲染进程向热点存储模块请求读取模型文件时,热点存储模块通过查询热点数据库,向3D渲染进程返回对应的内部存储地址,3D渲染进程进而可以根据返回的内部地址从热点对象存储单元读取对应的模型文件。
实施例二
图3示出了本发明实施例二公开的一种用于云渲染的对象存储系统的主要数据流向。
调度服务器在渲染请求小于预设数量或者负载均衡服务器的负载小于预设比例时,向3D渲染服务器发送推送消息;热点存储模块根据推送消息中的外部地址从对象存储服务器中对应的热点模型文件并保存到热点对象存储单元。或者,热点存储模块主动从调度服务器请求获取热点模型文件列表,并在网络空闲时,从对象存储服务器中下载对应的热点模型文件到热点对象存储单元中。
调度服务器收到来自用户或者负载均衡服务器的渲染请求后,根据其管辖的3D渲染服务器的运行状态,将渲染请求分配给合适的3D渲染服务器,例如在预设时间段内执行过相同或者类似渲染请求的3D渲染服务器,或者有相应渲染计算资源的3D渲染服务器。
3D渲染服务器中的3D渲染模块根据渲染请求建立相应的3D渲染进程,3D渲染进程直接根据热点存储模块返回的内部存储地址从热点对象存储单元读取热点模型文件,并调用3D渲染服务器的计算资源对模型文件进行云渲染。进一步地,还可以将渲染结果以视频流的形式发送给用户并相应用户的操作反馈再次执行云渲染。
当热点存储模块中没有请求渲染的模型文件时,3D渲染模块根据模型文件的摘要信息从数据库服务器获取对应的模型文件在存储服务器中的外部存储地址。例如,包括对象存储服务器的IP地址、端口号、存储ID等的地址信息。
3D渲染模块根据模型文件的外部存储地址从对象存储服务器下载对应的模型文件,3D渲染进程调用3D渲染服务器的计算资源对下载的模型文件进行云渲染。
进一步地,热点存储模块可以将下载的模型文件存储到热点对象存储单元,统计热点对象存储单元中存储的模型文件在预设时间段内被3D渲染进程读取的次数,获取热点对象存储单元中存储的模型文件的使用频率。当热点对象存储单元的可用存储空间小于或者等于预设阈值时或者根据预设的时间周期,按照使用频率从小到大依次删除热点对象存储单元中使用频率小于预设阈值的模型文件,以进一步提高热点模型文件的应用效率。
并且,热点对象存储单元中存储的模型文件可以同时被多个3D渲染进程读取,因此,可以在预设时间段内统计被多个3D渲染进程读取的次数之来更精确地获取相应模型文件的使用频率。热点存储模块可以根据读取模型文件请求中的模型文件摘要信息,判断热点对象存储单元中是否存储有相同的模型文件,具体地,例如可以通过消息摘要算法第五版MD5、散列HASH算法等获取的固定长度或者非固定长度模型文件摘要信息来判断两个模型文件是否相同。
实施例三
下文结合图4对本发明实施例三提供的用于云渲染的对象存储系统和方法,应用于展示3D对象搜索云渲染结果场景进行详细描述。
如图4所示,该应用场景中,用于处理用户搜索请求的3D对象搜索系统402包括:第一负载均衡服务器4021、集群缓存(Memcache)数据库服务器4023、以及一个或多个3D对象搜索网页(World Wide Web,Web)服务器4024。
本发明实施例三公开的用于云渲染的对象存储系统403除了包括上述通过网络连接的调度服务器4033、对象存储服务器4037、数据库服务器(包括可写数据库服务器4034和可读数据库服务器4035)、以及一个或者多个3D渲染服务器400,还包括:第二负载均衡服务器4031、第三负载均衡服务器4032、一个或多个网页服务代理(Web Servers Proxy)服务器4036。
下文所述的步骤可以分别单独执行,也可以并行执行或者按照预设的顺序来执行。其中,标号相同的步骤,表示数据交互流程的主体相同,但数据交互的具体内容可以相同,也可以有所不同,即该步骤可以包括多项数据交互内容,根据要实现的功能,可以选择不同的数据交互内容组合。
在用户执行3D对象搜索之前,3D渲染服务器403可以通过如下实施例的步骤来完成其运行状态的上报和渲染环境的准备:
步骤18:3D渲染模块4038启动后,在预设的时间或者周期地,通过调度服务器4033提供的接口主动向调度服务器4033所在的负载均衡服务器(例如,第二负载均衡服务器4031)上报注册信息;
步骤20:网页服务代理服务器4036在预设的时间或者周期地,通过调度服务器4033提供的接口主动向调度服务器4033所在的载均衡服务器(例如,第二负载均衡服务器4031)上报其运行状态信息;
步骤19:第二负载均衡服务器4031按照传输控制协议(Transmission ControlProtocol,TCP)代理的规则,将接收到的运行状态信息分发给较空闲的调度服务器4033进行处理;
步骤21:调度服务器4033通过处理其他服务器定期上报的运行状态信息,获取系统中各个功能模块的运行状态,并将结果存储到可写数据库服务器4034;
步骤22:可写数据库服务器4034和可读数据库服务器4035通过数据库的配置进行自动同步,同时可以实现主模型数据库的冗余备份。
在3D渲染服务器403完成其运行状态的上报和渲染环境的准备后,热点模型文件的主动推送,可以通过如下两种实施方式的步骤实现:
推送方式一
步骤19:调度服务器4033周期地从第二负载均衡服务器4031获取热点调度模型文件列表;
步骤21:调度服务器4033从数据库服务器的主模型数据库获取热点调度模型文件列表中模型文件对应的外部存储地址;
步骤30:当云渲染网络相对空闲时(例如,在凌晨渲染请求数量小于100次每秒,或者根据负载均衡服务器的负载统计结果显示的负载小于平均负载一定比例,如30%时),调度服务器4033向热点存储模块4040发送包括热点调度模型文件列表和外部存储地址的推送消息,推送消息中包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址;
步骤31:热点对象存储单元4041根据热点模型文件的外部存储地址,从对象存储服务器4037下载对应的模型文件。此下载步骤可以响应于推送消息的指示立即下载,也可以在3D渲染服务器400的带宽占用小于预设阈值(例如小于30%)时执行热点模型文件的下载。
推送方式二(如图5所示)
步骤13:Memcache数据库服务器4023从可读数据库服务器4035同步主模型数据库中存储的模型文件摘要信息和对应的模型文件在对象存储服务器4037中的外部存储地址的URL;
步骤32:3D对象搜索系统402中的数据分析服务器4022调用Memcache数据库服务器4023提供的表述性状态传递应用程序编程接口(Representational State TransferApplication Program Interface,RESTful API)服务,获取3D对象搜索系统402所处理的搜索以及渲染请求中的模型文件的热度,例如搜索请求频率,生成热点搜索模型文件列表;并通过Memcache数据库服务器4023获取列表中的模型文件在对象存储服务器4037中的外部存储地址;
步骤33:调度服务器4033周期地从数据分析服务器4022获取热点搜索模型文件列表及对应模型文件的外部存储地址;其后的步骤30和步骤31同上述推送方式一。
在优选的实施例中,除了接收调度服务器4033发送的下载推送消息之外,热点存储模块4040还可以周期地,或者当热点对象存储单元4041中已经存储的模型文件的最大使用频率小于预设阈值时,主动通过步骤30从调度服务器4033请求获取热点模型文件列表,例如热点搜索模型文件列表或者热点调度模型文件列表;并在网络空闲时,通过步骤31主动从对象存储服务器4037中下载热点模型文件到热点对象存储单元4041中。
通过上述推送方式,能够高效地管理模型文件的存储分布,有效地利用空闲网络带宽实现模型文件的主动调度,降低突发业务对云渲染网络的带宽压力。
3D对象搜索装置401登录3D对象搜索系统402后,进行3D对象搜索的流程可以通过如下实施例的步骤实现:
步骤1:用户通过3D对象搜索装置401上的浏览器在3D对象搜索的首页,向第一负载均衡服务器4021发送包括3D对象描述信息的3D对象搜索请求,例如将3D模型名称作为搜索关键字;
步骤4:第一负载均衡服务器4021按照TCP代理的规则,将收到的3D对象搜索请求发送给较空闲的3D对象搜索Web服务器4024进行处理;
步骤16:3D对象搜索Web服务器4024通过调用Memcache数据库服务器4023提供的RESTful API,获取包括3D对象索引信息的搜索结果列表,并生成搜索结果页面;
步骤5:3D对象搜索Web服务器4024将搜索结果页面发送给第一负载均衡服务器4021;
步骤2:第一负载均衡服务器4021将搜索结果页面发送给3D对象搜索装置401。
用于云渲染的对象存储系统403响应于渲染请求并显示3D对象实时离屏渲染结果的流程可以通过如下实施例的步骤实现:
步骤1:用户通过3D对象搜索装置401上的浏览器点击搜索结果页面里的模型文件的缩略图,向第一负载均衡服务器4021发送渲染请求;
步骤4:第一负载均衡服务器4021按照HTTP代理的规则,将收到的渲染请求发送给较空闲的3D对象搜索Web服务器4024进行处理;
步骤16:3D对象搜索Web服务器4024通过Memcache数据库服务器4023查询该模型文件的摘要信息、分类、渲染要求、渲染计算资源预算等信息,并为本次渲染请求分配Session ID;
步骤17:3D对象搜索Web服务器4024将包括Session ID以及渲染要求的渲染请求发送给调度服务器4033对应的第二负载均衡服务器4031;
步骤19:第二负载均衡服务器4031分配合适的调度服务器4033对渲染请求进行处理;第二负载均衡服务器4031对所分配的渲染请求中请求渲染的模型文件进行全局统计,生成热点调度模型文件列表,例如调度频率大于预设阈值的一万个模型文件;
步骤24:调度服务器4033通知对应的3D渲染模块4038创建3D渲染进程4039,为渲染请求中的Session ID分配合适的3D渲染进程4039;
步骤21:调度服务器4033将Session ID与3D渲染进程4039的映射关系存储到可写数据库服务器4034,进一步地,可以通过步骤22将该映射关系同步到可读数据库服务器4035;
步骤26:3D渲染模块4038根据调度服务器4033的通知创建3D渲染进程4039;
在上述步骤16之后,可以在执行步骤17、19、21、24、以及26时,并行执行如下步骤:
步骤5:3D对象搜索Web服务器4024将包括Session ID和3D渲染服务器400的IP地址的3D对象渲染信息,发送给第一负载均衡服务器4021;
步骤2:第一负载均衡服务器4021将该3D对象渲染信息发送给3D对象搜索装置401;
步骤8:3D对象搜索装置401解析(例如,通过Java脚本语言解析)该3D对象渲染信息后,根据3D渲染服务器400的IP地址,通过第三负载均衡服务器4032连接到于云渲染的对象存储系统403,并发送获取3D对象渲染结果请求;
步骤9:第三负载均衡服务器4032为该获取3D对象渲染结果请求分配合适的Web服务代理服务器4036;
步骤23:Web服务代理服务器4036通过将请求中的Session ID与从可读数据库服务器4035获取的Session ID进行匹配,来标识不同的3D对象搜索装置401发起的会话;
步骤11:Web服务代理服务器4036根据步骤23的匹配结果为该获取3D对象渲染结果请求分配对应的3D渲染进程4039;
步骤25:成功创建的3D渲染进程4039启动后,3D渲染进程4039从热点存储模块4040获取模型文件在热点对象存储单元4041的内部存储地址;
步骤27:3D渲染进程4039根据内部存储地址直接从热点对象存储单元4041读取对应的模型文件,进行3D对象实时离屏渲染,获取实时离屏渲染结果;
当步骤25中热点存储模块4040返回的结果表示热点对象存储单元4041中没有请求渲染的模型文件时,还可以进一步包括步骤28:3D渲染进程4039从可读数据库服务器4035获取请求渲染的模型文件在对象存储服务器4037中的外部存储地址;以及步骤29:3D渲染进程4039根据外部存储地址从对象存储服务器4037下载对应的模型文件,进行3D对象实时离屏渲染,获取实时离屏渲染结果;
步骤12:3D渲染进程4039将3D对象实时离屏渲染结果发送给Web服务代理服务器4036;
步骤10:Web服务代理服务器4036根据该3D对象实时离屏渲染结果生成3D对象实时离屏渲染结果页面,发送给第三负载均衡服务器4032;
步骤7:第三负载均衡服务器4032将3D对象实时离屏渲染结果页面发送给3D对象搜索装置401。
实施例四
下文结合图6和图7对本发明一实施例提供的3D渲染服务器通过实时离屏渲染实现云渲染的具体过程进行详细说明。其中,3D渲染服务器可以是分布在多个物理和/或逻辑位置的分布式服务器,例如基于不同云计算平台服务商提供的云计算服务器。
如图6所示,3D渲染服务器的云渲染计算资源可以包括:宿主机、多个图形处理器(Graphic Processing Unit,GPU)、内存、以及内存管理单元(Memory Management Unit,MMU)。
在宿主机上设置多个虚拟机V1、VN,宿主机上运行的虚拟机软件可以选择模拟处理器软件QEMU,操作系统可以选择Linux操作系统,多个GPU可以选择英伟达NVIDIA公司生产的GTX970显卡。当一个虚拟机启动时,3D渲染服务器创建3D渲染进程时分配一个未被使用的GPU与该虚拟机进行绑定,该GPU被该虚拟机独占使用,直到该虚拟机注销或者重置,该GPU不被其他虚拟机共享使用;当另一个虚拟机启动时,分配另一个未被使用的GPU与该另一个虚拟机进行绑定,来处理另一项渲染任务。
在绑定过程中,可以通过虚拟功能输入/输出外设组件互连标准(VirtualFunction Input/Output Peripheral Component Interconnection,VFIO-PCI)驱动根据映射关系来配置MMU与输入/输出内存管理单元(Input/Output Memory Management Unit,IOMMU)(图7中F和G步骤),从而使虚拟机的GPU驱动可以直接访问GPU硬件(图7中C步骤),GPU硬件可以直接访问虚拟机的内存(图7中D步骤)。
具体的,宿主机将内存映射到物理地址空间(Host Physical Address Space,HPASpace)的内存地址区域,对该区域的访问即可实现对内存的访问,将宿主机的GPU的物理资源映射到物理地址空间的GPU地址区域,虚拟机的GPU驱动可以访问该段地址空间,实现对GPU进行控制。进一步地,由于可以同时设置多个虚拟机分别处理多个渲染任务,将不连续的虚拟机内存区域映射为连续的VFIO-PCI地址空间段。因此,每个虚拟机的内存在访问内存时,先访问位于地址空间的内存地址空间,内存地址空间提供与该虚拟机内存地址对应的宿主机内存,继而进行数据的读写操作;虚拟机的GPU驱动在访问GPU时先通过GPU地址空间得到映射设于GPU地址空间的GPU控制寄存器地址,通过GPU控制寄存器,继而控制GPU进行实时离屏渲染渲染。
如图7所示,使用如上述配置的3D渲染服务器的云渲染计算资源进行实时离屏渲染渲染包括以下步骤:
步骤A:虚拟机中的3D应用程序将从热点存储模块读取或者从对象存储服务器中下载的模型文件写入虚拟机的内存中;
步骤B:虚拟机中的3D应用程序将渲染请求发送到虚拟机的GTX970驱动程序;
步骤C、GTX970驱动访问GPU地址空间段,将渲染请求写入GTX970控制寄存器中;
步骤D:GTX970根据控制寄存器的信息,对映射的连续的VFIO-PCI地址空间段进行直接内存访问,获取渲染所需的数据;
步骤E:GTX970对渲染数据进行处理,输出渲染结果。
上述实施例中,通过采用GPU虚拟化技术,将多块GPU的计算能力资源化,根据客户端提交的实时3D渲染请求在3D渲染服务器端按需进行3D云渲染,并将实时3D渲染结果以视频流的方式发送到客户端屏幕,并可以对客户端的键盘、鼠标、游戏操纵设备进行操作映射,使服务器端的3D渲染对象可以实时响应客户的操作需求,上述云渲染具有如下优点:
1、GPU运算能力资源化,按需弹性分配,是大型3D软件(例如,计算机辅助工程(Computer Aided Engineering,CAE)工具、游戏等)软件即服务(Software-as-a-Service,SaaS)化的基本条件;2、不消耗客户端GPU资源,可在任何客户端运行大型3D应用;3、跨平台能力强,部署成本低,现有的GPU虚拟化技术仅支持NVIDIA的专业显卡价格昂贵,并且只支持DirectX 3D和Windows7虚拟机,本发明还利用GPU虚拟技术支持NVIDIA的普通游戏,支持Windows和Linux虚拟机,同时支持OpenGL、DirectX 3D带来灵活的跨平台能力;4、客户端无需下载任何3D模型就可以直接在浏览器或APP中直接显示、操纵3D内容。
并且,通过上述用于云渲染的对象存储系统和方法,还能够高效地管理模型文件的存储分布,有效地利用空闲网络带宽实现模型文件的主动调度,降低突发业务对云渲染网络的带宽压力,同时还能够缩短渲染对象获取的时间并增强渲染的实时性。
以上实施方式仅用于说明本发明的较佳实施例,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于云渲染的对象存储系统,其特征在于,所述对象存储系统包括:通过网络连接的调度服务器、对象存储服务器、数据库服务器、以及一个或者多个3D渲染服务器;其中,
对象存储服务器,用于存储模型文件;数据库服务器,用于提供主模型数据库,主模型数据库存储有模型文件摘要信息和对应的模型文件在对象存储服务器中的外部存储地址;
调度服务器,用于向3D渲染服务器发送包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址的推送消息;以及响应接收到的渲染请求,将该渲染请求分配给对应的3D渲染服务器;
3D渲染服务器包括热点存储模块和3D渲染模块,其中,热点存储模块用于,根据推送消息从对象存储服务器下载热点模型文件,并存储在热点对象存储单元中;3D渲染模块用于,根据渲染请求建立3D渲染进程,通过3D渲染进程向热点存储模块发送读取模型文件请求,当热点存储模块中的热点对象存储单元中存储有请求渲染的模型文件时,根据对应的模型文件在热点对象存储单元中的内部存储地址读取对应的模型文件,并根据渲染请求中的渲染要求对读取的模型文件进行云渲染。
2.根据权利要求1所述的对象存储系统,其特征在于,所述热点模型文件列表为热点调度模型文件列表;所述调度服务器用于周期地从负载均衡服务器获取热点调度模型文件列表,并从数据库服务器的主模型数据库获取热点调度模型文件列表中模型文件对应的外部存储地址。
3.根据权利要求2所述的对象存储系统,其特征在于,所述热点模型文件列表为热点搜索模型文件列表;所述调度服务器用于周期地从数据分析服务器获取热点搜索模型文件列表及对应模型文件的外部存储地址。
4.根据权利要求1所述的对象存储系统,其特征在于,所述热点存储模块用于:统计热点对象存储单元中存储的模型文件在预设时间段内被3D渲染进程读取的次数,获取热点对象存储单元中存储的模型文件的使用频率;当热点对象存储单元的可用存储空间小于或者等于预设阈值时或者根据预设的时间周期,按照使用频率从小到大依次删除热点对象存储单元中使用频率小于预设阈值的模型文件。
5.根据权利要求4所述的对象存储系统,其特征在于,所述热点存储模块用于当热点对象存储单元中存储的模型文件的最大使用频率小于预设阈值时,向调度服务器发送获取热点模型文件列表请求。
6.根据权利要求3所述的对象存储系统,其特征在于,所述对象存储系统还包括数据分析服务器,用于获取3D对象搜索系统所处理的搜索以及渲染请求中的模型文件的热度,生成热点搜索模型文件列表。
7.根据权利要求1至6中任一项所述的对象存储系统,其特征在于,所述调度服务器用于在渲染请求小于预设数量或者负载均衡服务器的负载小于预设比例时,向3D渲染服务器发送推送消息。
8.根据权利要求1至6中任一项所述的对象存储系统,其特征在于,所述热点存储模块用于当3D渲染服务器的带宽占用小于30%时,根据推送消息从对象存储服务器下载热点模型文件。
9.根据权利要求1至6中任一项所述的对象存储系统,其特征在于,所述内部存储地址为模型文件在3D渲染服务器中的数据逻辑地址。
10.一种用于云渲染的对象存储方法,其特征在于,所述对象存储方法包括以下步骤:
向3D渲染服务器发送包括热点模型文件列表和对应的模型文件在对象存储服务器中的外部存储地址的推送消息;响应接收到的渲染请求,将该渲染请求分配给对应的3D渲染服务器;
根据推送消息从对象存储服务器下载热点模型文件,并存储在热点对象存储单元中;根据渲染请求建立3D渲染进程,通过3D渲染进程向热点存储模块发送读取模型文件请求,当热点存储模块中的热点对象存储单元中存储有请求渲染的模型文件时,根据对应的模型文件在热点对象存储单元中的内部存储地址读取对应的模型文件,并根据渲染请求中的渲染要求对读取的模型文件进行云渲染。
CN201610997046.4A 2016-11-10 2016-11-10 一种用于云渲染的对象存储系统和方法 Active CN108073350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610997046.4A CN108073350B (zh) 2016-11-10 2016-11-10 一种用于云渲染的对象存储系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610997046.4A CN108073350B (zh) 2016-11-10 2016-11-10 一种用于云渲染的对象存储系统和方法

Publications (2)

Publication Number Publication Date
CN108073350A CN108073350A (zh) 2018-05-25
CN108073350B true CN108073350B (zh) 2020-11-24

Family

ID=62153750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610997046.4A Active CN108073350B (zh) 2016-11-10 2016-11-10 一种用于云渲染的对象存储系统和方法

Country Status (1)

Country Link
CN (1) CN108073350B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765462B (zh) * 2018-07-28 2023-06-27 阿里巴巴集团控股有限公司 一种操作控制方法、装置、计算系统及电子设备
WO2020088681A1 (zh) * 2018-11-01 2020-05-07 华为技术有限公司 模型文件的管理方法和终端设备
CN109669737B (zh) * 2018-12-19 2023-04-18 百度在线网络技术(北京)有限公司 应用处理方法、装置、设备和介质
CN110096269A (zh) * 2019-04-18 2019-08-06 北京奇艺世纪科技有限公司 一种基于皮肤缓存机制的界面渲染方法、装置及电子设备
CN110209842B (zh) * 2019-05-16 2023-06-09 腾讯科技(深圳)有限公司 多媒体文件的处理方法、装置、介质及电子设备
CN113783911A (zh) * 2020-06-10 2021-12-10 北京奇虎科技有限公司 文件的下载方法、装置、系统、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799226B1 (en) * 2002-07-23 2004-09-28 Apple Computer, Inc. Hot unpluggable media storage device
CN102930374B (zh) * 2012-09-27 2015-11-04 乐华建科技(北京)有限公司 一种运用三维模型模拟现实进行项目管理的系统
CN103281394A (zh) * 2013-06-07 2013-09-04 北京奇虎科技有限公司 文件获取方法、节点服务器和系统
CN204129725U (zh) * 2014-06-09 2015-01-28 国家超级计算深圳中心(深圳云计算中心) 一种云渲染系统
CN205193879U (zh) * 2015-10-20 2016-04-27 国家超级计算深圳中心(深圳云计算中心) 一种云计算渲染系统

Also Published As

Publication number Publication date
CN108073350A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
CN108073350B (zh) 一种用于云渲染的对象存储系统和方法
CN108074210B (zh) 一种用于云渲染的对象获取系统和方法
US20200358710A1 (en) Container-based mobile code offloading support system in cloud environment and offloading method thereof
JP6853391B2 (ja) マップインターフェースにおける待ち時間の低減
US9229759B2 (en) Virtual machine provisioning using replicated containers
CN110706341B (zh) 一种城市信息模型的高性能渲染方法、装置及存储介质
CN104636077A (zh) 用于虚拟机的网络块设备存储系统与方法
CN104834722A (zh) 基于cdn的内容管理系统
CN112000287B (zh) 一种io请求处理装置、方法、设备及可读存储介质
US8938599B2 (en) Distributed graph storage system
CN107580011B (zh) 一种数据共享方法及桌面云服务端
US8675002B1 (en) Efficient approach for a unified command buffer
CN103679813B (zh) 三维数字地球的构建方法以及三维数字地球系统
CN111324667B (zh) 一种数据同步方法、装置、电子设备及存储介质
WO2024066828A1 (zh) 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品
CN113407298A (zh) 实现消息信号中断的方法、装置和设备
CN112316433A (zh) 游戏画面渲染方法、装置、服务器和存储介质
JP2020503609A (ja) マルチオペレーティングシステム用のメモリアクセス方法、装置及び電子設備
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
CN105573672A (zh) 一种基于nfs的虚拟化存储方法和系统
Trivedi et al. RStore: A direct-access DRAM-based data store
CN112506646A (zh) 显存分配的方法及装置
CN111427887A (zh) 一种快速扫描HBase分区表的方法、装置、系统
US9088631B2 (en) Game streaming system and method of supporting the multiuser and multiplatform
CN115269757A (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
TA01 Transfer of patent application right

Effective date of registration: 20180620

Address after: 610000 Sichuan, China (Sichuan) free trade pilot area, 5 floor, 5 building, 99, west section of lakeside road, Tianfu New District, Chengdu.

Applicant after: Chengdu Yun Chuang interconnected Information Technology Co., Ltd.

Address before: 610213 846, southern section of Tianfu Avenue, Huayang street, Tianfu New District, Chengdu, Sichuan

Applicant before: Chengdu Hermes Polytron Technologies Inc

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant