Citrix Virtual Apps and Desktops

Entornos en la nube de Microsoft Azure Resource Manager

Siga las instrucciones de este artículo si usa Azure Resource Manager de Microsoft para aprovisionar máquinas virtuales en su implementación de Citrix Virtual Apps and Desktops.

Suponemos que conoce lo siguiente:

Aprovisionamiento a demanda de Azure

Con el aprovisionamiento a demanda de Azure, las máquinas virtuales se crean solo cuando Citrix Virtual Apps and Desktops inicia una acción de encendido, después de completarse el aprovisionamiento.

Cuando se usa MCS para crear catálogos de máquinas en Azure Resource Manager, la función de aprovisionamiento a demanda de Azure:

  • Reduce los costes de almacenamiento
  • Proporciona una creación de catálogos más rápida

Al crear un catálogo con MCS, Azure Portal muestra el grupo de seguridad de red, las interfaces de red, las imágenes base y los discos de identidad de los grupos de recursos.

Azure Portal no muestra ninguna máquina virtual hasta que Citrix Virtual Apps and Desktops inicie una acción de encendido en ella. Existen dos tipos de máquinas con estas diferencias:

  • Para una máquina agrupada, el disco del sistema operativo y la caché de reescritura solo existen cuando existe la máquina virtual. Al apagar una máquina agrupada en la consola, la VM no se ve en Azure Portal. Si apaga máquinas de forma rutinaria (por ejemplo, fuera del horario laboral), hay un ahorro significativo en los costes de almacenamiento.
  • Para una máquina dedicada, el disco del sistema operativo se crea la primera vez que se encienda la máquina virtual. La VM de Azure Portal permanece almacenada hasta que se elimina la identidad de la máquina. Al apagar una máquina dedicada en la consola, la VM sigue viéndose en Azure Portal.

Conexión con Azure Resource Manager

Conexiones y recursos describe los asistentes que crean una conexión. En los siguientes artículos, se describen datos específicos de las conexiones con Azure Resource Manager.

Consideraciones:

  • Citrix recomienda usar la entidad de servicio con rol de colaborador. Sin embargo, consulte la sección Permisos mínimos para obtener la lista de permisos mínimos correspondientes.
  • Al crear la primera conexión, Azure pide conceder a ese rol los permisos necesarios. Para conexiones futuras, aún deberá autenticarse, pero Azure recuerda su consentimiento anterior y no vuelve a mostrar la solicitud.
  • Las cuentas utilizadas para la autenticación deben ser de un coadministrador de la suscripción.
  • La cuenta utilizada para la autenticación debe ser un miembro del directorio de suscripción. Hay dos tipos de cuentas que tener en cuenta: “cuenta profesional o educativa” y “cuenta personal de Microsoft” Para más información, consulte CTX219211.
  • Puede usar una cuenta existente de Microsoft si la agrega como miembro del directorio de suscripción. Sin embargo, puede haber complicaciones si el usuario antes tenía acceso como invitado a uno de los recursos del directorio. En ese caso, puede tener una entrada de marcador de posición en el directorio que no le concederá los permisos necesarios, y se producirá un error.

    Rectifíquelo eliminando los recursos del directorio y agregándolos de nuevo explícitamente. Sin embargo, use esta opción con cuidado, ya que tiene efectos no deseados para otros recursos a los que pueda acceder la cuenta.

  • Hay un problema conocido que consiste en que algunas cuentas se detectan como invitados del directorio cuando en realidad son miembros. Por regla general, configuraciones como esta se producen con las cuentas de directorio antiguas establecidas. Solución temporal: Agregue una cuenta al directorio, con el valor correcto de membresía.
  • Los grupos de recursos son simplemente contenedores de recursos, y pueden contener recursos de regiones distintas a su propia región. Eso puede ser confuso si cree que los recursos que se muestran en la región de un grupo de recursos están disponibles.
  • Su red y subred deben ser lo suficientemente grandes como para alojar la cantidad de máquinas que necesita. Eso requiere previsión, pero Microsoft le ayuda a especificar los valores correctos, con orientación sobre la capacidad del espacio de direcciones.

Puede establecer una conexión de host con Azure de dos formas:

  • Autenticarse en Azure para crear una entidad principal de servicio.
  • Usar la información de una entidad de servicio anterior para conectarse a Azure.

Crear una entidad principal de servicio

Importante:

Esta función aún no está disponible para las suscripciones de Azure China y Azure Alemania.

Antes de empezar, autentíquese en Azure. Compruebe que:

  • Tiene una cuenta de usuario en el arrendatario de su suscripción de Azure Active Directory.
  • Con la cuenta de usuario de Azure AD, también se coadministra la suscripción de Azure que quiera usar para aprovisionar recursos.
  • Tiene permisos de administrador global, administrador de aplicaciones o desarrollador de aplicaciones para la autenticación. Estos permisos se pueden revocar después de crear una conexión de host. Para obtener más información sobre los roles, consulte Roles integrados de Azure AD.

Al autenticarse en Azure para crear una entidad principal de servicio, se registra una aplicación en Azure. Se crea una clave secreta (secreto de cliente) para la aplicación registrada. La aplicación registrada utiliza el secreto de cliente para autenticarse en Azure AD. Debe cambiar el secreto de cliente antes de que caduque. Recibirá una alerta en la consola antes de que caduque la clave secreta.

Para autenticarse en Azure con tal de crear una entidad principal de servicio, siga estos pasos del asistente Agregar conexión y recursos:

  1. En la página Conexión, seleccione Crear una conexión, el tipo de conexión Microsoft Azure y su entorno de Azure.

  2. Seleccione las herramientas a utilizar para crear las máquinas virtuales y, a continuación, seleccione Siguiente.

  3. En la página Detalles de conexión, escriba su ID de suscripción de Azure y un nombre para la conexión. Después de introducir el ID de suscripción, se habilita el botón Crear.

    Nota:

    El nombre de la conexión puede contener de 1 a 64 caracteres, y no puede contener solo espacios en blanco ni los caracteres \/;:#.*?=<>|[]{}"'()'.

  4. Seleccione Crear e introduzca el nombre de usuario y la contraseña de la cuenta de Azure Active Directory.

  5. Seleccione Iniciar sesión.

  6. Seleccione Aceptar para conceder a Citrix Virtual Apps and Desktops los permisos mostrados. Citrix Virtual Apps and Desktops crea una entidad de servicio que le permite administrar los recursos de Azure en nombre del usuario especificado.

  7. Después de seleccionar Aceptar, volverá a la página Conexión del asistente.

    Nota:

    Después de autenticarse correctamente en Azure, desaparecen los botones Crear y Usar existente. Aparece el texto Conexión correcta, con una marca de verificación verde que indica la conexión correcta a su suscripción de Azure.

  8. En la página Detalles de conexión, seleccione Siguiente.

    Nota:

    No puede pasar a la página siguiente hasta que se haya autenticado correctamente en Azure y haya dado su consentimiento para otorgar los permisos necesarios.

  9. Configure recursos para la conexión. Los recursos constituyen la región y la red.

    • En la página Región, seleccione una región.
    • En la página Red, haga lo siguiente:
      • Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. El nombre de un recurso no puede contener solo espacios en blanco ni los caracteres \/;:#.*?=<>|[]{}"'()'.
      • Seleccione un par de red virtual y grupo de recursos (si tiene más de una red virtual con el mismo nombre, emparejar un nombre de red con un grupo de recursos ofrece combinaciones únicas). Si en la página anterior seleccionó una región que no tiene redes virtuales, vuelva a esa página y seleccione una región que las tenga.
  10. En la página Resumen, verá un resumen de los parámetros. Seleccione Finalizar para completar la configuración.

