AIX 系统中 PVID 的含义与作用
Pvid是aix系統中的ODM LVM用于識別PV的序列號,操作系統通過pvid來識別pv,就好像我們每個人的ID card。
當pv被添加到系統中之后,可以通過兩種方式生成pvid
1,cfgmgr -v2,lspv 如果沒有PVID的話,執行chdev -l hdiskn -a pv=yes
也就是說當系統可以識別硬盤 并將硬盤認可為pv(即lvm的組件)的時候。系統就分配了pvid給硬盤,系統的odm庫中保存有pvid。
Pvid的生成原則是 主板序列號+形成pv時候的時間戳,pvid除了寫入odm庫,在硬盤頭信息里(0扇區的頭幾個字節)以及VGDA 也將寫入pvid
可以通過 lquerypv -H hdisk0查看pv上的pvid
000af70de396426b0000000000000000
ibm150:[/]#lspv
hdisk0 000af70de396426b datavg
hdisk1 000af70d5c816fc2 rootvg
hdisk2 000af70d4d50358c rootvg
可以看到三個pv的pvid前幾位數字是相同的(即主板序列號),后幾位數字是不同的。
可以通過以下方法修改pvid
chdev -l hdisk1 -a pv=clear 清除pv 磁盤頭的pvid
chdev -l hdisk1 -a pv=yes 重新定義pvid
如果pv已經加入卷組,首先還得先varyoffvg ,exportvg
執行以上步驟,pv的pvid將會改變。這里修改的只是磁盤頭的pvid,并沒有修改vgda中的pvid
當pv已經是一個卷組的成員時,切記不要隨便修改pvid
因為當pv加入一個卷組的時候,pvid將被寫入vgda,如果你擅自修改卷組的pvid,然后新生成的pvid將不能和卷組vgda中的pvid相匹配,這樣就無法importvg,就無法varyonvg,很有可能就會丟失數據!
當importvg的時候,odm將讀取pv上的vgda,如果vgda上pvid與自身磁盤上的pvid不符合的話,將出現錯誤!
注意:當pv加入卷組以后,pvid在硬盤上存在于至少兩個地方,一個是在硬盤頭,一個是在vgda中。這兩個地方的pvid一般是相同的,但是由于pvid的修改,可能造成不一致,這樣就有可能丟失數據。
你可以通過
#lqueryvg -Atp hdisk0 查看pv vgda中的pvid
Max LVs: 256
PP Size: 25
Free PPs: 85
LV count: 3
PV count: 1
Total VGDAs: 2
Conc Allowed 0
MAX PPs per 1016
MAX PVs: 32
Conc Autovar 0
Varied on Co 0
Logical: 000af70d00004c0000000106e3964781.1 loglv00 1
000af70d00004c0000000106e3964781.2 lv00 1
000af70d00004c0000000106e3964781.3 lv02 1
Physical: 000af70de396426b 2 0
Total PPs: 542
LTG size: 128
HOT SPARE: 0
AUTO SYNC: 0
VG PERMISSIO 0
當然萬一修改了,還是有辦法恢復數據的!
1, 修復卷組(推薦)
1.首先將原卷組的定義從系統的ODM庫中刪除:
# exportvg vgname
2.檢查硬盤上VGDA 區的信息,從中得到有關邏輯卷的名稱及定義:
如:
Max LVs: ------256
PP Size: ------26
Free PPs: -----538
LV count: -----2
PV count: -----1
Total VGDAs: --2
Conc Allowed --0
MAX PPs per ---1016
MAX PVs: ------32
Conc Autovar --0
Varied on Co --0
Logical: ------0003f62a00004c00000000f52f1737c5.1 --datalv1 1
---------------0003f62a00004c00000000f52f1737c5.2 --datalv2 1
Physical: -----0003f62a2f135f0e --------------2 ----0
Total PPs: ----542
LTG size: -----128
HOT SPARE: ----0
AUTO SYNC: ----0
VG PERMISSIO --0
3.創建邏輯卷名對應表文件。 第一字段為VGDA區中的邏輯卷的名,第二字段為在新卷組中新的邏輯卷名,可相同也可不同;為了修復原有卷組的內容,通常邏輯卷名保持不變。
如:
#vi /tmp/lvname
datalv1:datalv1
datalv2:datalv2
4. 在硬盤上重新創建卷組,保留原有卷組的數據結構。
#recreatevg -y vgname -l lv_file hdisk_name...
如:
#recreatevg -y testvg -l /tmp/lvname hdisk2
5. 如果卷組上有文件系統,還需修改 /etc/filesystems ,使對應的文件系統的加載點與原來的一致。首先修改/etc/filesystems文件,不行的話就執行下面的步驟
或者:
如果在重新import后,發現mountpoint不同,可以通過smitty chlv修改lv屬性,即修改Logical volume LABEL,使之與mount point相同。
為什么要修改/etc/filesystem呢?
recreatevg 后,系統自動創建了目錄/fs,所有的文件系統加載到了/fs下,原來的mountpoint是以/為基準的.
來源鏈接:
http://blog.chinaunix.net/u1/39140/showart_304297.html
總結
以上是生活随笔為你收集整理的AIX 系统中 PVID 的含义与作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给Oracle 11g Interval
- 下一篇: 如何使用Oracle的外部表查询警告日志