linux系統磁盤擴容那些事


背景

以下場景我們經常會遇到:

  • 我們在安裝系統的時候可能沒有合理的分配空間,導致某些分區空間吃緊,而另外一些空間基本使用不到;
  • 由於業務量激增->數據量激增,磁盤空間被用光;
    這種情況下重新調整磁盤分區就很有必要。但是系統的數據都是很寶貴的,調整空間的前提是保證當前數據不被破壞。

要求

擴容操作不影響系統已經存在的數據,最好不用重啟系統。

相關概念

分區:磁盤上的區域划分,例如windows中常見的C,D,E盤
擴容:增加分區的大小
扇區(sector):讀寫磁盤上的數據的最小單位,一般是512bytes
xfs,ext2,ext3,ext4:linux系統中常見的文件系統格式,xfs可以通過xfs_growfs命令調整文件系統,但是只能增大,不能縮小;ext2,ext3,ext4格式的文件系統可以通過resize2fs命令調整大小,增大和縮小都支持
LVM:Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。
PV:物理卷(Physical Volume)
VG:卷組(Volume Group)
LV:邏輯卷(Logical Volume)
PE:物理塊(Physical Extent)
LE:邏輯塊(Logical Extent)
image
LVM的LV代替了傳統磁盤管理方式中的PV,使磁盤空間的擴展和壓縮變得容易。最明顯的優勢是LV中的空間可以來自於多個不同的PV。

傳統磁盤擴容(非LVM)

擴容前提:可用空間緊挨着被擴充分區結束扇區的位置

  • fdisk -l找到要擴容的磁盤和分區情況,我要對/dev/sda1擴容
    image
  • fdisk /dev/sda修改磁盤分區,輸入m顯示幫助信息
    image
  • 輸入d刪除要擴容的分區,只有一個分區時會直接刪除,多個分區時按提示輸入分區號
    image
  • 輸入n新建分區
  • 輸入p選擇主分區或者輸入e選擇擴展分區,一般選擇p,注意linux系統中主分區最多只能有4個,建立4個主分區后將無法再新增分區
  • 回車輸入默認的第一個和最后一個扇區號
  • 其他提示輸入y
    image
  • 輸入w保存修改
  • 使用partprobe重新偵測分區,可能報錯,這個時候需要重啟系統
  • 調整文件系統,ext2,ext3,ext4系統使用resize2fs命令,xfs系統使用xfs_growfs,通過mount命令可以查看文件系統的類型
    image
    image
  • 通過df-h命令檢查分區是否已經擴容
    image

LVM擴容(新增分區)

  • 假設要操作的磁盤為/dev/sda,使用fdisk /dev/sdan命令創建新分區,步驟和傳統磁盤擴容中描述的一致
  • 使用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的大小
  • 使用lvextend -l +100%FREE /dev/mapper/centos-root將VG中的剩余空間全部添加到指定的LV,也可以使用lvextend -L +30G /dev/mapper/centos-root增加指定的大小
  • 假設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命令檢查分區是否已經擴容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM