邏輯卷管理器(LVM)

1、什麼是LVM?

LVM(Logical Volume Manager)邏輯卷管理是在Linux2.4內核以上實現的磁盤管理技術。它是Linux環境下對磁盤分區進行管理的一種機制。如今不只僅是Linux系統上可使用LVM這種磁盤管理機制,對於其它的類UNIX操做系統,以及windows操做系統都有相似與LVM這種磁盤管理軟件。
LVM的工做原理其實很簡單,它就是經過將底層的物理硬盤抽象的封裝起來,而後以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,咱們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其經過對底層的硬盤進行封裝,當咱們對底層的物理硬盤進行操做時,其再也不是針對於分區進行操做,而是經過一個叫作邏輯卷的東西來對其進行底層的磁盤管理操做。好比說我增長一個物理硬盤,這個時候上層的服務是感受不到的,由於呈現給上次服務的是以邏輯卷的方式。 windows

2、LVM的優缺點

1.優勢服務器

①.能夠在系統運行的狀態下動態的擴展文件系統的大小。
在Linux操做系統中咱們的磁盤管理機制和Windows上的都差很少,絕大多數都是使用MBR(Master Boot Recorder)都是經過先對一個硬盤進行分區,而後再將該分區進行文件系統的格式化,在Linux系統中若是要使用該分區就將其掛載上去便可,windows的話其實底層也就是自動將全部的分區掛載好,而後咱們就能夠對該分區進行使用了。
可這樣作的話會帶來不少問題,好比咱們使用的一個分區所剩空間大小已經不夠使用了,這個時候咱們無法對分區進行擴充,咱們只能經過增長硬盤,而後在新的硬盤上建立分區,對分區進行格式化,而後將以前分區的全部東西都拷貝到新的分區裏面才行。可是新增長的硬盤是做爲獨立的文件系統存在的,原有的文件系統並無獲得任何的擴充,上層應用只能訪問到一個文件系統。這樣的方式對我的的電腦來講可能還能接受,可是若是對於生產環境下的服務器來講,這是不可接受的。由於若是要把一個分區的內容都拷貝到另外一個分區上去,勢必要首先卸載掉以前的那個分區,而後再對整個分區進行拷貝,若是服務器上運行着一個重要的服務,要求是 7*24 小時運行正常的,那麼卸載掉分區這是不可想象的,同時若是該分區保存的內容很是很是的多,那麼在對分區進行轉移時時間可能會耗費好久,因此,這個時候咱們就會受到傳統磁盤管理的限制,由於其不可以進行動態的磁盤管理。所以,爲了解決這個問題,LVM技術就誕生了!這也是LVM最大的優勢。ide

②.文件系統能夠跨多個磁盤,所以文件系統大小不會受物理磁盤的限制。
③.能夠增長新的磁盤到LVM的存儲池中。
④.能夠以鏡像的方式冗餘重要的數據到多個物理磁盤。
⑤.能夠方便的導出整個卷組到另一臺機器。
2.缺點性能

①.在從卷組中移除一個磁盤的時候必須使用reducevg命令(這個命令要求root權限,而且不容許在快照卷組中使用)。
②.當卷組中的一個磁盤損壞時,整個卷組都會受到影響。
③.由於加入了額外的操做,存貯性能受到影響。操作系統

3、LVM的用法

1.名詞解釋3d

邏輯卷管理器(LVM)
如圖所示就是LVM的基本組成
PV(Physical Volume):物理卷,處於LVM最底層,能夠是物理硬盤或者分區。
PP(Physical Extend):物理區域,PV中能夠用於分配的最小存儲單元,能夠在建立PV的時候制定(默認爲4MB),如1M, 2M, 4M, 8M, 32M, 64M…組成同一VG中全部PV的PE大小應該相同。
VG(Volume Group):卷組,創建在PV之上,能夠含有一個到多個PV。
LV(Logical Volume):邏輯卷,創建在VG之上,至關於原來分區的概念。不過大小能夠動態改變。
2.LVM的建立
①.首先咱們要建立兩個分區爲接下來的LVM作準備,在這裏我添加了一塊空硬盤sdb,在上面建立了兩個分區sdb1和sdb2各500M。
邏輯卷管理器(LVM)
②.用pvcreate命令在新建的分區上建立PV
邏輯卷管理器(LVM)
在這裏是由於這兩個分區以前被格式化爲ext4系統了,因此這裏要把它變爲邏輯卷鬚要輸入Y確認更改
建立完後咱們能夠用pvs查看或者pvdisplay查看詳細信息
邏輯卷管理器(LVM)
邏輯卷管理器(LVM)
由於在這以前我作過一次LVM因此我這裏有好幾個PV卷組,而像上圖中用pvs命令查看時咱們發現咱們新創的PV卷組和之前建立的有點不一樣,它們的Attr部分不同,這是由於咱們新建立的PV卷組尚未激活,a---表示已激活的pv卷組。VG那一欄是所屬的VG組,由於咱們尚未劃分VG組,因此這一欄也是空。
③.使用vgcreate命令建立一個VG組,並將咱們建立的兩個PV加入VG組
邏輯卷管理器(LVM)
一樣咱們也是用vgsvgdisplay命令查看卷組信息及詳細信息
邏輯卷管理器(LVM)
vgdisplay後跟卷組名能夠只查看這個卷組的詳細信息,不跟卷組名是查看全部卷組的詳細信息。
這裏咱們看到咱們創好的vg卷組PE大小爲4MiB,這是PE的默認大小,PE是卷組的最小儲存單位,咱們也能夠用-s參數來修改,不過這隻能才建立卷組時使用,一旦卷組建立成功是無法再去修改PE大小的。
④.使用lvcreate命令從VG中建立一個邏輯卷
邏輯卷管理器(LVM)
這裏咱們使用-L參數後跟的是你要設定的邏輯卷大小,這個大小必須是是你設定的PE值的整數倍,若是不是它會給你分一個比你設定的大一點的空間也就是向上去整數倍空間。也可使用-l但後面跟的就是PE數量像上個步驟中咱們劃分的卷組PE值爲4MiB,數量爲254,咱們也可使用-l跟數量,那劃分的邏輯卷大小就爲4x你劃分的數量MiB。
通常用大L 指定大小,弊端就是有可能用不完vg裏面的空間
用小 l,-l 127, 127 個PE ,弊端是須要計算,好比一個PE 4M 127x4M=508M 可是不會出現用不完vg的空間的狀況
-n參數後跟邏輯卷名字,是對建立的卷組命名,最後跟的是卷組名。
邏輯卷的查看命令也是lvslvsdisplay
邏輯卷管理器(LVM)
這裏lvdisplay後跟卷組是查看這個卷組的詳細信息,只輸入lvdisplay是顯示全部邏輯卷的詳細信息
⑤.咱們使用mkfs命令對建立的卷組進行格式化
邏輯卷管理器(LVM)
⑥.Linux下的文件系統須要被掛載後才能使用,咱們建立一個空目錄,再把建立好的邏輯卷掛載上就可使用了。
邏輯卷管理器(LVM)
要想實現開機自動掛載能夠寫在fstab表裏
3.LVM的擴容與縮小
①.邏輯卷的擴容
LVM的強大之處不僅是它能夠擴容壓縮,更重要的是它能夠支持在線擴容,但咱們首先要保證VG中有足夠的空閒空間。
咱們使用lvextend命令來對邏輯捲進行擴容
邏輯卷管理器(LVM)
咱們先使用vgs查看VG所剩空間是否充足,接着再對lv1進行擴容。-L參數和建立卷組的-L參數一個性質,後面都是直接跟大小,不過這裏要注意+100M是增長100M空間,若是不跟+是擴容到指定的大小,同理若是使用-l參數後,後面跟的就是要增長多少PE值。最後跟的是想要擴容的邏輯卷。
擴容後咱們查看一下邏輯卷的大小,確實變成了300M
邏輯卷管理器(LVM)
但這個時候咱們用df-h命令查看一下發現掛載的文件系統並無增大,這就須要咱們使用resize2fs命令手動同步一下文件系統,其實咱們有更簡單的操做,就是在擴容的同時加上-r參數他會自動擴展文件系統大小,像這樣
邏輯卷管理器(LVM)
邏輯卷管理器(LVM)
②.卷組的擴容
若是咱們發現卷組所剩空間已將不能知足需求了,這時候咱們就須要使用vgextend命令對卷組進行擴容
咱們先添加一塊硬盤sdc
邏輯卷管理器(LVM)
在虛擬機中這個時候咱們一般須要重啓,這裏咱們可使用echo "- - -" > /sys/class/scsi_host/host0/scan命令讓系統從新掃描SCSI總線來添加設備,由於添加的是SCSI磁盤,因此掃描的是SCSI總線
邏輯卷管理器(LVM)
首先將要添加的硬盤格式化爲PV
邏輯卷管理器(LVM)
再將新的PV添加到指定的卷組中去
邏輯卷管理器(LVM)
咱們能夠看到vg卷組大小已經改變了。
②.邏輯卷的縮減
邏輯卷擴容能夠在線操做可是縮減必須是離線執行,須要先卸載已掛載的邏輯卷。
[root@localhost ~]# umount /disk1/
擴容邏輯卷咱們是先擴大邏輯卷再擴大文件系統,而縮小邏輯卷就須要咱們反着來,咱們要先縮小文件系統,再去縮小邏輯卷
邏輯卷管理器(LVM)
縮小文件系統前咱們要先對文件系統作個掃描檢測,若是咱們直接使用resize2fs系統會提示讓你先對文件系統進行檢測,這是爲了保護縮減文件系統時不對數據損害。
接着咱們再來縮減邏輯卷code

邏輯卷管理器(LVM)
注意:文件系統大小和邏輯卷大小必定要保持一致才行。若是邏輯卷大於文件系統,因爲部分區域未格式化成文件系統會形成空間的浪費。
咱們能夠看到邏輯卷已經縮小了,接着咱們再來掛載看看文件系統大小
邏輯卷管理器(LVM)
咱們能夠看到文件系統也變小了
縮小卷組
咱們能夠用vgreduce去縮小VG卷組的大小
邏輯卷管理器(LVM)
縮小VG卷組也就是把一個PV從卷組中移除,但咱們要先確定PV中沒有數據,否則就會形成數據的丟失
邏輯卷管理器(LVM)
接着咱們可使用pvremove命令移除PV,這樣就讓分區又從新變成了普通分區。blog

4、總結

下面咱們就對整個LVM的工做原理進行個總結:
1.物理磁盤被格式化爲PV,空間被劃分爲一個個的PE
2.不一樣的PV加入到同一個VG中,不一樣PV的PE所有進入到了VG的PE池內
3.LV基於PE建立,大小爲PE的整數倍,組成LV的PE可能來自不一樣的物理磁盤
4.LV如今就直接能夠格式化後掛載使用了
5.LV的擴充縮減實際上就是增長或減小組成該LV的PE數量,若是操做正確其過程不會丟失原始數據
PS:咱們實際生產操做中不多用到邏輯卷的縮減,由於縮減很容易就會形成數據損壞,這是得不償失的,因此咱們不推薦對邏輯捲進行縮減。rem

相關文章
相關標籤/搜索