Saltar al contenido principal

Cómo importar una imagen de SO en el clúster

Cuándo usarlo​

Cuando el clúster necesita una nueva imagen de SO o una nueva versión de una imagen ya importada. La importación descarga la imagen desde una fuente de biblioteca registrada y la distribuye entre los pools de almacenamiento. Solo entonces pueden crearse máquinas virtuales a partir de la imagen.

Este procedimiento también se aplica para completar la distribución. Si una importación anterior no distribuyó la imagen a todos los pools, importar de nuevo la misma versión entrega las copias que faltan.

Este procedimiento no se aplica si la imagen de origen está en un formato distinto de zfs: la importación no acepta esas imágenes. Tampoco se aplica para cambiar el propietario de la imagen: importar de nuevo no reescribe la pertenencia de la imagen a un VDC (centro de datos virtual).

Requisitos previos​

  • El privilegio Import Golden Image con ámbito en el VDC de destino; el rol Cluster master tiene ámbito global;
  • El privilegio Sync Image Library: sin él, no puede leer el catálogo de la fuente ni obtener el identificador de la imagen;
  • El servicio de distribución vstack-center-image-distributor está desplegado en el clúster con el vhost obligatorio imgdistr_vhost; sin él, nada puede transferir los bytes durante la importación;
  • La fuente de la biblioteca está registrada y su identificador se conoce por la lista de fuentes;
  • La fuente es accesible para el autor de la llamada: un administrador de VDC puede acceder a una fuente asignada a su VDC, mientras que una fuente compartida del clúster solo está disponible para el rol Cluster master. Esta comprobación se realiza antes de leer el catálogo y antes de la importación, por lo que sin acceso a la fuente la respuesta es -403, aunque se hayan concedido todos los privilegios necesarios;
  • El clúster tiene al menos un pool de almacenamiento con propietario;
  • Versión de vStack Center: 4.0.0.

Pasos​

En la interfaz web, la importación se inicia en la sección «Image library», pestaña «Images». Los pasos siguientes corresponden al rol Cluster master. Un administrador de VDC importa una imagen en su propio VDC mediante una llamada a la API, especificando ese VDC en la solicitud de importación. Las estructuras de solicitud y los detalles completos de las respuestas se encuentran en la referencia de la API.

  1. Haga clic en «Add image» y abra la pestaña «Source»: la pestaña «File» todavía no está disponible. Elija una fuente en la lista «Source». El clúster lee solo su manifest.json y muestra el «Image showcase» con tarjetas de las imágenes de la fuente. La lectura del catálogo es rápida y no cambia nada en el clúster.

  2. Seleccione una imagen. Una tarjeta en un formato distinto de zfs aparece inactiva con el texto «The platform cannot import this format»; una imagen ya importada se marca como «Already in the cluster catalog». El identificador de importación es el campo uuid de la entrada del manifiesto: identifica de forma unívoca tanto la imagen como su versión. Una entrada sin uuid no puede importarse; agregue primero el campo al manifiesto de la fuente.

  3. Haga clic en «Next» y elija los pools: todos están seleccionados de forma predeterminada. Para distribuir la imagen solo a algunos pools, desmarque los demás; las copias restantes pueden entregarse importando de nuevo la misma versión. Haga clic en «Add».

    La importación es asíncrona: la notificación «Image import has started» confirma el trabajo, no que la imagen esté lista. La distribución continúa en segundo plano.

    La misma importación puede iniciarse desde la pestaña «Sources»: panel de la fuente → tarjeta de la imagen → «Import image» → «Import».

  4. Espere a que finalice la distribución. En la columna «Status», la imagen pasa de «Importing» a «Available»; «Partially available» y «Failure» se tratan más abajo. La columna «Availability» muestra cuántos pools contienen una copia, y el panel de la imagen muestra el resultado por pool.

Verifique el resultado​

Busque la imagen importada en «Image library» y compruebe dos cosas:

Qué comprobarValor esperado
Estado de la imagen«Available» (active en la API): la imagen se ha distribuido a todos los pools seleccionados
Resultado por poolUna entrada por cada pool del paso 3

