Microsoft Dev Box の休止状態は、コストを削減しながら、クラウド開発環境を効率的に管理するのに役立ちます。 休止状態を有効にすると、開いているアプリケーションとウィンドウの状態を維持し、ワークフローを中断することなく仮想マシン (VM) のコストを節約できます。 この記事では、開発ボックスのイメージと定義レベルで休止状態を構成し、休止スケジュールを自動化し、互換性に関する考慮事項に対処する方法について説明します。
Dev Box Hibernation の導入により、新しい開発ボックスでこの機能を有効にし、休止状態にして再開できます。 この機能は、作業環境を維持しながら開発ボックスを管理する便利な方法を提供します。
休止状態を有効にするには、次の 3 つの手順に従います。
- 開発ボックス イメージで休止状態を有効にします。
- 開発ボックス定義で休止状態を有効にします。
- 自動停止スケジュールを使用するか、RDP 切断で停止することで、開発ボックスのプールの休止状態を自動化します。
休止状態が有効なイメージに関する考慮事項
開発ボックスで休止状態を有効にする前に、休止状態が有効なイメージに関する次の考慮事項を確認してください。
現在、2 つの SKU で休止状態がサポートされています。8 個と 16 個の vCPU SKU です。 32 vCPU SKU は休止状態をサポートしていません。
休止状態を有効にできるのは、休止状態が有効な開発ボックス定義で作成された新しい開発ボックスのみです。 既存の開発ボックスで休止状態を有効にすることはできません。
Microsoft 開発者ポータル、Azure CLI、PowerShell、SDK、または REST API を使用して、開発ボックスを休止状態にすることができます。 Windows の開発ボックス内からの休止はサポートされていません。
Azure Marketplace イメージを使用している場合は、開発ボックス イメージに Visual Studio を使用することをお勧めします。
Windows 11 Enterprise CloudPC + OS の最適化イメージには、最適化された電源設定が含まれており、休止状態では使用できません。
休止状態を有効にした後、その開発ボックスで機能を無効にすることはできません。 ただし、開発ボックス 定義 で休止状態のサポートを無効にして、将来作成された開発ボックスに休止状態を設定しないようにすることができます。
休止状態を有効にするには、Windows OS で入れ子になった仮想化を有効にする必要があります。 DevBox イメージで "仮想マシン プラットフォーム" 機能が有効になっていない場合、休止状態を有効にした場合、入れ子になった仮想化が自動的に有効になります。
休止状態では、ハイパーバイザーで保護されたコード整合性 (HVCI)/メモリ整合性機能はサポートされていません。 開発ボックスでは、この機能が自動的に無効になります。
自動停止スケジュールでは、関連付けられている Dev Box 定義で休止状態を有効にした後に作成された Dev Box が休止状態になります。 Dev Box 定義で休止状態を有効にする前に作成された開発ボックスは、引き続きシャットダウンされます。
休止状態と互換性のない設定
次の設定は休止状態と互換性がないことがわかっているため、休止状態のシナリオではサポートされていません。
メモリ整合性/ハイパーバイザー コードの整合性
メモリ整合性/ハイパーバイザー コードの整合性を無効にするには:
- Windows の [スタート] メニューで、 Windows セキュリティを見つけて開きます。
- [デバイスのセキュリティ] に移動します。
- [コアの分離] で、[コア分離の詳細] を選択します
- [ メモリの整合性] で、トグルを [オフ] に設定します。
この設定を変更した後、コンピューターを再起動する必要があります。 この設定を変更した後、コンピューターを再起動します。
入れ子になった仮想化が有効になっていない、ゲスト仮想セキュア モード ベースの機能
入れ子になった仮想化を有効にするには:
- [スタート] メニューで、[ Windows の機能を有効または無効にする] を検索します。
- ダイアログで、[ 仮想マシン プラットフォーム ] チェック ボックスをオンにします。
- [ OK] を 選択して設定の変更を保存します。
開発ボックスイメージで休止状態を有効にする
Azure コンピューティング ギャラリーからカスタム イメージを使用する場合は、新しいイメージを作成するときに休止機能を有効にする必要があります。 既存のイメージに対して休止状態を有効にすることはできません。
注
Microsoft Dev Box が Azure Marketplace で提供する Visual Studio と Microsoft 365 イメージは、休止状態をサポートするように既に構成されています。 これらのイメージで休止状態を有効にする必要はありません。使用する準備ができています。
休止機能を有効にするには、イメージの作成時に IsHibernateSupported
フラグを true
に設定します。
az sig image-definition create
--resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --___location <___location>
--publisher <publisherName> --offer <offerName> --sku <skuName> --os-type windows --os-state Generalized
--features "IsHibernateSupported=true SecurityType=TrustedLaunch" --hyper-v-generation V2
sysprep と一般化された VM を使用してカスタム イメージを作成する場合は、Azure CLI を使用してイメージをキャプチャします。
az sig image-version create
--resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName>
--gallery-image-version <versionNumber> --virtual-machine <VMResourceId>
カスタム イメージの作成の詳細については、「 Azure VM Image Builder を使用して開発ボックスを構成する」を参照してください。
カスタム イメージの作成の詳細については、「 Azure VM Image Builder を使用して開発ボックスを構成する」を参照してください。
開発ボックス定義で休止状態を有効にする
Microsoft Dev Box では、定義で休止状態が有効なカスタムイメージまたは Azure Marketplace イメージを使用する場合に、新しい開発ボックス定義の休止状態を有効にすることができます。 休止状態が有効なカスタムイメージまたは Azure Marketplace イメージを使用する既存の開発ボックス定義を更新することもできます。
休止状態が有効な開発ボックス定義を使用する開発ボックス プールで作成されたすべての新しい開発ボックスは、休止状態とシャットダウンの両方を実行できます。 休止が有効になる前に作成された開発ボックスがプールにある場合、それらの開発ボックスはシャットダウンのみをサポートし続けます。
Microsoft Dev Box は、休止状態のサポートのためにイメージを検証します。 イメージを使用して休止状態を正常に有効にできない場合、開発ボックス定義の検証が失敗する可能性があります。
Azure portal または Azure CLI を使用して、開発ボックス定義で休止状態を有効にすることができます。
Azure portal で休止状態を有効にする
Azure portal にサインインします。
検索ボックス内で、「デベロッパー センター」と入力します。 結果一覧から、[デベロッパー センター] を選択します。
更新する開発ボックス定義が含まれるデベロッパー センターを開き、それから [開発ボックス定義] を選択します。
更新する開発ボックス定義を選択し、編集 (鉛筆) ボタンを選択します。
[ 開発ボックス定義の編集 ] ページで、[ 休止状態を有効にする ] チェック ボックスをオンにします。
保存 を選択します。
Azure CLI で休止状態を有効にする
Azure CLI から開発ボックス定義の休止状態を有効にするには、イメージの作成時に hibernateSupport
フラグを Enabled
に設定します。
az devcenter admin devbox-definition update
--dev-box-definition-name <devBoxDefinitionName> -–dev-center-name <devCenterName> --resource-group <resourceGroupName> –-hibernateSupport Enabled
アクセスされていない開発ボックスの自動休止を有効にする
この機能は、起動するがユーザーが接続しない開発ボックスを自動的に休止することで、コストを最小限に抑えるのに役立ちます。 開発ボックスが起動し、RDP に接続するユーザーがいない場合は、設定した猶予期間の後に休止状態になります。 この設定により、アイドル状態の開発ボックスでリソースが不必要に使用されないようにするため、コストとリソースの使用量を最適化できます。
アクセスされていない開発ボックスの休止状態を設定するには、開発ボックス プールで設定を有効にする必要があります。
Azure portal にサインインします。
検索ボックスに「プロジェクト」と入力します。 結果一覧から、[プロジェクト] を選択します。
更新する開発ボックス プールを含むプロジェクトを開き、[ 開発ボックス プール] を選択します。
更新する開発ボックス プールを選択し、開発ボックス操作メニュー (...) で [編集] を選択します。
[ 開発ボックス プールの編集] ページで、 アクセスされていない休止状態の開発ボックスを選択します。
アクセスされたことがない休止状態の開発ボックスを選択すると、猶予期間を設定できます。 これにより、ユーザーは休止状態にする前に開発ボックスに接続できます。 猶予期間を分単位で目的の時刻に設定します。
保存 を選択します。
トラブルシューティング
Dev Box 定義で休止状態を有効にし、その定義が休止状態が有効になっていないことを報告する場合:
- Visual Studio for Dev Box Marketplace イメージを直接使用するか、カスタム イメージを生成するための基本イメージとして使用することをお勧めします。
- Windows + OS の最適化イメージには、最適化された電源設定が含まれており、休止状態と互換性がありません。
- カスタム Azure コンピューティング ギャラリー イメージを使用している場合は、Dev Box 定義で休止状態を有効にする前に、Azure Compute Gallery イメージで休止状態を有効にします。
- ギャラリー イメージで有効にした後でも、定義で休止状態を有効にできない場合、カスタム イメージには休止を防ぐ Windows 構成が含まれている可能性があります。
- 開発ボックスのプロビジョニング中に問題が発生した場合は、イメージで休止状態がサポートされていることを確認してください。
- イメージで休止状態がサポートされていても、プロビジョニング中にエラーが発生する場合は、「 Windows VM での休止状態のトラブルシューティング」を参照してください。
詳細については、「 休止状態と互換性のない設定」を参照してください。
開発ボックス定義で休止状態を無効にする
プールで休止状態を有効にした後に新しい VM のプロビジョニングで問題が発生した場合は、開発ボックス定義で休止状態を無効にします。
プールで休止状態を有効にした後に新しい VM のプロビジョニングに問題がある場合は、開発ボックス定義で休止状態を無効にすることができます。 設定をシャットダウン開発ボックスのみに戻す場合は、休止状態を無効にすることもできます。
Azure portal または CLI を使用して、開発ボックス定義で休止状態を無効にすることができます。
Azure portal で休止状態を無効にする
Azure portal にサインインします。
検索ボックス内で、「デベロッパー センター」と入力します。 結果一覧から、[デベロッパー センター] を選択します。
更新する開発ボックス定義が含まれるデベロッパー センターを開き、それから [開発ボックス定義] を選択します。
更新する開発ボックス定義を選択し、編集 (鉛筆) ボタンを選択します。
[ 開発ボックス定義の編集] ページで、[ 休止状態を有効にする ] チェック ボックスをオフにします。
保存 を選択します。
Azure CLI で休止状態を無効にする
Azure CLI から開発ボックス定義の休止状態を無効にするには、イメージの作成時に hibernateSupport
フラグを Disabled
に設定します。
az devcenter admin devbox-definition update
--dev-box-definition-name <devBoxDefinitionName> -–dev-center-name <devCenterName> --resource-group <resourceGroupName> –-hibernateSupport Disabled