天天看點

《OpenStack實戰指南》—— 導讀

《OpenStack實戰指南》—— 導讀

在2007年前後,許多網站站長發現當時一部分主流機托管商開始逐漸使用虛拟化技術提供雲主機的托管服務,而當時的虛拟化程度還停留在半虛拟化或類似openvz這樣的僞虛拟化的水準。即便如此,一台伺服器已經可以承載數十台甚至上百台虛拟主機的負荷,而且安全性更好,價格也更低。通過更加有效的隔離和封裝,虛拟主機的建立和恢複也變得更加迅速和可靠。與此同時,像eucalyptus和opennebula這樣的雲計算管理工具也開始逐漸進入人們的視野。

次年,筆者機緣巧合地加入了emc(也就是vmware的母公司)在中國的研發實驗室。此後幾年,以vmware esx為主的私有雲在中國的各個資料中心遍地開花。與此同時,存儲超配、記憶體去重、sdn等技術也紛至沓來,使得雲計算更加集約化,各種硬體資源的管理也更加合理。筆者正是在這種“天時地利”的條件下在實驗室裡開展了各項研究,讓p2p計算、hadoop計算和hpc在虛拟化和雲計算技術的輔助下更加靈活和高效。

後來筆者加入了ibm中國實驗室,負責x86架構下的雲計算解決方案的設計和開發。作為openstack的主要代碼貢獻者,ibm公司的資源讓筆者對kvm和openstack等開源的雲計算方案有了零距離接觸和本質了解,為了讓每gb級别的存儲和每mb級别的帶寬給使用者帶來更多的價值,筆者也經常不斷地将方案推翻重來。也就是在這段時間,openstack逐漸步入了它的成熟期。

從openstack早期的essex版本一直到最新的icehouse版本,筆者在不同的環境下都部署過,深深體驗到了由于早期openstack不成熟導緻的各種問題和障礙,有時候兩天或三天也找不到解決方案,隻能硬着頭皮“挖”stackoverflow的文章,甚至一行行地從openstack代碼中“摳”bug。雖然在這期間筆者增長了知識,也學會了苦中作樂,但筆者卻不想讀者也為同樣的問題徒增幾根白發或加班熬夜。幸運的是,随着openstack版本的不斷更新,無論是代碼品質還是文檔的詳盡度,都在一步步走向成熟,變得更加易用,而對于企業級應用中亟待解決的問題和需求,openstack都逐漸有了清晰的答案和參考解決方案。随之而來的是許多早期雲計算使用者的态度,也從最早的fud(fear/uncertainty/doubt,即害怕、不确定、懷疑的英文縮寫)到逐漸接受甚至主動申請往openstack上遷移。

時至今日,國内使用者對openstack的興趣與日俱增,2013年的“openstack大會”更是破格在中國香港舉辦。本書的出版對于幫助讀者學習和了解openstack應該是非常及時的。

2014年将是openstack加速進入生産環境和應用的元年,撇開mirantis、rackspace和softlayer這些典型的雲主機服務商,各大電信企業、電商也在躍躍欲試,使用openstack部署私有雲或公有雲環境。舉個例子,筆者就見證了國内某金融服務商的數百台伺服器、幾千個虛拟機的openstack群集應用。據估計,到2015年,全球将會有約50億美元投入到雲計算建設或更新中,這其中以openstack為基礎的雲計算平台和應用肯定會大放異彩;而随着亞馬遜雲計算在中國的落地和國内大小雲計算提供商的紛紛上馬,好戲還在後頭。

雲計算并不隻是虛拟化,實際是由虛拟化引出的所謂“軟體定義的資料中心”。它不僅包括網絡的虛拟化、計算的虛拟化和存儲的虛拟化,還對傳統資料中心的運維、管理,甚至硬體選型都産生了深刻的影響,是以,讀者在學習和應用openstack雲平台部署的時候,最好同時了解一下:哪些功能是在硬體層提供的,哪些功能是在協定層提供的,哪些功能是在虛拟層提供的,哪些功能是在os層甚至應用層提供的。思考這些問題不僅可以幫助優化系統的整體性能,也會幫助系統管理者更加高效和簡單地管理整體雲計算環境。同時讀者也需要對linux作業系統有更深的了解。限于篇幅,本書無法對上述問題一一給出解答,筆者推薦讀者參看由機械工業出版社出版的kai hwang所著的《雲計算與分布式系統:從并行處理到物聯網》,這本書是開始着手學習openstack之前的一本非常好的基礎及進階讀物。

