GNU/Linux >> Belajar Linux >  >> Linux

Pengantar Virtualisasi:Panduan Komprehensif untuk Pemula

Virtualisasi di zaman sekarang memainkan peran penting. Dari penggunaan desktop tingkat konsumen hingga layanan cloud tingkat perusahaan, ada berbagai penerapan.

Panduan ini akan membantu Anda memulai virtualisasi secara komprehensif. Ini akan memberi Anda pengetahuan dasar yang cukup bagi Anda sebagai pelajar, insinyur, atau bahkan sebagai CTO untuk memahami berbagai jenis virtualisasi dan cara penggunaannya dalam industri saat ini.

Ini adalah artikel besar jadi izinkan saya meringkas apa yang akan saya bicarakan di dalamnya.

  • Bagian pertama memperkenalkan OS Host, Mesin Virtual (VM), dan Hypervisor
  • Bagian kedua menjelaskan komponen penting virtualisasi:CPU, RAM, Jaringan, dan Penyimpanan
  • Bagian ketiga menjelaskan manfaat virtualisasi

Mari kita mulai!

Mesin Virtual, Host, dan Hypervisor

Untuk memiliki pemahaman yang lebih baik tentang Mesin Virtual, Host, dan Hypervisor, Anda harus mulai dengan dasar-dasar perangkat keras.

Pertama, Anda memerlukan mesin/server fisik yang menyertakan komponen berikut yang membentuk keseluruhan sistem:

  • Unit Catu Daya (PSU)
  • Motherboard
  • Unit Pemrosesan Pusat (CPU)
  • Memori Akses Acak (RAM)
  • Kartu Antarmuka Jaringan (NIC)
  • Penyimpanan - Hard Disk Drive (HDD) atau Solid State Drive (SSD)

Semua komponen ini dirakit bersama yang disinkronkan sebagai satu unit komputasi menjadi komputer pribadi (PC) atau server Anda sendiri. Tunggu, server pribadi terdengar menarik!

Apa itu Sistem Operasi (OS)?

Sistem operasi adalah perangkat lunak sistem yang bertindak sebagai antarmuka antara pengguna dan komputer untuk menjalankan berbagai aplikasi, dengan atau tanpa antarmuka pengguna grafis. Salah satu aplikasi ini dapat berupa program virtualisasi khusus seperti VirtualBox, misalnya.

Apa itu Hypervisor?

Hypervisor adalah perangkat lunak sistem yang bertindak sebagai perantara antara perangkat keras komputer dan mesin virtual. Ini bertanggung jawab untuk secara efektif mengalokasikan dan memanfaatkan sumber daya perangkat keras untuk digunakan oleh mesin virtual masing-masing, yang bekerja secara individual pada host fisik. Untuk alasan ini, hypervisor juga disebut manajer mesin virtual.

Perangkat lunak sistem ini bertindak sebagai antarmuka antara pengguna dan komputer dengan satu-satunya tujuan virtualisasi, dengan atau tanpa antarmuka pengguna grafis. Contoh untuk salah satu hypervisor tersebut adalah VMware FXI.

Sebuah hypervisor terdiri dari tiga modul utama:

Pengirim — Ini merupakan titik masuk monitor dan merutekan ulang instruksi yang dikeluarkan oleh mesin virtual instance ke modul pengalokasi atau penerjemah yang dijelaskan di bawah.

Alokasi — Setiap kali mesin virtual mencoba menjalankan instruksi yang mengakibatkan perubahan sumber daya mesin terkait, pengalokasi dipanggil oleh petugas operator, yang kemudian mengalokasikan sumber daya sistem untuk disediakan ke mesin virtual.

Penerjemah — Ini terdiri dari rutinitas interpreter yang dieksekusi setiap kali mesin virtual mengeksekusi instruksi yang diistimewakan. Ini juga dipanggil oleh petugas operator.

Anda harus menginstal sistem operasi atau hypervisor yang bertindak sebagai antarmuka bagi Anda untuk berinteraksi dengan server/komputer host fisik.

Mari kita asumsikan itu adalah Server Ubuntu tempat Anda dapat meng-host atau menjalankan berbagai aplikasi. Aplikasi ini di server berjalan di dalam sistem operasi.

Dengan memanfaatkan perangkat keras, Ubuntu dapat mengontrol mereka dan jumlah sumber daya yang mereka akses.

Oleh karena itu, sistem operasi atau hypervisor menjadi perantara antara aplikasi dan perangkat keras itu sendiri.

Apa itu Mesin Virtual (VM)?

Mesin virtual adalah perangkat lunak yang mengemulasi semua fungsi server fisik dan berjalan di atas sistem operasi host atau hypervisor.

Oleh karena itu, Anda tidak akan menjalankan aplikasi pada sistem fisik secara langsung. Mereka akan dijalankan pada mesin virtual, masing-masing dengan sistem operasi independen mereka sendiri. Dengan cara ini, mesin virtual dapat menjalankan sistem operasi yang berbeda secara individual dalam sistem fisik yang sama.

Semua VM tersebut dapat berbagi perangkat keras fisik yang sama dan bahkan berinteraksi satu sama lain melalui jaringan virtual, seperti halnya komputer fisik.

Anda dapat memiliki banyak mesin virtual, masing-masing dengan sistem operasi independennya sendiri, berbagi dan menggunakan komponen fisik yang sama seperti yang disebutkan sebelumnya.

Hypervisor, atau perangkat lunak virtualisasi yang berjalan di sistem operasi sebenarnya adalah yang mengendalikan sumber daya fisik.

Hypervisor memiliki akses langsung ke perangkat keras fisik dan mengontrol sumber daya mana yang dapat diakses oleh mesin virtual.

Itu termasuk:

  • Berapa banyak memori (RAM) yang dialokasikan
  • Berapa banyak akses CPU fisik yang mereka dapatkan
  • Bagaimana mereka mengakses jaringannya
  • Bagaimana mereka mengakses penyimpanannya

Karena semakin banyak mesin virtual yang dibuat pada perangkat lunak virtualisasi OS (mari kita kurangi menjadi OSVS) atau Hypervisor, mereka juga berbagi kumpulan sumber daya fisik yang sama persis.

Oleh karena itu, OSVS atau Hypervisor mengontrol:

  • Bagaimana sumber daya dibagikan ke mesin virtual individual
  • Bagaimana sumber daya disajikan ke mesin virtual individual

Jenis Hypervisor

Sekarang mari kita lihat jenis hypervisor dan perbedaannya satu sama lain.

Hypervisor Tipe 1

Hypervisor yang dapat diinstal secara asli dan dijalankan langsung pada host fisik disebut hypervisor Tipe 1.

Petunjuk utama

  • Sebuah hypervisor Tipe 1 dapat langsung diinstal pada sistem bare-metal atau host fisik.
  • Itu tidak memerlukan sistem operasi (OS) untuk diinstal atau tersedia terlebih dahulu, untuk menyebarkan dirinya sendiri di server.
  • Akses langsung ke CPU, Memori, Jaringan, Penyimpanan fisik.
  • Penggunaan perangkat keras lebih efisien, memberikan kinerja terbaik.
  • Keamanan yang lebih baik karena tidak adanya lapisan tambahan untuk akses perangkat keras.
  • Setiap hypervisor tipe 1 selalu membutuhkan mesin fisik khusus.
  • Dapat lebih mahal dan lebih cocok untuk solusi kelas perusahaan.
  • VMware ESXi, Citrix Hypervisor, dan Microsoft Hyper-V adalah beberapa contoh Hypervisor Tipe 1.

Hypervisor Tipe 2

Hypervisor yang tidak dapat diinstal secara asli dan memerlukan sistem operasi untuk berjalan pada host fisik disebut hypervisor Tipe 2.

Petunjuk utama

  • Hypervisor Tipe 2 tidak dapat langsung diinstal pada sistem bare-metal atau host fisik.
  • Ini membutuhkan sistem operasi yang harus diinstal atau tersedia terlebih dahulu, untuk menerapkan dirinya sendiri.
  • Akses tidak langsung ke CPU, Memori, Jaringan, Penyimpanan fisik.
  • Karena lapisan (OS) ekstra untuk mengakses sumber daya, penggunaan perangkat keras menjadi kurang efisien dan kinerjanya lambat.
  • Potensi risiko keamanan karena ketersediaan sistem operasi host.
  • Setiap hypervisor tipe 2 tidak memerlukan mesin fisik khusus. Jumlahnya bisa banyak dalam satu host.
  • Dapat menghemat biaya dan lebih cocok untuk solusi bisnis kecil.
  • VMware Workstation Player, VMware Workstation Pro, dan VirtualBox adalah beberapa contoh Hypervisor Tipe 2.

File Mesin Virtual dan status langsung

Sekarang mari kita memahami file yang membentuk mesin virtual kita dan bagaimana mereka memanfaatkan penyimpanan bersama.

Mesin virtual memanfaatkan memori, CPU, jaringan, dan perangkat keras penyimpanan dari host fisik kami. Bagaimana cara melakukannya?

Melalui hypervisor.

Ketika mesin virtual sedang berjalan, ia memiliki informasi tertentu dalam memori. Informasi ini adalah bagian dari status aktif VM.

Jadi VM sebenarnya beroperasi di host. Setiap kali Anda memutar video atau membuka browser web di VM, operasi runtime tersebut terjadi di memori di VM. Tapi ini sebenarnya semua terjadi pada host fisik. Ini adalah status langsung dari mesin virtual mana pun.

Status langsung mesin virtual memproses semua eksekusi runtime pada CPU, itulah sebabnya hal itu terjadi pada host.

Saat Anda membuka browser untuk memuat situs web, bandwidth jaringan dilalui melalui NIC yang juga merupakan bagian dari host fisik. Ini semua adalah bagian dari status langsung VM yang menggunakan adaptor penyimpanan untuk mengirim lalu lintas data ke perangkat penyimpanan. Sekali lagi, terjadi secara langsung di host.

Mesin virtual tidak memiliki hard disk fisik. Jika Anda menjalankan Linux pada mesin virtual, ia memerlukan kemampuan untuk membaca dan menulis data ke dan dari drive fisik.

