精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

無網不通,有網則順:OpenStack Neutron解析

責任編輯:editor006

作者:龔永生

2015-06-18 16:39:50

摘自:CSDN

【編者按】Neutron是OpenStac環境的核心組件之一,了解Neutron的功能和部署方式,是企業OpenStack系統的規劃、部署和運維需要修煉的內功。

【編者按】Neutron是OpenStac環境的核心組件之一,了解Neutron的功能和部署方式,是企業OpenStack系統的規劃、部署和運維需要修煉的內功。在本文中,Neutron“大師兄”龔永生為我們詳細介紹了Neutron的技術原理和發展方向,主要涉及使用、部署和運維三個層面的內容。

一、Neutron功能介紹

作為OpenStack網絡模塊,Neutron是分布式的OpenStack Iaas環境核心組件之一。Neutron,或者是Neutron的前身,是為了在分布式環境下面給虛擬機提供網卡,這是它的最基本的要求。此外,Neutron還要虛擬化網絡功能的其它元件,比如抽象交換機,抽象負載均衡器,抽象防火墻,抽象NAT。Neutron這個團隊是先做API,做模型,先把API畫下來,達成比較一致的時候才能往下實現,實現數據庫和相關agent等其他的東西。Agent一般會是Linux里面的相關技術來完成。

有了網絡元件的虛擬化之后Neutron還要完成把這些虛擬網絡元件連起來。大家分散在這兒能干嘛,什么東西都不能干。這是Neutron要干的事情,而且這個在以后會大量的占用Neutron社區人員的工作。

對Neutron來說,圖1-1所示

  圖1-1

我們先看的是虛擬化網絡組件,網絡端口,ACL,或者是交換機,或者是路由器等等,再是它們之間的互聯形成的虛擬網絡拓撲,這是最終用戶或者是我們在虛擬化看到的景象。在物理層看到外部網絡,物理機,交換機,路由器,連接各種網絡的網線等。虛擬化網絡最終還是要通過物理層面承載,所以我們部署的時候必須要掌握物理之間它們怎么互聯,物理網絡方面必須快速,穩定。這樣我們在Neutron構建虛擬化的網絡拓撲的時候才能有一個可靠的承載手段。

總的來說,Neutron要做的事情包括:虛擬化網卡,虛擬化各種網絡部件,在虛擬化元件之間互聯,把虛擬化和物理網絡上打通,這樣虛擬化的東西才能走。

二、Neutron體系結構

Neutron主要是用來做模型的,如圖1-2所示

  圖1-2

Neutron這個TEAM的首要工作是定義API,API的核心是它的數據模型。端口在數據模型中占有重要位置。端口首要是作為虛擬機的網卡,然后是路由器端口,端口上面還綁安全組,形成規則來提供端口的訪問控制。端口是綁在每個網絡上面的,網絡能給端口跟別的網絡上的端口提供隔離。端口的IP地址從子網來獲取。浮動IP是在公網上可以訪問的一個IP,在綁定到某個端口之后,這個端口就可以從外界訪問了。除了上圖顯示的一些模型外,防火墻、負載均衡器等都是Neutron模型的一部分。

Neutron的功能組件里頭,Neutron Server用來綁定所有的模型。它通過消息隊列和所有的agent進行通信,后者真正地把網絡模型物理落地。Neutron Server保存的是虛擬網絡TOP的模型,今后的版本要把Neutron Server劈開,一半來實現API,另一半和agents進行交互。

網絡,端口,子網模型由核心API實現,另外一些API通過擴展實現。如圖1-3所示

  圖1-3

整個OpenStack是插件式,Neutron Server也是如此。Neutron中有核心插件和服務插件的區分,這有社區的實現,也有各個廠商的實現。

部署OpenStack先要定義這些網絡:管理網絡,數據網絡,存儲網絡,公有網絡,甚至內部網絡。不管是Nova API,還是Neutron Server,都在控制節點上部署。如圖1-4,圖1-5和圖1-6所示。提供三層網絡服務的我們稱之為網絡節點,防火墻,路由器和DHCP agent等等都在網絡節點上。你要訪問虛擬機,你要是公有網。我們看部署方案二,它把計算和存儲合二為一。因為計算節點服務器可能有很多槽,這些槽不要浪費了,做一個分布式存儲,這樣把存儲節點合并起來,但是網絡節點還在這兒。為什么把網絡節點分開?網絡節點還是有它的好處,網絡安全等等是有特殊性要求,在這上面單獨部署還是挺好。方案三中進一步把網絡節點上的功能也并入到計算節點上,這種部署方案可以簡化云計算方案中的硬件規范,但是需要做好隔離,這樣網絡、存儲和計算不會互相競爭CPU,內存和IO資源。

  圖1-4

  圖1-5

  圖1-6

三、Neutron的管理員特權

在Neutron中有兩種角色,一個角色是管理員,另一個角色是普通用戶。

由圖1-3 Neutron的層次圖來看,上面是API,有核心API和擴展API。命令neutron ext-list可以看到這個系統有哪些擴展,每個擴展大概是什么意思。因為有了擴展才會有相應的功能。還有超級管理員比較常見的就是neutron agent list,這個命令很關鍵。還有網絡綁定,也只有管理員才能看見,如圖1-7所示

  圖1-7

圖1-7上標注部分只能管理員看到,用戶看不到。網絡綁定是指虛擬網絡在物理網絡上面是什么類型。一般的支持五種網絡類型,Gre,vxlan,vlan,flat,local。Physical_network對于vlan,flat類型,指定橋接的bridge。創建一個虛擬網絡,這些字段系統會給普通住戶填寫,但是如果想創建成某個類型,創建到某個物理網絡上面去,管理員是有特權的。用這個特權我們看看創建外部網絡和子網。如圖1-8所示

  圖1-8

我們在部署完一個云之后,管理員上去的第一個任務就是創建它的外部網絡,網絡類型是local。管理員還要從網絡部門拿到一部分的IP地址段和網關,再來創建外部網絡子網。

四、Neutron的普通用戶工作流程

普通用戶的工作流程大概有7步。如圖1-9,圖1-10和圖1-11所示

  圖1-9

  圖1-10

  圖1-11

我們腦袋里面有這個圖,對運維來說很關鍵。我們就知道大概在物理世界會產生什么問題,會起到什么效果。第一步是創建虛擬網絡,Neutron會把它綁定到某個隧道,第二步是創造子網,指定IP地址段、網關,這時在物理上就會有DHCP服務器起來。第三個創建路由器,系統就會把它綁定到某個節點。第四步就是把這個路由器和子網連起來,這個虛擬路由器就有一個端口會連到虛擬網絡,第五步是設置路由器的外部網關,這時網絡節點上就有一個虛擬設備把虛擬路由器和外部網絡連接起來。第六步就是做安全規則,第七步就是利用安全組和子網創建虛擬機。整個鏈條如果很熟悉,排除故障就很簡單。

五、Neutron運維

運維人員很多時候是必須要有管理權限,管理人員就是運維。如果我們定義清楚,也可以定義出自己的角色來,把Neutron的角色分工細分一下。下面我們介紹幾個在運維中常出現的問題和排錯手段。

1. 節點down了,如圖1-12所示

  圖1-12

剛剛部署完了,一看上去全部是down掉了,down掉了怎么辦?我要查整個部署。一查沒有部署這個沒有部署那個,這時日志很關鍵。所以在部署的時候要統一日志收集,你在上面就可以看到各種日志??碦abbitmq,文件句柄太少了,或者是硬盤太小了,都會影響到rabbitmq接受agent的連接。還有檢查Server,看Neutron Server是不是出問題了。最后就是不要出現時間不同步的問題。

2. floatingip不通,如圖1-13所示

  圖1-13

先看看VM是否分配到了固定IP, 是否能通到VM網絡的網關。再查詢它的安全組規則,看看是否阻止了某種網絡流量。再看看這個IP所在的ROUTER是什么,再看看router所在的網絡節點,進入這個路由器所在的名字空間,察看floatingip是否存在。軟件方面有時候重啟也是能解決問題的。

3. L3節點錯誤,如圖1-14所示

  圖1-14

L3出錯了怎么辦?這時可能需要遷移。首先我們把這個L3 agent設為down,down完之后看看這個節點上所有的router。 接著把所有router的管理狀態設為down, 然后又設為up, 這時系統就會重新綁定router到其它網絡節點。這個過程很復雜,人工去做會影響比較長的時間?,F在很多友商用監控,如果L3 agent出錯, 啟動自動腳本進行遷移。 在Kilo版中, HA router也是一個不錯的選擇。

4. 還有一個端口綁定失敗,如圖1-15所示

  圖1-15

這是經常遇到的一個問題。在我的產品中,如果出現綁定失敗,就直接拋出錯誤,這樣問題就會第一時間暴露出來。如果不這樣做,直接把“binding_failure”寫在數據庫里面,虛擬機就拿不到IP。怎么解決呢?在Neutron里面只要把這個host_id先置一下,再置回去,這時候能讓Neutron agent重新綁定端口,設置正確的TAG.

5. 要注意TAG 4095端口,如圖1-16所示

  圖1-16

我們確認port不在Neutron Server中,然后刪除ovs port。如果在Neutron Server中有,就要重新改一下,讓它的binding重新做。

做OpenStack運維,整個網絡流程是必須掌握的。我們看Neutron鏈路分析,如圖1-17所示

  圖1-17

有觀點說,對虛擬機的啟動過程進行詳細分析后就掌握一半的OpenStack,我認為,把上圖分析透了就掌握一半以上的Neutron。

在運維方面,我一直在想能不能有像一個機器人一樣的東西。有個知識庫,發現問題報告出來,甚至能自動修復,這也是我經常做夢想實現的。其實網絡方面還有很深的水,這里只是講了一部分。SDN,NFV或者是DVDK,都是有意思的東西。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 青神县| 手游| 方山县| 峡江县| 乃东县| 新平| 冀州市| 淄博市| 敦煌市| 师宗县| 岑巩县| 壶关县| 北流市| 佳木斯市| 察哈| 马山县| 塘沽区| 中牟县| 奇台县| 开封市| 贵港市| 黄陵县| 固安县| 高唐县| 岳池县| 聂拉木县| 类乌齐县| 榆中县| 大悟县| 铜山县| 财经| 高州市| 阜阳市| 宁河县| 阳曲县| 治县。| 宁强县| 辛集市| 杨浦区| 孟连| 巴彦县|