Almacenamiento y uso compartido de imágenes en Azure Compute Gallery

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes

Una imagen es una copia de una VM completa (incluidos los discos de datos asociados) o, simplemente, el disco del sistema operativo, según cómo se cree. Cuando crea una VM desde la imagen, la copia de los VHD de la imagen se usa para crear los discos para la nueva VM. La imagen permanece en el almacenamiento y puede usarse una y otra vez para crear nuevas VM.

Si tiene un gran número de imágenes que debe mantener y quiere que estén disponibles en toda la empresa, puede usar una instancia de Azure Compute Gallery como repositorio.

Cuando se usa una galería para almacenar imágenes, se crean varios tipos de recursos:

Recurso Descripción
Origen de imagen Se trata de un recurso que se puede usar para crear una versión de imagen en una galería. Un origen de imagen puede ser una máquina virtual de Azure existente, ya sea generalizada o especializada, una imagen administrada, una instantánea, un disco duro virtual o una versión de imagen de otra galería.
Galería Al igual que Azure Marketplace, una galería es un repositorio para administrar y compartir imágenes y otros recursos, pero con control sobre quién tiene acceso.
Definición de la imagen Las definiciones de imagen se crean dentro de una galería y contienen información sobre la imagen y los requisitos para usarla a fin de crear máquinas virtuales. Esto incluye si la imagen es Windows o Linux, notas de la versión y los requisitos de memoria mínima y máxima. Es una definición de un tipo de imagen.
Versión de la imagen Una versión de la imagen es lo que se usa para crear una VM cuando se usa una galería. Puede tener varias versiones de una imagen según sea necesario para su entorno. Al igual que una imagen administrada, cuando se usa una versión de la imagen para crear una VM, la versión de la imagen se usa para crear nuevos discos para la VM. Las versiones de las imágenes pueden usarse varias veces.

Gráfico que muestra cómo puede tener varias versiones de una imagen en la galería

Definiciones de imagen

Las definiciones de la imagen son una agrupación lógica de las versiones de una imagen. La definición de la imagen contiene información acerca de por qué se creó la imagen y también incluye metadatos de la imagen, como para qué sistema operativo sirve, las características que admite y otra información sobre el uso de la imagen. Una definición de imagen es como un plan para todos los detalles que rodean la creación de una imagen específica. No se implementa una VM desde una definición de imagen, sino desde las versiones de imágenes creadas a partir de la definición.

Hay tres parámetros para cada definición de imagen que se usan en combinación: Publisher, Offer y SKU. Se utilizan para buscar una definición de imagen específica. Puede tener definiciones de imágenes que comparten uno o dos valores, pero no los tres. Por ejemplo, estas son las tres definiciones de imágenes y sus valores:

Definición de imágenes Publicador Oferta Sku
myImage1 Contoso Finance Back-end
myImage2 Contoso Finance Front-end
myImage3 Prueba Finance Front-end

Los tres tienen conjuntos de valores únicos. El formato es similar a cómo puede especificar actualmente el editor, la oferta y la SKU para las imágenes de Azure Marketplace en Azure PowerShell para obtener la última versión de una imagen de Marketplace. Cada definición de imagen debe tener un conjunto único de estos valores.

Los siguientes parámetros determinan qué tipos de versiones de imagen pueden contener:

  • Estado del sistema operativo: puede establecer el estado del sistema operativo en generalizado o especializado. Este campo es obligatorio.
  • Sistema operativo: puede ser Windows o Linux. Este campo es obligatorio.
  • Generación de Hyper-V: especifique si la imagen se creó a partir de un disco duro virtual de Hyper-V de generación 1 o generación 2. El valor predeterminado es la generación 1.

