寫在前面
在日常使用Linux的時候,不免碰到一個比較尷尬的問題,磁盤空間不夠用了!這個時候,正常情況下,我們有2個辦法解決這個問題。
1. 重新分配一個新的分區(qū),掛載在所需要的目錄下。
2. 備份數(shù)據(jù),重新安裝系統(tǒng),重新將磁盤分區(qū)。
但是,無論選擇哪個方法,都不夠優(yōu)雅,而且,一般情況下重裝系統(tǒng)會需要重新所有必須的軟件,而第一種辦法又無法擴(kuò)展/分區(qū)。所以才會有下面使用LVM管理磁盤。
創(chuàng)建PV
在虛擬機(jī)中新建了一個10G的磁盤,使用sudo fdisk -l 命令列出如下
其中/dev/sdc是新建的磁盤,接下來,我們可以將整個磁盤作為一個PV,也可以將sdc分區(qū)后,再將其中的某個分區(qū)作為一個PV。下面我采用的是第一種方案:將整個磁盤作為一個PV。
通過sudo pvcreate /dev/sdc就可以將磁盤創(chuàng)建成了一個PV,sudo pvscan 可以查看目前存在哪些PV。由上圖可以知道sdc剛創(chuàng)建,還沒加入到某一個VG里面。
創(chuàng)建VG
通過sudo vgcreate vg1 /dev/sdc 創(chuàng)建了一個VG,其中物理卷/dev/sdc屬于個vg1,其實我們可以在創(chuàng)建vg1時,指定多個物理卷。
我們還可以通過sudo vgdisplay 顯示更加詳細(xì)的信息
我們可以通過sudo vgextend vg1 /dev/sdd 給vg1擴(kuò)展一個物理卷軸。
也可以通過 sudo vgreduce vg1 /dev/sdd 給vg1移除一個物理卷軸。
當(dāng)然,我們也可以通過 sudo vgremove vg1 直接刪除一個vg
也可以通過 sudo pvremove /dev/sdd 刪除 一個pv
創(chuàng)建LV
LV是建立在一個VG上的。下面是LV的創(chuàng)建和刪除
sudo lvcreate -L 10G -n lv1 vg1
在vg1卷軸組的基礎(chǔ)上創(chuàng)建了一個大小10G的邏輯卷軸lv1
當(dāng)然,我們也可以創(chuàng)建一個使用了卷軸組vg1全部空間的邏輯卷軸
sudo lvcreate -l 5118 -n lv1 vg1
可以從下圖看出PE總數(shù)量是5118
接下來,才是重頭戲,擴(kuò)展邏輯卷軸的大小。
sudo lvextend -L +5G /dev/vg1/lv1 ?擴(kuò)展5G
sudo lvextend -L 15G /dev/vg1/lv1 ?直接設(shè)置成15G,注意這個15G必須大于原來的值
sudo lvextend -l +50 /dev/vg1/lv1 ?擴(kuò)展50個PE大小
sudo lvextend -l 3000 /dev/vg1/lv1? 直接設(shè)置成3000個PE,注意這個3000必須大于原來的值
有擴(kuò)展,就有縮減。
sudo lvreduce -L -5G /dev/vg1/lv1 ?減少5G
sudo lvreduce -L 5G /dev/vg1/lv1? 直接設(shè)置成5G,注意這個5G必須小于原來的值
sudo lvreduce -l -50 /dev/vg1/lv1 ?減少50個PE大小
sudo lvreduce -l 1000 /dev/vg1/lv1直接設(shè)置成1000個PE,注意這個1000必須小于原來的值
剩下的,就是格式化和掛載了,超出了本文介紹的范圍。如果邏輯分區(qū)卷軸已經(jīng)掛載到文件系統(tǒng)了,那么我們在改變了卷軸大小后,需要使用
reszie2fs /dev/vg1/lv1 更新分區(qū)大小