OpenStack必備基礎知識

tanwenlong01發表於2020-12-10

一,OpenStack概述

前言

OpenStack是一個開源的雲端計算管理平臺專案,是一系列軟體開源專案的組合。由NASA(美國國家航空航天局)和Rackspace合作研發併發起,以Apache許可證(Apache軟體基金會發布的一個自由軟體許可證)授權的開原始碼專案。

OpenStack為私有云和公有云提供可擴充套件的彈性的雲端計算服務。專案目標是提供實施簡單、可大規模擴充套件、豐富、標準統一的雲端計算管理平臺

1.雲端計算概述

概念

  • 狹義的雲端計算是指IT基礎設施的交付和使用模式
  • 廣義的雲端計算是指服務的交付和使用模式

雲端計算資源

  • 網路資源
  • 儲存資源
  • 計算資源

2.雲端計算服務模型

laaS(基礎架構即服務)

  • 提供底層IT基礎設施服務,包括處理能力、儲存空間、網路資源等
  • 物件導向一般時IT管理人員

使用者能從中申請到硬體或虛擬硬體,包括裸機或虛擬機器,然後在上邊安裝作業系統或其他應用程式

OpenStack就是一種laaS

PaaS(平臺及服務)

  • 把安裝好開發環境的系統平臺作為一種服務通過網際網路提供給使用者
  • 物件導向一般是開發人員

使用者能從中申請到一個安裝了作業系統以及支撐應用程式執行所需要的執行庫等軟體的物理機或虛擬機器,然後在上邊安裝其他應用程式,但不能修改已經預裝好的作業系統和執行環境

SaaS(軟體即服務)

  • 直接通過網際網路為使用者提供軟體和應用程式等服務
  • 物件導向一般是普通使用者

使用者可以通過網路以租賃的方式來使用一些軟體,而不是購買,比較常見的模式是提供一組賬號密碼

在這裡插入圖片描述

3.OpenStack概述

OpenStack是一個雲作業系統,它控制整個資料中心的大型計算、儲存和網路資源池,所有這些都是通過一個儀表板進行管理的,儀表板為管理員提供控制,同時授權使用者通過web介面提供資源。

  • NASA(美國國家航空航天局)和Rackspace共同發起
  • 以Apache許可證授權的自由軟體和開放原始碼專案
  • 為公有云即私有云的建設與管理提供軟體的開源專案
  • 覆蓋了網路、虛擬化、作業系統、伺服器等各個方面

4.OpenStack是什麼?

目前最流行的開源作業系統核心。

  1. 資源抽象

    OpenStack將各類硬體資源,通過虛擬化與軟體定義的方式,抽象成資源池。

  2. 資源分配與負載排程

    OpenStack根據管理員/使用者的需求,將資源池中的資源分配給不同的使用者,承載不同的應用。

  3. 應用宣告週期管理

    OpenStack已經可以提供初步的應用部署/撤除、自動規模調整能力。

  4. 系統運維

    OpenStack已經可以提供一定的系統監控能力。

  5. 人機互動

    OpenStack提供人機介面,外界可以通過API、命令列或圖形介面的方式參與OpenStack進行互動。

5.OpenStack不是什麼?

OpenStack不是虛擬化:

  • OpenStack的架構定位與技術範疇

    1. OpenStack只是系統的控制面。
    2. OpenStack不包括系統的資料面元件,如hypervisor、儲存和網路裝置等。
  • 雲和虛擬化有著關鍵的區別

    雲端計算:IT能力服務化; 按需使用,按量計費; 多租戶隔離;

    虛擬化:環境隔離,資源複用; 降低隔離損耗,提升執行效率; 提供高階虛擬化特性。

    虛擬化是實現雲端計算的技術支撐手段之一,但並非雲端計算的核心關注點。

OpenStack不是雲:

  • OpenStack只是構建雲的關鍵元件。

    核心、骨幹、框架、匯流排。

  • 為了構建一個雲,還需要許多東西:

在這裡插入圖片描述

6.OpenStack常見的8個核心專案

