KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程

序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机

KVM在2007年2月被收录进Linux 2.6.20版本的内核

虚拟化分为两种类型:

    1:Hypervisor直接运行在硬件上   (例如:kvm)

    2:Hypervisor运行在OS上    (例如:vmware)

kvm技术比较奇葩只要当前系统(Linux)装载了KVM模块, Linux内核就直接变成Hypervisor, Hypervisor可以直接在系统上运行相关

的管理命令来创建、删除…KVM虚拟机,每个创建出来的虚拟机又有自己的用户空间和内核空间

注意在原有系统上执行各种命令是不受kvm模块管理的

那虚拟机上的cpu是如何虚拟出来的?

就是由原有的内核中的一个线程,通过kvm模块辅助完成,比如一个虚拟机的一颗cpu运行就是通过原有内核中的一个线程通过kvm模

块辅助在内核中完成,两颗cpu就是用两个线程,从原有内核的角度来看虚拟cpu就是一个线程

如果kvm虚拟机的用户空间进行了i/o调用,是怎么个过程?(我们知道i/o调用一般都是特权指令)

首先用户空间,会发起系统调用,将请求转交给自己的内核空间,内核空间再转交给原有的用户空间的qemu应用程序所模拟出来的各

种硬件设备,再由qemu转交给原有内核空间完成真正的i/o系统调用,如果非i/o类的特权指令则直接交给硬件cpu处理,这一特性使得

kvm技术性能的损失和真正的物理机相比小于10%

kvm的两类组件:

    /dev/kvm:工作于hypervisor,在用户空间可通过ioctl(),系统调用来完成VM创建、启动等管理功能;它是一个字符设备

    功能:创建VM、为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、运行VCPU等等

    qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备

KVM的管理工具栈:qemu:qemu-kvm,qemu-img 和libvirt:CLI: virt-install, virsh  (根据自己的喜好选择一个就行,我喜

欢qemu)

  QEMU主要提供了以下几个部分:
      处理器模拟器
      仿真IO设备
      关联模拟的设备至真实设备;
      调试器
      与模拟器交互的用户接口

安装:

    (1) 确保CPU支持HVM(硬件虚拟化)

      如果是虚拟机做实验确保下面此项勾选

      

     如何查看:grep -E --color=auto "(vmx|svm)" /proc/cpuinfo   如存在vmx或svm则支持硬件虚拟化

      (2) 装载模块

      modprobe kvm-intel  或者amd根据cpu类型选择

    (3) 验正:

      

      /dev/kvm 是否存在此文件 

    

如何使centos6支持虚拟化:

      

Virtualization:提供qemu-kvm

Virtualization Client:提供python-virtinst, virt-manager, virt-viewer

Virtualization Platform:提供libvirt, libvirt-client

Virtualization Tools:提供libguestfs

如果使用qemu-kvm管理的话。直接yum -y install qemu-kvm就行了

/usr/libexec/qemu-kvm  就是它的管理命令

  ln -sv /usr/libexec/qemu-kvm /usr/bin/  创建链接文件

现在就可以直接使用qemu-kvm命令创建管理虚拟机了,使用qemu-kvm --help查看帮助选项

补充:centos7上安装也一样没什么区别

所谓的Ias云,其实就是一个横跨N个物理节点,管理N*N个虚拟机实例的工具,当前市面上还有许多kvm管理工具像Openstack就是

最总量级的一个kvm虚拟机管理工具

          

kvm介绍的更多相关文章

  1. KVM 介绍(1):简介及安装

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  2. kvm介绍 转载

    KVM 介绍(1):简介及安装 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I ...

  3. 001.KVM介绍

    KVM介绍可参考: http://liqingbiao.blog.51cto.com/3044896/1740516 http://koumm.blog.51cto.com/703525/128879 ...

  4. KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  5. KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 (Nova Instances Snapshot Libvirt)

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  6. KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  7. KVM 介绍(5):libvirt 介绍 [ Libvrit for KVM/QEMU ]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  8. KVM 介绍(4):I/O 设备直接分配和 SR-IOV [KVM PCI/PCIe Pass-Through SR-IOV]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  9. KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtualizaiton Para-virtualization]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  10. KVM 介绍(2):CPU 和内存虚拟化

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

随机推荐

  1. 关于在页面总嵌入iframe,ifram中发起请求,服务器端的session为空问题解决

    本文抄袭:http://blog.csdn.net/ray_adon/article/details/6960724 在做项目是 是用了iframe,iframe发起ajax请求,服务器端报sessi ...

  2. 利用python yielding创建协程将异步编程同步化

    转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...

  3. [CF 475D] CGCDSSQ (RMQ)

    题目链接:http://codeforces.com/contest/475/problem/D 是昨天晚上的CF题目,题意是给定你n个数,问你所有子区间内的最小公约数是x的个数是多少 问的康神,了解 ...

  4. sql 获取filename

    select Substring(ORIGINAL_IMAGE,len(ORIGINAL_IMAGE)-charindex('/',reverse(ORIGINAL_IMAGE))+2,len(ORI ...

  5. OC基础(10)

    id类型 SEL类型 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !im ...

  6. TesCase-GUI(图形用户界面)测试

    GUI测试是功能测试的一种表现形式.不仅要考虑GUI本身的测试,也要考虑GUI所表现的系统功能的测试.   GUI应具有的要素 1.符合标准和规范 2.直观性 (1)用户界面是否洁净.不唐突.不拥挤? ...

  7. 初探接口测试框架--python系列3

    点击标题下「微信」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  8. 慕课网-安卓工程师初养成-4-9 Java循环语句之 for

    来源:http://www.imooc.com/code/1425 Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换. 语法: 执行过程: ...

  9. MySQL(二)

    一.外键 外键是设置当前表中的某一列与别一数据表中的主键列关联.主要目的是控制与外键表中的数据,保持数据一致性,完整性,也就是说:当前表中这一列的数据必须是关联外键列中的某一数据,而且相关联的两个数据 ...

  10. multi2sim,booksim简介

    booksim是周期精确互连网络仿真器,设计用来配合"Principles and Practices of Interconnection Networks"课程教学,仿真器采用 ...