Pengantar

Cloud OpenStack Compute tidak sangat berguna kecuali jika Anda memiliki gambar mesin virtual (yang beberapa orang menyebutnya "virtual appliances"). Panduan ini menjelaskan cara untuk mendapatkan, membuat, dan memodifikasi gambar mesin virtual yang kompatibel dengan OpenStack.

Supaya menjadil singkat, kita kadang-kadang menggunakan istilah image dari pada image mesin virtual.

What is a virtual machine image?

Virtual machine image adalah file tunggal yang berisi disk virtual yang memiliki sistem operasi bootable yang diinstal di atasnya.

Format disk dan kontainer untuk image

Images mesin virtual datang dalam berbagai formats. Format menggambarkan cara bit menyusun file diatur pada media penyimpanan. Pengetahuan tentang suatu format diperlukan agar konsumen dapat menafsirkan konten file dengan benar (bukan hanya melihatnya sebagai banyak bit).

Saat mempertimbangkan image mesin virtual yang disimpan, ada dua jenis format yang dapat ikut bermain.

format kontainer

File yang disimpan mungkin container yang berisi disk virtual. Sebagai contoh, disk virtual dapat dimuat dalam file tar yang harus dibuka sebelum disk dapat diambil. Mungkin saja, bagaimanapun, bahwa disk virtual tidak terkandung dalam file, tetapi hanya disimpan apa adanya oleh Image Service.

format disk

Disk virtual itu sendiri memiliki bit yang disusun dalam beberapa format. Layanan yang memakan harus tahu apa format ini sebelum dapat menggunakan disk virtual secara efektif.

Metadata image

Metadata image (juga dikenal sebagai "image properties") memberikan informasi tentang disk virtual yang disimpan oleh layanan Image. Metadata disimpan sebagai bagian dari rekaman image yang terkait dengan data image oleh layanan Image. Metadata image dapat membantu pengguna akhir menentukan sifat suatu image, dan digunakan oleh komponen dan driver OpenStack terkait yang berinteraksi dengan layanan Image.

Agar konsumen image dapat dengan mudah mengidentifikasi kontainer dan format disk image, layanan Image telah menyisihkan kunci metadata khusus untuk ini. Tidak mengherankan, ini dinamai container_format dan disk_format. Nilai legal untuk masing-masing ditentukan dalam skema Image layanan Image, yang dapat Anda peroleh dalam instalasi OpenStack dengan membuat panggilan API berikut

GET /v2/schemas/image

Format yang didukung dapat bervariasi di antara cloud OpenStack. Format yang diterima oleh cloud tertentu akan ditentukan dalam respons cloud's get-schema untuk API Images.

Catatan

Skema image mencantumkan pengidentifikasi legal untuk format kontainer dan disk. Untuk memahami apa yang dirujuk oleh pengidentifikasi ini, bacalah bagian Disk and Container Formats bagian dari Glance User Guide.

Metadata image juga dapat menentukan penjadwalan host. Jika metadata tertentu ditetapkan pada image (metadata yang mungkin adalah arsitektur, tipe hypervisor, dan mode mesin virtual), dan Compute dikonfigurasikan sehingga filter penjadwal ImagePropertiesFilter diaktifkan (default), maka penjadwal hanya mempertimbangkan penghitungan host host yang memenuhi properti yang ditentukan.

Catatan

Nilai ImagePropertiesFilter Compute ditentukan dalam nilai enabled_filters di bagian [filter_scheduler] pada file /etc/nova/nova.conf.

Filter penjadwal komputasi lain mungkin juga dipengaruhi oleh metadata image. Untuk daftar lengkap kunci dan nilai properti yang valid, lihat bagian Useful image properties bagian Glance Administration Guide.

Menambahkan metadata ke image

Anda dapat menambahkan metadata ke image di layanan Image dengan menggunakan parameter --property key=value dengan perintah openstack image create atau openstack image set. Lebih dari satu properti dapat ditentukan. Sebagai contoh:

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

