devstack-7-Neutron(配置使用 Open vSwitch)
●配置 openvswitch mechanism driver
要将 Liunx Bridge 切换成 Open vSwitch,首先需要安装 Open vSwitch 的 agent。
修改 devstack 的 local.conf:
例:Q_AGENT=openvswitch
重新运行 ./stack,devstack 会自动下载并安装 Open vSwitch。
修改 ML2 的配置文件 /etc/neutron/plugins/ml2/ml2_conf.ini,
设置使用 openvswitch mechanism driver。
例:
[ml2]
tenant_network_types = local
extension_drivers = port_security
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch
※控制节点和计算节点都需要按照上面的方法安装并配置 Open vSwitch。
Neutron 服务重启后,可以通过 neutron agent-list 命令查看到
neutron-openvswitch-agent 已经在两个节点上运行。
Open vSwitch 中的网桥,需要命令ovs-vsctl show 查看,而非linux Bridge下的命令
brctl show。
●Open vSwitch 环境中的各种网络设备
tap interface 命名为 tapXXXX。
linux bridge 命名为 qbrXXXX。
veth pair 命名为 qvbXXXX, qvoXXXX。
OVS integration bridge 命名为 br-int。
OVS patch ports 命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。
OVS provider bridge 命名为 br-ethX(X 为 interface 的序号)
物理 interface 命名为 ethX(X 为 interface 的序号)。
OVS tunnel bridge 命名为 br-tun。
※OVS provider bridge 会在 flat 和 vlan 网络中使用;OVS tunnel bridge 则会在 vxlan 和 gre 网络中使用。
●Open vSwitch使用 flat network
•在 ML2 配置中 enable flat network
在控制节点 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 flat network 相关参数:
例:
[ml2]
tenant_network_types = flat
extension_drivers = port_security
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch
指定普通用户创建的网络类型为 flat。 需要注意的是:因为 flat 网络与物理网卡一一对应,
一般情况下租户网络不会采用 flat。
接着需要指明 flat 网络与物理网络的对应关系:
[ml2_type_flat]
flat_networks = default
[ovs]
bridge_mappings = default:br-eth1
在 [ml2_type_flat] 中通过 flat_networks 定义了一个 flat 网络,label 为 “default”。
在 [ovs] 中通过 bridge_mappings 指明 default 对应的 Open vSwitch 网桥为 br-eth1。
●Open vSwitch使用 vlan network
•在 ML2 配置中 enable vlan network
在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vlan network 相关参数:
[ml2]
tenant_network_types = vlan //指定普通用户创建的网络类型为 vlan。
extension_drivers = port_security
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch
指定vlan的范围:
[ml2_type_vlan]
network_vlan_ranges = default:3001:4000
上面配置定义了 label 为 “default” 的 vlan network,vlan id 的范围是 3001 - 4000。
这个范围是针对普通用户在自己的租户里创建 network 的范围。
指定 vlan 网络与物理网络的对应关系:
[ovs]
bridge_mappings = default:br-eth1
[ovs] 中则通过 bridge_mappings 指明 default 对应的 Open vSwitch 网桥为 br-eth1。
接下来需要通过ovs-vsctl命令:
①创建 br-eth1。
②将物理网卡 eth1 桥接在 br-eth1 上。
即:
ovs-vsctl add-br br-eth1
ovs-vsctl add-port br-eth1 eth1
●Open vSwitch使用 vxlan network
•在 ML2 配置中 enable vxlan network
在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vxlan network 相关参数。
[ml2]
tenant_network_types = vxlan //指定普通用户创建的网络类型为 vlan。
extension_drivers = port_security
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch,l2population
指定普通用户创建的网络类型为 vxlan,同时 enable l2population mechanism driver,然后指定 vxlan 的范围。
[ml2_type_vxlan]
vni_ranges = 1001:2000
在 [agent] 中配置启用 vxlan 和 l2population。
[agent]
tunnel_types = vxlan
l2_population = True
最后在[ovs]中配置VTEP。
[ovs]
bridge_mappings =
tunnel_bridge = br-tun
local_ip = 166.66.16.10
vxlan tunnel 对应的网桥为 br-tun。
local_ip 指定 VTEP 的 IP 地址。
devstack-controller 使用 166.66.16.10,此 IP 配置在网卡 eth1 上。
devstack-compute01 则使用 166.66.16.11,此 IP 配置在网卡 eth1 上。
[ovs]
bridge_mappings =
tunnel_bridge = br-tun
local_ip = 166.66.16.11
参考:
制作 OpenStack Linux 镜像:http://blog.51cto.com/cloudman/1897859
制作 OpenStack Windows 镜像:http://blog.51cto.com/cloudman/1898661
解决 Windows instance 时间不同步问题:http://blog.51cto.com/cloudman/1899338
cloudbase-init 自动扩盘的副作用:http://blog.51cto.com/cloudman/1900063
定制 cloud-init:http://blog.51cto.com/cloudman/1900777
动态添加删除网卡:http://blog.51cto.com/cloudman/1901524
为 instance 配置静态 IP:http://blog.51cto.com/cloudman/1902185
最简单的 RabbitMQ 监控方法:http://blog.51cto.com/cloudman/1902821
instance “error” 了怎么办:http://blog.51cto.com/cloudman/1903522
Troubleshooting OpenStack 瘫痪:http://blog.51cto.com/cloudman/1904163
如何更新 OpenStack 组件:http://blog.51cto.com/cloudman/1904991
Troubleshooting OpenStack Bug(migrate失败):http://blog.51cto.com/cloudman/1905729
snapshot相关:http://blog.51cto.com/cloudman/1906585
Metadata Service 最高频的应用(cloud-init和metadata service ):http://blog.51cto.com/cloudman/1907495
Metadata Service 架构详解:http://blog.51cto.com/cloudman/1908277
获取 metadata 的完整例子:http://blog.51cto.com/cloudman/1909057
获取 metadata 过程详解:http://blog.51cto.com/cloudman/1909864
通过 dhcp-agent 访问 Metadata:http://blog.51cto.com/cloudman/1910575
instance 怎么获得自己的 Metadata:http://blog.51cto.com/cloudman/1911279
config drive获取 metadata:http://blog.51cto.com/cloudman/1911954
cloud-init 工作原理:http://blog.51cto.com/cloudman/1912640
instance 的网卡是如何被配置的:http://blog.51cto.com/cloudman/1912968
用 config drive 配置网络:http://blog.51cto.com/cloudman/1913664

浙公网安备 33010602011771号