Citrix Virtual Apps and Desktops

Azure VMの電源管理

必要な権限については、「必要なAzure権限」を参照してください。

Azureのオンデマンドプロビジョニング

Azureのオンデマンドプロビジョニングでは、VMは、プロビジョニング完了後、Citrix Virtual Apps and Desktopsで電源投入操作が開始されたときにのみ作成されます。

MCSを使用してAzure Resource Managerでマシンカタログを作成する場合、Azureのオンデマンドプロビジョニング機能は次のことを実現します:

  • ストレージコストを削減する。
  • カタログ作成を高速化する

MCSカタログを作成すると、Azure Portalにリソースグループ内のネットワークセキュリティグループ、ネットワークインターフェイス、基本イメージ、IDディスクが表示されます。

Azure Portalでは、Citrix Virtual Apps and DesktopsがVMの電源投入操作を開始するまで、そのVMは表示されません。次のような違いがある2種類のマシンがあります:

  • プールされたマシンの場合、オペレーティングシステムのディスクとライトバックキャッシュは、VMが存在する場合にのみ存在します。プールされたマシンをコンソールでシャットダウンすると、VMはAzure Portalに表示されません。マシンを定期的に(たとえば、勤務時間外に)シャットダウンすると、ストレージコストを大幅に節約できます。
  • 専用マシンでは、VMの初回電源投入時にオペレーティングシステムのディスクが作成されます。Azure PortalのVMは、マシンIDが削除されるまでストレージに残ります。専用マシンをコンソールでシャットダウンすると、VMは引き続きAzure Portalに表示されます。

電源を入れ直したときにプロビジョニングされた仮想マシンを保持する

電源を入れ直したときに、プロビジョニングされた仮想マシンを保持するかどうかを選択します。PowerShellパラメーターNew-ProvScheme CustomPropertiesを使用します。このパラメーターではプロパティPersistVmを追加することができ、これを使用して、電源を入れ直したときにプロビジョニングされた仮想マシンが保持されるかどうかを指定できます。PersistVmプロパティをtrueに設定して、電源がオフのときに仮想マシンが保持されるように設定するか、プロパティをfalseに設定して、電源がオフのときに仮想マシンが保持されないように設定します。

注:

PersistVmプロパティは、CleanOnBootおよびUseWriteBackCacheのプロパティが有効なプロビジョニングスキームにのみ適用されます。非永続仮想マシンにPersistVmプロパティが指定されていない場合、非永続仮想マシンは電源がオフのときにAzure環境から削除されます。

次の例では、New-ProvScheme CustomPropertiesパラメーターでPersistVmプロパティがtrueに設定されています:

<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
<Property xsi:type="StringProperty" Name="PersistVm" Value="true" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="demo-resourcegroup" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>
<!--NeedCopy-->

次の例では、New-ProvScheme CustomPropertiesパラメーターでPersistVMtrueに設定することで、ライトバックキャッシュが維持されます:

 New-ProvScheme
 -AzureAdJoinType "None"
 -CleanOnBoot
 -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Standard_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"false`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"demo-resourcegroup`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Client`" /></CustomProperties>"
 -HostingUnitName "demo"
 -IdentityPoolName "NonPersistent-MCSIO-PersistVM"
 -MasterImageVM "XDHyp:\HostingUnits\demo\image.folder\scale-test.resourcegroup\demo-snapshot.snapshot"
 -NetworkMapping @ {"0"="XDHyp:\HostingUnits\demo\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\ji-test.resourcegroup\jitest-vnet.virtualprivatecloud\default.network"}
-ProvisioningSchemeName "NonPersistent-MCSIO-PersistVM"
 -ServiceOffering "XDHyp:\HostingUnits\demo\serviceoffering.folder\Standard_B2ms.serviceoffering" -UseWriteBackCache
 -WriteBackCacheDiskSize 127
 -WriteBackCacheMemorySize 256
 <!--NeedCopy-->

ヒント:

PersistVmプロパティは、プロビジョニングされた仮想マシンを保持するかどうかを決定します。PersistOsdiskプロパティは、OSディスクを永続化するかどうかを決定します。プロビジョニングされた仮想マシンを保持するには、最初にOSディスクを保持します。仮想マシンを削除する前にOSディスクを削除しないでください。PersistVmパラメーターを指定せずにPersistOsdiskプロパティを使用することができます。

ストレージの種類の変更に失敗したときの電源投入時の動作をカスタマイズする

電源をオンにした際に、Azureでの障害が原因で、管理対象ディスクのストレージの種類が目的の種類に変更されないことがあります。この場合、VMはオフのままになり、エラーメッセージが送信されます。ただし、設定した種類にストレージを復元できない場合でも、VMの電源をオンにするか、VMの電源をオフのままにするかを選択できます。

  • カスタムプロパティのFailSafeStorageTypetrue(デフォルト設定)にするか、New-ProvSchemeまたはSet-ProvSchemeコマンドで値を指定しない場合:

    • 電源投入時、VMが正しくないストレージの種類でオンになります。
    • シャットダウン時、VMが正しくないストレージの種類でオフのままになります。
  • New-ProvSchemeまたはSet-ProvSchemeコマンドでカスタムプロパティのFailSafeStorageTypefalseにした場合:

    • 電源投入時、VMが正しくないストレージの種類でオフのままになります。
    • シャットダウン時、VMが正しくないストレージの種類でオフのままになります。

マシンカタログを作成するには:

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。
  3. IDプールをまだ作成していない場合は作成します。
  4. New-ProvSchemeにカスタムプロパティを追加します。例:

    New-ProvScheme -HostingUnitName "Azure-Resources-1" -IdentityPoolName "name" -InitialBatchSizeHint 1
    -MasterImageVM "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\abc.resourcegroup\def.snapshot"
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\Azure-Resources-1\ght.folder\abc.resourcegroup\abc-vnet.virtualprivatecloud\default.network"}
    -ProvisioningSchemeName "name"
    -ServiceOffering "XDHyp:\HostingUnits\Azure-Resources-1\serviceoffering.folder\Standard_DS2_v2.serviceoffering"
    -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
    <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"StorageTypeAtShutdown`" Value=`"Standard_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"true`" />
    </CustomProperties>"
    <!--NeedCopy-->
    
  5. マシンカタログを作成します。Remote PowerShell SDKを使用してカタログを作成する方法については、https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/を参照してください。

既存のマシンカタログを更新してカスタムプロパティのFailSafeStorageTypeを含めるようにします。この更新は、既存のVMには影響しません。

  1. Set-ProvSchemeコマンドでカスタムプロパティを更新します。例:
   Set-ProvScheme -ProvisioningSchemeName <String> -CustomProperties "
   <CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
   <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
   <Property xsi:type=`"StringProperty`" Name=`"IdentityDiskStorageType`" Value=`"Premium_LRS`" />
   <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"false`" />
   </CustomProperties>"
   <!--NeedCopy-->

Set-ProvSchemeで行った変更を既存のVMに適用するには、-StartsNowおよび-DurationInMinutes -1パラメーターを指定したSet-ProvVMUpdateTimeWindowコマンドを実行します。

  1. Set-ProvVMUpdateTimeWindowコマンドを-StartsNowおよび-DurationInMinutes -1パラメーターとともに実行します。例:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  2. VMを再起動します。

休止状態対応VMの作成

Azure環境では、休止状態をサポートするMCSマシンカタログを作成できます。この機能を使用すると、VMを一時停止し、ユーザーが再度サインインしたときにVMの以前の状態に再接続できます。

休止状態機能は以下に適用されます:

  • シングルセッションOS
  • 永続的および非永続的なVM
  • 静的およびランダム(プール)VDIデスクトップ

VDIデスクトップが静的かランダムかに関係なく、VMを休止状態にした後に同じセッションを再開できます。

このセクションでは、以下を参照してください:

休止状態を使用するための前提条件