服務專案名稱描述
Compute(計算服務)Nova負責例項生命週期的管理,計算資源的單位。對Hypervisor進行遮蔽,支援多種虛擬化計算(紅帽預設為KVM),支援橫向擴充套件
Network(網路服務)Neutron負責虛擬網路的管理,為例項建立網路的拓撲結構。是面向租戶的網路管理,可以自己定義自己的網路,各個租戶之間互不影響
Identity(身份認證服務)Keystone類似於LDAP服務,對使用者、租戶和角色、服務進行認證與授權,且支援認證機制
Dashboard(控制皮膚服務)Horizon提供一個Web管理介面,與OpenStack底層服務進行互動
Image Service(映象服務)Glance提供虛擬機器映象模板的註冊與管理,將做好的作業系統拷貝為映象模板,在建立虛擬機器時直接使用,可支援多格式的映象
Block Storage(塊儲存服務)Cinder負責為執行例項提供持久的塊儲存裝置,可進行方便的擴充套件,按需付費,支援多種後端儲存
Object Storage(物件儲存服務)Swift為OpenStack提供基於雲的彈性儲存,支援叢集無單點故障
Telemetry(計量服務)Ceilometer用於度量、監控和控制資料資源的集中來源,為OpenStack使用者提供記賬途徑

7.OpenStack優勢

OpenStack 在控制性、 相容性、 可擴充套件性、 靈活性方面具備有優勢, 它可能成為雲端計算領域的行業標準。

控制性:完全開源的平臺,提供API介面,方便與第三方技術整合

相容性:OpenStack相容其他共有云,方便使用者進行資料遷移

可擴充套件性:模組化設計,可以通過橫向擴充套件,增加節點、新增資源

靈活性:根據自己的需要建立相應基礎設施、增加叢集規模

行業標準:眾多IT領軍企業已經加入到OpenStack專案

二,OpenStack架構

1.概述

學習OpenStack的部署和運維之前,應當熟悉其架構和執行機制,OpenStack作為開源、可擴充套件、富有彈性的雲作業系統,其設計基本原則如下:

  • 按照不同的功能和通用性劃分不同專案,拆分子系統
  • 按照邏輯計劃、規範子系統之間的通訊
  • 通過分層設計整個系統架構
  • 不同的功能子系統間提供統一的API介面

2.OpenStack概念架構

  • OpenStack由多種服務組成,每種服務具有獨立的命名。在整個OpenStack架構中,Keystone提供認證服務,接收來自使用者和服務的認證請求,並對其身份進行認證。各個服務之間通過公用的API介面進行互動。大部分服務均包含一個API程式,用於偵聽API請求,根據服務的性質選擇處理請求或轉發請求。服務程式之間的通訊通過訊息佇列實現,如AMQP。
  • 在部署完成的雲系統平臺上,使用者通過Dashboard(控制皮膚服務)或RestaRt方式在經Keystone模組認證授權後,可以執行建立虛擬機器服務。通過Nova模組建立虛擬機器例項,Nova呼叫Glance模組提供的映象服務,然後呼叫Neutron模組提供網路服務。根據需要可以選擇給虛擬機器增加儲存卷,卷功能由Cinder模組提供服務。整個過程在Ceilometer模組的資源監控下完成。同時Cinder提供的Volume和Glance提供的映象可以通過Swift物件儲存機制進行儲存

在這裡插入圖片描述

綜上所述,可以看到OpenStack雲平臺服務的提供主要是依靠Nova、Glance、Cinder和Neutron四個核心模組完成,四個輔助Horizen、Ceilometer、Keystone、Swift提供的訪問、監控、許可權和物件儲存功能。

OpenStack-ironic裸金屬

其實,OpenStack Ironic就是一個進行裸機部署安裝的專案。所謂裸機,就是指沒有配置作業系統的計算機。

從裸機到應用還需要進行以下操作:

  • (1)硬碟RAID、分割槽和格式化
  • (2)安裝作業系統、驅動程式
  • (3)安裝應用程式

