1. 程式人生 > >PV.VG.PP.LV.LP之三:卷組管理

PV.VG.PP.LV.LP之三:卷組管理

四.卷組管理

討論可以在VG中完成的功能.象PV一樣,VG可以被建立/刪除/更改屬性.還可以啟用或去活一個VG.

6.4.1 加入一個VG.一個VG要被加入系統需要系統中存在一個或多個PV,這些PV必須是可用狀態且沒有被其它VG使用.在加入一個VG之前,需要確定一些重要 資訊,如VG名和要被加入到VG中的PV.新VG可以通過用mkvg命令或smit加入系統.所有屬性在VG建立時設定,以下是非常重要的一些問題:VG 名在系統中必須是唯一的;所有要在VG中使用的PV的名字;VG可以容納的PV的最大數量;VG中的PP的大小;每次啟動系統時自動啟用VG的標識.下面 用mkvg命令建立一個名為myvg的VG,使用hdisk1和hdisk5兩個PV,每個PP的大小是4k,該VG限制能容納最多10個PV.命令如 下:


mkvg -y myvg -d 10 -s 8 hdisk1 hdisk5

也可以使用smitty mkvg來建立,在介面各個域中輸入屬性值即可.smitty mkvg會用varyonvg自動啟用VG.但smit命令與命令列方式相比,限制了以下功能:smitty mkvg不提供-d引數設定能容納的最多PV個數,僅使用預設的32個;不提供-m引數設定PV的最大容量,該引數決定多少PP被使用,預設的是1016 個分割槽;smitty mkvg用-f引數強制建立VG.注意:每用mkvg建立一個新VG,根檔案系統至少應該有2MB自由空間(可以用df命令來檢查),因為每建立一個新 VG,/etc/vg目錄就會寫入一個檔案.


6.4.2修改VG屬性

修改活動屬性用以下命令可以讓名為newvg的VG在每次系統啟動時自動被vary on:

chvg -ay newvg

如果要關閉自動vary on功能,用:

chvg -an newvg.



對VG解鎖當LVM命令在操作時因為系統衝突異常中斷,VG將被鎖住,要解鎖可以用:

chvg -u newvg

加入一個PV要增加VG的空間需要VG中額外的PV可用.加PV的命令是extendvg,下面是一個加PV的例子:

extendvg newvg hdisk3

注意:如果一個要加的PV已經屬於一個vary on的VG,擴充套件會失敗,如果屬於一個vary off的VG,使用者也會被提示是否確定要繼續.也可以使用smitty vgsc命令來實現,要選擇Add a PV to a VG.


刪除一個PV要減少VG的PV,VG必須是vary on的.下面是刪除的例子:

reducevgmyvg hdisk3

可以用smitty reducevg從一個VG中刪除一個PV.注意:reducevg命令提供了-d和-f引數.-d引數很危險,因為它會在從VG中刪除PV之前自動刪除 所有在PV上的LV資料,如果一個LV跨越了多個PV,那麼任何這種PV的刪除會危害整個LV的完整性.而-f引數則使-d引數更危險,它禁止和使用者交 互,無法讓使用者確認是否要刪除.

如果在要被刪除的PV上的LV跨越了VG中其它PV,刪除操作會破壞這些LV的完整性而不管它們所在的PV.如果刪除一個VG中所有PV,則VG本身也被刪除.

刪除PV的引數有時從系統中刪除磁碟沒有先執行reducevg,VGDA仍 然儲存了被刪除的磁碟的引數,而PV名已經不存在或被重分配了.要刪除這些引數,仍然可以在reducevg命令中使用被刪除的PV的PVID.如要刪除 PVID為000005265ac63976則可以用:reducevg newvg 000005265ac63976.

6.4.3匯入匯出VG

有時候一個VG需要被從一個系統移動到另外一個系統,以便於其中的LV和檔案 系統可以在目標系統中被直接訪問.要刪除ODM資料庫中一個VG的系統定義,該VG需要用exportvg命令匯出.該命令不會刪除VG 中的任何使用者資料而只刪除它在ODM資料庫中的定義.同樣,當一個VG被遷移了,目標系統需要加入該VG的定義.這可以通過用importvg命令匯入 VG來完成,這會在ODM資料庫中加入一個條目.例子:匯出myvg的定義:exportvg myvg;匯入myvg:importvg -y myvg hdisk12可以使用smitty exportvg或smitty importvg來匯入或匯出.如果指定的VG名正在使用,importvg命令將會失敗,因為相同的VG名是不被允許的.在該例項中該命令可以返回一個 獨特的指定的VG名.該命令也可以沒有-y引數或VG名得到返回,但這樣執行時,被給定了一個預設唯一的匯入名.

也有可能某些LV名與系統中已有的衝突.importvg命令將自動以系統默 認名命名.重要的是要記住當移動VG時,exportvg命令總是在源系統中執行並且先於匯入目標系統的操作.假設到一個VG被匯入系統Y沒有在系統X上 實際完成exportvg.如果系統Y對VG作了諸如刪除PV的改變,而後來VG又被導回系統X,系統X上的ODM資料庫將和VG上改變過的資訊不一致, 但在移動前沒有在源系統上匯出,那就沒有什麼意義了.也可用exportvg和importvg改變使用者定義的VG名.如以下命令:lspv列出所有的 PV,varyoffvg vg00,exportvg vg00,importvg -y cadsvg hdisk1,lspv就可以發現兩次lspv的不同.注意:如果當前系統包含一個相同的名字的LV,importvg命令改變被匯入的LV的名字.同時 如果一個LV被改名,一個錯誤訊息被列印到標準錯誤輸出,如果沒有衝突,該命令還建立檔案mount點和/etc/filesystems中的條目.

