AVD スケーリングプランの動作について

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは、Windows サポートチームの矢野です。

AVD をご利用のお客様の中には、運用コスト削減のため、電源管理の導入の検討されており、その中で AVD の機能の一つである、自動スケーリング機能 (スケーリングプラン)が一つの案として挙げられます。
自動スケーリング機能には設定にあたって各種パラメータを設定し、使用します。スケーリングプランがどのように動作するか詳細を把握することで、自動スケーリング機能が要件に合うか判断可能になると存じます。
本ブログでは自動スケーリング機能の詳細動作につきまして記載いたします。自動スケーリング機能の利用判断の一助となれば幸いです。

本記事では、以下公開技術文書に記載のスケーリングプランを使用した際の挙動の詳細についてご紹介いたします。

Azure Virtual Desktop の自動スケーリング プランを作成する

目次

  • スケーリングプランとは
  • スケーリングプランの仕組みに関して

スケーリングプランとは

自動スケーリング機能 (スケーリングプラン) とは簡潔に説明すると、利用ユーザー数に合わせて仮想マシンの起動、停止を行う機能になります。
公開技術文書において自動スケーリング機能 (スケーリングプラン) は以下のように記載されております。
自動スケーリング機能 (プレビュー) を使用すると、Azure Virtual Desktop デプロイの仮想マシン (VM) をスケールアップまたはスケールダウンして、デプロイ コストを最適化できます。 ニーズに応じて、次に基づいてスケーリング プランを作成できます。

• 時刻

• 特定の曜日

• セッション ホストごとのセッションの制限

本ブログではこのスケールアップ、スケールダウンを行う際のアルゴリズムに関して記載いたします。
なお、自動スケーリング機能 (スケーリングプラン) を使用する際の設定方法や、注意点、 FAQ につきましては、以下公開技術文書の記載をご確認頂きますようお願い申し上げます。
本ブログ記事では自動スケーリング機能の詳細動作に関して記載いたします。

Azure Virtual Desktop の自動スケーリング プランを作成する

Azure Virtual Desktop でスケーリング プランをホスト プールに割り当てる

Azure Virtual Desktop の自動スケーリングの診断を設定する

Azure Virtual Desktop の自動スケール用語集

Azure Virtual Desktop での自動スケーリング プランとシナリオ例

Azure Virtual Desktop 自動スケーリングの FAQ

スケーリングプランの仕組みに関して

スケーリングプランでは各種フェーズの指定された値に基づいて動作いたします。
容量しきい値に関する評価と、ホストの最小割合に関する評価の二つの評価が行われます。
以下にそれぞれの評価アルゴリズムに関しまして記載いたします。
※なお、この動作は予告なく変更される場合がございます。予めご了承ください。

■ 容量しきい値に関する評価アルゴリズム
以下二つの A、B を使用し評価されます。

1
2
3
4
A : ホストプール内のセッション総数 (アクティブセッション+切断されたセッション) 

B : (容量のしきい値 ÷ 100) * ホストプールの「セッション数の上限」* 現在稼働しているセッションホスト数
※容量のしきい値の単位が%のため、÷ 100 を行い、単位調整を行っております。
1
2
3
4
5
6
7
8
9
10
11
12
13
①「A > B」の場合

「スケールアップ」が行われます。


②「A == B」の場合

変更なし


③「A < B」の場合

「A < B」かつ セッションホストをシャットダウンした後の総セッション数、仮想マシンの台数においても「A < B 」が成立する場合「スケールダウン」が行われます。

なお、スケールダウンについては、各時間帯によって、また、各セッションホスト内の総セッション数 (切断セッションも含まれます) が 0 なっているか否かで、以下の通り挙動が異なります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

・ランプアップ
条件を満たしたとしてもセッションホストは停止されません。

・ピーク時、ピーク時以外
総セッション数が 0 のセッションホストのみ停止されます。
(セッションが1つでも残っている場合、そのセッションホストは停止されません。)

