【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:181159
用户头像

发布了 1835 篇内容, 共 91.8 次阅读, 收获喜欢 73 次。

关注

评论

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

你在开发过程中使用Git Rebase还是Git Merge?

华为云开发者联盟

git 华为 管理 代码

原创 | 使用JPA实现DDD持久化-O/R阻抗失配(2/2)

编程道与术

Java hibernate DDD JDBC jpa

持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

腾讯云大数据

大数据

智能体的奇幻漂流之“成都折叠”篇

脑极体

华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?

华为云开发者联盟

数据库 数据 gauss db

原创 | 使用JPA实现DDD持久化-JPA,Hibernate与Spring Data JPA

编程道与术

Java hibernate Spring C Data jpa

致谢!华为全联接2020精彩回顾

华为云开发者联盟

华为 华为云 智能 hdc

原创 | 正确区分属性和字段

编程道与术

Java hibernate 编程 软件开发 jpa

线段树(Segment Tree)

zayfen

算法 线段树 segment tree

腾讯云副总裁刘煜宏:大数据平台算力弹性资源池达500万核,国内最强

腾讯云大数据

大数据

c++杂谈4

菜鸟小sailor 🐕

为什么推广ipv6以及网站ipv6改造基本步骤

MySQL从删库到跑路

Web IP 网络

Greenplum 性能优化之路 --(一)分区表

腾讯云大数据

大数据

打造一个全功能的浏览器

Daniel

原创视频 | 架构漫谈—如何创造复杂而有序的软件系统【含课件下载】

编程道与术

Java 编程 架构 软件开发 软件架构

区块链带来的技术创新和变革

CECBC

区块链技术 经济

jdk 源码系列之StringBuilder、StringBuffer

sinsy

Java jdk 源码解析

架构师训练营第三周学习总结

邓昀垚

极客大学架构师训练营

数字货币视域下的金融安全实现路径

CECBC

区块链 数字货币

第二周-学习总结-框架设计原则

莫森

极客大学架构师训练营

揭开500亿“区块链”骗局

CECBC

法律 传销

手把手教你:将 ClickHouse 集群迁至云上

腾讯云大数据

大数据 Clickhouse

第二周-命题作业

莫森

极客大学架构师训练营

为什么90%的“码农”做不了软件“架构师”?

Java架构师迁哥

Java 学习 架构师

原创 | 使用JPA实现DDD持久化-JPA vs MyBatis

编程道与术

Java hibernate 编程 mybatis jpa

LeetCode题解:641. 设计循环双端队列,使用双向链表,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第三周作业

文智

极客大学架构师训练营

腾讯云大数据发布最新产品矩阵,助力企业整合打通海量数据

腾讯云大数据

大数据

用go语言实现快排

Sean

算法 快速排序 Go 语言

鲲鹏播种于时代,花开五色中原

脑极体

架构师第一期作业(第三周)

Cheer

作业

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