Kategori
General HCIA CC Huawei Cloud

KVM vs Fusion Compute

KVM (Kernel based Virtual Machine)

KVM adalah solusi full virtualisasi Tipe-II, merupakan modul kernel Linux. Mesin fisik dengan modul kernel Linux yang diinstal dapat berfungsi sebagai hypervisor, yang tidak memengaruhi aplikasi lain yang berjalan di OS Linux. Setiap VM adalah satu atau lebih proses. Kita dapat menjalankan perintah apapun, termasuk kill untuk mematikan proses.

Types of Compute Virtualization

Setelah modul KVM diinstal di OS Linux, ada tiga mode yang dapat dijalankan yaitu:

  1. Guest Mode : VM, termasuk CPU, memori, dan disknya, berjalan dalam mode CPU terbatas.
  2. User Mode : Quick Emulator (QEMU) biasanya berjalan dalam mode ini. QEMU mengemulasi permintaan I/O (Input/Output).
  3. Kernel Mode : Dalam mode ini, hardware dapat dioperasikan. Ketika Guest OS menjalankan operasi I/O atau instruksi yang diistimewakan, permintaan harus diajukan ke user mode, dan kemudian user mode memulai permintaan operasi hardware ke kernal mode lagi untuk mengoperasikan perangkat keras.

Sistem KVM terdiri dari tiga bagian: modul kernel KVM, QEMU, dan manajemen tools. Modul kernel KVM dan QEMU adalah komponen inti dari KVM, seperti yang ditunjukkan pada Gambar dibawah.

KVM architecture

Dan beberapa produk virtualisasi lainnya menggunakan arsitektur yang mirip seperti gambar diatas.

Modul kernel KVM adalah inti dari VM KVM. Modul ini menginisialisasi perangkat keras CPU, mengaktifkan mode virtualisasi, menjalankan guest machine dalam mode VM, dan mendukung jalannya virtual client.

KVM terdiri dari dua modul kernel, common module (kvm.ko) dan processor specific module (kvm-intel.ko atau kvm-amd.ko). kvm.ko mengimplementasikan fungsi virtualisasi. Dengan sendirinya, KVM tidak melakukan emulasi apapun. Sebaliknya, ini memperlihatkan interface /dev/kvm, yang kemudian dapat digunakan oleh host ruang pengguna untuk membuat vCPU, mengalokasikan ruang alamat untuk memori virtual, membaca dan menulis register vCPU, dan menjalankan vCPU. kvm.ko hanya menyediakan virtualisasi CPU dan memori. Namun, VM memerlukan perangkat I/O lain seperti NIC dan hard disk selain CPU dan memori. QEMU diperlukan untuk mengimplementasikan fungsi virtualisasi lainnya. Oleh karena itu, modul kernel KVM dan QEMU membentuk teknologi virtualisasi yang lengkap.

QEMU bukan bagian dari KVM. Itu adalah emulator virtualisasi open source universal yang menggunakan perangkat lunak murni untuk mengimplementasikan virtualisasi. Guest OS menganggap bahwa ia berinteraksi dengan perangkat keras. Sebenarnya, QEMU berinteraksi dengan perangkat keras. Ini berarti bahwa semua interaksi dengan perangkat keras harus melewati QEMU. Oleh karena itu, kinerja simulasi yang disampaikan oleh QEMU rendah. QEMU mampu mensimulasikan CPU dan memori. Di KVM, hanya QEMU yang digunakan untuk mensimulasikan perangkat I/O. Pengembang KVM merekonstruksi QEMU untuk membuat QEMU-KVM.

Di QEMU-KVM, KVM berjalan di ruang kernel, dan QEMU berjalan di ruang pengguna. Ketika OS tamu mengeluarkan instruksi, instruksi terkait CPU dan memori memanggil antarmuka /dev/kvm melalui /ioctl di QEMU-KVM. Dengan cara ini, instruksi dikirim ke modul kernel. Dari perspektif QEMU, ini dilakukan untuk mempercepat virtualisasi. Operasi I/O lainnya diimplementasikan oleh bagian QEMU di QEMU-KVM. KVM dan QEMU membentuk teknologi virtualisasi lengkap.

Selain virtualisasi berbagai perangkat, QEMU-KVM menyediakan alat asli untuk membuat, memodifikasi, dan menghapus VM. Namun, Libvirt adalah alat dan API yang paling banyak digunakan untuk mengelola VM KVM.
Libvirt adalah proyek sumber terbuka dan merupakan alat manajemen yang kuat. Ia mampu mengelola platform virtualisasi seperti KVM, Xen, VMware, dan Hyper-V. Libvirt adalah API yang dikembangkan menggunakan bahasa C. API dikembangkan menggunakan bahasa lain, seperti Java, Python, dan Perl, dapat memanggil Libvirt API untuk mengelola platform virtualisasi. Libvirt digunakan oleh banyak aplikasi. Selain set perintah virsh, Virt-manager, Virt-viewer, dan Virt-install dapat mengelola VM KVM melalui Libvirt.

Dalam komputasi awan, ada berbagai hypervisor. Setiap hypervisor memiliki alat manajemennya sendiri, dan parameternya rumit dan sulit digunakan. Hypervisor tidak terpadu, dan tidak ada antarmuka pemrograman terpadu untuk mengelolanya, yang sangat mempengaruhi lingkungan komputasi awan. Dengan Libvirt, ia dapat terhubung ke berbagai hypervisor, seperti KVM dan Xen, dan menyediakan API dalam berbagai bahasa. Libvirt berfungsi sebagai lapisan tengah antara alat manajemen dan hypervisor dan sepenuhnya transparan bagi pengguna lapisan atas.

QEMU adalah perangkat lunak emulasi untuk mengimplementasikan virtualisasi I/O. Ini memiliki kinerja emulasi yang buruk. Misalnya, jika QEMU digunakan untuk mensimulasikan NIC dari VM Windows, kecepatan NIC yang ditampilkan pada sistem hanya 100 Mbit/dtk. Itu tidak dapat memenuhi persyaratan tingkat NIC yang tinggi dari beberapa aplikasi. Sebuah teknologi baru, Virtio, diperkenalkan. Dalam virtualisasi Windows, menggunakan Virtio dapat meningkatkan kecepatan NIC dari VM Windows hingga 10 Gbit/dtk.

Mari kita lihat bagaimana operasi disk VM dilakukan tanpa Virtio.

Default I/O operation process
  1. Perangkat disk VM memulai permintaan operasi I/O.
  2. I/O Trap Code (I/O capture program) dalam modul KVM menangkap permintaan operasi I/O, melakukan pemrosesan yang sesuai, dan kemudian memasukkan permintaan yang diproses ke halaman bersama I/O.
  3. Modul KVM memberi tahu QEMU bahwa permintaan operasi I/O baru ditempatkan di halaman bersama.
  4. Setelah menerima pemberitahuan, QEMU memperoleh informasi rinci tentang permintaan operasi I/O dari halaman bersama.
  5. QEMU mensimulasikan permintaan dan memanggil driver perangkat yang berjalan dalam mode kernel berdasarkan informasi permintaan untuk melakukan operasi I/O yang sebenarnya.
  6. Operasi I/O kemudian dilakukan pada perangkat keras fisik melalui driver perangkat.
  7. QEMU mengembalikan hasil operasi ke halaman bersama dan memberi tahu modul KVM bahwa operasi I/O selesai.
  8. I/O Trap Code membaca hasil yang dikembalikan dari halaman yang dibagikan.
  9. I/O Trap Code mengembalikan hasil operasi ke VM.
  10. VM mengembalikan hasil ke aplikasi yang memulai operasi.

Jika Virtio digunakan, prosedurnya adalah sebagai berikut:

I/O operation process with Virtio used
  1. VM memulai permintaan operasi I/O.
  2. Permintaan operasi I/O tidak ditangkap oleh program penangkapan I/O. Sebaliknya, permintaan disimpan dalam buffer cincin antara driver frontend dan backend. Pada saat yang sama, modul KVM memberi tahu driver backend.
  3. QEMU memperoleh informasi rinci tentang permintaan operasi dari buffer cincin.
  4. Driver backend secara langsung memanggil driver perangkat fisik yang sebenarnya untuk melakukan operasi I/O.
  5. Operasi diselesaikan oleh driver perangkat.
  6. QEMU mengembalikan hasil operasi ke buffer ring, dan modul KVM memberi tahu driver frontend.
  7. Driver frontend memperoleh hasil operasi dari buffer ring.
  8. Driver frontend mengembalikan hasil ke aplikasi yang memulai operasi.

Kelebihan Virtio adalah sebagai berikut:

Menghemat sumber daya perangkat keras yang diperlukan untuk emulasi QEMU.
Mengurangi jumlah jalur permintaan I/O dan meningkatkan kinerja perangkat virtualisasi.

Virtio memiliki beberapa kelemahan. Misalnya, beberapa perangkat lama atau tidak umum tidak dapat menggunakan Virtio tetapi hanya dapat menggunakan QEMU.

FusionCompute

Suite virtualisasi Huawei FusionSphere adalah solusi virtualisasi terkemuka. Solusi ini secara signifikan meningkatkan efisiensi infrastruktur pusat data dan memberikan manfaat berikut bagi pelanggan:

  • Meningkatkan pemanfaatan sumber daya infrastruktur pusat data.
  • Mempercepat peluncuran layanan secara signifikan.
  • Secara substansial mengurangi konsumsi daya di pusat data.
  • Menyediakan pemulihan kesalahan otomatis yang cepat untuk layanan, mengurangi biaya pusat data, dan meningkatkan waktu proses sistem dengan memanfaatkan ketersediaan tinggi dan kemampuan pemulihan yang kuat dari infrastruktur virtual.

Suite virtualisasi FusionSphere memvirtualisasikan sumber daya perangkat keras menggunakan perangkat lunak virtualisasi yang digunakan pada server fisik, sehingga satu server fisik dapat berfungsi sebagai beberapa server virtual. Ini mengkonsolidasikan VM yang ada pada server beban ringan untuk memaksimalkan sumber daya pemanfaatan dan rilis lebih banyak server untuk membawa aplikasi dan solusi baru.

