次の方法で共有


Azure バッチ プールのサイズ変更エラー

Batch プールを作成すると、操作は成功します。 ただし、ノードはプロビジョニングされておらず、作成されたプールの Overview ペインに警告が表示されます (例として次のスクリーンショットを参照)。 この警告は、必要な数の専用ノードを割り当てられなかったことを示します。 この記事では、このような Azure バッチ プールのサイズ変更エラーを解決する方法について説明します。

割り当てエラー警告のスクリーンショット。

シナリオ 1 の現象

警告にアクセスすると、次のエラー メッセージが表示されます。

Code: AllocationFailed
メッセージ:
必要な数の専用ノードを割り当てることができませんでした
値: 理由 - サブネットに外部リソースへの委任が含まれたので、割り当てに失敗しました。

原因: サブネットにサービス リソースへの委任がある

このエラーは、使用しているサブネットにサービスへの委任があるために発生します。 このネットワーク プロパティを使用すると、専用の Azure サービスを仮想ネットワークにデプロイし、プライベート IP アドレスを介してサービス リソースとプライベートに通信できます。 ただし、この機能は引き続き Azure Batch サービスではサポートされていません。

解決策: サブネットの委任を無効にする

この問題を解決するには、Azure portal、PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用してサブネットの委任を無効にします。 その後、Batch ノードを割り当てることができます。

詳細については、「 Azure 仮想ネットワークでサブネット委任を追加または削除するを参照してください。

シナリオ 2: 選択した VM サイズで第 2 世代イメージがサポートされない

シナリオ 2 の現象

警告にアクセスすると、次のエラー メッセージが表示されます。

Code: AllocationFailed
メッセージ:
必要な数の専用ノードを割り当てることができませんでした
[値]:
プロバイダー エラー JSON - {
"error": {
"code": "BadRequest",
"message": "選択した VM サイズ 'STANDARD_A1_V2' は、ハイパーバイザー世代 '2' を起動できません。 これが作成操作であった場合は、イメージのハイパーバイザー生成が、選択した VM サイズのハイパーバイザー生成と一致することを確認してください。 これが更新操作だった場合は、ハイパーバイザー世代 '2' VM サイズを選択してください。"
}
}
プロバイダー エラー JSON の切り捨て - False

原因: 選択したイメージと VM のサイズに互換性がない

このエラーは、選択したイメージと VM サイズに互換性がないために発生します。

このシナリオでは、選択したイメージにはハイパーバイザー第 2 世代があり、選択した VM サイズではハイパーバイザー第 2 世代はサポートされていません。

一部の VM サイズでは、第 2 世代イメージのみがサポートされます。 ハイパーバイザー第 1 世代のイメージと、ハイパーバイザー第 2 世代のみをサポートする VM サイズを選択すると、同様のエラーが発生します。

解決策 1: VM イメージのハイパーバイザー生成に一致する VM サイズ、またはその逆の VM サイズを選択する

この問題を解決するには、VM イメージのハイパーバイザー生成に一致する VM サイズ、またはその逆を選択します。 一部の VM サイズでは、ハイパーバイザー第 1 世代と第 2 世代の両方がサポートされています。 詳細については、第 2 世代 VM のAzure サポートを参照してください。

解決策 2: カスタム イメージを作成する

使用するイメージで、使用する予定の VM サイズがサポートされていない場合は、ハイパーバイザー生成をサポートする VM のカスタム イメージを作成して使用します。

詳細については、「 Tutorial - Azure CLI を使用してカスタム VM イメージを作成するを参照してください。

イメージ定義を作成すると、イメージは既定で第 1 世代から作成されます。

第 2 世代を使用する場合は、次の例に示すように、 az sig image-definition create コマンドを使用して指定します。

az sig image-definition create --resource-group myGalleryRG --gallery-name myGallery --gallery-image-definition myImageDefinition --publisher myPublisher --offer myOffer --sku mySKU --os-type Linux --os-state specialized --hyper-v-generation V2

シナリオ 3 の現象

警告にアクセスすると、次のいずれかのエラーが表示されます。

  • "AccountCoreQuotaReached"

    このエラーは、専用 vCPU の合計クォータに達したことを意味します。

  • "AccountLowPriorityCoreQuotaReached"

    このエラーは、VM シリーズあたりの専用 vCPU のクォータに達したことを意味します。

  • "AccountVMSeriesCoreQuotaReached"

    このエラーは、スポット/低優先度 vCPU のクォータに達したことを意味します。

原因: コア クォータが不十分である

Azure Batch アカウントは、すべてのプールに割り当てることができるコアの数に制限されています。 そのクォータに達すると、バッチはノードの割り当てを停止します。

Azure Batch には、スポット/低優先度 vCPU、専用 vCPU の合計数、VM シリーズあたりの専用 vCPU など、さまざまなレベルで異なるコア制限とクォータがあります。 次に示すように、Batch クォータを使用して現在のコア クォータを確認できます。

コア クォータを確認する方法を示すスクリーンショット。

