虛擬機器中CentOS-7.9的硬碟空間擴容(EXSI)

駱三瘋發表於2022-05-12

大家好,我是LSF,發現一臺虛機上 /dev/mapper/centos-root Use%已經快滿了,決定擴容,安全起見,先搞一臺閒置的虛機,試驗一下。

一、增加虛機容量

在exsi管理web介面中,先關閉虛機,點選 “編輯”,選擇擴充套件後的容量。我這個原先總容量是200G。需要單獨給centos-root目錄從50G擴充套件待100G,所以將總容量改成250G。然後啟動虛機。

切換 root 使用者,fdisk -l 一下,看到 /dev/sda: 空間已經增加了,但是分割槽還是原來的,還需要新增新分割槽,才能去擴充套件指定的系統檔案。

二、建立新的分割槽

fdisk /dev/sda 看一下,命令參考如下,之後根據提示選擇相應的命令即可。

Command (m for help): m
Command action
   a   toggle a bootable flag // 切換一個可引導標誌
   b   edit bsd disklabel // 編輯bsd磁碟標籤
   c   toggle the dos compatibility flag // 切換dos相容性標誌
   d   delete a partition // 刪除分割槽
   g   create a new empty GPT partition table // 建立一個新的空GPT分割槽表
   G   create an IRIX (SGI) partition table  // 建立一個IRIX(SGI)分割槽表
   l   list known partition types // 列出已知的分割槽型別
   m   print this menu // 檢視幫助選單
   n   add a new partition  // 增加新分割槽
   o   create a new empty DOS partition table // 建立一個新的空DOS分割槽表
   p   print the partition table  // 檢視分割槽表
   q   quit without saving changes // 不儲存更改而退出
   s   create a new empty Sun disklabel // 建立一個新的空 Sun 磁碟標籤
   t   change a partition's system id  // 更改分割槽的系統id
   u   change display/entry units // 更改顯示/輸入單位
   v   verify the partition table // 驗證分割槽表
   w   write table to disk and exit // 將表寫入磁碟並退出
   x   extra functionality (experts only) // 額外功能(僅限專家)

過程截圖如下

使用以下 fdisk 命令建立新分割槽

p: (print)可檢視現有分割槽
n:(new)建立新分割槽
    p:(primary)選擇主分割槽
    3:選擇的分割槽號(sda1、sda2主分割槽編號佔用,可選3和4)
    回車:起始扇區用預設即可
    回車:結束刪除用預設即可
t: 更改分割槽的系統id
    3: 選擇剛建立的分割槽sda3
    8e: 修改成使用ID為8e的LVM (LVM是邏輯盤卷管理機制(Logical Volume Manager))
w:將分割槽表寫入磁碟並退出

過程截圖如下

根據最後的提示 The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8) 讓你重啟虛機、或者 partprobe 重讀分割槽表、 或者 kpartx 重新掛載虛擬檔案系統。我這裡使用 partprobe 重讀分割槽表,這樣不用重啟虛機。再執行 fdisk -l 可以檢視到新建立的分割槽sda3

三、格式化新分割槽

通過 lsblk -f 檢視分割槽的原先分割槽的檔案系統型別為xfs,centos 7 使用的是xfs檔案系統

通過 mkfs.xfs -f /dev/sda3 格式化 sda3 分割槽。

四、lvm實現卷擴容

檢視需要擴充套件的檔案系統目錄,df -h 檢視目錄連結為 /dev/mapper/centos-root,或者 lvdisplay 檢視目錄為 /dev/centos/root

lvm 管理命令擴充套件指定卷

lvm 進入 lvm 指令模式
    vgdisplay
        檢視虛機卷組 (包含多個物理卷)我這裡卷組為 centos,
         
    pvcreate /dev/sda3
        初始化剛建立的分割槽為物理卷
    
    vgextend centos /dev/sda3  
        將新建立的物理卷擴充套件到虛機卷組 
        centos 為 卷組名稱,可通過 vgdisplay 檢視
    
    vgdisplay
        記住 Free PE:如12800

    lvextend -l +12800 /dev/mapper/centos-root
        擴充套件已有檔案系統邏輯卷的容量
        lvextend 指令用於線上擴充套件邏輯卷的空間大小,而不中斷應用程式對邏輯卷的訪問。
            -l: 指定邏輯卷要擴充套件大小,單位為PE數(如上面Free PE 的12800)
            -L: 指定邏輯卷的大小,單位為Size(如K、M、G、T等)
    quit
        退出 lvm

lvm 操作截圖如下:

  1. 檢視虛機卷組 (包含多個物理卷)我這裡卷組為 centos,

  2. 初始化剛建立的分割槽為物理卷、將新建立的物理卷擴充套件到虛機卷組

  3. 擴充套件已有檔案系統邏輯卷的容量

  4. 檢視擴充套件結果

五、檔案系統的擴容

完成卷擴容,接下來做檔案系統的擴容,這一步很簡單,xfs_growfs /dev/mapper/centos-root 即可,然後 df -h 檢視一下。

相關文章