Las definiciones de imagen contienen metadatos para la imagen para permitir la agrupación de imágenes que admiten las mismas características, plan, estado del sistema operativo, tipo de sistema operativo, etc. Los siguientes son otros parámetros que se pueden establecer en la definición de la imagen para que pueda realizar un seguimiento más sencillo de sus recursos:

  • Descripción: la descripción de uso para proporcionar información más detallada sobre por qué existe la definición de la imagen. Por ejemplo, podría tener una definición de imagen para el servidor front-end que tenga la aplicación preinstalada.

  • CLUF: puede usarse para señalar un contrato de licencia de usuario final específico para la definición de la imagen.

  • Declaración de privacidad y Notas de la versión: almacene las notas de la versión y las declaraciones de privacidad en el almacenamiento Azure y proporcione un identificador URI para acceder a ellas como parte de la definición de imagen.

  • Fecha de finalización del ciclo de vida: establezca una fecha predeterminada después de la cual no se debe usar la imagen, aplicable a todas las versiones de la imagen de la definición de imagen. Las fechas finales del ciclo de vida son informativas; los usuarios seguirán teniendo la posibilidad de crear máquinas virtuales a partir de imágenes y versiones tras alcanzarse la fecha final del ciclo de vida.

  • Etiqueta: puede agregar etiquetas al crear la definición de imagen. Para más información sobre las etiquetas, consulte Uso de etiquetas para organizar los recursos.

  • Número mínimo y máximo de vCPU y recomendaciones de memoria: si la imagen tiene vCPU y recomendaciones de memoria, puede adjuntar esa información a la definición de imagen.

  • Tipos de disco no permitidos: puede proporcionar información acerca de las necesidades de almacenamiento para la máquina virtual. Por ejemplo, si la imagen no es adecuada para los discos HDD estándar, agréguelos a la lista de no permitidos.

  • Información del plan de compra para imágenes de Marketplace: -PurchasePlanPublisher, -PurchasePlanNamey -PurchasePlanProduct. Para más información sobre el plan de compra, consulte Buscar imágenes en Azure Marketplace e Indicación de la información del plan de compra de Azure Marketplace al crear imágenes.

  • Architecture

  • Las características permiten especificar características adicionales y SecurityType que se admiten en la imagen en función del tipo de galería:

    Características Valores aceptados Definición Compatible con
    IsHibernateSupported True, False Crear máquinas virtuales compatibles con la hibernación. Privado, compartido directo, comunidad
    IsAcceleratedNetworkSupported True, False Cree máquinas virtuales con redes aceleradas habilitadas. Cuando se establece en True en la definición de imagen, no es posible capturar máquinas virtuales que no admitan redes aceleradas. Privado, compartido directo, comunidad
    DiskControllerType ["SCSI", "NVMe"], ["SCSI"] Establezca esta opción para usar el tipo de disco SCSI o NVMe. Las máquinas virtuales y los discos NVMe solo se pueden capturar en definiciones de imagen etiquetadas para admitir NVMe. Privado, compartido directo, comunidad

    Al especificar un SecurityType mediante el parámetro features, se limitan las características de seguridad habilitadas en la máquina virtual. Algunos tipos limitados, en función del tipo de galería en el que se almacenan:

    SecurityType Definición Compatible con
    ConfidentialVMSupported Se trata de una imagen genérica de Gen2 que no contiene un blob VMGS. La máquina virtual Gen2 o la máquina virtual confidencial se pueden crear a partir de este tipo de imagen Privado, compartido directo, comunidad
    Máquina virtual confidencial Solo se pueden crear máquinas virtuales confidenciales a partir de este tipo de imagen Privados
    TrustedLaunchSupported Se trata de una imagen genérica de Gen2 que no contiene el blob VMGS. La máquina virtual gen2 o TrustedLaunch se pueden crear a partir de este tipo de imagen. Privado, compartido directo, comunidad
    TrustedLaunch Solo se puede crear una máquina virtual TrustedLaunch a partir de este tipo de imagen Privados
    TrustedLaunchAndConfidentialVmSupported Se trata de una imagen genérica de Gen2 que no contiene el blob VMGS. La máquina virtual Gen2, TrustedLaunch o ConfidentialVM se puede crear a partir de este tipo de imagen. Privado, compartido directo, comunidad

    Para obtener más información, consulte los ejemplos de la CLI para agregar características de definición de imagen y SecurityType o los ejemplos de PowerShell.

    **ConfidentialVM solo se admite en las regiones en las que esté disponible. Aquí puede encontrar las regiones admitidas.

Versiones de la imagen

Una versión de la imagen es lo que se usa para crear una VM. Puede tener varias versiones de una imagen según sea necesario para su entorno. Cuando se usa una versión de la imagen para crear una VM, la versión de la imagen se usa para crear nuevos discos para la VM. Las versiones de las imágenes pueden usarse varias veces.

