天天看點

UNIX 邏輯卷

一個邏輯卷[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。