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

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

amazon linux2 ではファイルシステムとしてxfsが使用されているのでxfsのコマンドを使用する。

参考

Linux インスタンス用ユーザーガイド

何をするのか?

この操作はAWSのwebコンソールでEBSボリュームの拡張が行われていることを前提とする。

EBSボリュームの拡張を行った段階ではディスクのサイズは拡張されているがそれがファイルシステムに反映されていない状態になっている。

ファイルシステムに反映されていないとOSが認識できないのでアプリケーションやユーザーがそれを使うことができず、せっかくのストレージが無いのと同じことになってしまう。

EBSボリュームをファイルシステムに反映させるために下記の操作を行う。

  1. ディスクのパーティションファイルシステムのどこにマウントされているのかを確認する。
  2. 1で確認したパーティションの拡張を行う。
  3. 2で行ったパーティションの拡張をファイルシステムに反映させる。

$ df -Th # ファイルシステムのディスクの空き容量を確認する
$ lsblk # アタッチされているブロックデバイスのパーティションを含めた容量を確認する
$ sudo growpart /dev/nvme0n1 1 # ルートボリュームのパーティションを拡張
$ sudo xfs_growfs -d / # XFSファイルシステムを拡張(/は対象のマウントポイント)
$ df -h # ボリュームサイズがファイルシステムに反映されていることを確認

各コマンド

manより抜粋

df

ファイルシステムのディスクの使用状況を出力する。

-Tオプションを指定することでディスクを管理しているファイルシステムの種別を確認することができる。

lsblk

ブロックデバイスのリストを出力する。

ブロックデバイスとはその読み書きがブロック単位で行われるデバイスのことでHDDやSDDなどが該当する。

lsblkではRAMディスクを除く全てのブロックデバイスパーティションも含めてtree風の形式で出力される。

また、MOUNTPOINTを確認することもできる。

growpart

指定したパーティションに可能な限りの領域を割り当てて拡張を行う。 パーティションに未割り当てで利用可能となってる領域を割り当てる。

第一引数にディスクのデバイスファイル名を指定し、第二引数にパーティション番号を指定する。

xfs_growfs

既存のxfsファイルシステムの指定のMOUNTPOINTの領域を拡張する。

MOUNTPOINTを引数にとる。MOUNTPOINTはファイルシステムがマウントされているディレクトリの名前。

-dのオプションで拡張したいサイズを指定することができるがサイズを指定しない場合は可能な範囲での最大サイズの割り当てを行う。