Ini berarti bahwa akses ke disk fisik diperlukan. VM membaca ke dan dari dan berjalan pada drive yang dialokasikan secara virtual. Tetapi operasi sebenarnya sedang diarahkan ke perangkat penyimpanan fisik di suatu tempat. Itu bisa melalui jaringan saluran serat, jaringan ethernet, atau disk lokal itu sendiri - tepat di dalam Perangkat Lunak Virtualisasi Sistem Operasi atau Hypervisor.

Mesin virtual harus menggunakan satu set file untuk manajemen virtualisasi. Salah satu file ini mewakili drive yang dialokasikan secara virtual atau disk virtual. VM perlu membaca dari atau menulis ke disk virtual melalui file-file ini. Lalu lintas data akan mengalir melalui adaptor penyimpanan untuk mewujudkannya.

Untuk alasan yang jelas, mungkin ada banyak file seperti itu yang terkait dengan mesin virtual lain yang disimpan di lokasi fisik yang sama pada hard disk.

Sekarang mari kita bicara tentang bagaimana mesin virtual dimatikan dan boot kembali.

Untuk dapat melakukan itu, VM memerlukan informasi konfigurasi yang terutama terdiri dari status langsung:

  • Berapa banyak memori yang seharusnya didapat VM?
  • Berapa banyak CPU yang dibutuhkan?
  • Berapa ukuran disk yang dialokasikan?
  • Bagaimana VM mengakses jaringan?

Sekali lagi, semua informasi ini disimpan dalam sebuah file.

Izinkan saya meminta semua jenis informasi yang disimpan file mesin virtual untuk memastikan fungsionalitas penuhnya:

  • Penyimpanan statis atau dinamis
  • Informasi konfigurasi
  • Informasi BIOS
  • Foto diambil

Jadi mesin virtual menyimpan dua jenis status:

Status Langsung

Keadaan langsung adalah apa yang terjadi secara real time yang seperti yang baru saja saya diskusikan dapat berupa:

  • Berapa banyak memori yang digunakan saat ini
  • Berapa banyak CPU yang digunakan
  • Aplikasi apa yang sedang digunakan
  • Bagaimana bandwidth jaringan digunakan atau dilalui

Jika host fisik atau mesin virtual di dalamnya gagal, semua informasi waktu nyata di atas akan hilang. Ini mirip dengan mencabut komputer.

Status Persisten

Status persisten adalah file dari mesin virtual itu, yang disimpan secara permanen. Itu dimungkinkan melalui:

  • Penyimpanan file
  • File konfigurasi
  • File cuplikan

File yang terkait dengan status persisten membentuk VM.

Seperti kita manusia tidak dapat bertahan hidup tanpa nutrisi yang tepat, mesin virtual juga perlu memiliki alokasi sumber daya yang tepat secara konsisten. Kurangnya sumber daya ini berarti mesin virtual tidak akan bekerja dengan baik.

Empat hal penting yang tanpanya VM tidak dapat mencapai kinerja terbaiknya adalah:

  • CPU
  • RAM
  • Jaringan
  • Penyimpanan

Virtualisasi CPU

Bagaimana cara mesin virtual mendapatkan akses ke sumber daya CPU dari host fisik?

Host fisik memiliki CPU fisik. Katakanlah, misalnya, kami memiliki CPU dengan 4 inti fisik. Sekarang jika Anda ingin mengalokasikan 2 inti fisik ini, saat Anda mulai membuat mesin virtual, Anda akan mengalokasikan 2 CPU virtual. Artinya, mesin virtual akan memiliki akses ke 2 inti prosesor fisik dari CPU utama dengan membuat VM dengan 2 CPU virtual.

Namun, alokasi ini tidak berarti bahwa mesin virtual lain tidak dapat memanfaatkan inti tersebut, yang berarti, saya dapat menetapkan semua 4 inti ke mesin virtual lain. Jadi secara meyakinkan, sumber daya ini dapat digunakan bersama oleh semua mesin virtual pada hypervisor atau perangkat lunak virtualisasi sistem operasi.

Bergantung pada jenis beban kerja, Anda harus menetapkan inti CPU berdasarkan kebutuhan mesin virtual. Jika VM baik-baik saja dengan penggunaan CPU 25%, Anda tentu saja dapat menetapkan sumber daya yang tersisa ke VM lain.

Oleh karena itu, Anda harus selalu berusaha untuk selalu menyesuaikan ukuran mesin virtual Anda berdasarkan persyaratan aplikasi, terutama dalam hal sumber daya CPU.

Virtualisasi memori

Sekarang mari kita memahami bagaimana mesin virtual dapat memanfaatkan sumber daya memori hypervisor.

Berapa banyak memori yang dapat Anda alokasikan ke mesin virtual sekali lagi didasarkan pada memori fisik (RAM) yang Anda miliki di server fisik Anda.

Misalnya, jika server Anda memiliki 8 GB RAM, Anda dapat mengalokasikan 4 GB dan menjalankan Desktop Ubuntu yang lengkap di mesin virtual Anda. Desktop Ubuntu "berpikir" bahwa ia memiliki memori fisik 4 GB. Namun yang sebenarnya terjadi adalah memori yang dialokasikan ini dipetakan dari memori fisik sebenarnya sebesar 8 GB itu sendiri.

