如何對Linux的默認LVM空間進行擴容
1.Linux LVM簡介
Linux Logical Volume Manager(LVM)是一種用于管理磁盤和存儲空間的軟件工具, 它提供了一種靈活的方式來管理邏輯卷(Logical Volumes)和卷組(Volume Groups)。LVM的工作原理涉及到幾個核心概念:
- 物理卷(Physical Volume, PV):物理卷是物理硬盤或分區, 被LVM用于存儲數據。LVM將一個或多個物理卷組合成卷組。
- 卷組(Volume Group, VG):卷組是由一個或多個物理卷組成的邏輯存儲單元。在卷組上創建邏輯卷,它們可以動態分配和回收存儲空間。一個系統可以包含多個卷組。
- 邏輯卷(Logical Volume, LV):邏輯卷是在卷組上創建的邏輯存儲單元。它們可以被格式化成文件系統, 并像普通硬盤分區一樣被掛載到文件系統樹上。邏輯卷的大小和位置是可以在運行時動態調整的, 而無需停機或重啟系統。
下面是一個可視化的LVM工作原理圖, 假設有5個不同的磁盤, 每個磁盤都有一個映射到物理卷(PV)的分區, 所有磁盤都被分組成單個卷組(VG), 卷組被分成兩個不同的邏輯卷(LV), 每個LV都用于一個文件系統,如圖:
圖片
假設在ubuntu系統上劃分了一個100GB空間的磁盤, 根據LVM原理,劃分層次如下:
2.Linux系統安裝程序默認設置
以ubuntu系統為例, 在安裝ubuntu系統的過程中, 會出現批準存儲布局的屏幕提示, 默認情況下, 存儲布局將有幾個小的引導分區和第三個分區, LVM將使用該分區來創建根文件系統, 如圖:
圖片
圖片
3.使用默認可用空間
在ubuntu默認情況下, 根文件系統使用的空間還不到總磁盤空間的一半, 首先使用df -h命令檢查根文件系統的可用空間, 如下圖:
從上圖可以看到, 只使用了大約49GB空間的14%, 在實際正常使用過程中, 這點空間可能一瞬間就會被占滿, 這次的目標就是對這49GB的卷進行擴容。
要檢查卷組上的現有可用空間(安裝程序默認設置留下的空間), 可以運行: vgdisplay命令檢查可用空間,如圖:
從上圖中可以看到, 大約還有49.25GB的空間可使用, 當然, 這里的可用空間也可能會不夠, 在下面會講到。
要使用根邏輯卷(LV)的卷組(VG)上的可用空間, 可以先運行: lvdisplay命令檢查邏輯卷大小, 然后運行:
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
將LV擴充到可用的最大大小, 之后再次運行lvdisplay以確保其更改成功,如圖:
此時已經增加了根文件系統所在的塊卷的大小, 但仍然需要在其之上擴展文件系統, 運行df -h來檢查根文件系統, 然后運行命令:
resize2fs /dev/mapper/ubuntu — vg-ubuntu — lv
擴展文件系統, 并再次運行df -h確認,如圖:
圖片
可以看到, 已經將系統默認留下的空間分配成功, 如果空間仍然不夠, 則需要擴展基礎磁盤來分配更多空間。
4.擴展物理磁盤空間
假設擴展空間計劃是將現在的100GB擴展到200GB, 在實際應用中, 擴展的空間可能是虛擬機或RAID控制器或其它存儲系統, 首先執行:cfdisk命令檢查并查看是否列出了可用空間, 完成后使用q退出,如圖:
如果沒有看到列出的可用空間,可以使用:
echo 1>/sys/class/block/sda/device/rescan
啟動 /dev/sda 的重新掃描, 完成后, 重新運行cfdisk, 這時應該可以看到新的可用空間了,如圖:
從列表中選擇/dev/sda3分區,然后從底部菜單中選擇"調整大小"。按下Enter鍵, 它會提示確認新大小, 再次按Enter鍵, 將看到/dev/sda3分區擁有新的空間大小。
從底部菜單中選擇"Write", 輸入yes進行確認, 然后按Enter鍵, 輸入q退出程序。
現在/dev/sda3物理卷(PV)的LVM分區已經完成擴展, 接著需要擴展PV, 運行命令:
pvresize /dev/sda3
執行該操作, 然后使用pvdisplay檢查新大小,如圖:
圖片
現在可以看到, PV已從98.5GB增加到198.5GB, 再次使用vgdisplay檢查卷組(VG)的可用空間,如圖:
圖片
可以看到VG有100GB的可用空間, 繼續輸入命令:
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
擴展LV以用完VG的所有可用空間, 然后執行lvdisplay命令確保更改成功,如圖:
圖片
此時根文件系統的塊卷已完成擴展, 但文件系統本身還沒有調整大小來適應新的卷, 首先df -h檢查一下文件系統的當前大小, 然后運行命令:
resize2fs /dev/mapper/ubuntu — vg-ubuntu — lv
調整大小, 并再次運行df -h檢查新文件系統可用空間,如圖:
圖片
可以看到,已經成功擴展了物理磁盤,并將可用空間一直向上延續到LVM抽象層, 根文件系統已經有足夠的空間使用。