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

CloudStack4.2(KVM)环境中使用OpenvSwitch

什么是OpenvSwitch顾名思义,OpenvSwitch即开放虚拟交换标准。具体点说,OpenvSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护)。同时,还支持标准的管理接口和协议(如NetFlo
什么是Open vSwitch

顾名思义,Open vSwitch即开放虚拟交换标准。具体点说,Open vSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护)。同时,还支持标准的管理接口和协议(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。总的来说,它被设计为支持分布在多个物理服务器,例如VMware的vNetwork分布式vSwitch或思科的 Nexus 1000V。详细请参阅Open vSwitch官方文档http://openvswitch.org。

Open vSwitch可以解决如下几种需求:

网络隔离:Open vSwitch通过在Host上虚拟出一个软件交换机,等于在物理交换机上级联了一台新的交换机,所有VM通过级联交换机接入,管理员能够像配置物理交换机一样把同一台Host上的众多VM分配到不同VLAN中去。

QoS配置:在共享同一个物理网卡的众多VM中,我们期望给每台VM配置不同的速度和带宽,以保证核心业务VM的网络性能。通过在Open vSwitch端口上,给各个VM配置QoS,可以实现物理交换机的traffic queuing和traffic shaping功能。

流量监控Netflow/sFlow:物理交换机通过xxFlow技术对数据包采样,记录关键域,发往Analyzer处理。进而实现包括网络监控、应用软件监控、用户监控、网络规划、安全分析、会计和结算、以及网络流量数据库分析和挖掘在内的各项操作。

Open vSwitch官网列出了对SPAN, RSPAN, and GRE-tunneled mirrors的支持。关于具体功能,就不一一赘述了

下面详细介绍一下Open vSwitch在CloudStack 4.2(KVM)中的应用。

在CentOS6.4中安装Open vSwitch

环境准备:

在一台支持虚拟化的主机上安装CentOS 6.4 X64bit Mininal Server来作为KVM。

配置好CloudStack 4.2的环境(Manage Server)

登录到CentOS 6.4上,安装虚拟化工具

# yum install hypervkvpd libguestfs libvirt libvirt-client python-virtinst qemu-kvm        virt-manager virt-top virt-viewer virt-who

在CentOS 6.4上,安装rpm build环境

# yum install rpmdevtools openssl-devel kernel-devel gcc redhat-rpm-config

编译适合CentOS 6.4的Open vSwitch的rpm包(需要下载源码文件,目前尚未找到适合centos6.4的rpm包),选择最新的openvswitch-1.11.0.tar.gz,也可以选择Open vSwitch的LTS版本。

# mkdir -p ~/rpmbuild/SOURCES
# curl -O http://openvswitch.org/releases/openvswitch-1.11.0.tar.gz
# cp openvswitch-1.11.0.tar.gz ~/rpmbuild/SOURCES
# tar -xzf openvswitch-1.11.0.tar.gz
# cd openvswitch-1.11.0
# rpmbuild -bb rhel/openvswitch.spec
# rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec

会在相关目录下产生如下的三个rpm包:

kmod-openvswitch-1.11.0-1.el6.x86_64.rpm
openvswitch-1.11.0-1.x86_64.rpm
openvswitch-debuginfo-1.11.0-1.x86_64.rpm

安装build好的openvswitch rpm。注:该rpm可以移植到其他CentOS6.4环境中。

# rpm -ivh openvswitch-1.11.0-1.x86_64.rpm kmod-openvswitch-1.11.0-1.el6.x86_64.rpm
# echo ‘blacklist bridge’ >> /etc/modprobe.d/blacklist.conf
# reboot

验证Open vSwitch是否正确安装

# lsmod |grep openvswitch
openvswitch            78045  0
# ovs-vsctl -V
ovs-vsctl (Open vSwitch) 1.11.0
Compiled Sep  4 2013 17:42:03

安装CloudStack 4.2 的ManageMent和Agent

# yum install cloudstack-management
# yum install cloudstack-agent

详细步骤请参考CloudStack安装文档。

在CloudStack中添加启用Open vSwitch的KVM主机

添加如下配置信息到/etc/cloudstack/agent/agent.properties,以便CloudStack可以识别KVM上的Open vSwitch。

network.bridge.type=openvswitch
libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.OvsVifDriver

直接登录Management UI界面,将该CentOS6.4版本的kvm主机加入CloudStack相关集群中即可。自动生成如下信息:

# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=OVSPort
UUID=5af85653-ab2b-4288-bbed-744cd70ea7af
OnBOOT=yes
NM_COnTROLLED=no
BOOTPROTO=none
NETMASK=255.255.255.0
GATEWAY=172.16.235.254
#HWADDR=00:50:56:AF:7E:CC
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth0″
DEVICETYPE=ovs
OVS_BRIDGE=cloudbr0

# more /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=OVSBridge
OnBOOT=yes
NM_COnTROLLED=no
BOOTPROTO=none
IPADDR=172.16.235.228
NETMASK=255.255.255.0
GATEWAY=172.16.235.254
#HWADDR=00:50:56:AF:7E:CC
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth0″
STP=yes
DEVICETYPE=ovs

# ovs-vsctl show
4bc7fc91-56a1-4588-9a20-2a61e422b68c
Bridge “cloud0″
Port “cloud0″
Interface “cloud0″
type: internal
Bridge “cloudbr0″
Port “vnet0″
tag: 440
Interface “vnet0″
Port “eth0″
Interface “eth0″
Port “cloudbr0″
Interface “cloudbr0″
type: internal
ovs_version: “1.11.0″

网络规划:

cloudbr0 (Management, Storage)
ip: 172.16.235.10/24
gateway: 172.16.235.254
eth0 (physical port, no vlans)

cloudbr1 (Guest, Public)
eth1 (physical port, vlan trunk)
ip: none

需要手动配置网卡的相关信息,之后登录Management UI界面,将该CentOS6.4版本的kvm主机加入CloudStack相关集群中。

# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPV6INIT=no
NM_COnTROLLED=no
OnBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=cloudbr0

# more /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
IPV6INIT=no
NM_COnTROLLED=no
OnBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=cloudbr1

# more /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
OnBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=172.16.235.227
GATEWAY=172.16.235.254
NETMASK=255.255.255.0
HOTPLUG=no

# more /etc/sysconfig/network-scripts/ifcfg-cloudbr1
DEVICE=cloudbr1
OnBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=none
HOTPLUG=no

登录Management UI界面创建虚拟机,至此CloudStack(KVM)环境中使用Open vSwitch环境搭建成功。

后续会和大家分享一些关于Open vSwitch的功能以及使用CloudStack4.2的经验。

注:一旦CloudStack对该KVM管理,该KVM上的Open vSwitch不可以单独操作,会报如下的错误。

# ovsdb-server
2013-09-05T08:12:49Z|00001|lockfile|WARN|/etc/openvswitch/.conf.db.~lock~: cannot lock file because it is already locked by pid 972
ovsdb-server: I/O error: /etc/openvswitch/conf.db: failed to lock lockfile (Resource temporarily unavailable)


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
author-avatar
mobiledu2502871077
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有