ironic實現的功能,就是可以很方便的對指定的一臺或多臺裸機,執行以上一系列的操作。例如部署大資料群集需要同時部署多臺物理機,就可以使用Ironic來實現。

  • Ironic可以實現硬體基礎設施資源的快速交付

三,OpenStack常見的核心專案

1.keystone(使用者認證服務)

keystone簡介

  1. 提供身份驗證、服務規則和服務令牌功能。
  2. 任何服務之間相互呼叫,都需要經過Keystone的身份驗證。

keystone基本概念介紹

在這裡插入圖片描述

  1. User

    OpenStack最基本的使用者。

    User即使用者,他們代表可以通過keystone進行訪問的人或程式。Users通過認證資訊(credentials,如密碼、API
    Keys等)進行驗證。

  2. Project(Tenant)

    指分配給使用者的資源的集合。

    Tenant即租戶,它是各個服務中的一些可以訪問的資源集合。例如,在Nova中一個tenant可以是一些機器,在Swift和Glance中一個tenant可以是一些映象儲存,在Neutron中一個tenant可以是一些網路資源。Users預設的總是繫結到某些tenant上。

  3. Role

    Role即角色,Roles代表一組使用者可以訪問的資源許可權,例如Nova中的虛擬機器、Glance中的映象。Users可以被新增到任意一個全域性的或租戶的角色中。在全域性的role中,使用者的role許可權作用於所有的租戶,即可以對所有的租戶執行role規定的許可權;在租戶內的role中,使用者僅能在當前租戶內執行role規定的許可權。

  4. Service

    Service即服務,如Nova、Glance、Swift。根據前三個概念(User,Tenant和Role)一個服務可以確認當前使用者是否具有訪問其資源的許可權。但是當一個user嘗試著訪問其租戶內的service時,他必須知道這個service是否存在以及如何訪問這個service,這裡通常使用一些不同的名稱表示不同的服務。

  5. Endpoint

    服務的URL路徑,暴露出來的訪問點。

    Endpoint,翻譯為“端點”,我們可以理解它是一個服務暴露出來的訪問點,如果需要訪問一個服務,則必須知道他的endpoint。因此,在keystone中包含一個endpoint模板,這個模板提供了所有存在的服務endpoints資訊。一個endpoint template包含一個URLs列表,列表中的每個URL都對應一個服務例項的訪問地址,並且具有public、private和admin這三種許可權。public url可以被全域性訪問,private url只能被區域網訪問,admin url被從常規的訪問中分離。

  6. Domain

    定義管理邊界,可以包含多個project,user,role.

  7. Token

    Token是訪問資源的鑰匙。它是通過Keystone驗證後的返回值,在之後的與其他服務互動中只需要攜帶Token值即可。每個Token都有一個有效期,Token只在有效期內是有效的。

  8. Policy

    OpenStack對User的驗證除了OpenStack的身份驗證以外,還需要鑑別User對某個Service是否有訪問許可權。Policy機制就是用來控制User對Tenant中資源(包括Services)的操作許可權。對於Keystone service來說,Policy就是一個JSON檔案,預設是/etc/keystone/policy.json。通過配置這個檔案,Keystone Service實現了對User基於Role的許可權管理。

  9. Credentials

    用於確認使用者身份的憑證。

  10. Authentication

    確定使用者身份的過程。

各種概念之間的關係解釋:

在這裡插入圖片描述

  1. 租戶下,管理著一堆使用者(人,或程式)。
  2. 每個使用者都有自己的credentials(憑證)使用者名稱+密碼或者使用者名稱+APIkey,或其他憑證。
  3. 使用者在訪問其他資源(計算、儲存)之前,需要用自己的credential去請求keystone服務,獲得驗證資訊(主要是Token資訊)和服務資訊(服務目錄和它們的endpoint)。
  4. 使用者拿著Token資訊,就可以去訪問特點的資源了。

Keystone在OpenStack中的訪問流程範例:

在這裡插入圖片描述

2.nova(計算服務)

Nova

  1. OpenStack雲中的計算組織控制器。
  2. 管理OpenStack雲中示例的生命週期。
  3. 管理計算資源資源、網路、認證所需的可擴充套件平臺。

計算管理(codenamed “Nova”)基於使用者需求為VM提供計算資源管理. 基於Python語言編寫。

計算服務:計算節點–執行虛擬機器的Hypervisor。

分散式控制器:負責處理器排程策略及API呼叫等。

Nova常用術語

  1. KVM

    核心虛擬化,OpenStack中預設的Hypersvisor。

  2. Qemu

    KVM的替補角色,沒有KVM執行效率高,不支援虛擬化。

  3. Flavor

    新建虛擬機器的配置列表,虛擬機器模板。

  4. 安全組

    用來控制例項訪問策略的容器。

  5. 安全組規則

    用來控制例項訪問的具體策略。

Nova中的一些基本概念

  1. Nova-API

    對外統一提供標準化介面,接受和響應終端使用者Compute
    API的請求,同時還實現與Openstack其他各邏輯模組的通訊與服務提供。

  2. Nova-Scheduler

    從佇列上得到一個虛擬機器例項請求並且決定它應該在哪裡執行(使用多種過濾器或演算法排程)。即負責排程將例項分配到具體的計算節點。

  3. Queue

    提供了一個守護程式之間傳遞訊息的中央樞紐。訊息佇列系統作用還可以實現與Openstack其他各邏輯模組之間的通訊建立連線樞紐。

  4. Nova-Datebase

    儲存雲基礎設施的編譯時和執行時的狀態,從理論上講,OpenStack Nova可以支援任何SQL-Alchemy支援的資料庫,但是目前被廣泛使用的資料庫有sqlite3(只適用於測試和開發工作),MySQL和PostgreSQL。

  5. Nova-Compute

    主要是一個人工守護程式,它可以通過虛擬機器管理程式的API(XenAPIfor XenServer/XCP,libvirtfor KVM or QEMU, VMwareAPIfor VMware等)來建立和終止虛擬機器例項。支援多種虛擬化平臺。

  6. Nova-conductor

    主要負責與Nova資料庫進行互動。

  7. Nova還提供控制檯的服務

    讓終端使用者通過代理伺服器訪問他們的虛擬例項的控制檯。這涉及到多個守護程式(nova-console,nova-novncproxy、nova-xvpnvncproxy和nova-consoleauth)

Nova功能特效

  1. 例項的生命週期管理。
  2. 管理平臺的計算資源。
  3. 統一風格的RestAPI。
  4. 支援透明的hypervisor。
  5. 各個模組通過訊息佇列實現互動。

3.Cinder(塊儲存服務)

Cinder簡介

  1. 為虛擬機器示例提供volume卷的塊儲存服務。
  2. 一個volume可以同時掛載到多個例項上。
  3. 共享的卷同時只能被一個示例進行寫操作。

Cinder主要核心是對卷的管理,允許對卷、卷的型別、卷的快照進行處理。它並沒有實現對塊裝置的管理和實際服務,而是為後端不同的儲存結構提供了統一的介面,不同的塊裝置服務廠商在Cinder中實現其驅動支援以與OpenStack進行整合。

  • 塊儲存管理模組(codenamed “Cinder”)提供到虛擬機器的永久性塊儲存卷.類似AWS的EBS塊儲存服務。

  • 多個卷可以被掛載到單一虛擬機器例項,同時卷可以在虛擬機器例項間移動,單個卷在同一時刻只能被掛載到一個虛擬機器例項。

  • 塊儲存系統管理塊裝置到虛擬機器的建立,掛載以及解除安裝。

  • 塊裝置卷完全與OpenstackCompute整合,並支援雲使用者在Dashboard中管理資料自己的儲存。

  • 除了支援簡單的Linux伺服器本地儲存之外,還支援眾多的儲存平臺,包括Ceph,NetApp, Nexenta,SolidFire,Zadara。

  • 快照管理提供了強大的在塊儲存上實現資料備份的功能可以用來作為引導卷使用。

  • 塊儲存適合效能敏感性業務場景,例如資料庫儲存大規模可擴充套件的檔案系統或伺服器需要訪問到塊級裸裝置儲存。

