擴充 AWS 主機硬碟空間
過往我曾經在〈各家 Serverless 短評〉談到主機雲端化帶給我們的便利,剛好最近碰到要擴充 AWS 上某台機器的硬碟,很適合讓人更具體地感受到雲端化對 IT 維運上的優勢,要擴充硬碟只需要進入 AWS 主控台調整一下設定即可,當然自建虛擬機也可以做到同樣的便利性,但自建虛擬機的 host 還是會有硬碟被瓜分光的一天,你各位終究還是要自己去機櫃抽插硬碟的。
想要擴充硬碟空間,第一步是到 AWS 的 EBS 頁面,對目標硬碟做修改設定,在這邊我們是把原本一個 8G 的卷加成 16G:
卷修改完了,但卷內的分割區還是原本的 8G,所以我們登入 shell 去修改分割區。
在修改前,先確認目前的分割區配置:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk -xvda1 202:1 0 8G 0 part /
可以看到 disk 是 16G,但分割區 xvda1 還是只有原本配置的 8G,而剩下的 8G 目前是真空未配置的狀態。
用指令讓分割區 xvda1 吃滿未配置的空間:
$ sudo growpart /dev/xvda 1
再次用 lsblk
驗證結果:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk -xvda1 202:1 0 16G 0 part /
確認分割區已經擴充,但…檔案系統還沒,看 xvda1 的 ext4 還是只擁有約 8G 的空間:
$ df --human-readable --print-type Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 7.7G 7.0G 734M 91% /
所以還要再一步修改檔案系統:
$ sudo resize2fs /dev/xvda1
再次確認:
Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 16G 7.0G 8.5G 46% /
確認變為 16G,至此大功告成。
注意到了嗎,我們擴充硬碟空間的整個程序中,是沒有重新開機的,也不需要什麼高深的熱抽換技術,就兩三個一望即知的指令,隨便拉一個三十年前用過 DOS 的小朋友都會做。
本文是 AWS 文件〈調整磁碟區大小後擴展 Linux 檔案系統〉的 human readable 版。