Properti image umum juga ditentukan dalam file /etc/glance/schema-image.json. Kunci dan nilai properti berguna lainnya, tercantum di bagian Useful image properties bagian dari Glance Administration Guide.

Semua properti terkait untuk image dapat ditampilkan dengan menggunakan perintah openstack image show. Sebagai contoh:

$ 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                                               |
+------------------+------------------------------------------------------+

Catatan

Volume-from-Image properties

Ketika pembuatan volume Block Storage dari image, Anda juga mempertimbangkan properti image yang dikonfigurasi. Jika Anda mengubah properti image inti (core), Anda juga harus memperbarui konfigurasi Block Storage Anda. Mengubah glance_core_properties di file /etc/cinder/cinder.conf pada semua node controller untuk mencocokkan properti inti yang telah Anda tetapkan dalam pelayanan Image.

Layanan metadata definition (metadefs)

Images bukan satu-satunya sumber daya OpenStack yang dapat memiliki metadata yang terkait dengannya. Banyak sumber daya lain (misalnya, volume) mendukung pengaturan metadata pada sumber daya. Seperti images, metadata dapat dikonsumsi oleh manusia untuk memahami sesuatu tentang sumber daya atau dapat digunakan oleh layanan OpenStack lain sehingga mereka dapat membuat penggunaan sumber daya secara efisien (misalnya, penjadwal filter nova menggunakan image architecture property untuk menentukan host yang tepat di mana untuk membangun sebuah instance dari image itu). Karena itu, penting bahwa ada cara yang dapat ditemukan bagi orang dan layanan untuk menentukan properti dan nilai metadata apa yang tersedia di seluruh cloud OpenStack.

Untuk memfasilitasi ini, Glance (layanan OpenStack Image) menghosting layanan definisi metadata, yang juga dikenal sebagai OpenStack metadefs catalog.

Dengan layanan ini Anda dapat menentukan:

Namespace
  • Isi (contain) definisi metadata.

  • Tentukan kontrol akses untuk segala sesuatu yang didefinisikan dalam namespace. Kontrol akses ini mentapkan siapa yang dapat menentukan dan menggunakan definisi dalam namespace.

  • Kaitkan definisi dengan berbagai tipe sumber daya.

Properti

Properti tunggal dan mempunyai primitive constraint (pembatas primitif). Setiap properti hanya dapat menjadi tipe primitif. Misalnya, string, integer, number (angka), boolean, atau array.

Obyek

Menggambarkan satu kelompok ke banyak properti dan primitive constraint (pembatas primitif) mereka. Setiap properti dalam kelompok hanya dapat menjadi tipe primitif. Misalnya, string, integer, number (angka), boolean, atau array.

Objek secara opsional dapat mendefinisikan properti yang diperlukan di bawah pemahaman semantik bahwa jika Anda menggunakan objek, Anda harus menyediakan semua properti yang dibutuhkan.

Resource type association

Tentukan hubungan antara tipe sumber daya dan namespace yang berlaku untuk mereka. Informasi ini dapat digunakan untuk menggerakkan tampilan UI dan CLI. Misalnya, namespace yang sama dari objek, properti, dan tag dapat digunakan untuk image, snapshot (foto), volume, dan flavor. Atau namespace hanya berlaku untuk image.

Layanan Image telah menyediakan namespace untuk katalog definisi metadata. Untuk memuat file dari direktori ini ke dalam database:

$ glance-manage db_load_metadefs

Untuk membongkar file dari database:

$ glance-manage db_unload_metadefs

Untuk mengekspor definisi dalam format JSON:

$ glance-manage db_export_metadefs

Catatan

Secara default, file dimuat dari dan diekspor ke directori layanan Image /etc/glance/metadefs.

Tidak ada hubungan khusus antara layanan Image dan layanan Metadefs. Jika Anda ingin menerapkan kunci dan nilai yang ditentukan dalam layanan Metadefs ke images, Anda harus menggunakan API layanan Images atau alat klien sama seperti yang Anda lakukan untuk layanan OpenStack lainnya.

Untuk informasi lebih lanjut tentang katalog OpenStack Metadefs, lihat: