OpenStack

 

  Openstack是一個雲平臺管理的項目,它不是一個軟件。也就是說咱們可使用Openstack來管理咱們數據中內心面的各類資源池;它裏面包含了不少子項目。html

 

  Openstack經過一個抽象層將普通計算機中的各類資源分紅單一的組當咱們須要建立虛擬機的時候能夠選擇爲其分配多少內存幾個CPU、幾塊網卡多大的存儲等;Openstack就是將這些資源劃分紅組而後在這些組裏爲虛擬機分配資源(這些資源也是有限制的,好比網咱們有一個20G的內存資源組它是由45G的主機組合而來的;當咱們建立虛擬機時,是沒法爲其分配大於5G的內存的,由於虛擬機是受單個物理機限制的。);mysql

 

  Openstack的各servicesweb

    1.Compute(計算):管理虛擬機的整個生命週期用於對虛擬機進行調度資源分配建立銷燬、遠程鏈接等,其項目名稱爲Novasql

      nova-api:接收並響應終端用戶對compute節點的調用服務;它會將請求放入Message Queue供其餘組件獲取數據庫

      nova-api-metadata:接收並響應運行起來的虛擬機實例發起的meta相應的調用請求api

      nova-compute:藉助於HypervisorAPI啓動及終止虛擬機實例更新虛擬機在數據庫中的信息等;從隊列中接收請求並執行操做;瀏覽器

      nova-scheduler:從隊列中取出VM的啓動請求並決定由哪一個運行compute服務的Hypervisor來啓動並運行虛擬機緩存

      nova-conductor:做爲nova-computedatabase的中間層,避免nova-compue直接與數據庫進行交互,從而致使數據庫出錯;(nova-computenova-conductor不是直接交互,而是nova-compute先將消息發送到queue中,而後再由nova-conductor訂閱處理)網絡

      nova-consoleauth:用於控制檯的受權驗證架構

      nova-novncproxy:爲經由vnc接口要連入各虛擬機實例的請求提供代理服務從而使得僅在Dashboard接口上直接向各VM所在的compute節點的VNC服務發起請求

      Compute服務中有一個核心組件Queue(隊列),幾乎各個API都要通過這個Queue才能與其餘API通訊;其各API直接經過訂閱其餘與本身相關的API的消息隊列來完成信息交互;其中發佈消息的咱們能夠稱之爲生產者,接收消息的能夠稱之爲消費者;其中生產者能夠有多種,也就意味着有多種隊列,消費者也能夠有多種,而一個消費者能夠訂閱多種生產者隊列,一個生產者隊列也能夠被多個消費者訂閱;

    2.Networking(網絡):管理虛擬機的網絡配置用於爲虛擬機按需分配網絡,支持衆多流行的網絡管理框架,其項目名稱爲Neutron

      Network:隔離的二層網絡相似於VLAN;

      Subnet:有着關聯配置的狀態的三層網絡或者說是由Ipv4Ipv6定義的地址塊造成的網絡

      Port:將主機連入網絡設備的鏈接接口

 

         ML2:做爲管理網絡設備的統一管理接口

    3.Object Storage(對象存儲):基於RESTfulAPI對非結構化數據對象進行存儲和檢索,其中的數據自帶元數據信息,使用分佈式存儲,通常用於存儲磁盤映像文件,適用於存儲一次寫入,屢次讀取的文件,其項目名稱爲Swift;

    4.Block Storage(塊存儲):用於爲虛擬機提供數據的存儲功能,其項目名稱爲Cinder

      cinder-api:接受API請求,並將它們路由到cinder-volumefor操做。

      cinder-volume:直接面對存儲服務,經過消息隊列直接與cinder-scheduler交互

      cinder-scheduler daemon:用於調度選擇能夠建立卷的最佳存儲節點

      cinder-backup daemon:爲卷提供備份功能;

      messaging queue:用於塊存儲進程之間傳遞信息。

    5.Identity(身份認證):爲Openstack中的服務提供認證受權功能以及端點編錄功能(Openstack中的各類服務要到Keystone中查詢其餘服務的訪問端點),其項目名稱爲Keystone

      認證方式

        token:使用一串設定的字符串做爲令牌進行認證(建議使用openssl rand -hex 10生成隨機字符串);能夠基於K/V方式存儲;

          這個機制通常是第一次進行安裝登陸Keystone時才使用的當設置完用戶密碼之後會被禁用

        帳號/密碼使用用戶名和密碼進行認證

      核心術語

        User:一個用戶能夠關聯至多個project;

        Project:標識一個項目之前叫Tenant(租戶);

        Role:角色,標識用戶的身份,不一樣角色擁有不一樣權限;

        Service:服務,即Openstack中的各類service

        EndpointOpenstack中各類服務的訪問入口(URI形式);

        Endpoint分爲三種:public url能夠被全局全部人訪問、private url能夠被局域網內訪問、admin url只能夠被管理員訪問

    6.Image(映像):爲虛擬機存儲和檢索其要使用的映像文件的位置,其項目名稱爲Glance

      Glance組件

        glance-api:GlanceAPI服務接口負責接收對Image Service API中映像文件的建立刪除查找下載及存儲請求;監聽在9292端口

        glance-registry:用於與Mysql數據庫交互(在Glance的數據庫中存儲着兩張表:image表保存了映像文件的格式、大小等信息;image properties表保存了映像的定製化信息;),存儲處理及獲取映像文件的元數據例如映像文件的大小及類型等;監聽在9191端口

        image store:是一個存儲的接口層經過這個接口glance能夠獲取和保存映像,具體的實現須要外部存儲的支持;image store支持亞馬遜的S3、Swift、sheepdog、GlusterFS

        database:存儲映像文件的元數據

        映像文件存儲倉庫支持多中類型的映像文件存儲機制包括使用普通的文件系統對象存儲、RADOS塊設備HTTP以及AmazonS3

 

 

 

    7.Dashboard:OpenstackWeb管理接口其項目名稱爲Horizon;

    8.Teiemetry:提供監控和計量服務,其項目名稱爲Ceilometer;

    9.Orchestration:提供基於模板自動化部署虛擬機的組件,其項目名稱爲Heat

    10.Database Service:提供數據庫應用服務其項目名稱爲Trove;

    ……

 

  概念架構

 

 

  邏輯架構

 

    如概念結構所示,OpenStack由幾個獨立的部分組成,稱爲OpenStack服務。全部服務都經過公共身份服務進行身份驗證。各個服務經過公共API相互交互,除非須要特權管理員命令。

    在內部,OpenStack服務由幾個進程組成。全部服務都至少有一個API進程,它監聽API請求,預處理它們並將它們傳遞給服務的其餘部分。除Identity服務外,實際工做由不一樣的進程完成。

    對於一個服務的進程之間的通訊,使用AMQP消息代理。服務的狀態存儲在數據庫中。在部署和配置OpenStack雲時,您能夠選擇多種消息代理和數據庫解決方案,例如RabbitMQMySQLMariaDBSQLite

    用戶能夠經過Horizo​​n Dashboard實現的基於Web的用戶界面,命令行客戶端以及經過瀏覽器插件或curl等工具發出API請求來訪問OpenStack 。對於應用程序, 可使用多個SDK。最終,全部這些訪問方法都會向各類OpenStack服務發出REST API調用。

  Openstack各服務的請求流程

 

  網絡拓撲類型

 

    提供商網絡選項以最簡單的方式部署OpenStack Networking服務,主要是第2層(橋接/交換)服務和網絡的VLAN分段。從本質上講,它將虛擬網絡橋接到物理網絡,並依賴於物理網絡基礎設施來實現第3層(路由)服務。

    此選類型乏對自助(私有)網絡,第3層(路由)服務以及LBaaSFWaaS等高級服務的 支持。若是您須要這些功能,請考慮下面的自助服務網絡選項。

 

    自助服務網絡選項經過第3層(路由)服務加強了提供商網絡選項,這些服務使用覆蓋分段方法(如VXLAN)實現 自助服務網絡。從本質上講,它使用NAT將虛擬網絡路由到物理網絡。此外,此選項爲LBaaSFWaaS等高級服務奠基了基礎。

  OpenstackStein版)的安裝

    配置步驟

      1.爲各個節點配置合理的IP地址及主機名

      2.配置時間同步

      3.安裝OpenstackClient軟件包

      4.配置SQL Database

      5.配置消息隊列RabbitMQ);

        啓動之後能夠經過其監聽的15672接口訪問RadditMQweb界面

        iptables -A INPUT -p tcp --dport 5672 -j ACCEPT

      6.配置Memcached,提供緩存加速;

      7.配置Openstack的各個Service

        Keystone

          同步數據庫時要使用keystone用戶的身份,要否則就要修改/var/log/keystone/keystone.log這個文件的屬組爲keystone且具備讀寫權限

        Glance

          /etc/glance/glance-api.conf/etc/glance/glance-registry.conf文件中的#auth_uri = <None>參數描述爲:Reason: The auth_uri option is deprecated in favor of www_authenticate_uri and will be removed in the S  release。可是若是使用auth_uri替換官網中的auth_url則會報錯。表面上的錯誤是glance已經啓動(狀態爲running),可是使用netstat -nultp看不見92929191端口

          錯誤爲:MissingRequiredOptions: Auth plugin requires parameters which were not given: auth_url

            WARNING keystonemiddleware.auth_token [-] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.

        Plancement

          WSGI:https://blog.csdn.net/jinixin/article/details/84677104

          Note:這一步在以前的版本中沒有

        Nova

          若是你使用的是VMware中的虛擬機做爲計算機點的話則其計算節點中nova的配置文件/etc/nova/nova.conf中的virt_type要配置爲qemu官網中爲kvm,可是若是使用kvm就會卡在加載映像文件那,沒法啓動系統;

          Note:

            1.配置計算節點與控制節點時要注意節點的防火牆在計算節點要注意放行rabbit5672端口不然會報關於rabbit鏈接超時的錯誤

            2.OpenStack的各類服務本身會生成相關的iptables規則最好不要亂改,尤爲是計算節點;我作實驗時在將控制節點與計算節點的iptables規則清除後,會有各類錯誤,其中就包含rabbit超時,mysql數據庫(多是性能問題)錯誤等;

            3.最好爲控制節點與計算節點分配儘量多的資源不然會發生建立虛擬機失敗的狀況或者是執行命令極慢的狀況

        Neutron

        Horizon

        Cinder

    具體配置見官網https://docs.openstack.org/install-guide/

 

    官網描述:https://docs.openstack.org/install-guide/overview.html

 

     根據馬哥視頻作的學習筆記,若有錯誤,歡迎指正;侵刪

相關文章
相關標籤/搜索