免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2570 | 回复: 0
打印 上一主题 下一主题

ES--310 翻译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-17 13:35 |只看该作者 |倒序浏览
第一章   SunStorage Introduction
目标
        通过本章的学习,你将可以:
l        描述主要的磁盘存储管理任务
l        列出大多数的磁盘阵列的磁盘存储概念
l        列出SUN SCSI接口的主要功能
l        列出SUN的光纤接口的主要功能
l        列出SUN磁盘存储模式当前的功能
l        定位存储阵列的配置组件
l        检查存储阵列的固件(fireware)版本
磁盘存储管理做为一个Veritas管理员,你要对以下这些事情负责:l        VM软件安装l        RAID卷设计l        RAID卷创建l        RAID卷管理
磁盘存储管理
        Veritas 卷管理安装
安装VM软件与安装Solaris下的其它软件类似,它可以由标准命令行或图形化的包安装工具来安装。
        
VM安装
安装VM的很大的一个不同就是必须至少有一个磁盘被指定为初始化的并处于VM的vxinstall控制之下。
        所需的硬件
VM的安装过程与系统平台的安装过程相似,不可以被中断,但你必须能从其它磁盘存储类型中识别存储阵列的设备地址。
RAID 卷设计
        通常,虚拟卷结构的设计要考虑以下几点:
n        损耗
n        性能
n        有效性
n        易维护性
在大多数情况下,在选择的时候要考虑损耗,性能和有效性方面。
所需的硬件
        彻底的理解接口类型,地址规划,和内部的硬盘结构是整个设计所必需的。如果没有这种背景知识来设计虚拟卷结构也是可能的,但可能会导致性能下降及不能达到你的应用程序所要求的可靠性。
        RAID卷创建
通过使用图形用户接口或命令行单元可以创建VM的RAID卷结构。当卷必须由使用文件脚本自动创建的时候必须使用命令行单元。
                可以通过图形接口来显示每个操作的命令行的相同操作。
               
                所需的硬件
你可能不必为你所设计的VM卷结构负责,但你必须在很多方面熟知你的实际存储设备。
        
        RAID卷管理
在大型的安装中,通常的VM管理任务是识别并替换已经失败的磁盘。用最简单的方式,这执行了一个单独的VM单元,vxdiskadm。对另一个存储平台,luxadm,在磁盘替换的过程中,也要使用。
通常的VM管理任务需要分析错误信息。这由VM单元:vxprint和vxdisk及一些基本的操作系统命令来执行。
        
                所需的硬件
                        管理RAID卷需要一定的硬件相关技术,包括:
u        解码设备错误信息
u        物理设备的相关设备地址
                  磁盘存储的概念为更好的完成本章的学习,以下的磁盘存储概念一定要理解:l        多主机存取(Multi-host access)l        基于主机的RAID(Host-based RAID)l        基于控制器的RAID(Controller-based RAID)l        冗余双活动控制器(Redundant Dual Active Controllers)l        动态多路径(Dynamic Multi-Pathing)l        热交换(Hot swapping)
磁盘存储概念
        多主机存取
在过去,这个功能涉及到双端口。随着当前新技术的出现,如SunStorEdge A5200,已经可以使得四个不同的主机连接到相同的存储设备上。
        
                多初始化的SCSI(Multi-Initiated SCSI)        
SUN的多包存储设备支持从两个不同主机系统连接到物理小型机接口(SCSI)上。每个系统的SCSI接口必须拥有一个不同的Initiator设置。这作为一个系统的固件配置,称为:scsi-initiator-id ,如图1_1
当两个主机系统连接到同一个磁盘存储设备时,需要更改其中一个主机的scsi-initiator-id,来消除两台主机间的冲突。
                多主机光纤接口
两个不同的光纤接口存储阵列支持多主机连接。SPARCstorge Array 100允许最大两个主机连接到同一个单独的存储阵列上。Sun StorEdge A5000允许最大四个主机系统同时连接。如图1_2
        基于主机的RAID(软RAID技术)
VM是一个关于软RAID技术的很好的例子。用户的应用程序通过一个单独的路径(实际上由3个独立的硬盘组成)来访问一个虚拟结构。
                        一个典型的虚拟卷路径名与下面的类似:(如图1_3)
                        /dev/vx/dsk/dga/volumn-01
即使到3个磁盘的物理路径已经存在,它们也不能直接的由用户或应用程序来直接进行访问。与用户相关的只有虚拟卷路径。
                        虚拟结构由运行于主机系统上的软件来创建和管理。
        基于控制器的RAID(硬RAID技术)
基于控制器的RAID方案使用运行于外部控制板的固件来维护由一个或多个物理磁盘组成的虚拟结构。在初始化配置之后,控制板上的固件开始管理虚拟结构。(如图1_4)
一个典型的硬RAID设备看上去与很多物理路径名相同,如:/dev/dsk/c0t5d0s0,应用对具体的RAID结构不敏感。
硬RAID方案在RAID结构的类型中能够比软RAID(基于主机RAID)
提供更好的性能。
        冗余的双活动控制器(Redundant Dual Active Controller Drivers)
一些SUN的存储设备允许从一个主机系统双重连接到一个磁盘阵列。如果主访问路径失败的话,其中一个主机适配卡可以配置为备份,或两个适配卡可以配置为负载平衡。(图1_5)
冗余的双活动控制器(RDAC)的驱动是为管理双接口连接所特殊指定的驱动器。它对一些SUN的硬件RAID存储阵列是有效的,包括A3000及A5000类型。
带有RDAC驱动的应用接口对接口的失败不敏感。如果双控制路径的其中一个失败,RDAC驱动自动检测输入/输出(I/O)到一个功能(functioning)路径。
                基于控制器的RAID方案只被用来在SCSI硬件接口上使用。
动态多路径驱动(Dynamic Multi-path Driver)
动态多路径驱动(DMP)是VM的独一无二的产品。它只用在光纤接口的磁盘阵列中。如图1_6,DMP驱动可以通过一个或多个路径来访问相同的存储阵列。DMP将自动配置到盘阵的多路径。根据盘阵的型号不同,可以配置为主操作模式的负载平衡或备份操作模式。
                这些路径可以通过使用VM命令:vxdmpadm来启用或禁止。
        --------------------------------------------------------------------------------------------------
注意----VM中的DMP功能是不完整的,当操作系统中有交替路径软件时(Alternate Pathing software)。在安装过程中,VM检测AP是否已经被配置,如果是的话,将不会安装DMP软件。
        --------------------------------------------------------------------------------------------------
        热交换(Hot Swapping)
大多数SUN的盘阵是工程化的,这样,当替换一个失败的磁盘时可以不中断客户的应用。磁盘替换过程也包括一个或多个软件操作来改变每个磁盘的存储平台。
               
标准VM磁盘替换过程
                        以最简单的过程来描述在VM控制下的失败磁盘替换过程:
1.        使用VM命令:vmdiskadm在逻辑上移除磁盘
2.        热交换一个新的磁盘
3.        使用VM命令:vxdiskadm在逻辑上安装新磁盘
磁盘替换的变动
        对于StorEdge A5000等盘阵来说,基本的VM磁盘替换过程会复杂一些,A5000的替换过程如下:
1.        使用VM命令:vxdiskadm中的选项4和11来逻辑移除并离线(offline)磁盘。
2.        使用luxadm来移除物理磁盘驱动路径
3.        热交换一个新的磁盘
4.        使用luxadm来创建一个新的物理磁盘驱动路径
5.        使用VM命令:vxdiskadm来逻辑安装新的磁盘
                --------------------------------------------------------------------------------------------
注意----在基本磁盘替换中会有其他的改变,对于你的物理盘阵,你必须确切的熟知实际过程
                ---------------------------------------------------------------------------------------------
                  SUN的存储接口SUN的SCSI和光纤存储阵列接口有如下的优点和限制:l        有单端和差分的SCSI类型l        SCSI线缆支持的最大长度(6-25米)l        光纤的最大长度可以达几公里l        SCSI对数据的速率有限制(40Mbytes/s)l        光纤的数据速率是100Mbytes/s
SUN 的存储接口
                        SUN的存储设备可以通过一个或两个基本的接口类型进行访问。
l        小型计算机系统接口(SCSI)
l        光纤(Fiber-optic)
每种接口的类型通过一段时间(几年)的发展都有了一种或多种的变型。接口发展的焦点主要集中在以下几方面:
l        数据传输速率
l        数据传输的等待时间
l        接口线缆的长度
SCSI接口概述
SCSI接口最初在80年代被设计成介于主机计算机系统和依赖于磁盘的计算机制造商之间的接口。在SCSI之前,所有的计算机制造商都有自己的方式来连接主机计算机系统上的磁盘。
SCSI的优点在于,主机从磁盘请求一个块数据的传输。主机系统没有必要知道磁盘的几何性能,系统只为传输一个块数据而向磁盘发送一个请求。这样做的优点是,允许相同的磁盘可以被不同的制造商所使用。
主机系统间通过SCSI总线来进行连接,这需要设置一些标准。随着SCSI的发展,早期的SCSI总线的速率和数据容量都已经得到了提高,可以更好的满足当前服务器的更高要求。需要面对的最早期的问题就是从主机系统到磁盘驱动器的线缆长度。对于SCSI总线,定义了两种通过不同长度的线缆来进行连接。单端(Single-Ended)短线缆连接及差分(Differential)长线缆连接方式。
        SCSI接口的执行
                当前在SUN存储产品中使用的SCSI类型为单端及差分方式。
                单端SCSI(Single-Ended SCSI)
使用一个单独的信号来进行每位的传输,相对于0电压。这允许标准的SCSI 1设备连接最长达6米的线缆。(如图1_7)
         
                差分SCSI(Differential-SCSI)