休止状態を使用するには、次のタスクを必ず完了してください:

  • WindowsとLinuxの両方のマスターイメージにAzure VMエージェントをインストールします。Windowsイメージのページファイルは一時ディスク上に置くことができます。マシンカタログで休止状態が有効になっている場合、MCSはページファイルの場所を基本ディスクの「C:」ドライブに設定します。
  • MCSは、生成されたリソースの休止状態プロパティを自動的に設定します。休止状態をサポートするためにマスターリソースのプロパティを構成する必要はありません。
  • 休止状態をサポートするVMサイズをサブスクリプションで使用します。
  • VMが休止機能を継承できるように、休止状態対応マシンプロファイル(VMまたはテンプレートスペック)を作成します。VMを作成するには、「休止機能の使用を開始する」を参照してください。

    注:

    Microsoftについては、休止状態が有効なVMをOSディスクから展開できます。この機能は現在、特定のリージョンでサポートされており、間もなくすべてのリージョンで利用できるようになる予定です。詳しくは、「休止機能が有効なVMをOSディスクからデプロイする」を参照してください。

    テンプレートスペックを作成するには、次の手順を実行します:

    1. Azure Portalを開きます。テンプレートで使用する構成のVMを選択します。左側のペインで [テンプレートのエクスポート] を選択します。
    2. [パラメーターを含める] チェックボックスをオフにします。コンテキストをコピーし、JSONファイルとして保存します(例:VMExportTemplate.json)。
    3. テンプレートのパラメーターhibernationEnabledtrueであることを確認してください。パラメーターがtrueではない場合は、使用したVM構成を確認してください。サポートされるVMサイズをテンプレートファイルで指定できます。ただし、カタログの作成時にマシンのサイズを指定することもできます。
    4. ネットワークインターフェイスリソースのテンプレートをJSONファイルVMExportTemplate.jsonに追加します。その結果、2つのリソースを持つARMテンプレートファイルが作成されます。
    5. [Azure Portal]>[テンプレートスペック]>[テンプレートのインポート]>[ローカルテンプレートファイルを選択] を選択して、このテンプレートファイルをARMテンプレートスペックとしてインポートします。
    6. ARMテンプレートスペックを作成したら、マシンプロファイルとして使用できます。

    注:

    Citrix Studioと同期するまでに数分かかる場合があります。

詳しくは、Microsoftのドキュメント「休止状態を使用するための前提条件」を参照してください。

制限事項

  • シングルセッションOSマシンカタログ(永続的および非永続的)のみがサポートされます。
  • エフェメラルOSディスクとMCS I/O機能はAzureの休止状態をサポートしていません。
  • Windowsの自動更新中に休止機能が失敗する場合があります。

詳しくは、Microsoftのドキュメントを参照してください。

休止状態対応マシンカタログを作成および管理する

休止状態対応VMを作成するために、以下を使用して休止状態対応マシンカタログを作成および管理できます:

Web Studioでのカタログの作成

  1. [マシンカタログの作成] を選択します。カタログ作成ウィザードが開きます。
  2. [マシンの種類] ページで、このカタログのマシンの種類 [シングルセッションOS] を選択します。
  3. [マシン管理] ページで、次のように設定を選択します:

    1. 電源管理されているマシン(仮想マシン、ブレードPCなど) を選択します。
    2. [Citrix Machine Creation Services(MCS)] を選択します。
  4. [デスクトップエクスペリエンス] ページで、必要に応じてランダムまたは静的なデスクトップエクスペリエンスを選択します。
  5. [イメージ] ページで、マスターイメージを選択します。[マシンプロファイルを使用する] チェックボックスを選択し、休止状態をサポートするマシンプロファイルを選択します。ヒントをクリックすると、マシンプロファイルが休止状態をサポートしているかどうかがわかります。
  6. [ストレージとライセンスの種類] ページで、このカタログに使用するストレージとライセンスを選択します。
  7. [仮想マシン] ページで、仮想マシンの数、仮想マシンのサイズ、およびアベイラビリティ ゾーンを選択します。

    注:

    休止状態をサポートするマシンサイズは、選択のためにのみ表示されます。

  8. [NIC] ページで、仮想マシンで使用するNICを追加します。
  9. [ディスク設定] ページで、ライトバックキャッシュディスクのストレージの種類とサイズを選択します。
  10. [リソースグループ] ページで、仮想マシンをプロビジョニングするリソースグループを選択します。
  11. [マシンID] ページで、[新しいActive Directoryアカウントを作成する] を選択します。次に、アカウントの名前付けスキームを指定します。
  12. [ドメイン資格情報] ページで、[資格情報の入力] をクリックします。ドメイン資格情報を入力して、ターゲットのActive Directoryドメインでアカウント作成を実行します。
  13. [概要] ページで、マシンカタログの名前を入力し、[完了] をクリックします。

MCSマシンカタログの作成が完了したら、カタログ一覧でカタログを見つけて、[テンプレートのプロパティ] タブをクリックします。パラメーターHibernationの値はSupportedである必要があります。

マシンカタログを編集する場合は、次の制限を考慮してください:

  • 現在のマシンカタログが休止状態をサポートしている場合、次のことはできません:
    • VMサイズを休止状態に対応しないサイズに変更する。
    • マシンプロファイルを休止状態に対応しないプロファイルに変更する。
  • 現在のマシンカタログが休止状態をサポートしていない場合、次のことはできません:

既存の休止状態対応のVMを管理するためのマシンカタログを作成する

既に休止状態対応のVMがあり、それらを一時停止して再開したい場合は、マシンカタログを作成して、電源管理のためにそれらのVMをインポートします。

注:

休止状態対応のVMと休止状態に対応できないVMの両方を含むマシンカタログを作成できます。ただし、休止状態関連の機能が必要な場合は、休止状態対応のVMのみを含むマシンカタログを作成する必要があります。

Web Studioを使用して既存の休止状態対応のVMのカタログを作成するには、画面上の指示に従って手順を完了し、次の主要な設定に注意してください:

  1. [マシン管理] ページで、[電源管理されているマシン] を選択し、マシンを展開する方法として [ほかのサービスまたはテクノロジ] を選択します。
  2. [仮想マシン] ページで、休止状態対応のVMのみを追加またはインポートします。

PowerShellコマンドを使用してマシンカタログを作成する

休止状態を使用するための要件をすべて満たしたら、New-ProvSchemeコマンドを使用して休止状態対応のマシンカタログを作成できます。Remote PowerShell SDKを使用してカタログを作成する方法については、「New-ProvScheme」を参照してください。

カタログの作成中に、次のPowerShellコマンドを使用して、VMサイズとマシンプロファイルが休止状態をサポートしているかどうかを確認できます:

  • VMサイズについては、次のコマンドを実行し、プロパティsupportsHibernationTrueであるかどうかを確認します。例:

     Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \serviceoffering.folder") | select Name, AdditionalData | ConvertTo-Json
     <!--NeedCopy-->
    
  • マシンプロファイルについては、次のコマンドを実行し、プロパティsupportsHibernationTrueであるかどうかを確認します。例:

     Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \machineprofile.folder\abc.resourcegroup")|select Name, AdditionalData|ConvertTo-Json
     <!--NeedCopy-->
    

マシンカタログを編集する場合は、次の制限を考慮してください:

  • 現在のマシンカタログが休止状態をサポートしている場合、次のことはできません:
    • VMサイズを休止状態に対応しないサイズに変更する
    • マシンプロファイルを休止状態に対応しないプロファイルに変更する
  • 現在のマシンカタログが休止状態をサポートしていない場合、次のことはできません:

Remote PowerShell SDKを使用してカタログのVMサイズとマシンプロファイルを変更する方法については、https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Set-ProvScheme/を参照してください。

MCSでプロビジョニングされた既存のVMで休止状態を有効にする

以下の既存のものでAzure休止状態を有効にできます:

  • 一時ディスクを使用せずに作成された、Windows MCSによってプロビジョニングされたマシンカタログのVM。
  • 一時ディスクを使用して、または使用せずに作成された、Linux MCSによってプロビジョニングされたマシンカタログのVM。

注:

  • MCSによってプロビジョニングされた既存のVMには、Azure VMエージェントがインストールされている必要があります。
  • 現在、この機能を有効にするにはPowerShellコマンドのみを使用できます。

これを行うには、以下の手順を実行します:

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。
  3. 既存のマシンの構成を確認します。例:

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  4. Set-ProvSchemeコマンドを使用して、このマシンカタログで休止状態を有効にします。例:

    Set-ProvScheme -provisioningSchemeName xxxx
    -machineprofile <path-to-machineprofile-with-hibernation-enabled>
    -serviceoffering "XDHyp:\HostingUnits\msc-dev\serviceoffering.folder\Standard_D4as_v5.serviceoffering"
    <!--NeedCopy-->
    
  5. マシンカタログ内の既存のVMで更新を要求します。

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeUid xxxx -VMName <String[]
    <!--NeedCopy-->
    
  6. VMを再起動して、既存のVMでの更新をトリガーします。例:

    New-BrokerHostingPowerAction -machinename "<name>" -Action Restart
    <!--NeedCopy-->
    

休止状態のプロパティを確認する

PowerShellコマンドを使用して、マシンカタログ、VM、およびブローカーマシンの休止状態プロパティを確認できます:

  • プロビジョニングスキームの休止状態プロパティを確認するには、次のPowerShellコマンドを実行します。HibernationEnabled パラメーターはTrueである必要があります。

     (Get-ProvScheme -provisioningSchemeName <YourSchemeName>).VMMetadata -join "" |  ConvertFrom-Json | Select HibernationEnabled
     <!--NeedCopy-->
    
  • プロビジョニングVMの休止状態プロパティを確認するには、次のPowerShellコマンドを実行します。SupportsHibernation パラメーターはTrueである必要があります。

     (Get-ProvVM -VMName <YourVMName>).CustomVmData | ConvertFrom-Json | Select SupportsHibernation
     <!--NeedCopy-->
    
  • ブローカーマシンの休止状態を確認するには、次のPowerShellコマンドを実行します。電源操作の [一時停止] および [再開] は休止機能を示します。

     (Get-BrokerMachine -MachineName <YourMachineName>).SupportedPowerActions
     <!--NeedCopy-->
    

休止状態対応のVMの電源管理

休止状態対応のVMに対して実行できる電源管理操作は、次のとおりです:

  • VMを実行状態から一時停止にする
  • VMを一時停止状態から再開する
  • VMを一時停止状態から強制的にシャットダウンする
  • VMを一時停止状態から強制的に再起動する

詳しくは、以下を参照してください:

一時停止

次のいずれかの方法を使用してVMを一時停止できます:

  • Web Studioを使用して手動で行う
  • タイムアウトポリシーを使用して自動的に行う:詳しくは、「その他の設定」を参照してください。

VMを手動で一時停止するには:

  1. VMを右クリックし、[一時停止] を選択します。[はい] をクリックしてアクションを確認します。[電源の状態][一時停止中] から [一時停止] に変わります。

    休止状態対応のVMを一時停止する

Azure PortalでVMのステータスを確認できます。

Azure PortalでVMのステータスを確認する

再開

休止状態のVMを再開するには、次のいずれかの方法を使用します:

  • 手動

    • 管理者は、Web Studioを使用してVMを再開できます。

      Web Studioを使用してVMを再開する

    • エンドユーザーは、デスクトップアイコンをクリックすると、Citrix Workspaceメニューを使用してVMを起動できます。

      Citrix Workspaceを使用してVMを再開する

  • 自動

    • ピーク時間を正しく構成すると、Autoscaleは休止状態のマシンの電源を自動的にオンにします。タイムスケジュールをクリックすると、ピーク時間を30分間隔で設定できます。青いフレームは、それぞれピーク時間としてマークされた時間枠を表します。ピーク時間には、連続した時間枠と連続しない時間枠があります。

      • 連続した時間枠

        連続したピーク時間枠

      • 連続しない時間枠

        連続しないピーク時間枠

注:

[Autoscaleの管理]>[負荷ベースの設定] で、[アクション][一時停止] として構成されている場合は、そのデリバリーグループ内のすべてのVMに休止機能があることを確認してください。休止機能がないと、休止状態にできないVMは引き続き実行されます。

Autoscaleの負荷ベースの設定を管理する

追加情報

Citrix Azureの休止状態について詳しくは、Citrix Tech Zoneの記事を参照してください。

Azure VMの電源管理