主頁 企业 MemVerge 内存机器评论

MemVerge 内存机器评论

by StorageReview 企业实验室
Supermicro sys-2029U-Tn24R4t 为 Memverge 项目关闭

内存一直是一种承诺提供高速的硬件。 有一些缺点:它很昂贵,容量有限,并且不持久(为了维护数据,内存需要打开电源,这进一步成为问题,因为内存需要定期刷新)。 大约三年前,英特尔和美光宣布了 3DXPoint 技术,这将是迈向持久内存的第一步。 虽然这项技术几乎没有内存那么快,但它比闪存快得多,而且更具成本效益。 看到持久内存的潜力,推出了 MemVerge 以实现这一潜力。

内存一直是一种承诺提供高速的硬件。 有一些缺点:它很昂贵,容量有限,并且不持久(为了维护数据,内存需要打开电源,这进一步成为问题,因为内存需要定期刷新)。 大约三年前,英特尔和美光宣布了 3DXPoint 技术,这将是迈向持久内存的第一步。 虽然这项技术几乎没有内存那么快,但它比闪存快得多,而且更具成本效益。 看到持久内存的潜力,推出了 MemVerge 以实现这一潜力。

我们看到的第一个 3D XPoint 设备更针对存储。 随着时间的推移,英特尔利用 3D XPoint 持久内存 (PMem) 来创建更快的 SSD。 后来英特尔宣布了一个持久内存模块,它位于 DIMM 插槽中,作为 DRAM 的扩展。 过去我们看到的是满足快速需求的内存和满足大需求的存储,而 PMem 开始模糊了界限。 MemVerge 正试图通过实现具有大容量和持久性的 DRAM 性能来融合两全其美。

MemVerge 一直在调查持久内存的前景,并开发了软件来让 PMem 发挥其潜力,而不是将其用作缓存、速度层或内存扩展器。 该公司使用所谓的大内存计算将纯 DRAM 环境转变为成本更低、更重要的是,利用 DRAM 和 PMem 的更高密度内存环境。 它通过将两者虚拟化为软件定义的内存池来实现这一点,该内存池还提供软件定义的服务。 除此之外,该软件还提供了一个抽象层,允许数据中心中的所有应用程序受益于新型内存、内存互连、处理器和内存分配器,以应对现代和新兴的应用程序和工作负载。

早在去年 XNUMX 月,MemVerge 就发布了其 Memory Machine 的普遍可用性. 该软件有两种版本:标准版,虚拟化字节可寻址 DRAM 和 PMem 内存,加速应用程序并降低成本,但不支持持久性; 和 AdvancedVersion,它是启用持久性的所有内容,以及基于 ZeroIO 内存快照的企业级内存服务。

ZeroIO 内存中快照,顾名思义,允许使用零 IO 存储 DRAM 和 PMem 的快照。 这使得通常易失性和低可用性的 DRAM 成为高可用性层。 ZeroIO 快照还允许所谓的时间旅行,允许回滚到以前的快照。 有一个自动保存功能,可以在发生崩溃时将应用程序回滚到之前的快照。 快照允许在不使用更多内存资源的情况下生成精简克隆。 并且快照可以迁移到其他服务器并用于创建新的应用程序实例。

MemVerge 内存机器管理

MemVerge Memory Machine 有一个相当漂亮的 GUI。 全局仪表板显示了我们在存储中期望的元素,在这种情况下,DRAM 和 PMem 是受监控的主要元素,并且可以在此处轻松查看使用情况。 顶部是主机、应用程序实例、快照和警报的选项卡。

单击左侧的主页按钮会显示系统的基本信息(IP 地址、操作系统、内核版本、CPU)以及深入了解内存和 PMem 的使用情况和性能。

用户可以通过调出内存报告来进一步深入了解内存,以查看每小时的使用情况。 这也突出了类型,PMem 与 DRAM。

用户可以查看 Memory Machine 的 RESTful API 并对其进行配置。

快照是 Memory Machine 的重要组成部分,但我们将在性能部分进行介绍。

配置

在我们的实验室中,我们在具有以下规格的 Supermicro SYS-2029U-TN24R4T 上使用 MemVerge Memory Machine:

硬件型号 超微 SYS-2029U-TN24R4T
中央处理器 2 个 Intel(R) Platinum(R) 8270 CPU @ 2.70GHz,26 核
DRAM DDR4 192GB
记忆体 12x128GB
操作系统固态硬盘 1TB 固态硬盘
OS CentOS 8.2.2004的
核心 4.18.0-193.19.1.el8_2.x86_64

MemVerge 内存机器性能

我们的常规测试电池在这里没有意义,因为 MemVerge Memory Machine 针对需要在内存中运行的工作负载和应用程序。 我们的基准测试通常被视为正常的高压力工作负载,这些工作负载将在 IT 运营的现实生活中出现。 相反,在这里我们将研究一些不同的测试,我们将专门研究诸如 DRAM 与 PMem 与 DRAM + PMem 之类的东西,以及每种测试的结果。 对于这次审查,我们将使用 KDB Performance 进行批量插入和读取测试,以及使用 ZeroIO 快照的 Redis 快速恢复和使用 ZeroIO 快照的 Redis 克隆。

KDB 性能测试

Kx 的 kdb+ 是一个时间序列内存数据库。 它以速度和效率着称,因此在金融服务行业非常受欢迎。 kdb 的一大限制是 DRAM 容量的限制。 MemVerge Memory Machine 非常适合这里,因此 kdb 可以充分利用 PMem 来扩展内存空间,性能与 DRAM 相似。 对于批量插入测试,我们查看了单个插入、10、100、1000、10000、15000、20000 和 25000 个插入,并以每秒数百万次批量插入进行测量。

