Azure Virtual MachineのManaged Disksサイズを変更する(FIOでIOPSを測定もする)
Azure VM のデータディスクサイズの拡張とIOPSの変化をFIOで測定してみました。
Managed DiskはサイズによってIOPSが違うため、Azure VMのディスクサイズ拡張作業に併せてManaged DiskのIOPSの変化をFIOを使って測定してみました。
Azure VMでのデータディスク拡張作業は、下記条件で実施しています。
-
- OSはCent OS 7.7
- Managed DISKはPremium SSDを利用
- 32GB→512GBに拡張
- データディスクは/dev/sdc
- データディスクは/mnt/diskにマウント済みである。
- IOPSはFIOで測定
※念のため、必ずバックアップを取得したうえで作業を実施して下さい。
なお、データディスクの追加に関しては以下の記事に纏めております。
Windowsでのディスク領域拡張はこちら。
Azure VMのデータディスクサイズ変更
データディスクのサイズ変更を、Azure Portal上で実施します。
作業はVirtual Machine 停止させて実施します。
データディスクのアタッチ、デタッチはオンラインでも可能ですが、アタッチ済みのディスクの構成変更は、仮想マシンを停止する必要があります。(一度デタッチ後に構成変更して再アタッチという手も。。。)
対象のVirtual Machineを選択後、SettingsにあるDisksをクリックします。以下の画面が表示されますので、拡張するデータディスクをクリックします。
Disksの画面に移動するので、構成をクリックします。以下の画面が表示されますので、アカウントの種類やサイズの項目を変更します。今回はアカウントの種類をPremium SSDサイズを512GBとし保存をクリックします。
保存が完了したら、Virtual Machineを起動します。
Cent OSでデータディスクのボリューム拡張設定
Virtual Machineを起動した段階では、Azure側で実施したディスクの拡張はデバイスとしては認識されていますが、ボリュームとしては拡張されていない状態です。
dfのコマンド結果を見ると、拡張前の32Gしか認識されていない事が分かります。
[ユーザー名@ホスト名 tmp]$ fdisk -l /dev/sdc[ Disk /dev/sdc: 549.8 GB, 549755813888 bytes, 1073741824 sectors [ユーザー名@ホスト名 tmp]$ df -h | grep /dev/sdc /dev/sdc1 32G 6.1G 24G 21% /mnt/disk |
ボリュームのサイズ変更を、fdiskコマンド使って行います。
[ユーザー名@ホスト名 tmp]$ fdisk /dev/sdc The device presents a logical sector size that is smaller than Changes will remain in memory only, until you decide to write them. コマンド (m でヘルプ): p Disk /dev/sdc: 549.8 GB, 549755813888 bytes, 1073741824 sectors デバイス ブート 始点 終点 ブロック Id システム コマンド (m でヘルプ): d コマンド (m でヘルプ): n コマンド (m でヘルプ): w ioctl() を呼び出してパーティションテーブルを再読込みします。 WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です. |
以上の操作が完了したら、パーティションを拡張します。これで作業完了です。
[ユーザー名@ホスト名 tmp]$ resize2fs /dev/sdc1 |
確認してみると、データディスクのサイズが変わっているのがわかります。
[ユーザー名@ホスト名 tmp]$ df -h | grep /dev/sdc /dev/sdc1 504G 6.1G 477G 2% /mnt/disk |
FIOでManaged DiskのIOPSを測定
FIOのセットアップはyumコマンド(epelは有効)でOKです。関連パッケージを含めてインストールされます。
[ユーザー名@ホスト名 tmp]$ yum -y install fio |
FIOのコマンドは以下のサイトを参考にしています。
実行してみると以下のような結果になりました。ランダムreadでもスペック通りのIOPSが出ています。シーケンシャルでもおおむね同じ数値が出ています。
#シーケンシャルwriteの場合 write: IOPS=402, BW=1610KiB/s (1649kB/s)(15.0MiB/10154msec) #シーケンシャルreadの場合 read: IOPS=2347, BW=9391KiB/s (9617kB/s)(92.3MiB/10069msec) #ランダムwriteの場合 |
なお、いくつかのパターンで試すと、”ほぼ”Managed Diskの指標通りになっている事がわかります。
#Standard HDD(32GB)の場合(シーケンシャルread) read: IOPS=562, BW=2251KiB/s (2305kB/s)(22.3MiB/10131msec) #Standard HDD(32GB)の場合(シーケンシャルwrite) #Premium SSD(32GB)の場合(シーケンシャルread) #Premium SSD(32GB)の場合(シーケンシャルwrite) |
※Writeが遅いのですが、この原因は不明です。
Windows OSでRAID構成を組んでIOPS測定はこちら。