1. 程式人生 > >KVM虛擬化特性及安裝

KVM虛擬化特性及安裝

虛擬化 KVM 特性 局限性 組件

首先,虛擬化技術有兩種類型的實現,方式如下:

Type-I:

hypervisor --> vm

Type-II:

host --> vmm --> vms

實際上,這和當前主流的兩大虛擬化技術也正好匹配,他們就是Xen和KVM,

Xen:

hypervisor, Dom0

KVM:

Kernel-based Virtual Machine

本篇將從KVM開始,記錄KVM的組件、特性以及實現方式。


KVM特性:

內存管理:

將分配給vm的內存交換至swap

支持使用Huge Page

支持使用Intel EPT或AMD RVI技術完成內存地址映射:GVA-->GPA-->HPA

支持KSM(Kernel Same-page Merging)

硬件支持:

取決於Linux內核

存儲:

本地存儲

網絡附加存儲

存儲區域網絡

分布式存儲,例如GlusterFS

實時遷移:

支持的GuestOS:

Linux,Windows,OpenBSD,FreeBSD,OpenSolaris

設備驅動:

IO設備的完全虛擬化:模擬硬件

IO設備的半虛擬化:在GuestOS中安裝驅動:virtio

virtio-blk, virtio-net, virtio-pci, virtio-console, virtio-ballon

KVM局限性:

一般局限性:

CPU overcommit:

時間記錄難以精確,依賴於時間同步機制

MAC地址:

VM量特別大時,存在沖突的可能性

實時遷移

性能局限性


KVM模塊載入後的系統的運行模式:

內核模式:GuestOS執行I/O類操作,或其他的特殊指令操作都有內核來操作。稱作“來賓-內核”模式。

用戶模式:代表GuestOS請求I/O類操作。

來賓模式:GuestOS的非I/O類操作,事實上,它被稱作虛擬機的用戶模式更貼切。稱作“來賓-用戶”模式。

KVM的組件:

兩類組件:

/dev/kvm:工作於hypervisor,在用戶空間可通過ioctl()系統調用來完成VM創建、啟動等管理功能:它是一個字符設備。

功能:可以創建vm、為VM分配內存、讀寫vcpu的寄存器、向vcpu註入中斷、運行vcpu等等。

qemu進程:工作於用戶空間,主要用於實現模擬PC機的IO設備。

KVM的工具棧:

qemu:

qemu-kvm

qemu-img

libvirt:

GUI: virt-manager, virt-viewer

CLI: virt-install, vrish


QEMU主要用到以下幾個部分:

處理器模擬器

仿真IO設備

關聯模擬的設備至真實設備

調試器

與模擬器交互的用戶接口

KVM在CentOS 6.5上的安裝:

1、首先確認CPU是否支持HVM

grep -E --color=auto "(vmx|svm)" /proc/cpuinfo

技術分享圖片

2、裝載模塊

modprobe kvm

modprobe kvm-intel

技術分享圖片

3、驗證

ll /dev/kvm

技術分享圖片

因為從2.6.20版本開始,KVM已經被收入Linux內核,所以安裝KVM顯得很簡單,但是要使用KVM進行虛擬機的管理還需要安裝KVM的管理工具。


KVM虛擬化特性及安裝