使用 Hammerspace 为 Flame on 亚马逊云科技 提供多区域工作流程

在全球范围内扩展存储

传统上,对于公司和制作公司来说,建造一个多地点工作室是一项艰巨的任务。在需要赢得更多项目、雇用世界知名人才或获得特定地点激励措施的推动下,公司不可避免地面临着巨额资本支出、预测最大规模以及招聘大量本地 IT 员工的现实。随着生产需求的增长,基础设施需求超过了最初的估计。一旦生产结束,人才可能会离开,本地激励措施的吸引力可能会降低,缩减静态本地基础设施将成为一项艰巨而昂贵的任务。

随着时间的推移,这种场景已经从例外变成了常态——视觉效果(VFX)和后期制作设施定期打开和关闭卫星拍摄地点。

这篇博客文章介绍了一种架构,该架构允许亚马逊网络服务 (亚马逊云科技) 上的客户使用由 亚马逊云科技 提供支持的 Hammerspace 全球文件系统(或全球数据环境)灵活扩展和收缩其云基础设施(根据需要扩展到任意地点) ,从而最大限度地影响其业务。

亚马逊云科技 上的哈默空间

Hammerspace 提供软件定义的自动数据协调系统,其中包含一整套数据服务,用于统一和管理全球数据环境中的数据。这是通过 Hammerspace 的可扩展软件实现的,该软件提供单一的全局命名空间来引用最终用户的存储数据。本质上,这个全局命名空间允许用户为每个地理站点配置一个挂载点,可以根据需要在任意数量的站点上访问该挂载点。Hammerspace 的软件能够在需要时在所有适用站点之间共享所有这些存储的数据(无论这些数据是在哪里创建的)。要更深入地了解 Hammerspace 及其全球文件系统,请访问之前的博客文章: 使用截止日期和 Hammerspace 进行 多区域渲染

Hammerspace 极大地减少了确保多个独立站点完全同步存储的数据所需的额外协调工作。根据所使用的 Hammerspace 配置,可以在首次访问时将托管文件发送到所需区域,也可以根据指定标准(称为 “目标”)对文件进行预同步。通过这些方法,艺术家和制作人员可以减少在验证数据位置上花费的时间;他们可以将更多精力集中在核心任务上。下图通常概述了如何在站点创建文件和文件夹,以及如何从所有所需站点访问文件和文件夹。

A diagram in two sections outlining the creation of files and folders at two different sites (Studio East and Studio West), where files and folders created at one site seamlessly become accessible at the other site

图 1:Hammerspace 全局命名空间。可以在任何站点创建文件和文件夹,并且可以通过相同的文件路径在所有站点上访问 它们

使用 亚马逊弹性计算云 (Amazon EC2) 实例和 亚马逊云科技 联网功能,可以利用这个全球命名空间提供一个平台,在全球 32 个 亚马逊云科技 区域或 33 个本地区域(撰写本文时)中快速扩展视效或完成会话所需的资源。如果工作室需要在目前没有云基础设施的地区解锁人才,则他们可以启动一组合适的基于云的工作站,将其连接到 Hammerspace 全球命名空间,然后快速访问大型制作所需的数据。

尽管这种通用技术适用于任何工作流程,但这篇博客文章重点介绍如何利用Hammerspace的功能,通过 非托管 媒体工作流程来解锁Flame中的协作。

媒体使用 Hammerspace 在 亚马逊云科技 上支持 Flame

Flame 可以读取和生成托管和非托管媒体。

在托管工作流程中,Flame 直接拥有和管理媒体。如果 Flame 项目中不再使用该媒体,Flame 负责删除该媒体。为了确保 Flame 提供实时性能,托管媒体还要遵守性能预期,即要求将媒体存储在高性能存储器上。

在非托管工作流程中,Flame 会引用媒体文件,但它并不直接拥有这些文件。如果 Flame 项目中不再使用媒体,则 Flame 不会将其删除。外部媒体通常是这种情况,例如已安装的网络文件系统 (NFS) 共享。由于该媒体的性能预期与托管媒体不同,因此Flame提供了透明的工具来 “缓存” 非托管媒体,从而为将其转换为托管媒体提供了无缝体验。

A diagram showing Flame’s directly-connected storage, where Flame owns this data (labelled ‘Managed Media’) and an external storage volume (labelled ‘Unmanaged Media’)

图 2:Flame 托管媒体和非托管媒体的比较

Hammerspace 支持

在2023年全国广播协会(NAB)展会上,亚马逊云科技、Hammerspace和Autodesk宣布支持使用Hammerspace在Flame on 亚马逊云科技 中使用 非托管媒体工作流程 。 Autodesk 的验证证实,用户可以可靠地将 Hammerspace 全球挂载点用于整个 Flame 产品系列的非托管媒体工作流程。此功能与 Flame 的 镜头发布 工作流程结合使用时特别有用。

Hammerspace的认证进一步使我们的客户能够将其产品迁移到云端,从而在数据和本质管理方面具有更高的灵活性 ” — Steve McNeill,Autodesk工程总监

利用 Flame 的跨区域 镜头发布 工作流程

Flame 提供了一个名为 “ Shot Publis h” 的强大非托管媒体工作流程 ,专为多位艺术家在同一时间轴内合作创作而设计。

使用 Shot Publish,Flame 用户可以在时间轴内识别需要导出以进行协作的镜头。然后可以将这些镜头发布到非托管文件夹(例如 Hammerspace 挂载点)。导出的数据包括:

  • 具有一致命名惯例的文件夹/目录结构
  • 为远程艺术家预先配置的批处理设置
  • 打开 Clip 文件 — 用于对渲染进行简单版本控制

A diagram outlining the folder structures, Open Clip files and Renders – these are shared across multiple regions using Hammerspace technology

图 3:使用 Hammerspace 中的多个站点进行镜头发布的高级工作流程

当 Hammerspace 配置为容纳多个站点(即共享一个 Hammerspace 全局命名空间并具有挂载点的任何区域)时,这些文件和目录会在几秒钟内可见。

然后,在家中或卫星办公室工作的一位或多位 Flame/Flare 艺术家可以浏览到他们指定的镜头,打开预先配置的批处理设置,开始他们的创作工作流程。当这些艺术家需要更多数据时,这些数据将被传输到他们的本地数据存储库。

A picture of the Flame user interface showing light beauty work being created at a remote site

图 4:Flame 用户界面显示了正在远程站点创建的灯光美容作品

艺术家完成剪辑版本的制作后,渲染将更新相应的 Open Clip 文件。不久之后,这个新(更新的)版本将出现在最初的Flame时间轴中。

在幕后,Flame 会读取 Open Clip 文件来检测新创建的版本。当 Flame 时间轴读取新渲染的帧时,它们会并行传输到本地站点的数据存储库。这种同步是通过利用多区域工作流程的配置选项(在 Hammerspace 中可用)来实现的。如果 Flame 艺术家想要在不逐步(逐帧)的情况下传输片段版本中的所有帧,则该艺术家可以选择缓存(管理)该版本,然后所有这些帧都将传输到高性能存储空间。

配置 Hammerspace 以支持多区域 Flame

本节介绍实现前面概述的示例工作流程所需的配置。

An architectural diagram outlining a ‘multi-region Flame on AWS’ – with a Hammerspace configuration applied. On the East Coast, Flame artists connect to AWS cloud using a Nice DCV or HP Anyware client. Cloud-based Flame workstations mount the Hammerspace cluster using NFS. This cluster is connected to another Hammerspace cluster via VPC Peering and Shared Object Storage in the us-west-2 (Oregon) region. In this region, there are Flame and Flare EC2 instances that mount a Hammerspace cluster through NFS. Remote artists connect to those to those EC2 instances interactively via the internet

图 5:使用 Hammerspace 非托管工作流程的 Flame 在 亚马逊云科技 上的高级架构图

使用 Amazon S3 进行共享对象存储

为了让 Hammerspace 能够在区域之间快速传输数据(在需要时),使用了共享对象存储。在这种情况下,将在协作设置中包含的其中一个区域中使用 亚马逊简单 存储服务 (Amazon S3) 存储桶。要配置对此存储桶的访问权限,建议应用适当的权限以及适用于 Amazon S3 的 亚马逊云科技 PrivateLink,这样可以确保所有网络流量都保留在 亚马逊云科技 内。

权限

在配置 Hammerspace 时,必须创建一个 IAM 用户并生成具有相应权限的 Amazon S3(特别是共享对象存储桶)的访问密钥。

此示例 IAM 策略(在下面的 JSON 块中)将:

  • 允许 Hammerspace 用户界面浏览给 定账户中的 所有 S3 存储桶
  • 允许在特定 S3 存储桶上创建 Hammerspace 卷
  • 允许向/从特定 S3 存储桶传输数据
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "BucketSpecific",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3::: [[shared-object-bucket]]"
            ]
        },
        {
            "Sid": "BucketContents",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3::: [[shared-object-bucket]]/*"
            ]
        },
        {
            "Sid": "HammerSpaceBrowseEverything",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
    ]
}

私有亚马逊 S3 访问权限

在默认配置中,Hammerspace 使用公共 Amazon S3 终端节点来访问其整体协作设置中使用的 S3 存储桶。这既不是安全也不是高性能配置,因为当数据从一个站点传输到另一个站点时,数据将离开亚马逊云科技网络并穿越公共互联网。

An architectural diagram illustrating the default options in Hammerspace, where data travels from Hammerspace services via the public internet to search for the shared S3 storage that is used for collaboration

图 6:Hammerspace 中的默认公共端点允许数据通过公共互联网

为了提高安全性和性能,建议在站点之间传输数据时仅驻留在 亚马逊云科技 云中。利用 亚马逊云科技 VPC 对等互连 亚马逊云科技 Transit Gateway 以及适用于 S3 的 PrivateLink VPC 接口终端节点,将确保这些改进。

An architectural diagram outlining the use of VPC peering to connect multiple regions, and a PrivateLink VPC Interface Endpoint to reach the shared S3 storage that is used for collaboration. Shared data (and its transmission) are confined to the AWS Cloud

图 7:用于连接多个区域的 VPC 对等连接,以及通过 Hammerspace 访问用于协作的共享 S3 存储的 PrivateLink VPC 接口终端节点

要将这些改进应用到 Hammerspace 配置中,请执行以下步骤:

  1. 在所有相应的 VPC 之间配置 VPC 对等互连 亚马逊云科技 Transit Gat eway,以便提供对共享 S3 存储桶的访问(来自另一个 亚马逊云科技 区域的 VPC)。
  2. 在包含共享 S3 存储桶的区域中添加 适用于 S3 的 PrivateLink 接口终端节点
  3. 在 Hammerspace 用户界面中将此接口端点设置为 S3 端点(添加其存储系统时)。

在 Hammerspace 用户界面中配置 Amazon S3 端点

Hammerspace 中的默认 “亚马逊 S3” 设置假定所有亚马逊 S3 通信都使用公共终端节点。要使用私有终端节点,必须选择 “通用 S3” 选项并输入在上一步中生成的 亚马逊云科技 PrivateLink 接口终端节点(上图)。该端点应类似于以下示例格式:

https://bucket.vpce-12a34bc5678d-abc12345.s3.us-west-2.vpce.amazonaws.com

Hammerspace UI – assigning a S3 bucket storage system. ‘Generic S3’ is selected as the storage type. Also specified: Name, Access Key, Secret Key, and VPC Private Interface Endpoint

图 8:Hammerspace 用户界面 — 添加 S3 存储桶存储系统

配置好此 S3 端点后,可以在 Hammerspace 中添加相应的共享卷,以进一步扩展其全局文件系统。

通过 “目标” 进行自定义数据同步

Hammerspace 提供灵活的工具来管理跨站点的数据编排。控制这种协调的逻辑被定义为目标。以 Flame 为例,理想的做法是让 Open Clip 文件的 内容 始终在使用时间轴的位置可用,无论哪个站点对其进行了更新。这样可以确保 Flame 在创建片段后立即看到新版本的片段。为此,使用了自定义目标,并将其添加到拥有时间轴的位置的 Anvil 中。

如果 FNMATCH (”./hs-mount/project/ */flame/*.clip ”,PATH)

然后 {SLO('放置在本地卷上')}

Hammerspace UI’s for creating and editing Objectives. The screenshot on the right side includes the previous example of a ‘FNMATCH’ expression (further above)

图 9:用于创建和编辑目标的 Hammerspace 用户界面

此外,对于创建或更新的任何文件(在站点内),如果它们也与此目标的表达式(FNMATCH)相匹配,则这些文件的内容将在几秒钟内传输到由Anvil管理的站点(设定本目标)。由于 Open Clip 文件通常是小型文本文件,因此需要传输的数据量很少。总体而言,这种目标机制可以应用于通过智能数据同步显著改善Flame中的协作工作流程。

摘要

使用这篇博客文章中概述的方法,地理位置分散的用户可以近乎实时地在同一个 Flame 时间轴上进行迭代和协作。当用户在 Open Clip 文件中创建片段的新版本时,这些文件会立即出现在 Flame 时间轴中。如果 Flame 用户想要回放这些新创建的版本,他们可以在本地缓存它们——底层渲染会传输到其他指定的地理区域,从而形成真正的协作工作流程。

更喜欢看这个工作流程的演示?

观看 Autodesk、亚马逊云科技 和 Hammerspac e 在 YouTube 上展示该架构, 或参观 9 月 15 日至 18 日在 2023 年 IBC 上的 Hammerspace 展台 7.B59。

关于 Autodesk

作为三维设计、工程和娱乐软件领域的全球领导者,Autodesk提供最广泛的产品组合,通过数字化设计、可视化和真实项目绩效仿真,帮助超过1000万客户(包括财富100强中的99家)持续创新。

了解有关 Autodesk 的更多信息

Autodesk

关于 Hammerspace

Hammer spac e 是一种数据协调系统,可在非结构化数据中解锁创新和机遇。它协调数据以开发新产品、发现新见解,并加快人工智能、科学发现、机器学习、扩展现实、自主性、视频制作等行业的创收时间。Hammerspace 提供了世界上第一个也是唯一一个将全球用户与其在任何地区或数据中心的数据和应用程序连接起来的解决方案,从而打破数据孤岛。

Hammerspace

Mike Owen

Mike Owen

Mike 是 亚马逊云科技 视觉计算首席解决方案架构师。

Andy Hayes

安迪·海耶斯 安迪是

亚马逊云科技 视觉计算高级解决方案架构师。

DJ Rahming

DJ Rahming

DJ 是 亚马逊云科技 视觉计算高级解决方案架构师。

David Israel

David Israel

David 是 亚马逊云科技 空间工程高级架构师。David 对空间计算充满热情。他的长处是后端软件工程,他在M&E、现实捕捉和企业级沉浸式技术(应用于虚幻引擎、VRED 的 AR/VR/XR)方面提供咨询专业知识。

Sean Wallitsch

肖恩·瓦利奇

·肖恩是 亚马逊云科技 视觉计算高级解决方案架构师。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。