openstack社群和各大網站上關于openstack配置和運維的文檔和讨論繁多,有時筆者覺得本書中某些内容無非是在做搬運工兼翻譯的活計,但回頭想想,當有人向自己虛心請教openstack的問題時若被回複一句“自己看文檔去”,他心裡會是何等失落。是以在寫作中,筆者将體力和腦力活動一并進行,把良莠不齊的文檔甄選一番,省去很多初涉openstack雲計算讀者的麻煩,讓他們把時間花在更有意義的開發上,這也算是一件很有意義的事情。我希望本書的出版能讓更多的人掌握openstack的原理和操作,廣泛了解目前處于雲計算前沿的技術。我還希望借此推動國内高校雲計算的教學——不僅作為一門選修課,更要幫助學生将其作為it領域的核心技能之一來掌握。

随着越來越多的開發者投入openstack這個生态圈,筆者也特别希望分享自己總結的成功或失敗的經驗,避免其他人走同樣的彎路,幫助他們進入openstack開發的“快車道”。雖然筆者已經在企業級計算、存儲及伺服器領域輾轉十餘年,對于資料中心的建設與運維稍有心得,但一人智短,三人智長,我特别要感謝frank、楊海明、mark zhu,他們在本書的創作過程中,為筆者解惑釋疑,幫助掃除知識的死角,使筆者可以從系統的高度去闡述openstack,避免局限在技術細節而忽視了全系統的協同。這裡筆者也要感謝奮戰在一線的同僚,他們給予的許多寶貴的現場回報讓筆者重新思索如何将openstack與使用者實際需求相結合,避免紙上談兵和教條主義。他們其中很多人是openstack的核心代碼開發者,對專業知識的深入了解讓筆者欽佩,也深深感到設計openstack這樣一個通用雲計算架構的不易。最後,筆者也要感謝無私地将openstack學習筆記分享出來的lvsaloon、nc_triin等技術愛好者。

前 言

第一部分 基 礎 篇

<a href="https://yq.aliyun.com/articles/117798">第1章 openstack簡介</a>

<a href="https://yq.aliyun.com/articles/117848">1.1 openstack概述</a>

<a href="https://yq.aliyun.com/articles/117799">1.2 openstack的結構</a>

<a href="https://yq.aliyun.com/articles/117859">1.3 openstack的功能與作用</a>

<a href="https://yq.aliyun.com/articles/117860">1.4 openstack與cloudstack的比較</a>

<a href="https://yq.aliyun.com/articles/117867">1.5 openstack應用現狀和發展趨勢</a>

<a href="https://yq.aliyun.com/articles/117881">1.6 體驗openstack</a>

1.6.1 初探openstack

1.6.2 建立openstack虛拟機執行個體

1.6.3 建立虛拟機流程概述

1.6.4 建立openstack磁盤執行個體

1.6.5 建立塊存儲流程概述

<a href="https://yq.aliyun.com/articles/117884">1.7 openstack體系結構</a>

1.7.1 openstack設計原則

1.7.2 openstack架構

<a href="https://yq.aliyun.com/articles/117891">1.8 openstack的開發資源</a>

1.8.1 openstack社群

1.8.2 openstack基金會

1.8.3 openstack項目資料

<a href="https://yq.aliyun.com/articles/117898">1.9 openstack非核心項目介紹</a>

1.9.1 ironic項目介紹

1.9.2 tempest項目介紹

<a href="https://yq.aliyun.com/articles/117923">第2章 openstack的安裝</a>

<a href="https://yq.aliyun.com/articles/117926">2.1 在ubuntu上使用二進制包安裝</a>

2.1.1 控制節點的安裝

<a href="https://yq.aliyun.com/articles/117934">2.1.2 網絡節點的安裝</a>

<a href="https://yq.aliyun.com/articles/117941">2.1.3 計算節點的安裝</a>

<a href="https://yq.aliyun.com/articles/117945">2.1.4 塊存儲節點的安裝</a>

<a href="https://yq.aliyun.com/articles/117956">2.2 在ubuntu上使用源代碼編譯安裝</a>

2.2.1 控制節點的安裝

<a href="https://yq.aliyun.com/articles/117960">2.2.2 計算節點的安裝</a>

<a href="https://yq.aliyun.com/articles/117963">2.2.3 網絡節點的安裝</a>

<a href="https://yq.aliyun.com/articles/117963">2.2.4 塊存儲節點的安裝</a>

第二部分 進 階 篇

第3章 openstack組織結構一覽

3.1 元件關系

3.1.1 nova元件

3.1.2 swift元件

3.1.3 keystone元件

3.1.4 glance元件

3.1.5 neutron元件

3.1.6 cinder元件

3.2 openstack目錄組織結構

3.2.1 nova目錄結構

3.2.2 swift目錄結構

3.2.3 keystone目錄結構

3.2.4 glance目錄結構

3.2.5 neutron目錄結構

3.2.6 cinder目錄結構

3.3 openstack配置檔案

3.3.1 nova配置檔案及日志

3.3.2 swift配置檔案及日志

3.3.3 keystone配置檔案及日志

3.3.4 glance配置檔案及日志

3.3.5 neutron配置檔案及日志

3.3.6 cinder配置檔案及日志

3.4 小結