设为首页 收藏本站
查看: 1254|回复: 0

[经验分享] kvm虚拟化方案(2)_openvswith安装

[复制链接]

尚未签到

发表于 2015-10-10 09:20:13 | 显示全部楼层 |阅读模式




git 源码安装



参考: Installing OpenVSwitch on CentOS 6 (6.5)


yum install kernel-headers kernel-devel gcc make python-devel openssl-devel kernel-devel, graphviz kernel-debug-devel automake rpm-build redhat-rpm-config libtool git
cd /root/
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
tar xvf autoconf-2.64.tar.gz
cd autoconf-2.64/
./configure
make
make install
cd /root/
git clone git://git.openvswitch.org/openvswitch
cd openvswitch/
./boot.sh;./configure; make dist
mkdir /root/rpmbuild/SOURCES
cp openvswitch*.tar.gz /root/rpmbuild/SOURCES/#
cp rhel/openvswitch-kmod.files  /root/rpmbuild/SOURCES/
rpmbuild -bb rhel/openvswitch.spec
rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
cd /root/rpmbuild/RPMS/x86_64/ 目录安装rpm包
rpm -ivh *.rpm


编绎成功!



常见问题



rpmbuild的时候出错 Dependency tokens must begin with alpha-numeric, ‘_’ or ‘/’: BuildRequires: %kernel_module_package_buildreqs



参考: http://www.soliddb.org/2010/07/16/88/


安装 redhat-rpm-config 包即可



error: conflicting types for 'netdev_features_t'



参考: http://n40lab.wordpress.com/2014/01/11/centos-6-5-openvswitch-1-9-3-lts-installation/



使用



启用 openvswitch



注意,我们禁用 NetworkManager 服务,使用 network 服务:


# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start


启动 OVS 服务,首次使用添加 br0 网口:


# /etc/init.d/openvswitch start
# ovs-vsctl add-br br0


编辑 /etc/sysconfig/network-scripts/ifcfg-br0 文件,如下:


DEVICE=br0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.15
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HOTPLUG=no


编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,如下:


DEVICE=eth0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br0
BOOTPROTO=none
HOTPLUG=no


重启 network 服务:


# /etc/init.d/network restart


在 KVM 命令行具中使用 OVS



参考: How to Use Open vSwitch with KVM


CentOS 下需要使用 tunctl 命令, 安装:


# yum install bridge-utils tunctl


创建 /etc/ovs-ifup 脚本 :


#!/bin/sh
switch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1


创建 /etc/ovs-ifdown 脚本 :


#!/bin/sh
switch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1


给脚本添加可执行权限 :


# chmod a+x /etc/ovs-if*


启动虚拟机 :


# /usr/libexec/qemu-kvm -m 2048 -name WIN7-TEST -drive file=/data/jian/vos/win7.img -vga qxl -spice port=5910,addr=0.0.0.0,disable-ticketing -usbdevice tablet -soundhw ac97 -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -net nic,model=rtl8139 -net tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown


现在可以使用 spice client 连接机器的 5910 端口。



使用 virtio



参考: kvm安装windows xp、windows7时磁盘使用virtio驱动


加截驱动 iso :


-drive file=/path/to/virtio-win-VERSION.iso,index=1,media=cdrom -boot once=d


我的 KVM 安装 OS 示例 :


/usr/libexec/qemu-kvm -m 2048 -smp 2 -name WIN7-TEST -drive file=/data/jian/vos/win7_x64.img,if=virtio -vga qxl -spice port=5910,addr=0.0.0.0,disable-ticketing -usbdevice tablet -soundhw ac97 -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -net nic,model=virtio -net tap,script=/data/jian/ooclab/kvm/scripts/ovs-ifup,downscript=/data/jian/ooclab/kvm/scripts/ovs-ifdown -drive file=/data/isos/windows/cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso,index=0,media=cdrom -drive file=/data/virtio-win-0.1-74.iso,index=1,media=cdrom -boot once=d


常用问题



Device 'tap' could not be initialized



参考: KVM “qemu-ifup: could not configure /dev/net/tun: Operation not permitted”解决方案


这个问题很常见,我的原因是 ovs-ifup, ovs-ifdown 没有执权限,加上即可:


# chmod a+x ovs-if*


OVS中的bridge



上面,说到,一个桥就是一个交换机。在OVS中,


ovs-vsctl add-br brname(br-int)
root@Compute2
:~# ifconfig
br
-int    Link encap:Ethernet  HWaddr 1a:09:56:ea:0b:49  
inet6 addr
: fe80::1809:56ff:feea:b49/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU
:1500  Metric:1
RX packets
:1584 errors:0 dropped:0 overruns:0 frame:0
TX packets
:6 errors:0 dropped:0 overruns:0 carrier:0
collisions
:0 txqueuelen:0
RX bytes
:316502 (316.5 KB)  TX bytes:468 (468.0 B)

当我们创建了一个交换机(网桥)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是brname,之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能。有了这个交换机以后,我还需要为这个交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。


ovs-vsctl add-port brname port

这里要特别注意,网卡加入网桥以后,要按照网桥的工作标准工作,那么加入的一个端口就必须是以混杂模式工作,工作在链路层,处理2层的帧,所以这个port就不需要配置IP了。(你没见过哪个交换的端口有IP的吧)


那么接下来你可能会问,通常的交换机不都是有一个管理接口,可以telnet到交换机上进行配置吧,那么在OVS中创建的虚拟交换机有木有这种呢,有的!上面既然创建交换机brname的时候产生了一个虚拟网口brname,那么,你给这个虚拟网卡配置了IP以后,就相当于给交换机的管理接口配置了IP,此时一个正常的虚拟交换机就搞定了。


ip address add 192.168.1.1/24 dev brname

最后,我们来看看一个br的具体信息:


添加网桥br0
[iyunv@localhost ~]# ovs-vsctl add-br br0
激活网桥br0
[iyunv@localhost ~]# ifconfig br0 up
配置网桥br0的ip地址和子网掩码
[iyunv@localhost ~]# ifconfig br0 192.168.203.100/24
将需要添加到网桥br0上的网络接口添加到br0中
[iyunv@localhost ~]# ovs-vsctl add-port br0 peth0
[iyunv@localhost ~]# ovs-vsctl add-port br0 vif0.0
#ovs-vsctladd-br br0#ovs-vsctl add-port br0 vif1.0#ovs-vsctl add-port br0 eth0#ifconfigbr up
root@Compute2:~# ovs-vsctl show
bc12c8d2
-6900-42dd-9c1c-30e8ecb99a1b
Bridge "br0"
Port "eth0"
Interface "eth0"
Port "br0"
Interface "br0"
type
: internal
ovs_version
: "1.4.0+build0"






版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-124939-1-1.html 上篇帖子: Debian 6.0 安装 KVM 桥接网络 下篇帖子: CentOS 6.3 64bit安装KVM总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表