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]# 
  • 相关阅读:
    组合和封装
    面向对象之继承与派生
    实例化产生对象和绑定关系
    面向对象程序设计和类
    常用模块(hashlib、suprocess、configparser)
    常用模块re模块(正则表达式)
    包及常用模块(time、datetime、random、sys)
    python内置函数大全
    软件开发规范及常用模块
    [NOI Online 提高组]序列 (并查集+二分图判定)
  • 原文地址:https://www.cnblogs.com/hugetong/p/8808544.html
Copyright © 2011-2022 走看看