日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openstack及组件简要介绍

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openstack及组件简要介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

openstack及組件簡要介紹

為什要用云?

一.簡單的說就是對資源更加合理的分配,使用,比如硬件的數量,帶寬等等這些,因為你不能機器買來不需要了再賣掉(當然也可以),帶寬跟機房簽合同得來一年的,中間不夠了也不能加,超了也不退錢

二.還有就是可以有一個可以統一管理的操作平臺,可以快速的對基礎設施進行建設配置等等,方便了許多

?

云計算是個什么鬼?

資源可以循環利用的一個過程(PS:沒有虛擬化就沒有云,因此這兩者沒什么可比性)

?

現有云模式(復制大神的):

一、IaaS:基礎設施即服務(個人比較習慣的):用戶通過網絡獲取虛機、存儲、網絡,然后用戶根據自己的需求操作獲取的資源

二、PaaS:平臺即服務:將軟件研發平臺作為一種服務,?如Eclipse/Java編程平臺,服務商提供編程接口/運行平臺等

三、SaaS:軟件即服務 ?:將軟件作為一種服務通過網絡提供給用戶,如web的電子郵件、HR系統、訂單管理系統、客戶關系系統等。用戶無需購買軟件,而是向提供商租用基于web的軟件,來管理企業經營活動

?吃貨鏈接https://www.youyong.top/article/11597a1d644db?yyfr=cnblogs

?

openstack的核心組件介紹(openstack就不多說, redhat推動的,很多云都是基于其開發的,6個月一更新,現在是M版)

重要的:

一.Horizon(控制臺),又名Dashboard

就是web展示界面操作平臺,方便用戶交互的

二.Nova(計算)

負責創建,調度,銷毀云主機

三.Neutron(網絡)

負責實現SDN

四.Swift(對象存儲)

目錄結構存儲數據

五.Cinder(塊存儲)

提供持久化塊存儲,即為云主機提供附加云盤

六.Glance(鏡像)

提供鏡像服務,裝機使用

七.Keystone(認證)

為訪問openstack各組件提供認證和授權功能,認證通過后,提供一個服務列表(存放你有權訪問的服務),可以通過該列表訪問各個組件

不重要的:

八.Ceilometer(計費),很明顯自用的根本不需要這功能,而且所謂的監控其實根本也算不上什么監控

監控性能,計費

九.Heat(編排),這個太高大上了,就目前階段正常企業還搞不定

自動化部署應用,自動化管理應用的整個生命周期.主要用于Paas (本來以為青云現在的資源編排就是啊,用了以后看來還不是,只是方便了點)

?

好,直接開大,先來個整體的流程(圖中有錯誤)

