這篇文章主要介紹“KVM虛擬化是什么”,在日常操作中,相信很多人在KVM虛擬化是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”KVM虛擬化是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),古塔企業(yè)網(wǎng)站建設(shè),古塔品牌網(wǎng)站建設(shè),網(wǎng)站定制,古塔網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,古塔網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1、虛擬化分為:全虛擬化和半虛擬化,需要CPU的支持。
2、全虛擬化:不需要做任何配置,讓用戶(hù)覺(jué)得就是一臺(tái)真實(shí)的服務(wù)器
3、半虛擬機(jī)化:需要用戶(hù)配置,有點(diǎn)麻煩。
4、KVM 僅僅是 Linux 內(nèi)核的一個(gè)模塊。管理和創(chuàng)建完整的 KVM 虛擬機(jī),需要更多的輔助工具。
5、與Xen相比較,KVM就簡(jiǎn)化的多了。它不需要重新編譯內(nèi)核,也不需要對(duì)當(dāng)前kernel做任何修改,它只是幾個(gè)可以動(dòng)態(tài)加載的.ko模塊。它結(jié)構(gòu)更加精簡(jiǎn)、代碼量更小。所以,出錯(cuò)的可能性更小。并且在某些方面,性能比Xen更勝一籌。
6、/etc/libvirt/qemu目錄,存放虛擬機(jī)的配置文件。
7、kvm的備份:拷貝/etc/libvirt/qemu目錄下的xml配置文件,以及xml中設(shè)置的img文件。
8、kvm的還原:進(jìn)入virsh,執(zhí)行define 目錄下的xml文件路徑,且確保鏡像文件的存在。
virsh # define /etc/libvirt/qemu/winxp.xml
9、KVM允許客戶(hù)機(jī)過(guò)載使用(over-commit)物理資源,即給客戶(hù)機(jī)分配的CPU和內(nèi)存數(shù)量多于物理上實(shí)際存在的資源。
10、CPU的過(guò)載使用,是讓一個(gè)或多個(gè)客戶(hù)機(jī)使用vCPU的總數(shù)量超過(guò)實(shí)際擁有的物理CPU數(shù)量,QEMU會(huì)啟動(dòng)更多的線程來(lái)為客戶(hù)機(jī)提供服務(wù),這些線程也是被Linux內(nèi)核調(diào)度運(yùn)行在物理CPU硬件上。
11、最推薦的做法是對(duì)多個(gè)單CPU的客戶(hù)機(jī)使用over-commit,比如:在擁有4個(gè)邏輯CPU的宿主機(jī)中,同時(shí)運(yùn)行多于4個(gè)(如8個(gè)、16個(gè))客戶(hù)機(jī),其中每個(gè)客戶(hù)機(jī)都被分配一個(gè)vCPU。這時(shí),如果每個(gè)宿主機(jī)的負(fù)載不很大的情況下,宿主機(jī)Linux對(duì)每個(gè)客戶(hù)機(jī)的調(diào)度是非常有效的,這樣的過(guò)載使用并不會(huì)帶來(lái)客戶(hù)機(jī)中的性能損失。
12、最不推薦的做法是讓某一個(gè)客戶(hù)機(jī)的vCPU數(shù)量超過(guò)物理CPU數(shù)量。比如,在擁有4個(gè)邏輯CPU的宿主機(jī)中,同時(shí)運(yùn)行一個(gè)或多個(gè)客戶(hù)機(jī),其中每個(gè)客戶(hù)機(jī)的vCPU數(shù)量多于4個(gè)(如16個(gè))。這樣的使用方法會(huì)帶來(lái)比較明顯的性能下降,其性能反而不如將客戶(hù)機(jī)分配2個(gè)(或4個(gè))vCPU,而且如果客戶(hù)機(jī)中負(fù)載過(guò)重時(shí),可能會(huì)讓整個(gè)系統(tǒng)運(yùn)行不穩(wěn)定。不過(guò),在并非100%滿(mǎn)負(fù)載的情況下,一個(gè)(或多個(gè))有4個(gè)vCPU的客戶(hù)機(jī)運(yùn)行在擁有4個(gè)邏輯CPU的宿主機(jī)中并不會(huì)帶來(lái)明顯的性能損失。
13、總的來(lái)說(shuō),KVM允許CPU的過(guò)載使用,但是并不推薦在實(shí)際的生產(chǎn)環(huán)境(特別是負(fù)載較重的環(huán)境)中過(guò)載使用CPU。在生產(chǎn)環(huán)境中過(guò)載使用CPU,有必要在部署前進(jìn)行嚴(yán)格的性能和穩(wěn)定性測(cè)試。
14、KVM中內(nèi)存也是允許過(guò)載使用(over-commit)的,KVM能夠讓分配給客戶(hù)機(jī)的內(nèi)存總數(shù)大于實(shí)際可用的物理內(nèi)存總數(shù)。
15、一般來(lái)說(shuō),有如下三種方式來(lái)實(shí)現(xiàn)內(nèi)存的過(guò)載使用:
(1)內(nèi)存交換(swapping):用交換空間(swap space)來(lái)彌補(bǔ)內(nèi)存的不足。
(2)氣球(ballooning):通過(guò)virio_balloon驅(qū)動(dòng)來(lái)實(shí)現(xiàn)宿主機(jī)Hypervisor和客戶(hù)機(jī)之間的協(xié)作來(lái)完成。
(3)頁(yè)共享(page sharing):通過(guò)KSM(Kernel Samepage Merging)合并多個(gè)客戶(hù)機(jī)進(jìn)程使用的相同內(nèi)存頁(yè)。
其中,第一種內(nèi)存交換的方式是最成熟的(Linux中很早就開(kāi)始應(yīng)用),但不推薦使用虛擬內(nèi)存swap。
16、KVM(模塊):
modprobe 命令加載 KVM 模塊,如果用 RPM 安裝 KVM 軟件包,系統(tǒng)會(huì)在啟動(dòng)時(shí)自動(dòng)加載模塊。加載了模塊后,才能進(jìn)一步通過(guò)其他工具創(chuàng)建虛擬機(jī)。但僅有 KVM 模塊是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)橛脩?hù)無(wú)法直接控制內(nèi)核模塊去做事情,還必須有一個(gè)用戶(hù)空間的工具。
17、QEMU (管理工具):
QEMU 是一個(gè)強(qiáng)大的虛擬化軟件,它可以虛擬不同的 CPU 構(gòu)架。比如說(shuō)在 x86 的 CPU 上虛擬一個(gè) Power 的 CPU,并利用它編譯出可運(yùn)行在 Power 上的程序。
18、QEMU-KVM (管理工具):
KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 內(nèi)核模塊的用戶(hù)空間工具 QEMU-KVM。所以 Linux 發(fā)行版中分為 內(nèi)核部分的 KVM 內(nèi)核模塊和 QEMU-KVM 工具。
19、Libvirt、virsh、virt-manager(管理工具):
RedHat 為 KVM 開(kāi)發(fā)了更多的輔助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多種語(yǔ)言接口的 API,為各種虛擬化工具提供一套方便、可靠的編程接口,不僅支持 KVM,而且支持 Xen 等其他虛擬機(jī)。使用 libvirt,你只需要通過(guò) libvirt 提供的函數(shù)連接到 KVM 或 Xen 宿主機(jī),便可以用同樣的命令控制不同的虛擬機(jī)了。Libvirt 不僅提供了 API,還自帶一套基于文本的管理虛擬機(jī)的命令virsh,你可以通過(guò)使用 virsh 命令來(lái)使用 libvirt 的全部功能。但最終用戶(hù)更渴望的是圖形用戶(hù)界面,這就是 virt-manager。它是一套用 python 編寫(xiě)的虛擬機(jī)管理圖形界面,用戶(hù)可以通過(guò)它直觀地操作不同的虛擬機(jī)。Virt-manager 就是利用 libvirt 的 API 實(shí)現(xiàn)的。
20、在 KVM 模型中,每一個(gè)虛擬機(jī)都是一個(gè)由 Linux 調(diào)度程序管理的標(biāo)準(zhǔn)進(jìn)程,你可以在用戶(hù)空間啟動(dòng)客戶(hù)機(jī)操作系統(tǒng)。一個(gè)普通的 Linux 進(jìn)程有兩種運(yùn)行模式:內(nèi)核和用戶(hù)。 KVM 增加了第三種模式:客戶(hù)模式(有自己的內(nèi)核和用戶(hù)模式)。
21、內(nèi)核模塊導(dǎo)出了一個(gè)名為 /dev/kvm 的設(shè)備,它可以啟用內(nèi)核的客戶(hù)模式(除了傳統(tǒng)的內(nèi)核模式和用戶(hù)模式)。有了 /dev/kvm 設(shè)備,VM 使自己的地址空間獨(dú)立于內(nèi)核或運(yùn)行著的任何其他 VM 的地址空間。
到此,關(guān)于“KVM虛擬化是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!