KVM (Kernel-based Virtual Machine) APis

Post a Comment

 

KVM API "ioctls" merupakan pengaturan yang dikeluarkan untuk mengontrol berbagai aspek VM. Ioctls termasuk dalam katagori berikut:
 

1. System ioctls:
merupakan sebuah queri mengatur atribut global seluruh subsistem kvm. Selain itu ioctl sistem digunakan untuk membuat VM.
VM ioctls: merupakan sebuah queri yang mengatur seluruh mesin virtual, misalnya tata letak memori. Selain itu, ioctl VM digunakan untuk membuat cpu virtual (vcpus) dan perangkat. VM ioctls harus dikeluarkan dari proses yang sama (address space) yang digunakan untuk membuat VM.
vcpu ioctls: merupakan sebuah queri yang mengontrol pengoperasian cpu virtual tunggal.
Device ioctls : Kueri ini merupakan pengontrol dari operasi pada single perangkat. perangkat ioctls harus dikeluarkan dari proses yang sama (address space) yang digunakan untuk membuat VM.

Pada Linux 2.6.22, KVM ABI telah stabil: tidak ada perubahan yang tidak kompatibel. Mekanisme ekstensi tidak didasarkan pada nomor versi Linux. Sebaliknya, kvm mendefinisikan pengidentifikasi ekstensi yang tersedia.

2. API Description
Bagian ini menjelaskan ioctls yang dapat digunakan untuk mengontrol kvm Guest. berikut beberapa parameter nya :

Capability :
Ekstensi KVM yang menggunakan ioctl. secara dasar berarti akan disediakan oleh kernel yang support API versi 12, konstanta pada KVM_CAP_xyz yang berarti ketersediaan perlu diperiksa dengan KVM_CHECK_EXTENSION, jika tidak ada berarti tidak semua kernel mendukung ioctl. untuk yang tidak di dukung dengan ioctl akan di kembalikan ke -ENOTTY

Architectures:
arsitektur ioctl mencangkup i386 dan x86_62

Type:
system, vm, atau vcpu

Parameters:

Returns:
nilai yang dikembalikan. Angka kesalahan umum (EBADF, ENOMEM, EINVAL) tidak rinci, tetapi kesalahan dengan arti tertentu

untuk mendukung sebuah service di linux tentunya sangat memerlukan sebuah API (jembatan), di opensuse sendiri sudah di support akan hal itu, salah satu nya menggunakan libvirt. Beberapa protocol yang perlu di perhatikan dalam hal ini:

- QMP merupakan protokol berbasis JSON yang memungkinkan aplikasi—seperti libvirt—untuk berkomunikasi dengan instans QEMU yang sedang berjalan. Ada beberapa cara untuk mengakses monitor QEMU menggunakan perintah QMP. 

- RPC (Remote Procedure Call ) digunakan untuk secara seragam memanggil prosedur (fungsi) pada Remote machine. (Biasanya juga dapat digunakan di antara proses pada mesin yang sama.)

Alur kerja:


dalam sebuah hardware/host ketika mau menjalankan KVM (kernel) di mana menggunakan package qemu (machine emulator) yang di dalam nya terdapat beberapa VM, akan di dukung oleh Libvirt (API), nah dengan adanya libvirt tersebut user bisa mengakses sebuah VM salah satunnya bisa melalui virt-manager (GUI), virsh dan virt install (CLI).

 

tampilan qemu di virtual manager (virt-man)

 

Refrensi :
kernel,  libvirt,  kvm,  SUSE virtualization

Related Posts

Post a Comment