Cinder的架構

在這裡插入圖片描述

  1. API Service:負責接受和處理 Rest請求,並將請求放入 RabbitMQ對列。
  2. Scheduler Service:處理任務佇列的任務,並根據預定策略選擇合適的 Volume Service 節點來執行任務。目前版本的Cinder僅僅提供了一個 Simple Scheduler, 該排程器選擇卷數量最少的一個活躍節點來建立卷。
  3. Volume Service: 該服務執行在儲存節點上,管理儲存空間。每個儲存節點都有一個 Volume Service,若干個這樣的儲存節點聯合起來可以構成一個儲存資源池。為了支援不同型別和型號的儲存,均通過Drivers的形式為Cinder的 Volume Service 提供相應的Cinder-Volume。
  4. Volume-Resize:在可用情況下調整卷大小。
  5. Volume-Backup-To-Ceph:現在卷可以備份到Ceph叢集中。
  6. Volume-Migration:現在不同使用者間可以透明地轉移和交換卷。
  7. QoS:增加限速相關的元資訊供Nova和其 Hypervisor使用。
  8. More-Drivers:更多的儲存廠商加入和完善了自己的Cinder驅動。

4.Swift(物件儲存服務)

Swift簡介

  1. 高可用分散式式物件儲存。
  2. 為nova元件提供虛擬化的映象儲存。
  3. 使用與網際網路應用場景下非結構化的資料儲存。
  • 分散式物件儲存系統,類似於AWS的S3。
  • 通過採用基於標準化伺服器的叢集架構提供冗餘,可擴充套件的物件儲存。
  • 具有良好的擴充套件性,可以實現PB級別資料的儲存。
  • 支援儲存物件寫入的多份拷貝,並且支援當拷貝丟失後的自我修復功能.確保資料的一致性。
  • 提供每GB高價效比的極佳的可用性和資料耐久性。
  • 支援原生的 OpenStack™ API 以及S3 compatible API。

Swift常用術語

  1. Account:

    使用者定義的管理儲存區域。

  2. Container:

    儲存間隔,類似於資料夾或目錄。

  3. Object:

    包含了基本的儲存實體和它自身的後設資料。

  4. Ring:

    記錄了磁碟儲存的實體名稱和物理位置的對映關係。

Account包含Container,Container包含Object。

  1. Region:

    地域,從地理位置上劃分的一個概念。

  2. Zone:

    可用區,按照獨立的供網、供電基礎設定劃分。

  3. Node:

    節點,儲存伺服器。

  4. Disk:

    磁碟,物理伺服器上的儲存裝置。

  5. Cluster:

    群集,為冗餘考慮的部署架構。

Cluster包含Region,Region包含Zone;Zone包含Node。

Swift功能

Swift在物理結構上往往會儲存物件的多個副本,通常按照物理位置的特點,將物件拷貝到不同的物理位置上,來保證資料的可靠性。

Swift資料模型

Swift採用層次資料模型,共設三層邏輯結構:Account/Container/Object(即賬戶/容器/物件),每層節點數均沒有限制,可以任意擴充套件。資料儲存基於NWR理論。

  1. Account對應租戶,用於隔離。
  2. Container對應某個租戶資料的儲存區域。
  3. Object對應儲存區域中具體的block。

Swift系統架構:

  • Swift 採用完全對稱、面向資源的分散式系統架構設計。
  • 所有元件都可擴充套件,避免因單點失效而擴散並影響整個系統運轉。
  • 通訊方式採用非阻塞式I/O 模式,提高了系統吞吐和響應能力。

在這裡插入圖片描述
在這裡插入圖片描述

