私有云基礎架構(gòu)詳細技術(shù)設計_第1頁
私有云基礎架構(gòu)詳細技術(shù)設計_第2頁
私有云基礎架構(gòu)詳細技術(shù)設計_第3頁
私有云基礎架構(gòu)詳細技術(shù)設計_第4頁
私有云基礎架構(gòu)詳細技術(shù)設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 私有云基礎架構(gòu)詳細技術(shù)設計 在開始討論私有云的架構(gòu)之前我們首先確定一件事情,即沒有架構(gòu)是完美的,總是根據(jù)實際業(yè)務慢慢優(yōu)化最終滿足或者超越最初需求。 私有云客戶與公有云客戶最大的不同是客戶對私有的“云”在管理層面上擁有較大的權(quán)限,他(她)可以很放心地把有涉及到公司或者單位隱私的東西放進“云”中,出現(xiàn)意外時自己可以要求管理員隨時處理。并且私有云就服務器規(guī)模、SLA、防火墻、計費、安全性等級要求等方面而言,與公有云的側(cè)重點不大相同,架構(gòu)上自然也要區(qū)別對待。 本章會從基本原則、架構(gòu)安全、“云”化架構(gòu)三個方面敘述基礎架構(gòu)的設計實現(xiàn),涉及到的技術(shù)細節(jié)筆者盡量在后面的基礎知識章節(jié)部分加以敘述。 1、基本架

2、構(gòu)原則 基礎設施架構(gòu)的核心即是整合計算、存儲與網(wǎng)絡三種資源,而在配置這些時我們需要在擴展性、穩(wěn)定性及冗余性達到一定要求。穩(wěn)定性 基礎架構(gòu)的穩(wěn)定性對于一個平臺是至關(guān)重要的。存儲、網(wǎng)絡、計算節(jié)點自身的穩(wěn)定性,以及它們之間通信的穩(wěn)定性,都時時刻刻影響著用戶體驗。 即使是穩(wěn)定性非常好的系統(tǒng),也應該在平時的運維,即監(jiān)控以及出現(xiàn)故障時的跟蹤、定位、解決上花一定功夫?,F(xiàn)在國內(nèi)很多云平臺廠商都沒有提供服務狀態(tài)報告,比如可用性、地域延遲、資源統(tǒng)計等,相比國外的主流平臺而言仍有很大差距。擴展性 擴展性包含兩個方面:橫向擴展(scale out/in)和縱向擴展(scale up/down)。 集群橫向擴展主要包括

3、計算節(jié)點、存儲、網(wǎng)絡資源“節(jié)點級別”的擴展,比如新添加了服務器、交換機等整機設備。需要注意的是,節(jié)點加入集群后,其上的所有業(yè)務均能在新節(jié)點正常運行;同時,新節(jié)點的加入對普通用戶來說是透明的,即用戶不會感知到集群的橫向擴展。 縱向擴展即是整機中加入例如新的CPU、內(nèi)存、硬盤、網(wǎng)卡等組件以提高單機性能。 平臺在進行橫向擴展時,也可使用其他平臺的資源。比如企業(yè)內(nèi)現(xiàn)有國際品牌的虛擬化產(chǎn)品,如果國內(nèi)廠商的虛擬化產(chǎn)品能夠直接使用原平臺的虛擬機、虛擬硬盤甚至是虛擬網(wǎng)絡的話,那么對企業(yè)來說,這個過渡將會非常輕松?,F(xiàn)在能夠提供云平臺API的廠商比較多,而能夠作為參考標準的只有Amazon、OpenStack、V

4、MWare等國際化平臺。筆者成文時,中國信息技術(shù)標準化組織目前尚未制定出“及時”的標準,但已經(jīng)成立了很多的工作組,比如服務器虛擬化、桌面虛擬化、云存儲等,相信他們也很快推出統(tǒng)一標準。冗余性 冗余性是穩(wěn)定性和擴展性的補充。對于私有云而言,成本往往僅能保證穩(wěn)定性,而在冗余性保障上有較少的支出。當成本不足以滿足所有基礎資源的冗余性的時候,就要根據(jù)具體環(huán)境來判斷,盡量保持它們不同資源上冗余能力的平衡,最大程度地減少潛在風險。1.1 合理的存儲配置 私有云中存儲配置是整個架構(gòu)的重點,它承擔著整個平臺的數(shù)據(jù),所以這里一般需要進行重點配置。除了傳統(tǒng)存儲架構(gòu)外,也有廠商Nutanix為首提出的超融合架構(gòu),即存

5、儲與網(wǎng)絡一樣也可以進行軟件定義。目前對多數(shù)國內(nèi)私有云廠商來說,超融合的一般實現(xiàn)即是在虛擬化平臺中添加分布式存儲的后端與前端管理,可對計算節(jié)點資源進行復用,從而降低項目整體成本。 不管何種形式,它們對平臺的提供的功能都是相同的,接下來筆者針對私有云平臺的存儲基礎架構(gòu)予以介紹,相關(guān)的存儲知識讀者可以閱讀本書的第7章。接入方式 私有云中的存儲配置按照接入平臺的方式可分為本地存儲和共享存儲,而它們本身的組合方式又是自由的,除傳統(tǒng)的本地存儲和網(wǎng)絡存儲外,也有NFS存儲可以掛載后作為計算節(jié)點的本地存儲,或者計算節(jié)點上的空閑空間組合為分布式存儲等方法。圖2-1和圖2-2分別是本地存儲與共享存儲的接入方式示例

6、,本地存儲即直接使用本地磁盤或者iSCSI、SAS等設備作為鏡像存儲,虛擬機實例與鏡像在同一主機中,而共享存儲下虛擬機實例可在任意主機中打開鏡像并運行,從而使得虛擬機熱遷移成為可能。圖2-1 本地存儲接入示例圖2-2共享存儲接入示例 圖2-1中有本地硬盤、共享存儲/FC/SCSI存儲作為本地存儲的兩種用例;圖2-2中節(jié)點1直接使用外部存儲作為共享存儲,節(jié)點2和3提供本地硬盤作為Ceph/Glusterfs的存儲后端,再使用Ceph/Glusterfs作為共享存儲。存儲的接入方式對平臺性能、穩(wěn)定性甚至使用體驗上都有直接或間接的影響。當使用共享存儲時:虛擬機可以進行在線遷移,合理利用服務器資源,增

7、加業(yè)務連續(xù)性;計算節(jié)點宕機不會造成虛擬機單點故障,提高穩(wěn)定性;可以更靈活地應用備份機制,并且擴容相對簡單,提高可維護性;可與其它業(yè)務或者平臺共享存儲,提高擴展性;存儲與計算節(jié)點邏輯、物理都分離時,架構(gòu)清晰;對網(wǎng)絡連接路徑較為依賴,計算節(jié)點增加時可能需要增加線路隔離流量;可以利用網(wǎng)絡緩存機制,減輕啟動風暴影響,但對共享存儲設備有一定要求;當使用本地存儲時:虛擬機更加獨立,某個用戶的過度使用不會造成其它虛擬機的讀寫性能影響,增強用戶體驗;可以利用更高效的本地緩存機制,減輕啟動風暴的影響;存儲成本投入較??;計算節(jié)點宕機時會造成其上所有機器不可訪問,即單點故障損失較大,影響平臺穩(wěn)定性;虛擬機在線遷移有

