SSD在以太网存储系统中的性能分析

评论员Steve Hill 质疑将SSD配置在使用1Gb/s以太网服务器连接的存储系统的做法。Steven说Drobo B1200i连接出去的通道会在SSD性能全部发挥之前就已经塞满了。

我们通常会倾向于考虑存储网络带宽,因为这是唯一显示在系统规格上的性能指标。当你购买一个磁盘阵列或HBA(主机总线适配器)的时候,你知道它是4Gb/s光纤通道连接的还是10Gb/s以太网连接的。网络带宽定义了一个存储系统可以提供的绝对最高吞吐率,但是我们很少人会在任务关键型应用程序上达到吞吐率上限。

对那些需要顺序地读取和写入大块数据的应用程序而言,吞吐率是一个限制性因素。这些应用程序包括媒体应用程序,比如视频编辑或监控程序,以及备份程序。备份设备性能完全取决于备份设备从备份服务器上接收一个或多个数据流的速度。因此,备份设备的规格表主要强调数据吸纳率。

因此,尽管吞吐率很重要,但是除了备份以外,我们大部分没有那种需要进行大型顺序数据传输的任务关键型应用程序。我们希望运行得更快的应用程序大部分是某种形式的数据库,这些数据库在4Kb或8Kb页面上或多或少地随机读取和写入数据。一个典型的数据库事务在数据库搜索一个索引来寻找数据表上正确记录的时候将要求数十或数百个小型数据访问,然后读取这个记录,然后如果这个数据库事务修改数据的话,还要将新数据写回到这些域。

对于数据库和其他随机访问应用程序来说,吞吐率的重要性要比I/O延迟以及存储系统所能执行的每秒输入输出(IOPS)要小很多。

延迟性就是一个设备存储或读取设备所需要的时间。在旋转式磁盘上,总的延迟时间就是寻道时间加上旋转延迟——驱动器等待正确的数据扇区转到读写头下方所需要的时间——再加上数据传输时间。

在真实世界中,随着数据请求在服务器操作系统I/O堆栈中上上下下,穿越各种网络交换机和进入阵列控制器,存储系统延迟可能会变得更严重。数据中心之间的同步镜像就是一个很大的写入延迟来源,因为在应用程序确认数据被写入之前数据必须被同时写入主目标端阵列和复制目标端阵列。这些因素经常会给应用程序性能带来很大的延迟影响。

由于如今的磁盘驱动器只有一个读写头定位器,因此一个驱动器可以提供的IOPS差不多就反映了它的延迟。一个总延迟时间为7毫秒的1.5万转驱动器可以提供1/0.007或140次IOPS。

SSD和磁盘阵列可以从它们的RAM(随机存取记忆体)中满足某些I/O请求并且并行地访问多个闪存芯片或磁盘驱动器。这种并行性使得它们可以提供比延迟性所能反映的更多的IOPS。由于存储系统的并行性可以减少正在进行并行请求的应用程序的延迟性,在同一时间满足多为用户多个请求的数据库服务器可以提供更多比进行顺序工作时更多的IOPS。

因此,在只有1Gb/s连接的存储系统上配置SSD是否合理?如果这个存储系统运行的是像Oracle、MySQL或甚至Exchange这样的在小页面上管理数据的数据库应用程序,那么这种做法是合理的。要想用满1Gb/s连接,需要1.5万次8K IOPS,而一个没有配置SSD的12个驱动器的SATA系统只能提供1500次IOPS。

现在,Steve的另一个观点认为在没有足够的CPU、记忆体或软件管理资源的低端存储系统上配置SSD是不合理的。

一些基本的存储设备性能指标: