分类: 服务器与存储
2008-07-26 12:55:37
固态存储并不是一个新鲜和前沿的技术,早在存储技术发展之初,固态存储就作为存储领域的一个分支技术方向,默默无闻的向前发展延伸。经过多年的研究和进步,在传统磁盘存储性能停滞不前的今天,固态存储却犹如一朵奇葩,在越来越多的应用领域静悄悄的盛开。
目前固态存储在国外的发展情况较为成熟,然而国内的用户对这个技术却知之甚少。前面我们已经通过“固态存储:从机械存储走向硅世界”等文章讲述了固态存储的应用领域和优势,本文我们将向大家进一步介绍固态存储的产品特性和发展趋势。
要吞吐率还是海量空间?
固态存储产品(Solid State Disk)的发展已经有20多年的历史,是基于硅芯片(SDRAM)的存储设备,它能显著地加速/提高位于传统的磁介质存储系统中任何应用的性能。由于它并不使用旋转媒介,所以搜索数据非常迅速。而且因为不会出现普通硬盘的磁头损坏的情况,所以固态硬盘将更加安全可靠。
固态存储大部分结构都是RAM+disk+ups+备份软件的结构。数据一般保存在DDR RAM中,替代了机械式磁盘驱动器,为繁重的应用提供额外的带宽。类似内存总线体系结构为服务器提供更高的性能。
它的低延迟允许直接支持更大并发,提供更快的响应时间,客户端访问数据时,由于本身即是RAM,响应时间也是比较短的,同时IOPS也用很大的提升,普通的SSD,在吞吐量16KB时它的IOPS一般能达到3万次/s以上,响应时间一般都达到35微秒以下,同时在支持高并发的同时, CPU的利用率也有显著增长,能充分的发挥CPU的性能。CPU的利用率基基本上随着IOPS的增加而增加。
目前,SPC-1 IOPS超过10万的只有4款产品,分别是3PAR InServ S800 X-series(8-node)、Fujitsu Enternus 6000 Model 1100、IBM TotalStorage SAN Volume Controller 1.2.1以及Solid State Disk(固态存储)RamSan-320(8 port)。这四款产品组成了存储性能理事会“100K SPC-1 IOPS俱乐部”。
Solid State Disk(固态存储)RamSan-320(8 port)是其中SPC-1 IOPS数值最高的,平均响应时间最快,平均无故障时间是其他产品的上千倍,但基于闪存原理,固态存储产品的容量都小得可怜,一般也就几十GB,而且价格相当昂贵。
当然,固态存储的厂商有其他的看法,他们计算出如果用户需要SPC-1 IOPS达到4万而存储容量要求又在200GB以下(比如金融、电信的关键业务应用的频繁访问数据,如数据库日志等),那固态存储的性价比是最好的。一般来讲,通过SPECsfs97基准测试达到每秒1万次操作的服务器(目前看起来通常都是高端Unix小型机),基本就要求其后端的存储达到4万 SPC-1 IOPS,才不会浪费服务器的处理能力。
数据安全是第一位的
为了提升数据的安全性,固态存储主要主要用RAID和备份软件来实现的,和我们传统的磁介质存储的应用没有太大的区别。通过RAID技术虽然可以大幅提升其安全性,但是以存储空间的利用率下降为代价,相对于固态存储寸土寸金的昂贵价格,使用RAID方式来保护数据显然并不合适。
固态存储系统在应用中一般通过备份软件来实现数据保护,固态存储一般被用作面向服务器领域的应用。传统磁盘在这里则沦为二级存储或者近线备份的存储介质。为了数据的安全性,大部分情况采用实时的备份形式,把数据备份到传统磁盘介质上,或者RAID磁盘上。即使保存在固态存储介质上的数据全部丢失了,开机的同时,数据也能迅速的由磁介质系统恢复到固态存储上。
经过20多年的应用,固态存储在安全性上面完全可以和磁介质存储相媲美,而且由于本身没有机械运动不存在机械磨损,平均无故障时间是其他产品的上千倍,一般寿命可以达到其他存储10倍以上。
然而在数据安全性方面,固态存储还存在一个致命缺陷:由于固态存储一般采用内存(RAM)为存储介质,因此需要电源保护。基于固态存储极高的数据吞吐效能,大多数的用户都会把本系统用于存储数据库中的那些最经常被访问的数据(例如:重做日志,临时性的数据库片段),甚或整个数据库。担当如此重要的关键任务,这个安全缺陷必须补上。
为了在系统全部断电的情况下保证数据的安全,固态存储厂商设计了UPS供电的电源保护模式,确保内存的数据不会丢失。在UPS电源供电上的分为内置电源和外置UPS两种,内置电源一般能够保证2-6小时的供电,它类似我们常用RAID卡的上电池比较相似,考虑到电池的遇热的危险性,一般用内置的电源比较少,相对内置电源,外置UPS在容量上和供电时间上,都远远高于内部电源,一般保证在8个小时以上。
何时从金字塔尖走向普罗大众
对于固态系统本身来讲,它的速度比容量要重要的多,所以经常被用来配置满足苛刻的应用要求。正是因为在速度、网络能力和每IOPS低成本方面的显著优势,固态存储在在线事物处理(OLTP),在线分析处理(OLAP),数据库,建模和高清晰的非线性视频编辑等应用中均可担当重要角色。典型用户包括金融企业,电信行业,电子商务,医疗电力,以及政府、研究所和军事机构。
根据数据的生命周期和三级存储架构,可对不同时期的数据采用不同的存储方式和存储介质。作为被频繁访问的数据和对企业最有价值的数据,其往往只占整个数据量的3-5%,却带来超过50%的IOPS需求。因此将其存储于I/O性能最高的Solid State Disk中,会为企业带来最佳的效益。
虽然单位实施成本较高,但在很多关键应用上,即便是区区数十G的至高速存储对于企业都至关重要,很有可能会极大地提高整体性能,比如说数据库的临时表空间、经常访问的Hot Files、或许经常访问的数据库等,那固态存储的性价比是最好的。
固态存储无疑是拥有有光明前景的存储技术,由于其昂贵的价格和容量上的限制,固态存储目前还处于数据生命周期的塔尖,担当关键业务数据的存储与读取应用。但随着技术的成熟,高达1TB的大容量固态存储系统已经设计成功,并在市场亮相。
固态存储在国外,尤其欧美地区已经得到了长足的发展与应用。由于国内用户目前对固态存储的认知不足,在国内仍然处于曲高和寡的阶段,也鲜有研究固态存储的厂商。我们期待固态存储技术得到进一步的发展,只有突破容量限制和价格瓶颈,固态存储才能从数据生命周期的塔尖走向普罗大众。
针对数据库的连续保护支持
许多CDP解决方案都支持一些常见数据库环境(如Oracle或Microsoft SQL)的连续保护。在这里,支持的意思是该解决方案经过了厂商的全面测试和认证,而且还会向用户提供已经准备好的文档内容。
保护系统卷
许多CDP解决方案都可以支持启动卷或文件系统的全面的恢复。
网络文件服务器保护
多种CDP解决方案可以连续保护由网络文件服务器平台(如Windows/CIFS或Unix/NFS)输出的数据。
支持的操作系统
对于每一种操作系统平台,CDP解决方案必须经过厂商的全面测试和认证。
库架构
许多CDP解决方案的架构都是将其作为一种CDP存储库(也就是说,将所有数据中的变化存储在独立的地点),而且这种存储库是局域网、广域网或存储区域网上明确的专用节点。其他的CDP解决方案则依靠受保护的主机,并将数据直接写入独立的CDP存储器上。
复制库
一些CDP解决方案还提供将CDP库复制到另外一个远程库的能力。这样就可以提供更高的灵活性,防止主CDP库可能出现损坏或丢失对恢复能力产生影响。
连续数据保护产品功能列表:
RAID10 & RAID01
关于RAID10和RAID01的对比,曾引起过广泛的争论;下面,通过相关图示进行对比和解释。
RAID10是RAID1和RAID0的组合运用,它第一层为RAID1模式,第二层为RAID0模式,从而结合了两者的优点,提供了新的特性,如图-4所示。如果在下层RAID1中的某个磁盘出现故障,并不会影响数据的读取;然而,如果出现故障的磁盘没有被替换,那么那个剩下的磁盘将会成为单点故障;但是,如果该单点故障的磁盘再次损坏,那么整个阵列存储的数据将会丢失;因此RAID10能支持的并不是任意两个磁盘故障,如图-4中:
图-4 RAID10
a) Disk0和Disk1不能同时损坏,否则数据不能正常读取;
b) Disk2和Disk3不能同时损坏,否则数据也不能正常读取;
RAID10常被应用到高负载的数据库中,因为它不需要进行校验计算,所以能够进行高速的I/O处理,带来更好的性能。
RAID01和RAID10类似,只不过它先做RAID0,然后再利用RAID1来完成两层RAID的设置;当某个RAID0中的一个磁盘损坏,那么损坏的数据将被转换到另一组RAID0;如图-5所示,当在不同RAID0组中的两个磁盘同时故障时,也会导致该RAID01失效;但是它却没有RAID10那么强健(robust),如:
图-5 RAID01
a) Disk0和Disk2不能同时故障,此时两个RAID0都故障,数据不能读取;
b) Disk0和Disk3不能同时故障,此时两个RAID0都故障,数据不能读取;
c) Disk1和Disk2不能同时故障,此时两个RAID0都故障,数据不能读取;
d) Disk1和Disk3不能同时故障,此时两个RAID0都故障,数据不能读取;
显然,比起RAID10,RAID01导致故障的组合更多;其实,从数据存储的逻辑位置来看,RAID01和RAID10基本是一样,如果在设计过程中,加入智能识别的能力,两者可以达到一样的容错可靠性。
对比、分析与总结
一般情况下,如果磁盘没有故障,raid 5写操作还可以,可是一旦一块磁盘故障,性能会大幅下降。raid组中磁盘越多,性能越差,原来一个写操作只需并行完成两个磁盘写,而如果raid中1块磁盘有故障,8块盘的raid 5需要完成7个块盘的并行读和两块盘的并行写。
通常写操作可以100% cache hit,而读操作能做到90%以上就已经很不错了,何况这种大规模的磁盘读,所以一定需要物理读,写cache是0.00x毫秒级的,而物理读写需要若干毫秒,respnd time可能达到1000倍以上的差别,我们把这种现象称之为写惩罚。
对大型系统,这种性能变化无法接受,即使是故障的时候,因此才会有诸多双磁盘容错技术的引入。我们把这些双磁盘容错技术做一个对比:
表-1 各种RAID对比表
由上表可见,RAID6提供了高可靠性,但是随之而来的却是性能的影响;RAID5E和RAID5EE结合了RAID5和热备用技术,在某种程度上支持两个磁盘故障,其容错能力相对与RAID5和RAID6之间,不过它也需要计算校验,因而对性能也会有一定影响;而RAID01和RAID10可以某两个盘同时故障,其容错能力相对RAID6较弱,不过它不需要校验,从而带来了更好的性能,但是其存储空间的利用率不高。
针对以上不同真假RAID6的技术特性,各厂商也采取了不同的策略。比如,HDS就宣称支持RAID6;而EMC认为RAID10也能满足需求,并且还有其他的存储技术来达到高可靠性,因此目前还不支持RAID6;而IBM则对RAID5E和RAID5EE支持较多,用它来满足高性能的需求;对于中低端应用,比如SATA阵列,由于SATA磁盘的平均故障间隔时间(Mean Time To Failure, MTTF)的影响,大部分都支持RAID6。
由此我们可见,在双磁盘容错的实现方式中,RAID6并不是唯一的,也不是最完美的解决方案。以上提到的几种RAID技术,都可实现双磁盘容错,且各有各自的特色,以及对应的应用领域;用户所需要作的是根据自己的环境、功能和预算,选择合适的技术,来满足自己的需求。