RAID存储技术所面临的挑战之一就是重建故障磁盘所需的时间越来越长,这增加了数据丢失的风险,并威胁着那些历史悠久的数据存储技术的生存。
磁盘密度的增长速度远远超过了性能和可靠性方面的改善,一些存储网络行业人士甚至质疑RAID能够足够快地恢复故障磁盘以维持企业数据存储领域的相 互关联性。
但是一些数据存储厂商选择了一种古老的方法来维持RAID的:分簇RAID(Declustered RAID),或者Parity Declustering,这是RAID先驱者Garth Gibson和Mark Holland在1992年的一份文件中提出的理念。
StorageIO Group创始人、高级分析师Greg Schulz表示:“我发现有趣的一点,如今RAID所面临的一些难题与十几年前是类似的。”
Schulz表示,这些问题包括:大容量磁盘驱动器的重建、分布式数据保护、可用性、性能和易用性。
分簇RAID的定义
分簇最早是针对镜像磁盘推出的,之后在卡内基梅隆大学的Gibson实验室中针对RAID 5阵列开发的。
高性能存储公司Panasas共同创始人、首席技术官卡Gibson表示:“分簇技术将小簇磁盘集群的一个RAID控制器替代成多个RAID控制器 的集合,每一个都可以通过光纤通道或者iSCSI SAN访问所有磁盘。”
分簇技术因RAID的替换而有所不同,这样每个校验计算只涉及少数几个磁盘,这些磁盘的设置会根据每个磁盘的字位而有所变化。结果是,分簇RAID 5中的每对磁盘都涉及相同数量的RAID替换。
不同的RAID有不同的分簇技术,因此每个校验计算只涉及少数几个磁盘,
Gibson表示:“当一个磁盘发生故障的时候,每个磁盘都承担一部分恢复工作,分散到所有RAID控制器,而不是由一个RAID控制器和几个磁盘 做所有恢复工作,而其他磁盘和RAID控制器不参与恢复工作。”
因为分簇技术还会将在线冗余空间分配给所有磁盘——而不是有几个在线冗余空间处于空闲状态,因此即使是在恢复故障磁盘过程中的写入操作也是分配到整 个阵列的。
Gibson表示:“最终结果是,从一台计算机上的一个应用,到所有磁盘和所有控制器的并行计算和分布式计算,RAID都会有所变化。计算会完成的 更快,或者它在恢复期间对用户性能的影响越来越小,或者两者兼有。”
解决RAID重建难题
存储、策略和系统资讯服务公司Silverton Consulting总裁Ray Lucchesi表示,驱动器重建时间的难题在于,重建一个1TB或者更大的磁盘驱动器所需的时间是按小时计算(如果不是按天的话),并且取决于存储系统 和RAID组是否繁忙。
不过,通过创建更大的单校验RAID组(RAID条带中有更多磁盘盘片)、交错耦合RAID组或者使用拥有更多盘片的RAID 6等方法可以缩短重建时间。
但是对于一个大型RAID组来说,问题是数据覆写可能会引发校验磁盘上的性能瓶颈,因此RAID用户所面临的难题就是如何将大型RAID组更短的驱 动器重建时间与小型RAID组更小的写惩罚两个特点结合起来。
Lucchesi认为,可以把校验分簇作为一种解决方案,因为它会在多个磁盘驱动器之间分布校验和数据,因此不会有一个磁盘来承担所有驱动器的校 验。
这么做可以消除热驱动器现象,而这一般审核通过使用更小的RAID组来实现的。
Gibson表示:“问题的核心是,读取整个磁盘所花费的时间越来越长,每年增加大约20%。磁盘数据速率的增长速度逐渐落后于容量的增长,因此读 取容量更大的磁盘就要花费更长的时间。”
由于磁盘容量越来越大,所以RAID系统恢复一个故障磁盘就需要更长时间。传统RAID系统通过从头到尾读取所有剩余磁盘、将缺失数据写入到在线冗 余磁盘中来实现磁盘恢复。
Gibson表示,需要更长时间恢复故障磁盘和被取代磁盘是一件糟糕的事,这有两方面的原因。
首先,这意味着会危险期——更换故障磁盘和恢复其中内容的一段时间——变得越来越长。在这期间,可能会有更多故障导致数据丢失。而危险期的加长意味 着数据可靠性降低。
其次,恢复是一项繁重的工作。这期间,有用的磁盘访问减少,用户工作负载的磁盘性能降低。恢复期越长,用户“事倍功半”的时间就越长。
结果就是,RAID系统需要更长时间恢复到全面保护状态,发生其他故障的几率和数据丢失的可能性也有所增加。
Gibson表示,Panasas的校验分簇技术将RAID从一个控制器和几个磁盘的本地操作转变成使用存储池中所有控制器和磁盘的并行算法。
通过由上万个单个磁盘阵列所组成的存储池,校验分簇技术能够将恢复速度提高十几倍甚至几百倍。它将工作细微地分配到每个磁盘中,减少恢复流程对并发 用户工作的干扰。
将所有数据分布到多个磁盘中的方法并非Panasas独有的。其他掌握这项技术的厂商还包括EMC、Google、日立、惠普、IBM和 Isilon。
IBM XIV和RAID-X
IBM XIV是一款基于网格、不使用传统RAID的存储系统。
IBM系统存储高级存储咨询师Tony Pearson表示:“数据被分布到松散连接的数据模块中,这些模块被当作是独立的构建块。”
他说:“XIV将每个LUN分割成1MB的块,将每个块的两个副本保存在彼此分开的模块中的单独驱动器上。我们称其为RAID-X。”
有趣的是,描述这种分簇技术的术语五花八门,例如RAID-X、宽条带、metavolume、区间池、条带间条带(stripes across stripes)、格条带(plaid stripes)和RAID 500,每一种叫法都证明了RAID持续创新的独特方式——即使每种创新并不都命名为RAID。