在大型视频监控系统如赌场的部署过程中,大量冗余存储至关重要。RAID6和RAID5相比,在减少视频丢失,确保视频系统的性能方面表现优异。
技术背景
自2003年下半年以来我们开始使用NVR系统记录所有的网络摄像机的视频。例如,我们最初的DVR系统包含有28台服务器,每台记录多达32个摄像头。服务器最初使用的是RAID 5配置带有16-bay50GB的硬盘。大多数的RAIDS是SCSI/PATA,使用IDE标准PC式硬盘。PC式硬盘不适用于处理连续的视频流,并且在短短的一年中被淘汰。驱动商从2005年初开始用RAID5来取代PC式硬盘驱动器,并且解决了PC式硬盘的问题。当时,我们大概同时使用830台多一点的硬盘驱动。
RAID5硬盘驱动故障
即使更换成830台驱动,我们的硬盘驱动仍然出现了崩溃。不过,对于任何大型系统这是非常正常的现象。据估计,大约1 %的所配置的硬盘驱动器将在第一年报废,并且报废率随着每年时间的推移不断攀升。然而RAID系统有很多方法,比如在其驱动器中带状分布存储数字信息,可以从硬盘崩溃的状态中恢复重建系统。RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID5把数字信号进行存储,当硬盘崩溃的时候,可以把崩溃的硬盘中的数据拷贝到另外的替代的硬盘中。因此大多数的RAID制造商都建议用户在每台RAID机架中安装至少安装一个分配全局热备份。这样,当RAID访问硬盘失败的时候,可以把存储信息从崩溃的硬盘中拷贝重建到备用硬盘中。也就是说,崩溃的硬盘可被新的热备用硬盘所代替,如此这般,从理论上来说,通过不断的重建过程,可以保证RAID不间断工作,并且没有数据的损失。
然而事与愿违的事,会出现存储监控视频的RAID系统所无法解决的驱动器故障:这样的问题仅仅在存储视频信息的时候碰到,而很少在其他的应用中出现。 问题的关键在于,大多数的应用中,书面数据是在写入过程中进行“核查”,这就意味着,在一块数据写入之后,这块数据将被读取并且在下一块数据写入之前和原始数据进行比较,如果比较过程失败,该块磁盘将被硬盘记录为故障状态,数据将被重新记录到磁盘的另外一块区域。
这样的一个重建机制在系统有足够的时间来进行数据验证和修复重建时候运转非常良好,但是在大多数应用中,并不要求不断的数据写入并且计算机操作系统可以等待相对较短的一段时间来验证数据并且修复所有的硬盘故障。
然而对于视频记录完全就是另外一回事了。闭路电视信号时90%的写入对应10%的读出,这仍然是一个保守的估计,有时候写入如读出的数据可以达到99 %至1 %和99.9 %至0.01 % 之间, RAID系统很少是专门为视频记录设置,如果有的话,得为写入数据进行专门的验证。
上述情况所致就产生了一些致命的情况。一个典型的故障情况就是所谓的“阅读元素失败”,即驱动器无法读取写入其中的全部或部分数据。导致这样彻底的读取失败的原因之一可能是一个错误的读取头,或者只是块损坏的磁盘尚未通过硬盘的自动重建功能拷贝到备用硬盘中。
由于硬盘录像系统通常不会在写入数据后自动读取数据,并且操作系统也只能读取到很小一部分回放的视频,硬盘很容易在读取视频的时候发生不能读取视频的事故,并且持续很长时间不能读取,但是无论是存储系统或者是操作系统都不会发现这样的问题存在,也就是说,知道有一个硬盘彻底崩溃了RAID系统才会认识到存储系统的故障。
当RAID系统遇到了一个驱动器故障,它会在所有的驱动中进行验证尝试重建数据。这样一来,问题变得更加严重,如果RAID系统中此事正好其中一个驱动器处于阅读元素失败的故障状态,那么很有可能坏区中含有验证数据。如果确实含有的话,数据重建的过程毫无疑问会发生故障。
在RAID 5系统,如果重建失败,验证数据将被损坏并且无法被读取,现在该系统现在有两个坏驱动器并且RAID设置都将丢失。这种情况我们在过去三年期间使用原始RAID 5磁盘阵列系统时至少发生过6次。
RAID 6
RAID 6的工作原理和RAID 5有所不。虽然也会遇到RAID 5可能遇到的同样的驱动器故障,但RAID 6可以记录验证数据,硬盘恢复的能力大大加强了。不像RAID 5那样在每个驱动盘都写入奇偶校验码,RAID 6写入两个完全独立的奇偶校验码。RAID 6的两个优点在于其可以在两个驱动器同事故障时仍然恢复数据,因为验证码在两个不同的区域,系统可以再多次故障之后仍然进行验证码校验重新实现数据重建。
实战操作证明, 2006年,我们升级了我们所有的服务器和RAIDs,支持RAID6的选择是正确的,因为RAID 6的。虽然我们经历了三次硬盘故障的情况,其中至少有两次是第二硬盘在重建数据的过程中发生故障,但是我们从未丢失过任何数据,系统可以重建硬盘系统并且完美地保持运行。