Jusene's Blog

kvm虚拟化技术(基础)

字数统计: 601阅读时长: 2 min
2017/08/17 Share

hypervisor

虚拟化已经成为互联网时代的主角,从云计算,容器技术,无不彰显着虚拟化技术的广阔前景,我们常见的虚拟化技术的有vmware,kvm,xen,qemu等,就目前而言vmware在虚拟化技术中份额应该是最大的,但相对的价格也是最贵的,而就开源的实现来说kvm和xen应该为我们提供了最佳的技术实践。

虚拟化的技术分类:

  1. 主机虚拟化:
  • 完全虚拟化:vware,kvm,xen(hvm)
  • 半虚拟化:xen,umi
  • 模拟:qemu
  1. 用户空间虚拟化(容器):
    docker,lxc,openvz
  2. 库虚拟化:
    wine,cywin
  3. 应用程序虚拟化:
    jvm,pvm

虚拟化技术有两种类型:

  • Type-I:hypervisor–>vm
  • Type-II:host–>vmm–>vm

kvm

KVM是基于内核的虚拟机,是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核装换为一个hypervisor:

关于kvm:

  1. kvm是开源软件,全称kernel-based virtual machine,基于内核的虚拟机。
  2. 是x86架构且硬件支持全虚拟化的Linux全虚拟化解决方案。
  3. 它包含一个为处理器提供底层虚拟化,可加载内核模块kvm.ko(kvm-intel.ko或kvm-amd.ko)。
  4. kvm还必须一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
  5. kvm能在不修改操作系统镜像的情况下同时运行多个虚拟机。
  6. 在主流的linux内核中,大都奖kvm编译进内核模块。

kvm组件:

  • /dev/kvm:工作于hypervisor,在用户空间可通过ioctl()系统调用来完成vm的管理工作;是一个字符设备
    功能:创建vm,为vm分配内存、读写vcpu的寄存器、向vcpu注入中断、运行vcpu等
  • qemu进程:工作于用户空间,主要用于实现模拟vm的IO设备

kvm的工具栈:

  1. qemu:
    qemu-kvm
    qemu-img
  2. libvirt:
    kvm hypervisor:libvirtd
    管理接口:
  • GUI:virt-manager,virt-viewer
  • CLI:virt-install,virtsh

QEMU主要提供了以下几个组件:

  • 处理器模拟器
  • 仿真io设备
  • 关联模拟的设备至真实设备
  • 调试器
  • 与模拟器交互的用户接口

GUI KVM安装配置

前提:
(1)确保CPU支持HVM
grep -r -E “(vmx|svm)” /proc/cpuinfo
(2)内核编译提供kvm模块
modprode kvm
modprode kvm-intel
modinfo kvm
(3)验证
ll /dev/kvm

1
~]# yum install -y libvirt virt-manager virt-viewer virt-install qemu-kvm
2
~]# systemctl start libvirtd
1
~]# virt-manager

CATALOG
  1. 1. hypervisor
  2. 2. kvm
  3. 3. GUI KVM安装配置