このスクリーンショットの警告で説明したように、専用ノードを割り当てるときに、専用 vCPU クォータの合計と VM シリーズあたりの専用 vCPU クォータの両方が適用されます。

スポット/低優先度ノードの場合、Batch では、異なる VM シリーズを区別することなく、Batch アカウントの合計コア クォータのみが適用されます。

プール割り当てモードが user サブスクリプションに設定された Batch アカウントを作成した場合、プールの作成時またはサイズ変更時に、Batch VM とその他のリソースがサブスクリプションに直接作成されます。 Azure Batch コア クォータは適用されません。リージョンのコンピューティング コア、シリーズごとのコンピューティング コア、およびその他のリソースのサブスクリプション内のクォータが使用され、適用されます。 これらのクォータの詳細については、「Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。

解決策: クォータの引き上げを要求する

  1. Azure portal で Batch アカウントのクォータを確認します。

    1. Azure portal にサインインします。
    2. Batch アカウント を選択または検索します。
    3. Batch アカウント ページで、レビューしたい Batch アカウントを選択します。
    4. Batch アカウントのメニューの [設定][クォータ] を選択します。
    5. Batch アカウントに現在適用されているクォータを確認します。
  2. クォータ要件に基づいて、Batch アカウントまたはサブスクリプションのクォータの引き上げを要求 、Azure portal を使用するか Azure Quota REST API を使用して します

    クォータの引き上げの種類は、Batch アカウントのプール割り当てモードによって異なります。 クォータの増加を要求するには、クォータを増やしたい VM シリーズを含める必要があります。 クォータの増加が適用されると、すべてのシリーズの VM に適用されます。

    要求を作成するときに、次の 2 つのクォータの種類を選択できます。

    • 1 のバッチアカウントに対してクォータ増加を要求する場合は、Batch アカウントごとを選択します。 これらのクォータの増加には、専用コアとスポット コア、ジョブとプールの数を含めることができます。 このオプションを選択した場合は、この要求を適用する Batch アカウントを指定します。 次に、更新するクォータを選択し、各リソースに対して要求する新しい制限を指定します。 スポット クォータは、すべての VM シリーズ全体で 1 つの値です。 制約付き SKU が必要な場合は、[Spot cores](スポット コア) を選択して、要求する VM ファミリを含めます。

    • この地域のすべてのアカウントを選択すると、地域内のすべての Batch アカウントに適用されるクォータ増加を要求できます。 たとえば、サブスクリプションあたりのリージョンあたりの Batch アカウント数を増やすには、このオプションを使用します。

    サポート リクエストを送信すると、Azure サポートから連絡があります。 クォータ要求の処理が完了するには、数分または最大で 2 営業日かかる場合があります。 クォータ要求が完了または満たされると、プールの作成が成功します。

シナリオ 4: Batch プールのサイズ変更中の一時的な内部サーバー エラー

シナリオ 4 の現象

Batch プールはしばらくの間正常に動作しています。 ただし、サイズ変更操作が予期せず内部サーバー エラーで失敗したか、サイズ変更操作がサイズ変更中の状態のままでした。

エラー メッセージを次に示します。

Code: AllocationFailed
メッセージ:
必要な数の専用ノードを割り当てることができませんでした
[値]:
理由 - サーバーで内部エラーが発生しました。

原因: 一時的な内部サーバーの問題

Batch サービスでは、パフォーマンスに影響を与える可能性のある障害や地域のインフラストラクチャの問題が発生する場合があります。

解決策: サイズ変更操作を再試行するか、新しいプールを作成するか、別のリージョンを使用します

運用環境への影響を軽減するには、次の方法を使用します。

  • 数分後にサイズ変更要求を再試行してください。
  • 新しいプールを作成します。
  • 上記の方法が役に立たない場合は、別の使用可能なリージョンで Batch サービスをフェールオーバーとして使用します。

シナリオ 5: 現在のリージョンで要求された VM サイズの容量が不足している

シナリオ 5 の症状

Batch プールはしばらくの間正常に動作しています。 ただし、サイズ変更操作が不十分な容量エラーで失敗したか、サイズ変更操作がサイズ変更中の状態のままでした。

エラー メッセージを次に示します。

Code: AllocationFailed
メッセージ:
必要な数の専用ノードを割り当てることができませんでした
[値]:
理由 - リージョン内の要求された VM サイズの容量が不足しているため、デプロイの割り当てが失敗しました。

原因: インフラストラクチャの制限事項

一部のインフラストラクチャの制限により、Batch サービスでこれらの問題が発生する可能性があります。 これは、ユーザーのコア クォータとは関係ありません。

解決策: サイズ変更操作を再試行するか、別の VM サイズの新しいプールを作成するか、別のリージョンを使用します

この問題を解決するには、次の方法を試してください。

  • サイズ変更操作を再試行してください。

    リソースの可用性は、クラスター、リージョン、またはゾーンでリソースが絶えず解放されるため、変更される可能性があります。

  • VM サイズを変更し、異なる VM サイズの新しいプールを作成します。

  • 別の利用可能なリージョンで Batch サービスを使用します。

