[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.-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.-rc3]# yum install gtk3-devel
编译:
[root@D128 qemu-2.12.-rc3]# ./configure --prefix=/root/BUILD_qemu
[root@D128 qemu-2.12.-rc3]# make
安装:
[root@D128 qemu-2.12.-rc3]# make install
[root@D128 qemu-2.12.-rc3]# /root/BUILD_qemu/bin/qemu-system-x86_64 --version
QEMU emulator version 2.11.
Copyright (c) - Fabrice Bellard and the QEMU Project developers
[root@D128 qemu-2.12.-rc3]#
[qemu][cloud][centos][ovs][sdn] centos7安装高版本的qemu 以及 virtio/vhost/vhost-user咋回事的更多相关文章
- CentOS7安装高版本gcc
CentOS7安装高版本gcc 下载 从hust镜像站下载gcc源码包. http://mirror.hust.edu.cn/gnu/gcc/ 我选择的是gcc-8.3.0.tar.gz. cd mk ...
- centos7 安装高版本svn
一.安装高版本svn 1.创建一个新的yum库文件,vim /etc/yum.repos.d/wandisco-svn.repo 内容如下 [WandiscoSVN] name=Wandisco SV ...
- CentOS7 安装高版本gcc, g++, gfortran等工具
SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为用户提供一种方便.安全地安装和使用应用程序和运行时环境的多个版本的方式. De ...
- Centos7 安装高版本php
1. 配置yum源 查看yum源的链接是不是有效的.可以参考此链接 https://webtatic.com/projects/yum-repository/ # rpm -Uvh http://f ...
- CentOS下安装高版本GCC
CentOS下安装高版本GCC 微信分享: 有时编译需要用到4.8以上版本的GCC,由于CentOS源没有提供高版本的GCC安装包,这时就不能通过安装包安装.通常的解决方案就是通过编译安装高版本的 ...
- Centos7使用Yum安装高版本的LNMP
[摘要] 本文旨在介绍使用yum的方式安装一些高版本的NGINX.MySQL.PHP服务.当然如果觉得红帽给的就够用,就用红帽给的就行. 在红帽系列的Linux操作系统中,nginx/mysql/ph ...
- 在CentOS VPS上源代码安装高版本号git
背景:个别软件在国内下载非常慢,在vps下载就非常快. 可是下载好后的文件通过scp弄出来的时候又非常慢,所以想通过在vps里安装git,通过gitlab或oschina来进行中转.但遗憾的是,上传到 ...
- Centos7安装最新版本的docker
centos7 安装docker-ce ,最新版本docker,docker阿里云加速docker-ce是指docker的社区版 卸载老版本的 docker 及其相关依赖sudo yum remove ...
- yum安装高版本mysql(5.5)
1.导入第三方源webtatic rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm 2.如果已安装低版本的mysql就删除 yum r ...
随机推荐
- vue项目使用webpack loader把px转换为rem
下载lib-flexible https://github.com/amfe/lib-flexible npm i lib-flexible --save 在main.js中引入lib-flexibl ...
- 读取Excel二进制写入DB,并从DB中读取生成Excel文件
namespace SendMailSMSService { class Program { static void Main(string[] args) { var connString = Sq ...
- 【原】使用Json作为Python和C#混合编程时对象转换的中间文件
一.Python中自定义类对象json字符串化的步骤[1] 1. 用 json 或者simplejson 就可以: 2.定义转换函数: 3. 定义类 4. 生成对象 5.dumps执行,引入转换函 ...
- Vue.js常用指令:v-model
一.v-model指令 v-model 用来获取表单元素的值.对应input输入框获取的是输入的值,单选按钮.复选框.下拉框获取的是选择的状态. 代码示例如下: <!DOCTYPE html&g ...
- csharp中DateTime总结-转
Table of Contents 1 时间格式输出 2 求某天是星期几 3 字符串转换为DateTime 3.1 String->DateTime 的弹性做法 4 计算2个日期之间的天数差 5 ...
- .NET解决[Serializable] Attribute引发的Json序列化k_BackingField
在WebAPI中的WebApiConfig直接加入如下配置 有问题找谷歌
- vue项目在安卓低版本机显示空白原因
vue项目在安卓低版本机显示空白原因: 可能的原因一: 查看安卓debug,报错,可能有箭头函数语法错误,或者其他语法问题,那可能是ES6语法问题. 这时候需要安装babel-pollyfill. 网 ...
- [React] 16 - Topic: Mixins & Higher-Order Components
到底是个什么东东,待学习中... Ref: https://www.cnblogs.com/wonyun/p/5930333.html
- [Android] 基于 Linux 命令行构建 Android 应用(三):构建流程
Android 应用的构建过程就是将 Android 项目中的文件和资源进行编译和打包,最后将结果输出到 .apk 文件..apk 文件是保存二进制文件的容器,它包含了运行安卓应用所需的所有信息,例如 ...
- JS =>处理单击事件与拖动事件并存
使用click事件,很难确定在拖动开始和结束的时候触发,所以使用了onmouseup(释放鼠标的时候),释放鼠标的时候,即在拖动还未结束,但是准备处理的阶段,此时mouseButtonFlag按照逻辑 ...