Rocky Linuxのディスク容量を拡張する方法(Azure VMでのOSディスク、データディスク拡張手順)

2020-03-22Azure,Managed Disks,Rocky Linux/CentOS,Virtual Machines

仮想マシン(Azure VM)のディスク容量を拡張してLinuxで利用するための手順です。
Rocky Linux環境で確認しています。

OSディスクを拡張した場合とデータディスクを拡張した場合の手順を紹介しています。
ファイルシステムにはLVM(Logical Volume Manager)を利用した場合の手順と、標準のパーティション管理を利用した場合の手順を確認しています。

※本記事では、Azure Virtual Machines(Azure VM)を仮想マシン、Azure Managed Disks(マネージドディスク)をディスクとして表記しています。
※Rocky Linux release 9.6 (Blue Onyx)を利用しています。
※XFSファイルシステムを使用した環境で確認しています。
※手順確認は、仮想マシンがオンラインの状態で実施しています。

スポンサーリンク

Azure環境で仮想マシンのディスクサイズを拡張する場合の手順

仮想マシンのディスク容量を拡張する場合の手順については、こちらで紹介しています。
また仮想マシンにディスクを追加する場合の手順についても、別記事にて紹介しております。

Rocky LinuxのOSディスク容量(サイズ)を拡張する場合の手順(LVMの場合)

公式サイトを参考に手順を確認します。
今回は10GiBのOSディスクを32GiBまで容量を拡張します。

OS ディスクのサイズを増やす(Linux VM の仮想ハード ディスクを拡張する)

ディスクのサイズを大きくした後のOS状態を確認

容量を拡張したディスクがOSからどのように認識されているかを、lsblk、gdisk、dfコマンドを利用して確認します。
OSのディスクは/dev/nvme0n1として認識されています。
物理ディスクの容量が10GiBから32GiBに拡張されていることが確認できます。
ただし、パーティション、ボリューム、ファイルシステムは未拡張の状態であることが分かります。

    • lsblk : ブロックデバイスの情報を一覧表示
    • pvs : LVMの物理ボリューム情報を表示
    • df : マウントされているファイルシステムの空き領域を表示

