KVM和QEMU安装

KVM/QEMU简介

     KVM虚拟机是基于linux内核虚拟化,自linux2.6.20之后就集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。而xen早期则是基于软件模拟的para-virtualization,新版本是基于硬件支持的完全虚拟化。

     qemu是一种模拟处理器,现在运用最多的就是将KVM和QEMU结合起来。

     准确来说,KVM是Linux kernel的一个模块,可以用命令modprobe去加载KVM模块。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有KVM模块是不够的。因为用户无法直接控制内核去做事情,还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个power的CPU,并可利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM下载有两大部分(qemu和kvm)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系。

      如下图:

       KVM和QEMU安装

      Linux Kernel-based Virtual Machine (KVM) 是一款 Linux 开放源码虚拟化软件,基于硬件虚拟化扩展(Intel VT-   X 和 AMD-V)和 QEMU 的修改版。KVM 的实现模块又两个,分别是: kvm.ko是提供核心虚拟化的基础架构;特定于处理器的模块 kvm-intel.ko 和 kvm-amd.ko 。其设计目标是在需要引导多个未改动的 PC 操作系统时支持完整的硬件模拟。

       一个普通的linux进程有两种运行模式:内核和用户。而KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。在kvm模型中,每一个虚拟机都是由linux调度程序管理的标准进程。

       kvm由两个部分组成:一个是管理虚拟硬件的设备驱动,该驱动使用字符设备/dev/kvm作为管理接口;另一个是模拟PC硬件的用户空间组件,这是一个稍作修改的qemu进程。

下载:
    http://repoforge.eecs.wsu.edu/redhat/el6/en/x86_64/extras/RPMS/
    qemu-0.15.0-1.el6.rfx.x86_64.rpm  
    qemu-img-0.15.0-1.el6.rfx.x86_64.rpm  
    
安装参考:
    mkdir -p /data0/software/  
    cd /data0/software/  
    # 32位系统 centos 5.x   
    wget http://pkgs.repoforge.org/qemu/qemu-img-0.14.1-2.el5.rfx.i386.rpm  
    wget http://pkgs.repoforge.org/qemu/qemu-0.14.1-2.el5.rfx.i386.rpm  
    rpm -ivh qemu-img-0.14.1-2.el5.rfx.i386.rpm  
    rpm -ivh qemu-0.14.1-2.el5.rfx.i386.rpm  
    # 64位系统 centos 5.x  
    wget http://pkgs.repoforge.org/qemu/qemu-img-0.14.1-2.el5.rfx.x86_64.rpm  
    wget http://pkgs.repoforge.org/qemu/qemu-0.14.1-2.el5.rfx.x86_64.rpm  
    rpm -ivh qemu-img-0.14.1-2.el5.rfx.x86_64.rpm  
    rpm -ivh qemu-0.14.1-2.el5.rfx.x86_64.rpm  
    # 32位系统  centos 6.x  
    wget http://pkgs.repoforge.org/qemu/qemu-0.15.0-1.el6.rfx.i686.rpm  
    wget http://pkgs.repoforge.org/qemu/qemu-img-0.15.0-1.el6.rfx.i686.rpm  
    rpm -ivh qemu-0.15.0-1.el6.rfx.i686.rpm  
    rpm -ivh qemu-img-0.15.0-1.el6.rfx.i686.rpm  
    # 64位系统  centos 6.x  
    wget http://pkgs.repoforge.org/qemu/qemu-0.15.0-1.el6.rfx.x86_64.rpm  
    wget http://pkgs.repoforge.org/qemu/qemu-img-0.15.0-1.el6.rfx.x86_64.rpm  
    rpm -ivh qemu-0.15.0-1.el6.rfx.x86_64.rpm  
    rpm -ivh qemu-img-0.15.0-1.el6.rfx.x86_64.rpm  
      
      
    #安装完毕,qemu的bios的启动信息在 /usr/share/qemu下  
    #创建个虚拟机目录  
    mkdir /data0/software/win2003  
    cd /data0/software/win2003  
    #创建个10G硬盘镜像  
    qemu-img create disk.10G 10G  
      
    #假设win2003镜像位置在当前目录  
    #启动虚拟机的命令  
    #boot d 是从光驱启动 boot c 是硬盘  
    qemu -L /usr/share/qemu -m 512 -hda disk.10G -localtime -boot d -cdrom ./win2003.iso  -localtime -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no -net user  
      
    # 按 ctrl + alt 释放虚拟机中的鼠标  
      
    #网络桥虚拟网卡:  
    yum install tunctl  
    yum install bridge-utils  
      
    #rc.local启动脚本  
    iptables -t nat -A POSTROUTING -o eth0 -s 10.0.67.0/24 -j MASQUERADE  
    tunctl -t tap0  
    ifconfig tap0 10.0.67.1 netmask 255.255.255.0  
    #虚拟机里网关设置成 10.0.67.1 即可联网  
      
    ___________________________________________________________  
    #以下为有问题后检查用  
    echo 1>/proc/sys/net/ipv4/ip_forward  
    查看 tun模块  
    lsmod | grep tun  
    modprobe tun
    补充:安装过程中若出现“依赖libesd.so.0"这个错误,那么用yum install esound.
    
