一個邏輯卷[LV]可以跨多個卷組[VG]
檔案系統建立在邏輯卷基礎上,如果邏輯卷不建立檔案系統,那麼該邏輯卷就是裸裝置。[在LV上沒有用NEWFS建立檔案系統,那這個LV就還是裸裝置,隻當它建立檔案系統之後,便不能成為裸裝置。]
問題:一個邏輯卷可以建立多少個裸裝置?
-----------hp unix-------------------------
實體卷(Physical Volume)稱為PV:
指實體上的硬碟,一個硬碟就是一個PV;
邏輯卷(Logical Volume)稱為LV:
相當于對大硬碟進行邏輯分區,一個VG裡可有若幹個LV。
邏輯卷組(Logical Volume Group)稱為VG:
一個VG包含整數個PV,可了解為一個大硬碟。
檔案系統(File System):
在邏輯卷的基礎上,可建立檔案系統,然後MOUNT到一個目錄下,這樣就可以檔案存取的方式來使用這塊硬碟了。當然,您也可以不建檔案系統,而直接把LV當作裸裝置,以TRUNK方式來存取資料,許多資料庫都是用這種方式存取資料。
-----linux-----
1實體卷-簡稱PV
實體卷在邏輯卷管理器中屬于最底層的,任何的邏輯卷和卷組都必需依靠實體卷來建立,實體卷可以是一個完整的硬碟,也可以是硬碟中的莫一個分區
2卷組-簡稱VG
卷組是建立在實體卷之上,一個卷組中可以包含一個實體卷組或者多個實體卷
3邏輯卷-簡稱LV
邏輯卷是建立在卷組之上的,卷組中的空間可以建立多個邏輯卷,并且邏輯卷可以随意從卷組的空閑空間中增減,邏輯卷可以屬于一個卷組,也可以屬于不同的多個卷組
4 實體區域-簡稱PE
實體區域是實體卷中最小的可配置設定儲存單元
5 邏輯區域-簡稱-LE
邏輯區域是邏輯卷中可用于配置設定的最小儲存單元
6 卷組描述區域-簡稱VGDA
用于描述實體卷,卷組,邏輯卷配置設定的所由資訊
實體媒體 The physical media
你應該感受“實體”這個單詞有極大的延伸,雖然我們剛開始假設它僅僅是一個硬碟,或者一個分區。例如,/dev/hda,/dev/hda6,/dev/sda。你可以轉換一個塊裝置上任何連續塊到一個。。。
實體卷 Physical Volume (PV)
一個PV隻不過是有許多管理資料添加在它裡面的實體媒體--一旦你添加了它,LVM就認為它是。。。的一個持有者。
實體分區 Physical Extents (PE)
實體分區真的象一些大的資料塊,通常有幾MB。PE可以配置設定給一個。。。
卷組 Volume Group (VG)
一個VG是由許多實體分區組成的(可能來自多個實體卷或硬碟)。雖然這可能容易讓你認為一個VG就是由幾個硬碟組成的(例如/dev/hda和/dev/sda),但是更确切的說,它包含由這些硬碟提供的許多PE。
>從這個卷組,PE可以配置設定給一個。。。
邏輯卷 Logical Volume (LV)
Yes,我們最終到達某處。一個邏輯卷是我們工作的最終結果,這裡是我們存儲資訊的地方。這等同于傳統分區的想法。
象用通常的分區一樣,在邏輯卷上你能代表性的建立一個。。。
檔案系統 Filesystem
檔案系統是你想它成為的形态:标準的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。。。對Linux核心來說,在通常的分區和邏輯卷之間沒有差别。
我試着畫了一個ASCII圖來使這些形象化。
一個實體卷,包含了許多實體分區:
+-----[ Physical Volume ]------+
| PE | PE | PE | PE | PE | PE |
+------------------------------+
一個卷組,包含了2個實體卷(PV)有6個實體分區:
+------[ Volume Group ]-----------------+
| +--[PV]--------+ +--[PV]---------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +--------------+ +---------------+ |
+---------------------------------------+
我們現在做更進一步擴充:
| +--[PV]--------+ +--[PV]---------+ |
| +--+---+---+---+ +-+----+----+---+ |
| | | | +-----/ | | |
| | | | | | | |
| +-+---+---+-+ +----+----+--+ |
| | Logical | | Logical | |
| | Volume | | Volume | |
| | | | | |
| | /home | | /var | |
| +-----------+ +------------+ |
+---------------------------------------+
---true64------
*磁盤媒體Disk Media,顯示為DM,對應于實體硬碟或其的一個分區。
*細分磁盤SubDisk,顯示為SD,是在磁盤媒體上對空間作進一步細分。
*卷束Plex,顯示為PL,建立在SD上,多個卷束可以構成鏡像卷或RAID5卷。
*邏輯卷Volume,顯示為V,用于建立檔案系統或被資料庫使用。
*磁盤組 Disk Group,顯示為DG,磁盤組包括所有關于邏輯卷的定義和空間。
*檔案系統 File System:在邏輯卷的基礎上,可建立檔案系統,然後MOUNT到一個目錄下,這樣就可以檔案存取的方式來使用這塊硬碟了。當然,也可以不建檔案系統,而直接把Volume當作裸裝置,以TRUNK方式來存取資料,許多資料庫都是用這種方式存取資料。
----------------hp unix 邏輯卷管理------------
明确了上述概念,我們再來進一步了解在HP-UX下正确使用硬碟的順序及相應指令:
1. 先建實體卷:
操作如下:pvcreate -f /dev/rdsk/cCdDtT
需要注意的是這裡必須使用硬碟的字元裝置檔案
2. 再建邏輯卷組:
# mkdir /dev/vg0X X:0_f,邏輯卷組名
# mknod /dev/vg0X/group c 64 0x0X0000
# vgcreate vg0X /dev/dsk/cCdDtT
3. 然後劃分邏輯卷:
# lvcreate -L size vg0X
size:該邏輯卷大小
4. 在LV上建檔案系統:
# newfs -F file_system_type /dev/vg0X/rlvolY
file_system_type:檔案系統類型,包括hfs和vxfs,注意此時用該邏輯卷的字元裝置檔案。
5. 将此檔案系統Mount到一個目錄下:
# mkdir /directory
# mount /dev/vg0X/lvolY /directory
操作截至到這裡,已經可以使用這個硬碟了。但有時可能在現有的環境下,需要添加、删除邏輯卷,或者是需要擴大檔案系統。我們可以這樣做:
1. 添加邏輯卷
1)添加檔案系統卷。例如:在vg01上添加一個200M的檔案系統卷,卷名為data,mount到目錄/sample 上。
A、建立邏輯卷,在系統提示符下鍵入指令:
# lvcreate -L 200 -n data /dev/vg01
B、在邏輯卷data上建立檔案系統:
# newfs -F hfs /dev/vg01/rdata
注意:如果是vxfs檔案系統,則用# newfs -F vxfs /dev/vg01/rdata
C、建立目錄/sample,并将邏輯卷data mount 到/sample.
# mkdir sample”
# mount /dev/vg01/data /sample
D、用bdf指令,将會看到/dev/vg01/data mount 到 /sample上。
2) 添加非檔案系統卷(raw data volume)。仍讓我們以上述操作為例。
B、建立目錄/sample,并将邏輯卷data mount 到/sample.
# mkdir sample
C、用bdf指令,将會看到/dev/vg01/data mount 到 /sample上。
2. 删除邏輯卷
例如:删除 vg01 中名為 data 的邏輯卷,mount 到/sample。
1) 解除安裝所要删除的邏輯卷:
A、首先用 umount 指令将邏輯卷 data 從/sample上解除安裝下來:
# umount /sample
B、若系統提示裝置忙,不能解除安裝;則在根目錄系統提示符下,鍵入以下指令,進入單使用者:
# shutdown -y 0
在單使用者下,先将所有邏輯卷mount上,鍵入指令:
# mount -a
用bdf指令看該邏輯卷是否已經mount上,如果mount上,鍵入以下指令:
2) 删除邏輯卷 /dev/vg01/data ,用指令:
# lvremove /dev/vg01/data
3. 擴大檔案系統
1) 擴大檔案系統,首要任務是要找到這個檔案系統所對應的邏輯卷。隻有首先擴大邏輯卷,給檔案系統以足夠大的空間,才能擴大檔案系統。
2) 為擴大邏輯卷,先進單使用者,在根目錄系統提示符下,鍵入指令:
# shutdown -y 0
3) 進入單使用者後,先将所有檔案系統mount上,鍵入指令:# mount -a
4) 用bdf指令看該檔案系統是否已經mount上,如果mount上,用指令 #umount檔案系統名umount該檔案系統。例如,想要擴大“/usr”到500M ,就鍵入指令:
# umount /usr
5) 用指令: # lvextend -L 500 /dev/vg00/lvol4
這裡,假定 /usr 對應 /dev/vg00/lvol4
6) 用指令:
# extendfs /dev/vg00/lvol4 擴大檔案系統。
注意:如果是vxfs檔案系統,則用
# extendfs -F vxfs /dev/vg00/lvol4
7) 用指令:
# mount /dev/vg00/lvol4 /usr
将檔案系統 mount 到 /usr
這樣,檔案系統“/usr”就被擴大了,
8) 用指令:
# init 3 進入原來多使用者運作級。
4. UNIX 的檔案系統
UNIX的檔案系統是樹狀結構,一般指在一個邏輯卷上的檔案的集合。從根部開始,在表面上看,檔案系統好象是一個整體,但實際上,檔案系統可以分成不同的部分,單獨占據一塊邏輯卷,就是一個檔案系統。
------------AIX--------------------------------------------
aix的lvm
AIX中邏輯存儲的限制
卷組(VG) 255個/每個系統
實體卷(PV)32個/每個卷組
實體分區(PP)1016個/每個實體卷
邏輯卷(LV)256個/每個卷組
邏輯分區(LP)32512個/每個邏輯卷
AIX系統邏輯卷:
Paging Space:/dev/hd6,用于存儲虛拟記憶體中資訊的固定的磁盤空間
Journal Log:/dev/hd8,用于記錄系統中檔案系統結構的改變
Boot LV:/dev/hd5,用于系統啟動映象的實體上連續的磁盤空間
AIX系統檔案系統:
/(root):系統啟動程序所需的重要的系統裝置資訊及應用程式的存儲空間
/usr:/dev/hd2,系統指令、資訊庫以及應用程式的存儲空間
/var:/dev/hd9var,系統的日志檔案和列印資料檔案的存儲空間
/home:/dev/hd1,系統中使用者資料的存儲空間
/tmp:/dev/hd3,系統臨時檔案和使用者工作的存儲空間
LVM操作指令:
# lsvg [–o | –l | –p] [VG_Name]檢視系統中VG的資訊
-o:檢視系統中活動的VG清單
-l:檢視屬于指定VG的LV的資訊
-p:檢視屬于指定VG的PV的資訊
如:# lsvg –o | lsvg –i –l
檢視系統中屬于活動VG的LV的資訊
注意:當用# lsvg –p VG_Name指令檢視屬于指定VG的PV資訊時,系統将給出VG中每
個PV上的空閑PP的分布情況(FREE DISTRIBUTION)。如:
# lsvg –p rootvg
rootvg:
PV_NAMEPV_STATETOTAL PPsFREE PPsFREE DISTRIBUTION
hdisk0active1595224..00..00..00..28
hdisk1active1597832..02..00..12..32
FREE DISTRIBUTION的含義如下:
外部邊界..外部中間..中心..内部中間..内部邊界
outer edge..outer middle..center..inner middle..inner edge
# lslv [–l | –m] [LV_Name]檢視系統中LV的資訊
-l:檢視屬于指定LV的LP的配置設定方式(intra-physical volume)
-m:檢視指定LV中的LP與PP之間的映射關系(inter-physical volume)
注意:當用# lslv –l lv00指令檢視屬于指定LV的資訊時,系統将給出指定LV的LP數
及其拷貝數,符合内部實體卷(intra-physical volume)配置設定方針的PP所占整個
LV包含PP數的比例,以及PP在每個PV上的分布情況(DISTRIBUTION)。
如: # lslv –l lv00
lv00:/home/john
PVCOPIESIN BANDDISTRIBUTION
hdisk0010:000:00030%000:000:007:003:000
COPIES的含義如下:
第一個拷貝所占的PP數:第二個拷貝所占的PP數:第三個拷貝所占的PP數
010:000:000
IN BIND的含義如下:
符合内部實體卷配置設定方針的PP數占整個LV的PP數的比例
30%
DISTRIBUTION的含義如下:
# lspv [–l | –p] [PV_Name]檢視系統中PV的資訊
-l:檢視指定PV上的所有LV的資訊
-p:檢視指定PV上所有LP與PP之間的映射關系
# mkvg –y VG_Name [–s PP_Size | –n] PV_Name建立新的VG
-y VG_Name:指定新建立的VG名
-s PP_Size:指定VG中的PP的大小(預設為4MB(PV的大小小于4.5GB))
-n:指定系統啟動時不激活新建立的VG
如:建立一包含三個PV的PP大為4MB的VG
# mkvg –s 4 –y newvg hdisk1 hdisk2 hdisk3
# chvg –a n[y]VG_Name更改VG的啟動特性
-a n[y]:更改系統啟動時不自動激活VG(-a n)或自動激活VG(-a y)
# extendvg –f VG_Name PV_Name擴充VG的大小
-f:強制将原屬于其他VG的PV加入此VG
# reducevg [–d] VG_Name PV_Name縮小VG的大小
-d:強制将此VG中的PV移出此VG
注意:AIX中沒有删除VG的指令,欲删除一個VG,隻要将此VG中的PV全部移除即可。
# reorgvg VG_Name LV_Name [LV_Name]重新安排VG中LV的配置設定政策
注意:為了改善系統中磁盤的性能,可以将使用頻繁的LV放在VG的中心。
# varyonvg [–s] VG_Name激活一個VG
-s:将VG置為系統管理模式(不允許使用者通路此VG)
# varyoffvg [–s] VG_Name關閉一個VG
注意:當從系統中移出一個VG時,應先使用此指令關閉VG。
使用此指令時,VG上的所有LV(系統LV除外)都應處于關閉狀态。
# importvg –y VG_Name –f PV_Name接入一個VG
-y VG_Name:指定欲接入的VG名
-f PV_Name:指定任一屬于欲接入VG的PV名
# exportvg VG_Name輸出一個VG
注意:将一個VG從系統A移至系統B的正确步驟為:
系統A:# umount all
# varyoffvg VG_Name
# exportvg VG_Name
系統B:# impoertvg –y VG_Name –f PV_Name
# varyonvg VG_Name
# rmlv [–f] LV_Name删除一個LV
-f:不要求使用者确認直接删除LV
注意:不要删除一個還包含有JFS的LV或Paging Space邏輯卷。
正确的步驟為:先用SMIT将LV中的JFS删除,再删除LV。
# chlv –n New_LV_Name更換LV的名字
# migratepv [–l LV_Name] Source_PV Target_PV将一個PV上的資料移至另一個PV
-l LV_Name:指定欲遷移的LV名
注意:遷移PV上的資料時,要求目标PV(Target_PV)的大小大于源PV(Souce_PV),
且目标PV與源PV必須在同一個VG中。
注意:當增加一個LV的拷貝數(增加LV的鏡像)時,必須用# syncvg指令使LV及其拷
貝同步(同步鏡像)。
FS的管理:
JFS的結構:超級塊(Superblock)、I節點(inodes)、資料塊(間接塊)。
超級塊中包含FS的大小、辨別、空閑空間清單、磁盤片段(Fragment)大小
以及nbpi(決定FS中inodes的數目)。
I節點中包含檔案的大小、檔案所有者、檔案的權限、檔案的建立和通路的
時間以及指向資料塊的指針。
資料塊中包含實際的資料,預設大小為4KB。(間接塊中包含指向資料塊的
指針)。
注意:超級塊(Superblock)的備份放在塊31(Block 31)用于超級塊的恢複。
磁盤片段(Fragment)用于将資料塊分割成更小段,以充分利用資料塊的空間。但
是采用磁盤片段會影響系統的性能。AIX可以采用的磁盤片段大小為:512、1024、
2048、4096 Bytes。