rmdev、chdev、reducevg、exportvg和importvg命令執行了什麼操作

shilei1發表於2019-05-21


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,如果vgdapvid與自身磁碟上的pvid不符合的話,將出現錯誤! 注意:當pv加入卷組以後,pvid在硬碟上存在於至少兩個地方,一個是在硬碟頭,一個是在vgda中。這兩個地方的pvid一般是相同的,但是由於pvid的修改,可能造成不一致,這樣就有可能丟失資料。  

判斷hdiskXVGDA資訊丟失的方法:lqueryvg -Atp hdiskX,無法得到結果! 注: 

      Pvid的生成原則是主機板序列號+形成pv時候的時間戳。pvid在以下三個位置存在:

 1、寫入odm庫, 

2、在硬碟頭資訊裡(0扇區的頭幾個位元組), 

3VGDA 也將寫入pvid(當pv加入一個卷組的時候,pvid將被寫入vgda)。   

    PVID是以在硬碟頭部的為準的,在VGDA的前面呢,一個硬碟可以沒有VGDA而有PVID。在VGDA裡當然也有PVID,在ODM裡當然也有,這都是以前者為基礎的。多機情況下,是先賦PVID的機器生成了PVID,其他機器都是從硬碟頭部讀取,那當然是一樣了——也應該是一樣,否則就亂套了。這就和身份證號碼一樣。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-1223776/,如需轉載,請註明出處,否則將追究法律責任。

相關文章