我计划在计算服务器(16 核、128 GB RAM)中设置一个 RAID 阵列,用于暂存空间。用户将定期创建大型(500GB)MySQL InnoDB 数据库,并将其临时存储到暂存空间。数据库中填充了来自集群的数据,该集群最多可同时连接 1000 个 MySQL 客户端。RAID 控制器是 PERC H710 集成控制器,具有 512MB 非易失性缓存。
由于存储是临时的,我计划使用 RAID 0 来提高读/写性能。剩下的问题是是否使用 8 x 7,200 RPM 磁盘或 4 x 15,000 RPM 磁盘。一种典型的使用模式是,一旦创建了数据库,将很少对其进行写入。将有大量的读取操作用于分析,因此 15K 寻道时间会有所帮助,但我不知道 RPM 改进与使用额外磁盘的 RAID 0 条带化速度相比如何。
忽略驱动器容量因素,哪种设置更可取,8 x 7200 RPM 驱动器还是 4 x 15000 RPM 驱动器?如果这种问题没有明确的答案,我很抱歉。
编辑:我还没有研究过 RAID 控制器将根据阵列中的磁盘数量对有效吞吐量进行多大程度的限制。
答案1
这里有很多要讨论的问题,从设计到会心定价和相关技术的属性。
假设您在 8 x 7,200 RPM 近线磁盘和 4 x 15k 企业磁盘之间进行选择的原因在于成本。我们还假设您谈论的是 2.5 英寸小型磁盘...
现在我很少购买 15k 磁盘,因为如果延迟和随机 I/O 性能至关重要,我会选择基于 SSD 的解决方案。您的容量需求不是很大,因此只需使用 6 或 810k RPM 企业磁盘。它们的性能和容量比 7,200 RPM 磁盘更好,而且比 15k 企业磁盘更划算。目前,600GB 和 900GB 10k SAS 2.5 英寸磁盘的价格与 1TB 7,200 2.5 英寸驱动器的价格大致相同。
您实际上需要多少可用存储空间?在 2.5 英寸磁盘领域,容量为:
- 7,200 RPM - 500GB,1TB
- 10,000 RPM - 72GB、146GB、300GB、450GB、600GB、900GB、1.2TB
- 15,000 RPM - 72GB、146GB、300GB
但这个问题还有学术方面的问题。如果读/写配置文件是连续的,那么 8 x 7,200 RPM 驱动器会因为主轴数量而赢得吞吐量。如果是随机的,情况就更复杂了。优势仍然会偏向 8 个较慢的磁盘,但优势不会太大。
如果你的工作数据集在 1TB 以内,并且确实临时空间,我只需要960GB PCIe 固态硬盘(或两个)就完成了。
答案2
由于存储是临时的,我计划使用 RAID 0 来提高读/写性能
您错了。
镜像不仅仅与可用性有关。它还与减少延迟有关。如果您只对单个表进行顺序访问,那么镜像只会减慢写入速度。但如果有多个用户和/或多个表/索引和/或随机读取,那么镜像将提高性能。
如果性能是这里的主要目标,那么就像 ewwhite 所说的那样,为什么不考虑 SSD 呢?
除了转速和容量之外,还有更多值得关注的问题。长期以来,“企业级”硬盘供应商一直以可靠性和性能为依据来证明价格差异的合理性。但越来越多的证据表明情况并非如此。另一方面,它们在故障模式下确实表现得更好 - 商用硬盘会非常努力地将内容提交到磁盘 - 这可能会严重影响您的 MTTR。因此,在阵列中使用企业级硬盘可以为整个阵列提供更好的可用性。
也可以看看:
- http://brad.livejournal.com/2116715.html
- 企业存储为何这么贵?
- http://download.intel.com/support/motherboards/server/sb/enterprise_class_versus_desktop_class_hard_drives_.pdf
- http://www.eweek.com/c/a/Data-Storage/Hard-Disk-MTBF-Flap-or-Farce/
价格差异必须考虑。IME,企业级硬盘的价格大约是基本硬盘的 4 倍,但通常只能提供两倍的性能。
由于您似乎并不关心可用性,所以我建议您使用更便宜的驱动器 - 但为了提高性能请镜像它们。