Usar los detalles de una entidad principal de servicio creada anteriormente para conectarse a Azure

Para crear manualmente una entidad de servicio, conéctese a su suscripción de Azure Resource Manager y use los siguientes cmdlets de PowerShell que se proporcionan en las siguientes secciones.

Requisitos previos:

  • SubscriptionId: SubscriptionID de Azure Resource Manager perteneciente a la suscripción donde quiere aprovisionar los agentes VDA.
  • ActiveDirectoryID: ID de arrendatario de la aplicación que registró en Azure AD.
  • ApplicationName: Nombre de la aplicación que se va a crear en Azure AD.

Para crear una entidad de servicio:

  1. Conéctese a su suscripción de Azure Resource Manager.

    Connect-AzAccount

  2. Seleccione la suscripción de Azure Resource Manager donde crear la entidad principal de servicio.

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

  3. Cree la aplicación en su arrendatario de AD.

    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

  4. Cree una entidad principal de servicio.

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

  5. Asigne un rol a la entidad principal de servicio.

    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId

  6. En la ventana de resultados de la consola de PowerShell, anote el ID de aplicación (ApplicationId). Debe proporcionar ese ID cuando cree la conexión de host.

En el asistente Agregar conexión y recursos:

  1. En la página Conexión, seleccione Crear una conexión, el tipo de conexión Microsoft Azure y su entorno de Azure.

  2. Seleccione las herramientas a utilizar para crear las máquinas virtuales y, a continuación, seleccione Siguiente.

  3. En la página Detalles de conexión, escriba su ID de suscripción de Azure y un nombre para la conexión.

    Nota:

    El nombre de la conexión puede contener de 1 a 64 caracteres, y no puede contener solo espacios en blanco ni los caracteres \/;:#.*?=<>|[]{}"'()'.

  4. Seleccione Usar existente. En la ventana Detalles de entidad principal de servicio existente, introduzca estos parámetros para la entidad principal de servicio existente. Después de introducir la información, se habilitará el botón Guardar. Seleccione Guardar. No puede avanzar más allá de esta página hasta que haya proporcionado detalles válidos.

    • ID de suscripción. Introduzca el ID de su suscripción de Azure. Para obtener su ID de suscripción, inicie sesión en Azure Portal y vaya a Suscripciones > Vista general.
    • ID de Active Directory (ID de arrendatario). Escriba el ID del directorio (arrendatario) de la aplicación con la que se registró en Azure AD.
    • ID de la aplicación. Escriba el ID de la aplicación (cliente) con la que se registró en Azure AD.
    • Secreto de la aplicación. Cree una clave secreta (secreto de cliente). La aplicación registrada utiliza la clave para autenticarse en Azure AD. Le recomendamos cambiar las claves con frecuencia por motivos de seguridad. Asegúrese de guardar la clave porque no podrá recuperarla más tarde.
    • Fecha de caducidad del secreto. Introduzca la fecha en la cual caduca el secreto de la aplicación. Recibirá una alerta en la consola antes de que caduque la clave secreta. Sin embargo, si la clave secreta caduca, recibirá errores.

      Nota:

      Por motivos de seguridad, el período de caducidad no puede ser superior a dos años a partir de ahora.

    • URL de autenticación. Este campo se rellena automáticamente y no se puede modificar.
    • URL de administración. Este campo se rellena automáticamente y no se puede modificar.
    • Sufijo de almacenamiento. Este campo se rellena automáticamente y no se puede modificar.

      Se requiere acceso a los siguientes dispositivos de punto final para crear un catálogo de MCS en Azure. El acceso a estos dispositivos de punto final optimiza la conectividad entre la red local y Azure Portal y sus servicios.

  5. Tras seleccionar Guardar, volverá a la página Detalles de conexión. Seleccione Siguiente para pasar a la página siguiente.

  6. Configure recursos para la conexión. Los recursos constituyen la región y la red.

    • En la página Región, seleccione una región.
    • En la página Red, haga lo siguiente:
      • Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. El nombre de un recurso no puede contener solo espacios en blanco ni los caracteres \/;:#.*?=<>|[]{}"'()'.
      • Seleccione un par de red virtual y grupo de recursos (si tiene más de una red virtual con el mismo nombre, emparejar un nombre de red con un grupo de recursos ofrece combinaciones únicas). Si en la página anterior seleccionó una región que no tiene redes virtuales, vuelva a esa página y seleccione una región que las tenga.
  7. En la página Resumen, verá un resumen de los parámetros. Seleccione Finalizar para completar la configuración.

Crear un catálogo de máquinas con una imagen de Azure Resource Manager

Una imagen puede ser un disco, una instantánea o la versión de una imagen de una definición de imagen en Azure Compute Gallery que se usa para crear las máquinas virtuales en un catálogo de máquinas. Antes de crear el catálogo de máquinas, cree una imagen en Azure Resource Manager. Para obtener información general acerca de las imágenes, consulte Crear catálogos de máquinas.

Es obligatorio usar un perfil de máquina con Inicio seguro como Tipo de seguridad al seleccionar una imagen o una instantánea que tenga habilitado el inicio seguro. A continuación, para habilitar o inhabilitar SecureBoot y vTPM, especifique sus valores en el perfil de la máquina. Para obtener información sobre el inicio seguro de Azure, consulte Trusted launch for Azure virtual machines.

El catálogo de máquinas utiliza las siguientes propiedades que se definen en las propiedades personalizadas:

  • Zona de disponibilidad
  • ID de grupo de hosts dedicado
  • ID del conjunto de cifrado de disco
  • Tipo de SO
  • Tipo de licencia
  • Tipo de almacenamiento

Si estas propiedades personalizadas no se definen explícitamente, los valores de propiedad se establecen a partir de la especificación de plantilla de ARM o de la VM, lo que se utilice como perfil de máquina. Además, si no se especifica ServiceOffering, se establecerá a partir del perfil de máquina.

Nota:

Si faltan algunas propiedades en el perfil de la máquina (MachineProfile) y no están definidas en las propiedades personalizadas (CustomProperties), se utilizan los valores por defecto de las propiedades siempre que sea aplicable.

