发布于: Oct 10, 2022

本文针对如何搭建高性能、高吞吐需求的文件共享存储系统,提供了结合 Amazon I3 实例以及开源文件系统 ZFS 的系统架构设计和操作实践。希望通过本文,可以为那些高性能、高吞吐存储需求的业务场景,不仅仅限于 EDA 领域,提供一个不同于云原生的一些存储服务的设计思路,从而在性能和成本上可以实现更多的选择。

本文的架构设计和实践部分假定你对 Amazon Web Services 的计算和存储服务有一定的了解,能够基于控制台或者 CLI 命令行创建虚拟机、EBS 卷等常见操作,并且对 Linux 操作系统和开源 ZFS 文件系统常见命令有一定的了解。

EDA(Electronics Design Automation) 电子设计自动化,在 EDA 的前端后端流程中,无论是前端的设计、验证、仿真、综合,或者后端的布局、布线、静态时序仿真等等,不同的任务阶段都会有大量的Library文件和项目数据需要共享访问;另外,无论是在数据中心还是在公有云上来运行 EDA 任务,都会是大规模的并发的 EDA 工作负载在同时运行,因此这些并发运行的任务同样需要共享访问大量的数据,例如 library、tool、userspace、tmp目录,home 目录。

随着电子系统和集成电路变得越来越复杂,体积越来越小,对设计、测试、验证和构建这些系统的计算存储能力和基础设施的要求也显著提高,对于大规模运行的 EDA 工作负载,存储会随着大量 Job 的提交很快成为瓶颈。为了支持较高的 EDA 吞吐量(后端)与 IOPS (前端) ,通常要一次性投入巨资购买传统的 SAN/NAS 存储。即使这样在某些 Job 集中提交的阶段,存储的性能依旧会成为 EDA 的瓶颈,导致作业运行时间增加并相应地抬高 EDA 许可成本。另外EDA 数据的计划内或意外增加,以及快速增长的集群访问数据的需求,都意味着存储最终会耗尽可用空间,或在网路或存储层遭遇带宽 /IO 限制。因此大规模 EDA 负载并发运行的场景下,存储的瓶颈也是上云的一个越来越强烈的驱动力。可以充分利用云计算的无限扩展的计算和存储能力,可以在无限的计算节点上并发运行大量的 EDA 任务。

由于不同的 EDA 场景会有不一样的 IO 需求,区别于通过一台专用存储来支撑各种场景,EDA 应用程序可以充分利用 Amazon Web Services 云提供的广泛存储选项,缩短大型批处理工作负载的运行时间。在 Amazon Web Services 上,有多种存储服务可以应用到 EDA 的共享存储需求,比如:共享文件存储服务EFS,托管的分布式文件服务 Lustre,块存储 EC2+EBS。

Amazon EFS 文件系统旨在实现高可用性和持久性,并且可以在大规模部署时提供高吞吐量,适用 于 IOPS 不敏感的工作负载。例如 home 目录,存放用户的脚本文件或者配置文件。

那么对于像 library/project 目录,会有大量的并发任务同时访问目录,因此在同一个命名空间内既需要满足高 IOPS 的需求,同时也需要能够满足高带宽的吞吐。那有什么方案既能在同一个命名空间下支持大容量的存储又能提供非常好的 IOPS 与吞吐?

Amazon FSx for Lustre 提供了一种经过优化的高性能文件系统,可以在短短几分钟内启动和运行这样一个文件系统,让用户可以轻松地使用高性能文件系统处理 EDA 任务,从性能上、运维上、管理上都比较好的选择,但是因为是托管的 Lustre,需要在计算节点安装 Lustre 的 client driver,官方目前只支持较高版本的 Linux 系统,大量的 EDA 用户因为 EDA 工具的原因,OS 还是停留在较低的版本,例如 Centos6.7/6.9,所以如果客户不能升级客户端操作系统版本的话,就不一定能使用 Amazon FSx for Lustre 作为 EDA 场景下的存储方案。

并行文件系统是一个选择,例如 Lustre、BeeGFS、GPFS,但是运维并行文件系统通常需要具备专业知识和投入管理资本,特别是大规模的并行文件系统,需要配置服务器并优化复杂的性能参数,在运维、调优方面带来了一定的压力。

ZFS 是一个开源的文件系统,提供存储池、读写缓存、快照、Raid-Z 等特性。通过结合 Amazon Web Services 云的 I3/I3en 系列实例类型中所提供的最高达60T 本地实例存储、以及 25Gbps、甚至 100Gbps 的带宽,可以最大程度的发挥 ZFS 文件系统的读写缓存、存储池等特性。在实践当中,可以为 EDA 任务的 Library/Project 数据的高性能和高吞吐的需求,搭建一个可扩展的、安全的、低成本、高性能的共享文件系统。

