AWS EC2 for Linux 擴充硬碟大小

Posted by Polin on Mon, Jul 18, 2022

AWS EC2 for Linux 擴充硬碟大小

在 AWS EC2 上運行的 Linux 實例中,隨著資料需求增長,擴充 EBS 磁碟空間變得必要。本指南將介紹如何安全地擴充磁碟,包括從 AWS Console 調整磁碟大小到 Linux 系統內重新分配空間的步驟,幫助您有效管理 EC2 的儲存需求。

檢查當前磁碟狀態

進到AWS的Console中,進入系統內利用指令觀看目前使用的硬碟磁區大小,可以明顯看出來 /dev/xvda1 只有 8G

df -h

目前容量

使用 lsblk 列出目前主機上的硬碟設備掛載資訊,這邊可以看出 xvda1 本身大小就只有 8G

lsblk

掛載資訊

目前可以看出來硬碟只有 8G,我們目標要將硬碟擴增到 20G。

擴展磁碟大小

我們先到進入 EC2 的詳細Console頁面,點選 Storage Tab,並且點選 Volume ID

AWS Console Volume位置

將會直接導向到 Volume 的 Console 頁面,再選取該 Volume,點選右上角的Actions 後,點選 Modify volume 。

AWS Console Volume修改

點選 Modify volume 後,會進入調整硬碟種類及大小的頁面。

AWS Console Volume調整大小

修改 Size(GiB) 欄位到 20 ,代表該硬碟的總大小調整成 20 GiB,調整完畢後按下右下角 Modify 的橘色按鈕。

AWS Console Volume調整大小

點選 Modify 後,會跳出警告訊息,告知一些注意事項,這邊確認沒問題後,點選 Modify 橘色按鈕,表示確定修改。

AWS Console Volume調整大小

點選後,該 Volume state 就會變成In-use — optimizing (0%),表示調整完正在優化,並且此時在Console頁面就能看到硬碟的大小從原本的 8Gib 已經變成 20Gib

AWS Console Volume優化
AWS Console Volume優化

重新掃描分區以反映變更

進入 Linux 系統中,執行最上面的兩個指令,我們可以看到lsblk的部分,xvda 已經變成 20G

重新掃描分區以反映變更

但是 xvda1 以及 目錄的部分並沒有增加

重新掃描分區以反映變更

這時候我們必須先擴增 xvda1 的可用硬碟空間配置,執行下面的這個指令

sudo growpart /dev/xvda 1

執行後會出現類似的反饋,

重新掃描分區以反映變更

這表示已經將 xvda1 的可用硬碟空間配置已經從原本的 8G 變成 20G,我們可以執行指令看到相關的變化

重新掃描分區以反映變更

此時的目錄空間依舊還不會改變

重新掃描分區以反映變更

擴展檔案系統(xfs)

接下來我們要重新配置可用的硬碟空間,因此我們必須先看該硬碟空間是什麼類型,可以執行以下指令

df -Th

以下我們先介紹如果類型為 xfs,如果ext2、ext3、ext4文件系統寫在後面。

我們可以看到 /dev/xvda1 的類型為 xfs

擴展檔案系統

因此必須執行 xfs 的重新配置可用硬碟空間指令

sudo xfs_growfs /dev/xvda1

執行成功後,會顯示

擴展檔案系統

接下來在執行 df -h 的指令,可以看到目錄空間已經變成 20G。

擴展檔案系統

如果 xfs 類型的硬碟,使用 resize2fs 就會出現失敗狀況。

擴展檔案系統

擴展檔案系統(ext)

接下來我們介紹如果硬碟類型為 ext 系列的話,如何重新配置可用硬碟空間。

可以看到 /dev/xvdf1 為 etx4 類型。

擴展檔案系統

執行調整 ext 系列的重新配置可用硬碟空間指令如下

sudo resize2fs /dev/xvdf1

執行後可以看到成功的回應。

擴展檔案系統

接下來在執行 df -h 的指令,可以看到目錄空間已經變成 20G。

擴展檔案系統

如果 ext 類型的硬碟,使用 xfs_growfs 就會出現失敗狀況。

擴展檔案系統