Windows Virtual Desktop #43 Windows 10 version 2004 × Teams

この記事のWVDは”Windows Virtual Desktop Spring 2020 Release”が対象です。

Windows Virtual Desktop で Windows 10 Enterprise version 2004 を展開し問題なく利用できることは前回記事でお伝えしました。 今回は、Teams の利用も確認していきます。 Media Optimization for Microsoft Teams もテストします。

結論を先にお伝えするとWindows Virtual Desktop のWindows 10 Enterprise Version 2004 でTeams による通話と会議、その中で画面共有など問題なく実施できることが確認出来ました。

1. Media Optimization for Microsoft Teams 無し

まずは Media Optimization for Microsoft Teams を導入しない状態でのテストです。

テストする環境は以下。 Windows Virtual Desktop に展開した 1台のWindows 10 Enterprise version 2004 に2つアカウント(User A , User B) がMulti-Session でサインインします。

User Bの環境ではTeams のデスクトップアプリケーションはすでにインストール済です。 Windows Virtual Desktop にサインインするとTeams も自動起動してきます。

version は現時点で最新の 1.3.00.15561 です。

Settings から Devices を確認します。 Speaker と Microphone は”リモートオーディオ”として認識されています(Media Optimization が無効な環境では”リモートオーディオ”として認識されるのが正しい状態)。 Camera も ローカルPCに接続した Logicool のWebcam C615 が認識され、カメラのプレビューウィンドウには私の画像がリアルタイムに表示されます。

もう1台の環境(User A)についても同様に問題が無いことを確認します。画面等の紹介は割愛します。

これから2つのアカウントでTeams 通話を試すのですが、テストを開始する前にも関わらずCPUの負荷が比較的高い状況です。 Burst タイプの仮想マシンでかつ2 vCPU しかないこともありますが、どのプロセスがCPU リソースを消費しているのか確認します。

Windows Defender が20% 以上のCPU リソース消費です。 落ち着くまで待ちます。

ちなみに Multi-session 時はユーザタブから各ユーザランド毎のCPUとメモリのリソース消費を確認可能です。

そうこうしているうちにCPUリソースの消費が落ち着きましたのでテストを開始します。

Teams 通話で相手を登録します。

ビデオ通話を開始します。

Windows ファイアーウォールの許可が求められますので許可します。(相手側でも同様の許可操作が必要)

お互いの音声は問題ないのですが、片方のユーザのカメラ画像が表示されません。 理由はわかりませんが、次に実施するMedia Optimization を有効化する使い方が一般的になるはずなのでここでの原因追及は行わないことにします。

2. Media Optimization for Microsoft Teams 有効化

次はMedia Optimization を有効化した環境でのテストです。 Windows 10 Enterprise 2004 でTeams の最適化機能が問題なく動作するかどうかを確認します。

2.1. 環境構築

Microsoft Docs の手順に従いレジストリ設定とWebsocket のインストールを進めます。

まずはレジストリキーを追加します。

https://docs.microsoft.com/ja-jp/azure/virtual-desktop/teams-on-wvd#prepare-your-image-for-teams

上記のマニュアル通りにキーを追加します。

次はWebSocket Service のインストールです。こちらマニュアルに従い作業を進めます。

https://docs.microsoft.com/ja-jp/azure/virtual-desktop/teams-on-wvd#install-the-teams-websocket-service

マニュアルのリンクからモジュールをダウンロードし、インストールを進めます。

UAC の確認は”はい” で進めます。

失敗するので、マニュアルの案内通り、最新の Microsoft Visual C++ 再頒布可能パッケージ をインストールして再度チャレンジします。

手順は割愛しますが、Visual C++ 再頒布可能パッケージ をインストール後にOSを再起動し、そのあとにWeb Socket Service をインストール、その後にまたOSを再起動しています。

そして最後にTeams のインストールです。 今回の環境ではすでにインストールされていたもの(ユーザ毎にインストールできるタイプ)をアンインストールし、再インストールします。

https://docs.microsoft.com/ja-jp/azure/virtual-desktop/teams-on-wvd#install-microsoft-teams

以下からダウンロードし、インストールモジュールを実行します。

https://docs.microsoft.com/ja-jp/microsoftteams/teams-for-vdi#deploy-the-teams-desktop-app-to-the-vm

ダウンロードした”Teams_windows_x64″はWindows インストーラーパッケージであることがわかります。  

インストールを開始すると、ウィンドウ名も”Teams Machine-Wide Installer”となります。 ただし、GUIからのインストールはサポートされていないため、実際にはインストールは行われません。

マニュアルにある通りCUI からインストールを実施します。 今回はマシンごとのインストールとするため”ALLUSERS=1″ を指定します。 なお実行後は基本的に操作は不要でインストールは完了します。

> msiexec /i “Teams_windows_x64.msi” /l*v teams.log ALLUSER=1 ALLUSERS=1

もし、ユーザ毎にする場合は”ALLUSERS=1″は指定不要です。その場合は各ユーザのAppData 配下にTeams アプリケーションが配置されます。

マシンごとのインストールが終了するとデスクトップにTeams のショートカットが自動的に生成されます。

ショートカットのプロパティを確認します。 C:\Users\Public\Desktop にあるショートカットですので全ユーザに同じショートカットが見えます。

設定のアプリと機能から表示される名前は”Teams Machine-Wide Installer” です。表示名を変えたいところですがそれはまた別の時にします。