8、難度,難以平衡集群負載;我們選擇接入方式時需要綜合考慮業(yè)務類型、成本、用戶體驗、風險控制等等各方面因素,盡量避免對整個平臺的穩(wěn)定性和性能造成負面影響。存儲后端 存儲后端即平臺存儲資源的核心,組成部件不止于機械硬盤、SSD,也包括其通信鏈路、固件等。存儲后端性能與其上的虛擬機緊密相關(guān),當選擇不當?shù)臅r候會降低平臺整體性能,而導致用戶體驗不佳。圖2-3 存儲節(jié)點物理示意圖 多數(shù)項目方案中既有高速存儲設備,又有相對低速的存儲設備,我們要根據(jù)“業(yè)務”來規(guī)劃存儲使用。接下來我們做一次實驗,用數(shù)據(jù)簡單說明虛擬機硬盤格式與物理存儲的相互影響,其中我們使用一塊SSD代表性能較高的高速存儲,一塊SAS硬盤代表相對

9、低速存儲,這里的“業(yè)務”是啟動鏈接克隆方式創(chuàng)建的虛擬機并進入桌面?!巴暾寺 迸c“鏈接克隆” 在KVM虛擬化平臺中,有兩種創(chuàng)建實例的常用方式:完整克隆與鏈接(增量)克隆,在以后章節(jié)中會有詳細介紹。 完整克隆即完全復制模板配置信息與硬盤文件,硬盤的復制方式一般為cp或者qemu-img convert。如此創(chuàng)建的實例,其硬盤與模板硬盤相對獨立,在服務器存儲上擁有各自的扇區(qū)位置,所以在讀寫操作時受機械盤磁頭引起的小區(qū)域并發(fā)問題影響 較小,缺點是創(chuàng)建時需要花費一定時間,不能滿足秒級創(chuàng)建的需求。 鏈接克隆即新建虛擬機時只復制模板配置信息,硬盤文件則是以原硬盤為模板的增量硬盤。如此創(chuàng)建的硬盤對模板硬盤的

10、依賴程度較高,對于硬盤內(nèi)已有文件的讀操作(比如啟動系統(tǒng)時)絕大部分在模板硬盤上進行,所以在傳統(tǒng)機械盤上多個實例的并發(fā)啟動風暴更容易在此種格式的硬盤上發(fā)生。 本次實驗環(huán)境中,筆者使用一臺雙路E5-2630v3、128G內(nèi)存的服務器,兩塊企業(yè)級SSD(其中一塊為服務器系統(tǒng),另一塊虛擬機存儲)和一塊企業(yè)級SAS硬盤(虛擬機存儲),將1G內(nèi)存、單核、全新安裝的XP虛擬機作為模板。為了防止虛擬機進入系統(tǒng)后進行文件索引等占用空間的操作,模板虛擬機建立之前開機“靜置”了一段時間直到其資源用度無明顯變化。企業(yè)級1T SAS硬盤虛擬機批量啟動實驗 此時新建的實例所和模板都位于SAS硬盤上。同時啟動20臺虛擬機后

11、,全部虛擬機在第300秒左右進入桌面。啟動20臺虛擬機過程中的服務器CPU及I/O用度如圖2-4所示。圖2-4 于SATA硬盤中啟動20臺虛擬機的CPU及I/O用度企業(yè)級480G SSD虛擬機批量啟動實驗 此時新建的實例和模板都位于SSD上。同時啟動20臺虛擬機后,全部虛擬機在第35秒左右進入桌面。啟動20臺虛擬機過程中的服務器CPU及I/O用度如圖2-5所示。圖2-5 于SSD中啟動20臺虛擬機的CPU及I/O用度 可以看出,高速設備比低速設備擁有更高的IOPS以及更高的讀寫速度。目前兩者成本相差很多,所以全部使用高速存儲會增加很多成本。在實際實施中,高速和低速設備搭配使用,比如將高速設備用

12、于存儲模板和某些高IOPS虛擬機,低速設備用于存儲普通虛擬機,這樣從成本和用戶體驗綜合考量,方可獲得比較合理的配置。1.2 穩(wěn)定的網(wǎng)絡基礎 一個優(yōu)秀的IT架構(gòu)一定有一個優(yōu)秀的網(wǎng)絡基礎。網(wǎng)絡在私有云尤其是桌面云中的影響有時比存儲更加直接。在搭建私有云的過程中,更多的項目是在已有 IT架構(gòu)的基礎上進行延展,而不是廠商獨立的架構(gòu),所以對整個用戶端網(wǎng)絡框架有個清晰認識就顯得很重要。在我們接觸的項目中,有比較多的問題是網(wǎng)絡不穩(wěn)定、框架不合理造成的。雖然我們在項目中極少擁有對用戶網(wǎng)絡改造的權(quán)力,但是也要在網(wǎng)絡上下功夫認真規(guī)劃,并在關(guān)鍵結(jié)點與客戶及時溝通,盡量減少網(wǎng)絡因素帶來的諸多“麻煩事”。 圖2-6是以

13、業(yè)務為核心的通用私有云架構(gòu),圖2-7則是從計算節(jié)點出發(fā)網(wǎng)絡視圖,它們的共同點都是對網(wǎng)絡進行了較為嚴格的區(qū)分,但劃分標準不同,讀者在很多云平臺中都會看到類似架構(gòu)。其中會涉及到虛擬化網(wǎng)絡基礎與軟件定義網(wǎng)絡(SDN)等知識點,具體內(nèi)容讀者可閱讀本書的第6章。圖2-6 業(yè)務為核心的通用架構(gòu)圖2-7 計算節(jié)點為中心的網(wǎng)絡架構(gòu) 對于構(gòu)建一個穩(wěn)定的網(wǎng)絡基礎來說,傳統(tǒng)OSI七層模型很有參考價值,而側(cè)重協(xié)議實現(xiàn)的TCP/IP的四層模型也很實用,在此我們使用它們的混合模型來分層討論。圖2-8是OSI網(wǎng)絡模型與TCP/IP模型簡圖。圖2-8 OSI模型與TCP/IP模型 傳統(tǒng)OSI在服務、接口、協(xié)議有所側(cè)重,但是它

14、由于歷史原因以及實現(xiàn)等問題,現(xiàn)在僅僅被人奉為“經(jīng)典”,具有的參考價值大于實用價值。而 TCP/IP的實現(xiàn)由于其模型簡單,很大程度上促進了互聯(lián)網(wǎng)時代的來臨,但是使用它來描述比如說藍牙網(wǎng)絡,基本上是不可能的了。而混合五層模型即吸收了它們的優(yōu)點,又一定程度上回避了它們的缺點。下圖即是混合網(wǎng)絡模型簡圖。圖2-9 OSI與TCP/IP混合模型 同存儲資源一樣,我們在構(gòu)建私有云網(wǎng)絡基礎的時候也要關(guān)注其穩(wěn)定、擴展、冗余的能力,同時注意成本,以下筆者將從這5層分別進行介紹。物理層 在物理層,我們需要做出的選擇有傳輸介質(zhì)和有線/無線傳輸方式。表2-1 網(wǎng)絡線材分類 在后端資源鏈路中,一般有計算節(jié)點、存儲之間,計

