zoukankan      html  css  js  c++  java
  • [qemu][cloud][centos][ovs][sdn] centos7安装高版本的qemu 以及 virtio/vhost/vhost-user咋回事

    因为要搭建ovs-dpdk,所以需要vhost-user的qemu

    centos默认的qemu与qemu-kvm都不支持vhost-user,qemu最高版本是2.0.0, qemu-kvm最高版本是1.5.3

    在这之前,首先搞懂两个问题。

    一:qemu与qemu-kvm到底什么区别:

    https://serverfault.com/questions/767212/difference-between-qemu-kvm-qemu-system-x86-64-qemu-x86-64?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

      这是是唯一找到有价值的内容,但是并没有解答。

      CentOS默认带的是qemu-kvm,它与libvrit配合使用。qemu是可以在官方源安装的,看help的话,会发现qemu-kvm与qemu-system-x86_64功能重合。

      我早年看见过社区的一个声明,仿佛记得:qemu-kvm与qemu之前是两个工程,后来已经合并为一个了。qemu-kvm将不再维护。唯一搞不懂的就是为什么centos7里还在用qemu-kvm这个包。

    二: vhost-user是什么鬼:

      (=@__@=)呐! 文档在这http://docs.openvswitch.org/en/latest/topics/dpdk/vhost-user/, 请自行理解

    三: 清清楚楚的讲明白 virtio,vhost,vhost-user

      https://blog.csdn.net/qq_15437629/article/details/77899905

      virtio就是半虚拟化,减少模拟设备时的各种复杂io操作。

    -device virtio-net-pci,netdev=n1 

      vhost通过内核模块,vhost-net.ko 直接在内核里与tap设备通信。

    -netdev tap,id=hn0,vhost=off,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown

      vhost-user,数据不仅内核,从用户态到用户态,backend可能是文件,socket等。

    -netdev vhost-user,chardev=id[,vhostforce=on|off][,queues=n]

      但,如果backend就是要走内核的,比如是一个tap,那就就应该选择vhost。如果backend在用户态,比如dpdk,ovs-dpdk。这个时候用vhost-user。

      virtio设置的虚拟机里边的设备,vhost/vhost-user说的是虚拟机外部的设备。

    三:

      这是一个副本任务,回主线剧情的传送门,请点击:

    [cloud][OVS][sdn] Open vSwitch 初步了解

    好,开始:

    自然,是源码安装!

    见:https://www.qemu.org/download/#source

    git clone git://git.qemu.org/qemu.git
    [root@D128 qemu]# git submodule init
    [root@D128 qemu]# git submodule update --recursive

    到最新稳定版:

    [root@D128 thirdparty]# wget https://download.qemu.org/qemu-2.12.0-rc3.tar.xz
    [root@D128 qemu-2.12.0-rc3]# ./configure 
    
    ERROR: glib-2.22 gthread-2.0 is required to compile QEMU

    依赖:

    glib-2.22 gthread-2.0
    [root@D128 qemu-2.12.0-rc3]# yum install gtk3-devel

    编译:

    [root@D128 qemu-2.12.0-rc3]# ./configure --prefix=/root/BUILD_qemu
    [root@D128 qemu-2.12.0-rc3]# make

    安装:

    [root@D128 qemu-2.12.0-rc3]# make install
    [root@D128 qemu-2.12.0-rc3]# /root/BUILD_qemu/bin/qemu-system-x86_64 --version
    QEMU emulator version 2.11.93
    Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
    [root@D128 qemu-2.12.0-rc3]# 
  • 相关阅读:
    Constants and Variables
    随想
    C#基础篇之语言和框架介绍
    Python基础19 实例方法 类方法 静态方法 私有变量 私有方法 属性
    Python基础18 实例变量 类变量 构造方法
    Python基础17 嵌套函数 函数类型和Lambda表达式 三大基础函数 filter() map() reduce()
    Python基础16 函数返回值 作用区域 生成器
    Python基础11 List插入,删除,替换和其他常用方法 insert() remove() pop() reverse() copy() clear() index() count()
    Python基础15 函数的定义 使用关键字参数调用 参数默认值 可变参数
    Python基础14 字典的创建修改访问和遍历 popitem() keys() values() items()
  • 原文地址:https://www.cnblogs.com/hugetong/p/8808544.html
Copyright © 2011-2022 走看看