Chinaunix首页 | 论坛 | 博客
  • 博客访问: 171056
  • 博文数量: 57
  • 博客积分: 2648
  • 博客等级: 少校
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-09 20:04
文章分类

全部博文(57)

文章存档

2007年(7)

2006年(50)

我的朋友

分类: 服务器与存储

2006-09-04 13:02:03

终于在大家的支持,偶完工了,
昨天的时候,翻了翻,不好意思,
发现还有错误地,如果偶翻的不对之处,
大家见谅,也真心希望这东东能对大家的工作和学习有所帮助,
好了,这是最后一章了!



第九章 RAID Manager Architecture
目标
                通过本章学习,你将掌握:
l        讨论RAID Manager软件的功能和优点
l        定义术语:
n        逻辑单元(Logical unit)
n        驱动组(Drive group)
n        RAID 模块(RAID module)
l        讨论hot spare的使用
l        描述数据的重建过程
l        描述RAID Manager设备的命名规则
l        定义缓存控制参数


RAID Manager的组件和功能l        主要组件l           用户接口l           RM引挚l           冗余双活动控制(RDAC)驱动器l        RM功能l           Solstice DiskSuite兼容功能l           Veritas VM兼容功能l           不被支持的功能

RAID Manager的组件和功能
                这部分主要讨论RM软件的一些术语:
l        主要组件
n        用户接口
n        RM引挚
n        冗余双活动控制(RDAC)驱动器
l        RM功能
n        Solstice DiskSuite兼容功能
n        Veritas VM兼容功能
n        不被支持的功能

RAID Manager的组件
        如图9_1说明的那样,RM软件主要有3个主要组件
l        用户接口
可以是GUI的也可以是CLI的,它们都可以用来进行阵列配置,监视和维护
l        RM引挚
RM引挚运行在主机服务器上,是介于用户接口和Solaris内核的RM的连接
l        RDAC驱动
RDAC驱动是内核级别的驱动,当一个控制器失败时,它允许自动的failover到第二个控制器上。RDAC驱动逻辑上位于Solaris内核的SCSI驱动之上。
这与DMP不同,DMP有2个同时活动的路径,指向每个控制器。而RDAC,每个控制器都访问相同的SCSI驱动。然而,当到一个控制器的路径失败时,启用第二条路径。它的定义是:可以映射一个物理驱动集合的逻辑驱动器可以failover到另一个可选择的第二个控制器上。



        RM的功能

l        虚拟磁盘
虚拟磁盘是一个逻辑组,由一个或多个物理磁盘组成,但对于操作系统,应用和用户而言,则表现为一个设备
l        条带
它是一起分组多个磁盘的能力。在磁盘间使用交叉寻址方式
l        镜像
保存数据的多个拷贝。在Solstice DiskSuite(SDS)中,每个拷贝被称为一个子镜像(submirror);在Veritas VM中,每个拷贝包含在一个plex中
l        RAID 5
数据由奇偶校验保护,奇偶校验值散布在数据间
l        hot spare
磁盘/分区可以替换失败的磁盘/分区,数据在hot spare上被重建。在SDS中,hot spare不是永久的;他们返回到hot spare池。在VM中,它们是永久转换的。

l        磁盘分组
RM6有驱动组,它从定义的逻辑驱动里提供了驱动池。在主机间,驱动组不能被导出。
       
--------------------------------------------------------------------------------------------------
注意----在Solstice DiskSuite中,这被称为磁盘集。在Veritas VM中,它被称为磁盘组。它们与RM6驱动组的不同在于它们可以在主机间移动磁盘组,它是高可靠性的解决方案。
        --------------------------------------------------------------------------------------------------
               
l        GUI
支持一个图形用户接口
l        空闲空间管理
因为RM6是基于物理分区的,决定可用性是比较容易的。使用VM,则拥有主机中的所有位于磁盘尾部的空闲空间


定义l        RAID模块(RAID module)l        驱动组(drive group)l        逻辑单元(LUN)l        磁盘组的排号(disk group numbering)l        hot spare驱动(hot spare drive)

RM的定义

