第一章 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上来提