Las propiedades de una versión de imagen son las siguientes:

  • Número de versión. Se usa como nombre de la versión de la imagen. Siempre se plasma con el siguiente formato: VersiónPrincipal.VersiónSecundaria.Revisión. Cuando se especifica que se use la versión más reciente al crear una VM, la imagen más reciente se elige en función del valor de VersiónPrincipal más alto, seguido del valor de VersiónSecundaria y de Revisión.
  • Origen. El origen puede ser una VM, un disco administrado, una instantánea, una imagen administrada u otra versión de la imagen.
  • Fecha final del ciclo de vida. Indique la fecha final del ciclo de vida de la versión de la imagen. Las fechas finales del ciclo de vida son informativas; los usuarios seguirán teniendo la posibilidad de crear máquinas virtuales a partir de versiones tras alcanzarse la fecha final del ciclo de vida.

Imágenes generalizadas y especializadas

Hay dos estados del sistema operativo compatibles con Azure Compute Gallery. Normalmente, las imágenes requieren que la máquina virtual usada para crear la imagen se haya generalizado antes de tomar la imagen. La generalización es un proceso que quita la información específica del equipo y del usuario de la máquina virtual. En el caso de Linux, puede usar waagent -deprovision o -deprovision+user parámetros. En Windows, se usa la herramienta Sysprep.

Las máquinas virtuales especializadas no han pasado por un proceso para quitar la información y las cuentas específicas de la máquina. Además, las máquinas virtuales creadas a partir de imágenes especializadas no tienen un osProfile asociado a ellas. Esto significa que las imágenes especializadas tendrán algunas limitaciones, además de algunas ventajas.

  • Las VM y los conjuntos de escalado creados a partir de imágenes especializadas pueden estar en funcionamiento más rápido. Dado que se crean a partir de un origen que ya ha pasado a través del primer arranque, las máquinas virtuales creadas a partir de estas imágenes se inician más rápido.
  • Las cuentas que se podrían usar para iniciar sesión en la máquina virtual también se pueden usar en cualquier máquina virtual creada mediante la imagen especializada que se crea a partir de esa máquina virtual.
  • Las máquinas virtuales tendrán el nombre de equipo de la máquina virtual de la que se tomó la imagen. Debe cambiar el nombre de equipo para evitar colisiones.
  • osProfile es la forma en que se pasa información confidencial a la máquina virtual, mediante secrets. Esto puede producir problemas al usar KeyVault, WinRM y otras funciones que usan secrets en osProfile. En algunos casos, puede usar identidades Managed Service Identity (MSI) para solucionar estas limitaciones.

Nota:

Las imágenes de máquina virtual generalizadas y especializadas contienen un disco de sistema operativo y todos los discos conectados, si los hubiera.

Actualización de recursos

Una vez que se crean, puede realizar algunos cambios en los recursos de la galería. Estos se limitan a:

Azure Compute Gallery:

  • Descripción

Definición de la imagen:

  • vCPU recomendadas:
  • Memoria recomendada
  • Descripción
  • Fecha final del ciclo de vida
  • ReleaseNotes

Versión de la imagen:

  • Recuento de réplicas regionales
  • Regiones de destino
  • Excluir de la versión más reciente
  • Fecha final del ciclo de vida

Uso compartido

Hay tres formas principales de compartir imágenes en una instancia de Azure Compute Gallery en función de con quién quiera compartirlas:

Uso compartido con: Personas Grupos Entidad de servicio Todos los usuarios de una suscripción (o) inquilino específicos Públicamente con todos los usuarios de Azure
Uso compartido de RBAC No No
RBAC + Galería compartida directa No
RBAC + Galería de comunidad No

Permisos RBAC necesarios para crear una imagen ACG:

Los usuarios pueden crear imágenes ACG a partir de varios orígenes, incluidos máquinas virtuales, discos o instantáneas y VHD. En la sección se describen los distintos permisos de usuario necesarios para crear una imagen de Azure Compute Gallery. Los identificadores sin los permisos necesarios no podrán crear imágenes ACG.

Tipo de origen Permisos necesarios
Máquina virtual Escribir
Disco/instantánea Escribir
VHD Escritura (listKeys)
Imagen administrada Leer
Imagen de la galería Leer

Consulte nuestra documentación para obtener información adicional sobre roles integrados de Azure, para conceder permisos de RBAC

Replicación superficial

