CloudStack搭建指南(三)

Open vSwitch简介

概述

Open vSwitch的官方定义:Open vSwitch是一个具有工业级质量的多层虚拟交换机。通过可编程扩展,可以实现大规模网络的自动化(配置、管理、维护)。它支持现有标准管理接口和协议(比如netFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag等,熟悉物理网络维护的管理员可以毫不费力地通过Open vSwitch转向虚拟网络管理)。

模块介绍

最新代码包主要包括以下模块和特性:

ovs-vswitchd :核心模块,实现交换功能的守护程序(daemon),和Linux内核模块一起,实现基于流的交换;

ovsdb-server :提供轻量级数据库查询服务。其保存了整个OVS的配置信息,包括接口,流表,VLAN等。ovs-vswitchd从其查询配置信息;

ovsdb-tool: 不通过ovs-server就能直接操控数据库;

ovsdb-client: 直接通过ovs-server数据库操作;

ovs-brcompatd :让 ovs-vswitch 替换 Linux bridge,包括获取 bridge ioctls 的 Linux 内核模块;

ovs-dpctl :dapapath control. 用来配置 switch 内核模块,可以控制转发规则;

ovs-vsctl :获取或者更改ovs-vswitchd的配置信息,此工具操作的时候会更新ovsdb-server数据库;

ovs-appctl :openvswitch apply control, 发送命令来运行相关 daemon(很少使用);

ovsdbmonitor GUI 工具,用于显示 OVS 数据库中的相关数据;

此外, OVS 也提供了支持 OpenFlow 的特性实现,包括

ovs-openflowd: 一个简单的 OpenFlow 交换机;

ovs-controller: 一个简单的 OpenFlow 控制器;

ovs-ofctl :openvswitch openflow control,用来控制OVS作为OpenFlow交换机工作时的流表内容;

ovs-pki : OpenFlow 交换机创建和管理公钥框架;

ovs-tcpundump: 实现类似tcpdump 的抓包分析功能。

CloudStack的高级网络

高级网络

每个区域都有基本或高级网络。一个区域的整个生命周期中,不论是基本或高级网络。一旦在CloudStack中选择并配置区域的网络类型,就无法再修改。

下表比较了两种网络类型的功能

在一个云中可能会存在二种网络类型。但无论如何,一个给定的区域必须使用基本网络或高级网络。单一的物理网络可以被分割不同类型的网络流量。账户也可以分割来宾流量。你可以通过划分VLAN来隔离流量。如果你在物理网络中划分了VLAN,确保VLAN标签的数值在独立范围。

在CloudStack 中使用 Open vSwitch

Open vSwitch是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流OVS主要是用来在虚拟化环境中。虚拟机之间一个虚拟机和外网之间的通信所用,如下是一个典型的结构图:

那么,通常情况下的工作流程如下:

(1)VM实例instance产生一个数据包并发送至实例内的虚拟网络接口VNIC,图中就是instance中的eth0.

(2)这个数据包会传送到物理节点上的VNIC接口,如图就是vnet接口。

(3)数据包从vnet NIC出来,到达桥(虚拟交换机)br100上。

(4)数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理节点上的eth0。

(5)数据包从eth0出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。

OVS 的基本操作

以下操作都需要root权限运行,在所有命令中br0表示网桥名称,eth0为网卡名称。

添加网桥:

# ovs-vsctl add-br br0

列出open vswitch中的所有网桥:

# ovs-vsctl list-br

判断网桥是否存在

# ovs-vsctl br-exists br0

将物理网卡挂接到网桥:

# ovs-vsctl add-port br0 eth0

列出网桥中的所有端口:

# ovs-vsctl list-ports br0

列出所有挂接到网卡的网桥:

# ovs-vsctl port-to-br eth0

查看open vswitch的网络状态:

# ovs-vsctl show

删除网桥上已经挂接的网口:

# vs-vsctl del-port br0 eth0

删除网桥:

# ovs-vsctl del-br br0量监控等等。

虚拟机网络设置

设置虚拟机的虚拟网络编辑器

(1)添加两个自定义网络

