rmdev、chdev、reducevg、exportvg和importvg命令执行了什么操作:
rmdev -l hdisk1 物理卷hdisk1的状态从available变为defined,物理卷hdisk1的定义还保存在ODM中的定制设备对象类中
rmdev -dl hdisk1 会从ODM的定制设备对象类中删除物理卷hdisk1的定义,-d标志即释放了名称hdisk1。
PCI热插拔的注意事项:
不要将-d标志和 rmdev命令一起使用进行热插拔操作,因为这样会导致除去您的位置。
rmdev -dl hdiskX,就是清除了odm数据库中hdisk的信息,只和hdisk相关;但是VG信息里还是对应原来的hdisk8\9,所以需要更新vg在odm库里面的信息,所以需要做export、import。
需要exportvg importvg,因为ODM里记录的PVNAME还是原来的。
需要exportvg和importvg,你rmdev以后,ODM里面datavg信息还是hdisk8和hdisk9的属性,你用这个命令测试下:
odmget -q "name=datavg" CuAt
如果varyonvg会报错,这时需要使用exportvg清除ODM中vg信息,再importvg命令把改变盘号的hdisk硬盘上的VGDA信息写到ODM里面,才能varyonvg。
reducevg vgname hdiskX :
从卷组中除去物理卷。当所有的物理卷从卷组中除去后,卷组会被删除。会更新ODM和VGDA。reducevg 时,卷组在能被减少之前必须联机,即vg必须是varyon的。reducevg 命令提供-d,-f选项。使用-d选项是很危险的,因为它会自动删除所有lv(在这个pv上的),如果一个lv跨多个pv,删除它们中的任何一个,就会破坏这个lv的完整性。
注:有时候一个disk删除,但是以前没有执行reducevg命令,VGDA仍有该disk的附注信息,如果想删除可以使用 reducevg,但需用物理卷标识(PVID),而不是磁盘名称:reducevg Vgname PVID
exportvg和importvg(不能对rootvg操作):
导出过程从系统中除去巻组的定义,导入过程提供将巻组引进它的新系统。所以可以利用exportvg和importvg修改用户卷组的名称。export VG从ODM库中删除VGDA的信息,删除文件系统接口(/etc/FS) ,但保留mount point。Import VG可能修改lv_name(如果有相同的lv_name),并且创建fs point(如果不冲突)。
*: 如果某人对硬盘做过"chdev -l hdiskX -a pv=clear"的话,那么即使再使用"chdev -l hdisk* -a pv=yes"也无法获得原来的PVID了,这样就会导致原来的VG没法使用了。只要不clear,通过# chdev -l hdiskX -a pv=yes读出来的还是PV头部扇区保存的pvid。
可以通过以下方法修改pvid
chdev -l hdisk1 -a pv=clear 清除pv 磁盘头的pvid
chdev -l hdisk1 -a pv=yes 重新定义pvid
注意修改的只是磁盘头的pvid,并没有修改vgda中的pvid。
# synclvodm datavg
该命令会核对ODM库中记录的PVID和PV(hdiskX)头部扇区保存的pvid,假如某个hdiskX的PVID存在于比如巻组datavg的VGDA里,将把该hdiskX加入到巻组datavg中,(因为系统的ODM库中,知道PVID=hdisk2是DATAVG的PV)。所以某个原来属于datavg巻组的hdisk丢了VGDA的话,首先需要使用手工修改PVID的方法将hdisk的PVID修改为巻组datavg的VGDA中记录的PVID值。
# importvg -y datavg hdisk1
假如巻组datavg包含两个pv:hdisk1和hdisk2,而HDISK2的VGDA坏了的话,importvg 的时候,要指定hdisk1,而且系统会再次做synclvodm,将会把系统ODM中VGDA的信息同步到hdisk2上,这样可以恢复hdisk2的VGDA。
importvg的过程就是将VGDA里的信息读入到ODM的过程,其中也包括PVID。但是VGDA里没有VG name,所以importvg时要指定VG name。因此可以利用他来改VG name。当importvg的时候,odm将读取pv上的vgda,如果vgda上pvid与自身磁盘上的pvid不符合的话,将出现错误!
注意:当pv加入卷组以后,pvid在硬盘上存在于至少两个地方,一个是在硬盘头,一个是在vgda中。这两个地方的pvid一般是相同的,但是由于pvid的修改,可能造成不一致,这样就有可能丢失数据。
判断hdiskX的VGDA信息丢失的方法:lqueryvg -Atp hdiskX,无法得到结果!
注:
Pvid的生成原则是主板序列号+形成pv时候的时间戳。pvid在以下三个位置存在:
1、写入odm库,
2、在硬盘头信息里(0扇区的头几个字节),
3、VGDA 也将写入pvid(当pv加入一个卷组的时候,pvid将被写入vgda)。
PVID是以在硬盘头部的为准的,在VGDA的前面呢,一个硬盘可以没有VGDA而有PVID。在VGDA里当然也有PVID,在ODM里当然也有,这都是以前者为基础的。多机情况下,是先赋PVID的机器生成了PVID,其他机器都是从硬盘头部读取,那当然是一样了——也应该是一样,否则就乱套了。这就和身份证号码一样。
参考文档:http://www.aixchina.net/club/thread-28634-1-1.html
http://www.eygle.com/digest/2008/06/aix_pvid.html
from:http://www.aixchina.net/home/space.php?uid=6715&do=blog&id=24620