LVM簡介
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4核心上實作。LVM将一個或多個硬碟的分區在邏輯上集合,相當于一個大硬碟來使用,當硬碟的空間不夠使用的時候,可以繼續将其它的硬碟的分區加入其中,這樣可以實作磁盤空間的動态管理,相對于普通的磁盤分區有很大的靈活性。與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理者可以更友善的為應用與使用者配置設定存儲空間。在LVM管理下的存儲卷可以按需要随時改變大小與移除(可能需對檔案系統工具進行更新)。LVM也允許按使用者組對存儲卷進行管理,允許管理者用更直覺的名稱(如"sales'、 'development')代替實體磁盤名(如'sda'、'sdb')來辨別存儲卷。
由四個磁盤分區可以組成一個很大的空間,然後在這些空間上劃分一些邏輯分區,當一個邏輯分區的空間不夠用的時候,可以從剩餘空間上劃分一些空間給空間不夠用的分區使用。
LVM基本術語
前面談到,LVM是在磁盤分區和檔案系統之間添加的一個邏輯層,來為檔案系統屏蔽下層磁盤分區布局,提供一個抽象的存儲卷,在存儲卷上建立檔案系統。首先我們讨論以下幾個LVM術語:
*實體存儲媒體(PhysicalStorageMedia)
指系統的實體儲存設備:磁盤,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。
*實體卷(Physical Volume,PV)
指磁盤分區或從邏輯上與磁盤分區具有同樣功能的裝置(如RAID),是LVM的基本存儲邏輯塊,但和基本的實體存儲媒體(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
*卷組(Volume Group,VG)
類似于非LVM系統中的實體磁盤,其由一個或多個實體卷PV組成。可以在卷組上建立一個或多個LV(邏輯卷)。
*邏輯卷(Logical Volume,LV)
類似于非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立檔案系統(比如/home或者/usr等)。
*實體塊(Physical Extent,PE)
每一個實體卷PV被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編号的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,預設為4MB。是以實體卷(PV)由大小等同的基本單元PE組成。
*邏輯塊(Logical Extent,LE)
邏輯卷LV也被劃分為可被尋址的基本機關,稱為LE。在同一個卷組中,LE的大小和PE是相同的,并且一一對應。
上圖所示LVM抽象模型,展示了PV、VG、LV三者之間關系:
和非LVM系統将包含分區資訊的中繼資料儲存在位于分區的起始位置的分區表中一樣,邏輯卷以及卷組相關的中繼資料也是儲存在位于實體卷起始處的VGDA(卷組描述符區域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
系統啟動LVM時激活VG,并将VGDA加載至記憶體,來識别LV的實際實體存儲位置。當系統進行I/O操作時,就會根據VGDA建立的映射機制來通路實際的實體位置。
LVM磁盤擴容操作執行個體
1)檢視磁盤資訊
[root@localhost ~]# df -h
2)使用fdisk -l指令檢視系統上的硬碟
[root@localhost ~]# fdisk -l
PS:這裡采用/dev/sdb磁盤
3)建立分區
[root@localhost ~]# fdisk /dev/sdb
準備工作就緒
4)建立PV
[root@localhost ~]# pvcreate /dev/sdb1
5)檢視PV
[root@localhost ~]# pvdisplay
還可以使用指令pvs 和pvscan 檢視簡略資訊。
[root@localhost ~]# pvs
[root@localhost ~]# pvscan
1、擴容VG
1)檢視VG情況
[root@localhost ~]# vgs
2)擴容centos(VG名稱)
[root@localhost ~]# vgextend centos /dev/sdb1
說明:centos是原來建立的VG裝置的名稱,後面接上述的裝置名
3)檢視vg的資訊
[root@localhost ~]# vgdisplay
注:這裡已經把VG Size從19G擴容到38.99G,VG擴容成功
說明:
VG Name //VG的名稱
VG Size //VG的總大小
PE Size //PE的大小,預設為4MB
Total PE //PE的總數量,2047 x 4MB = 8.00GB
Free PE / Size //剩餘空間大小
同樣可以使用指令vgs 和vgscan 檢視。
[root@localhost ~]# vgs
[root@localhost ~]# vgscan
2、擴容LV
1)檢視LV的資訊
[root@localhost ~]# lvdisplay
說明:這裡預設分了兩個邏輯卷,這裡我們擴容/dev/centos/root
說明:
LV Path //LV的路徑,全名
LV Name //LV的名字
VG Name //所屬的VG
LV Size //LV的大小
2)LV擴容
[root@localhost ~]# lvextend /dev/centos/root /dev/sdb1
注:LV Size從17G增加到了36.99G
6)寫入檔案系統,使擴容生效。
[root@localhost ~]# xfs_growfs /dev/centos/root
注:如果是ext4檔案系統,可以使用resize2fs指令替換xfs_growfs指令。
7)驗證擴容結果
至此,LVM擴容成功。