阿里雲伺服器磁碟擴容

洋蔥土豆隨心匠發表於2017-02-04

今天將公司的阿里雲服務的磁碟進行了擴容,對於之前對linux命令不是非常瞭解的我來說,還是感覺挺緊張刺激的。主要是分割槽這塊,之前一直不敢動,後來瞭解到只是擴容分割槽不會影響資料,就大膽的嘗試了。最終按照指導文件完成了擴容。複製一份官方文件以備不時之需。

https://help.aliyun.com/document_detail/25452.html?spm=5176.doc35095.2.4.1UPCbH

 

fuser -m /data  檢視碟符被佔用情況

 

隨著業務的增長,您的磁碟容量可能無法滿足資料儲存的需要,這時您可以擴容磁碟。擴容磁碟後,之前磁碟上的資料仍會保留。

本文件介紹的方法只適用於資料盤。如果要擴容系統盤,需要採用更換系統盤的方式。請參考 更換系統盤

擴容須知

擴容前

  • 建議在擴容磁碟之前 手動建立快照,以備份資料。
  • 磁碟上如果正在執行建立快照的操作,則此時不允許進行擴容操作。
  • 只做磁碟容量的擴容,不做檔案系統的擴容。
  • 支援普通盤的擴容,不支援本地盤(本地磁碟、本地 SSD 盤)的擴容。
  • 掛載在例項上的資料盤,只有例項為 執行中 (Running) 或者 已停止 (Stopped) 狀態時,才可以進行擴容操作。
  • 如果您尚未對磁碟進行過格式化、掛載等操作,請參考 格式化和掛載資料盤 先進行格式化和掛載。

擴容後

  • 使用 ECS 控制檯或者 Open API 擴容磁碟之後,需要在 ECS 控制檯或者使用 Open API 重啟例項之後才可以生效。
  • 擴容生效之後的磁碟,仍然需要使用者手動格式化擴充套件的儲存空間。

操作步驟

本文件以 Ubuntu 14.04 系統為例,介紹如何進行磁碟擴容。其他 Linux 系統的操作相似。

本例項中,選定最初的磁碟大小為 63 GB,我們將其擴容到 70 GB。

    1. 登入 雲伺服器管理控制檯

    2. 單擊左側導航中的 例項。然後選擇頁面頂部的地域。

    3. 首先進入磁碟列表頁面,點選 更多 > 磁碟擴容。注意只有 資料盤 才有該選項。對於 系統盤, 需要通過 更換系統盤 的方式進行擴容。 

    4. 進入擴容頁後,填寫擴容後的磁碟容量大小,單擊 去擴容。 

    5. 重啟伺服器。進入例項列表頁面,點選 更多,選擇 重啟。 

    6. 登入到 ECS 例項。

    7. 如果磁碟是之前是 mount 在伺服器上的,先 umount 磁碟。

      1. umount /mnt/dev1
    8. 刪除原有分割槽並新建分割槽。如果此前未分割槽,直接格式化使用,請直接跳到第 9 步。

      有些使用者使用 parted 工具來操作分割槽,但是 parted 和 fdisk 不能交叉使用的,否則會導致分割槽的起始扇區不一致的問題。因此刪除原有分割槽建新分割槽的時候,請按照如下步驟進行操作:

      1). 使用 fdisk -l 羅列一下分割槽資訊並記錄一下即將擴容磁碟的最終容量、起始扇區位置。

      2). 使用 fdisk 指令,輸入 d 來刪除原有的分割槽。

      3). 依次輸入 n,p,1 來新建分割槽。

      4). 選擇 sector 時,在此示例中直接回車選擇預設值,您也可以按照自己的需求來選擇。為了保證資料的一致性,First sector 建議和之前的分割槽保持一致。


      下面是使用 fdisk的示例:

      1. root@iZ94lw423m7Z:~# fdisk /dev/xvdb
      2. Command (m for help): d
      3. Selected partition 1
      4. Command (m for help): n
      5. Partition type:
      6. p primary (0 primary, 0 extended, 4 free)
      7. e extended
      8. Select (default p): p
      9. Partition number (1-4, default 1): 1
      10. First sector (2048-146800639, default 2048):
      11. Using default value 2048
      12. Last sector, +sectors or +size{K,M,G} (2048-146800639, default 146800639):
      13. Using default value 146800639
      14. Command (m for help): wq
      15. The partition table has been altered!
      16. Calling ioctl() to re-read partition table.
      17. Syncing disks.

      如果在 First sector 這發現位置和之前記錄的不一致,說明之前可能使用了 parted 來分割槽的,那麼就停止當前的 fdisk 操作,使用 parted 重新操作。

      使用 parted 指令,輸入p羅列當前的分割槽情況,如有則使用 rm+ 序列號來刪除老的分割槽表,然後使用 unit s 定義起始位置單位使用扇區個數計量,最後使用 mkpart 命令來建立即可,如下圖所示。

    9. 檢查檔案系統,並變更檔案系統大小。

      使用 e2fsck 的時候由於系統需要檢查並訂正檔案系統後設資料,所以速度較慢、耗時較長,請耐心等待。

      使用 e2fsck 和 resize2fs 指令,正確操作情況下,不會造成原有資料丟失的。

      1. e2fsck -f /dev/xvdb1
      2. resize2fs /dev/xvdb1
    10. 將擴容完畢的磁碟掛載回原有的掛載點。

      1. mount /dev/xvdb1 /mnt/dev1
    11. 用 df -TH 指令可以檢視到磁碟的資訊。

      1. df -TH
      2. Filesystem Type Size Used Avail Use% Mounted on
      3. /dev/xvda1 ext4 22G 1.4G 19G 7% /
      4. none tmpfs 4.1k 0 4.1k 0% /sys/fs/cgroup
      5. udev devtmpfs 510M 4.1k 510M 1% /dev
      6. tmpfs tmpfs 105M 381k 104M 1% /run
      7. none tmpfs 5.3M 0 5.3M 0% /run/lock
      8. none tmpfs 521M 0 521M 0% /run/shm
      9. none tmpfs 105M 0 105M 0% /run/user
      10. /dev/xvdb1 ext4 74G 55M 71G 1% /mnt/dev1

相關文章