天天看點

調整EC2的EBS磁盤和分區大小

作者:易雲服ezmsp

作者:ezmsp易雲服科技公有雲架構師王一凡

日常工作運維中,我們在使用AWS雲資源的時候,常常會遇到AWS EC2執行個體存儲卷空間不夠用,需要擴容存儲卷、線上添加存儲卷或由于工作負載變化,需要調整存儲卷類型的情況,這種情況下通常不需要停機,可以線上擴容,線上擴容可以使雲資源的使用更加彈性,以下文檔描述如何線上對雲存儲EBS進行快速擴容.

一、通過AWS控制台對EBS擴容

本文以Amazon Linux 2版本為例。Amazon Linux 2高度相容CentOS 7系列,也使用yum做包管理。是以适用于CentOS的工具都可以在Amazon Linux 2上使用。

1、查找帶有标簽(tag)的EBS磁盤

首先進入EC2子產品,并在左側找到EBS标簽。點選顯示EBS清單。如果在建立EC2時候設定了标簽,那麼EBS也會帶有相應的标簽,會非常便于查找,如下截圖。

調整EC2的EBS磁盤和分區大小

2、查找不帶标簽的EBS磁盤

如果建立EC2時候,沒有設定标簽,那麼EBS磁盤也将不帶有标簽。此時,在EC2界面上新增标簽時候,标簽是不會自動傳遞到EC2所屬的EBS的。這時候,建議采用EC2的Instance ID定位方法。

打開EC2清單,從中找到EC2 Instance ID,複制這個ID,如下截圖。

調整EC2的EBS磁盤和分區大小

将EC2的Instance ID複制到EBS界面的搜尋框中,粘貼ID并搜尋,即可顯示出來特定EC2的EBS磁盤。如果這個EC2沒有資料盤,隻有一個磁盤,那麼home分區就是在這個磁盤上。如下截圖。

調整EC2的EBS磁盤和分區大小

3、修改磁盤大小

找到要修改EBS磁盤後,點選選中,從下拉菜單中選擇修改。如下截圖。

調整EC2的EBS磁盤和分區大小

在彈出的對話框中,輸入要擴容後的容量。例如預設系統是8GB,調整為30GB,然後按修改按鈕。如下截圖。

調整EC2的EBS磁盤和分區大小

點選修改後,系統會提示不需要重新開機EC2即可生效。另外,還需要在作業系統層面對OS卷做擴容方可識别新增空間。這個頁面也給出了Linux和Windows在作業系統層面擴容的參考網址。如下截圖。

調整EC2的EBS磁盤和分區大小

4、确認EBS磁盤擴容生效

以root身份,執行lsblk指令檢視EBS磁盤擴容結果。如下截圖。

所有5系列的EC2執行個體,例如m5、c5、r5,都使用nvme總線的EBS磁盤。是以所有磁盤都是/dev/nvme開頭的。如果是t2系列執行個體,那麼将看到傳統的 /dev/xvda這種盤符。

通過上圖可以可以看到,EBS擴容已經到了30GB。但是在nvme0n1下的分區還是8GB預設值并沒有變化。

二、作業系統内擴容

1、查詢目前容量

在系統内執行 df -h 指令可以看到目前卷的容量。如下截圖。

調整EC2的EBS磁盤和分區大小

這裡看到,EBS擴容雖然硬體規格達到了30GB,但是磁盤是不能立刻被OS識别的到的。還需要在OS上擴容。

2、擴充分區

以root身份執行如下指令:

growpart /dev/nvme0n1 1

其中,/dev/nvme0n1是磁盤表示,後邊的空格數字1表示第一個分區。執行結果如下。

調整EC2的EBS磁盤和分區大小

從以上截圖中,可以看到nvme0n1的p1分區從8GB擴充到了30GB。

3、擴充檔案系統

執行如下指令。

file -s /dev/nvme*

此指令将列出所有磁盤的分區格式。如下截圖。

調整EC2的EBS磁盤和分區大小

繼續擴充檔案系統,ext4和XFS需要分别使用不同的指令。

EXT4執行:

resize2fs /dev/xvda1

XFS執行:

xfs_growfs -d /

在本例中,Amazon Linux 2預設是使用XFS檔案系統的,是以使用第二條指令。執行後,在運作 df -h 檢視,如下截圖。

調整EC2的EBS磁盤和分區大小

由此就實作了不需要重新開機EC2對磁盤擴容。

三、參考文檔

調整卷大小後擴充 Linux 檔案系統

https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html