OpenStack入門之若干討論
僅供參考,如有雷同,純屬呵(qiao)呵(he)
1. 討論:如何回饋 OpenStack 社群
張三:
- 積極關注並回饋社群,貢獻程式碼,爭取成為 committer;
- 積極將研發使用中遇到的問題及程式碼 ,回饋到社群;
- 將 issue、idea、豐富的 feature 提交到 bluePrint,提交到社群;
- 利用自己的一切資源致力於擴大中國 IT 力量在國際的影響力!(評:看到這句好欣慰!我想如果有更多這樣的同學在,中國的 IT 前途很有希望);
李四:
- 關注各種社群並加入到符合自己實際狀況的社群中,認真學習前輩的經驗,在實際中發現和探索問題,並在社群中討論自己解決不了的問題,以及幫助他人解答問題;
王五:
- 積極參加到社群的討論中來,將一些發現的問題提交到 Issue;
- 如果有新的 idea,更豐富的 Feature 想法,可以寫成 BluePrint 提交到社群;
趙六:
- 可以提交一些意見和建議(blueprint),自己在初學時遇到的一些問題(issue)
- 繼續學習,爭取早日進入社群,能夠發現問題思考問題反饋問題
王二麻子:
- 能,現在水平有限,應該先從寫文件和提交 issue、idea、blueprint 做起,同時打好程式設計基礎,多做專案,多看書,多總結。
2. 討論:OpenStack 管理的資源及提供的服務
OpenStack 管理哪些資源?提供哪些服務?這些服務在公有云上有沒有對應的例子?(請儘量多舉例)
OpenStack 管理的資源有:計算資源、儲存資源、網路資源;
提供的服務有:
- Nova 計算服務;
- Cinder 塊儲存服務;
- Neutron 網路服務;
- Swift 高可用分散式物件儲存服務;
- GLance 映象服務;
- Keystone 身份驗證服務;
- Horizon 圖形介面;
- 擴充套件服務:Heat、Sahara
例子:
- 虛擬機器 — Nova — 對應亞馬遜上的 EC2
- 虛擬塊儲存 — Cinder — 對應亞馬遜上的 EBS
- 虛擬網路 — Neutron — 對應亞馬遜上的 VPC
- 物件儲存 — Swift — 對應亞馬遜上的 S3
- 許可權認證 — Keystone — 在 AWS 的服務是看不見的,隱藏在叫作計費系統的後端(DOS 系統的後端)
- 映象管理 — Glance — 對應亞馬遜上的 VM Import/Export
- 控制皮膚 — Horizon — 對應亞馬遜上的 Console
3. 討論: OpenStack 之間的通訊關係
OpenStack 之間有哪些通訊關係?分別應用在什麼地方?
OpenStack 元件之間的通訊分為四類:
- 基於 HTTP 協議
- 基於 AMQP 協議(基於訊息佇列協議)
- 基於資料庫連線(主要是 SQL 的通訊)
- Native API(基於第三方的 API)
關於應用:
- 基於 HTTP 協議進行通訊。通過各專案的 API 建立的通訊關係,基本上都屬於這一類,這些 API 都是 RESTful Web API,最常見的就是通過 Horizon 或者說命令列介面對各元件進行操作的時候產生的這種通訊,然後就是各元件通過 Keystone 對使用者身份進行校驗,進行驗證的時候使用這種通訊,還有比如說 Nova Compute 在獲取映象的時候和 Glance 之間,對 Glance API 的呼叫,還有比方說 Swift 資料的讀寫,也是通過這個 HTTP 協議的 RESTful Web API 來進行的。
- 基於高階訊息佇列協議。基於 AMQP 協議進行的通訊,主要是每個專案內部各個元件之間的通訊,比方說 Nova 的 Nova Compute 和 Scheduler 之間,然後 Cinder 的 Scheduler 和 Cinder Volume 之間。
- 基於 SQL 的通訊。通過資料庫連線實現通訊,這些通訊大多也屬於各個專案內部,也不要求資料庫和專案其它元件安裝在同一個節點上,它也可以分開安裝,還可以專門部署資料庫伺服器,把資料庫服務放到上面,之間通過基於 SQL 的這些連線來進行通訊。OpenStack 沒有規定必須使用哪種資料庫,雖然通常用的是 MySQL
- 通過 Native API 實現通訊。出現在 OpenStack 各元件和第三方的軟硬體之間,比如說,Cinder 和儲存後端之間的通訊,Neutron 的 agent 或者說外掛和網路裝置之間的通訊,這些通訊都需要呼叫第三方的裝置或第三方軟體的 API。
4. 討論:如何對 OpenStack 的元件做高可用部署或者負載均衡
請舉例說明,如何對 OpenStack 的元件做高可用部署或者負載均衡?
高可用 HA(High Availability)指的是通過儘量縮短因日常維護操作(計劃)和突發的系統崩潰(非計劃)所導致的停機時間,以提高系統和應用的可用性。 負載均衡指叢集中所有的節點都處於活動狀態,它們分攤系統的工作負載。 分散式系統 OpenStack 要想做高可用部署或者負載均衡,需要遵循如下步驟:
- 針對不同的需求設計相應的方案,合理規劃計算資源、網路資源、儲存資源;
- 將服務、服務中的元件拆開部署,學習 swift 的跨地域部署,有利於提高服務可用性及 OpenStack 的負載均衡;
- 將同一服務部署在不同節點,形成雙機熱備和多機熱備的高可用叢集,最大化 SOA 架構的作用;
- 在複雜的資料中心環境中不斷優化與第三方服務的對接和整合,最大化優化 OpenStack 從邏輯架構到物理架構的對映;
我的舉例說明:
- 規模較大的情況下,把各種管理服務部署到不同的伺服器上。把這些服務拆開部署 到不同的節點上,甚至要把同 一個服務的不同元件也拆開部署,比如說可以把 Nova 的資料庫給獨立擰出來部署成一個 MySQL 資料庫叢集,還有 Cinder 裡面的 Scheduler 和 Volume 可以部署到不同的節點上,實際上因為 Swift 專案具有一定的獨立性,所以 Swift 本身就有跨地域部署的生產環境,規模非常之大,跨地域部署,所以它的服務的可用性極高,自然有這種栽培的特性,可以提供極高可用性和資料永續性的物件儲存服務。
- 出於高可用的考慮,生產環境中我們會把 OpenStack 的同一個服務部署到不同的節點上,形成雙機熱備或者多機熱備的高可用叢集。(或者用負載均衡叢集)。
- 在複雜的資料中心環境中,還有很多第三方服務,比方說 LDAP 服務、DNS 服務等等,考慮如何與第三方服務進行對接和整合。
5. 討論:比較 Swift 和 Cinder 兩種儲存之間的異同
異:
Swift 比較獨立,Swift 是做物件儲存的,提供的是物件儲存的介面,採用的是全對等架構。Cinder 是提供塊儲存的,提供的是塊儲存的介面,遮蔽了底層的硬體異構性。 關於資料流流向,Swift 對它的操作不僅僅是通過它的 Swift Proxy Server 提供的 RESTful API 進行操作的,它的資料也是通過 RESTful API 走的,我們要把資料放在Swift裡面或者從Swift裡把資料拿出來,都是通過 RESTful Web API。但是在 Cinder 不一樣,Cinder API 基本上只能提供一些操作和管理功能,是直接通過 FC/iSCSI 傳輸資料到伺服器,資料不會通過 Volume 去走,也不會通過 RESTful API。
同:
Swift 和 Cinder 都是軟體定義儲存,都屬於資源管理層中的儲存管理模組,都是 OpenStack 最主要的儲存元件
6. 討論:比較 Neutron 和 Nova-Network 的異同
相同點:
- 都可以實現網路管理功能;
- (租戶之間)都可以實現基於 Vlan 的隔離;
不同點:
- Nova-Network 只能實現簡單的網路管理,Neutron 則比較強大;
- Nova-Network 在以前網橋的基礎上加模組實現 2 種工作模式:Flat DHCP 和基於 Vlan 的隔離的工作模式;而 Neutron 對上不僅可以提供 Vlan 的隔離,還可以實現 SDN,對下還支援第三方 API、Plugin 的擴充套件;
- Neutron 支援每個租戶建立自己的虛擬網路,定義自己網路拓撲,租戶間隔離即 Rich Topologies。
7. 討論:Heat 中的模板和 Sahara 中的模板的異同
相同點:
都是通過模板來實現對資源的建立,銷燬,生命週期的管理等等
不同點:
- Heat 模板 Template 操作的物件是 Stack,並且只有一種方式進行呼叫,實現的是各個元件資源的整合和形成一個有機的整體
- Sahara 由於存在兩種使用模式:使用者模式(edp 模式)和管理模式(iaas 模式),所以模板的使用主要集中在 iaas 模式上,分為兩種:叢集模板和節點組模板。實現的是對 Hadoop 叢集的快速建立
8. 討論:Ceilometer 獲取計量資料的方式
獲取計量資料的方式:
(1)需要原始資料的來源
- 通過 MQP 訊息中介軟體收集各個元件發出來的訊息
- 通過 Ceilometer 的一些 agent 呼叫 OpenStack 各個 component 的 api 獲得資料
- 如果要有效的採集和 Nova 相關的資料,通過在每個計算節點上執行 Ceilometer 的 polling agent 獲得虛擬機器的資訊
(2)存在資料的儲存:依賴第三方後端來實現,預設的後端資料庫是 MongoDB。
(3)來自第三方系統:最主要的使用方式就是第三方系統,通過呼叫 Ceilometer API 獲得計量資料,設定報警條件和預值,監聽報警,進一步去實現計費和監控功能,具體使用的時候涉及到 Ceilometer 怎麼設定,每項資料通過呼叫什麼 API 獲得,怎麼設定報警的預值等等
9. 討論:安裝 Swift、Cinder 等其他服務的步驟
如果在目前已經完成的 OpenStack 演示環境部署的基礎上,繼續安裝 Swift、Cinder 等其他服務,一般來說有哪些步驟?
Cinder
- 配置管理網路 nova-network;
- 安裝、配置 NTP 服務(本機時間與網路時間同步,將本機作為伺服器提供給其他主機使用);
- 下載安裝 Cinder;
- 建立 cinder-volumns 並進行配置;
- 配置 keystone 驗證、資料庫訪問(刪除 sqlite 檔案)及 RabbitMQ 訊息中介軟體;
- 重啟 volumn 服務。
或者描述為
- 安裝 openstack 包
- 配置管理網路網路卡
- 修改 hosts 為 block
- 重啟
- 安裝 NTP 安裝LVM 包
- 建立 LVM 卷組 cinder-volumes
- lvm 掃描修改
- 安裝配置塊儲存卷元件
- 驗證安裝
參考:http://www.aboutyun.com/thread-11681-1-1.html
Swift
- 建立 Swift 使用者和組;
- 建立資料庫並進行配置(刪除 sqlite 配置檔案);
- 建立映象 glance 並配置 rsync.conf,配置完成後重啟服務;
- 下載安裝 swift;
- 對 swift 服務進行配置;
- 建立 Swift 並執行指令碼。
10. 討論:面對 Ceph 和 Swift 兩種儲存方案如何進行選型
(1)規模小,節點數量少的使用 Ceph,因為 Swift 至少要用到 5 個節點,划不來。
(2)需要提供雲盤的服務的時候選擇 Swift,做雲盤就意味著要面對大量的使用者,還希望使用者的體驗好,可以讓使用者來選擇資料怎麼存,這個時候選擇 Swift 是更好的,一方面對於這種規模化部署的支援比較好,第二方面它有一些先進的 Feature,第三方面它的價格成本比 Ceph 要低一些
11. 討論:OpenStack 和 Docker 如何結合
- 使用 Swift 做 Docker 映象的儲存後端
- 用 Nova 排程和管理 Docker 容器
- 使用 Heat 實現 Docker 容器
- 使用 Heat 實現 Docker 的 Orchestration
- 基於 Neutron 設計與實現適用於 Docker 的 SDN 方案
- 用 Glance 來管理 Docker 的映象
相關文章
- OpenStack入門之基礎元件元件
- OpenStack入門之實際操作
- OpenStack 入門教程
- OpenStack入門之各元件解析(基礎)元件
- OpenStack入門之各元件解析(進階)元件
- OpenStack入門之擴充套件話題套件
- 博弈論入門之nim遊戲遊戲
- openstack從入門到放棄
- OpenStack入門之初步認識
- 博弈論入門之巴什博奕
- 博弈論入門之威佐夫博弈
- GoLang之Concurrency再討論Golang
- 【openstack】cloudkitty元件,入門級安裝(快速)Cloud元件
- 博弈論入門之斐波那契博弈
- 群論入門
- 博弈論入門
- 紅帽OpenStack快速入門---分享公開課
- 給學習 OpenStack 架構的新手入門指南架構
- 設計模式討論之abstract factory篇設計模式
- LINUX LILO若干問題探討 (轉)Linux
- 工程專案成本控制若干方法探討(轉)
- 大資料技術之Hadoop(入門) 第2章 從Hadoop框架討論大資料生態大資料Hadoop框架
- ACM入門之新手入門ACM
- Effective c++(筆記) 之 雜項討論C++筆記
- 設計模式討論之abstract factory篇 (轉)設計模式
- 資訊理論入門教程
- 圖論入門基礎圖論
- 關於檔案寫入的原子性討論
- 專案需求討論-WebView進度載入條WebView
- SetUnhandledExceptionFilter 的討論ExceptionFilter
- UI 設計小白入門論UI
- nginx 入門之理論基礎(-)Nginx
- [iOS Monkey 討論帖] 整套新的 fastmonkey 討論iOSAST
- [技術討論]關於低耦合開發的討論
- OpenStack 之vmware機器遷移到openstack叢集
- 數論函式從入門到進門函式
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 【話題討論】如何把運維人員從雞肋轉變成雞大腿的故事之討論運維