En la siguiente sección se describen algunos casos de New-ProvScheme y Set-ProvScheme en los que CustomProperties tiene definidas todas las propiedades o los valores se derivan de MachineProfile.

Casos de New-ProvScheme

  • MachineProfile tiene todas las propiedades y CustomProperties no está definido. Ejemplo:

    New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • MachineProfile tiene algunas propiedades y CustomProperties no está definido. Ejemplo: MachineProfile solo tiene LicenseType y OsType.

    New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Tanto MachineProfile como CustomProperties definen todas las propiedades. Ejemplo:

    New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA

    Las propiedades personalizadas tienen prioridad. Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="Zones" Value="<CustomPropertiesA-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Algunas propiedades se definen en MachineProfile y otras se definen en CustomProperties. Ejemplo:
    • CustomProperties define LicenseType y StorageAccountType
    • MachineProfile define LicenseType, OsType y Zones

    New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/>
     <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Algunas propiedades se definen en MachineProfile y otras se definen en CustomProperties. Además, ServiceOffering no está definido. Ejemplo:

    • CustomProperties define StorageType
    • MachineProfile define LicenseType
     New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mp.vm"
     -ServiceOffering "XDHyp:\HostingUnits\azureunit\serviceoffering.folder<explicit-machine-size>.serviceoffering"
     <!--NeedCopy-->
    

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select ServiceOffering
     serviceoffering.folder<explicit-machine-size>.serviceoffering
    
     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="explicit-storage-type"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="value-from-machineprofile"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Si OsType no está ni en CustomProperties ni en MachineProfile, entonces:
    • El valor se lee de la imagen maestra.
    • Si la imagen maestra es un disco no administrado, OsType se establece en Windows.

    Ejemplo:

    New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -MasterImageVM "XDHyp:\HostingUnits\azureunit\image.folder\linux-master-image.manageddisk"

    El valor de la imagen maestra se escribe en las propiedades personalizadas, en este caso Linux.

     Get-ProvScheme | select CustomProperties
    <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="OSType" Value="Linux"/>
     </CustomProperties>
     <!--NeedCopy-->
    

Casos de Set-ProvScheme

  • Un catálogo con:
    • CustomProperties para StorageAccountType y OsType
    • MachineProfile mpA.vm que define zonas

    Actualizaciones:

    • MachineProfile mpB.vm que define StorageAccountType
    • Un nuevo conjunto de propiedades personalizadas $CustomPropertiesB que define LicenseType y OsType

    Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm" -CustomProperties $CustomPropertiesB

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesB-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Un catálogo con:
    • Propiedades personalizadas para StorageAccountType y OsType.
    • MachineProfile mpA.vm que define StorageAccountType y LicenseType

    Actualizaciones:

    • Un nuevo conjunto de propiedades personalizadas $CustomPropertiesB que define StorageAccountType y OsType.

    Set-ProvScheme -CustomProperties $CustomPropertiesB

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesB-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<mp-A-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    
  • Un catálogo con:
    • CustomProperties para StorageAccountType y OsType
    • MachineProfile mpA.vm que define Zones

    Actualizaciones:

    • MachineProfile mpB.vm que define StorageAccountType y LicenseType
    • ServiceOffering está sin especificar

    Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm"

    Estos valores se definen como propiedades personalizadas del catálogo:

     Get-ProvScheme | select ServiceOffering
     serviceoffering.folder<value-from-machineprofile>.serviceoffering
    
     Get-ProvScheme | select CustomProperties
     <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/>
     <Property xsi:type="StringProperty" Name="OSType" Value="<prior-CustomProperties-value>"/>
     <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpB-value>"/>
     </CustomProperties>
     <!--NeedCopy-->
    

Limitación de Azure

Azure Resource Manager limita las solicitudes de suscripciones y arrendatarios mediante la redirección del tráfico en función de límites definidos y adaptada a las necesidades específicas del proveedor. Consulte Limitación de solicitudes de Resource Manager en el sitio de Microsoft para obtener más información. Existen límites para las suscripciones y los arrendatarios, donde administrar muchas máquinas podría resultar problemático. Por ejemplo: es posible que una suscripción que contenga muchas máquinas sufra problemas de rendimiento relacionados con las operaciones de energía.

Sugerencia:

Para obtener más información, consulte Mejora del rendimiento de Azure con Machine Creation Services.

Para ayudar a mitigar estos problemas, puede quitar la limitación interna de MCS para usar más cuota de solicitudes disponible de Azure.

Le recomendamos la siguiente configuración óptima al encender o apagar máquinas virtuales en suscripciones grandes, como, por ejemplo, aquellas que contengan 1000 máquinas virtuales:

  • Operaciones simultáneas absolutas: 500
  • Máximo de nuevas operaciones por minuto: 2000
  • Máximo de operaciones simultáneas: 500

MCS admite un máximo de 500 operaciones simultáneas de forma predeterminada. De forma alternativa, puede utilizar el SDK de PowerShell remoto para establecer el máximo de operaciones simultáneas.

Utilice la propiedad de PowerShell MaximumConcurrentProvisioningOperations para especificar el máximo de operaciones simultáneas de aprovisionamiento de Azure. Al usar esta propiedad, tenga en cuenta lo siguiente:

  • El valor predeterminado de MaximumConcurrentProvisioningOperations es 500.
  • Configure el parámetro MaximumConcurrentProvisioningOperations mediante el comando Set-item de PowerShell.

Grupos de recursos de Azure

Los grupos de recursos de aprovisionamiento de Azure ofrecen una manera de aprovisionar las VM que proporcionan escritorios y aplicaciones a los usuarios. Puede agregar los grupos de recursos de Azure vacíos existentes cuando cree un catálogo de máquinas con MCS. También puede decidir que se creen nuevos grupos de recursos para usted. Para obtener información acerca de los grupos de recursos de Azure, consulte la documentación de Microsoft.

Uso del grupo de recursos de Azure

No hay límite en el número de máquinas virtuales, discos administrados, instantáneas e imágenes por grupo de recursos de Azure (se eliminó la limitación de 240 VM/800 discos administrados por grupo de recursos de Azure).

  • Al utilizar la entidad de servicio de ámbito completo para crear un catálogo de máquinas, MCS crea solo un grupo de recursos de Azure y utiliza ese grupo para el catálogo.
  • Al utilizar la entidad de servicio de ámbito restringido para crear un catálogo de máquinas, debe proporcionar un grupo de recursos de Azure vacío y creado previamente para el catálogo.

Discos efímeros de Azure

Un disco efímero de Azure le permite reutilizar el disco de caché o el disco temporal para almacenar el disco del sistema operativo de una máquina virtual habilitada para Azure. Esta funcionalidad es útil en entornos de Azure que requieren un disco SSD de mayor rendimiento, en lugar de un disco HDD estándar. Para utilizar discos efímeros, debe establecer la propiedad personalizada UseEphemeralOsDisk en true al ejecutar New-ProvScheme.

Nota:

Si la propiedad personalizada UseEphemeralOsDisk se establece en false o no se especifica un valor, todos los VDA aprovisionados seguirán utilizando un disco de SO aprovisionado.

A continuación, se muestra un conjunto de ejemplo de propiedades personalizadas para uso en el esquema de aprovisionamiento:

"CustomProperties": [
            {
                "Name": "UseManagedDisks",
                "Value": "true"
            },
            {
                "Name": "StorageType",
                "Value": "Standard_LRS"
            },
            {
                "Name": "UseSharedImageGallery",
                "Value": "true"
            },
            {
                "Name": "SharedImageGalleryReplicaRatio",
                "Value": "40"
            },
            {
                "Name": "SharedImageGalleryReplicaMaximum",
                "Value": "10"
            },
            {
                "Name": "LicenseType",
                "Value": "Windows_Server"
            },
            {
                "Name": "UseEphemeralOsDisk",
                "Value": "true"
            }
        ],
<!--NeedCopy-->

Cómo crear máquinas con discos de SO efímeros

Los discos de SO efímeros se controlan en función de la propiedad UseEphemeralOsDisk del parámetro CustomProperties.

Consideraciones importantes con relación a los discos efímeros

Para aprovisionar discos de SO efímeros con New-ProvScheme, tenga en cuenta las siguientes restricciones:

  • El tamaño de VM utilizado para el catálogo debe admitir discos de SO efímeros.
  • El tamaño de la memoria caché o del disco temporal asociado al tamaño de la máquina virtual debe ser mayor o igual que el tamaño del disco del sistema operativo.
  • El tamaño del disco temporal debe ser mayor que el tamaño del disco de la memoria caché.

Tenga en cuenta también estos aspectos al:

  • Crear el esquema de aprovisionamiento.
  • Modificar el esquema de aprovisionamiento.
  • Actualizar la imagen.

Optimización del almacenamiento (E/S de MCS) con discos efímeros de Azure y Machine Creation Services (MCS)

El disco de SO efímero de Azure y la E/S de MCS no se pueden habilitar al mismo tiempo.

Las consideraciones importantes son las siguientes:

  • No puede crear un catálogo de máquinas con el disco de SO efímero y la E/S de MCS habilitados al mismo tiempo.

  • Los parámetros de PowerShell (UseWriteBackCache y UseEphemeralOsDisk) fallan con el mensaje de error correspondiente si se establecen en true en New-ProvScheme o Set-ProvScheme.
  • Para catálogos de máquinas existentes creados con ambas funciones habilitadas, aún puede:
    • actualizar un catálogo de máquinas;
    • agregar o eliminar máquinas virtuales;
    • eliminar un catálogo de máquinas.

Cifrado del lado del servidor de Azure

Citrix Virtual Apps and Desktops y Citrix DaaS admiten claves de cifrado administradas por el cliente para los discos administrados por Azure a través de Azure Key Vault. Gracias a esta compatibilidad, puede satisfacer los requisitos organizativos y de conformidad mediante el cifrado de los discos administrados del catálogo de máquinas con su propia clave de cifrado. Para obtener más información, consulte Cifrado del lado del servidor de Azure Disk Storage.

Al utilizar esta función para discos administrados:

  • Para cambiar la clave con la que está cifrado actualmente el disco, cámbiela en DiskEncryptionSet. Todos los recursos asociados a ese DiskEncryptionSet se cifrarán con la nueva clave.

  • Cuando inhabilite o elimine la clave, todas las máquinas virtuales con discos que utilicen esa clave se apagarán automáticamente. Después de apagarse, las máquinas virtuales no se podrán utilizar, a menos que la clave se vuelva a habilitar o se asigne una nueva clave. Ningún catálogo que utilice la clave se podrá encender ni se le podrán agregar máquinas virtuales.

Consideraciones importantes al utilizar claves de cifrado administradas por el cliente

Tenga en cuenta lo siguiente al usar esta funcionalidad:

  • Todos los recursos relacionados con las claves administradas por el cliente (instancias de Azure Key Vault, conjuntos de cifrado de disco, máquinas virtuales, discos e instantáneas) deben residir en la misma suscripción y región.

  • Una vez habilitada la clave de cifrado administrada por el cliente, no podrá inhabilitarla. Si quiere inhabilitar o quitar la clave de cifrado administrada por el cliente, copie todos los datos en un disco administrado diferente que no utilice la clave de cifrado administrada por el cliente.

  • Los discos creados a partir de imágenes cifradas personalizadas mediante cifrado del lado del servidor y claves administradas por el cliente deben cifrarse mediante las mismas claves administradas por el cliente. Estos discos deben estar en la misma suscripción.

  • Las instantáneas creadas a partir de discos cifrados con cifrado del lado del servidor y claves administradas por el cliente deben cifrarse con las mismas claves administradas por el cliente.

  • Los discos, las instantáneas y las imágenes cifradas con claves administradas por el cliente no pueden transferirse a otro grupo de recursos y suscripción.

  • Los discos administrados actual o previamente cifrados mediante Azure Disk Encryption no se pueden cifrar con claves administradas por el cliente.

  • Consulte el sitio de Microsoft para conocer las limitaciones de los conjuntos de cifrado de disco por región.

Nota:

Para obtener información acerca de la configuración del cifrado del lado del servidor de Azure, consulte Inicio rápido: Creación de un almacén de claves mediante Azure Portal.

Clave de cifrado administrada por el cliente de Azure

Al crear un catálogo de máquinas, puede elegir si cifrar los datos presentes en las máquinas aprovisionadas en el catálogo. El cifrado del lado del servidor con una clave de cifrado administrada por el cliente permite administrar el cifrado a nivel de disco administrado y proteger los datos que contengan las máquinas del catálogo. Un conjunto de cifrado de disco (Disk Encryption Set o DES) representa una clave administrada por el cliente. Para utilizar esta función, primero debe crear el DES en Azure. Un DES tiene este formato:

  • /subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet

Seleccione un DES de la lista. El DES que seleccione debe estar en la misma suscripción y región que los recursos. Si la imagen está cifrada con un DES, utilice el mismo DES al crear el catálogo de máquinas. No se puede cambiar el DES después de crear el catálogo.

Si crea un catálogo con una clave de cifrado y posteriormente inhabilita el DES correspondiente en Azure, ya no podrá encender las máquinas del catálogo ni agregarle máquinas.

Hosts dedicados de Azure

Puede usar MCS para aprovisionar VM en los hosts dedicados de Azure. Antes de aprovisionar VM en hosts dedicados de Azure:

  • Cree un grupo de hosts.
  • Cree hosts en ese grupo de hosts.
  • Compruebe que haya suficiente capacidad de host reservada para crear catálogos y máquinas virtuales.

Puede crear un catálogo de máquinas con arrendamiento de hosts definido a través del siguiente script de PowerShell:

New-ProvScheme <otherParameters> -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Property xsi:type="StringProperty" Name="HostGroupId" Value="myResourceGroup/myHostGroup" />
 ...other Custom Properties...
 </CustomProperties>
<!--NeedCopy-->

Cuando utilice MCS para aprovisionar máquinas virtuales en hosts dedicados de Azure, tenga en cuenta que:

  • Un host dedicado es una propiedad del catálogo y no se puede cambiar una vez creado dicho catálogo. Actualmente, el arrendamiento dedicado no está disponible en Azure.
  • Se requiere un grupo de hosts de Azure preconfigurado, en la región de la unidad de alojamiento, al utilizar el parámetro HostGroupId.
  • Se requiere la ubicación automática de Azure. Esta funcionalidad realiza una solicitud para incorporar la suscripción asociada al grupo de hosts. Para obtener más información, consulte VM Scale Set on Azure Dedicated Hosts - Public Preview. Si la ubicación automática no está habilitada, MCS genera un error durante la creación del catálogo.

Utilice Shared Image Gallery de Azure como repositorio de imágenes publicadas para máquinas aprovisionadas por MCS en Azure. Puede almacenar una imagen publicada en la galería para acelerar la creación e hidratación de discos de SO, mejorando los tiempos de inicio y lanzamiento de aplicaciones en máquinas virtuales no persistentes. Shared Image Gallery contiene los tres elementos siguientes:

  • Galería: El lugar donde se almacenan las imágenes. MCS crea una galería para cada catálogo de máquinas.
  • Definición de imagen de la galería: Esta definición incluye información (el tipo y el estado del sistema operativo, la región de Azure) sobre la imagen publicada. MCS crea una definición de imagen para cada imagen creada para el catálogo.
  • Versión de la imagen de la galería: Cada imagen de Shared Image Gallery puede tener varias versiones, y cada versión puede tener varias réplicas en diferentes regiones. Cada réplica es una copia completa de la imagen publicada.

Nota:

La funcionalidad Shared Image Gallery solo funciona con discos administrados. No está disponible para catálogos de máquinas antiguos.

Para obtener más información, consulte Introducción a Shared Image Gallery de Azure.

Utilice el comando New-ProvScheme para crear un esquema de aprovisionamiento que permita usar Shared Image Gallery. Utilice el comando Set-ProvScheme para habilitar o inhabilitar esta función en los esquemas de aprovisionamiento y para cambiar el índice de réplicas y los valores máximos de las réplicas.

Se agregaron tres propiedades personalizadas a los esquemas de aprovisionamiento para admitir la función Shared Image Gallery:

UseSharedImageGallery

  • Define si se va a utilizar Shared Image Gallery para almacenar las imágenes publicadas. Si se establece en True, la imagen se almacena como una imagen de Shared Image Gallery; de lo contrario, la imagen se almacena como una instantánea.
  • Los valores válidos son True y False.
  • Si la propiedad no está definida, el valor predeterminado es False.

SharedImageGalleryReplicaRatio

  • Define el índice entre máquinas y réplicas de versiones de imágenes de la galería.
  • Los valores válidos son números enteros mayores que 0.
  • Si la propiedad no está definida, se utilizan los valores predeterminados. El valor predeterminado para los discos de SO persistentes es 1000, y el valor predeterminado para los discos de SO no persistentes es 40.

SharedImageGalleryReplicaMaximum

  • Define el máximo de réplicas para cada versión de imagen de la galería.
  • Los valores válidos son números enteros mayores que 0.
  • Si la propiedad no está definida, el valor predeterminado es 10.
  • Azure admite actualmente hasta 10 réplicas por versión de imagen de la galería. Si la propiedad se establece en un valor mayor que el admitido por Azure, MCS intenta utilizar el valor especificado. Azure genera un error, el cual MCS registra. Luego, MCS deja el recuento de réplicas actual sin cambiar.

Sugerencia:

Al utilizar Shared Image Gallery para almacenar una imagen publicada de catálogos aprovisionados con MCS, MCS establece el recuento de réplicas de versiones de imágenes de la galería en función de la cantidad de máquinas del catálogo, el índice de réplicas y el máximo de réplicas. El recuento de réplicas se calcula al dividir la cantidad de máquinas del catálogo entre el índice de réplicas (se redondea al valor entero más cercano). A continuación, se limita el valor al recuento máximo de réplicas. Por ejemplo, con un índice de réplicas de 20 y un máximo de 5, entre 0 y 20 máquinas tienen una réplica creada, entre 21 y 40 tienen 2 réplicas, entre 41 y 60 tienen 3 réplicas, entre 61 y 80 tienen 4 réplicas, y más de 81 tienen 5 réplicas.

El catálogo de máquinas existente utiliza Shared Image Gallery. Utilice el comando Set-ProvScheme para actualizar las propiedades personalizadas de todas las máquinas existentes del catálogo y de futuras máquinas:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

Para este caso de uso:

  1. Ejecute Set-ProvScheme con el indicador UseSharedImageGallery establecido en True. Si quiere, incluya las propiedades SharedImageGalleryReplicaRatio y SharedImageGalleryReplicaMaximum.
  2. Actualice el catálogo.
  3. Apague y encienda las máquinas para forzar una actualización.

Por ejemplo:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

Sugerencia:

Los parámetros SharedImageGalleryReplicaRatio y SharedImageGalleryReplicaMaximum no son necesarios. Una vez finalizado el comando Set-ProvScheme, aún no se ha creado la imagen de Shared Image Gallery. Una vez configurado el catálogo para utilizar la galería, la siguiente operación de actualización del catálogo almacena la imagen publicada en la galería. El comando de actualización del catálogo crea la galería, la imagen de la galería y la versión de la imagen. Apagar y encender las máquinas las actualiza, momento en el que se actualiza el recuento de réplicas, si procede. A partir de ese momento, todas las máquinas no persistentes existentes se restablecen mediante la imagen de Shared Image Gallery, y todas las máquinas recién aprovisionadas se crean mediante la imagen. La antigua instantánea se borra automáticamente en unas horas.

Para este caso de uso:

  1. Ejecute Set-ProvScheme con el indicador UseSharedImageGallery establecido en False o sin definir.
  2. Actualice el catálogo.
  3. Apague y encienda las máquinas para forzar una actualización.

Por ejemplo:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="False"/></CustomProperties>'
<!--NeedCopy-->

Sugerencia:

A diferencia de actualizar una instantánea a un catálogo de Shared Image Gallery, los datos personalizados de cada máquina aún no se actualizan para reflejar las nuevas propiedades personalizadas. Ejecute el siguiente comando para ver las propiedades personalizadas originales de Shared Image Gallery: Get-ProvVm -ProvisioningSchemeName catalog-name. Una vez finalizado el comando Set-ProvScheme, aún no se ha creado la instantánea de la imagen publicada. Una vez configurado el catálogo para que no utilice la galería, la siguiente operación de actualización del catálogo almacena la imagen publicada como una instantánea. A partir de ese momento, todas las máquinas no persistentes existentes se restablecen mediante la instantánea, y todas las máquinas recién aprovisionadas se crean a partir de la instantánea. Apagar y encender las máquinas las actualiza, momento en el que los datos personalizados de las máquinas se actualizan para reflejar que UseSharedImageGallery está establecido en False. Los antiguos elementos de Shared Image Gallery (la galería, la imagen y la versión) se borran automáticamente en unas horas.

Aprovisionar máquinas en zonas de disponibilidad especificadas

En entornos de Azure, es posible aprovisionar máquinas en zonas de disponibilidad específicas. Puede hacerlo con PowerShell.

Nota:

Si no se especifica ninguna zona, MCS permite a Azure colocar las máquinas dentro de la región. Si se especifica más de una zona, MCS distribuye aleatoriamente las máquinas entre ellas.

Configurar zonas de disponibilidad a través de PowerShell

Con PowerShell, puede ver la oferta de elementos de inventario mediante Get-Item. Por ejemplo, para ver la oferta de servicio de la región oriental de EE. UU. Standard_B1ls:

$serviceOffering = Get-Item -path "XDHyp:\Connections\my-connection-name\East US.region\serviceoffering.folder\Standard_B1ls.serviceoffering"
<!--NeedCopy-->

Para ver las zonas, utilice el parámetro AdditionalData para el elemento:

$serviceOffering.AdditionalData

Si no se especifican zonas de disponibilidad, no hay ningún cambio en la forma en que se aprovisionan las máquinas.

Para configurar las zonas de disponibilidad a través de PowerShell, utilice la propiedad personalizada Zonas disponible con la operación New-ProvScheme. La propiedad Zonas define una lista de zonas de disponibilidad en las que aprovisionar máquinas. Esas zonas pueden incluir una o más zonas de disponibilidad. Por ejemplo, <Property xsi:type="StringProperty" Name="Zones" Value="1, 3"/> para las zonas 1 y 3.

Utilice el comando Set-ProvScheme para actualizar las zonas de un esquema de aprovisionamiento.

Si se proporciona una zona no válida, el esquema de aprovisionamiento no se actualiza y aparece un mensaje de error con instrucciones sobre cómo corregir el comando no válido.

Sugerencia:

Si especifica una propiedad personalizada no válida, el esquema de aprovisionamiento no se actualiza y aparece un mensaje de error al respecto.

Disco efímero de Azure

Los discos efímeros de Azure le permiten reutilizar el disco de caché o el disco temporal para almacenar el disco del sistema operativo de una máquina virtual habilitada para Azure. Esta funcionalidad es útil en entornos de Azure que requieren un disco SSD de mayor rendimiento, en lugar de un disco HDD estándar.

Nota:

Los catálogos persistentes no admiten discos de SO efímeros.

Los discos de SO efímeros requieren que el esquema de aprovisionamiento use discos administrados y una Shared Image Gallery. Para obtener más información, consulte Shared Image Gallery de Azure.

Usar PowerShell para configurar un disco efímero

Para configurar un disco de SO efímero de Azure para un catálogo, utilice el parámetro UseEphemeralOsDisk de Set-ProvScheme. Establezca el valor del parámetro UseEphemeralOsDisk en true.

Nota:

Para utilizar esta función, también debe habilitar los parámetros UseManagedDisks y UseSharedImageGallery.

Por ejemplo:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="UseSharedImageGallery" Value="true" />
<Property xsi:type="StringProperty" Name="UseEphemeralOsDisk" Value="true" />
</CustomProperties>'
<!--NeedCopy-->

Almacenamiento de un disco de SO efímero temporal

Tiene la posibilidad de almacenar un disco de SO efímero en el disco temporal de la VM o en un disco de recursos. Esta funcionalidad le permite usar un disco de SO efímero con una máquina virtual que no tenga caché o que no tenga suficiente caché. Estas VM tienen un disco temporal o de recursos para almacenar un disco de SO efímero, como Ddv4.

Se deben tener en cuenta las siguientes cuestiones:

  • Un disco efímero se almacena en el disco de caché o en el disco temporal (de recursos) de la VM. Se prefiere el disco de caché antes que el disco temporal, a menos que el disco de caché no sea lo suficientemente grande como para albergar el contenido del disco del sistema operativo.
  • En el caso de las actualizaciones, si una nueva imagen es más grande que el disco de caché, pero más pequeña que el disco temporal, el disco de SO efímero se sustituye por el disco temporal de la VM.

Conservación de una máquina virtual aprovisionada durante los ciclos de apagado y encendido

Elija si quiere conservar una máquina virtual aprovisionada al apagar y encender. Utilice el parámetro New-ProvScheme CustomProperties de PowerShell. Este parámetro admite una propiedad adicional, PersistVm, que sirve para determinar si una máquina virtual aprovisionada persiste durante los ciclos de energía. Establezca la propiedad PersistVm en true para conservar una máquina virtual cuando se apague, o bien establezca la propiedad en false para asegurarse de que la máquina virtual no se conserve al apagarse.

Nota:

La propiedad PersistVm solo se aplica a los esquemas de aprovisionamiento con las propiedades CleanOnBoot y UseWriteBackCache habilitadas. Si no se especifica la propiedad PersistVm para máquinas virtuales no persistentes, se eliminan del entorno de Azure al apagarse.

En el ejemplo siguiente, el parámetro New-ProvScheme CustomProperties establece la propiedad PersistVm en 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-->

En el siguiente ejemplo, el parámetro New-ProvScheme CustomProperties conserva la caché de reescritura estableciendo PersistVM en true:

 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-->

Sugerencia:

La propiedad PersistVm determina si se debe conservar una máquina virtual aprovisionada. La propiedad PersistOsdisk determina si se debe conservar el disco del sistema operativo. Para conservar una máquina virtual aprovisionada, conserve primero el disco del sistema operativo. No se puede eliminar el disco del sistema operativo sin eliminar antes la máquina virtual. Puede utilizar la propiedad PersistOsdisk sin especificar el parámetro PersistVm.

Tipos de almacenamiento

Seleccione distintos tipos de almacenamiento para máquinas virtuales en entornos Azure que utilizan MCS. Para las máquinas virtuales de destino, MCS admite:

  • Disco de SO: SSD Premium, SSD o HDD
  • Disco de memoria caché con escritura: SSD Premium, SSD o HDD

Al utilizar estos tipos de almacenamiento, tenga en cuenta lo siguiente:

  • Asegúrese de que su máquina virtual sea compatible con el tipo de almacenamiento seleccionado.
  • Si su configuración usa un disco efímero de Azure, no tiene la posibilidad de configurar el disco de caché de reescritura.

Sugerencia:

