OCIインスタンスを停止せずにブート・ボリュームを拡張する方法

 2021.08.31  株式会社テリロジー 技術統括部

こんにちは、Tachanです。

つい最近ですが、当ブログのRSSボタンを用意いたしました!
ページ下部から取得できますので、ご設定いただけますと幸いです。

今回はインスタンスを起動したまま、ディスクの容量を拡大してみます!
使うリソースは、インスタンスとブート・ボリュームで
主にSSHアクセスで操作していきます。

ブロック・ボリュームとは

ブロック・ボリュームの1つで、インスタンスを起動するのに必要なファイルが保存されているストレージです。
インスタンスを作成すると自動的にブート・ボリュームが作成されます。

インスタンスを終了するときに、一緒にブート・ボリュームを削除することができますが
そのまま残しておき、新規インスタンスに適用することも可能です。

拡張手順 ①現在のボリュームサイズ確認

①ディスク容量確認
以下のコマンドで現在のディスク容量を確認します。

$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 47G 0 disk #現在は47GBの容量 tqsda1 8:1 0 512M 0 part /boot/efi tqsda2 8:2 0 8G 0 part [SWAP] mqsda3 8:3 0 38.1G 0 part / $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 7.7G 17M 7.7G 1% /run tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/sda3 39G 7.7G 31G 20% / #今回はsda3の容量を増やす /dev/sda1 512M 12M 501M 3% /boot/efi tmpfs 1.6G 0 1.6G 0% /run/user/994 tmpfs 1.6G 0 1.6G 0% /run/user/1000

また、ボリュームはGUIからも確認ができます。

拡張手順 ①現在のボリュームサイズ確認

拡張手順 ②ボリュームサイズの変更

GUIから、ボリュームサイズを47GBから70GBに変更します。

拡張手順 ②ボリュームサイズの変更 画像01

変更を保存すると、プロビジョニング後に実行するコマンドが表示されるので控えておきます。

拡張手順 ②ボリュームサイズの変更 画像02

拡張手順 ③パーティションの設定

ボリュームの適用後、拡張手順②で控えたコマンドを実行し、パーティションを拡張します。
仕様インスタンスのOSによってパーティション拡張の手順が異なります。

Oracle Linuxを使用している場合、Oracle Linuxを簡単に操作できるように事前にインストールされたパッケージがあります。
ここでは、ルート・ファイルシステムを構成したサイズに拡張するoci-growfsを使います。
Windowsを使用している場合、Windowsインタフェース、またはコマンドラインからDISKPARTを使用してパーティションを拡張します。

手順などの詳細は以下のヘルプから確認が可能です。
https://docs.oracle.com/ja-jp/iaas/Content/Block/Tasks/extendingbootpartition.htm

今回はLinuxのCentOS 7を使用している場合の手順をご紹介します。

まず、GUIDパーティションテーブル(GPT)をインストールします。
GPTはLinux環境でよく利用されているパーティション拡張ツールです。

$ sudo yum install gdisk

次に、growpartコマンドでパーティション拡張します。
ここでは拡張したいデバイス名を引数に指定しコマンドを実行します。(今回はsda3を拡張)

$ sudo growpart /dev/sda 3

パーティション情報をプリントすると、sda3が拡張されているのが確認できます。

$ sudo parted /dev/sda print Model: ORACLE BlockVolume (scsi) Disk /dev/sda: 75.2GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat16 EFI System Partition boot 2 538MB 9128MB 8590MB linux-swap(v1) 3 9128MB 75.2GB 66.0GB xfs

次にsda3ではXFSのファイルシステムを使用しているため、XFSのサイズ拡張を行います。
XFSファイルシステムのサイズは、ファイルシステムがマウントされているとき
xfs_growfsコマンドを使用して増加させることができます。

$ sudo xfs_growfs -d / meta-data=/dev/sda3 isize=512 agcount=4, agsize=2495232 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9980928, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4873, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9980928 to 16121595

拡張手順 ④拡張後のボリューム確認

拡張は完了したので、再度ディスク容量を確認します。

$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 70G 0 disk  #GUIで変更した70GBが適用されている tqsda1 8:1 0 512M 0 part /boot/efi tqsda2 8:2 0 8G 0 part [SWAP] mqsda3 8:3 0 61.5G 0 part / $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 7.7G 17M 7.7G 1% /run tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/sda3 62G 7.7G 54G 13% / #sda3に拡張した容量が割り当てられている /dev/sda1 512M 12M 501M 3% /boot/efi tmpfs 1.6G 0 1.6G 0% /run/user/994 tmpfs 1.6G 0 1.6G 0% /run/user/1000

最後に

以上で、インスタンスを起動したまま、ブート・ボリュームの拡張をすることができました!
インスタンスを停止させることなく拡張できるのは、可用性も上がりますしありがたい限りですね。

最後までお読みいただきありがとうございました。


RECENT POST「OCIで作ってみた」の最新記事


OCIで作ってみた

OCVSにブロック・ボリュームをアタッチして、vSphereのデータストアに追加してみた

OCIで作ってみた

Fn Projectを使用したAPI開発

OCIで作ってみた

OCVSをデプロイしてみた 前半

OCIで作ってみた

OCVSをデプロイしてみた 後半

OCIインスタンスを停止せずにブート・ボリュームを拡張する方法