Einführung

Eine OpenStack Compute Cloud ist nicht sehr nützlich, es sei denn, Sie haben virtuelle Maschinenbilder (die manche Leute ‚virtuelle Appliances‘ nennen). In diesem Handbuch wird beschrieben, wie Sie virtuelle Maschinenbilder erhalten, erstellen und modifizieren, die mit OpenStack kompatibel sind.

Um die Dinge kurz zu halten, werden wir manchmal den Begriff image anstelle des virtuellen Maschinenbildes verwenden.

Was ist ein virtuelles Abbild?

Ein virtuelles Maschinenbild ist eine einzelne Datei, die ein virtuelles Laufwerk enthält, auf dem ein bootfähiges Betriebssystem installiert ist.

Festplatten- und Containerformate für Abbilder

Virtual machine images come in different formats. A format describes the way the bits making up a file are arranged on the storage medium. Knowledge of a format is required in order for a consumer to interpret the content of the file correctly (rather than to simply view it as a bunch of bits).

When considering a stored virtual machine image, there are two types of format that can come into play.

Containerformat

The stored file may be a container that contains the virtual disk. For example, the virtual disk may be contained in a tar file which must be opened before the disk can be retrieved. It’s possible, however, that the virtual disk is not contained in a file, but is just stored as-is by the Image Service.

Festplattenformat

The virtual disk itself has its bits arranged in some format. A consuming service must know what this format is before it can effectively use the virtual disk.

Abbild-Metadaten

Image metadata (also known as „image properties“) provide information about the virtual disk stored by the Image service. The metadata is stored as part of the image record associated with the image data by the Image service. Image metadata can help end users determine the nature of an image, and is used by associated OpenStack components and drivers which interface with the Image service.

So that image consumers can easily identify the container and disk format of images, the image service has set aside particular metadata keys for these. Not surprisingly, these are named container_format and disk_format. The legal values for each of these are specified in the Image service’s Image schema, which you can obtain in any OpenStack installation by making the following API call:

GET /v2/schemas/image

The supported formats may vary across OpenStack clouds. The formats accepted by a particular cloud will be specified in that cloud’s get-schema response to the Images API.

Bemerkung

The image schema lists the legal identifiers for container and disk formats. To understand what these identifiers refer to, consult the Disk and Container Formats section of the Glance User Guide.

Image metadata can also determine the scheduling of hosts. If specific metadata are set on an image (possible metadata are architecture, hypervisor type, and virtual machine mode), and Compute is configured so that the ImagePropertiesFilter scheduler filter is enabled (default), then the scheduler only considers compute hosts that satisfy the specified properties.

Bemerkung

Compute’s `` ImagePropertiesFilter`` Wert wird im enable_filter Wert im Abschnitt [filter_scheduler] in der /etc/nova/nova.conf Datei angegeben.

Other Compute scheduler filters may also be affected by image metadata. For a complete list of valid property keys and values, refer to the Useful image properties section of the Glance Administration Guide.

Metadaten zum Abbild hinzufügen

Sie können Metadaten zu Abbilddienst-Abbildern hinzufügen, indem Sie den Parameter --property key=value mit dem openstack image create verwenden oder openstack image set Befehl. Es können mehr als eine Eigenschaft angegeben werden. Beispielsweise:

$ openstack image set --property architecture=arm \
  --property hypervisor_type=qemu image_name_or_id

Common image properties are also specified in the /etc/glance/schema-image.json file. Other useful property keys and values, are listed in the Useful image properties section of the Glance Administration Guide.

Alle zugehörigen Eigenschaften für ein Abbild können mit dem Befehl openstack image show angezeigt werden. Beispielsweise:

