《深入理解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的要求,並反饋狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章