VXVM综述
来源:互联网 发布:mac rar解压缩软件 编辑:程序博客网 时间:2024/05/20 18:42
1. Create VG/LV by vxvm(过程样例)
a. 在OceanStor上创建LUN,并mapping
b. 用root登录主机,执行下面命令:
1) hot_add
vxdisk scandisks
2) vxdisk -o alldgs list(或者vxdisk list)
3) 新增的盘处在offline状态,则执行vxdisksetup –if sdb
4) vxdg init vgscp vgscp_1=sdb //创建VG
5) vxassist -g vgscp -U fsgen make lvscp 10G vgscp_1 //创建LV
6) mkfs.vxfs /dev/vx/dsk/vgscp/lvscp //创建文件系统
7) mkdir /tellin/tellinapp //创建挂接点
8) mount.vxfs /dev/vx/dsk/vgscp/lvscp /tellin/tellinapp //挂载文件系统
9) df –h //检查文件是否挂接成功
10) umount /dev/vx/dsk/vgscp/lvscp //去挂载文件系统
11) vxvol -g vgscp stopall //去激活
12) vxdg deport vgscp //导出VG
c. 用root登录备机,执行下面命令
1) vxdg import vgscp //导入VG
2) vxvol -g vgscp startall //激活VG
3) mkdir /tellin/tellinapp //创建挂接点
4) mount.vxfs /dev/vx/dsk/vgscp/lvscp /tellin/tellinapp //挂载文件系统
5) umount /dev/vx/dsk/vgscp/lvscp //去挂载文件系统
6) vxvol -g vgscp stopall //去激活
7) vxdg deport vgscp //导出VG
d. 用root登陆主机,执行下面命令
1) vxdg import vgscp //导入VG
2) vxvol -g vgscp startall //激活VG
3) mount.vxfs /dev/vx/dsk/vgscp/lvscp /tellin/tellinapp //挂接文件系统
2. 挂VG(枚举样例)
//挂载所有的VG,枚举全部
a. vxdg import vgora //导入VG
vxvol -g vgora startall //激活VG
b. vxdg import vgopt
vxvol -g vgopt startall
c. vxdg import vgphydb
vxvol -g vgphydb startall
d. vxdg import vguoa
vxvol -g vguoa startall
e. vxdg import vgsee
vxdg -g vgsee startall
3. LV is corrupted
mount /dev/vg02/vol2 /mnt/vg02/vol2
UX:vxfs mount: ERROR: V-3-21268: /dev/vg02/vol2 is corrupted. needs checking
fsck -F vxfs -y -o full /dev/vg00/lvol2
命令详述见下面
步骤
命令
说明
检查磁盘状态
vxdisk -e list
检查磁盘组状态
vxdg
see01_a:/usr/lib/vxvm/bin # ./vxdiskunsetup sdg
/etc/vx/bin/vxreattach -c sde
检查挂接磁盘操作是否可行
启动vxvm守护进程
/usr/lib/vxvm/bin # vxdctl enable
重新扫描设备列表,重新挂接磁盘vxdg –Cf import dg
用vxdisk list命令察看,如果看到上述硬盘为error,可以用下述命令使其online:
# ./vxdisksetup c2t0d0
如果不是error
如果对磁盘使用vxdiskunsetup和vxdisksetup,并指定与配置备份中不同的属性,可能会损坏公共区域和其中的所有用户数据。
运行使硬盘在线的命令
# vxdisk online sdb
磁盘组如果不是online状态,不能重新建立磁盘组
显示卷的可访问性和可用性信息
see01_a:~ # vxinfo -g vgsee
lvcdr fsgen Startable
vg_name_srl fsgen Startable
see01_a:~ # vxinfo -p -g vgsee
vol lvcdr fsgen Startable
plex lvcdr-01 CLEAN
vol vg_name_srl fsgen Startable
plex vg_name_srl-01 CLEAN
Plex状态转换
vxinfo –p –g vgsee
vxmend -o force -g vgsee off lvcdr-01
vxmend -o force -g vgsee on lvcdr-01
vxmend -o force -g vgsee fix active lvcdr-01
文件系统不使用
see01_a:~ # mount
see01_a:/dev/vx/rdsk # fuser /dev/vx/rdsk/vgora/*
/dev/vx/rdsk/vgora/lvctl1: 22761 22765 22769 23777
/dev/vx/rdsk/vgora/lvctl2: 22761 22765 22769 23777
/dev/vx/rdsk/vgora/lvctl3: 22761 22765 22769 23777
/dev/vx/rdsk/vgora/lvredo1: 22765see01_a:/app # umount /home/oracle/flashback/
# vxvol -g vgrbi stopall
see01_a:/app # vxdg deport vgopt
see01_a:~ # umount /home/see/rbirun
see01_a:~ # umount /home/see/recode
执行mount命令之前需要激活 vxvol -g vgphydb startall
激活以后数据库才能启动
mount.vxfs /dev/vx/dsk/vgopt/lvarchive /home/oracle/archive
重建磁盘组
将磁盘阵列所属的C2T22D0S2作为HOT-SPARE磁盘
# vxedit set spare=on sybased05
其中sybased05是C2T22D0S2的名字,它是在建立磁盘组时自动取的名字
注意:在建立raid5卷时,不能选取hot-spare盘,即不能使用上面的syabsed05,也就是C2T22D0S2这块盘
建卷
see01_a:/etc # vxassist -g vgsee make vgsee 10G
# vxassist –g sybasedg make datadev00 2g layout=raid5 sybased01 sybased02 syabsed03
sybased04 sybased06
vxassist -g datadg make vol1 500g
基础知识
VxVM & 本地磁盘
l Veritas Volume Manager(VxVM)提供了一个在线数据存储管理基础,给系统盘和数据盘做本地的镜像和其它RAID功能,并可在线改变Volume的大小。
l 将物理磁盘置于VxVM控制之下,即在物理对象和VxVM对象之间建立了关系。
Volume Manager的对象:物理对象和虚拟对象(VxVM对象)
物理对象:Physical Disk à VM Disk àsub disk
虚拟对象:Subdisks à Plexes àVolumesàDisk Groups(将VM Disk划入到Disk Group中///当一个主机系统上安装了VxVM软件后,我们必需将VM Disk划入到Disk Group中,另外再在Disk Group上创建一些逻辑卷,来达到VxVM控制物理磁盘的目的。)
(1.VM Disk由VxVM控制并组成磁盘组 2.一个或多个Subdisk组成Plex 3.一个卷由一个或多个Plex组成)
1. 安装VxVM
2. 物理磁盘置于VxVM管理之下,成为VM disk(将VM磁盘组成磁盘组)
3. 划入Disk Group
4. 划分LV
l 若要将物理磁盘置于VxVM控制之下,磁盘一定不能受LVM控制。
VVR
Veritas Volume Replicator(VVR)是一款优秀的异地备份软件,提供数据中心和容灾备点的数据库和应用数据的复制。
VxVM & VVR结合
如果把VxVM和VVR集成在一起,就可通过IP网络将卷组复制到安全区域。
VM Disks
l 一个VM Disk至少应该包含一个分区
l 一个VM Disk通常分为两个部分
Subdisks
Plex由分布在一个或多个磁盘上的一个或多个SubDisk组成,通常有三种方法可以将SubDisk组成Plex:串联、RAID 0、RAID 5。
Disk Groups
一个磁盘组由一个或多个VM disk组成。缺省的磁盘组名叫rootdg。用户可以增加新的磁盘组。一个卷必须建立在一个磁盘组之内。一个磁盘组内的多个VM disk有相同的配置信息。
Plexes
CLEAN(off,on)->STALE(fix active)->active
OFFLINE(on)->ON
参见前文命令
Volumes
l 一个卷由一个或多个Plex组成,每一个Plex保存一份相同数据的拷贝。一个卷最多可以有32个Plexes。一个卷内所有的Plexes必须属于同一个磁盘组。卷通常被命名为VOL##,而其中的Plex通常被命名为VOL##-##。
此次遇到一个奇怪的问题是:当1号机正在使用磁盘组,2号机只要重新启动,并且执行vxdg import sybasedg命令,则两台机器上都能看到磁盘组,由于双方发生了资源争抢现象,很容易导致磁盘组被破坏,我曾经因为这个问题将磁盘组建了n次,数据库安装n次,由于磁盘组毁坏,所以整个数据库也被破坏,后来在启动时增加了一个控制文件,过程如下:
# cd /
#cd /etc/rcS.d
#vi S98vxvm
内容为:
echo “stop sybasedg”
vxvol –g sybasedg stopall
vxdg deport sybasedg
添加了上述文件后,系统每次启动时自动将磁盘组deport出去,这里好像是停止了vxvm的autoimport属性,磁盘组不再被重新import。
dgdisable状态的dg通常有几种原因导致:
1) dg下的volume还在被使用的时候加-f参数强行deport dg(通常不是手工误操作,而是发生故障时,数据库Agent的退出代码没有退出干净,导致数据库还在访问volume裸设备或者应用Agent的退出代码没有退出干净导致文件系统没有真正umount成功等情况,而VCS的servicegroup的offline操作执行到dg时就会offline失败而调用clean操作,这个clean操作就会自动加-f参数强行deport dg,但还是会失败,并且留下一个dgdisabled状态),如果是这种情况,就需要通过lsof找到是那些进程还在访问裸设备并kill之(针对使用裸设备的情况)或者cat /proc/mounts文件找到还在挂载的文件系统通过fuser -k -m mount_point杀掉在该文件系统上打开了文件的进程最后通过/opt/VRTSvcs/bin/vxumount -o force mount_point来强行卸载该文件系统(针对使用文件系统的情况),然后执行vxdg deport dgname和vxdg import dgname来恢复这个故障dg,执行vxvol -g dgname -o bg startall来激活该dg下所有的volume。通常这种情况下还需要执行fsck来检查和恢复文件系统;
1.1) 之前有这么一个场景,和第1个场景非常相像,不过是由于mount命令的配合问题和代码上的不完备原因共同自动导致的:单板重启时应用进程没有关闭完全,导致重启时文件系统其实是在活动状况下而留下了需要执行fsck的标志位。重启后VCS自动执行online servicegroup操作,执行dg资源的online(dg import)成功,执行volume资源的online(volume start)也成功,但到了mount资源的online时,由于mount命令和mount.vxfs命令之间传递执行结果的缺陷,导致发生了mount命令输出中显示该文件系统没有挂载但/proc/mounts文件里却显示该文件系统已经挂载,而标准版本的mountagent代码不能处理这种异常,online报失败执行clean报成功,却仍然留下了/proc/mounts文件里的相应条目,这之后volume资源offline失败,clean成功,继续保留了/proc/mounts文件里的条目,后面就和第1个场景一样了,执行dg资源的offline失败,clean也会失败,因为操作系统判断该dg下的volume仍然处于打开状态,clean里的强行deport dg操作就会让该dg留下dgdisabled的状态。这个问题后来通过使用HWMountAgent(里面增加了对这种异常的处理代码确保这种需要做fsck的vxfs文件系统可以online成功,也增加了代码确保由于其他异常导致出现mount命令输出于/proc/mounts文件内容不一致时可以正常执行volume的offline/clean操作并去除/proc/mounts文件的相应条目)可以很好消除了;
2) I/O的访问异常(通常是磁盘I/O访问错误,比方说磁盘阵列掉电)导致运行期间VxVM直接将dg置为dgdisable状态,这种场景在恢复I/O后重启就可以解决。如果要在线恢复,可以在I/O恢复后,执行和第1种场景一样的恢复操作;
3) 极少见的情况是运行期间由于竞争读写导致vxfs文件核心metadata损坏而将文件系统置为full+readonly+need full fsck状态,引发servicegroup的故障offline。和第1.1个场景非常类似,标准版本的mountagent代码对这种异常处理不完备,执行了clean后其实没有完全成功,留下了/proc/mounts里面的条目,却认为clean已经完成而没有执行vxumount(这个命令可以对vxfs文件系统消除上述不一致),后面发生的就和第1.1场景完全一样了。同样,使用了HWMount后这种情况也可以正确消除;
针对你反馈的信息,第9块单板比较大的可能是第1.1场景。
第5块单板的情况我没有看懂,第1次执行vxdisk list和vxdg list的输出和第2次执行间你还执行了什么操作导致状态发生了变化?vxdisk list看到的auto error状态意味着磁盘上的分区表格式完全不被VxVM识别或者是刚刚划分的LUN,上面还完全没有分区表等情况,这和auto:none online:invalid是很不同的,后者表明VxVM可以识别到这块盘,只是在磁盘上没有发现VxVM的私有区或者有效的私有区(比方说私有区和公有区的数据都完全没被破坏,但是磁头的某些标志位被破坏导致VxVM不认可其实仍然可以恢复的私有区为有效私有区);
- VXVM综述
- Sun Cluster && VxVM
- vxvm创建卷
- VXVM命令(上)
- VXVM命令(中)
- VXVM命令(下)
- VCS-5 LVM和VxVM
- 综述
- Veritas Volume Manager (VxVM)文章搜集
- Powerpath and VxVM work together mechanism
- VCS-5续 LVM和VxVM
- VCS-5续2 LVM和VxVM
- VxVM:xxxx: ERROR: IPC Failure: Configuration daemon is not accessible
- IDS综述
- rootkit 综述
- JUnit综述
- 近况综述
- SHARK综述
- DP:***24种设计模式--转自刘伟
- c# MODBUS协议 上位机
- (八)委托、Lambda和事件
- PopupWindow//弹出窗---未完
- 解惑 spring 嵌套事务
- VXVM综述
- 数据库死锁检查、解锁
- ubuntu 10.04.1 LTS 下 golddict安装心得【作者:giveup】
- 压缩图片
- 单例模式(笔记)
- Android中JNI的使用方法
- silverlight 设置断点无效的解决方法
- UML+模式设计概述
- 关闭Wind XP/Vista/Win7的DEP数据执行保护汇总