2021-05-12 14:32:11
CentOS下LVM的建立與使用
一、基本概念:
LVM(Logical Volume Manager):首先是基於實際的物理磁碟建立LVM分割區,並建立物理卷PV。一個或多個物理卷可以用來建立卷組VG。然後基於捲組可以建立邏輯卷LV。只要在捲組中有可用空間,就可以隨心所欲的建立邏輯卷。檔案系統就是在邏輯卷上建立的,然後可以在作業系統中掛載和使用。
-
物理長度PE(PhysicalExtent):物理長度是將物理卷組合為捲組後,所劃分的最小儲存單位,即邏輯意義上磁碟的最小儲存單位。LVM預設PE大小為4MB。
-
物理卷PV(PhysicalVolume):物理卷是LVM的最底層概念,是LVM的邏輯儲存塊,物理卷與磁碟分割區是邏輯的對應關係。
-
卷組VG(VolumeGroup):捲組是LVM邏輯概念上的磁碟裝置,通過將單個或多個物理卷組合後生成捲組。卷組的大小取決於物理卷的容量以及個數。
-
邏輯卷LV(LogicalVolume):邏輯卷就是LVM邏輯意義上的分割區,可以指定從卷組中提取多少容量來建立邏輯卷,最後對邏輯卷格式化並掛載使用。
二、演示環境:
新增一塊20G的硬碟,分割區/dev/sdb1,大小10G,分割區ID為8e。
常用fdisk互動式指令說明 |
|
指令 |
說明 |
d |
刪除分割區 |
l |
顯示分割區型別 |
m |
顯示幫助選單 |
n |
新建分割區 |
p |
顯示分割區表資訊 |
q |
不儲存退出 |
t |
修改分割區ID,可以通過l檢視ID |
w |
儲存並退出 |
使分割區生效:
# partx -a /dev/sdb
# cat /proc/partitions
# fdisk -l /dev/sdb
三、PV、VG和LV中涉及到的常用命令:
名稱 |
物理卷PV |
卷組VG |
邏輯卷LV |
建立 |
pvcreate |
vgcreate |
lvcreate |
顯示 |
pvs | pvscan | pvdisplay |
vgs | vgscan | vgdisplay |
lvs | lvscan | lvdisplay |
擴容 |
vgextend |
lvextend | lvresize |
|
縮減 |
vgreduce |
lvreduce | lvresize |
|
刪除 |
pvremove |
vgremove |
lvremove |
建立LV:
1、 將物理磁碟初始化為物理卷PV:# pvcreate /dev/sdb1
2、 建立卷組VG,將PV加入到VG中:# vgcreate vgtest1 /dev/sdb1
3、 基於VG建立邏輯卷LV:# lvcreate [選項] 捲組名
選項:
-l:指定使用多少個VG中的LE建立LV,[%{VG|PVS|FREE}]
-L:指定LV大小
-n:指定LV名稱
-p:指定許可權,r為唯讀,rw為讀寫
# lvcreate -n lvtest1 -L 5G vgtest1 或者 # lvcreate -n lvtest1 -l 50%FREE vgtest1
//上述兩種方法都是建立大小為5G,名為lvtest1的邏輯卷
4、 為邏輯卷建立檔案系統:
# mke2fs -t ext4 /dev/vgtest1/lvtest1 或者 # mke2fs -t ext4 /dev/mapper/vgtest1-lvtest1
5、 建立掛載點,掛載LV:
# mkdir -pv /mnt/lvtest1
# mount /dev/vgtest1/lvtest1 /mnt/lvtest1
6、 建立測試資料:
# cd /mnt/lvtest1
# cp /etc/fstab .
# cp /etc/rc.sysinit .
# dd if=/dev/zero of=test bs=1M count=2048 //建立一個大小為2G的測試資料test
# cat fstab //能正常顯示檔案內容
# cat rc.sysinit //能正常顯示檔案內容
7、 實現開機自動掛載:
# vim /etc/fstab --> /dev/vgtest1/lvtest1 /mnt/lvtest1 ext4defaults 0 0
# mount-a
# mount --> /dev/mapper/vgtest1-lvtest1 on /mnt/lvtest1type ext4 (rw)
# cat /etc/mtab --> /dev/mapper/vgtest1-lvtest1 /mnt/lvtest1 ext4rw 0 0
備註:檔案/etc/fstab和/etc/mtab的區別
- /etc/fstab:存放的是系統中的檔案系統資訊,是系統準備裝載的。
- /etc/mtab:存放的是現在系統已經裝載的檔案系統,包括作業系統建立的虛擬檔案等。
五、擴容VG:
1、 將之前/dev/sdb中再分出一個分割區/dev/sdb2,大小為5G,分割區ID為8e:# fdisk /dev/sdb
2、 將物理磁碟初始化為物理卷PV:# pvcreate /dev/sdb2
3、 將PV新增到指定VG中:# vgextend vgtest1 /dev/sdb2
vgtest1的大小增加了5G。
六、擴容LV(可線上擴容,無需解除安裝LV:
1、 確保VG中有足夠的可用空間供LV擴容,將lvtest1擴容5G。
2、 擴容物理邊界,格式:# lvextend [選項] /dev/捲組名/邏輯卷名
選項:
-l:指定使用多少個VG中的LE,[%{VG|LV|PVS|FREE|ORIGIN}]
-L:指定LV大小
# lvextend -L 10G /dev/vgtest1/lvtest1 或者
# lvextend -L +5G /dev/vgtest1/lvtest1 或者
# lvextend -l +50%FREE /dev/vgtest1/lvtest1
//上述三種方法都是將lvtest1擴容5G,大小為10G
3、 擴容檔案系統:# resize2fs /dev/vgtest1/lvtest1
4、 之前/mnt/lvtest1目錄中的資料仍然能正常存取。
vgtest1的可用大小減少了5G,lvtest1的大小增加了5G。
七、縮減LV:
1、 確保縮減後LV的大小要比儲存在LV中資料的總和要大,將lvtest1縮減至8G。
2、 解除安裝邏輯卷lvtest1:# umount /mnt/lvtest1
3、 強制檢測檔案系統:# e2fsck -f /dev/vgtest1/lvtest1
4、 縮減檔案系統:# resize2fs /dev/vgtest1/lvtest1 8G
5、 縮減物理邊界:# lvreduce -L 8G /dev/vgtest1/lvtest1
6、 掛載邏輯卷lvtest1使用:# mount /dev/vgtest1/lvtest1 /mnt/lvtest1
7、 之前/mnt/lvtest1目錄中的資料仍然能正常存取。
PV中的/dev/sdb1的可用大小增加了2G,vgtest1的可用大小增加了2G,lvtest1的大小減少了2G。
八、縮減VG:
1、 新增一塊大小為20G的磁碟,分割區/dev/sdc1,大小10G,分割區ID為8e,並初始化為PV,加入vgtest1中:
# fdisk /dev/sdc
# pvcreate /dev/sdc1
# vgextend vgtest1 /dev/sdc1
2、 將/dev/sdb1上的所有PV移動至/dev/sdc1中,然後刪除/dev/sdb1,從而達到縮減VG的目的:
# pvmove /dev/sdb1 /dev/sdc1
3、 從卷組vgtest1中刪除/dev/sdb1:# vgreduce vgtest1 /dev/sdb1
/dev/sdb1中的PV已經全部移動至/dev/sdc1中,vgtest1的大小也減少了10G。/dev/sdb1可以刪除也可以加入別的VG中。
4、 之前/mnt/lvtest1目錄中的資料仍然能正常存取。
九、刪除LV:
1、 將上述的/dev/sdb1加入到新卷組vgtest2中,並建立lvtest2:
# vgcreate vgtest2 /dev/sdb1
# lvcreate -n lvtest2 -l 100%FREE vgtest2
# mke2fs -t ext4 /dev/vgtest2/lvtest2
# mkdir -pv /mnt/lvtest2
# mount /dev/vgtest2/lvtest2 /mnt/lvtest2
2、 解除安裝lvtest2:# umount /mnt/lvtest2
3、 刪除lvtest2:# lvremove /dev/vgtest2/lvtest2
lvtest2已被刪除,vgtest2可用大小為10G。
十、刪除VG:
1、 刪除vgtest2:# vgremove vgtest2
vgtest2已經刪除。
十一、刪除PV:
1、 刪除/dev/sdb1:# pvremove /dev/sdb1
2、 使用fdisk命令將無用的分割區刪除,或者將其分割區ID從8e修改為83。
PV中的/dev/sdb1已經刪除。
十二、建立快照卷:
1、 為lvtest1建立大小為5G的快照捲lvtest1-snap:
# lvcreate -s -L 5G -n lvtest1-snap -p r /dev/vgtest1/lvtest1 //-s:建立快照捲,-p r:表示屬性為唯讀
2、 建立快照捲掛載點,掛載快照卷:
# mkdir -pv /mnt/snap
# mount /dev/vgtest1/lvtest1-snap /mnt/snap
備註:快照捲是邏輯卷的一種,通常為唯讀。快照卷與原卷在同一個捲組中,因此建立快照捲之前要確保原卷所在的捲組中有足夠空間可用。快照捲無須與原卷一樣大,其大小取決於快照捲的存活時長內原卷的資料變化量。
3、 檢視lvtest1和lvtest1-snap中的內容:
建立快照以後,快照之後所修改的資料,通過快照捲是存取不到的,因為它儲存的是過去某一時刻的狀態,可以備份或複製該時刻的資料。
十三、刪除快照卷:
1、 解除安裝快照卷:# umount /mnt/snap
2、 刪除快照卷:# lvremove /dev/vgtest1/lvtest1-snap
十四、其他常用操作:
1、 重新命名lvtest1為marion:# lvrename vgtest1 lvtest1 marion
2、 重新命名vgtest1為keyso:# vgrename vgtest1 keyso
3、 合併捲組:建立一個大小為10G的新卷組vgtest,將vgtest合併到keyso中:
# vgmerge keyso vgtest
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-05/152608.htm
相關文章