Linux on VPC のboot volume拡張(XFSファイルシステム）

当記事は2024年4月14日時点の情報に基づき作成しています。


## はじめに

IBM Cloud VPCのLinuxのboot volumeのディスク領域拡張の手順です。

## 前提

テストに使用した環境

VPC:　
IBM Cloud Virtual server instances for VPC

OS:
Rocky Linux 9.3

対象ディスク:　
VSIのboot　volume（XFS　ファイルシステム）

## 手順概要

1. VSIのboot volumeサイズをIBM Cloudポータルから拡張する
1. partedコマンドでパーティションサイズを拡張する
1. Linuxをリブートする

## テスト


IBM Cloudポータルでディスク拡張する前のディスクの状況を確認します。
ここでは、lsblコマンド、dfコマンド、fdiskコマンドを使用しました。

#### 事前準備

【lsblk】
```
[sugata@testvsi ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0  100G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  200M  0 part /boot/efi
└─vda3 253:3    0 97.7G  0 part /
vdb    253:16   0  368K  0 disk
vdc    253:32   0   44K  0 disk
```
【lsblk -f】
```
[sugata@testvsi ~]$ lsblk -f
NAME   FSTYPE  FSVER            LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
vda
├─vda1
├─vda2 vfat    FAT16            EFI        68F6-BA12                             192.8M     3% /boot/efi
└─vda3 xfs                      gpt        685721d8-e5c0-4603-b6a0-19a839ed0ec0   95.3G     2% /
vdb    iso9660 Joliet Extension cidata     2024-04-14-02-05-51-00
vdc    swap    1                SWAP-xvdb1 110c09ea-5bb9-4b26-bcd8-20941c7b9e7d
```

【df -h】
```
[sugata@testvsi ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  8.6M  1.5G   1% /run
/dev/vda3        98G  2.4G   96G   3% /
/dev/vda2       200M  7.0M  193M   4% /boot/efi
tmpfs           769M     0  769M   0% /run/user/1001
```

【sudo fdisk -l】
```
[sugata@testvsi ~]$ sudo fdisk -l
[sudo] password for sugata:
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4A8F456D-C44B-4546-8754-F86D68644578

Device      Start       End   Sectors  Size Type
/dev/vda1    2048      4095      2048    1M BIOS boot
/dev/vda2    4096    413695    409600  200M EFI System
/dev/vda3  413696 205213695 204800000 97.7G Linux filesystem


Disk /dev/vdb: 368 KiB, 376832 bytes, 736 sectors
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 /dev/vdc: 44 KiB, 45056 bytes, 88 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[sugata@testvsi ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  8.6M  1.5G   1% /run
/dev/vda3        98G  2.4G   96G   3% /
/dev/vda2       200M  7.0M  193M   4% /boot/efi
tmpfs           769M     0  769M   0% /run/user/1001
```


上記実行結果の通り、100GBのディスクを利用しています。
今回はルートディレクトリを拡張するので、拡張対象は/dev/vda3、ファイルシステムはXFSと確認しました。


#### 1.　ディスク拡張

ディスク容量を100GBから200GBに容量拡張します。
容量拡張はIBM Cloudポータルから操作しました。

対象のVSIのboot volumeのActionからExpand　volumeを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/63f0f7bd-0648-57fd-1f66-b47626aa2a6c.png)

拡張後のサイズを指定してSave and continueで拡張します。
ここでは現行100GBから200GBに拡張しています。
（boot volumeの拡張上限は250GBです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/c45494e1-c6a3-56da-b72d-134d35788ad6.png)

ディスク拡張は即時反映です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/da3f4fbf-3cf5-6483-6f2d-390cc8b70056.png)

Linux側で、先ほどと同様にコマンドを実行して結果を確認します。

lsblkコマンドでディスクサイズが200GBになっていることが確認できます。
```
[sugata@testvsi ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0  200G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  200M  0 part /boot/efi
└─vda3 253:3    0 97.7G  0 part /
vdb    253:16   0  368K  0 disk
vdc    253:32   0   44K  0 disk
```

