Ads 468x60px

Pages

1/31/2017

修改 CentOS 邏輯磁卷大小

以下操作建議在本機上操作,避免因為遠端登入造成無法執行 umount 指令
CentOS 版本:6.6
  1. 檢查邏輯磁卷的相關資訊
    lvdisplay

    顯示內容如下:(部分敏感內容以 OOXX 取代)
    [dev]$ lvdisplay

    --- Logical volume ---
      LV Path                /dev/vg_OOXX/lv_root
      LV Name                lv_root
      VG Name                vg_OOXX
      LV UUID                oPVxAh-cu2y-4750-9hNJ-XmBY-It8B-KgWGGf
      LV Write Access        read/write
      LV Creation host, time OOXX, 2015-06-10 12:12:10 +0800
      LV Status              available
      # open                 1
      LV Size                50.00 GiB
      Current LE             12800
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0

      --- Logical volume ---
      LV Path                /dev/vg_OOXX/lv_home
      LV Name                lv_home
      VG Name                vg_OOXX
      LV UUID                hTClT0-QN8A-4pNP-U7Wp-RIoa-oj5i-rQd4Re
      LV Write Access        read/write
      LV Creation host, time OOXX, 2015-06-10 12:12:22 +0800
      LV Status              available
      # open                 1
      LV Size                441.68 GiB
      Current LE             113070
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:2

      --- Logical volume ---
      LV Path                /dev/vg_OOXX/lv_swap
      LV Name                lv_swap
      VG Name                vg_OOXX
      LV UUID                d3WPau-VfG9-2ida-CkiS-t7pp-k7om-VEtRri
      LV Write Access        read/write
      LV Creation host, time OOXX, 2015-06-10 12:13:36 +0800
      LV Status              available
      # open                 1
      LV Size                7.83 GiB
      Current LE             2004
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:1
     
  2. 檢查既有磁碟掛載項目
    df -h
    顯示內容如下:
    [dev]$ df -h
    Filesystem            Size Used Avail Use% Mounted on
    /dev/mapper/vg_OOXX-lv_root   50G 49G  0   100% /
    tmpfs              3.9G  0  3.9G  0% /dev/shm
    /dev/sda1            679G 89M 644G  1% /boot
    /dev/mapper/vg_OOXX-lv_home  435G 166M 413G  1% /home

    上述的 root 已無空間可使用,故要縮小 home 的磁卷大小,將釋放出的空間給 home 使用
     
  3. 卸載 home 磁卷
    umount /home/

    此步驟若是出現無法正常卸載,則利用
    fuser -m /home 查詢哪一個執行序正在使用該磁卷(Ref. 2)
    將該執行緒刪除即可
    若是遠端連入操作,則刪除時極有可能會把遠端連線刪除,故建議一定要在本機上操作
     
  4. 卸載 /home 之後,先檢查該磁卷狀態,若無錯誤訊息,繼續執行下一個步驟
    e2fsck -f /dev/mapper/vg_OOXX-lv_home
     
  5. 在檔案系統中,將 home 大小從 435G 縮減為 30G
    resize2fs /dev/mapper/vg_OOXX-lv_home 30G
     
  6. 檢查邏輯磁卷是否已經更新
    lvdisplay | less

    參數 | less 用於讓顯示結果一頁一頁顯示,避免還需往回捲動察看
     
  7. 檢查磁卷群組可使用的閒置空間(Free space)
    vgdisplay

    此步驟由於尚未進行縮減邏輯磁卷的動作,所以 Free space 的地方仍會顯示 0
     
  8. 將邏輯磁卷 home 的大小縮減為 30G
    lvreduce -L 30G /dev/mapper/vg_OOXX-lv_home

    執行過程會詢問是否縮減,請按下 y
     
  9. 檢查可用來擴充的空間大小有多少
    vgdisplay

    此例顯示的 Free Space 為 411.68 G
     
  10. 再次執行縮減 home 空間的指令,此步驟以確認為主,執行結果應會顯示 Nothing to do.
    resize2fs /dev/mapper/vg_OOXX-lv_home 30G
     
  11. 將可用的 411G 分配給 root 磁卷
    lvextend -L +411G /dev/mapper/vg_OOXX-lv_root
     
  12. 確認邏輯磁卷 root 的空間大小是否已經完成調整
    lvdisplay | less
     
  13. 確認 root 空間大小是否已經更新
    df -h

    由於尚未在檔案系統中重新調整大小,此處的 root 空間仍會顯示舊有資訊
     
  14. 在檔案系統中更改 root 的空間大小
    resize2fs /dev/mapper/vg_OOXX-lv_root

    此過程所需運作時間視空間大小而不同,空間越大所需時間越久,以本例而言,約 10 分鐘
     
  15. 檢查磁卷大小是否已經更新
    df -h
     
  16. 將一開始卸載的磁區重新掛載
    mount -a
     
  17. 確認是否有將之前 umount 的磁卷重新掛載
    df -h


參考網址:
1. reduce and extend logical volume in centos, https://youtu.be/zJYjh_r00zA
2. https://blog.longwin.com.tw/2008/11/debian-ubuntu-linux-umount-device-busy-2008/