AWSのEBSボリュームサイズ変更し、xfsファイルシステムを拡張する
目次
概要
AWSのEC2インスタンスを利用してデータの加工作業をやっていると、 t2.microのディスクの初期サイズである8GiBでは足りなくなってきたので拡張しました。 その時のメモです。
t2.microのデフォルトでは8GiBのESBボリュームが1つアタッチされてるので、 このサイズを拡張します。 拡張作業にはESBボリュームのサイズ変更、パーティションの拡張、ファイルシステムの拡張の3段階あります。 AWSのマネジメントコンソールとTeraTermを使って作業します。
構成
検証環境
サーバにはAmazonのEC2インスタンスを利用しました。 AmazonマシンイメージはAWS標準のものではなく、AWS Marketplaceから取得しています。 サーバのスペックは以下のとおりです。
項目 | 内容 |
---|---|
Amazonマシンイメージ | CentOS 7 (x86_64) - with Updates HVM |
インスタンスタイプ | t2.micro |
vCPU | 1 |
メモリ | 1GiB |
ディスク | SSD 8GiB |
リージョン | アジアパシフィック (東京) |
サーバ構成
OSバージョン
CentOS Linux release 7.5.1804 (Core)
ソフトウェア・パッケージ一覧
- xfsprogs-4.5.0-20.el7.x86_64.rpm
環境構築
設定
Amazon Elastic Block Store (Amazon EBS)のボリュームサイズ変更
細かい手順は割愛しますが、ディスクを拡張したい対象のEC2インスタンスに アタッチされているブロックデバイスのEBS ID(ボリュームID)を特定し、 「ボリュームの変更」画面でボリュームサイズを変更します。 今回はt2.micro初期値の8GiBから30GiBに拡張します。
XFS管理ユーティリティのインストール
今回使用したAMIのファイルシステムはCentOS 7でデフォルトのXFSとなっていました。 XFSファイルシステムを拡張するには専用の管理ユーティリティが必要となるので、yumでインストールします。
# yum -y install xfsprogs Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 pgdg10 | 3.6 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/4): base/7/x86_64/group_gz | 165 kB 00:00:00 (2/4): extras/7/x86_64/primary_db | 152 kB 00:00:00 (3/4): updates/7/x86_64/primary_db | 1.1 MB 00:00:00 (4/4): base/7/x86_64/primary_db | 6.0 MB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package xfsprogs.x86_64 0:4.5.0-15.el7 will be updated ---> Package xfsprogs.x86_64 0:4.5.0-20.el7 will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Updating: xfsprogs x86_64 4.5.0-20.el7 base 896 k Transaction Summary ======================================================================================================================== Upgrade 1 Package Total download size: 896 k Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. xfsprogs-4.5.0-20.el7.x86_64.rpm | 896 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Updating : xfsprogs-4.5.0-20.el7.x86_64 1/2 Cleanup : xfsprogs-4.5.0-15.el7.x86_64 2/2 Verifying : xfsprogs-4.5.0-20.el7.x86_64 1/2 Verifying : xfsprogs-4.5.0-15.el7.x86_64 2/2 Updated: xfsprogs.x86_64 0:4.5.0-20.el7 Complete!
XFSファイルシステム拡張前の確認
AWSのコンソールでEBSのサイズを変更すると、Linuxの再起動なしで即座にデバイスサイズに反映されます。 Linuxで認識されているディスクのサイズは大きくなっても、ファイルシステムのサイズは変更前の8GiBのままです。
# fdisk -l Disk /dev/xvda: 32.2 GB, 32212254720 bytes, 62914560 sectors ←デバイスは30GiBで認識されている Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000acf0a Device Boot Start End Blocks Id System /dev/xvda1 * 2048 16777215 8387584 83 Linux # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8377344 5961324 2416020 72% / ←ファイルシステムは8GiBのまま devtmpfs 484356 0 484356 0% /dev tmpfs 506944 8 506936 1% /dev/shm tmpfs 506944 57512 449432 12% /run tmpfs 506944 0 506944 0% /sys/fs/cgroup tmpfs 101392 0 101392 0% /run/user/1000
ブロックデバイスのパーティションの拡張
デバイス xvda に作成されたパーティション mqxvda1 のサイズ8Gを、デバイスサイズと同じ30Gまで拡張します。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk mqxvda1 202:1 0 8G 0 part / ←拡張前のパーティションは8G # growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=16775168 end=16777216 new: size=62912479,end=62914527 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk mqxvda1 202:1 0 30G 0 part / ←拡張後のパーティションは30G
XFSファイルシステムの拡張
/ のファイルシステムを拡張可能な最大サイズまで拡張します。
# xfs_growfs -d / meta-data=/dev/xvda1 isize=512 agcount=4, agsize=524224 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=2096896, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal 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 2096896 to 7864059 # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 31445996 5919816 25526180 19% / devtmpfs 484356 0 484356 0% /dev tmpfs 506944 8 506936 1% /dev/shm tmpfs 506944 57512 449432 12% /run tmpfs 506944 0 506944 0% /sys/fs/cgroup tmpfs 101392 0 101392 0% /run/user/1000