固态硬盘是否适合企业数据库环境?

随着存储技术的革新,固态硬盘(SSD)在企业应用中扮演着越来越重要的角色。同传统的硬盘相比,无论是读写还是随机存取的速度,SSD性能的优势都非常明显。但是传统硬盘是比较成熟的产品,它们作为主流存储介质已经存在数十年,而且背后还有一系列经过实践检验的技术作为支持。因此我们不禁要问,对于SQL Server数据库来说,是否真的有必要改用固态硬盘存储设备?考虑到昂贵的成本问题,SSD能给企业带来怎样的投资回报率?

同传统硬盘相比,SSD有许多吸引人的特性,这也使得它们越来越具有竞争力。SSD的能耗更小,随机存取的读模式速度更快,同时具有标准的硬盘接口标准(如SATA)。可以说SSD的出现使得传统硬盘几乎走向了命运的终点。站在DBA的角度来说,SSD高速的读取速度是其最大的优势,因为它对于解决I/O瓶颈问题起到了至关重要的作用。

但是反过来说,SSD也并不是十全十美,特别是针对SQL Server数据库的情况,以下几个原因往往会让DBA对它望而却步。首先想到的一定是成本问题,它们所带来的数据吞吐速度提升是否能够物有所值?一个企业管理者在处理存在多个硬盘的存储系统时,关注的不光是纯性能问题,他们更关注的是每多花一分钱性能能够提升多少的问题。如果你使用廉价的普通硬盘同时又能解决带宽问题,得到的性能不会差到哪里去,为何还要选择SSD呢?在使用SSD时,你可能要花费10倍的资金去购买,这时你需要问自己,性能是否也能提升10倍呢?当然,答案往往是不能的,那么我还是建议你使用普通硬盘。
  
在2009年由微软研究机构发布名为"服务器存储改用SSD:分析与权衡"的论文中,分析师认为在近一段时间内,对于任何的测试服务器场景,固态硬盘都并不是最佳的选择。"只有SSD性价比提升3-3000倍之后,才有可能真正成为传统硬盘的替代品,"分析师写道:"SSD作为中间缓存层的价值十分有限,针对各种工作负载的测试中,只有不到10%的场景证明使用SSD得到了应有的回报。"SQL Server数据库不在这10%的范围之内,同时我们对一个5000个用户的微软Exchange Server进行了SSD测试(使用了嵌入式数据库),其结果证明不适合投资固态硬盘。

另外一个针对SSD讨论比较多的问题就是它的可靠性,即能否长期反复使用:闪存单元能否禁得起反复的写操作?同样的讨论在U盘推出市场时也出现过,但是我们现在关注的是企业级应用,同个人电子消费品不太一样,企业应用的I/O总数要远远大于个人消费者,特别是考虑到数据库这样的I/O密集型应用。数据对于一个企业的重要性无需赘言,而稳定性是重中之重。因此没有人希望新技术的代价是将数据捆绑在定时炸弹上。

当然如果我们将现实与理论对比的话就可以发现其实SSD长期使用问题并没有那么严重,况且一个良好的设计就可以在很大程度上缓解这一问题。SSD市场分析师Zsolt Kerekes亲自对这一问题进行了研究并得出了这样的结论:在一个设计良好的闪存SSD中,你可能需要写满整个硬盘才会出现上述所说的问题。因此即使是数据库这样的应用,其中包含了大量的写操作,但是这对于SSD来说并不会造成使用威胁。

鉴于上述情况,写操作造成的长期使用问题其实并不会造成太多困扰,它的使用寿命之内肯定又会出现新的SSD技术,那时候更新、更快、容量更高、更节能的模型将占据市场。

当然,目前SSD市场也在不断地推陈出新,尽管价格在短时间内不会降低太多,因此如果你在现阶段想要在数据库系统中花费上万资金购买固态硬盘,那还不如去花费同样的钱去购买其他的数据库硬件。比如增加内存减少负载中的I/O,相比之下,这样比购买固态硬盘更加划算。如果现实场景中有太多的I/O不能够减少,那么再决定购买SSD也不迟。

来自微软公司的工程师James Hamilton发表了一系列的公式,可以帮助用户计算购买SSD是否划算,以确定更换存储设备的投资回报率。在这个公式(参考链接)中,它用到了一个数据库服务器作为测试用例,在他的发现中,我们可以看到往返在磁盘之间的随机I/O是拖后其他I/O的主要原因,因此他决定用SSD来替换原有的存储设备。但是还是和之前一样,投资回报率成为最大问题,利用他给出的公式我们可以看出他所使用的场景并不适合替换SSD.

虽然SSD发展的势头很快,大有替代传统硬盘的趋势,但是在企业级应用方面,特别是数据库环境(如SQL Server),其高成本造成投资回报率偏低的情况依然不容忽视。所以只有当工作负载或者SSD价格降低时,它才可能成为合格的替代品。在大把大把花钞票的时候,先去用公式计算一下,这些钱没准儿用到其他的地方会更好。

