怎么做網(wǎng)站公司宣傳資料電商seo優(yōu)化是什么
前言
大家好,我是秋意零。
今天介紹的內(nèi)容是KVM的概述,以及它所支持的基本功能。
👿 簡介
- 🏠 個(gè)人主頁: 秋意零
- 🔥 賬號:全平臺同名, 秋意零 賬號創(chuàng)作者、 云社區(qū) 創(chuàng)建者
- 🧑 個(gè)人介紹:在校期間參與眾多云計(jì)算相關(guān)比賽,如:🌟 “省賽”、“國賽”,并斬獲多項(xiàng)獎(jiǎng)項(xiàng)榮譽(yù)證書
- 🎉 目前狀況:24 屆畢業(yè)生,拿到一家私有云(IAAS)公司 offer,目前已在實(shí)習(xí)
- 💕歡迎大家:歡迎大家一起學(xué)習(xí)云計(jì)算,走向年薪 30 萬
- 💕推廣:CSDN 主頁左側(cè),是個(gè)人扣扣群推廣。方便大家技術(shù)交流、技術(shù)博客互助。
一、KVM介紹
KVM全稱是Kernel-based Virtual Machine,基于內(nèi)核的虛擬機(jī),是采用硬件虛擬化技術(shù)的全虛擬化解決方案(對于某些設(shè)備,如硬盤、網(wǎng)卡,KVM也支持virtio的半虛擬化方式)。
2006年10月,KVM模塊的源代碼被正式納入Linux kernel,成為內(nèi)核源代碼的一部分。
KVM基于硬件虛擬化支持的全虛擬化實(shí)現(xiàn)。它以內(nèi)核模塊的形式加載之后,就將Linux內(nèi)核變成了一個(gè)Hypervisor,但硬件管理等還是通過Linux kernel來完成的,所以它是一個(gè)典型的Type 2 Hypervisor。
二、架構(gòu)
一個(gè)KVM虛擬機(jī)對應(yīng)于一個(gè)Linux進(jìn)程,每個(gè)vCPU是該進(jìn)程下的一個(gè)線程,還有單獨(dú)的處理IO的線程,也是在該進(jìn)程中的線程組內(nèi)。
所以,宿主機(jī)上各個(gè)虛擬機(jī)是由宿主機(jī)內(nèi)核像調(diào)度普通進(jìn)程一樣調(diào)度的,即可以通過Linux的各種進(jìn)程調(diào)度的手段來實(shí)現(xiàn)不同客戶機(jī)的權(quán)限限定、優(yōu)先級等功能。
虛擬機(jī)所看到的硬件設(shè)備是QEMU模擬出來的 (不包括VT-d透傳的設(shè)備),當(dāng)虛擬機(jī)對模擬設(shè)備進(jìn)行操作時(shí),由QEMU截獲并轉(zhuǎn)換為對實(shí)際的物理設(shè)備(可能設(shè)置都不實(shí)際物理地存在)的驅(qū)動操作來完成。
三、功能概述
3.1 內(nèi)存管理
KVM依賴Linux內(nèi)核進(jìn)行內(nèi)存管理。上面提到,一個(gè)KVM客戶機(jī)就是一個(gè)普通的Linux進(jìn)程,所以,客戶機(jī)的“物理內(nèi)存”就是宿主機(jī)內(nèi)核管理的普通進(jìn)程的虛擬內(nèi)存。進(jìn)而,Linux內(nèi)存管理的機(jī)制,如大頁、KSM (Kernel Same Page Merge,內(nèi)核的同頁合并)、NUMA(Non-Uniform Memory Arch,非一致性內(nèi)存架構(gòu))、通過mmap的進(jìn)程間共享內(nèi)存,統(tǒng)統(tǒng)可以應(yīng)用到客戶機(jī)內(nèi)存管理上。
3.2 存儲和客戶機(jī)鏡像的格式
嚴(yán)格來說,這是QEMU的功能特性。
KVM能夠使用Linux支持的任何存儲來存儲虛擬機(jī)鏡像,包括具有IDE、SCSI和SATA的本地磁盤,網(wǎng)絡(luò)附加存儲 (NAS) (包括NFS和SAMBA/CIFS),或者支持iSCSI和光線通道的SAN。多路徑I/0可用于改進(jìn)存儲吞吐量和提供幾余。
KVM的原生磁盤格式為QCOW2,它支持快照,允許多級快照、壓縮和加密。
3.3 實(shí)時(shí)遷移
KVM支持實(shí)時(shí)遷移,這提供了在宿主機(jī)之間轉(zhuǎn)移正在運(yùn)行的客戶機(jī)而不中斷服務(wù)的能力。實(shí)時(shí)遷移對用戶是透明的,客戶機(jī)保持打開,網(wǎng)絡(luò)連接保持活動,用戶應(yīng)用程序也持續(xù)運(yùn)行,但客戶機(jī)轉(zhuǎn)移到了一個(gè)新的宿主機(jī)上。
除了實(shí)時(shí)遷移,KVM支持將客戶機(jī)的當(dāng)前狀態(tài) (快照,snapshot) 保存到磁以允許存儲并在以后恢復(fù)它。
3.4 設(shè)備驅(qū)動程序
KVM支持混合虛擬化,因?yàn)镵VM使用的QEMU軟件模擬IO設(shè)備(網(wǎng)卡、磁盤、顯卡),性能比較低,這個(gè)時(shí)候在虛擬機(jī)中安裝使用VirtIO半虛擬化驅(qū)動來實(shí)現(xiàn)IO等性能的提高。
其中半虛擬化的驅(qū)動程序安裝在客戶機(jī)操作系統(tǒng)中,允許虛擬機(jī)使用優(yōu)化的I/O接口而不使用模擬的設(shè)備,從而為網(wǎng)絡(luò)和塊設(shè)備提供高性能的I/0。
KVM使用的半虛擬化的驅(qū)動程序是VirtlO標(biāo)準(zhǔn);它是一個(gè)與Hypervisor獨(dú)立的、構(gòu)建設(shè)備驅(qū)動程序的接口,允許多種Hypervisor使用一組相同的設(shè)備驅(qū)動程序,能夠?qū)崿F(xiàn)更好的對客戶機(jī)的互操作性。
同時(shí),KVM也支持Intel的VT-d技術(shù),通過將宿主機(jī)的PCI總線上的設(shè)備透傳(pass-through)給客戶機(jī),讓客戶機(jī)可以直接使用原生的驅(qū)動程序高效地使用這些設(shè)備。這種使用是幾乎不需要Hypervisor的介入的。
3.5 性能和可伸縮性
KVM也繼承了Linux的性能和可伸縮性。KVM在CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等虛擬化性能上表現(xiàn)出色,大多都在原生系統(tǒng)的95%以上。KVM的伸縮性也非常好支持擁有多達(dá)288個(gè)vCPU和4TB RAM的客戶機(jī),對于宿主機(jī)上可以同時(shí)運(yùn)行的客戶機(jī)數(shù)量,軟件上無上限。
這意味著,任何要求非??量痰膽?yīng)用程序工作負(fù)載都可以運(yùn)行在KVM虛擬機(jī)。
總結(jié)
通過KVM介紹,我們知道了KVM是基于內(nèi)核的虛擬機(jī),是基于硬件虛擬化輔助的全虛擬化技術(shù),KVM的VMM層目前已經(jīng)被寫入到了Linux內(nèi)核模塊中。
功能概述中,介紹了KVM的虛擬機(jī)可以安裝VirtIO來提高我們IO性能。