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)で表示されます。
1 2 3 4 5 6 7 8 9 |
# 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)は、現在利用できるブロックデバイスを一覧表示するコマンドで各ブロックデバイスをツリー状に表示するので、パーティションの状態を視覚的に把握でき、ストレージの構成やデバイス番号を確認したいときに役立ちます。
1 2 3 4 5 6 7 |
# 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を認識させます。
1 |
# partprobe |
新しいパーティション「/dev/nvme0n1p3」が認識されていることを確認します。
1 2 3 4 5 6 |
# 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 から物理ボリュームを作成します。
1 2 |
# pvcreate /dev/nvme0n1p3 Physical volume "/dev/nvme0n1p3" successfully created. |
ボリュームの拡張
vgextend コマンドを使用して、ボリュームグループを拡張し、新しいボリュームを追加します。次の例では、ボリュームグループ centos を拡張してボリューム/dev/nvme0n1p3 を含めます
1 2 |
# vgextend centos /dev/nvme0n1p3 Volume group "centos" successfully extended |
lvextend コマンドを実行して、論理ボリュームを拡張します。
1 2 3 |
# 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 コマンドを実行してファイルシステムを拡張します。
1 2 3 4 5 6 7 8 9 10 11 |
# 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となるのは計算方法による差です)
1 2 3 4 5 6 7 8 9 |
# 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で行っていた場合、気付きにくい部分ではないでしょうか?
テストサーバのディスクイメージを使って、大容量の本番サーバを構築する際にも利用出来るテクニックとなります。
それでは!