我的公司正试图弄清楚要购买哪种类型的 SAN。这专门针对受到 IO 限制的数据库服务器(存储现在是 DAS,但我们正在达到单个服务器的限制,我们也想添加集群)。
我们需要一个能够长期产生大约 3000 IOPS 的解决方案(我们目前的峰值约为 1000 IOPS)。我们的大多数数据库操作都是小读/写。根据与 HP 工程师和其他在线人员的讨论,在 RAID 10 配置中配备 24 个 SAS HD 的 HP P2000 将以大约 2 万美元的价格提供略低于该速度的速度。添加控制器和其他项目来构建 SAN 使我们的最高预算接近 3 万美元。
但是在网上,我看到许多 SAS SSD 提供 80,000 IOPS+ 的速度。这是现实的期望吗?如果是这样,获得 P2000 或类似的入门级 SAN 并在其中放置一些 SSD 是否现实?我们的数据库很小,总共只有几 TB。如果我们这样做,我们将有剩余的钱购买第二个 SAN 用于镜像/故障转移,这似乎是谨慎的。
我用于磁盘 IO 的经验法则是:
SATA 的每个主轴 75 IOP。
FC/SAS 的每个主轴 150 IOP
SSD 的每个主轴 1500 IOP。
除了每个阵列的 IOP 外,还考虑了每 TB 的 IOP。如果使用 SATA + RAID6,每 TB 的 IOP 比率会很差,这种情况并不少见。这听起来可能并不过分,但您经常会发现有人在阵列上发现“可用空间”并想要使用它。人们购买 gigs 而忽略 iops 是很常见的,而在大多数企业系统中,情况恰恰相反。
然后添加 RAID 的写入惩罚成本:
在适当的情况下,可以部分减轻写惩罚。如果您有大量顺序写入 IO(如 DB 日志),则可以显着减少 RAID 5 和 6 上的写入损失。如果你可以写一个完整的条带(例如每个主轴一个块),你就不必读取来计算奇偶校验。
假设一个 8+2 RAID 6 集。在单个写入 IO 的正常操作中,您需要:
使用缓存的完整条带写入 - 例如 RAID 条带大小的 8 个连续“块”,您可以计算整个批次的奇偶校验,而无需读取。因此,您只需要 10 次写入 - 每个数据一次,以及两次奇偶校验。
这使您的写入惩罚为 1.2。
您还需要记住,写入 IO 很容易缓存 - 您不需要立即将其放到磁盘上。它在软时间限制下运行 - 只要平均而言您的传入写入不超过主轴速度,它就能够以“缓存速度”运行。
另一方面,读取 IO 会受到严格的时间限制 - 在获取数据之前,您无法完成读取。读取缓存和缓存加载算法在这一点上变得很重要 - 可以预测和预取可预测的读取模式(例如顺序,如您从备份中获得的那样),但随机读取模式不能。
对于数据库,我通常建议您假设:
您的大多数“数据库” IO 都是随机读取的。(例如不利于随机访问)。如果你能负担得起开销,RAID1+0 就很好——因为镜像磁盘提供了两个读取源。
您的大部分“日志”IO 都是顺序写入。(例如有利于缓存,与许多 DBA 建议的相反,您可能想要 RAID50 而不是 RAID10)。
两者的比例很难说。取决于数据库做什么。
因为随机读取 IO 是缓存的最坏情况,所以 SSD 真正发挥作用的地方 - 许多制造商不会打扰缓存 SSD,因为无论如何它的速度大致相同。因此,特别是对于临时数据库和索引之类的东西,SSD 提供了良好的投资回报。
我可以谈谈你想要完成的细节。老实说,我不会考虑将入门级 HP P2000/MSA2000 用于您的目的。
这些设备有很多限制,从 SAN 功能集的角度来看,它们只不过是一盒磁盘。没有分层,没有智能缓存,一个虚拟磁盘组中最多有 16 个磁盘,IOPS 能力低,SSD 支持差(尤其是在您选择的单元上)。
您需要升级到HP MSA2040才能看到 SSD 的任何性能优势或官方支持。另外,您真的要使用 iSCSI 吗?
如果您可以容忍本地存储,DAS 可能是您的最佳选择。PCIe 闪存存储将在您的预算之内,但需要仔细规划容量。
您能否详细说明您的实际服务器的规格?品牌/型号等
如果集群是必须的,另一种选择是使用 HP MSA2040 单元,但使用 SAS 单元而不是 iSCSI。这比其他型号成本更低,允许您连接 4-8 台服务器,提供低延迟和高吞吐量,并且仍然可以支持 SSD。即使使用光纤或 iSCSI 型号,该单元也可以为您提供比您链接的单元更大的灵活性。
你的分析非常正确。
对大量 GB 使用少量 HDD,对少量 IOps 使用大量 HDD。
为大量 IOP 使用少量 SSD,为几 GB 使用大量 SSD
哪个对你更重要?空间是 SSD 解决方案的主要成本驱动因素,因为每 GB 的价格要高得多。如果您谈论的是需要 4K IOP 的 200GB 数据库,那么一对 SSD 将助您一臂之力。或者 15K 驱动器的 24 磁盘阵列,为您留出大量空间用于大容量存储。
根据存储基础架构,您实际上将从这些 SSD 中获得多少 IOps(ewwhite 将对此进行详细说明),但获得这种速度是合理的。特别是在 Raid10 中,没有计算奇偶校验。
我最近为我的雇主构建了一对存储服务器,使用戴尔 C2100 机箱,运行 FreeBSD 10.1 和十二个 2TB 7200rpm 西部数据“SE”企业 SATA 驱动器。这些驱动器位于由两个 6 驱动器 RAIDZ-2 虚拟设备 (vdev) 组成的单个 ZFS 池中。连接到池的是一对英特尔 DC S3500 SSD,它们具有超级电容防止断电,它们用作 SLOG 和 L2ARC。通过 iSCSI 对该服务器进行负载测试,我能够达到 7500-8200 IOPS。我们的总成本(包括硬盘驱动器)约为每台服务器 2700 美元。
在这些基于 BSD 的系统运行期间,我们的一个 HP MSA2012i SAN 单元经历了两次控制器故障,而我们的另一个 MSA2012i 单元损坏了一个大型 NTFS 卷,需要 12 小时的停机时间来修复。
戴尔和惠普向您出售 10% 的硬件和 90% 的支持承诺,您永远无法使用。