2.2. Media Optimization 有効化の確認

Media Optimization が有効化されているかを確認します。 プロファイルのメニューから、情報>バージョンに進みます。

“WVD Media は最適化されています”と表示されればOKです。

設定のデバイスも確認します。 スピーカとマイクが”リモートオーディオ”ではなく、物理PCのデバイスのスピーカーやマイクが表示されていればMedia Optimization は有効化されていることになります。 

もう1台の物理PCからサインインした仮想Windows 10 側でもTeams の状態を確認します。 

こちらは”testuser000″ というアカウントで仮想のWindows 10 にサインインしています。 わかりやすいようオレンジ背景にしました。 Task Manager から確認できますが、同じWindows 10 にMulti-Session として二人のユーザが同時にサインインしています。

バージョンは1.3.00.13565、WVD Media Optimized ということでMedia Optimization の最適化も有効化されていることを確認します。

デバイスのSpeaker もMicrophome も物理PCのデバイスが表示されていることを確認します。

2.3. Teams 通話のテスト

準備が整いましたのでテストしていきます。

まずはTeams 通話です。

音声、カメラとも問題なく動作することを確認しました。画像も音声も非常にクリアです。

Teams のプロセスのCPUリソースの使用率も低いです。Media Optimization が有効であることがここでもわかります。

ユーザ毎にのリソース消費は以下。 この時はたまたま片方のユーザのCPU使用率は低く見えますが、平均でみていくと同じ位の消費です。

以下のスクリーンショットは物理PC側のパフォーマンスです。リモートデスクトップが30%弱のCPUリソース消費であることがわかります。 4つの物理コアを持つ物理PCのためCPU 1個分以上のCPUリソースを消費します。 

続けてTeams 通話の中で画面を共有します。 さらにYoutube の動画を表示します。 動画は非常に滑らかに共有され、音声もクリアです。

タスクマネージャから見ると、Youtube を処理するEdge のCPU 使用率は25%ですが、Teams は10%以下です。

2台の物理PCはLAN で接続されているため、Media Optimization の機能によりPeer to Peer 接続でTeams 通話を行えます。パケットキャプチャを見ると192.168.0.38のIPを持つ物理PCと192.168.0.49 のIP を持つ物理PCとでUDP で通信していることを確認できます。

2.4. Teams 会議のテスト

次はTeams 会議です。

予定表からテスト用の会議を追加します。また、参加するテストユーザも追加します。

Windows Virtual Desktop にサインインしている2つのアカウントそれぞれからTeams 会議に参加します。

Teams 通話と比較すると明らかに画像が荒くなりました。 その理由はTeam 通話ではLAN内でのPeer to Peer 通信で動画像をやりとりできるのに対して、Teams 会議では2人だけの会議だとしてもPeer to Peer 通信は行えないためです。 

2つを並べてみます。 左のPeer to Peer 通信ありの方が鮮明であることがわかると思います。 まあ、リモート会議の中で黒板や白板の文字を読むとかしないかぎりは右側の画質でも全く問題ないと思います。

以下はTeams 会議中の物理PCでのパケットキャプチャです。 Peer to Peer の通信は全く行われないことがわかります。

続けてTeams 会議の中で画面を共有します。 そして、Edge でYoutube 動画にアクセスします。  両方の物理PCでは滑らかに動画が表示され音声も特に問題ありませんでした。

以下は物理PC側のパフォーマンスですがTeams 通話のPeer to Peer 実行時と大きな違いはないようです。

3. まとめ

今回のテスト目的となる Windows 10 Enterprise version 2004 でのTeams の動作確認は達成できました。 Media Optimization を有効化する前のテストではカメラ動作について想定外の動作はありましたが原因究明は行っていません。 Media Optimization を有効化しない環境は一般的ではないと考えるためです。

今回はWVDかつWindows 10 version 2004 でTeams が動くかどうかを主眼にしていましたが、Media Optimization の2つの効果についてはもっと定量的に試験をしたいところです。 

1つ目の効果となる動画・音声の処理を物理PCへオフロードについて、画面サイズや動画の変更量、フレームレートなどの要因に対してどれくらいのCPUリソースをオフロードできるのか明らかにしたいです。 オフロード出来れば出来るほど、また、その精度があがればあがるほど、Mulit Session 構成でのサイジングを最適化、要はコストダウン、することが出来ます。 また、オフロードするということは物理デバイス側のCPU負荷が上がるわけですがこちらも傾向を把握し、物理デバイス側で必要となるCPUリソースを正しく予測出来ないと、結果として使い物にならないシステムが出来上がってしまいます。 Windows Virtual Desktop に対応するシンクライアント端末はまだ見かけませんが、CPUリソースが貧弱なシンクライアント端末でのWindows Virtual Desktop 利用は注意が必要になるかもしれません。

2つ目の効果のTeams 通話でのPeer to Peer 通信も定量的な試験で必要帯域を見極められるようになる必要があります。 例えば、拠点からWANへの接続帯域が10 Mbps しかないところで他拠点とPeer to Peer で3 Mbps を使ってしまった場合、帯域の30%を消費してしまうわけです。 この3 Mbpsは単純なテストでYoutube 動画を画面共有した結果の値ですがもっと色々なケースで情報を集める必要があると考えています。  あとはこの帯域を管理者側で上限かけることが出来ると良い感じです(まだ調べていませんが)。

今回はここまでとします。

以上