從這個圖我們可以明白每一個組件為創建一臺vm都提供了什么,其實就是上面各組件的功能的一個整合圖,這里需要注意的就是每一步都需要去keystone去進行驗證,下圖有詳細的流程(每一步完成后去驗證的過程省略了)

  • 登錄界面或命令行通過RESTful API向keystone獲取認證信息。

  • keystone通過用戶請求認證信息,并生成auth-token返回給對應的認證請求。

  • 界面或命令行通過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。

  • nova-api接受請求后向keystone發送認證請求,查看token是否為有效用戶和token。

  • keystone驗證token是否有效,如有效則返回有效的認證和對應的角色(注:有些操作需要有角色權限才能操作)。

  • 通過認證后nova-api和數據庫通訊。

  • 初始化新建虛擬機的數據庫記錄。

  • nova-api通過rpc.call向nova-scheduler請求是否有創建虛擬機的資源(Host ID)。

  • nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。

  • nova-scheduler通過查詢nova數據庫中計算資源的情況,并通過調度算法計算符合虛擬機創建需要的主機。

  • 對于有符合虛擬機創建的主機,nova-scheduler更新數據庫中虛擬機對應的物理主機信息。

  • nova-scheduler通過rpc.cast向nova-compute發送對應的創建虛擬機請求的消息。

  • nova-compute會從對應的消息隊列中獲取創建虛擬機請求的消息。

  • nova-compute通過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)

  • nova-conductor從消息隊隊列中拿到nova-compute請求消息。

  • nova-conductor根據消息查詢虛擬機對應的信息。

  • nova-conductor從數據庫中獲得虛擬機對應信息。

  • nova-conductor把虛擬機信息通過消息的方式發送到消息隊列中。

  • nova-compute從對應的消息隊列中獲取虛擬機信息消息。

  • nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求glance-api獲取創建虛擬機所需要鏡像。

  • glance-api向keystone認證token是否有效,并返回驗證結果。

  • token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)。

  • nova-compute通過keystone的RESTfull API拿到認證k的token,并通過HTTP請求neutron-server獲取創建虛擬機所需要的網絡信息。

  • neutron-server向keystone認證token是否有效,并返回驗證結果。

  • token驗證通過,nova-compute獲得虛擬機網絡信息。

  • nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求cinder-api獲取創建虛擬機所需要的持久化存儲信息。

  • cinder-api向keystone認證token是否有效,并返回驗證結果。

  • token驗證通過,nova-compute獲得虛擬機持久化存儲信息。

  • nova-compute根據instance的信息調用配置的虛擬化驅動來創建虛擬機。

  • 這里面可以看出組件之間的通訊都是通過restapi實現的

    ?

    害怕不...但是了解了這些你就可以出去裝逼了,然后細分每個組件的細節(說好的自己寫變成復制粘貼了....主要人家些太好了)

    1.keystone

    User:指使用Openstack service的用戶,可以是人、服務、系統,但凡使用了Openstack service的對象都可以稱為User。

    Project(Tenant):可以理解為一個人、或服務所擁有的?資源集合?。在一個Project(Tenant)中可以包含多個User,每一個User都會根據權限的劃分來使用Project(Tenant)中的資源。比如通過Nova創建虛擬機時要指定到某個Project中,在Cinder創建卷也要指定到某個Project中。User訪問Project的資源前,必須要與該Project關聯,并且指定User在Project下的Role。

    Role:用于劃分權限。可以通過給User指定Role,使User獲得Role對應的操作權限。Keystone返回給User的Token包含了Role列表,被訪問的Services會判斷訪問它的User和User提供的Token中所包含的Role。系統默認使用管理Role admin和成員Role _member_ 。

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

    Token:是一個字符串表示,作為訪問資源的令牌。Token包含了在?指定范圍和有效時間內?可以被訪問的資源。EG. 在Nova中一個tenant可以是一些虛擬機,在Swift和Glance中一個tenant可以是一些鏡像存儲,在Network中一個tenant可以是一些網絡資源。Token一般被User持有。

    Credentials:用于確認用戶身份的憑證

    Authentication:確定用戶身份的過程

    Service:Openstack service,即Openstack中運行的組件服務。

    Endpoint:一個可以通過網絡來訪問和定位某個Openstack service的地址,通常是一個URL。比如,當Nova需要訪問Glance服務去獲取image 時,Nova通過訪問Keystone拿到Glance的endpoint,然后通過訪問該endpoint去獲取Glance服務。我們可以通過Endpoint的region屬性去定義多個region。Endpoint 該使用對象分為三類:

    • admin url –> 給admin用戶使用,Post:35357

    • internal url –> OpenStack內部服務使用來跟別的服務通信,Port:5000

    • public url –> 其它用戶可以訪問的地址,Post:5000

    創建完service后創建API EndPoint. 在openstack中,每一個service都有三種end points. Admin, public, internal。 Admin是用作管理用途的,如它能夠修改user/tenant(project)。 public 是讓客戶調用的,比如可以部署在外網上讓客戶可以管理自己的云。internal是openstack內部調用的。三種endpoints 在網絡上開放的權限一般也不同。Admin通常只能對內網開放,public通常可以對外網開放internal通常只能對安裝有openstack對服務的機器開放。

    一個實例:

    ?

    ?

  • 用戶alice登錄keystone系統(password或者token的方式),獲取一個臨時的token和catalog服務目錄(v3版本登錄時,如果沒有指定scope,project或者domain,獲取的臨時token沒有任何權限,不能查詢project或者catalog)。

  • alice通過臨時token獲取自己的所有的project列表。

  • alice選定一個project,然后指定project重新登錄,獲取一個正式的token,同時獲得服務列表的endpoint,用戶選定一個endpoint,在HTTP消息頭中攜帶token,然后發送請求(如果用戶知道project name或者project id可以直接第3步登錄)。

  • 消息到達endpoint之后,由服務端(nova)的keystone中間件(pipeline中的filter:authtoken)向keystone發送一個驗證token的請求。(token類型:uuid需要在keystone驗證token,pki類型的token本身是包含用戶詳細信息的加密串,可以在服務端完成驗證)

  • keystone驗證token成功之后,將token對應用戶的詳細信息,例如:role,username,userid等,返回給服務端(nova)。

  • 服務端(nova)完成請求,例如:創建虛擬機。

  • 服務端返回請求結果給alice。

  • 2.glance

    ?

    3.nova與cinder

    nova主要組成:

    ????nova-api

    ????nova-scheduler

    ????nova-compute

    ????nova-conductor

    cinder主要組成:

    ????cinder-api

    ????cinder-scheduler

    ????cinder-volume

    ?

    cinder各組件功能:

    Cinder-api 是 cinder 服務的 endpoint,提供 rest 接口,負責處理 client 請求,并將 RPC 請求發送至 cinder-scheduler 組件。

    Cinder-scheduler 負責 cinder 請求調度,其核心部分就是 scheduler_driver, 作為 scheduler manager 的 driver,負責 cinder-volume 具體的調度處理,發送 cinder RPC 請求到選擇的 cinder-volume。

    Cinder-volume 負責具體的 volume 請求處理,由不同后端存儲提供 volume 存儲空間。

    4.neutron

    ?

    neutron包含組件:

    ????neutron-server

    ????neutron-plugin

    ????neutron-agent

    neutron各組件功能介紹:

    ?

    1.Neutron-server可以理解為一個專門用來接收Neutron REST API調用的服務器,然后負責將不同的rest api分發到不同的neutron-plugin上。

    2.Neutron-plugin可以理解為不同網絡功能實現的入口,各個廠商可以開發自己的plugin。Neutron-plugin接收neutron-server分發過來的REST API,向neutron database完成一些信息的注冊,然后將具體要執行的業務操作和參數通知給自身對應的neutron agent。

    3.Neutron-agent可以直觀地理解為neutron-plugin在設備上的代理,接收相應的neutron-plugin通知的業務操作和參數,并轉換為具體的設備級操作,以指導設備的動作。當設備本地發生問題時,neutron-agent會將情況通知給neutron-plugin。

    4.Neutron database,顧名思義就是Neutron的數據庫,一些業務相關的參數都存在這里。

    5.Network provider,即為實際執行功能的網絡設備,一般為虛擬交換機(OVS或者Linux Bridge)

    轉載于:https://www.cnblogs.com/davidshen/p/9892162.html

    總結

    以上是生活随笔為你收集整理的openstack及组件简要介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。