• kvm介绍


    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虚拟机管理工具

     

              

  • 相关阅读:
    # ES6基础
    # yarn简单使用
    # laravel框架中的配置
    需求概述开发进度09
    需求概述开发进度08
    需求概述开发进度07
    需求概述开发进度06
    需求概述开发进度05
    需求概述开发进度04
    需求概述开发进度03
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5525209.html
Copyright © 2020-2023  润新知