ZFS是一个开源的文件系统,ZFS(Zettabyte File System) 是由 SUN 公司的 Jeff Bonwick 领导设计的一种基于 Solaris 的文件系统,最初发布于20014年9月14日。 SUN 被 Oracle 收购后,现在称为 Oracle Solaris ZFS。它有一些有趣的特性,比如:

  • 存储池。ZFS 使用存储池的概念来管理物理存储,完全避免使用卷管理。ZFS 将设备聚集到存储池中,而不是强制要求创建虚拟卷。存储池描述了存储的物理特征(设备布局、数据冗余等),可以在上面创建文件系统,并充当任意的数据存储库。文件系统不再受限于单个设备,允许它们与池中的所有文件系统共享磁盘空间。对于用户来说,不再需要预先确定文件系统的大小,因为文件系统会在分配给存储池的磁盘空间内自动增长。添加新存储器后,无需执行其他操作,池中的所有文件系统即可立即使用所增加的磁盘空间。
  • 缓存。ZFS 可以使用单独的高速缓存设备以改善读取性能。高速缓存设备在主内存和磁盘之间提供了一个进行高速缓存的附加层。使用高速缓存设备,可以最大程度地提高大多数静态内容的随机读取工作的性能。通过在 Amazon Web Services 提供的 I3 或者 I3en 机型里的实例存储上部署 ZFS 缓存,可以极大提高数据读取的性能。
  • 写时拷贝。ZFS 是事务性文件系统,数据是使用写复制语义管理的。数据永远不会被覆盖,并且任何操作序列会全部被提交或全部被忽略。因此,文件系统绝对不会因意外断电或系统崩溃而被损坏。尽管最近写入的数据片段可能丢失,但是文件系统本身将始终是一致的。此外,只有在写入同步数据(使用 O_DSYNC 标志写入)后才返回,因此同步数据决不会丢失。
  • 数据完整性验证和自动修复。对于 ZFS,所有数据和元数据都通过用户可选择的校验和算法进行验证。ZFS 使用校验和的存储方式,从而可确保检测到数据块故障并可以正常地从其中进行恢 复。所有校验和验证与数据恢复都是在文件系统层执行的,并且对应用程序是透明的。
  • 快照。快照是文件系统或卷的只读副本,可以快速创建快照。
  •  RAID-Z。ZFS 还提供具有单/双/三奇偶校验容错性的 RAID-Z 配置。单奇偶校验 RAID-Z (raidz 或 raidz1) 与 RAID-5 类似。双奇偶校验 RAID-Z (raidz2) 与 RAID-6 类似。
ZFS 文件系统的存储池、缓存、快照等特性,可以为多种业务场景包括数据库、快照备份、 HPC、EDA 任务等提供可扩展的、安全的、高性能的共享文件系统。

前文已经提到,基于Amazon I3/I3en 系列实例最高提供60T的本地实例存储,高达 25Gbps(最高甚至达到100Gbps)带宽,结合 ZFS 文件系统存储池、读写缓存、快照、Raid-Z 等特性,可以为 EDA 任务的 Library/Project 数据搭建一个可扩展的、安全的、低成本、高性能的共享文件系统。下图显示了一个使用了 I3 机型(以 i3.16xlarge 机型为例)以及 ZFS 搭建的共享存储架构。

性能方面,ZFS 可以使用单独的高速缓存设备以改善读取性能,因此可以充分利用 Amazon I3/I3en 的 NVMe SSD 的本地实例存储充当 ZFS 文件系统的缓存,提高共享存储的 IOPS 性能。对于 EDA 的任务,library 目录几乎是只读的场景,所以只需要挂载读缓存,而对于 home 目录或者 project 目录,可以同时挂载读/写缓存,写缓存还可以用两块 NVMe SSD 实现镜像从而提高可用性。另外,当某些场景需要的性能以上方式满足不了时,还可以直接把 Amazon I3/I3en 的 NVMe SSD 的本地实例存储做成一个 RAID 组,数据全部都存储在这些本地 NVMe SSD 上以支持超高的存储性能需求。

在扩展性方面,ZFS 的存储池可以实现动态增加 EBS 卷,从而动态扩容 ZFS的存储容量,并且数据会在新增的存储设备上自动进行数据平衡,从而提升并发读写性能。对于大量并发 EDA 任务,或者长时间多项目的 EDA 任务,共享 Library、Project 等数据会随着时间的推移持续增长。因此,可以利用 ZFS 的存储池特性实现 EDA 共享存储的在线扩展,而不会对进行中的 EDA 任务造成任何影响。

安全方面,例如 project 目录或者 home 目录,通常会因为研发工程师在文件系统上的误操作要求恢复出某个指定时间前的文件,这个需求在前端的 HDL 阶段特别的多。由于 EDA 场景下会通过ZFS的存储池功能把多块 EBS 卷做成一个存储池,从而提高共享存储的性能以及容量,通过利用 ZFS 提供的快照功能,结合开源项目 Z3,可以实现 ZFS 存储池的快照存储到 Amazon S3 对象存储,从而实现数据的持久性存储以及基于快照的文件恢复。

相关文章