KVM Qemu Libvirt三者之間的關係

2021-08-04 18:46:29 字數 1971 閱讀 5110

原始出處 、作者資訊和本宣告。否則將追究法律責任。

qemu

qemu

是乙個模擬器,它向

guest os

模擬cpu

和其他硬體,

guest os

認為自己和硬體直接打交道,其實是同

qemu

模擬出來的硬體打交道,

qemu

將這些指令轉譯給真正的硬體。

由於所有的指令都要從

qemu

裡面過一手,因而效能較差

是linux核心的模組,它需要cpu的支援,採用硬體輔助虛擬化技術

intel-vt

,amd-v

,記憶體的相關如intel的ept和amd的rvi技術,

guest os

的cpu

指令不用再經過

qemu

轉譯,直接執行,大大提高了速度,

kvm通過

/dev/kvm

暴露介面,使用者態程式可以通過

ioctl

函式來訪問這個介面。見如下偽**:

12

3

4

5

6

7

8

9

10

open("/dev/kvm")

ioctl(kvm_create_vm)

ioctl(kvm_create_vcpu)

for(;;)

}

kvm核心模組本身只能提供cpu和記憶體的虛擬化,所以它必須結合qemu才能構成乙個完成的虛擬化技術,這就是下面要說的qemu-kvm。

qemu-kvm

qemu

將kvm

整合進來,通過

ioctl

呼叫/dev/kvm

介面,將有關

cpu指令的部分交由核心模組來做。

kvm負責

cpu虛擬化

+記憶體虛擬化,實現了

cpu和記憶體的虛擬化,但

kvm不能模擬其他裝置。

qemu

模擬io

裝置(網絡卡,磁碟等),

kvm加上

qemu

之後就能實現真正意義上伺服器虛擬化。因為用到了上面兩個東西,所以稱之為

qemu-kvm。

qemu

模擬其他的硬體,如

network, disk

,同樣會影響這些裝置的效能,於是又產生了

pass through

半虛擬化裝置

virtio_blk, virtio_net

,提高裝置效能。

是目前使用最為廣泛的對

kvm虛擬機器進行管理的工具和

api。

libvirtd

是乙個daemon

程序,可以被本地的

virsh

呼叫,也可以被遠端的

virsh

呼叫,libvirtd

呼叫qemu-kvm

操作虛擬機器。

本文出自 「幹楠有」 部落格,請務必保留此出處

KVM Qemu Libvirt三者之間的關係

在所謂的kvm技術中,應用到的其實有2個東西 qemu kvm kvm負責cpu虛擬化 記憶體虛擬化,實現了cpu和記憶體的虛擬化,但kvm不能模擬其他裝置 qemu是模擬io裝置 網絡卡,磁碟 kvm加上qemu之後就能實現真正意義上伺服器虛擬化。因為用到了上面兩個東西,所以一般都稱之為qemu ...

KVM Qemu Libvirt三者之間的關係

qemu qemu 是乙個模擬器,它向 guest os 模擬cpu 和其他硬體,guest os 認為自己和硬體直接打交道,其實是同 qemu 模擬出來的硬體打交道,qemu 將這些指令轉譯給真正的硬體。由於所有的指令都要從 qemu 裡面過一手,因而效能較差 kvm是linux核心的模組,它需要...

三消遊戲(三)

後面一些更改就是實現下落下標更改的方法。這個方法要在一開始檢測三色的時候呼叫 with3arr this.filterdelsame with3arr,return with3arrupdatecellfalldownnum function cell 還要刪除陣列裡的相同元素 filterdels...