首先说一下,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等设备。



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


就通过这样的四大部,虚拟机就可以启动起来了。
在这里我们就从安装开始:

准备工作:首先说一下我在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
如果上面命令执行后什么都没有输出,那么就在虚拟机设置对话框下修改成下图这样

注意:是在关机的情况下设置的,然后开机后再执行上面的命令,就会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的图形界面下打开虚拟系统管理器

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



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


然后点开始安装,就会进去我通常装ubuntu的安装界面
我们也可以在终端下看一下:
[root@localhost ubuntu]# virsh
欢迎使用 virsh,虚拟化的交互式终端。

输入:’help’ 来获得命令的帮助信息
‘quit’ 退出

virsh # list

Id 名称 状态

2 KVM_ubuntu12.04 running

virsh #

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

然后使用命令或者使用图形按钮都可以将这个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

然后我们打开centos7的图形界面就可以像平常一样安装上面的这个ubuntu12.04系统了。
四、Ps:创建的这个kvm虚拟机就可以完全使用在openstack上,openstack支持的就是qcow2格式的镜像。

虚拟化技术之KVM,搭建KVM(详细)相关推荐

  1. KVM虚拟化技术介绍及搭建

    目录 前言 一.虚拟化 1.1 虚拟化发展历史 1.2 虚拟化分类 1.2.1 架构分类 1.2.2 虚拟化程度分类 1.3 虚拟化的优势及劣势 1.3.1 优势 1.3.2 劣势 二.KVM 2.1 ...

  2. 虚拟化技术比较:OpenStack、KVM、VMWare和Docker

    一.虚拟化 1.什么是虚拟化 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内 ...

  3. 虚拟化技术的演变过程和KVM虚拟化的简介

    主要介绍虚拟化技术的历史演进过程和KVM虚拟化的一些特点. 0.简介 虚拟化技术的演变过程可以分为软件模拟.虚拟化层翻译.容器虚拟化三个大的阶段.其中,虚拟化层翻译又可以分为:软件捕获翻译(软件全虚拟 ...

  4. KVM详细介绍及搭建KVM虚拟化平台构建Centos7系统

    目录 一.KVM简介 1.发展历程 2.原理简介 3.虚拟化类型 4.虚拟化技术的优劣 5.KVM实际应用 二.KVM 运行时的三种模式 三.kvm部署过程 1.安装KVM前的环境部署 2.cento ...

  5. 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较

    1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...

  6. Docker容器与虚拟化技术——部署KVM虚拟化平台

    部署KVM虚拟化平台 一.搭建KVM虚拟化平台 1.前置知识点 (1)什么是虚拟化         把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机 ...

  7. linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    (1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...

  8. 采用超融合搭建企业私有云的虚拟化技术知识储备

    回老家,转行到企业IT运维.第一个任务便是非常重大的活儿--企业信息化系统建设.由于公司是大型集团企业,公司架构庞大复杂,从事传统行业,信息化程度相对落后.所以使得任务非常重要.又异常艰巨,我们领导压 ...

  9. KVM_虚拟化技术安装详细教程

    KVM虚拟化 一.虚拟化技术 1.概述 2.kvm虚拟化类型 1)全虚拟化 2)半虚拟化 3)直通 3.kvm特性 优势: 劣势: 4.KVM模式 5.KVM虚拟化架构/三种模式 6.KVM原理 6. ...

  10. VirtFS 虚拟化技术简介

    背景 在虚拟化领域中,向虚拟机提供虚拟化设备的技术从系统层次上,可以分为三种:硬件层虚拟化.驱动层虚拟化.系统层虚拟机.这三种技术也是按照这种先后排序依次出现的,后一种技术是为弥补前一种技术的不足而被 ...

最新文章

  1. keytool生成证书_创建自签名ssl证书,Java生产jks证书
  2. OVS 各功能调用过程(三十一)
  3. linux系统UDP的socket通信编程
  4. basequickadapter详解_BaseRecyclerViewAdapter(持续更新!)
  5. 【论文翻译】HeteSim:异构网络中相关性度量的通用框架
  6. 创建物化视图commit_oracle慎用基于on commit刷新物化视图的方式(一)
  7. 基于Websocket草案10协议的升级及基于Netty的握手实现
  8. TP5.0 PHPExcel 数据表格导出导入(原)
  9. 《数字摄影与摄像》学习笔记——摄影课理论基础
  10. 理清网站数据分析思路导图
  11. 两个队列实现一个栈(C++实现)
  12. 个人github地址 https://github.com/Gerry1218
  13. iPad/iPhone内存管理四之viewDidUnload/dealloc详细解说
  14. jquery绑定Esc键事件
  15. 对计算机专业学生的忠告
  16. 使用vue,实现前端导入excel数据
  17. firefox linux 中文字体,Ubuntu下的Firefox字体配置方案
  18. make menuconfig学习
  19. NVIDIA TX2--5--NVIDIA Jetson TX2 挂载128G 的SD卡
  20. Weather天气相关图像数据集统计简介

热门文章

  1. 【IoT】蓝牙 GAP 和 GATT 协议简析
  2. 学习Nginx看这篇就够了
  3. ppt编辑器android,ppt编辑器
  4. 0-8 Vue进阶属性(directives、mixins、extends)
  5. 全局地址池 与接口地址池
  6. 【计算机网络】Socket编程
  7. cv2.putText()函数中各个参数含义
  8. Matlab优化函数linprog的使用
  9. SAP ECC 6.0 下载以及安装
  10. java线程状态(Java线程状态和系统线程)