Giriş¶
Sanal makineleriniz yoksa (bazı insanlar “sanal gereçler” de der) OpenStack Hesaplama bulutu pek de faydalı değildir. Bu kılavuz OpenStack ile uyumlu sanal makine imajlarını nasıl alabileceğinizi, oluşturabileceğinizi ve değiştirebileceğinizi anlatır.
Kısa ve öz tutmak için, sanal makine imajı yerine bazen imaj
diyeceğiz.
Bir sanal makine imajı nedir?
Bir sanal makine imajı üzerinde ön yüklenebilir bir işletim sistemi kurulumu içeren tek dosyadan oluşan sanal disktir.
İmajlar için disk ve kapsayıcı biçimleri¶
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.
- kap biçemi
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.- disk biçimi
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.
İmaj metaverisi¶
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.
Not
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.
Not
Compute’s ImagePropertiesFilter
value is specified in the
enabled_filters
value in the [filter_scheduler]
section
of the /etc/nova/nova.conf
file.
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.
Adding metadata to an image¶
--property key=value
parametresini openstack image create veya openstack image set komutuyla kullanarak İmaj servisine metaveri ekleyebilirsiniz. Birden fazla özellik eklenebilir. Örneğin:
$ 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.
Bir imaj için ilişkili tüm özellikler openstack image show komutuyla görüntülenebilir. Örneğin:
$ 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 |
+------------------+------------------------------------------------------+
Not
İmajdan-birim özellikleri
İmajlardan Blok Depolama birimleri oluştururken, yapılandırılmış imaj özelliklerinizi de dikkate alın. Çekirdek imaj özellikleriyle oynarsanız, Blok Depolama yapılandırmanızı da güncellemeniz gerekir. Tüm kontrol düğümlerinizdeki /etc/cinder/cinder.conf
dosyası içindeki glance_core_properties
değerini değiştirerek İmaj servisinde ayarladığınız çekirdek özelliklerle eşleştirin.
Metadata definition (metadefs) service¶
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.
Bu servisle şunları tanımlayabilirsiniz:
- İsim uzayı
Metaveri tanımlarını içerir.
İsim uzayında tanımlanan herşey için erişim kontrollerini belirtir. Bu erişim kontrolleri isim uzayındaki tanımları kimin tanımlayıp kullanabileceini kontrol eder.
Tanımları farklı kaynak türleriyle ilişkilendirir.
- Özellik
Tek bir özellik ve ilk kısıtlamaları. Her bir özellik yalnızca bir ilk tür olabilir. Örneğin, karakter dizisi, tamsayı, numara, bool veya dizi.
- Nesne
Birden çoka özellik grubu ve ilk kısıtlamalarını tanımlar. Gruptaki her özellik yalnızca bir ilk tür olabilir. Örneğin karakter dizisi, tamsayı, numara, bool veya dizi.
Nesne isteğe bağlı olarak gerekli özellikleri nesneyi kullanmanız durumunda gerekli tüm özellikleri sağlamanızın gerektiği anlamsal yapıyla tanımlayabilir.
- Kaynak türü ilişkilendirme
Kaynak türleri ve onlara uygulanabilir isim uzayları arasındaki ilişkiyi tanımlar. Bu bilgi UI ve CLI görünümlerini kullanmak için kullanılabilir. Örneğin, nesneler, özellikler, ve etiketlerin aynı isim uzayı imajlar, anlık görüntüler, birimler ve nitelikler için kullanılabilir. Ya da bir isim uzayı sadece imajlara uygulanabilir.
İmaj servisinin metaveri tanımlamaları kataloğu için öntanımlı isim uzayları vardır. Bu dizinden dosyaları veritabanına yüklemek için:
$ glance-manage db_load_metadefs
Dosyaları veritabanından çıkarmak için:
$ glance-manage db_unload_metadefs
Tanımları JSON biçiminde dışa aktarmak için:
$ glance-manage db_export_metadefs
Not
Öntanımlı olarak, dosyalar İmaj servisinin /etc/glance/metadefs
dizininden yüklenir ve buraya aktarılır.
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.
For more information about the OpenStack Metadefs catalog, see:
Using Glance’s Metadata Definitions Catalog Public APIs in the Glance User Guide