15、算節(jié)點、網(wǎng)絡之間,存儲、存儲之間以及計算、網(wǎng)絡、存儲的內(nèi)部通信鏈路。其數(shù)據(jù)量或高或低,對于私有云而言可以采取后端全萬兆的鏈路以減少后端對整個平臺產(chǎn)生的短板效應。因為對于私有云而言批量啟動是會經(jīng)常出現(xiàn)的,所以至少計算節(jié)點與存儲的鏈路一定要有所保證,從而防止網(wǎng)絡帶寬成為存儲能力的制約影響用戶體驗。 服務器與前端的鏈路數(shù)據(jù)根據(jù)私有云業(yè)務的而異,主要是控制臺畫面?zhèn)鬏敗⒔换ィㄦI鼠輸入、外設重定向數(shù)據(jù)、語音等)、文件傳輸(云存儲)等。一般到客戶端匯聚層的鏈路使用千兆雙絞線,到客戶端使用千兆/百兆雙絞線。數(shù)據(jù)鏈路層與網(wǎng)絡層 這兩層中我們要關(guān)注的部分主要是不同層次的交換機/路由配置、IP、VLAN的劃分,除非

16、對于完全自主搭建網(wǎng)絡的廠商,否則我們只要了解其基本拓撲和路由配置即可。 目前比較主流的網(wǎng)絡規(guī)劃為環(huán)網(wǎng)星型拓撲,并且按照核心層、匯聚層和接入層區(qū)分職責,如下圖所示。圖2-10 星型環(huán)形網(wǎng)絡拓撲 其中有幾點需要注意:組網(wǎng)的有多種,不同規(guī)模可以使用不同的混合拓撲;在私有云的架構(gòu)中,網(wǎng)絡標簽更偏向以功能邏輯而不是以地理位置區(qū)分。這點在開源云實現(xiàn)中體現(xiàn)的很明顯,比如Mirantis OpenStack的網(wǎng)絡規(guī)劃以及oVirt的邏輯網(wǎng)絡;由于后端資源鏈路較多,一般情況下會使用VLAN(tagged/untagged)來進行隔離;非核心資源盡量采用DNS主機名的方式進行搭建,防止以后IP變化帶來的維護困難;

17、Bonding(鏈路聚合)是比較常用的增加冗余和帶寬的措施,但要注意交換機關(guān)于bonding負載均衡的策略,防止bonding無實際效果,比如IP、MAC、TCP Port的組合方式;交換機盡量采購同一品牌,以免增加運維人員負擔;傳輸層與應用層 我們需要保持網(wǎng)絡穩(wěn)定高效主要是為了這兩層,因為它們對用戶接入、桌面協(xié)議、業(yè)務網(wǎng)絡、資源網(wǎng)絡、控制協(xié)議等有直接影響。 其中,從用戶端到云平臺需要保持良好通信的有http(s)、spice/vnc等,服務器之間則有ssh、sql、telnet、smtp、pop等之間影響業(yè)務等應用層協(xié)議。 而在傳輸層中,經(jīng)常出現(xiàn)的問題有網(wǎng)絡擁堵、過載、超時、延遲等問題。比如

18、當一端等交換機或者設備達不到處理大量報文所需的計算能力時,就會導致丟包或者多次重發(fā)的現(xiàn)象;當有錯誤或者惡意報文進行廣播時,局域網(wǎng)所有機器都會返回錯誤包而導致廣播風暴;當有大量機器重啟從DHCP服務器獲取IP時,也會對服務器造成很大負載;報文的超時時間對應用的影響也很大,過低會導致在網(wǎng)絡繁忙時大量應用超時,過高會引起傳輸效率變低從而影響視頻等實時應用卡頓。 在設計時我們需要注意以下幾點:終端/服務器的帶寬要盡量保證不低于直接連接的網(wǎng)絡帶寬,否則當網(wǎng)絡端(有意/無意/惡意)發(fā)送大量報文時,會造成服務器網(wǎng)卡處理能力的大幅下降,影響其上的應用性能;適量增加封包大小,減少數(shù)據(jù)發(fā)送次數(shù),從而降低網(wǎng)卡負擔;

19、適量調(diào)整報文超時時間,減少網(wǎng)絡繁忙時產(chǎn)生擁堵;在可以壓縮協(xié)傳輸層議頭甚至數(shù)據(jù)的條件下優(yōu)先壓縮協(xié)議頭,從而減少報文傳輸次數(shù)降低流量; 總之,私有云網(wǎng)絡設計與傳統(tǒng)網(wǎng)絡架構(gòu)設計相比,需要考慮的變量更多。尤其近些年軟件定義網(wǎng)絡的發(fā)展,以及OpenStack、VMWare中網(wǎng)絡虛擬化的推進,客戶對私有云/公有云對廠商的綜合素質(zhì)要求更高了。1.3 可靠的計算資源 提供考量計算資源的標準,不止于物理服務器的性能、安全、穩(wěn)定等因素,還有計算節(jié)點組成的集群所具有的能力,比如負載均衡、高可用等。接下來,筆者將根據(jù)硬件、軟件配置并結(jié)合私有云的特性進行計算資源服務器的選擇,以其達到最優(yōu)的計算資源配置。服務器硬件圖2-

20、11 PC服務器一般架構(gòu) 通常情況下,CPU、內(nèi)存是決定服務器能夠承擔多少負載的決定性因素,而存儲、NUMA和擴展屬性保證著服務器運行的功能性和穩(wěn)定性。 多數(shù)廠商在部署私有云時,往往按照CPU邏輯核總數(shù)和虛擬機總核數(shù)按 1:X 來分配,當虛擬機有卡頓或者其它情況出現(xiàn)時,再調(diào)整比例。而這一點在筆者看來是很不好的習慣,因為它忽略了一些因素,比如CPU最大主頻、非NUMA核間數(shù)據(jù)拷貝代價、虛擬機運行程序時的保證峰值負載等。我們在此使用一個經(jīng)驗公式來計算: 其中,sockets、cores、frequency分別代表服務器的物理CPU數(shù)量、單CPU線程數(shù)、最大主頻,當超線程HT打開(為真)時獲得20%

21、的提升,否則不提升,cap代表服務器的能力。讀者可以訪問Intel ARK網(wǎng)站(或手機APP)查詢具體的CPU參數(shù)。 假設一個Windows 7桌面普通辦公流暢的最小負載為2.0Ghz,使用雙路Intel E5-2630 v3,則cap為61.44GHz,即我們這臺服務器可以保障30臺單核Windows 7桌面流暢運行。由于桌面應用程序往往可以利用多核特性,所以我們會考慮分配其雙核甚至四核,同時其單核負載下降,亦可以看做2 * 1 Ghz,加之峰值負載下的機器并發(fā)量少,我們可以再適當增加虛擬機數(shù)量。在選配CPU時,我們要根據(jù)實際負載、桌面應用、成本等因素綜合考量,盡量減少 CPU性能的瓶頸或者

