K版新增端口时ovs-agent的处理过程
2016-12-29 10:06
295 查看
作者:吕嘉伟
1. rpc_loop ovs-agent的大循环
收集ovs上的所有端口信息,然后分类,并处理
2. process_network_ports
主要搜集skipped_devices,need_binding_devices,security_disabled_ports三类端口; (通过treat_devices_added_or_updated函数)
为新增端口(port_info.get('added', set()))创建安全组规则;
调用_bind_devices 绑定need_binding_devices;
删除已经不在的端口信息(port_info.get('removed', set()))(主要是neutron-server数据库中的信息)。
3. _bind_devices 处理需要绑定的端口
首先根据端口所在的网络,提取网络的lvm号;
提取该端口在ovs上的internal tag,新端口一般为[];
比较tag和lvm是否相等,不相等则为新端口设置internal tag;
删除in_port=port.ofport的流表 ; (不清楚为什么)
更新端口的数据库状态为active; (neutron-server调用update_device_up)。
4. treat_devices_added_or_updated函数,这里主要关注need_binding_devices列表的生成。
函数遍历每一个端口,使用treat_vif_port函数判断端口是都需要绑定。
5. treat_vif_port
该函数判断端口的admin_state_up状态,若为True则调用port_bound,port_bound函数负责初始化网络流表,将port与lvm进行绑定,然后为端口配置ovs的other_config。
附:
update_device_up过程
检测端口所在的host-id和数据库中的记录的host-id是否一致;
若检测一致,则更新端口状态为active;
通知l3 agent做些路由操作
本文写的较为粗略,有不准确的地方,欢迎指正。
1. rpc_loop ovs-agent的大循环
收集ovs上的所有端口信息,然后分类,并处理
2. process_network_ports
主要搜集skipped_devices,need_binding_devices,security_disabled_ports三类端口; (通过treat_devices_added_or_updated函数)
为新增端口(port_info.get('added', set()))创建安全组规则;
调用_bind_devices 绑定need_binding_devices;
删除已经不在的端口信息(port_info.get('removed', set()))(主要是neutron-server数据库中的信息)。
3. _bind_devices 处理需要绑定的端口
首先根据端口所在的网络,提取网络的lvm号;
提取该端口在ovs上的internal tag,新端口一般为[];
比较tag和lvm是否相等,不相等则为新端口设置internal tag;
删除in_port=port.ofport的流表 ; (不清楚为什么)
更新端口的数据库状态为active; (neutron-server调用update_device_up)。
4. treat_devices_added_or_updated函数,这里主要关注need_binding_devices列表的生成。
函数遍历每一个端口,使用treat_vif_port函数判断端口是都需要绑定。
5. treat_vif_port
该函数判断端口的admin_state_up状态,若为True则调用port_bound,port_bound函数负责初始化网络流表,将port与lvm进行绑定,然后为端口配置ovs的other_config。
附:
update_device_up过程
检测端口所在的host-id和数据库中的记录的host-id是否一致;
若检测一致,则更新端口状态为active;
通知l3 agent做些路由操作
本文写的较为粗略,有不准确的地方,欢迎指正。
相关文章推荐
- agent-Client端的dubbo监控内存泄露处理过程
- OVS处理upcall过程分析
- 测试过程针对新增和变更需求的处理方法!
- Openstack部署总结之:部署过程中“Error: Local ip for ovs agent must be set when tunneling is enabled”的问题
- 【同步复制常见错误处理4】SQL SERVER同步环境新增发布对象时不能生成(sp_MS+表名)同步存储过程
- Openstack部署总结:“部署过程Error: Local ip for ovs agent must be set when tunneling is enabled”问题
- 一次cloudstack启动cloudstack-agent报错的处理过程
- 发送dhcp request/response 过程 on Neutron+OVS agent
- bugzero的安装过程、tomcat与oracle XDB端口冲突的处理(ORA-01041的解决)
- Pinpoint中agent各个端口数据发送的过程, 持续更新
- Java中List迭代过程中删除、新增元素的处理
- Pinpoint中agent各个端口数据发送的过程
- Linux下新增硬盘处理过程
- 交换机端口处理过程
- 一次cloudstack启动cloudstack-agent报错的处理过程
- Zabbix-server安装后的故障处理及Zabbix-agent的配置添加过程
- Client请求包含Server控件Web Page 的处理过程
- 博客园服务器故障发生及处理全过程纪录[全部写完, 请阅读文后的注意]
- WINDOWS下对音频的处理过程
- 5月31日博客园服务器故障处理过程纪录