速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Deadline 使用 SPOT Event Plugin 开启低成本渲染农场

  • 2019-09-30
  • 本文字数:9610 字

    阅读完需:约 32 分钟

Deadline 使用 SPOT Event Plugin 开启低成本渲染农场

Deadline 与 Thinkbox

Deadline 是 AWS 下属的 Thinkbox 软件公司一款渲染农场软件,很多影视作品如《美国恐怖故事》( American Horror Story )、漫威公司《神盾局特工》( Agents of S.H.I.E.L.D. ),《阿凡达》《哈利波特与死亡圣器 2》《变形金刚 3》《复仇者联盟》《暮光:新月》等都有 Thinkbox 产品系列的贡献。

Deadline 的基础架构

Deadline 渲染农场管理系统基础架构包括以下 3 个基本部分:



1.Deadline 数据库,基于 MongoDB


2.Deadline 仓库


3.一个或者多个 Deadline 客户端


  • 渲染过程中,由 Deadline 客户端或者由 2D/3D 软件的 Deadline 插件提交渲染任务,而由安装渲染软件如 MAYA, 3DS MAX, BLENDER 等软件的 Deadline 渲染节点( Render Node )进行具体的渲染工作。 Deadline 渲染农场的强大之处在于,可以利用本地的渲染软件或者直接利用云上的计算资源来同步完成渲染工作,加速渲染进程。大大节省影视工作者时间。而使用 AWS EC2 SPOT 实例*,更可以在可预测的低成本中开启大规模的计算资源,从而进一步优化工作负载的成本和性能 ** 为此, Deadline 开发了 SPOT Event Plugin 插件,来使 Deadline 更加容易的自动在渲染过程中调用 SPOT 实例。节省大量人力操作。

Deadline 客户端安装配置

先决条件

  • Deadline 客户端需要 GPU 支持以安装渲染软件

  • 基于 Windows Server 2016 base 搭建

  • 应用组件会安装在 D:\Deadline 目录下,需要事先挂载一块 EBS 并创建文件夹

  • 安装部署需要管理员权限

  • Deadline 服务端 EC2 实例创建

  • 1.启动一台 EC2 实例


2.在添加存储步骤的过程中,添加一个数据卷用于 Deadline 应用安装


3.远程登录 Deadline 服务器,打开磁盘管理器以格式化 D:\ 盘:


a.点击左下角的 “Windows” 按钮,然后点击 ”Powershell”



b.在 Powershell 窗口中,输入 “diskmgmt.msc” 并回车



c.在磁盘管理器里会看到一个标记为 “Unknown” 和 ”Offline” 的磁盘,右键点击该磁盘并点击 “Online”



d.等该磁盘状态变为 “Unknown” 和 “Not Initialized”,右键选择并点击 “Initialize Disk”



e.在弹出窗口中保持默认设置,并点击 “OK”。等磁盘状态变为 “Basic” 和 “Online”


f.右键点击阴影区域,并选择 “New Simple Volume”



g.点击 “Next” 直到出现 “Assign the following drive letter”, 从下拉列表中选择 “D” 并点击 “Next” 直到完成向导



h.等到格式化完成之后,查看磁盘状态是否为“Healthy”


4.返回桌面,打开文件管理器,进入 D:\ 盘并创建文件夹“Deadline”

Deadline 仓库和 Deadline 数据库搭建

1.从https://downloads.thinkboxsoftware.com/#/ 下载 ” Deadline-10.0.24.2-windows-installers.zip (sha256) ” 和 “ CertificateInstaller-10.0.24.2-windows-installer.exe (sha256) ”


2.解压缩 zip 包,然后在 D:\Deadline\DeadlineRepository10 安装 “DeadlineRepository-10.0.24.2-windows-installer.exe”



a.安装一个新的 MongoDB 数据库


i.MongoDB 的安装路径为 D:\Deadline\DeadlineDatabase10



ii.指定 MongoDB 的主机名和端口 ( eg,;and 27100 )


iii.MongoDB 可以通过 SSL/TLS 安全访问,在这个安装过程中暂不启用,之后也可以配置


b.开启 Windows 防火前端口


i.点击左下角的 Windows 按钮,并点击“Powershell”


ii.在 Powershell 窗口中,输入并运行如下命令:


New-NetFirewallRule -Group 'Deadline' -DisplayName "Deadline MongoDB Access" -Action Allow -Description "Allow TCP 27100" -Direction Inbound -Enabled True -LocalPort 27100 -Profile Any -Protocol TCP | Out-Null
复制代码

仓库配置

1.创建一个本地账户 “deadlineuser” 用于文件共享:


a.点击左下角的“Windows” 按钮,并点击 “Powershell”


b.在 Powershell 窗口中输入“lusrmgr.msc” 并回车



c.在本地用户和组窗口中,在左边栏右键选择 “Users”,并点击“New User…”



d.在“User name” 处输入 “deadlineuser” 并键入密码,取消选中 “User must change password at next logon”,然后点击 “Create”



2.共享仓库


a.右键选择仓库目录 ( D:\Deadline\DeadlineRepository10 ),点击 “Properties”


b.选择 “Security” 标签卡,并点击“Edit…” 修改权限



c.将 “Authenticated Users” 和 “Everyone” 从组中移除,即选中相应的组后点击 “Remove” 按钮


d.添加 “deadlineuser” 并给与限定权限


i.点击“Add…” 按钮,在文本框中输入 “deadlineuser”,并点击 “OK”



ii.从 “Group or user names” 列表中,选择“deadlineuser”


iii.确保“deadlineuser” 只有 “Read, Read & execute, and List folder contents” 的权限,然后点击 “OK”


e.按照如下操作给予“deadlineuser” 对仓库目录下的 “jobs/”、”jobsArchived/” 和”reports/” 三个子目录的读写权限:


i.右键选择子目录并点击 ”Properties”


ii.选择“Security” 标签卡并点击 “Edit…” 修改权限


iii.在“Group or user names” 列表中选择 “deadlineuser”


iv.确保“deadline” 有修改和写的权限


v.点击 “OK” 保存权限设置


f.共享仓库目录 (D:\Deadline\DeadlineRepository10)


i.在文件管理器中,来到仓库的安装目录(D:\Deadline\DeadlineRepository10)


ii.右键选择仓库目录,点击 ”Properties”,选择“Sharing” 标签卡,并点击 “Advanced Sharing” 按钮



iii.在“Advanced Sharing” 窗口中,标记 ”Share this folder”,并点击 “Permissions” 按钮



iv.确保“Everyone” 有完全控制的权限,并点击 “OK”


Deadline 客户端 EC2 实例创建

1.启动 一台带有 GPU 的 EC2 实例(e.g. g3s.xlarge)


2.余下的创建步骤可以参照 “Deadline 服务器 EC2 实例创建”

Deadline 客户端安装配置

1.从https://downloads.thinkboxsoftware.com/#/ 下载 “Deadline-10.0.24.2-windows-installers.zip (sha256)” 和 “CertificateInstaller-10.0.24.2-windows-installer.exe (sha256)”


2.在 Deadline Client 上配置 Deadline 仓库共享


a.点击左下角的“Windows” 按钮,并点击 “Powershell”


b.在 Powershell 窗口中,输入 ”net use \xx.xx.xx.xx /user:deadlineuser” 并输入 deadlineuser 的密码



3.配置 Deadline 客户端用户


a.点击左下角的“Windows” 按钮,并点击 “Powershell”


b.在 Powershell 窗口中,输入 ”lusrmgr.msc” 并回车


c.在本地用户和组窗口中,在左边栏右键选择 “Users”,并点击“New User…”


d.在“User name” 处输入 “deadlineclient” 并键入密码,取消选中 “User must change password at next logon”,然后点击 “Create”


4.解压缩 zip 包,然后在 D:\Deadline\DeadlineClient10 安装 “DeadlineClient-10.0.24.2-windows-installer.exe”



a.选择“Repository” 作为连接类型,并点击 ”Next”



b.输入 Deadline 仓库的共享路径,如“\xx.xx.xx.xx\DeadlineRepository10”,并点击 “Next”



c.先跳过 SSL 配置,点击“Next”


d.在许可模式处选择“Standard”,点击 “Next” 并指定许可服务器



e.标记“Install Launcher As Service”,输入 “deadlineclient” 及密码,点击 “Next”



f.指定 “deadlineclient” 作为远程连接服务器使用的用户,并取消选中“Enable TLS(HTTPS)”,然后点击 “Next”


g.准备就绪,点击 ”Next” 安装

验证 Deadline 环境

在 Deadline 客户端服务器上打开 “Deadline Monitor 10”, 如果客户端连接不上仓库,会报连接失败的错误


Deadline 部署参考

Deadline SPOT Event Plugin 的配置与使用:

本文将以开源免费 Blender 3D 建模软件为例,简述 Deadline 如何调用 SPOT Event Plugin 渲染 Blender 作品。

安装并配置 Deadline 与 Blender 镜像

1.启动 AWS EC2 实例(本文以 Windows 2016 为例)并安装 Blender 软件


2.EC2 Windows 实例的启动过程请参考:https://aws.amazon.com/cn/getting-started/tutorials/launch-windows-vm/


a.由于 Blender 的初始图形配置界面依赖显示卡,所以推荐在初始安装过程中使用 G 系列 AWS EC2 实例