安装: qemu
    [[email protected] soft]# rpm -ivh qemu-0.15.0-1.el6.rfx.x86_64.rpm
        warning: qemu-0.15.0-1.el6.rfx.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
        error: Failed dependencies:
            libSDL-1.2.so.0()(64bit) is needed by qemu-2:0.15.0-1.el6.rfx.x86_64
            libcelt051.so.0()(64bit) is needed by qemu-2:0.15.0-1.el6.rfx.x86_64
            libesd.so.0()(64bit) is needed by qemu-2:0.15.0-1.el6.rfx.x86_64
            libspice-server.so.1()(64bit) is needed by qemu-2:0.15.0-1.el6.rfx.x86_64
            qemu-img is needed by qemu-2:0.15.0-1.el6.rfx.x86_64

    yum install SDL
    yum install celt051-devel
    yum install spice-server-devel
    yum install esound-libs esound
    
    [[email protected] soft]# rpm -ivh qemu-img-0.15.0-1.el6.rfx.x86_64.rpm 
        warning: qemu-img-0.15.0-1.el6.rfx.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
        Preparing...                ########################################### [100%]
       1:qemu-img               ########################################### [100%]
    [[email protected] soft]# rpm -ivh qemu-0.15.0-1.el6.rfx.x86_64.rpm
        warning: qemu-0.15.0-1.el6.rfx.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
        Preparing...                ########################################### [100%]
       1:qemu                   ########################################### [100%]

    

1.ovftool是什么?

看看官方文档给出的答案:

The OVF specification describes a secure, portable, efficient, and flexible method to package and distribute virtual machines and components. It originated from the Distributed Management Task Force (DMTF) aftervendor initiative. Companies that contributed to the OVF standard include VMware, Dell, HP, IBM, Microsoft,XenSource, and Citrix。

也就是说OVF 规范描述了安全、 便携式、 高效和灵活的方法,打包和部署虚拟机和组件。它起源于后分布式管理任务组 (DMTF) 从供应商的管理计划。促成 OVF 标准的公司包括 VMware、 戴尔、 惠普、 IBM、 微软等。ovftool自然是实现虚拟机的打包和部署的一个工具。

 

2.linux下安装ovftool

下载ovftool Linux 64位版本,下载地址:https://download.csdn.net/download/chenyulancn/8603115?web=web

https://my.vmware.com/group/vmware/details?downloadGroup=OVFTOOL420&productId=491

然后在linux中运行安装的命令:

sudo /bin/sh VMware-ovftool-4.2.0-5965791-lin.x86_64.bundle

在安装过程中需要有协议确定的操作,输入y即可

  1. Do you agree? [yes/no]: y

  2.  
  3. The product is ready to be installed. Press Enter to begin

  4. installation or Ctrl-C to cancel.

  5.  
  6. Installing VMware OVF Tool component for Linux 4.2.0

  7. Configuring...

  8. [######################################################################] 100%

  9. Installation was successful.

安装参考链接:http://fosshelp.blogspot.jp/2013/10/how-to-install-ovftool.html,里面有视频的教程,可以看看

安装完成后查看ovftool的版本,出现以下内容则说明安装成功:

  1. [email protected]:~/vmware/ovftool$ ovftool -v

  2. VMware ovftool 4.2.0 (build-5965791)

然后就可以使用ovftool干些大事情啦!

附:ovftool官方文档https://www.vmware.com/support/developer/ovf/ovf420/ovftool-420-userguide.pdf