FusionCompute adalah perangkat lunak OS cloud dalam rangkaian virtualisasi FusionSphere dan merupakan komponen wajib. Ini memvirtualisasikan sumber daya perangkat keras dan secara terpusat mengelola sumber daya virtual, sumber daya layanan, dan sumber daya pengguna. Ini memvirtualisasikan komputasi, penyimpanan, dan sumber daya jaringan menggunakan komputasi virtual, penyimpanan virtual, dan teknologi jaringan virtual. Ini secara terpusat menjadwalkan dan mengelola sumber daya virtual melalui antarmuka terpadu. FusionCompute memberikan keamanan dan keandalan sistem yang tinggi serta mengurangi OPEX, membantu operator dan perusahaan membangun pusat data yang aman, ramah lingkungan, dan hemat energi.

FusionCompute terdiri dari dua bagian: Computing Node Agent (CNA) dan Virtual Resource Manager (VRM). Selain CNA dan VRM, Unified Virtualization Platform (UVP) adalah platform virtualisasi terpadu yang dikembangkan oleh Huawei. UVP adalah hypervisor, seperti KVM dan Xen. Hypervisor FusionCompute mengadopsi arsitektur bare-metal dan dapat berjalan langsung di server untuk memvirtualisasikan sumber daya perangkat keras. Dengan arsitektur bare-metal, FusionCompute menghadirkan VM dengan kinerja, keandalan, dan skalabilitas hampir di tingkat server. Arsitektur FusionCompute mirip dengan KVM. VRM berfungsi sebagai alat manajemen KVM. Administrator dan pengguna umum dapat mengelola dan menggunakan FusionCompute di portal VRM berbasis GUI. VRM didasarkan pada OS Linux. Karena itu, banyak perintah Linux dapat digunakan setelah Anda masuk ke VRM.

VRM menyediakan fungsi-fungsi berikut:

  • Mengelola sumber daya penyimpanan blok dalam sebuah cluster.
  • Mengelola sumber daya jaringan, seperti alamat IP dan ID jaringan area lokal virtual (VLAN), dalam sebuah cluster dan mengalokasikan alamat IP ke VM.
  • Mengelola siklus hidup VM dalam sebuah cluster dan mendistribusikan serta memigrasikan VM di seluruh node komputasi.
  • Menskalakan sumber daya secara dinamis dalam sebuah cluster.
  • Menerapkan manajemen terpusat dari sumber daya virtual dan data pengguna dan menyediakan komputasi elastis, penyimpanan, dan layanan alamat IP.
  • Memungkinkan personel O&M mengakses FusionCompute dari jarak jauh melalui UI web terpadu untuk melakukan O&M di seluruh sistem, seperti pemantauan sumber daya, manajemen sumber daya, dan kueri laporan sumber daya.

CNA mirip dengan modul QEMU+KVM di KVM. CNA menyediakan fungsi virtualisasi. Ini digunakan dalam kluster untuk memvirtualisasikan komputasi, penyimpanan, dan sumber daya jaringan di kluster ke dalam kumpulan sumber daya untuk digunakan pengguna. CNA juga didasarkan pada OS Linux.

CNA menyediakan fungsi-fungsi berikut:

  • Menyediakan fungsi komputasi virtual.
  • Mengelola VM yang berjalan pada node komputasi.
  • Mengelola komputasi, penyimpanan, dan sumber daya jaringan pada node komputasi.

CNA mengelola VM dan sumber daya di node lokal. VRM mengelola cluster atau sumber daya di kumpulan sumber daya. Saat pengguna memodifikasi VM atau melakukan operasi siklus hidup VM lainnya di VRM, VRM mengirimkan perintah ke node CNA. Kemudian, node CNA menjalankan perintah. Setelah operasi selesai, CNA mengembalikan hasilnya ke VRM, dan VRM mencatat hasilnya dalam database-nya. Oleh karena itu, jangan ubah VM atau sumber daya lainnya di CNA. Jika tidak, catatan dalam database VRM mungkin tidak konsisten dengan operasi yang sebenarnya.

Selain produk perangkat keras Huawei, FusionCompute juga mendukung server lain berdasarkan platform perangkat keras x86 dan kompatibel dengan berbagai jenis perangkat penyimpanan, memungkinkan perusahaan secara fleksibel memilih perangkat yang sesuai. Sebuah cluster mendukung maksimum 64 host dan 3000 VM. FusionCompute menyediakan fungsi manajemen hak yang komprehensif, memungkinkan pengguna yang berwenang untuk mengelola sumber daya sistem berdasarkan peran khusus mereka dan
izin yang diberikan.

Setelah instalasi selesai berdasarkan manual percobaan, kami akan memverifikasi item berikut:

  1. Apakah FusionCompute 6.3 dikembangkan berdasarkan KVM?
  2. Jika ya, apakah menggunakan QEMU dan Libvirt?

Ref :

HCIA Cloud Computing