$ openstack image show cirros
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                     |
| container_format | bare                                                 |
| created_at       | 2016-04-15T13:57:38Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/55f0907f-70a5-4376-a346-432e4ec509ed/file |
| id               | 55f0907f-70a5-4376-a346-432e4ec509ed                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros                                               |
| owner            | f9574e69042645d6b5539035cb8c00bf                     |
| properties       | architecture='arm', hypervisor_type='qemu'           |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13287936                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2016-04-15T13:57:57Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

Bemerkung

Volumen-von-Abbild-Eigenschaften

Beim Erstellen von Blockspeicher-Volumes aus Abbildern sollten Sie auch Ihre konfigurierten Abbild-Eigenschaften berücksichtigen. Wenn Sie die Core-Image-Eigenschaften ändern, sollten Sie auch die Konfiguration des Blockspeichers aktualisieren. Ändern Sie glance_core_properties in der /etc/cinder/cinder.conf Datei auf allen Controller-Knoten, um die Core-Eigenschaften zu entsprechen, die Sie im Image Service eingestellt haben.

Metadatendefinitionsdienst (metadefs)

Images are not the only OpenStack resource that can have metadata associated with them. Many other resources (for example, volumes) support setting metadata on the resources. As with images, the metadata may be consumed by humans to understand something about the resource, or may be used by other OpenStack services so that they can make efficient use of the resource (for example, the nova filter scheduler using the image architecture property to determine an appropriate host on which to build an instance from that image). Thus it is important that there be a discoverable way for people and services to determine what metadata properties and values are available throughout an OpenStack cloud.

To facilitate this, Glance (the OpenStack Image service) hosts a metadata definition service, which is also known as the OpenStack metadefs catalog.

Mit diesem Service können Sie definieren:

Namensraum
  • Enthält Metadatendefinitionen.

  • Gibt die Zugriffskontrollen für alles an, was im Namespace definiert ist. Diese Zugriffskontrollen bestimmen, wer die Definitionen im Namensraum definieren und verwenden kann.

  • Verknüpft die Definitionen mit verschiedenen Arten von Ressourcen.

Eigenschaften

Eine einzige Eigenschaft und ihre primitiven Zwänge. Jede Eigenschaft kann nur ein primitiver Typ sein. Zum Beispiel String, Integer, Number, Boolean oder Array.

Objekt

Beschreibt eine Gruppe von ein bis vielen Eigenschaften und ihre primitiven Einschränkungen. Jede Eigenschaft in der Gruppe kann nur ein primitiver Typ sein. Zum Beispiel String, Integer, Number, Boolean oder Array.

Das Objekt kann optional die erforderlichen Eigenschaften unter dem semantischen Verständnis definieren, dass bei Verwendung des Objekts alle erforderlichen Eigenschaften bereitgestellt werden sollen.

Ressourcentyp-Assoziation

Gibt die Beziehung zwischen Ressourcentypen und den Namespaces an, die für sie gelten. Diese Informationen können verwendet werden, um UI- und CLI-Ansichten zu fahren. Beispielsweise kann derselbe Namensraum von Objekten, Eigenschaften und Tags für Abbilder,Schattenkopien, Datenträger und Varianten verwendet werden. Oder ein Namensraum darf nur für Abbilder gelten.

Der Image-Service hat vordefinierte Namespaces für den Metadaten-Definitions-Katalog. Um Dateien aus diesem Verzeichnis in die Datenbank zu laden:

$ glance-manage db_load_metadefs

Um die Dateien aus der Datenbank zu entladen:

$ glance-manage db_unload_metadefs

Um die Definitionen im JSON-Format zu exportieren:

$ glance-manage db_export_metadefs

Bemerkung

Standardmäßig werden Dateien aus dem Verzeichnis /etc/glance/metadefs des Image-Dienstes geladen und exportiert.

There is no special relationship between the Image service and the Metadefs service. If you want to apply the keys and values defined in the Metadefs service to images, you must use the Image service API or client tools just as you would for any other OpenStack service.

Weiter Informationen zum OpenStack Metadefs Katalog finden Sie hier: