日韩精品成人无码专区免费-国产99久久久久久免费看-国产精品丝袜久久久久久不卡-国产精品无码一区二区三区

OpenStack Train版雙節(jié)點安裝(九)網絡服務neutron概述

發(fā)布時間:2024-03-07 點擊:197
發(fā)布時間:2020-06-23 11:08:41
來源:51cto
閱讀:713
作者:ygj900629
欄目:云計算
第九部分?網絡服務neutron概述
一、neutron架構
openstack的網絡服務neutron是整個openstack中最復雜的一個部分,它的基本架構是一個中心服務(neutron-server)外加各種plugins和agents,使用不同的network?provider(網絡提供者,如linux?bridge、openvswitch(ovs)等)來實現各種網絡架構,在這之上為實例提供網絡、子網、端口和防火墻等網絡資源。
下圖是neutron的基本架構
可見,neutron采用分布式架構,由多個組件(子服務)共同對外提供網絡服務。
neutron?server
對外提供openstack網絡api,接收請求,并調用plugin處理請求。
下圖是neutron?server的結構圖
neutron?server包括兩部分
1. 提供api服務;2.?調用plugins。
core api
對外提供管理network, subnet和 port的restful api。
extension api
對外提供管理 router, load balance, firewall等資源的restful api。
commnon service
認證和校驗 api 請求。
neutron core
neutron server的核心處理程序,通過調用相應的plugin處理請求。
core plugin api
定義了core plugin的抽象功能集合,neutron core通過該api調用相應的core plugin。
extension plugin api
定義了service plugin的抽象功能集合,neutron core通過該api調用相應的service plugin。
core plugin
實現了core plugin api,在數據庫中維護network, subnet和port的狀態(tài),并負責調用相應的agent在network provider上執(zhí)行相關操作,比如創(chuàng)建network。
service plugin
實現了extension plugin api,在數據庫中維護router, load balance, security group等資源的狀態(tài),并負責調用相應的agent在network provider上執(zhí)行相關操作,比如創(chuàng)建router。
plugin
處理neutron?server發(fā)來的請求,維護openstack邏輯網絡的狀態(tài),并調用agent處理請求,實現“提供什么網絡(what)”的功能。
plugin按照功能分為兩類: core plugin和service plugin。
core plugin:維護neutron的netowrk, subnet和port相關資源的信息,與core plugin對應的agent包括linux bridge, ovs等;
service plugin:提供dhcp、routing, firewall, load balance等服務,也有相應的agent。
agent
處理plugin的請求,負責在network?provider上真正實現各種網絡功能,實現“怎么提供網絡(how)”的功能。
network?provider
提供網絡服務的虛擬或物理網絡設備,例如linux?bridge,open?vswitch等。
queue
neutron server,plugin和agent之間通過messaging queue消息隊列通信和調用。
database
存放openstack的網絡狀態(tài)信息,包括network, subnet, port, router等。
二、neutron的工作原理
下一節(jié)要在neutron中使用linux bridge這一種network provider來提供網絡服務,那么,它是怎樣實現的呢?
根據上面neutron?server的分層模型,要想使用這種network?provider,需要安裝兩個東西:linux bridge core plugin和linux bridge agent。
linux bridge core plugin:與neutron server一起運行,實現了core plugin api。負責維護數據庫信息,通知linux bridge agent實現具體的網絡功能。
linux bridge agent:接收來自plugin的請求,通過配置主機上的linux bridge實現neutron網絡功能。通常位于計算節(jié)點或者網絡節(jié)點。
同樣道理,如果使用的network?provider是open?vswitch,那么只需要安裝 open vswitch plugin 和 open vswitch agent就行了。
可見,plugin,agent和network provider是配套使用的,比如上面的network provider是linux bridge,那么就得使用linux bridge的plugin和agent;如果network provider換成了ovs或者物理交換機,plugin和agent也得替換。
這就造成一個問題:所有network provider的plugin都要編寫一套非常類似的數據庫訪問代碼。
為了解決這個問題,neutron實現了一個叫ml2(modular layer 2)plugin,對plugin的功能進行抽象和封裝。
有了ml2 plugin,各種 network provider 無需開發(fā)自己的plugin,只需要針對 ml2 開發(fā)相應的driver就可以了。
三、ml2(modular layer 2)plugin
moduler layer 2(ml2)是neutron?在havana 版本(h版本)實現的一個core plugin,用于替代原有的linux bridge plugin和open vswitch plugin,并一直沿用至今。
ml2 提供了一個框架,允許在openstack網絡中同時使用多種layer 2網絡技術,不同的節(jié)點可以使用不同的網絡實現機制。
采用ml2 plugin后,可以在不同節(jié)點上分別部署linux bridge agent, open vswitch agent, hyper-v agent以及其他第三方agent。
ml2 對二層網絡進行抽象和建模,引入了type driver和mechansim driver。這兩類driver解耦了 neutron 所支持的網絡類型(type)與訪問這些網絡類型的機制(mechanism),其結果就是使得ml2具有非常好的彈性,易于擴展,能夠靈活支持多種type和 mechanism。?
type?driver
neutron 支持的每一種網絡類型都有一個對應的ml2 type driver。 type driver 負責維護網絡類型的狀態(tài),執(zhí)行驗證,創(chuàng)建網絡等。?
ml2 支持的網絡類型包括 local, flat, vlan, vxlan 和 gre。
mechansim driver
neutron 支持的每一種網絡機制都有一個對應的ml2 mechansim driver。 mechanism driver負責獲取由type driver維護的網絡狀態(tài)。
mechanism driver 有三種類型:
agent-based:包括linux bridge, open vswitch等。
controller-based:包括opendaylight, vmware nsx等。
基于物理交換機:包括 cisco nexus, arista, mellanox 等。?
比如要創(chuàng)建一個type driver為 vlan,mechansim driver為 linux bridge的network vlan100,那么:
vlan type driver會確保將vlan100的信息保存到neutron 數據庫中,包括network 的名稱,vlan id等;linux bridge mechanism driver會確保節(jié)點上的linux brige agent在物理網卡上創(chuàng)建id為100的vlan設備和bridge設備,并將兩者進行橋接。
linux bridge和open vswitch的 ml2 mechanism driver的作用是配置各節(jié)點上的虛擬交換機。
四、service?plugin/agent
service plugin及其 agent提供更豐富的擴展功能,包括dhcp、路由,load balance,firewall等
dhcp<

云主機空間租賃
電腦喇叭電流聲大怎么消除 解決電腦喇叭電流聲大的故障
又是一年新春年貨時 你被哪些暖心廣告戳中淚點了
支付寶接口問題-其他問題
建站域名不續(xù)費了怎么辦
搶注域名成功后有什么用
對于被退回的第一個問題我有些疑問網站是能打開的
克孜勒蘇柯爾克孜云服務器購買