问题的出现:
服务器是2台Sun F280R,磁盘阵列是3310,VCS。3310有5块磁盘,1个做hot spare,另外4个两两mirror做成2个LUN。2个LUN在系统中分别生成2个vmdisk。2个DG,dbdg和appdg。每个DG只有一个vmdisk。
一次故障的发生,VCS无法使dbdg正常切换,检查发现是dbdg无法import。
server2# vxdisk -o alldgs list
DEVICE TYPE DISK GROUP STATUS
c1t0d0s2 sliced rootdisk rootdg online
c3t1d0s2 sliced - (dbdg) online
c3t1d1s2 sliced appdg01 appdg online
server2# vxdg import dbdg
vxvm:vxdg: ERROR: Disk group dbdg: import failed: Disk group has no valid configuration copies
server2#
dbdg上的数据无法访问了。
解决问题的思路:
经过查看资料得知,这种错误是由于DG的配置信息被破坏所造成的。DG的configuration信息是存放在磁盘的Private Region中的,在Solaris中该分区通常是s3分区。
用命令prtvtoc可以看到,Tag=15的分区就是vmdisk的Private Region,通常就1个柱面,但其中存放了DG的所有信息,包括组成该DG的设备vmdisk,还有plex、subdisk以及volume等的划分。如果DG中有2个以上的vmdisk,则DG的配置信息会有多个备份在其他盘上。
现在,dbdg中只有1个vmdisk,该配置信息没有备份,只有想办法修复Private Region中受到损坏的数据,才有可能恢复Public Region的数据。
另一个促使我想修复Private Region的原因是因为dbdg中只有一个volume,而这一个volume就是一个文件系统,故相对来说dbdg中关于vmdisk、plex、subdisk和volume的配置信息应该简单些。否则就只有重新做dbdg了,因为事前咨询过专家,这种Disk group has no valid configuration copies的错误基本是没有希望修复了。