因为一些术语在存储界被重复使用,你需要学习一些也RM相关的通常的存储术语定义,它们是:
l        RAID模块(RAID module)
l        驱动组(drive group)
l        逻辑单元(LUN)
l        磁盘组的排号(disk group numbering)
l        hot spare驱动(hot spare drive)

RAID模块

        一个RAID模块被定义为一个控制器,磁盘,相关的电源支持和冷却单元的集合,换句话说,StorEdge A3000或A1000是一个RAID模块
        当执行多种管理任务时,选择RAID模块,如配置,获取状态,或恢复等。
        RAID模块的号码以主机系统识别它们的顺序被分配,并在RAID模块的名字中使用主机名;如,mars_001, mars_002等。



磁盘组

一个磁盘组是在一个特定RAID模块中的物理磁盘的集合。磁盘组定义了一个空闲池,在这里所有的空闲卷都处于一个RAID级别,磁盘组的RAID级别。另外,当主机系统通过2个控制器访问磁盘时,通过共享介于控制器间的磁盘组达到控制器的负载均衡。驱动组可以从配置窗口中定义。3种类型的驱动组是有效的。

l        配置驱动组
这些组使用相同的RAID级别已经被配置为一个或多个逻辑单元。每个驱动组最大支持20个磁盘。
l        未分配的磁盘组
这个组包含当前没有被配置成逻辑单元或hot spare驱动组的所有磁盘。
l        hot spare驱动组
这个组包含所有被配置成hot spare的磁盘。和配置驱动组相象,hot spare驱动组最大支持20个磁盘。





        逻辑单元(LUN)

                定义一个逻辑单元(LUN)

一个LUN可以跨越一个或多个驱动,可以被配置为RAID 0,1,3,5 RAID级别由相关的LUN的驱动组确定。RM6的LUN类似于VM中的卷。

n        一个驱动组可以包含一个或多个LUNs
n        在一个驱动组中的每个LUN共享相同的物理驱动和RAID级别
n        每个LUN由操作系统看成一个虚拟驱动并最大可以包括20个物理磁盘
n        使用format命令可以将每个LUN分成多个分区,因为Solaris系统把LUN看作一个驱动。
n        在Solaris 2.6中,在每个RAID模块中最大限制16个LUNs(StorEdge A3000)




                配置LUNs
LUN的配置信息被冗余的存储在配置中的3个磁盘上。这些磁盘的位置由控制器管理并不为用户所知。LUN的信息不能被用户访问(并不以文本方式保存),它只被RM6的管理应用所访问。
控制器的序列号被作为LUN信息的一部分存储。这个信息在:Start-of-Day的测试中被检测。

                使用LUN分区
                        以下默认的参数表由format创建,是一个20个磁盘的RAID 5 LUN

Current partition table (original):
Total disk cylinders available: 38882 + 2 (reserved cylinders)
Part                Tag                 Flag         Cylinders                 Size                 Blocks
0                 root                 wm         0 – 63                 128.00MB                 (64/0/0)         262144
1                swap                 wu                 64 – 127         128.00MB                 (64/0/0)         262144
2                 backup                 wu                 0 – 38881         75.94GB                 (38882/0/0)        159260672
3                 unassigned         wm         0                         0                                 (0/0/0)                 0
4                unassigned         wm         0                         0                                 (0/0/0)                 0
5                 unassigned         wm         0                        0                                 (0/0/0)                 0
6                 usr                         wm         128 – 38881 75.69GB                 (38754/0/0)        158736384
7                 unassigned         wm         0                         0                                 (0/0/0)


        驱动组的排号(dirve group numbering)
每个被配置的驱动组被分配一个号码。驱动组号码的分配的动态的,最小的LUN值是:LUN0,经常位于组1。
包含LUN 0的驱动组经常是驱动组1。如果LUN 0从组1中移除,而所有其他LUNs都在被使用,并且新增加一个LUN到组3(因为在那个组中有未使用的磁盘空间),那么,当LUN 0被增加到组3时,它将变成组1。驱动组2将包含下一个最小的LUN号码。
组号码的重配置对于加载或正在使用的驱动没有任何影响,LUNs和它们相关的控制器保持不变。
       