シナリオ 6: Azure Batch サービスのアクセス許可の問題

シナリオ 6 の現象

プールの Overview ペインに次のエラー メッセージが表示されます。

サイズ変更エラー:
必要な数の専用ノードを割り当てませんでした (コード: AllocationFailed)
詳細:
- Azure Batch Service には、プール操作を実行するための必要なアクセス許可がありません。 (コード: 理由)

原因: Azure Batch サービスにコンピューティング リソースを管理するアクセス許可がありません

このエラーは、 ユーザー サブスクリプション プールの割り当てモードでのみ発生します。 ユーザー サブスクリプション プール割り当てモードでは、プールが作成されると、このプールのコンピューティングと VM 関連のリソースが Batch アカウント サブスクリプションに直接作成されます。 その結果、Azure Batch サービスには、ユーザーのサブスクリプションでこれらのコンピューティングと VM 関連のリソースを管理するための適切なアクセス許可 ( Contributor または Owner ロールが必要です。

解決策: Microsoft Azure Batch に適切なアクセス許可を付与する

  1. Azure portal で、[サブスクリプション] を検索して選択します。
  2. [サブスクリプション] ページで、Batch アカウントに使用するサブスクリプションを選択します。
  3. 左側のナビゲーションから [アクセス制御 (IAM)] を選択します。
  4. [アクセス制御 (IAM)] ページの上部で、[追加]>[ロールの割り当ての追加] を選択します。
  5. [ロールの割り当ての追加] 画面の [割り当ての種類] で、[特権管理者ロール] を選択し、[次へ] を選択します。
  6. [ Role タブで、Batch アカウントの Contributor または Owner ロールを選択し、 Next を選択します。
  7. [メンバー] タブで、[メンバーの選択] を選びます。 [メンバーの選択] 画面で [Microsoft Azure Batch] を検索して選択し、[選択] を選択します。
  8. Review + assign タブを選択し、assign を選択します。

詳細については、「Batch にサブスクリプションへのアクセスを許可する」を参照してください。

シナリオ 7: Key Vault のアクセス許可の問題

シナリオ 7 の症状

プールの Overview ペインに次のエラー メッセージが表示されます。

サイズ変更エラー:
必要な数の専用ノードを割り当てませんでした (コード: AllocationFailed)
詳細:
- Batch がキー コンテナーへのアクセスを許可されていないため、割り当てに失敗しました。 (コード: 理由)

原因: Azure Batch サービスに、関連付けられているキー コンテナーにアクセスするためのアクセス許可がありません

このエラーは、 ユーザー サブスクリプション プールの割り当てモードでのみ発生します。 ユーザー サブスクリプション プールの割り当てモードでは、Azure Batch は、プールのサイズ変更操作のシークレットを管理するために、関連付けられている Azure キー コンテナーにアクセスする必要があります。

解決策: キー コンテナーへのアクセスを許可する

  1. Azure Batch ポータルで、左側のナビゲーションから Properties を選択します。

  2. ページの下部で、関連付けられている Azure Key Vault の名前を見つけます。

  3. 関連付けられている Azure Key Vault を検索して選択します。

  4. 左側のナビゲーションの Settings の下にある Access 構成を選択します。

  5. キー コンテナーの Permission モデル を確認します。

    キー コンテナーのアクセス許可モデルが Azure ロールベースのアクセス制御である場合は、次の手順に従います。

    1. キー コンテナー ページの左側のナビゲーションから [アクセスの制御 (IAM)] を選択します。

    2. [アクセス制御 (IAM)] ページの上部で、[追加]>[ロールの割り当ての追加] を選択します。

    3. ロールの割り当ての追加画面の Role タブの Job 関数ロールサブタブで、Batch アカウントの Key Vault Secrets Officer または Key Vault Administrator ロールを選択し、Next を選択します。

    4. [メンバー] タブで、[メンバーの選択] を選びます。 [メンバーの選択] 画面で [Microsoft Azure Batch] を検索して選択し、[選択] を選択します。

    5. 下部にある Review + create を選択して Review + assign タブに移動し、もう一度 Review + create を選択します。

    詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

    キー コンテナーのアクセス許可モデルが Vault アクセス ポリシーの場合は、次の手順に従います。

    1. キー コンテナー ページの左側のナビゲーションから [アクセス ポリシー] を選択します。

    2. [アクセス ポリシー] ページで、[作成] を選択します。

    3. アクセス ポリシーの作成画面の Secret アクセス許可で、GetListSetDelete アクセス許可の最小値を選択します。 [key vaults with soft-delete enabled](論理的な削除が有効になっているキー コンテナー) については、さらに [回復] を選択します。

      キー コンテナー シークレットのアクセス許可のスクリーンショット。

    4. [次へ] を選択します。

    5. [プリンシパル] タブで、「Microsoft Azure Batch」を検索して選択します。

    6. [確認と作成] タブを選択し、[作成] を選択します。

詳細については、「 キー コンテナーへのアクセスを手動で許可するを参照してください。

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

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