OpenStack作為開源云計算技術(shù)首當其沖,有著廣泛的受眾、活躍的社區(qū)和良好的傳播,尊為云計算技術(shù)的領(lǐng)導者。本書由淺入深,從設(shè)計理論到實際操作,逐漸深入,帶領(lǐng)讀者認識OpenStack云計算的全貌,輕松步入OpenStack云計算的世界。其內(nèi)容涵蓋了OpenStack云計算設(shè)計理論、虛擬化技術(shù)KVM和Xen原理和應用、四種OpenStack網(wǎng)絡(luò)架構(gòu)(flat、local、GRE和VXLAN)模式和網(wǎng)絡(luò)OSI七層模型介紹、Ceph分布式存儲、OpenStack安裝配置(nova、cinder、neutron、horizon、swift和keystone等服務組件)、應用場景和OpenStack實際操作(卷管理、創(chuàng)建網(wǎng)絡(luò)和實例、實例熱遷移和冷遷移)等多個方面,使讀者閱讀后如沐春風,真正喜歡云計算這項技術(shù)。本書適合于剛剛或者計劃進入云計算領(lǐng)域的初級讀者學習,也適合已經(jīng)進入云計算領(lǐng)域并且有一定相關(guān)知識或認識的中級讀者閱讀。對于一些從事售前工作的讀者,本書也非常適用。
序一
第一次接到學生的作序邀請,有些許驚訝,驚訝之余,多有感慨!感慨有三:一是當初混沌懵懂的大學生已經(jīng)在社會上茁壯成長,已不復當年記憶;二是自己的學生有如此進步,實為其感到高興;三是自己的學生還在從事本專業(yè)工作,堅持不懈,為自己多年的教學生涯感到慰藉。遙記當年和學生第一次通過郵件討論Java問題,后期做畢業(yè)設(shè)計,研究項目和語言架構(gòu),學生均付之于全力。以觀如今,也屬自然,望之繼續(xù)努力。
當今,云計算已開始浸入和影響我們的生活。社會大眾所使用的微博、微信、支付寶等手機APP多半在云端運行,大多數(shù)人的日常生活都已離不開它們,云計算儼然成為我們生活和學習的必需品。正如工業(yè)革命時期的水、電和交通一樣,云計算正在讓信息技術(shù)和信息服務實現(xiàn)社會化、集約化和專業(yè)化,讓信息服務成為社會的公共基礎(chǔ)設(shè)施。作為一種新型的服務提供模型,云計算讓用戶可隨時、隨地、按需地通過網(wǎng)絡(luò)訪問計算、存儲等各種共享資源。
短短十余載,云計算從概念實現(xiàn)了落地,從星星之火演變成燎原烈火。在云計算的IaaS領(lǐng)域,OpenStack風頭正盛,社區(qū)活躍、靈活性、創(chuàng)新性、不被廠家鎖定和良好的生態(tài)環(huán)境等一系列優(yōu)點促使它成為云計算的“寵兒”。在云計算的發(fā)展進程中,涌現(xiàn)出眾多OpenStack的產(chǎn)品、方案和服務。各大、中、小型公司競相趨之,希望能夠借助OpenStack這個風口而起飛。
蘇格拉底有千年一問,研究哲學講究三要素,問和研都集中在這三個問題上:我是誰?我從哪里來?我要到哪里去?本書作者抱著回答這三個問題的態(tài)度,并在此落筆,從理論出發(fā),結(jié)合實際,綜合實操,全面講解OpenStack,闡述了OpenStack的前世今生,詳述了OpenStack的何去何從。希望廣大讀者能夠和本書作者一起,帶著這三個問題閱讀此書,理解云計算和學習OpenStack,重溫快樂學習的過程。謝謝!
謝斌紅
太原科技大學計算機科學與技術(shù)學院副教授
序二
與本書作者的初次相識,是在一次云計算技術(shù)交流大會上,我倆一見如故,相談甚歡。本書作者對技術(shù)的追求和癡迷,給我留下了深刻的印象,也一下子拉近了我們的距離。同為技術(shù)研究人員的我們,此后一直保持聯(lián)系,對技術(shù)的鉆研、實踐中問題的探討、對行業(yè)發(fā)展的思考……最近一次見面,本書作者拿著自己的書稿,讓我?guī)兔懸欢卧。我在瀏覽此書后,覺得此書對于云計算的初級學者和中級讀者來講,在系統(tǒng)、全面地學習OpenStack方面是非常有幫助的。
OpenStack作為一款云計算軟件,成功地利用軟件定義了傳統(tǒng)的一切,包括軟件定義存儲、軟件定義網(wǎng)絡(luò)等。它將傳統(tǒng)所見的黑盒子全部利用軟件定義成白盒子。原來的計算或存儲設(shè)備很神秘,像“變形金剛”一樣屹立在我們的機房中,默默地提供服務,而數(shù)據(jù)在這些設(shè)備中如何進行計算、存儲,以及數(shù)據(jù)的安全性、持久性,只能依賴廠商的產(chǎn)品說明書,而我們被拒之門外。然而OpenStack解決了這一切,只要你懂得代碼,你就通曉一切。OpenStack對計算、存儲、網(wǎng)絡(luò)等多個功能進行了融合,成為一個完整的個體,解決了我們的各種IT需求。在原來的世界中,計算是計算、存儲是存儲、網(wǎng)絡(luò)是網(wǎng)絡(luò),彼此之間分離,安裝、配置、部署和運維極其復雜,并且還要考慮不同設(shè)備之間的兼容性。OpenStack將這些功能設(shè)計成不同的服務組件,彼此之間松耦合,組合在一起,并且提供了一套完整的管理方法和工具,完成了我們想要實現(xiàn)的所有功能,承載它們的物理硬件也由“變形金剛”變成了普通的“鐵盒子”——X86服務器。開源是OpenStack最大的優(yōu)勢,避免了被IT廠商鎖定,我們可以將核心技術(shù)掌握在自己手中,再也不用因為某個技術(shù)不熟悉而棄用或另行招聘人才,或者因為不兼容而不得不購買固定品牌的昂貴設(shè)備,避免由此造成企業(yè)成本的增加。
回想自己初入云計算領(lǐng)域,當時亦是十分茫然,在市面上找了很多相關(guān)書籍,如饑似渴地閱讀。本書作為一本系統(tǒng)化講述OpenStack的書籍,闡述了OpenStack的前世今生,詳述了OpenStack的何去何從,深入淺出,理論結(jié)合實踐,具有很強的實操性。相信初入云計算領(lǐng)域的技術(shù)人員在詳細閱讀此書后,會有一種打通任督二脈、茅塞頓開的收獲;對于中級讀者來說也能融會貫通,有新的收獲。祝愿讀者在此書中有一個愉快的閱讀旅程!
張志飛
WatchGuard加拿大區(qū)首席架構(gòu)師
前言
記得初識云計算時,根本不知道云計算為何物,同時出現(xiàn)的還有物聯(lián)網(wǎng)概念,它們滿滿地沖擊著我這個剛剛適應工作崗位的菜鳥。隨著各IT廠商對云計算概念的熱炒,慢慢地我知道了什么是云計算、云計算能夠做什么。不知道是我抽離現(xiàn)象看到了本質(zhì),還是目光淺薄,竟然逐漸看輕云計算,認為其不過是IT廠商忽悠甲方的一個概念,要落地并產(chǎn)生效益很難。
后來,中國整個IT市場掀起了去IOE的颶風,尤其是在“棱鏡門”爆出后,呈愈演愈烈之勢,傳統(tǒng)的高性能、高穩(wěn)定性和高安全性設(shè)備與架構(gòu)失去了其繼續(xù)存在的依靠,讓傳統(tǒng)IT建設(shè)在整個IT大環(huán)境中顯得那么格格不入。同時,也讓我這個傳統(tǒng)IT從業(yè)者變得惴惴不安,讓我多年視若瑰寶的UNIX和存儲技術(shù)一下子變成了過去時。在我情緒低落時,無所適從的感覺油然而生,這種感覺既迷茫又無奈。
這也印證了一句名言:世界上唯一不變的就是變化。人們大抵只會在互相調(diào)笑的時候才會祭出“三觀不正確”的觀點來反擊他人,但是在某段比較盲從的時間里,可能也只有一個人具備的先天與后天共同作用而產(chǎn)生的“三觀”能幫助你、解救你,至少自己可以這么認為。正確的“三觀”告訴我們,人要順應潮流,要順勢而為,要迎合變化,要擁抱改變。因此,我放棄了學習多年的UNIX和存儲技術(shù),投身于Linux和各種開源技術(shù),也正在此時,OpenStack進入了我的世界。我重拾荒廢多年的Linux,開始學習Hadoop和OpenStack。
接觸OpenStack三年多來,我一直在碎片化地學習,走了不少彎路,也錯誤地理解了很多概念。人多半都是在困惑的道路上一直前行,走走看看,看看走走。某天下午,我無意中看到一句話——最好的學習就是寫作,如夢初醒,于是萌生了寫作此書的想法。希望閱讀此書的讀者能夠在學習OpenStack的道路上少走一些彎路,能夠系統(tǒng)、全面地學習和掌握OpenStack。
本書內(nèi)容
本書共分為3篇28章。第1篇是原理篇,包括9個章節(jié),詳細講述了OpenStack項目中各服務組件的原理知識,對計算虛擬化技術(shù)、網(wǎng)絡(luò)知識模型和分布式存儲進行了重點講解,對讀者學習、理解OpenStack很有幫助,同時為下一篇的學習做好鋪墊。
第2篇是安裝配置篇,包括11個章節(jié),詳細講述了如何安裝配置OpenStack項目中的各服務組件。該篇承上啟下,既是對原理篇所述原理知識的落地,又是對管理篇操作由來的一個剖析。
第3篇是管理篇,包括8個章節(jié),詳細講述了如何管理OpenStack環(huán)境,既包括管理主機類型、虛擬機實例這樣的基礎(chǔ)操作,又包括虛擬機實例熱遷移、冷遷移、轉(zhuǎn)移及OpenStack版本升級這樣的高級操作,相信對讀者完全理解和掌握OpenStack會有一個極大的促進。
讀者對象
本書適合剛剛或者計劃進入云計算領(lǐng)域的初級讀者學習,也適合已經(jīng)進入云計算領(lǐng)域并且有一定相關(guān)知識或認識的中級讀者閱讀。對于一些從事售前工作的讀者,本書也非常適用。同時,非常歡迎一些云計算資深人士或行業(yè)專家閱讀本書以提出寶貴意見。
感謝
感謝張鵬程,鵬程在工作方式方法、為人處世方面給了我很多影響,對我未來的職業(yè)生涯有極大的幫助。
感謝馬筵峰,老馬給予了我極大的鼓勵和支持,使我始終存有對技術(shù)的興趣,堅持前行。
感謝瑞飛的領(lǐng)導和兄弟們,包括楊劍鋒書記、陸春陽副總經(jīng)理、羅革新副總經(jīng)理、劉哲生總監(jiān)、丁閆總監(jiān)、丁建新、張驍、曾國強、張樹海、楊友紅、侯明揚、金鵬飛、王志剛,還有一些沒有提到的兄弟姐妹,你們在工作和生活上的幫助和指導讓我受益良多,非常感謝!
感謝孫學瑛老師,孫老師認真的工作態(tài)度、專業(yè)的出版知識和熱心的幫助,使得此書最終可以出版。
感謝周琦老師,周老師熱心的幫助和專業(yè)的項目管理知識,對本書的寫作和出版給予了巨大幫助。
聲明
1.本書部分圖片來自互聯(lián)網(wǎng),版權(quán)歸原作者所有,引用的目的是使讀者更好地理解此書內(nèi)容,感謝原作者貢獻。
2.作者水平有限,開源技術(shù)無限,如有錯誤,敬請廣大讀者斧正。
感悟
1.IT技術(shù)變化之快,摧枯拉朽。技術(shù)人得閑時,還是要多看看、多想想、多聽聽。
2.許上等愿,結(jié)中等緣,享下等福。與諸君共勉。
收起全部↑
盧萬龍,現(xiàn)就職于聯(lián)想集團,近十年來一直專注于虛擬化、云計算和基礎(chǔ)設(shè)施架構(gòu)方面,參與建設(shè)企業(yè)眾多重要項目的可行性研究、設(shè)計、實施和運維等工作,學習和積累了豐富的技術(shù)和項目管理經(jīng)驗,對KVM虛擬化、OpenStack云計算、分布式文件系統(tǒng)和IBM PowerVM有深入研究。
周萌,2007年加入中油瑞飛,現(xiàn)任部門經(jīng)理、技術(shù)架構(gòu)師。擁有10多年行業(yè)從業(yè)經(jīng)驗,作為技術(shù)負責人參與了中石油多個統(tǒng)建項目的實施,對云計算有深入的理解,發(fā)表了多篇文章,研究領(lǐng)域包括分布式計算、項目管理和系統(tǒng)架構(gòu),積累了深厚的技術(shù)專業(yè)知識和豐富的管理經(jīng)驗。
第1篇 原理篇
第1章 云計算之OpenStack 2
1.1 什么是云 2
1.2 OpenStack發(fā)展歷程 4
1.3 OpenStack概念設(shè)計 4
1.4 OpenStack服務組件 6
第2章 計算(Nova)服務介紹 8
2.1 架構(gòu)設(shè)計 10
2.2 虛擬化技術(shù)介紹 10
2.2.1 KVM虛擬化技術(shù) 12
2.2.2 Xen虛擬化技術(shù) 22
2.3 Libvirt技術(shù)介紹 31
2.3.1 Libvirt API介紹 32
2.3.2 Libvirt網(wǎng)絡(luò)架構(gòu) 34
2.3.3 Libvirt存儲架構(gòu) 36
第3章 網(wǎng)絡(luò)(Neutron)服務介紹 37
3.1 網(wǎng)絡(luò)OSI 7層模型 38
3.2 網(wǎng)絡(luò)介紹 43
3.3 網(wǎng)絡(luò)架構(gòu) 44
3.4 網(wǎng)絡(luò)API簡介 45
3.5 LBaaS和FWaaS 46
3.6 網(wǎng)絡(luò)類型介紹 48
第4章 存儲服務介紹 51
4.1 塊存儲(Cinder)服務介紹 53
4.2 對象存儲(Swift)服務介紹 54
4.2.1 對象存儲特點 55
4.2.2 對象存儲組成 57
4.3 文件系統(tǒng)存儲 62
4.4 Ceph簡介 62
4.4.1 存儲數(shù)據(jù)過程 64
4.4.2 可擴展性和高可用性 65
4.4.3 集群管理 68
第5章 計量(Ceilometer)服務介紹 72
5.1 計量服務組件組成 72
5.2 計量服務組件支持列表 73
第6章 身份認證(Keystone)服務介紹 75
第7章 鏡像(Glance)服務介紹 78
第8章 儀表板(Horizon)服務介紹 80
第9章 編排(Heat)服務介紹 87
第2篇 安裝配置篇
第10章 OpenStack安裝配置準備 90
10.1 架構(gòu)設(shè)計 90
10.2 基礎(chǔ)環(huán)境準備 93
10.2.1 安全設(shè)置規(guī)則 95
10.2.2 主機節(jié)點網(wǎng)絡(luò)設(shè)置 96
10.2.3 節(jié)點時鐘同步 102
10.2.4 配置OpenStack安裝源和運行環(huán)境 104
10.2.5 安裝和配置SQL數(shù)據(jù)庫 104
10.2.6 安裝和配置NoSQL數(shù)據(jù)庫 105
10.2.7 安裝和配置消息隊列 106
第11章 身份認證(Keystone)服務安裝配置 108
11.1 安裝和配置 108
11.2 創(chuàng)建service entity和API endpoint 112
11.2.1 準備 113
11.2.2 創(chuàng)建過程 113
11.3 創(chuàng)建項目、用戶和角色 115
11.4 檢查配置 118
11.5 定義OpenStack客戶端環(huán)境變量腳本 119
11.5.1 創(chuàng)建環(huán)境變量腳本 120
11.5.2 驗證 120
第12章 鏡像(Glance)服務安裝配置 122
12.1 安裝和配置 122
12.1.1 準備 122
12.1.2 安裝和配置Glance鏡像服務組件 125
12.1.3 安裝完成 127
12.2 驗證 128
第13章 計算(Nova)服務安裝配置 130
13.1 安裝和配置(控制節(jié)點) 130
13.1.1 準備 130
13.1.2 安裝和配置Nova計算服務組件 133
13.1.3 安裝完成 136
13.2 安裝和配置(計算節(jié)點) 136
13.2.1 安裝和配置Nova計算服務組件 136
13.2.2 安裝完成 139
13.3 驗證 139
第14章 網(wǎng)絡(luò)(Neutron)服務安裝配置 141
14.1 安裝和配置(控制節(jié)點) 141
14.1.1 準備 142
14.1.2 配置Neutron網(wǎng)絡(luò)服務組件 144
14.1.3 配置metadata agent 156
14.1.4 配置計算服務組件 157
14.1.5 安裝完成 157
14.2 安裝和配置(計算節(jié)點) 158
14.2.1 網(wǎng)絡(luò)服務組件安裝和配置通用組件 158
14.2.2 配置網(wǎng)絡(luò)核心組件 160
14.2.3 配置計算服務組件 162
14.2.4 安裝完成 163
14.3 驗證 163
第15章 儀表板(Horizon)服務安裝配置 165
15.1 安裝和配置 165
15.1.1 安裝和配置Horizon儀表板服務組件 166
15.1.2 安裝完成 168
15.2 驗證 168
第16章 塊存儲(Cinder)服務安裝配置 169
16.1 安裝和配置(控制節(jié)點) 169
16.1.1 準備 170
16.1.2 安裝和配置Cinder塊存儲服務組件 173
16.1.3 安裝完成 175
16.2 安裝和配置(存儲節(jié)點) 176
16.2.1 準備 176
16.2.2 安裝和配置Cinder塊存儲服務組件 177
16.2.3 安裝完成 180
16.3 驗證 180
第17章 對象存儲(Swift)服務安裝配置 181
17.1 安裝和配置(控制節(jié)點) 181
17.1.1 準備 182
17.1.2 安裝和配置Swift對象存儲服務組件 184
17.2 安裝和配置(存儲節(jié)點) 186
17.2.1 準備 186
17.2.2 安裝和配置Swift對象存儲服務組件 188
17.3 創(chuàng)建和分發(fā)Ring 190
17.3.1 創(chuàng)建用戶Ring 190
17.3.2 創(chuàng)建Container Ring 192
17.3.3 創(chuàng)建Object Ring 193
17.3.4 分發(fā)Ring配置文件 195
17.4 安裝完成 195
17.5 驗證 197
第18章 編排(Heat)服務安裝配置 199
18.1 安裝和配置 199
18.1.1 準備 199
18.1.2 安裝和配置Heat編排服務組件 205
18.1.3 安裝完成 208
18.2 驗證 208
第19章 計量(Ceilometer)服務安裝配置 209
19.1 安裝和配置 209
19.1.1 準備 209
19.1.2 安裝和配置Ceilometer計量服務組件 213
19.1.3 安裝完成 215
19.2 啟用Glance鏡像服務計量 215
19.3 啟用Nova計算服務計量 216
19.3.1 安裝和配置agent 216
19.3.2 配置Nova計算服務使用Ceilometer計量服務 218
19.4 啟用Cinder塊存儲服務計量 218
19.5 啟用Swift對象存儲服務計量 219
19.5.1 準備 219
19.5.2 配置Swift對象存儲服務使用Ceilometer計量服務 220
19.6 驗證 220
第20章 建立虛擬機實例測試 222
20.1 創(chuàng)建虛擬網(wǎng)絡(luò) 222
20.1.1 架構(gòu)一網(wǎng)絡(luò)(Public Provider Network) 222
20.1.2 架構(gòu)二網(wǎng)絡(luò)(Private Project Network) 225
20.2 創(chuàng)建Key Pair 231
20.3 創(chuàng)建Security Group規(guī)則 232
20.4 創(chuàng)建虛擬機實例 232
20.4.1 創(chuàng)建虛擬機實例(Public Provider Network) 232
20.4.2 創(chuàng)建虛擬機實例(Private Project Network) 238
20.5 創(chuàng)建塊存儲 243
第3篇 管理篇
第21章 OpenStack項目管理 250
21.1 管理租戶、用戶和角色 250
21.1.1 命令行方式 251
21.1.2 圖形界面方式 255
21.2 管理主機類型 257
21.2.1 命令行方式 257
21.2.2 圖形界面方式 259
21.3 管理安全組 263
21.4 管理主機集合 265
21.5 資源使用率統(tǒng)計 267
21.5.1 命令行方式 267
21.5.2 圖形界面方式 269
21.6 查看系統(tǒng)服務信息 270
第22章 儀表板使用 273
22.1 Logo和圖形界面定制化 273
22.2 HTML標題、Logo鏈接和幫助定制化 275
第23章 管理鏡像 276
23.1 命令行方式 276
23.2 圖形界面方式 279
第24章 管理網(wǎng)絡(luò) 282
24.1 命令行方式 282
24.2 圖形界面方式 285
第25章 管理卷設(shè)備 287
25.1 命令行方式 287
25.2 圖形界面方式 295
第26章 管理虛擬機實例 298
26.1 創(chuàng)建虛擬機實例 298
26.1.1 命令行方式 298
26.1.2 圖形界面方式 302
26.2 操作虛擬機實例 303
26.2.1 命令行方式 303
26.2.2 圖形界面方式 306
26.3 選擇主機節(jié)點運行實例 307
26.4 計算節(jié)點配置SSH互信 308
26.5 實例熱遷移 310
26.5.1 KVM 310
26.5.2 XenServer 317
26.6 實例冷遷移 318
26.7 實例轉(zhuǎn)移 319
第27章 OpenStack版本升級 322
27.1 升級準備 322
27.2 版本升級 325
27.3 版本回退 329
第28章 故障排查 333
28.1 計算服務組件故障排查 333
28.2 塊存儲服務組件故障排查 335