n        每个被配置的驱动组被分配一个号码
n        驱动组的号码分配从最低的LUN号码开始
n        为了便于分配,组的LUN号码可以不必连续
n        在删除或创建了LUNs后,磁盘组可以被自动的重新分配号码。注意,LUN号码在创建文件系统时由管理员使用。驱动组的号码由内部的RM6分配的。驱动组的号码重分配不影响Solaris系统中的LUNs视图。

Hot spare驱动
        一个hot spare驱动是一个无包含数据的驱动,处于等待状态,除非在RAID1,3,5逻辑单元失败。       
        当一个处于RAID1,3,5中的逻辑单元失败,一个hot spare驱动自动替换失败的磁盘并重新生成数据将其写入到hot spare中。当失败的磁盘被替换,并恢复过程完成,hot spare驱动自动返回到等待状态。
        Hot spare不是专门指定的驱动组或LUN。它们可以被用来以相同或相似的容量替换在RAID模块中任何失败的磁盘。
        Hot spare驱动提供附加的冗余并允许延期维护。依赖于你所配置的hot spare数量,一个逻辑单元可以在有多个失败的磁盘时,仍然保持完整的操作,每一个失败的磁盘都由hot spare所替换。

        --------------------------------------------------------------------------------------------------
        注意----在RAID 0逻辑单元中,hot spare不能替换失败有磁盘
        --------------------------------------------------------------------------------------------------

在RAID 0中没有冗余,所以没有方式在hot spare上重建数据。如果一个磁盘在RAID 0的LUN中失败,数据将会无效,除非替换失败的磁盘并从备份磁带上进行恢复。

                总结:
l        一个hot spare驱动是一个无包含数据的驱动,处于等待状态,除非在RAID1,3,5逻辑单元失败。
l        当一个磁盘失败,hot spare会替换那个失败的磁盘
l        当失败磁盘被替换,并且恢复过程完成,hot spare会自动返回到等待状态
l        hot spare可以相同的或相似的容量替换任何RAID模块中失败的磁盘
l        hot spare提供附加的冗余并允许延期维护


                   RAID 重建l        降级模式(Degraded mode)l        重建(Recontruction)l        Hot sparel        RAID 1 (镜像) LUN差别

RAID 重建
                这包括:
l        降级模式(Degraded mode)
l        重建(Recontruction)
l        Hot spare
l        RAID 1 (镜像) LUN差别

降级模式(Degraded Mode)
        当一个RAID 3或RAID 5 LUN出现了单一磁盘失败,通过降级方式,它可以继续保持数据的可用性。在单一磁盘失败的情况下,RAID 3和RAID 5可以通过奇偶校验表来重建丢失的数据。如果在RAID设置的多个磁盘失败,则奇偶校验磁盘不能重建丢失的数据。




如图所示的RAID 5中,物理磁盘3(disk 3)失败,同时没有hot spare。如果一个应用访问正在操作的磁盘上的数据(如,chunk 2),I/O操作处理正常。但如果,一个应用访问位于失败磁盘上的数据(如,chunk 3),控制器需要在那个条带上保存的其他数据和奇偶校验来重新生成数据。在这里,在chunk1和chunk2上执行异或操作(XOR),及chunk 1,2和3的奇偶校验值来重新生成原始的chunk3上的数据。

        重建(Restruction)
重建是你替换了一个单一失败的磁盘之后,用来恢复被降级的RAID 1,3或5的逻辑单元到它的原始状态的过程。当你在RAID 1,3或5的LUN中物理替换一个失败磁盘并开始初始恢复时,开始重建

        Hot spares
如果你配置了hot spare,并且你在RAID 3或RAID 5的LUN中丢失了一个单一磁盘,当数据在hot spare上重建时,LUN继续可用(虽然处于一个非优化状态)。重建过程已经在前面描述过,当重建完成,LUN处于一个优化的状态。
当原始失败磁盘被替换,数据从hot spare上拷贝到新替换的磁盘,当这个拷贝完成,hot spare返回到等待状态。
当一个RAID设置LUN使用hot spare被重建,LUN状态报告为优化(optimal)。在替换了原始的失败磁盘后,LUN自动在替换的驱动组磁盘上重建。因为RAID设置LUN已经报告为优化,已经使用hot spare重建,LUN在从hot spare磁盘上重建替换磁盘时,保持可用性(使用优化状态)。

        RAID 1(mirroring) LUN Difference
在一个单一磁盘失败的情况下,RAID 1(mirroring) LUN也可以继续维护数据的可用性。而且,你不需要重新计算数据,因为你在LUN中的其他镜像中有一个好的拷贝。在降级模式中(损失一个单一磁盘),所有的读和写在继续存在的镜像中执行。当失败磁盘被替换,数据从镜像拷贝到替换的磁盘。
               
                总结:
l        重建是你替换了一个单一失败的磁盘之后,用来恢复被降级的RAID 1,3或5的逻辑单元到它的原始状态的过程。
l        在重建中,控制器:
n        在替换的磁盘上使用LUN中(RAID 3或RAID 5)的其他磁盘上的数据/奇偶校验来计算数据。
n        在替换磁盘上写入这些数据
l        当你在RAID 1,3,5的LUN中物理替换了失败磁盘并开始恢复时,重建自动执行。


                  缓存(Cache Memory)l        控制器缓存l        性能l        写缓存镜像l        无电池缓存

缓存
                缓存是控制器上的一个区域,用于数据读写的中间存储

        控制器缓存
                默认的,每个控制器有64M缓存。可以更新到每控制器128M缓存。

        性能
缓存可以提高全面的性能。读操作的数据也可以存储在缓存中,消除了驱动器自己的访问需要。写操作可以被认为是一次完整的写缓存。这也提高了应用的性能,不需要等待数据写入磁盘。
       
        写缓存镜像
当允许时,缓存数据被写入到两个控制器的缓存,这样,当一个控制器失败时,第二个控制器完成所有写操作。

        无电池缓存
有几种情况,如电池电量不足,这样,控制器可能会被临时关闭直到电量正常为止。如果你设置了:cache without batteries参数,控制器将不覆盖这个安全设置,将在没有电池的情况下继续使用缓存。
        --------------------------------------------------------------------------------------------------
警告----如果你选择了:cache without batteries,而且你没有一个不间断的电池保护,如果你的电源失败,你将会丢失数据。
        --------------------------------------------------------------------------------------------------

        --------------------------------------------------------------------------------------------------
注意----缓存可以为性能的原因而允许,写缓存镜像允许数据保护一旦控制器失败。缓存可以每LUN为基础做控制,用户必须对每个新创建的LUN确定缓存的状态。
        --------------------------------------------------------------------------------------------------

总结:
l        缓存是控制器上的区域用于读写数据的中间存储
l        缓存可以全面的提高性能
n        读操作的数据也可以存储在缓存中,消除了驱动器自己的访问需要
n        写操作可以被认为是一次完整的写缓存
l        写缓存镜像
n        当允许时,缓存数据被写入到两个控制器的缓存,这样,当一个控制器失败时,第二个控制器完成所有写操作。
l        无电池缓存
n        如电池电量不足或完全失效,控制器的缓存可能会被临时关闭
n        覆盖这个安全设置而继续使用缓存


                RAID Manager应用l        配置(configuration)l        状态(status)l        恢复Guru(recovery Guru)l        维护和调整(maintenance/tuning)l        关于(about)


RAID Manager的应用

                RM6的GUI有4个应用可以从图标(icon)初始化,这些应用是:

l                配置(configuration)
l        状态(status)
l        恢复Guru(recovery Guru)
l        维护和调整(maintenance/tuning)
l        关于(about)



        配置(Configuration)
这个应用主要被用来指定配置,用户可以指定阵列中的物理磁盘如何分配给数据存储的逻辑单元,以及使用哪个级别的RAID。用户也可以指定哪个磁盘配置为hot spare。

        状态(Status)
这个应用允许管理员判断一个阵列是否有与之相关的任何异常或不正常的状态。3种状态信息是有效的:
l        信息日志查看
允许查看并详细查看与阵列异常相关的堆积的历史信息。
l        “On-demand”正常检测
检查所选择的阵列需要修复的失败情况。
l        重建状态
允许查看对逻辑单元的失败磁盘的替换后的重建步骤

        恢复Guru(Recovery Guru)
这个应用能够对管理员执行降级硬件恢复操作的过程提供帮助。Recovery Guru知道确切的失败模式,并试图引导用户执行需要的恢复步骤,确保用户以正确的方式替换了组件。如果需要,会替换多个失败组件。

        维护和调整
