Azure VMのインスタンスサイズの変更についての疑問に思ったこと

AzureのVirtual MachinesではCPUやメモリサイズを変更できます。
用途やフェーズによってスペックを変更できるのでとても便利ですね。
ただ、インスタンスサイズを変更についていろいろと疑問点が出てきたので、その際に調べたことをまとめておきます。

疑問1 サイズ変更にはOS再起動が伴うのか?

再起動を伴います。

仮想マシンの状態は、「実行中」でもサイズの変更操作はできますが、「停止済み (割り当て解除)」してからサイズ変更行うことを推奨しています。「実行中」でサイズ変更を行うとエラーが発生する場合があるからです。

参考 : https://blogs.technet.microsoft.com/jpaztech/2016/04/15/vmresize/

また、仮想マシンの状態を「停止済み (割り当て解除)」にすると

  • 動的に設定しているパブリックIPの変更
  • 一時ディスクのデータの消去

が発生するので、事前に固定IPにするなど注意が必要です。

疑問2 別のシリーズのサイズに変更できるのか?

できます。ただし、変更できない場合もあるようです。

Azure のサイズについては下記のリンクがわかりやすいです。
参考 : https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-windows-sizes/

例えば、Aシリーズを利用していて、より高スペックなDシリーズに変更したいとします。この場合AからDシリーズに変更できない場合があるようです。

理由はデータセンターの設計仕様上の問題で、AシリーズのみOKなClusterとAシリーズとDシリーズ共にOKなClusterが存在するからです。

運悪くAシリーズのみOKなClusterにVMが作られた場合Dシリーズに変更できません。

回避策としては、予め高スペックのシリーズでVMを作成し、その後サイズを下げることでこの問題を回避できます。

参考 : https://blogs.msdn.microsoft.com/dsazurejp/2015/09/29/d-1235/

疑問3 ローカルディスクを60GB使っている状態で50GBのサイズに変更できるのか?

できます。

ss31

D2_V2 Standardは100Gのローカルディスクがあります。例えばこれで60G使用している状態で50GのD1_V2に変更できるのか?ということです。

実際にcent7.2のVMを作成してやってみました。

D2_V2 Standardでは99Gあります。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G  1.3G   29G   5% /
devtmpfs        3.4G     0  3.4G   0% /dev
tmpfs           3.5G     0  3.5G   0% /dev/shm
tmpfs           3.5G  8.3M  3.4G   1% /run
tmpfs           3.5G     0  3.5G   0% /sys/fs/cgroup
/dev/sdb1        99G   61M   94G   1% /mnt/resource
tmpfs           697M     0  697M   0% /run/user/1000

60Gのファイルを作成します。

# fallocate -l 60GB dummy.dat

無事、いい感じに使用率が上がってくれました。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G  1.5G   29G   5% /
devtmpfs        3.4G     0  3.4G   0% /dev
tmpfs           3.5G     0  3.5G   0% /dev/shm
tmpfs           3.5G  8.3M  3.4G   1% /run
tmpfs           3.5G     0  3.5G   0% /sys/fs/cgroup
/dev/sdb1        99G   56G   38G  60% /mnt/resource
tmpfs           697M     0  697M   0% /run/user/1000

サイズを変更してみます。

ss31

D2_V2 Standard からD1_V2 Standardに変更してみます。

無事変更できたようです。
さて差分のファイルはどうなったのか。。。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G  1.3G   29G   5% /
devtmpfs        1.7G     0  1.7G   0% /dev
tmpfs           1.7G     0  1.7G   0% /dev/shm
tmpfs           1.7G  8.3M  1.7G   1% /run
tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup
/dev/sdb1        50G   53M   47G   1% /mnt/resource
tmpfs           345M     0  345M   0% /run/user/1000

消えました。

AzureはLinux VMを作成すると2つのディスクが関連づけられます。

/dev/sda1 はOSディスクで
/dev/sdb1は一時ディスクなんですね。

なので/dev/sdb1はサイズを変更はリソースの開放が伴います。その為、一時ディスクのデータは削除されます。
データ用に使用する場合はディスクをVMに接続する必要があります。

疑問4 データディスク接続数が3つのとき、接続数が2つのサイズに変更できるのか?

できません。

ss25

D2_V2 Standardのディスク上限は4つでD1_V2 Standardは2つです。

ぽちぽちディスクを追加します。D2_V2 Standardにディスクを3つ接続しました。

ss22

サイズ変更してみます。

ss26

使用できません。[i]を選択すると理由まで出てきます。

ss27

良いですね。

まとめ

AzureのVMは稼働中でもサイズの変更が可能です。ただし、稼働中に行う場合はいろいろ注意が必要です。

また、別のシリーズに変更する可能性がある場合は予め高スペックなサイズでVMを作成したほうが良さそうです。

サイズの選択画面のディスク容量は一時ディスクを表しています。

Be the first to comment

コメント投稿

Your email address will not be published.


*