服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 云和虚拟化 > OpenStack > 正文

Open vSwitch, libvirt, kvm

时间:2015-01-18    来源:服务器在线    投稿:泡泡    点击:

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

环境

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

Open vSwitch

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

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

然后安装各种依赖:

apt-get install python-***json 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”

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。


相关内容
最新热点内容