如何在Linux中創(chuàng)建/配置LVM(邏輯卷管理)
邏輯卷管理(LVM)在 Linux 系統(tǒng)中扮演著重要的角色,它可以提高可用性、磁盤 I/O、性能和磁盤管理的能力。
LVM 是一種被廣泛使用的技術(shù),對(duì)于磁盤管理來(lái)說(shuō),它是非常靈活的。
它在物理磁盤和文件系統(tǒng)之間增加了一個(gè)額外的層,允許你創(chuàng)建一個(gè)邏輯卷而不是物理磁盤。
LVM 允許你在需要的時(shí)候輕松地調(diào)整、擴(kuò)展和減少邏輯卷的大小。
如何創(chuàng)建 LVM 物理卷?
你可以使用任何磁盤、RAID 陣列、SAN 磁盤或分區(qū)作為 LVM 物理卷(PV)。
讓我們想象一下,你已經(jīng)添加了三個(gè)磁盤,它們是 /dev/sdb
、/dev/sdc
和 /dev/sdd
。
運(yùn)行以下命令來(lái)發(fā)現(xiàn) Linux 中新添加的 LUN 或磁盤:
# ls /sys/class/scsi_host
host0
# echo "- - -" > /sys/class/scsi_host/host0/scan
# fdisk -l
創(chuàng)建物理卷 (pvcreate
) 的一般語(yǔ)法:
pvcreate [物理卷名]
當(dāng)在系統(tǒng)中檢測(cè)到磁盤,使用 pvcreate
命令初始化 LVM PV:
# pvcreate /dev/sdb /dev/sdc /dev/sdd
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
Physical volume "/dev/sdd" successfully created
請(qǐng)注意:
- 上面的命令將刪除給定磁盤
/dev/sdb
、/dev/sdc
和/dev/sdd
上的所有數(shù)據(jù)。 - 物理磁盤可以直接添加到 LVM PV 中,而不必是磁盤分區(qū)。
使用 pvdisplay
和 pvs
命令來(lái)顯示你創(chuàng)建的 PV。pvs
命令顯示的是摘要輸出,pvdisplay
顯示的是 PV 的詳細(xì)輸出:
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 a-- 15.00g 15.00g
/dev/sdc lvm2 a-- 15.00g 15.00g
/dev/sdd lvm2 a-- 15.00g 15.00g
# pvdisplay
"/dev/sdb" is a new physical volume of "15.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 69d9dd18-36be-4631-9ebb-78f05fe3217f
"/dev/sdc" is a new physical volume of "15.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID a2092b92-af29-4760-8e68-7a201922573b
"/dev/sdd" is a new physical volume of "15.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd
VG Name
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID d92fa769-e00f-4fd7-b6ed-ecf7224af7faS
如何創(chuàng)建一個(gè)卷組
卷組(VG)是 LVM 結(jié)構(gòu)中的另一層。基本上,卷組由你創(chuàng)建的 LVM 物理卷組成,你可以將物理卷添加到現(xiàn)有的卷組中,或者根據(jù)需要為物理卷創(chuàng)建新的卷組。
創(chuàng)建卷組 (vgcreate
) 的一般語(yǔ)法:
vgcreate [卷組名] [物理卷名]
使用以下命令將一個(gè)新的物理卷添加到新的卷組中:
# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd
Volume group "vg01" successfully created
請(qǐng)注意:默認(rèn)情況下,它使用 4MB 的物理范圍(PE),但你可以根據(jù)你的需要改變它。
使用 vgs
和 vgdisplay
命令來(lái)顯示你創(chuàng)建的 VG 的信息:
# vgs vg01
VG #PV #LV #SN Attr VSize VFree
vg01 3 0 0 wz--n- 44.99g 44.99g
# vgdisplay vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 44.99 GiB
PE Size 4.00 MiB
Total PE 11511
Alloc PE / Size 0 / 0
Free PE / Size 11511 / 44.99 GiB
VG UUID d17e3c31-e2c9-4f11-809c-94a549bc43b7
如何擴(kuò)展卷組
如果 VG 沒(méi)有空間,請(qǐng)使用以下命令將新的物理卷添加到現(xiàn)有卷組中。
卷組擴(kuò)展 (vgextend
)的一般語(yǔ)法:
vgextend [已有卷組名] [物理卷名]
# vgextend vg01 /dev/sde
Volume group "vg01" successfully extended
如何以 GB 為單位創(chuàng)建邏輯卷?
邏輯卷(LV)是 LVM 結(jié)構(gòu)中的頂層。邏輯卷是由卷組創(chuàng)建的塊設(shè)備。它作為一個(gè)虛擬磁盤分區(qū),可以使用 LVM 命令輕松管理。
你可以使用 lvcreate
命令創(chuàng)建一個(gè)新的邏輯卷。
創(chuàng)建邏輯卷(lvcreate
) 的一般語(yǔ)法:
lvcreate –n [邏輯卷名] –L [邏輯卷大小] [要?jiǎng)?chuàng)建的 LV 所在的卷組名稱]
運(yùn)行下面的命令,創(chuàng)建一個(gè)大小為 10GB 的邏輯卷 lv001
:
# lvcreate -n lv001 -L 10G vg01
Logical volume "lv001" created
使用 lvs
和 lvdisplay
命令來(lái)顯示你所創(chuàng)建的 LV 的信息:
# lvs /dev/vg01/lvol01
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv001 vg01 mwi-a-m-- 10.00g lv001_mlog 100.00
# lvdisplay /dev/vg01/lv001
--- Logical volume ---
LV Path /dev/vg01/lv001
LV Name lv001
VG Name vg01
LV UUID ca307aa4-0866-49b1-8184-004025789e63
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-09-10 11:43:05 -0700
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
如何以 PE 大小創(chuàng)建邏輯卷?
或者,你可以使用物理范圍(PE)大小創(chuàng)建邏輯卷。
如何計(jì)算 PE 值?
很簡(jiǎn)單,例如,如果你有一個(gè) 10GB 的卷組,那么 PE 大小是多少?
默認(rèn)情況下,它使用 4MB 的物理范圍,但可以通過(guò)運(yùn)行 vgdisplay
命令來(lái)檢查正確的 PE 大小,因?yàn)檫@可以根據(jù)需求進(jìn)行更改。
10GB = 10240MB / 4MB (PE 大?。?/span> = 2560 PE
用 PE 大小創(chuàng)建邏輯卷 (lvcreate
) 的一般語(yǔ)法:
lvcreate –n [邏輯卷名] –l [物理擴(kuò)展 (PE) 大小] [要?jiǎng)?chuàng)建的 LV 所在的卷組名稱]
要使用 PE 大小創(chuàng)建 10GB 的邏輯卷,命令如下:
# lvcreate -n lv001 -l 2560 vg01
如何創(chuàng)建文件系統(tǒng)
在創(chuàng)建有效的文件系統(tǒng)之前,你不能使用邏輯卷。
創(chuàng)建文件系統(tǒng)的一般語(yǔ)法:
mkfs –t [文件系統(tǒng)類型] /dev/[LV 所在的卷組名稱]/[LV 名稱]
使用以下命令將邏輯卷 lv001
格式化為 ext4 文件系統(tǒng):
# mkfs -t ext4 /dev/vg01/lv001
對(duì)于 xfs 文件系統(tǒng):
# mkfs -t xfs /dev/vg01/lv001
掛載邏輯卷
最后,你需要掛載邏輯卷來(lái)使用它。確保在 /etc/fstab
中添加一個(gè)條目,以便系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載。
創(chuàng)建一個(gè)目錄來(lái)掛載邏輯卷:
# mkdir /lvmtest
使用掛載命令掛載邏輯卷:
# mount /dev/vg01/lv001 /lvmtest
在 /etc/fstab 文件中添加新的邏輯卷詳細(xì)信息,以便系統(tǒng)啟動(dòng)時(shí)自動(dòng)掛載:
# vi /etc/fstab
/dev/vg01/lv001 /lvmtest xfs defaults 0 0
使用 df 命令檢查新掛載的卷:
# df -h /lvmtest
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-lv001 15360M 34M 15326M 4% /lvmtest