通过使用两个相等的相反的电压来发送数据位,这可以使得信号无衰减的传输更远距离。差分SCSI允许线缆的最大长度为25米。(图1_

               
        SCSI接口的标准
下表中显示的是由SUN使用的当前SCSI标准的一部分。其它SCSI标准由不同的制造商使用。
        
        SCSI的优先权
SCSI用户的总线调整机制是由SCSI的目标ID来决定优先权的。窄(Narrow)SCSI的目标地址为0-7,目标7拥有最高优先权,通常是控制器的ID号,目标0的优先权最低。通过调整SCSI的目标地址可以影响性能。宽(Wide)SCSI使用目标0-15并按以下的优先权来排列:7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15
        
        SCSI的阶段及光纤通道的移动
上表显示了SCSI已经8个方面增强了性能。但,这有些夸张。SCSI包括6个阶段,其中之一的从磁盘上传输数据,其余的阶段包括,状态,命令传输和总线调停。SCSI支持向后兼容,所以,一个窄口慢速磁盘可以运行连接一个宽口快速控制器上,这种结构实现了在窄带线路上SCSI控制以5MHz运行。每个设备允许进行更新,如 fast, ultra fast或wide等。数据传输阶段有利于提高时钟的速率,但命令传输却不能,它大约花费每个SCSI传输的5毫秒。
                如果向后兼容的策略被放弃的话,那么SCSI的整体性能将得到加强。
        SUN的光纤通道概述
在过去的十年中,计算机的性能比从前有了几千倍的发展,同时也需要增加更多有精力的,高性能的,冗余的计算机资源。计算机资源的连续性将达到它们的边缘,这经常是由于I/O子系统的性能所引起的。
为了提供一个存储系统内部连接的解决方案,分址性能及现代系统的可靠性需求,SUN持续进行着新的光纤技术的开发(FC-AL)。
        
        光纤通道技术(Fiber Channel)
光纤通道技术是基于SCSI外围设备正在增多的问题的回答。光纤通道(FC)是为介于服务器、存储系统、工作站、交换机和HUB之间双向的,点对点的通信所设计的高性能串行内联标准。它比其它的连接级协议拥有更多优点,包括效率,高性能,易测性,易于使用和安装,并支持更高级别的协议,FC同时也通过电子隔离,提供了更高级别的安全和可靠性,没有电磁(EM)干扰。

光纤通道的调停循环(Fibre Channel Arbitrated Loop,FC-AL)
光纤通道的一个重要增强就是开发出了FC-AL,特定的开发来达到存储内部连接的需求。FC-AL既可以支持简单的配置,也可以支持HUBS,交换机,服务器和存储系统的复杂的配置。此外,对于已经存在的设备和固件不需要昂贵和复杂的改变FC-AL就可以提供更高的级别。
        广泛的支持工业标准
FC-AL开发成就了ANSI/ISO可接受的SCSI-3标准的一部分,避免了创建的非一致性和执行矛盾。实际上所有的系统制造商都执行FC-AL,如所有那些磁盘驱动和存储系统的厂商。
        
                高度的灵活性
FC-AL可以在光纤及铜线缆上进行操作,而且不只是用来进行磁盘的I/O。光纤通道的规范通过使用广泛多样的协议支持高速系统和网络内联。包括:
u        SCSI---小型计算机系统接口
u        IP---互联网协议
u        ATM---为计算机数据的适应(Adaptation)层(AAL5)
u        FC-LE---连接封装
u        IEEE802.2
因为光纤通道的技术细节被协议接口隐藏,所以,对系统软件的影
响是最小的。
        
        光纤通道与SCSI的比较
                光纤通道与SCSI相比有许多优点,如下所示:
               
光纤通道        SCSI
全双工操作        半双工操作
100MB/s        40MB/s
性能不被磁盘的位置所影响        性能会由于物理磁盘的位置不同而有所影响
磁盘的多路径支持        磁盘的连接只可以通过SCSI通道
最大4个主机可以同时连接到一个适当的盘阵        最大2台主机可以连接到一个单独的SCSI通道
串行数据传输        并行数据传输
在SAN中适当的使用,允许使用交换机和HUB        不适合SAN环境,不允许使用交换机和HUB
可以连接的最大距离30公里(25MHz)/10公里(100MHz)        最大距离25米使用DSCSI
SPARCstorage Array 100
        
SPARCstorage Array 100的功能
                SPARCstorage Array 100(SSA100)有着以下的几方面功能
n        光纤通道接口,双口
n        30个磁盘驱动器
n        每个tray可以连接10个磁盘
n        6个内置的SCSI地址
n        热拔插磁盘tray的限制和注意
u        在你拔出驱动tray前一定要保持在SSA100上的tray所连接的磁盘处于静止状态
u        在移除tray前,tray中与其他磁盘相关的卷必须要离线或镜像分离。
SPARCstorage Array 100的分址
        
典型的地址路径:(如图1_14)
n        c0t3d0s2
n        c4t4d4s4
RSM Storage Array
        
        RSM Storage Array的功能:
RSM存储阵列可以做为一个独立的存储单元连接到一个单独差分SCSI Sbus卡或与一个特定的双口控制器集成上架,功能有:
n        差分宽SCSI,68针,单口
n        每个阵列有7个磁盘驱动器
n        磁盘可以热拔插
n        冗余的电源模块
n        冗余的冷却模块
n        驱动器可以单独移动
RSM Storage Array的分址
        如果RSM存储阵列连接到差分宽SCSI接口,SCSI目标ID与tray中的slot号相对应,典型的物理地址如:(如图)
n        c2t0d0s2
n        c4t2d0s4
n        c2t5d0s3
设备号(d0)总是为0
Sun StorEdge D1000
        Sun StorEdge D1000的功能
                除了控制板,Sun StorEdge A1000和D1000有以下几个共同点:
n        Ultra差分宽SCSI,68针,双口
n        8个1.6英寸或12个1英寸的Ultra SCSI磁盘
n        双电源支持
n        双冷却模块
                ---------------------------------------------------------------------------------------------
注意:磁盘,电源支持及冷却模块都是热拔插的
                ---------------------------------------------------------------------------------------------
Sun StorEdge D1000的线缆连接
如图1_9所示,Sun StorEdge D1000有四个SCSI口。通过配置控制器,一半的磁盘连接到其中的一个端口。也可以通过配置,使得所有磁盘都通过一个连接来控制。每一半的接口提供一个UDWIS连接。
图1_10显示了如何连接一个Sun StorEdge D1000使得所有的磁盘都通过一个端口来连接。
        Sun StorEdge D1000的编址
通过开关设置,D1000中的磁盘可以被编址为两种不同的方式。如果两个SCSI口的磁盘的分开的,这些磁盘在每半个单元拥有相同的地址范围。
                图1_11显示了地址的变更,显示在8和12个磁盘驱动的D1000中。
Sun StorEdge 5000
        
        Sun StorEdge A5000是一个高可用性,存储子系统。A5000是配置有完全冗余,热交换活动组件构成的高性能、高可用性的建筑。A5000是SUN存储阵列里拥有最高的可靠性,有效性及可服务性(RAS)功能的盘阵系统。
        
        Sun StorEdge 5000的功能
                主要包括:
n        SUN的第二代光纤通道存储子系统
n        可以在56英寸机架上最大加载4个桌面单元,并可以在72英寸机架上最大加载6个桌面单元。
u        每个机架包括两个HUB
n        一个新的存储数据方式:
u        极快(100MB/s)
u        高可用性;最佳的RAS功能
u        在容量,带宽和I/O传输速率上可以升级
n        最大支持14个半高(1.6英寸)或22个LP(1英寸)热交换,双口及FC-AL磁盘驱动器
n        两个带有GBIC的接口板,提供了对双口磁盘驱动器的双路径能力,两个主机可以连接到每条路径。
n        一个前端面板模块(FPM)允许配置附件的状态,并对其进行显示和修改
n        磁盘附件的活动组件是冗余的,在子系统进行操作的时候可以被替换。
n        当组件全部或部分失败时,会自动进行重配置。
n        桌面产品的外围设计最大可以支持到6个阵列加载到一个SUN的标准机架上。
n        每个单元里,有123.75GB可用的格式化后的原设备空间,支持495GB空间(per loop),最大支持4个单元(per loop)。
                ---------------------------------------------------------------------------------------------
注意:SUN的企业级网络阵列连接主机结点的时候使用SOC+FC-AL接口卡或在SUN的企业级服务器的I/O版上内置的FC-AL接口。
                ---------------------------------------------------------------------------------------------
        Sun StorEdge 5000的编址
A5000存储系统支持22个磁盘或14个磁盘驱动的配置。物理位置以组来描述,前面的槽位0-10及后面的槽位0-10(22个磁盘),或前面的槽位0-6及后面的槽位0-6(14个槽位)。每个box可以被分配一个box ID从0-3。每个标识决定了一个box的预配置段。每个地址与一个SCSI目标号(14个磁盘为例)直接相关。
               
n        Box ID 0 编址:
背面驱动:t22        t21        t20        t19        t18        t17        t16
前面驱动:        t0        t1        t2        t3        t4        t5        t6
n        Box ID 1 编址:
背面驱动:t54        t53        t52        t51        t50        t49        t48
前面驱动:t32        t33        t34        t35        t36        t37        t38
n        Box ID 2 编址:
背面驱动:t86        t85        t84        t83        t82        t81        t80
前面驱动:t64        t65        t66        t67        t68        t69        t70
n        Box ID 3 编址:
背面驱动:t118                t117                t116                t115                t114                t113                t112
前面驱动:t96                t97                t98                t99                t100        t101        t102
                物理地址
Box ID地址创建了一个从0-122的目标地址段,所以,可以最大支持4个A5000的存储阵列以菊花链的方式连接到一个单独的控制器上而不会有任何的SCSI地址冲突。典型的A5000存储阵列的设备地址如下:
u        c0t3d0s2
u        c4t6d0s3
u        c3t98d0s2
u        c1t6d0s4
u        c5t113d0s0
u        c2t83d0s4
                ---------------------------------------------------------------------------------------------
注意----在存储阵列内的设备地址的目标地址ID与菊花链中的目标地址ID相同。
                ---------------------------------------------------------------------------------------------
        Sun StorEdge A5000的内部编址
虽然A5000的目标地址段从0-128,所有的地址都没有使用。但配置14槽的阵列只会使用阵列有效的目标ID的56个。配置22槽的阵列会使用尽可能多的有效目标ID,是88个。表1_1列出了以菊花链方式连接的A5000存储阵列配置中每个box ID的目标地址分配。它也提供了用来计算每个目标地址的规则。
                SCSI target# = (A5000_ID * 32) + (16 * backplane#) + slot#
                A5000_ID ----- 是在FPM中所编定的
                Backplane ----- 对于前面驱动为0,背面驱动为1
                Slot ----- 从0-6,从设备向导中读取
        使用带有hubs的Sun StorEdge A5000
通过使用FC-Al的集线器可以从一个单独控制接口连接访问最大4个A5000的盘阵。
FC-AL集线器有7个口可以连接,当一个端口接收数据,它重新定时并重新传输数据到下一个正确端口(it retimes and retransmits that data out the next port to the right.)。HUB上的最后的端口把数据路由回第一个端口。
当使用FC-AL Hubs时通常的情况如图1_12:
SPARCstorage MultiPack
SPARCstorage MultiPack是一个带有快速宽SCSI接口的多磁盘存储设备。MultiPack-2提供了一个ultra fast wide SCSI接口。此设备有两种版本:
n        SPARCstorage MultiPack单元最大支持6个1.6英寸高,单接口的磁盘
n        SPARCstorage MultiPack单元最大支持12个1英寸高,单接口的磁盘
SPARCstorage MultiPack有9英寸高。
你可以使用SPARCstorage MultiPack以多初始化的SCSI配置方式。
                ---------------------------------------------------------------------------------------------
注意----如果你没有SPARCstorage MultiPack连接到你的系统,你需要一个特定的license来使用VM来配置SPARCstorage MultiPack。
                ---------------------------------------------------------------------------------------------
        SPARCstorage MultiPack的功能
                主要包括:
n        一个68针fast wide, 或 ultra wide SCSI接口
n        设备地址由位置决定(与硬件相关)
n        在一个标准的50针(narrow)SCSI总线可以使用6个SCSI驱动单元
n        12个驱动器的单元只可以使用68针的wide SCSI总线
n        12个1英寸高,7200转的磁盘(2.1G或4.2G)
n        6个1.6英寸,5400转的磁盘(9G或18G)
SPARCstorage MultiPack 编址
        SPARCstorage MultiPack的编址将自动的由所使用磁盘的物理位置及类型所决定。以6个驱动单元为例,地址段是可以选择的。如下:
n        6个驱动单元的地址可由开关选择,1-6 或 9-14
n        12个驱动单元的地址不可选择6和7,用来消除scsi-initiator-id冲突
u        地址 2-5
u        地址 8-15
地址直接相关于目标号码,一个典型的设备地址路径:/dev/dsk/c0t8d0s2
存储阵列的设备路径  失败磁盘的错误位置由物理和逻辑设备的编码来显示。路径有以下的一些特点:l        逻辑路径连接到物理路径l        逻辑路径标识由controller, target, device定位l        目标和设备号依赖于阵列l        物理路径标识了硬件地址l        物理路径依赖于平台 /interface/array
存储阵列的设备路径
为了配置和维护存储设备,你要理解在一个存储设备里用来描述和定位存储接口板,存储阵列和磁盘的那些术语是非常重要的。
对于一个非RM6的SUN Storage Array的磁盘来讲,每个磁盘驱动器有两个唯一的路径:
n        物理设备路径(/devices)
n        逻辑设备路径( /dev/dsk 和 /dev/rdsk)
系统驱动器和应用使用设备路径来访问特定的磁盘驱动。
        设备路径介绍
                物理路径
                        所有设备的物理路径都位于目录:/devices下
                物理硬件的访问路径由系统驱动器使用。物理路径描述了用来连接
一个特定设备的物理硬件组件的地址。一个典型的物理路径如下:
/devices/sbus@1f,0/SUNW,socal@0,0/sf@1,0/ssd@w2100002037049a5f,0:e
        
逻辑路径
        磁盘的逻辑设备路径在目录:/dev/dsk(块设备)和 /dev/rdsk(原设备)
        一个逻辑设备路径是物理路径的简单表示,一个典型的逻辑设备路径如下:
        /dev/dsk/c2t3d0s7
        每个逻辑设备连接到一个物理设备路径:
                        # ls -l /dev/dsk/c1t3d0s2
lrwxrwxrwx 1 root root 90 Dec 2 1998 /dev/dsk/c1t3d0s2 ->;
../../devices/iounit@f,e1200000/sbi@0,0/SUNW,soc@3,0/SUNW,pln@
a0000800,201cad7e/ssd@3,0:c
        
解码(Decoding)逻辑设备路径
        一个典型的逻辑设备路径如:/dev/dsk/c0t3d0 它由三个部分组成
u        控制器地址(c0)
u        目标地址(t3)
u        设备地址(d0)
控制器地址
        当Solaris操作环境第一次配置的时候,所有磁盘存储接口被分配一个唯一的控制器号码。如图1_13,控制器号通常是连接单独存储设备的单独的点。虽然存储设备可以菊花链的方式连接,但它仍然是一个单独的点。
                        目标和设备地址
                                与每个目标相关的设备号依赖于存储设备的类型。对于通常的
SUN的存储设备目标和设备号的关系如下:
l        SPARCstorage A100
n        30个磁盘
n        6个目标,t0-t5
n        每个目标相联5个设备(d0-d4)
l        SPARCstorage RSM
n        7个磁盘
n        7个目标,t0-t6或t8-t14
n        每个目标相联一个单独设备,d0
l        Sun StorEdge D1000
n        12个磁盘或8个磁盘
n        12个目标,t0-t5 和 t8-t13(或 t0-t3和t8-t11)
n        每个目标相联一个单独设备,d0
l        Sun StorEdge A5000
n        14个磁盘
n        14个目标,t0-t6和t16-t22
n        每个目标相联一个单独设备,d0
解码物理设备路径
        物理设备路径是复杂的,它们基于硬件平台和系统模型有许多不同格式变化。最简单的解码物理设备路径的方式就是使用一个软件工具如:device.info程序。这是一个内部的SUN工具。
        给定一个系统类型和物理设备路径,这个程序提供了关于主机适配器的详细信息。你必须理解系统的物理配置。
# device.info -m SS1k /iounit@f,e1200000/sbi@0,0/SUNW,soc@3,0/SUNW, pln@a0000800,201cad7e/ssd@0,1
Machine: SPARCserver 1000 || SPARCserver 1000e System || I/O Board Number: 1
Bus Slot Number: 3
FC25/S SOC Port Number: B - *reversed* (screen printed on card/board)
SSA [21]XX WWN: 0800201cad7e
SSA [21]XX Number: ad7e (displayed on LCD panel)
SSA 1XX Tray Number: 0 (left)
SSA 1XX Tray Disk Slot Number: 9 of 10 (from front of tray)
SSA 21X Controller Number: 0
SSA 21X Tray Number: *follow cabling*
SSA 21X RSM Tray Disk Slot Number: 2 of 7 (from left of tray)
Card Type: SUNW,soc
Card Description: SPARCstorage Array 100/200 Fibre Channel Host Adapter (FC25/S)
                                                        
---------------------------------------------------------------------------------------------
                注意----如果没有参数,device.info将显示帮助信息                                
---------------------------------------------------------------------------------------------
存储配置标识  决定物理存储配置需要几个不同的策略,包括:l        串行号和模型类型的物理清单l        在 /dev/dsk中标识控制器的号l        使用命令:luxadm display命令来显示阵列信息l        A5000的附件名和Box IDl        跟踪线缆
存储配置标识
               
        为了标识一个失败的磁盘的位置,你必须能够确定你的存储阵列的
物理配置。你也必须能够确认一个物理主机适配器的控制号。查看连接阵列和主机的线缆或是已知阵列的WWN,可以跟踪连接的相对位置。
               
        物理清单
决定你的存储配置的第一步就是检查并记录你的存储阵列的类型和号码。这对于记录每一个SPARCstorage Array 100和StorEdge A5000上相关的唯一的WWN(WorldWide Number)号非常有帮助。这些号可以用来物理定位一个特定的存储阵列。
        标识系统的控制器
标识所有系统物理磁盘控制器的方法是,使用format命令来手工查看 /dev/dsk 目录的内容,或使用以下命令行来查看 /dev/dsk目录
                # ls /dev/dsk |awk ’{print substr($0,0,2)}’|uniq
c0
c1
c2
#
上例中的系统拥有3个控制器,如果没有继续的调查,不可能确定哪种类
型的存储阵列连接在每个控制器上。
如果你的存储阵列是SPARCstorage Array 100或是StoeEdge A5000,阵列的配置可以简单的使用以下命令来决定:luxadm
        显示一个SPARCstorage Array 100的配置
                使用命令:luxadm来显示SPARCstorage Array 100的信息
                # /usr/sbin/luxadm display c1
                SPARCstorage Array 100 Configuration (luxadm version: 1.31 97/10/01)
Controller path: /devices/io-unit@f,e1200000/sbi@0,0/SUNW,soc@3,0/SUNW,pln@a0000800,201cad7e:ctlr
DEVICE STATUS
TRAY 1                 TRAY 2                 TRAY 3
slot
1                 Drive: 0,0                 Drive: 2,0                 Drive: 4,0
2                 NO SELECT         NO SELECT         NO SELECT
3                 NO SELECT         NO SELECT         NO SELECT
4                 NO SELECT         NO SELECT         NO SELECT
5                 NO SELECT         NO SELECT         NO SELECT
6                 Drive: 1,0                 Drive: 3,0                 Drive: 5,0
7                 NO SELECT         NO SELECT         NO SELECT
8                 NO SELECT         NO SELECT         NO SELECT
9                 NO SELECT         NO SELECT         NO SELECT
10                 NO SELECT         NO SELECT         NO SELECT
CONTROLLER STATUS
Vendor:                 SUN
Product ID:                 SSA100
Product Rev:         1.0
Firmware Rev:         2.4
Serial Num:         0800201CAD7E
Accumulate Performance Statistics: Enabled
        
以上的信息显示了SPARCstorage Array 100的输出信息,安装了六个磁盘。你可以通过12位的WWN的最后4位来定位物理单元。它们是ad7e并显示在目标存储阵列的LED窗口里。
        显示一个Sun StorEdge A5000的配置
                使用命令:luxadm来显示 Sun StorEdge A5000阵列的配置
                # luxadm display AA
        (luxadm version: 1.28 98/01/22)
SENA                         DISK STATUS
SLOT         FRONT  DISKS (Node WWN)         REAR DISKS (Node WWN)
0                 On (O.K.) 20000020370c2532         On (O.K.) 20000020370c25fe
1                On (O.K.) 20000020370c261b         On (O.K.) 20000020370c262d
2                 On (O.K.) 20000020370c227a         On (O.K.) 20000020370c1d9e
3                 On (O.K.) 20000020370c22fb         On (O.K.) 20000020370c2338
4                 On (O.K.) 20000020370c2324         On (O.K.) 20000020370c25e2
5                 On (O.K.) 20000020370c257d         On (O.K.) 20000020370c1f14
6                 On (O.K.) 20000020370c2358         On (O.K.) 20000020370c1e9b
SUBSYSTEM STATUS
FW Revision:1.01         Box ID:3
Node WWN:5080020000011df0         Enclosure Name:AA
以上luxadm命令的输出显示了一个带有完整的14个磁盘的Sun StorEdge A5000阵列的配置信息。也可以使用前端面板模块(FPM)来定位WWN。一个最简单的定位方法就是在FPM中查看附件名字。它通常在FPM屏幕的保存模式(saver)中显示,附件的名字在例中是:AA
        当使用Sun StorEdge A5000时,你可以使用带有附件名字和物理位置的luxadm命令来定位磁盘驱动,当使用luxadm时,涉及到的A5000的磁盘名为:
n        AA,f5
AA,f5与A5000的附件名AA相关,它标识的前端的第5个磁盘。
        显示一个Sun StorEdge D1000或RSM的配置
命令:luxadm不能显示D1000或RSM的配置信息,format命令是有用的,但它不能执行I/O路径名字的解码。这里,我们将使用一个称为device.info的内部脚本程序。给定一个系统类型和物理设备路径,这个程序将提供相关主机适配器板的细节信息。你必须要理解系统类型的物理配置。
        
% device.info -m SS1k /iounit@f,e1200000/sbi@0,0/SUNW,soc@3,0/SUNW,pln@a0000800,201cad7e/ssd@0,1
Machine: SPARCserver 1000 || SPARCserver 1000e System || I/O Board Number: 1
Bus Slot Number: 3
FC25/S SOC Port Number: B - *reversed* (screen printed on card/board)
SSA [21]XX WWN: 0800201cad7e
SSA [21]XX Number: ad7e (displayed on LCD panel)
SSA 1XX Tray Number: 0 (left)
SSA 1XX Tray Disk Slot Number: 9 of 10 (from front of tray)
SSA 21X Controller Number: 0
SSA 21X Tray Number: *follow cabling*
SSA 21X RSM Tray Disk Slot Number: 2 of 7 (from left of tray)
Card Type: SUNW,soc
Card Description: SPARCstorage Array 100/200 Fibre Channel Host Adapter (FC25/S)
                  存储阵列的固件  通过使用luxadm命令来维护A5000的存储阵列的固件,主要执行以下功能:l        在SOC主机适配卡上校验固件版本l        在阵列控制板上校验固件版本l        在阵列磁盘上校验固件版本l        下载新的固件
存储阵列的固件
一些光纤通道的硬件设备上通常会有固件组件,它们的固件版本可能会不同。在启动一个安装前,必须校验固件的版本达到最小推荐级别。如果需要,固件必须升级到一个可以接受的级别。相关的光纤通道组件为:
n        SOC和SOC+主机适配卡
n        Array 100 控制板
n        Array 5000 控制板
n        Array 5000 磁盘
校验光纤通道的SBus卡的固件
        光纤通道的Sbus卡的固件版本必须由命令:luxadm来检测,这是一个标准的Solaris操作系统命令,位于目录:/usr/sbin
        对于100/200的存储阵列的SOC卡和A5000的SOC+卡要使用不同的命令参数。
        对于SOC卡的luxadm命令输出:
        # luxadm fc s download
Found an FC/S card in slot: /devices/sbus@6,0/sbusmem@1,0:slot1
Detected FC/S Version: 1.33 for /devices/sbus@6,0/sbusmem@1,0:slot1
Found an FC/S card in slot: /devices/sbus@6,0/sbusmem@2,0:slot2
Detected FC/S Version: 1.33 for /devices/sbus@6,0/sbusmem@2,0:slot2
        对于SOC+卡的luxadm命令输出:
        # luxadm fcal s download
        
Found Path to 2 FC100/S Cards
Device:
/devices/io-unit@f,e6200000/sbi@0,0/SUNW,socal@0,0
Detected FC100/S Version: @(#) FCode 1.9 97/06/08
Device:
/devices/io-unit@f,e7200000/sbi@0,0/SUNW,socal@0,0
Detected FC100/S Version: @(#) FCode 1.9 97/06/08
Complete
        校验SPARCstorage Array 控制卡的固件
你可以使用luxadm命令来校验SPARCstorage Array控制卡的固件版本。每个控制器必须要独立执行。
                对于SPARCstorage Array的luxadm命令输出:
                        # /usr/sbin/luxadm display c3
SPARCstorage Array 110 Configuration
(/usr/sbin/ssaadm version: 1.15 96/03/17)
Controller path:
/devices/sbus@6,0/SUNW,soc@d,10000/SUNW,pln@a0000000,78ccf9:ctlr
DEVICE STATUS
TRAY 1                         TRAY 2                         TRAY 3
slot
1         RESERVED                 Drive: 2,0                         Drive: 4,0
2         Drive: 0,1                         Drive: 2,1                         Drive: 4,1
3         Drive: 0,2                         Drive: 2,2                         Drive: 4,2
4         Drive: 0,3                         Drive: 2,3                         Drive: 4,3
5         Drive: 0,4                         Drive: 2,4                         Drive: 4,4
6         Drive: 1,0                         Drive: 3,0                         Drive: 5,0
7         Drive: 1,1                         Drive: 3,1                         Drive: 5,1
8        Drive: 1,2                         Drive: 3,2                         Drive: 5,2
9         Drive: 1,3                         Drive: 3,3                         Drive: 5,3
10         Drive: 1,4                         Drive: 3,4                         Drive: 5,4
CONTROLLER STATUS
Vendor:                         SUN
Product ID:                 SSA110
Product Rev:         1.0
Firmware Rev:         3.6
Serial Num:         00000078CCF9
Accumulate Performance Statistics: Enabled
        校验A5000阵列控制器的固件
你可以使用命令:luxadm来显示A5000存储阵列的固件信息。每个阵列必须要独立执行。
        # luxadm display d
                                                (luxadm version: 1.28 98/01/22)
SENA
DISK STATUS
SLOT         FRONT DISKS        (Node WWN)         REAR DISKS (Node WWN)
0                 On (O.K.) 20000020370c2532         On (O.K.) 20000020370c25fe
1                 On (O.K.) 20000020370c261b         On (O.K.) 20000020370c262d
2                 On (O.K.) 20000020370c227a         On (O.K.) 20000020370c1d9e
3                 On (O.K.) 20000020370c22fb         On (O.K.) 20000020370c2338
4                 On (O.K.) 20000020370c2324         On (O.K.) 20000020370c25e2
5                 On (O.K.) 20000020370c257d         On (O.K.) 20000020370c1f14
6                 On (O.K.) 20000020370c2358         On (O.K.) 20000020370c1e9b
SUBSYSTEM STATUS
FW Revision:1.01 Box ID:3         Node WWN:5080020000011df0
Enclosure Name:d
        校验A5000的磁盘固件
你可以使用命令:luxadm来校验磁盘的固件版本。它需要使用一个特殊的包含磁盘固件补丁的程序来进行升级。
        
devsys2# luxadm disp AA,f1
DEVICE PROPERTIES for disk: AA,f1
Status(Port A):                         O.K.
Vendor:                                 SEAGATE
Product ID:                                 ST19171FCSUN9.0G
WWN(Node):                         20000020370d336f
WWN(Port_A):                         21000020370d336f
Revision:                                117E
Serial Num:                         9812R69750
Unformatted Capacity:         8637.338 MByte
Read Cache:                         Enabled
Minimum prefetch:                 0x0
Maximum prefetch:                 0xffff
Location:                                 In slot 1 in the Front of
the enclosure named:         AA
Path(s):
/dev/rdsk/c2t1d0s2
/devices/pci@6,4000/SUNW,ifp@3/ssd@w21000020370d336f,0:c,raw
        下载新的光纤通道的SBus卡的固件
你也可以使用luxadm来下载新的光纤通道Sbus卡的固件。SOC和SOC+的命令和文件名字会有所不同。这个命令下载所有光纤通道卡的固件文件。
u        下载SOC光纤通道Sbus卡固件
# luxadm –v fc s download –f ./fc_s_code
u        下载SOC+光纤通道Sbus固件
# luxadm –v fcal s download –f ./fc_s_code
        
                下载阵列控制卡固件
存储阵列控制器的固件必须在每个单独的阵列上升级。对于SPARCstorage Array和SENA Array的命令和文件名字是不同的。这个命令只下载被命名的存储阵列控制卡的固件文件。
u        下载SPARCstorage Array控制卡的固件
# luxadm download –f ./ssafirmware c1
u        下载SENA接口卡固件
# luxadm –s download –f ./ibfirmware d
                SOC和SOC+固件源文件下载
固件文件是SPARC可执行文件,通过使用软件补丁,源文件是可用的。
u        SOC Sbus卡固件
/usr/lib/firmware/fc_s/fc_s_fcode
u        SOC+ Sbus卡固件
/usr/lib/firmware/fc_s/fcal_s_fcode
                阵列控制器固件源文件
固件文件是SPARC可执行文件。其中一些源文件由Solaris操作系统加载,通过软件补丁,更新的版本是可用的。
u        SPARCstorage Array控制器固件
/usr/lib/firmware/ssa/ssafirmware
u        SENA接口板固件
/usr/lib/locale/C/LC_MESSAGES/ibfirmware
                ---------------------------------------------------------------------------------------------
注意----更新任何存储阵列的固件都是一个复杂的任务。必须遵守严格的规则和过程,可能会导致接口卡永久的毁坏。在试图进行任何固件更新前检查你的SUN 段的表示。
---------------------------------------------------------------------------------------------

第二章        Introduction to Managing Data
目标
                通过本章的学习,你将完成以下内容:
l        描述管理大量的磁盘时,所面临的问题
l        列出管理大量数据时的需求和技术
l        描述通常使用的RAID级别
l        描述每个RAID执行时性能及相关的可靠性
l        列出在对顺序和随机I/O的选择优化条带宽度的指导方针
                  虚拟磁盘管理  随着今天系统大小及需要的发展,Veritas卷管理软件(VM)在以下几方面提供提供了有用的帮助:l        可用性l        性能l        可测量性l        可维护性
虚拟磁盘管理
        
        数据的可用性
今天的服务器需要维护数据的高可用性。Veritas的卷管理软件(VM)在以下几方面提供了较大的改善:
l        防止失败的磁盘使得数据不可用
随着系统中大量磁盘的使用使得单一磁盘失败的可能性增加。数据冗
余技术能够防止因磁盘失败而使得数据不可用。
l        允许在文件系统被使用时增加它们的大小
允许在文件系统被使用时增加它们的大小,以此来减少系统的down机时间,并使系统管理的负担变少。
l        允许多主机配置
在一个双主机配置中,一个主机可以接替另一个失败主机的所有磁盘管理,这防止了失败主机使得数据不可用。
        性能
在今天许多应用都需要更高的数据吞吐能力。VM产品可以通过磁盘有效的平衡I/O加载,提高了系统性能。                        ---------------------------------------------------------------------------------------------
                注意----VM产品技术将在后面的章节中详细讨论
                ---------------------------------------------------------------------------------------------
        可测量性
从传统意义上来说,文件系统的大小限制于单个磁盘的大小。使用VM技术,你能够创建包含很多磁盘的文件系统。对于所有的应用都是透明的。文件系统的大小限制在UNIX系统下是1TB。
        可维护性
                通过一个GUI使管理变得简单。管理大量的磁盘和文件系统是复杂的,
一个直接的GUI界面使管理变得简单。
                 RAID技术概述  RAID是廉价磁盘冗余阵列的缩写。VM应用支持以下的RAID级别。l        RAID 0:条带/串联l        RAID 1:镜像l        RAID 0+1:条带加镜像l        RAID 5:带有奇偶校验的条带
RAID技术概述
RAID是廉价磁盘冗余阵列的缩写,更现代的说法是,独立磁盘的冗余阵列。
RAID这个概念最早是由1987年加州伯克利大学的David Patterson,Garth Gibson, Randy Katz提出的,他们的目标是展示一个RAID的性能可以达到或超过当时的一个单一的,大容量的,昂贵的磁盘。
在项目开发的过程中,随着频繁的磁盘失败,通过磁盘的冗余来避免磁盘数据的丢失已经是必须的了。这样一来,该项目的研究对于将来的RAID变得至关重要。
        RAID的标准
许多RAID级别在技术上是可以实现的,但是不经常使用。以下完整的列出了RAID级别:
l        RAID 0:条带或串联
l        RAID 1:镜像
l        RAID 0+1:条带加镜像
l        RAID 1+0:镜像加条带
l        RAID 2:加重平衡编码修正(Hamming code correction)
l        RAID 3:使用专用奇偶校验的条带化
l        RAID 4:独立的读取和写入
l        RAID 5:带有分布式奇偶校验的条带化
        --------------------------------------------------------------------------------------------------
注意----在VM中,RAID2,  3,4是不可用的。在商业应用中,它们通常不被使用。
        --------------------------------------------------------------------------------------------------
                 串联---RAID 0  串联可以复合多个物理磁盘成为一个单独的虚拟磁盘,并按如下方式组织:l        地址空间是相邻的l        没有数据冗余l        块(chunks)可以认为是物理磁盘或相邻区域的磁盘空间
串联----RAID 0
推动这种技术发展的主要原因是创建一个大于物理磁盘容量的虚拟磁盘设备。通过在逻辑上结合两个或更多物理磁盘来获得更大存储空间。串联也能使你扩展一个虚拟磁盘通过给它串联另外的物理磁盘。这项技术不限制磁盘大小,既成员磁盘的容量可以不同,而且不会损失磁盘空间。
                图2_1显示了串联3个物理磁盘设备。
                阵列管理软件就是负责将3个物理磁盘复合成一个虚拟磁盘设备,对于
应用来说,它只是个邻近的存储空间。
        
        优点
                通过使用RAID 0的串联结构可以获得以下优点:
l        当数据遍布在多个磁盘上时,串联可以提高随机的I/O性能。
l        写性能也是相同的;如果是随机读取的话,也可以提高读性能。
l        磁盘的全部容量都可以为用户存储数据。
局限性
        主要包括:
l        只使用串联将没有冗余,串联的卷可以通过镜像达到冗余。
l        串联的可靠性较低,一个磁盘数据的丢失将导致所有磁盘数据的丢失
l        当磁盘满,数据会通过所有成员磁盘扩展,但是,当磁盘未满时,最后的磁盘将不被使用,降低了磁盘的利用率。
                   条带----RAID 0  条带可以复合多个物理磁盘成为一个单独的虚拟磁盘,并按如下方式组织:l        地址空间是分段的l        I/O流在磁盘与磁盘间交换l        没有数据冗余l        对性能的增加有意义
条带----RAID 0
推动这种技术发展的主要原因是为了提高每秒I/O(IOPS)的性能。通过并行访问设备来增强性能。在并行访问中,虚拟设备中的所有磁盘大部分时间都用来服务I/O请求,所以提高了I/O的吞吐量。
阵列管理软件就是负责把整个阵列看做一个单独的虚拟磁盘。它使用多个物理磁盘并将它们复合为一个虚拟磁盘给应用。
如图2_2所示,I/O流被划分为称为条带(stripe)的段,从一个逻辑存储单元映射到两个或更多的物理磁盘。条带单元是隔行扫描的所以每个片上的复合空间也是交替的。
在这种结构下,没有数据保护,实际上,执行条带化后,丢失一个磁盘上的数据会导致所有条带磁盘的数据丢失。条带化增强了性能,但是降低了可靠性。
        优点
                通过使用RAID 0条带化结构可以获得的优势是:
l        对于大量的连续的I/O请求和随机的I/O请求增强了性能。条带单元的大小可以根据顺序或随机存取而进行优化。
l        磁盘的全部容量都可以为用户存储数据。
局限性
        主要包括:
l        没有冗余
l        条带化的可靠性较低,丢失一个磁盘的数据将导致所有条带磁盘的数据丢失。
条带单元大小的策略
        优化一个条带化RAID 0结构条带单元大小的策略依赖于卷访问的类型。
        顺序访问环境
在一个顺序的环境里,当请求涉及到条带宽度范围内的所有磁盘成员时,条带化能够提高性能。举例来说,一个条带包含4个磁盘,一个I/O请求为128Kbytes,那么,配置条带单元的大小为32Kbytes。
        随机访问环境
在一个随机环境里,条带化可以提高性能。随机访问受控于磁盘的搜索和寻道时间,随机的I/O要比顺序的I/O小很多,通常是从2Kbytes到8Kbytes。
当条带单元的大小配置为比请求的大小大很多的时候,性能得到优化。举例来说,对于一个8Kbytes的请求,至少配置条带单元的大小为16Kbytes。
                --------------------------------------------------------------------------------------------------
注意----在Veritas卷管理中,默认的条带单元的大小是128扇区(sectors)或64Kbytes。
        --------------------------------------------------------------------------------------------------
                镜像----RAID 1  镜像提供了数据的最大可用性,并有以下功能:l        所有数据的完全冗余拷贝l        提高了读性能l        透明化了磁盘失败
镜像----RAID 1
                这项技术发展的主要原因是它能够提供高级别的可用性及可靠性。
                镜像(RAID 1)通过数据在独立spindles上的多次记录来提供冗余。对于
应用来讲,镜像磁盘显示为一个虚拟磁盘。一旦一个物理磁盘失败,失败磁盘上的镜像也就无效了,但系统继续通过未受影响的磁盘进行操作。
阵列管理软件对多个物理磁盘上的数据进行双重复制并对应用表现为一个虚拟磁盘(如图2_3)。
在VeritasVM中,镜像看上去是一个单独的逻辑地址,block 0 to n block in length。因为这一点,VM不能使用每个独立的镜像格式涉及到它自身。镜像的一边可以做条带化,而另一边可以进行串联。当缺乏足够的物理磁盘时需要这么做,或执行它来测试系统性能。无论如何,VM可以通过访问镜像的两端保证数据的一致性,而与格式无关,因为它写数据到一个逻辑块地址中。
        优点
                通过使用RAID 1的镜像结构可以获得如下的优点:
l        在一个或多个磁盘上可以获得一个完全冗余的数据拷贝
如果一个阵列中的镜像连接到不同的接口板,就可以达到非常高的数据可靠性级别。
               
l        所有驱动器都可以用来读取,提高了性能
在一个多用户或多任务环境下,当多个磁盘成员要获得满意的读效果时,镜像提高了读性能。相反,如果只有单一的卷读取进程,则将不能提高性能。
l        你可以设置3路镜像,但性能会受很大影响
在3路镜像中,写性能最大为44%。
        局限性
                镜像需要使用两倍的磁盘,本质上占用了2倍的存储空间
                镜像降低了大约15%的写性能,这实际上小于典型的RAID 5的写损失
(RAID 5的写性能最大到70%)。

镜像—条带(RAID 0+1)  复合条带化的镜像可以提供如下功能:l        极大的提高了性能l        完全的数据冗余l        透明化了磁盘失败
镜像—条带(RAID 0+1)
使用复合条带和镜像的主要原因是获得RAID 0的性能和RAID 1的可用性。
安装它需要较高的花销,但许多用户认为它是值得投资的。
如图2_4,两个磁盘可以先进行条带化,然后进行镜像。可以获得镜像的高可靠性。因为同时使用了条带技术,它的性能要比单独使用镜像的性能要好得多。
                 
优点
它的一个优点就是有利于一个磁盘上分布数据的访问(提高了I/O per second),并增强了数据冗余。
        
        局限性
                RAID 0+1是高花销的镜像系统,需要2倍的独立磁盘空间。
条带----镜像(RAID 1+0)  复合镜像化的条带可以提供以下功能:l        极大的提高了性能l        完全的数据冗余l        透明化了磁盘失败l        比RAID 0+1提供了更高的磁盘失败容许
条带----镜像(RAID 1+0)
RAID 1+0拥有所有RAID 0+1性能及可靠性的优点,但它允许了更高级别的磁盘失败而不丢失数据。
RAID 1+0通常在磁盘失败后拥有更快的恢复时间,因为它只需要代替单独的条带来恢复而不是整个镜像。
                RAID 1+0推荐在大型卷中使用,因为,失败的恢复时间是个关键。
如图2_5,RAID 1+0的概念根本不同于RAID 0+1,在RAID 1+0的配置中,每个条带是单独镜像的。
        优点
                因为每个条带被独立镜像,可以容许大量的磁盘失败而无需禁止卷。
                这个配置的性能优于RAID 0+1。
        局限性
                RAID 1+0是高花销的镜像系统,需要2倍的独立磁盘空间。
带有分布式奇偶校验的条带化----RAID 5  一个RAID 5的卷结构可以进行镜像因为:l        条带化结构拥有较好的读性能l        可靠性得到提高,而且没有镜像花费高
带有分布式奇偶校验的条带化----RAID 5
        
RAID 5配置有吸引力的选择在于对应用的读加强(Read-intensive),增强了数据的保护性。
伯克利组织介绍了3个带有奇偶较难的RAID级别,它们执行通常的数据保护机制。RAID 3,4,5 全都使用bit-by-bit的概念进行奇偶较验来保护数据的丢失。
RAID 3,4,5使用异或运算规则(XOR)来进行奇偶计算。在RAID 3,4中它通过执行bit-by-bit的方式来与成员驱动器的条带单元进行对应,并将结果写入一个对应的奇偶校验的磁盘。但在RAID 5中,奇偶校验值将分布在所有成员驱动器上(如图2_6)。
附加功能包括:
l        对于单个的磁盘来说,单独访问是有效的。
l        数据和奇偶较验值都进行了条带化。
l        Reads per second can reach disk rate times number of disks.
l        全部的随机的I/O性能依赖于写的百分率。如果写超过20%,那么就可以考虑选择RAID 0+1了。
优点
l        奇偶校验保护了单一磁盘的失败
l        RAID 5只需要一个附加的磁盘,其他的都可以用来存储数据。
局限性
l        在Veritas VM中,最少需要3块磁盘来完成RAID 5
l        RAID 5不可以被镜像,通过奇偶校验信息来提供冗余
l        写增强(Write-intersive)性能是很差劲的
如果写超过了20%,那么就可以考虑选择RAID 0+1了
l        在一个写增强的环境里,如果一个磁盘失败,将可能对性能产生严重的影响
性能因素
        一个磁盘失败,数据仍然可以访问,但性能会受影响
l        从一个继续存在的磁盘读取数据 ----- 没有改变
l        从一个失败的磁盘读取数据 ----在条带中读取相对应的条带单元并于原始数据异或后(XOR)相连接
l        写一个继续存在的磁盘 ---- 如果失败的磁盘保存有奇偶校验的数据,写数据通常不计算奇偶校验。如果失败的磁盘保存有数据,那么将请求一个:读—修改—写的顺序
l        写入一个失败磁盘 ---- 继续存在的所有磁盘上的所有数据将与新数据使用异或(XOR)后进行连接,结果将写入到奇偶校验驱动器
l        从一个单一磁盘失败中恢复 ---- 在条带中余下的条带单元的数据被读取,使用异或(XOR)后进行连接,将结果写入替代的磁盘中,假定在配置中有一个有效的交换(spare)空间。
写修改了全部的条带宽。
l        所有新的数据条带单元将通过使用异或进行连接,产生新的奇偶校验值。
l        数据和奇偶校验值将写入到日志
l        新的奇偶校验值将写入到奇偶校验条带单元,数据则写入到数据条带单元,所有条带单元都将被写入。
如果一个写修改多于一个磁盘但小于全部的条带宽度,它请求一个读—
修改—写顺序。性能被压缩至80%,顺序如下:
1.        使用新写入的数据更新数据条带单元,数据被读入到内部缓冲中
2.        在新的数据上执行异或(XOR)来产生新的奇偶校验条带单元
3.        新数据和新的奇偶校验被写入到日志
4.        新的奇偶校验被写入到奇偶校验条带单元,数据被写入到数据条带单元,所有写都是并行操作的。
如果写修改超过了数据磁盘的一半,但少于一个完全条带,它比读—修
改—写,节省了大量的I/O时间,因为它不需要读取奇偶校验区。并且只请求一个自然数据的读取
l        将自然数据从未改变的数据条带单元中读入到内部缓存
l        将新数据与老的,未受影响的数据执行异或(XOR)来产生新的奇偶校验条带。
l        新的数据和奇偶校验被记录(如果日志被允许的话)
l        新的奇偶校验被写入到奇偶校验条带单元,新的数据被写入到数据条带单元,所有的条带单元执行一个单一写。
        --------------------------------------------------------------------------------------------------
        注意----一些RIAD 5执行时对于大量的连续传输达到较高的性能
        --------------------------------------------------------------------------------------------------
        优化条带宽度的策略
这些策略对于条带单元的大小提供了良好的规则来避免严重的性能损失。I/O请求的大小可以有较大的变化。应用提供商或软件开发人员可以提供这些信息。如果对项目的I/O大小完全不能确认,接受由VeritasVM提供的默认值是安全的。
                顺序访问环境
                        在一个顺序访问环境,可以由如下方式提高性能:
n        如果请求涉及到条带宽度内的所有成员磁盘,性能最好编址
n        I/O请求单元大小由所包含的磁盘数量划分
举例来说,如果I/O请求是128Kbytes,条带包含4个磁盘,那么配
置条带单元大小为32Kbytes
                随机访问环境
在一个随机环境里,条带化可以提高性能。随机访问受控于磁盘的搜索和寻道时间,随机的I/O要比顺序的I/O小很多,通常是从2Kbytes到8Kbytes。
当条带单元的大小配置为比请求的大小大很多的时候,性能得到优化。举例来说,对于一个8Kbytes的请求,至少配置条带单元的大小为16Kbytes。
        --------------------------------------------------------------------------------------------------
注意----在VM中的RAID 5卷中,默认的条带单元大小是32扇区或16Kbytes。
        --------------------------------------------------------------------------------------------------

第三章 Veritas Volume Manager Installation
目标
        通过本章的学习,你将可以掌握如下内容:
l        描述Veritas VM如何利用磁盘空间
l        安装Veritas VM软件
l        解释Veritas VM中vxinstall单元的快速安装与定制安装的不同
l        使用vxinstall来初始化Veritas VM的安装
安装过程  Veritas VM安装过程可能是复杂的,与以下几方面有关:l        预安装计划l        当前系统的检查点(checkpoint)l        新配置的安装和测试
安装过程
Veritas VM的安装可以从一个小型的桌面系统到一个大型的有着几个T字节数存储的服务器,大小是不同的。不考虑系统大小,基本的安装进程是一样的。
               
        预安装计划
软件安装的过程是非常具有挑战性的。过程和方式的选择与每个组织的当前配置和需求相关,是变化的,但有一点是不变的:在安装前需要认真的计划。
                系统停机时间(downtime)
在初始安装或升级安装期间,经常需要关闭一段时间的系统。这通常在系统的非高峰时期执行。透澈的预计划将使得系统的停机时间最少。
                磁盘空间和交换空间的需求
确定新的操作系统将需要多少的磁盘空间以及分区规划是明智的。你可能需要考虑增加交换(swap)空间,或分配足够的空间给那些加载sbin和usr的目录程序。
                磁盘封装策略
你必须决定,哪些磁盘将由Veritas VM来进行管理。因为将来需要配置VM,你需要决定逻辑组织或磁盘分组。例如将10块磁盘分配给财务部门使用,将20块磁盘分配给市场部门使用。
在VM控制下你可以选择不进行磁盘替换。当你的一些应用当正在使用文件系统或分区,并且你不想更新与你的应用相关的文件系统或分区时,这个功能是有用的。
你可能也希望将你的系统磁盘置于VM控制之下,这样,所有磁盘都可以通过一个单独的,易于使用的磁盘管理系统进行访问。使系统盘处于VM控制之下的主要原因是:它可以被镜像。镜像能够在磁盘一旦失败的情况下提供冗余来确保数据的继续访问。如果root磁盘处于VM的控制之下并被镜像,那么系统在一个磁盘失败的情况下依然是有效的。
替换VM控制下的磁盘的一个缺点是,恢复是复杂的(在一个root盘失败的情况下)。
磁盘上已经存在的数据可以被封装,当数据被封装后,这个分区被增加到VM控制器下,使这个分区保持完整并维护数据的完整性。这可以在安装时执行或在以后执行。
                新硬件配置
在一个增加新的磁盘存储设备计划里,你也需要计划增加的系统负载(通过增加更多的内存及大量的备份磁带系统)。
               
                安装模式
在定制安装中,用户可以手动选择封装或初始化一个磁盘,或单独使用磁盘(Leaving the disk alone)。在快速安装中,所有包括活动分区的磁盘(包括系统盘)将自动被封装,同时,所有其他磁盘被初始化。使用定制安装方式是最好的!
                更新资源
一个通常的失败原因是找不到你的CD-ROM,或没能发现所需要的补丁,或丢失了安装文档。找齐所有需要的CD-ROM,文档和补丁,可以将你的失败可能性减到最小。你不仅要找到文档(如:release notes和安装过程),你也要阅读它。这样才能确保你找到所有所需要的补丁。
                注册(Licensing)
VM使用License来控制访问。如果你使用SPAREstorage Array 100或一个A5000连接到你的系统,VM将自动产生一个带有使用限制的License。阵列的License同意你对连接在SPARCstorage阵列控制器或A5000接口上的磁盘的使用,但不允许进行条带化及RAID 5在非阵列磁盘上(SSA或A5000)。但是你可以镜像或串联非阵列磁盘连接到相同主机。更多的功能需要购买一个附加的License。
        当前系统的检测点(checkpoint)
当安装了一个新的或是复杂的应用,如Veritas VM,你必须准备好返回你的系统到它的初始状态。
               
                备份
你不止是要必须备份,还必须要校验它们。一个硬件失败或磁盘空间的不足都会使更新受阻,你必须能够恢复或撤消软件。在安装开始之前执行一个完整的备份。
                系统/应用的配置文档
你能够定义并可能会重新构造你的系统是很重要的。你需要知道一些项目如,你的打印机配置,路由表,域名系统(DNS)配置,特殊应用的文件和它们的内容,以及磁盘和交换的设置。对于一个新系统的升级或安装,你可能会被问及一些从前的问题。所以,你需要建立一个通常的系统配置文档,特定应用的配置以及它们相关的文件。
                新配置的安装和测试
如果这是一个新安装,预先调成产品模式进行测试。所有SUN的产品在出厂之前都进行过广泛的测试,但是对于环境的改变和未知因素则跳过,如果时间允许,测试需要一个周期。所有的组件测试都是在理想状态下的,包括存储子系统。在这段时间里,发布的任何相关的补丁和固件都能够解决。
                 软件安装过程  完整的,顺序的理解一个Veritas VM软件的安装,需要你熟悉以下几个方面:l        VM分布式的包的命名和功能l        VM包的安装方式l        安装过程中VM包的分布l        包选项
VM软件安装
                在每个版本的VM产品和SUN的操作系统中,它们可能会有很大的改变需要涉及支持文档。
                在每个版本的VM中,都附带一个安装向导。这个向导是个全面的文档,定义了在Solaris操作系统中安装和升级VM的各个阶段。这个文档讲述的比较明白。
        软件包安装
在CD-ROM上有5个包。它们包括在线帮助页,PDF及Postscript格式的在线文档,及Veritas VM。为了使用它们:
1.        安装Solaris操作系统
2.        安装Solaris补丁
3.        安装Veritas VM包
4.        安装相关的VM补丁
5.        安装了任何补丁后,应该重启系统。否则继续软件的初始化
6.        通过使用vxinstall程序来初始化VM软件
        --------------------------------------------------------------------------------------------------
注意----这个安装模式适用于一个新的安装,如果你从一个预先安装的版本升级的话,请查看安装向导及版本说明。
        --------------------------------------------------------------------------------------------------
        软件分布
                分布在CD-ROM上的VM软件包括以下包:
        --------------------------------------------------------------------------------------------------
                        包                                                                描述
        --------------------------------------------------------------------------------------------------
                VRTSvmdev                VERITAS VM, 头和库文件
                VRTSvmdoc                VERITAS VM, 用户文档
                VRTSvmman        VERITAS VM, 帮助页
                VRTSvmsa                VERITAS VM, 存储管理(Store Administrator)
                VRTSvxvm                VERITAS VM,二进制文件
        --------------------------------------------------------------------------------------------------
        软件安装
                VM软件包使用命令:pkgadd进行安装
                # pkgadd –d pwd
                The following packages are available:
1 VRTSvmdev         VERITAS Volume Manager, Header and Library Files
(sparc) 3.0.2,REV=08.30.1999.15.56
2 VRTSvmdoc         VERITAS Volume Manager (user documentation)
(sparc) 3.0.2,REV=08.26.1999.22.51
3 VRTSvmman        VERITAS Volume Manager, Manual Pages
(sparc) 3.0.2,REV=08.30.1999.15.55
4 VRTSvmsa         VERITAS Volume Manager Storage Administrator
(sparc) 3.0.3,REV=08.27.1999.13.55
5 VRTSvxvm         VERITAS Volume Manager, Binaries
(sparc) 3.0.2,REV=08.30.1999.15.56
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
        选项支持包
依赖于你的系统的硬件配置,对于特殊的选项可能需要附加的包。在安装之前,请仔细的读取所有的安装文档。
通常,特殊支持的软件已经绑定了相关的产品,并已经被安装。一个典型的例子就是一些新的存储阵列需要特殊的软件支持。
        
                 初始化Veritas VM  VM软件的初始化由处于VM控制下的至少一个磁盘使用程序vxinstall来完成。这个过程由以下几个阶段:l        自动排除磁盘l        参数选择l        启动盘封装l        初始化选择l        系统重配置
初始化Veritas VM
                只有至少一个磁盘处于VM的控制之下,VM软件在系统启动时才能够正确启动。这个初始化由命令:vxinstall来执行。理解这个过程是很重要的,特别是对于软件升级来说。
        --------------------------------------------------------------------------------------------------
注意----命令:vxinstall只有在你执行并应用了一个summary之后,才会使得改变生效(summary在这个过程的后期生成)。
        --------------------------------------------------------------------------------------------------
        封装和初始化
只有当一个包含了至少一个磁盘的磁盘组(disk group)----rootdg被命名后,VM软件才会启动。这是Veritas VM软件的标准功能。你可以两种方式来达到这个要求:
n        封装系统启动磁盘
n        初始化磁盘,并在rootdg磁盘组中进行替代
封装过程
        当任何磁盘被VM封装时,已经存在的文件系统将会被保留,并且磁盘上一个小的分区将由VM来使用。如果这个磁盘是系统的启动盘,VM会意识到这一点,并且刻意的保存所有数据。更细节的信息请参阅附录B。
                初始化过程
当任何磁盘由VM进行初始化时,磁盘被重新分配一个VM的标准配置。初始化的磁盘只有两个片(slice),slice 3和slice 4。一个slice是非常小的,用来存储VM的配置记录,其它的片包含磁盘剩余。
                        当一个磁盘由VM进行初始化,所有数据都将丢失。
        关于程序vxinstall
程序vxinstall第一次搜索连接在系统上的控制器,然后提示你进行一个安装选择----快速安装(Quick)或定制安装(Custom)。你必须要理解每个选择的含义。
        --------------------------------------------------------------------------------------------------
警告----程序vxinstall只运行一次!!如果它运行了多次,VM的启动看上去就会有问题了。如果你在使用vxinstall的过程中忘记了增加一个磁盘,不要再次运行vxinstall,你可以在以后的GUI界面或命令行(CLI)方式来增加它。
        --------------------------------------------------------------------------------------------------
                排除磁盘和控制器
你可以通过创建文件:/etc/vx/disks.exclude来包含你不想由VM控制的磁盘列表。每个磁盘的入口必须是一个独立的行。你也可以创建一个文件:/etc/vx/cntrls.exclude来排除你不想在安装中使用的控制器。
                        --------------------------------------------------------------------------------------------------
注意----你不能不包括所有磁盘:在vxinstall的过程中至少增加一个磁盘,任何不包括的磁盘可以在以后通过使用VM的GUI或CLI进行增加。
        --------------------------------------------------------------------------------------------------
                vxinstall的启动顺序
vxinstall程序扫描系统并试图标识所有磁盘控制器接口。控制器列出了能够包含你的系统启动磁盘和其他已经加载文件系统的磁盘。
初始化过程中,你要仔细处理。在开始之前,你必须理解你的系统硬件配置。
                # vxinstall
                Generating list of attached controllers....
-/|\-/|\-/|\-/|\-/|\
Volume Manager Installation
Menu: Volume Manager/Install
The Volume Manager names disks on your system using the controller and disk number of the disk, substituting them into the following pattern:        
c; t; d;
If the Multipathing driver is installed on the system then for the disk devices with multiple access paths, the controller number represents a multipath pseudo controller number. For example, if a disk has 2 paths from controllers c0 and c1, then the Volume Manager displays only one of them such as c0 to represent both the controllers.
Some examples would be:
c0t0d0 - first controller, first target, first disk
c1t0d0 - second controller, first target, first disk
c1t1d0 - second controller, second target, first disk
The Volume Manager has detected the following controllers on your system:
c0:
c2:
c4:
Hit RETURN to continue.
                程序vxinstall 参数选择
在标识了所有有效的磁盘控制器后,vxinstall提示你进行一个安装参数选择:
Volume Manager Installation
Menu: Volume Manager/Install
You will now be asked if you wish to use Quick Installation or Custom Installation. Custom Installation allows you to select how the Volume Manager will handle the installation of each disk attached to your system.
Quick Installation examines each disk attached to your system and         attempts to create volumes to cover all disk partitions that might be used for file systems or for other similar purposes.
If you do not wish to use some disks with the Volume Manager, or if you wish to reinitialize some disks, use the Custom Installation option Otherwise, we suggest that you use the Quick Installation option.
Hit RETURN to continue.
Volume Manager Installation Options
Menu: Volume Manager/Install
1 Quick Installation
2 Custom Installation
? Display help about menu
?? Display help about the menuing system
q Exit from menus
Select an operation to perform: 2
快速安装(Quick)是不被推荐的,默认的,封装所有磁盘,包括root磁盘。这个参数包含了以下功能:
u        执行所有连接到系统的磁盘,封装已经存在的分区(在VM下替代这些分区,并维护数据的完整性)或初始化那些不包含分区的磁盘。
u        增加所有磁盘到默认的磁盘组----rootdg
u        更新 /etc/vfstab 来确保预先加载到磁盘分区上的文件系统将由卷来代替加载。
定制安装(Custom)允许进行磁盘的封装和初始化。
                启动磁盘封装
                        在定制安装中,vxinstall对包含功能数据的磁盘很敏感。
                Volume Manager Custom Installation
Menu: Volume Manager/Install/Custom
The c0t0d0 disk is your Boot Disk. You can not add it as a new disk. If you encapsulate it, you will make your root filesystem and other system areas on the Boot Disk into volumes. This is required if you wish to mirror your root ilesystem or system swap area.
Encapsulate Boot Disk [y,n,q,?] (default: n) n
Volume Manager Custom Installation
Menu: Volume Manager/Install/Custom/c0
Generating list of attached disks on c0....
;
No disks were found attached to controller c0 !
Hit RETURN to continue.
        --------------------------------------------------------------------------------------------------
注意----封装过程与简单的初始化相比,是很复杂的,将在后续章节中继续讨论。
        --------------------------------------------------------------------------------------------------
                选择安装
如果你不能确定哪个磁盘进行初始化,选择参数:Install one disk at a time 。
                The Volume Manager has detected the following disks on controller c2:
c2t33d0 c2t35d0 c2t37d0 c2t50d0 c2t52d0
Installation options for controller c2
Menu: Volume Manager/Install/Custom/c2
1 Install all disks as pre-existing disks(encapsulate)
2 Install all disks as new disks. (discards data on disks!)
3 Install one disk at a time.
4 Leave these disks alone.
Select an operation to perform: 3
Installation options for disk c2t33d0
Menu: Volume Manager/Install/Custom/c2/c2t33d0
1 Install as a pre-existing disk. (encapsulate)
2 Install as a new disk. (discards data on disk!)
3 Leave this disk alone.
Select an operation to perform: 2
Are you sure (destroys data on c2t33d0) [y,n,q,?] (default: n) y
Enter disk name for c2t33d0 [;,q,?] (default: disk01) newroot
                选择初始化
                        对于每个控制器,你将会有如下的选项:
n        Install all disks as pre-existing disks(encapsulate)----如果你选择了这个参数,将会创建一个卷,它将封装这个磁盘的所有分区。文件:/etc/vfsbab将会更新以确保原先加载到磁盘上的分区将由卷来代替加载。
n        Install all disks as new disks. (discards data on disks!)----在这个控制器上的所有磁盘将被重新初始化,这将毁掉磁盘上的所有数据并将其作为空闲空间来分配新卷或作为已经存在的卷的镜像。
n        Install one disk at a time----对于每一个磁盘,不管你是封装它,还是以新磁盘来安装,或是使它独立,你都将被提示。
n        Leave these disks alone----这些磁盘将不会处于VM控制之下,如果有一些应用正在使用这些磁盘,并且你不想由VM对它进行管理,可以选择此项,这样应用会继续对这些磁盘的访问而不受任何改变。
默认的,在vxinstall过程中,所有的磁盘都被增加到磁盘组:rootdg
中。如果你想创建附加的磁盘组,使用定制安装中的使得一些磁盘独立(leave alone)可以很容易的实现,这样,以后可以使用GUI或CLI来增加不包括在内的磁盘来创建不同的磁盘组。注意,在vxinstall的安装过程中,你必须要增加至少一个磁盘到rootdg中。
                完成(completion)
vxinstall只有在选择过程完成时才对磁盘进行初始化或改变。你可以在过程结束之前的任何时刻选择退出。
                        The following is a summary of your choices.
c2t33d0 New Disk
Is this correct [y,n,q,?] (default: y) y
The Volume Manager is now reconfiguring (partition phase)...
Volume Manager: Partitioning c2t33d0 as a new disk.
The Volume Manager is now reconfiguring (initialization phase)...
Volume Manager: Adding newroot(c2t33d0) as a new disk.
The Volume Daemon has been enabled for transactions.
The system now must be shut down and rebooted in order to continue the reconfiguration.
Shutdown and reboot now [y,n,q,?] (default: n) y
                  VM磁盘管理  当Veritas VM使磁盘处于它的控制之下,它在磁盘上创建两个区域:l        私有区域l        公共区域
VM磁盘管理
               
        物理磁盘分层
如图3_1所示,已经由VM初始化的物理磁盘包含两个部分被称为:私有(private)区域和公共(public)区域:
n        私有区域被配置信息所使用
n        公共区域被用来数据存储
默认的,VM使用分区3和4来做为私有分区和公共分区。VM将为私
有区域使用一个柱(cylinder),它的大小依赖于磁盘的几何参数。在较大的磁盘上,一个柱可以存储超过一个Mbyte的数据。
公共区域被配置为使用物理磁盘所剩余的所有空间。
                  私有区域的使用  一个由VM初始化的磁盘包含以下的管理信息:l        磁盘头(Disk Header)l        配置数据库l        内核日志
私有区域的使用
        
        磁盘头(Disk Header)
在一个磁盘的私有区域,磁盘头是以块来存储的,它定义了以下这些磁盘的导入(import)属性。
n        当前主机对磁盘的所有权
当一个磁盘是一个磁盘组的一部分,它由一个特定主机所使用,这个磁盘被标识(stamp)了主机的hostname。
如果另一个系统试图访问这个磁盘,它将检测到一个非匹配的host ID(hostname),并被禁止访问,除非第一个系统不再继续使用这个磁盘为止。
n        磁盘标识(Disk Identifer)
当一个物理磁盘的私有区域被初始化时,将分配给它一个64位的唯一标识。
        配置数据库
配置数据库(有时被称为configdb)包含特定磁盘组的配置信息。默认的,VM保存每个磁盘组的4个配置数据库的拷贝来防止任何丢失磁盘组信息的可能。
每个配置数据库的拷贝包含以下的信息:
n        dgname----由管理员分配的磁盘组的名字
n        dgid----当磁盘组被创建时分配给它的64-byte的唯一标识符。这个标识不同于dgname,那是由管理员来分配的。Dgid(磁盘组id)用来检测那些被管理员标识为相同名字,但实际上是完全不同的磁盘组。
n        Records----记录用来描述在一个磁盘组中被创建的VM结构。
        --------------------------------------------------------------------------------------------------
                注意----并不是所有的私有区域都有一个配置数据库的拷贝
        --------------------------------------------------------------------------------------------------
        内核日志
内核日志保存在磁盘的私有区域并由VM内核写入。日志包含的记录描述了动作的具体类型如,事务委托(transaction commit),从I/O失败中分离丛的结果(plex detaches resulting fomr I/O failure),脏区日志失败(dirty region log failures),卷的第一次写入,和卷的关闭。在系统崩溃或清除性重启(crash or clean reboot)后,使用它来恢复磁盘组之前的状态。
                  VM环境  在VM安装过程中,软件被分布安装到几个位置。你要熟知以下这些:l        VM启动文件的位置和功能l        VM系统启动信息和过程l        重要的二进制和脚本文件的位置
VM环境
一旦VM软件被安装和初始化,如果你要进行有效的管理,你必须要熟知以下环境:
                VM系统启动文件
在VM的安装过程中,对文件:/etc/system作了如下改动,并且VM启动文件被增加到目录:/etc/rcX.d中。
                        /etc/system文件的改变:
在 /etc/system中增加的入口来强迫加载vx设备驱动(vxio, vxspec, vxdmp)
                        
                        /etc/rcX.d中增加的脚本文件
一定数量的VM脚本文件被增加到目录:/etc/rcX.d目录中,用来在启动时启动VM软件
l        /etc/rcS.d/S25vxvm-sysboot----这个文件在启动的顺序中被较早运行来配置 / 和 /usr 卷。这个文件也包含了可配置的诊断参数。
l        /etc/rcS.d/S35vxvm-startup1----这个文件在运行 / 和 /usr后有效,并使得在Solaris启动顺序中需要较早运行的其它卷有效。
l        /etc/rcS.d/S85vxvm-startup2----这个文件启动了I/O守护进程,重建目录 /dev/vx/dsk和 /dev/vx/rdsk,导入所有磁盘组,并启动所有在启动顺序中还未启动的卷。
l        /etc/rcS.d/S86vxvm-reconfig----这个文件包含命令来执行fsck在root分区。
l        /etc/rc2.d/S95vxvm-recover----这个文件连接了plexs并且启动了VM监视进程(watch daemon)。
l        /etc/rc2.d/S96vxvm-server----这个文件启动了新的VM命令服务器来应答远端客户软件。
系统启动信息
当Solaris系统已启动并且VM启动文件已经执行,几个重要的启动信息将会显示出来:
                Rebooting with command: boot
Boot device: disk File and args:
SunOS Release 5.7 Version Generic 64-bit [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1998, Sun Microsystems, Inc.
VxVM starting in boot mode...
configuring network interfaces: hme0.
Hostname: devsys1
VxVM general startup...
The system is coming up. Please wait.
checking ufs filesystems
/dev/rdsk/c0t0d0s3: is clean.
starting routing daemon.
starting rpc services: rpcbind keyserv
keyserv done.
Setting default interface for multicast: add net 224.0.0.0: gateway
devsys1
syslog service starting.
Print services started.
volume management starting.
Starting RMI Registry
Starting Veritas VM Command Server
Starting Veritas VM Server
The system is ready.
        系统启动过程
                vxconfigd
卷配置守护进程(vxconfigd),由脚本/etc/rcS.d/S25vxvm-sysboot在启动顺序中被较早的启动。在VM软件运行前需要先运行它,必须配置默认的磁盘组rootdg才可以正常启动这个守护进程。
                vxrelocd 或 vxsparccheck
                        在启动过程中,脚本S95vxvm-recover启动一个或其他。
                vxnotify
                        这个守护进程由脚本vxrelocd或vxsparccheck来启动
                vxrecover
这个进程在系统启动过程中,依赖于卷的修复程度,可以由不同的脚本来执行:S35vxvm-startup1, S85vxvm-startup2, S95vxvm-recover。
                vmsa_server
脚本S96vxvm-server后台启动文件:/opt/VRTSvmsa/bin/vmsa_server 脚本vmsa_server启动2个Java进程(jre)和1个cmdserver进程。
        系统和用户执行文件
                位于目录 /opt中的VM软件
                        这包括:
l        /opt/VRTSvxvm ---- Veritas的二进制文件
l        /opt/VRTSvmsa ---- Veritas的服务器软件
位于目录 /usr/sbin中的VM软件
        主要包括:
                                vxassist         vxdctl                 vxdg                 vxdisk                 vxdiskadd
vxdiskadm         vxedit                 vxinfo                 vxinstall                 vxiod
vxlicense        vxmake         vxmend         vxnotify         vxplex
vxprint                 vxrecover         vxrelayout         vxsd                 vxserial
vxstat                 vxtask                 vxtrace                 vxvol
位于目录 /etc/vx/bin中的VM软件
        主要包括:
                                egettxt                         strtovoff                 vxapslice                 vxbootsetup
vxcap-part                 vxcap-vol                 vxcheckda                 vxchksundev
vxckdiskrm                 vxcntrllist                 vxdevlist                 vxdiskrm
vxdisksetup         vxdiskunsetup         vxdmpadm                 vxedvtoc
vxeeprom                 vxencap                 vxevac                         vxmirror
vxmkboot                 vxmksdpart                 vxnewdmname         vxparms
vxpartadd                 vxpartinfo                 vxpartrm                 vxpartrmall
vxprtvtoc                 vxr5check                 vxr5vrfy                 vxreattach
vxrelocd                 vxresize                 vxroot                         vxrootmir
vxslicer                 vxspare                         vxsparecheck         vxswapreloc
vxtaginfo                 vxunroot
        --------------------------------------------------------------------------------------------------
注意----在启动时,卷配置守护进程 /sbin/vxconfigd启动
        --------------------------------------------------------------------------------------------------
VM重配置  VM目标状态的改变将会被检测到并被记录在如下的VM配置记录:l        vxio驱动检测并报告设备错误l        vxio驱动更新内存中的记录l        vxconfigd守护进程更新磁盘中的记录
卷管理(VM)的重配置
Veritas VM保存位于内存和写入一个或多个磁盘的卷信息拷贝的更新。这个状态会随时更新,当卷配置或有效性发生改变时。
                主要涉及的元素:
u        vxio软件驱动
u        vxconfigd配置守护进程
当一个磁盘组被导入并被标识为活动状态时,在内存中创建了一个
configdb的拷贝,并使用它来跟踪所有卷中配置或状态的改变。如图3_2所示,当vxio驱动更新了位于内存中的configdb拷贝时,vxconfigd更新磁盘端的configdb拷贝。
当试图访问一个虚拟结构时,vxio驱动检查内核配置表。磁盘端的
拷贝可以不需执行。
        初始化卷配置
                当VM启动时,vxconfigd导入属于VM 服务器的磁盘组。
                当磁盘组被导入后,vxconfigd读取位于磁盘端的configdb记录来创建内
核配置表。
        卷重配置
当vxio接收到一个硬件设备错误通知,它禁用它正在试图访问的卷,并更新VM内核配置表。它同时也通知vxconfigd发生了一个配置改变。

第四章  Veritas Volume Manager Basic Operation
目标
                通过本章的学习,你将可以掌握如下的内容:
l        定义功能和VM目标之间的关联
l        显示VM目标的属性
l        使用VM来初始化一个磁盘
l        创建一个磁盘组并为其增加磁盘
l        为一个VM磁盘改名
l        在一个磁盘组中移除一个磁盘
l        在VM控制器中移除一个磁盘
l        测定有效的空闲磁盘空间
VM初始化回顾  在开始之前,回顾一下以下信息:l        初始化或封装进程l        私有或公共区域格式l        初始化磁盘类型
VM初始化回顾
当VM软件使一个磁盘处于一个控制之下时,它首先检查磁盘然后决定向下进行的最好方式。如果在已知的磁盘上可以表示日期,那么就可以执行多种初始化。
        初始化
当Veritas VM初始化一个新磁盘,它创建了两个分区:一个小分区称为私有分区(private region),和一个覆盖了所有剩余磁盘空间的大分区称为公共分区(public region)。
        --------------------------------------------------------------------------------------------------
注意----在本章中余下的各部分,术语 block和sector的表示相同,是512字节大小的。
        --------------------------------------------------------------------------------------------------
                公共区域被用作通常的空间分配。
                私有区域包含了Veritas VM多种管理数据,包括了在一个具体的磁盘组
中的所有磁盘的配置信息。
VM使用tag 14来标识公共区域分区,使用tag 15来标识私有区域分区。(命令:prtvtoc显示了一个磁盘信息,包括每个磁盘的tag信息)
        封装
如果在你的磁盘上已经存在了数据,你不想初始化这个磁盘,这样,你就可以选择封装。
为了使VM能封装一个磁盘,它至少要在磁盘头或磁盘尾有的1024个扇区在一个未使用的分区,和2个空闲分区。
如果一个磁盘没有1024个扇区的空间(1或2个柱面,由磁盘的几何参数决定)和2个空闲分区在VTOC中,它也能处于VM的控制之下。但是,它必须已经创建了一个nopriv VM磁盘。因为,nopriv VM不包含一个私有分区的拷贝,(但是它包含了一个磁盘组的配置数据库),一个磁盘组不能包含完整的nopriv设备。
对于启动磁盘的封装处理是不同的。最好给出VM所需要的私有磁盘空间。但是,如果没有足够的磁盘空间,它将占用swap的后部的空间。
        私有和公共区域格式(Private and Public Region Format)
一个初始化VM磁盘的私有和公共区域的格式可由命令:prtvtoc来确定。在下面的例子中,分区2被定义为整个磁盘,分区3被分配了tag 15,大小是2016个扇区,分区4被分配了tag 14,大小是剩余的所有磁盘空间。
在这个例子中,私有区域是磁盘的前两个柱,磁盘大小是1.05GB,单独的柱大小是1008个扇区或块。这不能满足私有区域的最小1024扇区要求。它的将使用由文件 /etc/format.dat中发现的磁盘变量nhead=14和nsect=72来计算。
               
# prtvtoc /dev/rdsk/c2t4d0s2
                                                                        First                 Sector                         Last
Partition         Tag         Flags         Sector                 Count                         Sector
2                 5                 01                         0                 2052288                 2052287
3                 15                 01                         0                 2016                         2015
4                 14                 01                 2016                 2050272                 2052287
        初始化磁盘类型
默认的,VM使用Sliced类型来初始化磁盘。还有其他的类型,有三种初始化的磁盘类型:
l        Simple----私有和公共区域在相同的分区
l        Sliced----私有和公共区域在不同的分区(默认)
l        Nopriv----没有私有分区
        --------------------------------------------------------------------------------------------------
注意----nopriv是强烈不推荐的,它通常只用于建立于非SUN系统的随机访问的内存(RAM)的磁盘存储,
        --------------------------------------------------------------------------------------------------
                   存储配置  为了建立可靠的虚拟磁盘结构,你必须能够:l        标识存储设备的不同类型l        确定磁盘控制器的配置
存储配置回顾
        标识存储设备
标识连接到你的系统上的存储设备的类型和模式的最好方法是读取产品的模式tag以及学习相关的技术手册。偶尔的,你需要远程连接到系统上进行工作,就需要使用操作系统命令或其他工具来标识硬件配置。
               
                使用命令:luxadm
命令:luxadm是用来管理SENA, RSM, SPARCstorage阵列子系统的管理命令。它被用来发现和报告所支持磁盘阵列的基本信息,如:
               
# luxadm probe
                        不过,参数:probe只能识别那些某些存储阵列类型,它不够全面。
                        如果你知道基本的控制器地址,命令:luxadm则会给出非常有用的
信息。它仍然被限定在已知的那些阵列模式,对于检查到的不支持的设备将会报告出错信息。一些luxadm输出的例子。
                        # luxadm disp c0
                        luxadm: Error opening /devices/iounit@        
f,e0200000/sbi@0,0/dma@0,81000/esp@0,80000:ctlr
No such file or directory
                        控制器c0是标准的SCSI接口,所以luxadm不能标识它
                        # luxadm disp c1
                        SPARCstorage Array 110 Configuration
                        控制器c1是一个SPARCstorage Array 100模式,所以luxadm可以标
识它。
        # luxadm disp c3
                        luxadm: Error opening /devices/iounit@
f,e3200000/sbi@0,0/SUNW,socal@3,0/sf@1,0:ctlr
No such file or directory
        # luxadm probe
                        Found SENA Name:kestrel
Node WWN:5080020000000878
Logical Path:/dev/es/ses0
Logical Path:/dev/es/ses1
控制器c3支持StorEdge A5000阵列,但你必须使用一个不同的luxadm参数来查看它。参数porbe成功的发现了阵列,为了显示A5000的细节,使用以下的命令:
        # luxadm kestrel
                使用命令:format
Solaris下的命令:format是收集基本存储信息的唯一可靠程序。它的回答是不完整的,但它能报告所有存储设备,而不考虑类型和模式。下面的例子显示了3个不同的存储设备类型的输出。
                        
                        AVAILABLE DISK SELECTIONS:
0. c0t0d0 ;
/io-unit@f,e0200000/sbi@0,0/dma@0,81000
/esp@0,80000/sd@0,0
1. c1t0d0 ;
/io-unit@f,e1200000/sbi@0,0/SUNW,
soc@3,0/SUNW,pln@a0000000,8023c7/ssd@0,0
2. c1t0d1 ;
/io-unit@f,e1200000/sbi@0,0/SUNW,
soc@3,0/SUNW,pln@a0000000,8023c7/ssd@0,1
3. c3t98d0 ;
/io-unit@f,e3200000/sbi@0,0/SUNW,
socal@3,0/sf@1,0/ssd@62,0
                        
                        在这个例子中,你可以做出以下判断:
n        在路径名中的esp标识了设备0是一个标准的SCSI接口
n        在路径名中的soc标识了设备1和2是SPARCstorage Array 100磁盘
n        在路径名中的socal标识了设备3是一个FC-AL存储阵列
标识控制器配置
        命令:format也可以用来标识那些有着多路径(multi-path)控制器连接的存储阵列。
        
        标识动态多路径设备(Dynamic Multi-Path Device)
                DMP的连接被format所标识,如下:
               
                        AVAILABLE DISK SELECTIONS:
0. c0t0d0 ;
/sbus@3,0/SUNW,fas@3,8800000/sd@0,0
1. c2t33d0 ;
/sbus@3,0/SUNW,socal@0,0/sf@0,0/ssd@w22000020370c0de8,0
2. c3t33d0 ;
/sbus@3,0/SUNW,socal@0,0/sf@1,0/ssd@w21000020370c0de8,0
        
注意,设备1和2的设备路径有着相同的磁盘标识,20370c0de8。因为控制器号是不同的,它们在相同的系统中被连接到两个不同的控制器接口。
                  VM目标(object)  VM创建了虚拟目标并在它们之间进行了连接。由VM管理的目标有:l        VM磁盘(Volume Manager disks)l        磁盘组(Disk groups)l        子磁盘(Subdisks)l        镜像(Plexes)l        卷(Volumes)
VM目标
当你使得一个磁盘处于VM的控制之下时,就建立了一个从物理目标到虚拟目标间的连接。
VM创建了虚拟目标,并在目标间进行了逻辑连接。然后,VM使用这些虚拟目标来进行存储管理。
        Veritas VM磁盘
使一个物理磁盘处于VM控制之下,有两个阶段。有时,可以一步执行两个操作,使你没有意识到这个过程是复杂的。
               
                空闲磁盘池(free disk pool)
                        当你使一个磁盘处于VM控制之下,你可以:
n        增加它到一个已存在的磁盘组
n        增加它到一个新的磁盘组
n        增加它到空闲磁盘池
最简单的操作是增加它到空闲磁盘池。命令:vxdisksetup用来以VM
格式来重新分区磁盘。然后给磁盘写入一个空白头(header)。
如果你增加它到一个磁盘组,磁盘被分配一个唯一的名字并与一个磁盘组的目标相关。这个信息将会与入磁盘上的空白头。除非你干涉,磁盘的默认名字是disk01, disk02等。
               
        磁盘组(disk group)
磁盘组是使用一个共享的公用配置的VM磁盘的集合。典型的磁盘组包含在某种方式上与特定部分或数据库的文件系统卷相关,它们都是单一数据库的表(tables)。
每个磁盘组属于一个单一的主机系统。当前的属性写入到所有配置记录中。磁盘组中的很多磁盘都有着配置记录的拷贝。
一个磁盘组和它的所有组件可以做为一个单元从一个主机系统移动到另一个主机系统。通常这两个主机系统都连接到相同的双通道存储阵列上。
如图4_1,标准的Veritas VM磁盘组属于一个单独主机。虽然第二个主机连接到相同阵列,但它的VM组件不允许它访问磁盘组中的任何卷。磁盘组可以在一主机中被迁出在另一个主机中被导入,但这通常是一旦一个主机系统失败时所使用的失败恢复功能。当一个磁盘组由另一个主机导入时,新主机的名字被写入到基于磁盘的VM配置记录中。
         
        集群磁盘组(cluster disk group)
Veritas VM软件有一个可选的组件----集群(cluster),它需要License。集群功能允许两个或更多的主机系统访问相同的磁盘组。在集群环境里,主机系统被称为结点(node)。VM的集群版本由Sun Enterprise Cluster产品使用,当它配置为运行Oracle Parallel Server(OPS)数据库时。如图4_2中,与VM集群软件的主要区别在于磁盘组属于一个集群的名字,而不是单主机的名字。当Sun Enterprise Cluster与OPS联合使用时,最大4个主机可以同时访问相同数据。
当一个磁盘组由任何一个与之相连的结点导入时,cluster_name被写入到基于磁盘的VM配置记录,并且磁盘组对于任何相连的结点都可以访问。
               
        --------------------------------------------------------------------------------------------------
注意----为了防止数据被破坏,结点间的所有写操作必须是相同的。OPS使用一个全局锁管理表来完成这项工作。
        --------------------------------------------------------------------------------------------------
        子磁盘(sub disk)
一个子磁盘是连续磁盘块的集合。一个子磁盘必须完全处于一个物理磁盘中,一个磁盘组中一个磁盘的公共区域可以被划分为一个或多个子磁盘。在公共区域的相同分区中,子磁盘不能交迭或共享。默认的,子磁盘的命名通常基于磁盘所处的位置。它们的关联由图4_3显示:
        --------------------------------------------------------------------------------------------------
注意----如图4_3所示,不同控制器上的磁盘表示它们处于不同的存储阵列。磁盘组可以跨跃阵列。
        --------------------------------------------------------------------------------------------------
               
镜像(Plexes)
VM应用使用子磁盘来建立虚拟目标,称为镜像(plexes)。一个plex包含位于一个或多个物理磁盘上的一个或多个子磁盘。图4_4说明了子磁盘与plex间的关系。
如图4_4:
存储在plex上的子磁盘的数据可以由以下几种方式来组织:
n        串联(Concatenation)
n        条带(stripe)
n        带有奇偶校验的条带(RAID 5)
               
卷(volumes)
        一个卷由一个或多个plex组成。从定义上来讲,一个由两个plex组成的卷就是镜像(mirrored)。如图4_5:
        虽然关于卷的重要点有很多,但你必须理解的基本点包括:
l        卷可以拥有多于一个镜像(mirrors)
l        RAID-5卷不能被镜像
l        一个plex也可以是一个记录结构(logging),它不用来存储数据。
最重要的默认卷
        偶尔,VM管理感觉到他们必须设置一个非标准类型的磁盘组,如:
n        一个大于1024扇区的私有区域
n        每个磁盘组有着大量的配置数据库
n        每个磁盘组有着大量的内核日志记录
为大量的configdb记录做准备
        当VM要使用的磁盘第一次初始化时,默认的私有区域可以大于1024个扇区。如果预计有超过2000个目标在一个磁盘组中,你可以这样用。命令格式如下:
        # vxdisksetup –i c2t3d0 privlen=10080s
        --------------------------------------------------------------------------------------------------
                注意----一个可选的方案就是将磁盘组划分成2个或多个新的磁盘组
        --------------------------------------------------------------------------------------------------

指定configdb和log记录
当一个新的磁盘组第一次被创建时,你能够指定configdb和log记录的总体数量,它们将被分布到后来增加的所有磁盘中。初始化一个新的磁盘组并增第一块硬盘的命令格式是:
                        # vxdg init group1 p001=c2t0d0 nconfig=20 nlog=20
                        
                        在这个例子中,一个磁盘介质名:p001已经给定了磁盘,并且configdb
和log记录拷贝的数量设置为20,这个磁盘介质名可以在以后由许多VM命令使用,将其做为物理路径名的替代。
当多个磁盘增加到新创建的磁盘组中,必须要创建configdb和log记录的拷贝。
热设备  通过指派spare可以自动完成失败磁盘的替代,使用以下方式:l        一个旧的spare守护进程,vxsparecheckl        一个新的hot定位守护进程,vxrelocd
热设备
依赖于文件:/etc/rc2.d/S95vxvm-recover的配置,来决定启动老的hot spare守护进程---vxsparecheck,或是新的hot spare守护进程---vxrelocd。
这两个守护进程的功能是非常不同的,默认的,热定位(hot relocation)是被允许的。
        Hot Spare概述
如果在启动时,hot spare守护进程---vxsparecheck被允许,检测并作用于全部磁盘介质的失败,通过移动失败磁盘的全部内容到磁盘组中的一个预定义的spare磁盘。如果VM不能访问一个或多个子磁盘并且不能访问磁盘的私有区域,那么,这个磁盘被考虑为完全失败。
                Hot sparing是一个老的操作模式,但如果需要的话,仍然可以使用。
        热定位概述(Hot Relocation)
热定位守护进程---vxrelocd,检测并作用于部分磁盘介质的失败,通过移动受到影响的子磁盘到组中的另一个磁盘的空闲空间。空闲空间可以在已经定义为热定位spare的有磁盘上发现,如果没有,由VM随机发现在一个磁盘组上的空闲空间。
热定位只可以由那些作为冗余卷的一部分的子磁盘所使用,如RAID 5或一个镜像卷。
默认的,允许热定位,当一个失败发生时,不需要管理员干涉就可以执行。
        --------------------------------------------------------------------------------------------------
注意----热定位可以由系统管理员在任何时候通过停止vxrelocd守护进程来临时禁用,但,这是不推荐的。
        --------------------------------------------------------------------------------------------------
如图4_6所示,当检测到一个子磁盘失败,子磁盘的内容将在分派的hot spare上进行结构重建,卷继续使用它最初的完全冗余来执行。
        失败子磁盘的检测
                热定位守护进程---relocd检测并作用于以下类型的失败。
l        磁盘失败(disk failure)
它最先从一个VM目标中检测到一个I/O失败,并试图修改这个错误。如果不能修改错误,VM试着访问磁盘私有区的配置信息,如果不能访问磁盘的私有区,那么,它认为这个磁盘失败。
        
l        plex失败
一个不可修改的I/O错误在plex中被检测到,为了镜像这个卷,plex将被分离。
l        RAID 5子磁盘失败
这将检测到一个不可修改的错误在RAID 5的子磁盘中,这个子磁盘将被分离。
        热设备失败(Hot Devices Failures)
如果热定位是不可能的,将通知系统管理员,并且不会有更多的动作。如果发生下面的情况,热定位是不可能的。
l        子磁盘不属于一个镜像或RAID 5卷。
l        在spare磁盘上没有足够有效的空间或空闲空间。
l        在一个磁盘上,唯一有效的热定位空间包含镜像或RAID 5卷的一部分
l        一个有着脏区日志的镜像卷记录的子磁盘是它的数据plex的一部分。属于那个plex的子磁盘不能被热定位。
l        失败的是个日志plex,一个新的日志plex被创建,所以不能实际定位。(so it is not actually relocated)
        
--------------------------------------------------------------------------------------------------
注意----热定位可以创建一个启动磁盘的镜像如果它被封装或被镜像,必须有一个spare在rootdg中。
        --------------------------------------------------------------------------------------------------
        热设备的管理
                分配一个hot spare磁盘
你可以在一个磁盘组中分配一个或多个磁盘作为热定位spares来为热定位作准备。使用命令格式如下:
                        # vxedit –g disk group set spare=on diskname
你可以通过使用命令:vxdisk list来校验当前spare磁盘状态,也可以通过使用命令:vxedit spare=off禁用磁盘的spare。
               
                控制恢复时间
你可以减少恢复时对系统性能的影响,通过使用vxrelocd来增加一个卷的每个区域间的延时(vxrelocd –o slow=500 &

。变量slow传送给vxrecover,默认的变量值为250毫秒。
        
                监视(Monitor)
默认的,vxrelocd发送错误的邮件通知给服务器的root用户。你可以在文件:/etc/rc2.d/S95vxvm-recover中的vxrelocd root &行来改变。
你也可以通过执行系统错误日志来显示磁盘问题,但,邮件通知通常就足够了。
               
                允许hot spare功能
为了允许让老的hot spare功能代替新的hot relocation功能,修改文件:/etc/rc2.d/S95vxvm-recover注释行:vxrelocd root &,不注释#vxsparecheck root &
命令行状态  学会如何使用3种非常重要的工具来获得VM状态l        vxprintl        vxdiskl        vxdg
命令行状态
        
使用vxprint
当分析卷的问题时,vxprint是一个很实质性的工具。不像VMSA图型用户接口,vxprint通过使用术语磁盘组(disk group),plex, 卷(volume)和子磁盘(sundisk)来显示所有信息。以下的例子显示了一个典型的连接卷在vxprint输出中是如何显示的。
                # vxprint –g DGa –ht
DG         NAME         NCONFIG         NLOG         MINORS         GROUP-ID
DM         NAME         DEVICE         TYPE         PRIVLEN         PUBLEN         STATE
V         NAME         USETYPE         KSTATE STATE         LENGTH         READPOL         REFPLEX
PL         NAME         VOLUME         KSTATE STATE         LENGTH        LAYOUT  NCOL/WID
SD        NAME         PLEXDISK  DISK         OFFS                 LENGTH         [COL/]OFF DEVICE
dg                 Dga                 default                 default         87000                 skydome
dm         c1t0d3         c1t0d3s2         sliced         2015                 2050272         -
dm                c1t0d4         c1t0d4s2         sliced         2015                 2050272         -
v         vol01         fsgen E                ENABLED ACTIVE        4096512        ROUND         -
pl         plex01         vol01                 ENABLED ACTIVE 4096512        CONCAT         -
sd         sd01        plex01                 disk01         0                         2048256         0                         c1t0d3
sd         sd02         plex01                 disk02         0                         2048256         2048256         c1t0d4
                        在这个例子的输出中,你可以决定以下细节:
n        磁盘组被称为DGa, 它包含一个单一的卷。
n        卷被称为vol01,它包含一个单一的plex, 称为plex01
n        plex是串联的,并且从VM磁盘中已经创建了2个子磁盘,称为disk01和disk02
n        每个子磁盘的大小,大约是1.02G。
n        这两个磁盘的设备路径分别是:c1t0d3和c1t0d4
n        卷和plex被允许,并被激活
        --------------------------------------------------------------------------------------------------
注意----通常,VM单元以磁盘块(block or sector)方式来显示大小。转换到MB字节的换算单位是2000,如果要精确划分的话,应该是2048。
        --------------------------------------------------------------------------------------------------
        使用vxdisk
vxdisk命令有着很多任务相关参数,但,用得最多的参数则是:list。命令:vxdisk list显示了一个快速的状态总结,和所有连接到系统的磁盘的属主。一个典型的vxdisk list输出如下:
               
# vxdisk list
                DEVICE         TYPE         DISK         GROUP         STATUS
c0t0d0s2         sliced         -                         -                         error
c2t33d0s2         sliced         droot                 rootdg                 online
c2t35d0s2         sliced         disk01                 DGa                 online
c2t37d0s2         sliced         -                         -                         online
c2t50d0s2         sliced         -                         -                        online
c2t52d0s2         sliced         -                         -                         error
c3t1d0s2         sliced         -                         -                         online
c3t3d0s2         sliced        -                         -                         error
c3t5d0s2         sliced         -                         -                         error
c3t18d0s2         sliced         disk02                 DGa                 online
c3t20d0s2         sliced         -                         -                         error
                通过执行上例vxdisk的输出,我们可以确定:
n        所有带有error状态的设备不在VM控制之下
n        所有online状态的设备已被进行某种级别的初始化
如果一个设备没有磁盘名而且不是某个磁盘组的一部分,它们还没有被
完全初始化。它们只是被VM重新分配并且有一个空白的磁盘头。
        --------------------------------------------------------------------------------------------------
注意----如果一个显示失败状态的磁盘:c0t0d0,这意味着产生了一个主要失败,并且VM不能访问物理磁盘,但它知道失败以前的地址。你将会发现,失败的地址将不会在 vxprint –ht 的输出中显示。
        --------------------------------------------------------------------------------------------------
        
        使用vxdg
命令:vxdg可以用来创建和维护磁盘组,它也可以提供在一个磁盘组中关于所有空闲磁盘空间非常重要的信息。当准备增加新的卷到一个磁盘组中,以下的参数:free的输出是非常有用的。
               
# vxdg –g DGa free
                DISK         DEVICE         TAG         OFFSET         LENGTH         FLAGS
disk01         c3t1d0s2         c3t1d0         1843647        206625                 -
disk02         c3t1d1s2        c3t1d1         2046240         4032                         -
disk03         c4t2d0s2         c4t2d0         0                         2050272                 -
字段 LENGTH显示了在磁盘组中的每个磁盘上的所有空闲空间。这个值以块或扇区数显示。你也可以通过除以2000来将它们转换成MB。
                通过执行上例的vxdg输出,可以确定:
l        磁盘组DGa有3个物理磁盘
l        其中的一块磁盘(disk03)处于不同的控制器上
l        所有有效的磁盘空间大约是1.1GB
(206625+4032+2050272)/2000=1130.46Mbytes
l        你可以创建一个100M的串联/镜像卷
l        你可以创建一个4M的RAID 5卷
                  命令行操作  通过使用命令行程序来实现如下的基本功能操作:l        在VM控制中移除一个磁盘(vxdiskunsetup or vxdisk)l        为VM初始化一个磁盘使用(vxdiskadm)l        增加一个磁盘到磁盘组(vxdiskadm or vxdg)l        从一个磁盘组中移除磁盘(vxdiskadm or vxdg)l        标识一个磁盘为hot spare(vxdiskadm or vxedit)l        更改VM磁盘名(vxedit)
命令行操作
虽然有很多Veritas命令行工具程序,对于大多数通常的操作,只需要很少的命令。本章讨论了以下命令的基本操作。
l        vxdiskunsetup
l        vxdiskadm
l        vxdg
l        vxedit
l        vxdisk
使用命令:vxdiskunsetup
        在存储阵列中校验或移除先前的VM配置记录。在VM软件的安装和初始化过程中,你将看到如下的出错信息:
                vxvm:vxconfigd: WARNING: Disk c3t35d0 in group hanfs:
Disk device not found
vxvm:vxconfigd: WARNING: Disk c2t18d0 in group hadbms:
Disk device not found
        这些错误通常表示,这些磁盘还包含着先前安装的VM配置记录。这些磁盘可以由命令:vxdiskunsetup清空并返回到一个非初始化状态。
        # /etc/vx/bin/vxdiskunsetup –C c2t3d0
        如果磁盘由其他一些主机导入(import),命令vxdiskunsetup将不会清空磁盘。如果磁盘上有老的配置记录,这将会发生。参数-C在这种情况下将强迫执行。
        --------------------------------------------------------------------------------------------------
        注意----在使用命令:vxdiskunsetup时一定要小心。你可能会毁掉活动磁
盘上的数据。
        --------------------------------------------------------------------------------------------------
也有一个命令:vxdisksetup用来为VM初始化磁盘,但不能增加它们到磁盘组。它们保存在一个空闲的池,为将来VM所使用。一个典型的vxdisksetup命令:
# vxdisksetup –i c2t0d0
如果不加任何参数,命令:vxdisksetup将只会重新分配指定磁盘到VM分区格式。使用参数 –i VM配置记录将被写入到私有区。
        --------------------------------------------------------------------------------------------------
注意----一般的,命令:vxdisksetup不会被直接使用,它由其它VM程序调用。
        --------------------------------------------------------------------------------------------------
        使用命令:vxdiskadm单元
命令:vxdiskadm是一个基于菜单进行操作的shell程序。当vxdiskadm启动后,以下的菜单操作是有效的:
                1                 Add or initialize one or more disks
2                 Encapsulate one or more disks
3                 Remove a disk
4                 Remove a disk for replacement
5                 Replace a failed or removed disk
6                 Mirror volumes on a disk
7                 Move volumes from a disk
8                 Enable access to (import) a disk group
9                 Remove access to (deport) a disk group
10                 Enable (online) a disk device
11                 Disable (offline) a disk device
12                 Mark a disk as a spare for a disk group
13                 Turn off the spare flag on a disk
对于每一个菜单入口,都会有一个相对应的命令行操作来完成相同功能。基于菜单的操作易于使用,并提供了更多的相关信息。
               
在这里,我们要讨论的只有3个模块:
                        1                 Add or initialize one or more disks
3        Remove a disk
12                 Mark a disk as a spare for a disk group
        --------------------------------------------------------------------------------------------------
                注意----其他的关于命令:vxdiskadm的讨论将在以后适当的时候进行
        --------------------------------------------------------------------------------------------------
增加或初始化磁盘
        当在VM控制下替换磁盘,有几个可能的级别:
n        磁盘被重新分配给VM使用,但是它没有给定的名字也不属于任何磁盘组的一部分。它是空闲磁盘池的一部分。
n        磁盘被重新分配给VM使用,给定了一个名字,并被增加到一个新的磁盘组
n        磁盘被重新分配给VM使用,给定了一个名字,并被增加到一个已经存在的磁盘组
        --------------------------------------------------------------------------------------------------
注意----当增加一个磁盘到磁盘组时,它也可能被标识为磁盘组的hot spare
        --------------------------------------------------------------------------------------------------
        你要以使用vxdiskadm中的参数1来增加一个磁盘,你将得到如下提示:
Select disk devices to add: c2t4d0
Which disk group?: disk_group_name or none
Use a default disk name for the disk?: y
Add disk as a spare disk?
Encapsulate this device?: n
Instead of encapsulating, initialize? y
        你也可以使用以下的变量来处理多个磁盘:
                        Select disk devices to add: all
Select disk devices to add: c2
Select disk devices to add: c2t4d0 c3t4d0 c4t4d0
        增加磁盘到已经存在的磁盘组的命令格式是:
        # vxdg –g group1 adddisk p002=c2t0d1
                移除磁盘
                        你可以使用vxdiskadm的参数3来移除一个磁盘,有2个移除级别:
n        从一个磁盘组中移除磁盘,将它初始化并置于空闲磁盘池中
n        移除VM控制下的磁盘,通过对它非初始化并将它返回到标准的UNIX分区。
在移除过程中,你可能会遇到以下提示:
Enter disk name: disk05
        --------------------------------------------------------------------------------------------------
注意----移除一个磁盘与vxdiskadm中的参数4是不同的,移除一个磁盘并替代它。参数4通常用于在一个硬件失败时进行磁盘替代。
        --------------------------------------------------------------------------------------------------
                        通过使用vxdg和vxdisk命令可以更灵活的执行相同的过程:
                        从一个磁盘组中移除一个磁盘,但使其保存于一个空闲磁盘池:
                                 # vxdg rmdisk disk05
                        从一个VM控制中完全移除一个磁盘:
                                # vxdisk rm c2t3d0s2
        --------------------------------------------------------------------------------------------------
                注意----你可以使用命令:vxdisk list来发现VM磁盘的路径
        --------------------------------------------------------------------------------------------------
                分配一个磁盘作为hot spare
通过使用vxdiskadm的参数12可以将一个磁盘标识为它的磁盘组中的hot spare,也可以通过vxdiskadm的参数13来将其标识为非hot spare。
                        不管是使用参数12或13,你将被提示输入磁盘名如下:
                        Enter disk name: disk06
                        可以使用vxedit 来实现相同的功能:
                        # vxedit set spare=on disk06
                        # vxedit set spare=off disk06
                重命名一个VM磁盘
当初始化磁盘,并增加它们到磁盘组中,磁盘被给定为标准的VM名字如:disk01, disk02, disk03。你可能需要重命名磁盘组中的磁盘,赋予它们一个有意义的名字。
                        你可以使用vxedit命令来重命名VM磁盘:
                        # vxedit rename disk01 dbdisk01

第五章      VolumeManager Storage
                          Administrator(VMSA) Software


目标
                通过完全本章,你将掌握如下:
l        描述VMSA的server/client间的关系
l        校验VMSA软件是否正在运行
l        启动VMSA客户软件
l        使用主要的VMSA功能
l        使用参数菜单来手工定制VMSA的动作
l        描述2个对于任务请求监视器的重要使用
VM存储管理软件  卷管理存储管理软件(VMSA)提供了3个功能组:l        服务器软件l        基于客户/管理接口的JAVA技术l        为浏览操作的HTTP服务器软件
VM存储管理软件
VMSA是新的磁盘存储管理软件,对于VM管理员提供了更多的灵活性。运行在VM系统中的内核管理软件可以直接或交互的作用于Web浏览器或一个图形管理应用界面如,VMSA。
VXSA工具是一个JAVA应用,可以运行在本地的VM服务器上也可以运行于远端的任何网络系统。它可以运行在任何JAVA 1.1 Runtime Environment,包括Solaris, HP-UN, Windows NT, 或Windows 95。
HTTP服务器软件可以在VM服务器上被触发,它允许通过几台不同的Web浏览器来允许管理访问。
        服务器/客户软件安装
在安装VRTSvmsa软件的过程中,你将被问及是否安装Web浏览器软件,然后会被问及是否安装VM服务器软件。
               
                Processing package instance ; from ;
Veritas Volume Manager
Where should this package be installed? (default: /opt)) [?,q]
Should the Apache HTTPD (Web Server) included in this package be
installed? (default: n) [y,n,?,q]
Should the Veritas Volume Manager Server be installed on this system?
(The Veritas Volume Manager Client will be installed regardless)
(default y) [y,n,?,q]
                VRTSvmsa的客户部分的软件包总是安装的。
        VMSA服务器软件的启动
如果安装的话,VMSA服务器部分的软件在启动时会自动的由脚本:/etc/rc2.d/S96vmsa-server启动。而脚本文件:/opt/VRTSvmsa/bin/vmsa_server则在后台启动。
你可以通过使用以下这些参数在VM服务器上手工的停止和启动VMSA服务器部分的软件。
l        vmsa_server –V 打印当前版本
l        vmsa_server –q 校验服务器软件是否正在运行
l        vmsa_server & 使用正常启动
l        vxsa_server –k 杀掉VMSA服务器软件
也可以只读方式运行服务器软件,修改: /opt/VRTSvmsa/vmsa/properties,
并且修改变量的值:vrts.server.readonly=false为true,为使这个改变生效,必须要重新启动服务器软件。
        VMSA客户软件的启动
通过手工运行脚本文件:/opt/VRTSvmsa/bin/vmsa,可以启动客户图形接口。可以在服务器上启动并显示VM客户软件,也可以在服务器上启动,在其他远程系统上显示,或加载并启动在一个远程系统上。
                被监视的服务器名字可以被包括在如下的启动命令中:
                # /opt/VRTSvmsa/bin/vmsa server_name &
                 客户软件启动  VMSA的客户端软件有着简单的3个阶段,启动进程包括:l        客户软件启动文件执行l        VMSA初始化显示l        VMSA管理显示
VMSA客户端
        客户软件的启动
VMSA的客户端应用是一个纯粹的基于应用的JAVA技术,从脚本文件:/opt/VRTSvmsa/bin/vmsa中启动,通过执行JAVA解释程序并分配以下的变量给属性。
l        vrts.packageName=VRTS
l        vrts.codebase=$VMSA_HOME/vmsa/java
l        vrts.iconbase=$VMSA_HOME/vmsa/java
l        vrts.server.host=$HOST
l        vrts.localHost=’hostname’ Vmsa
classname由VMSA所使用。
        VMSA的初始化显示
                在VMSA的客户端应用启动之前,将显示一个会话初始化窗口(如图5_1)
你可以启动VMSA客户端应用并连接到任何一个运行VMSA服务器端软件的系统。
               
        --------------------------------------------------------------------------------------------------
注意----就算你在启动vmsa脚本时提供了服务器名称,会话初始化窗口也会显示。
        --------------------------------------------------------------------------------------------------
        VMSA客户显示
                VMSA初始的客户显示有着明显的功能区,如下所示(图5_2)
        --------------------------------------------------------------------------------------------------
                注意----selected菜单改变名字依据在grid窗口中所选择的目标类型。
        --------------------------------------------------------------------------------------------------
                VMSA客户软件功能  VMSA客户端软件主要有以下几方面功能:l        工具条l        菜单条功能l        目标树显示l        Grid 显示l        命令执行台(Launcher)
VMSA客户软件功能
                VMSA客户软件主要有以下几方面功能:
l        工具条
l        菜单条功能
l        目标树显示
l        Grid显示
l        命令执行台(launcher)
工具条(Tool Bar)
        
如图5_3所示,工具条提供了对VMSA通常功能的快速访问。
        工具条对一定数量的复杂功能提供了直接的访问。在菜单中的所有功能都是有效的,但工具条提供了一个快捷的访问方式。
        
在工具条中的各个图标的功能如下表:
        --------------------------------------------------------------------------------------------------
                工具条图标                                                                功能
        --------------------------------------------------------------------------------------------------
                VMSA                        打开一个新的VMSA窗口
                TASK                        打开任务监视器
                ALERT                        打开警报监视器
                SEARCH                打开一个新的搜索窗口
                GRID                        打开一个包含main grid的拷贝的新窗口
                NEW                        创建一个新的卷(volume)
                PROPS                        打开一个选定目标的属性窗口
                CUSTM                        定制VMSA
                SAVE                        保存定制的设置
        --------------------------------------------------------------------------------------------------
        VMSA菜单条
                VMSA客户菜单条有以下功能:如图5_4
菜单条选择区的变化与grid区域中所选择的目标的类型有关。如果你选择了一样磁盘在grid窗口,一个磁盘菜单将会出现在选择区。这个菜单通常有着更多更高级的命令,但,它们在其它的相同菜单中却是不可用的。
               
        VMSA目标树(VMSA OBJECT TREE)
VMSA目标树窗口,如图5_5所示,对于已经存在的或可以创建的每种类型的VMSA都有一个图标。
当用鼠标左键选中目标,在grid区将显示它的扩展配置信息,
如图5_6
目标树上的一些分支包含被标记为“+”更小的结点。它们可以被扩展显示到更深级别,如图5_7
                在图5_7中,磁盘组和控制器分支已经被扩展,这些分支还可以进一步
扩展。当一个结点不能更进一步扩展时,它包含了一个“-”标识。再次选择一个结点将会收缩。
                 
        
        VMSA命令执行台
命令执行台窗口,如图5_8所示,对于所有可以被选择的目标相关命令提供了一个滚动条。许多命令选择需要附加的信息,
               
命令总结
                        命令执行台窗口在以下的目标目录下,有很多子命令:
n        磁盘(Disk 10个子命令)
n        磁盘组(Disk Group 6个子命令)
n        文件系统(File System 6个子命令)
n        日志(log 2个命令)
n        镜像(mirror 4个子命令)
n        子磁盘(subdisk 3个子命令)
n        卷(Volume 17个子命令)
窗口坞(docking windows)
        VMSA坞功能允许你为了使用方便而将工具划分为独立窗口,如图5_9
        --------------------------------------------------------------------------------------------------
        注意----工具条上的显示窗体中的定制按钮可以允许你定制很多VMSA
功能。
        --------------------------------------------------------------------------------------------------
                 VMSA任务  一个典型的VMSA管理任务,如创建一个新的磁盘组,调用了以下几步:1.        选择新的磁盘组菜单功能2.        完成磁盘组窗体3.        选择封装或初始化4.        查看任务请求监视器窗口5.        在任务属性窗口中查看命令行操作
VMSA任务
它是非常有用的信息来查看一个典型的VMSA任务的一步一步执行。这个任务显示在以下的例子中:创建一个包含2个磁盘的新的磁盘组。
                这个过程类似于很多你可以执行的其他VMSA任务。        
        使用创建菜单
                如图5_10:
        --------------------------------------------------------------------------------------------------
                注意----在高级中选择磁盘(如图)可以保存上一步的时间
        --------------------------------------------------------------------------------------------------
        使用磁盘组窗体
如图5_11,        磁盘区已经被填满,你只需要提供磁盘组的名字。在grid窗口中高亮你想要选择的磁盘。
如果你没有在高级中选择你想要的目标磁盘,你能够选择如图5_11的Browse键,它将显示一个小型的目标树,你可以选择适当的磁盘。
        --------------------------------------------------------------------------------------------------
注意----按钮 Create Shared是无效的,除非你购买了VM cluster。然后,你可以创建在两个主机间共享的磁盘组。它通常只被使用在并行数据库软件如OPS。
        --------------------------------------------------------------------------------------------------
        
        选择封装或镜像
正如以前所提及的,VM通过重新分区磁盘为slice 3和slice 4来初始化磁盘。当你使用VMSA来执行磁盘操作,它假定磁盘可能会有数据,并且不能通过此方法进行分区。(如图5_12)
当你初始化磁盘时,你必须非常仔细。VMSA决定一个最好的方式,使得初始化这个磁盘时丢失数据的风险最小。
        
        检查任务的完成
当一个任务明显完成后,通过检查任务请求监视器(Task Request Monitor)来查看是否成功,如图5_13。
                 
任务完全完成,将在前面作一个检测标识(P)。如果失败,则将在前面标识一个符号No(x)。
如果你双击一个任务请求,你将查看关于这个任务所执行的命令的细节信息。
        --------------------------------------------------------------------------------------------------
注意----如图所显示的任务请求监视器已经附加了启动和停止时间字段,可以使用位于窗口底部的滚动条来查看,也可以拉开窗口宽度来查看。
        --------------------------------------------------------------------------------------------------
        查看任务属性
如果你在任务监视窗口双击一个任务入口,任务的细节信息将会显示在任务属性窗口,如图5_14。
        --------------------------------------------------------------------------------------------------
注意----在任务属性显示中,你可以剪切并粘贴命令行。这是一个学习VM命令行操作的很重要的工具。
        --------------------------------------------------------------------------------------------------

第六章  Veritas Volume Manager Volume Operations
目标
                通过以下章节学习,你将掌握如下:
l        创建简单的,条带化的和RAID 5卷
l        移除一个卷
l        给一个卷增加一个镜像
l        从一个卷中移除一个镜像
l        更改卷大小(加大一个卷)
l        显示一个卷的属性
l        显示卷映象
l        为一个卷增加一个文件系统
l        给一个镜像的卷增加一个脏区日志
l        给一个卷增加一个日志
磁盘组概述  当设计和管理磁盘组,你要熟知以下几点:l        磁盘组有两个主要功能l        磁盘组:rootdg应该很小l        磁盘组只能有唯一名字l        一个磁盘组至少有2个磁盘l        移除磁盘时要小心
磁盘组概述
磁盘组是共享一个通用配置的VM磁盘的集合。默认的磁盘组是:rootdg。在一个磁盘组内可以使用已经存在于组中的VM驱动创建卷。
        
        磁盘组的主要功能
                磁盘组有两个主要功能:
l        帮助管理员管理
l        提供更高级别的有效性
管理优点
        系统管理员为了管理方便可以对磁盘组分组成逻辑集合。分组依据于部门或应用,举例来说,如:销售,供应,和开发等。
        
提高了数据的有效性
        一个磁盘组和它的组件可以以一个单元的方式从一个主机移动到另一个。这个功能在以下方面提供了更高级别的数据有效性。
l        第一个系统导出磁盘组
导出一个磁盘组意味着那个主机将不能访问这个磁盘组。另一个主机可以导入磁盘组并且在磁盘组中启动访问所有磁盘。
        --------------------------------------------------------------------------------------------------
注意----当磁盘组中的任意一个卷处于打开状态时,磁盘组不能被导出。这是由卷状态---ENABLE和ACTIVE来标识的。在磁盘组被导出之前,卷访问必须终止,卷必须停止。
        --------------------------------------------------------------------------------------------------
l        第二个系统导入磁盘组并启动访问
一个主机只可以使用唯一的名字导入磁盘组。然而,系统上的所有磁盘组(除了rootdg,它是必须的),都将会给定一个唯一的名字。
如果一个系统失败,另外一个运行Veritas VM的系统可以导入它的非rootdg磁盘组并提供对它们的访问。
        磁盘组需求
                这些包括:
n        系统所访问的所有的磁盘组最好都只有唯一的名字
这使得在主机间进行移动并区分它们的功能时,变得很简单。它们可以在导入的过程中重命名。
n        位于一台主机的磁盘组必须只有一个唯一的名字
这是一个应用级限制。
n        每个系统必须有一个磁盘组称为:rootdg
这是一个应用级限制。
n        通常,rootdg磁盘组会很小
rootdg磁盘组与VM软件有着特殊的关系,而且在当系统失败时将其导入或导出到其他系统都是很困难的。它必须要被重命名,因为备份系统也有一个称为rootdg的磁盘组。
n        所有磁盘组必须包含至少2个磁盘
无论如何,每个磁盘组至少需要2个磁盘,这样,磁盘组配置信息的拷贝就可以存储在多个磁盘上,因为冗余的缘故。
        在磁盘组中移动VM磁盘
在主机间移动一个完整的磁盘组是很容易的。在主机间移动一个空的磁盘组也是容易的(不包含任何VM目标的磁盘)。
然而,从一个磁盘组到另一个磁盘组移动一个或多个正在使用的(populate)VM磁盘是很复杂的。当VM磁盘在一个磁盘组中被移动,配置信息将不会保存。所以,在磁盘组间移动磁盘时要小心。
        
                   VM卷定义  在构造一个卷之前,必须要定义以下这些:l        卷磁盘组(Volume disk group)l        卷磁盘(Volume disk)l        卷名(Volume name)l        卷大小(Volume size)l        卷类型(结构)(Volume type)
VM卷定义
创建卷结构是比较容易做的,工具看上去很简单。但,如果你不理解每个卷的创建过程,又很容易出现错误。
        选择一个磁盘组
一个通常的错误是替换默认的rootdg磁盘组中的所有磁盘。一个磁盘组的配置记录不能包含超过2048个目标信息。每个卷(volume),plex, 子磁盘(subdisk),磁盘(disk),都可以认为是一个目标,并占用256字节(bytes)的私有区域。默认的私有区域长度是1024块(block)。在一个磁盘组中最大2048个目标。
另一个划分磁盘为独立组的原因是,你可以导出一个磁盘组并导入它到另一个相连的主机系统。这可能是灾难恢复计划或负载均衡分配的一部分。
可以设计一个磁盘组使它更好的为特定的任务来服务。如图6_1所示的磁盘组有3个磁盘,每个磁盘在不同的存储阵列中。
以这种方式组织的磁盘组对于创建条带卷类型(如RAID 5和镜像卷)是非常好的。最重要的功能是:磁盘组中的每个磁盘位于独立的盒体并位于一个不同的控制器。
        --------------------------------------------------------------------------------------------------
注意----必须注意跨越存储阵列的磁盘组。你必须确保你所失的阵列入口将不会中断卷中的镜像或RIAD 5中的多个列。
        --------------------------------------------------------------------------------------------------
                另外一个磁盘组的结构,如图6_2所示,对于直接串联的卷会好一点。
                或许卷是大的,静态的,只读结构,这样只需要周期的备份到磁带上。
他们不需要更高级别的可靠性和可用性。
        
        使用卷名约定
除非你覆盖了默认的变量,VM软件将自动为每个新创建的卷提供一个名字。名字将被系统的称为,vol01, vol02, vol03等。这样所带来的问题是,每个卷执行完全不同的功能,但却不能从名字上表现出来。典型的名字约定将能够反映卷的属性,如:
l        卷结构
l        哪个部门使用它
l        它们与哪个数据库相关
l        在一个工作组中的特定的目的
虽然命名的约定看上去不是很重要,但它们可以在紧急情况下,如电源
断电时可以建立优先权。
        决定卷大小
虽然为卷使用一个通常的大小是应用频繁指定的,但管理员更希望在指定的磁盘集上使用实际的空间。有很多方式可以确定卷的最大空间值。如:
l        使用VM软件自动发现空间
l        在一个组中限制所选择的磁盘的搜索空间大小
l        使用命令行方式来查看有效的空间
自动空间分配
        如果除了磁盘组名之外,你没有指定任何别的,那么VM软件将自动发现未使用的磁盘空间并将其划分入卷。这可能导致非常混乱的结构,而且创建的某些卷类型的性能会非常差!
限制空间分配
        这种方式可以较好的指定你想要使用的几个磁盘,比在一个磁盘组中搜索所有的空间的方式要好。直接由VM去发现最大的有效磁盘空间,但是你选择的磁盘会更适合你想要使用的卷类型。如图6_3,很好的说明了这一点:
        如果你想要创建一个RAID 5卷,你可以选择磁盘d1, d2, d3。对于一个连接卷,你可以选择d1, d4, d7。对于一个镜像和连接卷,你可以选择d1, d4, d7为一个镜像,d3, d6, d9为另一个镜像。
查看空间分配
        在创建一个卷之前花一些时间分析空闲的磁盘空间是有必要的。查看适合你所需要的空闲磁盘空间。在一个磁盘组中查看空闲空间的一些常用命令是:
        # vxdg free
        # vxassist maxsize
        下面的例子使用了这些命令:
        # vxdg –g DGa free
                        DISK         DEVICE         TAG         OFFSET         LENGTH         FLAGS
disk01         c3t1d0s2        c3t1d0         1843647         206625                 -
disk02         c3t1d1s2         c3t1d1         2046240         4032                         -
disk03         c3t2d0s2         c3t2d0         0                         2050272                 -
# vxassist –g DGa maxsize layout=nomirror,nostripe disk01 disk02 disk03
Maximum volume size: 2258944 (1103Mb)
# vxassist –g DGa maxsize layout=raid5,nolog disk01 disk02 disk03
Maximum volume size: 2258944 (1103Mb)
        --------------------------------------------------------------------------------------------------
注意----通常是不需要使用命令:vxassist maxsize的,除非你限制了磁盘空间并需要创建一个可能很大的卷。
        --------------------------------------------------------------------------------------------------
        
标识卷类型
                VM应用支持以下通常的卷结构类型:
l        简单串联(Simple concatenation)
l        简单条带(Simple stripe)
l        镜像(串联或条带)(Mirror)
l        RAID 5(带有奇偶校验的条带)
简单串联
        这涉及到:
n        有效的使用存储空间
n        简单的硬件需求
简单条带
        这个结构提供了:
n        更好的读写性能
镜像
        这个结构的优点是:
n        使用串联和条带化增强了可靠性
n        数据的完全冗余拷贝
RAID 5
        这个结构的一个优点是:
n        稍微增强了一点可靠性
使用VMSA创建卷  所有在VMSA中创建的卷使用单一的格式,有着如下功能:l        除了磁盘组,其他所有都是可选的l        可以使用基于浏览器的工具来分配磁盘组和磁盘l        特殊的VM分层是有用的l        文件系统也可以被配置
使用VMSA创建卷
                可以由VMSA进行初始化来创建卷,过程如下:
l        点击工具条 New 键
l        在菜单条:Console -àNew-àVolume 入口
l        在命令执行台:Volume -à Create 入口
不管你如何初始化一个卷的会话,都将显示相同的新卷格式(form)。
在这个格式中,不需要提供更多的信息。VMSA将替换默认的变量,但
这不是一个好主意。你可能得到一个不能满足你需求的卷。
        新卷格式(The New Volume Form)
                所有使用新卷格式创建的卷,如图6_4所示:
                VMSA软件对这个表中的变量将自动选择默认变量值。
                当使用VMSA新卷格式来配置变量时,需要考虑以下几点:
l        因为管理的目的,默认的变量名可以不被清空
l        使用最大键(Maxsize)可能会导致一个卷会由非常多的小的子磁盘组成,这些子磁盘是随机定位的,它们会引起非常差的性能瓶颈。你可以使用文件系统创建非常巨大的卷,但这将花费很多时间进行newfs及镜像的同步。
l        柱变量的数量只应用于当创建条带化及RAID 5的规划时。当你在Gird窗口高亮的预先选择了磁盘时,它会被自动的输入。
l        如果你不想预分配磁盘,可以使用Assist Disk Browser。
l        增加文件系统键显示了一个附加表,允许你在新卷上创建一个完整的操作文件系统。
自动创建的新的文件系统自动包括如下:
l        加载点
l        /etc/vfstab中的入口
l        newfs和mkfs操作
l        第一次加载
l        卷属主和保护
l        文件系统类型(UNIX文件系统(UFS)或Veritas文件系统(VXFS))
        --------------------------------------------------------------------------------------------------
注意----VxFS系统软件是与基本的VM软件单独定购并且独立授权的(Licensed separately)。
        --------------------------------------------------------------------------------------------------
使用命令行来创建卷  可以使用命令:vxassist来创建卷。它被用于:l        创建所有类型的卷l        镜像已经存在的卷l        增大或缩小卷大小l        准备卷备份(Assist in preparing for volume backup)
使用命令行来创建卷
        命令:vxassist的格式
                命令:vxassist有很多参数,如果不是明确输入,大部分参数使用默认值。
                创建一个卷的最简单的例子:
                # vxassist make vol02 50m
                这个简单的格式的问题是假设以下:
l        磁盘组是rootdg
l        卷的类型是简单串联,没有日志
l        它可以使用任何有着有效空间的磁盘
如果不带任何参数,命令:vxassist可能不会创建你所需要的卷,创建的
卷可能会有很严重的性能问题。
                使用vxassist命令参数
如果你对vxassist命令提供了几个参数,结果会更清晰。使用限制参数的典型命令:
        # vxassist –g dg2 make newvol 2000m layout=raid5,nolog disk01 disk02 disk03
                        在这个例子中,vxassist命令更清晰,要求以下为正确的:
n        使用的磁盘组是:dg2
n        卷名为:newvol
n        有效的数据存储空间是:2Gbytes
n        使用3个柱(columns)创建了一个不带有日志的RAID 5卷
n        所有的磁盘空间都来自于disk01, disk02, disk03
其他使用vxassist的命令如:
        # vxassist –g dg3 make newvol 20m layout=stripe disk01 disk02 disk03
# vxassist –g dg3 make newvol 20m layout=stripe stripeunit=32k disk01 disk02 \ disk03
                通常的vxassist命令参数
虽然有很多vxassist命令参数,但通常使用的只有很少几个。需要仔细的学习它们。在试图使用更多的参数前,要经常读取man帮助页及相关文档。
                  卷访问属性  因为在系统的每次重新启动VM卷的路径都要被重新创建,你必须要记得以下几点:l        VM卷的属性与通常文件的属性相同owner, group, model        VM卷属性必须由VM软件来设置由 VMSA GUI设置由命令:vxedit设置
卷访问属性
                当在磁盘组中创建了一个新卷,他们给定了默认的访问属性包括:
l        Owner
l        Group
l        Mode
Owner, Group, Mode通常都是root用户,对于一些卷,特别是那些将由
数据库使用的卷,卷属性必须被修改。
        --------------------------------------------------------------------------------------------------
警惕----不要使用chown, chgrp或chmod来设置卷属性。在每次系统重启后,属性将恢复到最初值。卷属性必须要由VM软件来更改。
        --------------------------------------------------------------------------------------------------
        校验卷属性
卷的属主和权限可以象通常的系统文件那样进行检查。使用命令:ls来检查位于目录:/dev/vx/rdsk/dg_name下的卷文件:
                # cd /dev/vx/rdsk/dga
                # ls
                 vol01 vol02 vol03
                # ls –dl *
        --------------------------------------------------------------------------------------------------
                注意----你也可以使用VMSA GUI来确定卷属性
        --------------------------------------------------------------------------------------------------
改变卷的权限或属主
为了运行应用,如Oracle Parallel Server,需要修改卷的读/写权限和属主。为了改变卷的权限或属主,使用命令:vxedit。它将在VM记录中设置必须的字段。可以使用vxedit的格式如下:
        # vxedit –g tpcs set user=oracle group=dba mode=660 acct06
增加一个UFS文件系统  使用以下的两种方式可以增加一个UFS文件系统到一个已经存在的卷:l        VMSA 新文件系统表l        Solaris操作系统命令
增加一个UFS文件系统
为一个卷增加一个UFS文件系统是非常容易的。你可以在VMSA中填写简单表或在命令行中执行标准的Solaris操作系统命令。这两种方式都将在本部分进行讨论。
        --------------------------------------------------------------------------------------------------
注意----UFS和VxFS都被VM所支持。这个过程不会覆盖VxFS;附录D包含一些这个产品的信息。
        --------------------------------------------------------------------------------------------------
        使用VMSA新文件系统表
如果你使用VMSA的新文件系统表来增加一个新的文件系统到一个已经存在的卷是非常简单的。如图6_5所示,包含了所有必须的信息:
如果你在VMSA的Grid区预先选择了卷,新文件系统表自动显示卷名和加载点。你可以改变这些信息,你也可以通过点击Mkfs Detail键输入任何有效的mkfs参数。
                如果你选择了在启动时加载参数,以下的操作将会自动执行:
l        加载信息被记录在文件:/etc/vfstab中
l        文件系统将由命令:mkfs进行初始化
l        加载点被创建
l        最终的文件系统将由命令:mount进行加载
使用命令行来增加一个新的文件系统
        当一个新的文件系统由命令进行初始化时,将调整3个重要的文件系统参数,以便于更高效的使用有效空间。他们是:
l        文件系统空闲空间(minfree)
l        每个inode的字节数量(Number of bytes per inode)
l        文件系统簇大小(File system cluster size)
文件系统的空闲空间(minfree)
        minfree是初始化过程中故意预留的未使用的文件系统总量。它可以作为紧急情况下的溢出使用。(emergency overflow)
        对于早期的低于Solaris 2.6的系统,minfree默认为10%。对于Solaris 2.6系统,默认的newfs参数已经改变。使用newfs,minfree的计算基于文件系统的大小。它的计算(64Mbytes / 分区大小) * 100,取最接近的整数,它被限制为1%到10%。
        因为mkfs仍然把10%作为默认的minfree大小,使用newfs可以更有效的创建一个文件系统,尤其对于大的文件系统。在非常大的文件系统中,你可以安全的设置minfree为1%。
每个inode的字节数量(Bytes per inode)
        默认的每个inode字节数为2048(2K),除非文件系统由很多小文件组成,这可以安全的增加到8192(8K),举例如下:
# newfs –i 8192 /dev/vx/rdsk/rootdg/vol01
文件系统的簇大小
        你可以设置一个文件系统的参数maxconfig来控制文件系统的I/O簇大小。这个参数指定了在写入磁盘时的成簇写入的8K字节块的数量。默认值为7,也就是56K字节。
        为了优化连续的性能,设置maxconfig为(条带中spindle的数量* 条带的单元大小) / 文件系统的块大小(8K),如果你要优化随机性能,设置它为1。
        如果文件系统的I/O簇大小是条带宽度的整数倍,那么就可以提高性能。如,在128K簇中设置maxconfig为16,(16块*8K系统块大小)。为了最佳的连续访问,文件系统的簇大小是多个条带宽度的整数倍。如:
n        条带中有4个磁盘,条带单元大小=32K
(32-Kbyte stripe unit size × 4 disks = 128-Kbyte stripe width)
n        maxconifg=16
(16 × 8-Kbyte blocks = 128-Kbyte clusters)
        --------------------------------------------------------------------------------------------------
注意----VMSA 新文件系统表中有一个Mkfs Detail键,允许你配置任何有效的mkfs参数。你也可以设置加载点如,属主,保护,suid, ro, rw和largefile。
        --------------------------------------------------------------------------------------------------
脏区日志  一个脏区日志(Dirty Region Log, DRL)保存了一个在镜像卷中已经被修改的数据区的映象,提供了以下优点:l        在崩溃后的高速同步镜像(highly accelerated mirror resynchronization after a crash)l        在镜像重同步的过程中防止第二次崩溃
脏区日志(Dirty Region Logging)
脏区日志(DRL)是VM的日志文件,用来跟踪镜像卷的数据改变。当一个失败的镜像需要使用已经存在的镜像做重新同步时,使用DRL来加速恢复时间。
        DRL概述
DRL是一个与镜像卷有关的,小的,有着特殊目的的plex。它有以下的功能:
l        它是用来保存卷中区域跟踪的日志,将改变的结果写入到一个plex,通过维护一个位图(bitmap)并存储这些信息到一个日志子磁盘。
l        在系统失败后,只有在脏区日志标记为脏的区域才可以被恢复
DRL的空间需求
        一个DRL对于主机系统有一个单独的恢复映象(recover map),和一个活动映象(active map)。
        对于每2个G的卷大小来说,日志大小是每个映象(map)一个块(block)。
        对于一个2G卷,DRL的大小是2 blocks
        对于一个10G卷,DRL的大小是10 blocks
        --------------------------------------------------------------------------------------------------
        注意----最大的DRL大小是5K,对于更大的卷,VM改变日志大小来适
应更大的卷。
        --------------------------------------------------------------------------------------------------
                  RAID 5日志  一个RAID 5日志跟踪最近的数据或写入磁盘的奇偶校验信息,提供以下的优点:l        防止崩溃恢复的数据混乱(corruption)它不能象使用脏区日志的镜像卷一样提高恢复过程的速度
RAID 5 日志
RAID 5日志帮助阻止数据的混乱,一旦系统崩溃(mid-write)。若不使用日志,一个系统在写的过程中失败,如果数据和奇偶校验都被写入到磁盘,那么将没有方式去断定。这将导致数据的混乱。
        RAID 5日志概述
当使用了RAID 5日志,在写入到磁盘之前,一个数据和奇偶校验的拷贝将被写入到RAID 5日志中。
RAID 5日志是可选的,但是强烈推荐使用它,能够阻止一旦系统混乱或重启动后的数据混乱。
默认情况下,RAID 5日志被创建,你应该总要运行一个使用RAID 5日志的系统来确保数据的完整性。
        RAID 5日志的空间需求
在命令:vxprint的输出中,一个RAID 5日志做为第二个plex被显示。日志的长度是2109个块(blocks)或1M多一点。如:
                # vxprint apps-v1
v         apps-v1         raid5                 ENABLED         1024032         -         ACTIVE
pl         apps-v1-01         apps-v1         ENABLED         1025088         -         ACTIVE
sd         apps-d01-01 apps-v1-01         ENABLED         341715         0         -
sd         apps-d03-01 apps-v1-01         ENABLED         341715                 0         -
sd         apps-d02-01 apps-v1-01         ENABLED         341715         0         -
pl         apps-v1-02         apps-v1         ENABLED         2109                 -         LOG
sd         apps-d05-01 apps-v1-02         ENABLED         2109                 0         -
        
RAID 5日志的大小由VM自动设置,它依赖于卷的条带宽度。更大的条带宽度(不是卷),需要更大的RAID 5日志。
一个RAID 5卷的默认日志大小是4倍的完整条带宽度(条带单元大小 * 条带柱数量)
                RAID 5卷的条带单元大小是16Kbytes(16,384字节)。
                然而,带有6个磁盘的RAID 5卷的日志大小将按以下方式计算:
                4 * 6 * 16.384Kbytes = 393.22Kbytes = 768 blocks
               日志放置(log placement)  如果没有适当的放置,日志子磁盘可能会产生性能问题。关于日志子磁盘的最重要的规则是:l        日志子磁盘不能与他们管理的卷位于相同的磁盘
日志放置
在一个系统崩溃后,对于卷的恢复,日志可能会非常有用。如果它们没有被适当的管理,可能会产生I/O的瓶颈而影响系统性能。
对于RAID 5和镜像卷的日志应该计划使用。它们不占用很多空间,但能够引起问题。
必须要特别注意RAID 5日志,因为所有RAID 5条带单元的写入数据同时也写入到日志中。这将在以后的章节继续讨论。
        
日志计划
如图6_6所示,在所有磁盘的尾部留下少量空闲空间,以确保你能够在移动日志时找到替换位置。
                如果可能,日志不要放在与它相关联的卷位于同一磁盘。

第七章  Veritas Volume Manager Advanced Operations
目标
                通过本章学习,你将掌握如下:
l        完成一个在线卷的重分层(relayout)
l        从一个磁盘中,撤出所有子磁盘(evacuate)
l        移动一个正在使用(populated)的磁盘到一个新的磁盘组
l        移动一个磁盘组到另一个系统
l        执行一个快照备份
l        使用一个文件系统创建一个条带卷
l        替换一个失败磁盘
           撤出一个磁盘  如果一个磁盘即将失败,那么,只要满足下列条件将可以很容易的将其内容移动到另一个磁盘上:l        新磁盘位于相同的磁盘组l        新磁盘不包含冲突目标l        新磁盘能提供足够的空闲空间
撤出一个磁盘
一个磁盘上的卷结构通过启动可恢复数据错误,可以被撤出到另一个不同的磁盘上,在这块磁盘完全失败之前。通过不带镜像的操作一个卷来最小化时间,可以减少数据丢失的风险。
                这个过程也可以被用来减少或消除已经被标识的性能瓶颈。
                撤出只可以在相同组内的磁盘上执行。
        撤出冲突
                在你执行磁盘撤出之前,仔细查看失败磁盘和新磁盘的配置。
                确认撤出过程不会产生以下的冲突:
l        两个卷的镜像在相同的物理磁盘上
l        多于一个条带或RAID 5卷的条带柱(stripe column)位于相同的磁盘上
撤出准备
        在准备撤出之前,你必须:
l        查找与失败plex相关的卷及与它相关的磁盘名字
l        找出与失败磁盘相关的磁盘组
l        确定失败的磁盘是否与其他卷相关
l        查找一个有足够空闲空间的磁盘来执行撤出
l        检查与新磁盘相关的任何卷冲突
以下例子说明,你如何准备撤出一个磁盘,失败的plex叫:plex002:
# vxprint –ht | grep plex002
pl  plex002        vol002          ENABLED  ACTIVE          2048256         CONCAT
sd         sd01        plex002         disk01                         0                 2048256         0 c1t1d0
                # vxdisk list | grep disk01
c1t1d0s2         sliced                 disk01         skyvols         online
               
                # vxprint –g skyvols –ht | grep disk01
dm         disk01                 c1t1d0s2         sliced         2015         2050272         -
sd                 sd01                plex002         disk01         0                 2048256         0         c1t1d0
# vxdg –g skyvols free
DISK         DEVICE         TAG         OFFSET         LENGTH         FLAGS
disk03         c1t0d3s2         c1t0d3         2048256         2016                         -
disk04         c1t0d4s2         c1t0d4                 0                 2048256                 -
disk01         c1t1d0s2         c1t1d0         2048256         2016                         -
disk02         c1t1d1s2         c1t1d1         2048256         2016                         -
# vxprint –g skyvols –ht | grep disk04        
        执行一个撤出
                撤出过程可以使用以下3种方式:
l        使用VMSA GUI
l        使用vxdiskadm命令
l        使用vxevac目录
使用VMSA执行撤出
1.        选择包含将要移动的目标和数据的磁盘
2.        从弹出菜单中选择DisksàEvacuate
3.        在Evacuate Disk dialogue框中输入目标磁盘
使用vxdiskadm命令执行撤出
        启动:vxdiskadm,选择参数:7,Move volume from a disk。提示一个磁盘,输入介质名。然后提示一个可能的目标磁盘列表,也是输入磁盘的介质名。清单中如果没有目标磁盘,表示任何磁盘都可以。这个操作称为vxevac,在磁盘中移动子磁盘。
使用vxevac执行撤出
        命令:vxevac移动子磁盘从一个指定的磁盘到一个新磁盘。如果没有指定目标磁盘,vxevac可以使用任何有效磁盘。如果指定了目标磁盘,则假设它有足够的空间和收益。如果在指定的目标磁盘上没有足够的空间,一些卷可能不会被撤出。vxevac的格式如下:
        # vxevac –g disk_group media_name new_media_name
        一个典型的vxevac命令看上去如下:
        # vxevac –g DGb disk03 disk10
不保留数据的移动磁盘  VM磁盘可以在没有任何VM目标与之相关的情况下,通过使用以下方式很容易的在磁盘组中移动:l        VMSA命令执行台:DisksàRemovel        命令:vxdg
不保留数据的移动磁盘
因为目标磁盘组需要附加的磁盘空间,你可能想要移动一个VM磁盘到另一个不同的磁盘组。只要目标磁盘不包含你需要保留的数据,这个过程是比较简单的。
               
        使用命令行移动一个磁盘
                如果你想要移动的磁盘包含活动卷,但你并不在乎数据的丢失,你必须:
1.        Unmount一个相关的文件系统,并禁用任何相关的应用。
2.        停止卷
3.        删除卷配置
4.        从磁盘组中移除磁盘
5.        增加磁盘到另一个不同的磁盘组
停止卷
        你可以使用 vxvol命令来停止卷:
        # vxvol stop volume_name
删除卷配置
        你可以使用如下方式删除一个卷中的所有目标:
        # vxedit –r rm volume_name
从磁盘组中移除磁盘
        使用vxdg命令从一个磁盘组中移除一个磁盘
        # vxdg rmdisk disk_name
        --------------------------------------------------------------------------------------------------
注意----就算使用了vxdg rmdisk操作,这个磁盘依然由VM所使用。只有通过命令:vxdiskunsetup可以完全从VM控制下移除一个磁盘。
        --------------------------------------------------------------------------------------------------
给一个新的磁盘组增加一个磁盘
        vxdg命令用来增加一个磁盘到一个不同的磁盘组:
        # vxdg –g new_dg adddisk new02=c1t3d0
        --------------------------------------------------------------------------------------------------
注意----在以前的步骤中,默认的磁盘组是rootdg,你必须指定新的磁盘组,新的磁盘名,及磁盘的物理路径。
        --------------------------------------------------------------------------------------------------
        使用VMSA移动一个磁盘
使用VMSA接口可以很容易的移动一个磁盘到一个新的磁盘组。选择了你要移动的卷之后,使用如图7_1所示的Stop和Remove菜单入口:
现在,磁盘被返回到空闲磁盘池(Free Disks Pool),也可以在这里被重新选择,然后增加到不同的磁盘组中,在命令执行台使用:DiskàAdd Function。
移动正在使用的磁盘到新的磁盘组  移动一个磁盘到新的磁盘组并且保留它的数据是复杂的,需要执行以下操作:l        使用:vxprint保存磁盘配置信息l        使用:vxvol停止卷l        使用:vxedit移除卷l        使用:vxdg移动磁盘到新的组l        使用:vxmake重建原始配置         
移动正在使用的磁盘到新的磁盘组
移动正在使用的磁盘到一个新的或不同的磁盘组是一个不常使用的技巧。使用这个技巧通常是:你错误的创建了rootdg磁盘组的所有你的卷,现在,你想要改正它。
理解这个概念是非常重要的,因为很多使用的命令都可以用于其它目的,如恢复一个配置。
               
        --------------------------------------------------------------------------------------------------
警告----在一个没有为所有卷进行备份的系统上,不会执行这些操作。如果这个过程失败,而且没有备份磁带,将没有方式可以恢复。
        --------------------------------------------------------------------------------------------------
        --------------------------------------------------------------------------------------------------
注意----在本节中,一个被称为:vol01的卷将从磁盘组:olddg移动到新的磁盘组:newdg。
        --------------------------------------------------------------------------------------------------
        决定哪些磁盘是相关的
在你有任何动作之前,你必须确定哪个物理磁盘是你目标卷的一部分。你必须也要确定,磁盘没有被其他卷使用。
如果你使用命令:vxprint带有参数 –ht,你将看到一个完整的卷层次结构。
# vxprint –ht –g olddg
Disk group: olddg
DG        NAME         NCONFIG         NLOG                 MINORS        GROUP-ID
DM        NAME         DEVICE         TYPE                 PRIVLEN         PUBLEN                         STATE
V         NAME         USETYPE         KSTATE         STATE        LENGTH READPOL  PREFPLEX
PL         NAME         VOLUME         KSTATE         STATE                 LENGTH LAYOUT NCOL/WID
SD        NAME         PLEX                 DISK                 DISKOFFS         LENGTH [COL/]OFF DEVICE
dg         olddg         default                 default                 0                         891019192.1025.bawlmer
dm        olddg01 c0t17d0s2         sliced                 1519                 4152640                         -
dm        olddg02 c0t18d0s2         sliced                 1519                 4152640                         -
dm        olddg03 c0t19d0s2         sliced                 1519                 4152640                         –
v         vol01 f        sgen                 ENABLED         ACTIVE 10240         SELECT                 vol01-01
pl         vol01-01 vol01                 ENABLED         ACTIVE         11015         STRIPE         3/128
sd         olddg01-01 vol01-01 olddg01         0                         3591         1/0                 c0t17d0
sd         olddg02-01 vol01-01 olddg02         0                         3591         1/0                 c0t18d0
sd         olddg03-01 vol01-01 olddg03         0                         3591         2/0                 c0t19d0
卷的层次部分列出了卷的一个入口,及与其相关的plex和subdisk。在这个例子中,卷vol01包含了一个plex(vol01-01),这个plex由3个子磁盘组成(odddg01-01, odddg02-01, odddg03-01)。每个存储在一个独立的VM磁盘。
从这个输出可以看到,需要被移动的3个VM磁盘是:odddg01-01, odddg02-01, odddg03-01。
        保存配置
1.        使用vxprint命令来保存卷配置
# vxprint –hmQq –g olddg vol01 >; save_vol01
        --------------------------------------------------------------------------------------------------
警告----如果你保存的是分层的卷,如Stripe Pro结构,拥有子卷,你必须在vxprint命令中增加参数r 和L,(vxprint –hmQqrL)。如果你不这样做,保存的配置信息将是不完整的。
        --------------------------------------------------------------------------------------------------
               
                命令:vxprint中使用的参数 –m可以以一定的格式来保存配置信息,并
且这种格式被vxmake命令所使用。
                在这个例子中,你保存了卷vol01的配置信息到文件save_vol01中。
                所使用的参数的是:
                -h                 列出完整的层次结构
                -m                以一定的格式显示信息,它可以作为vxmake命令的输入
                -Q                排除独立于每个磁盘组的头
                -q                排除头(附加于磁盘组的头)
                -r                显示包含子卷的卷的相关记录
                -L                显示包含子卷的卷的相关记录
                -g                指定磁盘组
        移动磁盘到一个新的磁盘组
                移动磁盘到一个新的磁盘组需要以下几个步骤:
1.        Unmount适当的文件系统,停止卷vol01上的所有进程
2.        停止卷:
# vxvol –g olddg stop vol01
3.        从配置数据库中移除定义的结构(卷,plex和子磁盘)
# vxedit –g olddg –r rm vol01
vxedit命令用来移除在先前的磁盘组:olddg中定义的卷,plex和子磁盘的配置数据库。
                        --------------------------------------------------------------------------------------------------
注意----这不影响数据,它只是从配置数据库中移除选择的记录。参数 –r将会递归的移除卷和所有相关的plex和子磁盘。
        --------------------------------------------------------------------------------------------------
4.        从原始的磁盘组中移除磁盘
# vxdg –g olddg rmdisk olddg01 olddg02 olddg03
5.        如果新的磁盘组newdg不存在,使用即将移动的一个磁盘来对它进行初始化(在这个例子中是:olddg01)。
# vxdg init newdg olddg01=c0t17d0s2
        --------------------------------------------------------------------------------------------------
警告----命令:vxdisk init和vxdg init很相象,但是执行完全不同的操作:vxdisk init初始化一个磁盘,毁坏所有已经存在的数据,vxdg init初始化一个磁盘组,增加指定磁盘到磁盘组。
        --------------------------------------------------------------------------------------------------
6.        增加剩余的磁盘到新磁盘组
# vxdg –g newdg adddisk olddg02=c0t18d0s2
# vxdg –g newdg adddisk olddg03=c0t19d0s2
7.        校验磁盘已经被增加到新的磁盘组
# vxdisk list | grep newdg
c0t17d0s2         sliced         olddg01         newdg         online
c0t18d0s2         sliced         olddg02         newdg         online
c0t19d0s2         sliced         olddg03         newdg         online
        重新加载卷配置
8.        使用命令:vxmake来重新加载为卷vol01而保存的配置
# vxmake –g newdg –d save_vol01
重新调用保存了早期的卷配置的文件:save_vol01。参数 –d用来指定建立子磁盘,plex和卷所使用的描述文件。
                --------------------------------------------------------------------------------------------------
警告----这一步是很重要的,如果磁盘没有它们原始的介质名,配置的重新加载就会失败。
        --------------------------------------------------------------------------------------------------
9.        使用vxvol命令使得卷重新在线
# vxvol –g newdg init active vol01
        --------------------------------------------------------------------------------------------------
注意----这个过程的另一个选择就是,在另一个磁盘组创建一个新卷,然后恢复备份磁带,或从旧卷执行一个直接拷贝。
        --------------------------------------------------------------------------------------------------
                   移动磁盘组  导出或导入磁盘组的过程需要你理解以下概念:l        为什么你要导出或导入一个磁盘组l        磁盘组是如何标识的l        如何建立新磁盘组的属主l        导入和导出时的限制
移动磁盘组
一个磁盘组与一个特定的主机系统相关。有时管理需要把一个磁盘组与另一个主机相关,当处于管理员的控制下时,这个过程调用首先从一个系统导出一个磁盘组然后在另一个系统上导入它。
                导出一个磁盘组的原因是:
l        在那个磁盘组中禁止访问所有卷
l        准备另一个主机来导入磁盘组
这是维护计划或负载均衡分配的一部分。
        --------------------------------------------------------------------------------------------------
注意----如果发生了系统崩溃,磁盘组可能处于不能干净导出的状态。这种可能性将在本节后面讨论。
        --------------------------------------------------------------------------------------------------
        磁盘组的属主
当创建了一个磁盘组,它被分配一个唯一的名字和唯一的组标识。你可以在 vxprint的输出中查看这些信息:
                dg        olddg        default        default        0        891019192.1025.bawlmer
                在这个例子中,磁盘组的名字是olddg,唯一的磁盘组ID是:
891019192.1025.bawlmer        
        系统的hostname存储在磁盘组中的所有磁盘中。
        --------------------------------------------------------------------------------------------------
        注意----VM文档和很多VM帮助页都错误的将hostname作为host id或host
ID。
        --------------------------------------------------------------------------------------------------
        磁盘组状态
                计划被导出的磁盘组可能处于几个不同的状态:
l        磁盘组的名字和标识没有改变,hostname被清空。
这是一个计划导出后的典型状态,这个磁盘组将在以后被相同的系统再次导入。
l        磁盘组已经给定了一个新名字并且分配了一个新的hostname
这可以会由不同的主机系统在维护和负载均衡时准备导入的磁盘组。
l        磁盘组的名字和标识都没有改变并且hostname也没有清空
这是系统崩溃后的典型状态,如果不同的系统试图导入磁盘组,将会产生hostname冲突并且导入将会失败,除非采取特别的步骤。
        准备导出一个磁盘组
                在磁盘组被导出前,必须完成以下:
l        停止文件系统或数据库卷的所有应用和用户访问
l        卸载所有文件系统
l        停止所有卷
        --------------------------------------------------------------------------------------------------
注意----如果一个系统崩溃,卷可能会处于一种状态,在以后的导入过程中需要卷的恢复。
        --------------------------------------------------------------------------------------------------
        导出参数
                在导出一个磁盘组时,有几个变量是有效的,通常使用的是:
l        正常导出操作,hostname被自动的被清空
# vxdg deport disk_group_name
                        这是正常的导出,相同的系统将在以后再次导入磁盘组。
l        导出磁盘组并在磁盘上写入新的hostname
# vxdg –h new_hostname deport disk_group_name
当由另一个主机系统准备导入磁盘组时使用。这将允许第二台主机在它启动时自动导入磁盘组。
l        导出磁盘组,给它一个新名字和一个新的hostname
# vxdg –n new_dgname –h new_hostname deprot dg_name
这由另一个主机准备导入磁盘组,它已经有了一个与之相同的磁盘组名字。
        导入磁盘组
                依赖于磁盘组的状态,有几个导入操作的变量很有用:
l        一个干净磁盘组的简单导入
# vxdg import disk_group_name
l        在系统崩溃之后,导入磁盘组到另一个系统
# vxdg –C import disk_group_name
                        参数-C是必须的,用来清空崩溃后磁盘上留下来的老的hostid。
                        # vxdg –fC import disk_group_name
                        --------------------------------------------------------------------------------------------------
警告----参数-f 将强迫在此过程中所有相关磁盘皆不可用。这是非常危险的,在双主机存储阵列上会导致多次导入。
        --------------------------------------------------------------------------------------------------
                        # vxrevocer –g disk_group_name –sb
                在崩溃后启动卷并执行一个恢复过程,这将会执行。这将在重启
过程中自动执行。
l        使用一个重复的名字导入一个磁盘组
# vxdg –t –n new_disk_name import new_group_name
参数 –t 使得新的磁盘组的名字是临时的。
        在崩溃后导入rootdg
在崩溃后导入rootdg到另一个系统执行恢复操作是必须的。这有一点复杂,因为在一个系统上不能同时存在2个rootdg。

这需要使用以下参数:
l        给rootdg分配一个新的临时磁盘组名
l        清除原始的hostid属主
l        使用唯一的rootdg组标识
# vxdg –tC –n new_disk_group import group_id
困难的部分就在于你必须使用唯一的roogdg组标识,这必须提前知道。
你可以使用命令:vxdisk来确定rootdg组标识。
# vxdisk –s list
Disk:                 c0t2d0s2
type:                 sliced
flags:                 online ready private autoconfig autoimport imported
diskid:                791000525.1055.boulder
dgname:         rootdg
dgid:                 791000499.1025.boulder
hostid:                 boulder
On the importing host, the group will be renamed:
快照操作  VM的快照功能自动准备一个卷进行备份,通过执行以下操作:l        为卷连接一个新的只写镜像l        拷贝数据到新的镜像l        分离镜像l        从新的镜像中创建新的卷
快照操作
当你需要备份一个卷上的数据,如文件系统卷时,你可以使用VM的快照功能来创建一个卷的拷贝。然后备份新拷贝到磁带上而不需要中断对原始卷的服务。
        快照(Snapshot)条件
                在快照启动之前必须满足以下的条件:
l        必须已知要备份的卷名字
l        必须提供新的快照拷贝的名字
l        可以为快照拷贝指定特定的磁盘
l        必须为快照准备足够的未使用磁盘空间
快照过程
        通常从VMSA接口使用快照功能的过程如下:
1.        选择被拷贝成快照的卷
2.        选择VolumeàSnapshot(Selected)菜单或在命令执行台:VolumeàSnap
3.        完成卷快照的对话框(Volume Snapshot Dialogue box)
4.        在对话框中点击Snapshot来启动快照进程,这所需要的时间依赖于卷大小
5.        当镜像拷贝完成时,再次点击Snapshot
这将分离新的镜像并从它上创建一个独立卷。
6.        备份新的快照卷到磁带
7.        移除快照卷
在线卷重分层  在线卷重分层改变卷的层次结构但不中断数据访问。这个功能被用来:l        改变一个卷的冗余特性l        改变一个卷的性能特性
在线卷的重分层
在线卷重分层为管理员提供了一种工具,可以用来正确配置信息,或在以后当更多磁盘资源有效时,增强配置。
在线卷重分层的一个重要功能就是在重分层的操作过程中卷及其文件系统继续保持有效。
                重分层功能可以用来执行很多操作,如:
l        为一个RAID 5卷增加更多条带柱(column)
l        改变一个卷的条带单元大小
l        将卷类型从RAID 5改变到镜像或条带
        --------------------------------------------------------------------------------------------------
注意----在试图对一个生产卷重分层之前,应该仔细阅读Veritas管理员手册。
        --------------------------------------------------------------------------------------------------
        卷重分层的准备
                在重分层开始前,你必须提供以下信息:
l        选择新的卷分层
这包括串联,条带,RAID 5,串联pro和条带pro
l        指定为新卷分层所需要的附加磁盘空间,如RAID 5奇偶校验空间
l        指定在卷分层改变期间所需要的临时磁盘空间
重分层状态监视器
        一旦你填好了重分层表并启动了重分层进程,一个重分层状态窗口将会被显示出来。你可以使用这个窗口中的工具进行控制:
l        临时停止分层进程(暂停)
l        放弃分层进程
l        在暂停后继续分层进程
l        撤消重分层的改变(Reverse)
完成状态的百分数也将会被显示出来
        --------------------------------------------------------------------------------------------------
                注意----如果卷没有被VMSA或vxassist命令创建,重分层任务可能会失败
        --------------------------------------------------------------------------------------------------
                   被分层的卷  VM有2个定制的卷结构被称为:Concatenated Pro和Striped Pro,它们提供以下特性:l        增强的磁盘失败的容许度l        提高了数据冗余l        加快了恢复时间
被分层的卷
                一个被分层的卷建立在一个或多个其他卷上,下面的卷是典型的镜像。
                使用VM3.0.2及以上版本,你可以创建以下类型的分层卷:
l        Concatenated Pro卷
它是一个被镜像的分层串联卷
l        Striped Pro卷
它是一个被镜像的条带串联卷
        Striped Pro卷结构
如图7_2所示的Striped Pro卷由几个层构成。The lower levels of the layered volumes are readymade configurations designed to provide the highest level of
availability without increasing the administrative complexity.
                启动分层卷
当从命令行方式启动分层卷,你要启动子卷及顶级卷。子卷通常包含字符L(L01, L02)。启动顺序如下:
                        # vxvol –g DGa start vol01-L01
                        # vxvol –g DGa start vol01-L02
                        # vxvol –g DGa start vol01
                保存分层卷配置
当使用:vxprint来保存一个通常的卷配置时,使用参数:-hmQq。当保存一个分层卷时,必须加上参数 r和L,一个典型的保存分层卷的配置信息的命令如下:
                        # vxprint –g DGa –hmQqrL vol01 >; save_vol01
        --------------------------------------------------------------------------------------------------
警告----如果对命令:vxprint增加参数 r和L失败,那么保存的配置信息是不完整的。
        --------------------------------------------------------------------------------------------------
                解码分层卷结构
一个简单分层卷的vxprint输出是复杂的,在所有的组件中跟踪它们的关系是困难的。
# vxprint –g DGa vol01
TY         NAME                 ASSOC         KSTATE         LENGTH         PLOFFS         STATE
v                 vol01                 fsgen                 ENABLED         409600         -                         ACTIVE
pl                 vol01-04         vol01                 ENABLED         409600         -                         ACTIVE
sv                 vol01-S01         vol01-04         ENABLED         204800         0                         -
v2                 vol01-L01         fsgen                 ENABLED         204800         -                         ACTIVE
p2                 vol01-P01         vol01-L01         ENABLED         LOGONLY         -                         ACTIVE
s2                 DGa02-01         vol01-P01         ENABLED         5                         LOG                 -        
p2                 vol01-P02         vol01-L01         ENABLED         204800         -                         ACTIVE
s2                 DGa01-03         vol01-P02         ENABLED         204800         0                         -
p2                 vol01-P03         vol01-L01         ENABLED         204800         -                         ACTIVE
s2                 DGa04-02         vol01-P03         ENABLED         204800         0                         -
sv                 vol01-S02         vol01-04         ENABLED         204800         0                        -
v2                 vol01-L02         fsgen                 ENABLED         204800         -                         ACTIVE
p2                 vol01-P04         vol01-L02         ENABLED         LOGONLY         -                         ACTIVE
s2                 DGa02-02         vol01-P04         ENABLED         5                         LOG                 -
p2                 vol01-P05         vol01-L02         ENABLED         204800         -                         ACTIVE
s2                 DGa03-02         vol01-P05         ENABLED         204800         0                         -
p2                 vol01-P06         vol01-L02         ENABLED         204800         -                         ACTIVE
s2                 DGa05-02         vol01-P06         ENABLED         204800         0                         -
                   磁盘失败  一个VM管理员必须监视,诊断和修复磁盘失败。l        使用命令:vxprint来监视失败l        监视控制窗口错误l        严格评估失败l        确定失败磁盘的物理路径l        使用vxdiskadm执行一个通常的磁盘替换l        对一些阵列需要特殊的步骤
磁盘失败
你看到的最通常的磁盘错误是分离plex信息。这通常意味着在卷中的一个镜像访问过程中出现了一个磁盘错误。
在你处理之前,你必须能够标识出失败磁盘的物理路径。最通常的工具是:
l        命令:vxprint
l        命令:vxdisk
l        文件:/var/adm/messages
失败概述
你看到的最通常的错误信息涉及到分离plex。当读取或写入到一个plex时,如果发生一个I/O错误,plex(镜像)将被分离。在处理之前有几个问题需要注意:
l        一个磁盘块的读错误可能会影响一个子磁盘,但位于相同物理磁盘上的其他子磁盘将不会受到影响。
l        只有一个读或写企图发生时,才会检测到一个错误。
l        一个完全的磁盘失败将会最终导致所有与这个磁盘相关的plex全部被分离
l        Hot spare将不会取代一个块相关错误。它必须是一个完整的磁盘访问错误。
        --------------------------------------------------------------------------------------------------
注意----VM的默认动作是热定位(hot relocation)而不是热交换(hot sparing),然而一些用户宁愿选择热交换。热定位可能使用以多种方式使用有效磁盘空间,这样可能会产生性能问题。
        --------------------------------------------------------------------------------------------------
        在 /var/adm/messages中的典型错误
        WARNING: vxvm:vxio: write error on Plex vol0-01 of shared volume vol0 offset
0length 1
WARNING: vxvm:vxio: Plex vol0-01 detached from volume vol0
WARNING: /sbus@6,0/SUNW,soc@2,0/SUNW,pln@a0000000,722a25/ssd@0,0
(ssd384):
vxvm:vxconfigd: Detached plex vol0-01 in volume vol0
vxvm:vxconfigd: Detached plex vol0-03 in volume vol0
        检测卷错误
命令:vxprint是最简单的方式来检测所有卷结构的状态。在以下的引用中,卷中的2个plex状态是错误的,
                # vxprint
Disk group: sdg0
TY         NAME         ASSOC         KSTATE         LENGTH         PLOFFS         STATE
dg                 sdg0         sdg0                 -                         -                         -                         -
dm         disk0         c4t0d0s2         -                         8368512         -                         -
dm         disk7         c5t0d0s2         -                         8368512         -                         -
v                 vol0         fsgen                 ENABLED         524288         -                 ACTIVE
pl                 vol0-01        vol0                 DISABLED        525141         -                 IOFAIL
sd                 disk0-01 vol0-01         ENABLED         525141         0                         -
pl                 vol0-02        vol0                 ENABLED         525141         -                 ACTIVE
sd                 disk7-01 vol0-02         ENABLED         525141         0                         -
pl                 vol0-03        vol0                 DISABLED LOGONLY         -                 IOFAIL
sd                 disk0-02 vol0-03         ENABLED         5                         LOG                 -
        --------------------------------------------------------------------------------------------------
注意----你可以使用命令:vxprint –ht vol0来获取卷的细节分析。这给出了你所需要的所有信息,包括坏磁盘的物理路径。
        --------------------------------------------------------------------------------------------------
你也可以使用 vxprint命令来创建一个备份配置文件以适合重新创建的卷结构的入口。这是一个有用的灾难恢复工具。
        严重失败(Failure Severity)
当VM检测到一个磁盘失败,它可以在一定数量的不同状态下替换一个失败的plex。对一个失败的plex的两个最通常的状态是:
l        DETACHED / IOFAIL
l        DISABLED / NODEVICE
状态DETACHED / IOFAIL不是很严重的,可以通过执行vxprint –ht的输
出来相对容易的标识失败设备的路径。如下:
# vxprint –ht | grep sd0b-01
sd         sd0b-01         lv0b-01 disk7         0         525141 0        c5t0d0         ENA
VM磁盘名及物理路径在上例中被高亮显示,VM磁盘是disk7物理路径
是:c5t0d0。
当VM软件丢失了磁盘的完全的联系时,在命令:vxprint –ht中物理路径可能为空。那时,你必须从vxprint中查找失败磁盘的介质名,然后使用命令:vxdisk list相关介质名与物理设备。
        # vxdisk list
DEVICE         TYPE         DISK         GROUP         STATUS
c0t0d0s2         sliced         -                 -                         error
c0t1d0s2         sliced         disk02         rootdg                 online
-                         -                 disk01        rootdg                 failed was:c0t0d0s2
当一个磁盘失败并成为分离状态时,CVM或SSVM软件当前不能发现磁盘但仍然知道物理路径,这就是failed状态。这意味着磁盘已经失败,物理路径被确切的显示。
        
通常磁盘替换过程
替换一个失败的,包含镜像卷的磁盘的最简单方式是使用vxdiskadm单元。使用参数4后再选择参数5。
               
                命令:vxdiskadm的主菜单
                        # vxdiskadm
                        1 Add or initialize one or more disks
2 Encapsulate one or more disks
3 Remove a disk
4 Remove a disk for replacement
5 Replace a failed or removed disk
6 Mirror volumes on a disk
7 Move volumes from a disk
8 Enable access to (import) a disk group
9 Remove access to (deport) a disk group
10 Enable (online) a disk device
11 Disable (offline) a disk device
12 Mark a disk as a hot-spare for a disk group
13 Turn off the hot-spare flag on a disk
list List disk information
? Display help about menu
?? Display help about the menuing system
q Exit from menus
Select an operation to perform: 4
        --------------------------------------------------------------------------------------------------
                警告---对于很多的存储阵列,附加动作必须被执行通过参数4和5
        --------------------------------------------------------------------------------------------------
        StorEdge A5000 Array 磁盘替换
不象其他的存储阵列,对于一个A5000磁盘的物理路径有一个唯一的磁盘ID植入其中。如果你替换了一个磁盘,则对所有连接的主机系统你已经改变了磁盘的物理路径。
        
                A5000磁盘的路径名的例子
                        /sbus@6,0/SUNW,socal@2,0/sf@1,0/ssd@w2100002037078320,0
/sbus@6,0/SUNW,socal@2,0/sf@1,0/ssd@w210000203707976d,0
                A5000磁盘的替换过程
1.        查找坏磁盘的介质名和物理路径
2.        在VM控制下使用vxdiskadm的参数4来移除磁盘
3.        使用:luxadm remove_device参数来移除旧的物理路径
4.        在A5000中安装一个替换磁盘
5.        使用:luxadm insert_device参数来为磁盘建立一个新的物理路径
6.        使用 vxdiskadm参数5在新磁盘上重建卷结构
SPARCstorage Array磁盘替换
        对于一个SPARCstorage阵列的磁盘替换过程是很简单的,除非只替换一个单独的磁盘,你必须移动一个包含10个磁盘的磁盘tray。这意味着你必须首先分离所有在tray中与其相关的其他镜像。
        SPARCstorage Array 100磁盘替换过程
1.        查找坏磁盘的介质名,物理路径,和SPARCstorage Array tray
2.        分离卷在其他磁盘(包含失败磁盘的tray)上的所有镜像。
        
--------------------------------------------------------------------------------------------------
警告----所有与给定磁盘tray相关的卷必须被镜像到一个不同的tray。否则,你可能会意外的移除全部卷,虽然你只是想移动一个单一的镜像。
        --------------------------------------------------------------------------------------------------
3.        在VM控制下,使用vxdiskadm的参数4来移除坏磁盘
4.        Spin down目标磁盘tray下的所有磁盘,并移动tray。你可以使用VMSA GUI来完成
5.        替换失败的磁盘并插入到tray中,这个磁盘将自动spin up
6.        使用vxdiskadm参数5,在新磁盘上重建卷结构
7.        重新联结在磁盘tray上其他卷的所有分离的镜像


第八章        Veritas Volume Manager Performance Management
目标
        通过以下章节的学习,你将掌握如下:
l        描述如何进行数据分配计划来提高系统性能
l        列出可以增强读写性能的卷配置
l        列出可以获得性能信息的VM命令
l        描述3种RAID 5写过程的类型
l        列出3种RAID 5写过程的类型为提高系统效率
性能方针  有几个策略可以优化卷性能,包括:l        为物理磁盘分配数据,使得在他们之间的I/O负载能够平衡l        通过使用条带,镜像或RAID 5来提高数据的访问带宽l        通过捆绑(cabling across)系统板和控制器来提高数据的访问带宽
性能方针
                在任何系统上周期的评估卷的性能是必须的。
        数据分配
当决定文件系统的放置位置时,系统管理员总是试图来平衡有效磁盘间的I/O负载。但是,难于确定将来的使用模式,限制这个过程的成功执行。
通常情况下,文件系统可能有着繁重的I/O负载,不能位于相同的磁盘。把它们分配到不同控制下的不同的存储阵列。
                同时,日志文件的位置对性能也是有影响的。尤其对于RAID 5来说。
                如图8_1所示,数据分配的错误会导致性能问题
                以下的方案可以解决上图中的性能问题:
l        使一些高使用的卷与低使用的卷进行交换
l        移动高使用的磁盘到一个不同的阵列
        --------------------------------------------------------------------------------------------------
注意----交换卷位置可能是一个好的解决方案,因为它在单一磁盘上消除了2个高使用率的卷。
        --------------------------------------------------------------------------------------------------
当一个日志plex与它所相关的数据plex位于相同的磁盘时,可能会发生另一种类型的性能问题。如果是RAID 5日志,你要考虑到以下方面:
l        数据写入到所有RAID 5的柱,同时也要写入日志
在一个6柱(6-column)的RAID 5卷,这可能会增加日志磁盘的I/O速率
的600%。
如图8_2所示,保留所有磁盘的尾部空间,确保你能为移动日志拥有可
选择的空间
如果2个卷的访问负载很重,如图8_2的日志位置将不能很好的工作,
这个配置的最好工作状态是,至少一个卷有很低的写活动。
        提高带宽(Bandwidth Improvement)
                镜像
在一个系统中,镜像存储数据的多个拷贝。在物理介质失败时,镜像是用来保护数据丢失的主要方式,一旦发生系统崩溃,它也提高数据的恢复机率。
在一些情况下,镜像也可以用来提高系统性能。镜像频繁访问的数据,不止能在磁盘失败时保护数据丢失,也可以提高I/O性能。然而,它不像条带那样,通过使用镜像获得的性能依赖于磁盘访问的读写率。如果系统的工作负载主要是写操作(如,大于30%的写操作),那么镜像可能会在某些方面降低性能。
                        为不同类型的镜像卷提供优化的读性能,VM支持以下的读策略:
n        round-robin读策略(round)
在卷中所有plex以round-robin风格的镜像卷的读请求是满意的。当使用任何特殊镜像没有重大性能提高时,做此选择。
n        preferred-plex读策略(prefer)
从一个指定的plex(推测这个plex有着高性能)对一个镜像卷的读请求是满意的。除非这个plex失败
n        默认的读策略(select)
对于配置会自动的选择读策略,如,选择preferred-plex当只有一个条带plex与卷相关时;在其他情况下选择round-robin。
在如图8_4的例子中,被标记为Hot Vol的卷的读策略被设置为prefer,对于条带plex标识为Plex 1。在这个方式下,读请求被直接送给条带plex(它拥有最好的性能特性)。
                 
                RAID 0+1
RAID 0+1也涉及到一个镜像-条带配置。当一起使用时,镜像和条带提供了多磁盘的分布式数据访问优点并提供了数据冗余。
               
                RAID 1+0
RAID 1+0也涉及到一个条带-镜像配置。它的性能与RAID 0+1相同,但是这个配置可以容许更高机率的磁盘失败。
                RAID 5
                        RAID 5提供了读性能方面的优点,类似于条带,通过分布式的奇偶                校验表也提供了数据保护。RAID 5的缺点就是相对较慢的写性能。
                        RAID 5通常不是一个性能增强工具,除非一个高度读操作的应用。
                性能捆绑(Performance Cabling)
为了提高性能和/或有效性,可以通过系统板,控制器和目标(target)使用条带和镜像,性能或可靠性的最高级别可以通过系统板进行条带或镜像来获得。
如图8_5:
                  性能监视  通过使用以下方式,VM软件可以连续获得统计信息:l        命令:vxstatl        命令:vxtrace
性能监视
        获得统计信息
VM软件连续获得处于它控制之下的所有关于设备和目标的性能统计。这些获得的类型包括:
l        操作的数量
l        传输块的数量(一个操作可能调用一个或多个块)
l        平均操作时间(这反映了VM软件的总共时间并且不适合与其他静态程序相比较)
这些统计信息包括每个卷的读,写,原始拷贝,校验读,校验写,plex
读和plex写。对于一个2plex的卷的写,至少有5个操作:一个对应于每个plex,一个对应于每个子磁盘,一个对应于卷。
卷也维护其他的统计数据,如读和写失败。
在系统启动操作之后,统计被连续获得。重新设置统计为测试操作,这
只有在完全使用命令:vxstat或选择目标时使用。
        使用命令:vxstat显示统计信息
命令:vxstat用来显示关于不同类型的VM物理和逻辑目标的统计信息。以下的参数可以用来控制显示:
l        # vxstat –g disk_group
显示指定磁盘组的卷统计信息
l        # vxstat –g disk_group vol01
显示指定卷的统计信息
l        # vxstat –g disk_group –d
显示指定磁盘组的磁盘级别统计
l        # vxstat –g disk_group –d disk01
显示指定磁盘的统计
        使用vxtrace命令显示统计信息
命令:vxtrace用于显示关于错误或I/O操作的细节的跟踪信息。这个级别的细节信息通常不是必须的,但是完整的,以下的参数用来控制信息:
l        # vxtrace –o disk
跟踪所有磁盘的I/O操作
l        # vxtrace –o disk c3t98d0
跟踪磁盘c3t98d0的所有I/O操作
l        # vxtrace hist2
跟踪所有与卷hist2相关的虚拟设备I/O操作
l        # vxtrace –o dev hist2
跟踪所有与卷hist2相关的虚拟设备I/O操作
                   性能分析  VM性能分析过程包括以下几步:1.        重新设置(Resetting)已经存在的数据2.        在评估过程中维护正常的系统加载3.        使用一个不常使用的I/O操作的大数来标识VM目标4.        使用过度的读或写时间来标识VM目标5.        使用vxtarce命令执行细节跟踪
性能分析
一旦获得性能数据,它可以被用来确定和优化系统配置来高效的使用系统资源。
应该注意的是,一个有着较高的读或写访问时间的卷或磁盘不是一个必须的问题。如果慢速的响应对用户和应用来说不能引起任何明显的问题,那么就没有必要修复它。
        准备
在获得统计前,使用命令:vxstat –r 来清空所有已经存在的统计。清空统计能消除卷或磁盘在创建期间的任何差异。并且也移除了在启动时不感兴趣的统计信息。
清空的统计信息后,在典型的系统活动中,允许系统运行。当监视一个多目的的系统,正常执行系统应用,不要太多。
周期的执行卷的快照统计也是有好处的,能够标识不规则的系统加载问题的原因。
一个有着过量I/O速率的单一的卷,在其他卷相关相同的物理磁盘时,可能会使得性能降低。
        卷统计
你可以使用vxstat命令来帮助标识卷,使用一个不常使用的I/O操作的大数来标识VM目标:
                # vxstat –g bench
OPERATIONS                         BLOCKS                         AVG TIME(ms)
TYP         NAME         READ         WRITE         READ                 WRITE         READ         WRITE
vol         acct         473         11                         57252                         44                 4.0         20.9
vol         brch         23                 11                         92                                 44                 33.0         20.0
vol         ctrl         367         18000                 1675                 72000                 9.3         21.7
vol         hist1         23                 11                         92                                 44                 97.0         24.5
vol         hist2         23                 11                         92                                 44                 54.8         22.7
vol         hist3         23                 11                         92                                 44                 103.5         25.5
vol         log1         9                 27217                 9                         409716         16.7         21.1
vol         log2         7                 8830                 7                         159769         15.7         24.3
vol         rb1         123         13                         492                         52                 30.7         83.1
vol         rb2         23                 11                         92                                 44                 149.1         25.5
vol                 sys         26933         86156                 177688         344632                15.0         310.7
vol         t11r         23                 11                         92                                 44                 39.6         24.5
        磁盘统计
                命令:vxstat也可以依据物理磁盘进行统计操作:
                # vxstat –g bench –d
OPERATIONS                         BLOCKS                         AVG TIME(ms)
TYP         NAME         READ         WRITE         READ                 WRITE         READ         WRITE
dm         c3t98d0 14330         140370         120348         986785         15.4         185.6
dm         c3t100d0 13881         140370         117971                 986785         15.4         187.7
dm         c3t113d0         0         0                         0                         0                         0.0         0.0
dm         c3t115d0         0         0                         0                         0                         0.0         0.0
dm         c3t117d0         0         0                         0                         0                         0.0         0.0
        跟踪信息
当标识了一个与I/O问题相关的卷时,你就可以使用vxtrace命令来确定哪个系统进程对这个I/O请求进行响应。在这里,相关的卷的名字是:ctrl
                # vxtrace –o dev ctrl
40122 START write vdev ctrl block 16 len 4 concurrency 1 pid 10689
40122 END write vdev ctrl op 40122 block 16 len 4 time 1
40123 START write vdev ctrl block 16 len 4 concurrency 1 pid 10689
40123 END write vdev ctrl op 40123 block 16 len 4 time 2
40124 START write vdev ctrl block 16 len 4 concurrency 1 pid 10689
40124 END write vdev ctrl op 40124 block 16 len 4 time 4
40125 START write vdev ctrl block 16 len 4 concurrency 1 pid 10689
40125 END write vdev ctrl op 40125 block 16 len 4 time 0
^C
#
#
# ps -ef |grep 10689
oracle 10689 1 0 20:05:21 ? 0:03 ora_ckpt_bench
                 RAID 5的写性能  为了达到在RAID 5卷中的最大写性能,你必须理解以下写操作,以及他们如何作用于性能:l        读—修改—写(Read-modify-Write)l        重建—写(Reconstruct-Write)l        完全条带写(Full-stripe write)
RAID 5的写性能
RAID 5写性能的控制依据于有多少的数据将被写入到一个完整的条带宽度。当完全条带被写入时,可以获得最适宜的写性能。
        读—修改—写操作(Read-modify-write)
在一个单一的I/O中,当少于50%的数据磁盘被写入时,使用读—修改—写的顺序。
                这是RAID 5卷的默认操作。
                如图8_6所示,读—修改—写调用以下几个步骤:
1.        被修改的条带被读入到缓存
2.        奇偶校验信息被读入到缓存
3.        执行异或(XOR)操作
4.        新数据和奇偶校验被执行一个单独写
在这个例子中,至少有3个I/O操作是必须的,同时,附加的异或(XOR)
操作也是必须的,条带单元2,3,4中的数据没有被读取。
通常,读—修改—写方式是RAID 5结构的最低效写入方式。
        重建—写操作
                如果超过50%的条带将被修改,将使用重建—写结构。
               
如图8_7,重建—写结构调用的步骤包括:
1.        只有不被影响的数据被读入到缓存
2.        对新数据和未被影响的数据执行异或(XOR)操作
3.        新的奇偶校验和数据被执行一个单独写
在这个例子中,只有2个I/O操作是必须的。
通常,重建—写操作比读—修改—写操作更有效。
        完全条带—写操作
当大量的写,可以覆盖一个完全的数据条带被执行时,将执行一个完全条带写(full-stripe-write),好于读—修改—写和重建—写。一个完全条带写要比其他RAID 5写过程要快,因为它不需要请求任何读操作。如图8_8,一个完全条带写过程包括以下几步:
1.        对新数据执行异或来产生新的奇偶校验
2.        新数据和奇偶校验被执行一个单独写
上例中,只有单独的写操作是必须的。
        --------------------------------------------------------------------------------------------------
注意----有些情况下,减少RAID 5的柱数量来强制增加完全条带写操作是有好处的。这对于使用随机长度写的应用可以提高全面的写性能。
        --------------------------------------------------------------------------------------------------

第九章 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




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24824/showart_186059.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP