【個人Linux,我作主!】邏輯卷管理LVM的原理與實現方式

今天咱們來了解一下LVM的概念、做用以及使用方法,幫助你們瞭解LVM,並可以使用LVM對您的磁盤系統進行靈活的配置和管理。
一,什麼是LVM
LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是對磁盤分區進行管理的一種機制,簡歷在磁盤和分區之上的一個邏輯層,用來提升磁盤管理的靈活性。經過LVM能夠將若干個磁盤分區鏈接爲一個整塊的卷組(Volume Group),造成一個存儲池。能夠在卷組上隨意建立邏輯卷(Logical Volume),並進一步在邏輯捲上建立文件系統,與直接的物理存儲在管理上相比,提供了更好的靈活性。
LVM本質上是一個虛擬的設備驅動,處於物理設備和文件系統層之間,維護這個邏輯盤區和物理盤區之間的映射。LVM主要是經過DM技術實現的,即Device mapper設備映射技術。
【個人Linux,我作主!】邏輯卷管理LVM的原理與實現方式
Device Mapper Kernel Architecture即DM設備映射的內核架構,其中DM支持的技術比較廣,包含linear線性連接,相似於JBod技術,能夠將多個磁盤組織成一塊磁盤使用;還有mirror鏡像技術,能夠實現數據的備份;snapshot即快照卷技術,能夠將系統以前某一時刻保存下來,等後續若是系統出現錯誤,須要恢復,即可以使用快照來恢復;multipath多路徑可讓服務器有多條線路傳輸數據,當一條線路出現問題後,系統仍然能夠經過其餘線路順利的進行數據的傳輸。
二,LVM的優勢
LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外與硬件相關的存儲設置會被其隱藏,能夠不中止應用或卸載文件系統就能直接調整卷大小和數據遷移,減小操做成本。LVM與直接使用物理存儲相比,有如下優勢:
(1)靈活的容量
當使用邏輯卷時,文件系統能夠擴展到多個磁盤上,你能夠聚合多個磁盤或磁盤分區成單一的邏輯卷。
(2)可伸縮的存儲池
你可使用簡單的命令來擴大或縮小邏輯卷大小,不用從新格式化或分區磁盤設備。
(3)在線的數據分配
你能夠在線移動數據,數據能夠在磁盤在線的狀況下從新分配。
(4)便捷的設備命名
邏輯卷能夠按你以爲方便的方式來起任何的名稱。
(5)鏡像卷
LVM邏輯卷提供方便的方法來鏡像你的數據。
(6)快照卷
使用邏輯卷,你能夠得到設備快照用來一致性備份或者測試數據更新效果而不影響真實數據。
三,基本概念
【個人Linux,我作主!】邏輯卷管理LVM的原理與實現方式
1,物理卷:PV(Physical Volume)
物理卷在邏輯管理中處於最底層,它能夠是實際物理磁盤上的分區,也能夠是整個物理磁盤,甚至能夠是RAID磁盤陣列。
2,卷組:VG(Volume Group)
卷組創建在物理卷之上,一個卷組中至少包括一個物理卷,在卷組簡歷以後能夠動態的擴展或縮小空間。
3,邏輯卷:LV(Logical Volume)
邏輯卷創建在卷組之上,卷組中的未分配空間能夠用於創建新的邏輯卷,邏輯卷創建後能夠動態的擴展或縮小空間。系統中的多個邏輯卷能夠屬於同一個卷組,也能夠屬於不一樣的多個卷組。
4,物理盤區:PE(Physical Extent)
物理盤區是物理卷中可用於分配的最小的存儲單元,物理盤區的大小可根據實際狀況在創建物理卷的時候指定。物理盤區大小一旦肯定將不能更改,同一卷組中全部物理的物理盤區大小都一致。
5,邏輯盤區:LE(Logical Extent)
邏輯盤區是邏輯卷中可用於分配的最小的存儲單元,邏輯盤區的大小取決於邏輯捲縮在卷組物理盤區的大小。
四,經常使用命令
PV
pvcreat,pvremove,pvscan,pvdisplay,pvmove
VG
vgvreat,vgremove,vgextend,vgreduce,vgs,vgdisplay,vgscan
LV
lvcreat,lvremove,lvextend,lvreduce,lvs,lvdisplay
五,LVM邏輯卷管理操做詳解
首先建立三個PV分區
#fdisk /dev/sda
n(新建分區)
+7G
n
+3G
n
+5G
t(調整分區類型)
10
8e(調整爲LVM類型)
t
11
8e
t
12
8e
w(保存退出)
#partprobe /dev/sda
解釋:重讀/dev/sda分區的信息
#cat /proc/partitions
解釋:查看是否有重讀分區信息後更新成功
#pvcreat /dev/sda{10,11}
解釋:建立物理卷sda10和sda11
#pvs
解釋:查看當前系統的PV信息
#pvdisplay /dev/sda10
解釋:查看sda10物理卷的詳細信息
#pvscan
解釋:掃描當前系統一共有多少個物理卷
建立VG卷組
#vgs
解釋:查看當前系統的卷組信息
#vgcreat myvg /dev/sda{10,11}
解釋:建立卷組,將sda10和sda11放到myvg的卷組中
#vgs
解釋:再來查看一下建立的卷組的信息
#vgdisplay myvg
解釋:顯示卷組建立的詳細信息,能夠看到PE Size的大小爲4M
#pvdisplay /dev/sda10
解釋:能夠發現PE Size和Total PE的數值都顯示出來了
#vgremove myvg
解釋:移除myvg
#vgcreat -s 8M myvg /dev/sda{10,11}
解釋:從新指定PE物理盤區的單位大小爲8M
#vgdisplay myvg
解釋:顯示卷組的詳細信息,而且能夠看到PE物理盤區的大小爲8M
執行縮減VG卷組操做
#pvs
解釋:能夠查看每一個磁盤對應的卷組的對應項
#pvmove /dev/sda11
解釋:先把sda11上的物理盤區的數據先挪到其餘盤區
#vgreduce myvg /dev/sda11
解釋:從myvg中把sda11移除
#pvremove /dev/sda11
解釋:最後能夠執行刪除物理卷sda11的操做
擴展新的卷組VG操做
#pvcreat /dev/sda12
解釋:建立物理卷sda12
#vgextend myvg /dev/sda12
解釋:在myvg的卷組中加入物理卷sda12
#pvdisplay /dev/sda12
解釋:能夠發現當sda12加入myvg的卷組後,sda12的默認物理盤區大小就自動更新爲8M
建立邏輯卷
#lvcreat -L 50M -n testlv myvg
解釋:對卷組myvg建立一個大小爲50M名稱爲testlv的LV邏輯卷
#lvdisplay /dev/myvg/testlv
解釋:顯示/myvg/testlv下的邏輯卷的詳細信息
#mke2fs -j /dev/myvg/testlv
解釋:對邏輯卷testlv進行高級格式化爲ext3文件系統
#mount /dev/myvg/testlv /mnt
解釋:將文件系統testlv掛載至/mnt目錄下
#ls /mnt
解釋:在/mnt目錄下能夠看到lost+found文件。說明掛載成功,該文件系統可用
#mount
解釋:能夠看到/mnt下掛載的是/dev/mapper/myvg-testlv文件
#ls -l /dev/mapper
解釋:能夠看到這個是屬於b塊設備文件
#ls -l /dev/myvg
解釋:能夠看到/dev/myvg下的testlv是一個連接文件,指向/dev/mapper/myvg-testlv
移除邏輯卷
#umount /mnt
解釋:若是一個邏輯卷處於掛載的狀態是處於打開的狀態,是沒法直接移除的,須要先卸載
#lvremove /dev/myvg/testlv
解釋:能夠移除邏輯捲成功
#lvremove -f /dev/myvg/testlv
解釋:強制移除邏輯捲成功
擴展邏輯卷
#lvcreat -L 2G -n testlv myvg
解釋:因爲以前的刪除了,因此從新使用卷組myvg建立一個2G的邏輯卷testlv
#mke2fs -j /dev/myvg/testlv
解釋:對從新建立的邏輯卷testlv進行高級格式化爲ext3文件系統
#mkdir /users
解釋:建立一個用戶的目錄,用來掛載邏輯卷的文件系統
#vim /etc/fstab
解釋:進入/etc/fstab的配置文件中
/dev/myvg/testlv /users ext3 defaults,acl 0 0
解釋:在/etc/fstab配置文件中添加上面的一行信息
#mount -a
解釋:-a選項表示掛載/etc/fstab文件中定義的全部的文件系統
#df -lh
解釋:此時發現/dev/mapper/myvg-testlv的大小是2G
#lvextend -L 5G /dev/myvg/testlv
解釋:將邏輯卷testlv的物理邊界擴展到5G大小
#lvs
解釋:發現testlv的大小是擴展到了5G,可是目前只是擴展了物理邊界,沒有擴展邏輯邊界
#resize2fs -p /dev/myvg/testlv
解釋:將邏輯卷testlv的邏輯邊界也擴展到和物理邊界同樣的大小5G
#df -lh
解釋:發現dev/mapper/myvg-testlv也顯示了5G
#cd /users
#ls
解釋:仍然能夠正常的查看文件inittab
縮減邏輯卷
注意:
1,不能在線縮減,得先卸載
2,確保縮減的空間大小仍然能存儲原有的全部數據
3,在縮減以前應該先強行檢查文件,以確保文件系統處於一致性狀態
#df -lh
解釋:先查看一下邏輯卷的大小
#umount /users
解釋:卸載/users掛載的目錄
#e2fsck -f /dev/myvg/testlv
解釋:強行檢查邏輯卷文件系統內部的一致性
#resize2fs /dev/myvg/testlv 3G
解釋:首先縮減testlv邏輯卷的邏輯邊界至3G大小
#lvreduce -L 3G /dev/myvg/testlv
解釋:而後再縮減testlv邏輯卷的物理邊界
#mount -a
解釋:重讀/etc/fstab中定義的全部文件系統,從新掛載縮減後的testlv邏輯卷
建立快照卷
注意:
1,生命週期爲整個數據時長,在這段時長內,數據的增加量不能超出快照卷大小
2,快照卷應該是隻讀的
3,跟原卷在同一個卷組內
#cp /ect/inittab ./
解釋:將/ect/inittab複製到當前目錄下來
#cp /etc/issue ./
#lvcreat -L 20M -n test-snap -s -p r /dev/myvg/testlv
解釋:-L快照卷的大小爲20M,-n快照卷的名稱爲test-snap,-s建立快照卷,-p權限爲只讀
#mount /dev/myvg/tsetlv-snap /mnt
解釋:掛載快照卷後,發現數據內容保存的是備份的那一時刻的數據信息,後面若是修改或新增都不會有顯示
#tar jcf /tmp/users.tar.bz2 inittab issue
解釋:將快照卷下的文件壓縮爲/tmp/users.tar.bz2文件
#umount /mnt
解釋:此時快照卷的做用結束,能夠卸載快照卷
#lvremove /dev/myvg/testlv-snap
解釋:移除快照卷testlv-snap
#cd /users
#rm inittab issue messages
解釋:模擬無心間刪除了/users目錄下的信息
#tar xf /tmp/users.tar.bz2
解釋:將剛剛保存的快照卷的打包壓縮文件展開至/users目錄下,從而完成用快照卷還原到過去特定時刻的做用vim

—————— 本文至此結束,感謝閱讀 ——————服務器

相關文章
相關標籤/搜索