VGDA(Volume Group Descriptor Area),VG中包含了哪些PV都写在了VG中的一个区域,这个区域就是VGDA,VGDA记录了VG的很多重要相关信息,包括VG中包含的PV的PV ID。
VGDA非常重要,所以被保存了多份。
如果VG中只有一块磁盘,则该磁盘上保存2份VGDA;
VG包含2块磁盘,则第1块磁盘包含2份VGDA,第2块只包含1份;
VG中包含3块磁盘,则每个磁盘都保存有1份VGDA。
完好的VGDA与VG中总磁盘总数之比为Quorum,如果Quorum小于50%,此VG不能被继续访问,如果已经被激活,则自动关闭。由于每一块磁盘上至少有一份VGDA,所以在一个新小型机上,只要给出未知VG中一块磁盘,就可以正确识别全部VG的信息,并注册到新小型机上,这个过程叫Import
importvg -y vg_name hdiskx
vg_name是希望的VG名,在执行importvg时可以自定义VG名,因此系统中并没有更改VG名称的命令,如果想更改VG的名称,需要先执行exporrtvg命令,此命令没有对磁盘进行任何操作,磁盘上数据依然存在,只是将此VG在小型机系统中的定义删除了,任何时候可以重新Import回来. 在执行importvg时候,系统可以从指定磁盘上读到VG中所有磁盘的定义,但如果VG中一些磁盘没有被系统识别到,(通过PV ID找寻到,VGDA中包含某个PVID在操作系统中所有磁盘设备上都找不到,可能的原因既包括该磁盘不存在,也可能是PVID没有正确读出来).那么系统将计算Quorum,大于50%,可以执行,但会有警告,小于50%,不允许improt此VG.系统管理PV完全是靠PVID,尽管HDISKX设备号可变,但PVID不会变.拿到另一台机器也是如此,如果用命令改变了PVID,系统将认为原来的磁盘消失了,不能再找回来.更不巧的是,如果原有的PV还属于某个VG,那么这个VG再也发现不了他原来的成员盘,这个盘上的数据就无法找回,虽然磁盘和数据都存在.
1台主机hdisk2的VGDA信息丢失,恢复的步骤: datavg包含hdisk1 hdisk4 hdisk2, hdisk2的VGDA信息丢失,(判断方法:lqueryvg -Atp hdisk2,无法得到结果) 导致hdisk2中的LV全部不能MOUNT。
#lsvg -p datavg
hdisk1 active datavg
hdisk2 missing datavg
hdisk4 active datavg
exportvg 以后,rmdev -dl hdisk2,此时hdisk2的PVID也没有了 #lspv hdisk2 none None 要恢复hdisk2中的LV信息,首先要把hdisk2想办法加入到datavg中。
# chdev -l hdisk2 -a pv=yes 此时,hdisk2又恢复了以前的PVID了。
# synclvodm datavg 将把hdisk2加入到datavg中,(因为系统的ODM库中,知道PVID=hdisk2是DATAVG的PV)
# lspv
hdisk2 0002039490ef datavg
# exportvg datavg (从ODM库中删除VGDA的信息)
# importvg -y datavg hdisk4 (不要HDISK2,因为此时HDISK2的VGDA是坏的)
importvg 的时候,系统会再次做synclvodm,这次将会把系统ODM中VGDA的信息同步到hdisk2上。
# lsvg -p datavg
hdisk1 active datavg
hdisk2 active datavg
hdisk4 active datavg
此时,HDISK2上的VGDA信息又恢复了。里面的LV可以读写了。不过对于HDISK2上的文件系统,需要做个fsck。