Openstack 網(wǎng)絡(luò)知識(shí)資料詳細(xì)介紹及總結(jié)
Openstack 網(wǎng)絡(luò)知識(shí)資料總結(jié):
Openstack 概念
我剛聽(tīng)說(shuō)要去做 openstack 開(kāi)發(fā)的時(shí)候,蠻激動(dòng)的啊。雖然我不知道 openstack 是什么東西,但是我知道這個(gè)東西和云計(jì)算有關(guān)。云計(jì)算這東西,聽(tīng)著就高大上,各大互聯(lián)網(wǎng)公司都有投人進(jìn)去搞,所以大方向上是必須肯定的。于是我按捺不住了,想在自己的主機(jī)上部署 openstack,來(lái)體驗(yàn)下這個(gè)是什么東西。經(jīng)過(guò)一頓折騰之后,終于在虛擬機(jī)里面用 devstack 把 openstack 給部署出來(lái)了(部署過(guò)程中,最坑的就是國(guó)內(nèi)的防火墻)。
部署的過(guò)程,其實(shí)就是把一堆 Python 包安裝到主機(jī)系統(tǒng)的過(guò)程。openstack 有一個(gè) python 包叫做 Dashboard,這個(gè)東西提供了一個(gè) Web 界面,從那里我真正體驗(yàn)到了 openstack 是個(gè)啥。在 Dashboard 上創(chuàng)建一臺(tái)虛擬機(jī)的過(guò)程蠻有趣的,這個(gè)過(guò)程涉及到的步驟,很多都和現(xiàn)實(shí)中安裝電腦很像。
Openstack | Real Life |
---|---|
創(chuàng)建 ubuntu 鏡像 | 使用 Ultraiso 刻錄好一個(gè) ubuntu 系統(tǒng) 的 U 盤(pán) |
創(chuàng)建 provider 網(wǎng)絡(luò) | 叫電信的來(lái)給家里開(kāi)通網(wǎng)絡(luò) |
創(chuàng)建 Instance 主機(jī) | 買(mǎi)了一臺(tái)主機(jī),并用剛剛的 U 盤(pán)給它裝好 Ubuntu 系統(tǒng) |
啟動(dòng) Instance 主機(jī) | 把電信的網(wǎng)口插到主機(jī)網(wǎng)卡上 |
我在 Dashboard 創(chuàng)建了兩臺(tái) Instance 主機(jī),兩臺(tái)主機(jī)跑的好好的。就目前來(lái)說(shuō),這個(gè)效果和 VMware Workstation 軟件就很像了,可以在一臺(tái)物理機(jī)上,跑多虛擬主機(jī)。只不過(guò) VMware Workstation 軟件面向的是單臺(tái)物理機(jī),而 openstack 卻可以 面對(duì)物理機(jī)集群 進(jìn)行管理和虛擬化。當(dāng)成百上千的物理機(jī)被 openstack 管理著,而終端使用用戶(hù)只需要面對(duì)唯一的一個(gè) Dashboard 界面,這個(gè)時(shí)候私有云的概念就體現(xiàn)出來(lái)了。
有了感性的認(rèn)識(shí)后,再去 openstack 官網(wǎng)是什么定義自己的:
Open source software for creating private and public clouds.
OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
Hundreds of the world's largest brands rely on OpenStack to run their businesses every day, reducing costs and helping them move faster. OpenStack has a strong ecosystem, and users seeking commercial support can choose from different OpenStack-powered products and services in the Marketplace.
The software is built by a thriving community of developers, in collaboration with users, and is designed in the open at our Summits.
OpenStack 軟件控制整個(gè)數(shù)據(jù)中心的大型計(jì)算,存儲(chǔ)和網(wǎng)絡(luò)資源,用戶(hù)可以通過(guò) Dashboard 或 OpenStack API 進(jìn)行管理。就我理解,Openstack 更像是一個(gè)操作系統(tǒng),一個(gè)強(qiáng)大的云計(jì)算操作系統(tǒng)。
Openstack 網(wǎng)絡(luò)概念
我前面通過(guò) Dashboard 創(chuàng)建的兩個(gè) Instance 虛擬機(jī),它們之間是可以互相 ping 通的,因?yàn)樗鼈儍墒翘幱谕粋€(gè)二層網(wǎng)絡(luò)的,都是直接鏈接到 Provider 網(wǎng)絡(luò)。
| VM1 | | VM2 | |-------| |-------| | | | Eth(172.24.4.2) | Eth(172.24.4.3) ____|______________________|___________ - - - - - - - - - - - - - - - - - - - - Provider (172.24.4.0/24)
上面的拓?fù)淦鋵?shí)已經(jīng)涵蓋了 openstack 中比較核心的三個(gè)網(wǎng)絡(luò)概念:Network,Subnet, Port 。我們把這三個(gè)概念和上面的網(wǎng)絡(luò)拓?fù)溆成湟幌拢?/p>
- “Provider” 這個(gè)名字,對(duì)應(yīng)的就是 openstack 的 Network
- “172.24.4.0/24” 這個(gè) IP 地址池,對(duì)應(yīng)的就是 openstack 的 Subnet
- “Eth(172.24.4.2)” 這個(gè) Instance 網(wǎng)卡,對(duì)應(yīng)的就是 openstack 的 Port
其實(shí)我們還可以讓 VM1 和 VM2 不在一個(gè)二層網(wǎng)絡(luò)上,只不過(guò)這個(gè)時(shí)候,就需要引入 openstack 網(wǎng)絡(luò)的另一核心概念 Router。
| VM2 | |-------| | | Eth(10.0.0.2) _______|_______ - - - - - - - - Private (10.0.0.0/24) | | If(10.0.0.1) | | VM1 | | Router1 | |-------| |----------| | | | Eth(172.24.4.2) | Gw(172.24.4.3) ____|_______________________|__________ - - - - - - - - - - - - - - - - - - - - Provider (172.24.4.0/24)
這樣一來(lái) VM1 和 VM2 就不在同一個(gè)二層網(wǎng)絡(luò)了,兩個(gè) Instance 虛擬機(jī)的網(wǎng)絡(luò)環(huán)境也就實(shí)現(xiàn)了隔離。從拓?fù)渖峡梢钥闯觯@里多出了三樣新部件:
- Router: 也就是拓?fù)渲械?Router1
- Router-Gateway: 也就是拓?fù)渲械?Gw(172.24.4.3),主要是為了 Router1 后面的虛擬機(jī)訪(fǎng)問(wèn) Provider 網(wǎng)絡(luò)。
- Router-Interface: 也就是拓?fù)渲械?If(10.0.0.1),讓 Router1 作為 Private 網(wǎng)絡(luò)的 L3 網(wǎng)關(guān)。
上面兩個(gè)網(wǎng)絡(luò)拓?fù)洌透采w openstack 網(wǎng)絡(luò)的核心概念了,當(dāng)然僅僅有以上四個(gè)核心概念,是沒(méi)辦法適應(yīng)實(shí)際 Data Center 復(fù)雜的網(wǎng)絡(luò)拓?fù)湫枨蟮?,為此有了其他虛擬網(wǎng)絡(luò)概念如:FloatingIP, SecurityGroup, ServiceFunctionChain 等。
Openstack 網(wǎng)絡(luò)組件介紹
Openstack 包含了非常多的子項(xiàng)目,目前幾個(gè)核心的子項(xiàng)目如下:
- Nova: 提供 compute 計(jì)算能力(虛擬機(jī))
- Neutron: 提供 networking 網(wǎng)絡(luò)連接能力
- Glance: 提供 image 鏡像存儲(chǔ)能力
- Keystone: 提供 identity 身份認(rèn)證能力
- Cinder / Swift: 提供 storage 存儲(chǔ)能力
網(wǎng)絡(luò)虛擬化是塊發(fā)展比較快的領(lǐng)域,到目前 Neutron 已經(jīng)很好的支持 L2, L3, HA, SecurityGroup, LBaas, FWaas, VPNaas, DVR 等等。只不過(guò)我看過(guò)一些文章,里面說(shuō)到 Neutron 的發(fā)展方向應(yīng)該是,專(zhuān)注于 API 標(biāo)準(zhǔn)的定制。讓各個(gè)網(wǎng)絡(luò)功能從 Neutron 中剝離出去,讓各個(gè)網(wǎng)絡(luò)設(shè)備商的 SDN Controller Plugin 去聚焦和實(shí)現(xiàn)這部分功能。Neutron 需要設(shè)計(jì)出一組良好的北向接口規(guī)范,讓自己成為一個(gè)純粹的 API Server(這些觀(guān)點(diǎn)的正確性,我也不確定,只不過(guò)換個(gè)高度看事情,未嘗不是件好事)。
Neutron 里面有兩個(gè)框架比較有趣, ML2 框架和 Extension Plugin框架 。ML2 是對(duì) L2 網(wǎng)絡(luò)功能的一次抽象,這讓不同的 L2 虛擬化技術(shù)(LinuxBridge, OpenvSwitch…)只需統(tǒng)一對(duì)接到 ML2 即可。而 Extension Plugin 為一些在開(kāi)發(fā)中的 SDN Controler or Network Function Virtual,能夠方便的對(duì)接到 Neutron 中,進(jìn)行部署測(cè)試,待其孵化成熟之后,再合并到 Neutron 項(xiàng)目中。我在主機(jī)上部署的 Openstack (Neutron + OVN),其實(shí)就是充分利用了 Neutron ML2 和 ExtensionPlugin 才得以實(shí)現(xiàn),從這點(diǎn)上也看出了 Neutron 的靈活性非常強(qiáng)大。
上面簡(jiǎn)單介紹了 Neutron,現(xiàn)在說(shuō)說(shuō) OVN (Open Virtual Network for OpenvSwitch),它是 OpenvSwitch 團(tuán)隊(duì)自己孵化 OVS 的子項(xiàng)目,目的是為了讓 OVS 更加友好的支持虛擬網(wǎng)絡(luò),容我引用 IBM 的一篇博文的精彩觀(guān)點(diǎn):
Pick up from 如何借助 OVN 來(lái)提高 OVS 在云計(jì)算環(huán)境中的性能
眾所周知,OpenvSwitch 以其豐富的功能和不錯(cuò)的性能,已經(jīng)成為 Openstack 部署中最受歡迎的虛擬交換機(jī)。由于 Openstack Neutron 的架構(gòu)引入了一些性能問(wèn)題,比如 neutron-server 要與非常多的 agent 通信,RPC 就是一個(gè)性能瓶頸,還有 neutron 里面用到非常多的 namespace,namespace 資源有限而且系統(tǒng)開(kāi)銷(xiāo)比較大,這也是一個(gè)性能瓶頸。OVS 社區(qū)覺(jué)得從長(zhǎng)遠(yuǎn)來(lái)看,Neutron 應(yīng)該讓一個(gè)其它的項(xiàng)目來(lái)做虛擬網(wǎng)絡(luò)的控制平面,Neutron 只需要提供 API 的處理,于是 OVS 社區(qū)推出了 OVN(Open Virtual Network)這個(gè)項(xiàng)目,OVN 是 OVS 的控制平面,它給 OVS 增加了對(duì)虛擬網(wǎng)絡(luò)的原生支持,大大提高了 OVS 在實(shí)際應(yīng)用環(huán)境中的性能和規(guī)模。
如果想用 OVN 和 Neutron 進(jìn)行集成使用,還需要 Networking-ovn Plugin 的幫助。Networking-ovn 是個(gè)比較簡(jiǎn)單的 Plugin,它的工作是將 Neutron 中對(duì)虛擬網(wǎng)絡(luò)的定義,翻譯到 OVN 對(duì)虛擬網(wǎng)絡(luò)的定義中去。它的簡(jiǎn)單,來(lái)源于優(yōu)美的 Neutron API 接口設(shè)計(jì),和精簡(jiǎn)的 OVN 北向數(shù)據(jù)庫(kù)表設(shè)計(jì)。
| OPENSTACK | | | | (neutron) | API Server ----------------------- | | v v ---> networing-ovn <--- Service and Plugin | | v v |----------| | OVN | SDN Controller for OpenvSwitch |----------| | v ---------------------- | OpenvSwitch | DataPlan support for Virtual Networking Function | |
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
openstack云計(jì)算keystone架構(gòu)源碼分析
這篇文章主要為大家介紹了openstack云計(jì)算keystone架構(gòu)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04openstack云計(jì)算組件keystone部署及操作使用技巧
這篇文章主要為大家介紹了openstack云計(jì)算組件keystone部署及操作使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04openstack云計(jì)算組件glance部署及操作步驟
這篇文章主要為大家介紹了openstack云計(jì)算之glance部署及操作步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04詳解OpenStack云平臺(tái)的網(wǎng)絡(luò)模式及其工作機(jī)制
這篇文章主要介紹了詳解OpenStack云平臺(tái)的網(wǎng)絡(luò)模式及其工作機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12Openstack 啟動(dòng)instance ''hvm''錯(cuò)誤問(wèn)題解決辦法
這篇文章主要介紹了Openstack 啟動(dòng)instance 'hvm'錯(cuò)誤問(wèn)題解決辦法的相關(guān)資料,需要的朋友可以參考下2016-11-11簡(jiǎn)單談?wù)凮penStack中的網(wǎng)絡(luò)隔離
這篇文章主要介紹了簡(jiǎn)單談?wù)凮penStack中的網(wǎng)絡(luò)隔離的相關(guān)資料,需要的朋友可以參考下2017-03-03詳解Openstack組件部署 — Overview和前期環(huán)境準(zhǔn)備
本篇文章主要介紹了詳解Openstack組件部署 — Overview和前期環(huán)境準(zhǔn)備,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03OpenStack Keystone的基本概念詳細(xì)介紹
這篇文章主要介紹了OpenStack Keystone的基本概念詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11