22、過剩。 NUMA技術(shù)和主板CPU省電選項(C1E等)同樣也會影響服務器CPU性能。NUMA技術(shù)會大幅提高CPU間通信,換句話說,當有較多進程存在時,利用 NUMA可以減少進程在CPU之間切換的時間,一般建議打開。對于高I/O、低CPU利用率的應用,主板使用C1E或者更深度的電源管理選項(C1/C3 /C6)時會較大程度地影響其性能。目前在KVM中,缺少C1E動態(tài)開關(guān)的選項,所以建議在BIOS設置中關(guān)閉此項。 內(nèi)存技術(shù)也是影響虛擬機的重要因素,目前在KVM中可以使用內(nèi)存氣球、巨頁、KSM等技術(shù)提高內(nèi)存使用效率。雖然內(nèi)存可以超分(overcommit),但我們?nèi)匀灰WC物理內(nèi)存不小于所有虛擬機分配

23、內(nèi)存,因為內(nèi)存不足導致的問題一般比較嚴重,對于服務器來說甚然。另外,當內(nèi)存充足時建議關(guān)閉swap分區(qū),因為在數(shù)據(jù)拷貝期間發(fā)生交換將帶來比較嚴重的性能損失。 計算節(jié)點的硬盤配置可分為系統(tǒng)盤和數(shù)據(jù)盤,系統(tǒng)盤即運行虛擬化節(jié)點所需操作系統(tǒng)的硬盤,數(shù)據(jù)盤即用于本地存儲或者共享存儲的硬盤。當采用共享存儲時,可以省去服務器數(shù)據(jù)盤配置。 擴展插槽中可以添加RAID控制器、JBOD控制器、GPU卡、網(wǎng)卡等高速設備。而USB控制器則用于加密狗、U-Key透傳等功能。這兩項外設擴展在特定的服務器中可以進行額外擴展。操作系統(tǒng) 計算資源的操作系統(tǒng)首先要做到效率高、穩(wěn)定性好、兼容性好,其次是無狀態(tài)、易維護等。 在效率上我

24、們能進行很多比較系統(tǒng)的優(yōu)化,比較通用的有進程調(diào)度、驅(qū)動程序優(yōu)化、I/O優(yōu)化等。通用的優(yōu)化做好以后就可能需要對具體硬件進行針對性的驅(qū)動、調(diào)度優(yōu)化。通用的優(yōu)化是可移植的,而針對具體硬件的優(yōu)化難以保證,所以我們在這兩方面應有所取舍。 穩(wěn)定性是考量系統(tǒng)的重要標準之一,影響它的因素或是系統(tǒng)本身,或是軟件,或是硬件。一般私有云廠商在進行實施之前,如有可能會對服務器進行連續(xù)中低壓測試,確保其穩(wěn)定性后再進行軟件的部署。而服務器硬件兼容性問題伴隨著硬件廠商和操作系統(tǒng)廠商(尤其RedHat)的緊密合作,它的出現(xiàn)情況已經(jīng)比較少了。但是一旦出現(xiàn)兼容性問題,一般都比較難以排查,往往需要硬件廠商提供協(xié)助。 所謂無狀態(tài)操作

25、系統(tǒng),即我們需要這個計算節(jié)點異常斷電重啟后無需人工干預繼續(xù)提供服務。它提供了一種類似還原模式的操作系統(tǒng),降低了系統(tǒng)損壞后難以修復的幾率同時減少了運維負擔。其實現(xiàn)方式比較多,包括DOM盤、PXE、SQUASHFS等。 至于易維護性的對象,主要針對服務器的狀態(tài)監(jiān)視、系統(tǒng)軟件修復/升級。 操作系統(tǒng)的選擇 目前主流云平臺多基于CentOS/RHEL或者Ubuntu系統(tǒng)。其主要原因就是其生命周期與知識庫CentOS每個大版本是10年左右,Ubuntu/Debian為5年,SUSE為10+3年(期限雖長但對應云平臺知識庫較少)。當然,影響我們對服務器選擇的因素中,軟件也占據(jù)大部分,比如下圖就是虛擬化相關(guān)軟

26、件的通用架構(gòu),其中哪部分使用或高或低配置的服務器甚至虛擬機作服務器還是要調(diào)研一番更為妥當。軟件服務 在分布式架構(gòu)中,不同的軟件服務一般部署在不同的服務器上,這樣就會使單獨的軟件服務模塊更具可維護性和部分性能上的優(yōu)勢。以IaaS為例,常用的軟件服務模塊如圖2-12所示。圖2-12 開源云平臺虛擬化相關(guān)功能軟件架構(gòu) 其中,我們重點考慮的軟件模塊是模擬器部分(關(guān)于開源的x86模擬器QEMU讀者可以參考第4章內(nèi)容)。 首先,模擬器會對計算節(jié)點的CPU特征有一定要求。以虛擬機遷移為例,現(xiàn)在的虛擬化實現(xiàn)不能進行異構(gòu)遷移,即虛擬機vCPU不能在遷移后改變其CPU特征,這就要求集群中的計算節(jié)點使用統(tǒng)一的CPU

27、特征組啟動模擬器,并且所有計算節(jié)點的的CPU至少屬于同一架構(gòu)。其次,模擬器會對計算節(jié)點的CPU性能有一定要求。私有云中常常會有重點業(yè)務虛擬機,它們對CPU性能、內(nèi)存等計算資源有較高要求,此時我們就需要賦予較高資源優(yōu)先級,保證它們在資源充裕且狀態(tài)良好的計算節(jié)點上運行。然后,如果虛擬機需要使用常駐的外部設備,那么我們就需要進行設備透傳或重定向。而現(xiàn)有的模擬器實現(xiàn)不能在設備已與虛擬機連接的情況下進行遷移,這就只能將此虛擬機在固定的計算節(jié)點上運行,從而要求此計算節(jié)點需要擁有數(shù)量合適的外部設備或接口。最后,某些模擬器的性能會受主板設置的影響,比如CPU電源管理,這就要求計算節(jié)點需要針對具體的模擬器類型作

28、出相應設置,保證模擬器性能最優(yōu)。 需要注意的是集群中的網(wǎng)絡組件,以Neutron為例,其OVS節(jié)點在網(wǎng)絡數(shù)據(jù)包較多的情況下,會對本地CPU造成不小的壓力從而引起網(wǎng)絡丟包、延遲現(xiàn)象,而針對這點常用的做法是使用單獨的網(wǎng)絡控制節(jié)點和SDN交換機以分離控制層與數(shù)據(jù)層,從而保障網(wǎng)絡性能的穩(wěn)定。 至于容器,它運行在Linux服務器中時一般不會對CPU有特殊要求,只要保證核數(shù)與主頻合適即可。而集群組件,比如Nova、Glance、vdsm等,它們對計算資源要求也比較少。2.、架構(gòu)安全 當人們討論安全時,首先想到的可能就是一個復雜的密碼,還有不同網(wǎng)站使用不同的密碼。作為被各種網(wǎng)站注冊頁面包圍的現(xiàn)代人來說,這是

29、一個好習慣。其實,對一個面向終端用戶的系統(tǒng)而言,密碼只是它復雜又精密的安全機制體現(xiàn)之一。一個系統(tǒng)安全機制實現(xiàn)的復雜度直接關(guān)系到用戶數(shù)據(jù)的安全保障程度,它始終以用戶數(shù)據(jù)為核心,以保障系統(tǒng)自身安全的條件下保障用戶數(shù)據(jù)的安全性,圖2-13是私有云環(huán)境下的用戶接入視圖。圖2-13 私有云環(huán)境用戶接入簡圖2.1 認證與授權(quán) 認證(authentication)與授權(quán)(authorization)歷來是安全系統(tǒng)重點關(guān)注的部分,即使在現(xiàn)實生活中也是這樣。認證是發(fā)生在用戶進入系統(tǒng)時,而授權(quán)是在對系統(tǒng)進行操作的過程中。 在傳統(tǒng)認證授權(quán)系統(tǒng)中,普遍使用AD、LDAP等作為網(wǎng)絡信息服務器(NIS),前者是類Kerb

30、eros的實現(xiàn),后者可直接與Kerberos進行結(jié)合。私有云需要這種NIS訪問方式,以便接入現(xiàn)有業(yè)務系統(tǒng)或者啟用單點登錄(Single Sign On)。Kerberos的認證流程如圖2-14所示,其核心是ticket的獲取與授權(quán)。圖2-14 Kerberos認證過程 可以看到用戶與服務的認證授權(quán)過程很清晰,實現(xiàn)時注意需要用戶/服務端/KDC(相當于AD域控)三者時鐘同步。當用戶進行登錄以后,他使用任何應用都不再需要再次輸入密碼認證,應用程序通過用戶第一次獲取的key向服務請求對應的權(quán)限,并且所有權(quán)限都可以進行細分管理。 雖然Kerberos性能、安全性方面都很優(yōu)秀,但與應用結(jié)合時仍需考慮它引

31、入的運維復雜度問題,尤其是在擴展性方面。2.2 服務安全 對于用戶來說,將數(shù)據(jù)保存在一個放心的環(huán)境里能很大程度上減少他們的擔心。對于管理員來說,一旦被入侵,那么損失的不止是用戶數(shù)據(jù)了,更有可能喪失用戶對整個平臺的信任。接下來我們從三個方面來增加我們服務器安全性。網(wǎng)絡安全 網(wǎng)絡安全是我們第一個要考慮的事情。從功能上我們將網(wǎng)絡劃分為用戶接入端網(wǎng)絡、傳輸網(wǎng)絡、后端網(wǎng)絡。我們很難保證用戶接入端網(wǎng)絡的安全性,所以普遍做法是在傳輸網(wǎng)絡與后端網(wǎng)絡上實施安全防護措施,包括加密傳輸、防DDoS/CC攻擊、流量限制等。在私有云環(huán)境中,不僅要對外網(wǎng)入口進行防護,更要對局域網(wǎng)進行監(jiān)控和防護,我們要采取一定措施進行區(qū)分

32、。加密傳輸 在私有云平臺中,所有服務的TCP/IP連接都可以選擇性地使用SSL/TSL進行加密。而在進行SSL/TSL加密傳輸時,有兩點需要注意:確保至少有一個可信的根證書頒發(fā)機構(gòu)頒發(fā)的根證書,對于小規(guī)模私有云來說,可以使用二級可信證書或者自建可信域;謹慎管理私鑰及其備份,防止外泄。防DDoS/CC/SQL注入 整個平臺給用戶提供的接入方式很可能是一個Web界面,或者REST API的接口,那么就會與傳統(tǒng)Web服務器一樣面臨著被攻擊的威脅。和傳統(tǒng)服務一樣,我們可以使用專門的硬件/軟件防火墻以及負載均衡來處理對訪問入口的大量并發(fā)請求。SQL注入是目前互聯(lián)網(wǎng)企業(yè)最為關(guān)注的攻擊手段,。技術(shù)細節(jié)可以市

33、面參考相關(guān)書籍與文章,筆者在此不以贅述。流量控制 私有云的流量限制條件比公有云寬松一些,但是仍要予以高度重視,否則同樣會帶來體驗乃至安全上的嚴重后果或者事故。平臺入口以外的流量我們可以通過外部防火墻進行處理,虛擬機內(nèi)部的流量往往通過虛擬化平臺的流量控制功能進行限制,有些時候也會引入內(nèi)部防火墻。平臺也要對架構(gòu)中的異常流量有所感知,以通知相關(guān)人員進行維護或者防護。 網(wǎng)絡安全方面有很多成熟的方案或者產(chǎn)品,我們應根據(jù)它們的效能、管理復雜度、平臺兼容性等進行綜合選擇,盡量減少引入私有云時帶來的復雜度和成本。存儲介質(zhì)加密 在此以常見的智能手機為例,用戶保存在手機里的數(shù)據(jù)包括聯(lián)系人、音視頻、照片等,給手機屏

34、幕解鎖后,用戶可以訪問它們。當手機損壞或丟失后,某些心懷不軌的人可能會利用設備復制出手機的閃存內(nèi)容進行解讀。為預防這種比較極端的情況發(fā)生,現(xiàn)在的智能手機操作系統(tǒng)中都會有“加密存儲”、“遠程抹除”等安全選項,當用戶選擇進行存儲加密時,對存儲介質(zhì)的非法直接訪問也將變得異常困難(現(xiàn)在的加密key一般存儲在手機CPU中)。 上述的場景應用到私有云時,用戶的數(shù)據(jù)即是虛擬機硬盤以及存儲于“網(wǎng)盤”上的內(nèi)容。圖2-15 用戶數(shù)據(jù)加密主體 服務器操作系統(tǒng)中存儲有虛擬硬盤,在這一層進行加密就意味著即使這臺服務器硬盤被取出,也很難讀取其中數(shù)據(jù);KVM下的虛擬硬盤本身在創(chuàng)建時也支持 AES加密選項,但由于其穩(wěn)定性欠佳

35、已經(jīng)被社區(qū)漸漸拋棄,截止成文時沒有任何改進的措施出現(xiàn);至于虛擬機OS內(nèi),它可以加密虛擬硬盤、數(shù)據(jù)、目錄等等,但是需要用戶自己進行選擇加密的內(nèi)容。 數(shù)據(jù)加密解密的同時一定會帶來性能上的些許影響,全部使用服務器OS加密硬盤一定不會適用于所有場景,同樣強制用戶虛擬機OS加密也不會太妥。當面向安全等級特別高的場景時,使用服務器加密一定是有益的,一般場景下我們提供虛擬機OS加密的建議即可。服務器設備 我們現(xiàn)在也有很多措施可以專門用來加強服務器本身的安全性,不妨嘗試從以下兩方面入手:可信平臺模塊 可信平臺模塊(TPM,Trusted Platform Module)由計算機工業(yè)的可信計算組(TCG,Tru

36、sted Computing Group)制定,旨在提供計算機安全加密設備與技術(shù),用來防止密碼、敏感數(shù)據(jù)被竊取的標準設備。下圖為某廠商的TPM模塊,附加于專用的主板I/O接口。圖2-16 某廠家的TPM模塊 它是一個硬件模塊,本身提供了各種加解密算法的快速計算,同時可以進行遠程認證、數(shù)據(jù)加密/解密認證,主要應用場景如下:平臺認證 它可以從硬件設備、設備固件、BIOS到操作系統(tǒng)、軟件都進行哈希校驗,保證系統(tǒng)中沒有未經(jīng)許可的硬件或軟件接入。比如接入一個未曾記錄過的USB鍵盤時,它就會記錄并按照預配置操作進行處理。硬盤加密 服務器操作系統(tǒng)可以在其內(nèi)部使用TPM協(xié)助進行硬盤加密,一般需要特定軟件實現(xiàn),

