UNIX.AIX.文件系統.存儲管理.邏輯卷管理.PV.VG.PP.LV.LP
一.邏輯卷管理概念
5個(gè)概念:
物理卷 physical volumes PV
每個(gè)獨立的硬盤(pán)稱(chēng)作物理卷(PV),并有一個(gè)名字(如hdisk0);
卷組 logical volume group VG
所有的物理卷屬于一個(gè)稱(chēng)作rootvg的卷組(VG);
物理分區 physical Partitions PP
所有在一個(gè)VG中的PV被分為相同大小的物理分區(PP);
邏輯卷 logical volumes LV
每個(gè)VG中可以定義一個(gè)或多個(gè)邏輯卷(LV),LV是位于PV上的信息的組合,在LV上的數據可以連續或者不連續地出現在PV
邏輯分區 LP
每個(gè)LV包含一個(gè)或多個(gè)邏輯分區(LP),每個(gè)LV相當至少一個(gè)PP,如果對LV指定了鏡象,就要有雙倍的PP被分配用來(lái)存儲每個(gè)LP的備份.
LV可以提供許多系統需要的服務(wù)(如頁(yè)面空間),但是每個(gè)存儲了一般系統/用戶(hù)數據或程序的LV都包含一個(gè)單獨的日志式的文件系統(JFS),每個(gè)JFS包含一群頁(yè)面大小(4K)的塊.AIX4.1以后,一個(gè)給出的文件系統可以被定義為擁有小于4k的片斷.系統安裝完畢后,有一個(gè)VG(rootvg),包含一套系統啟動(dòng)的基本的LV和其它在安裝腳本中指定的VG.
二.邏輯卷管理器
操作系統命令/庫子程序/其它工具允許建立和控制LV存儲,成為邏輯卷管理器(LVM).LVM通過(guò)簡(jiǎn)單而靈活地在存儲空間的邏輯視圖和實(shí)際物理盤(pán)之間映射來(lái)管理磁盤(pán)資源.
1.LVM配置數據
描述LMV的組件的數據存放在好幾個(gè)地方.理解這些關(guān)于VG/LV/PV的描述性的數據放在幾個(gè)地方是很重要的.
1)ODM 數據庫
ODM數據庫包含了所有PV,VG,LV的配置信息.這些信息與VGDA中的信息互為鏡象.ODM數據也和LV控制塊中的信息相互鏡象;
2)VG描述區(VGDescriptorArea)
VGDA位于每個(gè)物理卷的開(kāi)頭,它包含所有屬于本VG的LV和PV的信息.VGDA被幾乎所有的LVM命令更新.VGDA產(chǎn)生每個(gè)VG的自述.AIX可以讀取每個(gè)磁盤(pán)的VGDA,從VGDA中,可以獲知哪些PV和LV屬于這個(gè)卷組.每個(gè)盤(pán)至少包含一個(gè)VGDA,時(shí)間的變化很重要,VGDA中的時(shí)間戳用于確定哪個(gè)VGDA正確地反映了VG的狀態(tài).如果VG中一個(gè)盤(pán)出錯,VGDA可能無(wú)法同步磁盤(pán),這樣磁盤(pán)上的VGDA就無(wú)法在磁盤(pán)不運行的時(shí)候更新.所以需要一種方法來(lái)更新VGDA剛在線(xiàn)的磁盤(pán),這就是處理進(jìn)程要做的.
當磁盤(pán)被創(chuàng )建為一個(gè)PV(以mkdev命令)的時(shí)候,VGDA也被創(chuàng )建,這時(shí)會(huì )在盤(pán)開(kāi)始保留一段空間給VGDA.當PV被分派到一個(gè)VG(用mkvg或extendvg)的時(shí)候實(shí)際的VG信息就被寫(xiě)到VGDA中去.當一個(gè)PV從VG中刪除的時(shí)候(用reducevg),VG信息也從VGDA中刪除.
3)VG狀態(tài)區(VGSA)
VGSA包含了PP和PV的狀態(tài)信息.如VGSA知道一個(gè)VG中的PV是否不可用.VGDA和VGSA都有非常重要的開(kāi)始和結束時(shí)間戳.時(shí)間戳可以讓LVM了解最近的VGDA和VGSA的拷貝在時(shí)間上的變化.
LVM要求選擇VGDA的時(shí)間戳和選擇VGSA的時(shí)間戳是相同的.
4)LV控制塊(LVCB)
LVCB位于每個(gè)LV的開(kāi)頭.它包含了LV的一些信息,占用幾百個(gè)字節.可以使用getlvcb命令獲取某個(gè)LV的LVCB信息并顯示出來(lái).如:getlvcb -TA hd2顯示了hd2 LV的LVCB信息.
2.磁盤(pán)quorum
每個(gè)VG中的物理盤(pán)至少有一個(gè)VGDA/VGSA.一個(gè)盤(pán)中VGDA的數量根據VG中的盤(pán)的總數而變化.變化規律如下:
VG中有一個(gè)PV兩個(gè)VGDA在一個(gè)盤(pán)上
VG中有兩個(gè)PV兩個(gè)VGDA在一個(gè)盤(pán)上,一個(gè)在另外一個(gè)盤(pán)上
VG中有兩個(gè)以上的PV每個(gè)盤(pán)上有一個(gè)VGDA
quorum是一種狀態(tài),這種狀態(tài)確保一個(gè)VG中一半以上的PV是可以訪(fǎng)問(wèn)的,是活動(dòng)的VGDA/VGSA的數量決策,它可以確保在發(fā)生磁盤(pán)出錯的時(shí)候的數據完整性.
如果quorum失敗,VG會(huì )關(guān)閉自身,使磁盤(pán)不再可以由LVM訪(fǎng)問(wèn),防止磁盤(pán)進(jìn)一步讀寫(xiě)而導致的數據丟失.另外錯誤日志中也會(huì )記錄該錯誤.這也暗示了磁盤(pán)鏡象的某些注意的地方,在一個(gè)雙盤(pán)鏡象的系統中,如果第一個(gè)盤(pán)出錯那么就丟失了66%的VGDA,整個(gè)VG就變得不可用.這就失去了鏡象的目的.由于這種原因,兩個(gè)以上的盤(pán)(通常是奇數)提供了更高的可用性,特別是想使用鏡象的時(shí)候.
也可以關(guān)閉任何VG的quorum保護.關(guān)閉quorum保護可以使一個(gè)VG在出現前面的情況的時(shí)候仍然在線(xiàn).這種能力提供了相對廉價(jià)的鏡象方案,但是有數據丟失的危險.磁盤(pán)出錯后,數據可以訪(fǎng)問(wèn),但是不再被鏡象了.
3.磁盤(pán)鏡象
磁盤(pán)鏡象是兩個(gè)或三個(gè)PP的聯(lián)合與每個(gè)LV中的LP的聯(lián)合.當數據被寫(xiě)到LV中的時(shí)候,也被寫(xiě)入與該LV的LP關(guān)聯(lián)的PP中,所以鏡象數據提高了數據的可用性.AIX和LVM提供了在LV級別上的鏡象工具.如果鏡象建立,當LV創(chuàng )建的時(shí)候就可以實(shí)現.
mklv命令允許為每個(gè)LV選擇一到兩個(gè)額外副本.鏡象也可以被加入到一個(gè)已經(jīng)存在的LV中,需要使用mklvcopy命令.采用以下鏡象選項可以進(jìn)一步提高數據可用性:三個(gè)數據副本比兩個(gè)數據副本更可靠;把LP副本分布在不同的PV上比分配在一個(gè)PV上可靠.進(jìn)一步地,可以把數據副本存放在不同適配器上的不同PV中.
mirrorvg命令鏡象一個(gè)VG中所有的LV.相同的功能也可以對VG中的每個(gè)LV用mklvcopy命令人工完成.使用mklvcopy時(shí),要被鏡象的目標物理驅動(dòng)器必須是該VG的成員.使用語(yǔ)法:
mirrorvg [ -S | -s ] [ -Q ] [ -c Copies] [ -m ] VolumeGroup [ PhysicalVolume .. ]
默認情況下,mirrorvg試圖鏡象LV到VG中的任何盤(pán)上.mirrorvg命令使用LV被鏡象時(shí)的默認設置鏡象LV.如果想改變鏡象創(chuàng )建策略,必須用mklvcopy手工去創(chuàng )建所有的鏡象.
也可以使用smitty mirrorvg完成VG鏡象:
三重鏡象一個(gè)VG:mirrorvg workvg -c 3 workvg,在workvg中的LV中的LP就有三個(gè)副本.
默認鏡象rootvg:mirrorvg rootvg rootvg就有兩個(gè)數據副本
在鏡象VG中替換失敗盤(pán):unmirrorvg workvghdisk7>>reducevg workvg hdiak7>>rmdev -l hdisk7-d.替換失敗的磁盤(pán),然后命名為hdisk7:extendvg workvg hdisk7>>mirrorworkvg.默認情況下,mirrorvg將試圖為workvg中的LV創(chuàng )建兩個(gè)副本,試圖創(chuàng )建新的鏡象到被替換的磁盤(pán).但是,如果原系統是三重鏡象的,可能就沒(méi)有新的鏡象創(chuàng )建到hdisk7上,因為該LV中的其它副本可能已經(jīng)存在.
同步新創(chuàng )建的鏡象:mirrorvg -S -c 3 workvgc參數指出mirrorvg后每個(gè)LV必須有的副本數.而-S參數指出立即返回mirrorvg命令并完成VG的后臺同步.當鏡象同步的時(shí)候不會(huì )顯示出來(lái),但是一旦準備好,可以立即被系統使用.
創(chuàng )建一個(gè)原樣的鏡象VG: mirrorvg -m datavg hdisk2 hdisk3-m參數允許在PP層次鏡象一個(gè)LV,該LV的PP可以組織已經(jīng)在源副本上組織好的數據.
rootvg鏡象:rootvg鏡象完成,要完成以下任務(wù):
1.bosboot命令從RAM文件系統和核心創(chuàng )建一個(gè)引導鏡象.該命令在自定義新的鏡象盤(pán)上的引導記錄時(shí)是被要求使用的.
2.bosboot命令總是為硬盤(pán)保存設備配置數據,不更新NVRAM中的引導設備列表,要修改列表,使用bootlist.
3.最后,mirrorvg命令關(guān)閉quorum功能.要關(guān)閉rootvg的該功能系統必須重啟.注意:如果bosboot命令沒(méi)有成功創(chuàng )建引導盤(pán),不要重啟.這個(gè)問(wèn)題應該被解決并且bosboot命令成功完成運行.bosboot要求一些/tmp和目標保存的文件系統中的空間(如果該鏡象存在).
非rootvg鏡象:如果一個(gè)非rootvg被鏡象,quorum狀態(tài)是去活的.要使所有quorum去活,所有開(kāi)放的LV必須被關(guān)閉.然后VG varyoff再vary on使quorum改變生效.如果VG的varyon沒(méi)有完成,盡管鏡象正常運行,但quorum的改變沒(méi)有生效.
rootvg和非rootvg鏡象:系統dump設備(主:/dev/hd6次:/dev/sysdumpnull)不應被鏡象,在某些系統中,頁(yè)面設備和dump設備是相同的,而用戶(hù)想對頁(yè)面設備做鏡象.當mirrorvg探測到一個(gè)dump設備和頁(yè)面設備相同時(shí),該LV就會(huì )自動(dòng)被鏡象.如果mirrorvg發(fā)現dump設備和頁(yè)面設備在不同的LV,頁(yè)面設備自動(dòng)鏡象,而dumpLV不會(huì ).dump設備可以用sysdumpdev命令來(lái)查詢(xún)和修改.
三.物理卷管理
討論:加入新磁盤(pán)/改變PV屬性/監控PV
6.3.1PV配置:三種方法
a)該方法用于可以在連接磁盤(pán)前關(guān)機的情況.當系統在加入一個(gè)磁盤(pán)后引導,cfgmgr命令在系統引導時(shí)運行,它可以自動(dòng)配置磁盤(pán).引導完成,以root用戶(hù)登錄,運行lspv,查看新盤(pán).顯示如下
hdisk1nonenone
或者hdisk100005264d21adb2enone
其中第二行中的16位號碼是PV的ID.如果輸出以PVID顯示新的磁盤(pán),他可以用于LVM的配置.如果新盤(pán)沒(méi)有PVID,要使用3.2節說(shuō)明的方法把一個(gè)盤(pán)創(chuàng )建為一個(gè)PV,然后該盤(pán)才可以被LVM使用.
b)這種方法適用于不能在連接磁盤(pán)前關(guān)機的情況.運行lspv列出已經(jīng)配置的物理盤(pán),顯示如下:
hdisk0000005265ac63976rootvg
然后運行cfgmgr配置所有新發(fā)現的設備.再次運行lspv查看新盤(pán)條目,例如:
hdisk1nonenone
或者hdisk100005264d21adb2enone
一旦確認了新配置的盤(pán)名,使用6.3.2描述的創(chuàng )建PV方法來(lái)使該盤(pán)可以被LVM使用.
c)該方法適用于不能在連接磁盤(pán)前關(guān)機的情況.該方法要求知道以下信息:盤(pán)如何連接的(subclass)/磁盤(pán)類(lèi)型(type)/盤(pán)連接到哪個(gè)系統接口(parentname)/盤(pán)的邏輯地址(連接到哪里).如果知道以上信息,使用以下方法配置該盤(pán),通過(guò)pv=yes屬性來(lái)確保該盤(pán)是一個(gè)可用的PV:
mkdev -c disk -s subclass -t type -p parentname -w whereconnected -a pv=yes
pv=yes屬性使磁盤(pán)成為一個(gè)PV并以獨特的PVID寫(xiě)入引導記錄.
6.3.2把一個(gè)磁盤(pán)變?yōu)橐粋€(gè)PV
一個(gè)新盤(pán)必須被配置為PV才可使用.可以通過(guò)指派一個(gè)PVID使一個(gè)磁盤(pán)變?yōu)橐粋€(gè)PV:chdev -l hdisk1 -a pv=yes.這個(gè)命令對于已經(jīng)是PV的磁盤(pán)沒(méi)有影響.
6.3.3修改PV屬性
討論兩個(gè)可以被chpv命令修改的PV屬性:
為一個(gè)PV設置分配許可:一個(gè)PV的分配許可決定了該PV上的未指派到LV中的PP是否可以被分配使用.設置分配許可要定義PV中一個(gè)新PP的分配是否被允許.以下的命令用于關(guān)閉hdisk1的分配許可:chpv -a n hdisk1,要打開(kāi),把n該為y即可.
設置一個(gè)PV的可用性:一個(gè)PV的可用性定義了該PV是否可以完成任何邏輯輸入輸出操作.當一個(gè)PV被從系統刪除或失敗時(shí)應該被設為不可用.以下命令用于設置PV的狀態(tài)為不可用:chpv -v rpvname,這將去活PV中所有的VGDA和VGSA副本,該PV也不會(huì )參與未來(lái)的quorum檢查上的vary.關(guān)于該卷的信息也會(huì )從其它在一個(gè)VG中的PV的VGDA中刪除.要設為可用,把以上命令的r改為a即可.注意:chpv命令在運行時(shí)使用/tmp目錄的空間存儲信息,如果失敗,可能是由于/tmp空間太少.
6.3.4刪除PV
如果一個(gè)PV可以從系統刪除,那么它必須是沒(méi)有配置的.使用rmdev命令把hdisk1的狀態(tài)從available改變到defined狀態(tài):rmdev -l hdisk1.此后,該PV的定義將仍然保留在ODM中,如果加上-d參數,則從ODM中刪除.
6.3.5列出PV信息
一個(gè)正確地配置在系統中的PV可以被指派到VG中并隨后用于建立LV和文件系統.自由的PP的信息和磁盤(pán)上的扇區可用性非常有用.使用lspv命令可以獲得這些信息.
a)列出系統中的PV:不帶參數運行,結果如下:
# lspv
hdisk0 00615147ce54a7ee rootvg
hdisk1 00615147a877976a rootvg
如果帶-C和-c class參數也會(huì )連同每個(gè)PV的狀態(tài)列出系統中的PV,結果如下:
# lsdev -C -c disk
hdisk0 Available 40-58-00-0,0 16 Bit SCSI Disk Drive
hdisk1 Available 40-58-00-1,0 16 Bit SCSI Disk Drive
hdisk2 Available 20-68-L SSA Logical Disk Drive
hdisk3 Available 20-68-L SSA Logical Disk Drive
hdisk4 Available 20-68-L SSA Logical Disk Drive
hdisk5 Available 20-68-L SSA Logical Disk Drive
hdisk6 Available 20-68-L SSA Logical Disk Drive
b)列出PV屬性:下面是用lspv命令找到更多信息的例子:
# lspv hdisk1
PHYSICAL VOLUME: hdisk1 VOLUME GROUP: rootvg
PV IDENTIFIER: 00615147a877976a VG IDENTIFIER 00615147b27f2b40
PV STATE: active//VG STATE可以用varyonvg命令來(lái)修改,其取值有三個(gè):active/complete(所有PV是活動(dòng)的),active/partial(一些PV沒(méi)有激活),ina- ctive(VG沒(méi)有活動(dòng)).
STALE PARTITIONS: 0 ALLOCATABLE: yes//STALE PP是失效PP,ALLOCATABLE的值表示系統是否允許分配新的在該PV上的PP
PP SIZE: 4 megabyte(s) LOGICAL VOLUMES: 13//PP SIZE是VG屬性是在用mkvg命令建立VG的時(shí)候定義的VG的最小片斷大小
TOTAL PPs: 238 (952 megabytes) VG DESCRIPTORS: 1//VGDESCRIPTORS描述了包含該PV的VG中VGDA的個(gè)數
FREE PPs: 71 (284 megabytes)
USED PPs: 167 (668 megabytes)
FREE DISTRIBUTION: 48..02..00..00..21//概括了自由PP依據它們所在的PV的位置的分布狀況.
USED DISTRIBUTION: 00..46..47..47..27
每欄的左邊列出了PV本身的信息,右邊是該PV所屬的VG的信息.
c)列出PV上的LV分配信息:以-l參數列出hdisk1上的LV信息:lspv -l hdisk1.顯示結果:
d)列出PV上的PP分配:用lspv -p hdisk1找出更多關(guān)于PP分配到LV中的范圍和這些PP使用的磁盤(pán)區域的詳細信息.顯示信息如下:
一些注釋:
PP RANGE當前行分區申請的PP的范圍
STATE分區是否被分配了,取值為:used或free
REGION該分區在磁盤(pán)區域上的位置
LV NAME該分區所屬的LV名
TYPE在LV中文件系統的類(lèi)型
MOUNTPOINT文件系統的mount點(diǎn)
e)列出PP分配表:可以用lspv -M命令對一個(gè)LV進(jìn)行磁盤(pán)整理,提高磁盤(pán)I/O性能.可以經(jīng)過(guò)分析輸出決定是否整理系統,顯示如下:
第一列為命令指定的盤(pán)指出了PP(如果一組相鄰分區都是自由的,將會(huì )顯示分區范圍),第二列指出了哪個(gè)LV的哪個(gè)LP被分配到該PP.
f)遷移PV中的內容:屬于一個(gè)或多個(gè)指定的LV的PPs可以從一個(gè)PV移動(dòng)到一個(gè)或多個(gè)其它在VG中的PV.這要使用migratepv命令.注意:該命令不能在不同VG之間移動(dòng)數據.6.5.5講述了如何在VG之間移動(dòng)數據.要在VG內移動(dòng)一個(gè)失敗的盤(pán)中的數據有以下步驟:
1)確定哪些盤(pán)在VG中,確認目的和源PV在一個(gè)VG中.執行lsvg -p rootvg可以確認.然后進(jìn)行第三步;
2)如果計劃遷移到一個(gè)新盤(pán),又需要完成以下步驟:(1)用lsdev -Ccdisk確認磁盤(pán)為PV;(2)如果磁盤(pán)被顯示可用,確認該盤(pán)不屬于其它VG:lspvPVNAME;(3)如果磁盤(pán)不可用,要檢查或安裝磁盤(pán);(4)加入新盤(pán)到VG中:extendvg VGname hdisknumber;
3)確認目標盤(pán)有足夠的空間:(1)確認源盤(pán)PP數目:lspvSourceDiskNumber|grep "USED PPs";(2)確認目標盤(pán)上的自由PP數目:lspvDestDiskNumber|grep "FREE PPs",把所有目標盤(pán)上的自由PP相加,如果和大于源盤(pán)上使用的PP數,就有足夠的空間.
4)要移動(dòng)一個(gè)在非rootvg中的PV的數據的時(shí)候,請跳到第5步.否則進(jìn)行該步.查看是否bootLV(hd5)在源盤(pán)上:lspv -l SrcDiskNum|grephd5,沒(méi)有輸出,則可以進(jìn)行第5步.如果有輸出,運行migratepv -l hd5 SrcDiskNumDstDiskNum(注意:如果VG在并發(fā)模式varyon,migratepv命令不可用,而且該命令無(wú)法遷移條帶化LV,這種情況下要使用cplv拷貝數據,再用rmlv刪除舊數據;該命令運行要有root用戶(hù)權限.).下一步就會(huì )得到一條關(guān)于警告應該在目標盤(pán)上完成bosboot命令的消息(注意:如果bootLV被從一個(gè)PV上遷移了,源盤(pán)上的引導記錄應該被清除,如果清除失敗,可能會(huì )導致系統掛起.這樣當運行bosboot命令時(shí),也必須運行mkboot -c);運行mkboot-c命令清除源盤(pán)的引導記錄.
5)執行smitty migratepv遷移數據.
6)按下F4列出PV,選擇源PV;
7)默認的目的PV是VG中隨意的可用的PV,如果想選擇,按F4;
8)如果愿意,在Move only data belonging to this LV域顯示并選擇一個(gè)LV.這就會(huì )只移動(dòng)分配到指定的LV的該盤(pán)上的PP;
9)回車(chē)開(kāi)始移動(dòng);
10)如果磁盤(pán)失敗,用reducevg VGname SrcDskNum從VG中刪除源盤(pán);
11)在從機器上拆下失敗的硬盤(pán)的之前,運行rmdev -l SrcDskNum -d;
其它migratepv的用途:用該命令從hdisk1移動(dòng)PPs到hdisk6和hdisk7(均在一個(gè)VG):migratepv hdisk1 hdisk6 hdisk7
用該命令從hdisk1移動(dòng)在某LV上的PP到hdisk6:migratepv -l lv02 hdisk1 hdisk6
四.卷組管理
討論可以在VG中完成的功能.象PV一樣,VG可以被創(chuàng )建/刪除/更改屬性.還可以激活或去活一個(gè)VG.
6.4.1加入一個(gè)VG.一個(gè)VG要被加入系統需要系統中存在一個(gè)或多個(gè)PV,這些PV必須是可用狀態(tài)且沒(méi)有被其它VG使用.在加入一個(gè)VG之前,需要確定一些重要信息,如VG名和要被加入到VG中的PV.新VG可以通過(guò)用mkvg命令或smit加入系統.所有屬性在VG創(chuàng )建時(shí)設置,以下是非常重要的一些問(wèn)題:VG名在系統中必須是唯一的;所有要在VG中使用的PV的名字;VG可以容納的PV的最大數量;VG中的PP的大小;每次啟動(dòng)系統時(shí)自動(dòng)激活VG的標識.下面用mkvg命令創(chuàng )建一個(gè)名為myvg的VG,使用hdisk1和hdisk5兩個(gè)PV,每個(gè)PP的大小是4k,該VG限制能容納最多10個(gè)PV.命令如下:
mkvg -y myvg -d 10 -s 8 hdisk1 hdisk5
也可以使用smitty mkvg來(lái)創(chuàng )建,在界面各個(gè)域中輸入屬性值即可.smittymkvg會(huì )用varyonvg自動(dòng)激活VG.但smit命令與命令行方式相比,限制了以下功能:smittymkvg不提供-d參數設置能容納的最多PV個(gè)數,僅使用默認的32個(gè);不提供-m參數設置PV的最大容量,該參數決定多少PP被使用,默認的是1016個(gè)分區;smittymkvg用-f參數強制創(chuàng )建VG.注意:每用mkvg創(chuàng )建一個(gè)新VG,根文件系統至少應該有2MB自由空間(可以用df命令來(lái)檢查),因為每創(chuàng )建一個(gè)新VG,/etc/vg目錄就會(huì )寫(xiě)入一個(gè)文件.
6.4.2修改VG屬性
修改活動(dòng)屬性用以下命令可以讓名為newvg的VG在每次系統啟動(dòng)時(shí)自動(dòng)被vary on:
chvg -ay newvg
如果要關(guān)閉自動(dòng)vary on功能,用:
chvg -an newvg.
對VG解鎖當LVM命令在操作時(shí)因為系統沖突異常中斷,VG將被鎖住,要解鎖可以用:
chvg -u newvg
加入一個(gè)PV要增加VG的空間需要VG中額外的PV可用.加PV的命令是extendvg,下面是一個(gè)加PV的例子:
extendvg newvg hdisk3
注意:如果一個(gè)要加的PV已經(jīng)屬于一個(gè)vary on的VG,擴展會(huì )失敗,如果屬于一個(gè)vary off的VG,用戶(hù)也會(huì )被提示是否確定要繼續.也可以使用smitty vgsc命令來(lái)實(shí)現,要選擇Add a PV to a VG.
刪除一個(gè)PV要減少VG的PV,VG必須是vary on的.下面是刪除的例子:
reducevgmyvg hdisk3
可以用smittyreducevg從一個(gè)VG中刪除一個(gè)PV.注意:reducevg命令提供了-d和-f參數.-d參數很危險,因為它會(huì )在從VG中刪除PV之前自動(dòng)刪除所有在PV上的LV數據,如果一個(gè)LV跨越了多個(gè)PV,那么任何這種PV的刪除會(huì )危害整個(gè)LV的完整性.而-f參數則使-d參數更危險,它禁止和用戶(hù)交互,無(wú)法讓用戶(hù)確認是否要刪除.
如果在要被刪除的PV上的LV跨越了VG中其它PV,刪除操作會(huì )破壞這些LV的完整性而不管它們所在的PV.如果刪除一個(gè)VG中所有PV,則VG本身也被刪除.
刪除PV的參數有時(shí)從系統中刪除磁盤(pán)沒(méi)有先運行reducevg,VGDA仍然保存了被刪除的磁盤(pán)的參數,而PV名已經(jīng)不存在或被重分配了.要刪除這些參數,仍然可以在reducevg命令中使用被刪除的PV的PVID.如要刪除PVID為000005265ac63976則可以用:reducevg newvg 000005265ac63976.
6.4.3導入導出VG
有時(shí)候一個(gè)VG需要被從一個(gè)系統移動(dòng)到另外一個(gè)系統,以便于其中的LV和文件系統可以在目標系統中被直接訪(fǎng)問(wèn).要刪除ODM數據庫中一個(gè)VG的系統定義,該VG需要用exportvg命令導出.該命令不會(huì )刪除VG中的任何用戶(hù)數據而只刪除它在ODM數據庫中的定義.同樣,當一個(gè)VG被遷移了,目標系統需要加入該VG的定義.這可以通過(guò)用importvg命令導入VG來(lái)完成,這會(huì )在ODM數據庫中加入一個(gè)條目.例子:導出myvg的定義:exportvg myvg;導入myvg:importvg -y myvghdisk12可以使用smitty exportvg或smittyimportvg來(lái)導入或導出.如果指定的VG名正在使用,importvg命令將會(huì )失敗,因為相同的VG名是不被允許的.在該實(shí)例中該命令可以返回一個(gè)獨特的指定的VG名.該命令也可以沒(méi)有-y參數或VG名得到返回,但這樣執行時(shí),被給定了一個(gè)默認唯一的導入名.
也有可能某些LV名與系統中已有的沖突.importvg命令將自動(dòng)以系統默認名命名.重要的是要記住當移動(dòng)VG時(shí),exportvg命令總是在源系統中執行并且先于導入目標系統的操作.假設到一個(gè)VG被導入系統Y沒(méi)有在系統X上實(shí)際完成exportvg.如果系統Y對VG作了諸如刪除PV的改變,而后來(lái)VG又被導回系統X,系統X上的ODM數據庫將和VG上改變過(guò)的信息不一致,但在移動(dòng)前沒(méi)有在源系統上導出,那就沒(méi)有什么意義了.也可用exportvg和importvg改變用戶(hù)定義的VG名.如以下命令:lspv列出所有的PV,varyoffvg vg00,exportvg vg00,importvg -y cadsvghdisk1,lspv就可以發(fā)現兩次lspv的不同.注意:如果當前系統包含一個(gè)相同的名字的LV,importvg命令改變被導入的LV的名字.同時(shí)如果一個(gè)LV被改名,一個(gè)錯誤消息被打印到標準錯誤輸出,如果沒(méi)有沖突,該命令還創(chuàng )建文件mount點(diǎn)和/etc/filesystems中的條目.
有頁(yè)面文件的VG中,如果頁(yè)面文件是活動(dòng)的,VG不能被導出.在導出一個(gè)包含活動(dòng)頁(yè)面的VG之前,確認頁(yè)面空間不會(huì )在系統初始化時(shí)自動(dòng)激活,要使用:chps -a n page_space_name,然后重啟系統.
如果不能用smitty importvg命令激活VG,必須用varyonvg命令來(lái)使文件系統和LV可用.
如果導入的VG包含文件系統或者通過(guò)smitty importvg激活了VG,建議在mount文件系統之前使用fsck命令檢查文件系統.如果移動(dòng)一個(gè)VG到其它系統,確認在移動(dòng)前反配置這些盤(pán)(即導出).
smitty exportvg命令刪除在/etc/filesystems中的文件系統參數,但留下mount點(diǎn)在系統中.
6.4.4打開(kāi)關(guān)閉一個(gè)VG
一個(gè)VG存在,就可以使用varyonvg命令使其可以被系統管理活動(dòng)可用.這個(gè)處理包含的步驟如下:
1.一個(gè)VG的每個(gè)PV中的每個(gè)VGDA要被讀取;
2.每個(gè)VGDA的頭部和尾部的時(shí)間戳被讀取,這個(gè)時(shí)間戳必須匹配一個(gè)有效的VGDA;
3.如果多數VGDA(成為quorum)可用,varyon就會(huì )處理,否則就處理就會(huì )失敗;
4.系統會(huì )用最新的VGDA數據去覆蓋所有其它VGDA,這樣它們就都匹配了;
5.sync命令被運行用來(lái)重新同步任何過(guò)時(shí)的分區(鏡象被采用了);
varyonvg命令有以下選項可以被用于克服VG結構損壞或給出狀態(tài)信息:
1.-f參數可以被用于強制一個(gè)VG被vary on,甚至有沖突的時(shí)候.該沖突通常是因為ODM數據庫中每個(gè)VG的配置數據和VGDA不同;
2.-n參數將會(huì )禁止syncvg命令在vary on時(shí)使用.當一個(gè)VG被varyon,過(guò)時(shí)的分區被探測到時(shí),varyon進(jìn)程將會(huì )調用syncvg命令來(lái)同步過(guò)時(shí)分區.在希望謹慎地覆蓋一個(gè)VG,想確認沒(méi)有意外地寫(xiě)一個(gè)壞鏡象的數據副本到好的副本中時(shí),該參數非常有用;
3.-s參數允許一個(gè)VG被以維護模式或系統管理模式vary on.LV命令可以操作該VG,但是沒(méi)有LV可以被打開(kāi)進(jìn)行輸入輸出操作.
例子:激活VG newvg:varyonvg newvg,也可以用simtty varyonvg.
varyoffvg可以去活一個(gè)VG和他關(guān)聯(lián)的LV.這要求LV是關(guān)閉的(即其中的文件系統是unmounted的).varyoffvg命令也允許-s參數使用改變VG到維護模式或系統管理模式.去活一個(gè)VG:varyoffvgmyvg.也可以用smitty varyoffvg,其中也可以把VG改變到系統管理模式.
6.4.5監控VG
lsvg命令詢(xún)問(wèn)ODM數據庫當前所有系統中的VG.下面是一些例子:
列出VG:不帶參數列出所有VG.
lsvg -o列出所有被vary on的VG.
lsvg VGNAME列出名為VGNAME的VG的所有詳細信息和VG屬性的狀態(tài).
列出在VG中的PV的狀態(tài):lsvg -p VGNAME.該命令對于集中系統中的自由空間非常有用.
其中DISTRIBUTION五列分別表示:outside edge,outsidemiddle,center,inside middle,inside edge.
6.4.6重組一個(gè)VG
用reorgvg命令為一個(gè)VG根據每個(gè)LV的分配屬性重組PP分配.
語(yǔ)法:reorgvg [-i] volgrpname [lgcvolname...]
在使用reorgvg命令之前VG必須被varyon并且有自由分區.每個(gè)LV的可重定位參數必須通過(guò)chlv-r命令被設置為y才能使重組生效.否則LV就被忽略.注意:reorgvg命令不重組已分配的條帶化的LV的PP的位置.該命令要運行成功指定的VG中至少有一個(gè)自由PP.如果reorgvg命令后帶VG名,再沒(méi)有其它參數,那就只重組VG中的第一個(gè)LV.也可以使用smittyreorgvg命令完成重組.
-i參數指定從標準輸入獲取PV名.只有這個(gè)指定的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命令用來(lái)同步LV過(guò)時(shí)的副本,語(yǔ)法:
syncvg [-f][-i][-H][-P NumParallelLPs]{-l|-p|-v}Name...
syncvg命令同步過(guò)時(shí)的源PP的副本PP.該命令可以用于LV/PV/VG,只要指定它們的名字即可.同步進(jìn)程是很費時(shí)的,依硬件屬性和數據量的不同而有所變化.
當-f參數使用的時(shí)候,一個(gè)沒(méi)有損壞的物理副本被選擇并傳播到所有其它LP的副本檢驗它們是否損壞.當VG被varyonvg命令激活的時(shí)候,對于在VG中的副本,除非同步功能不可用,否則它們總是被自動(dòng)同步.sync的-p參數指出代表PV設備名的名字樣式.-v參數指出代表VG設備名的名字樣式.下面的例子顯示了如何使用syncvg:同步在PVhdisk04和hdisk05上的副本:syncvg -p hdisk04 hdisk05;同步在VGvg04和vg05上的副本:syncvg -v vg04 vg05.
五.邏輯卷管理
PV和VG不能由用戶(hù)和程序直接存取數據,不能為用戶(hù)和程序提供磁盤(pán)空間.但是LV提供了使磁盤(pán)可用的機制.當創(chuàng )建LV的時(shí)候,要指定LP的個(gè)數.一個(gè)LP根據鏡象方式可以映射1個(gè)/2個(gè)或三個(gè)PP.
6.5.1加入一個(gè)LV
可以用mklv創(chuàng )建一個(gè)新LV,該命令允許你指定LV名,定義諸如LP數量等屬性,在創(chuàng )建LV中,默認的最大尺寸為128個(gè)LP.mklv的語(yǔ)法如下:
mklv [ -a Position ] [ -b BadBlocks ] [ -cCopies ] [ -d Schedule ][ -e Range ] [ -i ] [ -L Label ] [ -m MapFile ][ -r Relocate ] [ -s Strict ][ -t Type ] [ -u UpperBound ] [ -v Verify] [ -w MirrorWriteConsistency ][ -x Maximum ] [ -y NewLogicalVolume |-Y Prefix ] [ -S StripeSize ][ -U Userid ] [ -G Groupid ] [-P Modes ]VolumeGroup Number[ PhysicalVolume ... ]
參數意義:
-c copies設置鏡象數,最多三個(gè),默認為1
-i從標準輸入獲得PV樣式,該參數只用于PV通過(guò)標準輸入加入的情況
-L設置LV卷標,默認值為沒(méi)有.最大127字符,如果該卷被用于JFS,JFS將使用該值記錄該LV中的JFS的mount點(diǎn)
-P modes為L(cháng)V特殊文件指定文件模式許可
-t type設置LV類(lèi)型.標準類(lèi)型是JFS,JFSLOG,paging,也可用于定義其它LV類(lèi)型(boot類(lèi)型除外),默認JFS
如果為一個(gè)文件系統創(chuàng )建了log,在log被使用之前用戶(hù)要用logform命令清除干凈新的JFSLOG,用以下命令格式化名為logdev的LV:
logform /dev/logdev.
-y newlv為L(cháng)V指定名字,該名在本機上必須是唯一的,可以用1-15個(gè)字符.如果VG是以并發(fā)模式varyon的,新名字要在所有的并發(fā)節點(diǎn)中唯一.該名字也不能和設備配置數據庫中的PdDv類(lèi)定義的前綴相同.
例子:用mklv來(lái)創(chuàng )建一個(gè)名為newlv的新LV到rootvg中,該LV含10個(gè)LP,每個(gè)LP對應兩個(gè)PP.
mklv -y newlv -c 2 rootvg 10.
用smit創(chuàng )建一個(gè)LV:運行smittymklv,然后按F4選擇一個(gè)vg,輸入LV名字,然后在number ofLP域輸入想分配到新LV的LP數目.在PVname域輸入想用于該LV的PV名,若未指定,默認系統中第一個(gè)PV.在Number ofcopies域輸入LP鏡象數.回車(chē)即創(chuàng )建.
6.5.2刪除LV:rmlv [-f][-p PVname]lvname...-f表示不提示確認直接刪除,-p PVname 僅僅刪除指定PV中的LP.除非LV中所有的LP均在該PV中,否則LV不會(huì )刪除.也可使用smitty rmlv刪除.
6.5.3減少LV的大小:備份LV的所有數據->刪除LV->以更少的LP建立LV->恢復數據
6.5.4增加LV大小:可以用extendlv或smittyextendlv來(lái)增加,如果LV被用于JFS,也可以用chfs或smitty chfs來(lái)完成.語(yǔ)法:extendlv [ -aPosition ] [ -e Range ] [ -u Upperbound ] [ -s Strict ] LV Partitions[PV ... ],如要加入3個(gè)新的LP到LV中:extendlv newlv 3.
6.5.5拷貝LV:如要拷貝lv1的內容到lv2,兩者都在myvg中,則用cplv-v myvg -y lv2lv1.如果沒(méi)有指定vg,新LV會(huì )創(chuàng )建在與舊lv相同的vg中.要拷貝一個(gè)LV到一個(gè)存在的LV中,用以下命令:cplv -eexistinglvoldlv,該命令會(huì )使existinglv上的內容被覆蓋.如果existinglv小于oldlv,會(huì )造成數據丟失,損壞文件系統.如果在并發(fā)模式下,該命令創(chuàng )建新lv會(huì )失敗.使用smittycplv拷貝一個(gè)LV,目的卷有三種模式:一個(gè)已有的LV,一個(gè)系統新建LV,一個(gè)用戶(hù)新建LV.可能會(huì )遇到警告說(shuō)目標LV沒(méi)有被設置為copy類(lèi)型.這種情況可以用以下命令:chlv -t copy DstLV.
6.5.6分割LV的副本:splitlvcopy命令從一個(gè)LV中分割副本,創(chuàng )建新的獨立的LV.語(yǔ)法:splitlvcopy [ -f ] [ -y NewLogicalVolumeName ] [ -Y Prefix ]LogicalVolume Copies [ PhysicalVolume ...].注意:盡管該命令可以分割開(kāi)放的LV以及其中已經(jīng)mount的文件系統,但這么做如果被多處理器系統同時(shí)訪(fǎng)問(wèn)可能會(huì )失去兩個(gè)LV之間的連貫性,在分割這些LV的時(shí)候,有丟失數據和數據損壞的危險。
要分割屬于有3個(gè)副本的oldlv的LV每個(gè)LP的副本并創(chuàng )建newlv,使用:splitlvcopy -y newlv oldlv 2,結果oldlv中有兩個(gè)副本,newlv中有兩個(gè)副本。
6.5.7列出LV:系統安裝時(shí)會(huì )自動(dòng)創(chuàng )建以下LV:
hd5引導LV,只在系統引導時(shí)可用;
hd6默認頁(yè)面LV;
hd8默認日志空間;
hd4用于根文件系統;
hd2/usr文件系統;
hd9var/var文件系統;
hd3/tmp文件系統;
hd1/home文件系統.
列出這些LV用命令:lsvg|lsvg –il.
lslv命令用于察看與lv有關(guān)的屬性.如:lslv newlv
6.5.8LV大小=PP大小×分配到LV的LP數×鏡象數
六.日志文件系統管理
文件系統是文件/目錄以及其他結構的集合.文件系統還可能包含引導塊,超級塊,位圖和一個(gè)或多個(gè)分配組(allocationgroup).一個(gè)分配組包含磁盤(pán)i節點(diǎn)和片斷.AIX支持三種文件系統:JFS/NFS/CDFS.每個(gè)JFS分別在不同的LV中.初始化時(shí),系統會(huì )mount一些系統和引導需要的文件系統.NFS是一種分布式文件系統.
JFS把LV分為一些固定大小的邏輯塊.邏輯塊有以下組件構成:0邏輯塊/超級塊/分配組.0邏輯塊是系統保留的,被引導程序或其他信息使用,不能被文件系統使用.超級塊是從1到30塊,包含諸如整個(gè)文件系統的塊數(512k/塊)文件系統名,文件系統日志設備,版本號和文件系統狀態(tài)等數據.31塊用來(lái)備份.文件系統中的邏輯塊休止符被分為一些分配組.一個(gè)分配組包含i節點(diǎn)和數據塊,當分配組被分配到目錄或文件中去的時(shí)候會(huì )參考那些數據塊.那些組可以被用于安排數據的物理位置.
6.6.1JFS的屬性:i節點(diǎn)數/分配組大小/文件系統片斷可訪(fǎng)問(wèn)能力/文件系統日志大小/最大文件系統容量,這些屬性在文件系統被創(chuàng )建的時(shí)候就被定義了.
i節點(diǎn)數目:該數目決定了該文件系統中的文件數目和文件系統的大小.JFS提供了nbpi(Num of bytes peri-node)樣式,該樣式影響文件系統的i節點(diǎn)數.JFS支持的nbpi值有512/1024/2048…/131072.32768以后的值只在A(yíng)IX4.2以后的支持.如果要創(chuàng )建一個(gè)8M的文件系統,其nbpi為4096,則每4096字節的數據就會(huì )得到一個(gè)i節點(diǎn).這就使得該文件系統中最多有2048個(gè)節點(diǎn),也就是說(shuō)文件系統中最多2048個(gè)文件.JFS限制所有的文件系統中最多16M(2的24次方)個(gè)i節點(diǎn).
分配組大小:JFS按i節點(diǎn)和塊的分組為用戶(hù)數據分割文件系統空間.分配組大小是8M/16M/32M/64M.每個(gè)分配組大小有一個(gè)關(guān)聯(lián)的nbpi范圍.具體如下:
Allocation Group size in MBMaximum number of i-nodes
8 512, 1024, 2048, 4096, 8192, and 16384
16 1024, 2048, 4096, 8192, 16384, and 32768
32 2048, 4096, 8192, 16384, 32768, and 65536
64 4096, 8192, 16384, 32768, 65536, and 131072
文件系統片斷可訪(fǎng)問(wèn)性:JFS支持4種片斷大小:512,1024,2048,4096字節的連續空間.JFS維護在i節點(diǎn)和塊中的地址,一共有28位.每個(gè)片斷必須可以可以通過(guò)一串0到2^28的數字訪(fǎng)問(wèn).
JFS日志:JFS日志大小為4M,初始安裝后,所有的在rootvg下的文件系統默認使用hd8作為日志文件的lv,默認大小為4M,大小為一個(gè)分區,如果文件系統超過(guò)2G或使用一個(gè)log的總計文件系統空間超過(guò)2G,默認log大小需要增加.JFS日志限制最大為256M.
最大JFS大小:在文件系統創(chuàng )建時(shí)定義的.例如選擇文件片斷為512,則文件系統最大為512×2^24=8G.當創(chuàng )建一個(gè)JFS,所有屬性(nbpi/fragmentsize/分配組大小)都要考慮好.文件系統大小=nbpi*2^24=fragment size*2^28.
6.6.2創(chuàng )建文件系統
1.執行smitty crjfs;
2.選擇Add a Standard JFS;
3.選擇要創(chuàng )建的文件系統的VG;
4.在視圖中輸入文件系統大小(塊數).如果想創(chuàng )建一個(gè)4M的文件系統,可以用4乘以2048得到塊數;
5.在MOUNT POINT域輸入想mount的全路徑;
6.回車(chē)會(huì )顯示創(chuàng )建過(guò)程.
注意:AIX中的所有I/O都是以4KB的塊來(lái)進(jìn)行的,但是這里空間的計算是以512K的塊來(lái)計算的,這主要是為了和其他UNIX保持兼容.最小的文件系統大小是一個(gè)PP,因而如果指定的塊數目不夠一個(gè)PP,系統會(huì )仍然創(chuàng )建一個(gè)PP容量的文件系統.可以使用命令行方式來(lái)完成:crfs –v jfs –g VGNAME –a size=BLOCKS –m MOUNTPOINT.
6.6.3Mount一個(gè)文件系統
mount是一個(gè)使文件系統或文件或設備或特殊文件可用的操作.它是使一個(gè)文件系統可用的唯一方法.注意,如果mount點(diǎn)是一個(gè)已經(jīng)mount過(guò)的文件夾,已mount的文件系統的根目錄不許mount.通常容易出錯的是執行pwd命令,沒(méi)有查找已經(jīng)mount完成的文件夾的許可,pwd命令將返回拒絕消息.如果設置mount的文件夾的目錄許可為111就不會(huì )出現這種問(wèn)題.
用命令行方式mount一個(gè)文件系統:mount /filesysX,如果知道設備連接到系統的名字,可以直接使用設備名mount最新創(chuàng )建的文件系統.如果想mount所有的文件系統,可以使用mount –a或all.
使用smit mount文件系統:執行smittymount->在視圖中選擇mount a filesystem回車(chē)->在DIR over which tomount域按F4可以得到已經(jīng)定義的文件系統的mount點(diǎn).然后選擇想mount的文件系統,回車(chē)選擇->按回車(chē)就可以mount成功.
自動(dòng)mount:在系統初始化時(shí),文件系統可以被自動(dòng)mount,有兩種類(lèi)型的自動(dòng)mount:1.那些在引導時(shí)要求的mount,/etc/filesystems文件關(guān)于這些文件系統的定義中有mount=automatic的描述.如果多用戶(hù)初始化啟動(dòng)后運行了mount all,/etc/rc腳本不會(huì )試著(zhù)再去mount這些文件系統.通常運行umountall,這些文件系統不會(huì )umount.
2.第二種是用戶(hù)控制的,這些文件系統在初始化時(shí)被/etc/rc腳本的mount all命令執行.用戶(hù)控制自動(dòng)mount的定義在/etc/filesystems中有mount=true.
除以上兩種方法之外,可以把在文件系統創(chuàng )建時(shí)的自動(dòng)mount域中設置為true,或者使用chfs –A yes FILESYSTEM命令.
顯示已mount的文件系統:mount
6.6.4刪除文件系統:
1.使用mount命令檢查當前mount的文件系統;
2.如果文件系統已mount,先umount并檢查是否成功,如果未mount則繼續;
3.運行smitty rmjfs;
4.按下F4得到所有在系統中定義的文件系統列表,選擇要刪除的回車(chē);
5.如果要保留mount點(diǎn),按回車(chē)完成,否則把RM mountpoint設為YES回車(chē).
也可以在確認要刪除的文件系統umount之后,使用命令rmfs FSname來(lái)完成.如果要刪除mount點(diǎn),帶上-r參數.
6.6.5增加文件系統大小.如果文件系統的剩余空間太小,會(huì )出現不可預料的問(wèn)題.
1.使用df命令得到文件系統的當前大小;
2.計算需要增加的塊數;
3.在命令行方式下輸入:chfs –a size=NewBlocks FileSysName
NewBlocks是增加后的大小,不是要增加的大小.
用smit方式的步驟:
1.運行smitty chjfs;
2.選擇想改變的文件系統回車(chē),會(huì )出現報告文件系統的信息;
3.在SIZE of filesystem域輸入新塊數,回車(chē)即可成功.
6.6.6減少文件系統大小:
1.對要減少的文件系統做一個(gè)備份,如/usr.備份命令可以使用4個(gè),cpio/ backup/tar/savevg;
2.如6.6.4所述刪除文件系統;
3.創(chuàng )建新的文件系統,使用更小的空間,要有相同的名字.
注意:如果創(chuàng )建的空間太小不能容納已有數據,恢復將會(huì )失敗,使用df -k命令看當前在文件系統中的數據的塊數.
4.恢復文件系統備份.
也可用mksysb命令減少文件系統,在從一個(gè)mksysb恢復rootvg時(shí),有一個(gè)選項是shrink磁盤(pán)上的文件系統.如果選擇該項,VG中的LV和文件系統被重建為包含該數據的最小尺寸.用戶(hù)定義的VG也可以用restvg –s人工恢復.
6.6.7文件系統連貫性
fsck命令檢查文件系統連貫性并交互地修復文件系統.常用語(yǔ)法是:
fsck [ -n ] [ -p ] [ -y ] [ -d BlockNumber] [ -f ] [ -ii- NodeNumber ][ -o Options ] [ -t File ] [ -V VfsName ] [FileSystem1 - FileSystem2 ... ]
參數意義:
-f完成快速檢查,如果系統被不正常關(guān)閉而文件系統已mount,容易受到影響.該參數提示fsck命令不要檢查已經(jīng)umount的文件系統.而fsck命令通過(guò)檢查文件系統的超級塊可以確定是否mount.無(wú)論一個(gè)文件系統是被mount還是被clear,只要被umount,都要設置此參數.如果文件系統被成功umount,不可能有任何其它問(wèn)題.因為多數文件系統被成功umount,不再檢查這些文件系統可以減少時(shí)間.
-p不要顯示關(guān)于鏡象的問(wèn)題消息,但自動(dòng)修復它們.該參數不允許大規模的許可(象-y參數一樣),當系統正常啟動(dòng)時(shí),該參數對完成自動(dòng)檢查很有用.應該把該參數作為系統啟動(dòng)過(guò)程的一部分.該參數允許并行檢查.如果主超級塊損壞,次超級塊被校驗并拷貝到主塊.
-tFile如果fsck命令不能獲得足夠的內存保存被檢查的文件系統的表,在其他文件系統中指定一個(gè)草稿文件.如果不指定-t參數,而fsck命令需要一個(gè)草稿文件,系統會(huì )提示輸入草稿文件名.如果指定了-p參數,fsck命令將會(huì )失敗.如果草稿文件不是特殊用途文件,fsck命令結束時(shí)將刪除文件.
-y設定用yes回答所有的被fsck命令提出的問(wèn)題.該參數讓fsck命令采取任何認為必要的操作.只有在文件系統嚴重損壞的時(shí)候才使用該參數.
Fsck命令檢查并交互修復不一致的文件系統,應該在mount文件系統之前使用該命令.必須可以讀取文件系統所在的設備文件.
通常,文件系統是一致的,fsck命令僅僅報告文件的數目,使用的塊數,自由塊數.如果文件系統不一致,fsck命令顯示找到的不一致的信息并提示允許修復它們.如果文件系統不能修復,從備份恢復這些數據.
Mount不一致的文件系統可能導致系統沖突.如果不用樣式指定文件系統名,fsck命令將check所有的文件系統(/etc/filesystem中的check=TRUE).
注意:默認情況下,/,/usr,/var,/tmp文件系統的在/etc/filesystem中的check屬性設為False,因為:1.引導進(jìn)程在這些文件系統明確運行fsck命令;2.這些文件系統在腳本/etc/rc運行時(shí)被mount,fsck命令不會(huì )修改一個(gè)已mount的文件系統.fsck命令在mount的文件系統中上運行的結果是不可預知的.
6.6.8初始化JFS日志設備:logform命令初始化一個(gè)用于JFS日志設備的LV.該LV存儲了關(guān)于文件系統大量改變的交互信息,并能在系統沖突時(shí)用于部分回滾操作.語(yǔ)法為:
logformLOGNAME
注意:該命令有破壞性,會(huì )清除所有在LV中的數據;意外運行該命令會(huì )完全毀壞文件系統的數據.如果一個(gè)日志設備因為要被文件系統使用而開(kāi)放,文件系統應該先umount再對日志設備運行logform.logform命令毀壞所有在設備上的日志記錄,可能會(huì )造成文件系統數據的丟失.可用以下命令確認log日志被關(guān)閉了:lsvg –l VGNAME.
6.6.9JFS日志設備的位置:JFS日志LV應該被放置在一個(gè)與最經(jīng)常讀寫(xiě)的文件系統不同的PV中,最好放在一個(gè)最少讀寫(xiě)的盤(pán)中,以增加并發(fā)資源使用.系統也支持每個(gè)文件系統有獨立的JFS日志.但特別要考慮的是,應該盡量避免多個(gè)JFS日志放置到相同的盤(pán)上.
6.6.10支持大文件的文件系統:對于超過(guò)2G的文件,64位處理器可以不用任何特殊指令打開(kāi)文件.4.2以前版本的沒(méi)有潛在的支持大文件.在支持大文件的文件系統中,存儲在4MB文件偏移量之前的文件數據被以4096字節的塊分配,超過(guò)4M文件偏移量的以128K的大塊保存.大塊實(shí)際上是32個(gè)連續的小塊.如132M的文件有1024個(gè)小塊和1024個(gè)128K的大塊.在規則的文件系統中,132M的文件要求33個(gè)獨立間接塊(每塊以1024個(gè)4K的磁盤(pán)地址填滿(mǎn)).但是大文件系統中只要求2個(gè)獨立間接塊.
察看文件系統是否支持大文件:lsfs –q FILESYS.其中的bf域的值表示是否支持大文件.
七.解決文件系統問(wèn)題
6.7.1恢復錯誤的超級塊:如果在使用fsck或者mount命令時(shí),出現以下錯誤時(shí),可能是超級塊損壞:fsck: Not an AIX3 file system
fsck: Not an AIXV3 file system
fsck: Not an AIX4 file system
fsck: Not an AIXV4 file system
fsck: Not a recognized file system type
mount: invalid argument
這些問(wèn)題可以通過(guò)恢復超級塊備份來(lái)解決:dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00.
對于A(yíng)IX4:fsck –p /dev/lv00
一旦恢復進(jìn)程完成,用fsck檢查文件系統的完整性.
一般說(shuō)來(lái),超級塊的恢復會(huì )恢復文件系統,如果沒(méi)有恢復,重建文件系統然后恢復數據.
6.7.2不能umount文件系統
如果一個(gè)文件系統的任何參數仍然活動(dòng)就不能被umount.下列情況可能讓一個(gè)開(kāi)放的參數留在mount的文件系統中:
1.文件系統中的文件打開(kāi)了,對于這種情況可以用fuser命令檢查活動(dòng)狀態(tài),它為所有的在某個(gè)文件系統中有開(kāi)放參數的進(jìn)程返回ID:
fuser –xc /tmp
有開(kāi)放參數的進(jìn)程可以被殺死,然后就可以umount了.
2.文件系統可能由于核心進(jìn)程打開(kāi)了.fuser命令不會(huì )顯示這些類(lèi)型的參數,因為用戶(hù)進(jìn)程沒(méi)有包括在內.但是genkex命令會(huì )報告所有的核心用戶(hù)進(jìn)程.
3.文件系統mount在另一個(gè)文件系統中,在umount一個(gè)文件系統之前,必須確認所有的mount在該文件系統mount點(diǎn)上的文件系統已經(jīng)被umount.
4.一個(gè)進(jìn)程在使用要umount的文件系統中的一個(gè)目錄,fuer命令追加一個(gè)c到所有這些進(jìn)程ID,-u參數區分進(jìn)程的屬主.可以和find命令一起使用.如:
find /home –type d –exec fuser –u {} \
意思是在/home目錄下找到所有的目錄,對每條記錄執行fuser –u,然后回車(chē).{}代表每條記錄.對于一個(gè)交互進(jìn)程,有一個(gè)確定的用戶(hù)改變它們的工作目錄到文件系統外.否則殺死該進(jìn)程,就可以完成umount.
八.LVM命令總結
6.8.1PV命令:
getlvcb獲取lvcb信息
lsdev列出ODM中的設備
chdev改變設備屬性
mkdev加入設備
chpv改變PV狀態(tài)
lspv顯示一個(gè)VG中的PV的信息
migratepv從一個(gè)PV移動(dòng)一個(gè)已分配的PP到一個(gè)或多個(gè)其他PV
6.8.2VG命令:
mirrorvg對VG鏡象
unmorrorvg解除鏡象
mkvg創(chuàng )建新VG
extendvg給一個(gè)VG加新的PV
reducevg從一個(gè)VG中刪除一個(gè)PV
chvg改變VG屬性
lsvg顯示一個(gè)VG的信息
importvg安裝一個(gè)VG
exportvg刪除一個(gè)VG
reogrvg重組VG
syncvg同步VG
varyonvg使一個(gè)VG可用
varyoffvg使VG不可用
2.8.3LV命令
mklv創(chuàng )建LV
lslv列出LV屬性
rmlv刪除LV
extendlv增加一個(gè)LV的大小
chlv改變LV的屬性
mklvcopy為一個(gè)LV增加副本
rmlvcopy從一個(gè)LV刪除副本
6.8.4文件系統命令
chfs改變一個(gè)FS的屬性
crfs加入一個(gè)FS
lsfs顯示一個(gè)FS的屬性
rmfs刪除一個(gè)FS
mount使一個(gè)文件系統可用
umount使一個(gè)mount的文件系統或目錄或文件不可用
fsck檢查文件系統一致性并交互修復文件系統
df報告文件系統中的空間信息
1. While using the SMIT install menus toinstall an LPP, the response yes has been selected for the option:EXTEND file systems if space needed. After successfully installing theLPP, the /usr file system appears to be unnecessarily large. Which ofthe following actions can be performed to reduce the size of the /usrfile system?
A. Backup, unmount, remove, recreate and restore the file system.
B. Unmount, run defragfs /usr and the reducefs -size XXX /usr commands.
C. Boot from mksysb tape and follow the procedure to reduce the file system.
D. Update /etc/filesystems with the desired size for /usr and reboot the
system.
4. A system has been recovered from a harddisk failure and the failed disk has been replaced with a newunformatted one. When the system administrator varies on the volumegroup, an error message about a missing or unavailable disk matches theone the system administrator replaced. Which of the following commandswill eliminate this error message?
A. cfgmgr
B. export VGName
C. mkdev -1 hdisk3
D. reducevg -df VGName PVID
聯(lián)系客服