一方、lsblk -fコマンドと、df -hコマンドではルートディレクトリはまだ拡張されていないことがわかります。
```
[sugata@testvsi ~]$ lsblk -f
NAME   FSTYPE  FSVER            LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
vda
├─vda1
├─vda2 vfat    FAT16            EFI        68F6-BA12                             192.8M     3% /boot/efi
└─vda3 xfs                      gpt        685721d8-e5c0-4603-b6a0-19a839ed0ec0   95.3G     2% /
vdb    iso9660 Joliet Extension cidata     2024-04-14-02-05-51-00
vdc    swap    1                SWAP-xvdb1 110c09ea-5bb9-4b26-bcd8-20941c7b9e7d
```

```
[sugata@testvsi ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  8.6M  1.5G   1% /run
/dev/vda3        98G  2.4G   96G   3% /
/dev/vda2       200M  7.0M  193M   4% /boot/efi
tmpfs           769M     0  769M   0% /run/user/1001
```


#### 2.　パーティション拡張

ルートディレクトリはXFSなのでpartedコマンドを使用してパーティションを拡張します。


parted コマンド
```
#　parted [対象のパーティション]
```

今回は、/dev/vda　（パーティション番号3）を空き領域全て拡張するので、以下のように実行しました。

```
[sugata@testvsi ~]$ sudo parted /dev/vda resizepart 3 100%
Warning: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra
209715200 blocks) or continue with the current setting?
Fix/Ignore? f
Partition number? 3
Warning: Partition /dev/vda3 is being used. Are you sure you want to continue?
Yes/No? Yes
Information: You may need to update /etc/fstab.
```

dfコマンドで確認します。
```
[sugata@testvsi ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  8.6M  1.5G   1% /run
/dev/vda3        98G  2.4G   96G   3% /
/dev/vda2       200M  7.0M  193M   4% /boot/efi
tmpfs           769M     0  769M   0% /run/user/1001
```
この時点ではまだ拡張領域が認識されていません。


#### Reboot

Linuxをリブートします。

```
sudo reboot
```

dfコマンドで確認すると、ルートディレクトリが拡張されていることがわかります。

```
[sugata@testvsi ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           1.6G  8.6M  1.5G   1% /run
/dev/vda3       200G  3.1G  197G   2% /
/dev/vda2       200M  7.0M  193M   4% /boot/efi
tmpfs           769M     0  769M   0% /run/user/1001
```

lsblk -fコマンドでも同様に拡張を確認できました。

```
[sugata@testvsi ~]$ lsblk -f
NAME   FSTYPE  FSVER            LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
vda
├─vda1
├─vda2 vfat    FAT16            EFI        68F6-BA12                             192.8M     3% /boot/efi
└─vda3 xfs                      gpt        685721d8-e5c0-4603-b6a0-19a839ed0ec0  196.7G     2% /
vdb    iso9660 Joliet Extension cidata     2024-04-14-02-05-51-00
vdc    swap    1                SWAP-xvdb1 110c09ea-5bb9-4b26-bcd8-20941c7b9e7d
```

### おわりに

上記手順で、VSIのboot volume拡張ができました。
リブートが必要ですが、簡単に短時間でルートディレクトリを拡張できることが確認できました。



### 追記

RHEL 9.x on VPCも確認したところ、手順としては同じでしたが、ルートディレクトリは/dev/vda4　でした。
パーティション番号の事前確認は大事ということを学びました。

```
[sugata@test-vsi02 ~]＄ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G   17M  1.6G   2% /run
/dev/vda4       200G  2.8G  197G   2% /
/dev/vda3       495M  247M  249M  50% /boot
/dev/vda2       200M  7.0M  193M   4% /efi
tmpfs           794M     0  794M   0% /run/user/0

[sugata@test-vsi02 ~]＄ sudo parted /dev/vda resizepart 4 100%
Warning: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra 209715200
blocks) or continue with the current setting?
Fix/Ignore? f
Partition number? 4
Warning: Partition /dev/vda4 is being used. Are you sure you want to continue?
Yes/No? y
End?  [107GB]? 107GB
Information: You may need to update /etc/fstab.
```