El estado «Importing» (importing) significa que la distribución todavía está en curso. Los estados «Partially available» (partial_active) y «Failure» (failed) se tratan más abajo.

La comprobación final es crear una máquina. La copia de la imagen en el pool seleccionado para la creación de la VM debe estar activa; de lo contrario, la creación se rechaza con el código -259.

Solución de problemas​

La importación realiza un único intento sin reintentos automáticos. Cualquier fallo, ya sea en la descarga, la suma de comprobación, la distribución o la pérdida del trabajo por parte del servicio de distribución, establece la imagen en failed y crea una entrada en el registro de seguridad. El administrador inicia un reintento con la misma operación de importación. Reiniciar el despachador a mitad de la operación no reintenta una importación incompleta; la marca como fallida.

Un resultado parcial (partial_active) no se revierte: los pools que tienen una copia la conservan. Consulte el mapa de distribución para ver qué pools no recibieron una copia y, a continuación, importe de nuevo la misma versión para entregar las copias que faltan.

Código de errorSignificadoAcción
-48005El formato de la imagen no es apto para importación; se requiere zfsSeleccione en el catálogo de la fuente una imagen apta para importación
-48002El catálogo de la fuente no contiene ninguna imagen con este identificadorVuelva a obtener el catálogo de la fuente: es posible que el manifiesto haya cambiado
-48003La imagen ya se está importandoEspere el resultado de la importación en curso; no es necesario reiniciarla
-48004La imagen se está eliminandoEspere a que finalice la eliminación
-48006La entrada del manifiesto no supera la validación: versión, tamaño mínimo, tamaño, tamaños de sector, suma de comprobación, ruta del archivo, un tipo de SO o de personalización del invitado desconocido, un uuid repetidoCorrija el manifiesto en la fuente
-48007Un pool especificado no existe o el clúster no tiene pools con propietarioCompruebe la lista de pools; verifique que el clúster tenga un pool con propietario
-48008Ya existe en el catálogo una imagen con este identificador con otra fuente u otra versiónEl identificador de la imagen es único a nivel global: asigne a la imagen su propio uuid en el manifiesto
-46002No existe ninguna fuente con este identificadorUtilice un identificador vigente de la lista de fuentes
-46012El host de la fuente se resuelve en un rango prohibidoTraslade la biblioteca a una dirección fuera de loopback, enlace local, los rangos privados RFC 1918, CGNAT, la "red cero" y la dirección de difusión
-46020La fuente no está disponible: fallo de red, tiempo de espera agotado o una respuesta distinta de 2xxCompruebe que la URL de la biblioteca sea accesible desde la red del clúster
-46021manifest.json no puede interpretarse como JSONCorrija la sintaxis del manifiesto
-46022La versión del esquema del manifiesto es superior a la versión admitidaActualice el manifiesto a una versión del esquema admitida
-46023El manifiesto no supera la validación del esquema: a una entrada le faltan campos obligatoriosAgregue name, version, format, url_path, size, sha256
-49005Un administrador de VDC no especificó un VDC: solo el rol Cluster master importa una imagen compartida del clústerEspecifique su VDC en la solicitud de importación
-49006El VDC especificado está fuera del ámbito del autor de la llamadaEspecifique un VDC en el que tenga un rol
-403Acceso denegadoCompruebe el acceso a la fuente, el privilegio y la pertenencia: una fuente compartida del clúster solo está disponible para el rol Cluster master; un administrador de VDC necesita una fuente asignada a su VDC; solo el propietario de la imagen o el rol Cluster master pueden importar una nueva versión de una imagen existente
-503El registro de seguridad no aceptó el registro de intenciónLa importación no se ha iniciado y no ha cambiado nada; restablezca la disponibilidad del registro y vuelva a intentarlo
-48001Error de la base de datosVuelva a intentar la importación; si el error se repite, póngase en contacto con el soporte técnico

Véase también​

Métodos de la API​

Las operaciones de la API tratadas en esta página son os-library-list, os-library-sync, os-image-import y golden-images-list; consulte la referencia de la API.