Azure でVirtual Machine Scale Setsを作成、再起動、またはサイズ変更するときに、AllocationFailed または ZonalAllocationFailed エラーを修正する

警告

Microsoft Azure Virtual Machine Scale Set が Azure Service Fabric クラスターの一部である場合は、このトラブルシューティング ガイダンスに従ってはいけません。 このガイダンスにより、このシナリオではデータ損失と元に戻せないクラスターの損傷が発生する可能性があります。 詳細については、「Service Fabric クラスターで大規模な仮想マシン スケール セットを使用できますか」を参照してください。

この記事では、次の情報を取得します。

  • Microsoft Azure Virtual Machine Scale Setsの AllocationFailed または ZonalAllocationFailed エラー。
  • 割り当てエラーを回避する方法。
  • 割り当てエラーの原因。
  • 割り当てエラーが発生した場合のトラブルシューティング方法。

標準仮想マシン (VM) の割り当てエラーのトラブルシューティングについては、「 Azure で VM を作成、再起動、またはサイズ変更するときの割り当てエラーのトラブルシューティング」を参照してください。

現象

Azure サービスの需要が高いため、特定のリージョンで VM インスタンスを作成または開始しようとすると、割り当てエラーが発生する可能性があります。 Azure では、次の場合に常にコンピューティング リソースをサブスクリプションに割り当てようとします。

  • 仮想マシン スケール セットを作成します。
  • 停止 (割り当て解除) スケール セット VM インスタンスを再起動します。
  • スケール セットのサイズを変更します。

次のエラーの詳細は、割り当てエラー メッセージの例です。

エラー コード: AllocationFailed または ZonalAllocationFailed

エラー メッセージ 1: 割り当てに失敗しました。 このリージョンには、要求された VM サイズに対して十分な容量がありません。 割り当てが成功する可能性の向上に関する詳細については、 を参照 https://aka.ms/allocation-guidanceしてください。

エラー メッセージ 2: 割り当てに失敗しました。 条件が制限されすぎるため、次の制約を持つ VM を割り当てることはできません。 一部の制約を削除して、もう一度お試しください。 適用される制約は次のとおりです。

  • 可用性ゾーン
  • VM サイズ

エラー メッセージ 3: 割り当てに失敗しました。 1 つの配置グループを含む仮想マシン スケール セットに新しい VM を追加する場合、または 1 つの配置グループを含む仮想マシン スケール セット内にある既存の VM の更新やサイズ変更を行う場合は、このような割り当てが単一クラスターにスコープされていること、およびクラスターの容量が不足している可能性があることにご注意ください。 割り当て成功の可能性の向上に関する詳細については、 を参照 https://aka.ms/allocation-guidanceしてください。

割り当てエラーを回避する方法

割り当てエラーを回避するために、スケール セットにいくつかの構成設定を適用して、割り当て要求を最適化できます。

  • 過剰プロビジョニング。 オーバープロビジョニングが有効になっている場合、スケール セットは実際に、要求した数よりも多くの VM インスタンスを起動します。 要求された数の VM インスタンスが正常にプロビジョニングされると、追加の VM インスタンスが削除されます。 この方法により、プロビジョニングの成功率が向上し、デプロイ時間が短縮されます。 追加の VM インスタンスに対する課金は行われず、クォータ制限にはカウントされません。 オーバープロビジョニングを有効にするには:

    1. Azure portalで、[仮想マシン スケール セット] を検索して選択します。

    2. スケール セットの名前を選択します。

    3. メニュー ウィンドウで、[構成] を選択 します

    4. [ オーバープロビジョニング ] 見出しで、[ オーバープロビジョニングを有効にする] を[オン] に設定します。

    5. [保存] を選択します。

    オーバープロビジョニングの詳細については、こちらをご覧ください。

  • 大規模なスケール セットを有効にします。 大きなVirtual Machine Scale Setsは、100 を超える VM インスタンスにスケーリングできるスケール セットとして定義されます。 この機能は、スケール セット プロパティ (singlePlacementGroup=false) によって設定されます。 大規模なスケール セットを特別なものにするのは、VM インスタンスの数ではなく、それに含まれる配置グループの数です。 配置グループは、独自の障害ドメインとアップグレード ドメインを持つ Azure 可用性セットに似ています。 singlePlacementGroupを にfalse設定すると、複数の配置グループとしてデプロイするときにデプロイを複数のクラスターに分散できるため、割り当てが成功する可能性が高くなります。 大規模な仮想マシン スケール セットの操作の詳細、特に既存のスケール セットを複数の配置グループにまたがるよう変換する方法について説明します。

    注:

    スケール セットを 1 つの配置グループのサポートから複数の配置グループのサポートに変更できますが、他の方向に変換を実行することはできません。 にfalse設定するとsinglePlacementGroup、元に戻すことはできません。

