SSD上的MySQL群集

我们正计划实施一个四节点的MySQL Cluster,并且正在考虑使用SSD作为存储。 我们希望从小型集群获得高水平的磁盘IO性能和非常低的延迟,所以我们正在研究SSD。 有没有人有SSD的MySQL或MySQL集群的经验,或build立可以分享他们的经验或想法的SSD RAID组?

如你所知,SSD是恶魔表演者,对于高吞吐量条件来说非常棒。 对于数据库服务器来说,他们可以很好地处理事务日志以及任何不断碰到的索引,除了能够快速地提供查询。

TRIM,而不是世界末日

由于以下原因,TRIM对于数据库并不重要:

  • 数据库往往是“less数,大文件”的数据types。 取决于你如何查看SHRINK,这些文件可能会也可能不会变小。
  • 事务日志不断被写入,清除和重写。
  • Linux没有即时的TRIM支持,因为它都是按需提供的。
  • FSTrim在find删除的块的同时使I / O停顿,当它正在做它的事情时会导致暂时的延迟尖峰。

第三点值得关注。 由于TRIM是按需提供的, fstrim在清除事务日志后,您可以立即调用fstrim获得最佳性能。 但是,它会引入一个瞬间的时间段,在这个时间段你的超时日志卷的I / O不能提交。 如果你足够敏感,你使用固态硬盘,这样的事件可能是一个交易断路器。

由于TRIM是次要function,因此您可以忽略大多数RAID控制器目前还不支持的事实,并且除最新的Linux内核(比2.6.39 IIRC更新)之外的所有内核都可以用软件支持。

质量计数

要知道的最大的事情之一是您使用企业级 SSD驱动器。 这些是基于MLC闪存的高耐用闪存单元(〜30-40K擦除/编程周期),以及大量的备用块来处理块磨损。 如果您使用固态硬盘有一定的原因,那么您将要对这些产品进行高吞吐量计算,所以您希望在不到一年的时间内不会浪费掉设备。 这些会让你在那里。

SLC闪存实际上更好(100K +擦除/编程周期),但价格差异是驱动人们到MLC的。 是的,他们现在做的是企业级MLC! 但是,如果你的硬盘将会持续三年,SLC会让你的设备寿命更长。

alignment和RAID

块alignment是一件大事,因为它会影响你的穿着。 这就是RAID卡可能出错的原因,以及为什么有些RAID卡规格表声明他们不能与SSD一起工作,即使他们会很乐意地这样做,如果你连接一对。 如果每个块写入闪存双重写入,那么你会穿得更快。 理想情况下,您希望RAID条带边界落在擦除块大小的边界上。

然而,随着每一代新产品的问世,固态硬盘在处理磨损方面越来越智能化。 用SSD写入同一组逻辑集群越来越less,因为SSD本身变得更聪明。

对于软件RAID,Linux和支持公用事业已经有几年的SSD支持。 最新的内核比现在在Enterprise Linux中出货的支持好得多,所以请注意。 LVM现在已经支持TRIM(从而可以提高SSD的认知度)。 MD-RAID最近才得到TRIM。 XFS和Btrfs在2.6.39获得了TRIM支持,EXT获得了2.6.36的稳定支持以及20年代后期的实验支持。

成对replace

由于磨损是如何进行的,镜像对中的一对固态硬盘将同时出现故障。 所以当一个人去, 尽快replace两个