[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 ...
随机推荐
- Atitit.每周计划日程表 流程表v3
Atitit.每周计划日程表 流程表 每周趋势总结 新特性聚合 最佳实践聚合. 上周总结 本度计划 检查于推进年度计划月度计划里程碑 检查于推进季度计划月度计划里程碑 上周Todo汇总结转.. 待报 ...
- Node入门教程(6)第五章:node 模块化(上)模块化演进
node 模块化 JS 诞生的时候,仅仅是为了实现网页表单的本地校验和简单的 dom 操作处理.所以并没有模块化的规范设计. 项目小的时候,我们可以通过命名空间.局部作用域.自执行函数等手段实现变量不 ...
- JVM 内部原理(二)— 基本概念之字节码
JVM 内部原理(二)- 基本概念之字节码 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Enviro ...
- CMake结合PCL库学习(3)
CMake常用指令结合PCL 的顶层CMake文件的解释 基本指令 (1)ADD_DEFINITIONS 向 C/C++编译器添加-D 定义,比如:ADD_DEFINITIONS(-DENABLE_D ...
- 树莓派设置静态IP地址
树莓派设置静态IP地址http://www.jianshu.com/p/b0e6d066d6b6 ——————————————————————————————————————————————————— ...
- cannot open shared object file: No such file or directory
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:error while loading shared libraries: libxxx.so: cannot ope ...
- callback 回调函数
把函数a当做一个参数传入函数b <script> Array.prototype.mysort = function(callback){ let s = this; //准备向回调函数里 ...
- MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置
一.总概 1.MHA介绍 MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步). MH ...
- 《objective-c基础教程》学习笔记(六)—— 复合方法
今天我们要讲的复合,当然不是小情侣吵着分手,然后又在一起的复合. 复合遵循一个合成复用原则,又称为组合或者聚合复用原则.该原则的内容是:尽量使用对象组合,而不是继承来达到复用的目的.用聚合可以使系统更 ...
- python socket 实现的简单http服务器
预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器 废话 ...