要求された VM サイズのインスタンスの数を減らして、デプロイ操作を再試行します。 大規模なデプロイの場合は、複数の配置グループを使用して Azure Virtual Machine Scale Setsを評価できます。 VM インスタンスの数は、需要または定義されたスケジュールに応じて自動的に増減できます。

その他のヒント

優先する VM の種類が優先リージョンで使用できるようになるまで、デプロイの問題が発生したお客様は、次のセクションのガイダンスを一時的なソリューションとして考慮する必要があります。

ケースに最も一致するシナリオを特定します。 割り当てが成功する可能性を高めるために、対応する推奨ソリューションを使用して割り当て要求を再試行します。 または、後でいつでも再試行できます。 クラスター、リージョン、またはゾーンで十分なリソースが解放され、別の時点で要求に対応できる可能性があります。

原因

リージョンまたはゾーンに、要求された SKU に十分なコア容量がありません。

原因 1: スケール セットのサイズ変更または既存のスケール セットへの VM インスタンスの追加

スケール セットのサイズを変更するか、既存のスケール セットに VM インスタンスを追加する要求がある場合は、既存のスケール セットをホストする元のクラスターで試す必要があります。 または、クラスターは要求された VM サイズをサポートしていますが、現在十分な容量がない可能性があります。

原因 1 の解決策

次のいずれかの操作を試してください。

  • 適切な容量を持つ同じリージョン内の別のクラスターにスケール セットを移動しようとします。

    スケール セット内のすべての VM インスタンスを停止 (割り当て解除) してから、必要に応じてスケール セットのサイズを変更します。 サイズ変更が完了したら、VM インスタンスを再起動します。 VM インスタンスを停止するには:

    1. Azure portalで、[仮想マシン スケール セット] を検索して選択します。

    2. スケール セットの名前を選択します。

    3. [ 停止] を選択します

    すべての VM インスタンスを停止してサイズ変更を実行した後、スケール セットを開始すると、新しい割り当て試行によって、スケール セット全体をホストするのに十分な容量を持つクラスターを特定できます。

  • 複数の配置グループ間でスケーリングするようにスケール セットを構成します。

    「大規模なスケール セットの作成」を参照してください。

原因 2: 部分的に停止した (割り当て解除された) VM を再起動しました

部分的な割り当て解除は、スケール セット内の 1 つ以上の VM インスタンスを停止 (割り当て解除) したことを意味します。 VM インスタンスの割り当てを解除すると、関連付けられているリソースが解放されます。 部分的に割り当て解除された可用性セット内の VM インスタンスの再起動は、既存の可用性セットに VM インスタンスを追加する場合と同じです。 そのため、容量が不足している可能性がある既存の可用性セットをホストする元のクラスターで割り当て要求を試す必要があります。

原因 2 の解決策

スケール セット内のすべての VM インスタンスを停止 (割り当て解除) してから、各 VM インスタンスを再起動します。 VM インスタンスを停止するには:

  1. Azure portalで、[仮想マシン スケール セット] を検索して選択します。

  2. スケール セットの名前を選択します。

  3. メニュー ウィンドウで、[インスタンス] を選択 します

  4. 一覧表示されているすべての仮想マシン インスタンスを選択します。

  5. [ 停止] を選択します

すべての VM が停止したら、最初の VM インスタンスを選択し、[開始] を選択 します。 Azure は新しい割り当てを試み、十分な容量を持つ新しいクラスターを選択します。

原因 3: 完全に停止した再起動された VM インスタンス

完全割り当て解除とは、可用性セット内のすべての VM インスタンスを停止 (割り当て解除) したことを意味します。 これらの VM インスタンスを再起動するための割り当て要求は、リージョンまたはゾーン内で必要なサイズをサポートするすべてのクラスターを対象とします。

