|
|
第一章 RAID Overview
目标: 通过本章学习,你将掌握如下: l 辩识每个RAID级别的存储特性 l 列出每个RAID级别的优点和缺点 l 选择一个最佳RAID执行级别来支持给定的存储环境 l 定义和区别高性能和容错性
管理多个磁盘l 更有可能出现磁盘失败l 文件系统的划分l 更长的启动时间
管理多个磁盘 今天的服务器比从前配置了更多的磁盘。使用多磁盘会使用系统管理员产生更多的问题。 l 更有可能出现磁盘失败 因为磁盘数量的增加,所以它们中间的一个更有可能失败。MTBF值会降低(Mean Time Between Failurs) l 文件系统的划分 文件系统的大小被限制在1Tbytes。当使用更多数量的磁盘,一个文件系统可能会跨越多个磁盘 l 更长的启动时间 在系统的一次崩溃(crash)之后,一个带有很多活动磁盘的系统将会在进行fsck修复时占用大量的甚至无法接受的时间。
管理数据的大量设置(Managing Large Sets of Data)l 减少管理的文件系统数量l 减少因磁盘失败而造成的数据不可用l 有效的通过磁盘来平衡I/O负载l 在启动时移除需要检测的文件系统l 允许文件系统在使用时增加它的大小l 提供一个GUI接口l 允许双主机使用冗余磁盘进行failover配置 数据挖掘交友
管理数据的大量设置 当管理数据的大量设置时: l 减少必须被管理的文件系统的数量 如果一个文件系统大于一个物理磁盘,不需要将这个逻辑文件系统缩小成多个小文件系统来适合这个磁盘。减少要管理的文件系统数量(加载,备份等),减轻系统管理员的负担。 l 减少因磁盘失败而造成的数据不可用 系统中磁盘数量的增加可能会使得磁盘失败。数据冗余技术能够阻止失败的磁盘所造成的数据无效。 l 更有效的通过磁盘来平衡I/O负载 平衡I/O负载可以提高I/O的总体性能 l 在启动时移除需要检测的文件系统 在启动时执行文件系统的检测(使用命令:fsck)是很耗费时间的。移除需要执行检测的文件系统将会使系统在一次崩溃(crash)之后提供更快的数据有效性 l 允许文件系统在使用时增加它的大小 允许文件系统在使用时增加它的大小减少了系统的down机时间,同时也减轻了系统管理员的负担。(不需要进行备份/恢复) l 通过提供一个图形用户接口(GUI)完成复杂的操作简便了管理 管理大量的磁盘和文件系统是复杂的,一个直观的GUI简化了操作并使得管理的工作变得简单 l 允许双主机使用冗余磁盘进行failover配置 在一个双主机failover配置中,一个主机可以”take over”磁盘管理在另一个主机失败时。这阻止的失败主机所产生的数据不可用。
管理数据的技巧l 结合GUIl 串联l 扩展文件系统l hot sparesl 磁盘条带l RAID 5l 磁盘镜像l 磁盘集(Disksets)l UFS日志
管理数据的技巧 Solstice DiskSuite提供以下管理数据的功能 l 结合GUI GUI更直观且更容易使用 l 串联 2个或多个物理设备复合成一个单独的逻辑设备允许一个文件系统的大小超过一个物理磁盘,减少了必须被管理的文件系统数量,并允许增容文件系统(一个附加的物理设备可以被串联) l 扩展文件系统 在一个UNIX文件系统加载时,增加它的大小而不中断数据的访问(允许读/阻止写 直到完成growfs操作),减少了系统的down机时间并减轻了系统管理员负担(不用备份/恢复) l Hot Spares 在镜像或RAID设备中,自动替换失败部分,减少了系统的down机时间并减轻了系统管理员负担(磁盘可以方便的时候替换) l 磁盘条带 数据交错的位于多个物理设备来提供数据的冗余并平衡I/O负载 l RAID 5 数据和奇偶校验交错的位于多个物理设备来提供数据的冗余并平衡I/O负载 l 磁盘镜像 数据的多个拷贝保存在不同的物理磁盘上,这样,一旦发生磁盘失败,数据仍然有效 l 磁盘集 共享的磁盘集(shared),包括逻辑设备(metadevice)和hot spares,可以由2个主机专有共享,允许主机的failover解决方案 数据挖掘研究院 l UFS日志 UNIX文件系统的更新在他们被应用前被记录在一个日志文件中。因为不需要再检测文件系统,这加速了在一次崩溃后的重启动时间,并减少了同步磁盘写的数量。 如图1_1
通常RAID的执行l 廉价磁盘冗余阵列的标准(RAID)l 是在80年代后期由Berkeley的California大学开发的l 与传统的单个的,大而昂贵的磁盘(SLED)相比花费更少l Solstice DiskSuite提供4种RAID级别
通常RAID的执行 RAID是廉价磁盘冗余阵列的缩写,近期来说,也可以说是独立磁盘的冗余阵列。 RAID的定义是在1987年由Berkeley的California大学的David Patterson, Garth Gibson, and Randy Katz介绍的。
RAID级别 5个RAID级别将在这里讨论: l RAID 0:条带/串联 l RAID 1:镜像 l RAID 0+1:条带+镜像 l RAID 3:带有专用奇偶校验的条带 l RAID 5:带有分布奇偶校验的条带
以下4个部分介绍了RAID 0, 1, 0+1, 3, 5的概述,对于RAID 3的讨论做了 一个完整的概括,但它不被Solstice DiskSuite和Veritas Volume支持。
串联----RAID 级别 0l 多个物理磁盘被复合为一个单独的虚拟磁盘l 地址空间是连续的l 没有数据冗余l 一个成员的数据丢失会导致所有数据的丢失 数据挖掘交友
串联----RAID 级别 0 当应用需要大量的数据区时这个功能是有用的。它复合了多个物理磁盘片来创建一个大的metadevice。数据的组织是连续的,并且通过磁盘片来调整,形成一个逻辑存储单元。 串联磁盘有以下功能: l 多个物理磁盘复合成一个单独的虚拟磁盘,这样可以提供一个比单独的物理磁盘还要大的大型的虚拟卷。 l 地址空间是连续的,在移动到下一个虚拟卷的物理成员之前,这个物理成员上的所有地址空间都将被填满。 l 使用这种方式没有数据冗余,如果任何一个虚拟集的成员无效,所有数据都会丢失。
如图1_2所示,显示了3个物理磁盘的串联。 阵列管理软件的功能就是通过串联复合这3个物理磁盘设备成一个虚拟 磁盘,并将其表示给应用。 使用这种技术的主要原因是创建一个大于单独物理磁盘的虚拟磁盘。串 联也允许你通过串联一个附加的物理磁盘,来增加一个虚拟磁盘的容量。 串联可以增加随机的I/O性能,因为数据是通过多个磁盘线性伸展的。在这种方式下,没有数据保护。 l 写性能是相同的,如果是随机读的话,可以提高读性能 l 可以为用户数据提供100%的磁盘容量 l 没有冗余 l 串联的可靠性比较低,一个磁盘的数据丢失将最终导致所有磁盘的数据丢失 数据挖掘交友 虚拟磁盘的同义词,在SDS中,一个虚拟磁盘是一个metadevice。在VM 中,一个虚拟磁盘被称为一个卷。
条带----RAID 级别 0l 以相同大小的块(chunks)通过多块磁盘替换数据流l 提高了每秒I/O的性能(IOPS)l 降低了可靠性 条带----RAID 级别 0 这个功能通过2个或多个片来交替相等大小的数据段,构成一个逻辑存储单元。 条带化磁盘 l 在多个磁盘中以相同大小的块替换数据流 l 提高了I/O每秒的性能(IOPS) l 降低了可靠性
如图1_3,显示了3个磁盘的条带化,条带化(Striping)是一个术语,用来 划分一个数据流并在多个磁盘以相同大小的块来替换它。每个块被写入到阵列中连续的驱动器上。顺序块的设置以第一个驱动器为开始,以最后一个驱动器为结尾组成一个条带。图1_3中,条带的宽度为3,块1,2和3组成了一个单独的条带。 阵列管理软件的责任是使这个阵列看上去象一个单独的虚拟磁盘。它对多个物理磁盘分块并复合它们为一个虚拟磁盘并表示给应用。 这个技术的主要原因是提高I/O每秒的性能(IOPS),它不提供数据保护,实际上,这种方式是条带化执行的。丢失一个磁盘上的数据会导致所有磁盘上的数据丢失。它提高了系统性能,但降低了可靠性。
条带如何提高性能 数据挖掘论坛 l 如果数据流的写入大于一个块(chunk)大小,多个块(chunk)可以被并行写入。 l 块大小可以优化顺序或随机访问 l 对于用户的数据来讲,磁盘容量是100%可用的 l 没有冗余
-------------------------------------------------------------------------------------------------- 警告----条带的可靠性较低,一个磁盘数据的丢失会导致所有条带磁盘的数据丢失 --------------------------------------------------------------------------------------------------
镜像----RAID 级别 1l 在一个或多个磁盘上的完全冗余的数据拷贝l 降低了写性能l 提高了读性能
镜像----RAID 级别 1 这个功能通过同时对2个或多个磁盘进行数据的写入来防止组件失败。任何文件系统都可以被镜像,包括 / , swap , 和/usr 镜像的磁盘有以下的特点: l 在一个或多个磁盘上有完全冗余的数据拷贝(每兆的磁盘空间需要双倍的花费) l 所有写被复制暗示着写性能的降低 l 2个驱动都可以被读取来提高性能
如图1_4所示,RAID级别1(镜像)通过多次记录数据在独立spindle上来提 供数据冗余。一个独立的控制器可以被用来镜像磁盘,增加到数据保护结构中。 数据挖掘研究院 阵列管理软件对位于多个物理磁盘上的数据进行复制拷贝,并表现给应 用一个虚拟磁盘。 镜像的性能在某些时候会比标准磁盘执行时的读性能要好些(可以从2个 磁盘读取数据),但是,降低了写性能(必须要写2次)。同时,每兆字节的花费将会增加(多个分区进行镜像)。
磁盘镜像的总结如下: l 读性能可能会提高,但写性能会降低 l 镜像与一个标准的磁盘系统相比,执行的花费更高,镜像需要双重的存储花销 l 一旦发生失败,应用可以继续使用余下的镜像,达到接近完整的性能 l 从一个失败的磁盘进行恢复,是复制失败磁盘的镜像的内容到一个新磁盘
条带和镜像----RAID 级别 0+1l 条带和镜像l 可靠的镜像l 条带的性能
条带和镜像----RAID 级别 0+1 条带和镜像----RAID 级别 0+1,结合了镜像的可靠性和条带的性能。 通过结合镜像和条带,提供了较高级别的可靠性和性能(但需要较高的花 销)。
如图1_5所示,2个驱动器,先进行条带,然后进行镜像。 l RAID 0+1系统既提高了条带的性能也提高了镜像的可靠性 l RAID 0+1系统是高花销的镜像系统,需要2倍的完全独立的spindle l RAID 0+1系统可以容许任何单一磁盘的失败,在不影响性能的情况下继续对数据的使用 数据挖掘研究院
带有专用奇偶校验的条带----RAID 级别 3l 提供带有专用奇偶校验的条带l 通过一个磁盘组来条带化数据l 每组的一个磁盘被专用于奇偶校验l 奇偶磁盘保护组中任何失败的磁盘l 所有磁盘同时的读或写
带有专用奇偶校验的条带----RAID 级别 3 不像以前定义的镜像结构,RAID 3不需要一个复制的磁盘集来提供数据保护。它使用一个单独的磁盘来对预先设置的数据磁盘集提供奇偶校验。如果一个数据磁盘坏了,丢失的数据可以通过使用奇偶校验信息来计算丢失数据的值。
如图1_6所示,RAID 3的配置有以下的物性: l 数据通过所有数据磁盘的spindle被条带化。数据磁盘上没有奇偶校验信息 l RAID 3使用一个专用的奇偶校验磁盘,来保护组中任何一个磁盘的失败。在数据磁盘上执行异或(XOR)操作,并将结果存储在奇偶校验磁盘中 l 带宽等于n-1个磁盘的转换速率。所有磁盘同时进行读或写,然而,单独的chunk随机的I/O降低了RAID组中每个单独磁盘的性能 l RAID 3提供了较好的连续的传输速率,但是降低了随机I/O的性能
因为RAID 3对于每个I/O请求都调用组中的每个磁盘,组的随机IOPS性 能以组中最慢速的磁盘性能为主。然而,这个执行也提供了组中所有spindles复合带宽的优点。这对于请求大量带宽的应用是非常有帮助的,如图形加速程序,但对于大量的随机IOPS则没有太大好处。(RAID 3对于随机的IOPS性能没有帮助) 数据挖掘工具 异或(XOR)可进行交换并结合,如下等式: Cp=(C1•C2•C3) and C2=(C1•C3•Cp)
l 如果奇偶校验磁盘失败,操作会继续并且不会带有性能损失(但将会没有冗余),如果一个数据磁盘失败,数据仍然有效,但它必须要从剩余的数据磁盘和奇偶校验磁盘进行计算。 l 恢复包括从剩余的磁盘读取数据,执行唯一的OR,并将结果写入到替换的磁盘
查看图1_6,块7,8和9的存储位置,奇偶校验存储在哪个位置。
带有分布式奇偶校验的条带----RAID 级别 5l 提供带有分布式奇偶校验的条带l 奇偶校验和数据都将被整个组的磁盘条带化l 失败的概率要低于那些使用专有奇偶校验的驱动l 每个磁盘可以被独立读取
带有分布式奇偶校验的条带----RAID 级别 5 RAID 5通过分布式奇偶校验结构执行数据的保护。但是,它避免了磁盘同步的需求并且全部的随机IOPS性能要好于RAID 3。它可能会依据于所使用的块大小(chunk)来提供一个较好顺序IOPS性能。 RAID 5配置有以下物性: l 奇偶校验和数据都将被整个组的磁盘条带化 l 失败的概率要低于那些使用专有奇偶校验的驱动 l 奇偶校验磁盘保护任何掸量磁盘的失败 l 每个磁盘可以被独立读取
如图1_7所示,说明了一个RAID 5存储结构的分布式奇偶校验功能。其 数据挖掘工具 中一个最好的奇偶校验分布结构被称为“左对称奇偶校验分布式”(left-symmetric parity distribution )。如图1_8所示,当使用这个结构时,条带单元被顺序访问,在任何磁盘被访问2次之前,每个磁盘至少被访问过一次。
附加RAID 5的功能 附加RAID 5的功能主要包括: l 对每个独立磁盘的独立访问 l 每秒钟的读数量可以达到独立磁盘速率的磁盘个数倍 l 单独chunk的写入请求需要4个磁盘操作 n 读取旧数据 n 读取旧奇偶校验 n 计算新的奇偶校验 n 写入新数据 n 写入新奇偶校验 l 全部的I/O性能依赖于写的百分率 l 在一个磁盘失败后进行数据访问导致的性能影响: n 从一个继续存在的驱动中读取数据----没有改变 n 从一个失败的驱动读取数据----在条带中继续存在的驱动的chunk被读取和链接,并对取得的数据进行异或操作(XOR) n 写入一个继续存在的驱动----如果失败的磁盘保存有奇偶校验值,写入的进程通常不会计算奇偶校验值。如果失败的磁盘保存有数据,则请求执行一个读---修改---写的顺序操作。 n 写入一个失败的驱动----所有剩余数据磁盘的所有数据与新数据通过使用XOR进行连接,这个结果将写入到奇偶校验驱动。
高可用性和失败容许(High Availability and Fault Tolerance)l 高可用性系统(HA)可以在绝大多数时间提供对数据的访问并维护这些数据的完整性l 失败系统(FT)提供数据的完整性及连续数据的可用性l HA和FT通过发布的功能花销和设计是相互独立的 数据挖掘论坛
高可用性和失败容许 除了要管理日益增加的大量的磁盘外,系统管理员也必须确保用户对这些数据进行必须的访问,使用最小的中断(或无中断)来维护对数据的访问是实际上所有企业的要求。 l 高可用性----一个系统可以在绝大多数时间提供对数据的访问并维护这些数据的完整性,可以被称为是高可用性系统(HA)。中断一个高可用性的系统通常不会超过几分钟 l 失败容许----一个系统可以提供数据的完整性及连续数据的可用性,可以被称为是失败容许系统(FT)。硬件中断一个失败容许系统不会导致数据的不可用。 l 高可用性VS失败容许----这两个功能通过发布的功能花销和设计是相互独立的
|