随着存储技术的革新,固态硬盘(SSD)在企业应用中扮演着越来越重要的角色。同传统的硬盘相比,无论是读写还是随机存取的速度,SSD性能的优势都非常明显。但是传统硬盘是比较成熟的产品,它们作为主流存储介质已经存在数十年,而且背后还有一系列经过实践检验的技术作为支持。因此我们不禁要问,对于SQL Server数据库来说,是否真的有必要改用固态硬盘存储设备?考虑到昂贵的成本问题,SSD能给企业带来怎样的投资回报率?

同传统硬盘相比,SSD有许多吸引人的特性,这也使得它们越来越具有竞争力。SSD的能耗更小,随机存取的读模式速度更快,同时具有标准的硬盘接口标准(如SATA)。可以说SSD的出现使得传统硬盘几乎走向了命运的终点。站在DBA的角度来说,SSD高速的读取速度是其最大的优势,因为它对于解决I/O瓶颈问题起到了至关重要的作用。

但是反过来说,SSD也并不是十全十美,特别是针对SQL Server数据库的情况,以下几个原因往往会让DBA对它望而却步。首先想到的一定是成本问题,它们所带来的数据吞吐速度提升是否能够物有所值?一个企业管理者在处理存在多个硬盘的存储系统时,关注的不光是纯性能问题,他们更关注的是每多花一分钱性能能够提升多少的问题。如果你使用廉价的普通硬盘同时又能解决带宽问题,得到的性能不会差到哪里去,为何还要选择SSD呢?在使用SSD时,你可能要花费10倍的资金去购买,这时你需要问自己,性能是否也能提升10倍呢?当然,答案往往是不能的,那么我还是建议你使用普通硬盘。
  
在2009年由微软研究机构发布名为"服务器存储改用SSD:分析与权衡"的论文中,分析师认为在近一段时间内,对于任何的测试服务器场景,固态硬盘都并不是最佳的选择。"只有SSD性价比提升3-3000倍之后,才有可能真正成为传统硬盘的替代品,"分析师写道:"SSD作为中间缓存层的价值十分有限,针对各种工作负载的测试中,只有不到10%的场景证明使用SSD得到了应有的回报。"SQL Server数据库不在这10%的范围之内,同时我们对一个5000个用户的微软Exchange Server进行了SSD测试(使用了嵌入式数据库),其结果证明不适合投资固态硬盘。

另外一个针对SSD讨论比较多的问题就是它的可靠性,即能否长期反复使用:闪存单元能否禁得起反复的写操作?同样的讨论在U盘推出市场时也出现过,但是我们现在关注的是企业级应用,同个人电子消费品不太一样,企业应用的I/O总数要远远大于个人消费者,特别是考虑到数据库这样的I/O密集型应用。数据对于一个企业的重要性无需赘言,而稳定性是重中之重。因此没有人希望新技术的代价是将数据捆绑在定时炸弹上。

当然如果我们将现实与理论对比的话就可以发现其实SSD长期使用问题并没有那么严重,况且一个良好的设计就可以在很大程度上缓解这一问题。SSD市场分析师Zsolt Kerekes亲自对这一问题进行了研究并得出了这样的结论:在一个设计良好的闪存SSD中,你可能需要写满整个硬盘才会出现上述所说的问题。因此即使是数据库这样的应用,其中包含了大量的写操作,但是这对于SSD来说并不会造成使用威胁。

鉴于上述情况,写操作造成的长期使用问题其实并不会造成太多困扰,它的使用寿命之内肯定又会出现新的SSD技术,那时候更新、更快、容量更高、更节能的模型将占据市场。

当然,目前SSD市场也在不断地推陈出新,尽管价格在短时间内不会降低太多,因此如果你在现阶段想要在数据库系统中花费上万资金购买固态硬盘,那还不如去花费同样的钱去购买其他的数据库硬件。比如增加内存减少负载中的I/O,相比之下,这样比购买固态硬盘更加划算。如果现实场景中有太多的I/O不能够减少,那么再决定购买SSD也不迟。

来自微软公司的工程师James Hamilton发表了一系列的公式,可以帮助用户计算购买SSD是否划算,以确定更换存储设备的投资回报率。在这个公式(参考链接)中,它用到了一个数据库服务器作为测试用例,在他的发现中,我们可以看到往返在磁盘之间的随机I/O是拖后其他I/O的主要原因,因此他决定用SSD来替换原有的存储设备。但是还是和之前一样,投资回报率成为最大问题,利用他给出的公式我们可以看出他所使用的场景并不适合替换SSD.

虽然SSD发展的势头很快,大有替代传统硬盘的趋势,但是在企业级应用方面,特别是数据库环境(如SQL Server),其高成本造成投资回报率偏低的情况依然不容忽视。所以只有当工作负载或者SSD价格降低时,它才可能成为合格的替代品。在大把大把花钞票的时候,先去用公式计算一下,这些钱没准儿用到其他的地方会更好。