Kategori
General HCIA CC Huawei Cloud

Virtualisasi

Cloud computing 1.0 berfokus pada virtualisasi yang saat ini telah menjadi dasar dari komputasi awan. Virtualisasi memisahkan aplikasi dari sistem operasi (OS) dan perangkat keras yang mendasarinya dalam sistem TI tradisional, dan komputasi awan bergantung pada pemisahan itu. Sementara virtualisasi dan komputasi awan keduanya dapat digunakan untuk membangun lingkungan runtime yang sangat tersedia dan andal untuk aplikasi, keduanya berbeda dalam banyak hal. Perbedaan yang paling jelas antara keduanya adalah bahwa virtualisasi hanya menyediakan model Infrastruktur sebagai Layanan (IaaS), sedangkan komputasi awan menyediakan model layanan lain selain IaaS. Virtualisasi adalah dasar dari komputasi awan. Penting bagi kita untuk mempelajari teknologi ini sebelum mempelajari teknologi cloud. Virtualisasi memungkinkan OS dan aplikasi berjalan di mesin virtual (VM). Bab ini menjelaskan cara membuat VM dan cara kerja virtualisasi.

Pengenalan Virtualisasi

Virtualisasi adalah teknologi yang mensimulasikan fungsionalitas perangkat keras dan membuat beberapa VM di server fisik. Umumnya, aplikasi perlu dijalankan di dalam OS, dan hanya satu OS yang dapat berjalan di server fisik pada satu waktu. Virtualisasi memungkinkan VM yang berada di server fisik yang sama untuk menjalankan OS independen. Dengan cara ini, beberapa OS dapat berjalan secara bersamaan di server fisik yang sama.

Inti dari virtualisasi adalah memisahkan perangkat lunak dari perangkat keras dengan mengubah perangkat “fisik” menjadi folder atau file “logis”.

Sebelum virtualisasi, kita dapat menemukan perangkat fisik yang menjalankan aplikasi kita di lingkungan dunia nyata menggunakan daftar peralatan atau daftar konfigurasi fisik. Sebagai contoh, pada Gambar 2-1, kita dapat melihat beberapa komponen server fisik, seperti CPU, memori, hard disk, dan adaptor jaringan.

Virtualisasi mengubah server fisik menjadi folder atau file logis. Folder atau file ini dapat dibagi menjadi dua bagian: yang menyimpan informasi konfigurasi VM, dan yang menyimpan data pengguna. Berikut ini menunjukkan bagian dari file konfigurasi VM KVM. Kita dapat melihat nama VM dan pengaturan CPU, memori, hard disk, dan jaringannya.

Tanpa virtualisasi, menjalankan beberapa program aplikasi utama dalam sistem operasi yang sama dari server fisik dapat menyebabkan konflik runtime dan kemacetan kinerja. Menjalankan hanya satu aplikasi pada server khusus dapat memecahkan masalah ini tetapi dengan mudah akan menyebabkan pemanfaatan sumber daya yang rendah.

Dengan virtualisasi, beberapa VM dapat berjalan pada satu server fisik, dan setiap VM dapat menjalankan OS independen. Ini meningkatkan pemanfaatan sumber daya. Selain itu, virtualisasi membebaskan aplikasi dari belenggu ke satu server dengan memungkinkan migrasi VM dinamis di seluruh cluster tanpa memengaruhi kontinuitas layanan atau pengalaman pengguna. Migrasi VM dinamis memungkinkan fitur-fitur canggih seperti ketersediaan tinggi (HA), penjadwalan sumber daya dinamis (DRS), dan manajemen daya terdistribusi (DPM), dan membawa berbagai manfaat untuk pusat data perusahaan, seperti portabilitas beban kerja, konsolidasi server, toleransi kesalahan , dan menurunkan OPEX dan biaya manajemen.

Sejarah Virtualisasi

Virtualisasi server fisik menjadi beberapa VM bukanlah teknologi baru di industri TI. Bahkan, pada awal 1964, “Big Blue” IBM mulai memvirtualisasikan komputer mainframe. Pada tahun 1961, Mesin IBM709 mewujudkan sistem pembagian waktu. CPU dibagi menjadi beberapa bagian waktu yang sangat singkat (1/100 detik), masing-masing melakukan tugas yang berbeda. Dengan mengumpulkan potongan waktu ini, Anda dapat memvirtualisasikan atau menyamarkan satu CPU sebagai beberapa CPU virtual, dan membuat setiap CPU virtual tampak berjalan secara bersamaan. Ini adalah prototipe VM. Mesin system360 yang lebih baru semuanya mendukung sistem pembagian waktu.

Pada tahun 1972, IBM secara resmi menamai CTSS dari mesin system370 sebagai VM.

Pada tahun 1990, IBM memperkenalkan mesin system390, yang mendukung partisi logis. Sebuah CPU dibagi menjadi beberapa bagian (hingga sepuluh salinan), dan masing-masing CPU independen. Artinya, CPU afisik dapat secara logis dibagi menjadi sepuluh CPU.

Sampai IBM menempatkan sistem time-sharing open source, PC pribadi akhirnya datang ke awal virtualisasi x86. Pada tahun 1999, VMware memperkenalkan produk virtualisasi x86 pertama.

Sementara VMware mengembangkan produk virtualisasinya sendiri, Lan Pratt dan Keir Fraser dari University of Cambridge di London mengembangkan Xen VM dalam proyek penelitian yang disebut Xenoserver pada 1990-an. Sebagai inti dari Xenoserver, VM Xen mengelola dan mengalokasikan sumber daya sistem dan menyediakan fungsi statistik yang diperlukan. Pada masa itu, prosesor x86 tidak memiliki dukungan perangkat keras untuk teknologi virtualisasi dan oleh karena itu Xen diperkenalkan berdasarkan teknologi quasi-virtualisasi. Untuk mendukung menjalankan beberapa VM, Xen memerlukan kernel yang dimodifikasi. Xen secara resmi open source pada tahun 2002 untuk memungkinkan komunitas pengembang global untuk berkontribusi dan meningkatkan produk. Xen 1.0 secara resmi dirilis diikuti beberapa waktu kemudian oleh Xen 2.0. Adopsi hypervisor Xen secara luas terjadi ketika Red Hat, Novell, dan Sun semuanya menambahkan hypervisor Xen sebagai solusi pilihan virtualisasi mereka. Pada tahun 2004, para insinyur Intel mulai mengembangkan virtualisasi perangkat keras dengan Xen untuk menyediakan dukungan perangkat lunak bagi prosesor generasi berikutnya. Pada tahun 2005, Xen 3.0 secara resmi dirilis, yang mendukung teknologi VT Intel dan arsitektur IA64, memungkinkan Xen VM untuk menjalankan sistem operasi yang tidak dimodifikasi.

Selain Xen, Mesin Virtual berbasis Kernel (KVM) adalah teknologi virtualisasi terkenal lainnya, yang awalnya dikembangkan oleh startup Israel Qumranet. KVM digunakan sebagai VM produk Infrastruktur Desktop Virtual (VDI) mereka. Untuk menyederhanakan pengembangan, pengembang KVM tidak memilih untuk menulis hypervisor baru. Sebagai gantinya, mereka memuat modul baru berdasarkan kernel Linux untuk membuat kernel Linux menjadi hypervisor. Untuk detail tentang hypervisor, lihat 2.1.3 “Tipe Virtualisasi Hitung.” Pada Oktober 2006, setelah menyelesaikan fungsi dasar, migrasi dinamis, dan optimalisasi fungsi dan kinerja utama, Qumranet secara resmi mengumumkan kelahiran KVM. Juga pada bulan Oktober 2006, kode sumber modul KVM secara resmi diterima ke dalam kernel Linux dan menjadi bagian dari kode sumber kernel. Pada tanggal 4 September 2008, Qumranet diakuisisi oleh Red Hat, Inc. senilai $107 juta dalam bentuk tunai. Red Hat adalah vendor distribusi Linux yang terkenal dan kontributor terkemuka untuk komunitas kernel. Akuisisi ini berarti Red Hat menjadi pemilik baru proyek open source KVM. Setelah akuisisi, Red Hat mengembangkan solusi VM-nya sendiri dan mulai mengganti Xen dengan KVM dalam produknya sendiri. Pada November 2010, Red Hat meluncurkan Red Hat Enterprise Linux 6 (RHEL 6), yang mengintegrasikan VM KVM terbaru dan menghapus VM Xen yang terintegrasi dalam seri RHEL 5.x.

Dari tahun 2006 hingga 2010, vendor TI tradisional meluncurkan produk virtualisasi mereka sendiri. Pada tahun 2007, HP meluncurkan VM Integritas, dan Microsoft menambahkan Hyper-V ke Windows Server 2008 R2.

Ketika virtualisasi x86 menjadi semakin populer, teknologi virtualisasi ringan juga sedang dikembangkan, yaitu teknologi kontainer. Konsep container dimulai pada tahun 1979 dengan chroot UNIX. Pada tahun 2008, setelah bertahun-tahun pengembangan, Linux diluncurkan LXC. LXC adalah singkatan dari LinuX Containers dan merupakan implementasi pertama, terlengkap dari container manager Linux. Itu diimplementasikan menggunakan cgroups dan ruang nama Linux. LXC dikirimkan di perpustakaan liblxc dan menyediakan binding bahasa untuk API di Python3, Python2, Lua, Go, Ruby, dan Haskell. Kontras dengan teknologi container lainnya LXC bekerja pada kernel vanilla Linux tanpa memerlukan patch apapun. Hari ini, proyek LXC disponsori oleh Canonical Ltd. dan diselenggarakan di sini. Pada tahun 2013, proyek kontainer Docker dikembangkan. Docker juga menggunakan LXC pada tahap awal dan kemudian mengganti LXC dengan pustakanya sendiri yang disebut libcontainer. Tidak seperti platform container lainnya, Docker memperkenalkan seluruh ekosistem untuk mengelola container. Ini termasuk model image container berlapis yang sangat efisien, registry container global dan lokal, REST API yang bersih, CLI, dll. Pada tahap selanjutnya, Docker juga mengambil inisiatif untuk mengimplementasikan solusi manajemen cluster container yang disebut Docker Swarm. Pada tahun 2014, Rocket diluncurkan, yang merupakan inisiatif yang sangat mirip dengan Docker yang dimulai oleh CoreOS untuk memperbaiki beberapa kelemahan yang mereka temukan di Docker. CoreOS telah menyebutkan bahwa tujuan mereka adalah untuk menyediakan persyaratan keamanan dan produksi yang lebih ketat daripada Docker. Lebih penting lagi, ini diimplementasikan pada spesifikasi App Container menjadi standar yang lebih terbuka.

Tipe Virtualisasi

Sebelum memperkenalkan jenis virtualisasi komputasi, mari pelajari beberapa istilah yang umum digunakan dalam virtualisasi.

Pertama, mesin host adalah komputer fisik yang dapat menjalankan beberapa VM, dan OS yang diinstal dan dijalankan pada mesin host adalah OS host. VM yang berjalan pada mesin host disebut mesin tamu. OS yang diinstal pada VM disebut sebagai OS tamu. Inti dari virtualisasi
teknologi antara host OS dan guest OS adalah hypervisor, yang kadang-kadang disebut Virtual Machine Manager (VMM).

Dalam arsitektur fisik, sebuah host hanya memiliki dua lapisan dari bawah ke atas: perangkat keras (mesin host) dan OS host. Aplikasi diinstal di OS host. Dalam arsitektur virtualisasi, sebuah host memiliki lebih banyak lapisan dari bawah ke atas: perangkat keras (mesin host), hypervisor, mesin tamu, dan OS tamu. Aplikasi diinstal di OS tamu. Beberapa mesin tamu dapat dibuat dan dijalankan pada satu mesin host.

Ada dua tipe hypervisor: Tipe 1 dan Tipe 2. Banyak orang mengkategorikan container sebagai tipe ketiga dari hypervisor. Karena container tidak dibahas dalam kursus ini, kami hanya akan fokus pada hypervisor Tipe 1 dan 2.

Hypervisor Tipe 1 juga disebut hypervisor bare-metal. Jenis hypervisor ini memiliki akses langsung ke sumber daya perangkat keras dan tidak perlu mengakses OS host. Hypervisor dapat berupa: dilihat sebagai OS host yang disesuaikan, yang hanya berfungsi sebagai VMM dan tidak menjalankan aplikasi lain. Hypervisor menyediakan fungsi dasar berikut: Mengidentifikasi, menangkap, dan merespons instruksi CPU yang diistimewakan atau instruksi proteksi yang dikirim oleh VM (instruksi privilese dan instruksi proteksi akan dijelaskan di bagian virtualisasi CPU); menjadwalkan antrian VM dan mengembalikan hasil pemrosesan perangkat keras fisik ke VM terkait. Dengan kata lain, hypervisor mengelola semua sumber daya dan lingkungan virtual. VMM dapat dilihat sebagai OS lengkap yang lahir untuk virtualisasi untuk mengontrol semua sumber daya (CPU, memori, dan perangkat I/O). VMM juga menyediakan VM untuk menjalankan OS tamu. Oleh karena itu, VMM juga mendukung pembuatan dan pengelolaan lingkungan virtual. Produk virtualisasi yang menggunakan hypervisor Tipe 1 termasuk VMWare ESX Server, Citrix XenServer, dan FusionCompute.

Dalam virtualisasi Tipe 1, hypervisor didedikasikan untuk mengubah sumber daya host menjadi sumber daya virtual untuk digunakan oleh OS tamu. OS tamu berjalan sebagai proses di host. Oleh karena itu, hypervisor semacam itu disebut hypervisor bare-metal.

Hypervisor tipe 1 memiliki kelebihan dan kekurangan sebagai berikut:

  • Keuntungan: VM dapat menjalankan berbagai jenis OS tamu dan aplikasi yang tidak bergantung pada OS host.
  • Kekurangan: Kernel dari lapisan virtualisasi sulit untuk dikembangkan.

Hypervisor Tipe 2 juga disebut hypervisor yang dihosting. Sumber daya fisik dikelola oleh OS host (misalnya, Windows atau Linux). VMM menyediakan layanan dan fungsi virtualisasi sebagai aplikasi umum di OS yang mendasarinya (misalnya, Windows atau Linux). VM dapat dibuat menggunakan VMM untuk berbagi sumber daya server yang mendasarinya. VMM memperoleh sumber daya dengan memanggil layanan OS host untuk memvirtualisasikan CPU, memori, dan perangkat I/O. Setelah VM dibuat, VMM biasanya menjadwalkan VM sebagai proses dari OS host. Produk virtualisasi yang menggunakan hypervisor Tipe 2 termasuk VMware Workstation dan Virtual PC.

Hypervisor tipe 2 memiliki kelebihan dan kekurangan sebagai berikut:

  • Keuntungan: Mudah diterapkan.
  • Kekurangan: Hanya aplikasi yang didukung oleh OS host yang dapat diinstal dan digunakan. Overhead kinerja tinggi.

Tidak seperti hypervisor Tipe 1, hypervisor Tipe 2 hanya merupakan program di OS host. Semua sumber daya perangkat keras dikelola oleh OS host.

Baik hypervisor Tipe 1 dan Tipe 2 memiliki fitur partisi, isolasi, enkapsulasi, dan kemandirian perangkat keras.

  • Partitioning: menunjukkan kemampuan VMM dalam mengalokasikan sumber daya server ke beberapa VM. Setiap VM dapat menjalankan OS independen (sama atau berbeda dari OS yang berjalan pada VM lain di server yang sama) sehingga beberapa aplikasi dapat hidup berdampingan di satu server.
    Setiap OS memperoleh akses hanya ke perangkat keras virtualnya sendiri (termasuk NIC virtual, CPU virtual, dan memori virtual) yang disediakan oleh VMM. Fitur partisi memecahkan masalah berikut:
    • Kuota sumber daya dialokasikan ke setiap partisi untuk mencegah penggunaan sumber daya yang berlebihan oleh virtualisasi.
    • Setiap VM memiliki OS independen.
  • Isolation: Beberapa VM yang dibuat dalam partisi secara logis diisolasi satu sama lain. Fitur isolasi memecahkan masalah berikut:
    • Bahkan jika satu VM mogok karena kegagalan OS, kerusakan aplikasi, atau kegagalan driver, itu tidak akan memengaruhi yang lain di server yang sama.
    • Tampaknya setiap VM ditempatkan di mesin fisik independen. Jika VM terinfeksi worm atau virus, worm dan virus diisolasi dari VM lain.
      Fitur isolasi memungkinkan Anda mengontrol sumber daya untuk menerapkan isolasi kinerja. Artinya, Anda dapat menentukan penggunaan sumber daya minimum dan maksimum untuk setiap VM untuk mencegah VM secara eksklusif menempati semua sumber daya dalam sistem. Beberapa beban kerja, aplikasi, atau OS dapat berjalan pada satu mesin, tanpa menyebabkan masalah seperti konflik aplikasi dan konflik DLL yang disebutkan dalam diskusi kami tentang keterbatasan arsitektur x86 tradisional.
  • Encapsulation: Setiap VM disimpan sebagai sekelompok file yang tidak bergantung pada perangkat keras, termasuk konfigurasi perangkat keras, konfigurasi BIOS, status memori, status disk, dan status CPU. Anda dapat menyalin, menyimpan, dan memindahkan VM dengan hanya menyalin beberapa file. Mari kita gunakan VMware Workstation sebagai contoh. Anda dapat menyalin satu set file VM ke komputer lain tempat VMware Workstation diinstal dan mulai ulang VM. Enkapsulasi adalah fitur terpenting untuk migrasi dan virtualisasi VM. Ini karena mengenkapsulasi VM sebagai kumpulan file yang tidak bergantung pada perangkat keras memungkinkan migrasi VM dan hot swap.
  • Hardware Independence: Setelah VM dienkapsulasi ke dalam sekelompok file, VM sepenuhnya independen dari perangkat keras yang mendasarinya. Anda dapat memigrasikan VM dengan menyalin file perangkat VM, file konfigurasi, atau file disk ke host lain. Karena perangkat keras yang mendasari dilindungi oleh VMM yang berjalan di atasnya, migrasi dapat dilakukan berhasil selama VMM yang sama berjalan pada host target seperti pada host sumber, terlepas dari spesifikasi dan konfigurasi perangkat keras yang mendasarinya. Ini mirip dengan mengedit file Word dengan menggunakan Office 2007 di komputer A yang menjalankan sistem Windows 7. dan kemudian menyalin file Word ke komputer B yang menjalankan sistem Windows 10. Anda hanya perlu memeriksa apakah Office 2007 terinstal di komputer B dan tidak perlu memeriksa model CPU atau ukuran memori dari perangkat keras yang mendasarinya.

Ref :

  1. HCIA Cloud Computing