title | excerpt | updated |
---|---|---|
Condividere immagini tra progetti Public Cloud |
Scopri come condividere immagini tra progetti Public Cloud con OpenStack |
2025-04-01 |
In alcuni casi potrebbe essere necessario condividere un’immagine Instance Backup o un’immagine Volume Backup tra più progetti Public Cloud.
OpenStack ti permette di condividere un'immagine tra più progetti, anche se non appartengono allo stesso account.
Questa funzionalità offre numerose possibilità ma comporta anche dei rischi. È quindi importante comprenderne i principi.
Ad esempio, se si desidera condividere un'immagine di un progetto A con un progetto B (nello stesso account o in un account diverso), vengono applicate le regole seguenti:
- Le immagini possono essere condivise solo all'interno della stessa area. Ad esempio, un'immagine creata nel progetto A nell'area GRA11 sarà disponibile solo per il progetto B all'interno della stessa area GRA11.
- L'immagine rimane fisicamente attaccata al progetto A. Il progetto B dispone solo di un'autorizzazione di accesso a questa immagine.
- Se il Progetto A elimina l'accesso all'immagine (eliminazione dell'ACL, eliminazione dell'immagine, eliminazione del progetto per fatture non pagate, ecc.), le istanze che vengono eseguite da questa immagine sul Progetto B potrebbero non funzionare a causa di problemi di migrazione o di ricostruzione.
È quindi importante tenerlo a mente prima di intraprendere questa configurazione.
Per maggiori informazioni, consulta la documentazione ufficiale OpenStack{.external}.
Questa guida ti mostra come condividere immagini tra uno o più progetti, preservandone la configurazione e lo stato.
Prima di seguire questi passaggi, ti consigliamo di consultare questa guida:
Avrai anche bisogno di:
- Disporre di un’Istanza Public Cloud iscritta nel proprio account OVHcloud
- Aver creato un utente OpenStack
[!primary]
Questa guida ti mostra come utilizzare il OpenStack Cient{.external}.
Per elencare le immagini esistenti, eseguire innanzitutto il comando seguente:
$ openstack image list --private
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | pfsense |
Warning
Per condividere un'immagine, è necessario innanzitutto renderla visibile in condivisione (shared visibility).
$ openstack image set --shared <Image_UUID>
È possibile eseguire il comando seguente per elencare le immagini che possono essere condivise con un altro progetto:
$ openstack image list --shared
9a0fbdc5-****-****-****-8d404a1313ba pfsense
Lo step successivo consiste nell’aggiungere l’UUID di un altro progetto come membro dell’immagine. Nel nostro esempio qui sotto, aggiungiamo l’UUID del « Progetto B ».
$ openstack image add project 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba <UUID_Project_B>
+------------+--------------------------------------+
| Field | Value |
+------------+--------------------------------------+
| created_at | 2020-01-27T13:26:52Z |
| image_id | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba |
| member_id | <UUID_Project_B> |
| schema | /v2/schemas/member |
| status | pending |
| updated_at | 2020-01-30T15:18:00Z |
+------------+--------------------------------------+
Una volta effettuata questa operazione, verifica la richiesta per il progetto B:
$ openstack image member list <Image_UUID>
+--------------------------------------+----------------------------------+----------+
| Image ID | Member ID | Status |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <UUID_Project_B> | pending |
+--------------------------------------+----------------------------------+----------+
Se la richiesta di condivisione è in stato pending
, è necessario accettarla:
$ openstack image set --accept 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID | Member ID | Status |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | eff99684d8294dbe8c2d4dd7407073f1 | accepted |
+--------------------------------------+----------------------------------+----------+
Una volta accettata la richiesta di condivisione, assicurati di poter visualizzare e accedere all'immagine:
$ openstack image show 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum | 1b19c9e5bdd36b9010de0164dd8b245e |
| container_format | bare |
| created_at | 2018-05-08T15:38:50Z |
| disk_format | raw |
| file | /v2/images/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba/file |
| id | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba |
| min_disk | 0 |
| min_ram | 0 |
| name | pfsense |
| owner | 35c9ee22e5c84c1097a5652b0abcbab3 |
| properties | direct_url='swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', locations='[{'url': 'swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', 'metadata': {}}]' |
| protected | False |
| schema | /v2/schemas/image |
| size | 10737418240 |
| status | active |
| tags | |
| updated_at | 2018-05-08T15:53:57Z |
| virtual_size | None |
| visibility | private |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Per visualizzare tutti i progetti che hanno accesso all'immagine, dal progetto di origine (in questo caso il progetto A), è possibile eseguire questo comando:
$ openstack image member list 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID | Member ID | Status |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project C> | pending |
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project B> | accepted |
+--------------------------------------+----------------------------------+----------+
Nel progetto di origine (progetto A) è possibile eliminare un membro della condivisione:
$ openstack image remove project <image> <UUID_Project_To_Delete>
Trasferire il backup di un’istanza tra datacenter.
Contatta la nostra Community di utenti.