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

全部博文(57)

文章存档

2007年(7)

2006年(50)

我的朋友

分类: 服务器与存储

2006-09-04 12:58:55

觉得第七章讲的东东还是挺有用的,呵呵
希望也对你们有用



第七章  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上其他卷的所有分离的镜像

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