VM-based OpenStack Neutron Framework解析

当前,Neutron的二层控制面基于ML2实现,三层以上基于Service Framework。而Neutron在大规模扩展性、稳定性的问题也更多存在在L3模块。

那么社区在这个方面的开发方向上,主要有三个:

(1)利用第三方SDN解决方案,包括OVN、Midonet、OpenDayLight等。

(2)开发DVR、L3 HA,在已有解决方案上进行修改、重构、添加所需的功能。

(3)利用第三方开源网络操作系统,比如Vyatta(闭源)、VyOS(Vyatta开源版本)、Akanda等。

在使用第三方开源网络操作系统时,由于这些NOS,功能已经完善,包括Tunnel、NAT、Port Forwarding、QoS、Monitoring、VPN、Load Balancing等等,所以一般最直接的就是将其作为Service VM,为每个租户服务。

 

那么如何实现这样的基于VM的服务框架?

(1)因为ML2框架负责计算节点间的东西向网络,如果将其应用到ML2上,势必需要每个计算节点都运行一台这样的SVM作为Local Gateway,将该计算节点上的租户VM的流量进行统一处理转发。

那么,首先带来的问题就是,CapEx将大大提高。所以,更多的,还是将其应用到Service Framework上。这样的话,ML2+OVS/Linuxbridge,这样的部署模式就需要保留。

(2)下一步我们要考虑一个复杂的依赖问题就是,谁来负责SVM的生命周期管理。

从Brocade实现的Vyatta Plugin和Akanda项目看来,都是选择了Nova,毕竟Nova本身就已经实现了虚拟机生命周期的管理,但是Nova启动的VM,还是要依赖于Neutron配置网络,这样的互相依赖在生产环境下一旦出现Bug,异常之类的问题,则有可能会导致灾难。所以,如果通过Nova来管理,更多的是创建Admin租户的Provider Network,将SVM直接连接到物理网络上,这样转发面更清晰。

这里就存在着工作量的问题,需要开发一套Health Check、Auto-Orchestration来服务这样的SVM,当前都是由Vyatta和Akanda项目自己实现的,我个人觉得,也许引入Heat是一个更好的选择。

(3)然后就是将Neutron L3/LBaaS/VPNaaS/FWaaS等服务框架的Plugin API进行实现,社区已经开发了基于Vyatta和Akanda的,并不是特别复杂的工作。所以从我的角度说,与其去研究这几个别人都实现好的项目,还不如自己基于开源的VyOS实现。

 

【1】Brocade Vyatta Plugin:https://github.com/openstack/neutron/tree/master/neutron/services/l3_router/brocade

【2】Akanda Project:https://github.com/stackforge/akanda

【3】VyOS:http://vyos.net/wiki/Main_Page

### 解决 `yum install` 命令报错的方法 当执行命令 `yum install openstack-neutron ml2 linuxbridge ebtables` 出现错误时,可能的原因有多种。以下是几种常见的原因以及相应的解决方案。 #### 1. 检查仓库配置 确保 YUM 仓库已正确配置并可用。如果缺少必要的 OpenStack 或 EPEL (Extra Packages for Enterprise Linux) 仓库,则可能导致依赖项无法解析或下载失败。可以尝试添加这些仓库: 对于 CentOS/RHEL 用户来说,可以通过以下方式启用额外的软件源: ```bash sudo yum install centos-release-openstack-yoga epel-release -y ``` #### 2. 清理缓存重新同步数据 有时本地元数据可能会损坏或者过期,这也会引起安装过程中的问题。清理现有缓存再重试有助于解决问题: ```bash sudo yum clean all && sudo yum makecache fast ``` #### 3. 使用完整的包名进行安装 根据提供的信息,在实际操作过程中应当使用更具体的名称来代替缩写的参数[^1]。因此建议按照官方文档推荐的方式输入完整指令如下所示: ```bash sudo yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables conntrack-tools ``` #### 4. 修改内核参数支持桥接防火墙过滤功能 为了使Linux Bridge能够正常工作于Neutron环境中,还需要调整一些内核级别的设置以允许网桥上的流量被iptables规则所影响[^4]: ```bash echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf sysctl -p modprobe br_netfilter ``` 通过以上措施应该能有效减少因环境差异而导致的各种潜在错误情况的发生概率。当然具体到每一个特定场景下还可能存在其他因素干扰成功部署流程,这时就需要结合日志文件进一步排查分析了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值