RAID、磁盘数量和 IOPS

RAID、磁盘数量和 IOPS

我试图了解在高峰时段监控的应用程序的 RAID 配置所需的最佳磁盘数,以实现以下 IOPS。

磁盘子系统分为 RAID 10 上的数据、RAID 1 上的 tempdb 以及 RAID1 或 RAID10 上的日志。

我正在使用标准计算来计算所需的磁盘数量

                         Reads fraction + (Write Penalty * Write Fraction)

所需磁盘数量 = ----------------------------------------------------- 单驱动器 IOPS

当驱动器 IOPS 为 120 时,其运行情况如下:

数据盘

RAID 10

IOPS 240 98% 写入 2% 读取

假设 240 IOPS,则所需的最少磁盘数 = 4 假设 500 IOPS,则所需的理想磁盘数 = 8

临时数据库

RAID 1 或 RAID 10

IOPS 1.4 49% 写入 51% 读取 假设 1.4 IOPS = 2 的最小磁盘 假设 3 IOPS = 4 所需的理想磁盘

日志文件

RAID 1

IOPS 600 100%写入 0%读取

假设 600 IOPS 的最小磁盘数 = 10 假设 1200 IOPS 的理想磁盘数 = 20

我的问题是,根据计算,这是否正确,人们如何在现实世界中实现这种设置。日志的磁盘需求似乎很大,总体而言,理想的实现需要 32 个磁盘。有人会实际购买带有 32 个磁盘的服务器吗?还是会使用某种 SAN 设置?

在此先感谢您提供的任何帮助,对于新手问题,我深表歉意。任何对我的假设的纠正都非常感谢。

答案1

首先我要说的是,磁盘上的原始 IOPS 数字可能会产生误导。IOPS 数字是随机寻道的;如果您的负载 98% 是写入,那么它不太可能不是连续的,并且您的日志磁盘的寻道次数肯定会更少。顺序写入的速度将比随机寻道数字让您相信的速度更快。

话虽如此:不确定中间那组,只是 1.4 IOPS 对比 3 IOPS?负载非常低,不需要更多磁盘;这是打字错误吗?

最后一组数据如此残酷的原因是全写入负载。在 RAID 1 配置中,每个写入都必须在每个磁盘上完整地进行。理论上,在 RAID 1 配置中,您无法实现比单个磁盘更高的写入速度,因此 120 IOPS 磁盘上的 600 IOPS 随机写入负载将成为存储瓶颈。读取速度会快得令人眼花缭乱,但写入速度只有单个磁盘的速度。如果单个磁盘的写入速度不够快,则需要一种可以分散写入的 RAID 模式。

现在,就实施而言:

  1. 对于写入密集型负载,请使用 RAID 10 甚至 RAID 0;这样您才能真正看到计算的收益。
  2. 如果您的负载确实很重,那么固态硬盘具有很大的优势。
  3. 根据您的硬件,可能需要使用基于奇偶校验的 RAID 5(或 5+0?)。如果不需要,请不要过度使用 RAID 10!

答案2

首先回答你的最后一个问题,如果你打算购买 30 多个磁盘,从长远来看,购买外部磁盘阵列可能更好。它不需要是完整的光纤通道或 iSCSI SAN,一个简单的 SAS 机箱就可以在硬件 raid 中提供主轴和一大块缓存。

这些数字似乎是正确的,但如果您使用 15K RPM SAS 驱动器,您会期望它们每个能获得大约 150 IOPS。

您没有谈到容量,所以我认为数据库相对较小?在这种情况下,绝对值得考虑使用 SSD 而不是常规磁盘。每个 SSD 可以替代 10 个或更多磁盘。

在英国,至关重要的费用约为320英镑+税。新蛋同样的硬盘售价为 500 美元。在普通服务器中将 4 或 6 个硬盘放入 RAID10 阵列中,就无需拆分临时数据库、日志文件和数据了。

相关内容