KUSANAGI for AWS は、WordPressが高速に動作する、アマゾンウェブサービス(以下、AWS)用の仮想マシンイメージです。
EC2 インスタンス作成時にマシンイメージ(AMI)でAWS Marketplace にあるKUSANAGI for AWSを選択することで利用出来ます。
無償版と有償版があるのですが、どちらを選択した場合でもKUSANAGI for AWSの仕様により30GBで仮想ディスクが割り当てられます 。
その為、KUSANAGI for AWS を選択してインスタンスを新規で作成する際に、以下の画像のように30GB以上のEBSを作成した場合には、インスタンス起動後にディスクの拡張作業を行う必要があります 。
そうしないと500GBでインスタンスを起動したにも関わらず30GB しかディスク容量を利用出来ない為です。
今回仕様で30GBで割り当てられた場合、インスタンス作成時に指定したディスク容量を全て使えるようにする手順について説明します。
※
今回説明する拡張手順は「KUSANAGI for AWS」のみの説明になります。
一般的なEC2インスタンスのディスク拡張とは別の手順になります。
環境について
以下の環境を想定して記述しています。特にディスク容量につきましては500GBとした場合の手順となりますので適宜読み替えて下さい。
・マシンイメージ(AMI)でAWS Marketplace にあるKUSANAGI for AWSを選択
・EBS 500GBにて作成
状態の確認
SSHでログインし、何もせずに現在のパーティションを確認すると / ディレクトリが約30GB(dfコマンドの結果上は28GB)で表示されます。
# df -H
Filesystem Size Used Avail Use % Mounted on
devtmpfs 17G 0 17G 0 % /dev
tmpfs 17G 0 17G 0 % /dev /shm
tmpfs 17G 8.9M 17G 1 % /run
tmpfs 17G 0 17G 0 % /sys /fs /cgroup
/dev /mapper /centos -root 28G 5.9G 23G 21 % /
/dev /nvme0n1p1 1.1G 192M 873M 18 % /boot
tmpfs 3.4G 0 3.4G 0 % /run /user /1000
しかし、「lsblk」で、現在利用できるブロックデバイスを確認してみると、nvme0n1というブロックデバイス名で確かにインスタンス起動時に指定した500GBが割り当てられていることが分かります。
※1 「lsblk」(list block devices)は、現在利用できるブロックデバイスを一覧表示するコマンドで各ブロックデバイスをツリー状に表示するので、パーティションの状態を視覚的に把握でき、ストレージの構成やデバイス番号を確認したいときに役立ちます。
# lsblk
NAME MAJ : MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259 : 0 0 500G 0 disk
tqnvme0n1p1 259 : 1 0 1G 0 part /boot
mqnvme0n1p2 259 : 2 0 29G 0 part
tqcentos -root 253 : 0 0 26G 0 lvm /
mqcentos -swap 253 : 1 0 3G 0 lvm [ SWAP ]
「vgdisplay」でボリュームグループの詳細情報も確認しておきます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read /write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size < 29.00 GiB
PE Size 4.00 MiB
Total PE 7423
Alloc PE / Size 7423 / < 29.00 GiB
Free PE / Size 0 / 0
VG UUID 0ETi6c -x65p -UOPA -VmYo -l0eB -e3R7 -j5XTfH
注意
ここからディスク拡張の為の実作業となりますので実施の際には十分注意して行って下さい。
また、今回紹介した方法を実行したことで問題が発生した場合でも、一切の責任や保証は負えませんので、全て自己責任でお願いいたします。
ご了承のうえで読み進めください。
パーティションの作成
Linux LVM形式のパーティションを作成します。
30GB以降は空の状態で提供されている為、「fdisk」を使ってLVM形式のパーティションを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# fdisk /dev/nvme0n1
Welcome to fdisk ( util -linux 2.23.2 ) .
Changes will remain in memory only , until you decide to write them .
Be careful before using the write command .
コマンド ( m でヘルプ) : p
Disk /dev /nvme0n1 : 536.9 GB , 536870912000 bytes , 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size ( logical /physical ) : 512 bytes / 512 bytes
I /O サイズ ( 最小 / 推奨) : 512 バイト / 512 バイト
Disk label type : dos
ディスク識別子: 0x00017ac7
デバイス ブート 始点 終点 ブロック Id システム
/dev /nvme0n1p1 * 2048 2099199 1048576 83 Linux
/dev /nvme0n1p2 2099200 62914559 30407680 8e Linux LVM
コマンド ( m でヘルプ) : n ←新規パーティションを作成
Partition type :
p primary ( 2 primary , 0 extended , 2 free )
e extended
Select ( default p ) : p ←プライマリパーティションを作成
パーティション番号 ( 3 , 4 , default 3 ) : 3 ←3 番目のパーティションを作成
最初 sector ( 62914560 -1048575999 , 初期値 62914560 ) : ←エンターキーを押下
初期値 62914560 を使います
Last sector , +sectors or +size { K , M , G } ( 62914560 -1048575999 , 初期値 1048575999 ) : ←エンターキーを押下
初期値 1048575999 を使います
Partition 3 of type Linux and of size 470 GiB is set ←残容量である470GB のパーティションが作成される
コマンド ( m でヘルプ) : t ←パーティションのタイプを変更する
パーティション番号 ( 1 -3 , default 3 ) : 3 ←3 番目のパーティションを選択
Hex code ( type L to list all codes ) : 8e ←Linux LVM を意味する'8e' を入力する
Changed type of partition 'Linux' to 'Linux LVM'
コマンド ( m でヘルプ) : w ←書き込みを行う
パーティションテーブルは変更されました!
ioctl ( ) を呼び出してパーティションテーブルを再読込みします。
WARNING : Re -reading the partition table failed with error 16 : デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table . The new table will be used at
the next reboot or after you run partprobe ( 8 ) or kpartx ( 8 )
ディスクを同期しています。
パーティションの認識
次に、新しいパーティションを認識させる為、再起動するか、partprobeコマンドを実行します。
ここではpartprobeコマンドにより/dev/nvme0n1p3を認識させます。
新しいパーティション「/dev/nvme0n1p3」が認識されていることを確認します。
# ls -lah /dev/nvme0*
crw -------. 1 root root 245 , 0 Dec 2 18 : 54 /dev /nvme0
brw -rw ----. 1 root disk 259 , 0 Dec 3 10 : 17 /dev /nvme0n1
brw -rw ----. 1 root disk 259 , 1 Dec 3 10 : 17 /dev /nvme0n1p1
brw -rw ----. 1 root disk 259 , 2 Dec 3 10 : 17 /dev /nvme0n1p2
brw -rw ----. 1 root disk 259 , 3 Dec 3 10 : 17 /dev /nvme0n1p3 ←←←追加された
ルートボリュームへのパーティション追加とディスクの拡張
pvcreate コマンドを使用して、パーティションから物理ボリュームを作成します。次の例では、/dev/nvme0n1p3 から物理ボリュームを作成します。
# pvcreate /dev/nvme0n1p3
Physical volume "/dev/nvme0n1p3" successfully created .
ボリュームの拡張
vgextend コマンドを使用して、ボリュームグループを拡張し、新しいボリュームを追加します。次の例では、ボリュームグループ centos を拡張してボリューム/dev/nvme0n1p3 を含めます
# vgextend centos /dev/nvme0n1p3
Volume group "centos" successfully extended
lvextend コマンドを実行して、論理ボリュームを拡張します。
# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos /root changed from < 26.00 GiB ( 6655 extents ) to 495.99 GiB ( 126974 extents ) .
Logical volume centos /root successfully resized .
xfs_growfs コマンドを実行してファイルシステムを拡張します。
# xfs_growfs /
meta -data =/dev /mapper /centos -root isize =512 agcount =4 , agsize =1703680 blks
= sectsz =512 attr =2 , projid32bit =1
= crc =1 finobt =0 spinodes =0
data = bsize =4096 blocks =6814720 , imaxpct =25
= sunit =0 swidth =0 blks
naming =version 2 bsize =4096 ascii -ci =0 ftype =1
log =internal bsize =4096 blocks =3327 , version =2
= sectsz =512 sunit =0 blks , lazy -count =1
realtime =none extsz =4096 blocks =0 , rtextents =0
data blocks changed from 6814720 to 130021376
拡張結果の確認
最後にdfでディスクの空き容量を確認してみましょう。サイズが533GB程度になっていれば成功です。
(サイズが500GBでなく533GBとなるのは計算方法による差です)
# df -H
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 4.1G 0 4.1G 0 % /dev
tmpfs 4.1G 0 4.1G 0 % /dev /shm
tmpfs 4.1G 8.9M 4.1G 1 % /run
tmpfs 4.1G 0 4.1G 0 % /sys /fs /cgroup
/dev /mapper /centos -root 533G 5.8G 527G 2 % /
/dev /nvme0n1p1 1.1G 192M 873M 18 % /boot
tmpfs 806M 0 806M 0 % /run /user /1000
「vgdisplay」でボリュームグループの詳細情報を確認するとVG Sizeがほぼ500GBになっていることが確認出来るはずです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read /write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 498.99 GiB
PE Size 4.00 MiB
Total PE 127742
Alloc PE / Size 127742 / 498.99 GiB
Free PE / Size 0 / 0
VG UUID 0ETi6c -x65p -UOPA -VmYo -l0eB -e3R7 -j5XTfH
KUSANAGI for AWSのディスク容量を拡張する手順は以上です。
テストサーバの構築をデフォルトの30GBで行っていた場合、気付きにくい部分ではないでしょうか?
テストサーバのディスクイメージを使って、大容量の本番サーバを構築する際にも利用出来るテクニックとなります。
それでは!