Linux的邏輯卷管理(LVM)詳解

安裝Linux系統時,我們第一個考慮的可能是如何給磁盤分區。Linux的分區工具如fdisk和parted等很難甚至是無法改變分區大小,一旦以後磁盤空間使用殆盡,當我們插上新磁盤後,將會發現我們不得不重新分區格式化,當然之前的數據是必須要備份的,但是這其中仍然存在這數據丟失的風險,有沒有無需重新分區直接使用新加入磁盤的方法呢?LVM真是基於這樣的需求被設計出來的。

LVM(Logical Volume Manager)邏輯卷管理是建立在硬盤和分區之上,文件系統之下的一個邏輯層。注意:不建議將boot放在邏輯卷中。

LVM的工作原理其實很簡單,它就是通過將底層的物理硬盤抽象的封裝起來,然後以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對於分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。比如說我增加一個物理硬盤,這個時候上層的服務是感覺不到的,因爲呈現給上層服務的是以邏輯卷的方式。LVM最大的特點就是可以對磁盤進行動態管理。因爲邏輯卷的大小是可以動態調整的,而且不會丟失現有的數據。如果我們新增加了硬盤,其也不會改變現有上層的邏輯卷。作爲一個動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性。

wKioL1fD5WfSIVm0AAPSvB4UPQ0596.png

PV:物理卷,處於LVM的最底層,他可以是實際的硬盤、分區或raid設備。和基本的物理存儲介質相比,其中包含有與LVM相關的管理參數。

VG:卷組,建立在物理卷之上,必須有至少一個物理卷,在卷組建立之後可以動態的添加新的物理捲來擴容。

PE:每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是在VG過程中配置的,默認爲4MB。

LV:邏輯卷,建立在卷組之上,卷組中的未分配空間可以用於建立新的邏輯卷,邏輯卷建立後可以動態地擴展和縮小空間。系統中的多個邏輯卷可以屬於同一個卷組,也可以屬於不同的多個卷組。

PV管理工具:

pvs:顯示簡要的pv信息,pvdisplay:顯示較詳細的pv信息

pvscan:掃描並瀏覽所有的pv

pvchange:改變pv的屬性

pvck:檢查pv的元數據信息

pvmove:移動PE

pvremove:移除pv卷

pvresize:改變pv的大小

pvcreate /dev/DEVICE:創建pv

[root@linux ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@linux ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
[root@linux ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb        lvm2 ---- 20.00g 20.00g
  /dev/sdc        lvm2 ---- 20.00g 20.00g
[root@linux ~]# pvdisplay 
  "/dev/sdb" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               mNZepm-JrpU-4eRX-Hqis-mwXq-ZJFW-or9S2t
   
  "/dev/sdc" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               P2fwdI-2eCR-rgwO-RnUA-4Wh1-62qT-B035Zz

VG管理工具

顯示卷組:vgs,vgdisplay

創建卷組:vgcreate

選項:

-s:指定PE的大小,

-l:給該vg設置最大的lv數,可通過vgchange修改,lvm1默認最大爲255個,lvm2則沒有限制

[root@linux ~]# vgcreate IT /dev/sd{b,c}
  Volume group "IT" successfully created
[root@linux ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  IT     2   0   0 wz--n- 39.99g 39.99g
[root@linux ~]# vgdisplay
  --- Volume group ---
  VG Name               IT
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               TxjZPe-CbN8-Edj3-EHE3-8g3G-cplW-7QFcTw
   
[root@linux ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb   IT   lvm2 a--u 20.00g 20.00g
  /dev/sdc   IT   lvm2 a--u 20.00g 20.00g

vgcfgbackup:備份vg的元數據信息

vgrename:改變vg名

vgsplit:將源vg中pv移到其他vg中

vgreduce:縮減vg大小

vgextent:擴展vg大小

vgremove:移除vg

LV管理工具

lvcreate:創建lv

選項:

-n:設置lv的名字

-L:指定lv的大小

-s:創建lv的快照,後面接源lv的路徑或名字

lvs/lvdisplay:顯示lv的信息

lvremove:移除lv

lvextent:擴展lv

lvreduce:縮減lv





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章