Oracle Cloud: コンピュート作成後のブート・ボリュームのサイズ拡張してみてみた

コンピュート作成時にデフォルト50GB値より大きく設定した場合、コンピュート作成後にブート・ボリュームのサイズ拡張を実施する必要があります。
よく忘れるので、ということでしてみてみます。




# ■ Linux コンピュート作成
デフォルト50Gより大きいサイズで作成
今回 100GB で作成します。

# ■ ローカルディスク確認
df, lsblk等で ルート・ボリューム(/) のサイズを確認します。

**1) lsblk 確認**
現在利用できるブロックデバイスを一覧表示
sda デバイスが 100G であることを確認
```
[opc@linux-inst .ssh]$ lsblk
  NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
	sda                  8:0    0  100G  0 disk
	├─sda1               8:1    0  100M  0 part /boot/efi
	├─sda2               8:2    0    1G  0 part /boot
	└─sda3               8:3    0 45.5G  0 part
	  ├─ocivolume-root 252:0    0 35.5G  0 lvm  /
	  └─ocivolume-oled 252:1    0   10G  0 lvm  /var/oled
```

**2) df 確認**
ファイルシステム上の合計スペースと使用可能なスペースの情報を表示します。
/(ルートディレクトリ)の Size が 36G で 100G 利用されていないことを確認

```
[opc@linux-inst .ssh]$ df -hT
  Filesystem                 Type      Size  Used Avail Use% Mounted on
  devtmpfs                   devtmpfs  3.4G     0  3.4G   0% /dev
  tmpfs                      tmpfs     3.4G     0  3.4G   0% /dev/shm
  tmpfs                      tmpfs     3.4G  9.1M  3.4G   1% /run
  tmpfs                      tmpfs     3.4G     0  3.4G   0% /sys/fs/cgroup
  /dev/mapper/ocivolume-root xfs        36G  8.5G   27G  24% /
  /dev/sda2                  xfs       924M  317M  608M  35% /boot
  /dev/mapper/ocivolume-oled xfs        10G  106M  9.8G   2% /var/oled
  /dev/sda1                  vfat      100M  6.2M   94M   7% /boot/efi
  tmpfs                      tmpfs     690M     0  690M   0% /run/user/0
  tmpfs                      tmpfs     690M     0  690M   0% /run/user/988
  tmpfs                      tmpfs     690M     0  690M   0% /run/user/1000
```

# ■ ルート・ボリューム(/)拡張
Oracle Cloud Infrastructure Block Volumeサービスを使用すると、ブロック・ボリュームおよびブート・ボリュームがオンラインでインスタンスにアタッチされているときに、これらのサイズを拡大できます。
ボリュームがプロビジョニングされたら、オペレーティング・システムが拡張ボリューム・サイズを識別できるように、コマンドを実行してディスクを再スキャンする必要があります。アタッチされたインスタンスのオペレーティング・システムに応じて、異なる再スキャン・コマンドを実行する必要があります。


## ● Linuxベースのインスタンスにアタッチされたボリュームのディスクの再スキャン
Linuxベースのインスタンスにアタッチされたボリュームの場合、次のコマンドを実行して、ブロック・ボリュームのディスクを再スキャンします。
```
[opc@linux-inst .ssh]$ sudo dd iflag=direct if=/dev/sda of=/dev/null count=1
  1+0 records in
  1+0 records out
  512 bytes copied, 0.00103932 s, 493 kB/s

[opc@linux-inst .ssh]$ echo "1" | sudo tee /sys/class/block/sda/device/rescan
1
```




## ● パーティション拡張
ディスクを再スキャンしたら、パーティションを次のコマンドで拡張します。
Expanding partition /dev/sda3: Confirm?   [y/N] と表示されたら、y を入力して拡張します。