b.下载并安装 Blender :请参考官方 https://docs.blender.org/manual/zh-hans/dev/getting_started/installing/index.html


3.安装 Deadline Client 并配置 Blender:


安装指南请参考:https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User Manual/manual/quick-install-client.html


4.安装后, Deadline Client 中有默认 Blender 的执行文件位置,可以在渲染任务执行时,自动调用 Deadline 进行渲染,可以通过以下方式进行确认:


a.启动 Deadline Monitor ,点击 Tool 菜单,开启 Super User Mode。然后在 Tools 菜单中选择 Configure Plugins 选项,弹出界面如下:



b.可以看到 Blender 执行文件的目录,如果之前自定义安装 Blender ,安装于其它路径,就右击…进行路径添加。


5.如果想在 Blender 界面中进行提交,可以运行保存在 <Deadline 仓库目录>/submission/Blender/Installers 的 Submitter Installer ,并参考:https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User Manual/manual/app-blender.html#integrated-submission-script-setup

制作包含 Blender 软件的 Deadline 渲染节点镜像:

由于 Deadline 客户端会以计算机名标识渲染节点,为保存镜像启动后计算机名不一样,所以在计划制作成启动镜像(AMI)的安装 Blender 软件的渲染节点上通过计划任务来制作启动脚本来保证启动后自动修改计算机名并重启生效。


1.制作启动脚本:


脚本 ps1 内容如下,功能是取 32 个随机大写字母重命名为机器名,并重启,脚本保存于路径 C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\ 脚本运行后建立一个文件做标识 renamed.txt。来记录,以实现第一次启动才要做重命名


