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