因爲傳統的磁盤管理不能對磁盤進行磁盤管理,所以誕生了LVM技術,LVM技術最大的特色就是對磁盤進行動態管理。因爲LVM的邏輯卷的大小更改能夠進行動態調整,且不會出現丟失數據的狀況。linux
LVM(Logic Volume Manager)是邏輯卷管理的簡稱。它是Linux環境下對磁盤分區管理的一種機制。對於其餘的的UNIX(AIX/HP/SUM)操做系統,以及Windows系統也有相似的磁盤管理軟件。web
LVM管理的方式很是簡單,就是經過將底層的物料磁盤抽象並封裝起來,而後以邏輯的方式呈現給上層應用。ide
LVM 機制的基本概念
PV(物理卷)
VG(卷組)
LV(邏輯卷)工具
邏輯卷管理概念定義:測試
主要命令spa
實驗環境:操作系統
VMware Workstation Pro3d
先添加一塊硬盤作如下實驗使用。orm
---blog
劃分磁盤分區:
查看系統是否識別新添加的硬盤 fdisk -l
注:/dev/sdb/爲新添加的磁盤
將sdb磁盤進行分區,分出3個主分區,1個擴展分區,2個邏輯分區,分區大小全爲2G.
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。Device does not contain a recognized partition table
使用磁盤標識符 0xb6f3b9c8 建立新的 DOS 磁盤標籤。命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):+2G
分區 1 已設置爲 Linux 類型,大小設爲 2 GiB命令(輸入 m 獲取幫助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分區號 (2-4,默認 2):
起始 扇區 (4196352-41943039,默認爲 4196352):
將使用默認值 4196352
Last 扇區, +扇區 or +size{K,M,G} (4196352-41943039,默認爲 41943039):+2G
分區 2 已設置爲 Linux 類型,大小設爲 2 GiB命令(輸入 m 獲取幫助):
命令(輸入 m 獲取幫助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分區號 (3,4,默認 3):
起始 扇區 (8390656-41943039,默認爲 8390656):
將使用默認值 8390656
Last 扇區, +扇區 or +size{K,M,G} (8390656-41943039,默認爲 41943039):+2G
分區 3 已設置爲 Linux 類型,大小設爲 2 GiB命令(輸入 m 獲取幫助):N
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
已選擇分區 4
起始 扇區 (12584960-41943039,默認爲 12584960):
將使用默認值 12584960
Last 扇區, +扇區 or +size{K,M,G} (12584960-41943039,默認爲 41943039):
將使用默認值 41943039
分區 4 已設置爲 Extended 類型,大小設爲 14 GiB命令(輸入 m 獲取幫助):n
All primary partitions are in use
添加邏輯分區 5
起始 扇區 (12587008-41943039,默認爲 12587008):
將使用默認值 12587008
Last 扇區, +扇區 or +size{K,M,G} (12587008-41943039,默認爲 41943039):+2G
分區 5 已設置爲 Linux 類型,大小設爲 2 GiB命令(輸入 m 獲取幫助):n
All primary partitions are in use
添加邏輯分區 6
起始 扇區 (16783360-41943039,默認爲 16783360):
將使用默認值 16783360
Last 扇區, +扇區 or +size{K,M,G} (16783360-41943039,默認爲 41943039):+2G
分區 6 已設置爲 Linux 類型,大小設爲 2 GiB命令(輸入 m 獲取幫助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盤。
安裝LVM管理工具
使用yum方式安裝: yum install lvm2 -y
建立PV,將磁盤分區/dev/sdb1-3 初始化爲物理卷
格式:pvcreate 物理設備/分區設備
[root@localhost ~]# pvcreate /dev/sdb[1-3]
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
查看PV
注:
PV Name | PV名字 |
VG Name | 隸屬的VG名字 |
PV Size | PV的大小 |
Allocatable | 是否可分配 |
PE Size | 每一個PE的大小 |
Total PE | PE的數量 |
Free PE | 剩餘的PE |
Allocated PE | 可分配的PE |
PV UUID | PV的UUID號 |
pvs也能夠查看PV信息,沒有pvdisplay詳細
pvscan 掃描磁盤中的物理卷
建立VG——將物理卷/dev/sdb1-3 組合成一個卷組
格式:vgcreate 卷組名(自定義) 物理卷名
一樣但是使用vgs/vgscan查看
建立LV
lvcreate -L 1G -n lv01 vg01 //從vg01這個卷組中分出1G的空間給lv01
注:
-L 指定建立的LV的大小
-I 指定建立的LV的PE數量
-n LV的名字
查看LV的信息 lvdisplay
一樣能夠使用lvs和lvscan查看
這時的VFree從5.99g減小到了4.99g,另外的1g被分配到了lv01
格式化LV
mkfs.xfs /dev/vg01/lv01 #將/dev/vg01/lv01格式化爲xfs文件系統
掛載使用
mkdir /opt/lv01 #建立用於掛載的目錄
mount /dev/vg01/lv01 /opt/lv01/ #臨時將邏輯卷掛載到目錄下
將掛載信息寫入/etc/fstab,實現開機自動掛載
mount -a #檢測/etc/fstab文件,並運行掛載
添加測試數據
向/opt/lv01寫入測試數據以驗證LVM的磁盤動態管理
LVM的擴容操做
LVM最大的好處就是能夠對磁盤進行動態管理,並且不會丟失現有的數據
(1)LV的擴容
查看vg01剩餘容量,還有4.99G可用
對lv01進行擴容:lvextend -L +1G /dev/vg01/lv01
vg從4.99變成了3.99 lv從1G變爲2G
使用dh -hT 命令查看分區使用的狀況:
發現實際容量並無變化,那是由於系統還不認識剛剛添加進來的磁盤的文件系統,因此還須要對文件系統進行擴容
這裏我使用的文件系統是xfs文件系統,使用如下命令去擴容:
xfs_growfs /opt/lv01/
若是是ext系列的文件系統,使用如下命令擴容:
resize2fs 設備名或掛載點
擴容後,在使用df -hT查看分區狀況:
再看看掛載點/opt/lv01裏面有沒有變化:
掛載點目錄裏的數據正常,表明對lv01在線擴容完成。
(2)VG的擴容
VG的擴容有兩種方法:
第一種:經過增長PV來實現擴容。
建立PV:使用/dev/sdb5來建立一個PV
pvcreate /dev/sdb5
擴容VG:
查看如今的vg01的容量
[root@localhost lv01]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 3 1 0 wz--n- <5.99g <3.99g
[root@localhost lv01]# vgextend vg01 /dev/sdb5
Volume group "vg01" successfully extended
[root@localhost lv01]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 4 1 0 wz--n- 7.98g 5.98g
第二種:經過擴展RAID設備的容量來間接對VG進行擴容,這是基於RAIDA設備作的LVM。
須要注意是:raid設備大小變化後,須要調整PV的大小:
pvresize raid的設備名稱
LV的縮減操做
縮減操做須要離線處理
(1) 卸載文件系統
(2)縮減LV
(3)掛載查看
這是由於xfs文件系統只支持增長,不支持減小。可是不是說xfs系統文件不能減小,只是縮減後須要格式化才能掛載上,可是這樣操做原來的數據就丟失了
在看掛載點,沒有任何數據。
若是是ext系統的話,不會出現這種結果
卸載掛載後
檢查磁盤:e2fsck -f /dev/vg01/lv01
縮減文件系統:resize2fs /dev/vg01/lv01
縮減LV: lvreduce -L 1G /dev/vg01/lv01
注:文件系統和LV縮減的大小必須保持一致,1G表明縮減到的大小
移除LVM
(1)卸載掛載
(2)移除LV
lvremove /dev/vg01/lv01
vgremove vg01
pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
到此,LVM移除完成。