趙 炎, 程紹銀, 蔣 凡
?
針對云計(jì)算IaaS隔離性的測試系統(tǒng)①
趙 炎, 程紹銀, 蔣 凡
(中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 合肥 230027)
為解決IaaS云計(jì)算隔離性的測試問題, 通過分析和總結(jié)已有的隔離性的測試方法, 設(shè)計(jì)并實(shí)現(xiàn)了針對云計(jì)算IaaS基于消息中間件的分布式測試系統(tǒng). 實(shí)現(xiàn)時(shí), 采用基于消息中間件的分布式架構(gòu), 并將控制端與測試端獨(dú)立, 降低了耦合性, 增強(qiáng)了可擴(kuò)展性. 在OpenStack云計(jì)算環(huán)境中進(jìn)行測試, 驗(yàn)證了系統(tǒng)設(shè)計(jì)的可行性. 該測試系統(tǒng)適用于云服務(wù)安全的其他能力測試.
云計(jì)算; IaaS; 分布式測試; 隔離性; OpenStack
IDC發(fā)布的《中國公有云服務(wù)追蹤研究》[1]表明, 國內(nèi)公有云服務(wù)市場將在2015年至2018年持續(xù)高速增長, 其中IaaS(Infrastructure as a Service)增長最為明顯, 將由2013年的44%上升至2018年的61.3%. 2015年4月1日開始實(shí)施的中國國家標(biāo)準(zhǔn)《信息安全技術(shù)云計(jì)算服務(wù)安全能力要求》[2], 明確對系統(tǒng)虛擬化、網(wǎng)絡(luò)虛擬化和存儲(chǔ)虛擬化的安全能力提出了要求, 反復(fù)強(qiáng)調(diào)了隔離性的重要性, 隔離性是第三方測評機(jī)構(gòu)針對云服務(wù)安全能力的測評重點(diǎn).
隔離性是虛擬化的重要功能, Jeanna Neefe Matthews[3]測試了幾種不同虛擬技術(shù)的隔離性, 采用的測試方法是在1臺(tái)物理機(jī)器上創(chuàng)建4臺(tái)虛擬機(jī), 每個(gè)虛擬機(jī)上都運(yùn)行apache web server, 其中1臺(tái)虛擬機(jī)做壓力測試, 在進(jìn)行壓力測試時(shí)觀察是否對未做壓力測試的虛擬機(jī)有影響. Jeanna等人的測試方法雖然能在一定程度上比較不同虛擬化技術(shù)的隔離性, 但是測試并沒有體現(xiàn)出云計(jì)算的大規(guī)模性. Rally[4]是針對Openstack的性能測試[5]工具, 其有幾種不同的測試方式: (1)在不具有OpenStack環(huán)境的硬件上自動(dòng)部署OpenStack環(huán)境, 然后模擬真實(shí)用戶的負(fù)載, 最后評估測試結(jié)果; (2)使用已經(jīng)部署好的OpenStack云環(huán)境, 模擬真實(shí)用戶的負(fù)載, 最后評估測試結(jié)果; (3)在特定的硬件上部署OpenStack, 運(yùn)行指定的基準(zhǔn)測試集并保存性能數(shù)據(jù). Rally雖然能夠自動(dòng)化的對云計(jì)算進(jìn)行性能測試, 但是其局限于OpenStack, 同時(shí)也僅對性能做出了評估, 并沒有體現(xiàn)出對隔離性的測試.
本文實(shí)現(xiàn)了一種針對云計(jì)算IaaS的大規(guī)模分布式測試系統(tǒng), 重點(diǎn)針對處理器、網(wǎng)絡(luò)、存儲(chǔ)的隔離性進(jìn)行測試, 彌補(bǔ)Jeanna測試方法的不足, 可擴(kuò)展性強(qiáng), 可針對每一臺(tái)虛擬機(jī)模擬真實(shí)用戶的負(fù)載, 同時(shí)能夠模擬大規(guī)模用戶在線的情況, 對云平臺(tái)造成嚴(yán)重負(fù)載, 并檢測在高負(fù)荷情況下云平臺(tái)的隔離性, 同時(shí), 該測試系統(tǒng)適用于云服務(wù)安全的其他能力測試.
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
隔離性測試系統(tǒng)分為三類節(jié)點(diǎn), 每一個(gè)節(jié)點(diǎn)為一臺(tái)虛擬主機(jī).
① 控制節(jié)點(diǎn)C: 控制節(jié)點(diǎn)在不同階段, 其作用有所不同. 在隔離性測試系統(tǒng)部署階段, 控制節(jié)點(diǎn)主要作用為調(diào)用云平臺(tái)API創(chuàng)建虛擬機(jī), 并虛擬主機(jī)指定角色, 將角色分為中繼節(jié)點(diǎn)和測試節(jié)點(diǎn); 在測試階段, 其主要作用是向中繼節(jié)點(diǎn)發(fā)送測試命令或測試?yán)? 并從中繼節(jié)點(diǎn)收集測試結(jié)果并分析得出測試結(jié)論;
② 中繼節(jié)點(diǎn)R: 主要作用是將控制節(jié)點(diǎn)的測試命令或測試?yán)D(zhuǎn)發(fā)給測試節(jié)點(diǎn), 收集測試節(jié)點(diǎn)的監(jiān)控信息, 將測試節(jié)點(diǎn)的測試結(jié)果及監(jiān)控信息轉(zhuǎn)發(fā)給控制節(jié)點(diǎn), 每一個(gè)中繼節(jié)點(diǎn)即為消息中間的broker;
③ 測試節(jié)點(diǎn)T: 主要作用是從中繼節(jié)點(diǎn)接收測試命令或測試?yán)? 實(shí)時(shí)監(jiān)控虛擬主機(jī)狀態(tài), 并將測試結(jié)果和監(jiān)控信息發(fā)送給中繼節(jié)點(diǎn). 測試節(jié)點(diǎn)從測試?yán)龓熘姓{(diào)用測試?yán)? 進(jìn)行計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等隔離性測試, 同時(shí)也能進(jìn)行其他安全能力測試.
圖1 測試系統(tǒng)結(jié)構(gòu)
圖1所示為隔離性測試系統(tǒng)架構(gòu). 在這個(gè)隔離性測試系統(tǒng)中, 控制節(jié)點(diǎn)只需要一個(gè), 中繼節(jié)點(diǎn)和測試節(jié)點(diǎn)為多個(gè). 三者之間的連接關(guān)系: 控制節(jié)點(diǎn)與多個(gè)中繼節(jié)點(diǎn)通訊, 中繼節(jié)點(diǎn)又與多個(gè)測試節(jié)點(diǎn)通訊, 中繼節(jié)點(diǎn)還可與多個(gè)中繼節(jié)點(diǎn)通訊. 將隔離性測試系統(tǒng)分為三類節(jié)點(diǎn)的主要原因是測試節(jié)點(diǎn)在高負(fù)荷的情況下, 可能出現(xiàn)無法優(yōu)先為其它節(jié)點(diǎn)轉(zhuǎn)發(fā)消息, 導(dǎo)致其他節(jié)點(diǎn)不能正常進(jìn)行測試. 同時(shí), 多個(gè)中繼節(jié)點(diǎn)可以緩解大量測試節(jié)點(diǎn)給控制節(jié)點(diǎn)帶來的壓力. 一種典型的隔離性測試系統(tǒng)拓?fù)淙鐖D2所示. 采用圖2所示的拓?fù)浣Y(jié)構(gòu)使測試系統(tǒng)主要優(yōu)點(diǎn)是松散耦合, 系統(tǒng)擴(kuò)展性強(qiáng). 相比于傳統(tǒng)的采用RPC的分布式架構(gòu)[6], 基于消息中間件的分布式架構(gòu)將控制節(jié)點(diǎn)與測試節(jié)點(diǎn)之間的通訊全部交給消息中間件, 降低了兩者的耦合程度. 同時(shí), 控制節(jié)點(diǎn)無需管理與測試節(jié)點(diǎn)的連接, 只需要增加中繼節(jié)點(diǎn)即可增加更多的測試節(jié)點(diǎn), 系統(tǒng)擴(kuò)展性強(qiáng).
圖2 隔離性測試系統(tǒng)拓?fù)?/p>
1.2 關(guān)鍵技術(shù)
1.2.1 系統(tǒng)部署
圖2中的每一個(gè)節(jié)點(diǎn)即為一臺(tái)虛擬主機(jī), 所以測試系統(tǒng)需要大量的虛擬主機(jī). 在云平臺(tái)創(chuàng)建所有虛擬主機(jī)前, 需要一臺(tái)虛擬主機(jī)作為控制節(jié)點(diǎn), 控制節(jié)點(diǎn)連接云平臺(tái)創(chuàng)建大量虛擬主機(jī). 在系統(tǒng)部署前修改云平臺(tái)提供的系統(tǒng)鏡像, 在鏡像中預(yù)先安裝測試程序, 以便在虛擬主機(jī)啟動(dòng)后自動(dòng)連接控制節(jié)點(diǎn). 控制節(jié)點(diǎn)創(chuàng)建虛擬主機(jī)的流程如圖3所示, 具體描述如下:
步驟1: 控制節(jié)點(diǎn)判斷是否具有云平臺(tái)管理員權(quán)限, 若是則跳至步驟2, 否則跳至步驟3;
步驟2: 控制節(jié)點(diǎn)利用管理員權(quán)限創(chuàng)建一批用于測試的臨時(shí)租戶, 至步驟4;
步驟3: 控制節(jié)點(diǎn)等待測試人員提供用于測試的租戶認(rèn)證信息;
步驟4: 控制節(jié)點(diǎn)利用用于測試的租戶信息, 使用定制鏡像創(chuàng)建大量虛擬主機(jī);
步驟5: 虛擬主機(jī)創(chuàng)建成功后即可進(jìn)行隔離性測試.
圖3 控制節(jié)點(diǎn)創(chuàng)建虛擬主機(jī)流程
1.2.2 隔離性測試方法
針對IaaS的計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)資源的隔離性測試主要集中在CPU、內(nèi)存、文件I/O與網(wǎng)絡(luò)的隔離性測試.
① CPU隔離性測試是在用戶指定的一段時(shí)間內(nèi)循環(huán)進(jìn)行高強(qiáng)度的浮點(diǎn)運(yùn)算. 在進(jìn)行浮點(diǎn)運(yùn)算的過程中, 不斷檢查運(yùn)算結(jié)果是否正確. 如果結(jié)果不正確, 會(huì)將結(jié)果信息保存在結(jié)果文件中, 并將錯(cuò)誤信息發(fā)送給中繼節(jié)點(diǎn). 中繼節(jié)點(diǎn)收集CPU使用情況和測試結(jié)果, 并分析測試結(jié)果, 將收集和分析的結(jié)果發(fā)送給控制節(jié)點(diǎn). CPU的隔離性測試, 我們采取1個(gè)測試節(jié)點(diǎn)不進(jìn)行高強(qiáng)度的浮點(diǎn)運(yùn)算, 其他測試節(jié)點(diǎn)進(jìn)行高強(qiáng)度的浮點(diǎn)運(yùn)算的方式, 通過分析測試結(jié)果, 判斷浮點(diǎn)運(yùn)算測試節(jié)點(diǎn)是否對沒有進(jìn)行浮點(diǎn)運(yùn)算的節(jié)點(diǎn)產(chǎn)生影響. 如果出現(xiàn)浮點(diǎn)運(yùn)算結(jié)果錯(cuò)誤或沒有進(jìn)行浮點(diǎn)運(yùn)算的節(jié)點(diǎn)CPU使用率波動(dòng)較大, 則說明云平臺(tái)的隔離性欠佳.
② 內(nèi)存隔離性測試大致分為兩種測試?yán)? 負(fù)載和輕負(fù)載. 內(nèi)存負(fù)載采取不斷的申請、鎖定和釋放內(nèi)存的方式, 如果申請指定大小的內(nèi)存失敗, 則會(huì)自動(dòng)降低指定的內(nèi)存大小, 然后再次申請, 以此往復(fù), 導(dǎo)致測試節(jié)點(diǎn)內(nèi)存基本被消耗盡. 輕負(fù)載則是指測試節(jié)點(diǎn)不進(jìn)行高強(qiáng)度的內(nèi)存消耗, 保持常態(tài)運(yùn)行. 通過實(shí)時(shí)監(jiān)控內(nèi)存負(fù)載與輕負(fù)載的測試節(jié)點(diǎn), 比較兩者在同時(shí)間段內(nèi)內(nèi)存最大值及使用量的變化判斷隔離性是否符合要求.
③ 文件I/O隔離性測試主要測試在大量測試節(jié)點(diǎn)同時(shí)讀寫文件時(shí)是否對文件I/O速度造成影響. 針對隔離性的測試主要測試兩種情況下的文件I/O速度, 第一種是所有測試節(jié)點(diǎn)同一時(shí)段進(jìn)行大量文件讀寫, 第二種是在每一簇中隨機(jī)選取一個(gè)測試節(jié)點(diǎn)進(jìn)行大量文件讀寫. 通過比較兩種情況下文件I/O的速度來判斷隔離性是否符合要求.
④ 網(wǎng)絡(luò)隔離性測試不同于CPU、內(nèi)存和文件I/O的隔離性測試, 后三種測試時(shí)測試節(jié)點(diǎn)運(yùn)行測試?yán)恍枰渌麥y試節(jié)點(diǎn)的協(xié)助, 而網(wǎng)絡(luò)隔離性測試需要其他測試節(jié)點(diǎn)協(xié)助, 模擬網(wǎng)絡(luò)通信, 其中一方作為服務(wù)端, 另一方作為客戶端. 《信息安全技術(shù)云計(jì)算服務(wù)安全能力要求》中明確提出了對虛擬主機(jī)的帶寬進(jìn)行管理, 因此測試虛擬主機(jī)的帶寬需要兩個(gè)測試節(jié)點(diǎn)間協(xié)助測試. 典型的情景是假設(shè)兩個(gè)測試節(jié)點(diǎn)A、B分別位于不同簇內(nèi), 則A、B互為服務(wù)端和客戶端. 一種簡單的網(wǎng)絡(luò)隔離性測試拓?fù)淙鐖D4所示, 圖中虛線表示網(wǎng)絡(luò)隔離性測試. 通過分析測試結(jié)果, 判斷是否對虛擬主機(jī)網(wǎng)絡(luò)帶寬進(jìn)行了管理, 是否影響其他虛擬主機(jī)網(wǎng)絡(luò). 測試節(jié)點(diǎn)A、B的選擇則采取編號(hào)相差最小且在不同簇的測試節(jié)點(diǎn), 如果某簇中有未匹配成功的測試節(jié)點(diǎn), 則該測試節(jié)點(diǎn)與中繼節(jié)點(diǎn)或簇內(nèi)其他尚未匹配的測試節(jié)點(diǎn)間進(jìn)行網(wǎng)絡(luò)隔離性測試, 具體的描述見算法1, 其中步驟4會(huì)判斷是否是不同簇且未配對節(jié)點(diǎn), 滿足這兩個(gè)條件則會(huì)配對, 步驟10則是在節(jié)點(diǎn)首次匹配失敗時(shí)嘗試與中繼節(jié)點(diǎn)匹配, 如果中繼節(jié)點(diǎn)已經(jīng)與其他測試節(jié)點(diǎn)匹配, 則測試節(jié)點(diǎn)與本簇中其他測試節(jié)點(diǎn)匹配, 算法2中步驟11-17則是嘗試與簇內(nèi)其它節(jié)點(diǎn)匹配, 以上條件都不滿足的節(jié)點(diǎn)則不進(jìn)行網(wǎng)絡(luò)隔離性測試. 網(wǎng)絡(luò)隔離性測試要比較所有虛擬主機(jī)并發(fā)進(jìn)行網(wǎng)絡(luò)帶寬測試得到的帶寬值是否與虛擬主機(jī)單次測試的網(wǎng)絡(luò)帶寬相同, 如果兩者相差較大則說明云平臺(tái)沒有對虛擬主機(jī)的網(wǎng)絡(luò)帶寬進(jìn)行妥善的管理, 不滿足網(wǎng)絡(luò)隔離性的要求.
圖4 網(wǎng)絡(luò)隔離性測試拓?fù)?/p>
算法 1. 網(wǎng)絡(luò)隔離性測試節(jié)點(diǎn)匹配算法
輸入:-所有測試節(jié)點(diǎn)編號(hào),
-中繼節(jié)點(diǎn)編號(hào).
Function NetMatch(testIndexs,){步驟1 for each i in testIndexs{步驟2 if i is matched then continue;步驟3 else for each j>i in testIndexs{步驟4 if j in another cluster and j is not matched {步驟5 i and j matches;步驟6 break;步驟7 }步驟8 }步驟9 if i is not matched {步驟10 if rIndex is not matched then i and rIndex matches;步驟11 else for each j in testIndexs{步驟12 if j and i is not in the same cluster then continue;步驟13 else if j is not matched {步驟14 i and j matches;步驟15 break;步驟16 }步驟17 }步驟18 }步驟19 }}
1.2.3 消息傳遞
控制端與測試端間的通訊協(xié)議采用MQTT[7]協(xié)議. MQTT協(xié)議是基于發(fā)布/訂閱的輕量級(jí)的消息協(xié)議. 既然是消息便涉及到生產(chǎn)者和消費(fèi)者, 生產(chǎn)者發(fā)布消息, 消費(fèi)者通過訂閱獲取消息. 考慮到測試系統(tǒng)中需要控制多個(gè)虛擬主機(jī), 即一個(gè)生產(chǎn)者發(fā)送消息給多個(gè)消費(fèi)者, 控制節(jié)點(diǎn)于測試節(jié)點(diǎn)通過消息中間件進(jìn)行交互. 控制端與測試端間的通訊主要分為兩種方式:
① 控制端發(fā)布消息: 控制端創(chuàng)建消息主題(topic), 測試端訂閱該topic接受消息;
② 測試端發(fā)送消息給控制端: 控制端創(chuàng)建一個(gè)消息隊(duì)列, 測試端向消息隊(duì)列中發(fā)送發(fā)送消息.
2.1 系統(tǒng)性能評估
對于系統(tǒng)的性能, 由于主控節(jié)點(diǎn)MC和控制節(jié)點(diǎn)C不進(jìn)行隔離性測試, 只是擔(dān)當(dāng)協(xié)調(diào)者的角色, 所以評估測試系統(tǒng)的性能主要針對監(jiān)控終端. 監(jiān)控終端在虛擬主機(jī)中運(yùn)行前后資源占比如圖5所示, 可知監(jiān)控終端對主機(jī)影響很小.
2.2 實(shí)驗(yàn)
為了對云計(jì)算IaaS隔離性進(jìn)行測試, 本文利用兩臺(tái)PC搭建了一個(gè)小型的OpenStack云計(jì)算系統(tǒng), 兩臺(tái)PC分別作為controller節(jié)點(diǎn)和compute節(jié)點(diǎn), 其硬件信息如下:
① controller: 4核cpu, 8GB內(nèi)存, 500GB硬盤, 雙千兆網(wǎng)卡;
② compute: 4核cpu, 16GB內(nèi)存, 1TB硬盤, 雙千兆網(wǎng)卡.
測試工具創(chuàng)建10臺(tái)虛擬機(jī)實(shí)例, 其中一臺(tái)作為測試系統(tǒng)的控制節(jié)點(diǎn)C, 一臺(tái)作為中繼節(jié)點(diǎn)R, 剩余8臺(tái)作為測試節(jié)點(diǎn).
圖5 監(jiān)控終端運(yùn)行前后資源占比
2.2.1 CPU隔離性測試
實(shí)驗(yàn)時(shí)從8個(gè)節(jié)點(diǎn)中隨機(jī)選取了一臺(tái)虛擬機(jī)作為不進(jìn)行高強(qiáng)浮點(diǎn)運(yùn)算度負(fù)載, 其他虛擬機(jī)負(fù)載作高強(qiáng)度的浮點(diǎn)運(yùn)算. 對負(fù)載節(jié)點(diǎn)的CPU使用率取均值得到如圖6所示結(jié)果. 圖中負(fù)載即為進(jìn)行高強(qiáng)度浮點(diǎn)運(yùn)算, 未負(fù)載則沒有進(jìn)行浮點(diǎn)運(yùn)算. 從圖中可以看出, 負(fù)載節(jié)點(diǎn)CPU使用率從08:45逐步增加, 10:15左右使用率達(dá)到100%, 而后逐步降低. 在此期間未負(fù)載節(jié)點(diǎn)CPU使用率基本保持不變. 同時(shí)通過分析, 浮點(diǎn)運(yùn)算結(jié)果均正確. 從而可以得知, OpenStack實(shí)驗(yàn)環(huán)境滿足基本的CPU隔離性要求.
圖6 CPU負(fù)載與未負(fù)載使用百分率
2.2.2 內(nèi)存隔離性測試
實(shí)驗(yàn)隨機(jī)選取一臺(tái)虛擬機(jī), 使其不進(jìn)行內(nèi)存負(fù)載, 而其余8臺(tái)虛擬機(jī)進(jìn)行內(nèi)存負(fù)載, 內(nèi)存負(fù)載即是盡可能占用系統(tǒng)內(nèi)存. 實(shí)時(shí)監(jiān)控所有測試節(jié)點(diǎn)內(nèi)存使用率, 并對負(fù)載測試節(jié)點(diǎn)內(nèi)存使用量取平均值得到如圖7所示的內(nèi)存消耗圖. 由圖可知, 在31:30處, 負(fù)載虛擬機(jī)內(nèi)存消耗迅速上升后, 在43:30左右后恢復(fù)正常, 期間未負(fù)載虛擬機(jī)內(nèi)存消耗基本不變. 同時(shí), 在進(jìn)行內(nèi)存隔離性測試的時(shí)間段內(nèi), 負(fù)載與未負(fù)載虛擬機(jī)內(nèi)存大小基本保持不變, 如圖8所示. 由兩圖分析可知, 實(shí)驗(yàn)環(huán)境基本滿足內(nèi)存隔離性要求.
圖7 內(nèi)存測試-用戶內(nèi)存消耗
圖8 內(nèi)存測試-總內(nèi)存大小變化
2.2.3 網(wǎng)絡(luò)隔離性測試
網(wǎng)絡(luò)隔離性測試分兩步進(jìn)行. 第一步是隨機(jī)選擇兩臺(tái)虛擬機(jī)實(shí)例, 其中一臺(tái)作為服務(wù)器端, 另外一臺(tái)作為客戶端, 測試兩者之間的最大網(wǎng)絡(luò)帶寬, 稱其為單點(diǎn)測試; 第二步是多個(gè)點(diǎn)同時(shí)開始第一步中的測試, 根據(jù)網(wǎng)絡(luò)測試的節(jié)點(diǎn)匹配方法, 節(jié)點(diǎn)間相互匹配, 作為服務(wù)器端和客戶端進(jìn)行最大網(wǎng)絡(luò)帶寬測試, 并對各節(jié)點(diǎn)對的測試結(jié)果取均值. 兩步測試得到的結(jié)果如圖9所示.
從圖9中數(shù)據(jù)分析可知, 單點(diǎn)測試時(shí)其網(wǎng)絡(luò)帶寬較大, 而多點(diǎn)測試時(shí)其網(wǎng)絡(luò)帶寬值幾乎只有單點(diǎn)測試時(shí)的1/4, 足以見得云平臺(tái)沒有對每臺(tái)虛擬主機(jī)的帶寬進(jìn)行妥善管理, 不符合《信息安全技術(shù)云計(jì)算服務(wù)安全能力要求》標(biāo)準(zhǔn).
圖9 網(wǎng)絡(luò)隔離性測試
2.2.4 磁盤I/O隔離性測試
磁盤I/O隔離性測試采取兩步進(jìn)行: 一臺(tái)虛擬機(jī)單獨(dú)進(jìn)行磁盤I/O隔離性測試和多臺(tái)虛擬機(jī)同時(shí)進(jìn)行磁盤I/O隔離性測試. 磁盤I/O隔離性測試分別測試文件的讀寫速度、重復(fù)讀寫速度, 以及隨機(jī)讀寫速度, 將兩步測試分別稱為async和sync. async是隨機(jī)選取一臺(tái)虛擬主機(jī)進(jìn)行磁盤I/O速度測試, sync是8臺(tái)虛擬主機(jī)同時(shí)進(jìn)行磁盤I/O速度測試, 得到如圖10所示的測試結(jié)果.
圖10 磁盤I/O隔離性測試結(jié)果
由圖10分析可知, sync測試得到的磁盤I/O速度明顯小于async. 由此可知云計(jì)算虛擬機(jī)的磁盤I/O性能受其他虛擬機(jī)影響明顯, 或者說是云計(jì)算平臺(tái)在負(fù)載較大時(shí)租戶的虛擬機(jī)磁盤I/O性能會(huì)受到明顯影響. 因此可知其不能滿足某些對存儲(chǔ)性能要求較高的租戶, 磁盤I/O隔離性欠佳.
由于硬件特性, 相比于CPU和內(nèi)存, 磁盤I/O速度一直阻礙著計(jì)算機(jī)的性能提升, 同時(shí)也考慮到成本問題, 對磁盤的投入也比較少. 但是, 對于云計(jì)算服務(wù)提供商而言, 還是可以通過一些軟硬件的方法來改善虛擬機(jī)磁盤I/O的性能, 以提高隔離性和對用戶的公平. 例如, 可以參考Dingding Li等人[8]通過降低Xen硬盤協(xié)議棧上的額外開銷來提升虛擬機(jī)磁盤I/O性能, 也可參考Ajay Gulati等人[9]提到的VMware DRS系統(tǒng), 通過資源的合理調(diào)用和管理來提高系統(tǒng)的資源利用率和系統(tǒng)性能
本文實(shí)現(xiàn)了一種針對IaaS云計(jì)算服務(wù)基于消息中間件的分布式測試系統(tǒng), 重點(diǎn)針對處理器、網(wǎng)絡(luò)、存儲(chǔ)的隔離性進(jìn)行測試, 可擴(kuò)展性強(qiáng), 可針對每一臺(tái)虛擬機(jī)模擬真實(shí)用戶的負(fù)載, 同時(shí)能夠模擬大規(guī)模用戶在線的情況, 對云平臺(tái)造成嚴(yán)重負(fù)載, 并檢測在高負(fù)荷情況下云平臺(tái)的隔離性. 下一步工作是完善在不同云平臺(tái)的自動(dòng)部署, 并參照《信息安全技術(shù)云計(jì)算服務(wù)安全能力要求》設(shè)計(jì)測試?yán)?
1 新浪科技.IDC:阿里云成國內(nèi)最大IaaS云計(jì)算廠商, 2015-1-23.
2 左曉棟,陳興蜀,張建軍,等.GB/T 32268-2014,信息安全技術(shù)云計(jì)算服務(wù)安全能力要求.北京:中國標(biāo)準(zhǔn)化委員會(huì),2014.
3 Matthews JN, Hu W, Hapuarachchi M, et al. Quantifying the performance isolation properties of virtualization systems. Proc. of the 2007 workshop on Experimental computer science. ACM. 2007. 6.
4 OpenStack Foundation. http://rally.readthedocs.org.Cloud Computing.
5 Jayasinghe D, Swint G, Malkowski S, et al. Expertus: A generator approach to automate performance testing in IaaS clouds. 2012 IEEE 5th International Conference on Cloud Computing (CLOUD). IEEE. 2012. 115–122.
6 蔣雄偉,馬范援.中間件與分布式計(jì)算.計(jì)算機(jī)應(yīng)用,2002, 22(4):6–8.
7 賈軍營,王月鵬,王少華.基于MQTT協(xié)議IM的研究和實(shí)現(xiàn).計(jì)算系統(tǒng)應(yīng)用,2015,24(7):9–14.
8 Li D, Jin H, Liao X, et al. Improving disk I/O performance in a virtualized system. Journal of Computer and System Sciences, 2013, 79(2): 187–200.
9 Gulati A, Holler A, Ji M, et al. Vmware distributed resource management: Design, implementation, and lessons learned. VMware Technical Journal, 2012, 1(1): 45–64.
Testing System for Cloud Computing IaaS Isolation Properties
ZHAO Yan, CHENG Shao-Yin, JIANG Fan
(School of Computer Science and Technology, University of Science and Technology of China, Hefei 230027, China)
By analyzing and summarizing the existing test methods for isolation of cloud IaaS, a large-scale distributed testing system based on message middleware is designed and implemented for validating the isolation of a cloud IaaS. The system is a message-based distributed architecture; the control nodes and the testing nodes are separated, which helps to reduce the coupling of the system and enhance scalability. By testing the isolation of cloud IaaS in operation, the feasibility of the testing system is verified on the OpenStack platform. The testing system is suitable for testing other security abilities of cloud services.
cloud; IaaS; distributed testing; isolation; OpenStack
2016-04-22;收到修改稿時(shí)間:2016-05-26
[10.15888/j.cnki.csa.005558]