前言:
近年来存储数据呈现惊人的成长,存储设备为了适应各种新的运用需求??从而使得虚拟带库,高清非线编,数据化监控系统等等不断出现令人兴奋地发展。存储设备不但可支持更高速的传输,更大的容量存储,及更高的I/O存取,而且相对应的对数据保护的技术也有所进展??如snap shot、CDP等等。操作系统也增进了对存储设备的支持,如Microsoft Windows 2003推出了一系列对存储技术的支持,如VSS,VDS,MPIO 等。在各厂商的积极创新与努力推展下,各家的储存设备功能变得更强大,总体持有成本也有显著的降低。但性价比的提供,不代表使用者就能有效地去驾御他所拥有的存储设备,就能充分的应用其功能去解决所面临的IT困境。我们希望能提供一些想法与建议去帮助存储设备的使用者如何去规划适用的盘阵功能。
你的传统盘阵真的发挥了它的功能,解决了您的问题吗?
九成以上盘阵的使用者通常在系统安装完成后,便不再去进行盘阵系统功能的变更了。
我想有几种原因:
- 系统参数太复杂了:使用者面临的是一堆高深的难以理解的参数、术语,而使用手册语意不清楚,不想也罢;
- 数据的安全性太重要了:必须避免进行配置的更动与数据的搬迁,使用者不能承担数据在参数配置变更时可能丢失的风险;
- 盘阵不过是个大硬盘:只是用来存放数据,容量不够再进行采购就行了;
- 管理太复杂了:服务器,应用软件,网络,备分等等IT各环节的管理已经够复杂了,真不想再多花任何一份心思去想额外的事了。
以上几点有必要进行澄清与纠正.
- 系统的参数代表存储设备能提供更强大与更具弹性的配置,一个良好的系统应该能针对各种应用需求提供优化处理,以满足各种应用的解决方案。适度的了解参数调校有助于改善数据存储性能,进而提升整体IT环境的效率。
- 数据的安全性是绝对重要的,所以选择合适的盘阵系统,如合理的价位,强大的功能,稳定的性能等都是必需列入考虑范围的,而规划合适的RAID Level,必要地优化备援硬盘,多路径配置等都能有效地避免将来变动设定的机会。
- 盘阵不过是个大硬盘:盘阵绝对不只是大硬盘,它有强大的I/O运算,稳定的系统设计,智能的数据优化功能,借由系统所提供的优化设定,如快取设定可以提升传输性能,及SMART功能可以事先预防硬盘故障等等。
- 管理太复杂:初期的规划若能详加考虑,就可以预防将来的变更。 良好的盘阵系统虽然可以提供弹性的变更以适应数据及任务需求的改变。但事前谨慎的规划必能减少参数变更或设定调整时出现得不必要的风险。
一般传统盘阵的选择不外乎取决于几点:
- 传输速度的要求;
- 容量及硬盘数量;
- 接口标准的实行;
- 系统配置空间的考虑;
- 易于管理的方式。
有几点是我们必须要考虑的:
- 针对个别的应用必须有相对应的优化参数设定;
- 减少任何可能造成系统增加MTBF的机会;
- 数据安全的保障;
- 弹性的RAID设定;
- I/O 延迟可能造成应用端的困扰。
针对个别的应用必须有相对应的优化参数设定
I/O的模式:
- Random:数据库的I/O模式通常为小量,随机的方式,在存储的要求上,就是要求能够传送更高的IOPS(I/O per Sec),因为传输量较小,故在逻辑盘的规划上就可考虑较小的stripe size。一般而言盘阵的设定会给使用者选择-Optimization for random,并且可以选择小stripe size 如4K,16K等设定;
- Sequential:视讯影像,非线编等媒体运用,尤其是近来渐渐走高清的媒体传输,动辄100~200GB/s的高传输量,在存储的要求上,就是要求能够传送更高的IOPS(I/O per Sec),I/O的特性就是Sequential,因为较大的传输量,较Sequential的特性,故在逻辑盘的规划上就可考虑较大的stripe size. 而快取上的需求容量也较大,一般而言盘阵的设定会给序使用者选择-Optimization for sequential ,并且可以选择小stripe size 如512K,1MB等设定,快取的缓取配置单位会以较大的单位来为I/O进行配置,故可以提供更高的传输。
减少任何可能造成系统增加MTBF的机会
○ 使用者可以因任务的需求来选择合适的硬盘,在在线的服务上,需要的是高I/O传输,loading会较重,他可以选择Fibre硬盘及SCSI硬盘,而近线及offline的应用,就可以用较经济的SATA硬盘来配合,SAS的盘阵出现又带给企业更具弹性的解决方案,使用者可以在同一个盘阵系统进行SAS及SATA硬盘的配置,最后,除了选择合适容量的硬盘之外,还必须要考虑硬盘与盘阵系统的兼容性;
图示一:硬盘应用示意图
○ RAID 设定:提供多种的容错RAID设定,以减少硬盘故障可能影响系统的可用性,尤其RAID6可允许同时有两个硬盘发生故障,更大大的提高可用性;
○ 系统的环境及侦测:企业的IT环境必需,一个好的盘阵系统阵RAID的功能外,还必须俱备一个稳定持续的系统环境.因为硬盘在长时间的高速存取会产生高温,读取头会因些许的振动而导致撞击盘片而造成数据的损毁.好的盘阵必须能够保持系统散热,风流,电压,电流的持续稳外,更要能够侦测整体的状况,当不稳定状况发生时,还能保持系统及数据完整,并能通知管理者清楚的事件反应,让管理者能迅速做适当的处置以排除故障因为:
I、 二段式风扇设计:温度过高,风扇自动切换高转速
II、事件反应机制:当温度过高,风扇故障,控制器故障时切换快取模式,或执行系统关机,以保护整体系统
○ 无坏点考虑(无单点故障设计:由服务器至盘阵-丛集节点,端口,多路径,交换机,冗余控制器,冗余电源,冗余风扇)。
○ 容易服务的模块化的设计:重要组件的故障常导致系统无法继续提供服务,或可能导致系统处于不安全的状态 ,如盘阵控制器,BBU,电源供应器,风扇模块,硬盘模块等,要让重要组件能够被轻易地更换,迅速排除故障,以继续提供服务。
图示二:无坏点及易维护的模块化设计
图示三:系统的环境及侦测
数据安全的保障:
理由:
一般使用者在规划RAID时,较常使用的是RAID5,而其它常见的则会有RAID1,RAID3,RAID4 等等,这些RAID level允许至多一块盘故障,并能重建数据,可是很不辛的事,常见的情况如下:当一个属于RAID5的硬盘发生故障时,系统管理者尝试换上一块新的硬盘 或以现有的热备援硬盘进行RAID的重建。但是很不幸在重建过程中在另一块硬盘上遇到坏块,而根据RAID的同位运算奇偶校验功能,他只允许一个条带是坏的,才能重新产生原来的数据,这个坏块将造成RAID在被重建的硬盘里无法重建数据,导致这些数据永远遗失。若只遇到少数的坏块,并且这笔数据是关于系统开机或重要的系统文件的,则可能造成无法开机的状况。要避免这种情况发生可采用下面的方式来避免:
方式:
○ 重建奇偶校验码:
可使用盘阵的奇偶校验功能,他的原理很简单,就是将RAID上的数据每一个轨道读出来重新进行奇偶校验,在读取的过程中就能先发现坏块,而在逻辑硬盘还未处于降级状态时,这个坏块上读不出来的数据是可以重新产生的,将其余硬盘上的数据进行奇偶校验运算去还原数据,再回写入坏块. 通常磁性媒体上的坏块是所谓的瞬时的坏块,可以借由写的动作将坏块覆盖。若该坏块无法用写的动作去修复,则盘阵会启动硬盘的重新分配地址功能,去另行配置保留的扇区与坏块的地址进行交换,由这个扇区去取代坏块,下次存取这坏块位置时,实际是存取这个新的扇区
○ 盘片扫描:
盘阵的奇偶重建功能,原理很简单,可是有个问题,因为它会消耗盘阵控制器的运算及占用内部频宽,当执行奇偶重建等于是对整个逻辑硬盘的重建,会严重影响整体系统的性能. 盘片扫描是一个较好的坏块侦测方式,是由盘阵控制器下命令叫硬盘自己执行校验检查,当硬盘自己检查过程中就能先发现坏块,而在逻辑硬盘还未处于降级状态时,这个坏块上读不出来的数据是可以重新产生的,将其余硬盘上的数据,和进行奇偶校验运算去还原数据,再回写入坏块. 通常磁性媒体上的坏块是所谓的瞬时的坏块,可以借由写的动作将坏块覆盖. 若该坏块无法用写的动作去修复,则盘阵会启动硬盘的重新分配地址功能,去另行配置保留的扇区与坏块的地址进行交换,由这个扇区去取代坏块,下次存取这坏块位置时,实际是存取这个新的扇区
图示四:盘片扫描
○ 预定盘片扫描:
盘片扫描可以预先发现坏块,避免坏块造成数据在逻辑硬盘处于降级状态模式时丢失,并且只用很少的盘阵控制器来操作。 但我们认为若能将其何时执行,持续执行进行自动化操作才能对数据提供更好的保护. 这是就要有所谓的盘片扫描时间表,我们可以借由盘片扫描时间表提供弹性的时程安排去执行盘片扫描,例如可以按排不同部门的数据盘,在不同时段,或非工作时间去执行盘片扫描,可以更充分地利用盘阵控制器的运算能力及频宽,
图示五:预定盘片扫描
弹性的RAID设定:
RAID 的选择:在安装盘阵时就会预先规画应该实行什么样的RAID来作为数据的存储空间,以下对各种不同的RAID level作一个简述
RAID Level 0即数据分割,是最基本的方式。在一个普通硬盘驱动器上,数据被存储在同一张盘的连续扇区上。RAID 0至少使用两个磁盘驱动器,并将数据分成从512字节到数兆字节的若干块,这些数据块被交替写到磁盘中。第1段被写到磁盘1中,第2段被写到磁盘2中,如此等等。当系统到达数据中的最后一个磁盘时,就写到磁盘1的下一分段,以下如此。
分割数据将I/O负载平均分配到所有的硬盘。由于硬盘可以同时写或读,性能得以显著提高。但是它却没有数据保护能力。如果一个磁盘出故障,数据就会丢失。RAID 0不适用于关键任务环境,但它却非常适合于视频生产和编辑或图像编辑。
RAID Level 1是磁盘镜像??写到磁盘1中的一切也写到磁盘2中,从任何一个磁盘都可以读取。这样就提供了实时备份,但需要的磁盘驱动器数量最多,不能提高性能。RAID 1在多用户系统中提供最佳性能和容错能力,是最容易实施的配置,这最适用于财务处理、工资单、金融和高可用数据环境。
RAID Level 3包括数据分割,另外,它还指定一个硬盘来存储奇偶信息。这就提供了某种容错功能,在数据密集型环境或单一用户环境中尤其有益于访问较长的连续记录。RAID 3需要同步主轴硬盘来预防较短记录硬盘的性能下降。
RAID Level 5类似于Level 0,但是它不是将数据分成块,而是将每个字节的位拆分到多个磁盘。这样会增加管理费用,但是,如果一个磁盘出现故障,则它可以更换,数据可以从奇偶和纠错码中重建。RAID 5包括所有的读/写运行。它需要三到五个磁盘来组成数据,最适合于不需要关键特性或几乎不进行写操作的多用户系统。
RAID Level 6它使用特别的算法去产生二笔的Redundant 数据(我们称之为P,Q),扩展了RAID 5。它能承受多个硬盘同时出现故障,但是,性能??尤其是写操作却很差,而且,系统需要一个极为复杂的控制器。(Infortrend EonStor 提供了P,Q 同时产生功能,提供了绝佳的RAID6效用。RAID5,RAID6性能差异近10%)
图示六:RAID Level 示意图
RAID 之间的切换
理由:
随着企业的成长数据势必也会不断地增长,相关的扩充及备份方案必需因整体的IT环境去做调整,原来的RAID规划可能是配合数据库随意运用。而现在的运用必需转成对更大条带大小的支持,或者原有只有RAID5的规划,因新系统有RAID6的功能,在原来的做法上必须将原来的数据备分,再重建RAID逻辑硬盘,再将数据灌回。这样做不但耗时而且不具弹性.
方法:RAID Migration:
盘阵可以提供所谓的RAID Migration或者RAID重建功能,RAID Migration可以让系统管理者来改变逻辑硬盘的RAID级别. 它可以借由进行RAID逻辑硬盘数据的重新分配达成,更先进的盘阵还能在RAID Migration上提供条带大小的变更. 可以更有弹性地为系统管者提供强大的功能,以应IT任务的需求。
图示七:RAID Migration:
特殊运用的考虑:
a) 近线存储的运用:在近线存储的运用上,盘阵的角色是处于在线和离线的存储设备之间,duty cycle的部分不像在线服务,而是随时被叫用,在这种情况下,将硬盘马达关闭的功能启动,让盘阵在系统闲置一段时间后就将硬盘的马达关闭,而当服务器要存取盘阵时,盘阵控制器会自动唤醒马达,立即回复服务功能,硬盘马达关闭功能可以有效地减少电源的消耗,可以有效地节省总体的电源达50%以上.
图示八:近线存储的运用
b) 非线编及影音多媒体的运用:影音运用要求的系统能够提供一个稳定的性能来输出,盘阵对每一个I/O的响应必须能够及时快速,若处理I/O无法在适当的时间响应,则会造成影音电影的播放画面或影像播放停滞. 如下页,在读与写的I/O可以看到很明显的性能落差,这在多媒体的播放是不允许的。
c) Spiky read performance
原因:盘阵的设计主要是为数据存储做优化处理,故在数据的处理上不是以主机端的最快响应速度为目的,其主要任务是保持数据的正确性,再将通用型的盘阵运用在媒体播放影音的运用中,最常见的问题有:
a) 硬盘的坏块处理导致主机端来不及响应;
b) 混合的读写需求让快取的切换来不及响应;
c) 对单一媒体流(通常是一个大的连续的的档案,如电影影片)及多媒体流(如broadcast,IPTV)的优化是无法同一对待的。
解决方法:
AV选项通常会有两种优化选项:单一媒体流和多媒体流。针对单一媒体流,盘阵控制器可从硬盘预读较多的数据以供大的媒体流。而多媒体流的优化则是盘阵控制器优化内存机制,避免让多个服务同时落在同一硬盘,因此多媒体流可以尽可能被满足。
a) 启动盘阵的最多响应时间:只要RAID逻辑硬盘不是处于降级状况,而硬盘本身在处理坏块,或者其它原因无法在限定时间内响应,盘阵控制器可立即由其它硬盘去算出数据,并将其立即响应至主机端。
b) 设定对单一媒体流的优化或多媒体流的优化:针对任务的需求来设定单一媒体流的优化或多媒体流的优化,盘阵的内存就能依据设定来进行最佳化管理。
c) 使用RAID 6也可避免因硬盘处理坏块而导致的主机端来不及响应。