所以一段时间以来,我一直怀疑三星 EVO 850 RAID1 存在性能瓶颈,但老实说,我太懒了,没去研究它。现在,我正在开始一个新的家庭项目,涉及带有内部存储的 Vmware ESXi 主机。
我手头上有许多硬件 raid 控制器,所以决定升级一下旧的 Adaptec 51645,它一直运行良好,从未出现过任何问题...不幸的是,在较新的 Vmware 系统上启动并运行监控似乎是一项不可能完成的任务,因为这个控制器使用较旧的 Adaptec 驱动程序集。
长话短说 - 我选择了 ServeRAID M5015,因为我有一个安装了 SSD 加速器键的 ServeRAID M5015,而且它与我身边的备用英特尔 SAS 扩展器兼容。
我设置了 2 个 RAID1 硬件阵列 - 2 x 250GB EVO 850 和 2 x 1TB EVO 850,然后立即意识到有些不对劲。性能似乎很糟糕,而且从表面上看,甚至比 7 x HDD RAID 5 更差 - 尤其是对于写入操作。
我不想玩猜谜游戏,所以我决定采取更具分析性的方法,现在已经测试了许多配置,它们似乎都显示相同的结果。
EVO 在纯 JBOD 中运行,提供了最大性能和预期性能,而将任何 raid 代码应用于混合,似乎都会使性能降低不同程度,但至少是预期性能的 50%,这是在 JBOD 中测量的。
我希望有人可以对此进行解释,并且希望提供一些事实来表明这是否与三星 SSD 无关,或者是否与 raid 控制器有关(详情如下)。
这些是我测试过的控制器和设置,以及我得到的结果。
注意:我知道这些是没有电容器的消费级 SSD。
所有测试均使用 CrystalDiskMark64 执行 - 我没有深入研究 IOMeter 或类似产品,因为 CSM 的结果相当具有可比性,并且对于初始基准测试“足够好”(无论如何在我看来)。
- 设置:5 次测试,16GiB 文件大小。
所有测试均在 Windows Server 2012 R2 平台、最新可用驱动程序和最新可用控制器固件上完成。
仅测试了 1TB EVO 850。
启用了回写、直接 IO 策略的控制器缓存(如果适用),未启用驱动器缓存。
- 编辑:我应该提到我知道这是没有电容器的消费类驱动器,并且我已经在强制打开驱动器缓存的情况下重新运行了测试,但没有任何改进 - 无论 Windows 缓存刷新策略设置如何。
英特尔快速恢复技术
JBOD SEQ 读/写 Q8T1:~550 MB/S / ~550 MB/s
JBOD RND4K 读/写 Q32T16:~450 MB/s / ~300 MB/s
RAID1 SEQ 读/写 Q8T1:~1100 MB/S / ~265 MB/s
RAID1 RND4K 读/写 Q32T16:~300 MB/s / ~24 MB/s
带有 SSD 加速器键的 IBM ServeRAID M5015(LSI)。
这个并不是新的,但是它有足够的能力来处理突袭代码,甚至对于许多快速的SSD也是如此。
不支持 JBOD,所以我使用 RAID0 单驱动器进行测试。
RAID0 单驱动器 SEQ 读/写 Q8T1:~524 MB/S / ~265 MB/s
RAID0 单驱动器 RND4K 读/写 Q32T16:~405 MB/s / ~370 MB/s
- 这是一个完全不正常、出乎意料且奇怪的结果。
RAID1 SEQ 读/写 Q8T1:~520 MB/S / ~265 MB/s
RAID1 RND4K 读/写 Q32T16:~200 MB/s / ~24 MB/s
HP SmartArray P411
- 与 ServeRAID M5015 相同
Adaptec 51645
这个控制器是 3GB/s 控制器(毕竟是旧东西)
JBOD SEQ 读/写 Q8T1:~268 MB/S / ~268 MB/s
JBOD RND4K 读/写 Q32T16:~268 MB/s / ~265 MB/s
RAID1 SEQ 读/写 Q8T1:~545 MB/S / ~265MB/s
RAID1 RND4K 读/写 Q32T16:~530 MB/s / ~260 MB/s
因此,底线是旧的 Adaptec 实际上处理 raid 方案效果最好,但实际上并不是一个选项,因为它只能处理 3 GB/s SATA II。Intel 的方案在读取方案中效果最好,但在 Vmware ESXi 上却不是选项。
目前,我倾向于简单地将 SSD 用作单个 SSD,每个 SSD 上都有一个数据存储区,并使用 Veeam Backup & Recovery 在数据存储区之间复制 VM,因为看起来我无法在 raid 控制器上从它们中获得任何合理的性能。
我对这个主题做了相当多的研究,看来我不应该对此抱有太大的希望。
这里有没有人碰巧知道 - 事实上 - 另一个/较新的控制器可以解决这个问题?或者只是 EVO 在 raid 设置中遇到了问题?(我有很多硬件 raid 控制器,但只有不同容量的 EVO 驱动器,因此无法自己进行测试)。
在此提前感谢任何反馈。
所以 - 我想发布有关更新和进一步测试的信息。
我已经构建了 Vmware ESX 设置,并且在从其中一个 SSD 中提取了一些数据之后,在准备好进行新的测试设置之前,显然存在一些问题导致 SSD 无法与至少一个控制器很好地配合。
我为其中一个 SSD 创建了一个虚拟 RDM,并将其传递给 VM。
我选择了 IBM ServeRAID M5015。在一次性读取大约 40GB 后,磁盘就完全没有响应了(我怀疑控制器与驱动器固件配合得不好,但这纯粹是猜测)。驱动器没有离线,只是没有响应,只有重新启动虚拟机才能解决这个问题。
使用非 raid 控制器则不会出现任何问题。
有趣的时刻。
现在我正在寻找一个价格合理、较新的 RAID 控制器,它不一定是 SAS - SATA 就可以,并且具有在 ESX 服务器中运行时进行监控的先决条件...
更新
从来没有像我希望的那样工作。最终购买了 2 个较旧的 Intel SATA Enterprise SSD 来处理主要工作负载,而仅使用 Samsung EVO 来处理对性能不太敏感的工作负载。
我编写了一个脚本,使用 StorCLI 监控 ESXi 内部的 raid,并通过我旧的可信赖的 Adaptec 52645 传递到 VM,以处理包含大部分静态数据的较大磁盘组(因为 LSI 控制器显然不支持省电和磁盘旋转...唉...)
我现在一切正常 - 只是不像我最初预想的那样。
无论如何-感谢您的意见。
答案1
三星 850 EVO 是消费级 SSD,缺乏断电保护写回缓存。因此,RAID 控制器将禁用SSD 私有缓存,这对于从消费者闪存驱动器中提取良好性能至关重要。
要恢复性能,您必须重新启用磁盘缓存,但这会影响突然断电时的数据恢复能力。
您可以看到这里了解更多信息。