・ランプダウン
a.「ユーザーのログオフを強制する」をはいに選択した場合
セッション数が0でなくとも、ホストがシャットダウンされます。
より具体的にはセッションホスト内のセッションに対して強制ログオフが実行され、セッションホスト内のセッション数が 0 となった後にシャットダウンが行われます。
なお、セッション数が少ないセッションホストから強制ログオフが実行されます。

b.「ユーザーのログオフを強制する」をいいえに選択し、「VM にアクティブまたは切断されたセッションはありません」を選択した場合
アクティブなセッション数、切断セッション数が 0 の時セッションホストが停止されます。

c.「ユーザーのログオフを強制する」をいいえに選択し、「VM にはアクティブなセッションがありません」を選択した場合
アクティブなセッション数が 0 の時、セッションホストが停止されます。(切断セッションの数は考慮されません。)

なお、注意点として、セッションホストの台数が 1台 -> 0台となる場合に限っては例外的にセッション数が必ず 0 である必要があります。

また、セッションホストを停止した場合の最小ホスト数が後述のホストの最小割合のアルゴリズムより、少なくなる場合は、
たとえ上記条件が満たされたとしてもセッションホストは停止されません。

■ホストの最小割合に関する評価アルゴリズム

1
2
ホストの最小割合*ホストプール内のセッションホスト総数 > 100*アクティブなセッションホスト数
※ホストの最小割合が%のため、単位調整のため、右式に 100 を掛けております。

の時、

1
2
ホストの最小割合*ホストプール内のセッションホスト総数 ÷ 100 
※ホストの最小割合の単位が%のため、÷ 100 を行っております。

の小数点を切り上げた整数にセッションホスト稼働台数が変化いたします。

■スケーリングプランの評価タイミングに関して
スケーリングプラン有効にしたタイミングから対象のホストプールのセッション数が変動する度に評価がされます。

セッション数の変動がない場合は、30 分おきにスケーリングプランによる評価が行われます。
なお、スケーリングプランの処理中にセッション数が増加した場合は、次の評価時にまとめて評価されます。

■具体例(1)

フェーズ: ピーク時

ホストプールのセッション数の上限: 10

容量のしきい値: 50 (%)

現在のセッション数 : 5

稼働中のセッションホストの数 : 1

上記状況で 1 ユーザーがログインし、セッション数が 1 増加したタイミングのスケーリングプランの動作は
A = 6
B = (50÷100)×10×1 = 5
となるため、A>B となり、1 台のセッションホストが新たに起動します。

■具体例(2)

フェース: ランプダウン

ホストプールのセッション数の上限: 10

容量のしきい値: 50 (%)

ホストの最小割合 : 10 (%)

現在のセッション数 : 20

稼働中のセッションホストの数 : 4

ホストプール内のセッションホスト総数 : 10

上記状況で 1 ユーザーがログオフし、セッション数が 19 に減少したタイミングのスケーリングプランの動作は

A = 19

B = (50÷100)×10×4 = 20

最小セッションホスト数の割合のアルゴリズムの結果

ホストの最小割合*ホストプール内のセッションホスト総数 = 100

100*アクティブなセッションホスト数 = 400 (1台停止した場合は 300)

A < B かつ ランプダウンフェーズ かつ Aため、最小セッションホスト数のアルゴリズムの条件を満たしているため、1 台のセッションホストが停止されます。

停止するセッションホストはセッション数が最小のセッションホストが選定されます。
もしランプダウンフェーズであった場合は、セッション数が 0 のセッションホストが存在する場合はそのマシンが停止されます。
セッション数 0 のマシンが存在しない場合は停止されません。

以上がスケーリングプランの詳細動作の説明になります。
スケーリングプランの選定と一助となれば幸いでございます。

※2023 年 3 月 27 日時点での情報になります。

更新履歴 - Update History

  • 2023/04/03: 内容修正
  • 2023/03/27: 本 Blog の公開