Al crear una versión de imagen, puede establecer el modo de replicación en superficial para el desarrollo y la prueba. La replicación superficial omite la copia de la imagen, por lo que la versión de la imagen está lista más rápido. Pero también significa que no se puede implementar un gran número de máquinas virtuales a partir de esa versión de imagen. Es similar a la forma en que funcionaban las imágenes administradas anteriores.

La replicación superficial también puede ser útil si tiene imágenes grandes (hasta 32 TB) que no se implementan con frecuencia. Dado que la imagen de origen no se copia, se pueden usar discos más grandes. Sin embargo, tampoco se pueden usar para implementar un gran número de máquinas virtuales simultáneamente.

Para establecer una imagen para la replicación superficial, use --replication-mode Shallow con la CLI de Azure.

Compatibilidad con SDK

Los siguientes SDK admiten la creación de instancias de Azure Compute Gallery:

Plantillas

Puede crear recursos de Azure Compute Gallery mediante plantillas. Hay varias plantillas de inicio rápido disponibles:

Preguntas más frecuentes

Para enumerar todos los recursos de Azure Compute Gallery de las suscripciones a las que tiene acceso en Azure Portal, siga estos pasos:

  1. Abra Azure Portal.
  2. Desplácese hacia abajo en la página y seleccione Todos los recursos.
  3. Seleccione todas las suscripciones en las que quiera enumerar todos los recursos.
  4. Busque recursos del tipo Azure Compute Gallery.

Para enumerar todos los recursos de Azure Compute Gallery, de todas las suscripciones para las que tiene permiso, use el comando siguiente en la CLI de Azure:

   az account list -otsv --query "[].id" | xargs -n 1 az sig list --subscription

Sí. Hay tres escenarios basados en los tipos de imagen que pueda tener.

Escenario 1: Si tiene una imagen administrada, puede crear una definición de la imagen y versión de la imagen a partir de ella. Para más información, consulte Creación y definición de imagen y una versión de imagen.

Escenario 2: Si tiene una imagen no administrada, puede crear una imagen administrada a partir de ella y, luego, crear una definición de la imagen y una versión de la imagen a partir de ella.

Escenario 3: Si tiene un VHD en el sistema de archivos local, deberá cargar el VHD en una imagen administrada y, luego, crear una definición de la imagen y una versión de la imagen a partir de ella.

¿Puedo crear una versión de la imagen desde un disco especializado?

Sí, puede crear una VM a partir de una imagen especializada.

No, no puede mover el recurso de imagen de la galería a otra suscripción. Puede replicar las versiones de la imagen de la galería en otras regiones o copiar una imagen de otra galería.

¿Puedo replicar mis versiones de imagen entre nubes como Azure operada por 21Vianet o Azure Alemania o Azure Government Cloud?

No, no puede replicar las versiones de la imagen en las nubes.

¿Puedo replicar las versiones de mis imágenes entre suscripciones?

No, puede replicar las versiones de la imagen en varias regiones de una suscripción y usarla en otras suscripciones a través de RBAC.

¿Puedo compartir versiones de imágenes entre los inquilinos de Microsoft Entra?

Sí, puede utilizar RBAC para compartirlo con las personas entre los inquilinos. Pero, para compartir a escala, consulte "Uso compartido de imágenes de la galería entre inquilinos de Azure" con PowerShell o CLI.

¿Cuánto tarda la replicación de versiones de imágenes en las regiones de destino?

El tiempo de replicación de la versión de una imagen depende totalmente del tamaño de la imagen y del número de regiones en las que se va a replicar. Sin embargo, como práctica recomendada para obtener los mejores resultados, se recomienda mantener una imagen pequeña y las regiones de origen y de destino cerca. Puede comprobar el estado de la replicación mediante la marca -ReplicationStatus.

¿Cuál es la diferencia entre la región de origen y la región de destino?

La región de origen es la región en la que se creará la versión de la imagen, y las regiones de destino son las regiones donde se almacenará una copia de la versión de la imagen. Para cada versión de una imagen, solo puede tener una región de origen. Además, asegúrese de pasar la ubicación de la región de origen como una de las regiones de destino cuando cree una versión de la imagen.

¿Cómo puedo especificar la región de origen al crear la versión de la imagen?

