読者です 読者をやめる 読者になる 読者になる

EUC めも(仮)

日々の仕事のメモ

vGPU 環境における vSphere HA & vMotion のサポート状況 (2016/12/16 現在)

vSphere 6.5 がリリースされましたが、これに伴い vGPU 環境で vSphere HA がサポートされるようになりました。サポート状況については、NVIDIA さんの以下の場所に記載があります。

 

Do NVIDIA GRID GPUs support XenMotion/vMotion, DRS or High-Availability (HA)? | NVIDIA

 

vSphere HA については、以下のように記載されています。

"High-Availability (HA) for with VMware (pre-vSphere 6.5): VMware added HA support for vGPU enabled VMs in their vSphere 6.5 (Nov 2016) release, vSphere 2016 is supported by the GRID 4.1 (Nov 2016) release"

 

一方で、vMotion や Instant Clone といった機能についてはまだサポートされていません。こちらも将来バージョンでサポートされると良いですね。

 

PowerCLI による Horizon View 運用管理の実践

※本エントリーは、vExpert Advent Calendar 2016 に参加しています!vExpert の方々がさまざまなネタをブログに寄稿されているので、ぜひお立ち寄りください。12/15 は私が担当します。


PowerCLI 6.5 release 1 から Horizon View の API に直接アクセスできるようになり、大部分の操作をスクリプトによって自動化できるようになったことを、前回のエントリーで紹介しました。

本エントリーでは、具体的な使用方法について紹介したいと思います。

 

①ダウンロード

まず、PowerCLI をこちらのページからダウンロードします。

また、GitHubで公開されている Hv.Helper という名前のモジュールもこちらのページからダウンロードします。

 

②インストール

PowerCLI はインストーラを実行してウィザードに沿って進めていくだけでインストールが可能です。Horizon Viewのモジュールが含まれていることを確認します。f:id:ymita1022:20161214135151p:plain

インストール完了後に PowerShell を管理者として実行し、「Set-ExecutionPolicy RemoteSigned」というコマンドレットを実行します。

GitHub からダウンロードした Hv.Helper の方ですが、こちらは VMware.Hv.Helper フォルダを PowerCLI の Module フォルダにコピーします。

 

③モジュールのインポート
PowerCLI をショートカットから実行すると、必要なモジュールが自動的にインポートされます。手動でインポートする場合は、以下のコマンドレットを実行します。
Import-Module VMware.VimAutomation.HorizonView
Import-Module VMware.VimAutomation.Core

 

④Connection Server への接続
Connection Server へ接続するために、以下のコマンドレットを実行します。実行すると、ユーザのクレデンシャル情報を要求されるので入力します。
Connect-HVServer -Server <Connection Server の IP アドレス>

もしくは、以下のようにユーザのクレデンシャル情報をパススルーで渡すことも可能です。(ユーザについては、View Administrator 上で「直接操作」のロールが付与されている必要があります。)
$hvServer = Connect-HVServer - Server <Connection Server の IP アドレス> -User <ユーザアカウント名> -Password <パスワード> -Domain <ドメイン名>

 

⑤View API との連携で使用可能なメソッドの表示
まずどのようなメソッドが使用可能か見てみます。以下のコマンドレットを実行します。
$Services = $hvServer.ExtensionData
$Services

実行すると、メソッドの一覧が表示されます。

f:id:ymita1022:20161214140341p:plain

 

⑥メソッドを使用したスクリプト
ここまで来れば、あとは View API のドキュメントを参照しながらスクリプトを作成していくことになります。PowerShell ISE を使うと、自動的にメソッド名等の入力を補完してくれるので便利です。

例1:Connection Server のリストを表示するスクリプト
$hvServers1 = $Services1.ConnectionServer.ConnectionServer_List()
$hvServers1.General

f:id:ymita1022:20161214141340p:plain

例2 : Connection Server のヘルスステータスを表示するスクリプト
$hvHealth1 = $Services1.ConnectionServerHealth.ConnectionServerHealth_List()
$hvHealth1 | Select -Property Name, Status, Version, Build, DefaultCertificate | Format-Table

f:id:ymita1022:20161214141753p:plain

 

⑦クエリを使用したスクリプト
Horizon View には多数のオブジェクトがありますが、クエリサービスを使うことで必要なオブジェクトの情報を取得できるようになっています。例えば、AD ユーザやプール、マシン、セッションといったオブジェクトを扱うことが可能です。

例3 : すべてのプールを表示するスクリプト
$queryService = $hvServer.ExtensionData.QueryService
$query = New-Object VMware.Hv.QueryDefinition
$query.QueryEntityType = 'DesktopSummaryView'
$query.SortDescending = $true
$queryResults = $queryService.QueryService_Query($query)
$Pools = $queryResults.Results.DesktopSummaryData
$Pools

f:id:ymita1022:20161214142557p:plain

 

⑧Hv.Helper の活用
GitHub で公開されている Hv.Helper では、便利なコマンドレットが提供されています。GitHub では実体となっているスクリプトを参照することも可能です。
- Start-HVPool : プールのリフレッシュやリコンポーズ等のメンテナンス操作を行うためのコマンドレット
- Set-HVPool : プールのプロパティをセットするためのコマンドレット
- Remove-HVPool : プールを削除するためのコマンドレット
- New-HVPool : プールを新規作成するためのコマンドレット

 

最初から便利なコマンドレットが標準提供されているわけではなく、View API の仕様に慣れる必要はありますが、使いこなせると非常に便利です。Horizon View に関連する大半の操作を PowerCLI のスクリプトによって自動化することができるので、使い方によっては大規模環境の運用管理の負荷を下げられます。提供が開始されたばかりということで、GitHubで公開されているコマンドレットは少ないですが、今後の追加公開に期待したいところです。

PowerCLI 6.5 release 1 の提供開始と Horizon View との連携

PowerCLI 6.5 releae 1 が提供開始になりました。このバージョンでは、Horizon View の API との連携ができるようになっています。

 

VMware PowerCLI Release Notes

 

これまでも View の一部の操作については、PowerCLI のコマンドレットが提供されていました。ただし、提供されていたのは一部の操作に限られており、例えば RDSH 関連の操作については PowerCLI のコマンドレットがありませんでした。今回のリリースでは、PowerCLI のインターフェースから直接 View の API にアクセスできるようになっているため、非常に多岐にわたる View 関連の処理を PowerCLI 上から実行できるようになっています。

 

ただし、従来のように View の各種操作に相当するようなコマンドレットが提供されているわけではない点に注意が必要です。そのため、これまでのように標準で用意されているコマンドレットを単に実行すればよいというわけではなく、View API を使ったスクリプティングが必要になります。スクリプトを作成するためには、PowerShell と View API に関する知識が要求されます。

 

このような仕様に伴い、View API の情報が外部に公開されるようになったようです。

 

developercenter.vmware.com

 

View 7.0.2 のリリースノートもひっそりとアップデートされたようなので、こちらもご参照ください。上記の View API の情報が掲載されているサイトの URL に加えて、GitHub の URL も記載されています。

 

Release Notes for VMware Horizon 7 version 7.0

 

まだアップロードされていないようですが、以下の GitHub にサンプルスクリプトが今後公開されていくようです。今後の情報の更新に期待したいところです。

 

github.com

 

 

 

Horizon View 環境で TLS 1.0 を有効化する方法

Horizon 7 では、TLS 1.1 と TLS 1.2 のみが使用されます。そのため、TLS 1.0 での通信が必要な古いコンポーネントが環境に存在する場合、通信に失敗することがあります。この点については、Horizon 7 のリリースノートに明記されています。

 

VMware Horizon 7 バージョン 7.0 リリース ノート

 

また、Horizon Client については 4.0 で TLS 1.0 がデフォルトで無効にされたものの、4.0.1 で再度有効化されるという経緯がありました。Horizon View 環境にはさまざまなコンポーネントが存在するので、TLS のバージョンが食い違っていると、それだけで仮想デスクトップへの接続に失敗する可能性があります。

 

TLS のバージョンに起因する問題に遭遇してしまった場合、各コンポーネントで対応する TLS のバージョンを有効化する必要があります。下記に各コンポーネントにおける設定方法が記載されている情報ソースをまとめました。ご参考までに。

 

Enable TLSv1.0 on vCenter Connections from Connection Server

 
Configuring security protocols on components to connect the View Client with desktops (2130798)
Access Point : TLSSSL 通信に使用されるセキュリティ プロトコルと暗号化スイートの変更
 

 

Horizon Client for Android 4.2.1 リリース

先日 4.2 がリリースされたばかりですが、4.2.1 がリリースされていました。

 

VMware Horizon Client for Android Release Notes

 

What's New に記載されているのは、以下の項目だけですね。RSA SecurID を使った二要素認証かつ Android 7.0 Nougat を使う場合に問題があったようです。

The 4.2.1 release fixes an RSA SecurID authentication failure issue on Android 7.0 Nougat.

 

 

Identity Manager の管理コンソールにログインできなくなった際の対処

View 7.0.2 に関するアップデートは一通りまとめたので、小ネタを。。。

 

Identity Manager の管理コンソールにログインする際、ログイン画面でドロップダウンメニューから「ローカルユーザ」を選択し、管理者アカウントでログインします。が、「ローカルユーザ」を選択できない場合、以下の URL にアクセスすればローカルユーザとしてログインすることが可能です。

 

https://<vIDM の FQDN/SAAS/login/0

 

通常のログイン URL の末尾に「/SAAS/login/0」を追加します。

管理コンソールにアクセスできなくて困る!という場合にお試しください。 

Horizon View 7.0.2 の新機能 ⑤ DPI の同期

Horizon View 7.0.2 と Horizon Client 4.2 の組み合わせで、クライアント端末(Horizon Client)とエージェント(VDI)間で DPI 設定が同期されるようになりました。Horizon Client 4.2 のリリースノートには、以下のように記載されています。

 

”DPI Synchronization
The DPI Synchronization feature ensures that the remote desktop's DPI setting matches the client machine's DPI setting for new remote sessions. This feature is enabled by default. An administrator can disable this feature by disabling the Horizon Agent DPI Synchronization group policy setting. For more information, see "Horizon Agent Configuration ADM Template Settings" in Setting Up Desktop and Application Pools in View.”

 

  • DPI とは?

DPI というのは Dot per Inch の略です。Windows の DPI 設定を変更することで Windows 上のアイコンやテキストの大きさを変えることができます。解像度が非常に高いディスプレイを使っていると、Windows アプリケーションのアイコンが非常に小さくなってしまいますが、そのようなときに DPI を調整することで、アイコンを大きく見やすくすることができます。

 

  • DPI Synchronization 機能

View 7.0.2 ではクライアント端末側の Windows の DPI 設定を検知し、それをもとに仮想デスクトップ側の DPI 設定を自動的に調整してくれるようになりました。DPI はデフォルトで 100% に設定されています。クライアント端末側で DPI を 150% に設定すると、仮想デスクトップ側の DPI も 150% に変更されます。この機能はデフォルトで有効になっていますが、グループポリシーによって無効化することも可能です。その場合は、Horizon Agent 側にグループポリシーを適用します。

なお、この機能は Horizon Agent 7.0.2 と Horizon Client 4.2 が必須です。

 

  • DPI Synchronization と Display Scaling の違い

ところで、Horizon Client では従来から Display Scaling という機能が提供されていました。この機能は DPI Synchronization と非常によく似ていますが、クライアント端末側の DPI 設定を検知し、仮想デスクトップ側の解像度を自動的に調整する機能になります。DPI Synchronization のように、仮想デスクトップ側の DPI を調整するわけではありません。DPI Synchronization と Display Scaling がどちらも有効になっている場合は、DPI Synchronization が優先されます。

例として、クライアント端末側の解像度が 1440×900 で DPI が 150% の場合を考えてみます。この場合、それぞれの機能によって、仮想デスクトップ側では以下のように調整されます。

 

- DPI Synchronization : 解像度 1440×900 , DPI 150%

- Display Scaling : 解像度 960×600 , DPI 100%

 

デフォルトでは DPI Synchronization が優先されるので、仮想デスクトップの DPI が 150% に自動的に調整されます。このように、DPI Synchronization では DPI が自動調整され、Display Scaling では解像度が自動調整されます。

非常に解像度が高いディスプレイやデバイスを使うような場面では使えそうな機能です。