通過命令模式進行LVM分割槽,也就是通過命令進行LVM邏輯卷分割槽。
1、物理卷管理
(1)準備硬碟或者分割槽
前提還是首先要有一塊硬碟或者分割槽。
建立方式就是使用fdisk
互動命令,不過需要注意的是,分割槽的系統ID不再是Linux預設的分割槽ID號83了,而要改成LVM的ID號8e
。
通過fdisk
互動命令,在擴充套件分割槽sdb3
中建立了三個邏輯分割槽sdb4
、sdb5
和sdb6
。
如下圖所示:
從圖中可以看出,這三個分割槽的預設系統ID號為83,我們需要修改程LVM的ID號8e
。
執行如下命令即可,逐一修改。
最後結果如下:
最後儲存退出即可,如下圖所所示:
需要執行reboot
命令,重啟一下系統。
(2)建立物理卷
有了上邊的分割槽之後,我們就可以把分割槽建立成物理捲了。
建立物理卷命令:
[root@localhost ~]# pvcreate [裝置檔名]
建立物理卷時,我們說即可以把整塊硬碟都建立成物理卷,也可以把某個分割槽建立成物理卷。
如果要把整塊硬碟都建立成物理卷,命令如下:
[root@localhost ~]# pvcreate /dev/sdb(硬碟的裝置檔名)
在我們的使用中,是要把分割槽建立成為物理卷,執行以下命令:
[root@localhost ~]# pvcreate /dev/sdb5(分割槽名稱)
執行命令結果:
(3)檢視物理卷
需要執行pvscan
命令檢視物理卷。
[root@localhost ~]# pvscan
命令結果如下:
我們可以看到在我的系統中,/dev/sdb5-7
這三個分割槽是物理卷。
最後一行的意思是:總共3個物理卷[大小] / 使用了0個卷[大小] / 空閒3個卷[大小]。
第二個查詢命令是pvdisplay
命令,它可以檢視到更詳細的物理卷狀態。
命令如下:
[root@localhost ~]# pvdisplay
命令結果如下:
(3)刪除物理卷
需要執行pvremove
命令。
命令如下:
[root@localhost ~]# pvremove /dev/sdb7
2、建立卷組
(1)建立卷組
建立卷組格式如下:
[root@localhost ~]# vgcreate [選項] 卷組名 物理卷名
選項:
-s
:指定PE的大小,單位可以是MB
,GB
,TB
等。如果不寫預設PE
大小是4MB。(vgcreate
命令的選項就-s
一個,還是修改PE
大小的,所以上邊命令中選項就可以省略了。 )
我們有三個物理卷/dev/sdb5-7
,我們先把/dev/sdb5
和/dev/sdb6
加入卷組,留著/dev/sdb7
一會實驗調整卷組大小。
命令如下:
[root@localhost ~]# vgcreate scvg /dev/sdb5 /dev/sdb6
Volume group "scvg" successfully created
# 提示:名稱為scvg的VG建立成功
上邊命令的作用就是把/dev/sdb5
和/dev/sdb6
物理卷加入到scvg
卷組中。
(2)檢視卷組
檢視卷組的命令同樣是兩個,vgscan
命令主要是檢視系統中是否有卷組,而vgdisplay
命令則是檢視卷組的詳細狀態的。
執行vgscan
命令,結果如下:
執行vgdisplay
命令,結果如下:
(3)增加捲組容量
卷組是可以進行擴容的,使用的命令是vgextend
。
執行命令:把/derv/sdb7
物理卷也加入scvg
卷組。
[root@localhost ~]# vgextend scvg /dev/sdb7
Volume group "scvg" successfully extended
執行vgdisplay
命令檢視卷組,結果如下:
說明:如果有更多的物理卷,可以隨時加入到卷組中。
(4)減小卷組容量
特別注意:
理論上卷組容量是可以縮減的,但是不允許進行縮減操作。例如:如果你6GB容量寫滿資料,你縮減2GB容量,資料肯定會丟失。
# 在卷組中刪除/dev/sdb7物理卷
[root@localhost ~]# vgreduce scvg /dev/sdb7
Removed "/dev/sdb7" from volume group "scvg"
# 刪除所有的未使用物理卷
[root@localhost ~]# vgreduce -a
(5)刪除卷組
使用vgremove
命令,可以刪除卷組。
[root@localhost ~]# vgremove scvg
Volume group "scvg" successfully removed
卷組刪除之後,才能刪除物理卷。
還要注意的是,
scvg
卷組還沒有新增任何的邏輯卷,才可以刪除,那如果擁有了邏輯卷,記得先刪除邏輯卷再刪除卷組。還記得我剛說的嗎?刪除就是安裝的反過程,每一步都不能跳過。
3、建立邏輯卷管理
(1)建立邏輯卷
建立邏輯卷命令:
[root@localhost ~]# lvcreate [選項] [-n 邏輯卷名] 卷組名
選項:
-L
容量:指定邏輯卷大小,單位MB
,GB
,TB
等。(只要卷組中有空間,分配多大的空間都可以,不一定按照物理卷的大小進行分配。)-l
個數:按照PE
個數指定邏輯卷大小,這個引數需要換算容量,太麻煩。-n
邏輯卷名:指定邏輯卷名。
那我們就建立一個3GB的sclv
邏輯卷,建立命令如下:
#在scvg卷組中建立3GB的sclv邏輯卷
[root@localhost ~]# lvcreate -L 3G -n sclv scvg
Logical volume "sclv" created
建立完邏輯卷之後,還要對邏輯捲進行格式化和掛載,之後邏輯卷才能正常使用。格式化和掛載命令的操作,和操作普通分割槽時是一樣的,不過需要注意的是,邏輯卷的裝置檔名是/dev/卷組名/邏輯卷名
,如我們的sclv
的裝置檔名就是/dev/scvg/sclv
。
具體命令如下:
# 格式化
[root@localhost ~]# mkfs -t ext4 /dev/scvg/sclv
# 建立掛載點,並掛載
[root@localhost ~]# mkdir /disklvm
[root@localhost ~]# mount /dev/scvg/sclv /disklvm/
再用mount
命令檢視分割槽掛載情況(用df -h
命令也可以檢視)。
執行命令如下:
可以看到sclv
邏輯卷,已正常掛載。
當然如果需要開機自動掛載,也要修改/etc/fstab
檔案。
(2)檢視邏輯卷
同樣的檢視命令是兩個,第一個lvscan
命令只能看到系統中是否擁有邏輯卷。
命令如下:
# 能夠看到啟用的邏輯卷,大小事3GB
[root@localhost ~] # lvscan
ACTIVE '/dev/scvg/sclv' [3 GiB]inherit
第二個命令是lvdisplay
,可以看到邏輯卷的詳細資訊。
命令如下:
(3)調整邏輯卷大小
調整邏輯卷大小用lvresize
命令,執行命令如下。
[root@localhost ~]# lvresize [選項] 邏輯卷裝置檔名
選項:
-L
容量:安裝容量調整大小,單位KB
,GB
,TB
等。使用+
代表增加空間,-
號代表減少空間。如果直接寫容量,代表設定邏輯卷大小為指定大小。-l
個數:按照PE
個數調整邏輯卷大小。(一般不按這個分配空間,不好算。)
提示:邏輯卷增加容量,邏輯卷中的檔案是不會丟失的。縮減容量不符合使用習慣,不要使用。
剛剛的sclv
邏輯卷的大小是3GB,我們的scvg
卷組中還有3GB的空閒空間,那麼增加sclv
邏輯卷的大小到4GB。
命令如下:
# 增加sclv邏輯卷的大小到4GB
[root@localhost ~]# lvresize -L 4G /dev/scvg/sclv
Size of logical volume scvg/sclv changed from 3.00 GiB (768 extents) to 4.00 GiB(1024 extents).
Logical volume userlv successfully resized
# 當然命令也可以這樣寫
[root@localhost ~]# lvresize -L +1G /dev/scvg/sclv
執行lvdisplay
命令檢視卷組,結果如下:
邏輯卷的大小已經改變了,但是好像有些問題,我通過df -h
命令檢視磁碟資訊,發現sclv
邏輯卷的大小還是3GB,如下圖:
是因為sclv
邏輯卷的大小調整了,但是sclv
邏輯卷的掛載,依舊掛的是3GB大小。
如果需要讓分割槽使用這個新擴容的邏輯卷,我們還要使用resize2fs
命令來調整分割槽的大小。不過這裡就體現了LVM的優勢,我們不需要解除安裝分割槽,直接就能調整分割槽的大小。(總結一下說,lvresize
命令是邏輯卷的擴容,resize2fs
命令是邏輯卷檔案系統的擴充套件。)
resize2fs
命令格式如下:
[root@localhost ~]# resize2fs [選項] [裝置檔名] [調整的大小]
選項:
-f
:強制調整。- 裝置檔名:指定調整哪個分割槽的大小。
- 調整的大小:指定把分割槽調整到多大,要加
M
,G
等單位。如果不加大小,會使用整個分割槽。
執行resize2fs
命令,之後再用df -h
命令檢視磁碟資訊。
執行命令結果如下:
可以看到sclv
邏輯卷的大小變成了4GB。(不需要解除安裝分割槽,裡邊的資料也不會丟失,很方便。)
(4)刪除邏輯卷
一般不用此需求,建立好的邏輯卷就踏實的用。
lvremove
命令是刪除邏輯卷,格式如下:
[root@localhost ~]# lvremove 邏輯卷裝置檔名
我們刪除sclv
這個邏輯卷,記得刪除時要先解除安裝。
命令如下:
[root@localhost ~]# umount /dev/scvg/sclv
[root@localhost ~]# lvremove /dev/scvg/sclv