发布:2007-12-16 | 分类:网络存储 | 阅读:315 |
标签:NetApp, RAID
Ÿ 硬盘区块验证系统 (Block-level checksum),当有一颗硬盘故障时,RAID系统可保护资料不会流失,但是硬盘无故障时,如果某个硬盘的区块 (Block) 资料有错误时,RAID将无法侦测与更正,此时读取的的资料将会错误。WAFL内建硬盘区块验证系统 (Block-level checksum) 功能,在RAID所写入资料的Block都会加写checksum在每颗硬盘上,每次读取资料时都会同时检查checksum值。若检查不符时,就会利用RAID的Parity将该Block进行修复与更正,如此所读出的资料就可得到正确性的保障了。(专利申请中)
Ÿ 硬盘扇区检查系统 (Disk scrubbing),每周WAFL会自动自我扫描检查每颗有资料的硬盘所有区块,检查的周期与时间长度亦可自行调整,于所定的时间内未完成时,也会在下次检查时继续未完成的部分。如此可以提早剔除将会故障的扇区,提供更安全、稳定的硬盘环境,更进一步降低风险。
Ÿ 文件系统线上检查系统 (Online File System Check),一般的文件系统检查都必须在离线状态下才能进行(例如 fsck 和 scandisk),不仅需要漫长的等待时间,更造成服务的中断,文件系统容量越大时,服务停顿的时间就越长。为避免任何可能造成文件系统错误的因素,同时避免因着检查而让服务中断,WAFL具有独步全球的线上进行文件系统检查的能力,进行检查时仍可正常提供资料服务,达到同时兼顾安全、不带来服务停顿的效果。
RAID技术原来分为RAID 1到RAID 5 等几级。最常使用的是RAID 1,3和5。
RAID 0,过去一些人使用其来指磁盘条带化,它基本上是没有校验盘的RAID 4机制。由于磁盘条带之间没有数据冗余,使用RAID这个名词容易引起误解。
RAID 1是简单的磁盘镜像。所有数据在两个单独的盘上重复存在。RAID 1十分安全,但加倍了磁盘存储的成本。
RAID 3是与RAID 4类似,在每组盘中使用单一的校验盘,但是RAID 3中条带划分较小,使得每一个操作都要跨越阵列中所有的磁盘。例如,一个块数据中的第一个字节可能在第一个盘上,第二个字节在第二个盘上,诸如此类。 RAID 3经常处于磁头同步状态以减少等待时间,RAID 3适于单一大文件以高数据率进行读写的应用,诸如超级计算机和图形图像处理。 对于多用户并行发起众多互不相关磁盘操作的应用则不适宜。作为对比, RAID 4盘组中的每一个数据盘都可以同时满足一个单独用户的请求。
RAID 5与RAID 4类似,但与RAID 4拥有独立校验盘不同,RAID 5在阵列中所有磁盘上存储校验信息。RAID 5的主要的优势在于它可以防止校验盘本身成为读写瓶颈。主要的缺点是不能方便的将一块新磁盘添加到现有的RAID组中。如果要向已有的磁盘组中加入新盘,必须加入一个新的磁盘组。如果一个RAID 5盘组采用8个盘构成,那么新加磁盘必须以8个为一组,一次性添加。
NetApp Filer使用WAFL Optimized intelligent RAID 4(增强型RAID 4) 提供硬盘保护机制。传统的RAID 4、 RAID 5中对文件系统的结构与应用考虑的并不是很多。NetApp采用的增强型RAID4与以上介绍的WAFL文件系统结合非常紧密,并经过了专门的优化。通过同时优化文件系统与RAID机制,NetApp RAID在提供RAID保护机制的同时,没有带来类似RAID 5的性能损耗。 同时,RAID结构可以迅速、简便的加以动态扩充。
通过增强型RAID 4,如果一块磁盘上的一个数据块损坏,盘组中的校验盘将重新计算该数据块上的数据。并且该数据块将被映射到磁盘中新的位置上。如果某个磁盘整体损坏,校验盘能防止任何数据丢失。当替换损坏的磁盘时,校验盘被将自动重新计算其内容。
增强型RAID 4阵列在同一个盘组中使用一个磁盘作为校验盘,其它作为数据盘。 每个磁盘均划分为4KB大小的数据块。一道磁盘条带包括每个数据磁盘的一个数据块和校验盘的数据块。条带中任意一个数据块的数据丢失,均能通过校验计算重新得出。
图 5:增强型RAID 4 磁盘布局
以上图片数字展示了Filer中的增强型RAID4阵列中的条带是如何划分的。我们可以通过简单的数学运算模拟RAID机制。如:
校验数据 数据1 数据2 数据3
12 3 7 2
如果数据盘之一失败,例如“数据2”,数据然能通过简单的算术计算重建:
数据2 = 校验数据-数据1-数据3
= 12 - 3 - 2
= 7
实际上,RAID系统中不是采用加减运算,而是采用异或运算来实现RAID功能。 但是如果一个条带中出现两处错误,则无法用这种方法重新计算出所有数据。需要依靠下文介绍的NetApp专利技术—RAID DP。
面向UNIX和Windows等操作系统的RAID外围设备厂商较少采用RAID 4,因为在通用文件系统下,RAID4校验盘容易成为瓶颈。但是WAFL文件系统利用其灵活的“任意位置写入文件布局”特性,继承了RAID 4固有的优势,并且避免了其校验盘瓶颈,最大限度的发挥了RAID 4的效率。
WAFL不同于通用文件系统的一个例子是,伯克利快速文件系统(FFS)设计中专门为一次写入一个文件做了优化。结果是可以为不同的文件把数据块散布到磁盘的不同位置上。 下图左半部显示了FFS如何为不相关的三个文件分配RAID阵列空间。当例子中每块数据盘仅仅写入2次时,校验盘要做6次写入。 更重要的是,校验数据写入分布过于分散,导致磁盘寻道时间消耗。
图 6:伯克利快速文件系统(FFS)和 WAFL文件系统写入空间分配特点
由于通用文件系统,如上图所示的FFS,并不是专门为RAID 4文件布局设计的,它趋向于散布写入数据盘,引发校验盘的过度寻址操作,从而带来瓶颈。
而 WAFL文件系统的设计方式确保能够最大限度地减少校验盘寻址操作。 上图右半部对比显示了WAFL如何分配同样的数据块,从而使得RAID 4更加有效。 WAFL总是把相关的数据块写到彼此邻近的条带中,消除校验盘上的长时间寻址操作。只要可能,WAFL也把多重数据块写到同样的条带中,从而进一步减少校验盘上的阻塞。FFS在上图左半部中使用六道独立的条带,因此致使六个校验盘块需要更新。 上图右半部中,WAFL使用仅仅3道条带,即只有三个校验块需要更新。从而大大提高了RAID性能,消除了校验盘瓶颈。
传统的单一奇偶校验RAID技术,能为单个故障磁盘驱动器提供保护。需要警告的是,在重建故障磁盘时必须确保不能发生其他磁盘故障,而且不能在读操作过程中出现不可修复的误码。如果在重建过程中出现上面任何一种事件,那么保留在RAID阵列或卷中的部分或所有数据就可能会丢失。随着现代更大的磁盘存储介质的出现,由于磁盘容量显著增加,而误码率仍是原来的水平,这就使得出现不可修复的误码的可能性相当高。因此,传统的单一奇偶校验RAID保护数据的方法已经超出了其保护极限。更高一级的RAID数据保护已经发展到RAID双奇偶校验,也称作RAID DP,它可以应用于整个网络应用数据存储产品线。
从DATAONTAP™ 6.5版开始,NetApp推出了双奇偶校验RAID,叫做RAID DP。本文给出RAID DP的概览和RAID DP如何在各种磁盘故障情况下动态提高数据的容错性。其他所涉及的关键领域包括RAID DP的费用是(它是免费的)、特殊硬件要求(无),以及如何将现存的RAID4卷升级到RAID DP(非常容易)。这里将借助对双磁盘故障的恢复情形来说明RAID DP如何做到允许卷既能不间断地提供数据,又能同时对两块故障磁盘上损失的数据进行重建。
在最基本的层面上,RAID DP为卷中的每个RAID组增加了第二个奇偶校验磁盘。 RAID组是建立卷的基本结构。每一个传统的NetApp RAID4组都有一些数据磁盘和一个奇偶校验磁盘,而一个卷通常会包括一个或多个RAID4组。 而RAID4卷上的奇偶校验磁盘则通过RAID4组上的磁盘对行奇偶校验进行存储,额外的RAID DP奇偶校验磁盘则通过RAID DP组上的磁盘存储对角线上的奇偶校验。 通过RAID DP上的这两个奇偶校验条,(一个传统的水平奇偶校验和一个对角线奇偶校验,即使同一RAID 组上的两个磁盘发生故障时也能得到数据保护。
在RAID DP中,仍然使用了传统的RAID4水平奇偶校验结构,并且这种结构已成为RAID DP结构的子集 换句话说,RAID DP并没有改变RAID4在NetApp存储上的工作方式。数据通过每一行的奇偶校验计算被写入水平行,并被视作双奇偶校验中的行,这个同样的过程仍会保留到RAID DP中。实际上,如果是单一磁盘故障,或是从坏数据块中的读取错误,或者出现误码,那么RAID4的行奇偶校验方法就是进行数据恢复的唯一手段,无需采用RAID DP。在这种情况下,RAID DP的对角线奇偶校验组件仅仅是行奇偶校验组件周围的保护层。
RAID4水平行奇偶校验
下列图表说明了在传统NetApp RAID4解决方案中使用水平行奇偶校验的方法,也是您了解RAID DP和双奇偶校验的第一步。
图 7:RAID4水平行奇偶校验
图表代表了传统的RAID4 组,使用包括4个数据磁盘(前4列,标注为“D”)和一列奇偶校验磁盘(最后一列,标注为“P”)的单向奇偶校验。上面图表中的行显示了实施传统NetApp RAID4时使用的标准4KB块。 上面图表中的第二行在每个4KB 块和行中数据的奇偶校验计算中添加了一些样例数据,随后存储在奇偶校验磁盘上相应的块中。 在这种情况下,计算奇偶校验的方式是向每个水平块中添加值,然后将这些值的和存储为奇偶校验值(3 + 1 + 2 + 3 = 9)。实际上,奇偶校验是通过专门的OR(XOR)过程进行计算,但其它情况也与此例非常相似。如果需要从单一故障中重建数据,则产生奇偶校验的过程将与此相反。 例如,当RAID4 恢复上面第一列的数据值3时,如果第一个磁盘发生故障,就会从奇偶校验中存储的值中减去剩余磁盘上的值( 9- 3 – 2 – 1 = 3)。 这个通过单一奇偶校验RAID重建的例子,应该有助于从概念上理解为什么能够对单一磁盘故障提供数据保护。
添加RAID DP双奇偶校验条
下表将一个以蓝色阴影块表示的对角线奇偶校验条和一个在第六列中以“DP”表示的第二个奇偶校验磁盘添加到前面的RAID4 组中。这表示RAID DP结构是RAID4水平行奇偶校验解决方案的超集。
图 8:RAID DP双奇偶校验条
在这个例子中对角线奇偶校验条通过相加的方法计算,并且存储在第二个奇偶校验磁盘上,而不是上面所说的实际使用的XOR(1 + 2 + 2 + 7 = 12)。此时,需要注意的最重要的问题是,对角线奇偶校验条包括一个来自行奇偶校验的元素作为其对角线奇偶校验和的一部分。RAID DP将把最初在RAID4结构中的磁盘(包括数据和行奇偶校验磁盘)视作相同的磁盘。下一个图表为每个块加入了余下的数据,并且建立了相应的行和对角线奇偶校验条。
图 9:RAID DP
从上图可以明显看出,在RAID DP中,对角线奇偶校验条都在行奇偶校验结构的边缘。在这个例子中,对于RAID DP对双磁盘故障进行恢复的能力,有两种重要情况可能不是很明显。第一种情况是,每一个对角线条会错过唯一的一个磁盘,但是每个对角线错过的磁盘都不一样。第二种情况的结果是,在第二个对角线奇偶校验磁盘上会产生或存储一个没有得到奇偶校验的对角线条。 在这个例子中,被遗漏的对角线条是白色的块。在之后的重建例子中会明显的看出,遗漏一个对角线条不会影响RAID DP在双磁盘故障中恢复所有数据的能力。
值得重视的是,在本例中介绍的许多同样的RAID DP对角线奇偶校验都是真实的存储情况;其中涉及到在RAID组中的许多磁盘上,以及通过 RAID4组水平写入成数百万的数据行。并且,通过上面较小的例子我们很容易地例证了RAID DP,而且不管RAID 组中的有多少磁盘,对于大尺寸的RAID组,其恢复情况也与此相同。
由于RAID DP可以通过两种方式对双磁盘故障进行所有数据的恢复:一种是使用数学原理并进行证明,另一种则是简单地通过双磁盘故障并随后进行恢复。 本文将使用后面的方法来证明RAID DP的双奇偶校验保护的概念。使用数学原理和证明的方法,超出了本文对RAID DP的叙述范围,但我们在另外一篇文章中单独进行了描述,而且即将在NetApp的外部网站上发布。
RAID DP的重建
我们使用最近的图表开始介绍双磁盘故障。假定在发生双磁盘故障时,RAID组运行正常。在下表中,第一、二列中的所有数据都丢失了。
图 10:RAID DP的重建(1)
当发生双磁盘故障之后,RAID DP首先会寻找一个链来开始重建。在本例中,我们用蓝色的对角线奇偶校验条来显示其所发现的链。不要忘记,当在RAID4下为单一磁盘故障重建数据时,只有在丢失的元素不超过一个时,这种情况才会发生。记住这一点之后,我们可以看到上图中蓝色对角线条中只丢失了五个块中的一个。借助五个元素中仍然存在的四个,RAID DP能够获得所需的全部信息,来重建蓝色丢失块中的数据。接下来的图表反映了这些数据被恢复到空闲的磁盘上。
图 11:RAID DP的重建(2)
从丢失的蓝色对角线块中重建数据时,使用了前面介绍的算法(12 – 7 – 2 – 2 = 1)。现在,丢失的蓝色对角线信息已经被重建,恢复过程从使用对角线奇偶校验转换至使用水平行奇偶校验。特别是,蓝色对角线之后的顶端的行重建了丢失的对角线块,而没有足够的信息从行奇偶校验中重建单个丢失的水平块(9 – 3 – 2 – 1 = 3)。这种情况出现在下列图表中。
图 12:RAID DP的重建(3)
RAID DP接下来继续处于同样的链中,以决定是否能够重建其他的对角线条。上面左方的块被行奇偶校验重建,使得RAID DP现在能够重建灰色对角线条中相对的对角线块,如下图所示。
图 13:RAID DP的重建(4)
再一次,当RAID DP恢复了对角线条中相对的对角线块后,它就有了足够的行奇偶校验信息,来重建第一列中丢失的水平块,接下来的图表中例证了这个情况。
图 14:RAID DP的重建(5)
与我们前面所注意到的一样,白色对角线条没有被存储,现存的链中也没有额外的对角线块能够重建。RAID DP将开始寻找新的链以开始重建对角线并且,基于这个例子,决定了其能够重建黄色对角线条中丢失的数据,如下图所示。
图 15:RAID DP的重建(6)
在RAID DP重建了丢失的对角线块之后,这个过程再次从行奇偶校验转换至重建丢失的水平块。当黄色对角线中丢失的对角线块被重建后,可以得到足够的信息重建行奇偶校验中丢失的水平块,由下图可以明显看出。
图 16:RAID DP的重建(7)
水平行中丢失的块被重建之后,重建转换回对角线奇偶校验以创建丢失的对角线块。RAID DP能够继续处于当前的对角线链中如下图所示。
图 17:RAID DP的重建(8)
同样,在对角线块恢复之后,因为有足够的信息重建一个水平块信息,这一过程将会转换回行奇偶校验。接下来是双磁盘故障情况的最后一个图表,通过RAID DP所有的数据都被重建了。
图 18:RAID DP的重建(9)
RAID DP卷的性能可以与RAID4相媲美。每种类型的RAID的读操作几乎一样。RAID DP的写操作性能要比RAID4慢2%到3%。造成性能微小差距的原因是RAID DP卷上的第二个对角线奇偶校验磁盘会出现额外的写操作。 相对于RAID4,运行RAID DP时CPU的利用率并无明显差别。
信息是公司最宝贵的资产,因此确保信息的安全和可用性是优先考虑的重要任务。为了最大程度体现信息的价值,必须保持信息始终是最新的,以便向决策者提供开展业务所需的知识,提高运营效率,加强客户关系,发掘新的市场机遇。如果无法访问最新的信息,组织就无法根据当今经济发展的要求迅速应变,从而在竞争中处于十分不利的局面。
NetApp SyncMirror 确保您的数据在任何时候都可用并且是最新的。SyncMirror 通过联机维护两个数据副本,保护您的数据不受到任何类型的硬件故障包括三磁盘故障的影响。在与 NetApp Clustered Failover 高可用性解决方案一起使用时,SyncMirror 使您可以获得最高的数据可用性,这一程度的数据库可用性以前只能通过大型机体系结构才能获得。此外,NetApp 解决方案易于管理并经济合算,提供无与伦比的投资回报率。
具有完全冗余性的最高的数据可用性
SyncMirror 在您的镜像数据的两个副本之间保持严格的物理分隔。在出现无论是由磁盘问题、缆线断线还是主机总线适配器 (HBA)引而发的故障时,SyncMirror 都可以即时访问镜像的数据,而操作员不必干扰或中断客户端应用程序的运行。业务连续性得以确保,并且您可以找到造成问题的原因并解决问题,而不必中断您的运营,避免代价高昂的停机时间。
特点
优点
同步复制
确保数据副本始终是最新的并且可用于您的本地数据中心。
透明的操作
使所有应用程序都可以访问同步复制的数据,而不需要编程或更改系统。
与 Clustered Failover 集成
通过自动故障转移提供完全硬件冗余性,以提供最高的数据可用性。
表 2:SyncMirror的特点和优点
灵活、高效并易于使用
SyncMirror 与 Data ONTAP™无缝集成。您管理镜像数据 方式可以和管理 Filer 上其它数据的方式相同。 除了提供最高的数据可用性之外,SyncMirror 还使您可以通过简单的命令分离数据副本,以便镜像的数据可由其它应用程序使用。 这向您提供了使用最新生产数据进行备份、应用程序测试和数据查找的绝佳的解决方案。您可以使用镜像的数据执行这些后台任务,而不会影响您的生产环境并同时提高工作效率。
图 19:SyncMirror 与 Clustered Failover
将 SyncMirror 与 Clustered Failover 配置中的 Filer 一起使用来复制数据,可提供最高的数据可用性、完全冗余性和自动故障切换功能。
Ÿ 最高的数据可用性
Ÿ 完全冗余性
Ÿ 最新的镜像
Ÿ 自动故障切换
Ÿ 对应用程序是透明的
Ÿ 灵活且简便
图 20:SyncMirror 与单个 Filer
将 SyncMirror 与单个 Filer 一起使用来复制数据,可以用最新的镜像创建冗余的存储子系统,从而提供高数据可用性。
对于RAID-DP,需要如下的配置:
Ÿ FAS900 ;FAS200;R200;F800系列硬件平台
Ÿ Data ONTAP™ 6.5 及更高版本
对于SyncMirror,需要至少如下的配置:
Ÿ FAS900 系列硬件平台
Ÿ Data ONTAP™ 6.5 及更高版本
Ÿ SyncMirror软件