本帖最后由 wupan 于 2010-11-9 15:04 编辑
无盘服务器数据应用,以64K数据为标准的情况下,Intel SSD MLC 160G 已经是目前主流SAS 盘的10倍!这也是因为SSD的特性,用闪存代替了机械,无疑将磁盘的寻道时间这个最重要的指数提高到零点几毫秒以下,该项测试看来,在无盘服务器的磁盘写入应用方面就性能而言SSD 绝对彻底领先机械硬盘。
接着我们讨论一个问题,无盘软件中所使用的读写分离技术,系统镜像包/所有游戏镜像所在的分区,该分区就可以看成是“读”,控制端上的“工作站目录”,也就是客户机的临时数据存放所在分区就可以看成是“写”,所谓的“读写分离”。就是把IMG镜像和客户机的回写数据分开存放到服务器的不同的分区(阵列)上。这样读/写分离之后,对服务器硬盘压力相对来说较小,从而提高客户机的运行速度,这也是常规无盘服务器磁盘系统的规范之一,为什么不使用一个或者一组RAID硬盘胜任所有的任务,因为单个硬盘或者一组RAID ,同时进行读写操作的情况下,磁盘的性能会严重下降,SSD在无盘上应用,还需要使用读写分流技术么?那就让我们看下真实的测试结果吧。
上图是一块ST SAS 300G 15K7 SAS 同时读写持续操作的测试读,从上图看出,磁盘速度已经在7MB/S 左右了,这也是无盘为什么要做读写分离的原因了!
接着我们在Intel SSD MLC 80G的测试中,读写同时持续操作,磁盘速度仍然能接近到60MB/S 的速度,是主流SAS硬盘的10倍,这也足以表明读写不分离技术已经成为了现实!
从以上几项性能测试中,SSD 固态硬盘性能已经遥遥领先与传统机械硬盘,在无盘服务器上全面应用指日可待!
SSD在无盘使用中的寿命研究
SSD寿命想必是大家特别关注的话题,而且在无盘上的应用,其寿命是否能得到保证!对此,我们探讨了SSD的工作原理,以及MLC与SLC SSD在性能和可靠性上的差异,实际上,Intel在针对SSD的可靠性和使用寿命上,也有一些保障措施。
成倍写入机制与智能磨损均衡
在深入解析SSD MLC与SLC的性能差异中,我们对SSD工作原理的描述。SSD最小记录的单元是Page(4K),最小擦除单元是block(512K)。当我们保存该文件时,它会以2 pages的形式保存在闪存记忆体中;将其删除时,SSD会标记pages为无效,但实际上并不会删除该block。SSD将等到block中一定比例的pages被标记为无效时,才会复制一些有效的数据到新的pages里去并擦除该block。SSD这样做是为了限制了每个block擦除的次数,从而延长驱动器寿命。
并不是所有的SSD句柄删除都通过相同的方式,如何删除和何时删除一些包含无效页面的块,成为SSD寿命的关键。
写入放大率
对于一些质量不好的SSD来说,如果你只是想更换一个16KB的文件,控制器可能会错误地将整个block读取到主记忆体,然后更换4个页面,从SSD中擦除块,然后把4个改变页写入到新的块中。使用英特尔固态盘的页面/块,就意味着如果只写入16KB新数据,却相当于将512KB写入了SSD ——写入放大了32倍。
我们暂时没有其他SSD控制器的数据可以显示它们是如何处理这样的情况的,但英特尔指出,传统的SSD控制器写入放大在20–40倍的范围内,这就减少了它们驱动器的寿命。
写入放大控制需要快取
这就是 Intel SSD 的控制器需要 DRAM 缓存的原因,它用來当做储存资料的临时记忆体,所以比传统闪存控制器更有效率的执行写入动作;传统闪存控制器通常是每一次都触发写入动作,即使存储比较小的区块时也会写入放大到大容量的区域中。
先天设计上的优势
Intel 考虑了写入放大与磨损平均因子,以简单的方程式計算 NAND 闪存周期,磨損平均因子告訴你平均磨损与最大磨损的使用率差异,英特尔 宣称,由于控制器可感知闪存记忆体的区块大小而启用用命令序列功能,因此其他产品的因子为 3 (3x),X25-M 仅有 1.1x;这代表所有储室的使用率几乎相等,这有助提高SSD的预期寿命。
对于典型客户的工作量来说,其写入放大系数小于1.1倍,换句话说,比你的实际需要多写入了不到10%的数据。写入放大系数本身并没有多大意义,重要的是驱动器的寿命,此外还有一个因素起作用,我们已经证实,对于闪存来说,写入block的次数有限,之后它就会失去存储数据的能力。SSD相当智能,会使用均衡损耗算法分散block在整个驱动器中的使用。记住,对于SSD来说,无论写入什么地方,其性能将始终如一,这一点不同于其它机械磁盘,在英特尔磨损均衡效率上,所有使用的block几乎是相同的数值。
因此,SDD试图将数据均匀地写入驱动器的所有block里。例如,假设您下载一个2MB的文件到您新的、从未使用过的SSD中,然后保存到block 10、11、12、13中。您意识到下载错了文件并删除它,然后去下载正确的文件。
闪存控制器不是将新文件写入block 10 、11、12、13中,而是写入block 14、15、16、17 中。事实上,block 10、11、12、13这四个block无法再次使用,直到驱动器上每隔一个block都已写入了一次。所以,尽管您的MLC SSD可能只有10,000次周期的寿命,但由于智能均衡损耗算法,它将能使用相当长的一段时间,坏的磨损均衡,大概在现存的SSD上,一些blocks比其他的blocks更多的被使用。
英特尔SSD大约会有4%空间是均衡损耗算法不能控制的的,这意味着,英特尔SSD上 4%的block将比其他的block更易磨损。通过超低写入放大率及稳定成熟的平均磨损技术,从根本上延长了硬件寿命!
SSD的寿命通常是可以量化的,一个block在不能继续使用之前,可以通过其可擦除的次数或者设计周期进行衡量,因为我们在前面MLC的周期一般为10,000次,SLC的周期一般为100,000次,这些数值一般都不是非常显著的,用户往往更愿意通过SSD自身能够写多少块的数据作为衡量标准。通过我们对网吧无盘目前最主流的软件系统-锐起无盘XP 3.1,一台负载一百台客户机工作的无盘服务器的跟踪分析,我们发现在普遍情况下,平均24小时写入服务器回写盘的数据总量大约在200G周围;我们假设在偏极端情况下写入400G总数据量,同时我们研究发现在该系统下随即数据产生的写放大率平均为1.4,我们同样考虑极端情况将该放大率放大为3,这样计算下来,一片INTEL MLC 160G SSD 可以支持写入时间为4年左右,做了如此大量的放大考虑,INTEL SSD 都完全超出了网吧无盘服务器硬件使用年限!
SSD在无盘应用后会带来怎样的提升
假如一个服务器带100个工作站,每个工作站每秒钟向服务器中硬盘发出一个64KB文件的读或写,那么服务器的硬盘需要响应100次,如果每台机器每秒发出10次64kb资料的读取,服务器硬盘每秒就要响应1000次,即每秒要读取约64M, 然而在 15000转的SAS随机读取64KB数据块,测试中,硬盘也只能响应160次左右,平均响应时间,在6.0 毫秒(见图A),SSD可以响应 3000次,平均响应时间,0.4毫秒左右(见图B),这是个多么惊人的数字。
根据以上测试结果可以看出,要解决工作站的速度首先要解决硬盘的I/O处理速度,否则再怎么升级CPU,扩大内存,换主机板,都不会有很好的作用,目前很多服务器为了提高I/O处理速度做磁盘阵列,而要达到SSD固态硬的性能,最极端情况下需要使用10-20个目前最高级别的机械硬盘做磁盘阵列,当然在无盘服务器中是不可能用这么多盘做阵列,同时也不需要这么高性能, SSD 在无盘上应用,省去了多块硬盘做阵列来解决I/O 瓶颈!
以上的分析不能判断使用了无盘服务器应用SSD后,给网吧客户服务器带机量带来大幅度的提升,我们在实际的测试中,与主流的SAS 硬盘做对比,到底给客户提升了什么,请看我们结合网吧实际应用情况,而做的一些项目测试,测试表现中,都是优越与主流SAS 硬盘!
1、功耗测试
前面在分析SSD 特点的时候,就谈到过一台SSD的无盘服务器,1小时的功耗是0.07Kwh,SSD 无盘服务器一年耗电量是613.2Kwh,即613度电,而传统无盘服务器磁盘1小时的功耗是0.13Kwh,一年的耗电量为1138.8Kwh,即1138.8度电,那么SSD 服务器一年比传统无盘服务器,可以节省525度电!
2、客户机启动时间测试
无盘启机的时候是对服务器读写压力最大的,单台启动,或者客户机全部启动,负载压力少的时候,测试虚拟磁盘速度,是没有任何意义的!我们实际测试了一家规模80 台的网吧,在启动项加载一个自动重启的批处理,让客户机无限重启,这个时候服务器的压力非常大,但是SSD 已经完全可以胜任,启动时间跟单台负载的情况下没有任何差别!见下图:
那传统服务器硬盘配置在这种情况下,是如何表现的呢?请看下图
上图可以看出,传统硬盘配置负荷已经很高了,试想一下,在网吧带机高负载的情况下,传统硬盘配置的服务器,客户机启动时间逐渐增长,可想而知,给客户带来的损失是极大的,而SSD 在无盘上的应用,却保证了客户的利益,在高负载的情况下,完全跟单台负载的启动时间完全没有差别!
同时测试的项目还包括客户机虚拟盘随机读取参数,网络游戏启动进入速度,单机游戏同时启动进入速度,这些,就不例出详细的数据了,跟目前最主流的SAS 服务器配置对比情况下,都是大幅度的提升!
无盘中的写盘,早期都是几块机械磁盘做 RAID 0,来提升磁盘速度和IOPS 数,在实际测试中,无盘都是小块数据包随机频繁操作,而传统机械磁盘RAID 0 在随机写入测试中,写入速度反而下降了许多,见下图
ST300GSAS 15K7 单个磁盘
ST300GSAS 15K7 3个磁盘RAID 0
没有提升反到降了81%
加上机械磁盘IOPS数,和处理数据时间长(磁盘寻道决定)瓶颈,这就是后期为什么会出现分盘回写模式,而更加具有优势,接着我们看下SSD随机写入测试,能不能代替传统机械磁盘分写和RAID 0 的任务。
IntelSSDMLC160G 单个磁盘
IntelSSDMLC160G 3个磁盘RAID 0
整体提升了230%
可见单个SSD在无盘上应用,没有分写的概念了,真正技术上的突破,这一难题是得到了真正的解决 ,可随之而来的新问题又出现了,理论上,单个Intel SSD 80G 160G做写盘 ,在性能上的表现,带150 台客户机,都是没有任何问题的!在现在互联网发展高速的今天,网络视频,游戏不断增多而使网络更加丰富多彩,在网吧宽带极佳的状态下,客户机不断下载,在线看视频,用P2P软件看在线电影,单个写盘容量小的情况下,是抗不住压力的,可是这一难题,并没有难倒我们,请看下面我们是如何解决的!
|