37、比如dm-crypt、BitLocker等。密碼保護 用戶的密碼、密鑰、數(shù)據(jù)、操作系統(tǒng)等都可以使用它來進行保護。傳統(tǒng)軟件實現(xiàn)的認證機制往往不能經(jīng)受字典攻擊,而TPM內(nèi)置了防字典攻擊機制,使得所有繞過軟件限制的大量嘗試登錄操作被TPM終結(jié)。目前在私有云中,主流虛擬化平臺都提供了對TPM的支持。QEMU中除了TPM透傳外,也可以使用QEMU模擬出TPM設備進行加解密。地理位置標簽 使用地理位置標簽(Geo-Tag)可以幫助管理人員了解服務器的具體位置,以方便管理維護。它可以配合RFID設備進行短距離細分標識,并且在統(tǒng)一管理平臺的幫助下,實現(xiàn)所有設備狀態(tài)、位置的實時監(jiān)控。當然它也可以配合TPM組建基

38、于地理位置的可信資源池。3、“云”化架構(gòu) 由第一章私有云的定義我們可知,虛擬化只是“云”的實現(xiàn)手段之一,而面對真正的云我們?nèi)孕枰芏喙ぷ鳌N覀兘酉聛碛懻摰膬?nèi)容就是如何將基礎架構(gòu)“云”化。3.1 池化資源 池化資源是向“云”邁進的重要一步,這一點我們可以通過社區(qū)動態(tài)以及商業(yè)云產(chǎn)品中窺探到。在前面的基礎架構(gòu)中,我們圍繞著計算、存儲、網(wǎng)絡三個基本元素組建系統(tǒng),而接下來就需要使用云平臺將它們進行“池化”操作,從而提供更具有彈性、更加高效和穩(wěn)定的的服務。 以服務器為基本載體的三種資源通過各種方式進行組合,提供IaaS、PaaS、SaaS模式的服務。這些服務模式展現(xiàn)給最終用戶的有諸如虛擬機、云存儲、負載均

39、衡、內(nèi)容加速、應用框架等具體服務,如圖2-17所示。將資源進行池化的好處即是一方面用戶不必知道所接受服務的具體來源,同時能夠得到穩(wěn)定、快速的服務響應,另一方面服務提供商對資源也能進行合理的管理與維護。圖2-17 典型“云”服務模型3.2 SLA管理 SLA(Service Level Agreement)即服務等級協(xié)議,它通過對資源的限制、配置、調(diào)度而保證服務的高可用。高可用 高可用可以按照其作用對象可分為服務器、虛擬機以及虛擬機內(nèi)應用程序。在服務器層面,我們通過評分、隔離、電源管理等機制保證虛擬機運行在一個穩(wěn)定的環(huán)境中。評分即通過監(jiān)視服務器的資源當前及歷史狀態(tài),對其進行綜合評價,分數(shù)越高具有

40、運行虛擬機的權(quán)利。隔離操作一般發(fā)生在服務器與集群管理節(jié)點失去聯(lián)系時,為保證服務質(zhì)量而將其從服務集群中隔離不再運行虛擬機,一般配合電源管理進行操作。 虛擬機層面的高可用往往需要對其添加模擬看門狗??撮T狗是一種輔助芯片,在嵌入式系統(tǒng)中常用來監(jiān)控CPU狀態(tài),當CPU停止工作后看門狗就不會再收到CPU發(fā)來的心跳信號而將CPU強制重啟。對于PC而言,看門狗將系統(tǒng)重啟的條件多是藍屏、死機等。 對于虛擬機內(nèi)的應用程序的高可用,可以通過外部監(jiān)控(比如端口狀態(tài)監(jiān)測)和內(nèi)部監(jiān)控(比如虛擬機代理程序)完成。這方面的監(jiān)控產(chǎn)品比較多,主流的有 Nagios/Icinga和Zabbix等,它們都需要在虛擬機內(nèi)按照代理程序

41、,當某一應用被監(jiān)測到停止響應時,就可以使用管理員提前設置的策略嘗試重啟此應用。資源限制 資源限制即是對允許用戶使用的最大資源進行限制,包括虛擬機數(shù)目、CPU、內(nèi)存、硬盤、網(wǎng)絡等。這里的限制按照對象可以劃分為兩個方面,一是用戶允許使用的總資源配額,二是虛擬機在運行時所允許的資源最大利用率。比如在一個用戶可以自己創(chuàng)建虛擬機的環(huán)境中,管理員往往難以控制其創(chuàng)建刪除行為,如果能對用戶創(chuàng)建的所有虛擬機數(shù)目、vCPU數(shù)目、內(nèi)存大小、硬盤大小、網(wǎng)絡帶寬進行配額限制的話,那就既能滿足用戶的自主性又可適當減少管理員負擔了。這種限制有些類似操作系統(tǒng)中的配額限制,它主要體現(xiàn)在對“量”的限制上。 但是對“量”的限制還不

42、能滿足私有云的需求,那么就要從“質(zhì)”上進行限制了。如果用戶擁有足夠的服務資源配額,那么當他的虛擬機長期滿負荷運行時(比如網(wǎng)絡發(fā)包、硬盤高IOPS直寫、CPU利用率高居不下等),就會對與其處在同一臺服務器上的虛擬機造成比較嚴重的影響。為了其他用戶的體驗考慮,我們引入了利用率的限制,包括CPU利用率(CPU數(shù)目與其利用率乘積)、硬盤利用率(IOPS、MBPS)、網(wǎng)絡利用率(百分比)等。 當用戶的資源將要超過配額或者較長時間內(nèi)高利用率使用時,平臺同樣需要對其發(fā)出警告,防止其系統(tǒng)發(fā)生崩潰、惡意入侵等意外情況。 讀者可能會在很多地方讀到關(guān)于將PaaS平臺搭建在IaaS平臺上的資料,但是我們需要了解這樣做

43、的原因主要是考慮到了資源的隔離控制,而不是資源用度方面,所以其高可用性較之以物理機直接接駁容器工具方式有一定劣勢。資源配置 資源配置往往是一個動態(tài)的過程,它通過一系列策略對虛擬機的CPU、內(nèi)存、網(wǎng)絡、硬盤的使用進行控制,以期最有效地利用服務器資源。 當一個多核虛擬機運行時,它會有多個LWP(輕量級進程,可理解為線程)協(xié)同父進程運行。比如一個雙路32核的服務器上運行一個單路32核的虛擬機,往往就會有多于33個LWP在運行(可用ps -eLf查看)。而這些LWP在未指定的情況下往往會在核之間漂移,然后由于進程同步和上下文切換對虛擬機性能造成比較大的損失,當使用率提高時也會對其他進程產(chǎn)生比較嚴重的影

44、響。為了解決這一類性能損失,我們引入p-vCPU綁定與NUMA機制。 另外我們還可對每個虛擬機vCPU進行優(yōu)先級安排,較高優(yōu)先級的vCPU擁有更多的CPU時間。這一特性由于其收益較小,在私有云中適合于極端優(yōu)化場景。 對于內(nèi)存的配置,我們同樣可以利用KSM(Kernel SamePage Merging)配合內(nèi)存氣球技術(shù)提高內(nèi)存使用效率并達到內(nèi)存“超分”(over committing)的效果。從KSM可以看出其字面意思,即合并虛擬機所占用虛擬機的相同內(nèi)存頁以節(jié)約服務器內(nèi)存占用,如圖2-18。內(nèi)存氣球即假設虛擬機的實際占用內(nèi)存為氣球體積,服務器總內(nèi)存為裝有許多氣球的盒子,占用內(nèi)存即為盒子中的空閑

45、體積。當氣球變小時,盒子空閑體積變大,就有更多的空間可以供給其他氣球及服務器使用,反之亦然,如圖2-19。圖2-18 KSM原理圖2-19 內(nèi)存氣球技術(shù)資源調(diào)度 資源調(diào)度的過程按照虛擬機的生命周期可分為兩部分進行,一是用戶請求服務后服務資源后池中分配合適的資源提供服務,我們稱之為啟動策略;二是當提供的服務達到調(diào)度閾值后,為了服務的質(zhì)量保證而進行的自動調(diào)度或者手工調(diào)度,我們稱之為運行時策略。資源調(diào)度是考慮一個云平臺質(zhì)量的重要指標。為了實現(xiàn)私有云的資源調(diào)度策略,我們需要的操作通常有對虛擬機的遷移、開關(guān)機、掛起,以及對服務器的開關(guān)機、隔離,再結(jié)合定時、分級、排序、統(tǒng)計、反饋機制,套用到不同的場景中去

46、。接下來我們從啟動策略、運行時策略開始,討論它們可能用到的機制和具體操作。 啟動策略的實現(xiàn)或簡單或復雜,目前在私有云中最基本的有兩種: 快速啟動:平臺首先對服務器按照其所剩資源進行排序,比如第一個列表為所有服務器剩余內(nèi)存從高到低的排序,第二個列表為所有服務器CPU剩余未分配核數(shù)從高到低的排序。當虛擬機請求資源準備啟動時,它從第一個列表中發(fā)現(xiàn)服務器甲、乙、丙滿足其CPU核數(shù)要求,從第二個列表中發(fā)現(xiàn)服務器甲、丁滿足其 內(nèi)存要求,那么虛擬機就會在服務器甲上啟動,原理如圖2-20。類似這種快速啟動策略實現(xiàn)起來比較容易,效果也能滿足大多數(shù)場景。圖2-20 快速啟動示意圖 最優(yōu)啟動:同樣地,平臺也會對服務

47、器進行排序,但是這次排序除了考慮剩余資源,也會考慮已用資源。當虛擬機請求資源準備啟動時,平臺根據(jù)剩余資源 選擇一組可用的服務器,然后再計算出這個虛擬機在這些服務器上運行的話單個服務器的資源百分比是否超過預設閾值,然后它會選擇一個資源百分比變化最小的服務器上啟動虛擬機,原理如圖2-21。最優(yōu)啟動在實現(xiàn)時,往往會結(jié)合運行時策略進行調(diào)度,盡量減少虛擬機或者服務器的后期運行時調(diào)度。圖2-21 最優(yōu)啟動示意圖 啟動排隊 在啟動策略中為減少“啟動風暴”的發(fā)生,我們往往會引入排隊機制。每臺服務器會根據(jù)其當時負載狀況選擇一定時間窗口內(nèi)可 以允許多少臺虛擬機啟動,待這些虛擬機啟動完成對硬盤和CPU的負載降低后后

48、,再啟動下一批虛擬機。在一個監(jiān)控機制較完善的平臺下,排隊機制中的變量(隊列長度、窗口時間等)可以根據(jù)服務器狀態(tài)進行動態(tài)調(diào)整。 運行時策略可以從很多角度進行設計,比如服務器利用率、電源能耗、用戶負載等,常用的有如下兩種:平均分布:平均分布即要求所有服務器上的負載(虛擬機數(shù)目、資源用度)盡量相同,對于負載過高的服務器就會遷移其上的某些虛擬機至其他負載較低的服務器。這樣做的目的是降低局部負載,保持虛擬機所處環(huán)境的平等。低能耗:這種策略有兩種實現(xiàn),第一種要求所有虛擬機運行所占用的服務器數(shù)目盡可能少。它先將虛擬機從多臺服務器上集中遷移到某些臺服務器,然后再 將其他服務器關(guān)機以達到省電的目的。第二種則不要

49、求服務器關(guān)機,但是會讓閑置的虛擬機釋放CPU、內(nèi)存資源,它通過定期檢測桌面連接或應用連接,掛起較長時間無連接的虛擬機。在私有云桌面環(huán)境中,第二種實現(xiàn)應用比較廣泛。虛擬機親和組 虛擬機親和組即是按虛擬機應用或者關(guān)系將其分組,同一組的虛擬機盡量在同一臺服務器中運行或者往同一臺服務器遷移。應用 環(huán)境相似的虛擬機會有很多相同的內(nèi)存頁,那么將它們保持在同一臺服務器上運行就會很大程度上地節(jié)約資源消耗。集群架構(gòu)的業(yè)務虛擬機有時也需要在同一親和組 中,比如負載均衡的Web服務器、分布式計算服務器等。彈性伸縮 彈性伸縮是“云”化的重點之一,主要功能是在基礎設施資源固定的情況下,平臺可根據(jù)用戶應用程序的需求對其在

50、用資源進行自動擴充或回收,其實現(xiàn)包括Amazon簡單/分步擴展策略、阿里云的彈性伸縮服務等,但這不代表它僅適用于公有云。一般來說,三大主要資源都可以進行彈性伸縮,但它們落實到具體對象上時則主要以虛擬機實例(或者vCPU)數(shù)量、容器實例數(shù)量、網(wǎng)絡質(zhì)量、存儲讀寫質(zhì)量等為單位(vCPU、內(nèi)存熱插拔方式的伸縮目前由于操作系統(tǒng)支持受限,所以應用極少),可應用的場景主要有Web服務、分布式計算、存儲服務等依托LB(Load Balance,負載均衡)與HA的集群服務(關(guān)于LB/HA的技術(shù)選型可參考第10章相關(guān)內(nèi)容)。 以應用較多的Web服務為例,它的典型實現(xiàn)示意圖如圖2-22所示。圖2-22 典型Web集

51、群服務實現(xiàn)示意圖 當Web服務網(wǎng)關(guān)收到請求以后,它會從LB集群中選擇一個Web服務器響應服務,此Web服務器將與HA的數(shù)據(jù)庫服務交互以后再返回信息給用戶。如果用戶請求過多,每個Web服務器的資源用度超過上限閾值一定時間時,平臺就需要新建一臺Web服務器并將其注冊到LB集群中,如此以來新的請求便會被引導至新加入的Web服務器上,從而使得集群服務處理能力得以提高;反之,當多數(shù)服務器的資源用度低于下限閾值超過一定時間時,平臺則會從LB集群中移除一臺Web服務器以節(jié)省資源占用。 這個過程中的資源用度檢測、閾值設定、Web服務器數(shù)量變化、LB服務器的注冊與注銷,即是由彈性伸縮服務所提供。 完善的彈性伸縮

52、系統(tǒng)對于監(jiān)測準確度、閾值選擇與設定、閾強度(即高于或低于閾值的持續(xù)時間)、響應時間(即伸縮條件被觸發(fā)后,Web服務器創(chuàng)建/移除、注冊/注銷過程消耗的總時間)、可伸縮集群類型(Web服務、數(shù)據(jù)庫服務等)、防火墻(有效阻擋攻擊流量)等方面都有一定要求。以閾值選擇與設定為例,在實現(xiàn)是多以服務器即時并發(fā)量、資源消耗等綜合考量,如果我們僅僅將指標設置為CPU用度,且閾值設置不合理的話,就可能發(fā)生如下現(xiàn)象:已知單位時間內(nèi)用戶請求數(shù)一定,那么當一個已經(jīng)擴展的LB集群整體資源用度低于縮減閾值時,則其中一臺Web服務器會被移除,用戶請求被單臺服務器全部接收導致其CPU利用率上升,如果此時擴展閾值過小系統(tǒng)則會再次

53、向LB集群中添加一臺服務器使得CPU利用率再次下降,最后重復前面的步驟導致震蕩發(fā)生,如圖2-23。圖2-23 典型Web集群服務實現(xiàn)示意圖 如果讀者對此部分設計有興趣可適當閱讀自動化相關(guān)書籍,比如線性系統(tǒng)理論、現(xiàn)代控制系統(tǒng)、自動控制原理等,雖然是面向電子電氣專業(yè)人員,但對IT從業(yè)者也頗具參考價值。4、OpenStack基礎架構(gòu)設計示例 基礎架構(gòu)模型是需要根據(jù)業(yè)務模型設計的,接下來筆者以OpenStack基礎架構(gòu)為例,首先介紹適用性較廣的通用型設計,然后以其為基礎拓展至計算或存儲密集型的設計。 另外,在部署工具的選擇上,筆者推薦初學者使用Mirantis Fuel或RedHat RDO部署Ope

54、nStack,它們都使用了自動化部署工具Puppet,前者相對后者擁有友好的Web界面,所以用戶相對較多,在國內(nèi)也有分支合資公司。通用型設計 通用型設計即是指用戶需求不太明顯的情況,我們提供給用戶適用性較廣的架構(gòu)以滿足其潛在需求。比如用戶在內(nèi)網(wǎng)運行Web服務器但不知何時會面向公網(wǎng),或者用戶是為了某個項目進行實驗等等。這種設計所需要的OpenStack組件中,我們對用戶的潛在需求進行分析,然后選擇安裝盡可能多的組件。存儲考慮 提供的存儲服務主要包括塊存儲與對象存儲兩部分。 塊存儲服務是整個架構(gòu)的基礎,一般會直接部署Cinder管理塊存儲服務,其后端有很多商業(yè)存儲可供選擇,同時OpenStack也

55、提供了針對商業(yè)存儲的插件。如果沒有單獨的存儲設備則考慮在各個服務器上部署多副本的CephFS集群,但服務器上除系統(tǒng)盤外也要有額外的硬盤組RAID 5或6。如果用戶希望虛擬桌面的操作更流暢,或者他們需要頻繁地創(chuàng)建、刪除虛擬機,可考慮劃分單獨的SSD存儲池用于虛擬機鏡像存儲(Nova、Glance)。如果服務器僅僅用作提供存儲服務,從筆者經(jīng)驗來說采用高主頻、少核的CPU時性價比較高。 而使用對象存儲的目的有兩個,一是存儲部分虛擬機模板鏡像,二是讓用戶將其作為網(wǎng)盤使用。存儲模板鏡像時,對象存儲架構(gòu)比較簡單,Swift控制節(jié)點也可放入主控制器中;當作網(wǎng)盤使用時,那么Swift網(wǎng)關(guān)服務器就相當于一個We

56、b服務器,且用戶會話時間較長,此時如果并發(fā)有一定數(shù)量但未具備相當規(guī)模時,一般只需加強網(wǎng)關(guān)服務器硬件與優(yōu)化系統(tǒng)配置即可,如果要針對較大規(guī)模并發(fā),則需要更改其架構(gòu),比如添加單獨的負載均衡設備或者組成高可用集群。網(wǎng)絡考慮 在設計基礎網(wǎng)絡時,一般會針對不同的網(wǎng)絡功能區(qū)域進行單獨設計。 OpenStack目前提供nova-network與neutron兩種網(wǎng)絡后端,但前者在最近的版本中已被標記為“deprecated(拋棄)”,所以筆者推薦使用neutron以提高系統(tǒng)向后兼容性與擴展性。 通用型設計中,網(wǎng)絡一般劃分為公共網(wǎng)絡、用戶網(wǎng)絡、管理網(wǎng)絡、存儲網(wǎng)絡等。公共網(wǎng)絡即是用于對外服務的網(wǎng)絡,這些服務主要用

57、于用戶訪問(Web、REST API、Spice),連接到這些網(wǎng)絡的節(jié)點只有Controller、Swift網(wǎng)關(guān)、桌面協(xié)議代理網(wǎng)關(guān)等,同時LB集群節(jié)點也會使用此網(wǎng)絡。用戶網(wǎng)絡即是用戶的虛擬機或容器實例使用的內(nèi)部網(wǎng)絡,其IP地址位于“虛擬網(wǎng)段”中,或者是與物理交換機相連的“物理網(wǎng)段”中,一些在公共網(wǎng)絡中的服務也可在此網(wǎng)絡中以提高內(nèi)部實例訪問服務的速度。管理網(wǎng)絡即是管理硬件資源時使用的網(wǎng)絡,管理員使用工具添加新節(jié)點時會賦予其管理網(wǎng)絡所在網(wǎng)段的IP。存儲網(wǎng)絡即是存儲節(jié)點所使用的網(wǎng)絡,它對網(wǎng)絡硬件的要求較高,包括帶寬、延遲、冗余性等方面。計算考慮 通常,計算節(jié)點所組成的集群按照其邏輯功能或位置劃分為多個計算池,且每個池中的資源總量都由管理員定義,比如常駐桌面池、浮動桌面池、研發(fā)服務器池、辦公服務器池等??紤]到虛擬機實例的可遷移性,同一池中的服務器CPU配置(主頻適中、多核)都是相同的,同時服務器都與需接入對應功能區(qū)域的網(wǎng)絡。 虛擬化的基本特性之一是資源超分,即分配給虛擬機的資源可以超過所在計算節(jié)點實際資源,CPU資源、內(nèi)存資源在OpenStack中的比例默認為16:1、1.5:1。這些比例并不一定適用于實際環(huán)境,比如當CPU超分過多時,會導致部分虛擬機因QEMU進程上下文切換成本過高而變得卡頓,當內(nèi)存超分過多時,如果虛擬機

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論