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:
Using Glance’s Metadata Definitions Catalog Public APIs di Glance User Guide