Saat Anda menetapkan 4 GB ke VM, VM tidak dapat menggunakan memori lebih dari jumlah yang dialokasikan.

Seperti CPU, sekali lagi tidak berarti bahwa 4 GB ini didedikasikan untuk VM setiap saat. Jika aplikasi yang berjalan pada VM ini saat ini tidak membutuhkan memori sebanyak ini, VM lain dapat menggunakan sumber daya yang sama, saat dan saat dibutuhkan.

Ketika aplikasi berjalan pada VM, sistem operasi (pada VM) mengalokasikan memori berdasarkan tabel memorinya sendiri, dan ketika ditutup pada VM, OS menandai halaman memori tersebut sebagai bebas. Tapi karena tidak pernah "sadar" tentang keberadaan hypervisor atau perangkat lunak virtualisasi, itu tidak akan pernah menginformasikan server fisik tentang de-alokasi ini.

Oleh karena itu, tugas hypervisor atau perangkat lunak virtualisasi untuk terus melihat ke dalam sistem operasi VM untuk memantau alokasi ini dan menetapkan bagian memori yang tidak terpakai ke VM lain dari waktu ke waktu.

Berbeda dengan aspek alokasi memori bersama di antara mesin virtual ini, Anda juga dapat memberlakukan reservasi memori untuk VM tertentu untuk menggunakan bagian tertentu dari memori fisik. Ini berarti VM lain tidak dapat menggunakan memori yang dicadangkan meskipun tidak sedang digunakan oleh VM yang dicadangkan memori. Dalam praktik umum, prosedur ini sebaiknya dihindari, karena berbagi memori memastikan pemanfaatan sumber daya yang efektif di penghujung hari.

Anda dapat menghubungkan ini ke server bersama dan khusus yang disediakan melalui Linode. Lebih ekonomis menggunakan server bersama dalam praktik dan produksi sysadmin sehari-hari.

Virtualisasi Jaringan

VM Ubuntu berjalan pada host pada hypervisor atau perangkat lunak virtualisasi. Mesin virtual ini memiliki apa yang kami sebut NIC virtual  V-NIC. Itu meluas ke kartu antarmuka jaringan virtual.

Sistem operasi (Ubuntu) tidak tahu bahwa itu berjalan di dalam mesin virtual. Jadi ia mengharapkan untuk melihat semua jenis perangkat keras yang sama seperti yang akan dilihatnya jika dijalankan di server fisik.

Ketika datang ke virtualisasi jaringan, Anda perlu menyediakan mesin virtual Anda, kartu antarmuka jaringan virtual.

Ubuntu sebenarnya akan mengimplementasikan drivernya untuk kartu antarmuka jaringan. Itu tidak akan tahu sebagai sistem operasi tamu yang sebenarnya bukan NIC fisik.

Ini adalah NIC virtual yang merupakan perangkat keras palsu yang disajikan ke mesin virtual kami seolah-olah itu nyata. Jadi, jika Anda memiliki server fisik dengan NIC fisik, Anda akan menghubungkan kabel ethernet Anda dari port ethernet ke sakelar fisik.

Jika Anda memiliki mesin virtual dengan NIC virtual, Anda akan menghubungkannya ke port pada sakelar virtual, sama seperti Anda melakukannya dengan mesin fisik.

Oleh karena itu, di dalam perangkat lunak hypervisor atau virtualisasi kami, kami akan memiliki sesuatu yang disebut sakelar virtual. Anda dapat menghubungkan beberapa mesin virtual ke sakelar virtual ini, dan mereka dapat berkomunikasi satu sama lain.

Selama Anda menempatkan mereka di VLAN (jaringan area lokal virtual) yang sama, mereka akan dapat berkomunikasi melalui sakelar virtual seperti halnya mereka dapat berkomunikasi melalui jenis sakelar fisik lainnya.

Jadi, jika Anda memiliki satu VM yang terhubung ke sakelar virtual, Anda dapat menghubungkan VM kedua. Ini memungkinkan pengiriman lalu lintas dari satu VM ke VM lain secara langsung di dalam sakelar virtual itu. Lalu lintas ini tidak pernah harus meninggalkan host selama mesin virtual tersebut berada di VLAN yang sama. Selama VM tersebut berada di VLAN yang sama, mereka dapat berkomunikasi dan lalu lintas tidak perlu melintasi jaringan fisik.

Tapi, di sini ada poin penting. Beberapa lalu lintas jaringan harus melintasi jaringan fisik, sehingga sakelar virtual akan memerlukan tautan ke atas.

Sama seperti switch fisik yang memiliki uplink ke switch fisik tingkat yang lebih tinggi atau router fisik, switch virtual kami juga memerlukan uplink. Uplink ini adalah adaptor fisik sebenarnya pada host. Adaptor fisik ini disebut P-NIC atau NIC fisik atau VM NIC.

Kartu antarmuka jaringan fisik atau NIC selalu terintegrasi ke motherboard modern kami di server kami:

Tetapi jika mau, Anda juga dapat memilih NIC khusus, yang dicolokkan ke motherboard untuk jaringan tambahan:

Saat Anda membuat hypervisor pada sebuah host, host tersebut memiliki satu atau lebih kartu antarmuka jaringan, sama seperti server lainnya.

