首頁 > linux教程 > Linux高級文件系統管理 閱讀:0更新時間:2020-03-28 01:02:12

Linux LV邏輯卷(創建、查看、調整大小及刪除)詳解

本節講解如何將卷組劃分為邏輯卷,我們可以把邏輯卷想象成分區,那么這個邏輯卷當然也需要被格式化和掛載。另外,邏輯卷也是可以動態調整大小的,而且數據不會丟失,也不用卸載邏輯卷。

建立邏輯卷

我們現在已經建立了 3GB 大小的卷組 scvg,接下來需要在卷組中建立邏輯卷。命令格式如下:

[root@localhost ~]# lvcreate [選項] [-n 邏輯卷名] 卷組名

選項:
  • -L 容量:指定邏輯卷大小,單位為 MB、GB、TB 等;
  • -l 個數:按照 PE 個數指定邏輯卷大小,這個參數需要換算容量,太麻煩;
  • -n 邏輯卷名:指定邏輯卷名;

我們建立一個 1.5GB 大小的 lamplv 邏輯卷,命令如下:

[root@localhost ~]# lvcreate -L 1.5G -n lamplv scvg
Logical volume "lamplv" created
#在scvg卷組中建立一個1.5GB大小的lamplv邏輯卷


建立完邏輯卷,還要在格式化和掛載之后才能正常使用。格式化和掛載命令與操作普通分區時是一樣的,不過需要注意的是,邏輯卷的設備文件名是"/dev/卷組名/邏輯卷名",如邏輯卷 lamplv 的設備文件名就是"/dev/scvg/lamplv"。具體命令如下:

[root@localhost ~]# mkfs -t ext4 /dev/scvg/lamplv
#格式化
[root@localhost ~]# mkdir /disklvm
[root@localhost ~]# mount /dev/scvg/lamplv /disklvm/
#建立掛載點,并掛載
[root@localhost ~]# mount
…省略部分輸出…
/dev/mapper/scvg-lamplv on /disklvm type ext4(rw)
#已經掛載了

當然,如果需要開機后自動掛載,則要修改 /etc/fstab 文件。

查看邏輯卷

查看命令同樣有兩個,第一個命令 lvscan 只能看到系統中是否擁有邏輯卷,命令如下:

[root@localhost ~]# lvscan
ACTIVE '/dev/scvg/lamplv' [1.50 GiB] inherit
#能夠看到激活的邏輯卷,大小是1.5GB


第二個命令 lvdisplay 可以看到邏輯卷的詳細信息,命令如下:

[root@localhost ~]# lvdisplay
---Logical volume---
LV Path /dev/scvg/lamplv
邏輯卷的設備文件名
LV Name lamplv
#邏輯卷名
VG Name scvg
#所屬的卷組名
LV UUID 2kyKmn-Nupd-CldB-8ngY-NsI3-b8hV-QeUuna
LV Write Access read/write
LV Creation host, time localhost, 2013-04-18 03:36:39 +0800
LV Status available
# open 1
LV Size 1.50 GiB
#邏輯卷大小
Current LE 192
Segments 2
Allocation inherit
Read ahead sectors auto
-currently set to 256
Block device 253:0

調整邏輯卷大小

我們可以使用 lvresize 命令調整邏輯卷的大小,不過我們一般不推薦減少邏輯卷的空間,因為這非常容易導致邏輯卷中的文件系統的數據丟失。所以,除非我們已經備份了邏輯卷中的數據,否則不要減少邏輯卷的空間。

lvresize 命令格式如下:

[root@localhost ~]# lvresize [選項] 邏輯卷的設備文件名

選項:
  • -L 容量:安裝容量調整大小,單位為 KB、GB、TB 等。使用 + 増加空間,- 代表減少空間。如果直接寫容量,則代表設定邏輯卷大小為指定大??;
  • -l 個數:按照 PE 個數調整邏輯卷大??;

我們先在 /disklvm 分區中建立一些測試文件,一會兒調整完大小,再看看數據是否丟失了。