Swift系統元件:

  1. 代理服務(Proxy Server):對外提供物件服務API,會根據環的資訊來查詢服務地址並轉發使用者請求至相應的賬戶、容器或者物件服務;由於採用無狀態的REST請求協議,可以進行橫向擴充套件來均衡負載。
  2. 認證服務(Authentication Server):驗證訪問使用者的身份資訊,並獲得一個物件訪問令牌(Token),在一定的時間內會一直有效;驗證訪問令牌的有效性並快取下來直至過期時間。
  3. 快取服務(Cache Server):快取的內容包括物件服務令牌,賬戶和容器的存在資訊,但不會快取物件本身的資料;快取服務可採用Memcached叢集,Swift會使用一致性雜湊演算法來分配快取地址。
  4. 賬戶服務(Account Server):提供賬戶後設資料和統計資訊,並維護所含容器列表的服務,每個賬戶的資訊被儲存在一個SQLite資料庫中。
  5. 容器服務(Container Server):提供容器後設資料和統計資訊,並維護所含物件列表的服務,每個容器的資訊也儲存在一個SQLite資料庫中。
  6. 物件服務(Object Server):提供物件後設資料和內容服務,每個物件的內容會以檔案的形式儲存在檔案系統中,後設資料會作為檔案屬性來儲存,建議採用支援擴充套件屬性的XFS檔案系統。
  7. 複製服務(Replicator):會檢測本地分割槽副本和遠端副本是否一致,具體是通過對比雜湊檔案和高階水印來完成,發現不一致時會採用推式(Push)更新遠端副本,例如物件複製服務會使用遠端檔案拷貝工具rsync來同步;另外一個任務是確保被標記刪除的物件從檔案系統中移除。
  8. 更新服務(Updater):當物件由於高負載的原因而無法立即更新時,任務將會被序列化到在本地檔案系統中進行排隊,以便服務恢復後進行非同步更新;例如成功建立物件後容器伺服器沒有及時更新物件列表,這個時候容器的更新操作就會進入排隊中,更新服務會在系統恢復正常後掃描佇列並進行相應的更新處理。
  9. 審計服務(Auditor):檢查物件,容器和賬戶的完整性,如果發現位元級的錯誤,檔案將被隔離,並複製其他的副本以覆蓋本地損壞的副本;其他型別的錯誤會被記錄到日誌中。
  10. 賬戶清理服務(Account Reaper):移除被標記為刪除的賬戶,刪除其所包含的所有容器和物件。

5.Glance(映象服務)

Glance簡介

  1. 為Nova提供映象服務。
  2. 通常不負責映象的本地儲存。
  3. 實現對映象的管理。

Glance是OpenStack映象服務,用來註冊、登陸和檢索虛擬機器映象。Glance服務提供了一個REST API,使你能夠查詢虛擬機器映象後設資料和檢索的實際映象。通過映象服務提供的虛擬機器映象可以儲存在不同的位置,從簡單的檔案系統物件儲存到類似OpeenStack物件儲存系統。

映象服務元件

  1. Glance-API :

    負責提供映象服務的rest api。

    接收終端使用者或Noav對映象的請求,檢索和儲存映象的相關API呼叫。

  2. Glance-registry: 儲存,處理和檢索有關映象的後設資料,後設資料大小、型別等等。

  3. Database :儲存映象後設資料,可以支援多種資料庫,現在使用比較廣泛的是mysql和sqlite.

Glance與其他模組的關係

在這裡插入圖片描述

6.Neutron(網路服務)

Neutron

  1. 提供網路服務的核心元件。
  2. 基於軟體定義網路的的思想。
  • 網路服務(codenamed “Quantum/Neutron”)提供在被管理裝置之間的網路連線服務.
  • 允許使用者自己建立自己的網路並attach埠使用.
  • 通過開發的Plugins支援SDN和OpenFlow
  • 使用者自定義子網地址,私有網路/公有網路以及FloatingIP分配規則
  • 基於外掛的模型。

常用術語

  1. Bridge-int

    實現內部網路功能的網橋。

  2. Br-ex:

    跟外部網路通訊的網橋。

  3. Neutron-server:

    提供API介面。

  4. Neutron-L2-agent:

    實現二層網路通訊的代理。

  5. Neutron-DHCP-agent:

    為子網自動分發IP地址。

  6. Neutron-L3-agent:

    租戶網路和floating IP間地址的轉換。

  7. Neutron-metadate-agent:

    響應Nova的metadate請求。

  8. LBaas agent:

    為多臺例項和Open vswitch agent提供負載均衡服務。

