虚拟化技术之KVM,搭建KVM(详细)

首先说一下,KVM是基于硬件辅助的开源全虚拟化解决方案 

一、KVM(基于内核的虚拟机)【刚开始是一家以色列的公司开发的,后来红帽觉得KVM很有前景,就把KVM收购了】。 

二、KVM包含了一个内核加载模块,是一个.ko文件,这个KVM模块只负责的是:1、虚拟机的虚拟CPU也就是vCPU 2、对虚拟内存进行管理和调度。还有一个就是下面说的QEMU-KVM,这个QEMU-KVM就是通过修改QEMU代码而得出的专门用来创建和管理虚拟机的管理工具,是为了KVM能更好的和内核打交道。VM 运行期间,QEMU 会通过 KVM 模块提供的系统调用进入内核,由 KVM 负责将虚拟机置于处理的特殊模式运行。 

三、但是我们知道虚拟机只有cpu和内存是完全不够的,他还要有外设,那么如何管理所需要的这些外设呢: 

首先这些外设分为真实存在的外设和虚拟的外设,真实的外设需要利用linux系统内核来管理。一般来说我们使用的还是虚拟的外设,而虚拟机要与虚拟的外设交互的话,就需要依靠虚拟化技术的另外一个项目QEMU,很多设备都采用了QEMU的虚拟外设。

从而我们就会有一个结论:1、KVM本身只关注虚拟机调度和内存管理这两个方面 

2、外设的任务交给我们上面说的linux 内核或者是QEMU。 所以KVM就是一个轻量级的Hypervisor。 

二、安装KVM 

KVM需要硬件虚拟化的特性的支持,因此要注意的是在安装KVM之前,首先要在BIOS中将CPU虚拟化开启,然后就可以使用命令安装KVM 

Kvm架构: 

Kvm架构主要由两个模块来组成:kvm模块和QEMU-KVM 由下图可以看到:kvm模块集成在了linux的内核里面,它为一个虚拟机提供的是cpu和mem而QEMU-KVM在linux的用户空间层,它为一个虚拟机提供的是io等设备。 

 虚拟化技术之KVM,搭建KVM(详细) 资料 1

 虚拟化技术之KVM,搭建KVM(详细) 资料 2

 虚拟化技术之KVM,搭建KVM(详细) 资料 3

QEMU-KVM通过/dev/kvm接口来调用kvm: 

 虚拟化技术之KVM,搭建KVM(详细) 资料 4

 虚拟化技术之KVM,搭建KVM(详细) 资料 5

就通过这样的四大部,虚拟机就可以启动起来了。 

在这里我们就从安装开始:

准备工作:首先说一下我在vmware下的centos7上安装KVM,并且我的centos7已经安装好了vnc_server,我可以在我的windows下远程访问;还有就是我在我的centos7的/opt/ubuntu/下放了一个准备后面创建KVM虚拟机的iso文件(ubuntu12.04系统的镜像文件) 

一、首先得一步就是确定我的centos7是否支持KVM虚拟化: 

[root@localhost ~]# egrep -o ‘(vmx|svm)’ /proc/cpuinfo 

vmx 

如果上面命令执行后什么都没有输出,那么就在虚拟机设置对话框下修改成下图这样 

 虚拟化技术之KVM,搭建KVM(详细) 资料 6

注意:是在关机的情况下设置的,然后开机后再执行上面的命令,就会ok了。

二、使用命令安装QEMU,libvirt等 

yum install -y qemu-kvm qemu-img virt-manager virt-install virt-viewer libguest* libvirt* 

yum groupinstall -y virtualization-client virtualization-platform virtualization-tools 

就这两个命令,把这些都装上 

三、看看安装好了没: 

[root@localhost ~]# virsh 

欢迎使用 virsh,虚拟化的交互式终端。 

输入:’help’ 来获得命令的帮助信息 

‘quit’ 退出 

virsh # list

Id 名称 状态

virsh # quit 

[root@localhost ~]# 

使用virsh命令看一下,都ok 

Ps:virsh(虚拟 shell),基于命令行的管理工具,可以实现简单的资源管理。它构建于libvirt之上,允许以交互方式使用多个libvirt功能。【如果对libvirt不太了解的话,可以看看我的关于libvirt的文章】


当到这里的时候:我们就可以创建KVM虚拟机了,我们可以使用命令或者然后我们就在centos7的图形界面下打开虚拟系统管理器 

 虚拟化技术之KVM,搭建KVM(详细) 资料 7

然后点击新建,再选择使用iso镜像创建【就是一开始说的我放在/opt/ubuntu/下的ubuntu12.04的iso镜像】 

 虚拟化技术之KVM,搭建KVM(详细) 资料 8

 虚拟化技术之KVM,搭建KVM(详细) 资料 9

 虚拟化技术之KVM,搭建KVM(详细) 资料 10

然后就是后面的自定义设置了,这里我就将我做了修改的地方发一下截图: 

 虚拟化技术之KVM,搭建KVM(详细) 资料 11

 虚拟化技术之KVM,搭建KVM(详细) 资料 12

然后点开始安装,就会进去我通常装ubuntu的安装界面 

我们也可以在终端下看一下: 

[root@localhost ubuntu]# virsh 

欢迎使用 virsh,虚拟化的交互式终端。

输入:’help’ 来获得命令的帮助信息 

‘quit’ 退出

virsh # list

Id 名称 状态

2 KVM_ubuntu12.04 running

virsh #

安装成功后可以进入这个KVM虚拟机看看: 

 虚拟化技术之KVM,搭建KVM(详细) 资料 13

然后使用命令或者使用图形按钮都可以将这个KVM虚拟机给关闭 

我使用命令关闭这个虚拟机: 

virsh # list

Id 名称 状态

2 KVM_ubuntu12.04 running 

virsh # shutdown 

错误:命令 ‘shutdown’ 需要 选项 

virsh # shutdown KVM_ubuntu12.04 

域 KVM_ubuntu12.04 被关闭 

virsh #

三、另外,我们也是可以用命令来安装KVM虚拟机: 

[root@localhost ~]# virt-install \


–name vm_2 \ 

–ram=1024 \ 

–vcpus=1 \ 

–disk path=/opt/ubuntu/vm_2.qcow2,size=6 \ 

–cdrom /opt/ubuntu/ubuntu-12.04.5-desktop-amd64.iso 

WARNING 需要图形,但未设置 DISPLAY。未运行 virt-viewer。 

WARNING 没有为该虚拟机启动控制台,默认为 –wait -1

开始安装…… 

正在分配 ‘vm_2.qcow2’ | 6.0 GB 00:00:00 

创建域…… 

域安装正在进行。请等待 以便安装完成。 | 0 B 00:00:00 

 虚拟化技术之KVM,搭建KVM(详细) 资料 14

然后我们打开centos7的图形界面就可以像平常一样安装上面的这个ubuntu12.04系统了。 

四、Ps:创建的这个kvm虚拟机就可以完全使用在openstack上,openstack支持的就是qcow2格式的镜像。

联系我们

4000144014

在线咨询:点击这里给我发消息

邮件:kefu@siyi.cn

地址:请联系各省驻派的客户经理


海外用户请通过以下方式联系:

境外邮件:service@siyi.hk

Telegram:@ChinaCloud

QR code