linux中LVM
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。
2.使用LVM解決什麽問題
直接使用fdisk分區掛載的話,隨著時間的推移,數據量越來越大,硬盤空間越來越小,要想擴充容量的話,就必須掛載新硬盤然後做數據遷移,這就必然導致前臺業務的停止,不符合企業需求,因此完美的解決方法應該是在零停機前提下可以自如對文件系統的大小進行調整,可以方便實現文件系統跨越不同磁盤和分區。Linux提供的邏輯盤卷管理(LVM,Logical Volume Manager)機制就是一個完美的解決方案
3.原理圖
1、物理磁盤被格式化為PV,空間被分為一個個PE
2、不同的PV加入同一個VG,不同PV的PE全部進入VG的PE池內
3、LV基於PE創建,大小為PE的整數倍,組成LV的PE可能自來不同的物理磁盤
4、LV現在就直接可以格式化後掛載使用了
5、LV的擴充縮減實際上就是增加或減少組成該LV的PE的數量,其過程不會丟失數據
4.LVM各個名稱介紹
#物理存儲介質
指系統的物理存儲設備:磁盤,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。
#物理卷 PV Physical Volume
指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
類似於非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)
#邏輯卷 LV Logical Volume
類似於非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。
#物理塊 PE Physical Extent
每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。所以物理卷(PV)由大小等同的基本單元PE組成。
#邏輯卷 LE Logical Extent
5.LVM在系統中的創建
1.先查看系統中有無安裝LVM
rpm -q lvm
- lvm有兩個版本 lvm1 lvm2 (升級版)
yum install lvm2 -y
3.創建物理卷
現在分區中創建新的分區 t 更改他們的id lvm的ID為8e 結果如下
pvcreate /dev/sdb5 創建物理卷
可以通過 pvdisplay 來查看創建的物理卷
4.創建vg組,將物理卷加入卷組中
vhcreate vgzu(組的名字) /dev/sdb5 /dev/sdb6 (物理卷)
可以通過 vgdisplay 來查看創建的vg卷組
5.創建邏輯卷LV
lvcreate -L 100M -n lvjuan vgzu
lvdisplay 查看先建立的卷
6.格式化lvjuan (創建文件系統)
mkfs.xfs /dev/VGName/LVName
7.掛載lvjuan
mount /dev/VGName/LVName /mnt
邏輯卷創建完成可以使用了
6.lvm的拉伸
LVM和其他的分區方式最大的優勢就是可以動態的拉伸或縮小邏輯卷空間,並且是在線執行的,拉伸並不會影響原有數據無需下線。這裏才是它的特點。
1.當vg中的剩余容量充足情況
lvextend -L 60M /dev/VGName/LVName 拉伸lv卷
xfs_growfs /dev/VGName/LVName 拉伸文件系統
2.當vg中的容量不足時 ,其實質就是從VG中拿若幹PE到LV中,但是當VG中空間也不夠時,我們就需要拓展VG,也就是將新硬盤格式化為PV添加到VG中
1.先創建分區t修改其id為8e
2.創建pv物理卷
pvcreate /dev/sdb7
3.將新的PV添加到指定卷組中
vgextend vgNAME /dev/sdb[n]
vgdisplay
4.拉伸lv卷
lvextend -L 60M /dev/VGName/LVName
xfs_growfs /dev/VGName/LVName 拉伸文件系統
7.lvm的縮減
umount /mnt
e2fsck -f /dev/vg0/lv0 ##檢查lv0數據
resize2fs /dev/vg0/lv0 1000M ##縮減ext4文件系統
mount /dev/vg0/lv0 /mnt/ ##掛載
lvreduce -L 1000M /dev/vg0/lv0 ##縮減邏輯卷
pvmove /dev/sdb7 /dev/sdb6 ##把vdb6的數據移動到vdb7
vgreduce vg0 /dev/vdb7 ##把vdb6移除vg0物理卷組
pvremove /dev/vdb6 ##把vdb6移除物理卷
linux中LVM