[root@vm-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 32G 0 disk  # 物理ディスクのサイズが拡張されています
├─nvme0n1p1 259:1 0 2M 0 part
├─nvme0n1p2 259:2 0 100M 0 part /boot/efi
├─nvme0n1p3 259:3 0 1000M 0 part /boot
└─nvme0n1p4 259:4 0 8.9G 0 part   # パーティションのサイズは拡張されていません
  └─rocky-lvroot 253:0 0 8.8G 0 lvm /

[root@vm-01 ~]# pvs /dev/nvme0n1p4 
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p4 rocky lvm2 a– <8.92g 132.00m # 物理ボリュームは拡張されていません

[root@vm-01 ~]#
df -Th | grep rocky-lvroot

/dev/mapper/rocky-lvroot xfs 8.8G 1.1G 7.7G 13% / # ファイルシステムは拡張されていません

※コマンド実行結果は抜粋して記載しています。

growpartコマンドを使用してパーティションを拡張

パーティション拡張にはgrowpartコマンドを使います。
今回は、拡張したディスクの容量をすべて割り当てます。
パーティション拡張に合わせて、物理ボリュームやボリュームグループも拡張されています。

    • growpart : パーティションの作成や削除、サイズ変更、情報表示
    • pvs : LVMの物理ボリューム情報を表示
    • vgs : ボリュームグループの情報を表示
    • lvs : 論理ボリュームの情報を表示

※MarketPlaceからAzure環境上に作成した仮想マシンの場合、cloud-utils-growpart gdiskはインストール済みでした。
※物理ボリュームが拡張されない場合は、pvresizeコマンドを使用して拡張します。
※ボリュームグループが拡張されない場合は、vgextendコマンドを使用して拡張します。

# 未インストールの場合は、インストールします。
[root@vm-01 ~]#
dnf install cloud-utils-growpart gdisk

[root@vm-01 ~]#
growpart /dev/nvme0n1 4
CHANGED: partition=4 start=2258944 old: size=18712543 end=20971486 new: size=64849887 end=67108830

[root@vm-01 ~]# lsblk /dev/nvme0n1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 32G 0 disk
├─nvme0n1p1 259:1 0 2M 0 part
├─nvme0n1p2 259:2 0 100M 0 part /boot/efi
├─nvme0n1p3 259:3 0 1000M 0 part /boot
└─nvme0n1p4 259:4 0 30.9G 0 part # パーティションが拡張されています
└─rocky-lvroot 253:0 0 8.8G 0 lvm / # 論理ボリュームは拡張されていません

[root@vm-01 ~]# pvs /dev/nvme0n1p4 
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p4 rocky lvm2 a– <30.92g <22.13g # 物理ボリュームが拡張されています

[root@vm-01 ~]#
vgs rocky
VG #PV #LV #SN Attr VSize VFree
rocky 1 1 0 wz–n- <30.92g <22.13g # ボリュームグループが拡張されています

[root@vm-01 ~]#
lvs rocky
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvroot rocky -wi-ao—- <8.79g  # 論理ボリュームは拡張されていません

※コマンド実行結果は抜粋して記載しています。

lvextendコマンドを使用して論理ボリューム(LV)とファイルシステムを拡張

論理ボリュームとフィルシステムのサイズを拡張します。
lvextendコマンドの-rオプションを利用することで、論理ボリュームの拡張に合わせて自動でファイルシステムもリサイズされます。
ファイルシステムも併せて拡張することで、OSから拡張した領域が認識され、利用できるようになります。

    • lvextend : 論理ボリュームのサイズを拡張
    • lvs : 論理ボリュームの情報を表示
    • df : マウントされているファイルシステムの空き領域を表示

[root@vm-01 ~]# lvextend -r -l +100%FREE /dev/rocky/lvroot
File system xfs found on rocky/lvroot mounted at /.
Size of logical volume rocky/lvroot changed from <8.79 GiB (2250 extents) to <30.92 GiB (7915 extents).
Extending file system xfs to <30.92 GiB (33197916160 bytes) on rocky/lvroot…
xfs_growfs /dev/rocky/lvroot

~中略~

xfs_growfs done
Extended file system xfs on rocky/lvroot.
Logical volume rocky/lvroot successfully resized.

[root@vm-01 ~]# lvs rocky
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvroot rocky -wi-ao—- <30.92g  # 論理ボリュームが拡張されています

[root@vm-01 ~]# df -Th | grep rocky-lvrooton
/dev/mapper/rocky-lvroot xfs 31G 1.3G 30G 5% / # ファイルシステムが拡張されています

※コマンド実行結果は抜粋して記載しています。

—広告—

Rocky LinuxのOSディスク容量(サイズ)を拡張する場合の手順(標準パーティション管理の場合)

ディスクのサイズ変更に合わせてディスク容量も自動的に拡張される

lsblk、gdisk、dfコマンドを利用して、容量を拡張した後のOSディスクの状態を確認します。
Azure上に作成した仮想マシンの場合、操作を行うことなく、ファイルシステムが拡張されていることが確認できます。

    • lsblk : ブロックデバイスの情報を一覧表示
    • gdisk : パーティション情報の一覧表示および編集(GPTパーティションテーブルを持つディスク)
    • df : マウントされているファイルシステムの空き領域を表示

※MarketPlaceからAzure環境上に作成したRocky Linuxの仮想マシンの場合です。拡張手順についてはデータディスクの場合の方に記載しています。

[root@vm-01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 32G 0 disk # 物理ディスクのサイズが拡張されています
├─nvme0n1p1 259:1 0 2M 0 part
├─nvme0n1p2 259:2 0 100M 0 part /boot/efi
├─nvme0n1p3 259:3 0 1000M 0 part /boot
└─nvme0n1p4 259:4 0 30.9G 0 part / # パーティションが拡張されています

[root@vm-01 ~]#
df -h | grep  nvme0n1p4
/dev/nvme0n1p4 31G 1.3G 30G 4% / # ファイルシステムが拡張されています

[root@vm-01 ~]# gdisk -l /dev/nvme0n1
~(中略)~
Disk /dev/nvme0n1: 67108864 sectors, 32.0 GiB

~(中略)~
Number Start (sector) End (sector) Size Code Name
4 2258944 67108830 30.9 GiB 8304 p.lxroo # パーティションが拡張されています

Rocky Linuxのデータディスク容量(サイズ)を拡張する場合の手順(LVMの場合)

今回は32GiBのデータディスクを64GiBまで容量を拡張します。
こちらの手順で仮想マシンに追加したデータディスクを利用しています。

ディスクのサイズを大きくした後のOS状態を確認

容量を拡張したディスクがOSからどのように認識されているかを、lsblk、gdisk、dfコマンドを利用して確認します。
データディスクは/dev/nvme0n2として認識されています。
物理ディスクの容量が32GiBから64GiBに拡張されていることが確認できます。
ただし、パーティション、ボリューム、ファイルシステムは未拡張の状態であることが分かります。

    • lsblk : ブロックデバイスの情報を一覧表示

[root@vm-01 ~]# lsblk /dev/nvme0n2
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n2                      259:5    0   64G  0 disk # 物理ディスクのサイズが拡張されています
└─nvme0n2p1                  259:6    0   32G  0 part # パーティションは拡張されていません
  └─rocky_data_01-lv_data_01 253:0    0   32G  0 lvm  /datadisk01 # 論理ボリュームは拡張されていません

※データディスクの論理ボリューム名はlv_data_01、ボリュームグループ名はrocky_data_01としています。
※コマンド実行結果は抜粋して記載しています。

growpartコマンドを使用してパーティションを拡張

パーティション拡張にはgrowpartコマンドを使います。
今回は、拡張したディスクの容量をすべて割り当てます。
パーティション拡張に合わせて、物理ボリュームやボリュームグループも拡張されています。

    • growpart : パーティションの作成や削除、サイズ変更、情報表示
    • pvs : LVMの物理ボリューム情報を表示
    • vgs : ボリュームグループの情報を表示
    • lvs : 論理ボリュームの情報を表示

※MarketPlaceからAzure環境上に作成した仮想マシンの場合、cloud-utils-growpart gdiskはインストール済みでした。
※物理ボリュームが拡張されない場合は、pvresizeコマンドを使用して拡張します。
※ボリュームグループが拡張されない場合は、vgextendコマンドを使用して拡張します。

# 未インストールの場合は、インストールします。
[root@vm-01 ~]#
dnf install cloud-utils-growpart gdisk

[root@vm-01 ~]# growpart /dev/nvme0n2 1
CHANGED: partition=1 start=2048 old: size=67104768 end=67106815 new: size=134215647 end=134217694
[root@vm-01 ~]# partprobe /dev/nvme0n2
 
[root@vm-01 ~]# lsblk /dev/nvme0n2
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n2                      259:5    0   64G  0 disk
└─nvme0n2p1                  259:6    0   64G  0 part # パーティションが拡張されています
  └─rocky_data_01-lv_data_01 253:0    0   32G  0 lvm  /datadisk01
 
[root@vm-01 ~]# pvs /dev/nvme0n2p1
PV VG Fmt Attr PSize PFree
/dev/nvme0n2p1 rocky_data_01 lvm2 a– <64.00g 32.00g

※データディスクの論理ボリューム名はlv_data_01、ボリュームグループ名はrocky_data_01としています。
※コマンド実行結果は抜粋して記載しています。

lvextendコマンドを使用して論理ボリューム(LV)を拡張

論理ボリュームを拡張します。
論理ボリュームの拡張にはlvextendコマンドを使用します。

    • lvextend : 論理ボリュームのサイズを拡張
    • lvs : 論理ボリュームの情報を表示
    • df : マウントされているファイルシステムの空き領域を表示

※lvextendコマンドの-rオプションを利用することで、論理ボリュームの拡張に合わせてファイルシステムもリサイズすることができます。具体的には、OSディスクの容量拡張例の方を参照ください。

[root@vm-01 ~]# lvextend -l +100%FREE /dev/rocky_data_01/lv_data_01
  Size of logical volume rocky_data_01/lv_data_01 changed from <32.00 GiB (8191 extents) to <64.00 GiB (16383 extents).
  Logical volume rocky_data_01/lv_data_01 successfully resized.
 
[root@vm-01 ~]# lvs rocky_data_01
  LV         VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_data_01 rocky_data_01 -wi-ao—- <64.00g # 論理ボリュームが拡張されています

※データディスクの論理ボリューム名はlv_data_01、ボリュームグループ名はrocky_data_01としています。
※コマンド実行結果は抜粋して記載しています。

xfs_growfsコマンドを利用してファイルシステムを拡張

ファイルシステムを拡張します。
ファイルシステムの拡張にはxfs_growfsコマンドを使用します。
ファイルシステムを拡張することで、OSから拡張した領域が認識され、利用できるようになります。

    • xfs_growfs : 論理ボリュームのサイズを拡張
    • df : マウントされているファイルシステムの空き領域を表示
[root@vm-01 ~]# xfs_growfs /datadisk01
meta-data=/dev/mapper/rocky_data_01-lv_data_01 isize=512    agcount=4, agsize=2096896 blks
~中略~
data blocks changed from 8387584 to 16776192

[root@vm-01 ~]# df -h | grep  rocky_data_01
/dev/mapper/rocky_data_01-lv_data_01 xfs        64G  490M   64G   1% /datadisk01 # ファイルシステムが拡張されています

※コマンド実行結果は抜粋して記載しています。

—広告—

Rocky Linuxのデータディスク容量(サイズ)を拡張する場合の手順(標準パーティション管理の場合)

今回は32GiBのデータディスクを64GiBまで容量を拡張します。
こちらの手順で仮想マシンに追加したデータディスクを利用しています。

ディスクのサイズを大きくした後のOS状態を確認

容量を拡張したディスクがOSからどのように認識されているかを、lsblk、dfコマンドを利用して確認します。
今回、データディスクは/dev/nvme0n2として認識されています。
物理ディスクの容量が32GiBから64GiBに拡張されていることが確認できます。
ただし、パーティション、ファイルシステムは未拡張の状態であることが分かります。

    • lsblk : ブロックデバイスの情報を一覧表示
    • df : マウントされているファイルシステムの空き領域を表示
[root@vm-01 ~]# lsblk /dev/nvme0n2
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n2     259:5    0   64G  0 disk # 物理ディスクのサイズが拡張されています
└─nvme0n2p1 259:6    0   32G  0 part /datadisk01  # パーティションのサイズは拡張されていません
 
[root@vm-01 ~]# df -h | grep nvme0n2p1
/dev/nvme0n2p1 xfs        32G  261M   32G   1% /datadisk01 # ファイルシステムは拡張されていません

※コマンド実行結果は抜粋して記載しています。

growpartコマンドを利用してパーティションを拡張

パーティション拡張には、growpartコマンドを利用します。
今回は、拡張したディスクのサイズをすべて拡張しています。
パーティション拡張に合わせて、物理ボリューム、ボリュームグループも拡張されます。

    • growpart : パーティションの作成や削除、サイズ変更、情報表示
    • lsblk : ブロックデバイスの情報を一覧表示
    • df : マウントされているファイルシステムの空き領域を表示

※MarketPlaceからAzure環境上に作成した仮想マシンの場合、cloud-utils-growpart gdiskはインストール済みでした。

# 未インストールの場合は、インストールします。
[root@vm-01 ~]#
dnf install cloud-utils-growpart gdisk

[root@vm-01 ~]# growpart /dev/nvme0n2 1
CHANGED: partition=1 start=2048 old: size=67104768 end=67106815 new: size=134215647 end=134217694
[root@vm-01 ~]# partprobe /dev/nvme0n2
 
[root@vm-01 ~]# lsblk /dev/nvme0n2
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n2     259:5    0   64G  0 disk
└─nvme0n2p1 259:6    0   64G  0 part /datadisk01 # パーティションが拡張されています
 
[root@vm-01 ~]# df -h | grep nvme0n2p1
/dev/nvme0n2p1 xfs        32G  261M   32G   1% /datadisk01 # ファイルシステムは拡張されていません

※コマンド実行結果は抜粋して記載しています。

xfs_growfsコマンドを利用してファイルシステムを拡張

ファイルシステムを拡張します。
ファイルシステムの拡張にはxfs_growfsコマンドを使用します。
ファイルシステムを拡張することで、OSから拡張した領域が認識され、利用できるようになります。

    • xfs_growfs : 論理ボリュームのサイズを拡張
    • df : マウントされているファイルシステムの空き領域を表示
[root@vm-01 ~]# xfs_growfs /datadisk01
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=2097024 blks
~中略~
data blocks changed from 8388096 to 16776955

[root@vm-01 ~]# df -Th | grep nvme0n2p1
/dev/nvme0n2p1 xfs        64G  490M   64G   1% /datadisk01 # ファイルシステムが拡張されています

※コマンド実行結果は抜粋して記載しています。

—広告—

最後に

Linuxの仮想マシンのディスク容量を拡張する場合の手順について、Rocky Linuxを例にまとめました。
OSディスク、データディスクそれぞれについて、標準のパーティション管理の場合とLVMを利用した場合の手順を確認しています。

引き続き、いろいろ試してみたいと思います。

Windowsでのディスク拡張手順については、こちらで紹介しています。

Windowsでのデータディスク追加手順については、こちらで紹介しています。

マネージドディスク種類とIOPS測定については、こちらで紹介しています。

 

スポンサーリンク