热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenvSwitch,libvirt,kvm

虚拟化网络+虚拟机,说大一点手工搭个openstack出来…环境Ubuntu12.04server,64bit,更新至最新OpenvSwitch简称ovs,一个虚拟的,支持openflow协议的交换机.据说以后会替代掉linux自带的bridge,但是现在的整合还比较欠缺,比如网络接口用系统命令和ovs

虚拟化网络+虚拟机,说大一点手工搭个openstack出来…

环境

Ubuntu 12.04 server, 64bit, 更新至最新

Open vSwitch

简称ovs, 一个虚拟的,支持openflow协议的交换机. 据说以后会替代掉linux自带的bridge, 但是现在的整合还比较欠缺,比如网络接口用系统命令和ovs的命令看到的状态可能会是不一致的…当然不影响使用

首先去官网下载最新的稳定版.在我写这篇文字的时候是1.7.1

然后安装各种依赖:

apt-get install python-simplejson python-qt4 python-twisted-conch automake autoconf gcc uml-utilities libtool build-essential autoconf automake pkg-config libssl-dev iproute tcpdump module-assistant debhelper python-all
apt-get install linux-headers-`uname -r`

解压缩下载到的.tar.gz包,然后改名这个包为openvswitch_1.7.1.orig.tar.gz(“-”改成下划线,加个”orig”)

这个时候你应该能看见名为openvswitch-1.7.1的文件夹,和名为openvswitch_1.7.1.orig.tar.gz的压缩包

然后进入openvswitch-1.7.1这个文件夹,执行:

dpkg-buildpackage

之后退回到上一级目录,你就会看到各种编译好的deb包

其实ovs对Ubuntu的支持还是多友好的嘛,这时你就可以用dpkg命令安装自己需要的包了…

如果需要安装ovs的内核模块,就需要装openvswitch-datapath-source_1.7.1-1_all.deb这个包,之后执行:

module-assistant auto-install openvswitch-datapath

执行

service openvswitch-switch start

命令来启动ovs.

另外建议开启ovs与linux bridge的兼容模式,方法是修改/etc/default/openvswitch-switch文件,把#BRCOMPAT=no改为BRCOMPAT=yes.改动将会在重启后生效

libvirt 与 kvm

libvirt顾名思义是一个跟虚拟化有关的库(“virtualization library”),kvm全称”kernel-based virtual machine”,跟qemu结合比较紧密,相当于qemu的内核模块

使用这俩东西最简单的方法就是virt-manager这个GUI工具,安装:

apt-get install kvm virt-manager

(libvirt会作为virt-manager的依赖而自动安装)

(另.有些CPU不支持kvm, 首先用kvm-ok工具检查一下= =…)

其实Ubuntu源里的libvirt版本略老,not ovs-aware,建议用新版本覆盖掉

仍然是去官网下载最新版本(本文为1.0),之后解压,安装依赖,configure,make install:

apt-get install gcc  make  pkg-config libxml2-dev  libgnutls-dev  libdevmapper-dev  libcurl4-gnutls-dev python-dev  libyajl-dev libnl-dev pm-utils
./configure --prefix=/usr --localstatedir=/var --syscOnfdir=/etc
make
make install

(注意configure的时候调整了安装位置以覆盖旧版本)

这时候执行initctl start libvirt-bin启动libvirt,就可以用virt-manager来管理虚拟机了

整合

装上libvirt之后,它会自动添加一个叫做”virbr0″的虚拟交换机,并且使用iptables做路由,使得虚拟机也能连接到外网,如果不折腾的话…其实够用了

如果非要折腾一下,下面是一些提示

1.熟读ovs的FAQ,尤其是”Configuration Problems”部分

2.ovs-vsctl show显示系统内虚拟网络的连接情况,ovs-ofctl show显示某个虚拟交换机的各个端口连接情况

3.最好是能有一个非网络的控制方式,免得一遍遍地跑机房T_T…

4.用ovs-ofctl命令手工折腾流表前,把man page过一遍,确保你明白flow description的”normal form”


推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
author-avatar
尤天asoka
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有