有頁面檔案的VG中,如果頁面檔案是活動的,VG不能被匯出.在匯出一個包含活動頁面的VG之前,確認頁面空間不會在系統初始化時自動啟用,要使用:chps -a n page_space_name,然後重啟系統.

如果不能用smitty importvg命令啟用VG,必須用varyonvg命令來使檔案系統和LV可用.

如果匯入的VG包含檔案系統或者通過smitty importvg激活了VG,建議在mount檔案系統之前使用fsck命令檢查檔案系統.如果移動一個VG到其它系統,確認在移動前反配置這些盤(即匯出).

smitty exportvg命令刪除在/etc/filesystems中的檔案系統引數,但留下mount點在系統中.



6.4.4開啟關閉一個VG

一個VG存在,就可以使用varyonvg命令使其可以被系統管理活動可用.這個處理包含的步驟如下:

1.一個VG的每個PV中的每個VGDA要被讀取;

2.每個VGDA的頭部和尾部的時間戳被讀取,這個時間戳必須匹配一個有效的VGDA;

3.如果多數VGDA(成為quorum)可用,varyon就會處理,否則就處理就會失敗;

4.系統會用最新的VGDA資料去覆蓋所有其它VGDA,這樣它們就都匹配了;

5.sync命令被執行用來重新同步任何過時的分割槽(鏡象被採用了);

varyonvg命令有以下選項可以被用於克服VG結構損壞或給出狀態資訊:

1.-f引數可以被用於強制一個VG被vary on,甚至有衝突的時候.該衝突通常是因為ODM資料庫中每個VG的配置資料和VGDA不同;

2.-n 引數將會禁止syncvg命令在vary on時使用.當一個VG被vary on,過時的分割槽被探測到時,vary on程序將會呼叫syncvg命令來同步過時分割槽.在希望謹慎地覆蓋一個VG,想確認沒有意外地寫一個壞鏡象的資料副本到好的副本中時,該引數非常有用;

3.-s引數允許一個VG被以維護模式或系統管理模式vary on.LV命令可以操作該VG,但是沒有LV可以被開啟進行輸入輸出操作.

例子:啟用VG newvg:varyonvg newvg,也可以用simtty varyonvg.

varyoffvg 可以去活一個VG和他關聯的LV.這要求LV是關閉的(即其中的檔案系統是unmounted的).varyoffvg命令也允許-s引數使用改變VG到 維護模式或系統管理模式.去活一個VG:varyoffvg myvg.也可以用smitty varyoffvg,其中也可以把VG改變到系統管理模式.

6.4.5監控VG

lsvg命令詢問ODM資料庫當前所有系統中的VG.下面是一些例子:

列出VG:不帶引數列出所有VG.

lsvg -o列出所有被vary on的VG.

lsvg VGNAME列出名為VGNAME的VG的所有詳細資訊和VG屬性的狀態.

列出在VG中的PV的狀態:lsvg -p VGNAME.該命令對於集中系統中的自由空間非常有用.



其中DISTRIBUTION五列分別表示:outside edge,outsidemiddle,center,inside middle,inside edge.

6.4.6重組一個VG

用reorgvg命令為一個VG根據每個LV的分配屬性重組PP分配.

語法:reorgvg [-i] volgrpname [lgcvolname...]

在使用reorgvg命令之前VG必須被vary on並且有自由分割槽.每個LV的可重定位引數必須通過chlv -r命令被設定為y才能使重組生效.否則LV就被忽略.注意:reorgvg命令不重組已分配的條帶化的LV的PP的位置.該命令要執行成功指定的VG中至少有一個自由PP.如果reorgvg命令後帶VG名,再沒有其它引數,那就只重組VG中的第一個LV.也可以使用smitty reorgvg命令完成重組.

-i引數指定從標準輸入獲取PV名.只有這個指定的PV上的分割槽被組織.

重組VG的例子:重組vg02上的lv03/lv04/lv07:

reorgvg vg02 lv03 lv05 lv07

重組位於vg02 VG中的lv203和lv205中disk04和hdisk06 PV上的分割槽:echo "hdisk04 hdiak06"|reorgvg -i vg02 lv203 lv205

6.4.7同步VG

syncvg命令用來同步LV過時的副本,語法:

syncvg [-f][-i][-H][-P NumParallelLPs]{-l|-p|-v}Name...

syncvg命令同步過時的源PP的副本PP.該命令可以用於LV/PV/VG,只要指定它們的名字即可.同步程序是很費時的,依硬體屬性和資料量的不同而有所變化.

當 -f引數使用的時候,一個沒有損壞的物理副本被選擇並傳播到所有其它LP的副本檢驗它們是否損壞.當VG被varyonvg命令啟用的時候,對於在VG中 的副本,除非同步功能不可用,否則它們總是被自動同步.sync的-p引數指出代表PV裝置名的名字樣式.-v引數指出代表VG裝置名的名字樣式.下面的 例子顯示瞭如何使用syncvg:同步在PV hdisk04和hdisk05上的副本:syncvg -p hdisk04 hdisk05;同步在VG vg04和vg05上的副本:syncvg -v vg04 vg05.

閱讀(967) | 評論(0) | 轉發(0) | 給主人留下些什麼吧!~~ 評論熱議