作者:励志要成为明星的张佳楠 | 来源:互联网 | 2014-05-27 21:13
虚拟化网络+虚拟机,说大一点手工搭个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”