【AWS】EC2にマウントしているEBSの容量を拡張する

2022/11/23

(最終更新: 2022/11/23

アイキャッチ画像

はじめに

AWS EC2 にマウントしている EBS が容量不足で、ソフトウェアが実行できなかったため、拡張することにしました。

実施内容をメモしておきます。

環境

  • AWS EC2 に SSH 接続
    • インスタンスタイプ:m5.large
    • Linux:RED HAT Enterprise Linux 8

起きたこと

以下の記事で、EC2 上に Oracle Database XE 21c をインストールして、データベースを作ろうとしたところ容量不足のエラーが出ました。

【Oracle on EC2】EC2にOracleDatabaseXEをインストールしてみた(RHEL8)

【Oracle on EC2】EC2にOracleDatabaseXEをインストールしてみた(RHEL8)

リレーショナルデータベースとして有名なOracle DatabaseをAWS EC2上に構築する。

https://bunsugi.com/oracle-database-xe-on-ec2
# /etc/init.d/oracle-xe-21c configure
The location '/opt/oracle' specified for database files has insufficient space.
Database creation needs at least '4.5GB' disk space.
Specify a different database file destination that has enough space in the configuration file '/etc/sysconfig/oracle-xe-21c.conf'.

ファイルシステムの残容量を見ると、マウントした EBS の容量が 3.9GB しか残っていませんでした。データベースを作成するためには 4.5GB の容量が必要なようです。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.7G     0  3.7G   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           3.7G   17M  3.7G   1% /run
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/nvme0n1p2   15G   12G  3.9G  75% /tmpfs           747M     0  747M   0% /run/user/1000

解決策

マウントした EBS の容量を拡張します。

df -hコマンドでファイルシステムの容量を確認した時に、/dev/nvme0n1p2のサイズが 20G となっていることがゴールです。

管理者権限ログイン

管理者権限にスイッチします。

$ sudo su

ブロックストレージの拡張

まずは、EC2 にくっつけている EBS 自体の容量が足りていないので拡張します。

lsblkコマンドで物理ディスクの容量を確認します。

# lsblk

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0  15G  0 disk
├─nvme0n1p1 259:1    0   1M  0 part
└─nvme0n1p2 259:2    0  15G  0 part /
  • nvme0n1デバイスの全体容量が 15GB ある。
  • nvme0n1デバイスはパーテーションを 2 つに区切られており、2 つめのパーティションが EC2 の/にマウントされている。

ことがわかります。

lsblkは物理ディスクの一覧を見ることができるコマンドです。「PC にどんな HDD が刺さっているか」というイメージです。

EBS 自体の容量拡張はマネジメントコンソールから行います。 マネージドコンソールから EBS のサイズを 20GB に拡張します。

EBS 設定画面で 「変更」 を押すと設定画面に飛べます。

変更画面

EC2 の再起動は必要ありませんでした。

ひとまずブロックストレージ自体の容量が増えたことを確認します。

# lsblk

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINTnvme0n1     259:0    0  20G  0 disk
├─nvme0n1p1 259:1    0   1M  0 part└─nvme0n1p2 259:2    0  15G  0 part /

EC2 にマウントされているnvme0n1p2のサイズは 15G のままなので、ここを拡張します。

パーティションへの容量割り当て

growpartコマンドで、パーティションへの割り当てを拡張します。

# growpart /dev/nvme0n1 2

第一引数はブロックストレージ名、第二引数はパーティション区分になるようなので、上記のように設定しました。 パーティション区分の確認方法がわからず、lsblkの結果から予想しました。(p1はパーティション 1 でp2はパーティション 2 かな)

再び状況を確認すると、nvme0n1p2のサイズが 20G に増えたことを確認できました。

# lsblk

NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0  20G  0 disk
├─nvme0n1p1 259:1    0   1M  0 part
└─nvme0n1p2 259:2    0  20G  0 part /

ファイルシステムの容量を拡張する

物理ディスクの容量拡張は完了しましたが、 マウント先の EC2 では認識されていないようで、ファイルシステムの容量は増えていません。

# df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.7G     0  3.7G   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           3.7G   17M  3.7G   1% /run
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/nvme0n1p2   15G   12G  4.0G  74% /tmpfs           747M     0  747M   0% /run/user/1000

xfs_growfsコマンドでファイルシステムを拡張します。

AWS 公式によると、ファイルタイプがxfs以外の場合は対処が変わるようです。まずは、df -hTコマンドでファイルタイプの確認が必要です。

# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  3.7G     0  3.7G   0% /dev
tmpfs          tmpfs     3.7G     0  3.7G   0% /dev/shm
tmpfs          tmpfs     3.7G   25M  3.7G   1% /run
tmpfs          tmpfs     3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/nvme0n1p2 xfs        20G   16G  4.3G  79% /tmpfs          tmpfs     747M     0  747M   0% /run/user/1000
# xfs_growfs -d /

meta-data=/dev/nvme0n1p2         isize=512    agcount=7, agsize=655231 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=3931643, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3931643 to 5242363

ファイルシステムを確認すると、容量が増えていることが確認できました。

# df -h

Flesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.7G     0  3.7G   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           3.7G   17M  3.7G   1% /run
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/nvme0n1p2   20G   12G  8.9G  56% /tmpfs           747M     0  747M   0% /run/user/1000

まとめ

EC2 にマウントした EBS の容量を拡張することができました。

参考資料



個別連絡はこちらへ→Twitterお問い合わせ

プロフィール

プロフィールイメージ

はち子

事業会社のシステム部門に異動して4年目の会社員。システム企画/要件定義/システムアーキテクチャ等。

Twitter→@bun_sugi

過去の記事について

はてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。(本ブログに移行中)

タグ一覧

関連記事

Copyright© 2022, エンジニアを目指す日常ブログ

お問い合わせ|プライバシーポリシー