¿Cómo utilizar las imágenes que se han creado mediante el método "Descargar copy_volume_to_image" de rbd en openstack?

¿Cómo utilizar las imágenes que se han creado mediante el método "Descargar copy_volume_to_image" de rbd en openstack?

Tengo un openstack integrado con ceph. Estoy trabajando en la forma más rápida de crear una copia del volumen de una instancia sin usar el módulo cinder_backup. en Ceph es posible acceder a los archivos rbd que están almacenados en el grupo (como grupos de volúmenes). Podemos exportarlos y luego crear una imagen a partir de ellos y crear otra instancia. pero también hay otro método llamado "Descargar copy_volume_to_image de rbd"https://specs.openstack.org/openstack/cinder-specs/specs/liberty/optimze-rbd-copy-volume-to-image.html Me pregunto cómo puedo usar estos volúmenes copiados para grupos de imágenes en Openstack porque después de hacer esto las imágenes están en el grupo rbd pero no se pueden usar en OpenStack porque OpenStack no las ha generado y no tiene una ID de OpenStack. Me pregunto si podrían ayudarme a saber cómo puedo usar imágenes después de crear con este método. gracias de antemano.

Respuesta1

Puede utilizar cinder para gestionar imágenes rbd existentes y "adoptarlas" en openstack. Suponiendo que ya clonaste o copiaste la imagen de origen en tu imagen de destino (por ejemplo: rbd clone fast-pool/image@snap fast-pool/new_image), necesitas la información del backend. Aquí tienes un ejemplo de uno de nuestros clústeres (utilizamos dos grupos de rbd diferentes para almacenamiento rápido y lento):

control01:~ # cinder get-pools
+----------+---------------------+
| Property | Value               |
+----------+---------------------+
| name     | control@rbd#rbd-ssd |
+----------+---------------------+
+----------+----------------------+
| Property | Value                |
+----------+----------------------+
| name     | control@rbd2#rbd-hdd |
+----------+----------------------+

La imagen de destino que quería administrar está en el almacenamiento rápido (rbd-ssd), por lo que este es el comando que necesito para permitir que Cinder la administre como un volumen y la haga "conocida por openstack":

cinder manage --name new_volume_name control@rbd#rbd-ssd new_image

"new_volume_name" es el nombre que verá en el cinder listresultado, mientras que "new_image" es la imagen rbd clonada que creó en el paso anterior.

Respuesta2

@eblock gracias por tu respuesta. Tengo una situación diferente aquí. Ya tengo mis imágenes clonadas en uno de mis grupos llamado imágenes. pero la ceniza ve estanques diferentes a los del ceph. aquí están mis piscinas en el ceph

# ceph osd pool ls 
.mgr
images
volumes
backup

y esto es lo que ve Cinder:

# cinder get-pools
+----------+-------------------------+
| Property | Value                   |
+----------+-------------------------+
| name     | controller3@rbd-1#rbd-1 |
+----------+-------------------------+
+----------+-------------------------+
| Property | Value                   |
+----------+-------------------------+
| name     | controller2@rbd-1#rbd-1 |
+----------+-------------------------+
+----------+-------------------------+
| Property | Value                   |
+----------+-------------------------+
| name     | controller1@rbd-1#rbd-1 |
+----------+-------------------------+

Entonces, cuando intento utilizar el comando "Cinder Manage",

cinder manage --name  my_new_volume  controller1@rbd-1#rbd-1  my_cloned_image

crea el volumen y se atasca en el estado de "error". También aparece este error en el archivo de registro de Cinder:

cinder.exception.ManageExistingInvalidReference: Manage existing volume failed due to invalid backend reference my_cloned_image: Specified rbd image does not exist.

Incluso cambié la dirección de backend al nombre de los grupos en el ceph, pero no ayudó.

información relacionada