通过 KDB 批量插入,我们看到了一些有趣的结果。 在一次插入时,所有三个都有相似的结果。 在较小的批量中,我们认为 DRAM 表现最好。 随着批处理大小超过 10,000,我们看到 Memory Machine 领先于 DRAM,而 PMem 落后于每个批处理。

接下来,我们通过读取测试查看了 kdb+。 这里的测试设置有点不同。 读取测试始终相同,但这次我们只查看 DRAM,仅查看 PMem,然后查看具有 20GB 或 40GB DRAM 缓存的 PMem。 DRAM 只能达到 4.2GB/s,PMem 只能达到 2.9GB/s,具有 20GB 的 DRAM 缓存,Memory Machine 能够达到几乎相同的 DRAM,只有 3.9GB/s,具有 40GB 的缓存我们看到了 4.8GB/s 的最高性能。 更有趣的是,后两个仍然允许大量 DRAM 用于其他任务。

Redis 快照测试

Redis 是一种开源内存数据存储,用作数据库、缓存和消息代理。 它非常流行且功能强大,因此它是对 MemVerge Memory Machine 进行基准测试的理想程序。 当 Redis 运行在 MemVerge Memory Machine 上时,DRAM 和 PMem 被分配给 Redis。 然后 MemVerge ZeroIO 快照保存应用程序的内存页,没有存储 IO 操作。 当 Redis 崩溃时,所有快照到 PMem 的数据都是持久的。 崩溃恢复涉及简单地指向 PMem 中的现有数据,而无需从存储中提取和移动数据。

在本节中,我们将测试用于快速恢复的 MemVerge ZeroIO 快照。

首先,我们将了解使用 ZeroIO 快照的 Redis 快速恢复。 与性能基准不同,我们将在这里展示功能和易用性。 安装 Redis 并运行数据库后,我们登录 Memory Machine 并查看诸如使用了多少 PMem 之类的信息。

在应用程序选项卡下,我们可以看到 Redis 服务器正在运行。

当它运行时,我们拍摄一些快照。 显然,如果不拍摄快照,则无法从快照中恢复。

安全无妨,仔细检查以确保我们拍摄了一些快照。

在我们知道我们拥有它们之后,我们触发了 Redis 数据库故障。 我们选择一个快照并恢复,稍作停顿后,我们再次启动并运行。

使用 ZeroIO 快照的 Redis 克隆

在这里,我们采取几个与上述相同的步骤。 拍摄快照后,我们可以将其恢复为具有新命名空间和新 IP 地址的克隆。 我们从另一台主机连接到克隆,可以看到它占用了大约相同的内存。

对于那些喜欢的人,上述所有操作都可以通过 CLI 提示完成。

总结

MemVerge Memory Machine 是旨在将内存的性能与 PMem 的持久性相结合的 SDS。 PMem 通常用作缓存以加速存储。 虽然这在许多存储实例中是一个福音,但内存应用程序需要内存性能,而不是缓存。 MemVerge 将 DRAM 和 PMem 虚拟化为具有软件定义服务的软件定义内存池。 Memory Machine 使用 zeroIO 内存快照将 DRAM 转变为高可用性层。 ZeroIO 允许在不占用内存资源的情况下创建精简克隆。

当我们进入新类别时,我们将不得不采用新的性能测试和基准。 使用我们的常规基准测试内存 SDS 不会有用,因为这不是它的目的。 相反,我们利用 KDB Performance 进行批量插入和读取测试,以及使用 ZeroIO 快照的 Redis 快速恢复和使用 ZeroIO 快照的 Redis 克隆。 测试是在 Supermicro SYS-2029U-TN24R4T 服务器上执行的,尽管它应该可以在支持英特尔傲腾 PMem 模块的经过验证的服务器上运行。

对于 KDM bulk,我们通过 Memory Machine 测试了多个批处理大小,着眼于 DRAM、PMem 以及两者的组合。 由于批次从小开始,因此看到 DRAM 具有最佳性能也就不足为奇了。 真正有趣的是,随着测试对资源的消耗越来越大,MemVerge 的表现越来越好。 通过阅读 KDM,我们看到了类似的趋势。 DRAM 表现非常好,不足为奇。 PMem 没问题,但在 DRAM 之下。 带有 Memory Machine 的 DRAM 只有 20GB 的缓存,与单独的 DRAM 的 3.9GB/s 相比,它的性能为 4.2GB/s。 为 MemVerge 提供 40GB 的 DRAM 用于缓存,整体性能最佳,达到 4.8GB/s,同时仍为其他任务留出大量 DRAM。

性能测试的第二部分是Redis Quick Recovery with ZeroIO Snapshot 和Redis Clone with ZeroIO Snapshot。 这里更多的是功能与可量化的性能。 本质上,我们快速拍摄快照,触发故障,然后能够快速启动并再次运行。

英特尔的 PMem 是一项非常有趣的技术,但由于轻松采用和正确利用模块的方式有限,采用速度有些慢。 借助 MemVerge,组织可以利用 PMem 必须提供的功能,在专门为该技术构建的解决方案中。 对于那些应用程序可以从 PMem 提供的大容量和弹性内存占用中受益的人来说,MemVerge 绝对值得评估。

内存合并

参与 StorageReview

电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | Facebook | RSS订阅