原因 3 の解決策

この記事の提案を使用して、割り当て要求を変更します。 次に、要求を再試行して、割り当てが成功する可能性を高めます。

古い VM シリーズまたはサイズ (Dv1、DSv1、Av1、D15v2、DS15v2 など) を使用する場合は、新しいバージョンへの移行を検討してください。 特定の VM サイズに関する以下の推奨事項をご覧ください。 別の VM サイズを使用することを許可されていませんか? 次に、同じ地域内の別のリージョンにデプロイしてみてください。 各リージョンで使用可能な VM サイズの詳細については、 を参照 https://aka.ms/azureregionsしてください。

可用性ゾーンを使用する場合は、要求された VM サイズに使用可能な容量がある可能性があるリージョン内の別のゾーンを試してください。

割り当て要求が大きい (コア数が 500 を超える) 場合は、次のセクションを参照して、要求をより小さなデプロイに分割します。

VM インスタンスをリージョン内の新しいクラスターに割り当てる VM インスタンスを再デプロイしてみてください。

古い VM サイズの割り当てエラー

一部の古いシリーズの VM サイズは、最新世代のインフラストラクチャでは実行されません。 お客様は、これらのレガシ SKU の割り当てエラーが発生することがあります。 従来のシリーズの仮想マシンを使用しているお客様は、同等の新しい VM への移行を検討することをお勧めします。 新しい VM は最新のハードウェア用に最適化されており、より優れた価格とパフォーマンスを利用できます。

次の推奨事項を参照してください。

レガシ VM シリーズまたはサイズ 推奨される新しい VM シリーズまたはサイズ ブログリンク
Av1 シリーズ Av2 シリーズ 新しい A_v2-Series VM サイズ
Dv1 または DSv1 シリーズ (D1 から D5) Dv3 または DSv3 シリーズ 新しい Dv3 および Ev3 VM サイズの概要
Dv1 または DSv1 シリーズ (D11 から D14) Ev3 または ESv3 シリーズ
D15v2 または DS15v2

Resource Manager デプロイ モデルを使用して、より大きな VM サイズを活用する場合は、D16v3/DS16v3 または D32v3/DS32v3 への移行を検討してください。 これらのサイズは、最新世代のハードウェアで実行するように設計されています。

Resource Manager デプロイ モデルを使用して、VM インスタンスが 1 人の顧客専用のハードウェアに分離されていることを確認しますか? 次に、最新世代のハードウェアで実行するように設計された新しい分離 VM サイズ (E64i_v3またはE64is_v3) に移行することを検討してください。

新しい分離された VM サイズが利用可能になりました

背景情報

割り当てのしくみ

Azure プラットフォームは、データセンター サーバーをクラスターにパーティション分割しようとします。 通常、複数のクラスターで割り当て要求が試行されます。 ただし、割り当て要求の特定の制約により、Azure プラットフォームは 1 つのクラスター ("クラスターにピン留めされた") でのみ要求を試行する可能性があります。 次の図 1 は、複数のクラスター (クラスター 1 からクラスター n) で試行される通常の割り当てを示しています。 図 2 では、クラスターが既存のクラウド サービス (CS_1) または可用性セットをホストするため、割り当てはクラスター 2 に固定されています。

図 1: 複数のクラスターで Azure プラットフォームの割り当てが試行されました。図 2: 1 つのクラスターにピン留めされた Azure プラットフォームの割り当て。

割り当てエラーが発生する理由

割り当て要求がクラスターにピン留めされている場合、使用可能なリソース プールが小さいため、空きリソースを見つけることができない可能性が高くなります。 割り当て要求が、要求したリソースの種類をサポートしていないクラスターにピン留めされている場合はどうなりますか? その後、クラスターに空きリソースがある場合でも、要求は失敗します。 次の図 3 は、固定された割り当てが失敗する場所を示しています。これは、唯一の候補クラスターに空きリソースがないためです。 図 4 は、クラスターに空きリソースがある場合でも、唯一の候補クラスターが要求された VM サイズをサポートしていないため、ピン留めされた割り当てが失敗する場所を示しています。

割り当てエラーの図は、ピン留めされたクラスターです。図 3 は、空きリソースが利用できないのを示しています。図 4 は、サイズがサポートされていないことを示しています。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。