- 深入理解OpenStack Neutron
- 李宗標
- 681字
- 2019-01-04 06:09:52
前言
為什么寫作本書
2016年1月16號,我在微信公眾號(標哥說天下)發表了Neutron系列的第一篇文章,當時計劃是半年寫完,沒想到寫了一年半。也許是由于沖動吧,那天我決定寫一系列有關Neutron的文章。
手里拎個錘子,認為滿世界都是釘子,這是一種要命的思維邏輯。寫Neutron系列,最初的原因,不是因為需要用它做什么,而是想要說明它不能做什么。這對于從事云計算的人來說,可能根本就不是問題,因為Neutron的適用范圍也恰好在他們的工作范圍之內,沒有逾越半步。
對于那些從事非云計算行業,卻又與Neutron有著千絲萬縷的聯系的人來說,這可能也不是問題。但是如果領導與“專家”太多,這可能就是問題了。
然而在寫作的過程中,我逐步放棄了想說明“Neutron能做什么,不能做什么”的想法,慢慢改變為現在的思路:努力描述Neutron原本是什么!
本書首先從Linux虛擬網絡知識講起,步步推進,最后深入到Neutron的代碼。當剝開Neutron代碼的面紗以后,Linux虛擬網絡既是構建Neutron網絡的基礎,也是構建Neutron代碼的基礎。Neutron的代碼寫到最后,不過是調用Linux的命令行而已(也包括調用OVS的命令行)。
這么說,當然對Neutron不公平,調用命令行只是Neutron代碼的最后一步,在這之前,Neutron還需知道調用什么命令行。這不是是否熟練掌握各種命令行的問題,而是能否正確分配邏輯資源的問題。舉個最簡單的例子,為一個端口配置一個IP地址,在調用命令行之前,Neutron需要通過各種機制和算法為這個端口分配一個正確的IP地址。
Neutron不僅需要具備分配邏輯資源的機制,還需要創建相應的虛擬網元(物理資源),并將這些虛擬網元正確地連接和配置,構建成正確的網絡。Neutron所能支持的二、三層網絡特性,不僅體現在它的代碼中,也體現在它的資源模型中,并且以RESTful接口的形式對外提供服務。