[root@localhost ~]# cd /disklvm/
[root@localhost disklvm]# touch testf
[root@localhost disklvm]# mkdir testd
[root@localhost disklvm]# ls
lost+found testd testf

lamplv 邏輯卷的大小是 1.5GB,而 scvg 卷組中還有 1.5GB 的空閑空間,那么增加 lamplv 邏輯卷的大小到 2.5GB。命令如下:

[root@localhost disklvm]# lvresize -L 2.5G /dev/scvg/lamplv
Extending logical volume lamplv to 2.50 GiB Logical volume lamplv successfully resized
#增加lamplv邏輯卷的大小到2. 5GB,當然命令也可以這樣寫
[roots localhost disklvm] # lvresize -L +1G /dev/scvg/lamplv
[root@localhost disklvm]# lvdisplay
---Logical volume ---
LV Path /dev/scvg/lamplv
LV Name lamplv
VG Name scvg
LV UUID 2kyKmn-Nupd-CldB-8ngY-Ns13-b8hV-QeUuna
LV Write Access read/write
LV Creation host, time localhost, 2013-04-18 03:36:39 +0800 LV Status available
# open 1
LV Size 2.50 GiB
#大小改變了
Current LE 320
Segments 3
Allocation inherit
Read ahead sectors auto
-currently set to 256
Block device 253:0


邏輯卷的大小已經改變了,但是好像有如下一些問題:

[root@localhost disklvm]# df -h /disklvm/
文件系統 容量 已用 可用 已用% %掛載點
/dev/mapper/scvg-lamplv 1.5G 35M 1.4G 3%/ disklvm

怎么 /disklvm 分區的大小還是 1.5GB ???剛剛只是邏輯卷的大小改變了,如果要讓分區使用這個新邏輯卷,則還要使用 resize2fs 命令來調整分區的大小。不過這里就體現出了 LVM 的優勢:我們不需要卸載分區,直接就能調整分區的大小。

resize2fs命令的格式如下:

[root@localhost ~]# resize2fs [選項] [設備文件名] [調整的大小]

選項:
  • -f:強制調整;
  • 設備文件名:指定調整哪個分區的大??;
  • 調整的大?。褐付ò逊謪^調整到多大,要加 M、G 等單位。如果不加大小,則會使用整個分區;

我們已經把邏輯卷調整到 2.5GB,這時就需要把整個邏輯卷都加入 /disklvm 分區中,命令如下:

[root@localhost ~]# resize2fs /dev/scvg/lamplv
resize2fs 1.41.12(17-May-2010)
Filesystem at /dev/scvg/lamplv is mounted on/ disklvm; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of/dev/scvg/lamplv to 655360 (4k) blocks.
The filesystem on /dev/scvg/lamplv is now 655360 blocks long.
#已經調整了分區大小
[root@localhost ~]# df -h /disklvm/
文件系統 容量 已用 可用 已用% %掛載點
/dev/mapper/scvg-lamplv 2.5G 35M 2.4G 2% /disklvm
#分區大小已經是2.5GB 了
[root@localhost ~]# ls /disklvm/
lost+found testd testf
#而且數據并沒有丟失

如果要減少邏輯卷的容量,則只需把增加步驟反過來再做一遍就可以了。不過我們并不推薦減少邏輯卷的容量,因為這有可能導致數據丟失。

刪除邏輯卷

刪除了邏輯卷,其中的數據就會丟失,所以要確定你真的需要刪除這個邏輯卷。命令格式如下:

[root@localhost ~]#lvremove 邏輯卷的設備文件名

我們刪除 lamplv 邏輯卷,記得在刪除時要先卸載。 命令如下:

[root@localhost ~]# umount /dev/scvg/lamplv
[root@localhost ~]# Ivremove /dev/scvg/lamplv
Do you really want to remove active logical volume lamplv? [y/n]: n
#如果這里選擇y,就會執行刪除操作,邏輯卷內的所有數據都會被清空
Logical volume lamplv not removed

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