在Linux當中添加LVM邏輯卷

  

LVM概述

LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。

LVM的工作原理其實很簡單,它就是通過將底層的物理硬盤抽象的封裝起來,然後以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對於分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。比如說我增加一個物理硬盤,這個時候上層的服務是感覺不到的,因爲呈現給上層服務的是以邏輯卷的方式。

LVM最大的特點就是可以對磁盤進行動態管理。因爲邏輯卷的大小是可以動態調整的,而且不會丟失現有的數據。如果我們新增加了硬盤,其也不會改變現有上層的邏輯卷。作爲一個動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性。


基本的邏輯卷管理概念:

PV(Physical Volume)- 物理卷
物理卷在邏輯卷管理中處於最底層,它可以是實際物理硬盤上的分區,也可以是整個物理硬盤。


VG(Volumne Group)- 卷組
卷組建立在物理卷之上,一個卷組中至少要包括一個物理卷,在卷組建立之後可動態添加物理捲到卷組中。一個邏輯卷管理系統工程中可以只有一個卷組,也可以擁有多個卷組。


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

                

LVM的管理命令

LVM管理命令主要分爲三大類:PV物理卷管理、VG卷組管理、LV邏輯卷管理,對應的命令程序文件分別以"pv"、"vg"、"lv"開頭,如下表所示:

功能                 PV管理命令            VG管理命令       LV管理命令

scan 掃描          pvscan                   vgscan              lvscan
create 創建       pvcreate                vgcreate            lvcreate
display 顯示      pvdisplay              vgdisplay           lvdisplay
remove 移除     pvremove              vgremove          lvremove
extend 擴展    
vgextend    lvextend
reduce 減少    
vgreduce    lvreduce


PV物理卷管理

pvscan命令:用於掃描系統所有物理卷,並輸出相關信息

pvcreare命令:用於將分區或整個硬盤轉換成物理卷

例如:把分區 /dev/sdb1、/dev/sdb2 轉換成物理卷
 #    pvcreate    /dev/sdb1   /dev/sdb2

pvdisplay命令:用於顯示物理卷的詳細信息,需要指定物理卷作爲命令參數

  #     pvdisplay    /dev/sdb1

pvremove命令:用於將物理卷還原成普通分區或磁盤,不在屬於LVM體系

  #     pvremove     /dev/sdb1


VG卷組管理

vgscan命令:用於掃描系統以建立的LVM卷組及相關信息

vgcreare命令:用於將一個或多個物理卷創建成一個卷組

例如:使用物理卷 /dev/sdb1、/dev/sdb2 創建名爲 ysf 的卷組

#    vgcreate      ysf      /dev/sdb1   /dev/sdb2

vgdisplay命令:用於顯示各卷組的詳細信息,需要指定卷組名作爲命令參數

  #    vgdisplay    ysf

pvremove命令:用於刪除指定的卷組,需要指定卷組名作爲命令參數

 #     vgremore    ysf

vgextend命令:用於擴展卷組的磁盤空間

例如:將物理卷 /dev/sdb3 添加到卷組 ysf 中

#    vgextend      ysf      /dev/sdb3


LV邏輯卷管理

lvscan命令:用於掃描系統中已建立的邏輯卷及相關信息

lvcreare命令:用於從指定的卷組中分割空間,以創建新的邏輯卷

基本格式:lvcreare    -L   容量大小   -n    邏輯卷名    卷組名

例如:在卷組 ysf 中建立一個新的邏輯卷,容量爲8GB,名稱爲 yang#    lvcreate    -L   8G   -n   yang        ysf

lvdisplay命令:用於顯示邏輯卷的詳細信息,需要指定邏輯卷的設備文件作爲命令參數

#     pvdisplay    /dev/ysf/yang

lvextend命令:用於動態擴展邏輯卷的磁盤空間

   基本格式:lvextend    -L  +容量大小   /dev/ 卷組名 / 邏輯卷名

例如:爲 ysf 邏輯卷擴展10GB的磁盤空間,並使用 resize2fs 命令重設大小

lvextend    -L  +10G       /dev/ysf/yang

resize2fs     /dev/ysf/yang