StorageType está configurado para un tipo de SO y una cuenta de almacenamiento. WBCDiskStorageType está configurado para el tipo de almacenamiento de memoria caché de escritura. Para un catálogo normal, se requiere StorageType. Si WBCDiskStorageType no está configurado, StorageType se utiliza como predeterminado para WBCDiskStorageType.

Si WBCDiskStorageType no está configurado, StorageType se utiliza como predeterminado para WBCDiskStorageType.

Configuración de tipos de almacenamiento

Para configurar los tipos de almacenamiento para VM, utilice el parámetro StorageType en New-ProvScheme. Establezca el valor del parámetro StorageType en uno de los tipos de almacenamiento admitidos.

A continuación, se muestra un conjunto de ejemplo del parámetro CustomProperties en un esquema de aprovisionamiento:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Premium_LRS" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>'
<!--NeedCopy-->

Actualizar las máquinas aprovisionadas al estado actual del esquema de aprovisionamiento

Set-ProvScheme cambia el esquema de aprovisionamiento. Sin embargo, no afecta a las máquinas existentes. Con el comando Request-ProvVMUpdate, puede aplicar el esquema de aprovisionamiento actual a una máquina o un conjunto de máquinas persistentes o no persistentes. Actualmente, la actualización de propiedades que admite esta función es ServiceOffering.

Puede actualizar:

  • Una sola máquina virtual.
  • Una lista de máquinas virtuales específicas o todas las máquinas virtuales asociadas a un ID de esquema de aprovisionamiento.
  • Una lista de máquinas virtuales específicas o todas las máquinas virtuales asociadas a un nombre de esquema de aprovisionamiento.

Para actualizar las máquinas virtuales:

  1. Compruebe la configuración de las máquinas. Por ejemplo,

    ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  2. Actualice el esquema de aprovisionamiento. Por ejemplo,

    ProvisioningSchemeName “my-catalog” –ServiceOffering “Standard_D16_v3”
    <!--NeedCopy-->
    
  3. Solicite la actualización de las máquinas existentes. Por ejemplo:

    • Para actualizar todas las máquinas:

       Request-ProvVMUpdate –ProvisioningSchemeName “my-catalog”
       Get-ProvVM | select VMName,
       ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion
       <!--NeedCopy-->
      
    • Para actualizar una lista de máquinas específicas:

       Request-ProvVMUpdate -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
       Get-ProvVM | select VMName,
       ProvisioningSchemeVersion
       <!--NeedCopy-->
      
    • Para actualizar las máquinas en función de la entrada de Get-ProvVM:

       Get-ProvVM -ProvisioningSchemeName "my-catalog" | Request-ProvVMUpdate
       Get-ProvVM | select VMName,
       ProvisioningSchemeVersion
       <!--NeedCopy-->
      
  4. Reinicie las máquinas. En el siguiente encendido, el valor de ProvisioningSchemeVersion en las máquinas se actualizará para que coincida con la versión actual del esquema de aprovisionamiento y se borrará el campo ProvisioningSchemeUpdateRequested.

Obtener información de las máquinas virtuales de Azure, instantáneas, el disco del sistema operativo y la definición de imagen de la galería

Puede mostrar información de una máquina virtual de Azure, incluidos el disco y el tipo del sistema operativo, la instantánea y la definición de imágenes de galería. Esta información se muestra para los recursos de la imagen maestra cuando se asigna un catálogo de máquinas. Utilice esta funcionalidad para ver y seleccionar una imagen de Linux o Windows. Se agregó una propiedad de PowerShell, TemplateIsWindowsTemplate, al parámetro AdditionDatafield. Este campo contiene información específica de Azure: el tipo de máquina virtual, el disco del sistema operativo, la información de la imagen de la galería y la información sobre el tipo de SO. Al establecer TemplateIsWindowsTemplate en True, significa que el tipo de sistema operativo es Windows; al establecer TemplateIsWindowsTemplate en False, significa que el tipo de sistema operativo es Linux.

Sugerencia:

La información que muestra la propiedad TemplateIsWindowsTemplate de PowerShell se deriva de la API de Azure. En algunos casos, es posible que este campo esté vacío. Por ejemplo, una instantánea de un disco de datos no contiene el campo TemplateIsWindowsTemplate porque el tipo de sistema operativo no se puede obtener de una instantánea.

Por ejemplo, establezca el parámetro AdditionData de la máquina virtual de Azure en True para el tipo de sistema operativo Windows mediante PowerShell:

PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData
Key Value
ServiceOfferingDescription Standard_B2ms
HardDiskSizeGB 127
ResourceGroupName FENGHUAJ-DEV-TESTING-RG
ServiceOfferingMemory 8192
ServiceOfferingCores 2
TemplateIsWindowsTemplate True
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SupportedMachineGenerations Gen1,Gen2
<!--NeedCopy-->

Catálogos de máquinas con inicio seguro

Para crear correctamente un catálogo de máquinas con inicio seguro, utilice:

  • Un perfil de máquina con inicio seguro
  • Un tamaño de máquina virtual compatible con el inicio seguro
  • Una versión de máquina virtual Windows que admita inicio seguro. En la actualidad, Windows 10 y Windows Server 2016, 2019 y 2022 admiten el inicio seguro.

Importante:

El inicio seguro requiere la creación de nuevas máquinas virtuales. No se puede habilitar el inicio seguro en las máquinas virtuales existentes que se crearon inicialmente sin él.

Para ver los elementos de inventario que ofrecen Citrix DaaS y determinar si el tamaño de máquina virtual admite el inicio seguro, ejecute el siguiente comando:

  1. Abra una ventana de PowerShell.
  2. Ejecute asnp citrix* para cargar los módulos de PowerShell específicos de Citrix.
  3. Ejecute este comando:

    $s = (ls XDHyp:\HostingUnits<name of hosting unit>\serviceoffering.folder\“<VM size>.serviceoffering)
    <!--NeedCopy-->
    
  4. Ejecute $s | select -ExpandProperty Additionaldata
  5. Compruebe el valor del atributo SupportsTrustedLaunch.

    • Si SupportsTrustedLaunch es True, el tamaño de máquina virtual admite el inicio seguro.
    • Si SupportsTrustedLaunch es False, el tamaño de máquina virtual no admite el inicio seguro.

Según la instancia de Azure PowerShell, puede usar el siguiente comando para determinar los tamaños de máquina virtual que admiten el inicio seguro:

(Get-AzComputeResourceSku | where {$_.Locations.Contains($region) -and ($_.Name -eq “<VM size>”) })[0].Capabilities
<!--NeedCopy-->

