この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
みなさん、おはこんばんにちは!イベント盛りだくさんでブログになかなか手が出せないハウンです?
5月中に書き終える予定だったのが、いつの間に6月になってしまいました... 元々課題の一環として検証してみたもので、今はうっすらとした記憶しか残ってないのですが頑張って書き残しておきます!
パーティション分けといえば、EBSの追加ボリュームを作成してアタッチする方法が一般的です。ですが、EC2ボリューム自体を拡張した場合はどうなるの?という疑問が浮かびます。(ちなみに複数のボリュームを追加するより一つのボリュームを拡張してパーティションを分けたほうがより効率な場合もあるそうです。)
なら、その方法もあるはずだと思い検索してみましたけど、なかなか見つからず...やっと参考できる記事を発見し、なんとか解決できました。
今回はAmazon Linux2のボリュームを拡張して、パーティションを分割してみた手順を記録します。
ボリューム拡張
まず、EC2コンソールに接続します。
'ELASTIC BLOCK STORE(EBS)' - 'ボリューム'を選択して使用しているEC2のボリュームを選択します。
'アクション' - 'ボリューム変更'をクリックすると、ボリュームのサイズを書き換えることができます。検証ですので、2GBだけ増やしてみました。
確認ボタンを押すとボリュームが拡張されていることが確認できます。
パーティション分割
パーティション作成
それでは、パーティションを行うために parted を起動します。
[root@ip-xxx-xx-xx-xxx ec2-user]# parted
GNU Parted 3.1
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
ディスクの総容量を確認するために unit MB
を入力して MB表示に変換後、print
を入力します。
Error と表示され Fix/Ignore/Cancel と聞かれますが、Fix を入力してください。
(parted) unit MB
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 10737MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
128 1.05MB 2.10MB 1.05MB BIOS Boot Partition bios_grub
1 2.10MB 8590MB 8588MB xfs Linux
上記の結果に合わせパーティションを作成します。
(parted) mkpart
Partition name? []? test
File system type? [ext2]? xfs
Start? 8591MB
End? 10736MB
quit
で partedを終了し、reboot
で再起動させましょう。
ファイルシステム作成
先ほどファイルシステムを xfsに指定しましたので、xfs ファイルシステムを作成します。
mkfs.xfs /dev/xvda2
と入力しましょう。
[root@ip-xxx-xx-xx-xxx ec2-user]# mkfs.xfs /dev/xvda2
meta-data=/dev/xvda2 isize=512 agcount=4, agsize=130944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0
data = bsize=4096 blocks=523776, 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
print
を入力して、ちゃんと作成されたか確認します。
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
128 1049kB 2097kB 1049kB BIOS Boot Partition bios_grub
1 2097kB 8591MB 8589MB xfs Linux
2 8591MB 10.7GB 2145MB xfs test
確認できましたら、quit
を入力して partedを終了します。
マウント
まず、マウントするためのディレクトリを作成します。
[root@ip-xxx-xx-xx-xxx ec2-user]# mkdir /data
再起動してもマウントを維持するために /etc/fstab
にパーティション情報を追加する必要があります。
その前に /etc/fstab
のコピーを作成しておきましょう。
[root@ip-xxx-xx-xx-xxx ec2-user]# cp /etc/fstab /etc/fstab.o
blkid
を入力して /dev/xvda2の UUIDをコピーした後、vi /etc/fstab
を入力します。すると既に/dev/xvda1の情報が記録されていることを確認できます。その下に下記のように追加します。
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults,nofail 0 2
ファイル保存後、mount -a
を入力してマウントします。
では、df -h
を入力して結果を確認してみましょう。
[root@ip-xxx-xx-xx-xxx ec2-user]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
tmpfs 99M 0 99M 0% /run/user/1000
/dev/xvda2 2.0G 35M 2.0G 2% /data
/dev/xvda2がマウントされていることを確認できました!?
再起動後にも反映されているか確認してみましょう。
[root@ip-xxx-xx-xx-xxx ec2-user]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
/dev/xvda2 2.0G 35M 2.0G 2% /data
tmpfs 99M 0 99M 0% /run/user/1000
ちなみにlsblk
で確認してみるとこんな感じです。
[root@ip-xxx-xx-xx-xxx ec2-user]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
├─xvda1 202:1 0 8G 0 part /
└─xvda2 202:2 0 2G 0 part /data
最後に
ここまで Amazon Linux2でのボリューム拡張後、パーティション分割を紹介いたしました。
まだ新卒エンジニアとしてはパーティション分割なんて使うことは滅多にないですが、どなたかのお役に立てればと思います。
Linux環境ごとにコマンドが異なったりするので、その点はご注意ください。
以上、新卒エンジニアのハウンでした!