这个应用提供某一阵列管理任务的控制,在存储阵列的配置里,可能会发生多次。这些任务包括,下载控制固件(Controller firmware),确认阵列的奇偶值,和调整控制器的缓存。

        关于
                当你点击了这个图标,弹出一个RM6窗口,返回RM6软件版本号






命令行接口(Command-Line Interface)l        当写shell脚本时是有用的l        CLI不如GUI直观l          通过GUI的任务监视器,CLI命令语法是有用的l        CLI和GUI工具执行相同的功能l        所有的命令都处于:/usr/lib/osa/bin中,并做了如下连接:/usr/sbin/osaà/usr/lib/osa/bin

命令行接口
当GUI接口不能正常执行功能,或者想为通常的执行操作写shell脚本时,会用到CLI。
GUI通常是更直接的,也容易使用。它隐藏了操作的复杂性,并减少了操作者在执行管理中的出错机会。
                并不是所有命令都可以被这两种接口完全执行。
                所有的命令都可以在目录:/usr/lib/osa/bin中发现,并可能会通过以下方
式做字符连接:
        /usr/sbin/osa   à /usr/lib/osa/bin

RM6 命令
       
        --------------------------------------------------------------------------------------------------
                命令                                                                        描述
        --------------------------------------------------------------------------------------------------
drivutil This drive/LUN utility is used to manage drives/LUNs. It enables
you to obtain drive/LUN information, revive a LUN, fail/unfail a drive, and obtain LUN reconstruction progress.

fwutil         This controller firmware download utility downloads appware,
bootware, Fibre Channel code, or a non-volatile storage, random access memory (NVSRAM) file to a specified controller.

healthck This health check utility performs a health check on the indicated
RAID module(s) and displays a report to standard output.

lad                 This list array devices utility identifies which RAID controllers and
logical units are connected to the system.

logutil         This log format utility formats the error log file and displays a formatted version to the standard output.

nvutil         This NVSRAM display/modification utility permits the viewing and
changing of RAID controller NVRAM settings, allowing for some customization of controller behavior. It verifies and fixes any
NVSRAM settings that are not compatible with the storage management software.

parityck This parity check/repair utility checks, and if necessary, repairs the
parity information stored on the array. (While correct parity is vital to the operation of the array, the possibility of damage to parity is extremely unlikely.)

raidutil        This RAID configuration utility is the command-line counterpart to the graphical configuration application. It permits RAID LUN and hot spare creation and deletion to be performed from a command line or script.

rdacutil        This redundant disk array controller, management utility permits
certain redundant controller operations such as LUN load balancing and controller failover and restoration to be performed from a command line or script.

storutil        This host store utility is used to perform certain operations on a
region of the controller called host store. You can use this utility to set an independent controller configuration, change RAID modules’ names, and clear information in the host store region.
        --------------------------------------------------------------------------------------------------


         设备命名约定(Device Naming Convention)l        标准设备命名约定l        逻辑连接:/dev/(r)dsk与/dev/osa/dev/(r)dsk与文件:/devicesl        Solaris操作系统限制:l          每RAID模块最大16个LUNsl          每个LUN可以与磁盘相同的方式进行分区l          每个主机适配器最大支持32个LUNs

设备命名约定
        标准设备名
RM软件使用设备地址来相关逻辑单元。这些地址由子系统的硬件位置决定。
如图9_7所示,地址标识了SCSI主机适配器,控制器的SCSI ID号,LUN以及slice数量。
RM软件在多种屏幕显示中使用这个设备名。这个地址通常标识一个特定逻辑单元的路径。如果你在控制器间转换LUN的属主,把它作为维护/调整过程(LUN平衡),设备名将在RAID软件中自动更新。但是,Solaris操作系统继续使用原始的路径直到执行一个重配置启动。(boot –r)


                图9_7表明:
l        标准设备名的约定
l        逻辑连接:/dev/(r)dsk与/dev/osa/dev/(r)dsk与文件:/devices
l        Solaris操作系统限制:
n        每RAID模块最大16个LUNs
n        每个LUN可以与磁盘相同的方式进行分区
n        每个主机适配器最大支持32个LUNs

阅读(1681) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~