《深入理解openstack neutron》书籍阅读总结

大约用了1个半月的时间,把标叔的这本佳作读完。虽浅尝辄止,但也获益良多。记录下阅读体会。后期会反复学习和查阅。

1、neutron总体分成了neutron-server,neutron-plugin和plugin对应的各种agent。
其中plugin分成了core plugin和ext plugin。

2、core plugin主要就是ml2,用来创建网络,子网和端口。而ext 主要是router以及为了满足一些扩展需求而加入的plugin。使得neutron成为一种可扩展的架构。

3、ml2插件里面有type drive和mechanism driver。前者是一种逻辑的类型,表示网络,子网和端口等,后者是各厂商的底层支持的drive。

4、neutron server与openstack之间通过rest api进行交互,plugin与agent之间使用rpc进行交互。

5、二层的服务是在计算节点通过例如ovs agent完成,三层服务通过网络节点中的L3 agent和dhcp agent完成。

6、l3 agent是一类工具集合,可以这么认为。其功能主要是路由转发,dnat,snat。,这两大类功能是通过namespace中的ip_forward和iptables来完成。他们在一个namespace中,一起完成了vrouter的功能。

7、dhcp agent是另外一个独立的namespace,为net提供地址池和dns服务。

8、neutron的网络资源模式分为了provider模式和self-service模式,也就是利用本地组网和overlay网络的模式。这个我写了一篇介绍。https://blog.csdn.net/dhRainer/article/details/84863138

9、openstack的rest服务是由wsgi提供统一对外的接口,而管理是由paste deploy完成。配置文件是api-paste.ini。这里把接口和功能进行了模块化的区分,设计了各种的filter,使用pipeline和app_factory将功能和控制器进行自由的组合。可以按需增添一些过滤条件,或者自己写一个filter,不过这块还是需要一定的功力。

10、openstack使用协程的方式去伪装成并发的效果,使用eventlet协程库和多进程的方式来实现并发。

11、openstack使用oslo公用库的形式,减少代码的冗余问题,各个组件的共用代码放在一起。

12、neutron的各种代理使用死循环的去不断执行neutron-server中plugin的要求,并反馈状态。

你可能感兴趣的:(网络虚拟化)