このエントリーをはてなブックマークに追加

概要

 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
vCPU1
メモリ1GiB
ディスクSSD 8GiB
リージョンアジアパシフィック (東京)

サーバ構成

OSバージョン

CentOS Linux release 7.5.1804 (Core)

ソフトウェア・パッケージ一覧

  • xfsprogs-4.5.0-20.el7.x86_64.rpm

環境構築

(1) Amazon Elastic Block Store (Amazon EBS)のボリュームサイズ変更

 細かい手順は割愛しますが、ディスクを拡張したい対象のEC2インスタンスに アタッチされているブロックデバイスのEBS ID(ボリュームID)を特定し、 「ボリュームの変更」画面でボリュームサイズを変更します。 今回はt2.micro初期値の8GiBから30GiBに拡張します。

(2) 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!

(3) 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

(4) ブロックデバイスのパーティションの拡張

 デバイス 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

(5) 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

参考にしたサイト