if(!( Test-Path C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\renamed.txt)){$computername = -join ((65..88) | Get-Random -Count 32 | % {[char]$_})Rename-Computer -NewName $computername -Force"" | Out-File C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\renamed.txtRestart-Computer -Force#write $computername}
复制代码


2.建立计划任务


a.在 Windows 管理工具中,执行“计划任务”,配置如下:



i.触发器:在启动时触发


ii.操作配置:


iii.程序: C:\Windows\System32\cmd.exe


iv.参数: /C C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Unrestricted -File “C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\renamecomputer.ps1”


3.制作启动镜像 AMI(AMAZON Machine Image),图形部署如下,具体文档参考:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/Creating_EBSbacked_WinAMI.html


a.还没有 AWS 中国区域帐户,点击https://www.amazonaws.cn/sign-up/ 进行注册



b.配置如下:



c.点击“创建映像”之后,会弹出下面信息框,记录 ami-xxxxx 的 AMI 映像编号:


配置 AWS EC2 SPOT 实例

  • 登陆进入 AWS 中国区域服务目录,选择“EC2”,在界面左边选择“Spot 请求”,点击“请求竞价实例”,在跳转的页面中选择“Flexible Workloads”,然后在点击”自定义 AMI”,弹出框中填写刚刚记录的“ami-xxx”,并点击选择,如下界面

  • 请按照实际情况填写其它条目,详细文档请参考:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-requests.html

  • 最后点击最下方“JSON 配置”,下载配置的 JSON 文档。不用点击“启动”,Deadline SPOT Event Plugin 会根据 JSON 文件启动 SPOT 实例配置。

配置 Deadline SPOT Event Plugin

  • 进入 Deadline Monitor 后,打开 Super User Mode,点击 Tools->Configure Events… 界面如下:



  • 要启用 SPOT Event Plugin,首先在 State 中选择 Global Enabled.

  • Access Key ID 与 Secret Access Key 请在 AWS 界面选择 IAM 服务 -> 左右选择用户名 -> 安全凭证 中下载文件中找到

  • Region 选项: 如果使用北京区域的 SPOT 实例,请选择 cn-north-1,使用宁夏区域,请选择 cn-northwest-1

  • SPOT Fleet Request Configurations 选项: SPOT Event Plugin 会在请求的渲染节点组(假设名称为 spot-group ) 进行渲染时,调用刚刚配置 JSON 文件的 SPOT 实例舰队来进行渲染,配置办法是:


{"<spot-group>": {<刚刚下载的JSON文件内容>},"<2nd_group_name>":{<spot_fleet_request>}}
复制代码


//请将等<>内的内容,更换成实际的组名称与 SPOT 配置 JSON 文件内容。


详细配置文档与说明请参考:https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User Manual/manual/event-spot.html

开始渲染作业

  • 在 Deadline Monitor 中点击 Submit->3D->Blender 中提交 Blender 渲染作业,界面如下: Group 选项刚刚 SPOT Fleet Request Configurations 中配置的 spot-group,以使渲染工作开始时,自动激活 SPOT 实例加入到渲染节点中。


Submit 提交之后如下,SPOT 实例激活并参与到渲染工作当中。


总结

  • 到这里,我们完成了从 Deadline 从安装配置到启动 SPOT Event Plugin 的过程。可以看到,我们可以配置 Deadline 渲染农场中的 SPOT Event Plugin 使用非常经济,大规模的 EC2 SPOT 实例来优化并加速影视作品渲染的过程。从而优化工作负载的成本和性能。

  • 关于 AWS EC2 SPOT 实例,请参考 AWS 官方对于 SPOT 实例介绍:https://aws.amazon.com/cn/ec2/spot/

  • 请参考 Scripps Networks Interactive 公司如何使用 Deadline 控制 AWS EC2 SPOT Instance 来将 CGI 渲染时间缩短了 95% https://aws.amazon.com/cn/solutions/case-studies/scripps/


作者介绍:


劳佳琦


AWS 中国团队的解决方案架构师,负责基于 AWS 的云计算方案架构咨询和设计,同时致力于 AWS 云服务在国内教育行业的应用和推广。在加入 AWS 之前,他曾服务与英孚教育,微软等跨国公司。劳佳琦平时热爱足球和音乐,同时也乐于和他人分享自己的各种经历。


张洋


AWS 中国团队的解决方案架构师,负责基于 AWS 的云计算方案架构咨询和设计。同时致力于 AWS 云服务在国内的应用和推广。现专注于 HPC 超算与物联网相关领域的研究。在加入 AWS 之前,他曾服务于 EMC, Oracle, Flextronics 等跨国 IT 公司。张洋乐于分享,并且是一名业余游泳教练,热爱游泳和跑步,已经完成 7 次马拉松比赛。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/deadline-use-spot-event-plugin-start-lesscost/


2019-09-30 15:181427
用户头像

发布了 1850 篇内容, 共 119.1 次阅读, 收获喜欢 78 次。

关注

评论

发布
暂无评论
发现更多内容

阿里一面,给了几条SQL,问需要执行几次树搜索操作?

Java 程序员 后端

一周信创舆情观察(11.1~11.7)

统小信uos

阿里五面(4轮技术+HR)成功逆袭,面经分享

Java 程序员 后端

阿里巴巴蚂蚁金服Java面试经历包含答案解析

Java 程序员 后端

这几个动态规划的问题,面试官就爱问

华为云开发者联盟

数组 动态规划 序列 子数组 公共子串

阿里内部绝密Java面试笔记(珠峰版),冒着被开的风险免费分享

Java 程序员 后端

用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办

汪子熙

JavaScript SAP 11月日更 SAP微信集成

阿里巴巴内部涨薪必备的“王者级Dubbo实战笔记”,不啃透不下班

Java 程序员 后端

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正(1)

Java 程序员 后端

阿里员工感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦!

Java 程序员 后端

阿里腾讯微软拥抱低代码,程序员们要“失业”?

Java 程序员 后端

鸿蒙轻内核源码分析:虚拟内存

华为云开发者联盟

鸿蒙 内存 虚拟内存 OpenHarmony 轻内核

阿里内部疯传的分布式架构手册,轻松吊打小日子过的不错的面试官

Java 程序员 后端

阿里大牛看了也要膜拜的大话代码架构(项目实战版)终于出来了

Java 程序员 后端

阿里蚂蚁金服超全126道面试题,都会的话,你也能去面阿里了

Java 程序员 后端

助力数字孪生,TDengine在叁零肆零仿真平台中的实践

TDengine

数据库 tdengine 后端

阿里程序员:入职才两个月,我决定离职

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正

Java 程序员 后端

使用Eclipse连接SAP云平台上的HANA数据库实例

汪子熙

数据库 Cloud SAP 11月日更

阿里三面面试题:分布式服务注册中心该如何选型?我快哭了

Java 程序员 后端

阿里三面:CAP和BASE理论了解么?可以结合实际案例说下?

Java 程序员 后端

阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了

Java 程序员 后端

阿里大师推荐的这份Java开发必读书单,让我成功在寒冬中站稳脚步

Java 程序员 后端

技术为本,中科柏诚致力于打造高效供应链金融平台

联营汇聚

阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?

Java 程序员 后端

阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发

Java 程序员 后端

阿里亿级长连网关的云原生演进之路

Java 程序员 后端

35w奖金池,腾讯云TDSQL精英挑战赛正式开赛!

科技热闻

阿里技术官亲手总结Part 10个知识点!主动分享!收藏必备!

Java 程序员 后端

阿里技术总监纯手打的内部手册《MySQL笔记》真是太硬核了

Java 程序员 后端

Deadline 使用 SPOT Event Plugin 开启低成本渲染农场_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章