服務元件

  1. Neutron API

    l提供Openstack其他服務或管理員及使用者訪問的介面.

  2. 抽相層

    網路資源抽象化,包括網路,子網,埠及路由。將底層各種各樣的網路資源按照openstack定義的網路描述規則化。

  3. Plug-in

    通過Plug-in方式可以整合更多的高階的功能以及與底層網路廠商的裝置實現更好的整合。

網路Agent

  • Plug-in agent:本地虛擬交換配置。
  • Dhcp agent:為tenant網路提供DHCP服務。
  • L3agent:提供l3/NAT轉發功能,為tenant網路中的vm提供外網訪問。
  • Meteringagent:提供l3流量監控和計量。

網路描述

  • 管理網路:用於OpenStack各元件之間的內部通訊。
  • 資料網路:用於雲部署中虛擬資料之間的通訊。
  • 外部網路:公共網路,外部或internet可以訪問的網路。
  • API網路:暴露所有的OpenStackAPIs,包括OpenStack網路 API給租戶

Neutron服務網路管理的三種模式,兩種IP:

兩種IP

  1. 固定IP(Fixed-IP):分配給虛擬機器例項使用
  2. 浮動IP(FloatingIP):分配給虛擬機器例項的外網地址,通過NAT方式實現。

三種模式

  1. Flat模式

    Flat 模式是最簡單的一種聯網模式。每個例項接收一個來自池的固定IP。所有例項均預設附加到相同的橋
    (br100)。橋必須進行手動配置。聯網配置在例項引導前插入到例項中。在這種模式中,沒有浮動IP特性。

  2. Flat DHCP模式

    用於測試環境。

    這種模式下與Flat模式不同的地方在於有一個DHCP程式,每一個執行nova-network程式的節點(網路控制節點/nove-network主機)就是一個單獨的網路。Nova會在 nova-network主機建立網橋(預設名稱br100,配置項 flat_network_bridge=br100),並給該網橋指定該網路的閘道器IP,同時 Nova在網橋處起一個DHCP程式,最後,會建立iptables規則(SNAT/DNAT)使虛擬機器能夠與外界通訊,同時與一個metadata伺服器通訊以取得cloud內的資訊。

    計算節點負責建立對應節點的網橋,此時的計算節點網路卡可以不需要IP地址,因為網橋把虛擬機器與nove-network主機連線在一個邏輯網路內。虛擬機器啟動時會傳送dhcpdiscover以獲取 IP地址。虛擬機器通往外界的資料都要通過nova-network主機,DHCP在網橋處監聽,分配fixed_range指定的 IP段。

    這種部署方式的缺點—-單節點故障、無二層隔離(即所有的虛擬機器都在一個廣播域)。

  3. VLAN模式

    用於生產環境。

    VLAN模式的目的是為每個專案提供受保護的網段,具有以下特點:

    1. NAT實現public ip。
    2. 除了public NAT外沒有其它途徑進入每個lan。
    3. 受限的流出網路,project-admin可以控制。
    4. 受限的專案之間的訪問,同樣project-admin控制。
    5. 所以例項和api的連線通過vpn。

7.Ceilometer(計量服務)

Ceilometer

  1. OpenStack中的資料監控器。
  2. 為流量計費提供資料支援。

核心概念

  1. Ceilometer-agent-computer:

    收集計算節點上的資訊的代理。

  2. Ceilometer-agent-central:

    執行在控制節點上,輪詢服務的非持續化資料。

  3. Ceilometer-collector:

    執行在控制節點上,監聽Message Bus,將收到的訊息寫入到資料庫中。

  4. Storage:

    資料儲存,支援MySQL等,用於儲存收到的樣本資料。

  5. API server:

    執行在控制節點上,提供對資料節點的訪問。

  6. Message Bus:

    計量資料的訊息匯流排,收集資料提供給collector。

相關文章