```
[opc@linux-inst .ssh]$ sudo /usr/libexec/oci-growfs
	Volume Group: ocivolume
	Volume Path: /dev/ocivolume/root
	Mountpoint Data
	---------------
	          mountpoint: /
	              source: /dev/mapper/ocivolume-root
	     filesystem type: xfs
	         source size: 35.4G
	                type: lvm
	                size: 35.5G
	    physical devices: ['/dev/sda3']
	    physical volumes: ['/dev/sda', '/dev/sda']
	    partition number: ['3']
	   volume group name: ocivolume
	   volume group path: /dev/ocivolume/root
	
	Partition dry run expansion "/dev/sda3" succeeded.
	CHANGE: partition=3 start=2304000 old: size=95371264 end=97675264 new: size=207411167 end=209715167
	
	Expanding partition /dev/sda3: Confirm?   [y/N] y
	
	Partition expand expansion "/dev/sda3" succeeded.
	update-partition set to true
	resizing 3 on /dev/sda using resize_sfdisk_gpt
	209715200 sectors of 512. total size=107374182400 bytes
	## sfdisk --unit=S --dump /dev/sda
	label: gpt
	label-id: 0D63DACB-00AD-478C-932D-9121EF399109
	device: /dev/sda
	unit: sectors
	first-lba: 34
	last-lba: 209715166
	
	/dev/sda1 : start=        2048, size=      204800, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=8A4DD0EA-0DC4-4662-B506-A000B0EE6E65, name="EFI System Partition"
	/dev/sda2 : start=      206848, size=     2097152, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=91B75293-44F9-4B1C-80F3-600BE1C9B4CD
	/dev/sda3 : start=     2304000, size=    95371264, type=E6D6D379-F507-44C2-A23C-238F2A3DF928, uuid=5DBFC3C9-4299-45C0-965F-2D60AF0C2BE2
	padding 33 sectors for gpt secondary header
	max_end=209715167 tot=209715200 pt_end=97675264 pt_start=2304000 pt_size=95371264
	resize of /dev/sda returned 0.
	
	CHANGED: partition=3 start=2304000 old: size=95371264 end=97675264 new: size=207411167 end=209715167
	
	Extending /dev/sda3 succeeded.
	Device /dev/sda3 extended successfully.
	Logical volume /dev/ocivolume/root extended successfully.
```

## ● 拡張確認
**1) lsblk 確認**
拡張前と変わらず、sda デバイスが 100G であることを確認
```
[opc@linux-inst .ssh]$ lsblk
  NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  sda                  8:0    0  100G  0 disk
  ├─sda1               8:1    0  100M  0 part /boot/efi
  ├─sda2               8:2    0    1G  0 part /boot
  └─sda3               8:3    0 98.9G  0 part
    ├─ocivolume-root 252:0    0 88.9G  0 lvm  /
    └─ocivolume-oled 252:1    0   10G  0 lvm  /var/oled
```

**2) df 確認**
/(ルートディレクトリ)の Size が 36G から 89G へ 拡張されていることを確認

```
[opc@linux-inst .ssh]$ df -hT
	Filesystem                 Type      Size  Used Avail Use% Mounted on
	devtmpfs                   devtmpfs  3.4G     0  3.4G   0% /dev
	tmpfs                      tmpfs     3.4G     0  3.4G   0% /dev/shm
	tmpfs                      tmpfs     3.4G  9.1M  3.4G   1% /run
	tmpfs                      tmpfs     3.4G     0  3.4G   0% /sys/fs/cgroup
	/dev/mapper/ocivolume-root xfs        89G  8.9G   80G  10% /
	/dev/sda2                  xfs       924M  317M  608M  35% /boot
	/dev/mapper/ocivolume-oled xfs        10G  107M  9.8G   2% /var/oled
	/dev/sda1                  vfat      100M  6.2M   94M   7% /boot/efi
	tmpfs                      tmpfs     690M     0  690M   0% /run/user/0
	tmpfs                      tmpfs     690M     0  690M   0% /run/user/988
	tmpfs                      tmpfs     690M     0  690M   0% /run/user/1000
```

# ■ 参考
　・[ボリュームのサイズ変更](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/resizingavolume.htm)
　・[Linuxベースのインスタンスにアタッチされたボリュームのディスクの再スキャン](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/rescanningdisk.htm)
　・[Windowsインスタンスにアタッチされたボリュームのディスクの再スキャン](https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/rescanningdisk.htm)