天天看點

openstack(一)入門

 可能很多人會跟我一樣,開始剛接觸openstack,去學的時候發現東西很多,越看越亂,有種無處發力的感覺。這裡我結合紅帽RHCA認證裡的openstack課程認證和openstack官方網站,加上自己的了解,整理成博文,抛磚引玉。

一、基本概念  

  OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發并發起的,以Apache許可證授權的自由軟體和開放源代碼項目。 OpenStack是一個開源的雲計算管理平台項目,由幾個主要的元件組合起來完成具體工作。OpenStack支援幾乎所有類型的雲環境,項目目标是提供實施簡單、可大規模擴充、豐富、标準統一的雲計算管理平台。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行內建。

   概念裡面幾個關鍵字:開源、雲計算管理平台、IaaS、內建。

  總的來講,個人覺得,學習openstack大概需要了解以下幾個技能:

  1. 要有基本的linux知識
  2. 了解基本的虛拟化相關概念,熟悉KVM等
  3. 搞雲計算離不開網絡,對DHCP、NAt、Bridge、vlan這些網絡知識是必須要了解的。
  4. 了解相關存儲知識,如分布式存儲、對象存儲
  5. 掌握一種自動化部署的工具,比如puppet、ansible、Chef等你會發現事半功倍
  6. Python
  7. 了解一個架構,flask或Django起碼知道。OpenStack 基于 Web 的管理控制台 OpenStack Dashboard 是用 Python 和 Django 架構寫的。

二、openstack架構

先上圖,暫不多說:

openstack(一)入門

三、主要服務(service)

  因為openstack涉及的service比較多,初期接觸的時候建議隻關注幾個關鍵的服務,慢慢的由淺入深。

  安照openstack官方給出的順序:

  第一步,選擇你的使用方式,How will you be using OpenStack? 是隻當計算資源用還是當對象存儲   使用,亦或兩者結合使用;

  第二步,選擇核心服務,包括keystone(identity)、nova(compute)、neutron(networking)、cinder(block storage)、swift(object storage)glance(glance),這幾個core service基本都是需要了解的;

  第三步,選Optional Services來強化,這裡面可以優先選擇看horizon(dashboard)、       ceilometer(telemetry)、heat(orchestration)。

相關服務介紹如下:

Horizon(dashboard) 一個基于Web的Openstack管理平台,為使用者提供如:啟動虛拟機、管理虛拟網絡、設定通路控制的圖像接口。
Keystone(identity)

一個中心認證服務,為其他服務提供認證和授權。keystone同時提供openstack雲各個其他元件的目錄服務。

Keystone提供多種認證方式包括:使用者名、密碼,令牌,AWS(Amazon logins)

Keystone是所有服務的起始點,隻有經過認證,其它的服務才會認為可以合法執行。它是Openstack的鑰匙。

Neutron(networking) 在Openstack雲中建立和管理虛拟網絡架構(網絡、子網、路由、防火牆)
Cinder(block storage) 為虛拟機提供邏輯卷管理功能,通常為虛拟機提供附加磁盤存儲。
Nova(compute) 提供虛拟機管理功能,調用底層的Hypervisor提供該功能,支援libvirtd,qemu,kvm等Hypervisor。
Glance(p_w_picpath)

Glance項目提供虛拟機鏡像的發現,注冊,取得服務;

Glance提供restful API可以查詢虛拟機鏡像的metadata,并且可以獲得鏡像;

通過Glance,虛拟機鏡像可以被存儲到多種存儲上,比如簡單的檔案存儲或者對象存儲。

Swift(object storage) Swift項目提供了彈性可伸縮、高可用的分布式對象存儲服務,适合存儲大規模非結構化資料。
Ceilometer(metering) Ceilometer像一個漏鬥,能把OpenStack内部發生的幾乎所有的事件都收集起來,然後為計費和監控以及其它服務提供資料支撐。
Heat(orchestration) heat實作了一種自動化的通過簡單定義和配置就能實作的雲部署方式。可以在heat模闆中定義連串相關任務(例如用某配置開幾台虛拟機,然後再去在其中一台中安裝一個mysql服務,設定相關資料庫屬性,然後再配置幾台虛拟機安裝web服務叢集等等),然後交由heat,由heat按照一定的順序執行heat模闆中定義的一連串任務。

轉載于:https://blog.51cto.com/xujpxm/1745675