㈠ kvm虛擬化技術實現原理
Qemu, PearPC, Bochs, ...
VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)
LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, ...
wine
jvm, pvm, ...
Type-I:Hypervisor直接運行於硬體;
Type-II:Hypervisor運行主機OS之上;
硬體級物理內存映射到虛擬機
KVM 是基於虛擬化擴展(Intel VT 或者 AMD-V)的 X86 硬體的開源的 Linux 原生的全虛擬化解決方案。KVM 中,虛擬機被實現為常規的 Linux 進程,由標准 Linux 調度程序進行調度;虛機的每個虛擬 CPU 被實現為一個常規的 Linux 進程。這使得 KMV 能夠使用 Linux 內核的已有功能。
但是,KVM 本身不執行任何硬體模擬,需要客戶空間程序通過 /dev/kvm 介面設置一個客戶機虛擬伺服器的地址空間,向它提供模擬的 I/O,並將它的視頻顯示映射回宿主的顯示屏。目前這個應用程序是 QEMU。
KVM模塊load進內存之後,系統的運行模式:
掃描物理內存,發現多個虛擬機實例有相同的內存空間,合並成為一個共享內存空間,節省內存。
運行中的一個kvm虛擬機就是一個qemu-kvm進程,運行qemu-kvm程序並傳遞給它合適的選項及參數即能完成虛擬機啟動,終止此進程即能關閉虛擬機;
kvm:核心模塊
CentOS 7創建物理橋,使用內核自帶的橋接模塊實現:
橋介面配置文件保留地址信息;
物理網卡配置文件:
刪除地址、掩碼和網關等相關的配置,添加
重啟網路服務即可:
此時會斷網,到虛擬機重啟一下,發現已生成網橋,但還要配置網橋的dns,否則無法上網。
其他終端圖形登錄[root@node-60 ~]# ssh -X [email protected]
參考鏈接:
http://www.178linux.com/103971
https://www.cnblogs.com/sunhao96/p/7605865.html
https://bbs.csdn.net/topics/391040787
https://www.ibm.com/developerworks/cn/linux/l-pci-passthrough
㈡ 企業級虛擬化Kvm實戰
常用的虛擬化產品有哪些
1.Kvm(redhat)企業級
2.Vmware:
- - Vmware-workstation(windows和linux)桌面級
- -Vmware-fusion(mac)
- -Vmware-esxi(企業級別)本身就是一個操作系統。
3.hyper-v(微軟)
4.Ovm(oracle公司--Windows linux) virtulbox
5.Xen(rhel6之前所有版本默認用的虛擬化產品)
虛擬化技術的分類:
我們通常所說的虛擬化主要是指平台虛擬化技術,通過使用控製程序(Control Program,也被稱為 Virtual Machine Monitor(虛擬監控器VMM) 或 Hypervisor ,隱藏特定計算平台的實際物理特性,為用戶提供抽象的、統一的、模擬的計算環境(稱為虛擬機)。
平台虛擬化類型
全虛擬化(Full Virtualization):
半虛擬化(Para Virtualization):
硬體輔助虛擬化
部分虛擬化
企業級虛擬化與桌面級虛擬化的區別
從rhel6開始使用 直接把kvm的模塊做成了內核的一部分
xen用在rhel6之前的企業版中 默認內核不支持,需要重新安裝帶xen功能的內核
KVM 針對運行在 x86 硬體上的、駐留在內核中的虛擬化基礎結構。KVM 是第一個成為原生 Linux 內核(2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 開發和維護的,現在歸 Red Hat 所有。
這個 hypervisor 提供 x86 虛擬化,同時擁有到 PowerPC® 和 IA64 的通道。另外,KVM 最近還添加了對對稱多處理(SMP)主機(和來賓)的支持,並且支持企業級特性,比如活動遷移(允許來賓操作系統在物理伺服器之間遷移)。
KVM 是作為內核模塊實現的,因此 Linux 只要載入該模塊就會成為一個hypervisor。KVM 為支持 hypervisor 指令的硬體平台提供完整的虛擬化(比如 Intel® Virtualization Technology [Intel VT] 或 AMD Virtualization [AMD-V] 產品)。KVM 還支持准虛擬化來賓操作系統,包括 Linux 和 Windows®。
這種技術由兩個組件實現。第一個是可載入的 KVM 模塊,當在 Linux 內核安裝該模塊之後,它就可以管理虛擬化硬體,並通過 /proc 文件系統公開其功能。第二個組件用於 PC 平台模擬,它是由修改版 QEMU 提供的。QEMU 作為用戶空間進程執行,並且在來賓操作系統請求方面與內核協調。
當新的操作系統在 KVM 上啟動時(通過一個稱為 kvm 的實用程序),它就成為宿主操作系統的一個進程,因此就可以像其他進程一樣調度它。但與傳統的 Linux 進程不一樣,來賓操作系統被 hypervisor 標識為處於 "來賓" 模式(獨立於內核和用戶模式)。
每個來賓操作系統都是通過 /dev/kvm 設備映射的,它們擁有自己的虛擬地址空間,該空間映射到主機內核的物理地址空間。如前所述,KVM 使用底層硬體的虛擬化支持來提供完整的(原生)虛擬化。I/O 請求通過主機內核映射到在主機上(hypervisor)執行的 QEMU 進程。
KVM 在 Linux 環境中以主機的方式運行,不過只要底層硬體虛擬化支持,它就能夠支持大量的來賓操作系統.
㈢ KVM網路虛擬化(二)
前面介紹的虛擬化技術本質上都是共享設備,帶來的代價就是性能的降低,在追求性能的場景中並不適用。設備透傳技術提供了虛擬機獨占設備的方法,這在網卡PCI Passthrough可以將物理網卡直接交給虛擬機使用。虛擬機獨占網卡,使用性能接近物理網卡。
因為PCI透傳虛機要獨占網卡,所以對宿主的網卡數也是有要求的。同時設備透傳在虛機熱遷移時還會遇到問題。
SR-IOV全稱Single-Root I/O Virtualization,是一個將PCI-E設備共享給虛擬機的使用方案,多用在網路設備。SR-IOV從硬體上繞過系統和虛擬化層,使每個虛機能有單獨的內存地址、中斷、DMA流。
SR-IOV有兩個功能模型:
㈣ KVM技術是什麼
據我所知KVM技術是內核級虛擬化技術(Kernel-based Virtual Machine) 。