Azure VM を作成するときにエラーになる

Azure VM を作るときにエラーで作成できない時がありますが、代表的なものをメモしておきます。
(新しいパターンが見つかったら適宜足します。きっと。

1. 前の操作が完了していない

主にクラシック ポータルで作成する V1 VM (クラシック) の場合ですが、仮想マシンを 1 台作成して、
その直後に 2 台目をとした場合など、前の処理が完了していない場合にエラーになります。

Azure の内部的に整合性を保つために排他制御 (ロック) していることに起因するので、
焦らず時間をおいてリトライしましょう。VM 作成時に限らず、構成変更、削除だとか、
ディスク・イメージの紐づけ関連の処理でもエラーになると思います。

新ポータルで作る V2 VM では、ARM (Azure Resource Manager) という新しい管理機構になったので、
各リソース毎にパラレルで処理ができるようになりました。ただ、V1 VM で使っている管理機構、
ASM (Azure Service Management) では Conflict などのメッセージを含むエラーになるので、
ロックが解除されるまではただただ待つべし。

[対処策]
おとなしく前の処理が終わるのを待ちましょう。

[エラーの例]

現在、この展開に対して、排他的アクセスが必要な、x-ms-requestid が XXXXXXXXXXXXXXXXXXXXXXXXX  の操作を実行しています。

2. ハードウェアの制約により共存できない

クラウドとは言っても、裏側は結局物理サーバーがあります。
構成によってはハードウェアが対応していない事によって、仮想マシンのサイズ変更、新規作成が出来ません。

V1 の仮想マシン (いわゆる “クラシック”) では、”クラウド サービス” とか “可用性セット” といった概念が
あるかと思いますが、これって結局は仮想マシンを配置する際の制約をつけています。
(同一ハードウェアのサーバー群に紐づけたり、単一障害点を生まないよう別ラックに配置したり…)

こうしたハードウェアの制約によって、例えば以下のような場合がエラーになります。

– A シリーズの VM を D シリーズへ変更
– A シリーズの VM を DS シリーズへ変更
– D シリーズの VM を DS シリーズへ変更
– A / D / DS シリーズの VM を G シリーズへ変更 (ゴジラはリージョンが限られるので

– A シリーズの VM が既に存在するクラウド サービスに D / DS / G シリーズの VM を増設
– D シリーズの VM が既に存在するクラウド サービスに A / DS / G シリーズの VM を増設
– DS シリーズの VM が既に存在するクラウド サービスに A / D / G シリーズの VM を増設
– G シリーズの VM が既に存在するクラウド サービスに A / D / DS シリーズの VM を増設

Dv2 / GS シリーズとかも同様ですし、おそらく今後出てくる N シリーズも同じでしょう。

[対処策]
上記のような場合には、おとなしく構成を見直しましょう。
一応 A シリーズで動作させていたものを全て D シリーズに移すなどであれば再作成で対処は可能です。
該当クラウドサービスに属する VM をディスクを保持したまま一旦 “全て” 削除して制約をなくし、
そのあとで、残したディスクから VM を再作成しましょう。

[参考]
D シリーズの仮想マシンにサイズ変更できない事象について
http://blogs.msdn.com/b/dsazurejp/archive/2015/09/29/10644536.aspx

[エラーの例]

– クラシック ポータルで作成する場合

選択されたクラウド サービスが、前の手順で指定された仮想マシンのサイズをサポートしていません。

– PowerShell で作成する場合

New-AzureVM : Compute.CannotUpgradeDeploymentToNewRoleSize : Unable to upgrade the deployment. The requested VM size ‘Standard_DS1’ may not be available in the resources supporting the existing deployment. Please try again later, t
ry with a different VM size or smaller number of role instances, or create a deployment under an empty hosted service with a new affinity group or no affinity group binding.

とりあえず、ざっと思いついた代表的な二つだけ。

ARM まだまだ試しきれてないし、ほかにも色々ありそうですが。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください