CentOS7下安装KVM
怕自己记性差,就写了这篇博客,以方便自己以后阅读。1.1 KVM 架构 KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Li
怕自己记性差,就写了这篇博客,以方便自己以后阅读。
1.1 KVM 架构

- Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 模式下运行。
- KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。
- QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过 IOCTL /dev/kvm 设备和 KVM 交互。
KVM 是实现拦截虚机的 I/O 请求的原理:
QEMU-KVM:
KVM:
- 首先初始化内部的数据结构;
- 做好准备后,KVM 模块检测当前的 CPU,然后打开 CPU 控制及存取 CR4 的虚拟化模式开关,并通过执行 VMXON 指令将宿主操作系统置于虚拟化模式的根模式;
- 最后,KVM 模块创建特殊设备文件 /dev/kvm 并等待来自用户空间的指令。
通过上面,我们知道KVM其实就是一个基于Linux内核的虚拟机来的,说白了,就还是一个程序来的,运行的话只是Linux下的一个进程。
准备之前:
1、网络总得配置好吧,还有yum源,这些也得配置好
不过一般系统这些都给你提前配置好的,如果怕没配置好的话,就ping下,看下网络是否已经可以连接了,如果不可以话,就得
vim /etc/sysconfig/network-scripts/etho进入这里面改东西了,将BOOTPROTO="dhcp"改为static,这个是代表获取网络ip的方式来的,改为static的比较好,如果没改的话,就有可能连接不到网络,然后再将ip,默认网口啥的加进去,再保存退出,然后systemctl restart network.service重启网路服务就好了,如果还是不行,重启系统就好啦
接着就是yum的配置,额,这个挺麻烦的,请自行百度。
接下来就是KVM(处于开发中的最新的开发代码)的安装和配置了
1.查cpu是否支持VT
egrep '(vmx|svm)' --color=always /proc/cpuinfo
2.检查内核模块是否加载
lsmod | grep kvm
3.安装KVM
yum install kvm libvirt python-virtinst qemu-kvm virt-viewer tunctl bridge-utils avahi dmidecode qemu-kvm-tools virt-manager qemu-img virt-install net-tools libguestfs-tools -y
4.查看kvm服务是否正常,目前没任何虚拟机,所以没有内容显示
virsh -c
5.为虚拟机创建网桥 首先备份一下网卡设置
mv /etc/sysconfig/network-scripts/ifcfg-enp3s0 /root/ifcfg-enp3s0.bak
创建一个文件 /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=Bridge BOOTRPOTO=static IPADDR=208.66.77.146 NETMASK=255.255.255.248 GATEWAY= 208.66.77.145 ONBOOT=yes
修改 /etc/sysconfig/network-scripts/ifcfg-enp3s0为
DEVICE=enp3s0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes BRIDGE=br0
重启网络
qemu:///system list/etc/init.d/network restart
更多推荐
所有评论(0)