本文共 2723 字,大约阅读时间需要 9 分钟。
当LINUX加载KVM内核模块时(kvm.ko),那么它就会转换为一个虚拟化的服务器(hyervisor),它也提供了虚拟化的能力和指定的处理模块, kvm-inter.ko 或kvm-amd.ko
是一个开源的主机仿真器,它主要是仿真那些硬件,就像模拟器一样。
由于以上两个QEMU仿真硬件时速度可能有点慢,KVM又相比QEMU的相对快一点,那么如何将两者结合在一起?所以出来了一个叫做qemu-kvm。qemu-kvm可以直接和KVM模块交互和安全在CPU上执行指令,而不再需要中间的转换。
libvirt它是可以调用qemu-kvm对guest 进行管理。为什么qemu-kvm可以管理,还要用libvirt去调用qemu-kvm来管理而不直接用qemu-kvm管理呢。现对Libvirt作详细解释:
libvrit是位于用户和hypervisor之间的API库。 并且它支持几乎市面上所有主流虚拟化。
KVM/QEMU Linux HypervisorXen Hypervisor on Linux 和 Solaris hostsLXC Linux Container systemOpenVZ Linux Container systemUserMode Linux paravirtualized kernelVirtualBox HypervisorVmware ESX 和GSX hypervisorsVMware Workstation 和Player HypervisorsMicrosoft Hyper-V HypervisorIBM PowerVM HypervisorParallels HypervisorBhyve Hypervisor下面的图可以很好的说明用户,Libvirt和qemu-kvm之间的关系。[root@localkvm-1 ~]# grep --color -Ew 'svm|vmx|lm' /proc/cpuinfo
AMD CPU对应的虚拟化是AMD-V,Inter 对应的虚拟化技术是VT-X[root@localkvm-1 ~]# lsmod | grep kvm
kvm_intel 170181 0 kvm 554609 1 kvm_intelirqbypass 13503 1 kvm也可以直接安装虚拟化的组,安装命令: yum groupinstall "virtualization" 但不建议,我们用到什么功能装什么包即可。
(校验系统的配置)
下面有一个警告的,不太符合virt的能力,需要我们在kernel中开启。
vi /etc/default/grub
GRUB_CMDLINE_LINUX="nouveau.modeset=0 rd.driver.blacklist=nouveau nomodeset rhgb quiet xhci-hcd.quirks=262144 kvm-intel.nested=1 intel_iommu=on"我们再次进行校验:
virsh命令下面还有很多分类。我们这里只讲下比较常用的分类命令。
[root@localkvm-1 ~]# virsh nodeinfo
查看我们的虚拟机最大可以支持多少个CPU:
[root@kvmHOST ~]# virsh domcapabilities | grep -i max<vcpu max='255'/>查看虚拟机在host上可以使用的设备类型:
[root@kvmHOST ~]# virsh domcapabilities | grep diskDevice -A 5<enum name='diskDevice'><value>disk</value><value>cdrom</value><value>floppy</value><value>lun</value></enum>报错信息:virt-manager:2434): Gtk-WARNING **: cannot open display:
这是由于缺少x11图形界面转发。解决方法:yum install xorg-x11-drv*
然后断开我们的终端连的,重新连接一次,执行以下命令:[root@localkvm-1 ~]# virt-manager 显示如下图形:转载于:https://blog.51cto.com/aishangwei/2124487