lvremove命令:用於刪除指定的邏輯卷,需要指定邏輯卷的設備文件作爲命令參數

lvremove     /dev/ysf/yang

邏輯卷創建之後,使用 mkfs 命令對邏輯捲進行格式化,創建xfs文件系統,並掛載到 /maibox 目錄下

  #    mkfs    -t   xfs   /dev/ysf/yang     #    mount     /dev/ysf/yang        /maibox




    下面具體開始做實驗

    首先在VM虛擬機上給Linux添加3塊20G的硬盤一共60G

image.png

三塊20G的硬盤已經添加完成,接下來使用reboot命令重啓系統init 6也可以,如果不重啓系統系統將無法識別硬盤

image.png

使用cd /dev ;ls命令查看了dev目錄,確定新添加的三塊硬盤已經被識別

image.png



別識別之後還沒有分區還沒有格式化,首先要分區格式化使他們變成物理卷,使用fdisk /dev/sdb進入添加的第一塊硬盤的設置模式按n創建一個主分區接着直接一直回車把所以的空間都分配給分區1,最後查看已經生成分區1,20個G


image.png





接下來輸入t 更改分區的文件類型,LVM的文件類型是8e,輸入8e然後w退出


image.png



添加的第二塊磁盤跟第三塊磁盤也是一樣的操作


image.png

image.png




接下來輸入fdisk -l查看一下硬盤信息,確認已經設置完成

image.png




使用pvcreate /dev/sd{b..d}1命令把剛纔已經分配好的三塊硬盤成爲物理卷

image.png





使用pvscan命令查看物理卷情況,確定空閒未被使用的物理卷就是剛纔添加的三塊硬盤60個G

image.png




接下來使用vgcreate vg /dev/sd{b..d}1的命令創建一個名叫“vg”的卷組


image.png




使用vgdisplay命令查看一下就看到剛剛創建的卷組vg,每個物理卷由多個PE組成,而基本組成單位PE的大小是4M

image.png




接下來使用命令lvcreate -L 25G -n vg1 vg 創建一個邏輯卷,-L 25G的意思是指邏輯卷爲25G,而-n vg1是指它的邏輯卷的卷名


image.png





現在使用cd /dev; ls命令進入dev目錄並查看已經看到vg卷組的設備文件

image.png




接下來繼續使用lvcreate創建一個容量爲15G名字爲vg2的邏輯卷

image.png




接下來使用lvdisplay查看查看邏輯卷的詳細信息,看到剛纔的兩個邏輯卷都已經創建成功了

image.png



順便使用ls -l /dev/vg命令看看我們的vg1 跟vg2已經創建成功存在於dev目錄下的vg裏面

image.png

如果邏輯卷的容量不夠用了怎麼辦,這邊邏輯卷主要有一個彈性收縮的特點如果不想使用可以刪除,如果不夠使用的話可以隨時添加容量。這邊使用vextend -L +10G /dev/vg/vg1 給剛剛添加的vg1邏輯卷增加了10G 並使用lvdisplay查看

image.png

image.png

現在的邏輯卷已經添加完成,接下來必須要去格式化它才能使用。格式化命令mkfs -t xfs /dev/vg/vg1, mkfs -t xfs /dev/vg/vg2


image.png

image.png





格式化完成之後接下來要做的是創建兩個掛載點,並把創建的兩個邏輯卷掛載就可以使用了。如果想刪除邏輯卷的話直接使用lvremove命令就可以刪除指定的邏輯卷,需要指定邏輯卷的設備文件作爲命令參數

image.png




如果被掛載當中的邏輯卷添加了容量能不能使用呢?答案是可以的我們試一下。使用lvextend -L +2G /dev/vg/vg1給vg1的邏輯卷添加了2G的容量,顯示已經從原來的35G增長到了37Gimage.png

image.png



但是現在的系統還是無法識別到剛剛添加的2G,那怎麼辦呢

image.png


增加容量完成夠必須使用xfs_growfs ( xfs文件系統擴展命令)給它更新一下

image.png



更新完成後再使用df  -hT命令查看一下,就能看見容量已經從原來的35G增加成爲37G了

image.png



















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