Al crear una versión de la imagen, puede usar el argumento --location en la CLI y el parámetro -Location en PowerShell para especificar la región de origen. Asegúrese de que la imagen administrada que usa como imagen de base para crear la versión de la imagen esté en la misma ubicación que la ubicación en la que va a crear la versión de la imagen. Además, asegúrese de pasar la ubicación de la región de origen como una de las regiones de destino cuando cree una versión de la imagen.

¿Cómo puedo especificar el número de réplicas de la versión de la imagen que se creará en cada región?

Hay dos maneras de especificar el número de réplicas de la versión de la imagen que se creará en cada región:

  1. El recuento de réplicas regionales que especifica el número de réplicas que desea crear para cada región.
  2. El recuento de réplicas comunes que es el recuento predeterminado por región en caso de que no se especifique el recuento de réplicas regionales.

Para especificar el recuento de réplicas regionales, pase la ubicación junto con el número de réplicas que quiere crear en esa región: "Centro-sur de EE. UU. = 2".

Si el recuento de réplicas regionales no se especifica con cada ubicación, el número predeterminado de réplicas será el recuento de réplicas comunes que especificó.

Para especificar el recuento de réplicas comunes en la CLI de Azure, use el argumento --replica-count en el comando az sig image-version create.

Sí, es posible. Pero como procedimiento recomendado, le animamos a mantener el grupo de recursos, la galería, la definición de la imagen y la versión de la imagen en la misma ubicación.

No hay ningún cargo por usar una instancia de Azure Compute Gallery, excepto los cargos de almacenamiento de las versiones de las imágenes y los de salida de red para la replicación de las versiones de las imágenes desde la región de origen en las de destino.

¿Qué versión de API debo usar al crear imágenes?

Para trabajar con galerías, definiciones de imágenes y versiones de imágenes, se recomienda usar la versión 2018-06-01 de la API. El almacenamiento con redundancia de zona (ZRS) requiere la versión de 2019-03-01 o posterior.

¿Qué versión de API debo usar para crear una máquina virtual o un conjunto de escalado de máquinas virtuales a partir de la versión de la imagen?

Para implementaciones de VM y conjuntos de escalado de máquinas virtuales que usan una versión de la imagen, se recomienda usar la API versión 2018-04-01 o posterior.

Sí, puede actualizar la referencia de imagen del conjunto de escalado desde una imagen administrada a una imagen de Azure Compute Gallery, siempre que el tipo de sistema operativo, la generación de Hyper-V y el diseño del disco de datos coincidan entre las imágenes.

¿Cómo puedo actualizar mi código para usar la nueva propiedad y asegurarse de que los permisos se conceden con precisión durante la creación de imágenes de máquina virtual?

En el campo Id. de máquina virtual, use el campo VirtualMachineId en GallerySource(GalleryImageVersionStorageProfile.GallerySource.VirtualMachineID). La nueva propiedad requiere la versión de API del 3 de julio de 2023 o la versión 1.4.0 (o posterior) del SDK de .NET

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                GallerySource = new GalleryArtifactVersionFullSource()
                {
                    VirtualMachineId = new ResourceIdentifier(virtualMachineId),
                }
            },

Para VHD como origen, use el campo StorageAccountID en GallerySource en OSDiskImage o Data disk Image(GalleryImageVersionStorageProfile.OSDiskImage.GallerySource.StorageAccountId). La nueva propiedad requiere la versión de API del 3 de marzo de 2022

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                OSDiskImage = new GalleryOSDiskImage()
                {
                    GallerySource = new GalleryDiskImageSource()
                    {
                        StorageAccountId = new ResourceIdentifier(storageAccountId),
                        Uri = new Uri(blobUri),
                    }
                }
            },

Las máquinas virtuales creadas a partir de la imagen de Azure Compute Gallery no se ven afectadas gracias a sus discos persistentes. Sin embargo, se producirá un error en la operación de escalado horizontal de VMSS, ya que las máquinas virtuales se basan en la referencia del identificador de la imagen de origen, que se perderá una vez eliminada la imagen de Azure Compute Gallery.

Solución de problemas

Si tiene problemas para realizar operaciones en los recursos de galería, consulte la lista de errores comunes en la guía de solución de problemas.

Además, puede publicar y etiquetar la pregunta con azure-virtual-machines-images en Preguntas y respuestas.

Pasos siguientes

Obtenga información sobre cómo implementar imágenes mediante Azure Compute Gallery.