VMnet2子网设置为:10.5.5.0,起始ip为:10.5.5.128,结束ip为:10.5.5.254。

VMnet3子网设置为:10.5.6.0,起始ip为:10.5.6.128,结束ip为:10.5.6.254。

(2)进入为master节点虚拟机添加网卡

确保可以ping同新加的网卡

在agent1和agent2节点上重复以上操作,要确保新加的网卡都可用!

清理环境

(1)关闭系统虚拟机s-1-VM和v-2-VM

(2)禁用资源域

(3)进入agent1和agent2删除eth0 网卡配置文件中的桥接网卡cloudbr0,然后删除ifcfg-cloudbr0网卡配置文件。

(4)使用命令:

# virsh list --all

如果发现系统VM还在运行直接重启两台agent节点。

(5)确认网络环境:

# brctl show

(6)关闭cloudstack-management

# /etc/init.d/cloudstack-management stop

(7)清除master节点数据库

进入数据库:

#   mysql -uroot -p123456

删库:

# drop database cloud;
# drop database cloud_usage;

安装openvswitch

(1)把编译好的rpm上传到合适的文件夹,然后安装

# rpm -i openvswitch-2.3.2-1.x86_64.rpm kmod-openvswitch-2.3.2-1.el6.x86_64.rpm --force –nodeps

这里不采用yum的安装方式,因为用yum安装会报一个很严重的错误,现在暂时无法解决这个报错,所以我们采用强制安装的方法,后期部署时发现并没有什么问题。

(2)为了确保openvswitch安装好了,我们是使用命令检查一下

# rpm -qa|grep openvswitch

出现以上提示我们就已经安装好了openvswitch。

(3)修改openvswitch配置文件

# vim /etc/cloudstack/agent/agent.properties

在末尾添加如下内容:

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

(4)启动ovs

# /etc/init.d/openvswitch start

设置开机自动启动

# chkconfig openvswitch on

验证Open vSwitch是否正确安装

# lsmod|grep openvswitch

出现以上提示说明您的ovs已经正确安装

(5)在agent1和agent2节点设置glusterfs

在配置文件/etc/glusterfs/glusterd.vol添加如下参数

option rpc-auth-allow-insecure on

执行命令(只需要在一台节点执行):

# gluster volume set gv2 server.allow-insecure on

重启glusterfs服务

# /etc/init.d/glusterd restart

(6)手动桥接

进入 /etc/sysconfig/network-scripts/

创建网卡

# touch ifcfg-cloudbr2

编辑cloudbr2网卡

编辑eth2网卡

重启agent1网络

# /etc/init.d/network restart

同步网卡配置文件到agent2

# scp ifcfg-cloudbr2 ifcfg-eth2 192.168.0.12:/etc/sysconfig/network-scripts/

重启agent2的网络

# /etc/init.d/network restart

初始化master节点

(1)初始化:

# cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456
# cloudstack-setup-management

(2)导入模板

#/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -f /opt/systemvm64template-4.6.0-kvm.qcow2.bz2 -h kvm -F

(3)进入web页面进行设置

【1】设置3倍内存超峰(真正生成环境不用设置)

【2】设置开放网段范围

(4)重启cloudstack-management

# /etc/init.d/cloudstack-management restart

关闭防火墙

# /etc/init.d/iptable stop
# chkconfig iptables off    

系统配置

配置步骤如图所示:



点击“管理Edit”添加桥接网卡:cloudbr0

点击“来宾Edit”添加桥接网卡:cloudbr2








添加主存失败,我们直接在“基础架构”那里重新剩余未添加完成的部分



添加完成后启动“资源域”

我们可以查看一下ovs为我们自动创建的网卡:

如果系统VM正常启动那么至此cloudstack的ovs网络部署完成,现在我们就可以自由的进行添加网络、主机等操作了!

|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/31
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
CloudStack搭建指南(三)
Open vSwitch简介 概述 Open vSwitch的官方定义:Open vSwitch是一个具有工业级质量的多层虚拟交换机。通过可编程扩展,可以实现大规模网络的自动化(配置、管……
<<上一篇
下一篇>>
文章目录
关闭
目 录