什么是KVM
KVM: Kernel-based Virtual Machine
结构简单,包含两个部分:
- 设备驱动/dev/kvm
- 针对模拟PC硬件的用户空间组件
- KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。
架构图

KVM特性
嵌入到Linux正式Kernel(提高兼容性)
- 代码级资源调用(提高性能)
- 虚拟机就是一个进程(内存易于管理)
- 直接支持NUMA技术(提高扩展性)
- ———RedHat 收购KVM——-
- 保持开源发展模式
- 更好的商业支持和服务保障
KVM与QEMU
KVM介绍:
对于KVM来说,其是一款支持虚拟机技术,而且是Linux内核中的一个功能模块。它在Linux2.6.20之后的任何Linux分支中都被支持。它还有一个条件,对硬件要求的条件,必须达到一定标准的硬件架构。对于Intel-VT与AMD-V都是支持的。对于是否支持也可以通过命令行查看:egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo。如果有任何内容则说明当期硬件架构是支持KVM的,否则就不支持。另外,就算支持,但是在bios中是默认设置不打开该功能的,所以你还要去bios设置其为enable。当设置成功之后,还需要关机一次,注意是关机而不是重启。否则该设置的更改就不起效。
QEMU:
QEMU是什么。其实它也是一款虚拟化技术,就算不使用KVM,单传的QEMU也可以完全实现一个虚拟机。那为何还会有QEMU-KVM这个名词那。是因为虽然KVM的技术已经相当成熟而且可以对很多东西进行隔离,但是在某些方面还是无法虚拟出真实的机器。比如对网卡的虚拟,那这个时候就需要另外的技术来做补充,而QEMU-KVM则是这样一种技术。它补充了KVM技术的不足,而且在性能上对KVM进行了优化。

Red-Hat企业级虚拟化解决方案

Red-Hat桌面虚拟化

基于CentOS7的安装部署
安装前准备
确保服务器开启虚拟化支持
1 2 3
| [root@localhost ~] flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb lm constant_tsc nopl nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx xsaveopt flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb lm constant_tsc nopl nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx xsaveopt
|
关闭selinux
NTP设置
1 2 3 4 5
| [root@localhost ~] 26 Dec 15:18:44 ntpdate[13806]: step time server 120.25.108.11 offset 1.377732 sec [root@localhost ~] */5 * * * * /usr/sbin/ntpdate cn.ntp.org.cn >/dev/null 2>&1
|
安装KVM
安装epel
1 2 3 4 5 6
| [root@localhost ~] Retrieving http://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm warning: /var/tmp/rpm-tmp.qzBtSd: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Preparing... Updating / installing... 1:epel-release-7-12
|
安装相关的工具
- qemu-kvm qemu-kvm-tools # QEMU的一个工具用于管理KVM
- virt-manager # 使用这个包里的工具创建虚拟机
- libvirt # 创建的虚拟机用libvirt进行管理
1 2 3 4 5 6
| [root@localhost ~] Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 9.5 kB 00:00:00 * epel: my.mirrors.theg ........
|
启动libvird
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [root@localhost ~] [root@localhost ~] ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-12-26 15:51:16 CST; 4s ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 14704 (libvirtd) Tasks: 18 (limit: 32768) CGroup: /system.slice/libvirtd.service └─14704 /usr/sbin/libvirtd Dec 26 15:51:15 localhost.localdomain systemd[1]: Starting Virtualization daemon... Dec 26 15:51:16 localhost.localdomain systemd[1]: Started Virtualization daemon. [root@localhost ~] bridge name bridge id STP enabled interfaces virbr0 8000.5254005a844f yes virbr0-nic
|
检查kvm模块是否加载
1 2 3 4 5 6
| [root@localhost ~] kvm_intel 183621 0 kvm 586948 1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]
|
至此kvm就安装部署完毕了