Kartu antarmuka jaringan fisik pada host, terhubung ke sakelar fisik, dan sakelar fisik itu akan memiliki koneksi ke router. Ini adalah cara mendapatkan lalu lintas ke Internet.

Melalui mekanisme ini, ia juga dapat terhubung ke server fisik lain yang berada di dalam pusat data yang sama.

Jadi, mesin virtual dapat berkomunikasi dengan semua komponen tersebut dengan atau di dalam server fisik yang sama.

Jika lalu lintas harus benar-benar meninggalkan host untuk berkomunikasi di luar host untuk mencapai router dan sampai ke VLAN lain atau jaringan lain, lalu lintas tersebut akan mengalir keluar dari VM.

Melalui sakelar virtual, salah satu sakelar virtual terhubung ke jaringan fisik.

Ketika lalu lintas itu tiba di sakelar fisik, itu akan melakukan pencarian tabel MAC (catatan alamat fisik yang unik).

Ini akan memberikan port yang sesuai menuju tujuan yang sesuai ke mana paket itu harus pergi. Itu bisa menuju ke Internet atau ke host fisik di jaringan lokal Anda sendiri.

Tetapi mekanisme ini memastikan kemampuan semua mesin virtual Anda untuk berkomunikasi dengan semua perangkat di jaringan fisik saya. Inilah yang dilakukan sakelar virtual.

Ide mendasar di sini adalah untuk mengelabui sistem operasi tamu pada VM agar "berpikir" bahwa ia memiliki kartu antarmuka jaringan fisik. Jadi Anda menyediakan driver yang sama ke Ubuntu dan Ubuntu akan berpikir bahwa ia memiliki perangkat keras yang sebenarnya.

Saat paket data dikirim, lalu lintas sebenarnya diambil oleh hypervisor, yang mengarahkannya ke sakelar virtual yang sesuai seperti yang diinstruksikan.

Virtualisasi Penyimpanan

Sekarang setelah Anda mempelajari tentang bagaimana VM memanfaatkan CPU, memori, dan jaringan, mari kita lanjutkan dengan sumber daya terakhir:penyimpanan.

Izinkan saya mengulangi lagi bahwa sistem operasi tamu tidak tahu bahwa itu berjalan di dalam mesin virtual. VM tidak memiliki perangkat keras fisik khusus dan itu termasuk disk penyimpanan. VM tidak memiliki disk fisik yang didedikasikan untuk itu.

Dengan jaringan, kami memiliki NIC virtual.

Dengan virtualisasi penyimpanan, kita akan memiliki pengontrol SCSI virtual, jika kita memikirkan cara kerja server fisik dengan hard drive internal. Saat sistem operasi perlu menulis beberapa jenis data ke disk, sistem operasi menghasilkan perintah SCSI.

Jika perlu membaca data dari disk, itu menghasilkan perintah SCSI dan mengirimkan perintah itu ke pengontrol SCSI, yang berinteraksi dengan disk fisik. Begitulah cara Ubuntu bekerja dengan penyimpanan, ia tidak tahu bahwa itu berjalan di dalam mesin virtual di sini.

Jadi kita perlu mempertahankan ilusi itu untuk sistem operasi tamu untuk mekanisme penyimpanan juga.

Jadi Anda menyediakan Linux (berjalan di VM) pengontrol SCSI virtual. Ini akan meniru seolah-olah sedang menjalankan disk fisik yang sebenarnya.

Oleh karena itu, ketika Ubuntu perlu menjalankan semacam perintah penyimpanan, ia akan berpikir bahwa saya memiliki pengontrol SCSI yang sebenarnya.

Ketika perintah penyimpanan dikirim ke pengontrol SCSI, yang sebenarnya terjadi adalah pengontrol SCSI virtual (perangkat virtual), mengarahkannya ke hypervisor. Mesin virtual mengirimkan perintah penyimpanan tersebut melalui pengontrol SCSI virtualnya dan perintah tersebut tiba di hypervisor.

Hypervisor menentukan apa yang terjadi pada perintah penyimpanan tersebut dari sini. Jika mesin virtual memiliki VMDK atau file disk virtual pada disk lokal, mesin virtual akan mengirimkan perintah penyimpanan tersebut ke file tersebut di hard drive lokal Anda.

Terlepas dari fungsi paling dasar ini, bisa juga

  • susunan penyimpanan saluran serat
  • susunan penyimpanan iSCSI berbasis Ethernet
  • saluran fiber melalui Ethernet

Tapi mereka semua bekerja dengan cara yang sama.

Yang membedakan sebenarnya adalah jaringannya.

Jika hypervisor mengirimkan perintah penyimpanan itu ke saluran serat, perintah penyimpanan itu akan melintasi jaringan Saluran Serat tersebut hingga akhirnya tiba di disk virtual.

Terlepas dari hypervisornya, mesin virtual Anda akan memiliki disk virtual.

Begitulah cara perintah SCSI dari mesin virtual Anda ke disk virtual Anda, di mana pun disk virtual itu berada.

Saat mesin virtual berbasis Ubuntu menghasilkan perintah SCSI, ia mengirimkannya ke pengontrol SCSI virtual.

Hypervisor menentukan lokasi yang sesuai untuk disk virtual tersebut dan mengirimkannya ke adaptor penyimpanan, dan perintah penyimpanan tiba di penyimpanan data.

Perubahan traversal data ini sebenarnya ditulis ke file yang berisi disk virtual mesin virtual. Bisa berupa .VMX, .VMDK atau jenis file virtual lainnya.

Saya harap sekarang Anda telah memahami dasar-dasar virtualisasi jaringan dan penyimpanan. Izinkan saya menyoroti manfaat efisiensi &mobilitas virtualisasi dan juga bagaimana Anda dapat mengonversi host fisik ke mesin virtual.

Manfaat Virtualisasi

Sejauh ini kita telah berbicara tentang bagaimana virtualisasi pada dasarnya bekerja melalui berbagai mode manajemen sumber daya. Sekarang mari kita bicara tentang banyak manfaat utama.

Konsolidasi

Pertama, mari kita bicara tentang efisiensi.

Jika Anda membandingkan infrastruktur virtual Anda dengan gimnasium, dan beberapa dari Anda mungkin pernah mengalami hal ini sebelumnya.

Jika Anda adalah penggemar gym sekitar tanggal 1 Januari, gym mulai menjadi sangat sibuk.

Selama bagian normal tahun, gym dengan sekitar 20 treadmill dan 50 mesin olahraga sudah cukup.

Tetapi jika Anda seorang pemilik gym, Anda tahu bahwa Januari mendatang, akan ada dua hingga tiga kali lebih banyak orang dan akan lebih produktif untuk melipattigakan ukuran lingkungan Anda.

Ketika semua orang itu menyadari bahwa, ya, mungkin mereka tidak terlalu suka berolahraga, mereka berhenti menggunakan gym.

Untuk selanjutnya, Anda dapat mengurangi ukuran gym sesuai kebutuhan Anda.

Sekarang ini juga akan sangat bagus jika Anda dapat melakukan hal yang sama dengan perangkat keras pusat data virtual Anda.

Ketika Anda berurusan dengan virtualisasi, itu membawa Anda ke ide komputasi awan, di mana ada vendor atau penyedia layanan seperti Linode, misalnya. Dengannya, Anda dapat menjalankan sekumpulan mesin virtual sementara di perangkat keras orang lain dan mengakomodasi waktu sibuk sepanjang tahun itu untuk pelanggan Anda.

Tetapi Anda tidak dapat benar-benar menggunakan komputasi awan tanpa melakukan virtualisasi terlebih dahulu. Ini adalah langkah pertama di sepanjang jalan menuju apa yang kita sebut keadaan elastisitas, di mana infrastruktur Anda dapat tumbuh atau menyusut dengan cepat.

Virtualisasi adalah blok bangunan menuju fleksibilitas semacam itu. Ini memberi kami kemampuan untuk mengkonsolidasikan beban kerja.

Di bawah, kita melihat pusat data server fisik.

Untuk praktik terbaik, setiap server ini tidak boleh menjalankan satu sistem operasi.

Pikirkan tentang berapa banyak lagi beban kerja yang dapat Anda selesaikan jika Anda menjalankan 20 hingga 30 instans Linux di setiap server ini, bukan hanya satu per server!

Itu, adalah manfaat terbesar dari virtualisasi. Itulah manfaat yang pada awalnya mendorong inovasi ini untuk melakukan virtualisasi:konsolidasi.

Efisiensi

Dalam diagram di bawah, Anda memiliki tiga server berbeda dengan peran berbeda yang tersedia sebagai sistem fisik individual di lingkungan kita:

Anda memiliki server cetak yang menggunakan 20 persen dari semua sumber daya dan hal yang sama berlaku untuk server web dan database.

Ini adalah server fisik yang tidak benar-benar menggunakan semua sumber dayanya. Jika dipikir-pikir, Anda membayar semua perangkat keras itu, dan jika Anda hanya menggunakan 20 persen, Anda menyia-nyiakan 80 persen.

Dengan menempatkan sumber daya pada host fisik yang hanya dapat menjalankan satu sistem operasi, kini Anda memiliki dua pilihan untuk mengatasi masalah ini:

Anda dapat mulai menginstal aplikasi lain di server kami dan menjalankan beberapa aplikasi di server yang sama. Tetapi jika Anda perlu me-reboot server cetak, Anda akan khawatir tentang apa lagi yang berjalan di server cetak itu?

Apa lagi yang dapat Anda pengaruhi dengan melakukan pemeliharaan pada server cetak saya? Akan ada terlalu banyak kasus dan skenario penggunaan aplikasi yang saling bergantung pada perangkat keras yang sama, dan itu sangat menurunkan efisiensi.

Oleh karena itu, sebagian besar waktu yang kita dapatkan hanyalah pemborosan sumber daya. Sebagai gantinya, Anda dapat menyingkirkan server fisik tersebut dan menggabungkan beban kerja tersebut di hypervisor:

Melalui konsolidasi ini, Anda sekarang dapat menjalankan beberapa instance sistem operasi pada hypervisor tersebut. Sekarang Anda dapat dengan sangat mudah dan efisien memaksimalkan, mengubah ukuran, dan mencapai sweet spot yang dapat berupa 60 atau 70 persen pemanfaatan sumber daya.

Jadi sekarang Anda secara efisien menggunakan sumber daya yang telah Anda beli, tetapi Anda tidak membebani mereka secara berlebihan.

Itulah tujuan utama kami dengan virtualisasi:untuk memaksimalkan investasi pada perangkat keras yang diproduksi tanpa membuang modal tambahan untuk sumber daya yang tidak akan pernah digunakan.

Mobilitas

Manfaat besar lainnya dari virtualisasi adalah mobilitas.

Jika Anda dapat mengingat cara kerja virtualisasi jaringan dan penyimpanan, pikirkan skenario di sini di mana Anda memiliki susunan penyimpanan saluran serat. Pertimbangkan juga bahwa Anda baru saja berinvestasi pada array penyimpanan iSCSI baru.

Sekarang katakanlah Anda memiliki larik penyimpanan Fibre Channel dan ingin memindahkan mesin virtual ini dan semua filenya ke perangkat penyimpanan iSCSI baru Anda, yang berada di jaringan yang berbeda.

Katakanlah itu di jaringan Ethernet. Anda sekarang dapat berpindah dengan mudah dengan perangkat lunak hypervisor atau virtualisasi Anda. Saat perintah SCSI keluar dari VM Anda, perintah tersebut diterima oleh hypervisor. Saat Anda menggunakan adaptor penyimpanan lain dan memindahkan file VMS ini ke larik penyimpanan lain, hypervisor akan mengetahui bahwa Anda telah membuat perubahan itu.

Itu hanya akan mengarahkan perintah penyimpanan tersebut ke lokasi baru dan poin plusnya adalah Anda bahkan dapat melakukan ini tanpa downtime pada mesin virtual Anda.

Mari kita lihat skenario lain.

Katakanlah Anda memiliki banyak host dan sekarang memilih untuk mengambil VM Linux dan memindahkan status VM langsung ke host lain. Itu akan berfungsi juga, selama host lain memiliki kemampuan untuk terhubung ke penyimpanan bersama. VM Anda masih dapat mengakses disk virtualnya dan semua file VM penting lainnya yang diperlukan.

Beginilah cara penyimpanan, virtualisasi, dan penyimpanan bersama membantu mencapai mobilitas. Anda dapat menggunakan mesin virtual, memindahkannya ke host yang berbeda, memindahkan file dari satu sistem penyimpanan ke sistem penyimpanan lainnya tanpa waktu henti.

Itu semua karena hypervisor di tengah yang menempatkan dirinya di antara mesin virtual dan perangkat keras.

Inilah yang dikenal sebagai decoupling. Artinya, mesin virtual tidak memiliki hubungan langsung dengan perangkat keras apa pun. Anda dapat memindahkannya dari satu server fisik ke server fisik lainnya. Anda juga dapat memindahkannya dari satu sistem penyimpanan ke sistem penyimpanan lainnya. Tidak ada hubungan tetap antara mesin virtual dan perangkat keras tertentu. Mereka dipisahkan dalam arti sebenarnya dari istilah tersebut.

Karenanya, seperti yang Anda lihat, mobilitas adalah manfaat utama virtualisasi.

Cara lain untuk melihatnya:

Katakanlah Anda memiliki banyak host dan Anda memiliki banyak mesin virtual yang berjalan di semua host ini dan beban kerja tidak terlalu seimbang seperti yang diinginkan.

Jika pada host satu, Anda memiliki tiga mesin virtual yang berjalan di dalamnya, Anda mungkin ingin memigrasikan beberapa VMS tersebut ke host dua untuk menyamakan beban kerja pada kedua host tersebut.

Anda ingin memastikan bahwa pemanfaatan sumber daya dari host kami digunakan secara merata setiap saat.

Jika host satu kehabisan memori, Anda dapat memindahkan beberapa VM ke beberapa host lain dan idealnya Anda ingin melakukannya tanpa downtime.

Anda dapat melakukan migrasi langsung dan mengambil VM yang sedang berjalan dan memindahkannya dari satu server fisik ke server lain tanpa waktu henti. Itulah salah satu alasan penting Anda mungkin ingin memigrasikan VM.

Alasan lain juga ketika Anda perlu melakukan segala jenis aktivitas pemeliharaan. Misalnya, Anda dapat memasang beberapa memori fisik dan menambahkan host lain atau bentuk pemeliharaan fisik lainnya.

Ini berarti Anda akan mengalami downtime pada host. To prevent that, you can migrate all of the VMs to another host, perform maintenance, install memory or whatever you want to, say installing patches or carrying out a necessary reboot. You can migrate all VMs off of that host, do whatever you need to and then bring them back once the host is back up. All this can happen without any disruption for users.

How this is done:

Let's take a look at an example, migration, Say here we have a virtual machine running on host one you want to patch up. You also need to reboot this host.

So you have to initiate a migration of this VM from host one to host two.

But there are some prerequisites:

  • Shared storage
  • Virtual disk files
  • Configuration files
  • Virtual NICs
  • Snapshots

This is a VM that has network access and that virtual neck is connected to a virtual switch and it's available on a VLAN.

The virtual switch is connected to a physical switch and the virtual machine is addressed accordingly.

This VM exists on some VLAN that's got a port group on the virtual switch. If you move this VM down to another host and the virtual switch there does not have a matching configuration, that network would become unavailable.

You don't want that.

So you must ensure you have a compatible network on both of these hosts.

Simply said, you don't want the migrated VM to see anything different when it moves the host two and you want the compatable processors you want as they were on host one.

If they're Intel on host one, you want them to be compatible with AMD on host two.

You want these two hosts to be as much identical as you can possibly make them.

When it comes to the network and storage configuration, they obviously need to match up.

Finally, you need a way to perform the transfer from host one to host two. So you're going to have a special network that takes all of the contents of memory, takes what's currently happening on the current VM and creates a copy of it on the other host.

Once you've covered my prerequisites, the rest of it is pretty straightforward.

You write a copy of the VM that is going to be created on a destination host in this case.

Based on VMware terminology, you're going to use something called a VM kernel port to create a network, and that network is going to be used to create a copy of the current VM on the destination host.

When that copy is complete, you will capture everything that's changed in that VM during that copy process. You call this a memory bitmap.

All of the contents of this memory bitmap are transferred over to the new copy of the VM and that becomes your live running virtual machine.

The downtime is so negligible, that it's not even perceptible to the users of your applications. This is called live migration of a virtual machine, while it's running and moved from one host to another.

This facilitates amazing flexibility, because you can move VMs wherever you need to.

Another notable advantage is automated load balancing.

You can group together hosts in what's called a cluster. Once you group those together, what you would now want is to allow your virtual machines to efficiently make use of the resources of the cluster as a whole.

You'll want to consider all of these hosts are interchangeable. It doesn't matter which host your VMs run on. If VMs need to move around to equalize workload, you can definitely make that to happen automatically.

That's the purpose of automatic load bouncing in VMware terminology.

This is also called distributed resource scheduler, in order to allow virtual machines to automatically be live migrated from host to host for the purposes of load balancing across themselves.

Converting physical servers to VMs

In this section, you'll learn about some concepts required to convert a physical machine to a virtual machine.

There are different software options out there to accomplish that.

Let's say you have a physical server with Ubuntu installed on it. It has all kinds of physical hardware like CPUs, RAM and network adapters and storage disks.

Our Ubuntu operating system has drivers for devices such as network adapters. It knows what kind of CPUs are being used:be it AMD or Intel CPUs. It has got a SCSI controller to connect to physical disks and the operating system is also aware of the actual physical hardware.

When we take this physical server and use one of our software tools to convert it to a virtual machine, the first step that happens is that virtual machine is created as virtual replica of the physical machine.

You're going to have a virtual machine present your hypervisor with the appropriate CPU, memory, network and storage specifications. It might not exactly match up with what we had in the physical server.

When you create a virtual machine, your goal should always be to rightsize that virtual machine. It's never to just take what the physical server had and duplicate it. The goal is always to right size it to give the virtual machine the correct resources that it needs to do its job (efficiently run applications) and nothing extra.

You'd want your resource consumption to be about 60, 70 percent utilization for CPU and the same for memory. You don't want them unutilized at 10 percent with four CPUs. That's not efficient.

You're also going to need a physical NIC, for the virtual machine and this is going to be a hardware change for the guest operating system.

So what would be most ideal to have is a network interface card that was specifically designed to run on a virtual machine, a good example of this is the VMware VMAX.

The beautiful thing about this, is that now the virtual machine has no relationship with actual physical hardware, so we get mobility by breaking out of specific hardware dependency everytime.

Other benefit that is often overlooked is the fact that as you virtualize, all of your OS instances(Linux/Mac/Windows) are going to have a similar set of virtual hardware. It allows you to standardize your operating system configuration.

You replace our physical hardware with virtual hardware and your physical hard disk with a virtual disk.

This is a file that could be on a local storage of the host, it could be on:

  • a fibre channel
  • a SCSI storage array
  • an NFS server

What's most important is that you create this virtual disk and migrate all of the data from the source virtual machine to the virtual disk. When the power's on, it's got its new hardware with its new disk. From this point on, it should just work.

That's how you convert a physical server to a virtual machine.

Depending on which hypervisor you're using:

  • VMware has vCenter converter
  • Microsoft has VM converter
  • Veeam has disk to VHD

You can start using these solutions on your existing physical servers, convert them to virtual machines and run them on your hypervisor. Helder has shared some tips on building homelab which is a good way to experiment.

Hope you found this detailed introduction to virtualization helpful. Please leave any feedback if you have in the comment section below. Terima kasih.


Linux
  1. Cara Menginstal MongoDB di Ubuntu 18.04 – Panduan untuk Pemula

  2. Apa itu Docker Container:Panduan Pengantar untuk Pemula

  3. Virtualisasi di PC, Dijelaskan untuk Pemula dengan Kasus Penggunaan Praktis

  1. Apa Itu Linux? Panduan untuk Pengguna Non-teknis

  2. YAML untuk pemula

  3. Pengantar singkat tentang peran Ansible untuk administrasi sistem Linux

  1. Panduan terminal Linux untuk pemula

  2. Panduan Komprehensif untuk pengaturan otentikasi berbasis Kunci SSH2

  3. Panduan Pemula untuk SELinux