A continuación, se muestran ejemplos que describen si el tamaño de máquina virtual admite el inicio seguro después de ejecutar el comando de Azure PowerShell.

  • Ejemplo 1: Si la máquina virtual de Azure solo admite la generación 1, esa máquina virtual no admite el inicio seguro. Por lo tanto, la funcionalidad TrustedLaunchDisabled no se muestra después de ejecutar el comando de Azure PowerShell.
  • Ejemplo 2: Si la máquina virtual de Azure solo admite la generación 2 y la funcionalidad TrustedLaunchDisabled es True, el tamaño de máquina virtual de la generación 2 no se admite para el inicio seguro.
  • Ejemplo 3: Si la máquina virtual de Azure solo admite la generación 2 y la funcionalidad TrustedLaunchDisabled no se muestra después de ejecutar el comando de PowerShell, se admite el tamaño de máquina virtual de generación 2 para el inicio seguro.

Para obtener más información sobre el inicio seguro para máquinas virtuales de Azure, consulte el documento Trusted Launch for Azure Virtual Machines de Microsoft.

Errores al crear catálogos de máquinas con inicio seguro

Al crear un catálogo de máquinas con inicio seguro en los siguientes casos, se obtienen los errores correspondientes:

Caso Error
Si selecciona un perfil de máquina al crear un catálogo no administrado MachineProfileNotSupportedForUnmanagedCatalog
Si selecciona un perfil de máquina que admite el inicio seguro al crear un catálogo con un disco no administrado como imagen maestra SecurityTypeNotSupportedForUnmanagedDisk
Si no selecciona un perfil de máquina al crear un catálogo administrado con una imagen maestra de origen que tenga inicio seguro como tipo de seguridad MachineProfileNotFoundForTrustedLaunchMasterImage
Si selecciona un perfil de máquina con un tipo de seguridad diferente del tipo de seguridad de la imagen maestra SecurityTypeConflictBetweenMasterImageAndMachineProfile
Si selecciona un tamaño de máquina virtual que no admite el inicio seguro, pero usa una imagen maestra que sí admite el inicio seguro al crear un catálogo MachineSizeNotSupportTrustedLaunch

Azure Marketplace

Citrix Virtual Apps and Desktops y Citrix DaaS admiten el uso de una imagen maestra en Azure que contenga información del plan para crear un catálogo de máquinas. Para obtener más información, consulte Microsoft Azure Marketplace.

Sugerencia:

Algunas imágenes que se encuentran en Azure Marketplace, como la imagen estándar de Windows Server, no llevan anexa información del plan. La funcionalidad Citrix DaaS es para imágenes de pago.

Use el procedimiento descrito en esta sección para ver las imágenes de Shared Image Gallery en Citrix Studio. Estas imágenes se pueden usar, opcionalmente, para una imagen maestra. Para colocar la imagen en Shared Image Gallery, cree una definición de imagen en una galería.

Shared Image Gallery de Azure Marketplace

En la página Publishing options, verifique la información del plan de compra.

Los campos de información del plan de compra están vacíos inicialmente. Rellene esos campos con la información del plan de compra utilizada para la imagen. Si no se rellena la información del plan de compra, puede ocurrir un error en el procesamiento del catálogo de máquinas.

Azure Marketplace verifica las opciones de publicación de VDA

Después de verificar la información del plan de compra, cree una versión de la imagen dentro de la definición. Sirve de imagen maestra. Haga clic en Add version:

Agregar versión de VDA en Azure Marketplace

En la sección Version details, seleccione la instantánea de la imagen o el disco administrado como origen:

Seleccionar opciones de VDA en Azure Marketplace

Acerca de los permisos Azure

Esta sección contiene los permisos mínimos y generales requeridos para Azure.

Permisos mínimos

Los permisos mínimos ofrecen un mejor control de la seguridad. Sin embargo, las nuevas funciones que requieren permisos adicionales fallarán debido a que solo se usan permisos mínimos.

Crear una conexión de host

Agregue una nueva conexión de host con la información obtenida de Azure.

"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
<!--NeedCopy-->

Administración de energía de las máquinas virtuales

Encienda o apague las instancias de máquina.

"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
<!--NeedCopy-->

Creación, actualización o eliminación de máquinas virtuales

Cree un catálogo de máquinas y, a continuación, agregue, elimine y actualice máquinas, y elimine el catálogo de máquinas.

A continuación, se muestra la lista de permisos mínimos requeridos cuando la imagen maestra es un disco administrado o las instantáneas se encuentran en la misma región que la conexión de host.

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
<!--NeedCopy-->

Necesita los siguientes permisos adicionales, en función de los permisos mínimos, para las siguientes funciones:

  • Si la imagen maestra es un disco duro virtual de una cuenta de almacenamiento ubicada en la misma región que la conexión de host:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • Si la imagen maestra es una versión de imagen de Shared Image Gallery:

     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • Si la imagen maestra es un disco administrado. Las instantáneas o VHD se encuentran en una región diferente de la conexión de host:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     "Microsoft.Storage/storageAccounts/write",
     "Microsoft.Storage/storageAccounts/delete",
     <!--NeedCopy-->
    
  • Si usa un grupo de recursos administrado por Citrix:

     "Microsoft.Resources/subscriptions/resourceGroups/write",
     "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • Si coloca la imagen maestra en Shared Image Gallery:

     "Microsoft.Compute/galleries/write",
     "Microsoft.Compute/galleries/images/write",
     "Microsoft.Compute/galleries/images/versions/write",
     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     "Microsoft.Compute/galleries/delete",
     "Microsoft.Compute/galleries/images/delete",
     "Microsoft.Compute/galleries/images/versions/delete",
     <!--NeedCopy-->
    
  • Si usa compatibilidad con hosts dedicados de Azure:

     "Microsoft.Compute/hostGroups/read",
     "Microsoft.Compute/hostGroups/write",
     "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • Si utiliza cifrado del lado del servidor (SSE) con claves administradas por el cliente (CMK):

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • Si implementa máquinas virtuales mediante plantillas ARM (perfil de máquina):

     "Microsoft.Resources/deployments/write",
     "Microsoft.Resources/deployments/operationstatuses/read",
     "Microsoft.Resources/deployments/read",
     "Microsoft.Resources/deployments/delete",
     <!--NeedCopy-->
    
  • Si usa la especificación de plantilla de Azure como perfil de máquina:

     "Microsoft.Resources/templateSpecs/read",
     "Microsoft.Resources/templateSpecs/versions/read",
     <!--NeedCopy-->
    

Crear, actualizar y eliminar máquinas con discos no administrados

A continuación, se muestra la lista de permisos mínimos requeridos cuando la imagen maestra es un disco duro virtual (VHD) y se utiliza el grupo de recursos proporcionado por el administrador:

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action"
<!--NeedCopy-->

Permiso general

El rol de colaborador tiene pleno acceso para administrar todos los recursos. Este conjunto de permisos no le impide obtener nuevas funcionalidades.

El siguiente conjunto de permisos proporciona la mejor compatibilidad de cara al futuro, aunque incluye más permisos de los necesarios con el conjunto de funciones actual:

"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Resources/templateSpecs/read",
"Microsoft.Resources/templateSpecs/versions/read",
<!--NeedCopy-->

Más información