linux系統磁碟擴容那些事
阿新 • • 發佈:2021-11-24
背景
以下場景我們經常會遇到:
- 我們在安裝系統的時候可能沒有合理的分配空間,導致某些分割槽空間吃緊,而另外一些空間基本使用不到;
- 由於業務量激增->資料量激增,磁碟空間被用光;
這種情況下重新調整磁碟分割槽就很有必要。但是系統的資料都是很寶貴的,調整空間的前提是保證當前資料不被破壞。
要求
擴容操作不影響系統已經存在的資料,最好不用重啟系統。
相關概念
分割槽:磁碟上的區域劃分,例如windows中常見的C,D,E盤
擴容:增加分割槽的大小
扇區(sector):讀寫磁碟上的資料的最小單位,一般是512bytes
xfs,ext2,ext3,ext4:linux系統中常見的檔案系統格式,xfs可以通過xfs_growfs命令調整檔案系統,但是隻能增大,不能縮小;ext2,ext3,ext4格式的檔案系統可以通過resize2fs命令調整大小,增大和縮小都支援
LVM
PV:物理卷(Physical Volume)
VG:卷組(Volume Group)
LV:邏輯卷(Logical Volume)
PE:物理塊(Physical Extent)
LE:邏輯塊(Logical Extent)
LVM的LV代替了傳統磁碟管理方式中的PV,使磁碟空間的擴充套件和壓縮變得容易。最明顯的優勢是LV中的空間可以來自於多個不同的PV。
傳統磁碟擴容(非LVM)
擴容前提:可用空間緊挨著被擴充分割槽結束扇區的位置
fdisk -l
找到要擴容的磁碟和分割槽情況,我要對/dev/sda1擴容
fdisk /dev/sda
修改磁碟分割槽,輸入m
顯示幫助資訊
- 輸入
d
刪除要擴容的分割槽,只有一個分割槽時會直接刪除,多個分割槽時按提示輸入分割槽號
- 輸入
n
新建分割槽 - 輸入
p
選擇主分割槽或者輸入e
選擇擴充套件分割槽,一般選擇p
,注意linux系統中主分割槽最多隻能有4個,建立4個主分割槽後將無法再新增分割槽 - 按
回車
輸入預設的第一個和最後一個扇區號 - 其他提示輸入
y
- 輸入
w
儲存修改 - 使用
partprobe
重新偵測分割槽,可能報錯,這個時候需要重啟系統 - 調整檔案系統,ext2,ext3,ext4系統使用
resize2fs
命令,xfs系統使用xfs_growfs
,通過mount
命令可以檢視檔案系統的型別
- 通過
df-h
命令檢查分割槽是否已經擴容
LVM擴容(新增分割槽)
- 假設要操作的磁碟為/dev/sda,使用
fdisk /dev/sda
的n
命令建立新分割槽,步驟和傳統磁碟擴容中描述的一致 - 使用
partprobe
重新偵測分割槽,假設新增的分割槽為/dev/sda3 - 使用
pvcreate /dev/sda3
建立PV - 使用
pvdisplay
檢視新建立的PV - 使用
vgdisplay
檢視當前的VG資訊 - 假設新增的PV要增加到名為centos的VG,執行
vg_extend centos /dev/sda3
- 使用
df -h
找到要增加的LV的名稱,假設是/dev/mapper/centos-root - 使用
lvextend -l +100%FREE /dev/mapper/centos-root
將VG中的剩餘空間全部新增到指定的LV,也可以使用lvextend -L +30G /dev/mapper/centos-root
增加指定的大小 - 調整檔案系統,ext2,ext3,ext4系統使用
resize2fs
命令,xfs系統使用xfs_growfs
,通過mount
命令可以檢視檔案系統的型別,例如resize2fs /dev/mapper/centos-root
或者xfs_growfs /dev/mapper/centos-root
- 通過
df-h
命令檢查分割槽是否已經擴容
LVM擴容(PV擴容)
新增分割槽的方式不是任何情況都適用的。例如某個磁碟當前已經有了4個主分割槽,此時如果再擴容則無法使用LVM(新增分割槽)的方式。此時可以將空間增加到特定的PV
擴容前提:可用空間緊挨著被擴充分割槽結束扇區的位置
- 假設要擴容的PV所在的分割槽為/dev/sda4
- 輸入
d
,再根據提示輸入4
刪除要擴容的分割槽 - 輸入
n
新建分割槽 - 輸入
p
選擇主分割槽或者輸入e
選擇擴充套件分割槽,主要需要與刪除前的分割槽屬性一致 - 按
回車
輸入預設的第一個和最後一個扇區號 - 其他提示輸入
y
- 輸入
t
修改分割槽型別 - 輸入
4
選擇要修改的分割槽 - 輸入
8e
將分割槽型別改為linux LVM - 輸入
w
儲存修改 - 使用
partprobe
重新偵測分割槽,可能報錯,這個時候需要重啟系統 - 輸入
pvresize /dev/sda4
調整PV的大小 - 假設LV的名稱為/dev/mapper/centos-root。調整檔案系統,ext2,ext3,ext4系統使用
resize2fs
命令,xfs系統使用xfs_growfs
,通過mount
命令可以檢視檔案系統的型別,例如resize2fs /dev/mapper/centos-root
或者xfs_growfs /dev/mapper/centos-root
- 通過
df-h
命令檢查分割槽是否已經擴容