KVM Qemu Libvirt三者之間的關係

2021-08-11 00:04:13 字數 2023 閱讀 9544

qemu

qemu

是乙個模擬器,它向

guest os

模擬cpu

和其他硬體,

guest os

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

qemu

模擬出來的硬體打交道,

qemu

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

由於所有的指令都要從

qemu

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

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

intel-vt

,amd-v

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

guest os

的cpu

指令不用再經過

qemu

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

,kvm

通過/dev/kvm

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

ioctl

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

1

2

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三者之間的關係

原始出處 作者資訊和本宣告。否則將追究法律責任。qemu qemu 是乙個模擬器,它向 guest os 模擬cpu 和其他硬體,guest os 認為自己和硬體直接打交道,其實是同 qemu 模擬出來的硬體打交道,qemu 將這些指令轉譯給真正的硬體。由於所有的指令都要從 qemu 裡面過一手,因...

KVM Qemu Libvirt三者之間的關係

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

三消遊戲(三)

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